Разреженное кэширование для потоковой аудиовизуальной информации

Иллюстрации

Показать все

Изобретение относится к системам и способам кэширования файла потоковой аудиовизуальной информации при передаче. Техническим результатом является уменьшение вероятности отказа при воспроизведении файла потоковой аудиовизуальной информации на клиентском устройстве. В способе осуществляется хранение и извлечение частей файла потоковой аудиовизуальной информации, которые являются временно не смежными и/или закодированными с отличающимися скоростями передачи данных. Система содержит модуль хранения данных и модуль кэширования, выполненный с возможностью принимать и хранить множество временно не смежных частей файла потоковой аудиовизуальной информации в кэш-файле в модуле хранения данных. 4 н. и 20. з.п. ф-лы, 7 ил.

Реферат

Предшествующий уровень техники

Потоковая передача аудиовизуальной информации является процессом посылки аудио/видео представления и других данных из файлов потоковой аудиовизуальной информации или из источников потоковой информации в реальном времени от одного местоположения до другого по сети, такой как Интернет или интранет. Как правило, потоковая передача аудиовизуальной информации включает в себя посылку файла потоковой аудиовизуальной информации от сервера клиенту, когда файл потоковой аудиовизуальной информации может быть воспроизведен (просмотрен и/или прослушан), используя проигрыватель аудиовизуальной информации (медиа-плеер). Потоковая передача аудиовизуальной информации может также быть выполнена между одноранговыми устройствами. В отличие от способов передачи не-потоковой аудиовизуальной информации, которые требуют, чтобы весь файл потоковой аудиовизуальной информации был передан прежде, чем он может быть воспроизведен, потоковая передача аудиовизуальной информации допускает представление частей файла потоковой аудиовизуальной информации в то время, когда он передается или передается в виде потока клиенту.

Потоковая передача аудиовизуальной информации может быть или одноадресной, когда файл потоковой аудиовизуальной информации передается в виде потока от сервера к одиночному клиенту, или многоадресной, когда файл потоковой аудиовизуальной информации передается в виде потока от сервера множеству клиентов. Дополнительно, потоковая передача аудиовизуальной информации может происходить или в реальном времени, когда передается в виде потока файл потоковой аудиовизуальной информации, включающий в себя данные, представляющие реальное событие так, как оно происходит, или по требованию, когда файл потоковой аудиовизуальной информации сохраняют в файле потоковой аудиовизуальной информации и передают в виде потока тогда, когда потребуется. Потоковая передача аудиовизуальной информации по требованию обычно является одноадресной, с потоковой передачей, имеющей место между сервером и каждым клиентом в отдельном случае.

Основной файл потоковой аудиовизуальной информации обычно включает в себя, по меньшей мере, два потока: видеопоток и аудиопоток. Более сложный файл потоковой аудиовизуальной информации будет включать в себя множество видео и/или аудиопотоков, причем каждый поток кодируют с различной скоростью передачи данных (то есть, кодирование с множеством скоростей передачи битов). Например, заданная часть или поток видео (данных) могут быть сохранены в закодированном с множеством скоростей передачи данных файле потоковой аудиовизуальной информации в шести различных потоках видео (данных), причем каждый поток закодирован с различной скоростью передачи данных. Когда клиент запрашивает файл потоковой аудиовизуальной информации от сервера, выполняется определение относительно полосы пропускания линии связи между сервером и клиентом. Затем выбирают один из шести потоков видео и потоков аудио для передачи клиенту на основании заранее определенных критериев относительно полосы пропускания. Например, видео- и аудиопотоки могут быть выбраны так, что их объединенные скорости передачи данных являются меньшими, чем заранее определенный процент от доступной полосы пропускания линии связи. Если в некоторый момент в процессе потоковой передачи полоса пропускания линии связи между сервером и клиентом увеличивается или уменьшается, то выбирается различная комбинация аудио- и видеопотоков, чтобы удовлетворить заранее определенным критериям полосы пропускания. Этот тип "выбора потока" из файла потоковой аудиовизуальной информации, закодированного с множеством скоростей передачи, на основании доступной полосы пропускания обычно называется "интеллектуальная потоковая передача данных".

В некоторых клиентских системах опыт потоковой передачи данных расширяется кэшированием некоторых или всех принятых файлов потоковой аудиовизуальной информации в клиенте до воспроизведения потоков. Кэширование потоков до их воспроизведения уменьшает вероятность, что возможная проблема в сетевом подключении прервет воспроизведение файла потоковой аудиовизуальной информации на клиенте. Кроме того, в некоторых системах некоторое минимальное использование навигации относительно потока (перемотка, повторное воспроизведение) может быть выполнено с использованием кэша.

Одной из проблем, которая в настоящее время существует при кодировании с множеством скоростей передачи битов и/или кэшировании потока аудиовизуальной информации, является та, что для потоков с изменяющимися скоростями передачи данных или не смежных во времени потоков не существует способа сохранения и осуществления последующего к ним прямого обращения (доступа без излишних промежуточных операций), если вообще такое возможно. Как правило, когда выполняется переключение между потоками аудиовизуальной информации в файле потоковой аудиовизуальной информации из-за изменения полосы пропускания, любые предварительно кэшированные части файла потоковой аудиовизуальной информации отвергаются, и устанавливается новый кэш потока. Точно так же, когда делается переход между временно несмежными местоположениями в файле потоковой аудиовизуальной информации, например операция поиска, любые предварительно кэшированные части файла потоковой аудиовизуальной информации отвергаются, и устанавливается новый кэш потока.

Различные системы, способы, и структуры данных, описанные ниже, направлены на решение этих и других проблем.

Сущность изобретения

Описаны различные системы, способы и структуры данных, касающиеся кэширования файла потоковой аудиовизуальной информации способом, который допускает сохранение и извлечение частей файла потоковой аудиовизуальной информации, которые являются временно несмежными и/или кодированными с отличающимися скоростями передачи данных.

В соответствии с одним вариантом выполнения используется механизм кэширования, который использует уникальные механизмы промежуточного сохранения, которые разрешают сохранять такие временно несмежные участки и/или по-разному закодированные части файла потоковой аудиовизуальной информации в кэш-файле, и получать к ним доступ (извлекать их) из кэш-файла. В соответствии с другим вариантом осуществления используется уникальная структура кэш-файла, которая допускает сохранение таких временно несмежных участков и/или по-разному закодированных частей файла потоковой аудиовизуальной информации в кэш-файле, и получать к ним доступ (извлекать их) из кэш-файла.

Краткое описание чертежей

Фиг. 1 иллюстрирует примерную сетевую среду, в которой могут быть использованы описанные различные системы, способы и структуры данных.

Фиг. 2 иллюстрирует примеры клиентского устройства и сервера.

Фиг. 3 иллюстрирует примерную структуру и формат потоковых данных аудиовизуальной информации.

Фиг. 4 иллюстрирует примерную структуру данных кэш-файла.

Фиг. 5 иллюстрирует примерную последовательность операций, включающую в себя различные действия для записи потоковой аудиовизуальной информации.

Фиг. 6 иллюстрирует примерную последовательность операций, включающую в себя различные действия для воспроизведения потоковой аудиовизуальной информации.

Фиг. 7 иллюстрирует примерную общую компьютерную среду, которая может использоваться для осуществления описанных систем, способов и структур данных.

Подробное описание предпочтительного варианта осуществления

В целом, различные системы, способы и структуры данных, описанные ниже, относятся к кэшированию файла потоковой аудиовизуальной информации способом, который допускает сохранение и извлечение частей потоковой аудиовизуальной информации, которые являются временно несмежными участками и/или закодированными с отличающимися скоростями передачи данных. Как описано ниже, механизм кэширования на стороне клиента использует уникальные механизмы промежуточного сохранения и уникальную структуру кэш-файла, которая позволяет таким "несходным" частям файла потоковой аудиовизуальной информации быть сохраненными в кэш-файле, и быть доступным из него.

Примерная среда

Фиг. 1 иллюстрирует примерную сетевую среду 100. В среде 100 множество (x) клиентских устройств 102(1), 102(2), ..., 102(x) подсоединены ко множеству (y) серверных устройств 104(1), 104(2),..., 104(y) через сеть 106. Сеть 106 предназначена для представления любой из множества обычных сетевых топологий и типов (включая в себя проводные и/или беспроводные сети). Сеть 106 может включать в себя, например, Интернет, интранет, глобальную сеть (ГС, WAN), локальную сеть (ЛС, LAN) и/или различные комбинации любой из этих или других сетей.

Должно быть понятно, что используемые здесь серверное устройство (устройство-сервер) может быть любым устройством или процессом, который является источником файла потоковой аудиовизуальной информации, и устройство-клиент может быть любым устройством или процессом, который принимает файл потоковой аудиовизуальной информации (например, для воспроизведения пользователю на клиентском устройстве). Например, в равноправной сети устройство или процесс, которые являются источником файла потоковой аудиовизуальной информации, могут быть названы серверным устройством, в то время как устройство или процесс, которые принимают файл потоковой аудиовизуальной информации, могут быть названы клиентским устройством.

В соответствии с различными вариантами осуществления, описанными ниже, связь между клиентскими устройствами 102 и серверными устройствами 104 может происходить, используя любой из множества обычных протоколов обмена информацией (включая в себя открытые и/или частные протоколы). В одном варианте осуществления связь между устройствами 102 и 104 происходит с использованием версии протокола передачи гипертекстовых файлов (HTTP). В другом варианте осуществления связь между устройствами 102 и 104 происходит с использованием протокола передачи в реальном времени (RTSP). Альтернативно, могут использоваться другие протоколы, такие как протокол инициирования сеанса связи (SIP), простой протокол доступа к объектам (SOAP) и т.д.

Каждое из устройств 102 и 104 может быть любым из множества обычных вычислительных устройств, включая настольные персональные компьютеры, рабочие станции, универсальные компьютеры, электронные приборы на основе Интернет, игровые терминалы, карманные персональные компьютеры, сотовые телефоны, персональные цифровые ассистенты (PDA), телевизионные приставки и т.д. Одно или более устройств 102 и 104 может быть устройствами одного типа или, альтернативно, устройствами различного типа.

Хотя и не показано, одно или более дополнительных устройств (например, брандмауэры, маршрутизаторы, шлюзы, мосты, множество прокси-серверов и т.д.) могут быть расположены между клиентским устройством 102 и серверным устройством 104. Следует отметить, что множество клиентских устройств 102 могут обращаться к одиночному серверному устройству 104, и что одиночное клиентское устройство 102 может обращаться к множеству серверных устройств 146.

Фиг. 2 иллюстрирует примерное серверное устройство 104. Как показано, серверное устройство 104 включает в себя модуль 220 потоковой передачи и один или более файлов 222 потоковой аудиовизуальной информации. Серверное устройство 104 может быть, например, серверным устройством 104 источника на фиг. 1, или альтернативно, другим устройством (например, прокси-устройством). В общем, модуль 220 потоковой передачи функционирует для приема запроса на файл потоковой аудиовизуальной информации или часть файла потоковой аудиовизуальной информации, например, от клиентского устройства 102, и передачи файла потоковой аудиовизуальной информации или части файла к запрашивающей стороне.

"Файл потоковой аудиовизуальной информации" включает в себя один или более цифровых потоков информации, которые могут быть воспроизведены проигрывателем аудиовизуальной информации (медиа-плеером). Как правило, файл потоковой аудиовизуальной информации включает в себя два или более потоков, которые являются временно синхронизированными. Файл потоковой аудиовизуальной информации может также включать в себя другие потоки, которые являются независимыми. Содержимое файла аудиовизуальной информации может быть или может не быть сжато. Термин "файл потоковой аудиовизуальной информации" используется в настоящем описании, чтобы указать, что файл потоковой аудиовизуальной информации передается по сети на клиентское устройство, и что воспроизведение файла аудиовизуальной информации может начинаться до доставки файла аудиовизуальной информации в его целостности (например, обеспечивая данные файла аудиовизуальной информации на основе "как необходимо" вместо предварительной доставки данных полностью перед воспроизведением). Файл потоковой аудиовизуальной информации может быть общедоступен или, альтернативно, ограничен (например, ограниченно доступным только для некоторых пользователей, только если соответствующая плата оплачена, и т.д.). Файл потоковой аудиовизуальной информации может быть любым из множества из одного или более типов файлов аудиовизуальной информации с доступом с разделением во времени, причем информация в файле потоковой аудиовизуальной информации определяет временное представление некоторой части или всего файла в течение воспроизведения, например, аудио, видео, временного текстового представления, анимации и т.д. Дополнительно, файл потоковой аудиовизуальной информации может быть записанным заранее или, альтернативно, "живым" (например, цифровым представлением, выполняемым при передаче концерта, когда концерт исполняется, и обеспечение его доступным для потоковой передачи данных вскоре после сбора данных).

Файл 222 потоковой аудиовизуальной информации может быть сохранен и/или передан в виде потока в соответствии с любым из множества различных форматов файла потоковой аудиовизуальной информации. Например, файл потоковой аудиовизуальной информации может быть сохранен как статический файл потоковой аудиовизуальной информации. Альтернативно, файл потоковой аудиовизуальной информации может быть передан в виде "реального" потока от одного или более источников или производителей потоков аудиовизуальной информации. В одном примерном варианте осуществления изобретения файлы аудиовизуальной информации сохраняют и/или передают в виде потока в соответствии с форматом ASF (расширенный системный формат или расширенный формат потоковой передачи). Дополнительная информация относительно ASF доступна от корпорации Microsoft®, Redmond, Вашингтон. Та же самая методика может также применяться к другим форматам, например, MPEG-1 (формат от Группы Экспертов по движущимся изображениям), MPEG-2, MPEG-4, Quicktime, и т.д.

Как показано, клиентское устройство 102 включает в себя плеер 206 потоковой аудиовизуальной информации, сетевой модуль 208, модуль 210 кэширования, и один или более кэш-файлов 216. В модуль 210 кэширования включены модуль 212 кэширования аудиовизуальной информации и модуль 214 кэширования байтов. Как показано, один или более кэш-файлов хранятся в модуле 218 хранения данных в клиентском устройстве 102.

Вообще, плеер 206 потоковой аудиовизуальной информации обеспечивает средство, посредством которого файл 222 потоковой аудиовизуальной информации может быть выбран пользователем для воспроизведения на клиентском устройстве 102. В соответствии с одним вариантом осуществления плеер 206 потоковой аудиовизуальной информации является приложением или апплетом, который выполняется процессором на клиентском устройстве 102. Плеер 206 потоковой аудиовизуальной информации предназначен для приема и декодирования файлов потоковой аудиовизуальной информации и доставки содержания файлов потоковой аудиовизуальной информации на соответствующие устройства вывода видео и аудио (данных) в клиентском устройстве 102.

Вообще, сетевой модуль 208 функционирует в качестве "шлюза" между плеером 206 потоковой аудиовизуальной информации и различными источниками файлов потоковой аудиовизуальной информации. При работе в этом качестве сетевой модуль 208 исполняет множество функций, относящихся к установке соединений между плеером 206 потоковой аудиовизуальной информации и различными источниками потоковой аудиовизуальной информации. Например, в соответствии с одним вариантом осуществления сетевой модуль 208 устанавливает сетевое соединение между плеером 206 потоковой аудиовизуальной информации и серверным устройством 104. Сетевой модуль 208 также устанавливает сетевое соединение между плеером 206 потоковой аудиовизуальной информации и модулем 210 кэширования.

Кроме того, сетевой модуль 208 исполняет множество функций, относящихся к определению того, от какого из множества доступных источников потоков аудиовизуальной информации плеер 206 потоковой аудиовизуальной информации будет принимать данные. Например, в соответствии с одним вариантом осуществления в ответ на прием запроса от плеера 206 потоковой аудиовизуальной информации на всю или часть конкретного представления потоковой аудиовизуальной информации, сетевой модуль 208 определяет, может ли запрос быть удовлетворен, извлекая требуемые данные из предварительно сохраненного кэш-файла, или должны ли требуемые данные быть извлечены из серверного устройства.

В соответствии с одним вариантом осуществления сетевой модуль 208 определяет скорость передачи потока для файла потоковой аудиовизуальной информации между модулем 220 потоковой передачи и сетевым модулем 208 на основании множества различных факторов. Это может быть определено любым из множества обычных способов, например посредством посылки тестовых сообщений между устройствами 102 и 104, контроля текущего и прошлого поведения соединений между устройствами 102 и 104, приема индикации относительно доступной полосы пропускания от модуля 220 потоковой передачи и т.д. Зная текущую доступную полосу пропускания, сетевой модуль 208 первоначально запрашивает скорость передачи для потока, которая меньше текущей доступной полосы пропускания на конкретную величину. Эта конкретная величина может быть фиксированной (например, всегда 50 Кбит/сек) или динамической (например, 15% от текущей доступной полосы пропускания, или между 5% и 25% от текущей доступной полосы пропускания).

В соответствии с одним вариантом осуществления сетевой модуль 208 создает или назначает модуль 212 кэширования аудиовизуальной информации, описанный ниже. В соответствии с этим вариантом осуществления сетевой модуль может создавать или назначать одиночный сетевой модуль или множество сетевых модулей. Другие функции, которые могут быть выполнены сетевым модулем 208, включают в себя без ограничения: определение, сохранен ли кэш-файл, относящийся к конкретному воспроизведению потоковой аудиовизуальной информации, в модуле хранения данных, и создание кэш-файлов в модуле хранения данных. Обычные компоненты, которые являются частью клиентского устройства 102, могут необязательно использоваться для того, чтобы помочь сетевому модулю 208. Например, в одном примерном варианте осуществления программа просмотра (браузер) Microsoft® Internet Explorer включает в себя функциональные возможности управления кэшем, например контроль истечения времени нахождения элементов в кэше и/или сборку "мусора", и сетевой модуль 208 может использовать эти функциональные возможности при выполнении различных операций сетевого модуля, описанных выше.

В соответствии с одним вариантом осуществления модуль 218 хранения данных образован на основе энергонезависимой памяти. Например, и без ограничения, модуль 218 хранения данных может быть образован одним или более энергонезависимых ЗУ, например магнитных или оптических запоминающих устройств, магнитно-оптических запоминающих устройств, энергонезависимых ОЗУ или энергонезависимых устройств памяти другого типа. В соответствии с другим вариантом осуществления модуль 218 хранения данных образован одним или более типов энергозависимых ЗУ.

Модуль 210 кэширования обеспечивает механизм, посредством которого файл потоковой аудиовизуальной информации может быть записан в кэш-файл и считан из него в модуле 218 хранения данных. Как показано, модуль 210 кэширования включает в себя модуль 212 кэширования аудиовизуальной информации, и модуль 214 кэширования байтов. Как описано более подробно ниже, каждый из модуля 212 кэширования аудиовизуальной информации и модуля 214 кэширования байтов создается и/или управляется в одной или более промежуточных структур данных, в которых сохранены различные части и структуры принятых потоков данных аудиовизуальной информации.

Модуль 212 кэширования аудиовизуальной информации обеспечивает промежуточные структуры данных для принятого файла потоковой аудиовизуальной информации. В частности, модуль 212 кэширования аудиовизуальной информации создает в одном или более считываемых компьютером носителях пять типов структур данных, поток (для) кэширования аудиовизуальной информации, сегмент кэширования аудиовизуальной информации, сегмент с заголовком кэширования аудиовизуальной информации, сегмент индекса кэширования байтов и сегмент данных кэширования байтов. Во время работы модуль 212 кэширования аудиовизуальной информации создает один сегмент с заголовком кэширования аудиовизуальной информации и множество потоков кэширования аудиовизуальной информации и сегментов кэширования аудиовизуальной информации для каждого файла аудиовизуальной информации, который принят. Модуль 212 кэширования аудиовизуальной информации создает и управляет потоком кэширования аудиовизуальной информации для каждого различного типа и кодированной скорости передачи данных для потока, принятого клиентским устройством 102 в файле потоковой аудиовизуальной информации. Используемый здесь термин "тип" потока относится к формату или функции (например аудио или видео) потока. Понятно, что кодированная скорость передачи данных потока является скоростью передачи данных, с которой поток был первоначально сохранен в файле потоковой аудиовизуальной информации. Как таковой, если модуль 212 кэширования аудиовизуальной информации принимает три потока видео из файла потоковой аудиовизуальной информации, причем каждый имеет отличную скорость передачи данных, и два потока аудио, причем каждый имеет отличную скорость передачи данных, модуль 212 кэширования аудиовизуальной информации сформирует пять различных потоков кэширования аудиовизуальной информации. Во время работы модуль 212 кэширования аудиовизуальной информации будет создавать новый поток кэширования аудиовизуальной информации каждый раз, когда модулем 212 кэширования аудиовизуальной информации принимается поток аудиовизуальной информации нового типа или с новой скоростью передачи данных.

Когда поток принят модулем 212 кэширования аудиовизуальной информации, данные в принятом потоке сохраняют в сегменте кэширования аудиовизуальной информации в (то есть, логически связанным с ним) потоке кэширования аудиовизуальной информации того же типа и с той же скоростью передачи данных, что и принятый поток. Например, если видеопоток, закодированный со скоростью передачи X, принят модулем 212 кэширования аудиовизуальной информации, данные из принятого потока будут сохранены в потоке кэширования аудиовизуальной информации типа "видео", имеющем связанную скорость передачи данных X. Если поток кэширования аудиовизуальной информации типа "видео", закодированный со скоростью X передачи данных, еще не был создан, модуль 212 кэширования аудиовизуальной информации создаст такой поток кэширования аудиовизуальной информации. Как только модуль 212 кэширования аудиовизуальной информации создал поток кэширования аудиовизуальной информации для заданного типа и скорости передачи данных принятого потока, модуль 212 кэширования аудиовизуальной информации создаст отдельный сегмент кэширования аудиовизуальной информации для каждой временно не смежной части принятого потока. Используемый здесь термин "временно не смежный" относится к частям принятого потока или файла потоковой аудиовизуальной информации, которые не являются соседними друг с другом в терминах временного представления их содержимого во время воспроизведения. Как таковой, модуль 212 кэширования аудиовизуальной информации будет создавать отдельный сегмент кэширования аудиовизуальной информации в заданном потоке кэширования аудиовизуальной информации для каждой части принятого потока, который не является непосредственно соседним во времени в смысле временной структуры принятого потока, с другим потоком кэширования аудиовизуальной информации в заданном потоке кэширования аудиовизуальной информации.

Фиг. 3 иллюстрирует графическое представление 300 структуры потоков кэширования аудиовизуальной информации и сегментов кэширования аудиовизуальной информации, созданных модулем 212 кэширования аудиовизуальной информации для гипотетического файла потоковой аудиовизуальной информации. Потоки кэширования аудиовизуальной информации и сегмент показаны выровненными вертикально относительно оси 340 времени, где ось времени указывает время воспроизведения файла потоковой аудиовизуальной информации.

Как показано, модуль 212 кэширования аудиовизуальной информации создал три отдельных видеопотока кэширования аудиовизуальной информации: видеопоток (1) 310 кэширования аудиовизуальной информации, видеопоток (2) 312 кэширования аудиовизуальной информации, и видеопоток (3) 314 кэширования аудиовизуальной информации, каждый из которых связан с различной скоростью передачи данных. Дополнительно, модуль 212 кэширования аудиовизуальной информации создал два отдельных аудиопотока аудиовизуальной информации: аудиопоток (1) 316 кэширования аудиовизуальной информации, и аудиопоток (2) 318 кэширования аудиовизуальной информации, каждый из которых связан с различной скоростью передачи данных.

Как показано, модуль 212 кэширования аудиовизуальной информации создает: два временно не смежных видеосегмента 320 и 326 кэширования аудиовизуальной информации в видеопотоке (1) 310 кэширования аудиовизуальной информации, один видео сегмент 322 кэширования аудиовизуальной информации в видеопотоке (2) 312 кэширования аудиовизуальной информации, и один видеосегмент 324 кэширования аудиовизуальной информации в видеопотоке (3) кэширования аудиовизуальной информации. Дополнительно, модуль 212 кэширования аудиовизуальной информации создал: один аудиосегмент 328 кэширования аудиовизуальной информации в аудиопотоке (1) 316 кэширования аудиовизуальной информации, и один сегмент 330 кэширования аудиовизуальной информации в аудиопотоке (2) кэширования аудиовизуальной информации.

Как отмечено, модуль 212 кэширования аудиовизуальной информации также создает для каждого принятого файла потоковой аудиовизуальной информации структуры данных сегмента с заголовком кэширования аудиовизуальной информации. Сегмент с заголовком кэширования аудиовизуальной информации включает в себя поле идентификатора файла, поле считчика сегментов кэширования аудиовизуальной информации, одно или более информационных полей сегментов кэширования аудиовизуальной информации, и/или описание файлов потоковой аудиовизуальной информации.

В соответствии с одним вариантом осуществления поле идентификатора файла включает в себя глобально уникальный идентификатор (GUID), который идентифицирует кэш-файл, в который сохраняют данные каждого из потоков кэширования аудиовизуальной информации и сегменты для заданного файла потоковой аудиовизуальной информации. Поле считчика сегментов кэширования аудиовизуальной информации хранит число, указывающее общее количество сегментов кэширования аудиовизуальной информации, имеющих данные, сохраненные в кэш-файле. Каждое информационное поле сегментов кэширования аудиовизуальной информации хранит информационную структуру данных сегментов кэширования аудиовизуальной информации для каждого сегмента кэширования аудиовизуальной информации, имеющего данные, сохраненные в кэш-файле.

Информационная структура данных сегментов кэширования аудиовизуальной информации включает в себя поля, содержащие некоторые или все из следующей информации об одиночном сегменте кэширования аудиовизуальной информации, имеющем данные в кэш-файле: идентификатор сегмента кэширования аудиовизуальной информации; идентификатор потока, который указывает поток кэширования аудиовизуальной информации, включающий в себя сегмент кэширования аудиовизуальной информации; индикатор начальной позиции сегмента, который указывает начало сегмента кэширования аудиовизуальной информации в том потоке кэширования аудиовизуальной информации, который включает в себя сегмент кэширования аудиовизуальной информации; идентификатор конечной позиции сегмента, который указывает конец сегмента кэширования аудиовизуальной информации в том потоке кэширования аудиовизуальной информации, который включает в себя сегмент кэширования аудиовизуальной информации; индикатор размера потока, который указывает размер потока кэширования аудиовизуальной информации, включающего в себя сегмент кэширования аудиовизуальной информации; идентификатор предыдущего сегмента, который указывает сегмент кэширования аудиовизуальной информации, если таковые вообще имеются, непосредственно предшествующий сегменту кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации; идентификатор следующего сегмента, который указывает сегмент кэширования аудиовизуальной информации, если таковой вообще имеется, непосредственно следующий за сегментом кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации; и идентификатор типа данных сегмента, который указывает тип данных (например, аудио, видео и т.д.), включенных в сегмент кэширования аудиовизуальной информации.

Информация, включенная в описание файла потоковой аудиовизуальной информации, зависит от формата файла потоковой аудиовизуальной информации. Однако, в общем, описание файла потоковой аудиовизуальной информации может включать в себя такую информацию как описания различных потоков файлов аудиовизуальной информации, описание кодека, используемого для формирования содержимого файла аудиовизуальной информации, и/или другие метаданные, относящиеся к содержимому.

Во время работы модуль 212 кэширования аудиовизуальной информации создает сегмент индекса кэширования байтов и связанный сегмент данных кэширования байтов для каждого сегмента кэширования аудиовизуальной информации, созданного модулем кэширования аудиовизуальной информации. В соответствии с одним вариантом осуществления каждый сегмент данных кэширования байтов включает в себя, без ограничения, представимые данные (например, аудио- или видеоданные и т.д.) сегмента кэширования аудиовизуальной информации, из которого они созданы. В соответствии с одним вариантом осуществления каждый индекс кэширования байтов включает в себя, без ограничения, следующую информацию, относящуюся к данным в ее связанном сегменте данных кэширования байтов: начальное время, продолжительность во времени, смещение данных в сегменте данных кэширования байтов, и/или размер данных.

В соответствии с одним вариантом осуществления модуль 212 кэширования аудиовизуальной информации создает или инициализирует модуль 214 кэширования байтов, описанный ниже. В соответствии с этим вариантом осуществления модуль 212 кэширования аудиовизуальной информации может создавать или инициализировать (назначать) одиночный модуль 214 кэширования байтов или множество модулей кэширования байтов.

Модуль 214 кэширования байтов служит, помимо прочего, для преобразования в последовательную форму и сохранять данные из сегментов индекса кэширования байтов и сегментов данных кэширования байтов в кэш-файле, в соответствии с заранее определенным форматом структуры данных кэш-файла. Фиг. 4 иллюстрирует один такой примерный формат структуры данных кэш-файла для кэш-файла 216. Как показано, кэш-файл 216 состоит из множества страниц 410. В эти страницы включены страница 412 заголовка и ряд страниц 414-420 данных. В общем, страницы 414-420 данных включают в себя индекс кэширования байтов и сегменты данных, созданные модулем 212 кэширования аудиовизуальной информации, в то время как страница 412 заголовка включает в себя информацию, которая описывает одну или более характеристик страниц данных.

Как показано на фиг. 4, страница 412 заголовка включает в себя множество полей 422 данных страницы заголовка. В поля 422 данных страницы заголовка включены поле 424 данных заголовка кэш-файла и ряд полей 426-432 данных управляющей записи кэш-файла (УЗКФ, CFCR). Поле 424 данных заголовка кэш-файла далее включает в себя ряд полей 436 заголовка кэширования. В поля 436 заголовка кэширования включены поле 438 GUID (глобально уникального идентификатора) заголовка кэширования, поле 440 флагов, запись 442 о свободных страницах, поле 444 данных о количестве CFCR, и поле 446 ID (идентификатора) внешнего блока. Поле 438 GUID заголовка кэширования включает в себя глобально уникальный идентификатор, который однозначно идентифицирует кэш-файл 216. Поле 440 флагов включает в себя флажок индикатора, который определяет, включает ли кэш-файл в себя достоверные данные.

Поле 444 данных о количестве CFCR включает в себя идентификатор, который определяет количество управляющих записей кэш-файла, включенных в поля 422 данных страницы заголовка. Поле 446 ID внешнего блока включает в себя указатель на страницу в кэш-файле, которая включает в себя дополнительные управляющие записи кэш-файла. Поле 446 ID внешнего блока используется в случае, когда количество записей кэш-файла, требуемых в кэш-файле, больше чем количество управляющих записей кэш-файла, которые могут быть включены в страницу 412 заголовка.

Запись 442 о свободных страницах включает в себя множество полей 441 данных записей таблицы, включающих в себя поле 443 данных о количестве свободных страниц, поле 445 ID первого внешнего блока и поле 447 записи о свободных страницах. Поле 443 данных о количестве свободных страниц включает в себя идентификатор, указывающий количество свободных страниц в кэш-файле. Поле 447 записи о свободных страницах включает в себя таблицу, конкретно идентифицирующую различные свободные страницы данных в кэш-файле. В случае, когда количество свободных страниц данных превышает количество свободных страниц данных, которые могут быть определены в поле 447 записи о свободных страницах, ID первого внешнего блока включает в себя указатель на страницу, которая включает в себя структуру данных, идентифицирующую дополнительные свободные страницы данных.

Каждая из управляющих записей 426-432 кэш-файла связана с одиночным сегментом кэширования байтов. Вообще, каждая из управляющих записей 426-432 кэш-файла включает в себя информацию, определяющую позицию ее связанного кэша байтов в кэш-файле. Как показано на фиг. 4, каждая управляющая запись кэш-файла включает в себя множество полей 448 данных CFCR. В поля 448 данных CFCR включены поле 450 GUID CFCR, поле 452 индекса первой страницы, поле 454 смещения первой страницы, поле 456 смещения последней страницы и запись 458 таблицы страниц кэширования. Каждое из полей 448 данных CFCR и информация, содержащаяся в ней, может быть названа связанной с одиночный сегментом кэширования байтов, связанного с управляющей записью кэш-файла, которой они принадлежат.

Поле 450 GUID включает в себя глобально уникальный идентификатор, который однозначно идентифицирует управляющую запись кэш-файла, в которую оно включено. Вообще, поле 452 индекса первой страницы, поле 454 смещения первой страницы, поле 456 смещения последней страницы включают в себя адреса, определяющие окно или диапазон адресов, в которых сохранены данные сегмента кэширования байтов.

В соответствии с одним вариантом осуществления поле 452 индекса первой страницы включает в себя адрес первой страницы из страниц данных, включающих в себя ее связанный сегмент кэширования байтов. Поле 454 смещения первой страницы вклю