СПОСОБ И КОМПОНОВКА ДЛЯ ПОДДЕРЖКИ ВОСПРОИЗВЕДЕНИЯ КОНТЕНТА
METHOD AND ASSEMBLY FOR SUPPORTING CONTENT PLAYBACK

ОБЛАСТЬ ТЕХНИКИ
Данное изобретение относится к способу и компоновке для поддержки воспроизведения контента со скоростью, которая согласуется с уровнем, поддерживаемым клиентом.
УРОВЕНЬ ТЕХНИКИ
Стандарт H.264, который также известен как MPEG-4 или AVC (усовершенствованное кодирование видеоданных), является современным стандартом кодирования видеоданных. H.264 относится к гибридному кодеку, который может устранять избыточность между кадрами и/или в пределах кадра. Результатом процесса кодирования согласно H.264 являются данные VCL (уровня кодирования видеоданных), которые дополнительно инкапсулируются в блоки NAL (уровня сетевой абстракции) перед передачей или сохранением.
Стандарт H.264 включает в себя определение различных профилей, которые обозначаются, например, как «базовый профиль», «основной профиль» и «расширенный профиль». Для каждого такого профиля задается набор двоичных возможностей терминала или клиента. Например, «основной профиль» включает в себя САВАС (контекстно адаптивное двоичное арифметическое кодирование), которое не включено в «основной профиль».
Стандарт H.264 дополнительно включает в себя определение различных «уровней», которые относятся, например, к возможностям кодека. Определение уровня включает в себя, например, максимальное число макроблоков в секунду, максимальный размер кадра, максимальный размер DPB (буфера декодированного изображения) и максимальную скорость передачи видеоданных в битах. Различные уровни могут быть определены, например, в таблице, показанной на фиг. 1а. Таблица на фиг. 1а является частью таблицы, задающей не зависящие от профиля уровни в стандарте ISO/IEC 14496-10. Когда кодек выполняет все требования, например, в показателях производительности, некоторого заданного уровня, можно сказать, что кодек поддерживает, согласуется или соответствует упомянутому уровню. Можно сказать, что мультимедийный битовый поток, имеющий характеристики, например, в показателях частоты кадров и/или скорости передачи в битах, в пределах заданных пределов некоторого уровня согласуется, или соответствует упомянутому некоторому уровню.
Обычно, соответствие мультимедийного контента или битового потока конкретному уровню определяется посредством установки синтаксического элемента, связанного с этим мультимедийным контентом, причем элемент может быть обозначен, например, как «level_idc», на некоторое значение, связанное с упомянутым конкретным уровнем.
Клиент может определить сложность, или уровень, требуемый для воспроизведения некоторого мультимедийного контента посредством анализа значения упомянутого синтаксического элемента, связанного с контентом или битовым потоком, и, таким образом, определить, поддерживает ли клиент воспроизведение упомянутого некоторого мультимедийного контента. Если уровень, требуемый для воспроизведения мультимедийного контента, является равным или более низким, чем уровень, связанный с клиентом, то клиент поддерживает воспроизведение мультимедиа. Если уровень, требуемый для воспроизведения мультимедийного контента, превышает уровень, связанный с клиентом, то клиент может быть не способен воспроизвести этот мультимедийный контент.
Мультимедийный контент, расположенный, например, в медиа-сервере, связан с некоторой заданной регулярной скоростью воспроизведения, и она является уровнем, требуемым для воспроизведения этой регулярной скорости воспроизведения, который указан, например, в «level_idc». Например, при воспроизведении кинофильма регулярной скоростью воспроизведения могла бы быть «регулярная скорость», или «скорость в реальном времени» кинофильма, как, например, он воспроизводился бы, например, в кинотеатре или в телевизоре. Термин «регулярная скорость воспроизведения» предполагает, что отображаются все типы кадров контента, например I-кадры (intra-кодируемые кадры), Р-кадры (предсказываемые кадры) и В-кадры (Bi-предсказываемые кадры), в случае видеоконтента.
Мультимедийный битовый поток может быть также воспроизведен с нерегулярной скоростью воспроизведения, т.е. воспроизведение или проигрывание не в реальном времени. Ниже, будут описаны некоторые примеры достижения более быстрого, чем в реальном времени, воспроизведения мультимедийного битового потока, или «быстрого перехода вперед».
Наиболее простым способом достижения «быстрого перехода вперед» является воспроизведение или проигрывание потока с большей скоростью, чем его первоначальная или заданная регулярная скорость, посредством увеличения числа кадров, воспроизводимых в секунду. Этот способ имеет тот недостаток, что увеличиваются требования на вычислительную мощность. Например, для того чтобы клиент был способен к «быстрому переходу вперед» по мультимедийному битовому потоку со скоростью, в 10 раз превышающей нормальную, с использованием этого способа, клиент должен иметь вычислительную мощность, которая поддерживает в десять раз более высокую сложность декодирования, чем таковая при воспроизведении мультимедийного битового потока с регулярной скоростью воспроизведения. Вышеописанный способ достижения более быстрого, чем в реальном времени, воспроизведения или проигрывания показан на фиг. 1b, где последовательность или поток 102b воспроизводится с нормальной частотой или скоростью, а последовательность 104b воспроизводится с удвоенной нормальной скоростью, т.е. в два раза быстрее, чем последовательность 102b.
Другим способом достижения «быстрого перехода вперед», который требует меньшей вычислительной мощности, чем ранее описанный способ, является воспроизведение, например, только I-кадров мультимедийного битового потока видеоданных. Этот способ мог бы быть описан, например, как «перескакивание между I-кадрами» и показан на фиг. 2. На фиг. 2, последовательность или поток 202 воспроизводится с нормальной частотой или скоростью. Все кадры, содержащиеся в этом потоке или контенте, такие как I-, P- и В-кадры, воспроизводятся. В последовательности 204, воспроизводятся только Р-кадры (заштрихованные на фиг. 2) потока, что в этом случае создает «псевдо» 2x нормальную скорость, так как воспроизводится каждый второй кадр. Этот способ является в действительности операцией на потоке, а не реальным ускорением. Уменьшение числа кадров, которые должны быть воспроизведены, снижает требуемую сложность или вычислительную мощность клиента до степени, зависящей, например, от расстояния между I-кадрами в мультимедийном битовом потоке. Недостатком этого способа является то, что скоростью «быстрого перехода вперед» нельзя свободно управлять, например, из-за ограничений I-кадрового расстояния. Более тонкая степень детализации скорости быстрого перехода вперед, например фракционирование I-кадрового расстояния, не является возможной.
Другим недостатком способа «перескакивания между I-кадрами» являются высокие издержки, связанные с этим решением. Экстенсивные издержки могут означать высокие требования к полосе частот. Полный поток (все кадры) должен быть послан к приемнику или клиенту, который фильтрует и отбрасывает «нежелательные» кадры (большинство кадров).
Еще одним способом достижения «быстрого перехода вперед» является использование предварительного знания, например, видеопотока. Этим знанием могло бы знание того, что используется некоторая структура группы изображений (GOP), или фиксированная периодичность для ключевых кадров. Эта информация могла бы использоваться, например, для определения того, какие кадры могли бы быть пропущены при отображении этого видеопотока.
Основная проблема с существующими решениями «быстрого перехода вперед», такими как решения, описанные выше, состоит в том, что сложность декодирования мультимедийного потока при его воспроизведении в «режиме быстрого перехода вперед», и, таким образом, требуемая производительность обработки или уровень для воспроизведения мультимедийного потока, не может быть легко достигнута клиентом, который занят, например, извлечением или запрашиванием мультимедийного потока, или который занят запуском «быстрого перехода вперед» мультимедийного потока, который в настоящее время загружается.
Определенные «уровни» регулируют верхние пределы каждого аспекта сложности декодирования, включающего в себя, например, размер кадра, диапазон вектора движения и максимальную скорость передачи в битах. Для согласования или соответствия конкретному уровню мультимедийный поток должен соответствовать всем определенным пределам, связанным с этим уровнем. Следовательно, некоторый мультимедийный контент или потоки могут быть классифицированы в «высокий» уровень из-за того, что, например, только одна из его характеристик имеет высокое значение, как, например, большой размер кадра. В то же время другие характеристики того же самого мультимедийного потока могут иметь «низкие» значения, т.е. более низкие, чем значения, определенные для упомянутого «высокого» уровня, что фактически могло бы дать то, что сложность потока в целом, в действительности, могла бы быть довольно низкой и что более низкий уровень был бы достаточным для охвата этих характеристик. Примером такого мультимедийного потока могла бы быть, например, 2 Hz, 1280х720 последовательность, которая имеет относительно большой размер кадра, но очень низкую частоту кадров.
Для уменьшения сложности декодирования для клиента частота кадров видеопотока могла бы быть снижена в сервере контента для упрощения быстрого перехода вперед в этом клиенте. Однако такое уменьшение не может быть указано для клиента, и, следовательно, клиенты не могут выиграть от «помощи», таким образом, обеспеченной сервером.
Дополнительно, даже если клиент имеет доступ к предварительному знанию о кодировании потока, клиент может быть не способен вывести сложность декодирования потока после того, как, например, уменьшающая кадры операция была выполнена в сервере или в клиенте.
Таким образом, когда клиент должен выполнить «быстрый переход вперед» по мультимедийному потоку, клиент никоим образом не знает, будет ли поддержка уровня, указанного посредством или для этого мультимедийного потока, достаточной для декодирования мультимедийного потока в режиме «быстрого перехода вперед». Из-за этой неопределенности, клиенты обычно снабжены и используют более мощный, до некоторой степени «избыточный», декодер, чтобы «находиться на безопасной стороне». Это является очень неэффективным, например, в показателях вычислительных ресурсов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Было бы желательным осуществить усовершенствованное управление воспроизведением мультимедийного контента с нерегулярными скоростями воспроизведения в клиенте. Задачей изобретения является осуществление усовершенствованного управления воспроизведением мультимедийного контента с нерегулярными скоростями воспроизведения в некотором клиенте. Дополнительно, задачей изобретения является обеспечение способа и компоновки для осуществления возможности усовершенствованной сигнализации информации уровня. Эти и другие задачи могут быть решены посредством способа и компоновки согласно прилагаемым независимым пунктам формулы изобретения. Необязательные варианты осуществления заданы посредством зависимых пунктов формулы изобретения.
Согласно первому аспекту в клиентском узле обеспечен способ. Этот способ содержит получение информации, относящейся к упомянутому некоторому контенту, касающейся требований уровня, связанных, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Этот способ дополнительно содержит определение того, какая скорость (скорости) воспроизведения является той, которая поддерживается (поддерживаются) клиентским узлом в отношении уровня, на основе полученной информации.
Согласно второму аспекту в клиентском узле обеспечена компоновка. Эта компоновка содержит функциональный блок, который приспособлен для получения информации, относящейся к упомянутому некоторому контенту, касающейся требований уровня, связанных, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Эта компоновка дополнительно содержит функциональный блок, который приспособлен для определения того, какая скорость (скорости) воспроизведения является той, которая поддерживается (поддерживаются) клиентским узлом в отношении уровня, на основе полученной информации.
Согласно третьему аспекту в серверном узле обеспечен способ. Этот способ содержит определение требования уровня, связанного, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Этот способ дополнительно содержит обеспечение информации, по меньшей мере, об одной скорости воспроизведения и связанном требовании уровня для клиентского узла.
Согласно четвертому аспекту в серверном узле обеспечена компоновка. Эта компоновка содержит функциональный блок, который приспособлен для определения требования уровня, связанного, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Компоновка дополнительно содержит функциональный блок, который приспособлен для обеспечения информации, по меньшей мере, об одной скорости воспроизведения и связанном требовании уровня для клиентского узла.
Вышеуказанные способы и компоновки дают возможность клиентскому узлу определить, какая скорость (скорости) воспроизведения является той, которая поддерживается (поддерживаются) клиентским узлом в отношении требуемого уровня, и, таким образом, дают возможность клиентскому узлу воздержаться от декодирования и воспроизведения контента со скоростью, требующей уровня, который не поддерживается клиентским узлом. Это предотвращает поведение «проб и ошибок», когда клиент пытается и терпит неудачу в декодировании и воспроизведении мультимедийных потоков с нерегулярными скоростями, которые не поддерживаются этим клиентом. Следовательно, управляемый «быстрый переход вперед» и «медленное движение» возможны со стандартными декодерами и с минимальной модификацией для потока. Дополнительно, возможно такое воспроизведение, как, например, быстрый переход вперед со скоростями, близкими к пределам стандартного декодера, что может улучшить использование ресурсов декодера.
Вышеуказанные способы и компоновки могут быть реализованы в различных вариантах осуществления. В некоторых вариантах осуществления, одно или несколько действий могут быть предприняты в клиентском узле для воздержания от декодирования и воспроизведения контента со скоростью, требующей неподдерживаемого уровня. Примерами таких действий являются, например, решение не извлекать контент; ограничение выбираемых скоростей воспроизведения; выбор альтернативной версии контента, переключение на альтернативную версию/представление контента и выбор альтернативного декодера. Естественно, контент может быть также декодирован и воспроизведен с нерегулярной скоростью, которая определена как поддерживаемая клиентским узлом.
В некоторых вариантах осуществления информация может быть обеспечена как часть структуры формата файла. Эта информация могла бы быть обеспечена в описании мультимедийного представления. Далее, эта информация может касаться контента, на котором была выполнена операция, как, например, отбрасывание и/или вставка кадров.
Вышеуказанные варианты осуществления были в основном описаны на основе способа. Однако вышеприведенное описание также предназначено охватывать варианты осуществления компоновок, приспособленных для осуществления работы вышеописанных признаков. Различные вышеуказанные признаки примерных вариантов осуществления могут быть объединены различными способами в соответствии с необходимостью, требованиям или предпочтению.
Согласно еще одному аспекту обеспечена компьютерная программа, которая содержит считываемое компьютером средство кода, которое при исполнении в одном или нескольких процессорах побуждает любую из компоновок, описанных выше, к выполнению соответствующей процедуры согласно одному из способов, описанных выше.
Согласно еще одному аспекту обеспечен компьютерный программный продукт, который содержит указанную выше компьютерную программу.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Данное изобретение будет теперь описано более подробно посредством примерных вариантов осуществления и со ссылкой на сопутствующие чертежи, в которых:
Фиг. 1а является таблицей, содержащей информацию об ограничениях, связанных с различными уровнями, согласно предшествующему уровню техники.
Фиг. 1b является схематичным изображением, иллюстрирующим воспроизведение потока со скоростью, более быстрой, чем «нормальная» скорость, или скорость в реальном времени, согласно предшествующему уровню техники.
Фиг. 2 является схематичным изображением, иллюстрирующим воспроизведение потока, на котором выполняется операция, согласно предшествующему уровню техники.
Фиг. 3 является таблицей, содержащей информацию о том, какой уровень требуется для воспроизведения некоторого мультимедийного потока с некоторым числом различных скоростей, причем таблица могла бы быть обеспечена для клиента, согласно примерному варианту осуществления.
Фиг. 4 является схематичным изображением, иллюстрирующим воспроизведение потока, на котором выполняется операция, со скоростью, более быстрой, чем нормальная.
Фиг. 5 является таблицей, содержащей информацию о том, какой уровень является тем, который требуется для воспроизведения некоторого мультимедийного потока с некоторым числом различных скоростей, при выполнении различных операций на этом мультимедийном потоке, причем эта таблица могла бы быть обеспечена для клиента, согласно некоторому примерному варианту осуществления.
Фиг. 6-7 являются блок-схемами последовательностей операций, иллюстрирующими процедуры для поддержки решения по воспроизведению некоторого контента в клиенте, согласно примерным вариантам осуществления.
Фиг. 8 является блок-схемой, иллюстрирующей компоновку в клиенте для поддержки решения по воспроизведению некоторого контента в этом клиенте, согласно примерному варианту осуществления.
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей процедуру в сервере для поддержки решения по воспроизведению некоторого контента в клиенте, согласно примерному варианту осуществления.
Фиг. 10 является блок-схемой, иллюстрирующей компоновку в сервере для поддержки решения по воспроизведению некоторого контента в клиенте, согласно примерному варианту осуществления.
Фиг. 11 является схематичным изображением, иллюстрирующим компоновку в клиенте (или сервере), согласно примерному варианту осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
Кратко описанное, данное изобретение относится к передаче информации, относящейся к требуемой способности декодирования для воспроизведения некоторого мультимедийного контента с одной или несколькими нерегулярными скоростями или частотами воспроизведения. Передача такой информации может быть реализована посредством определения некоторого атрибута для мультимедийных потоков, причем атрибут указывает уровень, требуемый для декодирования потока, если должна быть использована некоторая отличающаяся скорость воспроизведения, в показателях кадров в секунду, и/или если должна быть выполнена модификация этого потока. Этот атрибут мог бы быть определен, например, поверх любых существующих параметров, как, например, профиль и уровень. Такой атрибут мог бы быть применен к регулярному потоку и/или мог бы быть выгодно применен, например, к специализированному потоку быстрого перехода вперед и т.п.
Этот атрибут мог бы, например, иметь форму списка или записи, содержащей различные нерегулярные скорости воспроизведения и соответствующие требуемые уровни для некоторого мультимедийного контента или некоторого мультимедийного битового потока. Такой список может содержать одну или несколько нерегулярных скоростей воспроизведения, которые требуют того же уровня, что и регулярная скорость воспроизведения того же самого мультимедийного контента, и/или одну или несколько нерегулярных скоростей воспроизведения, которые требуют уровней, которые являются более низкими, чем уровень, связанный с регулярной скоростью воспроизведения мультимедийного контента, или превышают его. Пример такого списка показан на фиг. 3. Например, максимальная скорость (скорости) воспроизведения, связанная с одним или несколькими конкретными уровнями, могла бы быть обеспечена для клиента.
Дополнительно, рекомендации для уменьшения сложности декодирования мультимедийного контента или потока посредством выполнения конкретной операции на упомянутом контенте или потоке, и уровень, требуемый для воспроизведения этого контента или потока после того, как эта операция была выполнена, могут быть обеспечены, например, для клиента. Это может дать возможность для терминалов или клиентов с более низкими возможностями декодера воспроизвести или визуализировать контент или поток. Такая рекомендация могла бы состоять в воспроизведении только каждого третьего кадра потока и, таким образом, в уменьшении частоты кадров с коэффициентом, равным трем, что может требовать более низкого уровня, чем воспроизведение всех кадров.
На стороне сервера стандартный контент, т.е. нормальные «каналы небыстрого перехода вперед» или медиа-объект (медиа-объекты), предназначенные для регулярной скорости воспроизведения со скоростью воспроизведения в реальном времени, могут быть кодированы как в предыдущем уровне техники. Поверх этих каналов или объектов может быть обеспечен один или несколько специализированных каналов или объектов быстрого перехода вперед. Эти каналы быстрого перехода вперед могут быть кодированы таким образом, что воспроизведение упомянутых каналов с увеличенной скоростью требует только «приемлемого» уровня. Например, каналы быстрого перехода вперед могли бы быть кодированы таким образом, что некоторое увеличение скорости воспроизведения поддерживается в пределах того же уровня, что и уровень, используемый для регулярной скорости воспроизведения.
В пределах этого документа, термин «уровень» используется как ссылка на уровень, указывающий набор операционных требований для кодека, как, например, требования, заданные в стандарте H.264 и/или показанные на фиг. 1а, или аналогичные требования.
Ниже, будет описан примерный вариант осуществления, относящийся к решению поточной передачи HTTP (протокола передачи гипертекста), обеспечивающему функциональность быстрого перехода вперед. Поточная передача HTTP является способом, приводимым в действие клиентом, основанной на файле поточной передачи. Например, «гладкая поточная передача Microsoft» является примером поточной передачи HTTP. Клиент поточной передачи HTTP снабжается (например, посредством сервера) списком малых файлов, доступных для загрузки, причем файлы вместе составляют поток, как, например, мультимедийный поток. В каждой точке во времени могут быть множественные малые файлы, т.е. различные версии или представления контента, например, различных скоростей передачи в битах/качества, которые могут быть выбраны для загрузки.
Версия 9 поточной передачи HTTP 3GPP имеет поддержку видеоданных для H.264 уровня 1.3. H.264 уровня 1.3 требует, например, (независящие от профиля значения) максимальной скорости обработки макроблоков, равной 11880 МВ/с, и максимального размера кадра, равного 396 МВ. Таким образом, в сценарии поточной передачи HTTP в соответствии с версией 9 было бы выгодно иметь все «стандартные»/регулярные видеопотоки согласованными с уровнем 1.3 или ниже при воспроизведении с нормальной скоростью и любые потоки быстрого перехода вперед согласованными с уровнем 1.3, когда скорость воспроизведения увеличивается, например, до заданной скорости.
Для осуществления или обеспечения специализированного канала или объекта быстрого перехода вперед, связанного с некоторым контентом, некоторое число кадров могло бы быть удалено из регулярной версии этого контента, что приводит к видеопотоку или объекту, имеющему гораздо более низкую частоту кадров и скорость передачи в битах, по сравнению с его эквивалентными альтернативами «полной скорости» или «регулярной скорости». Такие каналы или объекты быстрого перехода вперед могли бы быть обеспечены без выполнения какого-либо дополнительного кодирования или повторного кодирования контента.
Эти каналы быстрого перехода вперед, которые могут быть указаны или могут быть не указаны как каналы быстрого перехода вперед, могут быть связаны с сигнализацией одной или нескольких пар «уровень-скорость воспроизведения». Примером такого канала быстрого перехода вперед может быть канал, кодированный как H.264 QVGA (четвертная видеографическая матрица, т.е. кадры 320х240 пикселов) при 1 Гц.
Мультимедийный поток, кодированный для согласования с уровнем 1.1, может требовать более высоких уровней, если он должен быть воспроизведен, например, с более высокими скоростями. Фиг. 3 показывает таблицу, содержащую информацию о том, какой уровень 304 является тем, который требуется для некоторой скорости воспроизведения или «ускорения» некоторого мультимедийного потока или контента. Такая информация может быть обеспечена, например, посредством объекта кодирования мультимедиа или сервера обеспечения мультимедиа для объекта декодирования мультимедиа, такого как клиент. Информация, содержащаяся в объекте 306, означает, что воспроизведение потока или контента с нормальной или регулярной скоростью требует уровня 1.1. Это единственная информация, которая доступна сегодня для потока или контента. Информация, содержащаяся в объекте 310, означает, что воспроизведение потока со скоростью, в десять раз большей (10x), чем нормальная, требует уровня 1.1. Дополнительно, информация, содержащаяся в объекте 312, означает, что воспроизведение потока со скоростью, в двадцать раз большей (20x), чем нормальная, требует уровня 1.2. Наконец, информация, содержащаяся в объекте 314, означает, что воспроизведение потока со скоростью, в тридцать раз большей (30x), чем нормальная, требует уровня 1.3.
При наличии доступа к информации, относящейся к видеопотоку, как, например, информации, содержащейся в таблице на фиг. 3, клиент может анализировать или интерпретировать информацию и оценивать, при каких скоростях он может воспроизводить этот видеопоток. Например, клиент, согласованный с уровнем 1.1, имеющий доступ к упомянутой информации, может определять, что клиент способен к быстрому переходу вперед по потоку со скоростью, в десять раз большей (10x), чем нормальная. Аналогично, клиент, согласованный с уровнем 1.3, может определять, что он может осуществлять быстрый переход вперед того же самого потока со скоростью, в 30x раз большей, чем нормальная. Эти более высокие скорости воспроизведения могут быть осуществлены посредством увеличения числа кадров, воспроизводимых в секунду, т.е. без какой-либо модификации этого потока, как, например, отбрасывания кадров.
Ниже, будет описан примерный способ сигнализации требуемых возможностей декодера, зависящих от потоковых операций, как, например, отбрасывание кадров. Инструкция или рекомендация модифицировать мультимедийный поток некоторым способом могла бы быть обеспечена, например, от сервера к клиенту. Инструкция могла бы быть обеспечена неявно или явно. Примером такой инструкции модифицировать мультимедийный поток могла бы быть инструкцией декодировать только I-кадры мультимедийного потока. Еще одним примером могла бы быть инструкция отбросить неопорные кадры, т.е. кадры, которые не используются в качестве опоры для предсказания какого-либо другого кадра.
Например, предположим, что QVGA поток кодирован при 30 Гц, где каждый второй кадр является неопорным кадром. Для этого потока могло бы сигнализироваться, например, от сервера к клиенту, что полное воспроизведение (воспроизведение всех кадров этого потока) с регулярной скоростью потребовало бы декодера, согласованного с уровнем 1.3. Однако воспроизведение потока после удаления неопорных кадров (т.е. каждого второго кадра) потребовало бы только декодера, согласованного с уровнем 1.2, причем информация могла бы быть сигнализирована от сервера к клиенту.
Клиент, имеющий доступ к информации, касающейся различных уровней, требуемых для воспроизведения потока после выполнения различных операций на потоке, мог бы использовать эту информацию при оценке того, может ли он декодировать поток или нет. Например, клиент с декодером уровня 1.2 мог бы определить, что, через простую операцию удаления неопорных кадров потока, он мог бы фактически воспроизвести этот поток.
Ниже, будет описан примерный вариант осуществления, объединяющий два способа, описанные выше. В этом варианте осуществления, сигнализация от сервера к клиенту пары или комбинации «скорость воспроизведения/уровень» выполняется в объединении с инструкцией обработки потока. Другими словами, может быть сигнализировано от сервера к клиенту, что некоторый уровень требуется для воспроизведения потока с некоторой нерегулярной частотой или скоростью, когда некоторая операция была выполнена на потоке.
Фиг. 4 показывает пример такого объединения в примерном варианте осуществления, который влечет за собой и операцию на потоке, и более быструю фактическую скорость воспроизведения потока в клиенте при приеме потока. Поток или последовательность 402, показанная на фиг. 4, является «нормальным» или «полным» потоком, воспроизводимым с регулярной или нормальной скоростью. Поток, показанный как 402, также имеет «операционную точку», где декодируются только I-кадры этого потока, и эти I-кадры воспроизводятся в 2 раза быстрее, чем в реальном времени, что показано как последовательность 406. Промежуточная последовательность, т.е. последовательность только I-кадров, показана как последовательность 404. Оказывается, что последовательность 406 воспроизводится со скоростью, в 4 раза большей, чем нормальная, из-за операции и двойного ускорения. Это означает, что единственный видеопоток, такой как, например, последовательность 402, может «быть», или использоваться и как поток быстрого перехода вперед, и как нормальный поток, т.е. это означает, что необязательно отдельный поток быстрого перехода вперед должен быть подготовлен из нормального потока и сделан доступным для загрузки в сервер.
Примерная таблица, связанная с некоторым контентом или потоком, содержащая примерную информацию, относящуюся к операции 502, которая должна быть выполнена на потоке, увеличению 504 скорости воспроизведения и требуемому уровню 506 для гарантированного достижения операции и ускорения, показана на фиг. 5. Например, запись 510 в таблице содержит информацию, означающую, что когда выполняется операция декодирования только I-кадров потока и эти I-кадры воспроизводятся с «той же скоростью» (в показателях кадров в секунду), что и регулярная скорость воспроизведения первоначального потока (сравни последовательность 404 на фиг. 4), требуется уровень 1.1. В этом случае требуемый уровень 1.1 является тем же самым, что и требуется для воспроизведения нормального потока или контента с регулярной скоростью. Запись 512 содержит информацию, означающую, что при удвоении (2x) скорости воспроизведения последовательности «только I-кадров» требуемым уровнем все еще является 1.1. Дополнительно, запись 514 содержит информацию, означающую, что при выполнении операции декодирования только I-кадров и Р-кадров первоначального потока или контента и воспроизведении декодированных кадров со скоростью воспроизведения, в два раза (2x) большей, чем нормальная, требуется уровень 1.1. До сих пор представленные альтернативы могут быть выполнены клиентом, который способен воспроизвести первоначальный поток с нормальной скоростью, т.е. имеет, по меньшей мере, уровень 1.1.
Однако информация в записи 516 означает, что для выполнения операции отбрасывания или опускания В-кадров 2-го и 3-го уровней и для воспроизведения результирующей последовательности со скоростью, в 4x раза большей, чем нормальная, требуется уровень 1.2. Дополнительно, информация в записи 518 означает, что для выполнения операции опускания В-кадров 3-го уровня и воспроизведения результирующей последовательности со скоростью, в 8x раз большей, чем нормальная, требуется уровень 2.1.
Таким образом, из анализа или интерпретации информации, содержащейся в таблице на фиг. 5, клиент (имеющий декодер), способный к уровню 1.1, может определять, что максимальной нерегулярной скоростью воспроизведения, поддерживаемой этим клиентом, является альтернатива в записи 514. Клиент, способный к уровню 1.1, может дополнительно заключить, что все скорости воспроизведения и/или операции, которые требуют меньше вычислительной мощности, чем поддерживаемые записи 510-514, являются разрешенными альтернативами для этого клиента (по меньшей мере, по причинам вычислительной мощности). Клиент может выбрать одну или несколько альтернативных нерегулярных скоростей воспроизведения, например, в соответствии с заданной схемой выбора или набором правил.
Примерные варианты осуществления, описанные выше, были направлены на воспроизведение «быстрого перехода вперед» мультимедийного потока для облегчения понимания описания. Однако «быстрый переход вперед» является только одним примером среди других примеров нерегулярной скорости воспроизведения. Мультимедийный поток мог бы быть воспроизведен, например, со скоростью или частотой, которая является более низкой или более медленной, чем в режиме реального времени, также известной как, например, «медленное движение». Идея изобретения, раскрытая в этом документе, соответственно, применима, например, к такому воспроизведению «медленного движения». «Медленное движение» может включать в себя вставку дополнительных кадров для воспроизведения, например воспроизведение каждого кадра, или некоторых кадров, много раз. Тот же тип сигнализации, что и описан ранее для сценария «быстрого перехода вперед», может быть использован для определения, например, требуемого уровня для воспроизведения кодированного потока со скоростью, более низкой, чем нормальная.
Альтернативные скорости воспроизведения могут быть сигнализированы, например, к клиенту несколькими различными способами, например, в ISO базовом мультимедийном формате файла (ISO/IEC 14496-12), или в любом из его производных, таких как 3GP формат файла (3GPP TS 26.244), MP4 формат файла (ISO/IEC 14496-14) и AVC формат файла (ISO/IEC 14496-15), инкапсулирующие видеопотоки.
Формат файла является системой сигнализации, которая обеспечивает информацию, такую как метаданные, касающуюся мультимедийного битового потока. Каждая часть сигнализируемых метаданных инкапсулирована в контейнер, называемый «блоком», который может быть вложенным. Различные мультимедийные данные упоминаются и организуются посредством различных «блоков дорожек» соответственно. В пределах каждого блока дорожек имеются описания выборочных записей, которые описывают, как должны быть интерпретированы выборки.
Примером того, как выполнять сигнализацию, могло бы быть то, что альтернативные скорости и соответствующие указания профиля/уровня могут быть обеспечены как таблица в необязательном «блоке» или «контейнере» в пределах описаний выборочных записей, связанных с выборками дорожки. Тот же самый способ может быть также использован для обеспечения необязательных описаний выборочных записей, которые могут содержать указания профиля/уровня для некоторого числа различных скоростей. Например, необязательный блок мог бы быть добавлен внутри первоначальной выборочной записи, содержащей альтернативные описания выборочной записи и скорости.
Другим способом сигнализации этой информации является задание дополнительных дорожек «быстрого перехода вперед/медленного движения». Поскольку такие новые дорожки имеют тот же самый контент, что и первоначальная дорожка (только более быструю/более медленную версию), они могут быть помещены в ту же самую группу переключения, что и первоначальная дорожка, что указывает, что они являются «переключаемыми». Альтернативные дорожки могут ссылаться на те же видеопотоки в мультимедийном блоке данных, что и первоначальная дорожка, но могут указывать другие профили/уровни и могут иметь другие маркеры времени. То, как назначены маркеры времени, управляет скоростью воспроизведения. Этот механизм эквивалентен обладанию таблицей, указывающей профили/уровни и альтернативную скорость воспроизведения. Посредством ссылки на видеопоток от другой дорожки кадры могли бы быть удалены для того, чтобы «проредить» поток, просто посредством опускания их в выборках новой дорожки. Ссылка может быть осуществлена непосредственно в мультимедийный блок данных или любое место, где расположены мультимедийные данные, или косвенно при помощи дорожек подсказки (если используются дорожки подсказки) или элементов извлечения в случае H.264/AVC.
Для поточной передачи HTTP может быть выгодным сигнализировать альтернативные скорости/уровни в MPD (описании мультимедийного представления), также известном как «файл манифеста». Клиент может затем также точно выбрать между версиями или представлениями контента, например, при воспроизведении с более высокой частотой кадров или скоростью.
ПРИМЕРНАЯ ПРОЦЕДУРА, ФИГ. 6
Вариант осуществления процедуры поддержки решения о декодировании и воспроизведении некоторого контента будет теперь описан со ссылкой на фиг. 6. Эта процедура могла бы быть выполнена в клиентском узле, который мог бы быть объектом декодирования видеоданных, таким как, например, телевизионная приставка, компьютер или мобильный терминал.
Первоначально, информация получается в действии 602. Получаемая информация относится к некоторому контенту и касается требований уровня, связанных, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Нерегулярной скоростью воспроизведения является скорость воспроизведения, которая отличается от заданной регулярной скорости воспроизведения. Нерегулярная скорость воспроизведения может включать в себя более быструю или более медленную скорость или частоту воспроизведения, чем скорость или частота в реальном времени, и/или воспроизведение, с использованием того же числа кадров в секунду, что и для регулярного воспроизведения в реальном времени, контента, на котором была выполнена операция, как, например, отбрасывание некоторых кадров. Результирующая «псевдо» скорость воспроизведения, или «воспринимаемая» скорость воспроизведения, нерегулярной скорости воспроизведения не является той же самой, что и для нормального потока, воспроизводимого с регулярной скоростью, даже хотя воспроизводится то же самое количество кадров в секунду. Это является достоверным для любых вариантов осуществления, описанных в данном документе.
Относящаяся к контенту информация могла бы содержать список или запись нерегулярной скорости (скоростей), причем каждой скорости сопутствует указание соответствующего уровня, который требуется для воспроизведения контента с рассматриваемой нерегулярной скоростью. Информация может дополнительно содержать указания некоторых операций, которые могут, или должны, быть выполнены на контенте, как, например, отбрасывание или вставка конкретных типов кадров перед воспроизведением. Эта информация могла бы быть ограничена одной нерегулярной скоростью, например максимальной нерегулярной скоростью, которая поддерживается или является возможной в пределах того же уровня, что и уровень, требуемый для воспроизведения в реальном времени того же самого контента. В таком случае информация о требуемом уровне могла бы быть неявной, например, требуемый уровень, связанный с нерегулярной скоростью, мог бы быть предварительно согласован, или информация могла бы быть явной.
Дополнительно, полученная информация анализируется и интерпретируется, и в действии 604 определяется, какая нерегулярная скорость (скорости) воспроизведения является той, которая поддерживается клиентом, таким образом, клиент может использовать это при воспроизведении контента. Например, может быть определена максимальная скорость воспроизведения, которая поддерживается клиентом. Нерегулярной скоростью (скоростями) воспроизведения, подвергаемой определению, могла бы быть одна или несколько нерегулярных скоростей (скорость) воспроизведения, указанные в полученной информации, или некоторая другая скорость воспроизведения, например, предопределенная «желаемая» скорость воспроизведения. Определение может включать в себя сравнение между требуемым уровнем, указанным в полученной информации, и порогом, например значением уровня, связанным с клиентом, и/или обобщением или интерполяцией значений, содержащихся в полученной информации, для вывода информации о требованиях уровня для нерегулярных скоростей воспроизведения, которые не содержатся в полученной информации.
Затем в необязательном действии 606 может быть определено, удовлетворяет ли нерегулярная скорость (скорости) воспроизведения, поддерживаемая клиентом (если таковые существуют), некоторым заданным критериям. Например, может быть определено, было ли возможным для клиента воспроизвести контент с некоторой предопределенной нерегулярной скоростью, например, в десять раз более быстрой, чем скорость в реальном времени. В зависимости от результата определения действия 606, могут быть предприняты различные действия. Например, если определено, что одна или несколько поддерживаемых нерегулярных скоростей воспроизведения являются приемлемыми или подходящими согласно некоторым заданным критериям, то рассматриваемый контент мог бы быть загружен клиентом в действии 608, и, возможно, по меньшей мере, частично, воспроизведен с нерегулярной скоростью, которая поддерживается клиентом. Различные возможные скорости воспроизведения могут быть, например, указаны или «предложены» пользователю для выбора, тогда как неподдерживаемые скорости воспроизведения сделаны недоступными для выбора.
Когда в действии 606 определено, что одна или несколько поддерживаемых нерегулярных скоростей воспроизведения не являются приемлемыми или подходящими согласно некоторому заданному критерию, клиент мог бы воздержаться от загрузки контента. Воздержание от загрузки показано как действие 612 на фиг. 6, имеющее пунктирный контур, указывающий, что воздержание может быть пассивным. Однако различные действия могут быть предприняты для воздержания от загрузки некоторого контента, который не может быть воспроизведен с желаемой нерегулярной скоростью. Например, могло бы быть активно решено не загружать контент или остановить загрузку контента, если загрузка началась. Дополнительно, другая версия или представление контента могло бы быть выбрано для загрузки, причем версия требует более низкого уровня для воспроизведения с некоторой нерегулярной скоростью, например, специализированная версия «быстрого перехода вперед» контента.
В случае, если имеется более одного декодера, доступного для выбора в клиенте, декодер, связанный с подходящим более высоким или более низким уровнем, мог бы быть выбран для декодирования контента, например, вместо ранее рассмотренного декодера. Это показано как действие 616 на фиг. 6. По очевидными причинам, эта альтернатива является уместной, только когда более одного декодера доступно для клиента, что показано как схематичное действие 614 определения на фиг. 6.
ПРИМЕРНАЯ ПРОЦЕДУРА, ФИГ. 7
Примерная процедура, показанная на фиг. 7, относится к специальному случаю процедуры, описанной выше со ссылкой на фиг. 6. Информация получается в действии 702. Затем максимальная скорость воспроизведения (для потока или контента), которая поддерживается клиентом, определяется в действии 704. Затем может быть предпринято действие 706. Предпринятым действием 706 могло бы быть, например, воспроизведение контента с определенной максимальной скоростью или установка максимальной скорости воспроизведения, которая является выбираемой пользователем, на определенную максимальную поддерживаемую скорость воспроизведения.
ПРИМЕРНАЯ КОМПОНОВКА, ФИГ. 8
Ниже, примерная компоновка 800, приспособленная для осуществления выполнения вышеописанных процедур, относящихся к поддержке решения о декодировании и воспроизведении некоторого контента, будет описана со ссылкой на фиг. 8. Эта компоновка показана как расположенная в клиентском узле 801 в системе связи. Клиентским узлом мог бы быть, например, объект декодирования видеоданных, такой как, например, телевизионная приставка, компьютер или мобильный терминал. Компоновка 800 дополнительно показана как осуществляющая связь с другими объектами через блок 802 связи, который может быть рассмотрен как содержащий стандартные средства для беспроводной и/или проводной связи. Предполагается, что компоновка или клиентский узел может дополнительно содержать другие функциональные блоки, как, например, блок 814 декодирования, для декодирования, например, извлеченного мультимедийного потока; и один или несколько блоков 814 хранения.
Компоновка 800 содержит блок 804 получения, приспособленный для получения информации, относящейся к некоторому контенту, причем информация относится к требованиям уровня, связанным, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Компоновка дополнительно содержит блок 808 определения, приспособленный для определения, на основе полученной информации, какая скорость (скорости) воспроизведения является той, которая поддерживается клиентским узлом в отношении уровня, таким образом, осуществляется возможность воздержания от воспроизведения контента с нерегулярной скоростью, требующей уровня, который не поддерживается клиентским узлом. Компоновка может содержать блок 806 анализа, приспособленный для анализа или интерпретации полученной информации, например, сравнения полученных относящихся к уровню значений с заданными пороговыми значениями, и/или определения максимальной (или минимальной) скорости воспроизведения, поддерживаемой клиентом, в качестве альтернативы этому любой требуемый анализ выполняется блоком определения. Этот блок анализа может обеспечить обработанную информацию для блока определения для облегчения решений для последнего.
Компоновка, например блок 808 определения, может быть дополнительно приспособлена для определения того, удовлетворяет ли нерегулярная скорость (скорости) воспроизведения, определенная как поддерживаемая клиентом (если таковые имеются), некоторым заданным критериям, и может быть дополнительно приспособлена, на основе выводом этого определения для выполнения различных действий или обеспечения инструкций для различных действий, которые должны быть предприняты.
Компоновка может дополнительно содержать функциональный блок 810, который может быть приспособлен для принятия действия в соответствии с результатом определения или согласно обеспеченным инструкциям. Действиями, которые могут быть предприняты, являются, например, следующие: могло бы быть решено не извлекать контент, могла бы быть запрошена и/или загружена альтернативная версия или представление контента (включая переключение на нее), или могут быть ограничены нерегулярные скорости воспроизведения, выбираемые пользователем. Дополнительно, альтернативный декодер мог бы быть выбран и/или запрошен для декодирования контента, если такие альтернативные декодеры доступны. Например, блок 814 декодирования может содержать два или несколько стандартных декодеров различных уровней. Другим действием, которое может быть предпринято, является воспроизведение контента с нерегулярной скоростью, которая поддерживается клиентом.
ПРИМЕРНАЯ ПРОЦЕДУРА, ФИГ. 9
Примерный вариант осуществления другого аспекта процедуры поддержки решения о воспроизведении некоторого контента будет теперь описан со ссылкой на фиг. 9. Процедура могла бы выполняться в серверном узле, таком как, например, компьютер или мобильный терминал. Предполагается, что сервер обеспечивает контент, который мог быть кодирован посредством этого сервера или посредством некоторого другого объекта, например объекта кодирования мультимедиа.
Первоначально, требование уровня, связанное, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента, определяется в действии 902. А именно, определяется (определяются) требование (требования) уровня одной или нескольких нерегулярных скоростей воспроизведения. Это требование уровня может быть определено или извлечено, например, посредством изучения контента или метаданных, связанных с контентом, или может быть вычислено в сопряжении с кодированием контента в сервере. Например, могла бы быть определена информация, такая как информация, приведенная в качестве примера в одной или нескольких записях в таблицах, показанных на фиг. 3 и 5. Затем определенная информация обеспечивается для клиента в действии 904, что позволяет клиентскому узлу определить, какая скорость (скорости) воспроизведения является (являются) той, которая поддерживается (поддерживаются) клиентским узлом в отношении требуемого уровня и, таким образом, воздержаться от декодирования и воспроизведения контента со скоростью, требующей уровня, который не поддерживается клиентским узлом.
Информация, например, в форме записи или таблицы могла бы быть обеспечена, например, как часть структуры формата файла, как, например, необязательный блок или контейнер в соответствующем положении и/или в соответствующем иерархическом уровне структуры формата файла. Эта информация могла бы быть обеспечена как часть MPD, в случае, например, поточной передачи HTTP. Информация может касаться контента, когда некоторая операция была выполнена на контенте, такая как, например, отбрасывание и/или вставка кадров.
ПРИМЕРНАЯ КОМПОНОВКА, ФИГ. 10
Ниже, примерная компоновка 1000, приспособленная для осуществления выполнения вышеописанной процедуры, относящейся к серверной стороне поддержки решения о воспроизведении некоторого контента в клиенте, будет описана со ссылкой на фиг. 10. Компоновка показана как расположенная в серверном узле 1001 в системе связи. Этим серверным узлом мог бы быть, например, компьютер или мобильный терминал.
Предполагается, что серверный узел обеспечивает контент, который мог быть кодирован посредством серверного узла или посредством некоторого другого объекта, например объекта кодирования мультимедиа. Компоновка 1000, дополнительно показывающая как осуществляющая связь с другими объектами через блок 802 связи, который может рассматриваться как содержащий стандартные средства или модули для беспроводной и/или проводной связи и который может рассматриваться или может не рассматриваться как часть компоновки 1000. Может предполагаться, что компоновка и/или серверный узел дополнительно содержит другие функциональные блоки, такие как, например, блок 1014 кодирования, для кодирования, например, мультимедийного контента; и один или несколько блоков 1014 хранения.
Компоновка 1000 содержит блок 1004 определения, который приспособлен для определения требования уровня, связанного, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Как описано ранее, определение может включать в себя, например, изучение этого контента и/или метаданных, связанных с контентом, или вычисления в сопряжении с кодированием контента в сервере. Информация может касаться этого контента, когда некоторая операция была выполнена на этом контенте, такая как, например, отбрасывание и/или вставка кадров.
Компоновка 1000 дополнительно содержит блок обеспечения, который приспособлен для обеспечения информации, по меньшей мере, об одной скорости воспроизведения и связанном требовании уровня для клиентского узла, что позволяет клиентскому узлу определить, какая скорость (скорости) воспроизведения является той, которая поддерживается (поддерживаются) клиентским узлом в отношении требуемого уровня, и, таким образом, воздержаться от декодирования и воспроизведения этого контента со скоростью, требующей уровня, который не поддерживается клиентским узлом. Это обеспечение может включать в себя вставку информации в структуру формата файла, как, например, ее вставку в необязательный блок или контейнер в соответствующее положение и/или в соответствующий иерархический уровень структуры формата файла, откуда она может быть извлечена клиентом. Информация может быть обеспечена как часть MPD, в случае, например, поточной передачи HTTP.
ПРИМЕРНАЯ КОМПОНОВКА, ФИГ. 11
Фиг. 11 схематично показывает некоторый вариант осуществления компоновки 1100 в клиентском узле, который также может быть альтернативным способом раскрытия варианта осуществления компоновки в клиентском узле, показанном на фиг. 8. Здесь в компоновке 1100 содержится процессор 1106, например, с DSP (цифровым процессором сигналов). Процессором 1106 может быть единственный блок или множество блоков для выполнения различных действий процедур, описанных в данном документе. Компоновка 1100 может также содержать блок 1102 ввода для приема сигналов от других объектов и блок 1104 вывода для обеспечения сигнала (сигналов) к другим объектам. Блок 1102 ввода и блок 1104 вывода могут быть скомпонованы как интегральный объект.
Кроме того, компоновка 1100 содержит, по меньшей мере, один компьютерный программный продукт 1108 в форме энергонезависимой памяти, например, EEPROM (электронно-перепрограммируемого ПЗУ), флэш-памяти и жесткого диска. Компьютерный программный продукт 1108 содержит компьютерную программу 1110, которая содержит средство кода, которое при исполнении в процессоре 1106 в компоновке 1100 побуждает компоновку и/или клиентский узел к выполнению действий процедур, описанных ранее в сопряжении с фиг. 6 и 7.
Компьютерная программа 1110 может быть выполнена как компьютерный программный код, структурированный в компьютерные программные модули. Следовательно, в описанных примерных вариантах осуществления, средство кода в компьютерной программе 1110 компоновки 1100 содержит модуль 1110а получения для получения информации, относящейся к некоторому контенту, касающейся требований уровня, связанных, по меньшей мере, с одной нерегулярной скоростью воспроизведения для упомянутого некоторого контента. Компьютерная программа дополнительно содержит модуль 1110b определения для определения, на основе полученной информации, какая скорость (скорости) воспроизведения является (являются) той, которая поддерживается (поддерживаются) клиентским узлом в отношении уровня. Компьютерная программа 1110 может дополнительно содержать дополнительные модули, например 1110с, для анализа полученной информации и/или 1110d для принятия различных действий на основе этой информации.
Модули 1110а-d могли бы, в сущности, выполнять действия потоков, показанных на фиг. 6 и 7, для эмуляции компоновки в клиентском узле, показанном на фиг. 8. Другими словами, когда различные модули 1110а-d исполняются в процессоре 1106, они соответствуют блокам 804-810 фиг. 8.
Аналогично и подобным образом, возможна соответствующая альтернатива для компоновки, показанной на фиг. 10, содержащая программные модули для определения и обеспечения информации.
Хотя средства кода в варианте осуществления, раскрытом выше в сопряжении с фиг. 11, реализуются как компьютерные программные модули, которые при исполнении в процессоре побуждают компоновку и/или клиентский узел (или серверный узел) к выполнению действий, описанных выше в сопряжении с чертежами, отмеченными выше, по меньшей мере, одно из средств кода может быть реализовано в альтернативных вариантах осуществления, по меньшей мере частично как схемы аппаратного обеспечения.
Процессор может быть единственным CPU (центральным процессором), но мог бы также содержать два или несколько процессоров. Например, процессор может включать в себя универсальные микропроцессоры; процессоры набора инструкций и/или связанные наборы микросхем и/или специализированные микропроцессоры, такие как ASIC (специализированная интегральная микросхема). Процессор может также содержать плату памяти для целей кэширования. Компьютерная программа может быть перенесена посредством компьютерного программного продукта, подключенного к процессору. Этот компьютерный программный продукт содержит считываемый компьютером носитель, на котором хранится компьютерная программа. Например, компьютерным программным продуктом может быть флэш-память, RAM (ЗУ с произвольной выборкой), ROM (постоянное ЗУ) или EEPROM, и компьютерные программные модули, описанные выше, могли бы в альтернативных вариантах осуществления распространяться на различные компьютерные программные продукты в форме элементов памяти в пределах клиентского узла (или серверного узла).
В то время как процедуры, предложенные выше, были описаны со ссылкой на конкретные варианты осуществления, обеспеченные как примеры, это описание, в общем, предназначено только для иллюстрации идеи изобретения и не должно приниматься как ограничивающее объем предложенных способов и компоновок, которые заданы прилагаемой формулой изобретения. Будучи описанными в общих терминах, эти способы и компоновки могут быть применимы, например, для различных типов систем связи, использующих стандартно доступные технологии связи, такие как, например, GSM/EDGE, WCDMA или LTE или технологии широковещательной передачи по спутнику, наземные или кабельные, например, DVB-S, DVB-T или DVB-C, но также для сохранения/извлечения мультимедиа в/из памяти.
Также следует понимать, что выбор взаимодействующих блоков или модулей, а также именование этих блоков осуществляется только с целями иллюстрации, и клиентский и серверный узлы, подходящие для исполнения любого из способов, описанных выше, могут быть сконфигурированы множеством альтернативных способов для осуществления возможности исполнения предложенных действий процесса.
Следует также отметить, что блоки или модули, описанные в этом описании, должны быть рассмотрены как логические объекты, а необязательно как отдельные физические объекты.
СОКРАЩЕНИЯ
AVC усовершенствованное кодирование видеоданных
CABAC контекстно адаптированное двоичное арифметическое кодирование
DPB буфер декодированного изображения
GOP группа изображений
MPD описание представления мультимедиа
NAL уровень сетевой абстракции
QVGA четвертная видеографическая матрица
VLC кодирование переменной длины