УСТРОЙСТВО И СПОСОБ ЗАГРУЗКИ ФАЙЛА С КИНОФИЛЬМОМ
APPARATUS AND METHOD FOR DOWNLOADING MOVIE FILE

Область техники
Изобретение относится к технологии обработки файла с кинофильмом, и, более конкретно, к устройству и способу для загрузки файла с кинофильмом.
Уровень техники
В связи с развитием широкополосного доступа к сети Интернет сетевые видеоресурсы, предлагаемые в Интернет, стали более насыщенными. Это привело к большой популярности загрузки кинофильмов из Интернет. На данный момент существует множество различных программ для загрузки, отвечающих требованиям пользователя к загрузке файлов с кинофильмами.
Протоколы, поддерживаемые широко распространенным программным обеспечением, включают в себя протокол передачи гипертекста (HTTP), протокол передачи файлов (FTP), протокол загрузки Bit Comet (ВТ), сетевой протокол eDonkey2000 (ED2K) (eMule), протокол мультимедийных сообщений (MMS), протокол потоковой передачи в реальном масштабе времени (RTSP) и т.д. Различные протоколы загрузки имеют разные признаки, касающиеся загрузки. Обычные протоколы HTTP и FTP передачи файлов основаны на технологии Клиент/Сервер, в которых клиентское программное обеспечение получает содержание файла, которое загружают с сервера. Протоколы ВТ и ED2K (eMule) являются новыми протоколами типа Р2Р (соединение равноправных узлов). Протокол Р2Р также называют технологией соединения равноправных узлов Интернет, которая отличается от обычной архитектуры Клиент/Сервер, и, в случае технологии Р2Р, клиенты, участвующие в загрузке, составляют узел сети, и один клиент может получить данные загружаемого файла от любого другого клиента сети и не зависит полностью от сервера. MMS и RTSP являются протоколами потоковой передачи разноформатных данных, используемых для передачи потока разноформатных данных в реальном масштабе времени, например, Windows Media, вещаемого сервером потоковых разноформатных данных.
Как можно понять из вышеприведенной классификации протоколов, за исключением протоколов MMS и RTSP, разработанных в соответствии со спецификой сетевой среды, все другие протоколы при загрузке файла с кинофильмом трактуют файл с кинофильмом как обычный файл. Фиг.1 является схематичной блок-схемой, иллюстрирующей системную архитектуру существующего широко распространенного программного обеспечения загрузки файлов. Как показано на фиг.1, модуль загрузки из сети загружает данные файла в локальный файл в соответствии с информацией о сегментировании файла, предоставляемой модулем сегментирования файла. Существующее программное обеспечение для загрузки не выполняет какой-либо специфической обработки файла с кинофильмом. Вместо этого, существующее программное обеспечение для загрузки сегментирует файл с кинофильмом на равные сегменты (например, в качестве базовой единицы берут 512 Кб), как и при сегментировании обычного файла. Для улучшения эффективности загрузки клиентское программное обеспечение для загрузки может одновременно загружать данные сегментов с разных позиций из множества узлов в узловой сети. Однако данный механизм загрузки приведет к тому, что расположение в файле загруженных сегментов данных не будет последовательным, и, в соответствии с теорией декодирования видеоданных, непоследовательные блоки данных не смогут быть воспроизведены. Следовательно, в случае общепринятого программного обеспечения для загрузки обычно необходимо полностью загрузить кинофильм перед тем, как его можно будет воспроизвести. Таким образом, пользователю будет необходимо ожидать длительное время, он не сможет заранее определить, отвечает ли содержание кинофильма его запросам, и не сможет предварительно просмотреть яркие моменты кинофильма.
В существующем способе сегментирования файла, видеоданные каждого кадра кинофильма обычно сегментированы на два блока, и невозможно определить, в каком сегменте данных начинается позиция ключевого кадра. Следовательно, будет сложно осуществить декодирование файла с кинофильмом без полной загрузки всех видеокадров, и в этом случае функция предварительного просмотра не может быть осуществлена. В свою очередь, пользователь должен предварительно просмотреть файл с кинофильмом или просмотреть файл с кинофильмом после его полной загрузки, что потребует длительного времени ожидания; или полностью загруженный кинофильм не будет удовлетворять запросам пользователя, что приведет к потере времени на его загрузку.
Раскрытие изобретения
В свете вышесказанного, в вариантах осуществления настоящего изобретения предложены устройство загрузки файла с кинофильмом и способ загрузки файла с кинофильмом, позволяющие достичь быстрого предварительного просмотра содержания кинофильма для избежания потери времени на загрузку.
Устройство загрузки файла с кинофильмом, предложенное в вариантах осуществления настоящего изобретения, включает в себя модуль анализа файла, модуль сегментирования файла, модуль загрузки из сети и модуль воспроизведения предварительного просмотра; при этом
модуль анализа файла выполнен с возможностью получения информации о позиции ключевых кадров в подлежащем загрузке файле с кинофильмом;
модуль сегментирования файла выполнен с возможностью сегментирования файла с кинофильмом в соответствии с информацией о позиции ключевых кадров, поступающей от модуля анализа файла;
модуль загрузки из сети, соединенный с сервером загрузки или узлом загрузки через сетевое соединение, выполнен с возможностью загрузки данных файла с кинофильмом в соответствии с информацией о сегментировании файла, поступающей от модуля сегментирования файла;
модуль воспроизведения предварительного просмотра выполнен с возможностью воспроизведения предварительного просмотра с использованием данных файла, загруженных модулем загрузки из сети;
модуль анализа файла выполнен с возможностью, в соответствии с типом подлежащего загрузке файла с кинофильмом, отправки первой команды модулю загрузки из сети и приема характеристических данных, поступающих от модуля загрузки из сети; получения информации о позиции ключевых кадров в подлежащем загрузке файле с кинофильмом из характеристических данных, вывода информации о позиции ключевых кадров на модуль сегментирования файла; и отправки второй команды модулю загрузки из сети;
модуль сегментирования файла выполнен с возможностью приема информации о позиции ключевых кадров от модуля синтаксического анализа файла, сегментирования файла с кинофильмом в соответствии с информацией о позиции ключевых кадров и вывода информации о сегментировании файла на модуль загрузки из сети;
модуль загрузки из сети, соединенный с сервером загрузки или узлом загрузки через сетевое соединение, выполнен с возможностью, после приема первой команды, загрузки характеристических данных из заголовка файла и конца файла с кинофильмом; и, после приема второй команды, загрузки данных файла с кинофильмом в соответствии с информацией о сегментировании файла, отправляемой модулем сегментирования файла.
В соответствии с позицией воспроизводимых данных файла с кинофильмом, модуль воспроизведения предварительного просмотра дополнительно выполнен с возможностью отправки третьей команды модулю загрузки из сети, а модуль загрузки из сети дополнительно выполнен с возможностью загрузки данных файла с кинофильмом, подлежащих воспроизведению, в соответствии с третьей командой, поступающей от модуля воспроизведения предварительного просмотра.
Модуль загрузки из сети дополнительно выполнен с возможностью сохранения загруженного файла с кинофильмом в локальный файл.
Модуль загрузки из сети выполнен с возможностью применения режима децентрализованной загрузки (Р2Р), режима последовательной загрузки или режима загрузки для предварительного просмотра.
Модуль воспроизведения предварительного просмотра выполнен с возможностью последовательного воспроизведения изображения ключевых кадров из загруженных данных файла с кинофильмом.
Дополнительно, модуль воспроизведения предварительного просмотра выполнен с возможностью последовательного воспроизведения кинофильма с использованием данных файла кинофильма.
Способ загрузки файла с кинофильмом, предложенный в вариантах осуществления настоящего изобретения, включает в себя:
получение информации о позиции ключевых кадров в файле с кинофильмом, подлежащем загрузке;
сегментирование файла с кинофильмом в соответствии с информацией о позиции ключевых кадров;
загрузку данных файла с кинофильмом в соответствии с информацией о сегментировании файла; и
использование загруженных данных файла с кинофильмом для воспроизведения предварительного просмотра.
Получение информации о позиции ключевых кадров в файле с кинофильмом, подлежащем загрузке, включает в себя:
загрузку, в соответствии с типом подлежащего загрузке файла с кинофильмом, характеристических данных заголовка файла и конца файла с кинофильмом;
получение из характеристических данных информации о позиции ключевых кадров в файле с кинофильмом, подлежащем загрузке.
Способ дополнительно включает в себя:
загрузку подлежащих загрузке данных файла с кинофильмом в соответствии с позицией данных в файле с кинофильмом, подлежащих воспроизведению.
Способ дополнительно включает в себя:
последовательное воспроизведение изображения ключевых кадров из загруженных данных файла с кинофильмом.
Способ дополнительно включает в себя:
последовательное воспроизведение файла с кинофильмом с использованием загруженных данных файла с кинофильмом.
Как можно понять из вышеприведенного технического решения, предложенного в настоящем изобретении, данное техническое решение включает в себя модуль анализа файла, модуль сегментирования файла, модуль загрузки из сети и модуль воспроизведения предварительного просмотра. Модуль сегментирования файла сегментирует файл с кинофильмом в соответствии с информацией о позиции ключевых кадров, полученной при анализе модулем синтаксического анализа; модуль загрузки из сети загружает данные файла в соответствии с информацией о сегментировании файла;
модуль воспроизведения предварительного просмотра реализует быстрый предварительный просмотр содержания кинофильма, используя загруженные данные файла. Техническое решение, предложенное в настоящем изобретении, помогает пользователям быстро понять краткое содержание кинофильма, что достигают посредством предварительного просмотра сегментов содержания, которым пользователь предварительно заинтересовался, и позволяет избежать бесполезной траты времени на загрузку.
Краткое описание чертежей
Фиг.1 является схематичной блок-схемой, иллюстрирующей системную архитектуру существующего широко распространенного программного обеспечения для загрузки;
фиг.2 является схематичной блок-схемой, иллюстрирующей конструкцию устройства для загрузки файла с кинофильмом;
фиг.3 является блок-схемой, иллюстрирующей способ загрузки файла с кинофильмом;
фиг.4 является схематичной блок-схемой, иллюстрирующей структуру файла RMVB.
Осуществление изобретения
В общем случае, существуют два типа закодированных видеокадров, а именно I-кадр и Р-кадр. I-кадр также называют опорным интракадром или ключевым кадром. При кодировании I-кадра используют только информацию изображения кадра, и, таким образом, I-кадр может быть декодирован независимо от других кадров. Р-кадр также называют последующим (разностным) опорным кадром. При кодировании Р-кадра опираются на информацию предыдущего кадра, и, таким образом, для декодирования Р-кадра необходимы данные предыдущего кадра. При кодировании файла с кинофильмом ключевой кадр, то есть I-кадр, вставляют в Р-кадры с интервалом в несколько секунд. Таким образом, декодирование и воспроизведение может быть начато с ключевых кадров, а затем, в свою очередь, продолжено декодирование последующих опорных кадров.
Поскольку ключевые кадры могут быть декодированы независимо от других кадров, данные ключевых кадров являются относительно важными в данных файла с кинофильмом. В целом, позицию ключевых кадров в файле с кинофильмом записывают в структуру описания файла с кинофильмом. В настоящем изобретении файл с кинофильмом сегментируют с использованием информации о позиции ключевых кадров, загружают данные файла в соответствии с информацией о сегментировании файла, выполняют быстрый предварительный просмотр кинофильма с использованием загруженных данных файла, что позволяет пользователю быстро узнать о кратком содержании кинофильма и заранее предварительно просмотреть интересные ему сегменты. В файле с кинофильмом через каждый интервал времени находятся данные ключевого кадра. Предположим, что интервал времени равен Т, средний размер ключевого кадра в N раз отличается от размера неключевого кадра в файле с кинофильмом, и частота кадров равна F, тогда соотношение данных ключевого кадра к данным неключевого кадра в файле с кинофильмом равна N:(T*F-1), где * означает операцию умножения. Если взять в качестве примера интервал для данных ключевого кадра, равным 10 секундам, частоту кадров, равной 25 кадрам в секунду, и размер ключевого кадра, отличающийся в 5 раз относительно неключевого кадра, на основе этих эмпирических значений соотношение данных ключевого кадра к данным неключевого кадра будет равно 1:50. А именно, можно извлекать данные ключевых кадров, составляющих 2 процента от данных файла с кинофильмом, для достижения быстрой выборки содержания кинофильма. Согласно настоящему изобретению выбранные данные ключевых кадров могут быть использованы для предварительного просмотра и помогают пользователю узнать краткое содержание кинофильма.
Фиг.2 является схематичной блок-схемой конструкции устройства для загрузки файла с кинофильмом. Как показано на фиг.2, устройство включает в себя модуль анализа файла, модуль сегментирования файла, модуль загрузки из сети и модуль воспроизведения предварительного просмотра.
Модуль анализа файла выполнен с возможностью, в соответствии с типом загружаемого файла с кинофильмом, отправки первой команды модулю загрузки из сети для загрузки модулем загрузки из сети характеристических данных заголовка файла и конца файла, получения информации о позиции ключевых кадров в загружаемом файле с кинофильмом из характеристических данных, и вывод информации о позиции ключевых кадров на модуль сегментирования файла; и отправку второй команды модулю загрузки из сети.
Модуль сегментирования файла выполнен с возможностью приема информации о позиции ключевых кадров, поступающей от модуля синтаксического анализа файла, сегментирования файла в соответствии с принятой информацией о расположении ключевых кадров и вывод информации о сегментировании файла на модуль загрузки из сети.
Модуль загрузки из сети соединен с сервером загрузки или узлом загрузки через сетевое соединение и выполнен с возможностью, после получения первой команды, загрузки характеристических данных заголовка файла и конца файла с кинофильмом; после получения второй команды, загрузки файла в соответствии с информацией о сегментировании файла, поступающей от модуля сегментирования файла. Модуль загрузки из сети выполнен с дополнительной возможностью сохранения загруженных данных файла с кинофильмом в локальном файле.
Модуль воспроизведения предварительного просмотра выполнен с возможностью осуществления воспроизведения предварительного просмотра с использованием загруженных данных файла с кинофильмом. Модуль воспроизведения предварительного просмотра выполнен с дополнительной возможностью, в соответствии с позицией воспроизводимых данных, отправки третьей команды модулю загрузки из сети для выполнения модулем загрузки из сети предварительной загрузки воспроизводимых данных. Соответственно, модуль загрузки из сети выполнен с дополнительной возможностью загрузки данных файла в соответствии с третьей командой, поступающей от модуля воспроизведения предварительного просмотра.
Фиг.3 является блок-схемой, иллюстрирующей способ загрузки файла с кинофильмом. Как показано на фиг.3, способ включает в себя следующие действия.
На этапе 300 получают информацию о позиции ключевых кадров в файле с кинофильмом.
Этот этап включает в себя: загрузку характеристических данных из заголовка файла и конца файла с кинофильмом в соответствии с типом файла с кинофильмом и получение из характеристических данных информации о позиции ключевых кадров файла с кинофильмом, подлежащего загрузке.
На этапе 301 файл с кинофильмом сегментируют в соответствии с информацией о позиции ключевых кадров в файле с кинофильмом.
На этапе 302 данные файла с кинофильмом загружают в соответствии с информацией о сегментировании файла и используют загруженные данные файла с кинофильмом для реализации воспроизведения предварительного просмотра.
Кроме того, способ согласно данному варианту осуществления дополнительно включает в себя: загрузку данных файла в соответствии с позицией данных, которые должны быть воспроизведены.
Поскольку структура файлов для разных форматов файлов с кинофильмами отличаются друг от друга, устройство для загрузки файлов с кинофильмами, показанное на фиг.2, и способ загрузки файлов с кинофильмами, показанный на фиг.3, далее будут описаны более подробно со ссылками на конкретные примеры. В данном случае в качестве примера взят файл формата RMVB.
Сначала начинают загрузку кинофильма. Широко используемый формат файла с кинофильмом состоит из трех частей, то есть информация описания в заголовке файла (обозначена как HEAD), аудио- и видеоданные файла (обозначены как DATA), и индексные данные в конце файла (обозначены как INDX). Размер информации описания в заголовке файла и индексных данных в конце файла обычно небольшой, например, для файла формата RMVB размер данных заголовка файла и размер данных конца файла равен, примерно, 512 Кб. Модуль анализа отправляет первую команду модулю загрузки из сети и модуль загрузки из сети загружает данные заголовка файла и конца файла. Размер данных заголовка файла и данных конца файла различается для разных форматов файлов с кинофильмами, как это показано в таблице 1. Следовательно, размер данных заголовка файла и данных конца файла может быть определен опытным путем.
Таблица 1
Формат RMVB
Формат AVI
Формат FLV
…
Размер HEAD
512 Кб
2 Мб
512 Кб
Размер INDX
512 Кб
16 Мб
0 Кб
Как показано в таблице 1, когда формат RMVB взят в качестве примера, то модуль синтаксического анализа отдает команду модулю загрузки из сети на загрузку 512 Кб данных заголовка файла и 512 Кб данных конца файла.
После этого модуль анализа выполняет синтаксический анализ информации о позиции ключевых кадров. Для большинства форматов, содержащих данные с кинофильмами, информация о позиции ключевых кадров будет записана в данных INDX в конце файла. Следовательно, для файла с кинофильмом, включающего в себя данные INDX, модуль анализа файла выполняет анализ ключевых кадров. Так как формат RMVB был взят в качестве примера, синтаксический анализ, в общем случае, включает в себя следующие этапы.
1) На фиг.4 схематично изображена блок-схема, иллюстрирующая структуру файла RMVB. Как показано на фиг.4, информацию описания файла синтаксически анализируют в соответствии с ключевыми словами "RMF", "PROP", "MDPR" и "CONT" (где "RMF" означает, что файл является файлом с реальным масштабом времени, "РРОР" относится к атрибутам файла, "MDPR" относится к потокам данных и "CONT" относится к описанию содержания файла). Информация об описании файла может включать в себя время воспроизведения файла, количество аудио- и видеопотоков, тип кодирования аудио или видео, скорость передачи в битах в секунду и т.п. Более подробная информация, относящаяся к данной теме и раскрытая в соответствующих документах, может быть легко получена специалистами в данной области техники и ее дополнительное описание опущено.
2) Выполняют анализ блока INDX данных в конце файла. Основная информация блока INDX данных состоит из множества индексных записей, и каждая из индексных записей может быть представлена следующей структурой данных:
struct (UINT32 tStart, ptrFilePos, packet;) IndexRecord;
Каждая индексная запись соответствует информации о позиции ключевого кадра. В вышеприведенной структуре данных ptrFilePos соответствует абсолютной позиции ключевого кадра, tStart соответствует времени ключевого кадра и packet соответствует количеству пакетных данных между ключевым кадром и следующим ключевым кадром.
Далее модуль анализа выводит полученный список индексных записей на модуль сегментирования файла. Модуль сегментирования файла сегментирует файл с кинофильмом на блоки файла в соответствии с позицией ключевых кадров, а не сегментирует файл на равные блоки (например, размером 512 Кб), как это происходит в случае обычного программного обеспечения для загрузки. В данном варианте осуществления настоящего изобретения, преимущество сегментирования файла в соответствии с информацией о позиции ключевых кадров описано ниже. А именно, каждый базовый блок может быть воспроизведен независимо. В настоящее время на данном уровне техники существуют множество способов сегментирования файла, описание которых опущено. Но в настоящем изобретении придано особое значение модулю сегментирования файла, который сегментирует файл с кинофильмом в соответствии с позицией ключевых кадров.
Модуль сегментирования файла отправляет информацию о сегментировании файла модулю загрузки из сети и модуль загрузки из сети загружает сегменты данных в соответствии с информацией о сегментировании файла. Модуль загрузки из сети может быть выполнен с возможностью использования трех режимов загрузки, то есть режима соединения равноправных узлов (Р2Р), режима последовательной загрузки и режима загрузки для предварительного просмотра.
В режиме загрузки с использованием Р2Р, сегменты данных, расположенные в разных местах, могут быть одновременно загружены из множества сетевых узлов. Поскольку данные сегментов, расположенные в разных позициях, сегментированы в соответствии с позициями ключевых кадров, декодер видеосигнала может декодировать эти сегменты данных и воспроизводить их независимо от других кадров. То есть сегменты загруженных данных могут быть воспроизведены до полной загрузки файла с кинофильмом, и пользователю нет необходимости тратить много времени для определения, насколько содержание файла с кинофильмом удовлетворяет пожеланиям пользователя.
В режиме последовательной загрузки сегменты данных загружают от начала и до конца в соответствии с временной последовательностью.
В режиме загрузки для предварительного просмотра сначала загружают данные изображения первого кадра для каждого сегмента. На основе проверки опытным путем данные ключевых кадров, а именно первого кадра каждого сегмента данных, составляют примерно только 2% от файла с кинофильмом, поэтому в режиме предварительного просмотра, в котором загружают данные ключевых кадров, можно достичь быстрой загрузки файла с кинофильмом и заранее предварительно просмотреть яркие моменты из данного кинофильма.
Наконец, после загрузки данных ключевых кадров, модуль воспроизведения предварительного просмотра может начать воспроизведение предварительного просмотра. Модуль воспроизведения предварительного просмотра может в начале обеспечить функцию слайдового показа сюжета. Что касается функции слайдового показа сюжета, изображения ключевых кадров загруженного файла с кинофильмом могут быть воспроизведены с некоторым определенным интервалом. Поскольку изображения ключевых кадров равномерно распределены по всему файлу, слайды сюжета позволяют пользователю быстро узнать общее содержание всего кинофильма. Функция слайдового показа сюжета является обычной технологией для специалистов в данной области техники, и ее конкретная реализация не приведена, чтобы не ограничивать область охраны настоящего изобретения. В настоящем изобретении особое значение уделено тому, что загруженные изображения ключевых кадров последовательно воспроизводят с некоторым интервалом времени.
Дополнительно, модуль воспроизведения предварительного просмотра обеспечивает функцию предварительного просмотра интересных сцен и, в то же время, выполняет функцию загрузки. Когда воспроизводят слайды сюжета, который интересен пользователю, пользователь может нажать на кнопку воспроизведения для просмотра интересных сегментов относительно позиции сюжета в файле кинофильмом. В это время модуль воспроизведения предварительного просмотра отправляет третью команду модулю загрузки из сети для указания модулю загрузки из сети загрузить, в первую очередь, данные для воспроизведения. При воспроизведении во время функции загрузки, сегменты данных, которые необходимо воспроизвести, могут быть последовательно загружены начиная с начала файла. После этого модуль воспроизведения предварительного просмотра может полностью воспроизвести кинофильм, используя сегменты данных.
Вышеизложенное описание относится только к предпочтительным вариантам осуществления настоящего изобретения и не ограничивает объем его защиты. Любые модификации, эквивалентные замены или улучшения, сделанные без отклонения от идеи и принципа настоящего изобретения, подпадают под объем охраны настоящего изобретения.