説明

電子機器

【課題】従来は、ストリーム配信映像にランダムアクセスするためのタイムチャートを作成する際に、H.264タイプの符号化TSデータをフレームデータに復号化し、そのフレーム情報を取得することで映像復号化最小単位の再生位置を探索する必要がある。したがってタイムチャートの生成に時間と計算機資源とが必要となる、という課題がある。
【解決手段】以上の課題を解決するために、本発明は、H.264タイプの符号化TSデータを復号化することなく、映像復号化の最小単位の開始点を探索することができる技術を提供する。具体的には、映像復号化最小単位には一のSPSが含まれているとして、そのSPSの前にあるAUデリミター(AU Delimiter)を映像復号化最小単位の境界であると判断し、そのAUデリミターの先頭時間情報を算出する機能を備える電子機器を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、H.264タイプで符号化された映像データについて、その映像復号化の最小単位の開始点を、符号化トランスポートストリーム(TS)データを復号化することなく符号化TSデータのままで探索するための技術に関する。
【背景技術】
【0002】
現在、光等の高速インターネット通信網の整備によりデータ量の大きな映像データでも容易に送信できるまでに伝送路容量が向上したこと、また映像符号化効率が向上し送信データサイズがコンパクトになったことなどを受けて、実用的なレベルでのストリーミング映像配信サービスが様々提供されている。
【0003】
ところで、ストリーミング映像配信は、符号化TS(トランスポートストリーム)データが再生時系列に沿って順次クライアント端末に送信されるシーケンシャルなデータ送信方式である。したがってクライアント端末側でスキップ操作などのランダムアクセス操作を行った場合には以下のような手順をとる。すなわち、まず、クライアント端末から「2分30秒」などのスキップ先の再生位置を含むリクエストデータを映像配信サーバに対して送信する。すると映像配信サーバでは、予め用意されているタイムチャート(再生位置とその位置の符号化TSデータとを示すテーブル)を参照し、リクエストに応じた位置から符号化TSデータをクライアント端末に返信する、という具合である。
【0004】
また、H.264タイプを含むMpeg系の映像符号化データは、フレーム間予測(前後のフレームを参照して符号化/復号化する技術)を利用するため、単独での復号化ができないフレーム(P,Bフレームなど)を含んでいる。そのため上記タイムチャートは、単独で復号化可能な映像復号化最小単位の先頭フレーム(Iフレームなど)の符号化TSデータから送信されるよう作成されている。つまり、上記タイムチャートでは、例えば「2分29秒(49番目のIフレームの符号化TSデータ位置)」、「2分32秒(50番目のIフレームの符号化TSデータ位置)」、・・・と言った具合に、映像復号化最小単位での再生位置が示されている。したがって前記リクエストに含まれる「23分30秒」地点の符号化TSデータは単独復号化が不可能な例えばBフレームなどであり、そのためリクエスト位置に近似する2分29秒のIフレームからの符号化TSデータがクライアント端末に返信されることになる、という具合である。
【特許文献1】特開2003−018568号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし従来の技術には以下のような課題がある。すなわち、上記のようにタイムチャートでは、映像復号化最小単位でその再生位置が示されている必要がある。ここで、Mpeg2タイプで符号化された符号化TSデータであれば、いわゆる「GOP(グループ・オブ・ピクチャ)」と呼ばれる映像復号化が可能な最小単位で符号化されているデータ構造の先頭に、GOPの開始を示すスタートコードが定義されている。したがって、符号化TSデータを復号化しフレーム情報を取得せずとも、符号化TSデータのままGOPのスタートコードを探索することで前記条件を満たすタイムチャートを生成することができる。
【0006】
ところが、Mpeg2タイプは、一般にH.264タイプと比較して1/2から1/3の符号化圧縮効率と言われており、一定以上の画質を維持するには符号化TSデータのデータ量が極めて大きくなる傾向がある。そのため、Mpeg2タイプはストリーミング映像配信に適した圧縮符号化形式ではない。
【0007】
しかし、ストリーミング動画配信に適した圧縮符号化形式であるH.264タイプ(その他のMpeg4のパートを含む)においては、上記GOPのスタートコードに相当する定義がなされていない。そのためタイムチャートを生成する場合には、いったん符号化TSデータをフレームデータに復号化しそのフレーム情報を取得することで映像復号化最小単位の再生位置を探索する必要がある。
【0008】
したがって、H.264タイプで符号化された映像データをストリーミング配信する場合、従来ではタイムチャートの生成に時間と計算機資源とが必要となり、手間がかかってしまっている、という課題がある。
【課題を解決するための手段】
【0009】
以上の課題を解決するために、本発明は、H.264タイプの符号化TSデータを復号化することなく、映像復号化の最小単位の開始点を探索することができる技術を提供する。具体的には、映像復号化最小単位には一の「SPS(シーケンス単位での符号化情報が含まれるデータ)」が含まれているとして、そのSPSの前にある「AU Delimiter(データのアクセス単位の先頭を示すデータ)」を映像復号化最小単位の境界であると判断する機能を備える電子機器を提供する。
【0010】
さらに詳細には、H.264タイプの符号化トランスポートストリームデータのトランスポートストリームヘッダの直後に配置される時間基準を取得する「時間基準取得部」と、映像復号化最小単位の先頭バイト位置を探索する「先頭探索部」と、取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索部にて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する「先頭時間情報取得部」と、を有する電子機器である。
【0011】
また、上記機能を実現するよう電子機器を制御する電子機器の制御方法なども合わせて提供する。なお、本発明はH.264タイプ(すなわちMpeg4のパート10をはじめとする各種規格)の符号化TSデータに必ずしも限定されず、Mpeg4のパート10以外のパートで規格化されている符号化タイプも含むものである。
【発明の効果】
【0012】
以上のような構成をとる本発明によって、H.264タイプの符号化TSデータのままで探索可能なSPSを見つけ出し、そのSPSの前にあるAUデリミターの再生時間を映像復号化最小単位の先頭位置の再生時間として取得することができる。したがって、H.264タイプであっても、その符号化TSデータを復号化することなく、映像復号化の最小単位の開始位置を探索して、その再生時間を示すタイムチャートを生成することができる。
【発明を実施するための最良の形態】
【0013】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
【0014】
なお、実施例1は、主に請求項1、5、6、7、8について説明する。また、実施例2は、主に請求項2について説明する。また、実施例3は、主に請求項3について説明する。また、実施例4は、主に請求項4について説明する。
【0015】
≪実施例1≫
【0016】
<概要>
【0017】
図1は、本実施例の電子機器の一例である映像配信サーバから配信される符号化TSデータ、およびそのタイムチャートの一例を説明するための概念図である。この図1(a)にあるように、符号化TSデータは、AUD(AUデリミター)によりその境界が示されている「アクセスユニット」が集まって構成されている。しかし、例えばAUD2のアクセスユニットに含まれる動画データ2は、図1(b)に示すようにBフレームから始まる動画データであるため、そこを送信データの先頭としても、ストリーム送信先にてフレームデータに復号することは出来ない。
【0018】
一方、SPSの直前にあるAUD1やAUD3のアクセスユニットに含まれる動画データ1や動画データ3は、図1(b)に示すようにIフレームから始まる動画データであるため、そこを映像復号化の最小単位の先頭としてストリーム送信することが出来る。
【0019】
そこで本実施例の電子機器では映像復号化最小単位の先頭として、例えば上記のようにSPS部分の直前に配置されるAUD(AUデリミター)の位置を探索する。そして、探索したAUデリミターの先頭位置の再生時間(再生位置)、例えば「00:02.29」、「00:02.32」等を算出することで、符号化TSデータを復号化することなく図1(c)に示すようなタイムチャートを生成することを特徴とする。
【0020】
ここで本実施例において、データの復号化をせずにこのAUデリミターなどの先頭位置の再生時間を算出する方法について、図2に示す符号化TSデータのさらに詳細なデータ構造を参照して以下に説明する。この図にあるように、符号化TSデータは、例えば188バイトのTSパケットの集まりで構成されている。そして、前述のように例えばSPS(α1)の直前にあるAUDの先頭位置(β1)を、映像復号化最小単位の先頭位置とすることができる。そして当該先頭位置の再生時間を算出するために、ここではPCR(γ1)を利用する例を挙げて説明する。「PCR」とは、その直後の動画データがデコーダバッファから再生のために出力されるタイミングを示す情報(例えば140秒)を含み、符号化TSデータ中に配置されている。そこで、このPCRの配置位置と、前記SPSの直前にあるAUDの先頭位置との距離、すなわち符号化データ量を算出し、ビットレート(デコードされた映像データの単位時間当たりのデータ量)からその経過時間(例えば9秒)を算出する。そして、その経過時間をPCRで示される時間基準に加えたり減じたりすることで、映像復号化最小単位の先頭位置の再生時間「149秒」を算出する、という具合である。
【0021】
<機能的構成>
【0022】
図3は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように本実施例の「電子機器」(0300)は、「時間基準取得部」(0301)と、「先頭探索部」(0302)と、「先頭時間情報取得部」(0303)と、を有する。
【0023】
なお、「電子機器」とは、演算回路とメモリ、I/O(インプット/アウトプット)を備えた機器をいい、ここでは映像データの再生や配信をする機能をさらに備える機器をいう。また、本発明における電子機器は、例えば上記構成と機能を備えたサーバ装置に組み込まれても良いし、P2P(ピアツーピア)技術による映像配信を行う機能を備えるクライアント端末装置に組み込まれても良い。あるいは、放送映像データをTSストリームのまま保存し再生するレコーダーなどに組み込まれても良い。
【0024】
また、以下に記載する本電子機器の機能ブロックは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、CPUや主メモリ、バス、あるいは二次記憶装置(ハードディスクや不揮発性メモリ、CDやDVDどの記憶メディアとそれらメディアの読取ドライブなど)、印刷機器や表示装置、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のI/Oポート、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、情報入力に利用されるユーザーインターフェースなどが挙げられる。
【0025】
そして主メモリ上に展開したプログラムに従ったCPUの演算処理によって、インターフェースを介して入力されメモリやハードディスク上に保持されているデータなどが加工、蓄積されたり、上記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。また、上記のような汎用コンピュータ以外に、上記演算回路やプログラムを一のハードウェア上にて実現した専用機器として実現し、サーバ装置や端末装置に組み込んでも良い。
【0026】
また、この発明は電子機器として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品、及び同製品を記録媒体に固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる(本明細書の全体を通じて同様である)。
【0027】
「時間基準取得部」(0301)は、符号化TSデータから時間基準を取得する機能を有する。「時間基準」は、H.264タイプの符号化TSデータのTSパケットヘッダに配置され、その直後に含まれるフレームのデコードや再生などの各種タイミングを示す情報をいう。具体的には、例えば、自身の直後に含まれるフレームの再生時間や、デコーダバッファからの出力タイミングなどが挙げられる。したがって、例えば、時間基準において「2分29秒」というタイミングが示されていれば、符号化TSデータ中でその時間基準の直後に配置されているフレームは「2分29秒」にデコーダバッファから再生のためにVRAMなどに出力されることになる。そして、図2で説明したように、この時間基準から映像復号化最小単位の先頭バイト位置までの距離を利用して、その映像復号化最小単位の再生時間を算出する、という具合である。またそのために、ここで取得される時間基準と関連付けてその配置位置を示す情報も含み取得すると良い。
【0028】
なお時間基準としては、例えば前述の「PCR」などが挙げられる。その場合この時間基準取得部は、図4に示すようにトランスポートストリームのPCR部分から時間基準を取得する「PCR取得手段」(0404)を有すると良い。具体的に、PCRはTSパケット内での配置位置は決まっている(TSヘッダの直後にある)が、すべてのTSパケットに含まれているとは限らない(どのTSパケットにPCRが配置されるかは、エンコーダの設定次第である)。
【0029】
したがってPCR取得手段は、まず、図2に示すような188バイトのTSパケット内にPCRが配置されているか、を判断することになる。そして、その配置有無の判断処理においては、前述のようにTSパケット内でのPCRの配置位置は決まっていることから、TSパケット内のPCRの配置されるべき所定の位置に有る値を判定することで判断できる。そして、PCRが含まれている旨判断されれば、そのPCRで示される時間基準やその配置位置を取得することができる。
【0030】
以下、このPCR取得手段によるPCRの取得処理の一例を、図5及び図6のフロー図を用いて説明する。PCR取得手段では、前述のように、まずTSパケット内にPCRが配置されているかの判断を行う。すなわち図5にあるように、符号化TSデータの所定の読込データ位置から188バイト分(一パケット分)のTSパケットを読み込み(ステップS0501)、主メモリなどに格納する。続いて、読み込んだ188バイトのデータの27ビット目の値aを取得する(ステップS0502)。そしてCPUの論理演算処理(ステップS0503)によってaの値が1では無いと判断された場合は、当該パケットにはPCRが含まれていないとして(ステップS0507)、図示しないループカウンターに1を加えて、さらに次のTSパケットの読み込みを実行し、上記判断処理を繰り返す。
【0031】
一方、a=1との判断結果が出力された場合、今度は、188バイトのデータの先頭から44ビット目の値bを取得し(ステップS0504)、その値が1であるか否かの判断処理を実行する(ステップS0505)。そして、その判断処理の結果、b=1であるとの判断結果が出力されれば、読み込んだTSパケットにPCRが含まれているとして(ステップS0506)、つづいて図6で示すように時間基準の算出される。また、それとともにPCRの配置位置の算出処理が実行されても良い。
【0032】
図6(a)にあるように、前述の処理によってPCRが有る旨の判断がなされると、読み込んだ188バイトのデータの先頭から48ビットから81ビットの2進数値(PCR baseの値)を10進数eに変換する(ステップS0601)。
【0033】
なおPCR Base(ISO/IEC13818-1 2.4.3.4に規定)は、処理タイミングを90kHzのベースクロックにおけるクロック数で示しているので、この値eをH.264のベースクロックに対応する値に換算する必要がある。ここで例えばH.264のベースクロックが27MHzであれば、値eを300倍すれば良い。そこで本処理例では、PCR baseの値eを例えば300倍(この値はベースクロックに応じて様々であって良い)した値Eを算出する(ステップS0602)。
【0034】
しかし、このように値Eを300倍などとした場合、PCR Base値の精度が低下してしまう。そこで精度低下分を補完するため、PCRにて示されるPCR Extension(ISO/IEC13818-1 2.4.3.4に規定)のデータを利用する。具体的には188バイトのデータの先頭から88から97ビットの2進数値(PCR Extension)を10進数fに変換する(ステップS0603)。そして、その補完値fをEに加え、その値を「秒」などに換算するためH.264のベースクロック(例えば27MHz)で除することで、PCRで示される時間基準(秒数など)を算出する(ステップS0604)、という具合である。
【0035】
また、図6(b)に示すように、ここでそのPCRの配置位置を算出しても良い。具体的には、図5に示すようなPCR有無の判定処理の結果、PCRがある旨の判断がされると、データの読み込み位置を算出する。具体的には、例えば188バイトのTSパケット内にPCRが含まれているかの判定処理を繰り返す際にループカウンターのカウントを行う。そしてループカウンターの値が4、すなわち4個目のTSパケットにPCRが含まれていた場合、その読込位置は188×4バイト=752バイトに、「12バイト」を加えた値となる。なお、これはPCRのTSパケット(188バイトのデータ)内での配置位置は固定であり、その位置はTSパケットの先頭から12バイト目であるからである。
【0036】
続いて本実施例の電子機器では、以下の構成にて映像復号化最小単位の先頭バイト位置を取得する。
【0037】
「先頭探索部」(0302)は、映像復号化最小単位の先頭バイト位置を探索する機能を有する。「映像復号化最小単位」とは、符号化TSデータにおいて、単独での復号化が可能なデータ構造の最小単位をいい、例えば「IBB・・P」のフレームを含むデータ構造単位などが挙げられる。そして本発明では、この映像復号化最小単位の先頭を探索するために符号化TSデータ内に配置される「SPS」を利用することを特徴とする。「SPS(シーケンス・パラメータ・セット)」とは、符号化プロファイルや符号化レベルなど、参照シークエンスの符号化に関する情報が示される符号化TSストリーム内のヘッダ部分をいう。具体的には、SPSの先頭バイト位置や、その近傍のバイト位置などを映像復号化最小単位の先頭バイト位置として探索する、という具合である。
【0038】
そして、例えば先の時間基準取得部にて取得した「時間基準の配置位置」と、ここで取得される「映像復号化最小単位の先頭バイト位置」までの距離を利用して、本実施例では映像復号化最小単位の再生時間を算出することができる、という具合である。
【0039】
なお、この映像復号化最小単位の先頭バイト位置としては、SPSそのものの先頭バイト位置のみならず、前述のように例えば「SPS部分の直前に配置されるAUデリミターの先頭バイト位置」なども挙げられる。その場合、この先頭探索部は、図4に示すように、SPS部分の直前に配置されるAUデリミターを映像復号化最小単位の先頭バイト位置として取得するAUデリミター(Delimiter)取得手段(0405)を有すると良い。具体的には、まずTSパケット単位(188バイト単位)で読込んだデータ内に、SPSを示す所定の値が含まれているかを判断し、含まれていると判断されればその直前にあるAUデリミターの先頭バイト位置を取得する、という具合である。
【0040】
以下、AUデリミター取得手段によるSPS部分の直前に配置されるAUデリミターの取得処理の一例を、図7のフロー図を用いて説明する。この図にあるように、まずループカウンターを0にセットし(ステップS0701)、符号化TSデータの所定の読込データ位置(最初はデータの先頭)から、符号化TSデータを188バイト分読み込む(ステップS0702)。
【0041】
続いて、読み込んだデータ内にA(0x00000127)、B(0x00000147)、C(0x00000167)のいずれかが含まれるか、をCPUの論理演算処理にて判断する(ステップS0703)。なお、上記A,B,Cのいずれかの値は、SPSに必ず含まれるSPSの識別値である。そして、上記値が含まれていなければ、読み込んだ一パケット分の188バイトのデータ内にSPSは含まれていないとして、ループカウンターに1を加えて(ステップS0704)、読込データ位置を188バイト先に設定して(ステップS0705)、上記処理を繰り返す。
【0042】
また、読み込んだTSパケット内に上記A、B、Cいずれかの値がある場合、当該TSパケット内にSPS部分が含まれていると判断することができる。ここで、AUデリミターではなくSPSそのものを利用する場合、読込んだTSパケット内でのSPSの出現バイト位置と、ループカウンター値(SPS発見までに読込んだ188バイトのTSパケットの数)から、符号化TSデータ全体の中での当該SPSの先頭バイト位置を、映像復号化最小単位の先頭バイト位置として算出すると良い。
【0043】
一方、AUデリミター取得手段においてAUデリミターを取得する場合、前述の処理により発見されたSPSの直前にあるAUデリミターの先頭バイト位置を取得することになる。
【0044】
ただし、符号化TSデータを188バイトのTSパケットに分割した場合、例えば図2に示す3個目のパケットのように、一つのAUデリミターが分断され、前後のパケットに分離して存在することがある。そこで、AUデリミター取得手段では、例えば以下のような処理を実行すると良い。
【0045】
すなわち、図7にあるように、ステップS0703での判断処理によって読込んだTSパケット内にSPSが有る旨の判断結果が出力されると、続いて読込んだ188バイトのデータ内に、AUデリミターの識別値D(0x00000109)が含まれているか判断する(ステップS0706)。
【0046】
そして値Dが含まれていれば、SPSが含まれている188バイトのデータ内にAUデリミターの先頭がある(AUデリミターが分離されていない)ことになり、現在読込んでいるTSパケット内にAUデリミターの先頭が存在することになる。したがって、まず、読込んだ188バイトのデータの先頭からのDの出現バイト数x1を取得する(ステップS0707y)。つづいて、ループカウンターr×188+x1を、映像復号化最小単位の先頭バイト位置(SPSの直前にあるAUデリミターの先頭バイト位置)として取得する(ステップS0708y)、という具合である。
【0047】
一方、ステップS0706にて値Dが含まれていないと判断された場合、AUデリミターが分離(あるいはちょうどAUデリミターとSPSとの境界で分離)され、その先頭は読込んだパケットデータの1つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの1つ前の188バイトのデータの先頭からのDの出現バイト数x2を取得する(ステップS0707n)。つづいて、(r−1)×188+x2を、映像復号化最小単位の先頭バイト位置として取得する(ステップS0708n)、という具合である。
【0048】
ところでAUデリミターのバイト数は6バイトと固定であるため、例えば、発見されたSPSの先頭から6バイト前をAUデリミターの先頭バイト位置と特定し、その先頭バイト位置を取得しても良い。具体的には、図26にあるように先頭バイト位置を取得することができる。図26にあるS2601からS2605はS0701からS0705と同じ処理内容である。読込んだTSパケット内にSPSが有る旨の判断結果が出力される(ステップS2603)と、続いて読込んだ188バイトのデータの先頭とA、B、Cいずれかの出現バイト位置の差が6バイト以上かを判断する(ステップS2606)。
【0049】
そして差が6バイト以上であれば、SPSが含まれている188バイトのデータ内にAUデリミターの先頭がある(AUデリミターが分離されていない)ことになり、現在読込んでいるTSパケット内にAUデリミターの先頭が存在することになる。したがって、まず、読込んだ188バイトのデータの先頭からのA、B、Cいずれかの出現バイト数y1を取得する(ステップS2607y)。つづいて、ループカウンターr×188+y1+6を、映像復号化最小単位の先頭バイト位置(SPSの直前にあるAUデリミターの先頭バイト位置)として取得する(ステップS2608y)、という具合である。
【0050】
一方、ステップS2606にて差が6バイト未満と判断された場合、AUデリミターが分離(あるいはちょうどAUデリミターとSPSとの境界で分離)され、その先頭は読込んだパケットデータの1つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの1つ前の188バイトのデータの先頭からのA、B、Cいずれかの出現バイト数y2を取得する(ステップS2607n)。つづいて、(r−1)×188+y2を、映像復号化最小単位の先頭バイト位置として取得する(ステップS2608n)、という具合である。
【0051】
そして本実施例では、このように算出された「PCR時間(時間基準)」と「時間基準の配置位置」と、「映像復号化最小単位の先頭バイト位置」と、を利用して、以下のようにして映像復号化最小単位の先頭位置が再生されるべき時間を算出する。
【0052】
「先頭時間情報取得部」(0303)は、取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索部にて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から先頭時間情報を取得する機能を有する。「先頭時間情報」とは、各映像復号化最小単位の先頭位置が再生されるべき時間を示す情報をいい、例えばデコーダバッファから出力されるタイミングなどで示される時間情報が挙げられる。そして、この先頭時間情報を用いてランダムアクセス用のタイムチャートが生成される。また、「デコードビットレート」とはデコードされた映像データの単位時間当たりのデータ量をいい、例えば500kbps(1秒あたりの映像データ量が500kbit)などの値が挙げられる。
【0053】
なお、先頭時間情報を算出するためのパラメータである「時間基準」、「時間基準の配置(バイト)位置」、および「映像復号化最小単位の先頭バイト位置」の取得については、すでに上記各構成要件にて記載したのでその説明は省略する。ここでは、もう一つの算出用パラメータである「デコードビットレート」の取得処理、および、これらパラメータを用いた先頭時間情報の算出処理について以下に詳述する。
【0054】
まず、デコードビットレートの算出方法としては以下のような方法が挙げられる。すなわち、例えば2つのPCRの配置位置を取得し、そのPCR間の距離(データ量)を算出する。また、それぞれのPCRの値はデコーダへの入力時間を示す時間基準を表すので、その時間基準の差分値が2つのPCR間の映像データ再生時間を示すことになる。そこで、「2つのPCR間の距離(データ量)」を「2つのPCR間の映像データの再生時間(時間基準の差分値)」で除することでデコード映像データの単位時間当たりのデータ量、すなわちデコードビットレートを算出する、という具合である。
【0055】
図8は、符号化TSデータのデコードビットレートを取得する上記処理の流れの一例を表すフローチャートである。この図にあるように、まず図6に示す処理により一のPCR時刻T1を取得する。続いて、次のPCRを取得するため、先の読込みデータ位置から188バイト加えた位置を読込みデータ位置として設定する(ステップS0801)。
【0056】
また、次のPCR発見処理にあたり、ビットレート算出用のループカウンターrbを1に設定する(ステップS0802)。そしてS0801で設定した読込みデータ位置から188バイト分(一パケット分)のデータを読込む(ステップS0803)。続いて図5で示すような処理を行い次のPCRが読込んだ188バイトのデータに含まれるか判定処理を実行する(ステップS0804)。そして、その判定処理の結果(ステップS0805)、次のPCRが含まれていなければ、読込みデータ位置を188バイト加えた先の位置に設定し(ステップS0806)、ループカウンターrbに1を加え(ステップS0807)、上記処理を繰り返す。
【0057】
そしてPCR有無の判定処理の結果、次のPCRがあるとの判定がされると、図6に示す処理を実行し次のPCRの時間基準T2を取得する(ステップS0808)。そして、先のPCR時間T1と、次のPCR時間T2の差分値tを、そのPCR間の動画データの再生時間を示す値として取得する(ステップS0809)。また、PCRは188バイトのデータ(TSパケット)のTSヘッダ直後に配置されるため、両PCR間にあるデータ量は、読込んだデータ量と等しくなる。したがって、一のPCR発見から次のPCR発見までにかかった繰返し回数rb×188を演算し、そのデータ量dを算出する(ステップS0810)。
【0058】
そして、最後に「両PCR間のデータ量d」を、「両PCR間の差分時間t」で除することで単位時間当たりのデコードビットレートが算出される、という具合である。なおデコードビットレートの算出にあたり、上記処理例では、PCRやSPSヘッダなどの映像データ以外のデータも含めてそのデコードビットレートを算出したが、映像データのみのデコードビットレートを算出するよう構成しても良い。
【0059】
そして、図2に示すようなデータ構造をとる符号化TSデータにおいて、「時間基準の配置バイト位置」(γ1)と「映像復号化最小単位の先頭バイト位置」(β1)の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームのデコーダバッファへの出力タイミングなどで示される再生時間を算出する。そして、算出した再生時間を、PCRで示される「時間基準」に加えることで、β1における再生時間、すなわち先頭時間情報を算出することができる。
【0060】
このように、本実施例の電子機器によって、符号化TSデータを復号せずに、その映像復号化最小単位の再生時間である先頭時間情報を取得することができる。そして、符号化TSデータ内の各先頭時間情報を上記処理を繰り返すことで順次取得し、ランダムアクセス用のタイムチャートを生成することができる。
【0061】
なお、本実施例の電子機器では時間基準の取得その他の処理においてTSパケットを前から順に読込む構成を例に挙げて説明しているが、もちろん、後ろから順に読込んで上記各処理を行うよう構成しても良い。
【0062】
<処理の流れ>
【0063】
以下、本実施例の先頭時間情報算出処理における全体の流れについて、その一例を図9から図11を用いて説明する。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。まず、本実施例の電子機器では、先頭時間情報を算出するため各種パラメータの初期化処理を行う。
【0064】
図9は、この初期化処理の一例を表すフローチャートである。この図にあるように、PCR位置を0とし(ステップS0901)、PCR時間も0とする(ステップS0902)。また、ループカウンターを0とする(ステップS0903)。
【0065】
そして、ビットレート値を0とし(ステップS0904)、ビットレート用ループカウンターを0とする(ステップS0905)。また、読込みデータ位置を0とし(ステップS0906)、ビットレート用読込みデータ位置も0と設定する(ステップS0907)。また、AUデリミター値を0とし(ステップS0908)、差分値も0と設定する(0909)。
【0066】
そしてこのように各パラメータの初期化を行った後、つづいてビットレートの算出処理を行う。なお、ここで、映像復号化最小単位の先頭バイト位置探索の前にビットレートの算出処理を行う理由は、以下の例外処理に対応するためである。すなわち、前述の処理においては、ビットレートの算出のためにまずPCRを取得している。しかし、例外的にPCR取得の前に映像復号化最小単位が取得された場合、その映像復号化最小単位の先頭バイト位置までのビットレートは不明なままとなってしまう。そこで、このような例外時の対応のために、まずビットレートを最初に求めておく、という具合である。
【0067】
図10は、この例外処理のためのビットレート算出処理の一例を表すフローチャートである。この図にあるように、まず前述の各種パラメータの初期化処理を実行し(ステップS1001)、続いて、読込みデータ位置から188バイト分(一パケット分)のデータを読込む(ステップS1002)。そして図5に示すようなPCR有無の判定処理を実行し(ステップS1003)、PCRが読込んだデータ内に含まれていなければ読込み位置を188バイト加えた先に設定し(ステップS1004)、PCR有無の判定処理を繰り返す。そして、PCRが有る旨の判定結果が出力されると、図6や図8に示すような処理によりビットレートを(暫定的に)算出する(ステップS1004)。
【0068】
そして、読込みデータ位置を0に戻し(ステップS1005)、PCR位置およびPCR時間を0と設定して(ステップS1006)、次の先頭時間情報の算出処理を実行する。
【0069】
なおH.264タイプで符号化される場合、ビットレートは単位時間当たりの符号量が可変となるいわゆる「VBR」である。そのため、ビットレートの算出は、映像復号化最小単位ごとにその近辺のPCRを利用して実行されることが望ましい。
【0070】
図11は、上記例外処理の後に実行される先頭時間情報の算出の一例を表すフローチャートである。この図にあるように、まず、図5に示す処理を実行し、188バイト分のデータの読込みと、その読込んだデータ内にPCRが有るか否かの判定処理を行う(ステップS1101)。ここで、読込んだ188バイトのデータ内にPCRが無い旨の判定結果であり、かつステップS1105にてSPSとAUデリミターが有る旨の判断結果が出力された場合、先頭時間の算出処理において、前述の例外処理にて算出されたビットレートが使用されることになる。
【0071】
一方、ステップS1101にてPCRが有る旨の判定結果が出力された場合、図6にて示すようにPCR時間の取得(ステップS1102)、およびPCR位置の取得(ステップS1103)が実行される。また、続いて、図8に示すような処理を実行し、新たにビットレートが算出される(ステップS1104)。
【0072】
続いて、図7に示すようにして、読込んだ188バイトのデータ内にSPSが有るか否かの判定処理が実行される(ステップS1105)。その結果、SPSが無いと判定された場合、ループカウンターrに1を加えて(ステップS1106)、PCRの判定からの処理が繰り返される。
【0073】
一方、SPSが有ると判定され、図7に示すようにそのSPSの直前にあるAUデリミターの先頭バイト位置が取得される(ステップS1107)、その「AUデリミター位置」から「PCR位置」を減じ、差分位置L(バイト)を算出する(ステップS1108)。そして、「差分位置L」を「ビットレート」で除し、さらに「PCR時間」を加算することで、先頭時間情報が算出される(ステップS1109)。また、このように算出した先頭時間情報、およびAUデリミター位置をタイムチャートに出力し、ランダムアクセスの際に参照する、という具合である。
【0074】
<ハードウェア的構成>
【0075】
図12は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用して先頭時間情報の取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。
【0076】
この図にあるように、電子機器は、各種演算処理を行うための「CPU(中央演算装置)」(1201)と、「主メモリ」(1202)と、を備えている。またストリーム映像配信用の符号化TSデータやランダムアクセス用のタイムチャートを保持する「HDD」(1203)や、ストリーミングにて映像を配信するためネットワークに接続された「通信IF(インターフェース)」(0804)も備えている。そしてそれらが「システムバス」などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【0077】
また、「主メモリ」にはプログラムが読み出され、「CPU」は読み出された当該プログラムを解釈して各種演算処理を実行する。また、この「主メモリ」や「HDD」、「CPU」内のキャッシュなどにはそれぞれ複数のアドレスが割り当てられており、「CPU」の演算処理においては、そのアドレスを特定し格納されているデータにアクセスすることで、データを用いた演算処理を行うことが可能になっている。
【0078】
ここで、まず、タイムチャート生成プログラムに従い、「HDD」から符号化TSデータの先頭から188バイト分のデータが「主メモリ」のアドレス1に読込まれる。続いて、「主メモリ」の各アドレスに格納されたループカウンター、PCR時間、PCR位置、AUデリミター位置、ビットレートなどのセット(初期化)が実行され、それにより各パラメータ値が0と設定される。
【0079】
そして「CPU」はプログラムに従い、前述のようにPCR有無の判定処理を行う。すなわち「主メモリ」のアドレス1に読込まれた188バイトのデータ中の先頭から27ビット目の値aと44ビット目の値bを取得する。そして、両者の値が1であるか否かの判断処理が「CPU」の論理演算処理によって実行される。ここで、a、bのいずれかの値が1でないとの判断結果が出力されると、「主メモリ」のアドレス2に格納されているループカウンターの値が+1されて、次の188バイト分の符号化TSデータの読込み、及びPCR有無の判定処理が繰り返される。
【0080】
そして、a、bの両値が1であるとの判断結果が出力されると、「CPU」はプログラムに従い、続いて前述のようにPCR時間およびPCR位置の算出処理を実行する。すなわち、読込んだ188バイトのデータの48から81ビットの値(PCR Base)を、「CPU」の演算処理により10進数に変換し300倍する。そして188バイトのデータの88から97ビットの値(PCR Extension)を、「CPU」の演算処理により10進数に変換し、前記算出した値に加算する。そして、その値を27Mにて除算し、"PCR時間"として「主メモリ」のアドレス3に格納する。また「CPU」の演算処理によって、ループカウンターに格納されている値を188倍し、その値に12バイトが加算されることで"PCR位置"が算出され、「主メモリ」のアドレス4に格納される。
【0081】
つづいて、「CPU」はプログラムに従い、前述のようにデコードビットレートの算出処理を行う。すなわち、次の188バイト分のデータを読込み、次のPCRを検出する。そして、2つのPCR時間の差分値tを、そのPCR間の動画データの再生時間を示す値tとして算出する。また、「主メモリ」のアドレス6に格納されたビットレート算出用ループカウンター値を188倍し、両PCR間にあるデータ量dを算出する。そして、「CPU」の演算処理によって「t/d」の値を算出し、"デコードビットレート値"として「主メモリ」のアドレス7に格納する。
【0082】
つづいて、「CPU」はプログラムに従い、前述のように映像復号化最小単位の先頭バイト位置の取得処理を行う。すなわち、読み込んだデータ内にA(0x00000127)、B(0x00000147)、C(0x00000167)のいずれかが含まれるか、を「CPU」の論理演算処理にて判断する。そして、上記値が含まれていないとの判断結果が出力されると、「主メモリ」のアドレス2に格納されているループカウンターに1を加えた後、次の188バイト分のデータを「主メモリ」のアドレス1に読込み、上記処理を繰り返す。
【0083】
そして、上記A、B、Cいずれかの値が読み込んだデータ内に含まれているとの判断結果が出力されている場合、図7に示すようにAUデリミターが分断され、前後のパケットに分離して存在しているかの判断処理を実行する。そして、ループカウンターの値とAUデリミターの先頭バイト位置の値を変数とし、「CPU」の演算処理によって"映像復号化最小単位の先頭バイト位置"を算出し、「主メモリ」のアドレス5に格納する。
【0084】
そして、各アドレスに格納された、「PCR時間」、「PCR位置」、「デコードビットレート値」、「映像復号化最小単位の先頭バイト位置」をパラメータとして、前述のように「CPU」の演算処理によって先頭時間情報を算出する。すなわち、「時間基準の配置バイト位置」と「映像復号化最小単位の先頭バイト位置」の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームの再生時間を算出する。そして、算出した再生時間を、PCRで示される「時間基準」に加えることで当該映像復号化最小単位の先頭の再生時間、すなわち先頭時間情報を算出し、「主メモリ」のアドレス8に格納する、という具合である。
【0085】
そして、このようにして取得した先頭時間情報を、映像復号化最小単位の先頭バイト位置と関連付けてタイムチャートとして「HDD」に格納することで、ネットワーク上のクライアント端末からのランダムアクセス命令に対応することが出来る。
【0086】
≪実施例1のその他の例≫
【0087】
<概要>
【0088】
上記実施例では、時間基準としてPCRを利用する例を挙げたが、それ以外にも、例えば符号化TSデータがタイムスタンプ付トランスポートストリームデータであれば時間基準としてタイムスタンプを利用する例も挙げられる。
【0089】
図13は、タイムスタンプ付トランスポートストリームのTTSパケットの一例を表す概念図である。なお、この図に示すTSパケット部分(188バイトのデータ部分)は図2に示すTSパケットと同様のデータ構造をもつ。そして、TTSパケットのデータ構造の特徴点は、TSパケットの先頭に4バイト分のデータが、タイムスタンプ(時間基準)として必ず付加されている点である。
【0090】
つまり、TSパケットにおける時間基準である「PCR」は必ずしもTSパケット内に配置されているとは限らず、したがって、前述のようにそのPCRの検出(配置有無の判定)処理を行う必要がある。一方、タイムスタンプ付トランスポートストリームにおけるTTSパケットの場合、パケットの先頭に必ず時間基準である「タイムスタンプ」が配置されているため、その配置有無の判定処理を前述の処理から省略できる、という具合である。
【0091】
<機能的構成>
【0092】
図14は、本実施例の電子機器における、さらに別の機能ブロックの一例を表す図である。この図にあるように、本実施例の別の構成をとる「電子機器」(1400)は、「時間基準取得部」(1401)にて「タイムスタンプ時間基準取得手段」(1404)をさらに備えることを特徴とする。なお、その他の構成(時間基準取得部、先頭探索部、先頭時間情報取得部、AUデリミター取得手段)については、すでに記載済みであるのでその説明は省略する。
【0093】
「タイムスタンプ時間基準取得手段」(1404)は、タイムスタンプ付トランスポートストリームのTSパケットの先頭に位置するタイムスタンプから時間基準を取得する機能を有する。そして、タイムスタンプはTTSパケットの先頭に必ず付加されているため、その有無の判定処理を省略した前述の処理を実行することで先頭時間情報を取得することができる。
【0094】
<処理の流れ>
【0095】
図15、および図16は、本実施例の別の電子機器における先頭時間情報算出処理の流れの一例を表すフローチャートである。この図15にあるように、まず、ループカウンターを0とし(ステップS1501)、読込みデータ位置を0とし(ステップS1502)、そしてAUデリミター値を0として(ステップS1503)、各パラメータの初期化処理を実行する。
【0096】
そして図16に示すように、上記各パラメータの初期化処理(ステップS1601)を行った後、符号化TSデータの所定の読込データ位置(最初はデータの先頭)から、符号化TSデータを192バイト分読み込む(ステップS1602)。
【0097】
続いて、読み込んだデータ内にA(0x00000127)、B(0x00000147)、C(0x00000167)のいずれかが含まれるか、をCPUの論理演算処理にて判断する(ステップS1603)。そして、上記値が含まれていなければ、読み込んだ一パケット分の192バイトのデータ内にSPSは含まれていないとして、ループカウンターに1を加えて(ステップS1604)、読込データ位置を192バイト先に設定して(ステップS1605)、上記処理を繰り返す。
【0098】
そして、上記A、B、Cいずれかの値が読み込んだデータ内に含まれていた場合、当該データ内にSPS部分が含まれているので、続いてその直前に配置されるAUデリミターの先頭位置の取得処理を行う。ここでも、前述の場合と同様、192バイトのTTSパケットに、一つのAUデリミターが分断されていることを考慮し、読込んだ192バイトのデータ内に、AUデリミターの先頭の値D(0x00000109)が含まれているか判断する(ステップS1606)。
【0099】
そして値Dが含まれていれば、SPSが含まれている192バイトのデータ内にAUデリミターの先頭がある(AUデリミターが分離されていない)とする。そして、まず、読込んだ192バイトのデータの先頭から4バイトのタイムスタンプの値を取得する(1607y)。また、192×ループカウンターrの値を、そのタイムスタンプ位置として取得する。つづいてその192バイトのデータの先頭からのDの出現バイト数x1を取得し、そのx1の値にループカウンターr×188の値を加算することで、映像復号化最小単位の先頭バイト位置を取得する(ステップS1608y)。という具合である。
【0100】
一方、ステップS1606にて値Dが含まれていないと判断された場合、AUデリミターが分離され、その先頭は読込んだパケットデータの1つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの1つ前の192バイトのデータの先頭から4バイトのタイムスタンプの値を取得する(ステップS1607n)。また、192×(r−1)の値をタイムスタンプ位置として取得する。また読込んだデータの先頭からのDの出現バイト数x2を取得して、(r−1)×188+x2を、映像復号化最小単位の先頭バイト位置として取得する(ステップS1608n)。
【0101】
つづいて、上記いずれの場合でも、取得したタイムスタンプの値を27Mで除することでその時間基準の値を算出する(ステップS1609)、という具合である。このように、本実施例では、時間基準の有無判定処理を省いて上記処理を実行することが出来る。
【0102】
そして、取得された「映像復号化最小単位の先頭バイト位置」、「タイムスタンプ時間」、「タイムスタンプ位置」、そして「デコードビットレート値」をパラメータとして、先頭時間情報が算出することができる。なお「デコードビットレート値」の算出処理、および先頭時間情報の取得処理は、前述の処理と同様であるのでその説明は省略する。
【0103】
<ハードウェア的構成>
【0104】
図17は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用してタイムスタンプ情報を参照した先頭時間情報の取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。なお、前述の通り、タイムスタンプ情報の有無判定処理を省くこと意外、ほぼ上記PCRを参照した先頭時間情報の取得処理と同様である。
【0105】
この図にあるように、電子機器は、「CPU」(1701)と、「主メモリ」(1702)と、「HDD」(1703)と、「通信IF」(1704)と、を備えている。
【0106】
ここで、まず、タイムチャート生成プログラムに従い、「HDD」から符号化TSデータの先頭から192バイト分のデータが「主メモリ」のアドレス1に読込まれる。続いて、「主メモリ」の各アドレスに格納されたループカウンターをはじめとするパラメータ値の初期化処理が実行される。
【0107】
そして「CPU」はプログラムに従い、まず前述のように映像復号化最小単位の先頭バイト位置の取得処理を行う。具体的には、読み込んだデータ内にA(0x00000127)、B(0x00000147)、C(0x00000167)のいずれかが含まれるか、を「CPU」の論理演算処理にて判断する。そして、上記値が含まれていないとの判断結果が出力されると、「主メモリ」のアドレス2に格納されているループカウンターに1を加えた後、次の192バイト分のデータを「主メモリ」のアドレス1に読込み、上記処理を繰り返す。
【0108】
そして、上記A、B、Cいずれかの値が読み込んだデータ内に含まれているとの判断結果が出力されている場合、ループカウンターの値とAUデリミターの先頭バイト位置の値を変数とし、「CPU」の演算処理によって"映像復号化最小単位の先頭バイト位置"を算出し、「主メモリ」のアドレス5に格納する。
【0109】
続いて、「CPU」はプログラムに従い、前述のようにタイムスタンプ時間およびタイムスタンプ位置の算出処理を実行する。すなわち、読込んだ192の先頭4バイトのデータからその値を取得し、その値を27Mにて除算することで算出した"タイムスタンプ時間"を「主メモリ」のアドレス3に格納する。また「CPU」の演算処理によって、ループカウンターに格納されている値を188倍することで"タイムスタンプ位置"が算出され、「主メモリ」のアドレス4に格納される。なお、AUデリミターがTTSパケットに分離して存在している場合は、一つの前のTTSパケットに関し、そのループカウンターを(r−1)として、上記タイムスタンプ時間とタイムスタンプ位置を算出すると良い。
【0110】
つづいて、「CPU」はプログラムに従い、前述のように"デコードビットレート"の算出し、「主メモリ」のアドレス6に格納する。そして、「タイムスタンプ位置」と「映像復号化最小単位の先頭バイト位置」の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームの再生時間を算出する。そして、算出した再生時間を、「タイムスタンプ時間」に加えることで先頭時間情報を算出し、「主メモリ」のアドレス7に格納する、という具合である。
【0111】
<効果の簡単な説明>
【0112】
以上のように本実施例の電子機器では、H.264タイプ(その他タイプのMpeg4も含む)の符号化TSデータのままで映像復号化最小単位の先頭位置の再生時間を取得することができる。したがって、H.264タイプであっても、その符号化TSデータを復号化することなく、映像復号化の最小単位の開始位置を探索してその再生時間を示すタイムチャートを生成することができる。
【0113】
≪実施例2≫
【0114】
<概要>
【0115】
本実施例の電子機器は、前記実施例1を基本として、算出した先頭時間情報をHDDなどに保持する機能をさらに有することを特徴とする。そして、本実施例のように先頭時間情報をHDD等に保持し、タイムチャートを生成することで、ストリーミング配信映像データに対するランダムアクセスなどに対応することが出来る。
【0116】
<機能的構成>
【0117】
図18は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」(1800)は、実施例1を基本として、「時間基準取得部」(1801)と、「先頭探索部」(1802)と、「先頭時間情報取得部」(1803)と、を有する。また、図示しない「PCR取得手段」や「AUデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【0118】
そして、本実施例の電子機器の特徴点は、さらに「先頭時間情報保持部」(1804)を有する点である。
【0119】
「先頭時間情報保持部」(1804)は、先頭時間情報取得部にて取得した先頭時間情報を保持する機能を有し、例えばHDDやフラッシュメモリ、その他記憶媒体にて実現することが出来る。
【0120】
図19は、この先頭時間情報保持部にて保持される先頭時間情報を含むタイムチャートの一例を表す概念図である。この図にあるように、前記処理により算出された先頭時間情報を、そのAUデリミターの先頭バイト位置と関連付けてタイムチャート化することで、リクエストのあった再生時間に近似する映像復号化最小単位を先頭とする符号化TSデータを、リクエスト端末に返信することができる、という具合である。
【0121】
<処理の流れ>
【0122】
図20は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【0123】
この図にあるように、上記実施例1で記載したような処理が実行され、先頭時間情報が取得される(ステップS2001)。すると、その取得した先頭時間情報を、例えばHDDなどの保持部に記録し(ステップS2002)、その記録され保持されている先頭時間情報を用いて、例えば図19に示すようなタイムチャートを作成する(ステップS2003)。
【0124】
<効果の簡単な説明>
【0125】
以上のように本実施例の電子機器によって、先頭時間情報をHDD等に保持することができる。そして、その保持している先頭時間情報を用いてタイムチャートを生成することで、ストリーミング配信映像データに対するランダムアクセスなどに対応することが出来る。
【0126】
≪実施例3≫
【0127】
<概要>
【0128】
本実施例の電子機器は、上記実施例を基本として、映像再生端末からのランダムアクセスのリクエストを受付けて、その受付けたリクエストに応じて送信すべき映像復号化最小単位を識別する識別情報を特定する機能をさらに備えることを特徴とする。
【0129】
<機能的構成>
【0130】
図21は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」(2100)は、実施例1を基本として、「時間基準取得部」(2101)と、「先頭探索部」(2102)と、「先頭時間情報取得部」(2103)と、を有する。また、図示しない「PCR取得手段」や「AUデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【0131】
そして、本実施例の電子機器の特徴点は、さらに「再生開始位置入力受付部」(2104)と、「再生開始最小単位ID取得部」(2105)と、を有する点である。
【0132】
「再生開始位置入力受付部」(2104)は、再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける機能を有する。なお、この入力受付は、本発明の基本的な実施例が映像配信であることを考えるとネットワーク経由で別端末にて入力された指定情報を受付ける「通信IF」にて実現することができる。
【0133】
具体的には、別端末の映像再生プレイヤーの例えばシークバーが操作され、その操作によって指定された「2分30秒」といった再生開始後経過時間情報を、リクエスト情報として受付ける、という具合である。
【0134】
「再生開始最小単位ID取得部」(2105)は、受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位IDを取得する機能を有する。「映像復号化最小単位ID」とは、前記先頭探索部にて探索された映像復号化最小単位を示す識別情報をいい、その映像復号化最小単位の先頭バイト位置や、その並び順に応じて映像復号化最小単位に付された連番などが挙げられる。この再生開始最小単位ID取得部は、例えば前述の図19に示すようなタイムチャートを参照し、CPUの論理演算処理による検索処理を実行することで実現することが出来る。そして、このように再生開始最小単位IDである、例えばその先頭バイト位置などを取得することで、映像再生端末からリクエストのあった再生開始後経過時間に近似する時間に再生されるべき映像復号化最小単位を取得することが出来る。
【0135】
<ハードウェア的構成>
【0136】
図22は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用して再生開始最小単位IDの取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。
【0137】
この図にあるように、電子機器は、上記実施例と同様に「CPU」(2201)と、「主メモリ」(2202)と、「HDD」(2203)と、「通信IF」(2204)と、を備えている。
【0138】
ここで、まず、前述のタイムチャート生成プログラムに従い、先頭時間情報が取得され
「HDD」に当該先頭時間情報を用いたタイムチャートが格納される。つづいて「通信IF」にて、ネットワーク上のクライアント端末から「2分30秒」といった具合に再生開始後経過時間が取得されると、「主メモリ」のアドレス1に格納される。すると、その再生開始後経過時間をキーとして、「HDD」に格納されているタイムチャートの検索処理が「CPU」の論理演算処理により実行される。そして、タイムチャートにて再生開始後経過時間に近似する先頭時間情報と関連付けられた再生開始最小単位の先頭バイト位置が取得され、「主メモリ」のアドレス2に格納される、という具合である。
【0139】
<処理の流れ>
【0140】
図23は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【0141】
この図にあるように、上記実施例1で記載したような処理が実行され、先頭時間情報が取得される(ステップS2301)。そして、その後、再生開始後経過時間の指定入力を受付ける(ステップS2302)と、指定入力された再生開始後経過時間と先頭時間情報とから再生開始最小単位IDである、例えばその先頭バイト位置を取得する(ステップS2303)。
【0142】
<効果の簡単な説明>
【0143】
以上のように本実施例の電子機器によって、映像再生端末からリクエストのあった再生開始後経過時間に近似する時間に再生されるべき映像復号化最小単位を取得することが出来る。
【0144】
≪実施例4≫
【0145】
<概要>
【0146】
本実施例の電子機器は、前記実施例3を基本として、前記取得された再生開始最小単位IDである、例えばその先頭バイト位置などを利用して映像再生端末からのランダムアクセス再生リクエストに応じる機能をさらに備えることを特徴とする。
【0147】
<機能的構成>
【0148】
図24は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」(2400)は、実施例3を基本として、「時間基準取得部」(2401)と、「先頭探索部」(2402)と、「先頭時間情報取得部」(2403)と、「再生開始位置入力受付部」(2404)と、「再生開始最小単位ID取得部」(2405)と、を有する。また、図示しない「PCR取得手段」や「AUデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【0149】
そして、本実施例の電子機器の特徴点は、さらに「保持部」(2406)と、「再生開始最小単位ID取得部」(2407)と、を有する点である。
【0150】
「保持部」(2406)は、H.264タイプの符号化トランスポートストリームと関連付けて先頭時間情報を保持する機能を有し、例えばHDDやフラッシュメモリ、その記憶媒体により実現することが出来る。
【0151】
「送出部」(2407)は、H.264タイプの符号化トランスポートストリームを再生開始最小単位IDにて特定されるバイト位置から送出する機能を有し、例えば通信IFやその制御回路、通信用アプリケーションなどで実現することができる。
【0152】
そして上記構成によって、映像再生端末のリクエスト(再生開始後経過時間)によって取得された再生開始最小単位IDを利用して、その再生開始後経過時間に近似する時間にて再生されるべき映像復号化最小単位を先頭とする映像データの送信を実行することができる。
【0153】
<処理の流れ>
【0154】
図25は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【0155】
この図にあるように、上記実施例1で記載したような処理が実行され、先頭時間情報が取得される(ステップS2501)。そして取得した先頭時間情報を符号化TSデータと関連づけて保持部に記録する(ステップS2502)。
【0156】
その後、再生開始後経過時間の指定入力を受付ける(ステップS2503)と、指定入力された再生開始後経過時間と先頭時間情報とから再生開始最小単位IDである、例えばその先頭バイト位置などを取得する(ステップS2504)。そして、取得した再生開始最小単位の先頭バイト位置などにて特定されるバイト位置から符号化TSデータを送信する(ステップS2505)。
【0157】
<効果の簡単な説明>
【0158】
以上のように本実施例の電子機器によって、映像再生端末のリクエスト(再生開始後経過時間)によって取得された再生開始最小単位の先頭バイト位置などを利用して、その再生開始後経過時間に近似する時間にて再生されるべき映像復号化最小単位を先頭とする映像データの送信を実行することができる。
【図面の簡単な説明】
【0159】
【図1】実施例1の電子機器の一例である映像配信サーバから配信される符号化TSデータ、およびそのタイムチャートの一例を説明するための概念図
【図2】実施例1の電子機器にて配信される符号化TSデータのさらに詳細なデータ構造の一例を表す概念図
【図3】実施例1の電子機器における機能ブロックの一例を表す図
【図4】実施例1の電子機器における、別の機能ブロックの一例を表す図
【図5】実施例1の電子機器のPCR取得手段によるPCRの有無判定処理の一例を表すフローチャート
【図6】実施例1の電子機器のPCR取得手段によるPCRの取得処理の一例を表すフローチャート
【図7】実施例1の電子機器のAUデリミター取得手段によるSPS部分の直前に配置されるAUデリミターの取得処理の一例を表すフローチャート
【図8】実施例1の電子機器における符号化TSデータのデコードビットレートを取得する処理の流れの一例を表すフローチャート
【図9】実施例1の電子機器の先頭時間情報算出処理における初期化処理の一例を表すフローチャート
【図10】実施例1の電子機器の先頭時間情報算出処理における例外処理のためのビットレート算出処理の一例を表すフローチャート
【図11】実施例1の電子機器における先頭時間情報算出処理の一例を表すフローチャート
【図12】実施例1の電子機器におけるハードウェア構成の一例を表す図
【図13】実施例1の電子機器にて配信されるタイムスタンプ付トランスポートストリームのTTSパケットの一例を表す概念図
【図14】実施例1の電子機器における、さらに別の機能ブロックの一例を表す図
【図15】実施例1の別の電子機器の先頭時間情報算出処理における初期化処理の流れの一例を表すフローチャート
【図16】実施例1の別の電子機器における先頭時間情報算出処理の流れの一例を表すフローチャート
【図17】実施例1の電子機器における、別のハードウェア構成の一例を表す図
【図18】実施例2の電子機器における機能ブロックの一例を表す図
【図19】実施例2の電子機器の先頭時間情報保持部にて保持される先頭時間情報を含むタイムチャートの一例を表す概念図
【図20】実施例2の電子機器における処理の流れの一例を表すフローチャート
【図21】実施例3の電子機器における機能ブロックの一例を表す図
【図22】実施例3の電子機器におけるハードウェア構成の一例を表す図
【図23】実施例3の電子機器における処理の流れの一例を表すフローチャート
【図24】実施例4の電子機器における機能ブロックの一例を表す図
【図25】実施例4の電子機器における処理の流れの一例を表すフローチャート
【図26】実施例1の電子機器のAUデリミター取得手段によるSPS部分の直前に配置されるAUデリミターの取得処理の一例を表すフローチャート
【符号の説明】
【0160】
0300 電子機器
0301 時間基準取得部
0302 先頭探索部
0303 先頭時間情報取得部
0404 PCR取得手段
0405 AUデリミター取得手段
1404 タイムスタンプ時間基準取得手段

【特許請求の範囲】
【請求項1】
圧縮した映像情報の符号化トランスポートストリームデータに配置される時間基準を取得する時間基準取得部と、
映像復号化最小単位の先頭バイト位置を探索する先頭探索部と、
取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索部にて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する先頭時間情報取得部と、
を有する電子機器。
【請求項2】
先頭時間情報取得部にて取得した先頭時間情報を保持する先頭時間情報保持部を有する請求項1に記載の電子機器。
【請求項3】
再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける再生開始位置入力受付部と、
受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位IDを取得する再生開始最小単位ID取得部と、
を有する請求項1又は2に記載の電子機器。
【請求項4】
圧縮した映像情報の符号化トランスポートストリームと関連付けて先頭時間情報を保持する保持部と、
圧縮した映像情報の符号化トランスポートストリームを再生開始最小単位IDにて特定されるバイト位置から送出する送出部と、
をさらに有する請求項3に記載の電子機器。
【請求項5】
前記時間基準取得部は、トランスポートストリームのPCR部分から時間基準を取得するPCR取得手段を有する請求項1から4のいずれか一に記載の電子機器。
【請求項6】
前記時間基準取得部は、タイムスタンプ付トランスポートストリームのTSパケットの先頭に位置するタイムスタンプから時間基準を取得するタイムスタンプ時間基準取得手段を有する請求項1から5のいずれか一に記載の電子機器。
【請求項7】
前記先頭探索部は、SPS部分の直前に配置されるAUデリミターを映像復号化最小単位の先頭バイト位置として取得するAUデリミター取得手段を有する請求項1から6のいずれか一に記載の電子機器。
【請求項8】
圧縮した映像情報の符号化トランスポートストリームデータに配置される時間基準を取得する時間基準取得ステップと、
映像復号化最小単位の先頭バイト位置を探索する先頭探索ステップと、
取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索ステップにて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する先頭時間情報取得ステップと、
を計算機に実行させる電子機器の制御方法。
【請求項9】
先頭時間情報取得ステップにて取得した先頭時間情報を保持するために記録する先頭時間情報記録ステップをさらに計算機に実行させる請求項8に記載の電子機器の制御方法。
【請求項10】
再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける再生開始位置入力受付ステップと、
受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位IDを取得する再生開始最小単位ID取得ステップと、
をさらに計算機に実行させる請求項8又は9に記載の電子機器の制御方法。
【請求項11】
圧縮した映像情報の符号化トランスポートストリームと関連付けて先頭時間情報を保持する保持部を有する電子機器の制御方法であって、
圧縮した映像情報の符号化トランスポートストリームを再生開始最小単位IDにて特定されるバイト位置から送出する送出ステップをさらに計算機に実行させる請求項10に記載の電子機器の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2009−118179(P2009−118179A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−288945(P2007−288945)
【出願日】平成19年11月6日(2007.11.6)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】