(57)【特許請求の範囲】
【請求項１】
圧縮した映像情報の符号化トランスポートストリームデータに配置される時間基準を取得する時間基準取得部と、
映像復号化最小単位の先頭バイト位置を探索する先頭探索部と、
前記時間基準が配置されるバイト位置と前記映像復号化最小単位の先頭バイト位置との差分を再生装置でデコードする際のデコードビットレートで除したものに前記時間基準を加えることにより、各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する先頭時間情報取得部と、
を有する電子機器。
【請求項２】
先頭時間情報取得部にて取得した先頭時間情報を保持する先頭時間情報保持部を有する請求項１に記載の電子機器。
【請求項３】
再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける再生開始位置入力受付部と、
受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位ＩＤを取得する再生開始最小単位ＩＤ取得部と、
を有する請求項１又は２に記載の電子機器。
【請求項４】
圧縮した映像情報の符号化トランスポートストリームと関連付けて先頭時間情報を保持する保持部と、
圧縮した映像情報の符号化トランスポートストリームを再生開始最小単位ＩＤにて特定されるバイト位置から送出する送出部と、
をさらに有する請求項３に記載の電子機器。
【請求項５】
前記時間基準取得部は、トランスポートストリームのＰＣＲ部分から時間基準を取得するＰＣＲ取得手段を有する請求項１から４のいずれか一に記載の電子機器。
【請求項６】
前記時間基準取得部は、タイムスタンプ付トランスポートストリームのＴＳパケットの先頭に位置するタイムスタンプから時間基準を取得するタイムスタンプ時間基準取得手段を有する請求項１から５のいずれか一に記載の電子機器。
【請求項７】
前記先頭探索部は、ＳＰＳ部分の直前に配置されるＡＵデリミターを映像復号化最小単位の先頭バイト位置として取得するＡＵデリミター取得手段を有する請求項１から６のいずれか一に記載の電子機器。
【請求項８】
圧縮した映像情報の符号化トランスポートストリームデータに配置される時間基準を取得する時間基準取得ステップと、
映像復号化最小単位の先頭バイト位置を探索する先頭探索ステップと、
前記時間基準が配置されるバイト位置と前記映像復号化最小単位の先頭バイト位置との差分を再生装置でデコードする際のデコードビットレートで除したものに前記時間基準を加えることにより、各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する先頭時間情報取得ステップと、
を計算機に実行させる電子機器の制御方法。
【請求項９】
先頭時間情報取得ステップにて取得した先頭時間情報を保持するために記録する先頭時間情報記録ステップをさらに計算機に実行させる請求項８に記載の電子機器の制御方法。
【請求項１０】
再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける再生開始位置入力受付ステップと、
受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位ＩＤを取得する再生開始最小単位ＩＤ取得ステップと、
をさらに計算機に実行させる請求項８又は９に記載の電子機器の制御方法。
【請求項１１】
圧縮した映像情報の符号化トランスポートストリームと関連付けて先頭時間情報を保持する保持部を有する電子機器の制御方法であって、
圧縮した映像情報の符号化トランスポートストリームを再生開始最小単位ＩＤにて特定されるバイト位置から送出する送出ステップをさらに計算機に実行させる請求項１０に記載の電子機器の制御方法。
【請求項１２】
前記先頭時間情報取得部は、前記映像復号化最小単位の先頭バイト位置の算出を行う前に、前記デコードビットレートの算出を行う請求項１に記載の電子機器。
【請求項１３】
前記先頭時間情報取得ステップは、前記映像復号化最小単位の先頭バイト位置の算出を行う前に、前記デコードビットレートの算出を行う請求項８に記載の電子機器の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｈ．２６４タイプで符号化された映像データについて、その映像復号化の最小単位の開始点を、符号化トランスポートストリーム（ＴＳ）データを復号化することなく符号化ＴＳデータのままで探索するための技術に関する。
【背景技術】
【０００２】
現在、光等の高速インターネット通信網の整備によりデータ量の大きな映像データでも容易に送信できるまでに伝送路容量が向上したこと、また映像符号化効率が向上し送信データサイズがコンパクトになったことなどを受けて、実用的なレベルでのストリーミング映像配信サービスが様々提供されている。
【０００３】
ところで、ストリーミング映像配信は、符号化ＴＳ（トランスポートストリーム）データが再生時系列に沿って順次クライアント端末に送信されるシーケンシャルなデータ送信方式である。したがってクライアント端末側でスキップ操作などのランダムアクセス操作を行った場合には以下のような手順をとる。すなわち、まず、クライアント端末から「２分３０秒」などのスキップ先の再生位置を含むリクエストデータを映像配信サーバに対して送信する。すると映像配信サーバでは、予め用意されているタイムチャート（再生位置とその位置の符号化ＴＳデータとを示すテーブル）を参照し、リクエストに応じた位置から符号化ＴＳデータをクライアント端末に返信する、という具合である。
【０００４】
また、Ｈ．２６４タイプを含むＭｐｅｇ系の映像符号化データは、フレーム間予測（前後のフレームを参照して符号化／復号化する技術）を利用するため、単独での復号化ができないフレーム（Ｐ，Ｂフレームなど）を含んでいる。そのため上記タイムチャートは、単独で復号化可能な映像復号化最小単位の先頭フレーム（Ｉフレームなど）の符号化ＴＳデータから送信されるよう作成されている。つまり、上記タイムチャートでは、例えば「２分２９秒（４９番目のＩフレームの符号化ＴＳデータ位置）」、「２分３２秒（５０番目のＩフレームの符号化ＴＳデータ位置）」、・・・と言った具合に、映像復号化最小単位での再生位置が示されている。したがって前記リクエストに含まれる「２３分３０秒」地点の符号化ＴＳデータは単独復号化が不可能な例えばＢフレームなどであり、そのためリクエスト位置に近似する２分２９秒のＩフレームからの符号化ＴＳデータがクライアント端末に返信されることになる、という具合である。
【特許文献１】特開２００３−０１８５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし従来の技術には以下のような課題がある。すなわち、上記のようにタイムチャートでは、映像復号化最小単位でその再生位置が示されている必要がある。ここで、Ｍｐｅｇ２タイプで符号化された符号化ＴＳデータであれば、いわゆる「ＧＯＰ（グループ・オブ・ピクチャ）」と呼ばれる映像復号化が可能な最小単位で符号化されているデータ構造の先頭に、ＧＯＰの開始を示すスタートコードが定義されている。したがって、符号化ＴＳデータを復号化しフレーム情報を取得せずとも、符号化ＴＳデータのままＧＯＰのスタートコードを探索することで前記条件を満たすタイムチャートを生成することができる。
【０００６】
ところが、Ｍｐｅｇ２タイプは、一般にＨ．２６４タイプと比較して１／２から１／３の符号化圧縮効率と言われており、一定以上の画質を維持するには符号化ＴＳデータのデータ量が極めて大きくなる傾向がある。そのため、Ｍｐｅｇ２タイプはストリーミング映像配信に適した圧縮符号化形式ではない。
【０００７】
しかし、ストリーミング動画配信に適した圧縮符号化形式であるＨ．２６４タイプ（その他のＭｐｅｇ４のパートを含む）においては、上記ＧＯＰのスタートコードに相当する定義がなされていない。そのためタイムチャートを生成する場合には、いったん符号化ＴＳデータをフレームデータに復号化しそのフレーム情報を取得することで映像復号化最小単位の再生位置を探索する必要がある。
【０００８】
したがって、Ｈ．２６４タイプで符号化された映像データをストリーミング配信する場合、従来ではタイムチャートの生成に時間と計算機資源とが必要となり、手間がかかってしまっている、という課題がある。
【課題を解決するための手段】
【０００９】
以上の課題を解決するために、本発明は、Ｈ．２６４タイプの符号化ＴＳデータを復号化することなく、映像復号化の最小単位の開始点を探索することができる技術を提供する。具体的には、映像復号化最小単位には一の「ＳＰＳ（シーケンス単位での符号化情報が含まれるデータ）」が含まれているとして、そのＳＰＳの前にある「AU Delimiter（データのアクセス単位の先頭を示すデータ）」を映像復号化最小単位の境界であると判断する機能を備える電子機器を提供する。
【００１０】
さらに詳細には、Ｈ．２６４タイプの符号化トランスポートストリームデータのトランスポートストリームヘッダの直後に配置される時間基準を取得する「時間基準取得部」と、映像復号化最小単位の先頭バイト位置を探索する「先頭探索部」と、取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索部にて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から各映像復号化最小単位の先頭位置が再生されるべき時間を示す先頭時間情報を取得する「先頭時間情報取得部」と、を有する電子機器である。
【００１１】
また、上記機能を実現するよう電子機器を制御する電子機器の制御方法なども合わせて提供する。なお、本発明はＨ．２６４タイプ（すなわちＭｐｅｇ４のパート１０をはじめとする各種規格）の符号化ＴＳデータに必ずしも限定されず、Ｍｐｅｇ４のパート１０以外のパートで規格化されている符号化タイプも含むものである。
【発明の効果】
【００１２】
以上のような構成をとる本発明によって、Ｈ．２６４タイプの符号化ＴＳデータのままで探索可能なＳＰＳを見つけ出し、そのＳＰＳの前にあるＡＵデリミターの再生時間を映像復号化最小単位の先頭位置の再生時間として取得することができる。したがって、Ｈ．２６４タイプであっても、その符号化ＴＳデータを復号化することなく、映像復号化の最小単位の開始位置を探索して、その再生時間を示すタイムチャートを生成することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
【００１４】
なお、実施例１は、主に請求項１、５、６、７、８について説明する。また、実施例２は、主に請求項２について説明する。また、実施例３は、主に請求項３について説明する。また、実施例４は、主に請求項４について説明する。
【００１５】
≪実施例１≫
【００１６】
<概要>
【００１７】
図１は、本実施例の電子機器の一例である映像配信サーバから配信される符号化ＴＳデータ、およびそのタイムチャートの一例を説明するための概念図である。この図１（ａ）にあるように、符号化ＴＳデータは、ＡＵＤ（ＡＵデリミター）によりその境界が示されている「アクセスユニット」が集まって構成されている。しかし、例えばＡＵＤ２のアクセスユニットに含まれる動画データ２は、図１（ｂ）に示すようにＢフレームから始まる動画データであるため、そこを送信データの先頭としても、ストリーム送信先にてフレームデータに復号することは出来ない。
【００１８】
一方、ＳＰＳの直前にあるＡＵＤ１やＡＵＤ３のアクセスユニットに含まれる動画データ１や動画データ３は、図１（ｂ）に示すようにIフレームから始まる動画データであるため、そこを映像復号化の最小単位の先頭としてストリーム送信することが出来る。
【００１９】
そこで本実施例の電子機器では映像復号化最小単位の先頭として、例えば上記のようにＳＰＳ部分の直前に配置されるＡＵＤ（ＡＵデリミター）の位置を探索する。そして、探索したＡＵデリミターの先頭位置の再生時間（再生位置）、例えば「００：０２．２９」、「００：０２．３２」等を算出することで、符号化ＴＳデータを復号化することなく図１（ｃ）に示すようなタイムチャートを生成することを特徴とする。
【００２０】
ここで本実施例において、データの復号化をせずにこのＡＵデリミターなどの先頭位置の再生時間を算出する方法について、図２に示す符号化ＴＳデータのさらに詳細なデータ構造を参照して以下に説明する。この図にあるように、符号化ＴＳデータは、例えば１８８バイトのＴＳパケットの集まりで構成されている。そして、前述のように例えばＳＰＳ（α１）の直前にあるＡＵＤの先頭位置（β１）を、映像復号化最小単位の先頭位置とすることができる。そして当該先頭位置の再生時間を算出するために、ここではＰＣＲ（γ１）を利用する例を挙げて説明する。「ＰＣＲ」とは、その直後の動画データがデコーダバッファから再生のために出力されるタイミングを示す情報（例えば１４０秒）を含み、符号化ＴＳデータ中に配置されている。そこで、このＰＣＲの配置位置と、前記ＳＰＳの直前にあるＡＵＤの先頭位置との距離、すなわち符号化データ量を算出し、ビットレート（デコードされた映像データの単位時間当たりのデータ量）からその経過時間（例えば９秒）を算出する。そして、その経過時間をＰＣＲで示される時間基準に加えたり減じたりすることで、映像復号化最小単位の先頭位置の再生時間「１４９秒」を算出する、という具合である。
【００２１】
<機能的構成>
【００２２】
図３は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように本実施例の「電子機器」（０３００）は、「時間基準取得部」（０３０１）と、「先頭探索部」（０３０２）と、「先頭時間情報取得部」（０３０３）と、を有する。
【００２３】
なお、「電子機器」とは、演算回路とメモリ、Ｉ／Ｏ（インプット／アウトプット）を備えた機器をいい、ここでは映像データの再生や配信をする機能をさらに備える機器をいう。また、本発明における電子機器は、例えば上記構成と機能を備えたサーバ装置に組み込まれても良いし、Ｐ２Ｐ（ピアツーピア）技術による映像配信を行う機能を備えるクライアント端末装置に組み込まれても良い。あるいは、放送映像データをＴＳストリームのまま保存し再生するレコーダーなどに組み込まれても良い。
【００２４】
また、以下に記載する本電子機器の機能ブロックは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、ＣＰＵや主メモリ、バス、あるいは二次記憶装置（ハードディスクや不揮発性メモリ、ＣＤやＤＶＤどの記憶メディアとそれらメディアの読取ドライブなど）、印刷機器や表示装置、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のＩ／Ｏポート、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、情報入力に利用されるユーザーインターフェースなどが挙げられる。
【００２５】
そして主メモリ上に展開したプログラムに従ったＣＰＵの演算処理によって、インターフェースを介して入力されメモリやハードディスク上に保持されているデータなどが加工、蓄積されたり、上記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。また、上記のような汎用コンピュータ以外に、上記演算回路やプログラムを一のハードウェア上にて実現した専用機器として実現し、サーバ装置や端末装置に組み込んでも良い。
【００２６】
また、この発明は電子機器として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品、及び同製品を記録媒体に固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる（本明細書の全体を通じて同様である）。
【００２７】
「時間基準取得部」（０３０１）は、符号化ＴＳデータから時間基準を取得する機能を有する。「時間基準」は、Ｈ．２６４タイプの符号化ＴＳデータのＴＳパケットヘッダに配置され、その直後に含まれるフレームのデコードや再生などの各種タイミングを示す情報をいう。具体的には、例えば、自身の直後に含まれるフレームの再生時間や、デコーダバッファからの出力タイミングなどが挙げられる。したがって、例えば、時間基準において「２分２９秒」というタイミングが示されていれば、符号化ＴＳデータ中でその時間基準の直後に配置されているフレームは「２分２９秒」にデコーダバッファから再生のためにVRAMなどに出力されることになる。そして、図２で説明したように、この時間基準から映像復号化最小単位の先頭バイト位置までの距離を利用して、その映像復号化最小単位の再生時間を算出する、という具合である。またそのために、ここで取得される時間基準と関連付けてその配置位置を示す情報も含み取得すると良い。
【００２８】
なお時間基準としては、例えば前述の「ＰＣＲ」などが挙げられる。その場合この時間基準取得部は、図４に示すようにトランスポートストリームのＰＣＲ部分から時間基準を取得する「ＰＣＲ取得手段」（０４０４）を有すると良い。具体的に、ＰＣＲはＴＳパケット内での配置位置は決まっている（ＴＳヘッダの直後にある）が、すべてのＴＳパケットに含まれているとは限らない（どのＴＳパケットにＰＣＲが配置されるかは、エンコーダの設定次第である）。
【００２９】
したがってＰＣＲ取得手段は、まず、図２に示すような１８８バイトのＴＳパケット内にＰＣＲが配置されているか、を判断することになる。そして、その配置有無の判断処理においては、前述のようにＴＳパケット内でのＰＣＲの配置位置は決まっていることから、ＴＳパケット内のＰＣＲの配置されるべき所定の位置に有る値を判定することで判断できる。そして、ＰＣＲが含まれている旨判断されれば、そのＰＣＲで示される時間基準やその配置位置を取得することができる。
【００３０】
以下、このＰＣＲ取得手段によるＰＣＲの取得処理の一例を、図５及び図６のフロー図を用いて説明する。ＰＣＲ取得手段では、前述のように、まずＴＳパケット内にＰＣＲが配置されているかの判断を行う。すなわち図５にあるように、符号化ＴＳデータの所定の読込データ位置から１８８バイト分（一パケット分）のＴＳパケットを読み込み（ステップＳ０５０１）、主メモリなどに格納する。続いて、読み込んだ１８８バイトのデータの２７ビット目の値ａを取得する（ステップＳ０５０２）。そしてＣＰＵの論理演算処理（ステップＳ０５０３）によってａの値が１では無いと判断された場合は、当該パケットにはＰＣＲが含まれていないとして（ステップＳ０５０７）、図示しないループカウンターに１を加えて、さらに次のＴＳパケットの読み込みを実行し、上記判断処理を繰り返す。
【００３１】
一方、ａ＝１との判断結果が出力された場合、今度は、１８８バイトのデータの先頭から４４ビット目の値ｂを取得し（ステップＳ０５０４）、その値が１であるか否かの判断処理を実行する（ステップＳ０５０５）。そして、その判断処理の結果、ｂ＝１であるとの判断結果が出力されれば、読み込んだＴＳパケットにＰＣＲが含まれているとして（ステップＳ０５０６）、つづいて図６で示すように時間基準の算出される。また、それとともにＰＣＲの配置位置の算出処理が実行されても良い。
【００３２】
図６（ａ）にあるように、前述の処理によってＰＣＲが有る旨の判断がなされると、読み込んだ１８８バイトのデータの先頭から４８ビットから８１ビットの２進数値（PCR baseの値）を１０進数ｅに変換する（ステップＳ０６０１）。
【００３３】
なおPCR Base（ISO/IEC13818-1 2.4.3.4に規定）は、処理タイミングを９０ｋＨｚのベースクロックにおけるクロック数で示しているので、この値ｅをＨ．２６４のベースクロックに対応する値に換算する必要がある。ここで例えばＨ．２６４のベースクロックが２７ＭＨｚであれば、値ｅを３００倍すれば良い。そこで本処理例では、PCR baseの値ｅを例えば３００倍（この値はベースクロックに応じて様々であって良い）した値Ｅを算出する（ステップＳ０６０２）。
【００３４】
しかし、このように値Ｅを３００倍などとした場合、PCR Base値の精度が低下してしまう。そこで精度低下分を補完するため、ＰＣＲにて示されるPCR Extension（ISO/IEC13818-1 2.4.3.4に規定）のデータを利用する。具体的には１８８バイトのデータの先頭から８８から９７ビットの２進数値（PCR Extension）を１０進数ｆに変換する（ステップS０６０３）。そして、その補完値ｆをEに加え、その値を「秒」などに換算するためＨ．２６４のベースクロック（例えば２７ＭＨｚ）で除することで、ＰＣＲで示される時間基準（秒数など）を算出する（ステップＳ０６０４）、という具合である。
【００３５】
また、図６（ｂ）に示すように、ここでそのＰＣＲの配置位置を算出しても良い。具体的には、図５に示すようなＰＣＲ有無の判定処理の結果、ＰＣＲがある旨の判断がされると、データの読み込み位置を算出する。具体的には、例えば１８８バイトのＴＳパケット内にＰＣＲが含まれているかの判定処理を繰り返す際にループカウンターのカウントを行う。そしてループカウンターの値が４、すなわち４個目のＴＳパケットにＰＣＲが含まれていた場合、その読込位置は１８８×４バイト＝７５２バイトに、「１２バイト」を加えた値となる。なお、これはＰＣＲのＴＳパケット（１８８バイトのデータ）内での配置位置は固定であり、その位置はＴＳパケットの先頭から１２バイト目であるからである。
【００３６】
続いて本実施例の電子機器では、以下の構成にて映像復号化最小単位の先頭バイト位置を取得する。
【００３７】
「先頭探索部」（０３０２）は、映像復号化最小単位の先頭バイト位置を探索する機能を有する。「映像復号化最小単位」とは、符号化ＴＳデータにおいて、単独での復号化が可能なデータ構造の最小単位をいい、例えば「ＩＢＢ・・Ｐ」のフレームを含むデータ構造単位などが挙げられる。そして本発明では、この映像復号化最小単位の先頭を探索するために符号化ＴＳデータ内に配置される「ＳＰＳ」を利用することを特徴とする。「ＳＰＳ（シーケンス・パラメータ・セット）」とは、符号化プロファイルや符号化レベルなど、参照シークエンスの符号化に関する情報が示される符号化ＴＳストリーム内のヘッダ部分をいう。具体的には、ＳＰＳの先頭バイト位置や、その近傍のバイト位置などを映像復号化最小単位の先頭バイト位置として探索する、という具合である。
【００３８】
そして、例えば先の時間基準取得部にて取得した「時間基準の配置位置」と、ここで取得される「映像復号化最小単位の先頭バイト位置」までの距離を利用して、本実施例では映像復号化最小単位の再生時間を算出することができる、という具合である。
【００３９】
なお、この映像復号化最小単位の先頭バイト位置としては、ＳＰＳそのものの先頭バイト位置のみならず、前述のように例えば「ＳＰＳ部分の直前に配置されるＡＵデリミターの先頭バイト位置」なども挙げられる。その場合、この先頭探索部は、図４に示すように、ＳＰＳ部分の直前に配置されるＡＵデリミターを映像復号化最小単位の先頭バイト位置として取得するＡＵデリミター（Delimiter）取得手段（０４０５）を有すると良い。具体的には、まずＴＳパケット単位（１８８バイト単位）で読込んだデータ内に、ＳＰＳを示す所定の値が含まれているかを判断し、含まれていると判断されればその直前にあるＡＵデリミターの先頭バイト位置を取得する、という具合である。
【００４０】
以下、ＡＵデリミター取得手段によるＳＰＳ部分の直前に配置されるＡＵデリミターの取得処理の一例を、図７のフロー図を用いて説明する。この図にあるように、まずループカウンターを０にセットし（ステップＳ０７０１）、符号化ＴＳデータの所定の読込データ位置（最初はデータの先頭）から、符号化ＴＳデータを１８８バイト分読み込む（ステップＳ０７０２）。
【００４１】
続いて、読み込んだデータ内にＡ（0x00000127）、Ｂ（0x00000147）、Ｃ（0x00000167）のいずれかが含まれるか、をＣＰＵの論理演算処理にて判断する（ステップＳ０７０３）。なお、上記Ａ，Ｂ，Ｃのいずれかの値は、ＳＰＳに必ず含まれるＳＰＳの識別値である。そして、上記値が含まれていなければ、読み込んだ一パケット分の１８８バイトのデータ内にＳＰＳは含まれていないとして、ループカウンターに１を加えて（ステップS０７０４）、読込データ位置を１８８バイト先に設定して（ステップS０７０５）、上記処理を繰り返す。
【００４２】
また、読み込んだＴＳパケット内に上記Ａ、Ｂ、Ｃいずれかの値がある場合、当該ＴＳパケット内にＳＰＳ部分が含まれていると判断することができる。ここで、ＡＵデリミターではなくＳＰＳそのものを利用する場合、読込んだＴＳパケット内でのＳＰＳの出現バイト位置と、ループカウンター値（ＳＰＳ発見までに読込んだ１８８バイトのＴＳパケットの数）から、符号化ＴＳデータ全体の中での当該ＳＰＳの先頭バイト位置を、映像復号化最小単位の先頭バイト位置として算出すると良い。
【００４３】
一方、ＡＵデリミター取得手段においてＡＵデリミターを取得する場合、前述の処理により発見されたＳＰＳの直前にあるＡＵデリミターの先頭バイト位置を取得することになる。
【００４４】
ただし、符号化ＴＳデータを１８８バイトのＴＳパケットに分割した場合、例えば図２に示す３個目のパケットのように、一つのＡＵデリミターが分断され、前後のパケットに分離して存在することがある。そこで、ＡＵデリミター取得手段では、例えば以下のような処理を実行すると良い。
【００４５】
すなわち、図７にあるように、ステップＳ０７０３での判断処理によって読込んだＴＳパケット内にＳＰＳが有る旨の判断結果が出力されると、続いて読込んだ１８８バイトのデータ内に、ＡＵデリミターの識別値Ｄ（0x00000109）が含まれているか判断する（ステップＳ０７０６）。
【００４６】
そして値Ｄが含まれていれば、ＳＰＳが含まれている１８８バイトのデータ内にＡＵデリミターの先頭がある（ＡＵデリミターが分離されていない）ことになり、現在読込んでいるＴＳパケット内にＡＵデリミターの先頭が存在することになる。したがって、まず、読込んだ１８８バイトのデータの先頭からのＤの出現バイト数ｘ１を取得する（ステップＳ０７０７ｙ）。つづいて、ループカウンターｒ×１８８＋ｘ１を、映像復号化最小単位の先頭バイト位置（ＳＰＳの直前にあるＡＵデリミターの先頭バイト位置）として取得する（ステップＳ０７０８ｙ）、という具合である。
【００４７】
一方、ステップＳ０７０６にて値Ｄが含まれていないと判断された場合、ＡＵデリミターが分離（あるいはちょうどＡＵデリミターとＳＰＳとの境界で分離）され、その先頭は読込んだパケットデータの１つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの１つ前の１８８バイトのデータの先頭からのＤの出現バイト数ｘ２を取得する（ステップＳ０７０７ｎ）。つづいて、（ｒ−１）×１８８＋ｘ２を、映像復号化最小単位の先頭バイト位置として取得する（ステップＳ０７０８ｎ）、という具合である。
【００４８】
ところでＡＵデリミターのバイト数は６バイトと固定であるため、例えば、発見されたSPSの先頭から６バイト前をAUデリミターの先頭バイト位置と特定し、その先頭バイト位置を取得しても良い。具体的には、図２６にあるように先頭バイト位置を取得することができる。図２６にあるＳ２６０１からＳ２６０５はＳ０７０１からＳ０７０５と同じ処理内容である。読込んだＴＳパケット内にＳＰＳが有る旨の判断結果が出力される（ステップＳ２６０３）と、続いて読込んだ１８８バイトのデータの先頭とA、B、Cいずれかの出現バイト位置の差が６バイト以上かを判断する（ステップＳ２６０６）。
【００４９】
そして差が６バイト以上であれば、ＳＰＳが含まれている１８８バイトのデータ内にＡＵデリミターの先頭がある（ＡＵデリミターが分離されていない）ことになり、現在読込んでいるＴＳパケット内にＡＵデリミターの先頭が存在することになる。したがって、まず、読込んだ１８８バイトのデータの先頭からのA、B、Cいずれかの出現バイト数ｙ１を取得する（ステップＳ２６０７ｙ）。つづいて、ループカウンターｒ×１８８＋ｙ１＋６を、映像復号化最小単位の先頭バイト位置（ＳＰＳの直前にあるＡＵデリミターの先頭バイト位置）として取得する（ステップＳ２６０８ｙ）、という具合である。
【００５０】
一方、ステップＳ２６０６にて差が６バイト未満と判断された場合、ＡＵデリミターが分離（あるいはちょうどＡＵデリミターとＳＰＳとの境界で分離）され、その先頭は読込んだパケットデータの１つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの１つ前の１８８バイトのデータの先頭からのＡ、Ｂ、Ｃいずれかの出現バイト数ｙ２を取得する（ステップＳ２６０７ｎ）。つづいて、（ｒ−１）×１８８＋ｙ２を、映像復号化最小単位の先頭バイト位置として取得する（ステップＳ２６０８ｎ）、という具合である。
【００５１】
そして本実施例では、このように算出された「ＰＣＲ時間（時間基準）」と「時間基準の配置位置」と、「映像復号化最小単位の先頭バイト位置」と、を利用して、以下のようにして映像復号化最小単位の先頭位置が再生されるべき時間を算出する。
【００５２】
「先頭時間情報取得部」（０３０３）は、取得した時間基準と、その時間基準が配置されるバイト位置と、先頭探索部にて探索された映像復号化最小単位の先頭バイト位置と、再生装置でデコードする際のデコードビットレートと、から先頭時間情報を取得する機能を有する。「先頭時間情報」とは、各映像復号化最小単位の先頭位置が再生されるべき時間を示す情報をいい、例えばデコーダバッファから出力されるタイミングなどで示される時間情報が挙げられる。そして、この先頭時間情報を用いてランダムアクセス用のタイムチャートが生成される。また、「デコードビットレート」とはデコードされた映像データの単位時間当たりのデータ量をいい、例えば５００ｋｂｐｓ（１秒あたりの映像データ量が５００ｋｂｉｔ）などの値が挙げられる。
【００５３】
なお、先頭時間情報を算出するためのパラメータである「時間基準」、「時間基準の配置（バイト）位置」、および「映像復号化最小単位の先頭バイト位置」の取得については、すでに上記各構成要件にて記載したのでその説明は省略する。ここでは、もう一つの算出用パラメータである「デコードビットレート」の取得処理、および、これらパラメータを用いた先頭時間情報の算出処理について以下に詳述する。
【００５４】
まず、デコードビットレートの算出方法としては以下のような方法が挙げられる。すなわち、例えば２つのＰＣＲの配置位置を取得し、そのＰＣＲ間の距離（データ量）を算出する。また、それぞれのＰＣＲの値はデコーダへの入力時間を示す時間基準を表すので、その時間基準の差分値が２つのＰＣＲ間の映像データ再生時間を示すことになる。そこで、「２つのＰＣＲ間の距離（データ量）」を「２つのＰＣＲ間の映像データの再生時間（時間基準の差分値）」で除することでデコード映像データの単位時間当たりのデータ量、すなわちデコードビットレートを算出する、という具合である。
【００５５】
図８は、符号化ＴＳデータのデコードビットレートを取得する上記処理の流れの一例を表すフローチャートである。この図にあるように、まず図６に示す処理により一のＰＣＲ時刻Ｔ１を取得する。続いて、次のＰＣＲを取得するため、先の読込みデータ位置から１８８バイト加えた位置を読込みデータ位置として設定する（ステップＳ０８０１）。
【００５６】
また、次のＰＣＲ発見処理にあたり、ビットレート算出用のループカウンターｒｂを１に設定する（ステップＳ０８０２）。そしてＳ０８０１で設定した読込みデータ位置から１８８バイト分（一パケット分）のデータを読込む（ステップＳ０８０３）。続いて図５で示すような処理を行い次のＰＣＲが読込んだ１８８バイトのデータに含まれるか判定処理を実行する（ステップS０８０４）。そして、その判定処理の結果（ステップＳ０８０５）、次のＰＣＲが含まれていなければ、読込みデータ位置を１８８バイト加えた先の位置に設定し（ステップＳ０８０６）、ループカウンターｒｂに１を加え（ステップＳ０８０７）、上記処理を繰り返す。
【００５７】
そしてＰＣＲ有無の判定処理の結果、次のＰＣＲがあるとの判定がされると、図６に示す処理を実行し次のＰＣＲの時間基準Ｔ２を取得する（ステップＳ０８０８）。そして、先のＰＣＲ時間Ｔ１と、次のＰＣＲ時間Ｔ２の差分値ｔを、そのＰＣＲ間の動画データの再生時間を示す値として取得する（ステップＳ０８０９）。また、ＰＣＲは１８８バイトのデータ（ＴＳパケット）のＴＳヘッダ直後に配置されるため、両ＰＣＲ間にあるデータ量は、読込んだデータ量と等しくなる。したがって、一のＰＣＲ発見から次のＰＣＲ発見までにかかった繰返し回数ｒｂ×１８８を演算し、そのデータ量ｄを算出する（ステップS０８１０）。
【００５８】
そして、最後に「両ＰＣＲ間のデータ量ｄ」を、「両ＰＣＲ間の差分時間ｔ」で除することで単位時間当たりのデコードビットレートが算出される、という具合である。なおデコードビットレートの算出にあたり、上記処理例では、ＰＣＲやＳＰＳヘッダなどの映像データ以外のデータも含めてそのデコードビットレートを算出したが、映像データのみのデコードビットレートを算出するよう構成しても良い。
【００５９】
そして、図２に示すようなデータ構造をとる符号化ＴＳデータにおいて、「時間基準の配置バイト位置」（γ１）と「映像復号化最小単位の先頭バイト位置」（β１）の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームのデコーダバッファへの出力タイミングなどで示される再生時間を算出する。そして、算出した再生時間を、ＰＣＲで示される「時間基準」に加えることで、β１における再生時間、すなわち先頭時間情報を算出することができる。
【００６０】
このように、本実施例の電子機器によって、符号化ＴＳデータを復号せずに、その映像復号化最小単位の再生時間である先頭時間情報を取得することができる。そして、符号化ＴＳデータ内の各先頭時間情報を上記処理を繰り返すことで順次取得し、ランダムアクセス用のタイムチャートを生成することができる。
【００６１】
なお、本実施例の電子機器では時間基準の取得その他の処理においてＴＳパケットを前から順に読込む構成を例に挙げて説明しているが、もちろん、後ろから順に読込んで上記各処理を行うよう構成しても良い。
【００６２】
<処理の流れ>
【００６３】
以下、本実施例の先頭時間情報算出処理における全体の流れについて、その一例を図９から図１１を用いて説明する。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。まず、本実施例の電子機器では、先頭時間情報を算出するため各種パラメータの初期化処理を行う。
【００６４】
図９は、この初期化処理の一例を表すフローチャートである。この図にあるように、ＰＣＲ位置を０とし（ステップＳ０９０１）、ＰＣＲ時間も０とする（ステップＳ０９０２）。また、ループカウンターを０とする（ステップＳ０９０３）。
【００６５】
そして、ビットレート値を０とし（ステップＳ０９０４）、ビットレート用ループカウンターを０とする（ステップＳ０９０５）。また、読込みデータ位置を０とし（ステップＳ０９０６）、ビットレート用読込みデータ位置も０と設定する（ステップＳ０９０７）。また、ＡＵデリミター値を０とし（ステップＳ０９０８）、差分値も０と設定する（０９０９）。
【００６６】
そしてこのように各パラメータの初期化を行った後、つづいてビットレートの算出処理を行う。なお、ここで、映像復号化最小単位の先頭バイト位置探索の前にビットレートの算出処理を行う理由は、以下の例外処理に対応するためである。すなわち、前述の処理においては、ビットレートの算出のためにまずＰＣＲを取得している。しかし、例外的にＰＣＲ取得の前に映像復号化最小単位が取得された場合、その映像復号化最小単位の先頭バイト位置までのビットレートは不明なままとなってしまう。そこで、このような例外時の対応のために、まずビットレートを最初に求めておく、という具合である。
【００６７】
図１０は、この例外処理のためのビットレート算出処理の一例を表すフローチャートである。この図にあるように、まず前述の各種パラメータの初期化処理を実行し（ステップS１００１）、続いて、読込みデータ位置から１８８バイト分（一パケット分）のデータを読込む（ステップＳ１００２）。そして図５に示すようなＰＣＲ有無の判定処理を実行し（ステップＳ１００３）、ＰＣＲが読込んだデータ内に含まれていなければ読込み位置を１８８バイト加えた先に設定し（ステップＳ１００４）、ＰＣＲ有無の判定処理を繰り返す。そして、ＰＣＲが有る旨の判定結果が出力されると、図６や図８に示すような処理によりビットレートを（暫定的に）算出する（ステップＳ１００４）。
【００６８】
そして、読込みデータ位置を０に戻し（ステップＳ１００５）、ＰＣＲ位置およびＰＣＲ時間を０と設定して（ステップＳ１００６）、次の先頭時間情報の算出処理を実行する。
【００６９】
なおＨ．２６４タイプで符号化される場合、ビットレートは単位時間当たりの符号量が可変となるいわゆる「ＶＢＲ」である。そのため、ビットレートの算出は、映像復号化最小単位ごとにその近辺のＰＣＲを利用して実行されることが望ましい。
【００７０】
図１１は、上記例外処理の後に実行される先頭時間情報の算出の一例を表すフローチャートである。この図にあるように、まず、図５に示す処理を実行し、１８８バイト分のデータの読込みと、その読込んだデータ内にＰＣＲが有るか否かの判定処理を行う（ステップＳ１１０１）。ここで、読込んだ１８８バイトのデータ内にＰＣＲが無い旨の判定結果であり、かつステップＳ１１０５にてＳＰＳとＡＵデリミターが有る旨の判断結果が出力された場合、先頭時間の算出処理において、前述の例外処理にて算出されたビットレートが使用されることになる。
【００７１】
一方、ステップＳ１１０１にてＰＣＲが有る旨の判定結果が出力された場合、図６にて示すようにＰＣＲ時間の取得（ステップＳ１１０２）、およびＰＣＲ位置の取得（ステップＳ１１０３）が実行される。また、続いて、図８に示すような処理を実行し、新たにビットレートが算出される（ステップＳ１１０４）。
【００７２】
続いて、図７に示すようにして、読込んだ１８８バイトのデータ内にＳＰＳが有るか否かの判定処理が実行される（ステップＳ１１０５）。その結果、ＳＰＳが無いと判定された場合、ループカウンターｒに１を加えて（ステップＳ１１０６）、ＰＣＲの判定からの処理が繰り返される。
【００７３】
一方、ＳＰＳが有ると判定され、図７に示すようにそのＳＰＳの直前にあるＡＵデリミターの先頭バイト位置が取得される（ステップＳ１１０７）、その「ＡＵデリミター位置」から「ＰＣＲ位置」を減じ、差分位置Ｌ（バイト）を算出する（ステップＳ１１０８）。そして、「差分位置Ｌ」を「ビットレート」で除し、さらに「ＰＣＲ時間」を加算することで、先頭時間情報が算出される（ステップＳ１１０９）。また、このように算出した先頭時間情報、およびＡＵデリミター位置をタイムチャートに出力し、ランダムアクセスの際に参照する、という具合である。
【００７４】
<ハードウェア的構成>
【００７５】
図１２は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用して先頭時間情報の取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。
【００７６】
この図にあるように、電子機器は、各種演算処理を行うための「ＣＰＵ（中央演算装置）」（１２０１）と、「主メモリ」（１２０２）と、を備えている。またストリーム映像配信用の符号化ＴＳデータやランダムアクセス用のタイムチャートを保持する「ＨＤＤ」（１２０３）や、ストリーミングにて映像を配信するためネットワークに接続された「通信ＩＦ（インターフェース）」（０８０４）も備えている。そしてそれらが「システムバス」などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００７７】
また、「主メモリ」にはプログラムが読み出され、「ＣＰＵ」は読み出された当該プログラムを解釈して各種演算処理を実行する。また、この「主メモリ」や「ＨＤＤ」、「ＣＰＵ」内のキャッシュなどにはそれぞれ複数のアドレスが割り当てられており、「ＣＰＵ」の演算処理においては、そのアドレスを特定し格納されているデータにアクセスすることで、データを用いた演算処理を行うことが可能になっている。
【００７８】
ここで、まず、タイムチャート生成プログラムに従い、「ＨＤＤ」から符号化ＴＳデータの先頭から１８８バイト分のデータが「主メモリ」のアドレス１に読込まれる。続いて、「主メモリ」の各アドレスに格納されたループカウンター、ＰＣＲ時間、ＰＣＲ位置、ＡＵデリミター位置、ビットレートなどのセット（初期化）が実行され、それにより各パラメータ値が０と設定される。
【００７９】
そして「ＣＰＵ」はプログラムに従い、前述のようにＰＣＲ有無の判定処理を行う。すなわち「主メモリ」のアドレス１に読込まれた１８８バイトのデータ中の先頭から２７ビット目の値ａと４４ビット目の値ｂを取得する。そして、両者の値が１であるか否かの判断処理が「ＣＰＵ」の論理演算処理によって実行される。ここで、ａ、ｂのいずれかの値が１でないとの判断結果が出力されると、「主メモリ」のアドレス２に格納されているループカウンターの値が＋１されて、次の１８８バイト分の符号化ＴＳデータの読込み、及びＰＣＲ有無の判定処理が繰り返される。
【００８０】
そして、ａ、ｂの両値が１であるとの判断結果が出力されると、「ＣＰＵ」はプログラムに従い、続いて前述のようにＰＣＲ時間およびＰＣＲ位置の算出処理を実行する。すなわち、読込んだ１８８バイトのデータの４８から８１ビットの値（PCR Base）を、「ＣＰＵ」の演算処理により１０進数に変換し３００倍する。そして１８８バイトのデータの８８から９７ビットの値（PCR Extension）を、「ＣＰＵ」の演算処理により１０進数に変換し、前記算出した値に加算する。そして、その値を２７Mにて除算し、"ＰＣＲ時間"として「主メモリ」のアドレス３に格納する。また「ＣＰＵ」の演算処理によって、ループカウンターに格納されている値を１８８倍し、その値に１２バイトが加算されることで"ＰＣＲ位置"が算出され、「主メモリ」のアドレス４に格納される。
【００８１】
つづいて、「ＣＰＵ」はプログラムに従い、前述のようにデコードビットレートの算出処理を行う。すなわち、次の１８８バイト分のデータを読込み、次のＰＣＲを検出する。そして、２つのＰＣＲ時間の差分値ｔを、そのＰＣＲ間の動画データの再生時間を示す値ｔとして算出する。また、「主メモリ」のアドレス６に格納されたビットレート算出用ループカウンター値を１８８倍し、両ＰＣＲ間にあるデータ量ｄを算出する。そして、「ＣＰＵ」の演算処理によって「ｔ／ｄ」の値を算出し、"デコードビットレート値"として「主メモリ」のアドレス７に格納する。
【００８２】
つづいて、「ＣＰＵ」はプログラムに従い、前述のように映像復号化最小単位の先頭バイト位置の取得処理を行う。すなわち、読み込んだデータ内にＡ（0x00000127）、Ｂ（0x00000147）、Ｃ（0x00000167）のいずれかが含まれるか、を「ＣＰＵ」の論理演算処理にて判断する。そして、上記値が含まれていないとの判断結果が出力されると、「主メモリ」のアドレス２に格納されているループカウンターに１を加えた後、次の１８８バイト分のデータを「主メモリ」のアドレス１に読込み、上記処理を繰り返す。
【００８３】
そして、上記Ａ、Ｂ、Ｃいずれかの値が読み込んだデータ内に含まれているとの判断結果が出力されている場合、図７に示すようにＡＵデリミターが分断され、前後のパケットに分離して存在しているかの判断処理を実行する。そして、ループカウンターの値とＡＵデリミターの先頭バイト位置の値を変数とし、「ＣＰＵ」の演算処理によって"映像復号化最小単位の先頭バイト位置"を算出し、「主メモリ」のアドレス５に格納する。
【００８４】
そして、各アドレスに格納された、「ＰＣＲ時間」、「ＰＣＲ位置」、「デコードビットレート値」、「映像復号化最小単位の先頭バイト位置」をパラメータとして、前述のように「ＣＰＵ」の演算処理によって先頭時間情報を算出する。すなわち、「時間基準の配置バイト位置」と「映像復号化最小単位の先頭バイト位置」の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームの再生時間を算出する。そして、算出した再生時間を、ＰＣＲで示される「時間基準」に加えることで当該映像復号化最小単位の先頭の再生時間、すなわち先頭時間情報を算出し、「主メモリ」のアドレス８に格納する、という具合である。
【００８５】
そして、このようにして取得した先頭時間情報を、映像復号化最小単位の先頭バイト位置と関連付けてタイムチャートとして「ＨＤＤ」に格納することで、ネットワーク上のクライアント端末からのランダムアクセス命令に対応することが出来る。
【００８６】
≪実施例１のその他の例≫
【００８７】
<概要>
【００８８】
上記実施例では、時間基準としてＰＣＲを利用する例を挙げたが、それ以外にも、例えば符号化ＴＳデータがタイムスタンプ付トランスポートストリームデータであれば時間基準としてタイムスタンプを利用する例も挙げられる。
【００８９】
図１３は、タイムスタンプ付トランスポートストリームのＴＴＳパケットの一例を表す概念図である。なお、この図に示すＴＳパケット部分（１８８バイトのデータ部分）は図２に示すＴＳパケットと同様のデータ構造をもつ。そして、ＴＴＳパケットのデータ構造の特徴点は、ＴＳパケットの先頭に４バイト分のデータが、タイムスタンプ（時間基準）として必ず付加されている点である。
【００９０】
つまり、ＴＳパケットにおける時間基準である「ＰＣＲ」は必ずしもＴＳパケット内に配置されているとは限らず、したがって、前述のようにそのＰＣＲの検出（配置有無の判定）処理を行う必要がある。一方、タイムスタンプ付トランスポートストリームにおけるＴＴＳパケットの場合、パケットの先頭に必ず時間基準である「タイムスタンプ」が配置されているため、その配置有無の判定処理を前述の処理から省略できる、という具合である。
【００９１】
<機能的構成>
【００９２】
図１４は、本実施例の電子機器における、さらに別の機能ブロックの一例を表す図である。この図にあるように、本実施例の別の構成をとる「電子機器」（１４００）は、「時間基準取得部」（１４０１）にて「タイムスタンプ時間基準取得手段」（１４０４）をさらに備えることを特徴とする。なお、その他の構成（時間基準取得部、先頭探索部、先頭時間情報取得部、ＡＵデリミター取得手段）については、すでに記載済みであるのでその説明は省略する。
【００９３】
「タイムスタンプ時間基準取得手段」（１４０４）は、タイムスタンプ付トランスポートストリームのＴＳパケットの先頭に位置するタイムスタンプから時間基準を取得する機能を有する。そして、タイムスタンプはＴＴＳパケットの先頭に必ず付加されているため、その有無の判定処理を省略した前述の処理を実行することで先頭時間情報を取得することができる。
【００９４】
<処理の流れ>
【００９５】
図１５、および図１６は、本実施例の別の電子機器における先頭時間情報算出処理の流れの一例を表すフローチャートである。この図１５にあるように、まず、ループカウンターを０とし（ステップＳ１５０１）、読込みデータ位置を０とし（ステップＳ１５０２）、そしてＡＵデリミター値を０として（ステップＳ１５０３）、各パラメータの初期化処理を実行する。
【００９６】
そして図１６に示すように、上記各パラメータの初期化処理（ステップＳ１６０１）を行った後、符号化ＴＳデータの所定の読込データ位置（最初はデータの先頭）から、符号化ＴＳデータを１９２バイト分読み込む（ステップＳ１６０２）。
【００９７】
続いて、読み込んだデータ内にＡ（0x00000127）、Ｂ（0x00000147）、Ｃ（0x00000167）のいずれかが含まれるか、をＣＰＵの論理演算処理にて判断する（ステップＳ１６０３）。そして、上記値が含まれていなければ、読み込んだ一パケット分の１９２バイトのデータ内にＳＰＳは含まれていないとして、ループカウンターに１を加えて（ステップS１６０４）、読込データ位置を１９２バイト先に設定して（ステップS１６０５）、上記処理を繰り返す。
【００９８】
そして、上記Ａ、Ｂ、Ｃいずれかの値が読み込んだデータ内に含まれていた場合、当該データ内にＳＰＳ部分が含まれているので、続いてその直前に配置されるＡＵデリミターの先頭位置の取得処理を行う。ここでも、前述の場合と同様、１９２バイトのＴＴＳパケットに、一つのＡＵデリミターが分断されていることを考慮し、読込んだ１９２バイトのデータ内に、ＡＵデリミターの先頭の値Ｄ（0x00000109）が含まれているか判断する（ステップＳ１６０６）。
【００９９】
そして値Ｄが含まれていれば、ＳＰＳが含まれている１９２バイトのデータ内にＡＵデリミターの先頭がある（ＡＵデリミターが分離されていない）とする。そして、まず、読込んだ１９２バイトのデータの先頭から４バイトのタイムスタンプの値を取得する（１６０７ｙ）。また、１９２×ループカウンターｒの値を、そのタイムスタンプ位置として取得する。つづいてその１９２バイトのデータの先頭からのＤの出現バイト数ｘ１を取得し、そのｘ１の値にループカウンターｒ×１８８の値を加算することで、映像復号化最小単位の先頭バイト位置を取得する（ステップＳ１６０８ｙ）。という具合である。
【０１００】
一方、ステップＳ１６０６にて値Ｄが含まれていないと判断された場合、ＡＵデリミターが分離され、その先頭は読込んだパケットデータの１つ前のパケットデータ内に存在していることになる。したがって、この場合には、読込んだデータの１つ前の１９２バイトのデータの先頭から４バイトのタイムスタンプの値を取得する（ステップＳ１６０７ｎ）。また、１９２×（ｒ−１）の値をタイムスタンプ位置として取得する。また読込んだデータの先頭からのＤの出現バイト数ｘ２を取得して、（ｒ−１）×１８８＋ｘ２を、映像復号化最小単位の先頭バイト位置として取得する（ステップＳ１６０８ｎ）。
【０１０１】
つづいて、上記いずれの場合でも、取得したタイムスタンプの値を２７Ｍで除することでその時間基準の値を算出する（ステップＳ１６０９）、という具合である。このように、本実施例では、時間基準の有無判定処理を省いて上記処理を実行することが出来る。
【０１０２】
そして、取得された「映像復号化最小単位の先頭バイト位置」、「タイムスタンプ時間」、「タイムスタンプ位置」、そして「デコードビットレート値」をパラメータとして、先頭時間情報が算出することができる。なお「デコードビットレート値」の算出処理、および先頭時間情報の取得処理は、前述の処理と同様であるのでその説明は省略する。
【０１０３】
<ハードウェア的構成>
【０１０４】
図１７は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用してタイムスタンプ情報を参照した先頭時間情報の取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。なお、前述の通り、タイムスタンプ情報の有無判定処理を省くこと意外、ほぼ上記ＰＣＲを参照した先頭時間情報の取得処理と同様である。
【０１０５】
この図にあるように、電子機器は、「ＣＰＵ」（１７０１）と、「主メモリ」（１７０２）と、「ＨＤＤ」（１７０３）と、「通信ＩＦ」（１７０４）と、を備えている。
【０１０６】
ここで、まず、タイムチャート生成プログラムに従い、「ＨＤＤ」から符号化ＴＳデータの先頭から１９２バイト分のデータが「主メモリ」のアドレス１に読込まれる。続いて、「主メモリ」の各アドレスに格納されたループカウンターをはじめとするパラメータ値の初期化処理が実行される。
【０１０７】
そして「ＣＰＵ」はプログラムに従い、まず前述のように映像復号化最小単位の先頭バイト位置の取得処理を行う。具体的には、読み込んだデータ内にＡ（0x00000127）、Ｂ（0x00000147）、Ｃ（0x00000167）のいずれかが含まれるか、を「ＣＰＵ」の論理演算処理にて判断する。そして、上記値が含まれていないとの判断結果が出力されると、「主メモリ」のアドレス２に格納されているループカウンターに１を加えた後、次の１９２バイト分のデータを「主メモリ」のアドレス１に読込み、上記処理を繰り返す。
【０１０８】
そして、上記Ａ、Ｂ、Ｃいずれかの値が読み込んだデータ内に含まれているとの判断結果が出力されている場合、ループカウンターの値とＡＵデリミターの先頭バイト位置の値を変数とし、「ＣＰＵ」の演算処理によって"映像復号化最小単位の先頭バイト位置"を算出し、「主メモリ」のアドレス５に格納する。
【０１０９】
続いて、「ＣＰＵ」はプログラムに従い、前述のようにタイムスタンプ時間およびタイムスタンプ位置の算出処理を実行する。すなわち、読込んだ１９２の先頭４バイトのデータからその値を取得し、その値を２７Mにて除算することで算出した"タイムスタンプ時間"を「主メモリ」のアドレス３に格納する。また「ＣＰＵ」の演算処理によって、ループカウンターに格納されている値を１８８倍することで"タイムスタンプ位置"が算出され、「主メモリ」のアドレス４に格納される。なお、ＡＵデリミターがＴＴＳパケットに分離して存在している場合は、一つの前のＴＴＳパケットに関し、そのループカウンターを（ｒ−１）として、上記タイムスタンプ時間とタイムスタンプ位置を算出すると良い。
【０１１０】
つづいて、「ＣＰＵ」はプログラムに従い、前述のように"デコードビットレート"の算出し、「主メモリ」のアドレス６に格納する。そして、「タイムスタンプ位置」と「映像復号化最小単位の先頭バイト位置」の差分から、そのデータ量を算出する。そして、算出したデータ量を「デコードビットレート」で除することで、当該データに含まれるフレームの再生時間を算出する。そして、算出した再生時間を、「タイムスタンプ時間」に加えることで先頭時間情報を算出し、「主メモリ」のアドレス７に格納する、という具合である。
【０１１１】
<効果の簡単な説明>
【０１１２】
以上のように本実施例の電子機器では、Ｈ．２６４タイプ（その他タイプのＭｐｅｇ４も含む）の符号化ＴＳデータのままで映像復号化最小単位の先頭位置の再生時間を取得することができる。したがって、Ｈ．２６４タイプであっても、その符号化ＴＳデータを復号化することなく、映像復号化の最小単位の開始位置を探索してその再生時間を示すタイムチャートを生成することができる。
【０１１３】
≪実施例２≫
【０１１４】
<概要>
【０１１５】
本実施例の電子機器は、前記実施例１を基本として、算出した先頭時間情報をＨＤＤなどに保持する機能をさらに有することを特徴とする。そして、本実施例のように先頭時間情報をＨＤＤ等に保持し、タイムチャートを生成することで、ストリーミング配信映像データに対するランダムアクセスなどに対応することが出来る。
【０１１６】
<機能的構成>
【０１１７】
図１８は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」（１８００）は、実施例１を基本として、「時間基準取得部」（１８０１）と、「先頭探索部」（１８０２）と、「先頭時間情報取得部」（１８０３）と、を有する。また、図示しない「ＰＣＲ取得手段」や「ＡＵデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【０１１８】
そして、本実施例の電子機器の特徴点は、さらに「先頭時間情報保持部」（１８０４）を有する点である。
【０１１９】
「先頭時間情報保持部」（１８０４）は、先頭時間情報取得部にて取得した先頭時間情報を保持する機能を有し、例えばＨＤＤやフラッシュメモリ、その他記憶媒体にて実現することが出来る。
【０１２０】
図１９は、この先頭時間情報保持部にて保持される先頭時間情報を含むタイムチャートの一例を表す概念図である。この図にあるように、前記処理により算出された先頭時間情報を、そのＡＵデリミターの先頭バイト位置と関連付けてタイムチャート化することで、リクエストのあった再生時間に近似する映像復号化最小単位を先頭とする符号化ＴＳデータを、リクエスト端末に返信することができる、という具合である。
【０１２１】
<処理の流れ>
【０１２２】
図２０は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【０１２３】
この図にあるように、上記実施例１で記載したような処理が実行され、先頭時間情報が取得される（ステップＳ２００１）。すると、その取得した先頭時間情報を、例えばＨＤＤなどの保持部に記録し（ステップＳ２００２）、その記録され保持されている先頭時間情報を用いて、例えば図１９に示すようなタイムチャートを作成する（ステップＳ２００３）。
【０１２４】
<効果の簡単な説明>
【０１２５】
以上のように本実施例の電子機器によって、先頭時間情報をＨＤＤ等に保持することができる。そして、その保持している先頭時間情報を用いてタイムチャートを生成することで、ストリーミング配信映像データに対するランダムアクセスなどに対応することが出来る。
【０１２６】
≪実施例３≫
【０１２７】
<概要>
【０１２８】
本実施例の電子機器は、上記実施例を基本として、映像再生端末からのランダムアクセスのリクエストを受付けて、その受付けたリクエストに応じて送信すべき映像復号化最小単位を識別する識別情報を特定する機能をさらに備えることを特徴とする。
【０１２９】
<機能的構成>
【０１３０】
図２１は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」（２１００）は、実施例１を基本として、「時間基準取得部」（２１０１）と、「先頭探索部」（２１０２）と、「先頭時間情報取得部」（２１０３）と、を有する。また、図示しない「ＰＣＲ取得手段」や「ＡＵデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【０１３１】
そして、本実施例の電子機器の特徴点は、さらに「再生開始位置入力受付部」（２１０４）と、「再生開始最小単位ＩＤ取得部」（２１０５）と、を有する点である。
【０１３２】
「再生開始位置入力受付部」（２１０４）は、再生開始位置をコンテンツの再生開始後経過時間で指定する入力を受付ける機能を有する。なお、この入力受付は、本発明の基本的な実施例が映像配信であることを考えるとネットワーク経由で別端末にて入力された指定情報を受付ける「通信ＩＦ」にて実現することができる。
【０１３３】
具体的には、別端末の映像再生プレイヤーの例えばシークバーが操作され、その操作によって指定された「２分３０秒」といった再生開始後経過時間情報を、リクエスト情報として受付ける、という具合である。
【０１３４】
「再生開始最小単位ＩＤ取得部」（２１０５）は、受付けた再生開始後経過時間と、先頭時間情報と、を利用して最初に再生すべき映像復号化最小単位ＩＤを取得する機能を有する。「映像復号化最小単位ＩＤ」とは、前記先頭探索部にて探索された映像復号化最小単位を示す識別情報をいい、その映像復号化最小単位の先頭バイト位置や、その並び順に応じて映像復号化最小単位に付された連番などが挙げられる。この再生開始最小単位ＩＤ取得部は、例えば前述の図１９に示すようなタイムチャートを参照し、ＣＰＵの論理演算処理による検索処理を実行することで実現することが出来る。そして、このように再生開始最小単位ＩＤである、例えばその先頭バイト位置などを取得することで、映像再生端末からリクエストのあった再生開始後経過時間に近似する時間に再生されるべき映像復号化最小単位を取得することが出来る。
【０１３５】
<ハードウェア的構成>
【０１３６】
図２２は、上記機能的な各構成要件をハードウェアとして実現した際の、電子機器における構成の一例を表す概略図である。この図を利用して再生開始最小単位ＩＤの取得処理におけるそれぞれのハードウェア構成部の働きについて説明する。
【０１３７】
この図にあるように、電子機器は、上記実施例と同様に「ＣＰＵ」（２２０１）と、「主メモリ」（２２０２）と、「ＨＤＤ」（２２０３）と、「通信ＩＦ」（２２０４）と、を備えている。
【０１３８】
ここで、まず、前述のタイムチャート生成プログラムに従い、先頭時間情報が取得され
「ＨＤＤ」に当該先頭時間情報を用いたタイムチャートが格納される。つづいて「通信ＩＦ」にて、ネットワーク上のクライアント端末から「２分３０秒」といった具合に再生開始後経過時間が取得されると、「主メモリ」のアドレス１に格納される。すると、その再生開始後経過時間をキーとして、「ＨＤＤ」に格納されているタイムチャートの検索処理が「ＣＰＵ」の論理演算処理により実行される。そして、タイムチャートにて再生開始後経過時間に近似する先頭時間情報と関連付けられた再生開始最小単位の先頭バイト位置が取得され、「主メモリ」のアドレス２に格納される、という具合である。
【０１３９】
<処理の流れ>
【０１４０】
図２３は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【０１４１】
この図にあるように、上記実施例１で記載したような処理が実行され、先頭時間情報が取得される（ステップＳ２３０１）。そして、その後、再生開始後経過時間の指定入力を受付ける（ステップＳ２３０２）と、指定入力された再生開始後経過時間と先頭時間情報とから再生開始最小単位ＩＤである、例えばその先頭バイト位置を取得する（ステップＳ２３０３）。
【０１４２】
<効果の簡単な説明>
【０１４３】
以上のように本実施例の電子機器によって、映像再生端末からリクエストのあった再生開始後経過時間に近似する時間に再生されるべき映像復号化最小単位を取得することが出来る。
【０１４４】
≪実施例４≫
【０１４５】
<概要>
【０１４６】
本実施例の電子機器は、前記実施例３を基本として、前記取得された再生開始最小単位ＩＤである、例えばその先頭バイト位置などを利用して映像再生端末からのランダムアクセス再生リクエストに応じる機能をさらに備えることを特徴とする。
【０１４７】
<機能的構成>
【０１４８】
図２４は、本実施例の電子機器における機能ブロックの一例を表す図である。この図にあるように、本実施例の「電子機器」（２４００）は、実施例３を基本として、「時間基準取得部」（２４０１）と、「先頭探索部」（２４０２）と、「先頭時間情報取得部」（２４０３）と、「再生開始位置入力受付部」（２４０４）と、「再生開始最小単位ＩＤ取得部」（２４０５）と、を有する。また、図示しない「ＰＣＲ取得手段」や「ＡＵデリミター取得手段」、「タイムスタンプ時間基準取得手段」などを有していても良い。なお、これら構成要件は、上記実施例にてすでに記載済みであるので、その説明は省略する。
【０１４９】
そして、本実施例の電子機器の特徴点は、さらに「保持部」（２４０６）と、「再生開始最小単位ＩＤ取得部」（２４０７）と、を有する点である。
【０１５０】
「保持部」（２４０６）は、Ｈ．２６４タイプの符号化トランスポートストリームと関連付けて先頭時間情報を保持する機能を有し、例えばＨＤＤやフラッシュメモリ、その記憶媒体により実現することが出来る。
【０１５１】
「送出部」（２４０７）は、Ｈ．２６４タイプの符号化トランスポートストリームを再生開始最小単位ＩＤにて特定されるバイト位置から送出する機能を有し、例えば通信ＩＦやその制御回路、通信用アプリケーションなどで実現することができる。
【０１５２】
そして上記構成によって、映像再生端末のリクエスト（再生開始後経過時間）によって取得された再生開始最小単位ＩＤを利用して、その再生開始後経過時間に近似する時間にて再生されるべき映像復号化最小単位を先頭とする映像データの送信を実行することができる。
【０１５３】
<処理の流れ>
【０１５４】
図２５は、本実施例の電子機器における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。
【０１５５】
この図にあるように、上記実施例１で記載したような処理が実行され、先頭時間情報が取得される（ステップＳ２５０１）。そして取得した先頭時間情報を符号化ＴＳデータと関連づけて保持部に記録する（ステップＳ２５０２）。
【０１５６】
その後、再生開始後経過時間の指定入力を受付ける（ステップＳ２５０３）と、指定入力された再生開始後経過時間と先頭時間情報とから再生開始最小単位ＩＤである、例えばその先頭バイト位置などを取得する（ステップＳ２５０４）。そして、取得した再生開始最小単位の先頭バイト位置などにて特定されるバイト位置から符号化ＴＳデータを送信する（ステップＳ２５０５）。
【０１５７】
<効果の簡単な説明>
【０１５８】
以上のように本実施例の電子機器によって、映像再生端末のリクエスト（再生開始後経過時間）によって取得された再生開始最小単位の先頭バイト位置などを利用して、その再生開始後経過時間に近似する時間にて再生されるべき映像復号化最小単位を先頭とする映像データの送信を実行することができる。
【図面の簡単な説明】
【０１５９】
【図１】実施例１の電子機器の一例である映像配信サーバから配信される符号化ＴＳデータ、およびそのタイムチャートの一例を説明するための概念図
【図２】実施例１の電子機器にて配信される符号化ＴＳデータのさらに詳細なデータ構造の一例を表す概念図
【図３】実施例１の電子機器における機能ブロックの一例を表す図
【図４】実施例１の電子機器における、別の機能ブロックの一例を表す図
【図５】実施例１の電子機器のＰＣＲ取得手段によるＰＣＲの有無判定処理の一例を表すフローチャート
【図６】実施例１の電子機器のＰＣＲ取得手段によるＰＣＲの取得処理の一例を表すフローチャート
【図７】実施例１の電子機器のＡＵデリミター取得手段によるＳＰＳ部分の直前に配置されるＡＵデリミターの取得処理の一例を表すフローチャート
【図８】実施例１の電子機器における符号化ＴＳデータのデコードビットレートを取得する処理の流れの一例を表すフローチャート
【図９】実施例１の電子機器の先頭時間情報算出処理における初期化処理の一例を表すフローチャート
【図１０】実施例１の電子機器の先頭時間情報算出処理における例外処理のためのビットレート算出処理の一例を表すフローチャート
【図１１】実施例１の電子機器における先頭時間情報算出処理の一例を表すフローチャート
【図１２】実施例１の電子機器におけるハードウェア構成の一例を表す図
【図１３】実施例１の電子機器にて配信されるタイムスタンプ付トランスポートストリームのＴＴＳパケットの一例を表す概念図
【図１４】実施例１の電子機器における、さらに別の機能ブロックの一例を表す図
【図１５】実施例１の別の電子機器の先頭時間情報算出処理における初期化処理の流れの一例を表すフローチャート
【図１６】実施例１の別の電子機器における先頭時間情報算出処理の流れの一例を表すフローチャート
【図１７】実施例１の電子機器における、別のハードウェア構成の一例を表す図
【図１８】実施例２の電子機器における機能ブロックの一例を表す図
【図１９】実施例２の電子機器の先頭時間情報保持部にて保持される先頭時間情報を含むタイムチャートの一例を表す概念図
【図２０】実施例２の電子機器における処理の流れの一例を表すフローチャート
【図２１】実施例３の電子機器における機能ブロックの一例を表す図
【図２２】実施例３の電子機器におけるハードウェア構成の一例を表す図
【図２３】実施例３の電子機器における処理の流れの一例を表すフローチャート
【図２４】実施例４の電子機器における機能ブロックの一例を表す図
【図２５】実施例４の電子機器における処理の流れの一例を表すフローチャート
【図２６】実施例１の電子機器のＡＵデリミター取得手段によるＳＰＳ部分の直前に配置されるＡＵデリミターの取得処理の一例を表すフローチャート
【符号の説明】
【０１６０】
０３００  電子機器
０３０１  時間基準取得部
０３０２  先頭探索部
０３０３  先頭時間情報取得部
０４０４  ＰＣＲ取得手段
０４０５  ＡＵデリミター取得手段
１４０４  タイムスタンプ時間基準取得手段
【図１】
0005219122.tif 000002
【図２】
0005219122.tif 000003
【図３】
0005219122.tif 000004
【図４】
0005219122.tif 000005
【図５】
0005219122.tif 000006
【図６】
0005219122.tif 000007
【図７】
0005219122.tif 000008
【図８】
0005219122.tif 000009
【図９】
0005219122.tif 000010
【図１０】
0005219122.tif 000011
【図１１】
0005219122.tif 000012
【図１２】
0005219122.tif 000013
【図１３】
0005219122.tif 000014
【図１４】
0005219122.tif 000015
【図１５】
0005219122.tif 000016
【図１６】
0005219122.tif 000017
【図１７】
0005219122.tif 000018
【図１８】
0005219122.tif 000019
【図１９】
0005219122.tif 000020
【図２０】
0005219122.tif 000021
【図２１】
0005219122.tif 000022
【図２２】
0005219122.tif 000023
【図２３】
0005219122.tif 000024
【図２４】
0005219122.tif 000025
【図２５】
0005219122.tif 000026
【図２６】
0005219122.tif 000027