近年、蓄積メディアや通信ネットワークの大容量化、あるいは伝送技術の進歩にともない、動画や音声などの符号化マルチメディアデータを扱う機器や、サービスが普及してきた。例えば、放送分野においては、従来のアナログ放送に代わり、デジタル符号化されたメディアデータの放送が開始された。現在のデジタル放送は、固定受信のみを対象としているが、将来的には携帯電話などの移動体向けの放送も予定されている。また、通信分野においても、第3世代の携帯電話向けの動画配信サービスが立ち上がるなど、固定端末と携帯端末の双方でマルチメディアデータを扱う環境が整ってきている。これらの背景を鑑みると、SD(Secure Digital)カードなどのメモリカード、あるいはDVD-RAM(Digital Versatile Disk-Rewritable)などの光ディスクに、放送や、インターネット経由で受信したコンテンツデータを記録し、機器間でコンテンツデータを共有するといった使用方法の普及が見込まれる。
メディアデータを放送、蓄積、あるいはネットワーク経由で配信する際には、メディアデータの再生に必要なヘッダ情報とメディアデータとが多重化される。多重化にあたっては、放送やDVDなどの蓄積機器向け、および移動体向けに、それぞれ標準の多重化方式が規格化されている。まず、デジタル放送やDVDにおいては、ISO/IEC JTC1/SC29/WG 11 (International Standardisation Organization/International Engineering Consortium)において標準化されたMPEG−2(Moving Picture Expert Group)システム規格が使用される。また、携帯端末では、第3世代の移動体通信システムの規格化を目的とする国際標準化団体である3GPP(Third Generation Partnership Project)で、無線による動画配信規格として定められたTS26.234(Transparent end-to-end packet switched streaming service)において、ISO/IEC JTC1/SC29/WG 11で標準化されたMP4ファイルフォーマットが採用されている。
また、動画の符号化方式としては、現在普及しているMPEG−2 VideoやMPEG−4 Visualの後継規格としてMPEG−4 AVC(Advanced Video Coding)が標準化されたことから、今後MPEG−4 AVCの符号化動画像データをMPEG−2システム規格やMP4ファイルフォーマット(以降、MP4と呼ぶ)により多重化し、放送、蓄積あるいは配信することが予想される。
以下に、MPEG−2システムにおける符号化データ多重化方法の概要について説明する。MPEG−2システムでは、符号化データを扱う際の基本単位としてアクセスユニット(AU)を使用するため、まずAUの構造について説明する。AUとは、動画像の1ピクチャ、あるいは音声の1フレームに相当する単位であり、MPEG−4 AVCにおけるAUデータは、図1に示す構造をもつ。MPEG−4 AVCでは、ピクチャの復号に必須のデータに加えて、復号に必須でないSEI(Supplemental Enhancement Information)と呼ばれる補助情報や、AUの境界情報などをAUデータに含めることができ、これらのデータは全てNAL(Network Abstraction Layer)ユニットに格納される。NALユニットは、図1(a)に示すようにヘッダとペイロードから構成され、ヘッダのサイズは1バイトであり、ペイロードに格納されるデータのタイプ(以降、NALユニットタイプと呼ぶ)を示すフィールドなどが含まれる。NALユニットタイプは、スライスやSEIなどデータの種類別に値が定義されており、NALユニットに格納されたデータの種類を取得する際にはNALユニットタイプを参照する。AUには、図1(b)および(c)に示すように、1ピクチャ分のスライスデータに加えて、ヘッダ情報やSEIなどのNALユニットが格納されるが、NALユニットにはNALユニットデータの境界を識別するための情報が存在しないため、AU格納時には、各NALユニットの先頭に境界情報が付加することができる。境界情報としては、図1(b)のように0x000001の3バイトで示されるスタートコードプレフィックスを付加する方法(以降、バイトストリームフォーマットと呼ぶ)と、図1(c)のようにNALユニットのサイズを付加する方法(以降、NALサイズフォーマットと呼ぶ)の2種類がある。なお、AUの先頭NALユニット、および特定のNALユニットタイプ値をもつNALユニットに対しては、スタートコードプレフィックスの前に、zero_byte(値が0x00である1バイト)を1つ以上付加することが規定されている。
なお、MPEG−2システムでは、バイトストリームフォーマットが使用される。MPEG−4 AVCにおけるIピクチャには、IDR(Instantaneous Decoder Refresh)ピクチャと、IDRピクチャではないIピクチャの2種類がある。IDRピクチャとは、復号順でIDRピクチャより後の全ピクチャを、復号順でIDRピクチャより前のピクチャを参照することなしに復号することのできる、つまり、復号に必要な状態がリセットされるIピクチャであり、MPEG−2のclosed GOPの先頭Iピクチャに相当する。IDRではないIピクチャにおいては、復号順でIピクチャより後のピクチャが、復号順で当該Iピクチャより前のピクチャを参照してもよいが、例えば予測構造にMPEG−2と同等の制限を設けることで、Iピクチャを先頭に配置してMPEG−2のopen GOPと同等のランダムアクセス単位を実現できる。また、IDRピクチャのスライスと、非IDRピクチャのスライスとは異なるタイプのNALユニットに格納される。以降、IDRピクチャを含むAUをIDR AUと呼ぶことにする。また、IDR AUから、次のIDR AUの直前AUまでのAUから構成される単位をシーケンスと呼ぶ。次に、ヘッダ情報にはSPSとPPS(Picture Parameter Set)の2種類があり、SPSはシーケンス単位で固定のヘッダ情報であり、PPSはピクチャ単位で切り替えることのできるヘッダ情報である。IDRピクチャや非IDRのIピクチャを先頭に配置してランダムアクセス単位を構成する際には、ランダムアクセス単位内のピクチャから参照されるSPSとPPSが、復号時に参照可能である必要がある。
次に、放送において、MPEG−2システムによりAUデータを多重化する際の方法について説明する。
MPEG−2システムでは、符号化データは、まずPES(Packetized Elementary Stream)パケットに多重化され、さらにPESパケットがTS(Transport Stream)パケットに多重化される。図2の(a)と(b)に、PESパケットとTSパケットの構造をそれぞれ示す。PESパケットのペイロードには、アクセスユニット(AU)データが格納される。図2(a)の(1)から(3)は、PESパケットのペイロードへのAUデータの格納例を示すものであり、(1)、(2)に示すように1以上のAUをまとめて格納してもよいし、(3)に示すようにAUデータを分割して格納してもよい。さらに、ペイロードには、AUデータとは別に、スタッフィングデータを含めることもできる。PESパケットのヘッダは、0x000001の3バイトで示されるスタートコードプレフィックス、および1バイトのストリームIDから構成される計4バイトのスタートコードから開始する。ストリームIDとは、PESパケットのペイロードデータに含まれる符号化データの種類を示す識別番号であり、MPEG−4AVCでは、0xE0以上0xEF以下の任意の値をとることができる。ヘッダには、ペイロード内で開始する先頭AUの復号時刻、および表示時刻を格納することができるが、全てのPESパケットに必ずこれらの時間情報が格納されるわけではなく、時間情報が格納されないPESパケットも存在する。PESパケットのヘッダにより復号時刻、あるいは表示時刻が示されないAUの時間情報が必要である際には、AUデータを解析して、直前AUとの復号時刻、あるいは表示時刻の差分値を取得する。一方、PESパケットのデータは、図2の(b)に示すように、TSパケットのペイロードに分割して格納される。TSパケットは、サイズが188バイトである固定長のパケットであり、4バイトのヘッダ、アダプテーションフィールド、ペイロードデータから構成される。なお、アダプテーションフィールドは、ヘッダ内の特定のフラグがセットされている場合にのみ存在する。ヘッダには、TSパケットが伝送するデータの種類を示すPIDと呼ばれる識別番号と、continuity_counterと呼ばれるカウンタが含まれる。continuity_counterは、4ビットのフィールドであり、同一PIDのTSパケットにおいては、送信順に1ずつ増加し、最大値に達すると循環する。TSパケットのPIDと、TSパケットが伝送するデータの種類との対応関係は、別途TSパケットにより送信されるプログラム情報によって提供される。このため、TSパケット受信時には、まず、TSパケットのPIDを取得し、PIDの値に応じてパケットを振り分ける。例えば、受信開始時に取得したプログラム情報により、MPEG−4 AVCのデータはPIDが32であるTSパケットにより伝送されることが示される際には、PIDが32であるTSパケットを取得することにより、MPEG−4 AVCのAUデータを取得することができる。ここで、受信したTSパケットのcontinuity_counter値にギャップが発生している際には、伝送路においてパケットロスが発生したことを示す。また、TSパケットからAUデータを分離する際には、TSパケットのペイロードデータからPESパケットを分離し、分離されたPESパケットからAUのデータを分離する。TSパケットのヘッダには、TSパケットのペイロードの先頭からPESパケットのデータが開始することを示すフラグが存在するため、当該フラグがセットされたTSパケットをサーチすることによりPESパケットの開始位置が取得できる。あるいは、TSパケットのペイロードにおいてPESパケットのスタートコードをサーチしてPESパケットの開始位置を取得してもよい。
さらに、TSパケットをSDカードやDVDなどの光ディスクに記録する際には、ランダムアクセス、あるいは高速再生などの特殊再生を容易に実現するためのタイムマップを合わせて多重化する。タイムマップとは、ランダムアクセス可能なビデオのピクチャ、あるいはオーディオのフレームの表示時刻やアドレス情報などを格納したエントリから構成されるテーブルであり、飛び込み再生や高速再生、あるいは逆再生などの特殊再生を行う際には、タイムマップを参照することにより、復号を開始するピクチャを容易に取得できる。図3は、タイムマップの例である。図3(b)のTSパケット列においては、1025番目のTSパケットと1601番目のTSパケットにおいて、それぞれIDR AUが開始する。図3(a)は、図3(b)のTSパケット列においてビデオのランダムアクセスポイントを示すタイムマップ例であり、ランダムアクセス可能なピクチャの表示時刻とアドレス情報とを示す。表示時刻はタイムスケールを90kHzとして、PESパケットヘッダにより示されるAUの表示時刻に基づいて決定する。また、アドレス情報はTSパケット列の先頭からのTSパケットの個数で示す。図3(a)のタイムマップからは、表示時刻が5秒(=450000/90000)であるIDR AUは1025番目のTSパケットから開始し(アドレス位置は、1024*188 バイト)、表示時刻が10秒であるIDR AUは1601番目のTSパケットから開始することが示される。なお、ランダムアクセスポイントとして登録されるピクチャは、non−IDRのIピクチャであってもよい。また、時刻情報のタイムスケールは他の値であってもよいし、アドレス情報の指定も例えば絶対アドレスを記述するなど他の方法であってもよい。
このように、TSパケットにより送信される放送データを記録する際には、TSパケット列と合わせて、タイムマップなどのデータベース情報が付加される。なお、TSパケットについても、TSパケットの先頭に4バイトのヘッダを付加し、TSパケットの到着時刻情報、およびコピー制御情報などを示すことがある。例えば、書き換え型のBD(Blu−ray Disc)ディスクに地上デジタル放送を記録する際には、上記4バイトのヘッダが付加される。このとき、タイムマップのアドレス情報は、4バイトヘッダが付加された計192バイトの単位でカウントされる。
図4は、TSパケット列を記録する従来の多重化装置100の構成を示すブロック図である。多重化装置100は、TSパケット取得手段101、TSパケットフィルタ手段102、ビデオ解析手段103、タイムマップ作成手段104、および多重化手段105とから構成される。TSパケット取得手段101は、放送などによりTSパケット列TSPin取得し、TSパケット列TSPoをTSパケットフィルタ手段102に入力する。TSパケットフィルタ手段102は、TSパケットのPIDに基づいてビデオとオーディオのTSパケットを分離し、ビデオのTSパケットであるVTSPをビデオ解析手段103に入力する。ビデオ解析手段103は、ビデオのTSパケットVTSPを解析し、ランダムアクセス単位の先頭ピクチャを含むTSパケットをサーチし、ランダムアクセス単位の先頭ピクチャを含むTSパケットを検出した際には、当該TSパケットから開始するランダムアクセス可能なピクチャの表示時刻、およびTSパケット取得手段101から取得したTSパケットのアドレス情報Vadなどを含むビデオエントリ情報Vinfをタイムマップ作成手段104に入力する。タイムマップ作成手段104は、ビデオエントリ情報Vinfに基づいてタイムマップのエントリを作成する。記録する最終TSパケットの処理が終了すると、多重化手段105は、タイムマップ作成手段104からタイムマップTMを取得し、TSP取得手段101からTSパケット列のデータであるTSPdatを取得して、両者を多重化し、出力データOutを生成する。ここで、TSP取得手段101により取得したTSパケット列TSPinは順次記録しておき、多重化手段105では記録されたTSパケット列にタイムマップTMを多重化することにしてもよい。なお、表示時刻とは、オーディオの場合には再生時刻を示すものとする。
図5は、従来の多重化装置100におけるタイムマップ作成処理を示すフローチャートである。まず、ステップS101において、TSパケットのペイロードからAUを分離し、AUの符号化タイプを取得する。ここで、SEIやSPSの有無など、符号化タイプとは異なる情報からランダムアクセス単位の先頭を識別できる際には、それらの情報も取得する。ステップS102では、ステップS101において分離したAUがランダムアクセス単位の先頭Iピクチャであるかどうかを判定し、先頭IピクチャであればステップS103に進み、先頭IピクチャでなければステップS101の処理に戻る。ステップS103では、ステップS101で分離したAUの表示時刻やアドレス情報などタイムマップのエントリを生成するために必要な情報を取得し、新規のエントリを作成する。ステップS101からステップS103までの処理を、記録する最終TSパケットの処理が終了するまで繰り返す。
このように、従来の多重化装置100では、ビデオについてのみタイムマップを生成していた。
特開2003―114845公報(第6−18項、図6)
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
まず、本発明の実施の形態1に係る多重化装置1000について説明する。
図8は、多重化装置1000の構成を示すブロック図である。多重化装置1000は、TSパケット取得手段101、TSパケットフィルタ手段102、ビデオ解析手段103、オーディオ解析手段1001、作成エントリ決定手段1002、タイムマップ作成手段1003、および多重化手段105から構成される。ここで、従来の多重化装置100と同一の動作をする手段については、同一符号を付し、説明を省略する。
多重化装置1000は、ビデオとオーディオのエントリが混在したタイムマップが作成できることを特徴とし、パケットロスによりビデオのランダムアクセス可能なピクチャがロストしてビデオのエントリが作成できない場合には、オーディオのエントリを作成する。これにより、オーディオデータのみが再生可能な区間についてもランダムアクセスポイントとして登録可能となり、パケットロスが発生する環境下で受信したデータのランダムアクセス性を高めることができる。また、記録開始から、ビデオのランダムアクセス可能なピクチャを取得するまでの間に取得したオーディオについても、当該区間をランダムアクセスポイントとして指定できる。これらは、任意のフレームから復号開始できるオーディオの特徴を利用したものであり、ランダムアクセス可能なビデオのピクチャ間隔が長い場合に特に有効である。
オーディオ解析手段1001は、オーディオのTSパケットATSPを解析し、ランダムアクセス可能なフレームを含むTSパケットを検出し、当該フレームの表示時刻、およびTSパケット取得手段101から取得したTSパケットのアドレス情報Aadなどを含むオーディオエントリ情報Ainfを作成エントリ決定手段1002に入力する。また、ビデオ解析手段103についても、ビデオエントリ情報Vinfを作成エントリ決定手段1002に入力する。作成エントリ決定手段1002は、オーディオ、あるいはビデオのどちらのエントリを作成するのかを決定し、作成するエントリのエントリ情報Einfをタイムマップ作成手段1003に入力する。エントリ情報Einfには、オーディオあるいはビデオのどちらのエントリを作成するのかを示す情報が含まれる。タイムマップ作成手段1003は、エントリ情報Einfに基づいてタイムマップのエントリを作成する。記録する最終TSパケットの処理が終了すると、多重化手段105は、タイムマップ作成手段1003からタイムマップTM2を取得し、TSP取得手段101からTSパケット列のデータであるTSPdatを取得して、両者を多重化し、出力データOut2を生成する。ここで、TSP取得手段101により取得したTSパケット列TSPinは順次記録しておき、多重化手段105では記録されたTSパケット列にタイムマップTM2を多重化することにしてもよい。
図9は、多重化装置1000の動作を示すフローチャートである。ステップS101とステップS103の処理は従来の多重化装置100と同様の処理であるため、説明を省略する。ステップS102では、ステップS101において分離したAUがランダムアクセス単位の先頭ピクチャであるかどうかを判定し、先頭ピクチャであればステップS103に進み、先頭ピクチャでなければステップS1001に進む。なお、以下において時間情報を扱う際のタイムスケールは統一するものとする。
ステップS1001では、ステップS101において分離したビデオのAUの表示時刻と、直前エントリの開始時刻との差分値が所定の閾値T1を超えたかどうか判定する。なお、直前エントリの開始時刻とは、直前エントリにより指されるビデオあるいはオーディオのAUの表示時刻を示す。閾値T1を超えた場合には、ステップ1002に進み、閾値T1以下であればステップS101に戻る。ここで、閾値T1を超えるということは、ランダムアクセス可能なビデオのAUがパケットロスにより検出できなかったことを示す。通常、ビデオのAUはAUの開始を示す識別情報を検出することにより分離するため、識別情報を含むTSパケットがロストするとAUは検出できない。例えば、MPEG−4 AVCではAccess Unit Delimiterと呼ばれるNALユニットがAUの先頭に配置され、本NALユニットを識別情報としてAUを分離できる。また、MPEG−2 Videoではピクチャヘッダ、MPEG−2VOP(Video Object Plane)のスタートコードをサーチしてAUを分離できる。ただし、ただし、AU内のデータを解析すれば、識別情報がロストしてもAUを分離できることがある。MPEG−4 AVCでは、スライスのNALユニットを解析して、ピクチャの表示順を示すパラメータであるPOC(Picture Order Count)や、参照ピクチャ毎にインクリメントされるframe_numなどを比較することにより、異なる2つのAUに属するデータを分離できる。また、ランダムアクセス可能なAUであるかどうかは、以下のようにして判定できる。いずれの方法により判定するかは、サービス毎の運用規定などに依存する。例えば、日本の移動体向け地上デジタル放送では、IDR AUがランダムアクセスポイントとなるため、下記(1)の方法を適用する。
(1)IDR AUであるかどうか
IDR AUであればランダムアクセス可能であると判定する。IDR AUであるかどうかは、AUを構成するスライスのNALユニットのタイプがIDR用であるかどうかにより決定できる。また、NALユニットにおいてNALユニット内のデータの優先度情報を示すパラメータであるnal_ref_idcなどの値、あるいは、特定のSEI内のパラメータ値などから判定してもよい。
(2)ランダムアクセス単位の先頭となるnon−IDR AUのIピクチャ(MPEG−2 Videoのclosed−GOPライクなIピクチャ)であるかどうか
non−IDRのIピクチャのAUに、SPSや特定SEIが含まれるかどうか、あるいは、特定SEIのパラメータ値などから判定する。
また、Access Unit Delimiterがロストしても、AUを構成するスライスデータ、およびスライスデータが参照するSPSとPPSが取得できればAUデータは復号可能であるため、ランダムアクセスポイントとしてエントリに登録してもよい
(3)TSパケットヘッダにおいてランダムアクセスポイントであるかどうかを示す識別情報を使用。
TSパケットヘッダにおけるrandom_access_indicatorがセットされているが、当該TSパケット内において開始するAUがランダムアクセス可能であると判定する。
なお、閾値T1は、運用規格などに基づいて設定できる。例えば、ARIB(電波産業界)により規定された日本の移動端末向け地上デジタル放送では、ランダムアクセス可能なAUの間隔を最大5秒としている。従って、直前エントリの開始時刻からの経過時間が5秒を超えた場合には、ランダムアクセスポイントとなるビデオのAUがパケットロスのため取得できなかったと判定できる。なお、オーディオは任意のフレームからランダムアクセス可能である。
なお、TSパケット列の送信レートと、TSパケットにより伝送されるビデオストリームのビットレートがそれぞれほぼ一定であれば、直前エントリにより指されるAUを受信後に受信したTSパケットの個数などから、ビデオの経過時間が概算できる。例えば、直前エントリにより指されるAUを受信後に、1000個のTSパケットを受信し、TSパケット列の送信レートは300000bpsであるとすると、経過時間は188*8*1000/300000=5.01秒と計算できる。ここで、パケットロスが発生した場合には、TSパケットのヘッダのcontinuity_counterなどからロストしたパケット数を算出し、全てのパケットが受信できたと仮定した場合の受信パケット数に基づいて経過時間を計算する。本方法によれば、ランダムなエラーによりビデオAUの境界情報が連続してロストするようなケースにおいても、ステップS1001における判定処理を実行できる。さらに、TSでは、PCR(Program Clock Reference)と呼ばれる基準クロックがTSパケット列において伝送される。PCRとは、各ストリーム、あるいはストリーム間の同期を取るためのクロック情報であり、指定されたPIDをもつTSパケットのヘッダ情報として格納される。従って、直前エントリから指されるAUについてのPCR値と、受信したPCR値とを比較することにより、TSパケット列とストリームのレートがそれぞれほぼ一定であれば、ビデオの経過時間が概算できる。これらの手法とステップS1001における判定方法とを併用してもよい。
ステップS1002では、オーディオのデータが存在するかどうか判定し、存在すればステップS1003に進んでオーディオのエントリをタイムマップに追加し、存在しなければステップS101に戻る。オーディオデータが存在するかどうかは、以下のようにして判定できる。なお、直前エントリの開始時刻をPTS1とする。
(1)PTS1+T1から所定の時間長DUR1以内となる表示時刻を持つオーディオの AUが存在するかどうか。
(2)ランダムアクセス可能なビデオのピクチャを次に取得する前に、オーディオのAU を取得できたかどうか
(1)については、PTS1+T1との差分がDUR1以内であれば、PTS1+T1の前後どちらでもよいし、あるいは、前後のどちらか一方としてもよい。ここで、TSパケット列においては、オーディオとビデオのTSパケットはインタリーブされており、同一表示時刻であるオーディオとビデオのAUを伝送するTSパケットはそれぞれTSパケット列の離れた位置に存在してもよい。結果として、全てのTSパケットを受信できたと仮定すると、表示時刻がPTS1+T1であるビデオのTSパケットが到着した時点で、表示時刻がPTS+T1であるオーディオのTSパケットは到着していないことがある。従って、ステップS1001における判定結果がYESとなった時点より後で、表示時刻がPTS+T1からDUR1以内であるオーディオのAUを取得した際にも、ステップS1002の判定結果をYESとしてもよい。
(2)については、オーディオのAUを取得した時点でオーディオのエントリを仮作成し、直後のビデオエントリの開始時刻との差分値が一定値以下であれば、仮作成したオーディオのエントリを削除してもよい。例えば、仮作成したオーディオのエントリの開始時刻が100秒であり、直後のビデオエントリの開始時刻が100.5秒であるようなケースでは、仮作成したエントリを削除しても問題ないと判定し、開始時刻が100.5秒であるビデオのエントリのみを有効とする。
さらに、記録開始を指示されてから、ランダムアクセス可能な先頭のビデオAUを取得するまでにオーディオAUを取得できる際には、オーディオの先頭AUを指すエントリを生成してもよい。タイムマップの先頭エントリをビデオに固定すると、例えば、ビデオのランダムアクセス可能なAUの間隔が5秒である際に、ランダムアクセス可能なAUを受信した直後に記録開始が指示されると、記録開始から5秒後の位置が最初のランダムアクセスポイントとなる。一方で、ビデオの先頭ランダムアクセスポイントを取得する前に受信したオーディオをランダムアクセスポイントとして登録すれば、タイムマップを参照して記録開始直後のオーディオデータから再生することができる。また、このように作成したオーディオの先頭エントリとビデオの先頭エントリの開始時刻の差分が所定の時間以内であれば、オーディオの先頭エントリは削除して、タイムマップはビデオのエントリから開始してもよい。
また、所定の時間長分、あるいはサイズ分のTSパケット列を常にバッファリングしておき、記録開始を指示された時刻に受信したデータについては必ず再生できるようにしてもよい。例えば、ビデオのランダムアクセス可能なAUの間隔が最大5秒、ビデオのAUデータがデコーダ前段のバッファに入力されてから復号されるまでの時間が最大2秒とすると、7秒分のビデオデータを伝送するTSパケットを常時バッファリングしておけば、
任意のタイミングで記録開始を指示されても、指示された時刻の直前のランダムアクセス可能なAUがバッファ内に存在するため、当該AUから記録開始することにより、記録開始位置からの再生が保証される。なお、デコーダ前段のバッファとは、MPEG−4 AVCであればCPB(Coded Picture Buffer)に相当し、MPEG−2であればVBV(Video Buffering Verifier)バッファに相当する。あるいは、MPEG−2システムのデコーダモデルであるSTD(System Target Decoder)におけるES(Elementary Stream)バッファとしてもよい。さらに、常時バッファリングをせずに、記録開始を指示されてから、最初にビデオのランダムアクセス可能なAUを取得できるまでのビデオAUについては再符号化してから記録してもよい。例えば、P(単予測)ピクチャのAUから記録開始する際には、PピクチャをI(画面内予測)ピクチャに再符号化し、後続ピクチャを順次再符号化する。このとき、ビデオの先頭AUをランダムアクセスポイントとして登録できる。
図10は、多重化装置1000により作成したタイムマップの第1の例を示す。ここでは、IDR AUをランダムアクセス可能なAUとみなし、IDR AUの間隔は5秒であるとする。図10(b)は、受信したTSパケット列であり、2番目のIDR AUであるIDR2がロストしたことを示す。このTSパケット列を記録する際に、オーディオエントリ作成時の閾値T1を5秒とすると、IDR1とIDR3の間隔は5秒よりも大きいため、IDR1とIDR3に対応するエントリの間に、オーディオのエントリが作成される。図10(a)は、作成されるタイムマップを示す。各エントリには、エントリが指すAUの表示時刻とアドレス情報に加えて、エントリがオーディオとビデオのどちらのランダムアクセスポイントを指すのかを示す情報が少なくとも格納される。N番目とN+2番目のエントリがビデオのエントリであり、それぞれIDR1とIDR3に対応する。N+1番目のエントリはオーディオのエントリであり、N番目のエントリの開始時刻5秒(タイムスケールは90000とする)+T1(=5秒)=10秒近傍の表示時刻を持つオーディオがランダムアクセスポイントとして登録される。本タイムマップを参照することにより、多重化装置1000の出力データを再生する再生装置においては、例えば、表示時刻が10秒付近から再生開始するように指示されると、N+1番目のエントリを参照して表示時刻が10.0427秒のオーディオから再生開始できる。
図11は、多重化装置1000により作成したタイムマップの第2の例を示す。図11(b)は、受信したTSパケット列と記録開始位置との関係を示す。記録開始位置の直後のIDRはIDR2であり、IDR2を取得するまでに受信したオーディオの先頭AUがタイムマップの先頭エントリとして登録される。図11(a)は、生成されるタイムマップの例であり、オーディオの先頭AUの表示時刻は6秒であり、アドレス位置は188*1000バイト目であることが先頭エントリから示される。また、IDR2に対応する2番目のエントリの開始時刻は10秒であるため、記録開始から4秒はオーディオのみ再生可であることが分かる。本タイムマップを参照することにより、オーディオのみが再生可能である先頭から4秒分の区間にも飛び込めるため、ニュース番組など音声が重要となるコンテンツを再生する際には、特に有効である。
なお、タイムマップの先頭エントリの開始時刻は0秒となるように調整してもよいし、適当なオフセット値を設けてもよい。
以上では、ビデオあるいはオーディオのランダムアクセスポイントを示すタイムマップについて説明したが、さらに、ビデオとオーディオが共に取得できない不連続区間についてもタイムマップにより示してもよい。例えば、携帯電話で放送を受信中にビル影に入り数秒間受信ができない状態になったときなどは、不連続区間が発生する。不連続区間ではビデオの表示はフリーズし、オーディオの再生は停止することになるが、予めタイムマップを参照して不連続区間の位置が取得できれば、不連続区間を再生せずに次のランダムアクセスポイントまでスキップすることなどが可能となり、再生品質が向上できる。
図12は、不連続区間を示すエントリをもつタイムマップの例を示す。図12(b)は、取得できたTSパケット列であり、区間1のデータはロストしたとする。図12(a)はタイムマップであり、区間1が不連続区間としてN+1番目のエントリに登録される。不連続区間を示すエントリの開始時刻(図中の表示時刻)としては、不連続区間の直前に受信したPCRを伝送するTSパケットにおけるPCR値、あるいは、直前に受信したビデオあるいはオーディオAUの表示時刻などを設定すればよい。また、エントリのアドレス情報については、無効とする、あるいは、直後のビデオあるいはオーディオエントリのアドレス情報と同一の値を設定できる。
図13は、タイムマップのシンタックス例である。タイムマップは、オーディオとビデオを伝送するTSパケットのPIDと、エントリデータから構成される。各フィールドのセマンティクスを以下に示す。
AudioEntryPresent:オーディオのエントリが存在するかどうかを示すフラグ
AudioPID:オーディオデータを伝送するTSパケットのPID
VideoEntryPresent:ビデオのエントリが存在するかどうかを示すフラグ
VideoPID:ビデオデータを伝送するTSパケットのPID
AudioEntry:オーディオのエントリであるかどうかを示すフラグ
Entrysize[i]:i番目エントリが指すランダムアクセス可能なAUのサイズを示す情報
PTS[i]:i番目エントリが指すランダムアクセス可能なAUの表示時刻
SPN[i]:i番目エントリが指すランダムアクセス可能なAUのアドレス(AUの先頭バイトを含むTSパケットのインデックス番号)
ここで、各エントリはPTSの昇順に格納される。
SPN[i]を参照してTSパケット列の途中に飛び込んだ後は、AudioPIDとVideoPIDを参照して、それぞれオーディオとビデオのTSパケットを分離できるようにAudioPIDとVideoPIDを格納しているが、他のフィールドからPIDを取得できれば、これらのフィールドはタイムマップに格納しなくてもよい。また、AudioEntryPresent、VideoEntryPresentを使わずに、AudioPID、VideoPIDにおいて、それぞれのエントリが存在しないことを示す特別な値を設定してもよい。なお、EntrySizeにより示されるAUのサイズは、AUのサイズを直接示さずに、AUを格納するPESパケットなどAUを含むデータ単位のサイズを示してもよい。
なお、作成されるタイムマップは、ビデオと不連続区間のエントリのみから構成されることにしてもよいし、記録開始時点において取得したオーディオについてのみオーディオのエントリを許容し、以降はビデオと不連続区間のエントリのみとしてもよい。さらには、記録開始時点において取得したオーディオについてのみオーディオのエントリを許容し、以降はビデオのエントリのみとしてもよい。また、これらのルールを示す情報をタイムマップ内に記述してもよい。例えば、オーディオのエントリにおいて、当該エントリから再生開始した場合には再生開始からしばらくの間ビデオが再生できない旨を示すことができる。
さらに、上記のタイムマップはビデオのエントリを基本としたが、オーディオのエントリを基本として、オーディオが取得できない場合にビデオのエントリを作成してもよい。
また、オーディオとビデオのタイムマップをそれぞれ独立したタイムマップとしてもよい。例えば、オーディオのタイムマップは、記録開始時点において取得したオーディオについてのみ示してもよいし、ランダムアクセス可能なビデオのAUが取得できなかった場合のみエントリを作成するなどビデオとオーディオが混在するタイムマップと同等の条件によりエントリを登録できる。
また、オーディオ、ビデオのストリームは各1本に限定されるものではなく、それぞれ複数のストリームであってもよい。各ストリームのTSパケットは、PIDに基づいて分離できる。さらに、テキスト字幕などオーディオ、ビデオ以外のストリームにも対応できる。
なお、記録するオーディオあるいはビデオのストリームの多重化方式はTSに限定されるものではなく、RTP(Real Time Transport Protocol)など他の多重化方式であってもよいし、符号化ストリームを直接記録してもよい。
次に、TSパケット取得手段101に入力されるTSパケット列TSPinは、放送データに限定されるものではなく、通信ネットワーク経由で受信してもよいし、自己録など機器内で生成したTSパケットであってもよい。
なお、タイムマップのシンタックスが異なる記録メディア間で多重化データを移動してもよい。具体的には、多重化装置1000で生成した多重化データを、タイムマップ内にオーディオとビデオのエントリが混在できない記録メディアに記録する際には、タイムマップからオーディオのエントリを削除して、ビデオのエントリのみから構成されるタイムマップを再構築する。また、オーディオのエントリのみを抜き出して、オーディオ用のタイムマップも生成し、ビデオとオーディオのタイムマップをそれぞれ独立に構築してもよい。このとき、基本的にはビデオのタイムマップに基づいて再生を行い、ビデオのランダムアクセスポイントの間隔が長い区間においては、オーディオのタイムマップを参照してオーディオにアクセス可能であればオーディオを再生するなどしてもよい。また、タイムマップ内に不連続区間を記録した場合には、移動先のメディアにおいて、タイムマップとは別に不連続区間を示してもよい。例えば、BDにおいてTSパケットの到着時刻であるATC(Arrival Time Clock)が連続した区間を示すSequenceInfoと呼ばれるマップを利用できる。ここでは、ATCシーケンスと呼ばれるATCが連続した区間の間のギャップを、不連続区間とみなすことができる。アプリケーションの一例として、携帯電話やカムコーダにおいてSDカードに記録したデータを、BDなどの光ディスクに保存することができる。また、移動先において、ビデオのタイムマップの先頭エントリよりも前に、オーディオデータが存在することを示してもよい。例えば、タイムマップはランダムアクセス時に使用するものとすれば、プレイリストなどにより示される再生区間の開始時刻としては、オーディオデータの再生開始時刻を指定できる。このとき、先頭オーディオデータのアドレス情報が示されなければTSパケット列の先頭から復号を開始すればよいし、また、先頭オーディオデータのアドレス情報を別途示してもよい。プレイリストにより示される再生開始時刻がタイムマップの先頭エントリの再生時刻よりも前であれば、オーディオデータが前に存在するとみなしてTSパケット列の先頭から再生開始してもよい。
さらに、タイムマップにおいてPCRが不連続となる位置を示してもよい。例えば、N番目のエントリにおいて、N番目とN+1番目のエントリの間にPCRの不連続点が含まれることを示すフラグを追加してもよい。再生時には、N+1番目のランダムアクセスポイントまでの間に、PCR、あるいはPCRと同期して設定されるPESヘッダの復号時刻や表示時刻にギャップが発生した際には、PCRの不連続に起因すると判定して、所定の方法により、適切な復号時刻と表示時刻を算出できる。なお、PCRのクロックが切替るTSパケットを特定するための情報をエントリ内に示してもよいし、不連続点においてエントリを分けてもよい。PCRの不連続情報についても、BDにおけるSequenceInfoにおいてPCRの連続区間を示すSTCシーケンスにマッピング可能である。
また、タイムマップは、取得できなかったAVデータを再送要求する際にも使うことができる。例えば、オーディオのエントリが存在する際には、当該区間のビデオデータが取得できなかったと判定し、ビデオが取得できなかった区間を含むTSパケット列を再送要求する。あるいは、タイムマップに不連続区間を示すエントリが含まれれば、同様に、当該区間のAVデータを含むTSパケット列を再送要求してもよい。なお、再送時には、例えばインターネットなどの通信ネットワークを使用できるが、このときは、TSパケットを直接IP(Internet Protocol)上で伝送してもよいし、RTPやHTTP(Hyper Text Transport Protocol)など他のプロトコルで伝送可能な形式に変換して再送してもよい。さらに、再送の要求先としては、放送や通信の事業者が管理するサーバでもよいし、家庭内のディスクレコーダであってもよい。これらサーバやディスクレコーダにおいては、任意のチャネルについての再送要求に対応できるよう、複数のチャネルを録画しておくことが望ましい。
(実施の形態2)
本発明の実施の形態2に係る再生装置2000について説明する。
再生装置2000は、実施の形態1の多重化装置1000により生成した多重化データを再生するものであり、タイムマップを解析してビデオとオーディオのいずれのエントリを参照するか判定する機能を有する。つまり、オーディオのみが再生可能な区間から飛び込み再生を開始する、ビデオのエントリのみを選択的に参照してビデオのIピクチャのみを高速再生できるなど、パケットロスの発生する環境下で記録したデータに対して自由度の高い再生を実現できる。
図14は、再生装置2000の構成を示すブロック図である。再生装置2000は、タイムマップ分離手段2001、タイムマップメモリ2002、タイムマップ解析手段2003、TS分離手段2004、AU分離手段2005、および復号表示手段2006とを備え、タイムマップ解析手段2003は更に、AV判定手段20031とアクセス情報取得手段20032とから構成される。
タイムマップ分離手段2001は、入力データdInからタイムマップを分離して、タイムマップのデータTMdatをタイムマップメモリ2002に格納する。タイムマップ解析手段2003は、指定された再生方法Modeに基づき、タイムマップ解析してアクセス先を決定する。具体的には、AV判定手段20031がタイムマップメモリ2002からタイムマップデータTMinfを取得して、参照するエントリを決定し、決定したエントリを指定する情報Pentをアクセス情報取得手段20032に入力する。再生開始方法Modeは、コンテンツの先頭から順に再生する通常再生、コンテンツの途中から再生開始する飛び込み再生、あるいはランダムアクセス単位の先頭AUのみを順に再生するなどの高速再生、などを含み、飛び込み再生時などにおいては再生開始時刻も再生方法Modeに含められる。また、プレイリストなど再生区間や順序を管理する情報に基づいて再生方法Modeを決定してもよい。アクセス情報取得手段20032は、エントリ指定情報Pentにより指定されたエントリを解析して再生対象データのアドレス情報Acsを取得し、TS分離手段2004に入力する。TS分離手段2004は、入力データdatInにおいてアドレス情報Acsが示すアドレス位置から開始するTSパケットデータTSdatから順に、AU分離手段2005に入力する。AU分離手段2005は、TSパケットデータTSdatからビデオあるいはオーディオのAUデータであるAUdatを分離して復号表示手段2006に入力する。復号表示手段2006は、AUdatを復号し、オーディオとビデオを同期再生する。また、同期再生に必要な情報は、PESパケットのヘッダやAUデータの解析結果、あるいはタイムマップなどから取得して、別途復号表示手段2006に通知される。
図15は、再生装置2000の動作を示すフローチャートである。ここでは、主に飛び混み再生時の動作について説明する。まず、ステップS2001では、指定された再生開始時刻sPTSを取得する。次に、ステップS2002では、タイムマップを解析して、再生開始時刻sPTSとの差分値が所定の閾値U1以下であるビデオのランダムアクセスポイントが存在するかどうか判定し、存在すればステップS2004に進み、存在しなければステップS2003に進む。ここで、閾値U1はビデオのランダムアクセスポイントの間隔などに基づいて設定される。ステップS2003では、再生開始時刻sPTSとの差分値が所定の閾値U1以下であるオーディオのランダムアクセスポイントが存在するかどうか判定し、存在すればステップS2005に進み、存在しなければステップS2004に進む。ステップS2004では、表示時刻がsPTSに最も近いビデオのランダムアクセスポイントから再生開始すると決定し、ステップS2006に進む。また、ステップS2005では、表示時刻がsPTSに最も近いオーディオのランダムアクセスポイントから再生開始すると決定し、ステップS2006に進む。最後に、ステップS2006では、ステップS2004あるいはステップS2005で決定したランダムアクセスポイントのアドレス情報を取得して、データを取得して再生開始する。
なお、例えばタイムマップの先頭がオーディオのエントリであるなど、開始部分がオーディオのみ再生可能なコンテンツを先頭から再生する際には、ビデオが再生可能となるまでの区間は、代表画像を表示してもよい。例えば、サムネイルとして登録された画像、あるいは、タイムマップにおけるビデオの先頭エントリから指されるAUなどを表示する。
なお、タイムマップにおいてオーディオのエントリが存在するかどうかを示す情報が提供される際には、タイムマップのエントリをサーチせずに、ステップS2003の判定結果が常にNOであるとみなして動作してもよい。また、オーディオのエントリが存在しなければ、ステップS2004のみから、再生を開始するランダムアクセスポイントを決定してもよい。例えば、図13に示したタイムマップにおいては、AudioEntryPresentが0にセットされていればオーディオのエントリはタイムマップに存在しないことが示される。
なお、図16のフローチャートに示すように、表示時刻が再生開始時刻sPTSに最も近いビデオのランダムアクセスポイントと、表示時刻が再生開始時刻sPTSに最も近いオーディオのランダムアクセスポイントの表示時刻を比較して(ステップS2016)、表示時刻が再生開始時刻sPTSに近いほうから再生開始してもよい。タイムマップのエントリが開始時刻の昇順に格納されていれば、開始時刻が再生開始時刻sTPSの直前、直後であるエントリの開始時刻を比較すればよい。
また、表示時刻が再生開始時刻sPTSと同一あるいは以降であるランダムアクセスポイントを再生開始の対象としてもよいし、再生開始時刻sPTSと同一あるいは以前のランダムアクセスポイントを再生開始の対象としてもよい。
また、ユーザによる外部設定、端末による設定、あるいはコンテンツ内に存在する制限情報などにより、飛び込み再生などにおけるランダムアクセス時にオーディオのみが再生可能である位置から再生開始するかどうかが指示される際には、指示に基づいて再生動作を切り替えてもよい。具体的には、オーディオのみが再生可能な位置から再生してもよいと指示される場合にのみ、オーディオのエントリを有効とする。例えば、図32に示したタイムマップにおいては、AudioEntryが0にセットされたエントリ(ビデオのエントリ)のみを解析し、1にセットされたエントリ(オーディオのエントリ)は読み飛ばす。なお、タイムマップを参照してコンテンツの先頭から再生開始する際にも、同様に動作してよい。
次に、高速再生時には、ランダムアクセスポイントとなるAUのみを順に再生することがある。通常、ランダムアクセスポイントはMPEG−4 AVCであればIDRピクチャあるいはIピクチャ、MPEG−2 VideoやMPEG−4 VisualであればIピクチャであるため、これらIピクチャあるいはIDRピクチャを順に再生することになる。このとき、ビデオが再生できるランダムアクセスポイントを順に再生することが望ましいため、ビデオのエントリのみをサーチして順に再生できる。
なお、タイムマップにおいて不連続区間が示される際には、エントリ内の識別情報により不連続区間のエントリを解釈し、不連続区間は再生せずに、次エントリの先頭から再生してもよい。
また、オーディオのみが再生可能である位置から再生開始する際に、ランダムアクセス可能なビデオのAUを取得できるまでの間は、所定の動作に基づいて画像を表示してもよい。例えば、再生開始時刻が直前あるいは直後であるビデオのランダムアクセスポイントの復号結果、あるいはコンテンツのサムネイル画像を表示できる。また、ビデオが表示できない旨を示すメッセージや画像を表示してもよい。なお、より一般的に、いずれかのメディアが再生できない区間において、所定の動作を行うことにしてもよい。
(実施の形態3)
上記各実施の形態で示した逆多重化装置における逆多重化方法を実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
図17は、上記各実施の形態の逆多重化装置における逆多重化方法を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより実施する場合の説明図である。
図17(b) は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図17(a) は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムが記録されている。
また、図17(c) は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。多重化方式変換装置における多重化方式変換方法、および逆多重化装置における逆多重化方法を実現する上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムをフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記各実施の形態の逆多重化装置における逆多重化方法を実現する上記各実施の形態の逆多重化装置における逆多重化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。さらに、携帯電話やディスクレコーダなどの機器においても同様に実施できることは言うまでもない。