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

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

Info

Publication number
RU2325686C2
RU2325686C2 RU2004119842/09A RU2004119842A RU2325686C2 RU 2325686 C2 RU2325686 C2 RU 2325686C2 RU 2004119842/09 A RU2004119842/09 A RU 2004119842/09A RU 2004119842 A RU2004119842 A RU 2004119842A RU 2325686 C2 RU2325686 C2 RU 2325686C2
Authority
RU
Russia
Prior art keywords
caching
audiovisual information
segment
data
file
Prior art date
Application number
RU2004119842/09A
Other languages
English (en)
Other versions
RU2004119842A (ru
Inventor
Александр В. ГРИГОРОВИЧ (US)
Александр В. ГРИГОРОВИЧ
Йедзин ЧОЙ (US)
Йедзин ЧОЙ
ДЕ КАРВАЛЬЮ Талес ПАУЛУ (US)
ДЕ КАРВАЛЬЮ Талес ПАУЛУ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2004119842A publication Critical patent/RU2004119842A/ru
Application granted granted Critical
Publication of RU2325686C2 publication Critical patent/RU2325686C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

Предшествующий уровень техники
Потоковая передача аудиовизуальной информации является процессом посылки аудио/видео представления и других данных из файлов потоковой аудиовизуальной информации или из источников потоковой информации в реальном времени от одного местоположения до другого по сети, такой как Интернет или интранет. Как правило, потоковая передача аудиовизуальной информации включает в себя посылку файла потоковой аудиовизуальной информации от сервера клиенту, когда файл потоковой аудиовизуальной информации может быть воспроизведен (просмотрен и/или прослушан), используя проигрыватель аудиовизуальной информации (медиа-плеер). Потоковая передача аудиовизуальной информации может также быть выполнена между одноранговыми устройствами. В отличие от способов передачи не-потоковой аудиовизуальной информации, которые требуют, чтобы весь файл потоковой аудиовизуальной информации был передан прежде, чем он может быть воспроизведен, потоковая передача аудиовизуальной информации допускает представление частей файла потоковой аудиовизуальной информации в то время, когда он передается или передается в виде потока клиенту.
Потоковая передача аудиовизуальной информации может быть или одноадресной, когда файл потоковой аудиовизуальной информации передается в виде потока от сервера к одиночному клиенту, или многоадресной, когда файл потоковой аудиовизуальной информации передается в виде потока от сервера множеству клиентов. Дополнительно, потоковая передача аудиовизуальной информации может происходить или в реальном времени, когда передается в виде потока файл потоковой аудиовизуальной информации, включающий в себя данные, представляющие реальное событие так, как оно происходит, или по требованию, когда файл потоковой аудиовизуальной информации сохраняют в файле потоковой аудиовизуальной информации и передают в виде потока тогда, когда потребуется. Потоковая передача аудиовизуальной информации по требованию обычно является одноадресной, с потоковой передачей, имеющей место между сервером и каждым клиентом в отдельном случае.
Основной файл потоковой аудиовизуальной информации обычно включает в себя, по меньшей мере, два потока: видеопоток и аудиопоток. Более сложный файл потоковой аудиовизуальной информации будет включать в себя множество видео и/или аудиопотоков, причем каждый поток кодируют с различной скоростью передачи данных (то есть, кодирование с множеством скоростей передачи битов). Например, заданная часть или поток видео (данных) могут быть сохранены в закодированном с множеством скоростей передачи данных файле потоковой аудиовизуальной информации в шести различных потоках видео (данных), причем каждый поток закодирован с различной скоростью передачи данных. Когда клиент запрашивает файл потоковой аудиовизуальной информации от сервера, выполняется определение относительно полосы пропускания линии связи между сервером и клиентом. Затем выбирают один из шести потоков видео и потоков аудио для передачи клиенту на основании заранее определенных критериев относительно полосы пропускания. Например, видео- и аудиопотоки могут быть выбраны так, что их объединенные скорости передачи данных являются меньшими, чем заранее определенный процент от доступной полосы пропускания линии связи. Если в некоторый момент в процессе потоковой передачи полоса пропускания линии связи между сервером и клиентом увеличивается или уменьшается, то выбирается различная комбинация аудио- и видеопотоков, чтобы удовлетворить заранее определенным критериям полосы пропускания. Этот тип "выбора потока" из файла потоковой аудиовизуальной информации, закодированного с множеством скоростей передачи, на основании доступной полосы пропускания обычно называется "интеллектуальная потоковая передача данных".
В некоторых клиентских системах опыт потоковой передачи данных расширяется кэшированием некоторых или всех принятых файлов потоковой аудиовизуальной информации в клиенте до воспроизведения потоков. Кэширование потоков до их воспроизведения уменьшает вероятность, что возможная проблема в сетевом подключении прервет воспроизведение файла потоковой аудиовизуальной информации на клиенте. Кроме того, в некоторых системах некоторое минимальное использование навигации относительно потока (перемотка, повторное воспроизведение) может быть выполнено с использованием кэша.
Одной из проблем, которая в настоящее время существует при кодировании с множеством скоростей передачи битов и/или кэшировании потока аудиовизуальной информации, является та, что для потоков с изменяющимися скоростями передачи данных или не смежных во времени потоков не существует способа сохранения и осуществления последующего к ним прямого обращения (доступа без излишних промежуточных операций), если вообще такое возможно. Как правило, когда выполняется переключение между потоками аудиовизуальной информации в файле потоковой аудиовизуальной информации из-за изменения полосы пропускания, любые предварительно кэшированные части файла потоковой аудиовизуальной информации отвергаются, и устанавливается новый кэш потока. Точно так же, когда делается переход между временно несмежными местоположениями в файле потоковой аудиовизуальной информации, например операция поиска, любые предварительно кэшированные части файла потоковой аудиовизуальной информации отвергаются, и устанавливается новый кэш потока.
Различные системы, способы, и структуры данных, описанные ниже, направлены на решение этих и других проблем.
Сущность изобретения
Описаны различные системы, способы и структуры данных, касающиеся кэширования файла потоковой аудиовизуальной информации способом, который допускает сохранение и извлечение частей файла потоковой аудиовизуальной информации, которые являются временно несмежными и/или кодированными с отличающимися скоростями передачи данных.
В соответствии с одним вариантом выполнения используется механизм кэширования, который использует уникальные механизмы промежуточного сохранения, которые разрешают сохранять такие временно несмежные участки и/или по-разному закодированные части файла потоковой аудиовизуальной информации в кэш-файле, и получать к ним доступ (извлекать их) из кэш-файла. В соответствии с другим вариантом осуществления используется уникальная структура кэш-файла, которая допускает сохранение таких временно несмежных участков и/или по-разному закодированных частей файла потоковой аудиовизуальной информации в кэш-файле, и получать к ним доступ (извлекать их) из кэш-файла.
Краткое описание чертежей
Фиг. 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 смещения первой страницы включает в себя указатель на местоположение в странице, относящееся к началу страницы, указанное полем 452 индекса первой страницы, начала данных его связанного сегмента кэширования байтов. Поле 456 смещения последней страницы включает в себя указатель на местоположение в странице относительно начала страницы, указанное полем 452 индекса первой страницы, конца данных его связанного сегмента кэширования байтов.
Запись 458 таблицы страниц кэширования включает в себя множество полей 460 данных записи таблицы, включающее в себя поле 462 данных множества страниц, ID (идентификатор) 464 первого внешнего блока и запись 466 страниц кэширования. Поле 462 данных множества страниц включает в себя идентификатор, указывающий количество страниц данных, которые содержат данные из его связанного сегмента кэширования байтов. Поле 466 записи страниц кэширования включает в себя таблицу, идентифицирующую различные страницы данных, которые включают в себя данные из его связанного сегмента кэширования байтов. В случае, если количество страниц данных, включающих в себя данные из его связанного сегмента кэширования байтов, превышает количество страниц данных, которые могут быть заданы в поле 466 записи страниц кэширования, поле 464 ID (идентификатора) первого внешнего блока включает в себя указатель на страницу, которая включает в себя структуру данных, идентифицирующую дополнительные страницы данных, включающие в себя данные из его связанного сегмента кэширования байтов.
Фиг. 5 иллюстрирует примерную последовательность операций, включающую в себя различные операции 500 для приема и сохранения файла потоковой аудиовизуальной информации. В соответствии с одним вариантом осуществления последовательность операций реализуется клиентским устройством, например клиентским устройством 102, изображенным на фиг. 2, и может быть реализована в программном обеспечении, программируемом оборудовании, аппаратном обеспечении или их комбинациях.
Как показано на фиг. 5, в начале последовательности 500 операций выполняют запрос 510 для всего или части заданного файла потоковой аудиовизуальной информации. Например, в соответствии с одним вариантом осуществления выполняют запрос на серверное устройство, например серверное устройство 104 на фиг. 2, на конкретный файл потоковой аудиовизуальной информации. После запроса 510 на операции 512 определения определяют, является ли требуемый файл потоковой аудиовизуальной информации доступным. Если определено, что требуемый файл потоковой аудиовизуальной информации недоступен, последовательность 500 операций завершается. Если, однако, определено, что требуемый файл потоковой аудиовизуальной информации является доступным, тогда операция 514 создания кэш-файла создает кэш-файл для хранения требуемого файла потоковой аудиовизуальной информации. В соответствии с одним вариантом осуществления операция 514 создания кэш-файла создает кэш-файл в модуле хранения данных, например модуле 218 хранения данных из фиг. 2.
После создания кэш-файла операция 516 запроса описания запрашивает описание файла потоковой аудиовизуальной информации от серверного устройства. При выполнении операции 518 сохранения описания затем принимают и сохраняют описание файлов потоковой аудиовизуальной информации в созданном файле кэширования. Затем, при выполнении операции 520 выбора потока файлов потоковой аудиовизуальной информации выбирают поток аудиовизуальной информации от серверного устройства для передачи на клиентское устройство. В соответствии с одним вариантом осуществления на операции 520 выбора потока файлов потоковой аудиовизуальной информации выбирают поток для передачи на основании, по меньшей мере частично, ширины полосы пропускания, доступной в настоящее время между клиентским устройством и серверным устройством. Операция 522 определения потока затем определяет, существует ли соответствующий поток кэширования аудиовизуальной информации в кэш-файле для выбранного потока. То есть, на этапе 522 определения потока определяют, присутствует ли поток кэширования аудиовизуальной информации, имеющий тот же самый тип и скорость передачи данных, что и выбранный поток в кэш-файле.
Если определено, что соответствующий поток кэширования аудиовизуальной информации не существует в кэш-файле для выбранного потока, на этапе 524 создания потока кэширования аудиовизуальной информации затем создают соответствующий поток кэширования аудиовизуальной информации в кэш-файле. После создания соответствующего потока кэширования аудиовизуальной информации на этапе 526 создания сегмента кэширования аудиовизуальной информации создают сегмент кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, созданном во время выполнения операции 524, соответствующей выбранному потоку. Возвращаясь к операции 522 определения, если определено, что соответствующий поток кэширования уже существует в кэш-файле для выбранного потока, последовательность операций обходит операцию 524 создания потока кэширования потоковой аудиовизуальной информации, и происходит переход к операции 526 создания сегмента кэширования аудиовизуальной информации, на которой сегмент кэширования аудиовизуальной информации создается в соответствующем потоке кэширования аудиовизуальной информации. После операции создания сегмента кэширования аудиовизуальной информации на операции 528 потоковой передачи затем направляют в виде потока данные от выбранного потока в созданный сегмент кэширования аудиовизуальной информации.
Как только данные из выбранного потока направляются в виде потока в созданный кэш сегмента аудиовизуальной информации, операция 530 обнаружения поиска определяет, запрошена ли операция поиска. Если определено, что операция поиска запрошена, в соответствии с последовательностью операций, осуществляют переход назад к операции 520 выбора потока файла потоковой аудиовизуальной информации. Если определено, что операция поиска не запрошена, последовательность операций продолжают для обнаружения изменения полосы пропускания на этапе 532, на котором определяют, изменилась ли полоса пропускания между клиентским устройством и серверным устройством, так как была выполнена операция 520 выбора потока файла потоковой аудиовизуальной информации. Если определено, что произошло изменение в полосе пропускания, последовательность операций возвращается к операции 522 определения потока. Если определено, что изменение в полосе пропускания не произошло, последовательность операций переходит к операции завершения определения потока, на которой определяется, был ли достигнут конец выбранного потока при операции 520 выбора потока файла потоковой аудиовизуальной информации. Если определено, что конец выбранного потока не был достигнут, последовательность 500 операций переходит назад к операции 530 обнаружения поиска. Если определено, что конец выбранного потока был достигнут, последовательность 500 операций переходит к операции 536 определения завершения требуемого файла аудиовизуальной информации, на которой определяют, был ли файл аудиовизуальной информации, запрошенный на этапе 510, полностью сохранен к кэш-файле. В соответствии с одним вариантом осуществления запрошенный файл аудиовизуальной информации определяется как законченный, если все требуемые потоки были полностью загружены на приемлемой скорости передачи данных. Если определено, что требуемый файл аудиовизуальной информации не был полностью сохранен в кэш-файле, последовательность 500 операций возвращается к операции 520 выбора потока файла потоковой аудиовизуальной информации. Если однако определено, что требуемый файл потоковой аудиовизуальной информации был полностью сохранен в кэш-файле, последовательность 500 операций завершается.
Фиг. 6 иллюстрирует примерную последовательность 600 операций, включающую в себя различные операции 600 для извлечения и воспроизведения потоков аудиовизуальной информации. Последовательность 600 операций включает в себя операцию для выборочно извлечения одиночного потока, например одиночного видео- или аудиопотока, из кэш-файла, например кэш-файла 216. Следует заметить, что может быть извлечено множество потоков в файле потоковой аудиовизуальной информации и/или кэш-файла в соответствии с последовательностью 600 операций. В соответствии с одним вариантом осуществления последовательность 600 операций реализуется клиентским устройством, например клиентским устройством 102 на фиг. 2, и может быть реализована программным обеспечением, программируемым оборудованием, аппаратным обеспечением или их комбинацией.
Как показано на фиг. 6, в начале последовательности 600 операций принимают запрос от модуля запроса данных (например проигрыватель (плеер) аудиовизуальной информации), чтобы воспроизвести данные, начиная с требуемого момента в конкретном типе потока. Например, может быть принят запрос, чтобы начать воспроизведение видеопотока с конкретного момента времени в отношении конкретного файла потоковой аудиовизуальной информации, сохраненного на сервере. Однако вместо обращения непосредственно к серверу для обслуживания запроса, операция 612 (определения) предпочтительной скорости передачи данных определяет, являются ли требуемые данные доступными в кэш-файле на предпочтительной скорости передачи данных. Предпочтительная скорость передачи данных может быть установлена или определена различными способами. Например, и без ограничения, в соответствии с одним вариантом осуществления используется методика парных пакетов, чтобы определить предпочтительную скорость передачи данных. В соответствии с другим вариантом осуществления пользователь может явно указать предпочтительную скорость передачи данных.
Если требуемые данные не доступны в кэш-файле на предпочтительной скорости передачи данных, тогда на операции 614 запроса сервера запрашивают требуемые данные от сервера и сохраняют требуемые данные в кэш-файле. После операции 614 запроса сервера последовательность операций возвращается к операции 612 предпочтительной скорости передачи данных. В соответствии с одним вариантом осуществления после того, как сделано множество неудачных попыток, чтобы получить требуемые данные от сервера, выполняют определение относительно того, являются ли требуемые данные доступными в кэш-файле на скорости передачи данных меньшей, чем предпочтительная скорость передачи данных. Если да, то к запрашиваемым данным с более низкой скоростью передачи данных можно обращаться из кэш-файла.
Затем операция 616 определения момента начала определяет, какой поток кэширования аудиовизуальной информации в кэш-файле включает в себя момент начала требуемых данных. Операция 618 доступности данных тогда определяет, являются ли требуемые данные доступными с момента начала до конца потока в соответствии с другим способом, операция 618 (определения) доступности данных определяет, имеются ли любые временные разрывы в данных в потоке от момента начала до конца потока. Если определено, что данные являются доступными от момента начала до конца потока, последовательность операций переходит к операции 622 обнаружения сегмента кэширования, на которой обнаруживают сегмент кэширования аудиовизуальной информации в определенном потоке кэширования аудиовизуальной информации, который включает в себя момент начала. Если, однако, определено, что данные не доступны от момента начала до конца потока, последовательность операций продолжается в соответствии с операцией 620 запроса данных сервера, на которой запрашивают от сервера любые данные, которые необходимы, чтобы завершить поток, так что не имеется никаких временных разрывов от момента начала до конца потока. Затем последовательность 600 операций переходит к операции 622 определения сегмента кэширования. Следует заметить, что последовательность операций продолжается после того, как запрос был сделан к серверу посредством операции 620 запроса данных сервера. То есть последовательность операций не приостанавливается до тех пор, пока данные, запрошенные на операции 620, не будут приняты от сервера и сохранены.
После операции 622 определения сегмента кэширования операция 624 воспроизведения доставляет данные от определенного сегмента кэширования аудиовизуальной информации к запрашивающему данные модулю для воспроизведения. В то время как определенный сегмент кэширования аудиовизуальной информации доставляют запрашивающему модулю, на этапе 626 обнаружения поиска определяют, был ли сделан запрос поиска нового момента начала в определенном потоке кэширования аудиовизуальной информации. Это может происходить, например, когда операция поиска выполнена запрашивающим данные модулем другого временного местоположения в определенном потоке кэширования аудиовизуальной информации. Если на операции 626 обнаружения поиска решено, что поиск запрашивался, последовательность 600 операций возвращается к операции 618 доступных данных. Если, однако, на операции 626 обнаружения поиска решено, что поиск не запрашивался, и после того, как данные из определенного сегмента кэширования аудиовизуальной информации были полностью доставлены запрашивающему данные модулю, при выполнении операции 628 определения конца потока кэширования определяют, был ли достигнут конец определенного потока кэширования аудиовизуальной информации. Если определено, что конец определенного потока кэширования аудиовизуальной информации не был достигнут, при выполнении операции 630 следующего сегмента кэширования определяют следующий сегмент кэширования аудиовизуальной информации в определенном потоке кэширования аудиовизуальной информации, к которому нужно обращаться. Если, однако, определено, что был достигнут конец определенного потока кэширования аудиовизуальной информации, последовательность 600 операций переходит к операции 632 определения конца файла (EOF), на которой определяют, был ли достигнут конец кэш-файла. Если определено, что конец кэш-файла не был достигнут, последовательность 600 операций возвращается к операции 628 определения конца потока кэширования. Если, однако, определено, что конец кэш-файла был достигнут, последовательность 600 операций завершается.
Различные последовательности операций были проиллюстрированы на фиг. 5 и 6. Следует отметить, что операции, проиллюстрированные на чертежах, могут быть выполнены в указанном порядке, или, альтернативно, в другом порядке.
Фиг. 7 иллюстрирует общую компьютерную среду 700, которая может использоваться, чтобы осуществить способы, описанные выше. Компьютерная среда 700 является только одним примером вычислительной среды и не предназначена для предложения какого-либо ограничения относительно объема использования или функциональных возможностей компьютера и сетевых структур. Компьютерная среда 700 не должна интерпретироваться как имеющая какую-либо зависимость или требования, относящиеся к любому или комбинации компонентов, проиллюстрированных в примерной компьютерной среде 700.
Компьютерная среда 700 включает в себя вычислительное устройство общего назначения в форме компьютера 702. Компьютером 702 может быть, например, клиентское устройство 102 или серверное устройство 104 на фиг. 1 или 2. Компоненты компьютера 702 могут включать в себя, но не ограничиваться ими, один или более процессоров или устройств 704 обработки, системную память 706 и системную шину 708, которая соединяет различные элементы системы, включая процессор 704, к системной памяти 706. Системная шина 708 представляет одну или более из любого из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину, используя любую из множества шинных архитектур. В качестве примера такие архитектуры могут включать в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (МСА), усовершенствованную шину ISA (EISA), локальную шину ассоциации стандартов видеоэлектроники (VESA), и шину связи периферийных компонентов (PCI), также известную как шина Mezzanine.
Компьютер 702 типично включает в себя множество считываемых компьютером носителей. Таким носителем может быть любой доступный носитель, к которому может обращаться компьютер 702 и который включает в себя и энергозависимые и энергонезависимые носители, сменные и несменные носители.
Системная память 706 включает в себя считываемые компьютером носители в форме энергозависимой памяти, например ОЗУ (ОЗУ) 710, и/или энергонезависимой памяти, например запоминающего устройства только для чтения (ПЗУ) 712. Базовая система ввода-вывода (BIOS) 714, содержащая основные подпрограммы, которые помогают передавать информацию между элементами в компьютере 702, например, в течение запуска, сохранена в ПЗУ 712. ОЗУ 710 типично содержит данные и/или программные модули, которые являются немедленно доступными и/или используемыми в настоящее время процессором 704.
Компьютер 702 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители записи. В качестве примера фиг. 7 иллюстрирует привод 716 жесткого диска для считывания с и записи на несменный энергонезависимый магнитный носитель (не показан), привод 718 магнитного диска для считывания с и записи на сменный энергонезависимый магнитный диск 720 (например, "гибкий диск"), и привод 722 оптического диска для считывания с и/или записи на сменный энергонезависимый оптический диск 724, например CD-ROM, DVD-ROM, или другие оптические носители. Привод 716 жесткого диска, привод 718 магнитного диска и привод 722 оптического диска каждый связаны с системной шиной 708 одним или более интерфейсами 726 носителей. Альтернативно, привод 716 жесткого диска, привод 718 магнитного диска и привод 722 оптического диска могут быть связаны с системной шиной 708 одним или большим количеством интерфейсов (не показаны).
Накопители на дисках и связанные с ними считываемые компьютером носители обеспечивают энергонезависимое хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 702. Хотя пример иллюстрирует жесткий диск 716, сменный магнитный диск 720 и сменный оптический диск 724, должно быть понятно, что также могут использоваться другие типы считываемых компьютером носителей, которые могут хранить данные, являющиеся доступными для компьютера, например магнитные кассеты или другие магнитные запоминающие устройства, платы флэш-памяти, CD-ROM, цифровые универсальные диски (DVD) или другая оптическая память, блоки памяти произвольного доступа (ОЗУ), блоки памяти только для чтения (ПЗУ), электрически стираемое ППЗУ (СППЗУ), и т.п., чтобы реализовать примерную вычислительную систему и среду.
Множество программных модулей может быть сохранено на жестком диске 716, магнитном диске 720, оптическом диске 724, ПЗУ 712 и/или ОЗУ 710, включая, например, операционную систему 726, одну или более прикладных программ 728, другие программные модули 730 и программные данные 732.
Пользователь может вводить команды и информацию в компьютер 702 через устройства ввода, например клавиатуру 734, и устройства 736 указания (например, "мышь"). Другие устройства 738 ввода (не показаны конкретно) могут включать в себя микрофон, джойстик, игровую сенсорную панель, спутниковую антенну, последовательный порт, сканер и/или подобные. Эти и другие устройства ввода связаны с процессором 704 через интерфейсы 740 ввода/вывода, которые подсоединены к системной шине 708, но могут быть связаны другим интерфейсом и шинными структурами, например параллельным портом, игровым портом или универсальной последовательной шиной (USB).
Монитор 742 или другой тип устройства отображения может также быть связан с системной шиной 708 через интерфейс, например видеоадаптер 744. В дополнение к монитору 742, другие периферийные устройства вывода могут включать в себя компоненты, например громкоговорители (не показаны) и принтер 746, которые могут быть связаны с компьютером 702 через интерфейсы 740 ввода/вывода.
Компьютер 702 может работать в сетевой среде, используя логические подключения к одному или более удаленным компьютерам, например удаленному вычислительному устройству 748. В качестве примера, удаленное вычислительное устройство 748 может быть персональным компьютером, переносным компьютером, сервером, маршрутизатором, сетевым компьютером, одноранговым устройством или другим общим сетевым узлом и т.п. Удаленное вычислительное устройство 748 проиллюстрировано в качестве переносного компьютера и может включать в себя многие или все элементы и особенности, описанные здесь относительно компьютера 702.
Логические подключения между компьютером 702 и удаленным компьютером 748 изображены как локальная сеть (LAN) 750 и общая глобальная сеть связи (WAN) 752. Такие сетевые среды являются обычными в офисах, компьютерных сетях в масштабах предприятия, интранет и Интернет.
При реализации в сетевой среде LAN компьютер 702 может быть связан с локальной сетью 750 через сетевой интерфейс или адаптер 754. При реализации в сетевой среде WAN компьютер 702 может включать в себя модем 756 или другие средства для установления связи по глобальной сети 752. Модем 756, который может быть внутренним или внешним для компьютера 702, может быть связан с системной шиной 708 через интерфейсы 740 ввода/вывода или другие соответствующие механизмы. Должно быть понятно, что проиллюстрированные сетевые подключения являются примерными, и что могут быть использованы другие средства установления линий связи между компьютерами 702 и 748.
В сетевой среде, например, проиллюстрированной в отношении вычислительной среды 700, программные модули, изображенные относительно компьютера 702 или его частей, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера удаленные прикладные программы 758 постоянно находятся на ЗУ удаленного компьютера 748. С целью иллюстрации прикладные программы и другие выполнимые компоненты программы, например операционная система, проиллюстрированы здесь как дискретные блоки, хотя очевидно, что такие программы и компоненты могут постоянно находиться в различные моменты времени в различных компонентах памяти вычислительного устройства 702 и выполнены процессором(ами) компьютера.
Различные модули и способы могут быть описаны здесь в общем контексте компьютером выполняемых команд, например программных модулей, выполняемых одним или более компьютерами или другими устройствами. Вообще, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют специфические задачи или реализуют специфические абстрактные типы данных. Как правило, функциональные возможности программных модулей могут быть объединены или распределены так, как требуется в различных вариантах осуществления.
Реализация этих модулей и способов может быть сохранена на или передана посредством некоторых форм считываемых компьютером носителей. Считываемые компьютером носители могут быть любыми доступными носителями, к которым может обращаться компьютер. В качестве примера, а не ограничения, считываемый компьютером носитель может содержать "компьютерную среду хранения" и "коммуникационную среду".
"Компьютерная среда хранения" включает в себя энергозависимые и энергонезависимые, сменные и несменные носители, осуществленные любым способом или технологией для хранения информации, например, считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерная среда хранения включает в себя, но не ограничена ими, ОЗУ, ПЗУ, СППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические средства хранения, магнитные кассеты, магнитную ленту, память на магнитном диске или другие магнитные запоминающие устройства, или любую другую среду, которая может использоваться для хранения требуемой информации и к которой может обращаться компьютер.
"Коммуникационная среда" типично реализует считываемые компьютером команды, структуры данных, программные модули или другие данные в модулируемом сигнале данных, например сигнале несущей или другом транспортном механизме. Коммуникационная среда также включает в себя любые средства доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет один или более из его параметров установленным или измененным таким образом, чтобы закодировать информацию в сигнале. В качестве примера, а не ограничения, коммуникационная среда включает в себя проводные носители, например проводную сеть или непосредственное проводное соединение, и беспроводные носители, например акустические, РЧ, инфракрасное излучение и другие беспроводные носители. Комбинации любых вышеупомянутых средств также включены в рамки считываемых компьютером носителей.
Хотя описание выше использует язык, который является специфическим для структурных особенностей и/или методологических действий, должно быть понятно, что системы и способы, определенные в прилагаемой формуле изобретения, не ограничены конкретными признаками или описанными действиями. Скорее, конкретные признаки и действия раскрыты в качестве примерных форм осуществления изобретения.

Claims (24)

1. Способ кэширования частей файла потоковой аудиовизуальной информации, содержащий этапы:
принимают множество временно не смежных частей файла потоковой аудиовизуальной информации в модуле кэширования, причем, по меньшей мере, первая и вторая из этих несмежных частей закодированы с различными скоростями передачи данных в битах, и сохраняют множество временно не смежных частей в одиночном кэш-файле,
причем модуль кэширования создает отдельный сегмент кэширования для каждой временно не смежной части, и при этом этап сохранения содержит этапы:
создают множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с уникальной скоростью передачи данных в битах, сохраняют первую несмежную часть в первом сегменте кэширования аудиовизуальной информации в потоке кэширования аудивизуальной информации, ассоциированном со скоростью передачи данных в битах первой несмежной части,
сохраняют вторую несмежную часть во втором сегменте кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном со скоростью передачи данных в битах второй несмежной части, и
сохраняют потоки кэширования аудиовизуальной информации в кэш-файле.
2. Способ по п.1, в котором первая и вторая несмежные части содержит видеоданные.
3. Способ по п.1, в котором первая и вторая несмежные части содержат видеоданные, и в котором третья несмежная часть содержит аудиоданные.
4. Способ по п.1, в котором кэш-файл сохранен в энергонезависимой памяти.
5. Способ по п.1, в котором этап сохранения содержит этапы:
создают первый поток кэширования аудиовизуальной информации,
ассоциированный со скоростью передачи данных в битах первой несмежной части,
сохраняют первую несмежную часть в сегменте кэширования аудиовизуальной информации первого потока сегментов аудиовизуальной информации,
создают второй поток кэширования аудиовизуальной информации,
ассоциированный со скоростью передачи данных в битах второй несмежной части,
сохраняют вторую несмежную часть в сегменте кэширования аудиовизуальной информации второго потока сегментов аудиовизуальной информации,
создают сегмент индекса кэширования байтов и сегмент данных кэширования байтов для каждого сегмента кэширования аудиовизуальной информации и
сохраняют упомянутые сегмент индекса кэширования байтов и сегмент данных кэширования байтов в кэш-файле.
6. Способ кэширования частей файла потоковой аудиовизуальной информации, содержащий этапы:
создают посредством модуля кэширования множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с уникальной скоростью передачи данных,
принимают в модуле кэширования множество частей файла потоковой аудиовизуальной информации, причем каждая часть ассоциирована с уникальной временной секцией файла потоковой аудиовизуальной информации,
сохраняют каждую часть в сегменте кэширования аудиовизуальной информации потока кэширования аудиовизуальной информации, ассоциированного со скоростью передачи в битах, с которой эта часть была закодирована, причем, по меньшей мере, две из упомянутых частей сохраняют в сегментах кэширования аудиовизуальной информации в различных потоках кэширования аудиовизуальной информации, сохраняют каждый из потоков кэширования аудиовизуальной информации в одном кэш-файле в модуле хранения данных.
7. Способ по п.6, в котором этап сохранения содержит этапы:
создают сегмент индекса кэширования байтов и сегмент данных кэширования байтов для каждого сегмента кэширования аудиовизуальной информации и
сохраняют сегменты индекса кэширования байтов и сегменты данных кэширования байтов в кэш-файле.
8. Способ по п.6, в котором этап сохранения содержит этапы:
создают сегмент индекса кэширования байтов и сегмент данных кэширования байтов для каждого сегмента и преобразуют в последовательную форму сегменты индекса кэширования байтов и сегменты данных кэширования байтов в кэш-файле.
9. Способ по п.6, в котором кэш-файл сохранен энергонезависимым способом.
10. Система кэширования частей файла потоковой аудиовизуальной информации, причем система содержит:
модуль хранения данных,
модуль кэширования, выполненный с возможностью принимать и хранить множество временно не смежных частей файла потоковой аудиовизуальной информации в кэш-файле в упомянутом модуле хранения данных, причем две или более из множества временно не смежных частей закодированы с различными скоростями передачи данных в битах, причем модуль кэширования содержит модуль кэширования аудиовизуальной информации, выполненный с возможностью сохранять каждую из множества временно не смежных частей в качестве сегмента кэширования аудиовизуальной информации в одном из множества потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с отличной скоростью передачи данных в битах, и сохранять множество потоков кэширования аудиовизуальной информации в кэш-файле.
11. Система по п.10, в которой модуль хранения данных является энергонезависимым запоминающим устройством.
12. Система по п.10, дополнительно содержащая процессор и в которой модуль кэширования содержит выполняемый процессором код.
13. Система по п.10, в которой модуль кэширования содержит модуль кэширования аудиовизуальной информации, выполненный с возможностью хранить каждую из множества временно не смежных частей в качестве сегмента кэширования аудиовизуальной информации в одном из множества потоков кэширования аудиовизуальной информации и производить разбор каждого сегмента кэширования аудиовизуальной информации в сегмент индекса кэширования байтов и сегмент данных кэширования байтов.
14. Система по п.10, в которой модуль кэширования аудиовизуальной информации выполнен с возможностью
производить разбор каждого сегмента кэширования аудиовизуальной информации в сегмент индекса кэширования байтов и сегмент данных кэширования байтов и
модуль кэширования дополнительно содержит модуль кэширования байтов, выполненный с возможностью сохранять сегменты индексов кэширования байтов и сегменты данных кэширования байтов к кэш-файле.
15. Система по п.10, в которой модуль кэширования содержит модуль кэширования аудиовизуальной информации, выполненный с возможностью
создавать множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с уникальной скоростью передачи данных в битах, и сохранять каждую временно не смежную часть в качестве сегмента кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном со скоростью передачи данных в битах, с которой временно не смежная часть была закодирована, и
производить разбор каждого сегмента кэширования аудиовизуальной информации в сегмент индекса кэширования байтов и сегмент данных кэширования байтов, и
модуль кэширования байтов, выполненный с возможностью сохранять сегменты индекса кэширования байтов и сегменты данных кэширования байтов в кэш-файле.
16. Система по п.10, в которой две или более из множества временно не смежных частей включает в себя первую часть видео, закодированную с первой скоростью передачи данных в битах, вторую часть видео, закодированную со второй скоростью передачи данных в битах, и аудиочасть, и при этом первая часть видео, вторая часть видео и аудиочасть сохранены в различных потоках кэширования аудиовизуальной информации.
17. Система по п.10, в которой файл потоковой аудиовизуальной информации включает в себя различные типы данных и модуль кэширования выполнен с возможностью
создавать множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с потоковым типом данных аудиовизуальной информации и скоростью передачи данных, с которой закодирована потоковая аудиовизуальная информация,
сохранять каждую временно не смежную часть принятых данных потоковой аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном с типом данных потоковой аудиовизуальной информации и скоростью передачи данных, с которой закодирована потоковая аудиовизуальная информация временно не смежной части, и
сохранять потоки кэширования аудиовизуальной информации в кэш-файле.
18. Система по п.10, в которой файл потоковой аудиовизуальной информации включает в себя различные типы данных и модуль кэширования выполнен с возможностью
создавать множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с типом данных потоковой аудиовизуальной информации и скоростью передачи данных, с которой закодирована потоковая аудиовизуальная информация, и
сохранять каждую временно не смежную часть принятых потоковых данных аудиовизуальной информации в качестве сегмента кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном с типом данных потоковой аудиовизуальной информации и скоростью передачи данных, с которой закодирована потоковая аудиовизуальная информация временно не смежной части,
производить разбор каждого сегмента кэширования аудиовизуальной информации в сегмент индекса кэширования байтов и сегмент данных кэширования байтов и
сохранять сегменты индекса кэширования байтов и сегменты данных кэширования байтов в кэш-файле.
19. Система по п.10, в которой модуль кэширования выполнен с возможностью сохранять каждую из множества временно не смежных частей в качестве сегмента кэширования аудиовизуальной информации в одном из множества потоков кэширования аудиовизуальной информации, создавать карту отображения сегмент/поток, определяющую сегмент кэширования аудиовизуальной информации и поток, в котором сохранена каждая временно не смежная часть, и производить разбор каждого сегмента кэширования аудиовизуальной информации на сегмент индексов кэширования байтов и сегмент данных кэширования байтов.
20. Считываемый компьютером носитель, на котором записаны выполняемые компьютером команды для выполнения действий, содержащих этапы: сохраняют в клиентском устройстве в кэш-файле множество временно не смежных частей файла потоковой аудиовизуальной информации, принятого от источника потоковой аудиовизуальной информации, причем каждая из множества временно несмежных частей закодирована с различной скоростью передачи данных в битах, причем клиентское устройство создает отдельный сегмент кэширования для каждой временно не смежной части, и при этом этап сохранения содержит этапы:
создают множество потоков кэширования аудиовизуальной информации, причем каждый поток кэширования аудиовизуальной информации ассоциирован с уникальной скоростью передачи данных в битах, сохраняют первую несмежную часть в первом сегменте кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном со скоростью передачи данных в битах не смежной части,
сохраняют вторую несмежную часть во втором сегменте кэширования аудиовизуальной информации в потоке кэширования аудиовизуальной информации, ассоциированном со скоростью передачи данных в битах второй несмежной части, и
сохраняют потоки кэширования аудиовизуальной информации в кэш-файле.
21. Считываемый компьютером носитель по п.20, в котором этап сохранения содержит:
принимают первую часть видео из файла потоковой аудиовизуальной информации, закодированную с первой скоростью передачи данных,
сохраняют упомянутую первую часть видео в видеопотоке кэширования аудиовизуальной информации, ассоциированном с первой скоростью передачи данных в битах,
принимают вторую часть видеофайла потоковой аудиовизуальной информации, закодированную со второй скоростью передачи данных в битах,
сохраняют вторую часть видео в видеопотоке кэширования аудиовизуальной информации, ассоциированном со второй скоростью передачи данных,
принимают первую аудиочасть файла потоковой аудиовизуальной информации,
сохраняют первую аудиочасть в потоке аудиокэширования аудиовизуальной информации и
сохраняют аудио- и видеопотоки кэширования аудиовизуальной информации в кэш-файле.
22. Считываемый компьютером носитель по п.20, в котором этап сохранения содержит этапы:
принимают первую часть видеофайла потоковой аудиовизуальной информации, закодированную с первой скоростью передачи данных в битах,
сохраняют первую часть видео в видеопотоке кэширования аудиовизуальной информации, ассоциированном с первой скоростью передачи данных в битах,
принимают вторую часть видеофайла потоковой аудиовизуальной информации, закодированную со второй скоростью передачи данных в битах,
сохраняют вторую часть видео в видеопотоке кэширования аудиовизуальной информации, ассоциированном со второй скоростью передачи данных в битах,
принимают третью часть видеофайла потоковой аудиовизуальной информации, закодированную с первой скоростью передачи данных,
причем третья часть видео является временно не смежной с первой частью видео,
сохраняют третью часть видео в видеопотоке кэширования аудиовизуальной информации, ассоциированном с первой скоростью передачи данных в битах,
принимают первую аудиочасть файла потоковой аудиовизуальной информации и
сохраняют первую аудиочасть в потоке аудиокэширования аудиовизуальной информации, и
сохраняют аудио- и видеопотоки кэширования аудиовизуальной информации в кэш-файле.
23. Считываемый компьютером носитель по п.20, в котором этап сохранения содержит этапы:
сохраняют каждую из временно не смежных частей в уникальном сегменте кэширования аудиовизуальной информации, формируют, по меньшей мере, два сегмента кэширования байтов из каждого сегмента кэширования аудиовизуальной информации и сохраняют упомянутые сегменты кэширования байтов в кэш-файле.
24. Считываемый компьютером носитель по п.20, в котором этап сохранения содержит этапы:
сохраняют каждую из временно не смежных частей в, по меньшей мере, двух сегментах кэширования байтов и
сохраняют упомянутые сегменты кэширования байтов в кэш-файле.
RU2004119842/09A 2003-08-01 2003-08-20 Разреженное кэширование для потоковой аудиовизуальной информации RU2325686C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/632,767 2003-08-01
US10/632,767 US7941554B2 (en) 2003-08-01 2003-08-01 Sparse caching for streaming media

Publications (2)

Publication Number Publication Date
RU2004119842A RU2004119842A (ru) 2005-03-27
RU2325686C2 true RU2325686C2 (ru) 2008-05-27

Family

ID=34135554

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004119842/09A RU2325686C2 (ru) 2003-08-01 2003-08-20 Разреженное кэширование для потоковой аудиовизуальной информации

Country Status (11)

Country Link
US (1) US7941554B2 (ru)
EP (1) EP1676213A4 (ru)
JP (1) JP2007529121A (ru)
KR (1) KR20060082135A (ru)
CN (1) CN100456284C (ru)
AU (1) AU2003259936A1 (ru)
BR (1) BR0306692A (ru)
CA (1) CA2468057A1 (ru)
MX (1) MXPA04006412A (ru)
RU (1) RU2325686C2 (ru)
WO (1) WO2005017779A1 (ru)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2526710C2 (ru) * 2009-09-16 2014-08-27 Зте Корпорэйшен Способ и система передачи вызова по протоколу sip с помощью абонентской приставки
RU2629001C2 (ru) * 2012-04-26 2017-08-24 Квэлкомм Инкорпорейтед Система улучшенной потоковой передачи блоков по запросу для обработки потоковой передачи с малой задержкой
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
RU2652789C2 (ru) * 2013-04-19 2018-05-03 Сони Корпорейшн Устройство обработки информации, способ запроса содержания и компьютерная программа
US10034042B2 (en) 2013-10-30 2018-07-24 Saturn Licensing Llc Content supply apparatus, content supply method, program, terminal apparatus, and content supply system
RU2668549C2 (ru) * 2013-04-19 2018-10-02 Сони Корпорейшн Устройство сервера, устройство клиент, способ распределения содержания и компьютерная программа
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155531B1 (en) * 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
US20040193609A1 (en) * 2003-03-26 2004-09-30 Sony Corporation Master content directory service server for providing a consolidated network-wide content directory
US20050055352A1 (en) * 2003-09-08 2005-03-10 Sony Corporation Content directory and synchronization bridge
US20050055722A1 (en) * 2003-09-09 2005-03-10 Sony Corporation Intelligent routing of digital content
US7925790B2 (en) 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US7735000B2 (en) * 2003-09-25 2010-06-08 Sony Corporation Information and content exchange document type definitions to support content distribution
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US20050129196A1 (en) * 2003-12-15 2005-06-16 International Business Machines Corporation Voice document with embedded tags
US20050165941A1 (en) * 2004-01-22 2005-07-28 Edward Eytchison Methods and apparatuses for streaming content
US8689113B2 (en) 2004-01-22 2014-04-01 Sony Corporation Methods and apparatus for presenting content
US7337273B2 (en) * 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US8234414B2 (en) 2004-03-31 2012-07-31 Qurio Holdings, Inc. Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US7860923B2 (en) * 2004-08-18 2010-12-28 Time Warner Inc. Method and device for the wireless exchange of media content between mobile devices based on user information
US7860922B2 (en) * 2004-08-18 2010-12-28 Time Warner, Inc. Method and device for the wireless exchange of media content between mobile devices based on content preferences
US7698386B2 (en) * 2004-11-16 2010-04-13 Qurio Holdings, Inc. Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US7937379B2 (en) * 2005-03-09 2011-05-03 Vudu, Inc. Fragmentation of a file for instant access
US8904463B2 (en) * 2005-03-09 2014-12-02 Vudu, Inc. Live video broadcasting on distributed networks
US8219635B2 (en) * 2005-03-09 2012-07-10 Vudu, Inc. Continuous data feeding in a distributed environment
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8099511B1 (en) 2005-06-11 2012-01-17 Vudu, Inc. Instantaneous media-on-demand
US20070016611A1 (en) * 2005-07-13 2007-01-18 Ulead Systems, Inc. Preview method for seeking media content
US8688801B2 (en) 2005-07-25 2014-04-01 Qurio Holdings, Inc. Syndication feeds for peer computer devices and peer networks
US7849163B1 (en) 2005-08-11 2010-12-07 Qurio Holdings, Inc. System and method for chunked file proxy transfers
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US8005889B1 (en) 2005-11-16 2011-08-23 Qurio Holdings, Inc. Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network
KR100798928B1 (ko) * 2005-12-08 2008-01-29 한국전자통신연구원 소프트웨어 스트리밍 시스템에서 기능 단위 소프트웨어제공 방법 및 장치
WO2007066993A1 (en) * 2005-12-08 2007-06-14 Electronics And Telecommunications Research Institute Method and apparatus for providing software by functional units in a software streaming system
US8788572B1 (en) 2005-12-27 2014-07-22 Qurio Holdings, Inc. Caching proxy server for a peer-to-peer photosharing system
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
EP1999883A4 (en) 2006-03-14 2013-03-06 Divx Llc FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS
US8832247B2 (en) * 2006-03-24 2014-09-09 Blue Coat Systems, Inc. Methods and systems for caching content at multiple levels
US20080016185A1 (en) * 2006-07-11 2008-01-17 Magix Ag System and method for dynamically creating online multimedia slideshows
US8510459B2 (en) * 2006-09-01 2013-08-13 Pacbyte Software Pty Limited Method and system for transmitting a data file over a data network
US8296812B1 (en) 2006-09-01 2012-10-23 Vudu, Inc. Streaming video using erasure encoding
US20080104267A1 (en) * 2006-11-01 2008-05-01 Sony Corporation Systems and methods for reducing display latency between streaming digital media
US9602880B2 (en) 2006-12-29 2017-03-21 Kip Prod P1 Lp Display inserts, overlays, and graphical user interfaces for multimedia systems
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US20170344703A1 (en) 2006-12-29 2017-11-30 Kip Prod P1 Lp Multi-services application gateway and system employing the same
US9569587B2 (en) 2006-12-29 2017-02-14 Kip Prod Pi Lp Multi-services application gateway and system employing the same
US11783925B2 (en) 2006-12-29 2023-10-10 Kip Prod P1 Lp Multi-services application gateway and system employing the same
CN103561278B (zh) 2007-01-05 2017-04-12 索尼克知识产权股份有限公司 包含连续播放的视频分配系统
KR100815618B1 (ko) * 2007-05-10 2008-03-24 주식회사 씬멀티미디어 이동통신 단말기에서 외부저장매체의 동영상 파일 재생장치및 방법
JP4970141B2 (ja) * 2007-05-25 2012-07-04 株式会社東芝 情報再生装置および情報再生方法
US8103965B2 (en) * 2007-06-28 2012-01-24 Verizon Patent And Licensing Inc. Media content recording and healing statuses
US8161243B1 (en) 2007-09-28 2012-04-17 Intel Corporation Address translation caching and I/O cache performance improvement in virtualized environments
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US7925774B2 (en) * 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8387150B2 (en) * 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8265140B2 (en) * 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US9009337B2 (en) 2008-12-22 2015-04-14 Netflix, Inc. On-device multiplexing of streaming media content
CN101771673B (zh) * 2008-12-26 2013-10-09 华为技术有限公司 一种处理媒体数据的方法及装置
EP2219374A1 (en) * 2009-02-13 2010-08-18 Irdeto Access B.V. Securely providing a control word from a smartcard to a conditional access module
WO2010111261A1 (en) * 2009-03-23 2010-09-30 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
US8489774B2 (en) * 2009-05-27 2013-07-16 Spot411 Technologies, Inc. Synchronized delivery of interactive content
WO2010138776A2 (en) * 2009-05-27 2010-12-02 Spot411 Technologies, Inc. Audio-based synchronization to media
US8369328B2 (en) * 2009-07-14 2013-02-05 Saguna Networks Ltd. System and method for efficient delivery of multi-unicast communication traffic
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
EP2362651A1 (en) * 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
EP2556439A4 (en) * 2010-04-08 2015-03-04 Vasona Networks CONTINUOUS BANDWIDTH MANAGEMENT FOR MULTIPLE CUSTOMERS
US8301794B2 (en) * 2010-04-16 2012-10-30 Microsoft Corporation Media content improved playback quality
US8904027B2 (en) 2010-06-30 2014-12-02 Cable Television Laboratories, Inc. Adaptive bit rate for data transmission
CN101977310A (zh) * 2010-08-02 2011-02-16 中兴通讯股份有限公司 一种移动终端中流媒体文件保存的方法和系统
EP2437458A1 (en) * 2010-09-30 2012-04-04 British Telecommunications Public Limited Company Content delivery
US8997160B2 (en) * 2010-12-06 2015-03-31 Netflix, Inc. Variable bit video streams for adaptive streaming
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US20120194534A1 (en) * 2011-02-02 2012-08-02 Alcatel-Lucent Usa Inc. System and Method for Managing Cache Storage in Adaptive Video Streaming System
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8719440B2 (en) * 2011-09-14 2014-05-06 Mobitv, Inc. Intelligent device media stream caching
US8560719B2 (en) * 2011-09-14 2013-10-15 Mobitv, Inc. Fragment server directed device fragment caching
US8661479B2 (en) 2011-09-19 2014-02-25 International Business Machines Corporation Caching large objects with multiple, unknown, and varying anchor points at an intermediary proxy device
EP2600257A1 (en) * 2011-11-30 2013-06-05 Thomson Licensing Method and apparatus for processing digital content
US8762452B2 (en) 2011-12-19 2014-06-24 Ericsson Television Inc. Virtualization in adaptive stream creation and delivery
US8850054B2 (en) * 2012-01-17 2014-09-30 International Business Machines Corporation Hypertext transfer protocol live streaming
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US20150039714A1 (en) 2013-07-30 2015-02-05 Opera Software Asa Multimedia cache with dynamic segmenting
CN103618911B (zh) * 2013-10-12 2017-02-01 北京视博云科技有限公司 一种基于视频属性信息的视频流提供方法及装置
EP2958301A1 (en) * 2014-06-16 2015-12-23 Thomson Licensing Method for operating a cache arranged along a transmission path between a client terminal and at least one server, and corresponding cache
US9531720B2 (en) * 2014-09-02 2016-12-27 Akamai Technologies, Inc. System and methods for leveraging an object cache to monitor network traffic
CN104202650B (zh) * 2014-09-28 2017-11-17 西安诺瓦电子科技有限公司 流媒体播放系统及方法、led显示屏系统
JP6944371B2 (ja) 2015-01-06 2021-10-06 ディビックス, エルエルシー コンテンツを符号化し、デバイス間でコンテンツを共有するためのシステムおよび方法
US10990318B2 (en) * 2015-10-01 2021-04-27 PacByte Solutions Pty Ltd Method and system for receiving a data file
US10032034B2 (en) 2015-10-06 2018-07-24 Microsoft Technology Licensing, Llc MPEG transport frame synchronization
CN107544963A (zh) * 2016-06-23 2018-01-05 南京中兴软件有限责任公司 多媒体文件存储方法及装置
US9712570B1 (en) * 2016-09-28 2017-07-18 Atlassian Pty Ltd Dynamic adaptation to increased SFU load by disabling video streams
EP3410728A1 (en) * 2017-05-30 2018-12-05 Vestel Elektronik Sanayi ve Ticaret A.S. Methods and apparatus for streaming data
US10560726B2 (en) 2017-07-26 2020-02-11 CodeShop BV System and method for delivery and caching of personalized media streaming content
CN109903785B (zh) * 2019-03-14 2020-05-15 北京字节跳动网络技术有限公司 用于缓存音频数据的方法和装置
CN112584186B (zh) * 2020-11-30 2023-02-21 微梦创科网络科技(中国)有限公司 一种基于构建电商直播购物车服务的直播方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR8302084A (pt) * 1983-04-22 1984-11-20 Freyssinet Int Stup Conjunto para ancoragem de membros tensores
US5867230A (en) * 1996-09-06 1999-02-02 Motorola Inc. System, device, and method for streaming a multimedia file encoded at a variable bitrate
US6412004B1 (en) * 1997-03-27 2002-06-25 Microsoft Corporation Metaserver for a multimedia distribution network
US5946697A (en) * 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US6347094B1 (en) * 1998-07-21 2002-02-12 Microsoft Corporation Data rate smoothing
US6314466B1 (en) * 1998-10-06 2001-11-06 Realnetworks, Inc. System and method for providing random access to a multimedia object over a network
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6665751B1 (en) * 1999-04-17 2003-12-16 International Business Machines Corporation Streaming media player varying a play speed from an original to a maximum allowable slowdown proportionally in accordance with a buffer state
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
EP1221238A2 (en) 1999-09-29 2002-07-10 Loudeye Technologies, Inc. Streaming media encoding agent for temporal modifications
BR0007239B1 (pt) 1999-10-21 2014-03-18 Panasonic Corp Aparelho de acesso á placa de memória semicondutora, placa de memória semicondutora e método de inicialização.
US6675174B1 (en) * 2000-02-02 2004-01-06 International Business Machines Corp. System and method for measuring similarity between a set of known temporal media segments and a one or more temporal media streams
US7373413B1 (en) * 2000-06-28 2008-05-13 Cisco Technology, Inc. Devices and methods for minimizing start up delay in transmission of streaming media
US7925967B2 (en) * 2000-11-21 2011-04-12 Aol Inc. Metadata quality improvement
US6859840B2 (en) * 2001-01-29 2005-02-22 Kasenna, Inc. Prefix caching for media objects
US20020170068A1 (en) 2001-03-19 2002-11-14 Rafey Richter A. Virtual and condensed television programs
US20020161911A1 (en) * 2001-04-19 2002-10-31 Thomas Pinckney Systems and methods for efficient memory allocation for streaming of multimedia files
US6792449B2 (en) * 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US7047308B2 (en) * 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US20030099364A1 (en) * 2001-11-28 2003-05-29 Thompson Mark R. Playback manipulation of HTTP streamed content objects
CN1185872C (zh) * 2002-11-01 2005-01-19 清华大学 一种基于实时流媒体的现场点播方法
US9144737B2 (en) * 2003-08-01 2015-09-29 Turbine, Inc. Securing goal-activated game content

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
RU2526710C2 (ru) * 2009-09-16 2014-08-27 Зте Корпорэйшен Способ и система передачи вызова по протоколу sip с помощью абонентской приставки
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11743317B2 (en) 2009-09-22 2023-08-29 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11770432B2 (en) 2009-09-22 2023-09-26 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
RU2629001C2 (ru) * 2012-04-26 2017-08-24 Квэлкомм Инкорпорейтед Система улучшенной потоковой передачи блоков по запросу для обработки потоковой передачи с малой задержкой
RU2652789C2 (ru) * 2013-04-19 2018-05-03 Сони Корпорейшн Устройство обработки информации, способ запроса содержания и компьютерная программа
RU2668549C2 (ru) * 2013-04-19 2018-10-02 Сони Корпорейшн Устройство сервера, устройство клиент, способ распределения содержания и компьютерная программа
RU2755145C2 (ru) * 2013-04-19 2021-09-13 Сони Корпорейшн Устройство обработки информации, способ запроса содержания и компьютерная программа
US10034042B2 (en) 2013-10-30 2018-07-24 Saturn Licensing Llc Content supply apparatus, content supply method, program, terminal apparatus, and content supply system

Also Published As

Publication number Publication date
EP1676213A1 (en) 2006-07-05
JP2007529121A (ja) 2007-10-18
US7941554B2 (en) 2011-05-10
CN1692353A (zh) 2005-11-02
KR20060082135A (ko) 2006-07-18
WO2005017779A1 (en) 2005-02-24
EP1676213A4 (en) 2009-12-30
MXPA04006412A (es) 2005-04-25
CA2468057A1 (en) 2005-02-01
AU2003259936A1 (en) 2005-03-07
BR0306692A (pt) 2005-04-05
CN100456284C (zh) 2009-01-28
RU2004119842A (ru) 2005-03-27
US20050066063A1 (en) 2005-03-24

Similar Documents

Publication Publication Date Title
RU2325686C2 (ru) Разреженное кэширование для потоковой аудиовизуальной информации
US20240022621A1 (en) Systems and Methods for Seeking Within Multimedia Content During Streaming Playback
WO2018076952A1 (zh) 一种视频文件的存储、定位播放方法及装置
US9954922B2 (en) Method and system for rendering digital content across multiple client devices
US10051013B2 (en) Method and apparatus for streaming multimedia content of server by using cache
JP4592749B2 (ja) セッション記述メッセージ拡張子
US7725557B2 (en) Client-side caching of streaming media content
US9510043B2 (en) Pre-buffering audio streams
US8886896B2 (en) Storage format for media streams
US7076560B1 (en) Methods and apparatus for storing and serving streaming media data
KR101616147B1 (ko) 디지털 미디어의 동적 단편화
US20030236907A1 (en) Communicating via a connection between a streaming server and a client without breaking the connection
US20080285939A1 (en) Proxy editing and rendering for various delivery outlets
KR20070007698A (ko) 스트리밍 미디어의 고속 시동
US7155531B1 (en) Storage methods and apparatus for streaming media data
US20200037014A1 (en) Method for audio and video just-in-time transcoding
JP2005512134A (ja) リアルタイム時間伸縮用パラメータ付きデジタルオーディオ
CN101395910A (zh) 用于记录对媒体内容的编辑的方法和系统
KR101428472B1 (ko) 클라우드 스트리밍 서비스 제공을 위한 장치 및 이를 위한 방법
KR100940212B1 (ko) 적응화된 콘텐츠 제공방법 및 적응화된 콘텐츠 제공 시스템
KR100490410B1 (ko) 데이터 구조체 기반의 멀티미디어 문서 버퍼링 장치 및 방법
CN116415032A (zh) 一种视频文件读取、存储方法及装置
KR20090000092A (ko) 멀티미디어 콘텐츠의 스트리밍 방법 및 시스템
LakshmiPratha et al. Multimedia Digital Library: Performance and Scalability Issues
KR20060023825A (ko) 대화형 스트리밍 서비스 시스템 및 그 방법

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20130821