Способ и устройство для управляемого выбора точки наблюдения и ориентации аудиовизуального контента
METHOD AND DEVICE FOR CONTROLLED SELECTION OF POINT OF VIEW AND ORIENTATION OF AUDIOVISUAL CONTENT

Область техники
[0001] Один из примеров осуществления настоящего изобретения относится, в общем, к кодированию мультимедийного контента, в частности, в контексте потоковой передачи контента виртуальной реальности или другого аудиовизуального контента.
Предпосылки создания изобретения
[0002] Аудиовизуальный контент виртуальной реальности, например, 360-градусное видео или другой аналогичный контент, приобретает все большую популярность у зрителей и создателей контента, которые предпочитают, или с удовольствием переживают, иммерсивный зрительный опыт, обеспечиваемый таким контентом. Вследствие широкого распространения контента виртуальной реальности выросли требования зрителей к качеству его потоковой передачи, необходимому для высококлассных впечатлений от просмотра.
[0003] Потребность в непрерывном обеспечении высококлассных впечатлений от просмотра при потоковой передаче контента в окружении виртуальной реальности ставит ряд технических задач, в особенности, когда создатель контента заранее принимает творческие и/или другие режиссерские решения о том, каким образом контент должен быть отображен зрителю, и о том, каким образом этот контент должен быть представлен в поле зрения зрителя. Сложность этих технических задач может быть еще более высокой в тех случаях, когда зритель имеет лишь ограниченный набор комфортных положений при просмотре, или когда ориентация зрителя может приводить к тому, что контент зрителю будет отображаться не так, как это подразумевал его создатель.
Краткое описание изобретения
[0004] Таким образом, в соответствии с одним из примеров осуществления настоящего изобретения, предложены способ, устройство и компьютерный программный продукт для обеспечения воспроизведения аудиовизуального контента по выбору под управлением пользователя. В этой связи способ, устройство и компьютерный программный продукт, предложенные в одном из примеров осуществления настоящего изобретения, обеспечивают управление точкой наблюдения и выбором ориентации воспроизводимого аудиовизуального контента.
[0005] В одном из примеров осуществления настоящего изобретения предложен способ, который включает прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации. Способ, предложенный в данном примере осуществления настоящего изобретения, включает также прием указания, относящегося к желаемому поведению воспроизводящего устройства. Способ, предложенный в данном варианте осуществления настоящего изобретения, включает также определение желаемого поведения воспроизводящего устройства. Способ, предложенный в данном примере осуществления настоящего изобретения, включает также, в ответ на определение желаемого поведения воспроизводящего устройства, обеспечение формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве.
[0006] В некоторых из примеров реализации предложенного способа конфигурация наблюдения включает точку наблюдения и ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое указание, относящееся к желаемому поведению воспроизводящего устройства, может включать указание, относящееся к желаемому поведению воспроизводящего устройства в режиме непрерывного воспроизведения, и указание, относящееся к желаемому поведению воспроизводящего устройства в режиме произвольного доступа.
[0007] В некоторых из примеров реализации определение желаемого поведения воспроизводящего устройства включает определение, удовлетворено ли условие, относящееся к желаемому поведению воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сброса, относящееся к исходной конфигурации наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сохранения, относящееся к исходной конфигурации наблюдения.
[0008] В некоторых из примеров реализации операция воспроизведения аудиовизуальной презентации на воспроизводящем устройстве включает выбор части этой аудиовизуальной презентации.
[0009] В еще одном из вариантов осуществления настоящего изобретения предложено устройство, которое включает по меньшей мере один процессор и по меньшей мере одну память, которая содержит компьютерный программный код, при этом упомянутые память и компьютерный программный код сконфигурированы, с помощью упомянутого по меньшей мере одного процессора, для обеспечения выполнения, предложенным устройством, по меньшей мере следующего: прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации; прием указания, относящегося к желаемому поведению воспроизводящего устройства; определение желаемого поведения воспроизводящего устройства; и, в ответ на определение желаемого поведения воспроизводящего устройства, для обеспечения формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве.
[0010] В некоторых из примеров реализации конфигурация наблюдения включает точку наблюдения и ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое указание, относящееся к желаемому поведению воспроизводящего устройства, может включать указание, относящееся к желаемому поведению воспроизводящего устройства в режиме непрерывного воспроизведения, и указание, относящееся к желаемому поведению воспроизводящего устройства в режиме произвольного доступа.
[0011] В некоторых из примеров реализации определение желаемого поведения воспроизводящего устройства включает определение, удовлетворено ли условие, относящееся к желаемому поведению воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сброса, относящееся к исходной конфигурации наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сохранения, относящееся к исходной конфигурации наблюдения.
[0012] В некоторых из примеров реализации операция воспроизведения аудиовизуальной презентации на воспроизводящем устройстве включает выбор части этой аудиовизуальной презентации.
[0013] В еще одном из вариантов осуществления настоящего изобретения предложен компьютерный программный продукт, который включает по меньшей мере один постоянный машиночитаемый носитель для хранения данных, имеющий хранящиеся на нем машиноисполняемые инструкции программного кода, при этом упомянутые машиноисполняемые инструкции программного кода включают инструкции программного кода; сконфигурированные для следующего: прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации; прием указания, относящегося к желаемому поведению воспроизводящего устройства; определение желаемого поведения воспроизводящего устройства; и, в ответ на определение предполагаемого поведения воспроизводящего устройства, для обеспечения формирования управляющего сигнала, при этом управляющий сигнал относится к операции отображения аудиовизуальной презентации на воспроизводящем устройстве, которая включает выбор части аудиовизуальной презентации.
[0014] В некоторых из примеров реализации конфигурация наблюдения включает точку наблюдения и ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое указание, относящееся к желаемому поведению воспроизводящего устройства, может включать указание, относящееся к желаемому поведению воспроизводящего устройства в режиме непрерывного воспроизведения, и указание, относящееся к желаемому поведению воспроизводящего устройства в режиме произвольного доступа.
[0015] В некоторых из примеров реализации определение желаемого поведения воспроизводящего устройства включает определение, удовлетворено ли условие, относящееся к желаемому поведению воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сброса, относящееся к исходной конфигурации наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сохранения, относящееся к исходной конфигурации наблюдения.
[0016] В еще одном из примеров осуществления настоящего изобретения предложено устройство, которое включает средства для выполнения следующего: прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации; прием указания, относящегося к желаемому поведению воспроизводящего устройства; определение желаемого поведения воспроизводящего устройства; и, в ответ на определение желаемого поведения воспроизводящего устройства, обеспечение формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве.
[0017] В некоторых из примеров реализации конфигурация наблюдения включает точку наблюдения и ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое указание, относящееся к желаемому поведению воспроизводящего устройства, может включать указание, относящееся к желаемому поведению воспроизводящего устройства в режиме непрерывного воспроизведения, и указание, относящееся к желаемому поведению воспроизводящего устройства в режиме произвольного доступа.
[0018] В некоторых из примеров реализации определение желаемого поведения воспроизводящего устройства включает определение, удовлетворено ли условие, относящееся к желаемому поведению воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сброса, относящееся к исходной конфигурации наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сохранения, относящееся к исходной конфигурации наблюдения.
[0019] В некоторых из примеров реализации операция воспроизведения аудиовизуальной презентации на воспроизводящем устройстве включает выбор части этой аудиовизуальной презентации.
[0020] В еще одном из примеров осуществления настоящего изобретения предложен способ, который включает определение исходной конфигурации наблюдения, относящейся к набору блоков передачи, принадлежащих аудиовизуальной презентации; определение, удовлетворено ли условие, относящееся к конфигурации наблюдения; в ответ на определение того, что удовлетворено условие, относящееся к конфигурации наблюдения, выбор подмножества блоков передачи, принадлежащих аудиовизуальной презентации; и обеспечение формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения выбранного подмножества блоков передачи, принадлежащих аудиовизуальной презентации, на воспроизводящем устройстве.
[0021] В некоторых из примеров реализации такого способа конфигурация наблюдения включает точку наблюдения и/или ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, конфигурация наблюдения включают указание на наиболее вероятное направление просмотра, относящееся к набору блоков передачи, принадлежащих аудиовизуальной презентации.
[0022] В некоторых из примеров реализации управляющий сигнал включает указание на желаемое поведение воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение ориентации, относящейся к воспроизводящему устройству. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение, находится ли воспроизводящее устройство в режиме непрерывного воспроизведения. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение, находится ли воспроизводящее устройство в режиме произвольного доступа.
[0023] В еще одном из примеров осуществления настоящего изобретения предложено устройство, которое включает средства для выполнения следующего: обнаружение конфигурации наблюдения, относящейся к набору блоков передачи, принадлежащих аудиовизуальной презентации; определение, удовлетворено ли условие, относящееся к конфигурации наблюдения; в ответ на определение того, что удовлетворено условие, относящееся к конфигурации наблюдения, выбор подмножества блоков передачи, принадлежащих аудиовизуальной презентации; и обеспечение формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения выбранного подмножества блоков передачи, принадлежащих аудиовизуальной презентации, на воспроизводящем устройстве.
[0024] В некоторых из примеров реализации такого устройства конфигурация наблюдения включает точку наблюдения и/или ориентацию наблюдения. В некоторых из подобных примеров реализации, а также в других примерах реализации, конфигурация наблюдения включает указание на наиболее вероятное направление просмотра, относящееся к набору блоков передачи, принадлежащих аудиовизуальной презентации.
[0025] В некоторых из примеров реализации управляющий сигнал включает указание на желаемое поведение воспроизводящего устройства. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение ориентации, относящейся к воспроизводящему устройству. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение, находится ли воспроизводящее устройство в режиме непрерывного воспроизведения. В некоторых из подобных примеров реализации, а также в других примерах реализации, определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение, находится ли воспроизводящее устройство в режиме произвольного доступа.
Краткое описание чертежей
[0026] Выше некоторые из примеров осуществления настоящего изобретения были рассмотрены в обобщенном виде, приведенное же ниже описание ссылается на приложенные чертежи, которые не обязательно выполнены в масштабе, где:
[0027] на фиг. 1 показан пример системного окружения, в котором могут применяться реализации, соответствующие примерам осуществления настоящего изобретения;
[0028] на фиг. 2 показана блок-схема устройства, которое может быть сконфигурировано в соответствии с одним из примеров осуществления настоящего изобретения;
[0029] фиг. 3 представляет собой блок-схему, иллюстрирующую один из примеров реализации, применяемый в контексте отображения видеоконтента виртуальной реальности, в соответствии с одним из примеров осуществления настоящего изобретения;
[0030] фиг. 4 представляет собой блок-схему, иллюстрирующую один из примеров реализации, применяемый в контексте отображения многоракурсной видеопрезентации, в соответствии с одним из примеров осуществления настоящего изобретения;
[0031] фиг. 5 представляет собой блок-схему, иллюстрирующую еще один из примеров реализации, применяемый в контексте отображения многоракурсной видеопрезентации, в соответствии с одним из примеров осуществления настоящего изобретения;
[0032] фиг. 6А представляет собой блок-схему алгоритма, которая иллюстрирует набор операций, выполняемых, например, устройством, показанным на фиг. 2, в соответствии с одним из примеров осуществления настоящего изобретения;
[0033] фиг. 6В представляет собой блок-схему алгоритма, которая иллюстрирует набор операций, выполняемых, например, устройством, показанным на фиг. 2, в соответствии с одним из примеров осуществления настоящего изобретения;
[0034] на фиг. 7 в графическом виде представлены термины, используемые при описании некоторых из примеров осуществления настоящего изобретения в данном документе;
[0035] на фиг. 8, также, в графическом виде представлены термины, используемые при описании некоторых из примеров осуществления настоящего изобретения в данном документе; и
[0036] фиг. 9 - это еще одно графическое представление терминов, используемых при описании некоторых из примеров осуществления настоящего изобретения в данном документе;
[0037] фиг. 10 представляет собой блок-схему, иллюстрирующую один из примеров реализации, применяемый в контексте сквозной передачи аудиовизуального контента виртуальной реальности, в соответствии с одним из примеров осуществления настоящего изобретения;
[0038] фиг. 11 представляет собой блок-схему, иллюстрирующую пример процедуры сшивки, проецирования и мэппинга изображений, выполняемой при обработке изображений виртуальной реальности или видеоконтента для видеокодирования или кодирования изображений, в соответствии с одним из примеров осуществления настоящего изобретения.
Подробное описание изобретения
[0039] Ниже будут более полно описаны некоторые из вариантов осуществления настоящего изобретения со ссылками на приложенные чертежи, на которых показана часть вариантов осуществления настоящего изобретения (но не все возможные варианты). Действительно, различные варианты осуществления настоящего изобретения могут быть реализованы во множестве различных форм, при этом их не следует считать ограничениями; данные варианты осуществления изобретения приведены для соответствия настоящего описания существующим нормативным требованиям. Аналогичные элементы обозначены аналогичными числовыми обозначениями на всех чертежах. В настоящем документе термины «данные», «контент», «информация» и аналогичные им могут использоваться взаимозаменяемо и относятся к данным, которые могут быть передаваться, приниматься и/или храниться в соответствии с вариантами осуществления настоящего изобретения. Соответственно, использование любого из этих терминов не следует понимать как ограничение объема вариантов осуществления настоящего изобретения.
[0040] Также, в настоящем документе термин «схемы» относится к (а) исключительно аппаратным схемным реализациям (например, реализациям на аналоговых схемах и/или цифровых схемах); (b) комбинациям схем и компьютерного программного продукта (или продуктов), включающих инструкции программного и/или микропрограммного обеспечения, хранимые в одном или более машиночитаемом запоминающем устройстве, которые функционируют совместно для обеспечения выполнения устройством одной или более описанных в настоящем документе функций; и (с) таким схемам, как, например, микропроцессор (или микропроцессоры) или часть микропроцессора (микропроцессоров), которым для работы необходимо программное или микропрограммное обеспечение, даже если это программное или микропрограммное обеспечение не присутствует физически. Такое определение термина «схемы» применимо ко всем случаям его использования в настоящем документе, включая все пункты формулы изобретения. В качестве дополнительного примера, в настоящем документе термин «схемы» включает в себя также реализации, содержащие один или более процессоров и/или их часть (части), а также сопутствующее программное и/или микропрограммное обеспечение. В качестве другого примера термин «схемы» в настоящем документе включает, например, интегральную схему для работы в радиоканале (в основной полосе частот) или интегральную схему прикладного процессора для мобильного телефона, или аналогичную интегральную схему в сервере, устройстве сотовой сети, другом сетевом устройстве и/или другом вычислительном устройстве.
[0041] В настоящем документе под «машиночитаемым носителем для хранения данных» понимают физический носитель для хранения данных (например, энергозависимое или энергонезависимое запоминающее устройство), при этом он отличается от «машиночитаемой среды передачи данных», относящейся к электромагнитному сигналу.
[0042] В настоящем документе под термином «мэппинг», в зависимости от контекста, понимают либо процедуру, при помощи которой данные изображения на плоской поверхности, в соответствии с проекцией, отображают на заданную двумерную плоскость, либо кадр изображения, полученный в результате этой процедуры.
[0043] В данном документе под выражением «ориентация наблюдения» понимают ориентацию, в которой выполняют воспроизведение (рендеринг). Во многих случаях это, как правило, ориентация относительно ориентации устанавливаемого на голове дисплея, применяемого для воспроизведения контента.
[0044] В данном документе под выражением «точка наблюдения» понимают точку или некоторый объем в трехмерном пространстве для получения или воспроизведения аудиовизуального контента виртуальной реальности. Точка наблюдения, как правило, совпадает с центральной точкой устройства, или оборудования, используемого для получения аудиовизуального контента виртуальной реальности, а также совпадает с положением головы наблюдателя в трехмерном пространстве, где расположены аудио- и видеотреки. В некоторых случаях точка наблюдения может не соответствовать единственной центральной точке устройства или оборудования захвата изображений, а может соответствовать некоторой траектории, например, окружности, некоторой области или некоторому объему. В некоторых случаях положение головы наблюдателя отслеживают, и воспроизведение, помимо поворотов головы, корректируют также согласно движениям головы, и в таком случае точка наблюдения может пониматься как исходное, или опорное, положение головы наблюдателя.
[0045] В данном документе под выражением «конфигурация наблюдения» понимают точку наблюдения и ориентацию наблюдения. В случае презентации, имеющей только одну возможную точку наблюдения, точка наблюдения не должна быть явным образом указана или определена в конфигурации наблюдения.
[0046] В настоящем документе под термином «проекция», или «проекция виртуальной реальности», понимается либо процедура, при помощи которой сферическое изображение проецируют на заданную геометрическую структуру, например, плоскую поверхность или куб, или кадр изображения, полученный в результате этой процедуры. Примеры проекций виртуальной реальности включают равнопрямоугольную панораму и кубическую карту. В некоторых случаях термин «проекция» может пониматься также как включающий преобразование трехмерной геометрии, например, кубической карты, в одну или более двумерных плоскостей. Такое преобразование может включать упаковку множества двумерных плоскостей в один кадр (например, в виде одной двумерной плоскости)
[0047] В данном документе под термином «порт просмотра», или «порт просмотра виртуальной реальности», понимают подмножество всенаправленного поля обзора. Под термином «порт просмотра» может пониматься подмножество всенаправленного визуального контента, отображаемого пользователю в текущий момент, и/или подмножество всенаправленного визуального контента, который кодируют отличающимся от остального визуального контента образом (например, с отличающимся качеством, или в виде отдельной части или в виде набора ограниченных по движению плиток). На отличие между этими двумя определениями может указывать квалификатор; то есть, первое можно называться воспроизведенным портом просмотра, тогда как последнее - кодированным портом просмотра. В некоторых случаях порт просмотра может быть представлен ориентацией и полем обзора, тогда в других случаях порт просмотра может быт представлен областью, например, прямоугольной, в двумерной системе координат для конкретного формата проекции. Одним из примеров последнего случая может быть прямоугольник в изображении равнопрямоугольной панорамы. Порт просмотра может включать несколько составляющих портов просмотра, которые совместно образуют этот порт просмотра и могут иметь различные свойства, например, качество изображения.
[0048] В данном документе «ориентация» (например, ориентация порта просмотра) может быть представлена угловыми координатами в некоторой системе координат. Угловые координаты могут, например, носить наименования «углы поворота вокруг поперечной, продольной и вертикальной осей» и указывать на углы поворота вокруг соответствующих осей координат, например, у, х и z соответственно. Для указания на ориентацию порта просмотра могут использоваться, например, углы поворота относительно поперечной, продольной и вертикальной осей. В некоторых случаях на ориентацию порта просмотра могут накладываться ограничения; например, угол поворота вокруг вертикальной оси может быть ограничен нулевым значением. В некоторых таких, а также других примерах, углы поворота вокруг поперечной и продольной осей указывают на эйлеров угол центральной точки порта просмотра в градусах. В большинстве случаев поворот вокруг поперечной оси применяют перед поворотом вокруг продольной, причем поворот вокруг поперечной ости соответствует повороту вокруг оси Y, а поворот вокруг продольной - вокруг оси X. Аналогично, в большинстве случаев, углы увеличиваются в направлении часовой стрелки при взгляде из начала координат. В соответствии с иллюстрацией фиг. 7, оси 700 включают ось 702 Y и ось 704 X. В соответствии с иллюстрацией фиг. 7, поворот 706 вокруг поперечной оси показан как поворот вокруг оси 702 Y, а поворот 708 вокруг продольной оси показан как поворот вокруг оси 704 X. Обратимся к фиг. 8, оси 800 используются для отображения трехмерного пространства 802 с использованием оси 804 Y, оси 806 Х и оси 808 Z. В соответствии с иллюстрацией фиг. 8, поворот 810 вокруг продольной оси и поворот 812 вокруг поперечной оси могут использоваться для указания на эйлеров угол центральной точки порта 814 просмотра, который лежит вдоль вектора 816.
[0049] В некоторых примерах реализации поле обзора (field of view, FOV) порта просмотра может быть представлено горизонтальным FOV (HorFov) и вертикальным FOV (VerFov). В некоторых случаях HorFov и VerFov могут быть, например, заданы таким образом, чтобы HorFov указывал на горизонтальное поле обзора для порта просмотра в градусах, а VerFov указывал на вертикальное поле обзора для порта просмотра в градусах. На фиг. 9 проиллюстрирован пример использования HorFov и VerFov для представления FOV порта просмотра. На фиг. 9 такое же трехмерное пространство 802, как и показанное на фиг. 8, отображено с использованием осей 800 (включающих ось 804 Y, ось 806 Х и ось 808 Z). Аналогично, в пространстве 802 размещен порт просмотра. Вместо применения поворота вокруг продольной и/или поперечной осей для выражения эйлерова угла центральной точки порта 814 просмотра, на фиг. 9 показан пример, где поле обзора для порта просмотра 814 может быть представлено в виде HorFov 902 и VerFov 904.
[0050] В данном документе выражение «глобальная система координат» может означать трехмерную систему координат, соответствующую предшествующему описанию, и имеющую начало координат в точке наблюдения.
[0051] В данном документе термин «произвольный доступ» может означать способность декодера начинать декодирование потока в точке, отличающейся от начала потока, и воссоздавать при этом точный или аппроксимированный реконструированный мультимедийный сигнал, например, являющийся представлением декодированных изображений. Операция произвольного доступа может характеризоваться точкой произвольного доступа и точкой восстановления. Точка произвольного доступа может быть определена как местоположение в потоке мультимедийных данных, например, блок доступа или закодированное изображение в битовом потоке видеоданных, с которых может начинаться декодирование. Точка восстановления может быть определена как первое местоположение в потоке мультимедийных данных, или в восстановленном сигнале, отличающееся тем, что все мультимедийные данные, в точке восстановления или следующие за ней в порядке декодирования будут иметь корректное или приблизительно корректное содержимое, если декодирование начнется с соответствующей точки произвольного доступа. Если точка произвольного доступа совпадает с точкой восстановления, то операция произвольного доступа является мгновенной; в остальных случаях она может быть постепенной.
[0052] Точки произвольного доступа позволяют, например, выполнять операции поиска, перемотки вперед и назад, как в хранимых локально потоках мультимедийных данных, так и при их потоковой передаче. В тех случаях, когда применяется потоковая передача по запросу, серверы могут реагировать на запросы поиска передачей данных, начиная с точки произвольного доступа, ближайшей к (и во многих случаях предшествующей) запрошенному местоположению операции поиска, и/или декодеры могут начинать декодирования с точки произвольного доступа, ближайшей к (и во многих случаях предшествующей) запрошенному местоположению операции поиска. Переключение между кодированными потоками с различным битрейтом часто используют при одноадресной передаче для согласования передаваемого битрейта с предсказываемой пропускной способностью сети, чтобы избежать ее перегрузки. Переключение на другой поток может выполняться в точке произвольного доступа. При этом точки произвольного доступа позволяют подключаться к широковещательной или многоадресной передаче. При этом точка произвольного доступа может кодироваться в конце монтажных эпизодов исходной последовательности или в качестве реакции на запрос обновления внутренне предсказываемого изображения.
[0053] В некоторых из примеров реализации настоящего изобретения подразумеваются использование стандартов форматов медиафайлов, которые включают, без ограничения перечисленным, базовый формат медиафайла стандарта ISO (ISO/IEC 14496-12, который имеет аббревиатуру ISOBMFF), формат файлов MPEG-4 (ISO/IEC 14496-14, также называемый форматом МР4), формат файлов для видеоданных, структурированных NAL-блоками (Network Abstraction Layer, уровень сетевой абстракции) (ISO/IEC 14496-15) и формат файлов 3GPP GPP (3GPP GPP TS 26.244, также известный под названием формата 3GP). Базовый формат медиафайлов ISO является основой для получения всех упомянутых выше форматов файла (за исключением собственно формата медиафайлов ISO).
[0054] Ниже будут описаны некоторые из понятий, структур и спецификаций ISOBMFF, в качестве примера формата контейнерного файла, на основе которого могут быть реализованы варианты осуществления настоящего изобретения. Однако аспекты настоящего изобретения не ограничены форматом ISOBMFF, напротив, данное описание приведено исключительно в качестве базы для частичной или полной реализации настоящего изобретения.
[0055] Элементарный строительный блок в формате ISOBMFF называют «боксом». Каждый бокс может иметь заголовок и полезную нагрузку. В заголовке бокса указывают тип бокса и размер бокса, как правило, выраженный в байтах. Бокс может включать внутри себя другие боксы, при этом в формате файлов ISO определены типы боксов, которые могут находиться внутри бокса каждого типа. При этом, также, некоторые боксы должны присутствовать в каждом файле обязательно, тогда как другие боксы могут быть опциональными. В дополнение, для боксов некоторого типа, допустимо наличие нескольких экземпляров бокса в одном файле. Таким образом, в формате ISOBMFF по существу определена иерархическая структура боксов. Каждый бокс в базовом медиафайле ISO может быть идентифицирован четырехзначным кодом (four character code, 4CC). Также, четырехзначный код может быть представлен 32-битным целым без знака (с использованием выбранных правила преобразования символов в 8-битные значения, порядка следования бит и порядка следования байт). В заголовке может быть предоставлена информация о типе и размере бокса.
[0056] В соответствии форматов ISOBMFF файл может включать мультимедийные данные и метаданные, которые могут быть размещены в различных боксах. В одном из примеров реализации мультимедийные данные могут размещаться в боксе метаданных (mdat), а для размещения метаданных может использоваться бокс фильма (moov). В некоторых случаях для того, чтобы файл мог быть обработан, обязательно должны присутствовать оба указанных бокса, бокс mdat и бокс moov. Бокс фильма (moov) может содержать один или несколько треков («дорожек»), при этом каждый трек занимает один соответствующий бокс трека (trak). Каждый трек связан с указателем, идентифицируемым четырехсимвольным кодом, который определяет тип трека. Треки видео-, аудиопоследовательности и последовательности изображений могут называться мультимедийными треками, при этом они содержат элементарный поток мультимедийных данных. Другие типы треков включают треки указаний и треки синхронизированных метаданных. Треки содержат сэмплы, например, аудио- или видеокадры. Мультимедийный трек представляет собой сэмплы (которые могут также называться мультимедийными сэмплами), отформатированные согласно формату сжатия мультимедийных данных (и правилам его инкапсуляции в формат ISOBMFF). Мультимедийный трек представляет собой сэмплы указаний, содержащие инструкции по формированию пакетов для передачи по указанному протоколу связи. Такие инструкции могут содержать указания по формированию заголовка пакета и указания по формированию полезной нагрузки пакета. При формировании полезной нагрузки пакета могут осуществляться ссылки на данные, расположенные в других треках или в других элементах. То есть, например, могут приводиться указания данные, размещенные в других треках или элементах, при помощи ссылки, указывающей, какой фрагмент данных в конкретном треке или в конкретном элементе должен, согласно инструкциям, быть скопирован в пакет в ходе процедуры формирования пакета. Трек синхронизированных метаданных может ссылаться на сэмплы, описывающие мультимедийные сэмплы или сэмплы указаний, на которые осуществлена ссылка. Для представления одного типа мультимедийных данных может быть выбран, как правило, один мультимедийный трек.
[0057] Бокс 'trak' содержит бокс таблицы сэмплов (Sample Table). Бокс таблицы сэмплов может включать, например, индексацию (набор указателей) времени и данных для медиасэмплов в треке. Как правило, бокс таблицы сэмплов должен содержать бокс с описанием сэмпла (Sample Description). Бокс с описанием сэмпла обычно содержит также поле счетчика записей, которое определяет количество записей с информацией о сэмплах, содержащихся в боксе. В большинстве реализации бокс с описанием сэмплов должен содержать по меньшей мере одну запись с информацией о сэмплах. Формат записи с информацией о сэмплах зависит от типа обработчика для трека. В записях с информацией о сэмплах приведена подробная информация о применяемом типе кодирования и вся инициализационная информация, необходимая для такого кодирования.
[0058] Функциональность фрагментов фильма может обеспечивать возможность удобного разбиения метаданных, которые в противном случае размещались в боксе фильма с разбиением на несколько частей. Каждая часть может соответствовать определенному периоду времени трека. Другими словами, функциональность фрагментов фильма может давать возможность чередования метаданных и мультимедийных данных в файле. Следовательно, размер бокса фильма может быть ограничен и могут быть реализованы описанные выше сценарии применения.
[0059] В некоторых из примеров мультимедийные сэмплы для фрагментов фильма могут располагаться в боксе mdat. Однако для метаданных фрагментов фильма может присутствовать бокс moof. Бокс moof может включать информацию для определенного интервала времени воспроизведения, который ранее был в боксе moov. Бокс moov может при этом сам являться полноценным «фильмом», однако при этом он может включать в дополнение бокс mvex, который указывает на то, какие фрагменты фильма следуют за ним в этом файле. Фрагменты фильма позволяют увеличить временную длительность презентации, связанной с боксом moov.
[0060] Внутри фрагмента фильма может присутствовать набор сегментов трека, включающий любое количество (ноль и более) треков. Фрагменты трека, в свою очередь, могут включать в себя любое количество (ноль и более) отрезков (run) трека, каждый из которых представляет собой непрерывную последовательность смежных сэмплов в этом треке (и, следовательно, аналогичен «чанкам»). Внутри этих структур присутствует множество опциональных полей, которые могут иметь заданные по умолчанию значения. Метаданные, которые могут входить в бокс moof, могут быть ограничены подмножеством метаданных, допускающих включение в бокс moov, и в некоторых случаях могут кодироваться отличающимся образом. Подробная информация о боксах, которые могут входить в состав бокса moof приведена в спецификации формата ISOBMFF. Автономный (самодостаточный) фрагмент фильма может быть определен как фрагмент, состоящий из бокса moof и бокса mdat, которые следуют друг за другом в порядке файла, и в котором бокс mdat содержит сэмплы фрагмента фильма (метаданные для которого содержит бокс moof) и не содержит сэмплов каких-либо других фрагментов фильма (т.е. никаких других боксов moof).
[0061] Группирование сэмплов в формате ISOBMFF и производных от него форматах, например, в формате файлов видеоданных, структурированных NAL-блоками (ISO/IEC 14496-15), может быть определено как назначение каждого сэмпла в треке членом одной из групп сэмплов на основе критерия группирования. Группа сэмплов при группировании сэмплов не ограничена непрерывной последовательностью смежных сэмплов и может включать содержать сэмплы, не являющиеся соседними друг с другом. Поскольку сэмплы в треке могут группироваться более чем одним способом, каждая группа сэмплов может иметь поле типа, в котором указывают тип группирования. Группы сэмплов могут представлены двумя взаимосвязанными структурами данных: (1) бокс SampleToGroup (соответствия сэмпл-группа) (sgpd), который отражает назначения сэмплов в группы сэмплов; и (2) бокс SampleGroupDescription (описание группы сэмплов) (sgpd), который содержит запись группы сэмплов, описывающую свойства группы, для каждой группы сэмплов. Могут присутствовать несколько экземпляров боксов SampleToGroup и SampleGroupDescription для различных критериев группирования. Они могут отличаться полем типа, которое используют для указания на тип группирования.
Боксы 'sbgp' и 'sgpd' могут быть связаны с использованием значения grouping_type и, в некоторых версиях боксов, также значения grouping_type_parameter. В боксе 'sbgp' указан порядковый номер записи описания группы сэмплов, к которой принадлежит каждый конкретный сэмпл.
[0062] Формат файлов Matroska позволяет хранить (без ограничения перечисленным) любые видео-, аудиотреки, треки изображений или субтитров в одном файле. Расширения файлов Matroska включают: .mkv для видеофайлов (с субтитрами и звуком), .mk3d для стереоскопического видео, .mka для файлов, содержащих только аудиоинформацию, и .mks для файлов, содержащих только субтитры. Формат Matroska может быть использован как основа для производных форматов файлов, таких как WebM.
[0063] В качестве базы для формата Matroska использован расширяемый двоичный метаязык (Extensible Binary Meta Language, EBML). Язык EBML представляет собой двоичный формат с выравниванием по октетам (байтам), вдохновленный принципами языка XML. Язык EBML - это обобщенное описание метода разметки двоичных данных. Файл Matroska состоит из «элементов» (Elements), которые составляют «документ» на языке EBML. Элементы содержат идентификатор элемента, дескриптор размера элемента и собственно двоичные данные. Элементы могут быть вложенными.
[0064] Сегментный элемент (Segment Element) в формате Matroska - это контейнер для других элементов верхнего уровня (уровня 1). Файл Matroska может содержать (не будучи при этом им ограниченным) один сегмент (Segment). Мультимедийные данные в файлах Matroska организованы в «кластеры» (Clusters) или «кластерные элементы» (Cluster Elements), каждый из которых, как правило, содержит несколько секунд мультимедийных данных. Каждый кластер содержит элементы BlockGroup («группа блоков»), которые, в свою очередь, содержат «блочные элементы» (Block Elements). Элементы-подсказки (Cues Element) содержат метаданные, которые могут быть вспомогательным средством при произвольном доступе или поиске и могут содержать файловые указатели на местоположение в файле или соответствующие временные метки для точек поиска.
[0065] Уникальный идентификатор ресурса (uniform resource identifier, URI) может быть определен как строка символов, используемая для идентификации имени ресурса. Такой идентификатор дает возможность взаимодействовать с представлениями ресурса по сети при помощи специальных протоколов. URI определяют при помощи схемы, которая задает конкретный синтаксис и соответствующий для URI протокол. Унифицированный локатор ресурса (uniform resource locator, URL) и унифицированное имя ресурса (uniform resource name, URN) являются частными случаями идентификатора URI. URL-локатор может быть определен как идентификатор URI, который идентифицирует веб-ресурс и описывает средства для работы с представлением ресурса или средства его получения, описывая при этом как основной механизм доступа, так и местоположение в сети. Имя URN может быть определено как URI-идентификатор, который идентифицирует ресурс по имени в конкретном пространстве имен. Имя URN может применяться для идентификации ресурсов, без указания на его местоположения или способ доступа к нему.
[0066] Для доставки мультимедийного контента в реальном времени по сети Интернет, например, в приложениях потоковой передачи видеоданных, широко используется протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP). Для адаптивной потоковой передачи по протоколу HTTP на рынке предложены несколько готовых решений, например, технология плавной потоковой передачи от Microsoft (Microsoft Smooth Streaming, Apple), технология прямой потоковой передачи по протоколу HTTP от Apple (HTTP Live Streaming) и технология динамической потоков передачи от Adobe (Adobe Dynamic Streaming), а также созданы соответствующие проекты стандартизации. Адаптивная потоковая передача по протоколу HTTP (Adaptive HTTP streaming, AHS) была впервые стандартизована в 9-й редакции стандарта Консорциума третьего поколения (3GPP) для службы потоковой передачи с коммутацией пакетов (packet-switched streaming, PSS) (Документ: 3GPP TS 26.234 Release 9: "Transparent end-to-end packet-switched streaming service (PSS); protocols and codecs" («Служба прозрачной сквозной потоковой передачи с коммутацией пакетов (PSS); протоколы и кодеки», редакция 9). Группа MPEG взяла редакцию 9 стандарта AHS 3GPP за отправную точку для стандарта MPEG DASH (документ ISO/IEC 23009-1: "Dynamic adaptive streaming over HTTP (DASH) - Part 1: Media presentation description and segment formats" (Динамическая адаптивная потоковая передача по протоколу HTTP (DASH) - часть 1: описание представления мультимедийных данных и форматы сегментов»). Стандарты MPEG DASH и 3GP-DASH технически близки друг другу, и соответственно, обозначаться совместно как просто DASH. Ниже будут представлены некоторые из понятий, форматов и операций технологии DASH, в качестве примера системы потоковой передачи видео, в которой могут быть реализованы варианты осуществления настоящего изобретения. Аспекты настоящего изобретения не ограничены технологией DASH, напротив, данное описание приведено исключительно в качестве базы для частичной или полной реализации настоящего изобретения.
[0067] При динамической адаптивной потоковой передаче видео по протоколу HTTP (DASH), мультимедийный контент может захватываться и храниться на HTTP-сервере и может доставляться при помощи протокола HTTP. Контент может храниться на сервере в виде двух частей: описание медиапрезентации (Media Presentation Description, MPD), которое описывает манифест имеющегося контента, различные его альтернативы, их URL-адреса и другие характеристики; и сегменты, которые содержат фактические битовые потоки мультимедийных данных, в форме чанков, в одном или нескольких файлов. Описание медиапрезентации (MPD) содержит информацию, необходимую клиентам для установления сеанса динамической адаптивной потоковой передачи видео по протоколу HTTP. Описание MPD содержит информацию, описывающую медиапрезентацию, например, унифицированный локатор ресурсов (URL) протокола HTTP для каждого сегмента, позволяющий выполнять запросы GET для получения этих сегментов. Для воспроизведения контента клиент DASH может получать MPD, например, с использованием протокола HTTP, электронной почты, флэш-накопителя, широковещательной передачи или других методов передачи данных. При помощи анализа MPD-описания клиент DASH может получить информацию о синхронизации программ, доступности медиаконтента, типах медиаданных, разрешении, минимальной и максимальной полосах пропускания, а также о наличии различных кодированных альтернатив для мультимедийных компонентах, функциях доступности и требованиям по управлению цифровыми правами (digital rights management, DRM), расположению медиакомпонентов в сети и других характеристиках контента. При помощи этой информации клиент DASH может выбрать подходящую кодированную альтернативу а начать потоковую передачу контента, получая сегменты, например, с помощью запросов GET протокола HTTP. После соответствующей буферизации, для компенсации флуктуации в пропускной способности сети, клиент может продолжить получение дальнейших сегментов, с одновременном контролем колебаний пропускной способности. Клиент может выбрать, каким образом адаптироваться к доступной полосе пропускания, получая сегменты различных альтернатив (с более или менее высоким битрейтом), которые позволяют поддерживать приемлемое заполнение буфера.
[0068] Ниже будут рассмотрены определения, которые могут использоваться в контексте технологии DASH. Компонент медиаконента, или медиакомпонент, может быть определен как один непрерывный компонент медиаконтента с присвоенным ему типом медиакомпонента, который может быть закодирован в медиапоток независимо. Медиаконтент может быть определен как один период (period) медиаконтента или как последовательность из смежных периодов медиаконтента. Тип компонента медиаконтента может быть определен как один из типов медиаконтента, например, аудио, видео или текст. Медиапоток может быть определен как закодированный вариант компонента медиаконтента.
[0069] Ниже описана иерархическая модель данных, которая в технологии DASH используется для структурирования медиапрезентации. Медиапрезентация включает в себя последовательность из одного или более периодов (Periods), причем каждый период содержит одну или более групп (Groups), каждая группа содержит один или более наборов адаптации (Adaptation Sets), каждый набор адаптации содержит одну или более репрезентаций (Representations), а каждая репрезентация состоит из одного или более сегментов (Segments). Группа может быть определена, как комплект наборов адаптации, которые не предполагаются для одновременного отображения. Набор адаптации может быть определен как набор взаимозаменяемых кодированных версий одно и или нескольких составляющих мультимедийного контента. Репрезентация представляет собой одну из альтернатив мультимедийного контента, или его подмножество, как правило, отличающееся параметрами кодирования, например, битрейтом, разрешением, языком, кодеком и т.п. Каждый сегмент содержит мультимедийные данные определенной длительности, а также метаданные для декодирования и отображения содержащегося в нем мультимедийного контента. Сегмент идентифицируется URI-идентификатором и, как правило, может быть запрошен при помощи запроса HTTP GET. Сегмент может быть определен как блок данных, связанных с локатором HTTP-URL, и опционально, байтовым диапазоном, заданным в описании MPD.
[0070] Описание MPD в технологии DASH соответствует спецификации расширяемого языка разметки (Extensible Markup Language, XML), и соответственно, задается при помощи элементов и атрибутов, определенных в языке XML. Описание MPD может быть задано с использованием описанных ниже условных обозначений. Элементы в XML-документе могут идентифицироваться первой прописной буквой и могут отображаться жирным шрифтом, например, «Element». Выражение, сообщающее о том, что элемент Element 1 содержится в другом элементе, Element 2, может быть записано как Element 2. Element 1. Если имя элемента состоит из двух или более слов, объединенных друг с другом, может применяться так называемый «горбатый регистр», например, ImportantElement. Элементы могут встречаться либо ровно один раз, либо может быть определено минимальное и максимальное количество экземпляров, при помощи, соответственно,<minOccurs> … <maxOccurs>. Атрибуты в XML-документе идентифицируются первой строчной буквой, а также им может предшествовать знак '@', например, @attribute. Для указания на конкретный атрибут, @attribute, содержащий в элементе Element может применяться запись вида Element@attribute. Если имя атрибута состоит из двух или более слов, объединенных друг с другом, после первого слова может применяться «горбатый регистр», например, @veryImportantAttribute. В XML атрибуты могут иметь различный статус: обязательный (mandatory, M), опциональный (optional. О), опциональный с заданным по умолчанию значением (optional with default value, OD) и условно обязательный (conditionally mandatory, CM).
[0071] В технологии DASH все дескрипторные элементы, как правило, имеют сходную структуру, а именно, они содержат атрибут @schemeIdUri, включающий URI-идентификатор, который указывает на схему, опциональный атрибут @value и опциональный атрибут @id. Семантика элементов зависит от конкретной применяемой схемы. URI-идентификатор, определяющий схему, может быть именем, URN, или локатором, URL. Часть дескрипторов определены стандартом MPEG-DASH (ISO/IEC 23009-1), тогда как другие могут быть определены, дополнительно или альтернативно, в других стандартах. Если используется не MPEG-DASH, а другой стандарт, описание MPD не дает никакой конкретной информации о том, как использовать дескрипторные элементы. Выбор значений дескрипторных элементов и подходящей информации о схеме зависит от конкретного приложения или стандарта, в которых применяют форматы DASH. В приложении или стандарте, где задействованы один из таких элементов, может быть определен идентификатор схемы (Scheme Identifier), имеющий форму URI-идентификатора, и пространство имен для элементов в случае использования такого идентификатора схемы. Идентификатор схемы располагается в атрибуте @schemeIdUri. Когда требуется простой набор пронумерованных значений, для каждого значения может быть определена текстовая строка, и это строка может быть включена в атрибут @value. Если нужны структурированные данные, то в отдельном пространстве имен может быть определен любой элемент или атрибут расширения. Значение @id может использоваться для указания на уникальный дескриптор или на группу дескрипторов. В последнем случае может предъявляться требование, чтобы дескрипторы с одинаковыми значениями атрибута @id были синонимичны, то есть, в этом случае достаточно обработать только один из множества дескрипторов с идентичными значениями @id. Два элемента, имеющих тип DescriptorType, являются эквивалентными, если имя элемента, значение @schemeIdUri и значение атрибута @value являются эквивалентными. Если @schemeIdUri является URN-именем, то под эквивалентностью может пониматься лексическая эквивалентность, определенная в параграфе 5 стандарта RFC 2141. Если @schemeIdUri является URL-локатором, то под эквивалентностью может пониматься посимвольное совпадение, определенное в параграфе 6.2.1 стандарта RFC3986. Если атрибут @value отсутствует, эквивалентность может быть установлена исключительно по эквивалентности @schemeIdUri. Атрибуты и элементы в пространствах имен расширений не могут использоваться для установления эквивалентности. При установлении эквивалентности атрибут @id может быть проигнорирован.
[0072] В стандарте MPEG-DASH определены дескрипторы EssentialProperty и SupplementalProperty («существенное свойство» и «дополнительное свойство»). Элементом EssentialProperty создатель медиапрезентации указывает, что успешная обработка этого дескриптора существенна для корректного применения информации в родительском элементе, включающем это дескриптор, если только @id этого элемента не совпадает с @id какого-либо другого элемента EssentialProperty. Если несколько элементов EssentialProperty имеют одинаковый @id, то достаточно обработки только одного такого элемента EssentialProperty. При этом должен быть обработан по меньшей мере один элемент EssentialProperty с каждым уникальным значением @id. Если схема, или значение дескриптора EssentialProperty, не опознаны, клиент DASH игнорирует родительский элемент, который содержит этот дескриптор. В MPD-описании могут присутствовать множество элементов EssentialProperty с идентичными значениями @id и с различными значениями @id.
[0073] С помощью элемента SupplementalProperty создатель медиапрезентации указывает на то, что дескриптор содержит вспомогательную информацию, которую клиент DASH может использовать для оптимизированной обработки данных. Если схема, или значение дескриптора SupplementalProperty, не опознано, клиент DASH игнорирует родительский элемент, который содержит этот дескриптор. В MPD-описании могут присутствовать множество элементов SupplementalProperty.
[0074] В стандарте MPEG-DASH определен элемент Viewpoint (точка зрения), который может иметь формат дескриптора свойства. Атрибут @schemeIdUri элемента Viewpoint используют для указания на применяемую схему определения точки зрения. Наборы адаптации, имеющие несовпадающие значения элемента Viewpoint, содержат различные составляющие мультимедийного контента. Элементы Viewpoint могут также применяться не только для видеоданных, но и для других типов мультимедийного контента. Наборы адаптации с эквивалентными значениями элемента Viewpoint должны отображаться вместе. Такая обработка должна применяться как для распознанных, так и для нераспознанных значений @schemeIdUri.
[0075] В обязательном приложении Н (Annex H) стандарта MPEG-DASH определено описание пространственных отношений (Spatial Relationship Description, SRD). Ниже приведены несколько фрагментов спецификации SRD.
[0076] Схема с применением SRD-описания позволяет автору описания медиапрезентации (Media Presentation Description) задавать пространственные отношения между пространственными объектами (Spatial Objects). Пространственный объект может быть представлен либо набором адаптации, либо подрепрезентацией (Sub-Representation). В качестве примера, пространственное отношение может указывать на то, что соответствующие видеоданные являются пространственным подмножеством другого, полнокадрового видео (например, целевой областью или тайлом).
[0077] Дескрипторы SupplementalProperty и/или EssentialProperty, значение @schemeIdUri у которых равно "urn:mpeg:dash:srd:2014" используют для передачи информации о пространственных отношениях, относящейся к содержащему их пространственному объекту. SRD-описание может содержаться только в этих двух элементах MPD-описания (то есть, AdaptationSet и SubRepresentation).
[0078] SRD-описания на уровне подрепрезентации могут использоваться для определения пространственных объектов в одной репрезентации, например, в потоках HEVC с разбиением на тайлы. В таком случае SRD-дескрипторы могут присутствовать как на уровне набора адаптации, так и на уровне подрепрезентации.
[0079] Значением элемента SupplementalProperty или EssentialProperty при использовании схемы SRD является список значений SRD-параметров, разделенных запятыми. Параметры source_id, object_x, object_y, object_width и object_height SRD-описания являются обязательными, тогда как присутствие параметров total_width, total_height и spatial_set_id является опциональным или необходимо только при определенных условиях.
[0080] Параметр source_id - это неотрицательное целое десятичное число, являющееся идентификатором источника контента. Параметр source_id, внутри периода (Period), уникально идентифицирует источник контента. Он в неявной форме задает систему координат, относящуюся к этому источнику. В данной координатной системе используют произвольное начало координат (0; 0); ось х проходит слева направо, а ось у - снизу вверх. SRD-описание с таким же значением source_id будет иметь такое же начало координат и ориентации осей. Пространственные отношения для пространственных объектов, имеющих различные значения source_id в SRD-описаниях, не определены.
[0081] Для каждого значения source_id определено базовое пространство, которое соответствует прямоугольной области, полностью охватывающей исходный контент, при этом верхний левый угол этой области располагается в начале координат данной системы координат. Значения total_width (общая ширина) и total_height (общая высота) в SRD-описании указывают на размер этого базового пространства в произвольно выбранных единицах. Значение total_width - неотрицательное целое число в десятичной форме, представляющее собой ширину базового пространства в произвольно выбранных единицах. Значение total_height неотрицательное целое число в десятичной форме, представляющее собой высоту базового пространства в произвольно выбранных единицах. В MPD-описании может и не быть элемента Spatial Object, охватывающего весь источник контента, например, когда исходный контент в совокупности представлен двумя отдельными видео.
[0082] Значение object_x это неотрицательное целое число в десятичной форме, представляющее собой горизонтальную позицию верхнего левого угла пространственного объекта (Spatial Object) в произвольно выбранных единицах. Значение object_y - это неотрицательное целое число в десятичной форме, представляющее собой вертикальную позицию верхнего левого угла пространственного объекта (Spatial Object) в произвольно выбранных единицах. Значение object_width - неотрицательное целое число в десятичной форме, представляющее собой ширину пространственного объекта (Spatial Object) в произвольно выбранных единицах. Значение object_height - неотрицательное целое число в десятичной форме, представляющее собой высоту пространственного объекта (Spatial Object) в произвольно выбранных единицах. Параметры object_x и object_y (и, соответственно, object_width и object_height) отражают позиции на плоскости (и, соответственно, размеры на плоскости) соответствующего пространственного объекта в системе координат, относящейся к заданному источнику. Значения параметров object_x, object_y, object_width и object_height задают относительно значений параметров total_width и total_height, описанных выше. Позиции (object_x, object_у) и размеры (object_width, object_height) для SRD-описаний с одинаковыми значениями source_id, могут сравниваться друг с другом, после учета размера базового пространства, то есть, после деления значений object_x и object_width на значение total_width, и деления значений object_у и object_height на значения total_height, относящихся к соответствующим им дескрипторам. В различных дескрипторах могут использоваться различные значения total_width и total_height, что дает возможность задавать информацию о позиции в одном и том же базовом пространстве при помощи различных единиц.
[0083] Параметр spatial_set_id - неотрицательное целое число в десятичной форме, которое представляет собой идентификатор группы пространственных объектов. Если оно отсутствует, то пространственный объект, связанный с этим дескриптором, не принадлежит никакому пространственному набору, и информацию о пространственном наборе не предоставляют. Авторы MPD-описания при помощи параметра spatial_set_id могут указывать на то, что некоторые пространственные объекты в заданном source_id имеют конкретные пространственные отношения. К примеру, авторы MPD-описания могут группировать все наборы адаптации, соответствующие тайлам с одинаковым уровням разрешения. Таким образом, параметр spatial_set_id может использоваться клиентом DASH для быстрого выбора пространственных объектов, связанных пространственными отношениями.
[0084] Инициализационный сегмент (Initialization Segment) может быть определен как сегмент, который содержит метаданные, необходимые для воспроизведения медиапотоков, инкапсулированных в медиасегментах. В форматах сегментов, основанных на ISOBMFF, инициализационный сегмент может включать бокс фильма ('moov'), который может не содержать метаданных сэмплов, т.е. все метаданные для сэмплов могут находиться в боксах 'moof'.
[0085] Медиасегмент содержит некоторый временной интервал медиаданных для воспроизведения с нормальной скоростью, и такой интервал называют длительностью медиасегмента или длительностью сегмента. Создатель контента, или поставщик услуги, может выбирать длительность сегмента согласно требуемым характеристикам услуги. Например, относительно короткая длительность сегмента может применяться для услуги прямого вещания, что позволяет обеспечить минимальное время запаздывания между оконечными узлами. Это так, поскольку длительность сегмента обычно является минимальным значением запаздывания между узлами, регистрируемой клиентом DASH, поскольку в технологии DASH сегмент является элементарным блоком формирования медиаданных. Формирование контента выполняется обычно таким образом, чтобы медиаданные предоставлялись сервером целыми сегментами. При этом, также, во многих реализациях клиентских программ сегменты могут использоваться в качестве минимальной единицы запросов GET. Таким образом, в типовых системах для прямого вещания сегмент может быть запрошен DASH-клиентами, только когда вся длительность медиасегмента целиком доступна, а также закодирована и инкапсулирована в сегмент. В случае услуг, предоставляемых по запросу, могут применяться различные стратегии выбора длительности сегмента.
[0086] Сегмент может быть дополнительно разбит на подсегменты, чтобы, например, загрузка сегментов могла выполняться по частям. Может предъявляться требование, чтобы подсегменты содержали только целые блоки доступа. Подсегменты могут быть проиндексированы в боксе индексного указателя сегментов (Segment Index box), который содержит информацию о соответствии между интервалом времени презентации и байтовом диапазоном для каждого подсегмента. В боксе индексного указателя подсегментов могут быть также описаны подсегменты и точки доступа к потоку в сегментах, при помощи указания их длительности и байтовых смещений. Клиент DASH может использовать информацию, полученную из бокса индексного указателя подсегментов для формирования запроса HTTP GET на конкретный подсегмент с использованием подсегментов с использованием HTTP-запроса байтового диапазона. Если применяют относительно большую длительность сегментов, то подсегменты могут применяться для сохранения рационального размера HTTP-ответов, дающего достаточно гибкости для адаптации битрейта. Информация индексации сегмента может быть помещена в один бокс в начале соответствующего сегмента или распределена по множеству индексирующих боксов в сегменте. Возможны различные способы распределения, например, иерархическое, гирляндное и гибридное. Такой подход позволяет не добавлять большой бокс в начале сегмента, и соответственно, избежать потенциальной длительной задержки в начале загрузки.
[0087] В обычные репрезентации (Representations) встраивают подрепрезентации (Sub-Representations), которые описывают при помощи элемента SubRepresentation. Элементы SubRepresentation содержатся в элементе Representation. Элемент SubRepresentation описывает свойства одного или более составляющих мультимедийного контента, входящих в состав репрезентации. Он, например, может описывать конкретные свойства встроенной аудиосоставляющей (например, кодек, частоту дискретизации и т.п.), встроенных субтитров (например, кодек) или может описывать встроенный уровень с более низким качеством (например, меньшей частотой смены кадров, или наоборот). Часть атрибутов и элементов у подрепрезентаций и репрезентаций одни и те же. Если в элементе Sub Representation имеется атрибут @level, то выполняется следующее:
- подрепрезентаций позволяют получить доступ к менее качественным версиям репрезентации, в которой они содержатся. В этом случае подрепрезентаций, например, позволяют извлечь аудиодорожку из мультиплексированной репрезентации, или позволяют эффективно выполнять операции ускоренного просмотра, или перемотки, за счет меньшей частоты смены кадров;
- Инициализационный сегмент (Initialization Segment) и/или медиасегменты (Media Segments) и/или индексные сегменты (Index Segments) должны иметь достаточно информации, чтобы данные легко могли быть получены при помощи частичных запросов GET протокола HTTP. Конкретный способ предоставления такой информации определяется применяемым форматом мультимедийных данных.
- Если применяют сегменты формата ISOBMFF, выполняется следующее:
Инициализационный сегменты содержит бокс назначения уровня (Level Assignment).
Бокс индексного указателя подсегментов (Subsegment Index box, 'ssix') присутствует для каждого подсегмента.
Атрибуте @level определяет уровень, с которым описанная подрепрезентация связана в индексном указателе подсегментов. Информация в репрезентации, подрепрезентаций и боксе назначения уровня (Level Assignment box, 'leva') включает в себя информацию о распределении мультимедийных данных по уровням.
Мультимедийные данные должны иметь такой порядок, чтобы каждый уровень давал повышение качества по сравнению с нижележащими уровнями.
[0088] Если атрибут @level отсутствет, то элемент SubRepresentation используют исключительно для более детального описания медиапотоков, входящих в состав репрезентации.
[0089] В формате ISOBMFF имеется так называемый механизм уровней, позволяющий определять подмножества внутри файла. Уровни следуют иерархии зависимостей, благодаря чему сэмплы, назначенные для уровня n, могут зависеть от любых сэмплов уровней m, где m<=n, и не зависеть ни от каких сэмплов уровней р, где р>n. К примеру, уровни могут быть заданы в соответствии с временными подуровнями (например, TemporalId в стандарте HEVC). Уровни могут объявляться в боксе назначения уровней ('leva'), входящем востав бокса расширения фильма (Movie Extends, 'mvex'). Уровни не могут быть заданы для исходного фильма. Когда бокс назначения уровней присутствует, он применим ко всем фрагментам фильма, следующим за исходным фильмом. Для содержимого бокса назначения уровней определены «фракции», которые состоят из одного или более боксов фрагмента фильма (Movie Fragment) и связанных с ними боксов мультимедийных данных (Media Data), возможно, включающих только начальную часть последнего бокса медиаданных. Внутри каждой фракции данные для каждого уровня непрерывны. Данные для уровней внутри фракции следуют друг за другом в порядке увеличения номеров уровней. Все данные внутри фракции распределены по уровням. При помощи бокса назначения уровней обеспечивают отображение свойств, например, масштабируемых уровней или временных подуровней, на уровни. Свойство (feature) может быть задано при помощи трека, подтрека внутри трека, или группы сэмплов в треке. К примеру, группа сэмплов временного уровня может использоваться для указания на отношение соответствия между изображениями и временными уровнями, которые являются эквивалентами временных подуровней в стандарте HEVC. То есть, изображения HEVC с конкретным значением TemporalId могут быть назначены в соответствующий временной уровень с помощью группы сэмплов временного уровня (и то же самое может быть выполнено для всех значений TemporalId). Бокс назначения уровней может при этом содержать ссылку на группу сэмплов временного уровня, которую включают в указанное отношение соответствия уровням.
[0090] Бокс индексного указателя подсегментов ('ssix') устанавливает соответствие между уровнями (заданными в боксе назначениям уровней) и байтовыми диапазонами для проиндексированных подсегментов. Другими словами, в этом боксе располагается компактный индексный указатель с информацией о том, каким образом в подсегменте данные упорядочены, по уровням, в частичные подсегменты. Он позволяет клиенту без труда получать данные частичных подсегментов при помощи загрузки соответствующих диапазонов данных внутри подсегмента. Когда бокс индексного указателя подсегментов присутствует, каждый байт внутри подсегмента принадлежит некоторому уровню. Если какой-либо диапазон не связан с конкретной информацией в боксе назначения уровней, то может использоваться любой уровень, не включенный в бокс значения уровней. В каждом боксе индексного указателя сегментов может присутствовать 0 или 1 боксов индексного указателя подсегментов, где проиндексированы подсегменты листьев, т.е. только индексы подсегментов, но не индексы сегментов. Бокс индексного указателя подсегментов, если он присутствует, следует сразу за соответствующим боксом индексного указателя сегментов. В боксе индексного указателя подсегментов описаны подсегменты, указанные в непосредственно предшествующем боксе индексного указателя сегментов. Каждый уровень может быть поставлен в соответствие одному и только одному частичному подсегменту, т.е. байтовые диапазоны для одного уровня являются непрерывными. Уровни для частичных подсегментов назначают с увеличением порядковых номеров внутри подсегмента, сэмплы каждого подсегмента могут зависеть от сэмплов предшествующих частичных подсегментов в одном подсегменте, но не наоборот. К примеру, каждый частичный подсегмент может содержать сэмплы, имеющие одинаковый временной подуровень, при этом внутри подсегмента частичные подсегменты могут быть упорядочены по увеличению временных подуровней. Когда, таким образом, осуществляют доступ к частичному подсегменту, последний бокс медиаданных может быть неполным, то есть, длина полученных данных может быть меньше, чем указанная в боксе медиаданных. Длина бокса медиаданных может корректироваться или данные могут дополняться незначащей информацией. Параметр paddmg_flag в боксе назначения уровней указывает, могут ли эти недостающие данные быть заменены нолями. Если это не так, данные сэмплов, назначенные для уровней, к которым не выполнялся доступ, отсутствуют, и должны быть приняты соответствующие меры.
[0091] В стандарте MPEG-DASH определены контейнерные форматы сегментов как для формата ISOBMFF, так и для транспортных потоков MPEG-2. В других стандартах форматы сегментов могут быть определены на основе других контейнерных форматов. Например, был предложен формат, основанный на формате контейнерных файлов Matroska, основные свойства которого описаны ниже. Когда файлы Matroska передают в виде DASH-сегментов, или аналогичных структур, соответствие блоков DASH и блоков Matroska может быть задано описанным ниже образом. Подсегмент (DASH) может быть определен как один или более последовательных кластеров (Clusters) контента, инкапсулированного в файле Matroska. Может предъявляться требование, чтобы инициализационный сегмент DASH содержал заголовок EBML, заголовок сегмента (Matroska), информацию о сегменте (Matroska) и треки (Tracks), а также, опционально, содержал другие элементы первого уровня (level1) и заполняющие данные. Индексный указатель сегмента DASH может включать элементы указаний (Cues Element) Matroska.
[0092] Технология DASH поддерживает адаптацию скорости передачи за счет динамических запросов медиасегментов из различных репрезентаций в наборе адаптации, с целью подстройки к вариациям пропускной способности сети. Когда DASH-клиент переключается на репрезентации с пониженным/повышенным качеством, учет зависимостей кодирования внутри репрезентации не является обязательным. При декодировании медиаданных переключение репрезентации происходит, как правило, только в точке произвольного доступа (RAP), которая может применяться, например, в таких методах видеокодирования, как H.264/AVC. В технологии DASH введено более общее понятие «точки доступа к потоку» (Stream Access Point, SAP), являющееся независимым от применяемых кодеков решением для доступа к репрезентации и переключения между репрезентациями. В технологии DASH точка SAP определена как позиция в репрезентации, которая позволяет запустить воспроизведение медиапотока с использованием информации, содержащейся в данных репрезентации, начиная с этой позиции и далее (которым предшествуют данные инициализации в инициализационном сегменте, если таковой присутствует). Соответственно, переключение репрезентации может выполняться в точке SAP.
[0093] Были определены несколько типов SAP, которые будут описаны ниже. SAP первого типа (type 1) соответствует понятию, носящему в различных схемах кодирования имя «точки произвольного доступа к закрытой группе GOP» (в которой все изображения, в порядке декодирования, могут быть корректно декодированы и позволяют получить непрерывную временную последовательность корректно декодированных изображений без пропусков), для которой первое изображение в порядке декодирования является также первым изображением в порядке воспроизведения. SAP второго типа (type 2) соответствует понятию, носящему в различных схемах кодирования имя «точки произвольного доступа к закрытой группе GOP» (в которой все изображения, в порядке декодирования, могут быть корректно декодированы и позволяют получить непрерывную временную последовательность корректно декодированных изображений без пропусков) для которой первое изображение в порядке декодирования не обязательно является также первым изображением в порядке воспроизведения. SAP третьего типа (type 3) соответствует понятию, носящему в различных схемах кодирования имя «точкой произвольного доступа к открытой группе GOP», где могут присутствовать некоторые изображения, в порядке декодирования, которые не могут быть декодированы корректно и имеют времена презентации, меньшие, чем внутренне-кодируемое изображение, связанное с этой SAP.
[0094] В некоторых стандартах видеокодирования, например, MPEG-2, каждое внутренне предсказываемое изображение может быть точкой доступа к кодированной последовательности. Возможность гибкого использования множества опорных изображений для внешне предсказываемых изображений, например, в стандартах H.264/AVC и H.265/HEVC, означает, что внутренне предсказываемые изображения могут быть недостаточными для произвольного доступа. Соответственно, изображения помечают, указывая на их функциональность в качестве точки произвольного доступа, а не просто делают вывод об этом на основании типа кодирования; к примеру, в стандарте H.264/AVC в качестве точек произвольного доступа могут использоваться IDR-изображения. Закрытая группа изображений (group of pictures, GOP) - это группа изображений, в которой все изображения могут быть декодированы корректно. К примеру, в стандарте H.264/AVC, закрытая GOP может начинаться с блока доступа IDR (или с внутренне предсказываемого изображения с операцией управления памяти, помечающие все предшествующие опорные изображения как неиспользуемые).
[0095] Закрытая группа изображений (GOP) - это такая группа, в которой изображения, предшествующие исходному внутренне предсказываемому изображению в порядке вывода, могут не быть корректно декодируемыми, однако изображения, следующие за исходным внутренне предсказываемым изображениями, декодируются корректно. На упомянутое исходное внутренне предсказываемое изображение может присутствовать указание в битовом потоке, или же оно может быть вычислено на основе указаний в битовом потоке, например, с использованием блоков типа CRA NAL в стандарте HEVC или SEI-сообщения точки восстановления в стандарте H.264/AVC. Изображения, предшествующие исходному внутренне предсказываемому изображению, которым начинается открытая GOP, называют опережающими сообщениями (leading pictures). Опережающие сообщения могут быть двух типов: декодируемые и недекодируемые. Декодируемые опережающие изображения могут быть корректно декодированы, когда декодирование начинают с исходного внутренне предсказываемого изображения, которым начинается открытая GOP. Другими словами, в декодируемых опережающих изображениях в качестве опорных для внешнего предсказания используют только исходное внутренне предсказываемое изображение или изображения, следующие за ним в порядке декодирования. Недекодируемые опережающие изображения, соответственно, не могут быть корректно декодированы, когда декодирование начинают с исходного внутренне предсказываемого изображения, которым начинается открытая GOP.
[0096] В соответствии с предшествующим описанием, клиент, или проигрыватель, может запрашивать сегменты и подсегменты для передачи из различных репрезентаций, аналогичному тому, как могут быть определены передаваемые уровни и/или подуровни масштабируемого битового потока видеоданных. Выражения «переключение репрезентации с понижением качества» или «переключение битового потока с понижением качества» могут означать запрос или передачу репрезентации с меньшим битрейтом, чем запрашивалось или передавалось (соответственно) ранее. Выражения «переключение репрезентации с повышением качества» или «переключение битового потока с повышением качества» могут означать запрос или передачу репрезентации с большим битрейтом, чем запрашивали или передавали (соответственно) ранее. Выражения «переключение репрезентации» или «переключение битового потока» могут означать, в совокупности, переключение репрезентации или битового потока как с повышением, так и с понижением качества, а также, альтернативно, означать также и переключение между репрезентациями или битовыми потоками различных точек зрения.
[0097] Системы потоковой передачи, аналогичные MPEG-DASH, включают, например, прямую потоковую передачу по протоколу HTTP (HTTP Live Streaming, HLS), которая определена в проекте интернет-стандарта draft-pantos-http-live-streaming-19 (и других версиях этого проекта интернет-стандарта). В качестве формата манифеста, соответствующего описанию 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, PMT). В некоторых версиях HLS медиасегменты являются самодостаточными фрагментами фильма в формате ISOBMFF, аналогично (под)сегментам DASH.
[0098] Ниже рассмотрено, каким образом может быть построена система сквозной потоковой передачи DASH. Медиаконтент предоставляется сервером-отправителем, который, как правило, представляет собой обычный веб-сервер (HTTP). Сервер-отправитель может быть подключен к сети доставки контента (Content Delivery Network, CDN), по которой осуществляют потоковую передачу контента и его хранение на пограничных серверах. MPD-описание позволяет сигнализировать множество различных базовых URL-локаторов для контента, которые могут использоваться для объявлений о доступности контента на различных пограничных серверах. Альтернативно, сервер с контентом может быть напрямую подключен к сети Интернет. На пути маршрутизации НТТР-трафика между DASH-клиентами и сервером-источником, или пограничным сервером, с которых запрашивают контент, могут располагаться веб-прокси-серверы. Веб-прокси-серверы могут кэшировать HTTP-сообщения, и, следовательно, могут обслуживать запросы клиентов с использованием этого кэшированного контента. Они часто применяются поставщиками услуг Интернет, поскольку позволяют снизить требуемую пропускную способность сети от прокси-сервера до сервера-источника или до пограничного сервера. Для оконечного пользователя кэширование HTTP позволяет сократить задержки. DASH-клиенты могут подключаться к Интернету через сеть доступа, например, сотовую сеть мобильной связи.
[0099] В стандарте ISO/IEC 23009-5 определена технология DASH-передачи с поддержкой сервера и сети (server and network assisted DASH, SAND), которая позволяет передавать сообщения между DASH-клиентами и сетевыми элементами или между различными сетевыми элементами с целью повышения эффективности сеансов потоковой передачи за счет предоставления, в реальном времени, информации о рабочих характеристиках сети, серверов, прокси-серверов, кэшей, CDN-сетей, а также о производительности и состоянии DASH-клиентов. К примеру, при помощи сообщения SAND AnticipatedRequests DASH-клиент может сообщить сетевому элементу с функциональностью DASH (DASH-ware network element, DANE), какой конкретный набор сегментов ему необходим. Сигнализируют набор сегментов репрезентации, которые, с большой вероятностью, DASH-клиент вскоре выберет и запросит. Полезная нагрузка такого сообщения включает список ожидаемых запросов, каждый из которых содержит URL запроса, и опционально, байтовый диапазон для запроса (когда ожидается, что будет запрошена лишь часть контента, на который ссылается URL), и опционально, момент времени, в который DASH-клиент предположительно выдаст запрос на ресурс, обозначенный этим URL.
[00100] В видеоконтенте виртуальной реальности могут применяться множество различных форматов проекций. Вместо «видео виртуальной реальности» может, равнозначно, применяться термин «360-градусное видео». Специальный случай проекции сферического изображения, охватывающего 360-градусное поле обзора по горизонтали и 180-градусное поле обзора по вертикали на прямоугольную двумерную плоскость изображения называют равнопрямоугольной проекцией. В этом случае координаты по горизонтали могут рассматриваться как долгота, а координаты по вертикали - как широта, без необходимости каких-либо преобразований или масштабирования. В некоторых случаях панорамный контент с 360-градусным полем обзора по горизонтали и менее чем 180-градусным полем обзора по вертикали может трактоваться как специальный случай равнопрямоугольной проекции, где области полюсов сферы не отображаются на двумерную плоскость изображения. Равнопрямоугольная проекция сохраняет вертикальные линии прямыми, однако искажает области надира и зенита.
[00101] Когда используют формат проекции кубической карты (также называемый «кубической картой»), сферическое видео проецируют на шесть граней (или сторон) куба. Кубическая карта может быть сформирована, например, за счет шестикратного рендеринга сферической сцены с заданной точки зрения, при этом каждый из полученных видов ограничен 90-градусным телесным углом, представляющим собой соответствующую грань куба. Все стороны куба могут быть упакованы в один кадр, или каждая сторона куба может обрабатываться отдельно (например, при кодировании). Порядок расположения сторон куба в кадре может быть различным, и/или стороны куба могут быть повернуты или отражены зеркально. Ширина и высота при упаковке в кадр могут быть выбраны таким образом, чтобы точно подходить под стороны куба, например, может использоваться сетка из сторон куба 3×2, или могут присутствовать неиспользуемые составляющие кадра, например, при сетке сторон куба 4×3.
[00102] В одном из примеров контент виртуальной реальности может обрабатываться в соответствии с примером процедуры 1100, показанным на фиг. 10, или в соответствии с ее подмножествами и/или вариантами. В соответствии с иллюстрацией фиг. 10 в блоке 1102 получают контент виртуальной реальности, например, при помощи одной или более камер виртуальной реальности, других массивов камер и/или другого аудиовизуального оборудования, пригодного для захвата контента виртуальной реальности. В соответствии с иллюстрацией фиг. 10 изображения, полученные в блоке 1102, могут быть переданы в блок 1104, где выполняют операции сшивки, проецирования и мэппинга. Аудиоданные, полученные в блоке 1102, в некоторых из реализации, передают в блок 1106 для аудиокодирования, тогда как изображения, прошедшие сшивку, проецирование и мэппинг, из блока 1104 могут быть переданы в блок 1108 и/или блок 1110 для видеокодирования и/или кодирования изображений. В блоке 1112, в соответствии с иллюстрацией фиг. 10, файловый инкапсулятор принимает медиаконтент, включающий видео, изображения и аудиоданные из блоков 1106, 1108 и 1110 в качестве входных данных и помещает их в контейнерный файл. Файловый инкапсулятор может принимать также метаданные и помещать их в файл, например, информацию о проецировании и мэппинге, являющуюся вспомогательной при отображении декодированных упакованных кадров виртуальной реальности. В тех реализациях, где применяют технологию DASH, в соответствии с иллюстрацией фиг. 10, генератор MPD-описания DASH принимает файл на входе и формирует, в блоке 1114, MPD-описание, которое может включать метаданные, относящиеся к виртуальной реальности, например, метаданные проецирования и мэппинга, которые могут формироваться на основе эквивалентной информации в файле. После формирования MPD-описания DASH в блоке 1114, в блоке 1116 выполняют клиент-серверную передачу DASH.
[00103] В блоке 1118, в соответствии с иллюстрацией фиг. 10, в ходе воспроизведения файла, файловый декапсулятор обрабатывает файл и/или принятые (под)сегменты и извлекает кодированные битовые потоки из треков, а также анализирует метаданные. В блоках 1120, 1122 и 1124, соответственно, декодируют аудио-, видеоинформацию и информацию изображений. Декодированные упакованные кадры виртуальной реальности, сформированные в блоках 1122 и/или 1124, могут отображаться в блоке 1130, что опционально подразумевает использование информации о проецировании и/или мэппинге, принятой из файлового декапсулятора. В соответствии с иллюстрацией, в блоке 1132 воспроизводимые изображения отображают на экране устанавливаемого на голове дисплея или другого дисплейного устройства, в зависимости от текущей ориентации просмотра, а также метаданных проецирования и мэппинга, вычлененных из файла. Аналогично, аудиоданные, воспроизводимые в блоке 1126, выводят в блоке 1128 при помощи громкоговорителей и/или наушников.
[00104] Ниже будет пошагово рассмотрена процедура 1200 сшивки, проецирования и мэппинга изображений, проиллюстрированная на фиг. 11. Изображения, или видеоролики виртуальной реальности, обычно захватывают при помощи нескольких камер, или регистрирующего устройства, оснащенного несколькими объективами и матрицами. Входные изображения 1204 с нескольких камер в блоке 1206 сшивают и проецируют на трехмерную геометрическую структуру, например, сферу или куб. Данные изображений на этой геометрической структуре затем помещают в двумерный кадр 1208 проекции, формат которого может быть указан при помощи индикатора формата проекции виртуальной реальности в блоке 1210. В одном из примеров мэппинг включает перенос прямоугольных областей кадра проекции в упакованный кадр 1212 виртуальной реальности с указанием местоположения и размера каждой области в упакованном кадре 1212 виртуальной реальности. В одном из примеров мэппинг дополнительно включает зеркальное отражение и/или поворот прямоугольных областей кадра проекции в упакованном кадре 1212 виртуальной реальности, при этом зеркальное отражение может быть ограничено только горизонтальным и вертикальным отражением, а поворот шагом в 90 градусов. На практике входные изображения могут преобразовываться в упакованные кадры 1212 виртуальной реальности в одной процедуре, без промежуточных шагов, что обозначено штриховым прямоугольником 1202 на фиг. 11. Упакованный кадр виртуальной реальности передают в качестве входных данных операции 1108 видеокодирования и/или кодирования 1110 изображений. Термин «упакованный кадр виртуальной реальности» может использоваться и в том случае, когда в упакованном кадре виртуальной реальности находится только одна прямоугольная область кадра проекции, а также когда упакованный кадр виртуальной реальности содержит собственно кадр проекции. Под «упакованным кадром виртуальной реальности» может пониматься кадр, полученный в результате мэппинга кадра проекции.
[00105] Структура, на которую выполняют проекцию, или «структура проекции» представляет собой трехмерную фигуру, состоящую из одной или более поверхностей, на которые проецируют видеоконтент или контент изображений виртуальной реальности. Кадр проекции - это двумерный кадр, на который отображают поверхность (или поверхности) структуры проекции. Кадр проекции, альтернативно или в дополнение, может быть также определен как кадр, имеющий формат отображения, заданный индикатором формата проекции виртуальной реальности. К примеру, в случае проецирования методом кубической текстуры структурой проекции будет куб, а кубической картой будет двумерный кадр проекции, образованной разверткой граней куба. Индикатором формата проекции виртуальной реальности может быть, например, перечислимый тип данных, указывающий на формат отображения кадра проекции. К примеру, такой индикатор может указывать на одно из следующего: моноскопическая равнопрямоугольная панорама, стереоскопическая равнопрямоугольная панорама, моноскопическая кубическая карта или стереоскопическая кубическая карта. Если указано на стереоскопический формат проецирования, то заранее задают или отдельно указывают на выбранный порядок упаковки. К примеру, может быть заранее задан порядок упаковки «сверху вниз», при котором, например, левый вид может быть задан как помещаемый сверху.
[00106] В некоторых примерах кодируют несколько различных версий виртуальной реальности, каждый из которых предназначен для различных ориентации просмотра. Соответственно, ориентацию структуры проекции, например, сферы или куба, поворачивают в соответствии с целевой ориентацией просмотра. Могут применяться различные методы указания на ориентацию структуры проекции или соответствующего кадра проекции относительно глобальной системы координат. К примеру, для каждого конкретного формата проекции может быть задана опорная точка, например, центральная точка равнопрямоугольного панорамного изображения или центральная точка фронтальной грани кубической карты. На местоположение опорной точки в глобальной системе координат могут указывать углы поворота вокруг поперечной и продольной осей. Ориентация структуры проекции или соответствующего кадра проекции может быть указана при помощи угла поворота вокруг вертикальной оси, который определяет, насколько повернута опорная плоскость, перпендикулярная опорному направлению.
[00107] Глобальное смещение ориентации может быть определено как углы поворота вокруг поперечной, продольной и вертикальной осей относительно опорной ориентации, которая соответствует, в системе воспроизведения, или глобальной системе координат, углам поворота вокруг поперечной, продольной и вертикальной осей, равным (0, 0, 0). Опорная ориентация может быть определена как ориентация двумерной поверхности, ортогональной опорному направлению и имеющей нулевой угол поворота вокруг вертикальной оси. Опорное направление может быть задано как направление оси z глобальной системы координат или оси z системы координат для параметров камеры, или оси с нулевым азимутальным углом и нулевым углом возвышения для конфигурации микрофонов. Следовательно, глобальные смещения ориентации могут применяться, например, для коррекции ориентации камеры или контента после кодирования контента. К примеру, если линия горизонта в контенте не вполне горизонтальна (например, если контент был получен при помощи слегка наклоненной камеры), это может быть скомпенсировано с помощью метаданных ориентации виртуальной реальности.
[00108] Глобальные смещения ориентации могут быть включены в файл, например, с помощью одного или более из следующих методов: i) глобальное смещение ориентации, применяемое к некоторому набору сэмплов (например, к треку целиком) может быть включено в запись сэмпла, в файле, соответствующем формату файлов ISOBMFF; ii) для глобального смещения ориентации может быть задана группа сэмплов, при этом каждое описание группы сэмплов будет задавать комбинацию значений углов поворотов вокруг поперечной, продольной и вертикальной осей, при этом бокс SampleToGroupBox используют для постановки сэмплов треков в соответствие записям описания группы сэмплов; iii) ориентацию виртуальной реальности в виде трека метаданных определяют следующим образом: трек метаданных ориентации виртуальной реальности, когда он присутствует, содержит ссылку на трек, например, типа 'cdsc', для каждого видеотрека и каждого трека, имеющих одинаковые данные глобального смещения ориентации. Эти метаданные, когда они присутствуют, задают глобальное смещение ориентации. Если этого трека нет, значение глобального смещения ориентации равно (0, 0, 0) для углов поворота вокруг поперечной, продольной и вертикальной осей соответственно. Глобальное смещение ориентации, содержащееся в сэмплах трека метаданных ориентации виртуальной реальности, применимо ко всем параллельным во времени аудио- и видеосэмплам в треках, связанных с треком метаданных ориентации виртуальной реальности при помощи ссылки на трек типа 'cdsc'. Параллельный во времени сэмпл для конкретного сэмпла в конкретном треке может быть определен как сэмпл в треке, на который ссылаются и который имеет идентичное или, если отсутствует сэмпл с в точности таким же временем декодирования, ближайшее предшествующее время декодирования относительно времени декодирования упомянутого конкретного сэмпла в конкретном треке.
[00109] Глобальные смещения ориентации могут быть применимы для всей аудиовизуальной презентации виртуальной реальности. При воспроизведении ориентация устанавливаемого на голове дисплея (относительно его исходной ориентации) фактически суммируется с глобальным смещением ориентации, действительным в данный момент, в результате чего выбирают ориентацию, используемую для извлечения из декодируемого контента. К примеру, когда видео, имеющего ориентацию (а, b, с) в виде углов поворота вокруг поперечной, продольной и вертикальной осей соответственно, должно быть отображено на устанавливаемом на голове дисплее, и глобальное смещение ориентации равно (i, j, k) в виде углов поворота вокруг поперечной, продольной и вертикальной осей соответственно, видеоинформация, соответствующая этой ориентации, будет иметь углы поворота вокруг поперечной, продольной и вертикальной осей, равные (а-i, b-j, с-k), соответственно, в файле.
[00110] Когда выбирают трек или репрезентаци для декодирования и/или данные для извлечения из декодированного контента, может учитываться ориентация структуры проекции или кадра проекции (относительно глобальной системы координат). К примеру, если структура проекции - это куб, для которого указано, что он имеет 45-градусный угол поворота вокруг поперечной оси, и нулевые углы поворота вокруг продольной и вертикальной осей, а текущая ориентация просмотра соответствует нулевым углам поворота вокруг поперечной, продольной и вертикальной осей, то контент из декодированной кубической карты воспроизводят таким образом, чтобы центральная точка отображаемого контента была повернута на 45 градусов вокруг оси Y (т.е. горизонтально в кадре проекции).
[00111] В некоторых примерах глобальное смещение (или смещения) ориентации включают в информацию об ориентации структуры проекции или кадра проекции, и следовательно, их не нужно учитывать при выборе декодированных данных для отображения. В некоторых примерах глобальное смещение (или смещения) ориентации является отдельным от информации об ориентации структуры проекции или кадра проекции, и соответственно, их также нужно учитывать при выборе декодированных данных для отображения, фактически, суммируя их с соответствующими знаками.
[00112] В соответствии с примерами осуществления настоящего изобретения предложены способ, устройство и компьютерный программный продукт, предназначенные для управления выбором точки наблюдения и ориентации визуального контента, например, аудиовизуального контента виртуальной реальности. Многие из примеров осуществления настоящего изобретения и реализации, описанных или подразумеваемых в данном документе, применяют в случаях, где аудиовизуальный контент, включая контент виртуальной реальности, но не ограничиваясь им, передают в виде потока зрителю. Одной из технических сложностей, связанных с производством, передачей и просмотром контента виртуальной реальности, является возможность для зрителя, благодаря его изменению его ориентации, положения или другим действиям, просматривать части контента виртуальной реальности, не являющиеся самыми существенными (или характерными, salient). Создатель, или автор, контента, как правило, размещает контент, который считается наиболее характерным и/или интересным, в избранных местоположениях внутри потенциального поля обзора пользователя. Эти избранные местоположения могут рассматриваться как наиболее вероятные направления просмотра (most probable viewing direction, MPVD), поскольку зрители, как правило, склонны просматривать наиболее характерный и/или интересный контент, и соответственно, располагаться таким образом, чтобы быть способными без затруднений видеть такой контент. Однако, поскольку презентации виртуальной реальности или другого иммерсивного контента зачастую дают зрителям возможность менять перспективу или ориентацию просмотра, в зависимости от положения зрителя и соответствующего оборудования для просмотра, установленного на голове, существует значительная вероятность того, что когда пользователь запустит воспроизведение подобного контента, положение и/или ориентация пользователя будут таковы, что при отображении контента зритель не будет направлен в сторону наиболее характерного и/или интересного контента, и для совпадения с MPVD-направлением пользователь должен будет переместиться и/или занять менее комфортное положение. К примеру, пользователю, для совпадения с MPVD-направлением может быть необходимо смотреть прямо себе за спину. В другом примере, когда пользователь сидит на диване или стуле, для возврата к MPVD-направлению может требоваться перемещение в некомфортную позу.
[00113] В некоторых подобных случаях могут быть эффективны решения, все чаще применяемые в протоколах потоковой передачи в последнее время, которые позволяют понизить битрейт передачи видео виртуальной реальности и подразумевают передачу некоторого подмножества 360-градусного видеоконтента, охватывающего текущую ориентацию просмотра с наилучшим качеством/разрешением, тогда как остальные части 306-градусного видео передают с пониженным качеством/разрешением. В некоторых подобных, а также других контекстах, где могут быть реализованы примеры осуществления настоящего изобретения, подразумевается использование технологии динамической адаптивной потоковой передачи по протоколу HTTP ("DASH") для контента виртуальной реальности.
[00114] В некоторых реализациях DASH автоматический выбор из репрезентаций в одном наборе адаптации может выполняться, например, на основе ширины и высоты (на которые могут указывать параметры @width и @height соответствено); частоты смены кадров (на которую может указывать параметр @frameRate); битрейта (на который может указывать параметр @bandwidth); и/или на основе указанного порядка следования репрезентаций по их качеству (указанного, например, при помощи параметра @qualityRanking). В некоторых примерах реализации DASH семантика параметра @qualityRanking может быть задана таким образом, чтобы @qualityRanking указывало на порядковый номер репрезентации, по качеству, по сравнению с другими репрезентациями в том же наборе адаптации. Как правило, чем меньше его значение, тем выше качество контента. В одной из реализации DASH, если атрибут @qualityRanking отсутствует, значит ранжирование не определено.
[00115] В случае видеоконтента виртуальной реальности некоторые из портов просмотра 360-градусного контента могут отображаться с более высоким качеством, тогда как другие - с менее высоким качеством. Однако нужно понимать, что всех описанных выше атрибутов недостаточно для различения 360-градусного видео, закодированного для другого основного порта просмотра.
[00116] Для обеспечения адаптации на основе порта просмотра в DASH MPD-описание может включать метаданные, которые указывают на основной порт просмотра для каждой репрезентации. Также, чтобы обеспечить возможность выбора репрезентации, исходя из качества изображения первичного порта просмотра, MPD-описание может включать средства указания на качество первичного порта просмотра, отдельно от общих характеристик качества. Для указания на основной порт просмотра и/или качества для основного порта просмотра могут использоваться один или более дескрипторов свойств, или элементов (Elements). Их примеры приведены ниже.
[00117] В одном из примеров видеодескриптор виртуальной реальности (VR video descriptor, VRD) имеет двойное назначение: 1) он указывает, какие порты просмотра имеются в (под)репрезентации; 2) он указывает на ранжирование по качеству для каждого порта просмотра. В подобном видео дескрипторе порта просмотра содержатся следующие фрагменты информации: порт (или порты) просмотра, представленные контентом, формат проекции для порта (или портов) просмотра, указание, является ли контент для порта (или портов) просмотра моноскопическим или стереоскопическим, и в случае стереоскопического контента, присутствуют ли левый или правый ракурс, или оба ракурса одновременно, а также значения ранга качества для порта (или портов) просмотра. Информация о ранжировании по качеству для каждого порта просмотра дает клиентам возможность различать репрезентации и подрепрезентации, представляющие один и тот же порт (или порты) просмотра, однако имеющие различное качество. Значением атрибута @value элемента SupplementalProperty или EssentialProperty при использовании схемы VRD является список значений VRD-параметров, определенных в следующей таблице:
[00118] В одном из вариантов осуществления настоящего изобретения метаданные проецирования и мэппинга в файле (например, соответствующего базовому формату медиафайлов ISO) и/или в дескрипторах MPD-описания, относящихся к виртуальной реальности, включают одно или более из следующего: i) формат проекции виртуальной реальности для кадра проекции, ii) ориентация геометрической структуры, соответствующей кадру проекции, в глобальной системе координат, iii) информация мэппинга для области, iv) ранжирование по качеству для области.
[00119] В одном из вариантов осуществления настоящего изобретения видеодескриптор виртуальной реальности (VRD) может быть определен описанным ниже образом. В схеме VRD применяют дескрипторы SupplementalProperty и/или EssentialProperty с конкретным значением атрибута @schemeIdUri. Использовать EssentialProperty, когда декодированный видеоконтент отображают на традиционном двумерном дисплее, нежелательно при обработке отображаемой информации без сведений о формате проекции. Дескрипторы SupplementalProperty или EssentialProperty для видео виртуальной реальности могут присутствовать в наборе адаптации, репрезентации или подрепрезентации. Значением атрибута @value элемента SupplementalProperty или EssentialProperty при использовании схемы VRD является список значений VRD-параметров, определенных в следующей таблице:
[00120] В одном из вариантов осуществления настоящего изобретения SRD-дескриптор может быть расширен следующим образом: SRD-дескрипторы допускаются также на уровне репрезентации. В одном элементе Representation и SubRepresentation допускается наличие множества SRD-дескрипторов. Присутствие множества SRD-дескрипторов в одном контейнерном элементе может быть полезным, например, когда SRD-дескрипторы применяют для указания на несколько областей внутри кадра проекции, и по меньшей мере для некоторых из этих областей указано, что они имеют отличный от остальных ранг качества. Синтаксис и семантика SRD-дескриптора могут быть аналогичными приведенному выше описанию. Однако параметры object_x, object_у, object_width, и object_height могут быть определены как опциональные, если в том же контейнерном элементе уже есть другой SRD-дескриптор с этими значениями. Если object_x, object_у, object_width, и object_height отсутствуют, то соответствующая область определена как кадр проекции, не включающий в себя все остальные заданные на этом уровне области. В SRD-дескриптор может быть определен quality_ranking, например, в качестве последнего параметра, следующим образом:
[00121] Некоторые из примеров осуществления настоящего изобретения могут проектироваться и/или применяться в окружениях, где используют события DASH, включая описанные, или представленные, в документе ISO/IEC 23009-1, который включен в настоящую заявку путем ссылки, но не ограничиваясь ими.
[00122] Нужно понимать, что события DASH могут располагаться в описании медиапрезентации (MPD) или внутри репрезентации для сигнализации апериодической информации DASH-клиенту или приложению. События привязаны ко времени, то есть, каждое событие начинается в конкретный момент времени медиапрезентации и, как правило, имеет конкретную длительность. События включают сигнализацию, относящуюся к DASH, или события, зависящие от конкретных приложений. В последнем случае соответствующий идентификатор схемы должен указывать на конкретное приложение, чтобы DASH-клиент мог пересылать событие в соответствующее приложение.
[00123] В некоторых из реализации события одного типа объединяют в потоки событий. Это позволяет клиенту DASH подписываться на потоки событий, представляющие интерес, и игнорировать нерелевантные потоки. Определены два метода сигнализации событий: сигнализация событий в MPD-описании, и внутриполосная сигнализация событий, т.е. сигнализация внутри сегментов. Последовательность событий, назначенная для какого-либо конкретного момента времени внутри медиапрезентации может быть помещена в MPD-описании на уровне периода (Period). События одного типа объединяют в поток событий, который задается при помощи элемента EventStream в элементе Period. Как правило, события заканчиваются в конце периода, даже если время начала события выходит за границы периода или длительность события превышает длительность периода.
[00124] В большинстве случаев, где применяют DASH, элемент EventStream имеет структуру, аналогичную дескрипторам свойств DASH, в том смысле, что он содержит атрибут @schemeIdUri, содержащий унифицированный идентификатор ресурса (URI), который идентифицирует схему, и опциональный атрибут @value. Семантика элементов зависит от конкретной применяемой схемы. URI-идентификатор, указывающий на схему, может представлять собой унифицированное имя ресурса (URN) или универсальный локатор ресурса (URL).
[00125] Аналогично, в большинстве случаев, где применяют DASH, каждый период содержит максимум один элемент EventStream с одним значением атрибута @schemeIdUri и значением атрибута @value. К примеру, все события одного типа могут объединяться в один поток событий. Нужно понимать, что поскольку потоки событий содержат события, привязанные ко времени, дополнительно присутствует атрибут временного масштабирования, @timescale, позволяющий присваивать события конкретным моментам времени внутри периода. Сами же привязанные ко времени события описывают при помощи элемента Event.
[00126] Семантика атрибутов в элементе EventStream, приведенная ниже, напоминает обычную семантику атрибутов DASH, которая должна быть знакома специалистам.
[00127] Семантика атрибутов в элементе Event, приведенная ниже, напоминает обычную семантику атрибутов DASH, которая должна быть знакома специалистам.
[00128] Тот, кто знаком с технологией DASH, понимает, что потоки событий могут мультиплексироваться с репрезентациями, если сообщения событий добавить в качестве частей сегментов. Потоки событий могут присутствовать в выбранных репрезентациях, в одном (или нескольких) выбранном наборе адаптации или во всех репрезентациях. К примеру, в одной из возможных конфигураций только наборы адаптации аудиоданных могут содержать внутриполосные события. Если более чем одна репрезентация содержит потоки событий с одинаковым @schemeIdUri и @value, эти потоки семантически эквивалентны, и значит обработки одной репрезентации будет достаточно.
[00129] В окружениях, где применяют DASH, на поток внутриполосных событий, присутствующий в репрезентации, указывают при помощи элемента InbandEventStream в наборе адаптации на уровне репрезентации. Синтаксис и семантика элемента InbandEventStream могут быть аналогичными элементу EventStream, описанному выше. Одна репрезентация может содержать несколько потоков внутриполосных событий, каждый из которых может быть представлен отдельным элементом InbandEventStream.
[00130] В DASH бокс сообщения события (Event Message, 'emsg') содержит сигнализацию для типовых событий, связанных с конкретным моментом времени медиапрезентации. Для него применима та же семантика, что для элемента Event в MPD-описании, приведенная выше, при этом семантика полей в боксе сообщения события аналогична семантике соответствующих атрибутов элемента Event. Медиасегмент, если он инкапсулирован в базовом формате медиафайлов ISO (ISOBMFF), может содержать один или более боксов сообщения события ('emsg'). Бокс 'emsg', если он вообще присутствует, располагается перед одним из боксов 'moof. Нужно понимать, что синтаксис бокса сообщения события может быть задан следующим образом:
[00131] Независимо от конкретных протоколов и/или окружения, в которых реализуют примеры осуществления настоящего изобретения, необходимость отображения контента с уровнем качества, который отвечает ожиданиям и/или требованиям зрителя, и/или создателя контента, а также потенциальное несовпадение ориентации зрителя и/или дисплея зрителя и ориентации отображаемого ему контента, ставит ряд сложных технических задач.
[00132] Одной из желательных функций является возможность сигнализации исходной ориентации наблюдения или исходного порта просмотра для контента виртуальной реальности, благодаря чему при запуске сеанса воспроизведения виртуальной реальности могут быть учтены предпочтения создателя контента. Исходная ориентация наблюдения, или сходный порт просмотра, могут быть назначены не только в начале презентации виртуальной реальности, но или в любой точке доступа, или даже в любом моменте презентации виртуальной реальности. Однако желательно также иметь возможность указать на «степень желательности» исходной ориентации наблюдения или исходного порта просмотра. К примеру, когда пользователь уже просмотрел часть контента ранее и выполняет перемотку на другую часть этого контента, для создателя, или автора, контента желательно иметь возможность управлять следующим: (1) должно ли воспроизведение контента после перемотки возобновиться с использованием ориентации головы пользователя (или, в общем случае, предшествующей ориентации пользователя для просмотра контента, или (2) должна ли быть применена сигнализированная исходная ориентация просмотра или порт просмотра.
[00133] Применение первого варианта более предпочтительно, например, когда контент получают с использованием стационарной камеры или камерной установки виртуальной реальности без монтажных переходов между сценами, или если не было смены сцен между предшествующим моментом просмотром и моментом, на который пользователь выполнил перемотку. Второй вариант более предпочтителен, например, когда позиция камеры меняется или между предыдущим и текущим моментом просмотра было изменение сцены, или если ранее контент этого видеоролика не просматривался. При этом некоторые точки внутри презентации (к примеру, моменты перехода между сценами) могут быть таковы, что в них автор контента предпочтет выбрать ориентацию наблюдения независимо от предыдущей ориентации установленного на голове дисплея.
[00134] При этом в DASH сигнализация об исходной конфигурации наблюдения должна быть доступна клиенту DASH, чтобы он мог запрашивать (под)сегменты из правильного набора адаптации и репрезентации. Если все репрезентации внутри набора адаптации покрывают одинаковый порт просмотра с составляющими портами просмотра различного качества, такая сигнализация дает клиенту DASH возможность выбирать репрезентацию, имеющую один из составляющих портов просмотра с высоким качеством, в точности или приблизительно соответствующий исходной ориентации наблюдения или исходному порту просмотра. Если все репрезентации в наборе адаптации покрывают один и тот же сравнительно узкий порт просмотра, как правило, без составляющих портов просмотров, и имеются несколько наборов адаптации, каждый из которых охватывает отличающийся порт просмотра одного и того же всенаправленного контента, упомянутая сигнализация должна позволять DASH-клиенту выбрать набор адаптации, в точности или приблизительно соответствующий исходной ориентации наблюдений, или исходному порту просмотра, и затем, высококачественную репрезентацию из этого набора адаптации.
[00135] Существующие технологии не предлагают решения этих технических задач. К примеру, в стандарте MPEG М38689 (который включен в настоящий документе путем ссылки) сигнализация исходного порта просмотра в MPD-описании DASH описана следующим образом:
Чтобы исходный порт просмотра определял исходную ось, относительно которой вычисляются все угловые координаты, предлагается ввести новое дополнительное свойство в набор адаптации, где расположена центральная точка. Положение центральной точки задается расстоянием, в пикселях, от верхнего левого угла ячейки сетки, где она расположена.
Такое дополнительно свойство задается при помощи URN (например, urn:mpeg:dash:vrorigin:2016) и значения, которое содержит координаты х и у в пикселях (к примеру, "640,360").
Следует отметить, что, альтернативно, дополнительное свойство начала координат виртуальной реальности может быть задано в наборе адаптации, относящемся к пространственному объекту в целом. Однако это требует большего объема вычислений при создании MPD-описании (поскольку необходимо суммирование ширины и глубины всех ячеек между началом виртуальной реальности и верхним левым углом пространственного объекта в целом).
[00136] Нужно понимать, что дескрипторы в MPD-описании статичны, в том смысле, что они не являются изменяющимися во времени или динамическими объектами. Следовательно, М38689 не дает возможности указывать на исходный порт просмотра в зависимости, например, от времени или от точки SAP. Соответственно, М38689 не помогает клиенту DASH выбрать подходящий набор адаптации и/или репрезентацию.
[00137] На фиг. 1 показан пример системного окружения 100, в котором могут применяться реализации, соответствующие примерам осуществления настоящего изобретения. Описание окружения 100 не имеет целью ограничить, или сузить, рассмотренные или предполагаемые в данном документе варианты осуществления настоящего изобретения какой-либо конкретной конфигурацией элементов или систем, а также не имеет целью исключить любые альтернативные конфигурации или систем из множества конфигураций и систем, которые могут использоваться в связи с вариантами осуществления настоящего изобретения. Напротив, фиг. 1 и рассмотренное здесь окружение 100 приведено исключительно для примера, в качестве основы и контекста для реализации некоторых из функций, аспектов и применений способов, устройств и компьютерных программных продуктов, рассмотренных и предполагаемых в настоящем документе. Многие из элементов, или компонентов, на фиг. 1 показаны как дискретные, отдельные элементы, но нужно при этом понимать, что в связи со способами, устройствами и компьютерными программами, описанными в данном документе, могут применяться и другие конфигурации, включая комбинации, в которых скомбинированы, опущены и/или добавлены некоторые элементы и/или компоненты.
[00138] В соответствии с иллюстрацией фиг. 1, системное окружение 100 включает по меньшей мере одну камеру 102. Многие из реализаций системного окружения 100 подразумевают применение одной или более камер, подходящих для захвата 360-градусных видеоизображений, используемых для создания контента виртуальной реальности, например, системы OZO фирмы Nokia, и/или других камер, или камерных массивов, которые могут применяться для создания 360-градусных видеоизображений и/или других панорамных изображений. Фиг. 1 также подразумевает присутствие одного или более источников 104 медиаданных, которые могут быть базами данных, другими устройствами и/или системами, обеспечивающими передачу и/или доступ к аудиовизуальному контенту, ранее захваченному или сформированному иным образом.
[00139] В соответствии с иллюстрацией фиг. 1 камера 102 и источник 104 медиаданных приспособлены и/или сконфигурированы для передачи изображений и/или аудиовизуального контента, например, 360-градусных видеоизображений, в форме потока данных. Такая передача может выполняться в соответствии с любым из методов и/или протоколов, подходящих для передачи данных изображений из камеры в одно или более устройств. В некоторых реализациях передачу данных изображений в одно или более устройств, сконфигурированных для приема и/или обработки видеоизображений, выполняют по беспроводному или проводному соединению, в реальном времени или почти в реальном времени.
[00140] Некоторые из примеров реализаций в данном документе подразумевают наличие характерной точки или области, например, точки или области в 360-градусном изображении, которая считается наиболее характерной, или интересной, точкой или областью внутри изображения, куда должно быть направлено внимание. В некоторых из примеров реализации в данном документе подразумевается наличие внутри изображения одной или более точек интереса или областей интереса, которые считаются элементами изображения, интересными для создателя контента и/или для одного или более зрителей. Во многих ситуациях характерная точка изображения будет точкой интереса, и соответственно, характерная область изображения будет областью интереса. При этом характерная точка или область изображения могут меняться и/или быть изменены, например, изменяться автоматически системой, или каким-либо элементом системы, и/или внешним действующим субъектом, например, режиссером. В некоторых подобных случаях характерная точка или область могут быть переключены, с одной точки интереса или области интереса, соответственно, на другую. Варианты осуществления настоящего изобретения ниже рассмотрены на примере термина «характерная точка», однако нужно понимать, что такие, а также другие примеры осуществления настоящего изобретения могут быть также применимы в случае характерных областей, а не точек.
[00141] В соответствии с иллюстрацией фиг. 1 камера 102 и источник 104 медиаданных могут передавать свои соответствующие потоки видеоизображений в видеопроцессор 106. Видеопроцессор 106 может устройством любого типа, которое может быть реализовано в виде автономного устройства и/или устройства, интегрируемого в другие устройства или компоненты. В соответствии с иллюстрацией фиг. 1 видеопроцессор 106 сконфигурирован для приема потоков данных изображений и все соответствующей информации от камеры 102 и источника 104 медиаданных. В некоторых примерах реализации видеопроцессор 106 сконфигурирован также для обеспечения выбора и/или определения одной или более характерных точек в видеопотоке. В некоторых примерах осуществления настоящего изобретения видеопроцессор внедряет информацию, указывающую на характерные точки, в видеопоток или отдельный поток (или в некоторую структуру сигнализации, например, описание медиапрезентации), связанный с видеопотоком. В некоторых примерах реализации видеопроцессор 106 трактует характерную точку как указание, относящееся к желаемому поведению воспроизводящего устройства, определяет желаемое поведение воспроизводящего устройства, и в ответ на определение желаемого поведения воспроизводящего устройства, обеспечивает формирование управляющего сигнала, при этом управляющий сигнал связан с операцией воспроизведения аудиовизуальной презентации на воспроизводящем устройстве. Упомянутый управляющий сигнал может, например, быть включен в видеопоток или в описание видеопотока.
[00142] Режиссер 108 показан как опционально присутствующий оператор видеопроцессора 106, и в некоторых реализациях он может контролировать и/или управлять одним или более потоками данных изображений в ходе формирования и/или передачи этих потоков данных изображений. В некоторых примерах осуществления настоящего изобретения режиссер 108 обеспечивает внедрение информации, указывающей на характерную точку, в конкретное местоположение внутри видеопотока. В некоторых примерах осуществления настоящего изобретения режиссер 108 определяет желаемое поведение воспроизводящего устройства и обеспечивает формирование управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве. Упомянутый управляющий сигнал может, например, быть включен в видеопоток или в описание видеопотока. Режиссер 108, в дополнение или альтернативно, может принимать творческие решения в отношении контента, представленного в видеопотоке, а также в отношении относительного расположения объектов, элементов фона и других объектах внутри сцены. Как уже отмечалось, присутствие режиссера 108 в окружении 100 не является необходимым, и возможны реализации, в которых одна или более характерных точек вводятся в видеопоток видеопроцессором 106, в результате воздействия какого-либо другого устройства, или иным образом, без присутствия или воздействия режиссера или иного субъекта.
[00143] В соответствии с иллюстрацией фиг. 1, видеопроцессор 106 передает аудиовизуальный контент по сети 110. Нужно понимать, что фактическое передающее устройство может быть отдельным от видеопроцессора элементом, однако эти элементы функционально связаны друг с другом, и соответственно, показаны в виде единого видеопроцессора 106. В некоторых из вариантов осуществления настоящего изобретения передающее устройство может быть, например, HTTP-сервером (например, веб-сервером). Сеть 110 может быть любой сетью, подходящей для передачи 360-градусного видео и связанной с ним информации об ориентации, прямо и/или косвенно, от одного или более устройств, например, из видеопроцессора 106, в воспроизводящее устройство, например, в головной гарнитуре 114 виртуальной реальности. На фиг. 1 воспроизводящее устройство показано в виде единого устройства, однако нужно понимать, что воспроизводящее устройство может в общем случае состоять из нескольких функционально связанных друг с другом устройств. К примеру, шлем виртуальной реальности может быть подключен к компьютеру, принимающему аудиовизуальный контент по сети 110. В другом примере в головной гарнитуре, в качестве дисплейного устройства, может применяться смартфон, закрепленный на гарнитуре и принимающий аудиовизуальный контент по сети 110. В некоторых реализациях сеть 110 включает общедоступную сеть Интернет.
[00144] На фиг. 1 показан также пользователь 112, который связан с воспроизводящим устройством, например, головной гарнитурой 114 виртуальной реальности. В общем случае головная гарнитура 114 способна принимать один или более потоков данных, например, один или более потоков 360-градусных изображений (вместе с соответствующей информацией об ориентации), и воспроизводить изображения, которые могут отображаться пользователю 112. В некоторых реализациях головная гарнитура 114 виртуальной реальности может также определять информацию о положении пользователя 112, например, угол и/или степень поворота головы 112 пользователя, а также другую информацию о движении пользователя 112 или его/ее головы. На фиг. 1 показано, что пользователь 112 просматривает контент при помощи головной гарнитуры 114 виртуальной реальности, однако пользователь может также просматривать контент при помощи любой воспроизводящей системы, сконфигурированной для отображения всей видеоинформации, переданной пользователю, или ее части. К примеру, для просмотра контента пользователь может применять один или более мониторов, мобильное устройство, а также другие портативные или настольные дисплеи. Если дисплей сконфигурированы для отображения лишь части 360-градусного контента в любой момент времени, пользователю 112 могут быть предоставлены средства управления тем, какая часть контента будет отображаться. К примеру, пользователь 112 может управлять направлением просмотра, например, при помощи клавиатуры, джойстика, мыши или других периферийных устройств ввода, или при помощи вращения, или поворота, дисплейного устройства, например, в случае смартфона.
[00145] В одном из вариантов осуществления настоящего изобретения также собирают статистику о поведении пользователя во время просмотра видеороликов виртуальной реальности. К примеру, воспроизводящее устройство может передавать отчет о направлениях, или ориентации просмотра (например, ориентации головной гарнитуры 114 виртуальной реальности по отношению к его исходной ориентации в начале воспроизведения ролика), как функции времени внутри ролика на сервер, где собирают статистику. За счет сбора отчетов о направлениях просмотра для видеоролика может быть сформировано наиболее вероятное направление просмотра (MPVD), как функция времени внутри ролика. MPVD можно понимать как указание на направление, или область, которая будет с наибольшей вероятностью воспроизводиться для пользователей. MPVD может также предоставляться режиссеру 108 в качестве входных данных, как вспомогательное средство при принятии творческих решений. Альтернативно, MPVD может использоваться само по себе видеопроцессором 106 в качестве характерной точки для внедрения в заданное местоположение внутри видеопотока. Альтернативно, видеопроцессор 106 может трактовать MPVD как указание, относящееся к желаемому поведению воспроизводящего устройства, определяет желаемое поведение воспроизводящего устройства, и в ответ на определение желаемого поведения воспроизводящего устройства, обеспечивает формирование управляющего сигнала, при этом управляющий сигнал связан с операцией воспроизведения аудиовизуальной презентации на воспроизводящем устройстве. Данный вариант осуществления настоящего изобретения позволяет использовать поведение исходного множества пользователей при просмотре в качестве вспомогательного средства при выборе характерных точек, и, следовательно, улучшить впечатления от просмотра для остальных пользователей.
[00146] Основываясь, по меньшей мере частично, на исходной конфигурации наблюдения, связанной с некоторым фрагментом аудиовизуального контента, и набором условий, связанных с этой исходной конфигурацией наблюдения, аудиовизуальный контент может быть воспроизведен с учетом позиции пользователя, а создателем контента, при отображении этого контента пользователю могут приниматься различные творческие решения. В этих целях устройство 200, показанное на фиг. 2, может управлять выбором точки наблюдения и ориентации аудиовизуального контента. Это устройство может быть реализовано при помощи камер 102, источников 104 медиаданных или любых других устройств, описанных в связи с фиг. 1, например, видеопроцессора 106 и/или устройств, которые могут быть включены в сеть 110 или связаны с ней. Альтернативно, устройство 200 может быть реализовано при помощи другого компьютерного устройства, внешнего по отношению к упомянутым. К примеру, такое устройство может быть реализовано при помощи персонального компьютера, компьютерной рабочей станции, сервера, или аналогичного устройства, или при помощи различных мобильных вычислительных устройств, таких как мобильный терминал, например, смартфон, планшетный компьютер, видеоигровое устройство и т.п. Альтернативно, такое устройство может быть реализовано при помощи системы виртуальной реальности, например, устанавливаемого на голове дисплея, такого как головная гарнитура 114 виртуальной реальности.
[00147] Независимо от метода реализации устройства 200 оно, в одном из вариантов осуществления настоящего изобретения, сконфигурировано таким образом, чтобы включать процессор 202 и запоминающее устройство 204, и опционально, пользовательский интерфейс 206 и/или интерфейс 208 связи, или быть связанным с упомянутыми элементами. В некоторых из вариантов осуществления настоящего изобретения процессор (и/или сопроцессоры, или другие схемы обработки данных, вспомогательные для процессора или связанные с ним иным образом) могут осуществлять связь с запоминающим устройством по шине для передачи информации между компонентами устройства. Запоминающее устройство может быть постоянным и содержать, например, один или более энергозависимых и/или энергонезависимых блоков памяти. Другими словами, например, запоминающее устройство может представлять собой электронное устройство для хранения данных (например, машиночитаемый носитель для хранения данных), включающее вентили, сконфигурированные для хранения данных (например, бит) которые могут извлекаться вычислительной машиной (например, таким вычислительным устройством, как процессор). Запоминающее устройство может быть сконфигурировано для хранения данных, приложений, инструкций и т.п. - с целью обеспечения возможности исполнения описанным выше устройством различных функций в соответствии с одним из примеров осуществления настоящего изобретения. Например, запоминающее устройство может быть сконфигурировано для буферизации входных данных, обрабатываемых процессором. Дополнительно или альтернативно, запоминающее устройство может быть сконфигурировано для хранения инструкций, исполняемых процессором.
[00148] В соответствии с предшествующим описанием устройство 200 может быть реализовано при помощи вычислительного устройства. Однако в некоторых из вариантов осуществления настоящего изобретения предложенное устройство может быть реализовано в виде микросхемы или набора микросхем. Другими словами, устройство может включать один или более физических корпусов (например, микросхем), включая материалы, компоненты и/или конструктивные узлы (например, основную плату). Такой конструктивный узел может обеспечивать физическую прочность, экономию размера и/или ограничение электрического взаимодействия для расположенных в нем схем электронных компонентов. Такое устройство может, соответственно, в некоторых случаях быть сконфигурировано для реализации одного из вариантов осуществления настоящего изобретения в одной микросхеме, или в качестве одной «системы на кристалле». Собственно, в некоторых случаях микросхема или набор микросхем могут являться средством выполнения одной или более операций для обеспечения описанной в настоящем документе функциональности.
[00149] Процессор 202 может быть реализован множеством различных способов. Например, процессор может быть реализован в виде одного или более различных аппаратных средств обработки данных, таких как сопроцессор, микропроцессор, контроллер, цифровой сигнальный процессор (digital signal processor, DSP), процессорным элементом с сопутствующим DSP или без него, или любые другие схемы обработки данных, включая интегральные схемы, например, такие как ASIC (application specific integrated circuit, заказные интегральные схемы), FPGA (field programmable gate array, электрически программируемые вентильные матрицы), микроконтроллерный блок (microcontroller unit, MCU), аппаратный ускоритель, компьютерную микросхему специального назначения и т.п. Соответственно, в некоторых из вариантов осуществления настоящего изобретения процессор может включать в себя одно или более процессорных ядер, сконфигурированных для независимой работы. Многоядерный процессор может позволять выполнять многопроцессорную обработку данных в одном физическом корпусе. Дополнительно или альтернативно, процессор может включать в себя один или более процессоров, сконфигурированных в виде тандема с помощью шины и обеспечивающих независимое исполнение инструкций, конвейеризацию и/или многопотоковую обработку.
[00150] В одном из примере осуществления настоящего изобретения процессор 202 может быть сконфигурирован для исполнения инструкций, хранимых в запоминающем устройстве 204 или доступных для процессора иным образом. Альтернативно или дополнительно, процессор может быть сконфигурирован для исполнения жестко запрограммированной функциональности. То есть, сконфигурированный аппаратно или программно, или с помощью аппаратно-программной комбинации, процессор может представлять собой объект (например, физически реализованный в виде электронных схем), способный выполнять операции в соответствии с одним из вариантов осуществления настоящего изобретения, если он сконфигурирован надлежащим образом. То есть, например, если процессор реализован в виде ASIC, FPGA или аналогичной схемы, процессор может представлять собой оборудование, специальным образом сконфигурированное для выполнения описанных в настоящем документе операций. Альтернативно, в качестве другого примера, когда процессор реализован как устройство выполнения программных инструкций, эти инструкции могут конфигурировать процессор, специально для выполнения алгоритмов и/или операций, описанных в настоящем документе, при выполнении этих инструкций. Однако в некоторых случаях процессор может представлять собой процессор определенного устройства (например, дисплей со сквозным проходом видео или мобильный терминал), сконфигурированный для применения одного из вариантов осуществления настоящего изобретения при помощи дополнительной конфигурации процессора с использованием инструкций для выполнения алгоритмов и/или операций, описанных в настоящем документе. Процессор может включать в себя, помимо прочего, схему тактирования, арифметико-логическое устройство (arithmetic logic unit, ALU) и логические вентили, поддерживающие функционирование процессора.
[00151] В некоторых из вариантов осуществления настоящего изобретения устройство 200 может, опционально, включать пользовательский интерфейс 206, который, в свою очередь, может осуществлять связь с процессором 202 для выдачи выходных данных пользователю, а также, в некоторых из вариантов осуществления настоящего изобретения, принимать указания на ввод пользователя. Пользовательский интерфейс может включать дисплей, и в некоторых вариантах осуществления настоящего изобретения, может также включать клавиатуру, мышь, джойстик, сенсорный экран, сенсорные области, программные клавиши, микрофон, громкоговоритель или другие механизмы ввода-вывода. В дополнение или альтернативно процессор может включать схемы пользовательского интерфейса, сконфигурированные для управления по меньшей мере частью функций одного или более элементов пользовательского интерфейса, например, дисплея, и в некоторых вариантах осуществления настоящего изобретения, громкоговорителя, звонка, микрофона и т.п. Процессор 20 и/или схемы пользовательского интерфейса, в состав которых входит процессор 20, могут быть сконфигурированы для управления одной или более функцией одного или более элементов пользовательского интерфейса при помощи компьютерных программных инструкций (к примеру, программного и/или микропрограммного обеспечения) хранимых в памяти, к которой может осуществлять доступ процессор (например, запоминающее устройство 204 и т.п.)
[00152] Устройство 200, опционально, может также включать интерфейс 208 связи. Интерфейс связи может представлять собой любые средства, например, устройство или электронные схемы, реализованные аппаратно или в программно-аппаратном виде, которые сконфигурированы для приема данных из сети и/или для передачи данных в сеть, устройство или модуль, связанные с устройством. В этих целях интерфейс связи может включать, например, антенну (или несколько антенн) и вспомогательное аппаратное и/или программное обеспечение для осуществления связи с беспроводной сетью связи. В дополнение или альтернативно, интерфейс связи может включать схемы для взаимодействия с антеннами, которые обеспечивают передачу сигналов через антенны, или управляют приемом сигналов, принятых через антенны. В определенном окружении интерфейс связи может, альтернативно или дополнительно, поддерживать проводную связь. Соответственно, например, интерфейс связи может включать в себя модем связи и/или иное аппаратно-программное обеспечение для поддержки связи по кабелю, цифровой линии абонента (digital subscriber line, DSL), по универсальной последовательной шине (universal serial bus, USB) или с помощью других механизмов.
[00153] На фиг. 3 показан видеопрезентация 300, при помощи которой может быть проиллюстрирован один из примеров осуществления настоящего изобретения. В соответствии с иллюстрацией фиг. 3 видеопрезентация 300 представляет собой видеопрезентацию виртуальной реальности, сформированную как объединение контента, происходящего из двух различных сцен 316 и 318. Изображения в одной сцене имеют по существу одинаковое содержимое и, как правило, их захватывают при помощи одной камеры непрерывно. Изображения двух различных сцен захватывают, как правило, при помощи двух различных камер, или при помощи одной камеры, но не непрерывно во времени. В соответствии с иллюстрацией фиг. 3, в видеопрезентации 300 присутствует монтажный переход 320 между сценами. В проиллюстрированном примере видеопрезентации 300 она разбита на (под)сегменты 302-314 для передачи; однако варианты осуществления настоящего изобретения могут также применяться и для несегментированных файлов. В примере, показанном на фиг. 3, предполагается, что каждый из (под)сегментов 302-314 начинается с точки произвольного доступа (например, SAP в или ISOBMFF). Для каждой точки SAP указана исходная конфигурация наблюдения (например, файловым или транспортным инкапсулятором), вместе с указанием на желаемое поведение воспроизводящего устройства при непрерывном воспроизведении и при произвольном доступе к соответствующему (под)сегменту 302-314.
[00154] В соответствии с иллюстрацией фиг. 3, первые четыре (под)сегмента 302, 304, 306 и 308 относятся к одной сцене или одной камере. Для этих (под)сегментов 302-308 может быть указано, например, что исходная конфигурация наблюдений применяется при произвольном доступе и не применяется при непрерывном воспроизведении. Такое указание может иметь следующие последствия:
[00155] (1) если ни один другой (под)сегмент не был обработан ранее, и обработка начинается с любого из четырех (под)сегментов 302-308, его исходную конфигурацию наблюдения используют в начале воспроизведения. Другими словами, независимо от ориентации устанавливаемого на голове дисплея на момент начала воспроизведения, используют исходное направление наблюдения; и (2) может быть дополнительно указано, что четыре (под)сегмента 302-308 лежат в диапазоне, в котором конфигурацию наблюдения не сбрасывают. Например, обычно такое указание подходит для контента, захватываемого неподвижной камерой. Если первый (под)сегмент из этих четырех (под)сегментов 302-308 был обработан ранее и по меньшей мере частично отображен, а затем ко второму (под)сегменту был осуществлен произвольный доступ и его отображение, исходную конфигурацию наблюдения второго (под)сегмента не применяют, а вместо этого для воспроизведения используют ориентацию устанавливаемого на голове дисплея относительно исходной конфигурации наблюдения для первого (под)сегмента.
[00156] В соответствии с иллюстрацией фиг. 3, пятый (под)сегмент 310 содержит видеоконтент из другой сцены или с другой камеры, в отличие от предыдущих (под)сегментов 302-308. Может присутствовать указание на то, что исходная конфигурация наблюдения для пятого (под)сегмента 310 применяется безусловно, как при непрерывном воспроизведении, так и при произвольном доступе. Другими словами, зрителю всегда будет отображаться контент в одинаковой ориентации наблюдения, независимо от того, был ли осуществлен доступ к пятому (под)сегменту 310 при непрерывном воспроизведении (то есть, после полной обработки четвертого (под)сегмента 308, например) или после произвольного доступа.
[00157] В соответствии с иллюстрацией фиг. 3, шестой и седьмой (под)сегменты 312 и 314 принадлежат той же сцене, или камере, что и пятый (под)сегмент 310. Для шестого и седьмого (под)сегментов 312 и 314 может быть указано, например, что исходная конфигурация наблюдений применяется безусловно при произвольном доступе и не применяется при непрерывном воспроизведении. Такое указание обычно подходит для контента, в котором камера движется, и, следовательно, сохранение ориентации наблюдения, относительной к исходной конфигурации наблюдения, предыдущего (под)сегмента может быть нежелательным по мнению создателя контента, поскольку после перемотки может быть утеряна из вида область интереса.
[00158] В некоторых примерах в информацию об исходной ориентации наблюдения включают глобальное смещение (или смещения) ориентации, и следовательно, их не нужно отдельно учитывать при выборе запрашиваемых наборов адаптации, репрезентаций или подрепрезентаций. В некоторых примерах глобальное смещение (или смещения) ориентации являются отдельными от информации об исходной ориентации наблюдения, и, следовательно, они должны рассматриваться совместно при выборе запрашиваемых наборов адаптации, репрезентаций или подрепрезентаций.
[00159] В некоторых из примерах реализаций подразумевается также использование диапазона сброса, диапазона сохранения, или обоих этих диапазонов. В некоторых из подобных примеров реализации создателю контента желательно гарантировать, например, (1) чтобы пользователь всегда видел конкретную область интереса, и (2) получал непрерывный во времени и пространстве опыт, в точности соответствующий движениям головы. В некоторых случаях эти две цели могут противоречить друг другу, например, когда пользователь смотрит в направлении, полностью противоположном области интереса. Для выполнения обоих требований исходная конфигурация наблюдения может сопровождаться условием сброса и/или условием сохранения. Диапазон сброса может быть определен как набор портов просмотра, которые, когда текущее направление просмотра находится внутри упомянутого набора портов просмотра, вызывает сброс конфигурации наблюдения. Диапазон сохранения может быть определен как набор портов просмотра, которые, когда текущее направление просмотра находится внутри упомянутого набора портов просмотра, обеспечивает сохранение текущего направления просмотра, вместо сброса конфигурации наблюдения.
[00160] В одном из подобных примеров реализации, диапазон сохранения и/или диапазон сброса указывают, или анализируют, со ссылкой на угловую ширину и высоту. К примеру, условие сохранения может включать, например, горизонтальное и вертикальное поле обзора для области интереса. Когда воспроизводимый порт просмотра покрывает область интереса полностью (на что указывает исходная ориентация наблюдения, а также горизонтальное и вертикальное FOV для области интереса), конфигурацию наблюдения не сбрасывают. В противном случае конфигурацию наблюдения сбрасывают независимо от предыдущей ориентации устанавливаемого на голове дисплея (например, текущей конфигурации наблюдений). В другом примере реализации, диапазон сохранения и/или диапазон сброса указывают, или анализируют, со ссылкой на двумерную область (например, прямоугольник) внутри двумерной области изображения для конкретной проекции и конкретного мэппинга.
[00161] Некоторые из примеров реализаций могут проектироваться и/или применяться для случаев с несколькими точками наблюдения. В некоторых подобных контекстах контент виртуальной реальности может формироваться с использованием нескольких камер, предоставляющих альтернативные точки наблюдения для одного и того же контента. К примеру, концерт может записываться с помощью одной или нескольких неподвижных камер виртуальной реальности на сцене, одной или более камер виртуальной реальности, носимых операторами на сцене, и/или одной или более камер виртуальной реальности, установленных на подвижном кране. Исходная конфигурация наблюдения может включать выбор исходной точки наблюдения, используемой для воспроизведения. Пользователю может быть предоставлена возможность переключения между точками наблюдения при просмотре контента. В некоторых случаях точки наблюдения могут располагаться вблизи друг друга, например, когда применяют камерные установки. В одном из вариантов осуществления настоящего изобретения указывают, или распознают, диапазон сохранения или диапазон сброса для точек наблюдения. К примеру, может быть указано, что исходная конфигурация наблюдения не должна применяться при переключении между некоторыми смежными точками наблюдения (т.е. указан диапазон сохранения для точек наблюдения). В тех реализациях, где применяют технологию DASH, точки наблюдения могут указываться, например, при помощи дескриптора свойств Viewpoint, который уже определен в спецификации DASH. Конкретное значение @schemeIdUri может быть определено для указания на точку наблюдения виртуальной реальности, для совместного использования с дескриптором свойства Viewpoint или любым другим дескриптором свойства. Атрибут @value может применяться для размещения идентификатора точки наблюдения.
[00162] В некоторых из примеров реализаций применяют также условие режима воспроизведения. Условие режима воспроизведения может быть заранее задано, например, в стандарте, или может указываться, например, видеопроцессором 106 в видеопотоке или в описании видеопотока. Условие режима воспроизведения может указывать на режимы воспроизведения, для которых применяется исходная конфигурация наблюдения, и/или на режимы воспроизведения, для которых исходная конфигурация наблюдения не применяется. Режимы воспроизведения могут включать, без ограничения перечисленным, непрерывное воспроизведение, поиск или произвольный доступ для запуска непрерывного воспроизведения, ускоренное воспроизведение, например, при котором воспроизводят только внутренне предсказываемые изображения, ускоренную перемотку назад, например, при которой воспроизводят только предсказываемые изображения. Условие режима воспроизведения дает автору контента возможность указать на то, что конфигурация наблюдения должна быть сброшена при поиске для запуска непрерывного воспроизведения, но не должна сбрасываться при ускоренной перемотке вперед или назад, или наоборот.
[00163] В некоторых из примеров реализаций применяют также дополнительные опции сигнализации. В одном из подобных примеров реализации метод передачи аудиовизуального контента, предназначенного для воспроизведения по выбору под управлением пользователя, может включать следующее: указание на исходную конфигурацию наблюдения внутри некоторой синтаксической структуры; и указание, в этой синтаксической структуре, применяется ли исходная конфигурация наблюдения безусловно при произвольном доступе. В другом примере реализации метод доступа к аудиовизуальному контенту, предназначенному для воспроизведения по выбору под управлением пользователя, может включать следующее: распознавание исходной конфигурации наблюдения в синтаксической структуре: и распознавание, в этой синтаксической структуре, применяется ли исходная конфигурация наблюдения безусловно при произвольном доступе. В другом примере реализации упомянутая синтаксическая структура может быть включена на уровне презентации, или распознаваться на этом уровне, например, на языке SMIL, или HTML5, или содержащейся в нем информации о презентации (например, каскадная таблица стилей). В одном из вариантов осуществления настоящего изобретения синтаксическая структура представляет собой элемент на языке разметки, например, HTML5. В другом примере реализации упомянутая синтаксическая структура может быть включена в описание презентации или манифест потоковой передачи (или распознана из них), например, MPD-описание DASH или протокол описания сеанса (Session Description Protocol, SPD).
[00164] В другом примере реализации, где применяют DASH, такой синтаксической структурой может быть событие (Event). Событие и элемент EventStream, содержащий событие, могут использоваться, например, следующим образом:
[00165] Идентификатором конфигурации наблюдения является Event@id.
[00166] Event@messageData включает одно или более из следующего: указание на то, что исходная конфигурация наблюдения не применяется, применяется безусловно, или применяется с некоторым условием при непрерывном воспроизведении; указание на то, что исходная конфигурация наблюдения не применяется, применяется безусловно, или применяется с некоторым условием при произвольном доступе; указание на исходную точку наблюдения; и/или указание на исходную ориентацию наблюдения.
[00167] Конкретный URI-идентификатор в EventStream@schemeIdUri указывает на то, что содержащиеся внутри события имеют информацию об исходных конфигурациях наблюдения.
[00168] В таком примере реализации EventStream@value может указывать на точку наблюдения, к которой относятся содержащиеся внутри события. В другом примере реализации EventStream@value может указывать на наборы адаптации, репрезентации или подрепрезентации, к которым относятся содержащиеся внутри события.
[00169] В еще одном из примеров реализации упомянутую синтаксическую структуру включают в контейнерный файл, сегмент или подсегмент, или распознают в них. Если контейнерный файл, сегмент или подсегмент соответствуют формату ISOBMFF, возможны следующие варианты осуществления настоящего изобретения: упомянутой синтаксической структурой может быть внутриполосное событие (Event); синтаксической структурой может быть сэмпл трека синхронизированных метаданных ISOBMFF; синтаксической структурой может быть запись описания группы сэмплов ISOBMFF; и/или синтаксической структуры может быть бокс внутри записи сэмпла.
[00170] В еще одном из примеров реализации такая синтаксическая структура может быть включена внутриполосно в битовый поток медиаданных. К примеру, такой синтаксической структурой может быть сообщение SEI в битовом потоке видеоданных, или блок служебных данных в битовом потоке аудио. Во многих стандартах видеокодирования, таких как, H.264/AVC и H.265/HEVC, допускается включение дополнительной уточняющей информации (supplemental enhancement information, SEI) в битовый поток видеоданных. Информация SEI может быть инкапсулирована в некоторой структуре данных, например, блоке уровня сетевой абстракции (network abstraction layer, NAL) SEI в стандартах H.264/AVC и H.265/HEVC. Эта структура данных может включать одно или более сообщений 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 на стороне приемника может быть определена дополнительно.
[00171] Некоторые из примеров реализаций могут проектироваться и/или применяться в контексте работы клиента DASH. В одной из подобных примеров реализации предполагается, что сигнализацию осуществляют методом с задействованием потоков событий (Event Stream), описанных выше, однако приведенное описание применимо и к другим вариантам сигнализации. Сначала DASH-клиент распознает в MPD-описании, что присутствует поток событий для исходных конфигураций наблюдения. Если такой поток событий отсутствует, клиент DASH не сможет выполнить описанную ниже процедуру.
[00172] Клиент DASH может затем распознать событие, которое соответствует первому (под)сегменту, с которого должно начаться воспроизведение, или которое охватывает этот подсегмент. Это событие содержит указание на исходную точку наблюдения (в случае, когда в MPD-описании объявлен контент для нескольких точек наблюдения) и на исходную ориентацию наблюдения. Если исходная точка наблюдения содержится в этом событии, клиент выбирает, какой из наборов адаптации соответствует этой исходной точкой наблюдения, например, анализируя, какой из наборов адаптации содержит дескриптор свойства Viewpoint с атрибутом @schemeIdUri, указывающим на точки наблюдения, и чей атрибут @value равен идентификатору исходной точки наблюдения, содержащейся в данном событии. Если исходная ориентация наблюдения содержится в данном событии, клиент DASH выбирает, какие из наборов адаптации, репрезентаций или подрепрезентаций содержат эту ориентацию, например, анализируя, покрывает ли порт (или порты) просмотра, указанный дескриптором свойства виртуальной реальности (например, в соответствии с описанием в документе MPEG М38613, включенном в настоящий документ путем ссылки), исходную ориентацию наблюдения. При определении, какие из наборов адаптации, репрезентаций или подрепрезентаций соответствуют упомянутой исходной ориентации наблюдения учитывают также (описанным ниже способом) требуемое глобальное смещение (или смещения) ориентации и ориентацию проекционной структуры, или кадра проекции. Если имеются несколько наборов адаптации, покрывающих исходную ориентацию наблюдения, клиент DASH может, например, выбирать набор адаптации, который включает исходную ориентацию наблюдения и обладает наилучшим качеством (например, на которое указывает значение quality_ranking в дескрипторе свойств виртуальной реальности), и/или в котором исходная ориентация наблюдения наиболее близка к центру в портах просмотра, покрываемых этими наборами адаптации. Если внутри набора адаптации, покрывающего исходную ориентацию наблюдения, имеются несколько репрезентаций или подрепрезентаций, клиент DASH, например, может выбирать репрезентацию или подрепрезентацию, в которой порт просмотра, охватывающий исходную ориентацию наблюдения, имеет наилучшее качество (например, на которое указывает значение quality_ranking в дескрипторе свойств виртуальной реальности). После того, как набор адаптации и репрезентации, или подрепрезентаций, из этого набора адаптации, будет выбран, клиент может запрашивать первый (под)сегмент из выбранной репрезентации или подрепрезентаций.
[00173] В ходе непрерывного воспроизведения клиент DASH может анализировать события в потоке событий и распознавать исходные конфигурации наблюдения. Когда будет найдено время презентации для события, применимого к непрерывному воспроизведению, клиент проверяет, должно ли это событие быть применено. Событие, которое применимо безусловно, сбрасывает текущую конфигурацию наблюдения в исходное значение (содержащееся в событии). Для события, которое применимо условно, обрабатывают соответствующие условия, и если они выполняются, клиент сбрасывает текущую конфигурацию наблюдения в исходное значение (содержащееся в событии). После подобного сброса выполняют запросы на последующие подсегменты, соответствующим образом, и клиент также использует исходную конфигурацию наблюдения при воспроизведении контента. В противном случае (если сброс текущей точки наблюдения не выполняется) клиент продолжает использовать текущую точку наблюдения.
[00174] Клиент DASH может предоставлять пользователю функции поиска или произвольного доступа. После поиска клиент может функционировать аналогично приведенному выше описанию, однако при произвольном доступе дополнительно выполняется обработка исходной конфигурации наблюдения, применимой условно. Клиент DASH может обрабатывать указания, которые представляют собой условия применения исходной конфигурации наблюдения. В этих целях клиент DASH может получать текущую ориентацию просмотра, например, от устанавливаемого на голове дисплея. Если условия выполнены, или если исходная точка наблюдения применяется безусловно при произвольном доступе, клиент сбрасывает текущую конфигурацию в наблюдения в исходную и запрашивает (под)сегмент соответствующим образом. Клиент также использует исходную конфигурацию наблюдения при воспроизведении контента. Если условия не выполнены, клиент продолжает использовать текущую конфигурацию наблюдения. В результате распознавания метаданных проецирования и мэппинга из MPD-описания (например, из одного или более описанных выше дескрипторов), клиент DASH определяет, какой набор адаптации и какая репрезентация покрывают текущую ориентацию просмотра и имеют максимальное качество, а также битрейт, который соответствует превалирующей прогнозируемой сетевой производительностью. В соответствии с этим клиент DASH выдает запросы на (под)сегмент.
[00175] В одном из примеров реализации клиент принимает и распознает указания, относящиеся к исходной конфигурации наблюдения, раньше, чем медиаданные, к которым она применима. К примеру, клиент DASH может принимать и распознавать поток событий до момента времени, в который выдаются запросы на соответствующие (под)сегменты. Клиент распознает, по меньшей мере какие из указаний на исходную конфигурацию наблюдения, применимы безусловно при непрерывном воспроизведении. Клиент определяет, какие запросы на (под)сегменты наиболее вероятно будут сделаны впоследствии, на основе указаний на исходную конфигурацию наблюдения, которые применимы безусловно при непрерывном воспроизведении. Клиент при определении наиболее вероятных запросов на (под)сегменты может также учитывать превалирующую прогнозируемую производительность сети и другие аспекты, например, поле обзора дисплея.
[00176] В одном из примеров реализации наиболее вероятные запросы на подсегменты указывают в виде URL-локаторов, и, в некоторых случаях, в виде байтового диапазона (или диапазонов). Запросы HTTP GET для URL-локаторов и соответствующий байтовый диапазон или диапазоны транслируются в наиболее вероятный запрос последующих (под)сегментов.
[00177] В одном из примеров реализации упомянутое информирование осуществляют при помощи сообщений SAND DASH. В одном из вариантов осуществления настоящего изобретения для передачи упомянутых URL-локаторов, и в некоторых случаев, байтового диапазона (или диапазонов), используют сообщение SAND AnticipatedRequests.
[00178] В одном из вариантов осуществления настоящего изобретения упомянутое информирование осуществляют с использованием заголовка HTTP, который может быть, например, составной частью запроса GET. В одном из вариантов осуществления настоящего изобретения такой заголовок HTTP может соответствовать спецификации DASH SAND.
[00179] Как уже отмечалось, в некоторых примерах реализации видеопроцессор 106 внедряет информацию, указывающую на характерные точки, в видеопоток или отдельный поток (или в некоторую структуру сигнализации, например, описание медиапрезентации), связанный с видеопотоком.
[00180] В одном из примеров реализации, в различных вариантах осуществления настоящего изобретения, информацию, указывающую на характерные точки, интерпретируют, при инициализации потоковой передачи и при произвольном доступе, как исходную конфигурацию наблюдения.
[00181] В одном из вариантов осуществления настоящего изобретения информация о характерных точках указывает на (под)сегменты, которые будут запрошены с наибольшей вероятностью, а не представляет собой точное указание на характерные точки в декодированном контенте, которые имеют точное пространственное и временное местоположение.
[00182] Способ в соответствии с одним из примеров реализации может включать:
прием информации, указывающей на (под)сегменты, включающие характерные точки;
обеспечение формирование сигнала, который указывает на запросы (под)сегментов;
передачу упомянутого сигнала.
[00183] В одном из примеров реализации информацию о характерных точках формируют как функцию времени с точностью до одного (под)сегмента. Другими словами, информация о характерных точках указывает, для каждой длительности неперекрывающихся (под)сегментов, на (под)сегмент, который с наибольшей вероятностью будет запрошен клиентами. В одном из вариантов осуществления настоящего изобретения информацию о характерных точках, имеющую точность до (под)сегмента, указывают в форме последовательности URL-локаторов, каждый из которых указывает на (под)сегмент, который с наибольшей вероятностью будет запрошен клиентами. В одном из вариантов осуществления настоящего изобретения информацию о характерных точках, имеющую точность до (под)сегмента, указывают с использованием ссылки на шаблон URL-локатора и списка и/или диапазона значений, вставляемых в этот шаблон URL-локатора, для получения URL-локаторов (под)сегментов, которые с наибольшей вероятностью будут запрошены клиентами. В одном из вариантов осуществления настоящего изобретения информацию о характерных точках, имеющую точность до (под)сегмента, указывают с использованием ссылки на MPD-описание, или аналогичную структуру, и списка, или диапазона, значений идентификаторов для заранее заданной или указанной иерархии идентификаторов, соответствующей или аналогичной иерархической модели данных (например, в DASH). К примеру, может быть указан список идентификаторов периодов (Period), для каждого периода, может быть указан список идентификаторов наборов адаптации, для каждого набора адаптации, может быть указан список идентификаторов репрезентации и период их действительности, выраженный во времени репрезентации (например, на шкале времени сегмента), или могут быть указаны номера сегментов.
[00184] В одном из примеров реализации информацию о характерных точках, имеющую точность до (под)сегмента, сообщают при помощи указания на наиболее вероятное направление, или ориентацию, просмотра, например, выраженную в углах поворота вокруг поперечной, продольной и горизонтальной осей. В одном из вариантов осуществления настоящего изобретения наиболее вероятное направление, или ориентация, просмотра включает глобальное смещение (или смещения) ориентации. Следовательно, клиенту не нужно получать глобальное смещение (или смещения) ориентации перед определением, какие из наборов адаптации, репрезентаций или подрепрезентации покрывают наиболее вероятное направление, или ориентацию, просмотра. В одном из примеров реализации наиболее вероятное направление, или ориентация, просмотра, не включает глобальное смещение (или смещения) ориентации. Следовательно, клиент получает глобальное смещение (или смещения) ориентации перед определением, какие из наборов адаптации, репрезентаций или подрепрезентации покрывают наиболее вероятное направление, или ориентацию, просмотра, и, по существу, учитывает сумму глобального смещения (или смещений) ориентации и наиболее вероятного направления, или ориентации, просмотра, при определении, какие из наборов адаптации, репрезентаций или подрепрезентации покрывают наиболее вероятное направление, или ориентацию, просмотра. Семантика указания на наиболее вероятное направление, или ориентацию просмотра следующая: клиентами с наибольшей вероятностью будут запрошены наборы адаптации, репрезентации или подрепрезентации, которые покрывают наиболее вероятное направление, или ориентацию просмотра, и имеют ранг качества, указывающий на сравнительно высокое качество для наиболее вероятного направления, или ориентации, просмотра. Охватываемые направления, или ориентации, просмотра и их ранги качества могут быть указаны, например, в дескрипторе видео виртуальной реальности и/или дескрипторе пространственных отношений, в соответствии с предшествующим описанием.
[00185] В одном из примеров реализации информацию о характерных точках указывают в видеопотоке при помощи событий, например, в боксах DASHEventMessageBox, которые могут появляться в начале (под)сегментов перед боксом 'moof' каждого (под)сегмента.
[00186] В одном из примеров реализации информацию о характерных точках указывают в потоке событий, или аналогичном элементе, в описании медиапрезентации, или в аналогичной структуре. В некоторых из вариантов осуществления настоящего изобретения время презентации (@presentationTime) и длительность (@duration) событий выбирают так, чтобы они соответствовали границам (под)сегмента. Данные сообщения (@messageData) могут включать структуру, указывающую на (под)сегменты, которые с наибольшей вероятностью будут запрошены клиентами, при этом различные варианты этого описаны выше.
[00187] В одном из примеров реализации клиент принимает информацию о характерных точках, например, при помощи одного из описанных выше средств, к примеру, при помощи элемента EventStream в MPD-описании DASH. Затем, на основе информации о характерных точках, в соответствии с предшествующим описанием, клиент определяет, запросы на какие (под)сегменты будут сделаны с наибольшей вероятностью. Клиент информирует сетевой элемент, например кэширующий прокси-сервер, о наиболее вероятных последующих запросах (под)сегментов.
[00188] В одном из примеров реализации клиент принимает информацию о характерных точках, имеющую точность до (под)сегмента.
[00189] В одном из примеров реализации наиболее вероятные запросы на подсегменты указывают в виде URL-локаторов, и, в некоторых случаях, в виде байтового диапазона (или диапазонов). Запросы HTTP GET для URL-локаторов и соответствующий байтовый диапазон или диапазоны транслируются в наиболее вероятный запрос последующих (под)сегментов.
[00190] В одном из примеров реализации упомянутое информирование осуществляют при помощи сообщений SAND DASH. В одном из вариантов осуществления настоящего изобретения для передачи упомянутых URL-локаторов, и в некоторых случаев, байтового диапазона (или диапазонов), используют сообщение SAND AnticipatedRequests.
[00191] В одном из примеров реализации упомянутое информирование осуществляют с использованием заголовка HTTP, который может быть, например, составной частью запроса GET. В одном из вариантов осуществления настоящего изобретения такой заголовок HTTP может соответствовать спецификации DASH SAND.
[00192] В одном из примеров реализации сетевой элемент, например, кэширующий прокси-сервер или пограничный сервер, принимает информацию о характерных точках, например, с помощью одного или более из описанных выше средств. На основе информации о характерных точках, в соответствии с предшествующим описанием, сетевой элемент определяет, запросы на какие (под)сегменты будут сделаны с наибольшей вероятностью. Сетевой элемент заранее загружает эти (под)сегменты. Соответственно, когда клиент выдает запросы на эти (под)сегменты, они уже доступны в сетевом элементе, и, следовательно, ответы на запросы будут более оперативными.
[00193] В одном из примеров реализации сетевой элемент, например, кэширующий прокси-сервер или пограничный сервер, принимает от клиента информацию о наиболее вероятных запросах (под)сегментов. Сетевой элемент заранее загружает эти (под)сегменты. Соответственно, когда клиент выдает запросы на эти (под)сегменты, они уже доступны в сетевом элементе, и, следовательно, ответы на запросы будут более оперативными.
[00194] В одном из примеров реализации информацию о глобальном смещении ориентации формируют как функцию времени с точностью до одного (под)сегмента. Поскольку глобальное смещение ориентации внутри (под)сегмента может меняться, информация о глобальном смещении ориентации, имеющая точность до (под)сегмента, может указывать на диапазон глобальных смещений ориентации, охватывающий изменения глобального смещения ориентации внутри (под)сегмента. В одном из вариантов осуществления настоящего изобретения информацию о глобальном смещении ориентации, имеющая точность до (под)сегмента, включают в события DASH, например, в поток событий, внутриполосно или в MPD-описании.
[00195] Фиг. 4 представляет собой другой пример того, каким образом рассмотренные в настоящем документе решения, могут применяться для решения технических проблем, связанных с переориентацией аудиовизуального контента в окружении виртуальной реальности. В соответствии с иллюстрацией фиг. 4, аудиовизуальный контент 400 включает восемь ракурсов 402-416, которые могут использоваться как представление 360-градусного поля обзора, при этом их захватывают, например, при помощи камерной системы Nokia OZO или другой многокамерной системы. В примере реализации, показанном на фиг. 4, MPVD-направление известно для всех моментов времени в контенте, заключенном в ракурсах 402-416, и проиллюстрировано в точках 418, 420, 422, 424 и 426. Чтобы снизить вероятность ориентации и/или положения зрителя, при котором пользователь неправильно расположен относительно MPVD (или расположен так, что физическое перемещение для совпадения с MPVD будет сложным и/или неудобным), ракурсы 402-416 могут воспроизводиться для зрителя таким образом, чтобы ракурс (или ракурсы), в которых MPVD расположено наиболее центрально относительно ракурса конкретной камеры, отображался непосредственно перед зрителем. К примеру, в соответствии с иллюстрацией фиг. 4, точки 424 и 426 MPVD находятся сравнительно близка к центру их соответствующих ракурсов 410 и 412. При помощи контура 428 показано, что ракурсы 410 и 412 выбирают и воспроизводят таким образом, что они отображаются спереди от зрителя, то есть, зрителю отображают MPVD-направление, даже если положение или ориентация зрителя в ином случае привела бы к отображению, с фронтальной стороны, другого ракурса, или ракурсов. Воспроизведение остальных ракурсов 402, 404, 406, 408, 414 и 416 также выполняют с учетом смещения, связанного с тем, что ракурсы 410 и 412 передвинуты в область перед зрителем.
[00196] Фиг. 5 представляет собой еще один пример того, каким образом рассмотренные в настоящем документе решения, могут применяться для решения технических проблем, связанных с переориентацией аудиовизуального контента в окружении виртуальной реальности. НА фиг. 5 показан аудиовизуальный контент 400, показанный ранее на фиг. 4, и включающий все ракурсы 402-416 и точки MPVD-направления 418-426. В отличие от фиг. 4, где для определения, какие из ракурсов должны быть отображены спереди от зрителя, использовались расстояния от точек MPVD до центра соответствующих ракурсов, на фиг. 5 показана реализация, подразумевающая масштабируемое кодирование ракурсов. Уровни ракурса могут покрывать различные порты просмотра внутри ракурса. На фиг. 5 показан случай, в котором порты просмотра уровней внутри ракурса имеют одинаковую ориентацию, но увеличивающееся покрытие поля обзора. Однако возможны также и другие схемы многоуровневого кодирования, включая, без ограничения перечисленным, например, схемы, где уровни частично перекрываются, а также с различными ориентациями, но одинаковыми полями обзора внутри ракурса. На фиг. 5 уровни определяют зоны близости к центру ракурса. В соответствии с иллюстрацией фиг. 5, в ракурсе 402 отмечены уровни 402' и 402'', при этом нужно понимать, что соответствующие уровни показаны и для всех остальных ракурсов 404-416. В примере реализации, показанном на фиг. 5, не нужно вычислять абсолютное расстояние от центра ракурса до точки MPVD. Вместо этого ракурсы могут быть отсортированы и выбираться, если в некотором уровне ракурса может быть найдена точка MPVD. В соответствии с иллюстрацией фиг. 5, точки 424 и 426 MPVD находятся в наиболее центральных уровнях, показанных для ракурсов 410 и 412, тогда как остальные точки MPVD проиллюстрированы как находящиеся по меньшей мере частично в более внешних уровнях соответствующих ракурсов. Соответственно, как это показано контуром 428, ракурсы 410 и 412 могут быть выбраны и воспроизведены таким образом, чтобы они отображались непосредственно спереди от зрителя.
[00197] Примеры реализаций, показанные на фиг. 4 и 5 могут быть особенно эффективны в случае стереоскопических ракурсов, а также в случаях, когда контент, отображаемый в MPVD-направлении, должен воспроизводиться так, чтобы быть отображенным спереди от пользователя как можно чаще, независимо от положения и/или ориентации зрителя (или воспроизводящего устройства, применяемого пользователем). Примеры, рассмотренные здесь в связи с фиг. 4 и 5 подразумевают выбор любых из всех возможных ракурсов, присутствующих в некотором потоке, однако нужно понимать, что на выбор ракурсов, отображаемых зрителю, могут накладываться дополнительные ограничения. К примеру, выбор ракурсов может зависеть, по меньшей мере отчасти, от направления устанавливаемого на голове дисплея в момент запуска контента, то есть, например, если устанавливаемый на голове дисплей направлен вверх, подмножество ракурсов, доступных для выбора, будет ограничено верхними (по расположению относительно вертикальной оси) ракурсами. Аналогично, если общее направление дисплея соответствует середине имеющихся ракурсов (по расположению относительно вертикальной оси), подмножество доступных для выбора ракурсов может быть ограничено ракурсами, расположенными поблизости друг от друга по вертикали.
[00198] Обратимся к фиг. 6А, где в виде блок-схемы алгоритма 600 показаны операции, выполняемые устройством 200, проиллюстрированном на фиг. 2, в соответствии с одним из примеров осуществления настоящего изобретения. В этом отношении устройство включает средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., выполнения следующего: прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации; прием указания, относящегося к желаемому поведению воспроизводящего устройства; определение желаемого поведения воспроизводящего устройства; и, в ответ на определение желаемого поведения воспроизводящего устройства, обеспечение формирования управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве. Само устройство, в общем случае, способно обеспечивать управляемый выбор точки наблюдения и ориентации аудиовизуального контента, рассмотренный выше или предполагаемый в настоящем документе.
[00199] Устройство включает средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие прием указания, относящегося к исходной конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации. В соответствии с иллюстрацией фиг. 6А, алгоритм 600 начинается блоком 602, где принимают указание, относящееся к исходной конфигурации наблюдения. В некоторых из примеров реализации алгоритма 600 упомянутая конфигурация наблюдения может включать точку наблюдения и ориентацию наблюдения. В некоторых примерах реализации, применяемых в окружении DASH, указание на исходную конфигурацию наблюдения может размещаться в точке доступа к потоку (SAP) для каждого сегмента и/или подсегмента аудиовизуального контента, отображаемого пользователю.
[00200] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие прием указания, относящегося к желаемому поведению воспроизводящего устройства. В соответствии с иллюстрацией фиг. 6А, алгоритм 600 продолжается блоком 604, где принимают указание, относящееся к желаемому поведению воспроизводящего устройства. В общем случае, во многих примерах реализации, указание, относящееся к желаемому поведению воспроизводящего устройства позволяет определить «силу», с которой создатель контента предпочитает, чтобы заданный контент отображался определенным образом, но также допускаются условия, при которых положение зрителя (например, положение головы пользователя, или ориентация воспроизводящего устройства) может пересиливать предпочтения создателя контента. В некоторых примерах реализации блока 604 желаемое поведение воспроизводящего устройства включает, при выполнении некоторого условия, сброс конфигурации наблюдения в исходную. В некоторых примеров реализации блока 604, упомянутое указание, относящееся к желаемому поведению воспроизводящего устройства, может включать указание, относящееся к желаемому поведению воспроизводящего устройства в режиме непрерывного воспроизведения в воспроизводящем устройстве, и указание, относящееся к желаемому поведению воспроизводящего устройства в режиме произвольного доступа в воспроизводящем устройстве. То есть, в некоторых примерах реализации блока 604 допускается некоторая степень ситуационного поведения воспроизводящего устройства, в том смысле, что контент может отображаться одним образом в режиме непрерывного произведения, тогда как при произвольном доступе к сегменту или подсегменту контента этот же контент может отображаться иным образом.
[00201] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие определение желаемого поведения воспроизводящего устройства. В соответствии с иллюстрацией фиг. 6А, алгоритм 600 продолжается блоком 606, где определяют желаемое поведение воспроизводящего устройства. В некоторых из примеров реализации блока 606 определение желаемого поведения воспроизводящего устройства включает определение, удовлетворено ли условие, относящееся к желаемому поведению воспроизводящего устройства. В некоторых из примеров реализации допускаются сценарии, включающие указание на то, что исходная конфигурация наблюдения (1) не применяется, (2) применяется условно, или (3) применяется безусловно при непрерывном воспроизведении. Аналогично, в некоторых подобных, а также других примерах реализации допускаются сценарии, включающие указание на то, что исходная конфигурация наблюдения (1) не применяется, (2) применяется условно, или (3) применяется безусловно, когда происходит произвольный доступ к сегменту или подсегменту.
[00202] В некоторых из примеров реализации упомянутое условие включает по меньшей мере одно условие сброса, относящееся к исходной конфигурации наблюдения. К примеру, если условие сброса удовлетворено, может обеспечиваться применение исходной конфигурации наблюдения. В подобных примерах реализации условие сброса может принимать форму диапазона сброса точек наблюдения и/или ориентации наблюдения, который обеспечивает применение исходной конфигурации наблюдения. При этом, в некоторых реализациях, условие сброса может быть по меньшей мере частично основано на текущей конфигурации наблюдения.
[00203] В некоторых из подобных примеров реализации, а также в других примерах реализации, упомянутое условие включает по меньшей мере одно условие сохранения, относящееся к исходной конфигурации наблюдения, например, условие сохранения может обеспечивать неприменение исходной конфигурации наблюдения. В подобных примерах реализации условие сохранения может принимать форму диапазона сохранения точек наблюдения и/или ориентации наблюдения, который обеспечивает неприменение исходной конфигурации наблюдения.
[00204] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие, в ответ на определение желаемого поведения воспроизводящего устройства, формирование управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения аудиовизуальной презентации на воспроизводящем устройстве. В соответствии с иллюстрацией фиг. 6А, алгоритм 600 продолжается в блоке 608, который включает, в ответ на определение желаемого поведения воспроизводящего устройства, обеспечение формирования управляющего сигнала, относящегося к операции воспроизведения. В некоторых примерах реализации блока 608, управляющий сигнал указывает на желаемое поведение воспроизводящего устройства. В некоторых из примеров блока 608 операция воспроизведения аудиовизуальной презентации на воспроизводящем устройстве включает выбор части этой аудиовизуальной презентации. Как уже отмечалось, в частности, в отношении фиг. 3, 4 и 5, реализации процедуры 500, а также другие варианты осуществления настоящего изобретения, позволяют определять, должен ли, и до какой степени, контент, отображаемый зрителю, воспроизводиться таким образом, чтобы расположение контента относительно зрителя было скорректировано и/или смещено, в зависимости от исходной конфигурации наблюдения, относящейся к сегменту или подсегменту контента, ориентации воспроизводящего устройства, и/или способа, которым был осуществлен переход к текущему сегменту или подсегменту (например, непрерывное воспроизведение или произвольный доступ). В некоторых примерах реализации блока 608 после определения желаемого поведения воспроизводящего устройства (например, после определения того, что удовлетворено условие, относящееся к применению исходной конфигурации наблюдения) может быть сформирован управляющий сигнал, который прямо или косвенно обеспечивает воспроизведение контента требуемым образом и его отображение пользователю.
[00205] Нужно понимать, что некоторые из реализаций процедуры 600, а также другие варианты осуществления изобретения, рассмотренные в данном документе, подразумевают повторяющееся определение желаемого поведения воспроизводящего устройства. К примеру, некоторые из примеров реализаций предполагают наличие первого идентификатора конфигурации наблюдения, относящегося к первому набору блоков передачи аудиовизуального контента, и второго идентификатора конфигурации наблюдения для второго набора блоков передачи. В некоторых подобных примерах реализации блок передачи может представлять собой одно или более из следующего: набор адаптации, репрезентация, подрепрезентация, набор сегментов, набор подсегментов и/или временной диапазон. Такие различные блоки передачи могут быть связаны с различными условиями сброса и/или условиями сохранения, то есть, желаемое поведение для различных блоков передачи может отличаться. При этом условия, относящиеся к отдельным блокам передачи, могут соотноситься, или быть связанными друг с другом, так что условия и/или желаемое поведение, относящееся к одному блоку передачи, может быть основано, по меньшей мере частично, на условиях и/или предполагаемом поведении, относящимся к другому блоку передачи.
[00206] Обратимся к фиг. 6В, где в виде блок-схемы алгоритма 100 показан другой набор операций, выполняемых устройством 200, проиллюстрированном на фиг. 2, в соответствии с одним из примеров осуществления настоящего изобретения. Нужно понимать, что некоторые из примеров реализации алгоритма 1000 могут быть особенно эффективны в вариантах осуществления настоящего изобретения, применяемых в воспроизводящем устройстве, и/или выполняемых им, например, в головной гарнитуре 114 виртуальной реальности. В этом отношении устройство включает средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие обнаружение конфигурации наблюдения для набора блоков передачи, принадлежащих аудиовизуальной презентации. В соответствии с иллюстрацией фиг. 6В, алгоритм 1000 начинается в блоке 1002, где обнаруживают конфигурацию наблюдений, относящуюся к блокам передачи аудиовизуальной презентации. Обнаружение конфигурации наблюдения может выполняться в соответствии с любым из множества методов, в зависимости от способа приема конфигурации наблюдения, который, в свою очередь, может зависеть от протоколов и форматов, связанных с аудиовизуальной презентацией и ее передачей. Нужно понимать, что при реализации процедуры 1000 и блока 1002 могут применяться множество форматов и протоколов медиаданных, описанных и/или упомянутых в настоящем документе. В некоторых из примеров осуществления настоящего изобретения конфигурация наблюдения включает точку наблюдения и/или ориентацию наблюдения. В некоторых примерах реализации конфигурация наблюдения может включать указание на наиболее вероятное направление просмотра. Реализации, в которых учитывают MPVD могут быть особенно предпочтительными, когда MPVD определено либо при помощи указания создателем контента и/или при помощи сбора и обработки данных об использовании, связанных с множеством просмотров и/или зрителей контента.
[00207] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие определение, удовлетворено ли условие, относящееся к конфигурации наблюдения. В соответствии с иллюстрацией фиг. 6В, алгоритм 1000 продолжается блоком 1004, где определяют, удовлетворено ли условие, относящееся к конфигурации наблюдения. В соответствии с предшествующим описанием, многие из реализаций или вариантов осуществления настоящего изобретения подразумевают управление выбором точки наблюдения и ориентации, относящихся к аудиовизуальному контенту, на основе свойств этого контента (например, конфигурации наблюдения, MPVD и/или другой информации о контенте) и/или других факторов, например, положения зрителя и/или воспроизводящего устройства, контекста, в котором пользователь получает конкретный сегмент или подсегмент контента, и/или других факторов, и, в ответ на это, отображение контента зрителю определенным образом. В некоторых из примеров реализации блока 1004 определение, удовлетворено ли условие, относящееся к конфигурации наблюдений, включает определение ориентации воспроизводящего устройства. Воспроизводящее устройство, например, головная гарнитура 114 виртуальной реальности, может быть сконфигурирована для регистрации и передачи информации, относящейся к абсолютному и/или относительному положению (включая, без ограничения перечисленным, поворот вокруг поперечной, продольной и вертикальной осей и/или угол наблюдения) воспроизводящего устройства, пользователя, или их обоих. В некоторых примерах реализации определение, удовлетворено ли условие, относящееся к воспроизводящему устройству, включает определение, находится ли воспроизводящее устройство в режиме непрерывного воспроизведения и/или в режиме произвольного доступа. В соответствии с предшествующим описанием, будет ли применяться конкретная конфигурация наблюдения или нет, чтобы обеспечить зрителю положительные впечатления от просмотра, в каждой отдельной ситуации может зависеть от того, выполнил ли пользователь произвольный доступ к конкретной части аудиовизуальной презентации или перешел к этой части в ходе непрерывного просмотра от предыдущих частей.
[00208] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие, в ответ на то, что условие, относящееся к конфигурации наблюдения, удовлетворено, выбор подмножества блоков передачи, принадлежащих аудиовизуальной презентации. В соответствии с иллюстрацией фиг. 6В алгоритм 1000 продолжается блоком 1006, в котором выбирают подмножество блоков передачи. В соответствии с иллюстрацией фиг. 3, 4 и 5, и соответствующим описанием, после приема конфигурации наблюдения и определения, удовлетворено ли условие, или условия, относящиеся к конфигурации наблюдения, для отображения пользователю могут быть выбраны одна или более частей, или ракурсов, принадлежащих аудиовизуальной презентации. В примерах реализации блока 1006 могут применяться любые методы определения и/или выбора отображаемых ракурсов, описанные и/или упомянутые в настоящем документе.
[00209] Устройство включает также средства, например, процессор 202, память 204, интерфейс 208 связи и т.п., обеспечивающие формирование управляющего сигнала, при этом управляющий сигнал относится к операции воспроизведения выбранного подмножества блоков передачи, принадлежащих аудиовизуальной презентации, на воспроизводящем устройстве. В соответствии с иллюстрацией фиг. 6В, алгоритм 1000 продолжается блоком 1008, в котором обеспечивают формирование управляющего сигнала, относящегося к воспроизведению выбранного подмножества блоков передачи. В некоторых из примеров реализации блока 1008 управляющий сигнал включает указание на желаемое поведение воспроизводящего устройства. К примеру, когда определено, что условия, относящиеся к конфигурации наблюдения удовлетворены, и выбраны один или более ракурсов для отображения, устройство может формировать управляющий сигнал, который инструктирует воспроизводящее устройство, например, головную гарнитуру 114 виртуальной реальности, и/или иным образом обеспечивает в нем воспроизведение выбранного контента конкретным желаемым образом. К примеру, в ситуации, когда должна применяться принятая конфигурация наблюдения, управляющий сигнал может быть сформирован так, чтобы он мог быть распознан и обработан в процедуре воспроизведения и/или воспроизводящем устройстве, с целью воспроизведения контента в соответствии с этой конфигурацией наблюдения. Аналогично, в ситуациях, когда конфигурация наблюдения не должна применяться, может быть сформирован управляющий сигнал, подтверждающий процедуре воспроизведения и/или воспроизводящему устройству, что на ракурсы, отображаемые зрителю, не должна влиять принятая конфигурация наблюдения.
[00210] Как уже упоминалось, на фиг. 6А и 6В показаны блок-схемы алгоритмов для устройства, способа и программного продукта, соответствующих примерам осуществления настоящего изобретения. Нужно понимать, что каждый блок этих блок-схем, а также комбинации блоков на блок-схемах, могут быть реализованы с помощью различных средств, например, программного обеспечения, микропрограммного обеспечения, процессора, схем и/или других устройств, связанного с исполнением программного обеспечения, включающего одну или более инструкций программного кода. Например, одна или более из описанных выше процедур может быть реализована с помощью компьютерных программных инструкций. С этой целью компьютерные программные инструкции, реализующие описанные выше процедуры, могут храниться в запоминающем устройстве 204 устройства, в котором применяется один из вариантов осуществления настоящего изобретения, и исполняться процессором 202 из состава устройства. Нужно понимать, что любые такие компьютерные программные инструкции могут быть загружены в компьютер или в другое программируемое устройство (например, аппаратное обеспечение), в результате чего будет сформирован автомат, и таким образом результирующий компьютер или другое программируемое устройство реализуют функции, описанных в блоках блок-схемы алгоритма. Эти компьютерные программные инструкции могут храниться в машиночитаемой памяти, который может управлять функционированием компьютера или другого программируемого устройства заданным образом, так что упомянутые инструкции, хранимые в машиночитаемой памяти, образуют изделие, исполнение которого реализует функцию, заданную в блоках блок-схемы алгоритма. Также, компьютерные программные инструкции могут загружаться в компьютер или в иное программируемое устройство с целью обеспечения выполнения последовательности операций в компьютере или ином программируемом устройстве, в результате чего формируется машинно-реализуемый процесс, таким образом, что инструкции, которые исполняются в компьютере или ином программируемом устройстве, обеспечивают операции для реализации функций заданных в блоках блок-схемы алгоритма.
[00211] Соответственно, блоки блок-схем алгоритмов допускают комбинирование средств исполнения заданных функций и комбинирование операций для исполнения заданных функций. Также нужно понимать, что один или более блоков блок-схем алгоритмов, а также комбинации блоков блок-схем алгоритмов, могут быть реализованы при помощи компьютерных систем специального назначения, которые выполняют заданные функции или операции, при помощи аппаратного обеспечения специального назначения и компьютерных инструкций.
[00212] В некоторых из вариантов осуществления настоящего изобретения некоторые из описанных выше операций могут быть изменены или расширены. Также, в некоторых из вариантов осуществления настоящего изобретения могут быть введены опциональные дополнительные операции. Изменения, дополнения или расширения описанных выше операций могут выполняться в любой последовательности и в любых комбинациях.
[00213] Некоторые из вариантов осуществления настоящего изобретения были описаны на пример 360-градусного видео. В настоящем документе в понятие 360-градусного видео включаются любые форматы проекции. В некоторых из реализаций подразумевается использование 360-градусного поля обзора, однако при этом другие примеры реализации могут использоваться в связи с полями обзора иного размера, включая, без ограничения перечисленным, поля обзора с покрытием до 360 градусов и менее, что также входит в объем рассмотренных здесь вариантов осуществления настоящего изобретения.
[00214] В приведенном выше описания некоторые из вариантов осуществления настоящего изобретения были рассмотрены в связи с форматом ISOBMFF и/или производными от него форматами. Однако многие примеры осуществления настоящего изобретения могут быть применимы и для других форматов файлов или сегментов, включая, без ограничения, формат файлов Matroska.
[00215] Выше некоторые из вариантов осуществления настоящего изобретения были описаны в отношении протокола HTTP и/или запросов GET протокола HTTP. Нужно понимать, что варианты осуществления настоящего изобретения не ограничены применением протокола HTTP, и, в дополнение или альтернативно, могут применяться другие протоколы, например, WebSockets. Также, могут применяться отличающиеся версии HTTP, например, НТТР/1.1 или НТТР/2. Также, может применяться протокол HTTPS. Также, нужно понимать, что настоящее изобретение применимо и в случаях, когда клиентская сторона не выполняет запросов, таких как запросов GET протокола HTTP, например, когда клиент принимает данные при помощи широковещательной передачи, то есть, службы вещания согласно службе мультимедийного вещания 3GPP (Multimedia Broadcast/Multicast Service, MBMS).
[00216] Выше некоторые из вариантов осуществления настоящего изобретения были описаны на примере MPEG-DASH или DASH. Однако примеры реализации и варианты осуществления настоящего изобретения в равной степени применимы и для других видов потоковой передачи по протоколу HTTP, например, протокола прямой потоковой передачи по протоколу HTTP (HTTP Live Streaming, HLS) от Apple. Нужно понимать, что специфичная для DASH терминология в вариантах осуществления настоящего изобретения может быть заменена на аналогичные термины в других форматах и системах потоковой передачи.
[00217] В приведенном выше описании некоторые из вариантов осуществления настоящего изобретения были описаны в связи с описанием медиапрезентации (MPD) MPEG-DASH. Однако примеры реализации и варианты осуществления настоящего изобретения в равной степени применимы и для манифестов потоковой передачи других форматов, например, формата M3U HLS, а также других форматов описания потоков или презентаций, например, SDP (протокол описания сеанса).
[00218] Выше некоторые из вариантов осуществления настоящего изобретения были описаны с точки зрения (под)сегментов. Скобки в этом выражении указывают на то, что варианты осуществления настоящего изобретения равноприменимы как к подсегментам, так и к сегментам. При этом реализации настоящего изобретения могут также быть применимы к блокам, аналогичным сегментам или подсегментам. К примеру, варианты осуществления настоящего изобретения могут применяться к автономным фрагментам фильма.
[00219] Выше некоторые из вариантов осуществления настоящего изобретения были описаны в связи с событиями и/или потоками событий MPEG-DASH. Нужно понимать, что варианты осуществления настоящего изобретения в равной степени применимы для объектов, аналогичных событиям, и к потокам объектов, аналогичным потокам событий. К примеру, вместо потоков событий варианты осуществления настоящего изобретения могут быть реализованы с использованием синхронизированных треков метаданных (которые могут содержаться в репрезентациях, отдельных от аудио/видеорепрезентаций), и в этом случае, в некоторых из вариантов осуществления настоящего изобретения, события будут соответствовать сэмплам синхронизированного трека метаданных.
[00220] Выше некоторые из вариантов осуществления настоящего изобретения были описаны с использованием термина «потоковая передача». Однако примеры реализации и варианты осуществления настоящего изобретения могут быть в равной степени применимы и для других форм передачи видеоданных, таких как прогрессивная загрузка, доставка файла, а также диалоговая видеосвязь, например, видеотелефонная связь.
[00221] Выше некоторые из вариантов осуществления настоящего изобретения были описаны с использованием термина «характерная точка». Однако вместо него могут применяться термины с аналогичной или сходной семантикой, например, «точка интереса». При этом, вместо отдельной точки (которая может интерпретироваться, например, как отдельный пиксель), в различных реализациях, аналогичным образом, могут использоваться не характерные точки, а характерные области или области интереса.
[00222] В приведенном выше описании выражения «направления» и «ориентация» в некоторых случаях использованы взаимозаменяемо, однако в некоторых случаях термину «направление» может недоставать смысловой составляющей, указывающей на вращение, которая присутствует в термине «ориентация». Нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы с любой из этих интерпретаций, и может использоваться любой термин.
[00223] Множество модификаций и дополнительных вариантов осуществления настоящего изобретения, описанного в данном документе, могут быть найдены специалистами в данной области техники, при этом в них могут сохраняться преимущества изобретения, изложенного в предшествующем описании и показанного на приложенных чертежах. Соответственно, нужно понимать, что настоящее изобретение не ограничено описанными конкретными вариантами его осуществления, и что такие изменения и дополнительные варианты осуществления входят в объем изобретения. В приведенном выше описании и на приложенных чертежах примеры осуществления настоящего изобретения описаны в контексте конкретных примеров комбинаций элементов и/или функций, однако при этом также нужно понимать, что в альтернативных вариантах осуществления настоящего изобретения могут быть предложены другие комбинации элементов и/или функций, в пределах объема формулы изобретения. В этом отношении, например, комбинации элементов и/или функций, отличающиеся от явно описанных выше, могут быть изложены в некоторых из пунктов формулы изобретения. В настоящем документе использованы конкретные термины, однако они использованы исключительно в общем и описательном смысле, и не ограничивают настоящее изобретение.