送信装置、送信方法
【課題】 外部の装置に格納されているコンテナ形式のリソースの部分データを、部分データに適した圧縮形式で取得する為の技術を提供すること。
【解決手段】 マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを受信装置120から受信する。マルチメディアデータから第1の記述により規定されている部分を部分データとして抽出する。第2の記述により規定されている方式に対応する係数を取得する。取得した係数に応じた値が閾値よりも大きい場合、部分データを圧縮して得られる圧縮データを受信装置120に対して送信し、該値が閾値よりも小さい場合は、部分データを受信装置120に対して送信する。
【解決手段】 マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを受信装置120から受信する。マルチメディアデータから第1の記述により規定されている部分を部分データとして抽出する。第2の記述により規定されている方式に対応する係数を取得する。取得した係数に応じた値が閾値よりも大きい場合、部分データを圧縮して得られる圧縮データを受信装置120に対して送信し、該値が閾値よりも小さい場合は、部分データを受信装置120に対して送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチメディアデータの送信技術に関するものである。
【背景技術】
【0002】
従来、IETFで公開されているRFC3986の仕様では、ネットワーク上のファイルなどのリソースを識別するためのURIという記述方法が定義されている。この仕様に従うと、URIの利用者は、URIの一部にフラグメント識別子とよばれる記述を付加することによって、主リソースのデータの一部など副次的リソースを表現することができる。
【0003】
さらに、W3Cでは、フラグメント識別子を使用して、動画などのマルチメディアデータを時間・座標・トラック種別(画像、音声、字幕など)で分割したデータを表現するメディアフラグメントURIの仕様を策定中である。
【0004】
この仕様により、特許文献1で記載されているような動画の再生端末装置が、動画配信装置から動画を取得する際に、フラグメント識別子を含むURIを使用して、動画の一部を取得対象として指定することができる。
【0005】
また、取得対象のリソースがWebサーバ上にあった場合、通信プロトコルとしてRFC2068で仕様が公開されているHTTP/1.1が使われることが多い。HTTP/1.1では、HTTP圧縮エンコーディング方式が定義されており、圧縮効果のあるリソースを圧縮してデータサイズを小さくし、ネットワーク負荷を抑制することができる。なお、HTTP圧縮エンコーディング形式では、deflate, compress, gzipなどの圧縮方式を使用することが仕様で定義されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−204001号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
動画データを保持するWebサーバと、動画データを利用するネットワーク端末と、で構成されるWebシステムで、端末側で字幕トラックなど動画の一部のデータだけを利用する場合がある。
【0008】
例えば、Webサーバ上の複数の動画のうち、字幕に特定のキーワードが含まれる動画を端末側で選択、もしくは選択対象から除外したり、各動画の字幕の最初の部分を見出しとして利用者に提示したりする用途が考えられる。
【0009】
これらの用途を実現する簡単な方式として、端末がWebサーバから全動画データを取得したあと、各動画データの形式に対応したスプリッタと呼ばれるアプリケーションで字幕トラックなど必要な部分を分離する方法が考えられる。
【0010】
しかしながら、端末が小型機器である場合など、動画データ全体を保存するためのストレージ容量や、スプリッタを複数動作させる演算能力等のリソースが少ない場合に、上記用途を実現する際の処理速度が遅くなるという問題がある。
【0011】
一方、Webサーバは、端末に比べてリソースに余裕がある場合が多いため、端末が動画の部分データをWebサーバに要求し、Webサーバ側でデータを分割する方式を採用すれば、上記のような処理速度の問題を解決することができる。この方式を実施する場合、端末が、必要なデータの範囲をメディアフラグメントURIのような記述方法でWebサーバに通知し、Webサーバから該当する部分データを取得する処理フローになる。この処理フローでは、端末から要求された部分データは、分割前の動画データと同じメディアタイプのデータとしてWebサーバから送信される。
【0012】
一般に、動画データはすでに圧縮された形式となっているため、送信時の圧縮効果は少なく、動画データのメディアタイプをもつデータは、HTTP圧縮なしで送信される。ところが、MPEG−4ファイル形式など多くの動画データは、複数のトラックから構成されるコンテナ形式となっており、トラック種別で分割した場合、圧縮効果がある部分データとなる場合がある。
【0013】
それにも関わらず、部分データをWebサーバから送信する場合、圧縮効果があるにも関わらず無圧縮で送信してしまうため、ネットワーク負荷を削減できないという問題があった。
【0014】
本発明は以上の問題に鑑みてなされたものであり、外部の装置に格納されているコンテナ形式のリソースの部分データを、部分データに適した圧縮形式で取得する為の技術を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明の目的を達成するために、例えば、本発明の送信装置は以下の構成を備える。即ち、外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段と、前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する手段と、前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する手段と、前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得手段と、前記取得手段が取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信手段とを備えることを特徴とする。
【発明の効果】
【0016】
本発明の構成によれば、外部の装置に格納されているコンテナ形式のリソースの部分データを、部分データに適した圧縮形式で取得することができる。
【図面の簡単な説明】
【0017】
【図1】システムの機能構成例を示すブロック図。
【図2】データ受信装置120及びデータ送信装置100が行う処理のフローチャート。
【図3】コーデックの種別と圧縮方式との対応関係を示す図。
【図4】URIをW3CのメディアフラグメントURI形式で記述した4つの例を示す図。
【図5】要求メッセージ、応答メッセージの構成例を示す図。
【図6】分割方式と係数との対応関係を示す図。
【図7】コーデックの種別と優先圧縮方式とHTTP標準の圧縮方式との対応関係を示す図。
【図8】要求メッセージ、応答メッセージの構成例を示す図。
【図9】システムの機能構成例を示すブロック図。
【図10】データ受信装置120及びデータ送信装置100が行う処理のフローチャート。
【図11】圧縮レベル対応表の例を示す図。
【発明を実施するための形態】
【0018】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
【0019】
[第1の実施形態]
先ず、本実施形態に係る送信装置を含むシステムについて、図1のブロック図を用いて説明する。データ送信装置100及びデータ受信装置120はLANやインターネット等のネットワークに接続されており、このネットワークを介して互いにデータ通信が可能な構成となっている。更にデータ送信装置100には、マルチメディアデータの一例としての動画像データ131を保持するデータ記憶装置130が接続されている。なお、図1ではデータ記憶装置130はデータ送信装置100とは別個の装置としているが、データ送信装置100と一体化させても良い。また、本実施形態ではマルチメディアデータの一例として動画像データ131を用いるが、音声データなど、他のデータをマルチメディアデータとして扱っても良い。
【0020】
次に、データ送信装置100について説明する。CPU110は、データ送信装置100全体の動作制御を行う。メモリ111は、CPU110が各種の処理を実行する際に用いるワークエリアなど、様々なエリアを適宜提供することができるものである。
【0021】
図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部は、ハードウェアで構成しても良いし、ソフトウェア(コンピュータプログラム)で構成しても良い。ソフトウェアで構成する場合、これらのソフトウェアは、データ送信装置100内の不図示のメモリ内に格納され、CPU110はこれらのソフトウェアを適宜メモリ111に読み出して実行する。なお、図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部の動作については、図2のフローチャートを用いて説明する。
【0022】
データ受信装置120及びデータ送信装置100が行う処理について、図2のフローチャートを用いて説明する。なお、以下の説明では、図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部を動作の主体としているが、これら各部をソフトウェアで構成する場合はこのソフトウェアはCPU110により実行される。然るにこの場合、主体はCPU110となる。もちろん、これら各部をハードウェアで構成する場合は、これら各部を主体としても良い。
【0023】
ステップS201ではデータ受信装置120は、動画像データ131から部分的なデータ(部分データ)の取得要求を示す要求メッセージを作成し、上記のネットワークを介してデータ送信装置100に対して送信する。例えば、データ受信装置120側の表示画面上にWebブラウザを表示し、このWebブラウザ上にこの部分データのURIを入力して送信指示を入力する。
【0024】
ここで、部分データのURIをW3CのメディアフラグメントURI形式で記述した4つの例を図4に示す。何れのURIも、「www.example.com」上にある動画像(ファイル名「example.mp4」)から抽出する部分を規定する第1の記述、この部分を抽出する方式を規定する第2の記述、を含む。
【0025】
URI401は、この動画像において、再生開始時刻を0秒としたときに再生時刻10秒から20秒の間の部分を抽出対象として規定すると共に、この部分を動画像から抽出する方式としてtemporal分割方式を使用することを規定する。
【0026】
URI402は、動画像において(x、y)=(50,80)を起点とし幅320画素、高さ240画素のサイズの領域を抽出対象として規定すると共に、この領域を動画像から抽出する方式としてspatial分割方式を使用することを規定するものである。
【0027】
URI403は、動画像において字幕トラック部分を抽出対象として規定すると共に、この字幕トラック部分を動画像から抽出する方式としてtrack分割方式を使用することを規定する。
【0028】
URI404は、動画像において再生開始時刻を0秒としたときに再生時刻10秒から20秒の間の部分を抽出対象として規定すると共に、この部分を動画像から抽出する方式としてtemporal分割方式及びtrack分割方式を使用することを規定する。
【0029】
ここで、URI403で表されるメディアフラグメントURIを、HTTPプロトコルで要求する場合の、要求メッセージの構成例を図5(a)に示す。この要求メッセージでは、「www.example.com」上にある動画像(ファイル名「example.mp4」)において字幕トラックの部分がHTTP 1.1のGETメソッドで要求されていることが記述されている。また、この要求メッセージには、deflate方式で圧縮されたデータの受信が可能であることが記述されている。
【0030】
図2に戻って、ステップS202では要求メッセージ受付部101は、データ受信装置120(外部装置)から送信された要求メッセージを受信する。ステップS203ではデータ分割方式取得部102は、ステップS202で取得した要求メッセージ中に記述されているデータの分割方式を参照する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、HTTPのRangeヘッダの値に”track=subtitle”という記述がある。そのため、データ分割方式取得部102は、この記述を参照し、メディアフラグメントURIの仕様により、データの分割方式は”track”であると判断する。
【0031】
ステップS204ではデータ分割部103は、ステップS202で取得した要求メッセージ中に記述されているマルチメディアデータのファイル名を参照し、このファイル名を有するマルチメディアデータをデータ記憶装置130から読み出す。
【0032】
例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、マルチメディアデータのファイル名として「example.mp4」が記されているため、このファイル名を有するマルチメディアデータをデータ記憶装置130から読み出す。以下では、ファイル名が「example.mp4」であるマルチメディアデータが動画像データ131であるものとして説明する。
【0033】
次にデータ分割部103は、要求メッセージ中に抽出対象として規定されている部分を、この読み出した動画像データ131から、部分データとして抽出(分割)する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、ステップS203では分割方式が”track”であると判断するので、動画像データ131から字幕トラック部分を部分データとして抽出する。
【0034】
なお、動画像データ131から部分データを抽出(分割)する技術は、スプリッタとよばれるプログラム等、各動画形式の一般的な動画デコーダに含まれる機能ですでに実現されているため、これに係る詳細な説明は省略する。
【0035】
ステップS205では圧縮有効性判断部104は、ステップS204で抽出した部分データが圧縮効果のある分割方式により得られたものであるのか否か(圧縮の有効性があるか否か)を判断するための指標となる値としてデータ分割方式の圧縮有効度を求める。
【0036】
本実施形態では、圧縮有効性判断部104は、図6に示す如く、分割方式毎に、該分割方式により抽出されるデータに対する圧縮の有効度を示す係数が登録されたテーブルを保持している。
【0037】
図6において欄601には、temporal、spatial、track等の分割方式名が列挙されている。欄602には、欄601に列挙されたそれぞれの分割方式に対応する係数の値が列挙されている。例えば、分割方式「temporal」に対応する係数の値は「0」となっている。
【0038】
然るにステップS205では圧縮有効性判断部104は、ステップS203で参照した全て(2つ以上)の分割方式について、対応する係数を図6のテーブルから取得する。その後、取得したそれぞれの係数と、各分割方式の使用有無を表すブール値の積と、の総和(Σ)を上記のデータ分割方式の圧縮有効度として計算する。ここで、ブール値は、使用していたら1、使用していなかったら0とする。例えば、図4のURI404がメディアフラグメントURIとして記述されていた場合、以下の計算式により、データ分割方式の圧縮有効度は1となる。
データ分割方式の圧縮有効度
=Σ((分割方式の係数)×(分割方式の使用有無を表すブール値))
=(temporal分割方式の係数)×(temporal分割方式の使用有無を表すブール値)
+(spatial分割方式の係数)×(spatial分割方式の使用有無を表すブール値)
+(track分割方式の係数)×(track分割方式の使用有無を表すブール値)
=0×1+0×0+1×1=1
【0039】
そしてステップS206では圧縮有効性判断部104は、ステップS205で求めたデータ分割方式の圧縮有効度が閾値よりも大きいか否かを判断する。ここでは閾値=0としている。そしてこの判断の結果、ステップS205で求めたデータ分割方式の圧縮有効度が閾値よりも大きい場合、ステップS204で抽出した部分データが、圧縮効果のある分割方式により得られたものであると判断し、処理をステップS207に進める。一方、ステップS205で求めたデータ分割方式の圧縮有効度が閾値以下の場合、ステップS204で抽出した部分データが、圧縮効果がない分割方式により得られたものであると判断し、処理をステップS212に進める。
【0040】
ステップS207ではコーデック種別取得部105は、ステップS204で抽出した部分データのコーデックの種別を取得する。本実施形態では、動画像データ131に含まれるFourCCとよばれるコーデックの識別子を参照して、部分データのコーデックの種別を判断するが、動画像データ131の形式によっては、他の方法で判断してもよい。
【0041】
例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、この要求メッセージには、動画像データ131であるexample.mp4内で字幕トラック部分のFourCC識別子が”tx3g”と記述されている。そのため、コーデック種別取得部105は、この部分を参照し、字幕トラック部分のコーデック種別が、3GPP Timed Text形式であると判断する。
【0042】
ステップS208では圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式を決定する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、圧縮方式選択部106は、この要求メッセージのHTTPヘッダであるAccept-Encodingの値(第3の記述)を参照する。そして圧縮方式選択部106は、データ受信装置120はdeflate圧縮方式に対応可能であると判断する。
【0043】
なお、要求メッセージ内にデータ受信装置120が対応可能な圧縮方式が記されていれば、処理はステップS209を介してステップS210に進み、記されていなければ、処理はステップS209を介してステップS212に進む。
【0044】
ステップS210で圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式のうち、ステップS207で取得したコーデックの種別(識別子)に適した圧縮方式を選択する。圧縮方式選択部106は、図3に示す如く、コーデックの種別毎に、それに適した圧縮方式が登録されたテーブルを保持している。なお、図3では、コーデック種別の値として前述のFourCC識別子、圧縮方式の値として、HTTPプロトコルのAccept-Encodingで指定可能なdeflate, gzip, identity(無圧縮)を使用している。
【0045】
図3において欄301には様々なコーデックの種別(識別子)が登録されており、欄302には、それぞれのコーデックの種別に適した圧縮方式が登録されている。例えば、図3のテーブルによれば、コーデックの種別が「tx3g」であれば、それに適した圧縮方式(予め設定された)は「deflate」若しくは「gzip」となる。然るに圧縮方式選択部106は、図3のテーブルを参照し、ステップS207で取得したコーデックの種別に対応する圧縮方式のうち、データ受信装置120が対応可能な圧縮方式を選択する。即ち、ステップS207で取得したコーデックの種別に対応する圧縮方式と、データ受信装置120が対応可能な圧縮方式と、で共通の圧縮方式を選択する。
【0046】
例えばステップS202で図5(a)の要求メッセージを受信した場合、字幕トラック部分のコーデックの種別が”tx3g”であるので、圧縮方式選択部106は図3のテーブルより”tx3g”に対応する圧縮方式deflate、gzipを選択する。次に圧縮方式選択部106は、データ受信装置120がdeflate方式に対応していることから、選択した圧縮方式「deflate」、「gzip」のうち圧縮方式「deflate」を送信時の圧縮方式として選択する。
【0047】
ステップS211で圧縮実行部107は、ステップS210で送信時の圧縮方式として選択した圧縮方式に従って、ステップS204で抽出した部分データを圧縮し、圧縮データを生成する。
【0048】
ステップS212では応答メッセージ生成部108は、応答メッセージを生成する。ステップS211からステップS212に処理が進んだ場合、ステップS212では、図5(b)に示す如く、ステップS211で生成した圧縮データを含む、HTTPプロトコル用の応答メッセージを生成する。
【0049】
ここで、Content-Range-Mappingヘッダは、メディアフラグメントURIの仕様で提案されているヘッダであり、応答メッセージに含まれるデータが、track分割方式で分割された動画像データ131の一部であることを示す。また、Content-Encodingヘッダは、HTTP圧縮がdeflate方式で行われたことを示す。また、Content-Typeヘッダは、分割前の動画像データ131のメディアタイプであるvideo/mp4が記述されている。
【0050】
一方、ステップS206若しくはステップS209からステップS212に処理が進んだ場合、ステップS212では、ステップS204で抽出した部分データを含む応答メッセージを生成する。
【0051】
ここで、部分データのメディアタイプは、動画像データ131と同じとは限らないため、あらかじめ送信側と受信側で、どのメディアタイプを使用するかを制限しておく方法や、他のヘッダ情報で通知する方法などが考えられる。
【0052】
ステップS213では応答メッセージ送信部109は、ステップS212で生成した応答メッセージをデータ受信装置120に対して送信する。ステップS214ではデータ受信装置120は、データ送信装置100から送信された応答メッセージを受信する。
【0053】
そしてステップS215ではデータ受信装置120は、この受信した応答メッセージ中の部分データが圧縮されているか否かを判断する。この判断の結果、部分データが圧縮されている場合、処理はステップS216に進み、圧縮されていない場合、処理はステップS217に進む。
【0054】
ステップS216ではデータ受信装置120は、圧縮されている部分データを伸張する。ステップS217ではデータ受信装置120は、応答メッセージ中に含まれている部分データ若しくはステップS216で伸張した部分データを適当なメモリに格納したり、適当な表示装置上に表示したりすることで、データ送信装置100に要求した情報を得る。
【0055】
以上の説明により、本実施形態によれば、Webサーバ等の装置上にある動画像データ等のコンテナ形式のリソースの部分データを取得する場合、部分データに適した圧縮形式で取得することができる。
【0056】
特に、部分データが、動画像データにおける字幕トラック部分の形式であるSRT形式や3GPP Timed Text形式などテキストで記述されていた場合、圧縮効果が大きくなる。これにより、ネットワークで送信するデータ量が小さくなるため、ネットワークトラフィックを抑制することができる。
【0057】
[第2の実施形態]
第1の実施形態では、HTTPで定義された圧縮送信方式を用いた例について説明したが、本実施形態では、W3C EXI形式、ISO Fast Infoset形式などのバイナリXML形式に対応していた場合について説明する。なお、本実施形態においても、システム全体の構成については第1の実施形態と同じ(図1)である。以下では、第1の実施形態との相違点のみについて説明する。
【0058】
バイナリXML形式は、XML形式のデータを圧縮する技術で、この形式に対応したXMLパーサがあった場合、圧縮したまま解析することができる。そのため、図2のステップS215、S216のデータ伸長に係る処理が不要となる。これにより、データ受信装置120側のデータ伸長時の計算時間が減り、データ取得の処理全体が高速化する効果がある。
【0059】
なお、本実施形態では更に、図2のフローチャートにおいて、ステップS208、S210で説明した圧縮方式の選択に係る処理が第1の実施形態と異なる。
【0060】
ステップS208では圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式を、第1の実施形態と同様に、要求メッセージのHTTPヘッダであるAccept-Encodingの値を参照して決定する。
【0061】
ここで、データ受信装置120がEXI, Fast Infoset形式の圧縮に対応している場合に、要求メッセージ受付部101がHTTPプロトコルで受信した要求メッセージの一例を図8(a)に示す。
【0062】
図8(a)では、Accept-Encoding値として、exi, finf, deflateが記述されている。この記述は、データ受信装置120が、W3C EXI, ISO Fast Infoset, deflate方式に対応していることを示している。
【0063】
ステップS210で圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式のうち、ステップS207で取得したコーデックの種別(識別子)に適した圧縮方式を選択する。圧縮方式選択部106は、図7に示す如く、コーデックの種別毎に、それに適した圧縮方式(優先圧縮方式)とHTTP標準の圧縮方式と、が登録されたテーブルを保持している。
【0064】
なお、図7では、コーデック種別の値として前述のFourCC識別子、通常圧縮方式の値として、deflate, gzip, identity(無圧縮)を使用している他、優先圧縮方式として、exi(W3C EXI形式)が定義されている。
【0065】
図7において欄701には様々なコーデックの種別(識別子)が登録されており、欄702にはそれぞれのコーデックの種別に適した圧縮方式が登録されており、欄703にはそれぞれのコーデックの種別に対応するHTTP標準の圧縮方式が登録されている。例えば、図7のテーブルによれば、コーデックの種別が「tx3g」であれば、それに適した圧縮方式は「exi」となり、HTTP標準の圧縮方式は「deflate」、「gzip」となる。然るに圧縮方式選択部106は、図7のテーブルを参照し、先ず、ステップS207で取得したコーデックの種別に対応する優先圧縮方式を選択する。そして、選択した優先圧縮方式がデータ受信装置120が対応可能な圧縮方式であれば、この優先圧縮方式を送信時の圧縮方式として選択する。一方、対応可能な圧縮方式でなければ、ステップS207で取得したコーデックの種別に対応する通常圧縮方式を、送信時の圧縮方式として選択する。
【0066】
例えばステップS202で図5(a)に示す要求メッセージを受信した場合、字幕トラック部分のコーデックの種別が”tx3g”であることから、圧縮方式選択部106は図7のテーブルより先ず、”tx3g”に対応する圧縮方式「exi」を選択する。次に圧縮方式選択部106は、データ受信装置120がexi方式に対応していることから、選択した圧縮方式「exi」を送信時の圧縮方式として選択する。この場合に、応答メッセージ生成部108により生成される応答メッセージの構成例を図8(b)に示す。
【0067】
ここで、Content-Range-Mappingヘッダは、メディアフラグメントURIの仕様で提案されているヘッダであり、応答メッセージに含まれるデータが、track分割方式で分割された動画像データ131の一部であることを示す。
【0068】
また、X-Content-Encodingヘッダは、HTTP圧縮がexi方式で行われたことを示す。通常のHTTP圧縮では、exi方式を記述できないため、HTTPのContent-Encodingヘッダを拡張したヘッダとして記述している。
【0069】
[第3の実施形態]
第1の実施形態では、分割したデータを圧縮するかどうかの判断を、圧縮効果がある分割方式(第1の実施形態では、track分割方式)の使用の有無から判断した。本実施形態では、図4のURI404のように、複数の分割方式が指定された場合に、圧縮効果のある分割方式の使用の有無だけでなく、圧縮対象となるデータの範囲(圧縮影響範囲)と合わせて、圧縮するかどうかを判断することを特徴とする。これにより、分割したデータのサイズが小さく、圧縮による送信データのサイズ縮小の効果が少ない場合はデータ圧縮せず、送信側・受信側のデータ圧縮・伸長処理によるCPU負荷や送信時間の遅延を低減する効果を得る。
【0070】
先ず、本実施形態に係る送信装置を含むシステムの機能構成例について、図9のブロック図を用いて説明する。図9の100から131については、図1と同じであるため説明を省略する。本実施形態では、圧縮影響範囲を取得する圧縮影響範囲取得部901が追加されている点が図1と異なる。
【0071】
図10は、本実施形態に係る送信装置が行う処理のフローチャートである。ステップS201〜S204、ステップS207〜S217の処理については、図2と同じであるため説明を省略する。
【0072】
データ分割部103がステップS204において部分データを生成した後、ステップS1001では、圧縮影響範囲取得部901が、圧縮影響範囲の値を算出する。なお、本実施形態では、圧縮影響範囲として、分割後のデータサイズの予測値を使用する。分割後のデータサイズは、分割前のデータサイズと各分割形式によるサイズ縮小率の総積(Π)から以下の計算式で求める。
【0073】
圧縮影響範囲=(分割前のデータサイズ)×Π(各分割方式によるデータサイズ縮小率)
=(分割前のデータサイズ)×(temporal分割方式によるデータサイズ縮小率)×(spatial分割方式によるデータサイズ縮小率)×(track分割方式によるデータサイズ縮小率)
【0074】
また、本実施形態では、各分割方式による縮小率は、以下の計算式で求める。
【0075】
temporal分割方式によるデータサイズ縮小率=(分割後の再生時間)÷(分割前の再生時間)
spatial分割方式によるデータサイズ縮小率=(分割後の画素数)÷(分割前の画素数)
track分割方式によるデータサイズ縮小率=(分割後のトラック数)÷(分割前のトラック数)
【0076】
ここで、分割前のデータ(example.mp4)のデータサイズが100MB、再生時間が1800秒、トラック数が3個、画素数が640×360ピクセルだったとする。この場合、図4のURI404に記述されるメディアフラグメントURIが指定された時の圧縮影響範囲は、以下のとおりとなる。
【0077】
圧縮影響範囲=100MB×{(20−10)÷1800}×{(640×360)÷(640×360)}×{1/3}
=0.19MB
【0078】
次に、ステップS1002では、圧縮有効性判断部104が、第1の実施形態で説明したデータ分割方式の圧縮有効度と、圧縮影響範囲から圧縮の有効性を示す圧縮有効度と、を算出する。本実施形態では、「圧縮影響範囲から圧縮の有効性を示す圧縮有効度」は、以下の計算式で算出する。
【0079】
圧縮有効度=(データ分割方式の圧縮有効度)×(圧縮影響範囲)= 1×0.19 = 0.19MB
【0080】
なお、データ分割方式の圧縮有効度についての説明は、第1の実施形態で行ったため、ここでは省略する。
【0081】
次に、ステップS1003では、圧縮有効性判断部104は、送信装置にあらかじめ設定してあった圧縮有効度の閾値を参照し、圧縮有効度が閾値より大きかったら圧縮が有効と判断し、処理はステップS207に進む。一方、閾値以下だったら、圧縮が無効と判断し、処理はステップS212に進む。たとえば、圧縮有効度が0.19MBで閾値が1MBであった場合、分割後のデータは圧縮されずに、処理はステップS212に進むことになる。なお、その後の処理については、第1の実施形態と同じであるため、説明を省略する。
【0082】
なお、本実施形態では、データサイズ縮小率を算出する際、動画像の圧縮率が全時刻で一様かつ、全領域で一様かつ、全トラックで一様と仮定し、分割範囲とデータサイズに比例関係が成立するとして計算した。しかし、動画像の詳細な縮小率が取得できる場合、その値を用いて計算してもよい。例えば、特定の時刻の縮小率がPtemp(t)、特定の領域の縮小率がPs(x, y, w, h, t)、特定のトラックの縮小率がPtr(tr, t)だったとする。この場合、圧縮影響範囲は以下の計算式から求めることができる。
【0083】
圧縮影響範囲
=分割前のデータサイズ×∫t=tst=tePtemp(t)Ps(x, y, w, h, t)Ptr(tr, t)dt
【0084】
ここで、t: 特定の時刻を表す変数、ts:部分データの開始時刻、te:部分データの終了時刻、x:部分データのx座標、y:部分データのy座標、w:部分データの幅、h:部分データの高さ、tr:部分データのトラック種別である。
【0085】
[第4の実施形態]
Deflateなどのデータ圧縮アルゴリズムでは、圧縮時に圧縮レベルを設定することが可能である。一般に、圧縮レベルが高い場合は、圧縮率は高くなるが、圧縮処理時間が長くなるという傾向がある。
【0086】
第3の実施形態では、ステップS1003の処理において圧縮有効性判断部104は、分割結果のデータを圧縮するかどうかを1つの閾値で判断した。本実施形態では、圧縮有効性判断部104は、複数の閾値を使用し、圧縮をするかどうかだけでなく、圧縮する際に指定する圧縮レベルを判断する。これにより、圧縮実行部107が、圧縮方式選択部106が選択した圧縮方式にしたがって分割データを圧縮する際に、分割データに合わせた圧縮レベルで圧縮処理を行うことができる。すなわち、分割後のデータのサイズが大きい場合には圧縮率を重視した圧縮レベルを使用してデータサイズを小さくすることで通信負荷を下げ、小さい場合には圧縮時間を重視した圧縮レベルを使用することができる。
【0087】
図11は、複数の閾値と圧縮レベルとを対応づけた圧縮レベル対応表の例である。圧縮有効度欄1101には、それぞれの圧縮有効度に対する閾値が記述されている。圧縮レベル欄1102には、各閾値に対応する圧縮レベルが記述されている。圧縮有効性判断部104は、ステップS1003の処理でこの圧縮レベル対応表を参照し、例えば、圧縮有効度が1MB未満のときは圧縮が無効と判断する。また、10MB未満のとき圧縮レベル4を使用すると判断する。さらに10MB以上のとき、圧縮レベル9を使用すると判断する。なお、この圧縮レベル対応表は、メモリ111内に保持されているものとする。
【0088】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、マルチメディアデータの送信技術に関するものである。
【背景技術】
【0002】
従来、IETFで公開されているRFC3986の仕様では、ネットワーク上のファイルなどのリソースを識別するためのURIという記述方法が定義されている。この仕様に従うと、URIの利用者は、URIの一部にフラグメント識別子とよばれる記述を付加することによって、主リソースのデータの一部など副次的リソースを表現することができる。
【0003】
さらに、W3Cでは、フラグメント識別子を使用して、動画などのマルチメディアデータを時間・座標・トラック種別(画像、音声、字幕など)で分割したデータを表現するメディアフラグメントURIの仕様を策定中である。
【0004】
この仕様により、特許文献1で記載されているような動画の再生端末装置が、動画配信装置から動画を取得する際に、フラグメント識別子を含むURIを使用して、動画の一部を取得対象として指定することができる。
【0005】
また、取得対象のリソースがWebサーバ上にあった場合、通信プロトコルとしてRFC2068で仕様が公開されているHTTP/1.1が使われることが多い。HTTP/1.1では、HTTP圧縮エンコーディング方式が定義されており、圧縮効果のあるリソースを圧縮してデータサイズを小さくし、ネットワーク負荷を抑制することができる。なお、HTTP圧縮エンコーディング形式では、deflate, compress, gzipなどの圧縮方式を使用することが仕様で定義されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−204001号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
動画データを保持するWebサーバと、動画データを利用するネットワーク端末と、で構成されるWebシステムで、端末側で字幕トラックなど動画の一部のデータだけを利用する場合がある。
【0008】
例えば、Webサーバ上の複数の動画のうち、字幕に特定のキーワードが含まれる動画を端末側で選択、もしくは選択対象から除外したり、各動画の字幕の最初の部分を見出しとして利用者に提示したりする用途が考えられる。
【0009】
これらの用途を実現する簡単な方式として、端末がWebサーバから全動画データを取得したあと、各動画データの形式に対応したスプリッタと呼ばれるアプリケーションで字幕トラックなど必要な部分を分離する方法が考えられる。
【0010】
しかしながら、端末が小型機器である場合など、動画データ全体を保存するためのストレージ容量や、スプリッタを複数動作させる演算能力等のリソースが少ない場合に、上記用途を実現する際の処理速度が遅くなるという問題がある。
【0011】
一方、Webサーバは、端末に比べてリソースに余裕がある場合が多いため、端末が動画の部分データをWebサーバに要求し、Webサーバ側でデータを分割する方式を採用すれば、上記のような処理速度の問題を解決することができる。この方式を実施する場合、端末が、必要なデータの範囲をメディアフラグメントURIのような記述方法でWebサーバに通知し、Webサーバから該当する部分データを取得する処理フローになる。この処理フローでは、端末から要求された部分データは、分割前の動画データと同じメディアタイプのデータとしてWebサーバから送信される。
【0012】
一般に、動画データはすでに圧縮された形式となっているため、送信時の圧縮効果は少なく、動画データのメディアタイプをもつデータは、HTTP圧縮なしで送信される。ところが、MPEG−4ファイル形式など多くの動画データは、複数のトラックから構成されるコンテナ形式となっており、トラック種別で分割した場合、圧縮効果がある部分データとなる場合がある。
【0013】
それにも関わらず、部分データをWebサーバから送信する場合、圧縮効果があるにも関わらず無圧縮で送信してしまうため、ネットワーク負荷を削減できないという問題があった。
【0014】
本発明は以上の問題に鑑みてなされたものであり、外部の装置に格納されているコンテナ形式のリソースの部分データを、部分データに適した圧縮形式で取得する為の技術を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明の目的を達成するために、例えば、本発明の送信装置は以下の構成を備える。即ち、外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段と、前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する手段と、前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する手段と、前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得手段と、前記取得手段が取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信手段とを備えることを特徴とする。
【発明の効果】
【0016】
本発明の構成によれば、外部の装置に格納されているコンテナ形式のリソースの部分データを、部分データに適した圧縮形式で取得することができる。
【図面の簡単な説明】
【0017】
【図1】システムの機能構成例を示すブロック図。
【図2】データ受信装置120及びデータ送信装置100が行う処理のフローチャート。
【図3】コーデックの種別と圧縮方式との対応関係を示す図。
【図4】URIをW3CのメディアフラグメントURI形式で記述した4つの例を示す図。
【図5】要求メッセージ、応答メッセージの構成例を示す図。
【図6】分割方式と係数との対応関係を示す図。
【図7】コーデックの種別と優先圧縮方式とHTTP標準の圧縮方式との対応関係を示す図。
【図8】要求メッセージ、応答メッセージの構成例を示す図。
【図9】システムの機能構成例を示すブロック図。
【図10】データ受信装置120及びデータ送信装置100が行う処理のフローチャート。
【図11】圧縮レベル対応表の例を示す図。
【発明を実施するための形態】
【0018】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
【0019】
[第1の実施形態]
先ず、本実施形態に係る送信装置を含むシステムについて、図1のブロック図を用いて説明する。データ送信装置100及びデータ受信装置120はLANやインターネット等のネットワークに接続されており、このネットワークを介して互いにデータ通信が可能な構成となっている。更にデータ送信装置100には、マルチメディアデータの一例としての動画像データ131を保持するデータ記憶装置130が接続されている。なお、図1ではデータ記憶装置130はデータ送信装置100とは別個の装置としているが、データ送信装置100と一体化させても良い。また、本実施形態ではマルチメディアデータの一例として動画像データ131を用いるが、音声データなど、他のデータをマルチメディアデータとして扱っても良い。
【0020】
次に、データ送信装置100について説明する。CPU110は、データ送信装置100全体の動作制御を行う。メモリ111は、CPU110が各種の処理を実行する際に用いるワークエリアなど、様々なエリアを適宜提供することができるものである。
【0021】
図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部は、ハードウェアで構成しても良いし、ソフトウェア(コンピュータプログラム)で構成しても良い。ソフトウェアで構成する場合、これらのソフトウェアは、データ送信装置100内の不図示のメモリ内に格納され、CPU110はこれらのソフトウェアを適宜メモリ111に読み出して実行する。なお、図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部の動作については、図2のフローチャートを用いて説明する。
【0022】
データ受信装置120及びデータ送信装置100が行う処理について、図2のフローチャートを用いて説明する。なお、以下の説明では、図1に示したデータ送信装置100を構成する各部のうちCPU110及びメモリ111を除く各部を動作の主体としているが、これら各部をソフトウェアで構成する場合はこのソフトウェアはCPU110により実行される。然るにこの場合、主体はCPU110となる。もちろん、これら各部をハードウェアで構成する場合は、これら各部を主体としても良い。
【0023】
ステップS201ではデータ受信装置120は、動画像データ131から部分的なデータ(部分データ)の取得要求を示す要求メッセージを作成し、上記のネットワークを介してデータ送信装置100に対して送信する。例えば、データ受信装置120側の表示画面上にWebブラウザを表示し、このWebブラウザ上にこの部分データのURIを入力して送信指示を入力する。
【0024】
ここで、部分データのURIをW3CのメディアフラグメントURI形式で記述した4つの例を図4に示す。何れのURIも、「www.example.com」上にある動画像(ファイル名「example.mp4」)から抽出する部分を規定する第1の記述、この部分を抽出する方式を規定する第2の記述、を含む。
【0025】
URI401は、この動画像において、再生開始時刻を0秒としたときに再生時刻10秒から20秒の間の部分を抽出対象として規定すると共に、この部分を動画像から抽出する方式としてtemporal分割方式を使用することを規定する。
【0026】
URI402は、動画像において(x、y)=(50,80)を起点とし幅320画素、高さ240画素のサイズの領域を抽出対象として規定すると共に、この領域を動画像から抽出する方式としてspatial分割方式を使用することを規定するものである。
【0027】
URI403は、動画像において字幕トラック部分を抽出対象として規定すると共に、この字幕トラック部分を動画像から抽出する方式としてtrack分割方式を使用することを規定する。
【0028】
URI404は、動画像において再生開始時刻を0秒としたときに再生時刻10秒から20秒の間の部分を抽出対象として規定すると共に、この部分を動画像から抽出する方式としてtemporal分割方式及びtrack分割方式を使用することを規定する。
【0029】
ここで、URI403で表されるメディアフラグメントURIを、HTTPプロトコルで要求する場合の、要求メッセージの構成例を図5(a)に示す。この要求メッセージでは、「www.example.com」上にある動画像(ファイル名「example.mp4」)において字幕トラックの部分がHTTP 1.1のGETメソッドで要求されていることが記述されている。また、この要求メッセージには、deflate方式で圧縮されたデータの受信が可能であることが記述されている。
【0030】
図2に戻って、ステップS202では要求メッセージ受付部101は、データ受信装置120(外部装置)から送信された要求メッセージを受信する。ステップS203ではデータ分割方式取得部102は、ステップS202で取得した要求メッセージ中に記述されているデータの分割方式を参照する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、HTTPのRangeヘッダの値に”track=subtitle”という記述がある。そのため、データ分割方式取得部102は、この記述を参照し、メディアフラグメントURIの仕様により、データの分割方式は”track”であると判断する。
【0031】
ステップS204ではデータ分割部103は、ステップS202で取得した要求メッセージ中に記述されているマルチメディアデータのファイル名を参照し、このファイル名を有するマルチメディアデータをデータ記憶装置130から読み出す。
【0032】
例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、マルチメディアデータのファイル名として「example.mp4」が記されているため、このファイル名を有するマルチメディアデータをデータ記憶装置130から読み出す。以下では、ファイル名が「example.mp4」であるマルチメディアデータが動画像データ131であるものとして説明する。
【0033】
次にデータ分割部103は、要求メッセージ中に抽出対象として規定されている部分を、この読み出した動画像データ131から、部分データとして抽出(分割)する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、ステップS203では分割方式が”track”であると判断するので、動画像データ131から字幕トラック部分を部分データとして抽出する。
【0034】
なお、動画像データ131から部分データを抽出(分割)する技術は、スプリッタとよばれるプログラム等、各動画形式の一般的な動画デコーダに含まれる機能ですでに実現されているため、これに係る詳細な説明は省略する。
【0035】
ステップS205では圧縮有効性判断部104は、ステップS204で抽出した部分データが圧縮効果のある分割方式により得られたものであるのか否か(圧縮の有効性があるか否か)を判断するための指標となる値としてデータ分割方式の圧縮有効度を求める。
【0036】
本実施形態では、圧縮有効性判断部104は、図6に示す如く、分割方式毎に、該分割方式により抽出されるデータに対する圧縮の有効度を示す係数が登録されたテーブルを保持している。
【0037】
図6において欄601には、temporal、spatial、track等の分割方式名が列挙されている。欄602には、欄601に列挙されたそれぞれの分割方式に対応する係数の値が列挙されている。例えば、分割方式「temporal」に対応する係数の値は「0」となっている。
【0038】
然るにステップS205では圧縮有効性判断部104は、ステップS203で参照した全て(2つ以上)の分割方式について、対応する係数を図6のテーブルから取得する。その後、取得したそれぞれの係数と、各分割方式の使用有無を表すブール値の積と、の総和(Σ)を上記のデータ分割方式の圧縮有効度として計算する。ここで、ブール値は、使用していたら1、使用していなかったら0とする。例えば、図4のURI404がメディアフラグメントURIとして記述されていた場合、以下の計算式により、データ分割方式の圧縮有効度は1となる。
データ分割方式の圧縮有効度
=Σ((分割方式の係数)×(分割方式の使用有無を表すブール値))
=(temporal分割方式の係数)×(temporal分割方式の使用有無を表すブール値)
+(spatial分割方式の係数)×(spatial分割方式の使用有無を表すブール値)
+(track分割方式の係数)×(track分割方式の使用有無を表すブール値)
=0×1+0×0+1×1=1
【0039】
そしてステップS206では圧縮有効性判断部104は、ステップS205で求めたデータ分割方式の圧縮有効度が閾値よりも大きいか否かを判断する。ここでは閾値=0としている。そしてこの判断の結果、ステップS205で求めたデータ分割方式の圧縮有効度が閾値よりも大きい場合、ステップS204で抽出した部分データが、圧縮効果のある分割方式により得られたものであると判断し、処理をステップS207に進める。一方、ステップS205で求めたデータ分割方式の圧縮有効度が閾値以下の場合、ステップS204で抽出した部分データが、圧縮効果がない分割方式により得られたものであると判断し、処理をステップS212に進める。
【0040】
ステップS207ではコーデック種別取得部105は、ステップS204で抽出した部分データのコーデックの種別を取得する。本実施形態では、動画像データ131に含まれるFourCCとよばれるコーデックの識別子を参照して、部分データのコーデックの種別を判断するが、動画像データ131の形式によっては、他の方法で判断してもよい。
【0041】
例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、この要求メッセージには、動画像データ131であるexample.mp4内で字幕トラック部分のFourCC識別子が”tx3g”と記述されている。そのため、コーデック種別取得部105は、この部分を参照し、字幕トラック部分のコーデック種別が、3GPP Timed Text形式であると判断する。
【0042】
ステップS208では圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式を決定する。例えば、ステップS202で図5(a)に示す要求メッセージを受信した場合、圧縮方式選択部106は、この要求メッセージのHTTPヘッダであるAccept-Encodingの値(第3の記述)を参照する。そして圧縮方式選択部106は、データ受信装置120はdeflate圧縮方式に対応可能であると判断する。
【0043】
なお、要求メッセージ内にデータ受信装置120が対応可能な圧縮方式が記されていれば、処理はステップS209を介してステップS210に進み、記されていなければ、処理はステップS209を介してステップS212に進む。
【0044】
ステップS210で圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式のうち、ステップS207で取得したコーデックの種別(識別子)に適した圧縮方式を選択する。圧縮方式選択部106は、図3に示す如く、コーデックの種別毎に、それに適した圧縮方式が登録されたテーブルを保持している。なお、図3では、コーデック種別の値として前述のFourCC識別子、圧縮方式の値として、HTTPプロトコルのAccept-Encodingで指定可能なdeflate, gzip, identity(無圧縮)を使用している。
【0045】
図3において欄301には様々なコーデックの種別(識別子)が登録されており、欄302には、それぞれのコーデックの種別に適した圧縮方式が登録されている。例えば、図3のテーブルによれば、コーデックの種別が「tx3g」であれば、それに適した圧縮方式(予め設定された)は「deflate」若しくは「gzip」となる。然るに圧縮方式選択部106は、図3のテーブルを参照し、ステップS207で取得したコーデックの種別に対応する圧縮方式のうち、データ受信装置120が対応可能な圧縮方式を選択する。即ち、ステップS207で取得したコーデックの種別に対応する圧縮方式と、データ受信装置120が対応可能な圧縮方式と、で共通の圧縮方式を選択する。
【0046】
例えばステップS202で図5(a)の要求メッセージを受信した場合、字幕トラック部分のコーデックの種別が”tx3g”であるので、圧縮方式選択部106は図3のテーブルより”tx3g”に対応する圧縮方式deflate、gzipを選択する。次に圧縮方式選択部106は、データ受信装置120がdeflate方式に対応していることから、選択した圧縮方式「deflate」、「gzip」のうち圧縮方式「deflate」を送信時の圧縮方式として選択する。
【0047】
ステップS211で圧縮実行部107は、ステップS210で送信時の圧縮方式として選択した圧縮方式に従って、ステップS204で抽出した部分データを圧縮し、圧縮データを生成する。
【0048】
ステップS212では応答メッセージ生成部108は、応答メッセージを生成する。ステップS211からステップS212に処理が進んだ場合、ステップS212では、図5(b)に示す如く、ステップS211で生成した圧縮データを含む、HTTPプロトコル用の応答メッセージを生成する。
【0049】
ここで、Content-Range-Mappingヘッダは、メディアフラグメントURIの仕様で提案されているヘッダであり、応答メッセージに含まれるデータが、track分割方式で分割された動画像データ131の一部であることを示す。また、Content-Encodingヘッダは、HTTP圧縮がdeflate方式で行われたことを示す。また、Content-Typeヘッダは、分割前の動画像データ131のメディアタイプであるvideo/mp4が記述されている。
【0050】
一方、ステップS206若しくはステップS209からステップS212に処理が進んだ場合、ステップS212では、ステップS204で抽出した部分データを含む応答メッセージを生成する。
【0051】
ここで、部分データのメディアタイプは、動画像データ131と同じとは限らないため、あらかじめ送信側と受信側で、どのメディアタイプを使用するかを制限しておく方法や、他のヘッダ情報で通知する方法などが考えられる。
【0052】
ステップS213では応答メッセージ送信部109は、ステップS212で生成した応答メッセージをデータ受信装置120に対して送信する。ステップS214ではデータ受信装置120は、データ送信装置100から送信された応答メッセージを受信する。
【0053】
そしてステップS215ではデータ受信装置120は、この受信した応答メッセージ中の部分データが圧縮されているか否かを判断する。この判断の結果、部分データが圧縮されている場合、処理はステップS216に進み、圧縮されていない場合、処理はステップS217に進む。
【0054】
ステップS216ではデータ受信装置120は、圧縮されている部分データを伸張する。ステップS217ではデータ受信装置120は、応答メッセージ中に含まれている部分データ若しくはステップS216で伸張した部分データを適当なメモリに格納したり、適当な表示装置上に表示したりすることで、データ送信装置100に要求した情報を得る。
【0055】
以上の説明により、本実施形態によれば、Webサーバ等の装置上にある動画像データ等のコンテナ形式のリソースの部分データを取得する場合、部分データに適した圧縮形式で取得することができる。
【0056】
特に、部分データが、動画像データにおける字幕トラック部分の形式であるSRT形式や3GPP Timed Text形式などテキストで記述されていた場合、圧縮効果が大きくなる。これにより、ネットワークで送信するデータ量が小さくなるため、ネットワークトラフィックを抑制することができる。
【0057】
[第2の実施形態]
第1の実施形態では、HTTPで定義された圧縮送信方式を用いた例について説明したが、本実施形態では、W3C EXI形式、ISO Fast Infoset形式などのバイナリXML形式に対応していた場合について説明する。なお、本実施形態においても、システム全体の構成については第1の実施形態と同じ(図1)である。以下では、第1の実施形態との相違点のみについて説明する。
【0058】
バイナリXML形式は、XML形式のデータを圧縮する技術で、この形式に対応したXMLパーサがあった場合、圧縮したまま解析することができる。そのため、図2のステップS215、S216のデータ伸長に係る処理が不要となる。これにより、データ受信装置120側のデータ伸長時の計算時間が減り、データ取得の処理全体が高速化する効果がある。
【0059】
なお、本実施形態では更に、図2のフローチャートにおいて、ステップS208、S210で説明した圧縮方式の選択に係る処理が第1の実施形態と異なる。
【0060】
ステップS208では圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式を、第1の実施形態と同様に、要求メッセージのHTTPヘッダであるAccept-Encodingの値を参照して決定する。
【0061】
ここで、データ受信装置120がEXI, Fast Infoset形式の圧縮に対応している場合に、要求メッセージ受付部101がHTTPプロトコルで受信した要求メッセージの一例を図8(a)に示す。
【0062】
図8(a)では、Accept-Encoding値として、exi, finf, deflateが記述されている。この記述は、データ受信装置120が、W3C EXI, ISO Fast Infoset, deflate方式に対応していることを示している。
【0063】
ステップS210で圧縮方式選択部106は、データ受信装置120が対応可能な圧縮方式のうち、ステップS207で取得したコーデックの種別(識別子)に適した圧縮方式を選択する。圧縮方式選択部106は、図7に示す如く、コーデックの種別毎に、それに適した圧縮方式(優先圧縮方式)とHTTP標準の圧縮方式と、が登録されたテーブルを保持している。
【0064】
なお、図7では、コーデック種別の値として前述のFourCC識別子、通常圧縮方式の値として、deflate, gzip, identity(無圧縮)を使用している他、優先圧縮方式として、exi(W3C EXI形式)が定義されている。
【0065】
図7において欄701には様々なコーデックの種別(識別子)が登録されており、欄702にはそれぞれのコーデックの種別に適した圧縮方式が登録されており、欄703にはそれぞれのコーデックの種別に対応するHTTP標準の圧縮方式が登録されている。例えば、図7のテーブルによれば、コーデックの種別が「tx3g」であれば、それに適した圧縮方式は「exi」となり、HTTP標準の圧縮方式は「deflate」、「gzip」となる。然るに圧縮方式選択部106は、図7のテーブルを参照し、先ず、ステップS207で取得したコーデックの種別に対応する優先圧縮方式を選択する。そして、選択した優先圧縮方式がデータ受信装置120が対応可能な圧縮方式であれば、この優先圧縮方式を送信時の圧縮方式として選択する。一方、対応可能な圧縮方式でなければ、ステップS207で取得したコーデックの種別に対応する通常圧縮方式を、送信時の圧縮方式として選択する。
【0066】
例えばステップS202で図5(a)に示す要求メッセージを受信した場合、字幕トラック部分のコーデックの種別が”tx3g”であることから、圧縮方式選択部106は図7のテーブルより先ず、”tx3g”に対応する圧縮方式「exi」を選択する。次に圧縮方式選択部106は、データ受信装置120がexi方式に対応していることから、選択した圧縮方式「exi」を送信時の圧縮方式として選択する。この場合に、応答メッセージ生成部108により生成される応答メッセージの構成例を図8(b)に示す。
【0067】
ここで、Content-Range-Mappingヘッダは、メディアフラグメントURIの仕様で提案されているヘッダであり、応答メッセージに含まれるデータが、track分割方式で分割された動画像データ131の一部であることを示す。
【0068】
また、X-Content-Encodingヘッダは、HTTP圧縮がexi方式で行われたことを示す。通常のHTTP圧縮では、exi方式を記述できないため、HTTPのContent-Encodingヘッダを拡張したヘッダとして記述している。
【0069】
[第3の実施形態]
第1の実施形態では、分割したデータを圧縮するかどうかの判断を、圧縮効果がある分割方式(第1の実施形態では、track分割方式)の使用の有無から判断した。本実施形態では、図4のURI404のように、複数の分割方式が指定された場合に、圧縮効果のある分割方式の使用の有無だけでなく、圧縮対象となるデータの範囲(圧縮影響範囲)と合わせて、圧縮するかどうかを判断することを特徴とする。これにより、分割したデータのサイズが小さく、圧縮による送信データのサイズ縮小の効果が少ない場合はデータ圧縮せず、送信側・受信側のデータ圧縮・伸長処理によるCPU負荷や送信時間の遅延を低減する効果を得る。
【0070】
先ず、本実施形態に係る送信装置を含むシステムの機能構成例について、図9のブロック図を用いて説明する。図9の100から131については、図1と同じであるため説明を省略する。本実施形態では、圧縮影響範囲を取得する圧縮影響範囲取得部901が追加されている点が図1と異なる。
【0071】
図10は、本実施形態に係る送信装置が行う処理のフローチャートである。ステップS201〜S204、ステップS207〜S217の処理については、図2と同じであるため説明を省略する。
【0072】
データ分割部103がステップS204において部分データを生成した後、ステップS1001では、圧縮影響範囲取得部901が、圧縮影響範囲の値を算出する。なお、本実施形態では、圧縮影響範囲として、分割後のデータサイズの予測値を使用する。分割後のデータサイズは、分割前のデータサイズと各分割形式によるサイズ縮小率の総積(Π)から以下の計算式で求める。
【0073】
圧縮影響範囲=(分割前のデータサイズ)×Π(各分割方式によるデータサイズ縮小率)
=(分割前のデータサイズ)×(temporal分割方式によるデータサイズ縮小率)×(spatial分割方式によるデータサイズ縮小率)×(track分割方式によるデータサイズ縮小率)
【0074】
また、本実施形態では、各分割方式による縮小率は、以下の計算式で求める。
【0075】
temporal分割方式によるデータサイズ縮小率=(分割後の再生時間)÷(分割前の再生時間)
spatial分割方式によるデータサイズ縮小率=(分割後の画素数)÷(分割前の画素数)
track分割方式によるデータサイズ縮小率=(分割後のトラック数)÷(分割前のトラック数)
【0076】
ここで、分割前のデータ(example.mp4)のデータサイズが100MB、再生時間が1800秒、トラック数が3個、画素数が640×360ピクセルだったとする。この場合、図4のURI404に記述されるメディアフラグメントURIが指定された時の圧縮影響範囲は、以下のとおりとなる。
【0077】
圧縮影響範囲=100MB×{(20−10)÷1800}×{(640×360)÷(640×360)}×{1/3}
=0.19MB
【0078】
次に、ステップS1002では、圧縮有効性判断部104が、第1の実施形態で説明したデータ分割方式の圧縮有効度と、圧縮影響範囲から圧縮の有効性を示す圧縮有効度と、を算出する。本実施形態では、「圧縮影響範囲から圧縮の有効性を示す圧縮有効度」は、以下の計算式で算出する。
【0079】
圧縮有効度=(データ分割方式の圧縮有効度)×(圧縮影響範囲)= 1×0.19 = 0.19MB
【0080】
なお、データ分割方式の圧縮有効度についての説明は、第1の実施形態で行ったため、ここでは省略する。
【0081】
次に、ステップS1003では、圧縮有効性判断部104は、送信装置にあらかじめ設定してあった圧縮有効度の閾値を参照し、圧縮有効度が閾値より大きかったら圧縮が有効と判断し、処理はステップS207に進む。一方、閾値以下だったら、圧縮が無効と判断し、処理はステップS212に進む。たとえば、圧縮有効度が0.19MBで閾値が1MBであった場合、分割後のデータは圧縮されずに、処理はステップS212に進むことになる。なお、その後の処理については、第1の実施形態と同じであるため、説明を省略する。
【0082】
なお、本実施形態では、データサイズ縮小率を算出する際、動画像の圧縮率が全時刻で一様かつ、全領域で一様かつ、全トラックで一様と仮定し、分割範囲とデータサイズに比例関係が成立するとして計算した。しかし、動画像の詳細な縮小率が取得できる場合、その値を用いて計算してもよい。例えば、特定の時刻の縮小率がPtemp(t)、特定の領域の縮小率がPs(x, y, w, h, t)、特定のトラックの縮小率がPtr(tr, t)だったとする。この場合、圧縮影響範囲は以下の計算式から求めることができる。
【0083】
圧縮影響範囲
=分割前のデータサイズ×∫t=tst=tePtemp(t)Ps(x, y, w, h, t)Ptr(tr, t)dt
【0084】
ここで、t: 特定の時刻を表す変数、ts:部分データの開始時刻、te:部分データの終了時刻、x:部分データのx座標、y:部分データのy座標、w:部分データの幅、h:部分データの高さ、tr:部分データのトラック種別である。
【0085】
[第4の実施形態]
Deflateなどのデータ圧縮アルゴリズムでは、圧縮時に圧縮レベルを設定することが可能である。一般に、圧縮レベルが高い場合は、圧縮率は高くなるが、圧縮処理時間が長くなるという傾向がある。
【0086】
第3の実施形態では、ステップS1003の処理において圧縮有効性判断部104は、分割結果のデータを圧縮するかどうかを1つの閾値で判断した。本実施形態では、圧縮有効性判断部104は、複数の閾値を使用し、圧縮をするかどうかだけでなく、圧縮する際に指定する圧縮レベルを判断する。これにより、圧縮実行部107が、圧縮方式選択部106が選択した圧縮方式にしたがって分割データを圧縮する際に、分割データに合わせた圧縮レベルで圧縮処理を行うことができる。すなわち、分割後のデータのサイズが大きい場合には圧縮率を重視した圧縮レベルを使用してデータサイズを小さくすることで通信負荷を下げ、小さい場合には圧縮時間を重視した圧縮レベルを使用することができる。
【0087】
図11は、複数の閾値と圧縮レベルとを対応づけた圧縮レベル対応表の例である。圧縮有効度欄1101には、それぞれの圧縮有効度に対する閾値が記述されている。圧縮レベル欄1102には、各閾値に対応する圧縮レベルが記述されている。圧縮有効性判断部104は、ステップS1003の処理でこの圧縮レベル対応表を参照し、例えば、圧縮有効度が1MB未満のときは圧縮が無効と判断する。また、10MB未満のとき圧縮レベル4を使用すると判断する。さらに10MB以上のとき、圧縮レベル9を使用すると判断する。なお、この圧縮レベル対応表は、メモリ111内に保持されているものとする。
【0088】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、
マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段と、
前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する手段と、
前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する手段と、
前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得手段と、
前記取得手段が取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信手段と
を備えることを特徴とする送信装置。
【請求項2】
前記要求メッセージには、前記外部装置が対応可能な圧縮方式を規定する第3の記述、が含まれており、
前記送信手段は、前記値が前記閾値よりも大きい場合、前記部分データのコーデックの種別を取得し、該取得したコーデックの種別に対して予め設定された圧縮方式を取得し、該取得した圧縮方式と前記第3の記述が規定する圧縮方式とで共通の圧縮方式に従って前記部分データを圧縮し、該圧縮により得られる前記圧縮データを前記外部装置に対して送信する
ことを特徴とする請求項1に記載の送信装置。
【請求項3】
前記第2の記述が2つ以上の方式を規定する場合、
前記取得手段は、前記2つ以上の方式のそれぞれに対応する係数を前記保持手段から取得し、
前記送信手段は、前記2つ以上の方式のそれぞれについて前記取得手段が取得した係数の総和を前記値とし、該値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、該値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する
ことを特徴とする請求項1又は2に記載の送信装置。
【請求項4】
更に、
前記マルチメディアデータのデータサイズと、該マルチメディアデータから部分的なデータを抽出する方式毎の圧縮率と、の積を取得する手段を備え、
前記送信手段は、前記積と、前記取得手段が取得した係数の総和と、の積を前記値として算出し、該算出した値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する
ことを特徴とする請求項3に記載の送信装置。
【請求項5】
前記送信手段は、前記値に対して予め対応づけられている圧縮方式に従って前記部分データを圧縮し、該圧縮によって得られる圧縮データを外部装置に対して送信する
ことを特徴とする請求項4に記載の送信装置。
【請求項6】
外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段を有する前記送信装置が行う送信方法であって、
前記送信装置の受信手段が、前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する工程と、
前記送信装置の抽出手段が、前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する工程と、
前記送信装置の取得手段が、前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得工程と、
前記送信装置の送信手段が、前記取得工程で取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信工程と
を備えることを特徴とする送信方法。
【請求項7】
コンピュータを請求項1乃至5の何れか1項に記載の送信装置の各手段として機能させるためのコンピュータプログラム。
【請求項1】
外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、
マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段と、
前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する手段と、
前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する手段と、
前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得手段と、
前記取得手段が取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信手段と
を備えることを特徴とする送信装置。
【請求項2】
前記要求メッセージには、前記外部装置が対応可能な圧縮方式を規定する第3の記述、が含まれており、
前記送信手段は、前記値が前記閾値よりも大きい場合、前記部分データのコーデックの種別を取得し、該取得したコーデックの種別に対して予め設定された圧縮方式を取得し、該取得した圧縮方式と前記第3の記述が規定する圧縮方式とで共通の圧縮方式に従って前記部分データを圧縮し、該圧縮により得られる前記圧縮データを前記外部装置に対して送信する
ことを特徴とする請求項1に記載の送信装置。
【請求項3】
前記第2の記述が2つ以上の方式を規定する場合、
前記取得手段は、前記2つ以上の方式のそれぞれに対応する係数を前記保持手段から取得し、
前記送信手段は、前記2つ以上の方式のそれぞれについて前記取得手段が取得した係数の総和を前記値とし、該値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、該値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する
ことを特徴とする請求項1又は2に記載の送信装置。
【請求項4】
更に、
前記マルチメディアデータのデータサイズと、該マルチメディアデータから部分的なデータを抽出する方式毎の圧縮率と、の積を取得する手段を備え、
前記送信手段は、前記積と、前記取得手段が取得した係数の総和と、の積を前記値として算出し、該算出した値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する
ことを特徴とする請求項3に記載の送信装置。
【請求項5】
前記送信手段は、前記値に対して予め対応づけられている圧縮方式に従って前記部分データを圧縮し、該圧縮によって得られる圧縮データを外部装置に対して送信する
ことを特徴とする請求項4に記載の送信装置。
【請求項6】
外部装置から要求されたデータを該外部装置に対して送信する送信装置であって、マルチメディアデータから部分的なデータを抽出する方式毎に、該方式により抽出されるデータに対する圧縮の有効度を示す係数を保持する保持手段を有する前記送信装置が行う送信方法であって、
前記送信装置の受信手段が、前記マルチメディアデータから抽出する部分を規定する第1の記述、該部分を抽出する方式を規定する第2の記述、を含む要求メッセージを前記外部装置から受信する工程と、
前記送信装置の抽出手段が、前記マルチメディアデータから、前記第1の記述により規定されている部分を部分データとして抽出する工程と、
前記送信装置の取得手段が、前記第2の記述により規定されている方式に対応する係数を前記保持手段から取得する取得工程と、
前記送信装置の送信手段が、前記取得工程で取得した係数に応じた値が閾値よりも大きい場合、前記部分データを圧縮して得られる圧縮データを外部装置に対して送信し、前記値が前記閾値よりも小さい場合は、前記部分データを前記外部装置に対して送信する送信工程と
を備えることを特徴とする送信方法。
【請求項7】
コンピュータを請求項1乃至5の何れか1項に記載の送信装置の各手段として機能させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−142919(P2012−142919A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2011−251919(P2011−251919)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願日】平成23年11月17日(2011.11.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]