JP2010503257A - データネットワーク上においてデータファイルを伝送する方法及びシステム - Google Patents

データネットワーク上においてデータファイルを伝送する方法及びシステム Download PDF

Info

Publication number
JP2010503257A
JP2010503257A JP2009526253A JP2009526253A JP2010503257A JP 2010503257 A JP2010503257 A JP 2010503257A JP 2009526253 A JP2009526253 A JP 2009526253A JP 2009526253 A JP2009526253 A JP 2009526253A JP 2010503257 A JP2010503257 A JP 2010503257A
Authority
JP
Japan
Prior art keywords
data
file
byte
value
data file
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2009526253A
Other languages
English (en)
Inventor
パーカー,ブルース
ワード ホルダー,ロバート
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 JP2010503257A publication Critical patent/JP2010503257A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • H04N21/8402Generation or processing of descriptive data, e.g. content descriptors involving a version number, e.g. version number of EPG data
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一形態において、本発明は、データネットワーク上における伝送のためにデータファイルを変更する方法を提供する。方法は、オリジナルのデータファイルを受信するステップと、ヘッダファイルを生成するステップとを有し、ヘッダファイルは、オリジナルのデータファイルのバイトを単位とした長さを含む。オリジナルのデータファイル内で少なくとも1つの反復バイトのシーケンスを識別し、反復バイトのシーケンスは、反復バイトのシーケンス内において連続的に反復されるバイト値を有する。反復バイトのシーケンスを、反復マーカー、反復されるバイト値、及び反復されるバイト値が反復バイトのシーケンス内において発生する回数を表す反復頻度値によって置換することにより、変更されたデータファイルを生成する。更に、反復マーカーをヘッダファイルに追加する。本発明は、データネットワーク上でデータファイルをリモート装置に伝送する方法を更に提供する。

Description

本発明は、データネットワーク上においてリモート装置に対してデータファイルを伝送する方法に関する。更に詳しくは、但し、限定を伴うことなしに、本発明は、オーディオデータファイル及び/又はビデオデータファイルをストリーミング(streaming)する方法に関するものである。
電子バイナリファイルは、多くの様々な使用法のための多くの種々のフォーマットにおいて存在する。これらのフォーマットは、画像、音声、テキスト、データ、実行可能ファイル等の保存に適したフォーマットを含む。
電子バイナリオーディオファイル及びビデオファイルは、何種類かの異なるデータフォーマットにおいて入手可能である。これらのデータフォーマットの中のいくつかは、WAV及びAVI等の可逆圧縮(lossless compression)を使用している。非可逆圧縮(lossy compression)を使用するようなその他のデータフォーマットは、MP2、MP3、及びその他のものを含む。
これらのデータフォーマットは、パーソナルコンピュータ、携帯型装置、及びその他のハードウェア等のリモート装置上における再生に適している。インターネット又はその他のネットワーク上においてデータファイルを伝送し、後の時点又は日付においてアクセスし、保存し、又は再生することが可能である。これらのデータフォーマットの中のいくつかは、データファイルの一部をリモート装置上において再生又はアクセスしつつ、データファイルの残りの部分又は少なくとも更なる一部をリモート装置に伝送することを実現する方式において伝送されることが可能である。このような後者の伝送方法をストリーミングと呼んでいる。
従来、オーディオ又はビデオのストリーミングに使用される電子バイナリファイルは、高レベルの非可逆圧縮を使用し、データネットワーク上において伝送されるファイルのサイズを低減させている。この高レベルの非可逆圧縮は、供給されるオーディオ又はビデオの品質の大幅な低下をもたらす。ビデオの場合には、例えば再生画面が小さい携帯型装置上においては、品質の低下は明らかではない。これらの小さな再生画面上において再生するために伝送を必要とするデータ量は相対的に小さい。
したがって、本発明の目的は、バイナリオーディオファイル及びビデオファイルを含むデータファイルをストリーミングするための改良された方法もしくは代替の方法を提供するか、又は上記問題点に対処するための少なくとも有用な選択肢を社会に提供することにある。
一形態において、本発明は、データネットワーク上における伝送のためにデータファイルを変更する方法を有する。この方法は、オリジナルのデータファイルを受信するステップと、ヘッダファイルを生成するステップとを有し、このヘッダファイルは、オリジナルのデータファイルのバイトを単位とした長さを含む。オリジナルのデータファイル内において少なくとも1つの反復バイトのシーケンスを識別する。反復バイトのシーケンスは、反復バイトのシーケンス内において連続的に反復されるバイト値を有する。反復バイトのシーケンスを、反復マーカー、反復されるバイト値、及び、反復されるバイト値が反復バイトのシーケンス内において発生する回数を表す反復頻度値によって置換することにより、変更されたデータファイルを生成する。更に、反復マーカーをヘッダファイルに追加する。
別の形態において、本発明は、データネットワーク上においてデータファイルをリモート装置に伝送する方法を有する。データファイルは、複数の順序付けされたデータセグメントと、ヘッダファイルとを有し、このヘッダファイルは、データファイル内のセグメントの数を表すセグメント頻度値を含む。この方法は、ヘッダファイルをデータネットワーク上においてリモート装置に伝送するステップを有する。第1実行スレッドの要求により、複数の順序付けされたデータセグメントの中の第1データセグメントをデータネットワーク上においてリモート装置に伝送し、且つ、カウンタ値の値を増加させる。これと同時に、第2実行スレッドの要求により、複数の順序付けされたデータセグメントの中の第2データセグメントをデータネットワーク上においてリモート装置に伝送し、且つ、カウンタ値の値を増加させる。第1及び第2実行スレッドの要求により、後続の交互に伝送されるべきデータセグメントをデータネットワーク上においてリモート装置に伝送し、且つ、後続のデータセグメントの全てのもの又はいくつかのものを伝送した後に、カウンタ値の値を増加させる。
本明細書及び本特許請求の範囲の請求項において使用される「〜を有すること(comprising)」という用語は、「〜から少なくとも部分的に構成される」ということを意味している。即ち、「〜を有すること(comprising)」を含む本明細書及び本特許請求の範囲の請求項の記述内容を解釈する際には、(それぞれの記述内容において、この用語によって言及されたもの以外の)特徴も存在することが可能である。「〜を有する(comprise)」及び「〜を含む(comprised)」等の関係する用語も、同様に解釈されたい。
又、本発明は、広義には、個別又は集合的に、本出願の本明細書において参照された又は示された部品、要素、及び特徴と、これらの部品、要素、又は特徴の任意の複数のもののいずれかの組み合わせ又は全ての組み合わせにあると解釈されることが可能であり、且つ、本発明が関係する技術分野において既知の均等物を有する特定の完全体が本明細書において言及されている場合には、そのような既知の均等物も、個別に記述されているかのように本明細書に包含されるものと見なされるべきである。
以下、〔図面の簡単な説明〕の欄に記述された添付図面を参照し、データネットワーク上においてデータファイルを伝送する方法及びシステムの好適な実施形態について説明することとする。
本発明に係る方法が実行される1つの好適なシステムを示すブロック図である。 データファイルを変更する方法を示すフローチャートである。 変更されたデータファイルを伝送する方法を示すフローチャートである。 好適なフォームヘッダファイルを示す図である。 1つの好適なフォームデータ圧縮法を示すフローチャートである。 更なる好適なフォームデータ圧縮法を示すフローチャートである。 別の更なる好適なフォームデータ圧縮法を示すフローチャートである。
図1は、ネットワーク上におけるデータファイルの伝送に適した1つの好適なフォームシステム(form system)100を示している。代表的なデータファイル105は、バイナリオーディオファイル及び/又はビデオファイルであってよい。データファイル105は、WAV、AVI、MP2、MP3、AC3、MP4、H264、Xvid、DivX、WMA、WMV、MOV、VOB、PPT、PPS、DOC、XLS、DOC、ZIP、RAR、PPM等を含む任意のバイナリフォーマットにおけるものであってよい。データファイル105は、通常、演算装置115の一部を形成しているか又は当該演算装置115に少なくともインターフェイスで接続された二次記憶装置110内に保存される。演算装置115は、ダイレクトアクセスメモリ125及びディスプレイ130にインターフェイスで接続されたプロセッサ120を少なくとも含む。演算装置は、例えば、データエントリ装置(図示されてはいない)及び出力装置(図示されてはいない)等のその他のコンポーネントを含むか又はこれらのコンポーネントにインターフェイスで接続されることが可能であることを理解されたい。
後述する内容は、データファイル105を変更し、変更又は出力されたデータファイル135を生成するための1つの手法である。以下、1つ又は複数のデータネットワーク150上における伝送の前に、オリジナルのデータファイル105を変更する手法について説明する。データネットワーク150は、インターネット及び任意のその他の適切なネットワークファイル伝送構造又はネットワークファイル伝送プロセスを含む。出力されたデータファイル135は、データネットワーク150上においてリモート装置160に伝送される。
リモート装置160は、パーソナルコンピュータ、携帯型装置、又は、その画面上でオーディオファイル及び/又はビデオファイルをユーザーに対して表示することが可能であるような任意のその他の適切なハードウェアを含む。リモート装置160は、通常、例えば、ウィンドウズ(登録商標)・メディア・プレーヤー(Windows(登録商標) Media Player)、リアル・プレーヤー(Real Player)、VLC等のビューアー(viewer)コンポーネント165を含むか又はこれにインターフェイスで接続されている。ビューアーコンポーネント165により、リモート装置を操作するユーザーに対してバイナリオーディオデータファイル及びビデオデータファイルを再生することが可能である。
又、リモート装置160は、ストリーミングサーバー170をも含む。或いは、この代わりに、ストリーミングサーバー170は、リモート装置160とは離れた場所に配置されるが、このリモート装置160に関連付けられている。ストリーミングサーバーの動作については、更に詳細に後述することとする。ストリーミングサーバー170により、出力データファイル135の一部又はセグメントを1つ又は複数のデータネットワーク150上において伝送することが可能であり、且つ、ビューアー165によってユーザーに表示するべくストリーミングサーバー170上にキャッシングすることが可能である。或いは、この代わりに、伝送されたデータファイルは、リモート装置160上に保存される。
システム100は、ファイルモディファイア(file modifier)コンポーネント180を更に含む。ファイルモディファイアコンポーネント180については、更に後述する。このファイルモディファイアコンポーネント180は、コンピュータメモリ内に保持されたソフトウェアコンポーネントを含む。
一実施例においては、リモート装置160は、複数の実行スレッド190及びセグメントカウンタ195を含むか、又はこれらに関連付けられている。nの値は、少なくとも2になるものと予想される。各々の実行スレッドは、後述するように、新しいセグメントを処理するべく構成される。
図2は、ファイルモディファイア(即ち、ファイルモディファイアコンポーネント)180がデータファイル105を変更し、出力データファイル135を生成するための好適なフォーム方法(form method)200を示している。このような変更は、データファイルがデータネットワーク150上において伝送されるか又は部分的に伝送される時点において実行可能である。或いは、この代わりに、変更プロセスは、予め実行され、二次記憶装置110内に保存される。二次記憶装置は、ハードドライブ、コンピュータキャッシュ、コンパクトディスク、DVD等を含む。
後述する変更プロセスは、後述する代替方法の1つ又は複数のものとの関連において、又はこれらの代替方法を伴うことなしに、ビデオフォーマット又はオーディオフォーマットに対して適用可能である。ビデオフォーマットと同様に、その他のデータフォーマットも、上記変更プロセス又は当該データフォーマットの特性に固有の変更プロセスと共に動作可能であることを理解されたい。ファイルは、任意のタイプのネットワーク上におけるバイナリ情報の伝送に対応した任意のフォーマットにおけるものであってよい。
プロセス200における第1のステップは、ファイルモディファイア180が、変更プロセスの適用対象であるオリジナルのデータファイル105を受信するか、又は、少なくともこのデータファイル105に対してアクセスするというものである(ステップ205)。
ファイルモディファイア180は、オリジナルのデータファイル105及び当該データファイル105に対して実施された任意の変更を記述するキー情報を含むことになるヘッダファイルを生成する(ステップ210)。適切なヘッダファイルフォーマットの例については、後述する。
バイトを単位としたオリジナルのデータファイルの長さ(ファイル長)をヘッダファイルに追加する(ステップ215)。
データファイル105をスキャンし、オリジナルのデータファイル内に発生していない最大で3つの一意の4バイトのバイトシーケンス又はバイトグループを識別する(ステップ220)。
データファイルがビデオファイルのタイプである場合には(ステップ225)、任意選択により、キーフレームポイントについてビデオファイルをスキャンする。キーフレームとは、ビデオデータファイルの圧縮において別のフレーム内の画像を参照することなしにエンコード処理がなされたフレームである。本出願におけるキーフレームは、イントラフレーム又はIフレームとも呼ばれる。
Iフレームは、しばしば、先行するキーフレームから算出された1つ又は複数のインターフレームによって後続される。Iフレームは、それ自体を除いて、ピクチャを参照することなしにコーディングされたピクチャである。Iフレームをエンコーダによって生成してランダムのアクセスポイントを生成し、デコーダがそのピクチャの場所において最初からデコード処理を適切に開始することができるようにすることが可能である。又、Iフレームは、微分画像の細部(differentiating image details)が有効なデータフレームの生成を妨げている場合にも、生成されることが可能である。Iフレームは、通常、その他のピクチャのタイプよりも、エンコード処理のために多くのビットを必要としている。
キーフレームを表す少なくともいくつかの、好ましくは、全てのバイナリデータを除去し(ステップ230)、且つ、一意の4バイトのバイトシーケンスの中の1つによって当該バイナリデータを置換する。
任意選択により、ビデオファイルをフレームについて更にスキャンする。Bフレームは、代表的なビデオ圧縮設計において見出される3つのピクチャのタイプの中の1つである。3つの主要なピクチャのタイプは、イントラピクチャ(Intra picture)、予測ピクチャ(Predicted picture)、及び双予測ピクチャ(Bi−predictive picture)と呼ばれている。イントラピクチャ、予測ピクチャ、及び双予測ピクチャは、いずれも、当技術分野において周知のビデオ圧縮設計のコンポーネントである。例えば、Iピクチャ、Bピクチャ、もしくはPピクチャ、又はIフレーム、Bフレーム、もしくはPフレーム等の全てのフレーム情報を除去し(ステップ235)、且つ、各々の発生を一意の4バイトのバイトシーケンスの中の別のものによって置換する。
ビデオファイルのタイプ及びその他のファイルのタイプの場合には、全ての反復を除去する(ステップ240)。好適なフォームデータ変換は、ランレングスエンコーディング(run length encoding)である。同一のバイト値が連続的に反復されるデータのシーケンスは、カウント値又は頻度値によって後続されるバイト値の単一の発生によって置換される。これらの反復バイトのシーケンスの少なくとも1つは、オリジナルのデータファイル内において識別される。
オリジナルのデータファイル内において発生しない一意の4バイトのバイトシーケンスの中の別のものを反復マーカーとして選択する。データファイル内に存在している際には、反復マーカーは、ランレングスエンコーディングが適用されたデータ値を意味している。
反復バイトのシーケンスを、反復マーカー、反復されるバイトの値、及び反復頻度値によって置換する。反復頻度値は、反復されるバイト値が反復バイトのシーケンス内において発生する回数を表している。通常、6〜260回にわたって連続的に反復される全ての値を除去し、且つ、6バイトストリングによって置換する。この6バイトストリングは、反復マーカー、反復されるバイト値、及び反復頻度値を含む。
反復マーカーとして機能する一意の4バイトのバイトシーケンスをヘッダファイルに書き込むことにより、ヘッダファイルを更新する。又、データファイルがビデオファイルのタイプである場合には、キーフレームポイント及びフレームをそれぞれ表すバイトシーケンスも、ヘッダファイルに書き込まれる。
ファイルのタイプがビデオファイル又はオーディオファイルのタイプである場合に(ステップ245)、この手法における1つの任意選択のステップは、ファイルをセグメント化するというものである(ステップ250)。ここでは、ファイルを一連の順序付けされたデータセグメントにセグメント化する。セグメントは、任意のサイズであってよいが、通常は、約534,288バイト〜1,572,864バイトである。セグメントは、それぞれ、同一サイズであってよく、最後のセグメントは、サイズが小さい。或いは、この代わりに、セグメントの各々は、サイズが異なっている。
一例においては、ファイルを1メガバイト(長さが1,048,576バイト)の等しいセグメントにセグメント化している。或いは、この代わりに、別の形態においては、1つのキーフレーム、いくつかのキーフレーム、又は1メガバイトのバイトシーケンスの後に出現する最初のキーフレームの前又は後において、ファイルをセグメント化している。キーフレームに基づいてファイルをセグメント化することにより、その他のビデオファイルからその他のセグメントを挿入することが可能である。データファイルを構成しているセグメントの数をヘッダファイル内に挿入することにより、ヘッダファイルを更新する。
別個のデータファイルとして保持された複数の別個のファイルセグメントが結果的に得られるように、データファイルをセグメント化することが可能であることを理解されたい。或いは、この代わりに、データファイルは、単一のデータファイルとして保持される。必要に応じて、データファイル内の異なるオフセットから読み取ることにより、個々のデータセグメントを生成する。
更なる任意選択のステップは、1つ又は複数のデータ変換法をセグメントの中のいくつか又は全部に適用するというものである。これらのデータ変換法の中のいくつかは、1つ又は複数のセグメントのデータ圧縮を含む(ステップ255)。
第1の好適なフォームデータ圧縮法においては、個々のセグメントをブロックに分割しており、各々のブロックは、256バイトを上回ってはいない。データ圧縮法については、図5を参照して更に後述する。これらのブロックは、個々のセグメントのサブシーケンスである。個々のブロックが128を上回る数の一意のバイト値を有する場合には、データ変換をブロックに適用し、ブロック内の一意のバイト値の頻度を、128個以下の一意の値、又は256個の一意の値に増大させる。データ変換は、1つ又は複数の変換データのセット又はマスクを、ブロック内の各々の値に対して複数回にわたって適用するステップを伴う。個々のブロックに対して適用されるべく、最大で65,535個の異なる変換データのセットが利用可能であると想定される。
個別のブロック内において256個の一意の値が実現可能である場合には、関連するパーミュテーション(permutation)をデータファイルに書き戻す。これは、210.5バイトにおいて実現可能である。128個以下の一意のバイトが実現される場合には、このパーミュテーションは、224バイトにおいて書き戻される。
256個の一意の値、又は128個以下の一意の値が実現されない場合には、オーバーレイ又はマスク値をゼロ(0)又はヌル(null)として書き込む。ゼロ又はヌルは、関連するバイナリ情報がデコード処理又は圧縮されたデータの解凍を必要としないことを意味している。
上記の圧縮法は、本発明者らによる「データ圧縮システム及び方法(Data Compression System and Method)」という名称の国際公開第2005/039057号として公開された特許明細書に更に記述されており、この内容は、本特許明細書中で引用されることにより、本特許明細書に包含されている。
或いは、この代わりに、又はこれに加えて、第2の好適なフォームデータ圧縮法を1つ又は複数のセグメントに適用する。この第2のデータ圧縮法については、図6を参照して更に後述する。セグメント全体をスキャンし、且つ、各々のバイト値の発生の回数を保持する。次いで、置換を実行し、この場合には、最も多く反復されたバイト値を0のバイト値によって置換する。次の最も多く反復された値を1のバイト値によって置換し、以下、これを同様に継続し、最後に、最も少なく反復されたバイト値を255のバイト値によって置換する。この結果、セグメントは、最も頻繁な値が相対的に小さなバイト値になるように構造化されることになる。オリジナルのバイト値及び置換値のテーブルは、512バイトを必要とし、且つ、ヘッダファイルに追加される。
或いは、この代わりに、又はこれに加えて、第3の好適なフォームデータ圧縮法を適用する。これについては、図7を参照して更に説明する。この手法は、本発明者らによる「データ圧縮システム及び方法(Data Compression System and Method)」という名称の国際公開第2005/039057号として公開された特許明細書の一変形である。1つのセグメントをバイトシーケンスのグループに分解することが可能である。予め定められた数の一意の値が各々のデータセグメント内において発生する時点まで、単一のデータ変換のセットを複数のセグメントの各々に対して反復的に適用する。
一例においては、ファイルを256バイトのバイトシーケンスに分解し、且つ、0、1、2、3、4、...、255のデータ変換を順番に各々のバイト値に対して適用している。このデータ変換は、前述の第2データ圧縮法と同様の方式において適用される。次いで、バイトシーケンスをスキャンし、且つ、バイト値の一意の数のカウントを実行する。この例においては、162個の一意の値が求められているが(162個の一意の値は、256バイトの全ての可能な構造の約7.9%において発生する)、この値は、変化可能である。162個の一意のバイト値がセグメント内において識別されない場合には、同一のデータ変換を同一のセグメントに対して再度適用し、且つ、このようなプロセスを反復する。162個の一意の値の識別が完了したら、変換マスクを適用した回数を記録する。変換マスクを適用した回数を記録する値は、インデックスファイル又はヘッダファイルに書き込まれることが可能であり、或いは、256個の変換済みのバイト値の開始点又は終了点に包含することも可能である。
この段階で、データシーケンスは、全ての可能なシーケンスサイズの組み合わせの既知のサブセットを含んでいる。このサブセットをバイト値変換として又はインデックス値として記録可能である。162個の一意の値の場合には、インデックスを生成するべく必要とされる値の数は、可能な256個の値の構造の合計数の約7.9%である。
バイトセグメントのサイズは、変化可能である。識別される一意の値の数は、変化可能である。セグメント内において識別された一意の値の数は、設定された数に固定されることも可能であり、その数以下であってもよく、又はその数以上であってもよい。
或いは、この代わりに、又はこれに加えて、前述の方法の任意の組み合わせを使用して変更された又は変更されなかったデータファイルの全体に可逆圧縮法を適用することも可能である(ステップ260)。
更なる追加のステップは、暗号化をファイル全体に適用するというものである(ステップ265)。或いは、この代わりに、個別の暗号化関数を個々のセグメントに適用することも可能であり、この場合には、ビデオファイル又はオーディオファイルが関係しており、且つ、そのファイルは、セグメント化されている。
前述の出力データファイルを生成するためのデータファイルの変更の後に、出力又は変更されたデータファイルをデータネットワーク150上においてリモート装置160に伝送する。図3は、変更されたデータファイルを伝送する好適なフォームプロセス(form process)300を示している。
まず、ヘッダファイルを演算装置115からストリーミングサーバー170に伝送する(ステップ305)。ヘッダファイルは、前述のように、1つ又は複数の4バイト置換コード及び置換された値と、この図3の方法が使用されている場合には、ファイルが分割されたセグメントの数とを含む。又、ヘッダは、各々のセグメントのタイプ、オーバーレイマスキング情報、ストリーミング、閲覧、再生、又は使用開始の前のダウンロードに必要とされるセグメントの数、並びに、使用された圧縮法の任意の追加フォーム及びタイプをも包含することが可能である。
使用される場合には、ストリーミングサーバー170は、リモート装置160がデータネットワーク150上において利用可能である帯域幅又はダウンロード速度を判定する。利用可能な帯域幅をヘッダファイル内の関連情報と比較し、更なるセグメントをデータネットワーク150上において伝送しつつ、リモート装置160上においてセグメントの使用を可能にするためにダウンロードすることが必要なファイルのセグメントの数を判定する。
リモート装置160又はストリーミングサーバー170上においては、複数の個別の実行スレッドが稼働している。後述する方法においては、2つのスレッドをThreadOdd及びThreadEvenと呼んでいる。ThreadOddは、奇数の番号を有するセグメントのダウンロードを処理し、ThreadEvenは、偶数の番号を有するセグメントのダウンロードを処理する。
ThreadOdd及びThreadEvenは、主として、後述する方法において奇数及び偶数のセグメントをダウンロードするべく設計されている。但し、いくつかのケースにおいては、ThreadOddは、偶数の番号を有するセグメントをダウンロードし、且つ、ThreadEvenは、奇数の番号を有するセグメントをダウンロードすることになる。
特定のセグメントがダウンロードを終了した際に、TheadOdd又はThreadEvenである制御スレッドは、次のセグメントのダウンロードを許容する。ThreadOdd及びThreadEvenという両方の実行スレッドは、同時に動作する。この結果、ネットワーク接続部を介してダウンロード可能なデータ量が増大する。
第1データセグメントをリモート装置160に伝送又はダウンロードする(ステップ310)。
セグメントが伝送された後に、セグメントカウンタの値を増加させる(ステップ315)。好適な形態においては、カウンタは、ちょうど1ではなく、順序付けされたデータセグメントのシーケンス内におけるセグメント番号だけ、増加する。カウンタをチェックし、バッファリングが完了して再生が可能である時期を判定する。
セグメントを異なる速度においてダウンロードすることは可能である。カウンタをセグメント番号だけ増加させることにより、例えば、セグメント1、2、3、及び5がビューアーにダウンロード及び送信されることを防止している。カウンタが増加するのに伴って、セグメントを順序どおりにソートする(ステップ320)。
ステップ310及び315は、奇数の番号を有するセグメントをダウンロードするThreadOddを表している。又、偶数の番号を有するセグメントをダウンロードするThreadEvenも同時に稼働している。ThreadEvenは、セグメントをダウンロードし325、且つ、カウンタをセグメント番号だけ増加させている(ステップ330)。
十分な数のセグメントのダウンロードが完了することにより(ステップ335)、十分なバッファが確立される。デコード処理及び/又は暗号解読(ステップ345)、或いは、ユーザーによる閲覧、再生、又は使用のために(ステップ350)、ソートされたダウンロード済みのセグメントをビューアー165に伝達する(ステップ340)。
ストリーミング、再生、閲覧、又は使用が開始されたら、第1データセグメントをメモリのアレイ内に読み込む。メモリ内において、ヘッダファイルが示しているように、ファイルをデコード/暗号解読する。実際には、デコード処理及び暗号解読は、図2を参照しつつ前述したような圧縮及びインデックス付与(indexing)のための変更の逆転である。このプロセスは、各々のセグメントに適用される。ファイルは、好ましくは、エンコード処理がなされた状態又は暗号化された状態において、ストリーミングサーバー170及び/又はリモート装置160に関連付けられた記憶装置内に保存される。これらのファイルがネイティブフォーマット(native format)において存在するのは、ランダムアクセスメモリ内においてのみである。
上記プロセスは、低品質又は低ビットレートのビデオファイル用の追加のステップを包含することが可能である。このステップは、フレームグラビング・ソフトウェア(frame grabbing software)を介したビデオの再生を伴い、この場合には、各々のフレームを、オリジナルのビデオファイルと同一のフレーム/秒のレートにおいてjpgファイルのタイプ又はbmpファイルのタイプに複写する。各々のフレームは、再生のためにビューアーに伝達される前に、画像クリーンアップアルゴリズムに伝達される。
画像クリーンアップアルゴリズムは、いくつかのピクセルに跨って色の広がり(colour spread)を平均化し、且つ、通常は低品質の画像に関連するピクシレーション(pixilation)を除去する。この場合にも、このステップは、ストリーミングサーバー170又はリモート装置160内のメモリ内において実行される。
ストリーミングサーバーは、リモート装置160上におけるソフトウェア駆動型の仮想サーバーである。ローカルのストリーミングサーバー170は、非標準ポートを介して接続されたウェブサーバーである。ポートは、プログラムが読み込まれる際に判定され、且つ、オペレーティングシステム環境内における競合を防止するべく、必要に応じて、プログラムによって調節可能である。ビデオが選択され、且つ、バッファ要件が満足された後に、再生ウィンドウがローカルのストリーミングサーバーに対して要求を行うと、ネイティブフォーマットメディアがローカルのストリーミングサーバーに対して提示される。
コンテンツに対する要求が到来すると、ローカルのストリーミングサーバーは、必要とされているセグメントの全体、このケースにおいては、セグメント1のダウンロードが完了していることを確認するべくチェックする。このセグメントのダウンロードが完了している場合には、このセグメントが、再生のためにビューアー165に供給される。セグメントが供給されたら、ストリーミングスレッドは、次のセグメントが、ダウンロードのための準備が整っており、且つ、供給のために準備された状態にあることをチェックし、次いで、このセグメントをローカルのストリーミングサーバーに供給する。
このような手順は、全てのセグメントがローカルのストリーミングサーバーに供給される時点まで、供給プロセスの全体を通じて継続される。セグメントは、ローカルのストリーミングサーバーへの供給が完了したら、削除可能であるが、この動作は、ローカルの要件に応じて変更可能である。
必要とされているセグメントの供給の準備が整っていないとローカルのストリーミングサーバーが判定した場合には、再生ウィンドウとの間の接続は維持されるが、データは送信されない。このようなイベントは、ユーザーには、再生における休止として現れる。この場合には、十分なメディアの供給プロセスの準備が整う時点まで、バッファリングを実現しつつ、ビューアーがその他のストリーミング供給を受信するように、追加のコンテンツ供給を実施することが可能である。十分なデータのストリーミングの準備が完了したら、再生を再開する。データは、ビューアーが受信可能であるのと同程度に迅速にビューアーに供給されることから、ビューアーがバッファリングするべく選択するデータ量は、ローカルのストリーミングサーバーとは無関係である。ビューアーは、データがその時点において正常に供給されているかのように動作する。
前述のプロセスは、短い初期のバッファリング期間を伴って、DVDに近い品質のビデオを、1メガバイト又は128キロバイトの接続部にて供給する潜在力を有している。このバッファリング期間は、ビデオの初期の期間に必要とされるデータ量に応じて変化する。約92キロバイト/秒においてダウンロードされた映画の開始時点に多数のシーンの変化を伴う150分の映画の場合には、再生が開始される前に、90秒のバッファリング期間が存在する。
図4は、前述のファイルの変更の後の好適なフォームヘッダファイルを示している。好適なフォームヘッダファイル400は、ファイル長の値405を含む。ファイル長の値は、図2のステップ215を参照して前述したように、ヘッダファイルに追加されたオリジナルのデータファイルのバイトを単位とした長さを表している。
キーフレームマーカー410は、キーフレームを識別する3つの一意の4バイトのバイトシーケンスの中の1つである。フレームマーカー415は、例えば、Iピクチャ、Bピクチャ、もしくはPピクチャ、又はIフレーム、Bフレーム、もしくはPフレーム等のフレーム情報を識別する第2の一意の4バイトのバイトシーケンスである。反復マーカー420は、反復マーカーの直後のデータのランレングスエンコーディングを通知する第3の一意の4バイトのバイトシーケンスである。
データファイルがセグメント化されている場合には、セグメントの合計数がセグメント合計425として表される。
データ変換が個別のセグメント又はデータファイルに適用されている場合には、ヘッダファイルは、更なるデータ値を含むことになる。これらのデータ値は、変換データのセットの識別子430を含む。上記のデータ値は、前述の第1データ圧縮法に関係している。この手法においては、識別子430は、データに適用された変換データのセットを一意に識別している。
バイト置換が前述の第2の好適なフォームデータ圧縮法に従って実行されている場合には、ヘッダファイルは、バイト置換テーブル435を含むことになる。バイト置換テーブルは、長さが約512バイトになるものと想定される。これは、最も多く反復されたバイト値、第2の最も多く反復されたバイト値、そして、以下同様に継続し、最も少なく反復されたバイト値までを含むことになる。
第3実行データ圧縮法が適用されている場合には、ヘッダファイルは、データファイルに適用されたデータ変換の数440を更に含むことになる。
図5は、個別のセグメント又はデータファイルに適用される1つの好適なフォームデータ圧縮法を示している。好適なフォーム手法(form technique)500は、まず、オリジナルファイルを受信するか又はこれにアクセスする(ステップ505)。ファイルを個別のバイトグループにセグメント化する(ステップ510)。好ましくは、各々のバイトグループは、256バイトを上回っていない。
各々のセグメント(セグメント「n」)を順番にチェックする(ステップ515)。個別のセグメントをチェックし、一意のバイト値の数を識別する(ステップ520)。
セグメント内に128を上回る数の一意のバイト値が存在し(ステップ525)、且つ、更には、256を下回る数の一意のバイト値が存在する場合には(ステップ530)、変換を適用し、ブロック内の一意のバイト値の頻度を増大させる(ステップ535)。前述のように、適切なデータ変換は、1つ又は複数の変換データのセット又はマスクをブロック内の各々の値に対して複数回にわたって適用するステップを伴う。個別のブロックに適用するべく、最大で65,535個の異なる変換セットが利用可能であると想定される。この結果、変換の後に、出力データファイル内に256個の一意のバイト値が存在する場合には(ステップ540)、最初のビット値を1に設定する(ステップ545)。出力ファイル内の次のビット値も1に設定する。第2ビット値は、出力データファイル内に256個の一意のバイト値が存在することを識別している。次いで、変換識別子を出力データファイルに追加する(ステップ550)。変換識別子は、長さが約2バイトになると予想される。
256個の一意の値が個別のブロック内において実現可能である場合には、関連するパーミュテーションをデータファイルに書き戻すか又は追加する(ステップ555)。このパーミュテーションは、長さが約210.5バイトになると予想される。
合計で212.75バイトが、256バイトのバイトシーケンスを置換すると予想される(ステップ560)。
変換を適用するステップ535を適用した後に、256個の一意のバイト値が存在していない場合には、ステップ565に示されているように、出力データファイルの最初のビット値を0(ゼロ)に設定する。次いで、オリジナルの256バイトをデータファイルに追加する。
一意のバイト値の数を識別するステップ520の後に、128未満の数の一意のバイト値が存在する場合には(ステップ525)、ステップ565に示されているように、出力データファイルの最初のビット値を1に設定する。1の直後のビット値は、その値が0であり、これは、128未満の数の一意の値が存在することを意味している。関連するパーミュテーションをデータファイルに追加するが(ステップ570)、このデータファイルは、長さが約224バイトになると予想される。この場合には、合計で224.25バイトが、256バイトのバイトシーケンスを置換する(ステップ575)。
上記方法の適用の後に、ステップ580に示されているように、関連するバイトのバイトシーケンスを書き出す。次いで、次のセグメントを処理する(ステップ515)。
図6を参照すれば、第2データ圧縮法をセグメントの1つ又は複数のものに適用することが可能である。手法600は、オリジナルのファイルを受信するか又はこれにアクセスする(ステップ605)。セグメント全体をスキャンし、且つ、各々のバイト値の発生の回数を保持する(ステップ610)。ステップ615に示されているように、最も頻繁に発生しているバイト値を0によって置換する。
ステップ620に示されているように、第2の最も頻繁に出現するバイト値を値「1」によって置換する。これは、ステップ625に示されているように、「N」番目の最も頻繁に発生するバイト値が、それぞれの値N−1によって個別に置換されるように、一般的なケースにおいて反復される。
ファイルを新しい値によって置換することにより、新しい出力ファイルを生成する(ステップ630)。
発生順序においてバイトのテーブルを生成し(ステップ635)、且つ、このテーブル又はリストをヘッダファイルに書き込む(ステップ640)。
図7は、図2を参照しつつ前述したような第3の好適なフォームデータ圧縮法を示している。手法700の第1ステップは、オリジナルファイルを受信するか又はこれにアクセスするというものである(ステップ705)。ファイルを256バイトセグメントにセグメント化する(ステップ710)。前述のように、このセグメント化は、実際のものであるか又は仮想的なものである。
次のステップは、モジュロバイトのオフセット値を算出するというものである(ステップ715)。個々のセグメントがNバイトを格納していると仮定すれば、新しいバイト値b1...bnは、次のように算出される。
n=bn+(n−1) modulo 256
ここで、nは、1〜Nの範囲である。
この場合に、N=256であり、第1バイト値には、0が追加され、第2バイト値には、1が追加され、そして、以下同様に継続し、最後に、256番目の値に、255が追加される。新しい値は、modulo 256を使用することによって算出される。これは、新しく算出されたバイト値又はオフセットが255を超過できないことを保証している。
又、これは、様々なビット長にも適用可能である。前述のケースは、256の値を有する8ビット又は1バイトを包含することが可能である。この代わりに、ビット数は、7ビットであってもよく、この場合には、module 128が使用されることになるであろう。別の代替肢は、10ビットであり、この場合には、module 1024が使用されることになるであろう。例えば、180バイト(8ビット)等の更に小さなバイトのセットを使用することも可能であろう。これらの値には、modulo 256が使用されることになるが、nは、1〜180の範囲内のものになるであろう。
バイトシーケンスをスキャンし、且つ、一意のバイト値の数のカウントを実行する。予め定められた数の一意のバイト値が実現されている場合には(ステップ720)、0のビット値をインデックスファイルに書き込む。或いは、この代わりに、0の値をヘッダファイルに書き込む(ステップ725)。
次いで、一意のセグメント値の関連するパーミュテーションをファイルに書き込む(ステップ730)。
予め定められた数の一意の値が実現されず、且つ、Nが256以下である場合には、Nの値をバイト数Nに追加する(ステップ715)。或いは、この代わりに、Nが256を上回っている場合には、1のビット値をインデックスファイルに書き込み、オリジナルのバイト値をファイルに書き込む。或いは、この代わりに、0の値をヘッダファイルに書き込み、変更されたバイト値をファイルに書き込む。
以上、その好適な実施形態を含む本発明について説明した。当業者には明らかであるような変更及び改良も、添付の特許請求の範囲の請求項によって規定された本発明の範囲内に包含されるものと解釈されたい。

Claims (26)

  1. データネットワーク上における伝送のためにデータファイルを変更する方法において、
    オリジナルのデータファイルを受信するステップと、
    ヘッダファイルを生成するステップであって、前記ヘッダファイルは、前記オリジナルのデータファイルのバイトを単位とした長さを含むステップと、
    前記オリジナルのデータファイル内において少なくとも1つの反復バイトのシーケンスを識別するステップであって、前記反復バイトのシーケンスは、前記反復バイトのシーケンス内において連続的に反復されるバイト値を有するステップと、
    前記反復バイトのシーケンスを、反復マーカー、前記反復されるバイト値、及び、前記反復されるバイト値が前記反復バイトのシーケンス内において発生する回数を表す反復頻度値によって置換することにより、変更されたデータファイルを生成するステップと、
    前記反復マーカーを前記ヘッダファイルに追加するステップとを有することを特徴とする方法。
  2. 前記反復マーカーは、前記オリジナルのデータファイル内において発生しない4バイトのシーケンスを有する請求項1記載の方法。
  3. 前記反復頻度値は、バイト値を有する請求項2記載の方法。
  4. 前記反復バイトのシーケンスは、260バイトの最大長を有する請求項3記載の方法。
  5. 前記反復バイトのシーケンスは、6バイトの最小長を有する請求項3記載の方法。
  6. 前記オリジナルのデータファイル内における個々のバイト値の発生の数を表す複数のバイト頻度値を算出するステップと、
    前記オリジナルのデータファイル内のバイト値を、前記バイト頻度値に少なくとも部分的に基づいて選択された置換値によって置換するステップとを更に有する請求項1から5のいずれか一項に記載の方法。
  7. 相対的に大きなバイト頻度値を有するバイトのために相対的に小さな置換値を選択するステップを更に有する請求項6記載の方法。
  8. n番目の最も頻繁に発生するバイト値を値n−1によって置換するステップを更に有する請求項7記載の方法。
  9. 置換されたバイトを前記ヘッダファイルに追加するステップを更に有する請求項6から8のいずれか一項に記載の方法。
  10. 前記オリジナルのデータファイル内における頻度が減少する順序で前記置換されたバイトを前記ヘッダファイルに追加するステップを更に有する請求項9記載の方法。
  11. a)前記オリジナルのデータファイル内における個々のバイトのバイトオフセット値を算出するステップと、
    b)前記バイトオフセット値に少なくとも部分的に基づいて前記オリジナルのデータファイル内のバイトにデータ変換を適用するステップと、
    c)前記データ変換がなされた前記データファイル内の一意のバイト値の数を算出するステップと、
    d)前記算出された数を予め定められた閾値と比較するステップと、
    e)前記算出された数が前記予め定められた閾値未満である場合に、前記のステップa)〜ステップd)を反復するステップとを更に有する請求項1から10のいずれか一項に記載の方法。
  12. 前記データ変換は、bn=bn+(n−1) module xを有する請求項11記載の方法。
  13. x=256である請求項12記載の方法。
  14. nは、1〜256の範囲内である請求項12又は13記載の方法。
  15. データネットワーク上においてデータファイルをリモート装置に伝送する方法であって、前記データファイルは、複数の順序付けされたデータセグメントと、ヘッダファイルとを有し、前記ヘッダファイルは、前記データファイル内における前記セグメントの数を表すセグメント頻度値及び/又は圧縮されたデータの解凍に必要なその他の値を含み、前記方法は、
    前記データネットワーク上において前記ヘッダファイルを前記リモート装置に伝送するステップと、
    第2のデータセグメント又は後続のデータセグメントと同時に、第1実行スレッドの要求により、前記データネットワーク上において前記複数の順序付けされたデータセグメントの中の第1データセグメントを前記リモート装置に伝送するステップと、
    カウンタ値の値を増加させるステップと、
    前記第1のデータセグメント又は更なるデータセグメントと同時に、第2実行スレッドの要求により、前記データネットワーク上において前記複数の順序付けされたデータセグメントの中の第2データセグメントを前記リモート装置に伝送するステップと、
    前記カウンタ値の値を増加させるステップと、
    前記第1及び第2実行スレッドの要求により、同時に、後続の交互に伝送されるべきデータセグメントを前記データネットワーク上において前記リモート装置に伝送するステップと、
    前記後続のデータセグメントの全てのもの又はいくつかのものを伝送した後に、前記カウンタ値の値を増加させるステップとを有することを特徴とする方法。
  16. 前記順序付けされたデータセグメントは、関連付けられた個別の序数値を有する請求項15記載の方法。
  17. 前記カウンタ値は、前記データネットワーク上においてごく最近伝送された前記データセグメントに関連付けられた前記序数値だけ増加する請求項16記載の方法。
  18. 前記ヘッダファイルは、バッファ数を含み、前記バッファ数は、セグメントの閾値数を表す請求項17記載の方法。
  19. 前記データファイルは、ビデオデータファイルを表す請求項18記載の方法。
  20. 前記データネットワーク上において前記ビデオデータファイルの更なるセグメントを伝送しつつ、前記リモート装置上において前記ビデオデータファイルの1つ又は複数のセグメントをユーザーに対して再生するステップを更に有する請求項19記載の方法。
  21. 1つ又は複数のデータ変換を前記データファイル又はその一部に適用するステップを更に有する請求項15記載の方法。
  22. 前記1つ又は複数のデータ変換は、前記セグメントの中の1つ又は複数のものの少なくとも一部分内における一意のバイト値の数を増大させるデータ変換を含む請求項21記載の方法。
  23. 前記1つ又は複数のデータ変換は、データ圧縮法を含む請求項21記載の方法。
  24. 前記1つ又は複数のデータ変換は、暗号化法を含む請求項21記載の方法。
  25. データネットワーク上における伝送のためにデータファイルを変更するべく動作可能なデータ変更システムにおいて、
    前記データファイルを受信し、且つ、ヘッダファイルを生成するべく構成されるファイルモディファイアであって、前記ヘッダファイルは、前記オリジナルのデータファイルのバイトを単位とした長さを含むファイルモディファイアと、
    前記オリジナルのデータファイル内において少なくとも1つの反復バイトのシーケンスを識別するべく構成される反復コンポーネントであって、前記反復バイトのシーケンスは、前記反復バイトのシーケンス内において連続的に反復されるバイト値を有する反復コンポーネントとを備え、
    前記反復コンポーネントは、前記反復バイトのシーケンスを、反復マーカー、前記反復されるバイト値、及び、前記反復されるバイト値が前記反復バイトのシーケンス内において発生する回数を表す反復頻度値によって置換することにより、変更されたデータファイルを生成し、且つ、前記反復マーカーを前記ヘッダファイルに追加するべく更に構成されることを特徴とするデータ変更システム。
  26. データネットワーク上においてデータファイルをリモート装置に伝送するべく動作可能なデータファイル伝送システムであって、前記データファイルは、複数の順序付けされたデータセグメントと、ヘッダファイルとを有し、前記ヘッダファイルは、前記データファイル内における前記セグメントの数を表すセグメント頻度値及び/又は圧縮されたデータの解凍のために必要なその他の値を含み、前記データファイル伝送システムは、
    前記データネットワーク上において前記ヘッダファイルを前記リモート装置に伝送し、
    第2のデータセグメント又は後続のデータセグメントと同時に、第1実行スレッドの要求により、前記データネットワーク上において前記複数の順序付けされたデータセグメントの中の第1データセグメントを前記リモート装置に伝送し、
    カウンタ値の値を増加させ、
    前記第1のデータセグメント又は更なるデータセグメントと同時に、第2実行スレッドの要求により、前記データネットワーク上において前記複数の順序付けされたデータセグメントの中の第2データセグメントを前記リモート装置に伝送し、
    前記カウンタ値の値を増加させ、
    前記第1及び第2実行スレッドの要求により、同時に、前記データネットワーク上において後続の交互に伝送されるべきデータセグメントを前記リモート装置に伝送し、且つ、
    前記後続のデータセグメントの全てのもの又はいくつかのものを伝送した後に、前記カウンタ値の値を増加させるべく構成されることを特徴とするデータファイル伝送システム。
JP2009526253A 2006-09-01 2007-08-31 データネットワーク上においてデータファイルを伝送する方法及びシステム Pending JP2010503257A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82439106P 2006-09-01 2006-09-01
PCT/IB2007/053509 WO2008026186A2 (en) 2006-09-01 2007-08-31 Method and system for transmitting a data file over a data network

Publications (1)

Publication Number Publication Date
JP2010503257A true JP2010503257A (ja) 2010-01-28

Family

ID=39136357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009526253A Pending JP2010503257A (ja) 2006-09-01 2007-08-31 データネットワーク上においてデータファイルを伝送する方法及びシステム

Country Status (7)

Country Link
US (6) US8510459B2 (ja)
EP (1) EP2153527A4 (ja)
JP (1) JP2010503257A (ja)
CN (1) CN101523732A (ja)
AU (1) AU2007290044A1 (ja)
IL (1) IL197216A0 (ja)
WO (1) WO2008026186A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819589A (zh) * 2010-04-02 2010-09-01 中兴通讯股份有限公司 一种控制文件输入输出缓存的方法及装置

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125609A1 (en) * 2008-11-14 2010-05-20 Aaron Joseph Hazen Digital Comic and Sequential Art Multimedia File Format
US8356060B2 (en) * 2009-04-30 2013-01-15 Oracle International Corporation Compression analyzer
US8645337B2 (en) * 2009-04-30 2014-02-04 Oracle International Corporation Storing compression units in relational tables
US8935223B2 (en) * 2009-04-30 2015-01-13 Oracle International Corporation Structure of hierarchical compressed data structure for tabular data
JP5463746B2 (ja) * 2009-06-15 2014-04-09 日本電気株式会社 アーカイブストレージ装置、ストレージシステム、データ格納方法、およびデータ格納プログラム
US8296517B2 (en) 2009-08-19 2012-10-23 Oracle International Corporation Database operation-aware striping technique
CN101917609B (zh) * 2010-08-13 2012-05-30 四川长虹电器股份有限公司 嵌入式流媒体文件格式识别方法
CN102376333B (zh) * 2010-08-18 2014-06-25 Tcl集团股份有限公司 一种多媒体播放终端及其文件播放方法和装置
US8239421B1 (en) * 2010-08-30 2012-08-07 Oracle International Corporation Techniques for compression and processing optimizations by using data transformations
CN102457283B (zh) * 2010-10-28 2015-10-14 阿里巴巴集团控股有限公司 一种数据压缩、解压缩方法及设备
EP3066586B1 (en) 2013-11-08 2021-03-24 Friend For Media Limited Identifying media components
US20150229701A1 (en) * 2014-02-12 2015-08-13 Bank Of America Corporation Sending files with multiple job sessions
CN104079950A (zh) * 2014-07-04 2014-10-01 福建天晴数码有限公司 视频输出处理、视频接收处理的方法、装置和系统
US9779100B2 (en) * 2014-07-14 2017-10-03 Secured2 Corporation Data conversion method
US9779148B2 (en) * 2014-07-14 2017-10-03 Secured2 Corporation Data conversion system
US9779101B2 (en) * 2014-07-14 2017-10-03 Secured2 Corporation Data conversion device
CN104468044A (zh) * 2014-12-05 2015-03-25 北京国双科技有限公司 应用于网络传输中的数据压缩的方法及装置
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
US20200019535A1 (en) * 2015-10-01 2020-01-16 PacByte Solutions Pty Ltd Method and system for preparing data files for transmission over a data network
US10990318B2 (en) * 2015-10-01 2021-04-27 PacByte Solutions Pty Ltd Method and system for receiving a data file
TWI594607B (zh) * 2015-11-27 2017-08-01 鴻海精密工業股份有限公司 動態控制多個視頻下載之系統及方法
CN105337617B (zh) * 2015-12-09 2018-10-26 浙江维融电子科技股份有限公司 一种fsn文件高效压缩方法
CN105898501A (zh) * 2015-12-30 2016-08-24 乐视致新电子科技(天津)有限公司 视频播放方法、视频播放器及电子装置
CN106982165A (zh) * 2016-01-15 2017-07-25 厦门雅迅网络股份有限公司 数据压缩方法及其系统
JP6326451B2 (ja) * 2016-06-08 2018-05-16 株式会社ハーモテック 搬送装置及び吸引装置
CN106791267A (zh) * 2016-12-21 2017-05-31 济南浪潮高新科技投资发展有限公司 一种基于位图压缩的物理信息系统数据压缩传输方法
CN106850785A (zh) * 2017-01-20 2017-06-13 济南浪潮高新科技投资发展有限公司 一种使用滑动窗口缓存的物理信息系统数据压缩传输方法
US10963429B2 (en) 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
US11138152B2 (en) 2017-10-11 2021-10-05 Lognovations Holdings, Llc Method and system for content agnostic file indexing
CN109547574A (zh) * 2019-01-04 2019-03-29 平安科技(深圳)有限公司 一种数据传输方法及相关装置
EP3908937A4 (en) * 2019-01-10 2022-09-28 LogNovations Holdings, LLC METHOD AND SYSTEM FOR INDEXING CONTENT AGNOSTIC FILES
US20200296462A1 (en) 2019-03-11 2020-09-17 Wci One, Llc Media content presentation
CN110266571B (zh) * 2019-06-17 2020-11-03 珠海格力电器股份有限公司 提高can总线数据传输可靠性的方法、装置和计算机设备
US11374946B2 (en) * 2019-07-19 2022-06-28 Palo Alto Networks, Inc. Inline malware detection
US11636208B2 (en) 2019-07-19 2023-04-25 Palo Alto Networks, Inc. Generating models for performing inline malware detection
CN110708363A (zh) * 2019-09-20 2020-01-17 济南浪潮数据技术有限公司 一种文件传输方法、系统、电子设备及存储介质
CN111600961A (zh) * 2020-05-22 2020-08-28 山东超越数控电子股份有限公司 一种通过can口传输位图文件的方法、系统、设备及介质
CN115834504A (zh) * 2022-11-04 2023-03-21 电子科技大学 一种基于axi总线的数据压缩/解压缩方法及装置
CN116257184B (zh) * 2023-02-14 2024-01-26 中国人民解放军总医院 一种应用于医学影像系统的数据存储方法以及存储系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225408B2 (en) * 1997-11-06 2012-07-17 Finjan, Inc. Method and system for adaptive rule-based content scanners
JPH11161505A (ja) 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd メディア送出装置
US6085251A (en) * 1998-04-02 2000-07-04 The United States Of America As Represented By The Secretary Of The Air Force Implementing a parallel file transfer protocol
US6735634B1 (en) * 1999-06-10 2004-05-11 Blue Coat Systems Method for real time protocol media recording
US7159030B1 (en) * 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
EP1204249A4 (en) * 2000-06-23 2007-05-16 Mitsubishi Electric Corp PACKET RETRANSMISSION METHOD AND SYSTEM
AU7606301A (en) * 2000-09-29 2002-04-11 International Business Machines Corporation Context based view design to support client side multi-threading
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
AU2002236435A1 (en) 2000-10-26 2002-05-21 Prismedia Networks, Inc. Method and apparatus for real-time parallel delivery of segments of a large payload file
US6850235B2 (en) * 2000-12-27 2005-02-01 Fly Over Technologies Inc. Efficient image parcel texture rendering with T-junction crack elimination
US6877039B2 (en) * 2001-04-25 2005-04-05 Fujitsu Limited Simplified pipeline writes over a network
WO2003045030A1 (de) 2001-11-23 2003-05-30 Ibrahim Evsan Übertragen und abspielen von mediadaten
US7257633B2 (en) * 2003-03-03 2007-08-14 Sun Microsystems, Inc. Dynamic allocation of a pool of threads
US7941554B2 (en) * 2003-08-01 2011-05-10 Microsoft Corporation Sparse caching for streaming media
KR20060106835A (ko) * 2003-10-17 2006-10-12 팩바이트 소프트웨어 피티와이 리미티드 데이터 압축 시스템 및 방법
US8218439B2 (en) * 2004-11-24 2012-07-10 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive buffering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819589A (zh) * 2010-04-02 2010-09-01 中兴通讯股份有限公司 一种控制文件输入输出缓存的方法及装置

Also Published As

Publication number Publication date
IL197216A0 (en) 2009-12-24
CN101523732A (zh) 2009-09-02
AU2007290044A1 (en) 2008-03-06
US20090319536A1 (en) 2009-12-24
US20190222679A1 (en) 2019-07-18
WO2008026186A3 (en) 2008-05-15
US20160344850A1 (en) 2016-11-24
EP2153527A2 (en) 2010-02-17
WO2008026186A2 (en) 2008-03-06
EP2153527A4 (en) 2010-09-08
US8510459B2 (en) 2013-08-13
US20130297751A1 (en) 2013-11-07
US20180063291A1 (en) 2018-03-01
US20200153942A1 (en) 2020-05-14

Similar Documents

Publication Publication Date Title
US20200153942A1 (en) Method and system for transmitting a data file over a data network
JP5384664B2 (ja) リアルタイム又はほぼリアルタイムのストリーミング
JP3877759B2 (ja) バッファメモリを有するテレビジョン受信機
JP5523513B2 (ja) 複数のデジタル権利管理のためのコンテンツ配信
US8401188B1 (en) System and method for partial encryption of frame-based electronic content
US8660181B2 (en) Method of compressing video data and a media player for implementing the method
US7590294B2 (en) Image compression apparatus and method, and program and recording medium
US7801326B2 (en) Digital watermark and film mark
US20110170687A1 (en) Content decoding apparatus, content decoding method and integrated circuit
JP2009531976A (ja) セットアソシアティブキャッシュマッピング技術に基づく高速データ圧縮
EA032768B1 (ru) Передача данных восстановления в многоуровневой иерархии качества сигнала
CN111225171B (zh) 一种视频录制方法、装置、终端设备及计算机存储介质
US7230560B2 (en) Image compression and decompression
EP3958576A1 (en) Methods and systems for accessing stored content
RU2265879C2 (ru) Устройство и способ для извлечения данных из буфера и загрузки их в буфер
US20160360265A1 (en) Movie package file format to persist hls onto disk
JP2006074391A (ja) ファイル記録方法および記録装置
US20130198454A1 (en) Cache device for caching
US9070403B2 (en) Processing of scalable compressed video data formats for nonlinear video editing systems
JP4294009B2 (ja) 映像情報記録再生方法及び映像情報記録再生装置
JP2004109177A (ja) コンテンツデータ記録媒体、コンテンツデータ復号装置、コンテンツデータ暗号化装置、コンテンツデータ復号方法及びコンテンツデータ暗号化方法
WO2023026065A1 (en) Methods of encrypting a multimedia file, methods of decrypting an encrypted multimedia file; computer program products and apparatus
CN114615549A (zh) 流媒体seek方法、客户端、存储介质和移动设备
JP2008278331A (ja) 記録装置及び記録方法
JP2005534135A (ja) デジタルデータ処理のための方法および装置