実施の形態1.
図1は、実施の形態1に係る映像配信装置の構成を示す図である。図1において、映像配信装置100に保存されたストリーム情報は、映像再生装置170に配信され、当該映像再生装置170に接続された表示装置180で視聴される。なお、映像配信装置はDMS(Digital Media Server)、映像再生装置はDMP(Digital Media Player)と呼ばれる。以下、映像配信装置をDMS、映像再生装置をDMPと称す。
DMS100は、映像配信ブロック115、システム制御部101およびメモリ部120を備えている。ユーザーからの操作は、DMP170に具備されている操作部171を通じて行われ、DMP170のネットIF(インターフェイス)172からDMS100のネットIF(インターフェイス)114を経由し、DMS100のシステム制御部101に伝達される。システム制御部101は、要求された命令の内容を解釈し、映像配信ブロック115を制御することでストリーム情報を配信する。
映像配信ブロック115は、記録再生ドライブ部102(記録手段)、放送受信部103、ストリーム制御部110およびネットIF114を備えている。当該映像配信ブロック115は、映像音声ストリームの配信機能を有し、システム制御部101からの指示の下、ストリーム情報の配信処理を行う。
記録再生ドライブ部102は、ハードディスクドライブで構成され、ストリーム情報の読出しや書込みを行う。記録再生ドライブ部102には、符号化された映像音声が多重化されたストリーム情報と、当該ストリーム情報の再生制御情報とが記録されている。なお、当該ストリーム情報および再生制御情報については、後に詳細に説明する。
なお、本実施の形態1では、記録再生ドライブ部102は、ハードディスクドライブで構成されていると仮定して説明を進めるが、光ディスクドライブやSDメディアドライブで構成してもよい。その場合においても、光ディスクドライブやSDメディアドライブ上にストリーム情報と再生制御情報が記録され、読出しや書込みが行なわれる。
放送受信部103は、あらかじめMPEG−2 Transport Stream(以下、MPEG−2 TSと称す)で符号化圧縮されたデジタル放送波を受信する。放送受信部103で受信されたストリーム情報は、ストリーム制御部110を経由して記録再生ドライブ部102へ書き込まれる。
なお、ストリーム情報の書き込み時において、当該ストリーム情報は、ストリーム制御部110内に具備する記録バッファ(図示せず)に一時的に蓄積され、記録バッファ内でストリーム解析が行われた後、記録効率の高い転送単位で記録再生ドライブ部102へ書き込まれる。なお、ストリーム解析の結果は、システム制御部101で再生制御情報として加工され、同様に記録再生ドライブ部102へ書き込まれる。また、記録再生ドライブ部102へ記録されるストリーム情報は、MPEG−2 TS形式で直接録画してもよく、ストリーム制御部110内でMPEG−2 Program Stream(以下、MPEG−2 PSと称す)形式に変換しから記録するようにしてもよい。
ストリーム制御部110は、DMS100全体のストリーム情報の流れを統括制御する。当該ストリーム制御部110は、再生バッファ111、暗号化部112およびネットワークバッファ113を備えている。
再生バッファ111は、記録再生ドライブ部102から読み出したストリーム情報を一時的に蓄積する。コンテンツ配信時には、DMP170で再生指定された番組に係るストリーム情報が記録再生ドライブ部102から読み出され、平文で再生バッファ111に蓄積される。
暗号化部112は、再生バッファ111から出力されたストリーム情報を暗号化する。再生バッファ111から出力されたストリーム情報は、暗号化部112にてDTCP−IP暗号化の単位(PCPパケット単位)でAES暗号が施された後、ネットワークバッファ113へ転送される。
ネットワークバッファ113は、暗号化部112で暗号化されたストリーム情報を蓄積し、蓄積されたストリーム情報の情報量が所定の閾値に到達した場合、当該ストリーム情報を出力する。暗号化部112から出力されたストリーム情報は、ネットワークバッファ113に所定量蓄えられた後、ネットIF114からTCPパケットとして順次転送される。なお、DTCP−IPによる著作権保護方式で採用されているAES暗号は非常に暗号強度が高く、暗号化処理がシステムに及ぼす影響は強い。
ネットIF114は、クライアント機器であるDMP170にネットワーク経由でコンテンツを配信する。ネットIF114はコンテンツ配信機能のほかに、DMP170からのコンテンツリスト取得要求、番組再生要求を受けつける制御コマンド受信機能を持つ。
システム制御部101は、再生状態判定部151、転送量解析部152および転送量解析部153を備えている。当該システム制御部101は、DMS100全体を統合制御する。
再生状態判定部151は、DMP170から発行されるストリーム情報の取得要求の頻度に基づいて、DMP170が通常再生状態または特殊再生状態のどちらの再生状態であるかを判定する。なお、通常再生は通常速度による再生を示し、特殊再生は早送り再生または巻き戻し再生を示す。
転送量解析部152は、配信するストリーム情報の単位時間あたりの情報量としてビットレートを解析する。配信するストリーム情報がMPEG−2 TSである場合、転送量解析部152は、再生バッファ111に読み込まれた当該MPEG−2 TSに含まれるパケット毎の時刻情報に基づいて配信するストリーム情報のビットレートを解析する。これに対し、配信するストリーム情報がMPEG−2 PSである場合、転送量解析部152は、記録再生ドライブ部102に保存されている再生制御情報に含まれるアクセスポイント情報に基づいて配信対象区間のストリーム情報のビットレートを解析する。なお、アクセスポイント情報に基づいたビットレートの解析は、MPEG−2 TSに対しても適用することができる。
閾値変更部153は、ネットワークバッファ113の閾値を変更する。当該閾値を高く設定すれば、リアルタイム配信を行うための余力が高く、DMP170でアンダーフローが起こりにくい。一方、当該閾値を低く設定すれば、リアルタイム配信を行う際に、DMP170でアンダーフローを起こす危険性が高い。アンダーフローは、映像音声のリアルタイム配信を行う際にデータ欠落を招き、再生映像のコマ落ちなどを引き起こす原因となる。
なお、実施の形態1では、閾値変更部153はネットワークバッファ113の閾値のみを変更するものとして説明をすすめるが、再生バッファ111のデータ転送判定の閾値も変更するようにしてもよい。
また、再生状態判定部151、転送量解析部152および閾値変更部153は、システム制御部101内のファームウェアなどで構成される例を示しているが、当該機能を有するハードウェアで構成するようにしてもよい。また、再生状態判定部151、転送量解析部152および閾値変更部153は分割して記載しているが、機能が統合されたブロックであってもよい。
メモリ部120は、後述する記録処理の際にMPEG2−TSが有する再生開始時間情報、再生開始位置情報および映像情報の属性情報を記録に適したデータフォーマットで一時的に保持する。そして、メモリ部120に保持された情報が記録再生ドライブ部102へ書き込まれる。
次に、実施の形態1に係る記録処理の流れについて説明する。
地上デジタル放送番組を記録する場合、放送受信部103にて受信したMPEG−2 TSのストリーム情報は、ストリーム制御部110に供給される。供給されたMPEG−2 TSのストリーム情報は、システム制御部101からの指示に基づいて上述したストリーム解析処理が順次行われ、記録再生ドライブ部102であるハードディスクドライブに記録される。
また、ストリーム記録処理の過程において、ストリーム制御部110は、システム制御部101に対し、アクセス単位(GOP単位)毎に、再生制御情報を構成する情報である再生開始時間情報、再生開始位置情報および映像情報の属性情報等を通知する。システム制御部101は、メモリ部120に当該再生開始時間情報、再生開始位置情報、および映像情報の属性情報を記録に適したデータフォーマットで保持する。その後、メモリ部120に展開された再生制御情報は、ストリーム制御部110経由で記録再生ドライブ部102へ書き込まれる。
次に、実施の形態1に係る映像配信処理の流れについて説明する。
DMP170から番組の再生要求を受けると、システム制御部101は当該番組を示すストリーム情報であるファイルを特定する。システム制御部101からの指示により、ストリーム情報は記録再生ドライブ部102から読み出され、順次再生バッファ111に蓄積される。再生バッファ111に蓄積されたストリーム情報は、暗号化部112によりAES暗号化が行われ、DTCPで規定された暗号化単位でネットワークバッファ113に蓄積される。なお、DTCPで規定された暗号化の単位はPCPパケット単位と呼ばれ、暗号化は一般的には0.5秒から2.0秒分のデータ単位(約1MB〜2MB程度)で行われる。そして、ネットワークバッファ113に蓄積されたストリーム情報の情報量が所定の閾値に到達すると、当該ストリーム情報はネットワークIF114経由でDMP170へ配信される。なお、配信については、TCP/IPによる通信が連続的に行われる。
DMP170は、TCPパケットで受信したストリーム情報を、デコーダー部173に供給する。デコーダー部173は、ストリーム情報を逐次取り込んだ後に、当該ストリーム情報を映像ストリームと音声ストリームとに分離して取り出す。その後、MPEG−2などで符号化された映像ストリームをデコード処理して出力映像信号に復号するとともに、AC−3などで符号化された音声ストリームを同様にデコード処理して出力音声信号に復号する。そして、出力映像信号および出力音声信号を、映像音声を視聴するための表示装置180に送出する。
次に、記録再生ドライブ部102に記録されたファイルの構造を説明する。
図2は、実施の形態1に係る映像配信装置の記録再生ドライブ部の論理ファイル構造を示す図である。図2において、ルートディレクトリ200は、論理的に階層構造を成すファイル構造の最上位階層のディレクトリ構造であり、ディスクディレクトリ201は、ルートディレクトリ200の下位階層に配置されるディレクトリ構造である。
ディスクディレクトリ201は、記録再生ドライブ部102に記録されているコンテンツ管理情報である再生制御情報ファイル221と、アドレス管理ファイル222をまとめて記録したフォルダであるアドレス管理ディレクトリ202と、およびストリーム情報ファイル231をまとめて記録したフォルダであるストリーム管理ディレクトリ203とで構成される。
ストリーム情報ファイル231は、ストリーム情報をファイル形式としてアクセスするファイルを示す。なお、再生制御情報ファイル221とアドレス管理ファイル222を総称して、再生制御情報と定義する。
なお、同図中、アドレス管理ファイル222とストリーム情報ファイル231は、5桁のファイル名により1:1で対応付けされているものとして説明を進める。ファイル名は5桁の数字であれば良く、連番である必要はない。
また、ここではアドレス管理ファイル222とストリーム情報ファイル231は個別のディレクトリ内に配置する例を示しているが、同一のディレクトリ内に配置したり、当該ファイルをルートディレクトリ200に直接配置するようにしてもよい。また、アドレス管理ファイル222の数と、ストリーム情報ファイル231の数とを1:1で対応して記録する例を示しているが、アドレス管理ファイル222は1つにまとめて記録するようにしてもよい。
図3は、実施の形態1に係る映像配信装置のストリーム情報のファイルの構成を示す図である。ストリーム情報ファイル231は多重化方式により、MPEG−TS方式と、MPEG−PS方式の2種類が存在する。
図3において、MPEG−TS方式は通信用途で用いられる映像音声多重化方式であり、ストリーム情報ファイル231は複数のソースパケット311(以下、「ソースパケット311」を単に「パケット311」と称す)によって構成される。パケット311は、4バイトのATS(Arrival Time Stamp)320と、188バイトのTSパケット321の合計192バイトで構成されている。ATS320は、当該パケット311をデコーダーに入力する時刻情報を示しており、27MHzのクロック周期でカウントされた値である。
TSパケット321は、MPEG規格で定義されており、パケット毎に多重化制御情報であるPATやPMT、映像パケット、音声パケットなどに分別して多重化される。
一方、MPEG−PS方式では、ストリーム情報ファイル231は複数のPSパケット331から構成される。PSパケット331は、2048バイトの固定サイズで形成される。
MPEG−PS方式は、蓄積用途で用いられる映像音声多重化方式であるため、PSパケット331毎にATS320のような時刻情報が付与されない。なお、PSパケット331もTSパケット321と同様に、MPEG規格で定義されており、同様に映像パケット、音声パケットなどに分別して多重化される。
図4は、実施の形態1に係る映像配信装置のアドレス管理ファイルのシンタックスを示す図である。図4において、“Start_PTS401”は対象となるストリーム情報ファイル231の最初のビデオフレームのPTS(Presentation Time Stamp)を示し、“End_PTS402”は最終のビデオフレームのPTSを示す。属性情報管理テーブル410は、ストリーム情報ファイル231の映像属性情報(解像度、ビットレート、フレームレート)や音声属性情報(チャンネル数、サンプリングレート)、著作権保護に規定される暗号化必要性、多重化方式(MPEG−TS方式かMPEG−PS方式か)などの情報が記録される。
アクセスポイント管理テーブル420には、頭出し再生に必要となる情報が記述される。例えば、映像データがMPEG−2ビデオストリームでエンコードされている場合、GOP(Group Of Picture)の先頭がアクセスポイントに相当する。本実施の形態では、ストリーム情報ファイル231のどのパケットにGOPの先頭が存在するかが記述されている。
“num_of_entry421”は、アクセスポイントの総数を示し、次のループ文(for以下)は、“num_of_entry421”の数だけ繰り返される。“PTS_GOP_Start431”は、当該アクセスポイントの表示開始PTSを示し、“SPN_GOP_Start432”はストリーム情報ファイル231の先頭からアクセスポイントの先頭までの相対パケット数を示す。パケットは固定長であることから、ストリーム情報ファイル231の先頭からアクセスポイントの先頭までの相対バイト数は、“SPN_GOP_Start432”の値と、パケット当たりのバイト数とを掛け合せた値で算出できる。DMS100は、ストリーム情報ファイル231の先頭からのバイト数から、ディスク上のアクセスポイントの位置を割り出し、頭出し再生を行う。
図5は、実施の形態1に係る映像配信装置の再生制御情報ファイルのシンタックスを示す図である。図5において、“num_of_Title501”は、記録再生ドライブ部102に記録された番組プログラムの総数を示し、次のループ文(for以下)は“num_of_Title501”の数だけ繰り返される。
“Title_Attribute502”は、タイトルの総時間、タイトル名称、および記録日時のようなタイトルの属性情報が保持されている。“num_of_Play_Interval503”は、タイトルを構成している再生区間情報の総数を示し、次のループ文(for以下)は“num_of_Play_Interval503”の数だけ繰り返される。
再生区間情報には、“stream_name511”、“Start_Time512”、および“End_Time513”の情報が記録されている。“stream_name511”は再生の対象となるストリーム情報ファイル231のファイル名を、“Start_time512”は再生対象のストリーム情報ファイル231の所定区間の再生開始時間を、“End_time513”はその再生終了時間を示す。実施の形態1では上述したビデオデータのPTSを“Start_time512”および“End_time513”としている。これらの情報から、DMS100は、ストリーム情報ファイル231のどの区間を配信すればよいのかを判断することができる。
図6は、実施の形態1に係る映像配信装置のタイトル構成を示す図である。図6において、タイトルとはユーザーが選択する番組に相当するものであり、当該タイトルの情報は再生制御情報ファイル221に記述されている。また、タイトルはストリーム情報ファイル231の所定の再生区間が複数集まったものであり、例えば、図6に示すタイトル1は再生区間1と再生区間2とが集まって構成されている。なお、タイトルは1つのストリーム情報ファイル231の1つの再生区間である場合や、1つのストリーム情報ファイル231内の複数の再生区間から構成されている場合や、異なるストリーム情報ファイル231のそれぞれの所定の再生区間から構成される場合など様々な形態で構成されている。
ストリーム情報ファイル231の所定の再生区間は、再生対象のアドレス管理ファイル222の名前と、再生開始時間(“Start_Time512”)、および再生終了時間(“End_Time513”)を指定して決定される。アドレス管理ファイル222内のアクセスポイント管理テーブル420の情報と組み合わせれば、ストリーム情報ファイル231の任意のアクセスポイントの開始位置が分かる。これを利用して、ストリーム情報ファイル231の特殊再生やタイムサーチなどのランダムアクセス処理に活用することができる。
図7は、実施の形態1に係る映像配信装置と映像再生装置との間の再生制御シーケンスを示す図である。まず、ユーザーはDMP170に具備されている操作部171を通じてDMS100に記録されているコンテンツのタイトルリストの表示要求を行う(S700)。その後、DMP170はDMS100が保持するコンテンツリストの取得要求を出力し、その応答としてDMS100は自身が保持するコンテンツリストをDMP170に返却する。DMP170は、コンテンツリストを取得後、表示装置180を介し、ユーザーに再生可能なタイトル一覧として情報提示を行う。
コンテンツリスト内には、録画番組毎にコンテンツID、記録開始時間、番組時間長、番組サイズ、番組ジャンル、番組プロファイル、番組属性情報等の情報が記録されている。なお、コンテンツIDは記録番組を一意に識別可能なIDであり、DMP170からは当該コンテンツIDで再生対象番組の指示が行われる。また、番組プロファイルとは、符号化圧縮された映像や音声のコーデック情報を中心とし、DMP170で再生可能な符号化圧縮方式であるかを判別するための情報である。
ユーザーはタイトル一覧情報から再生したい番組を選択する(S710)。そうすると、DMP170は、HTTPプロトコルのGET要求を用いて、当該コンテンツIDの再生要求をDMS100に対して行う。GET要求の際には、リクエストヘッダの1つであるTimeSeekRangeフィールドを用いてコンテンツの再生開始位置を時刻指定することができる。すなわち、TimeSeekRangeフィールドとは、要求したコンテンツの再生位置を時間指定するための命令である。
DMS100は、当該GET要求を受け付けると、TimeSeekRangeフィールドで指定された開始時刻情報から、ストリーム情報ファイル231の読み出し位置を割り出す。まず、読み出し位置を特定するために、当該コンテンツIDが示すタイトルに関する再生制御情報に記録されているアクセスポイント管理テーブル420を読み出し、読み出し開始位置を決定する。
そして、当該読み出し開始位置から順次ファイルリード処理を行い、DMP170に対してネットワーク経由でストリーム情報ファイル231の配信を行う。当該配信は、DMP170もしくはDMS100からの配信中断要求があるまで続けられる。中断要求がない場合は、当該コンテンツのファイル終端まで配信されることになる。このような処理を通常再生単位処理720と呼ぶ。
通常再生中にユーザーからの特殊再生指示があった場合(S720)、DMP170は、現在の再生位置情報を取得する(例えば、現時点が0分30秒の再生位置とする)。その後、当該再生位置から特殊再生速度に応じたオフセット値を加算して、通常再生時と同様に、GET要求をDMS100に行う。特殊再生のタイムシークのオフセット値が30秒であったと仮定すると、TimeSeekRangeフィールドには、1分00秒の位置が設定される。
DMS100は、上述した通常再生時と同様に、ストリーム情報ファイル231を読み出し、DMP170に対してストリーム情報ファイル231の配信を行う。DMP170は、取得したストリーム情報ファイル231を用いてデコーダー部173で1枚の画像をデコードし、当該画像でフリーズを行う。なお、この例ではIピクチャを検出して表示するようにしている。このような処理を特殊再生単位処理730と呼ぶ。その後、同様に特殊再生のオフセット値を加算し、再度特殊再生単位処理730を行う。このような処理を繰り返し行うことで、30秒毎の画像出力がDMP170側で行われ、特殊再生動作を実現する。
DLNAガイドラインでは、前述した通常再生単位処理720と特殊再生単位処理730の処理体系が同じコマンド体系、即ち、通常再生単位720および特殊再生単位730はともにHTTPプロトコルのGET要求により操作されるため、DMS100はDMP170が通常再生状態であるか特殊再生状態であるかを把握することが難しい。
図8は、実施の形態1に係るネットワークバッファの情報蓄積量を説明するための図である。同図の横軸は時間を示しており、縦軸はストリーム情報のネットワークバッファ113への蓄積量を示している。図8に示すように、ストリーム情報のネットワークバッファ113への転送が行われると、時間とともに蓄積量が増えていく。蓄積量が、通常再生時の閾値801(以下、第1の閾値801と称す)に到達すると、ネットワークバッファ113から情報が出力され、ネットワークへの配信処理が行われる。このように情報入力処理と情報出力処理が並行して動作することで、リアルタイムでストリーム情報の配信処理が行われる。
なお、ストリーム情報の蓄積量がバッファサイズ810を超えると情報欠落処理の原因となるオーバーフローが起きる。また、蓄積量が少ない場合にネットワークへの配信が行われると、情報欠落処理の原因となるアンダーフローが起きる。
そのため、通常再生のようなリアルタイムでのストリーム配信処理においては、第1の閾値801は高い値に設定しておく必要がある。実施の形態1では、ネットワークバッファ113のサイズは3MB程度、第1の閾値801を2MBとしている。DTCP−IPによる暗号化の処理単位が1MBであることから、第1の閾値801のサイズは、送信対象と準備対象の2つ分の処理単位(=2MB)を設定しているものとして説明を進める。
一方、DMP170が特殊再生状態であると判定された場合、閾値変更部153は、ネットワークバッファ113の閾値を、特殊再生時の閾値802(以下、第2の閾値802と称す)に変更する。当該第2の閾値802は、第1の閾値801よりも小さい値を有する。上述したように、特殊再生は1枚の画像を表示する特殊再生単位処理730をタイムシークしながら繰り返し行うことで実現されているので、DMP170は通常再生時のようにリアルタイムでストリーム処理を行う必要が低い。これに着目し、閾値をアンダーフローが起きないレベルで通常再生時よりも低い値に設定することで、配信を開始するまでの時間を短縮することができ、特殊再生時の応答性能を向上することができる。また、処理負荷の高い暗号化処理を行う対象のデータ量を削減できるため、CPU負荷も低減できる。
図8において、TIME_Normal821は、通常再生時においてストリーム情報がネットワークバッファ113から出力されるまでの時間を示し、TIME_Random822は、特殊再生時においてストリーム情報がネットワークバッファ113から出力されるまでの時間を示す。上述したように、DLNAガイドラインにおいては通常再生単位処理720と特殊再生単位処理730が同じGET要求で行われるため、従来の映像配信装置では、DMP170が特殊再生を行っていても、TIME_Normal821までストリーム情報の出力が行われず、映像表示の応答性能が悪い。
図9は、実施の形態1に係る映像配信装置の特殊再生時における閾値の設定換算表を示す図である。図9において、設定換算表900は、配信するストリーム情報のビットレートと第2の閾値との対応を示す。閾値変更部153は、当該設定換算表900に基づいてネットワークバッファの閾値を変更する。第2の閾値は、その数値が高いほどネットワークバッファ113から出力されるまでの時間、すなわち上述したTIME_Random822が長いことを示す。なお、ここでは第2の閾値をビットレートに基づいて決定する例について説明を進めるが、コーデック、解像度、多重化方式を勘案して決定するようにしてもよい。
なお、ここでは配信するストリーム情報のビットレートは、下限を8Mbps、上限を24Mbpsとし、4Mbps刻みで区分けされるものとする。ここでは4Mbps刻みで説明を進めるが、もっと細分化して管理してもよい。
また、設定換算表900はあらかじめシステム制御部101がプログラム中に保持しており、第2の閾値は、システムを構成するハードウェアやソフトウェアによって、配信するストリーム情報のビットレートに対応した値に決定される。
図10は、実施の形態1に係る特殊再生時におけるストリーム情報の読出し量を説明するための図である。特殊再生時におけるストリームの情報の読み出しは、図10に示すように、タイムシークで指定された位置(♯N)から行われる。当該位置の先頭には、符号化圧縮単位であるGOPの基準フレームであるIピクチャが記録されている。
通常再生時においては、ネットワークバッファ113の閾値は第1の閾値801に設定されているため、ネットワークバッファ113への読込み量1001も多く、ストリーム情報ファイル231から多くの情報を読み込んだ後、配信処理が行われる。
一方、特殊再生時においては、DMP170側では1枚分の画像(上述したIピクチャ)をデコードして出力した後、タイムシークで次の位置(♯N+1)を指定し、当該位置における1枚分の画像を出力することを繰り返すので、通常再生時の読込み量1001でストリーム情報を読み込んでも、読み込んだ情報のほとんどは処理不要なデータになってしまう。
実施の形態1では、特殊再生時には、ストリーム情報のビットレートに基づいてネットワークバッファ113の閾値を第2の閾値802に設定するようにしているので、読込み量1002分の情報だけが読み込まれる。このようにすることで、特殊再生時における配信を開始するまでの時間を短縮することができる。また、読込み量1001と読込み量1002との差分の情報を処理する必要がないため、システム負荷を減らすことができる。
次に、図11ないし図13を用いて実施の形態1に係る映像配信装置の再生処理の流れについて詳細に説明する。図11は実施の形態1に係る映像配信装置の動作のメインフローを示す図、図12は実施の形態1に係る映像配信装置の再生状態の判定フローを示す図、図13は実施の形態1に係る映像配信装置におけるストリーム情報のビットレートの解析フローを示す図である。
図11において、メインフローでは、DMP170が配信番組を決定し、当該番組情報を取得した後に当該番組再生が指示されていることを前提としている。まず、ステップS101で配信が終了したか否かが判定される。本動作は配信が終了するまで継続して行われる。配信が終了していないと判定されると(S101:NO)、S102に遷移する。ステップS102では、配信番組に対応したストリーム情報ファイル231が記録再生ドライブ部102から読み出され、再生バッファ111に逐次蓄積される。
配信番組が著作権保護番組である場合、DTCP−IP規定によってAES暗号した情報を配信する必要がある。その場合、暗号化部112において、約1MBの単位で暗号化処理が行われた(S103)後、ネットワークバッファ113にデータが蓄積される(S104)。なお、暗号化処理が必要でない場合は、ステップS102からステップS104へ直接遷移する。
次に、DMP170が通常再生状態または特殊再生状態のどちらの再生状態であるかを取得する(S105)。通常再生状態であるか特殊再生状態であるかの判定は、再生状態判定部151によって行われる処理であり、メインフローとは別スレッドで動作しているため、メインフローと並行して処理が行われる。ステップS105は、当該別スレッドで得られた再生状態を把握するものである。
ここで、図12を用いて再生状態の判定フローの詳細動作を説明する。
再生状態の判定は、所定時間(ここでは3秒とする)以内に、DMP170からのストリーム情報の取得要求が所定回数(ここでは3回とする)以上到来した場合に、DMP170が特殊再生状態であるとして判定する。特殊再生中、DMS100は、特殊再生が継続されているか否かを判定する解除タイマーのタイムアウトイベント処理によって、DMP170が通常再生状態に遷移したか否かを判定する。
まず、ステップS201で配信が終了したか否かが判定される。本動作も配信が終了するまで継続して行われる。配信が終了していないと判定されると(S201:NO)、次に、解除タイマーのタイムアウトイベントが発生したか否かを判定する(S202)。
タイムアウトイベントとは、所定の時間(ここでは3秒)が経過した場合に発生するイベントであり、当該タイムアウトイベントが発生した場合(S202:YES)、DMP170は通常再生状態であると判定される(S203)。DMS100は、当該判定結果を保持しており、上述したメインフローのステップS105においては当該保持された判定結果を取得する。一方、タイムアウトイベントが発生していない場合(S202:NO)は、ステップS240およびステップS241で後述する解除タイマーの破棄および生成が実施できており、DMP170は特殊再生状態が継続されていると判定できる。
その後、DMP170からのストリーム情報の取得要求を示すGET要求があるか否かを判定する(S204)。GET要求がない場合は、ステップS201に遷移する。
ステップS204にて、GET要求があると判定された場合(S204:YES)は、ステップS210に遷移する。ステップS210では、DMS100が保持している上述の判定結果を取得することで、DMP170が特殊再生状態であるか否かを判定する。
特殊再生状態ではない場合(S210:YES)、通常再生状態であると判定され、ステップS211に遷移する。ステップS211では、GET要求が行われた回数をカウントするカウンタを動作させるべき初回であるか否かを判定する。具体的には、「本工程を初めて実行した(初回設定の場合)」もしくは「前回のGET要求が実行された時間との差異が3秒である(ステップS212で取得した時刻と現在の時刻を比較し、3秒以上が経過している場合)」場合には、ステップS212に遷移する。ステップS212では、現在時刻を記録する。
その後、ステップS213で上記のカウンタを初期化(1に設定)し、再度ステップS201へ遷移して処理を継続する。
一方、ステップS211でどちらにも該当しない場合は、カウンタをインクリメントした(S221)後、カウンタの値が3以上であるかを判定(S222)する。当該カウンタ値が3より小さい場合は、ステップS201に遷移し処理を継続する。
ステップS222にて、カウンタの値が3以上であった場合には、特殊再生状態であると判定され(S230)、当該判定結果はDMS100に保持される。その後、特殊再生が継続しているか判定するための解除タイマーを設定(S231)して、ステップS201に遷移し処理を継続する。
なお、ステップS210にて、DMP170が特殊再生状態であると判定された場合には、動作中の解除タイマーを一旦破棄し(S240)、再度解除タイマーを設定(S241)した後、再度ステップS201に遷移し処理を継続する。
次に、図11に戻ってメインフローのステップS106以降について説明する。上述した再生状態の判定フローの判定結果に基づいて、DMP170が特殊再生状態であるか否かを判定する(S106)。特殊再生状態であると判定された場合(S106:YES)、配信するストリーム情報ファイル231の配信区間におけるビットレートを解析し、解析したビットレートに基づいてネットワークバッファ113の閾値を第2の閾値802に変更する(S107)。なお、ステップS106にて、通常再生状態であると判定された場合(S106:NO)は、ネットワークバッファ113の閾値は第1の閾値801となる(S108)。
ここで、図13を用いてステップS107のビットレート解析フローの詳細動作を説明する。ビットレートの解析は転送量解析部152によって行われ、当該解析値に基づいて第2の閾値802は決定される。
まず、配信するストリーム情報が、MPEG−TS方式で多重化されたストリーム情報であるか否かを判定する(S301)。MPEG−TS方式のストリーム情報であると判定された場合、ストリーム情報にはパケット毎に時刻情報をATS320として保持しているため、再生バッファ111内のストリーム情報を直接読み出すことで、配信するストリーム情報のビットレートを算出することができる。
ステップS302では、再生バッファ111に転送されたストリーム情報をN分割する。なお、ここでは5分割するものとし、ストリーム情報の分割はパケットサイズの整数倍になるようにされるものとして説明を進める。
分割単位毎に先頭と終端のパケット311を読み出す。その後、パケット311の先頭部分に記録されているATS320を読み出し、当該差分を算出する。ATS320は前述したように、27MHzのカウンタであるため、差分値を27Mで除算すると、分割単位が何秒でデコーダーに供給すべきかが判明する。
当該算出された値は、分割単位毎のビットレートとみなすことができる。このように5分割されたそれぞれにおいてビットレートを算出する(S303)。そして、得られたビットレートの平均値を、再生バッファ111に蓄積されたストリーム情報のビットレートとする(S304)。
なお、ここでは5つの分割単位の平均値をビットレートしてみなしているが、分割単位毎に取得したビットレートの最大と最小を除いた3つの平均値としてもよい。そのように構成すれば、たとえば通信異常等の原因で、ATS320が壊れていた場合についても異常値を取り除くことができる。また、分割単位毎に理論許容値を大きく上回るデータや下回るデータが観測された場合、当該情報を取り除くことで通信異常等の理由によりパケット311が破壊されていたとしても、当該影響を限定できる。
このように解析された平均ビットレートが、例えば10Mbpsであった場合、図9に示した設定換算表900に基づいて、第2の閾値802が750KBに決まる(S305)。
その後、配信番組が暗号化を必要とするか否かを判定する(S306)。暗号化が必要である場合(S306:YES)は、CPU処理時間を要するため転送処理が遅くなり、ネットバッファのアンダーフローがおきる可能性があるため、第2の閾値802に所定の重み付けを行う。重み付け係数を1.2倍とすると、第2の閾値802は750KB×1.2=900KBとなる。なお、重付け係数はハードウェア暗号を行うかソフトウェア暗号を行うかによってその値を変更するようにしてもよい。なお、暗号化を必要としない場合(S306:NO)は、重み付けを行わずに処理を終了させる。
一方、ステップS301にて、配信するストリーム情報がMPEG−PS方式で多重化されていると判定された場合、ストリーム情報内にATS320のような時刻情報は付与されていない。そのため、タイムシークで指定された時間が属するアクセスポイント情報を再生制御情報から探索する。
ステップS310では、アクセスポイント情報(EP #N)に記録された当該GOPの開始時間情報と開始アドレスを取得する。その後、次のアクセスポイント情報(EP #(N+1))に記録されたGOPの開始時間情報と開始アドレスを取得する(S311)。そして、EP #(N+1)とEP #Nの開始アドレスの差分を、EP #(N+1)とEP #Nの開始時間の差分で除算すれば、配信するストリーム情報のビットレートが算出できる(S312)。
その後、ステップS305と同様の手順で第2の閾値802を決定する(S313)。そして、ステップS306に遷移し、MPEG−TSストリームの処理と同様の処理を続ける。
なお、ここではMPEG−PS方式とMPEG−TS方式の両方のストリームで、同じ設定換算表900を用いているが、別のテーブルで設けて利用してもよい。
図11に戻って、メインフローのステップS109以降について説明する。上述したようにステップS107にて、第2の閾値802が決定されると、メイン動作フローのステップS109以降の処理が行われる。ステップS109では、ストリーム情報の蓄積量がネットワークバッファ113の閾値を越えたか否かを判定する。もし超えていれば、ネットワークを介してDMP170へのストリーム情報の配信処理(S110)を行い、ステップS101に遷移し処理を続ける。もし、ストリーム情報の蓄積量がネットワークバッファ113の閾値を超えていない場合は、配信処理を行わずに、ステップS101に遷移し処理を続ける。
実施の形態1によれば、DMP170から出力されるストリーム情報の取得要求(GET要求)の頻度に基づいて、DMP170が通常再生状態または特殊再生状態のどちらの再生状態であるかを判定し、特殊再生状態であると判定された場合、配信するストリームのビットレートに応じて、ネットワークバッファ113の閾値を通常再生時よりも小さい値に変更するようにしたので、より少ないデータ量で配信処理を実行でき、配信を開始するまでの時間を短くすることができる。これにより、特殊再生時の応答性能を向上することができる。また、映像表示指示から表示されるまでの時間が短縮されるため、単位時間当たりの表示枚数を増やすことができ、特殊再生時の画像の表示を滑らかにすることができる。
また、実施の形態1によれば、DMP170に特別な構成を必要とせずに特殊再生時の応答性能を向上することができる。
また、無駄なデータに対して処理負荷の高い暗号化処理を行うことがないため、システム処理負荷が軽減され、より安価なCPUで動作可能となる。さらに、特別なハードウェアを持つ必要がなく、DMS100のコストアップなく特殊再生時の応答性能を向上することができる。
また、ストリーム情報の取得要求の頻度からDMP170の再生状態を判定するようにしているので、DLNAガイドラインで規定されているように通常再生と特殊再生のコマンド体系が同じであっても、再生状態の判定を簡単に判定することができる。
また、配信するストリーム情報がMPEG−2 TSストリームであった場合、当該ストリームに含まれるATS320に基づいてビットレートを解析するようにしているので、ストリーム情報ファイルのみでビットレートを解析することができる。さらに、処理速度が高速である再生バッファ111に一時的に蓄積されたストリーム情報のビットレートを解析するようにしているので、高速でビットレートの解析を行うことができる。
また、配信するストリーム情報がMPEG−2 PSストリームであった場合、当該ストリームに対応する再生制御情報に含まれるアクセスポイント情報に基づいてビットレートを解析するようにしているので、ストリーム情報ファイル単体で時刻情報の取得ができない場合でも、ビットレートの解析を行うことができる。
なお、実施の形態1では特殊再生として早送り再生を示したが、タイムシークによって時刻指定される位置が異なること以外は、巻き戻し再生の場合についても同様である。
また、巻き戻し再生により始端に到達した場合は、最初のフレームの映像を出して一時停止してもよいし、始端から通常再生を行うようにしてもよい。また、始端に到達した際には上述した解除タイマーのタイムアウト判定を待つことなく、例外処理としてネットワークバッファ113の閾値を第1の閾値801に設定する。同様に、早送り再生によって特殊再生オフセット量を加算した結果、終端を超える場合は、タイムシークの指定位置を終端とし、当該終端の画像を表示したまま一時停止してもよいし、終端の画像を表示させずに再生終了処理を行ってもよい。この場合についても、前述した解除タイマーのタイムアウト判定をまつことなく、例外処理としてネットワークバッファ113の閾値を第1の閾値801に設定する。
また、特殊再生中に一時停止処理が行われた場合については、当該フレームで表示を継続しておくと同時に、ネットワークバッファ113の閾値を第1の閾値801に変更するようにしてもよい。このようにすることで、通常再生復帰時にすぐに映像表示を行うことができる。
また、実施の形態1で示した特殊再生時にはネットワークの転送帯域に余裕がある。そこで、当該区間を利用して、独自再生方式を実現するためのメタデータの転送処理等を行ってもよい。そうすることで輻輳がおきるなどの影響を防ぐことができる。
また、実施の形態1では、図9に示したように第2の閾値802をビットレートに応じて変更するものを示したが、ビットレートに対応させずに第2の閾値802を1つの値にするようにしても一定の効果を得ることができる。