本特許において使用する従来技術であるMPEGについて簡単に説明する。
MPEGについてはISO-IEC11172-2、ITU-T H.262 / ISO-IEC13818-2に詳細な説明がなされているので、ここでは概略のみ説明する。MPEGは1988年、ISO/IEC JTC1/SC2(国際標準化機構/国際電気標準化会合同技術委員会1/専門部会2、現在のSC29)に設立された動画像符号化標準を検討する組織の名称(Moving Pictures Expert Group)の略称である。MPEG1(MPEGフェーズ1)は1.5Mbps程度の蓄積メディアを対象とした標準で、静止画符号化を目的としたJPEGと、ISDNのテレビ会議やテレビ電話の低転送レート用の動画像圧縮を目的としたH.261(CCITT SGXV、現在のITU-T SG15で標準化)の基本的な技術を受け継ぎ、蓄積メディア用に新しい技術を導入したものである。これらは1993年8月、ISO/IEC 11172 として成立している。
MPEG1は幾つかの技術を組み合わせて作成されている。図5にMPEG符号化方式による符号化を行う従来のMPEG符号化器を示し、以下に簡単に説明する。入力画像は動き補償予測器1で復号化した画像と、入力画像の差分とを差分器2で取ることで時間冗長部分を削減する。
予測の方向は、過去、未来、両方からの3モード存在する。またこれらは16画素×16画素のMB(Macroblock)ごとに切り替えて使用できる。予測方向は入力画像に与えられたPicture Typeによって決定される。過去からの予測により符号化するモードと、予測をしないでそのMBを独立で符号化するモードとの2モード存在するのが片方向画像間予測符号化画像(P-picture)である。また未来からの予測により符号化するモード、過去からの予測により符号化するモード、両方からの予測により符号化するモード、独立で符号化するモードの4モード存在するのが双方向画像間予測符号化画像(B-picture)である。そして全てのMBが独立で符号化するのが画像内独立符号化画像(I-picture)である。
動き補償は、動き領域をMBごとにパターンマッチングを行ってハーフペル精度で動きベクトルを検出し、動き分だけシフトしてから予測する。動きベクトルは水平方向と垂直方向が存在し、何処からの予測かを示すMC(Motion Compensation)モードとともにMBの付加情報として伝送される。
一般的には、Iピクチャから次のIピクチャの前のピクチャまでをGOP(Group Of Picture)といい、蓄積メディアなどで使用される場合には、一般に約15ピクチャ程度が一つのGOP区間として使用される。(但し、1GOP区間内に2つ以上のIピクチャを含んでもよい。要するに1GOP区間内に1つ以上のIピクチャを含めばよい。)
差分画像はDCT器3において直交変換が行われる。DCT(Discrete Cosine Transform)とは、余弦関数を積分核とした積分変換を有限空間への離散変換する直交変換である。MPEGではMBを4分割し8×8のDCTブロックに対して、2次元DCTを行う。一般にビデオ信号は低域成分が多く高域成分が少ないため、DCTを行うと係数が低域に集中する。
DCTされた画像データ(DCT係数)は量子化器4で量子化が行われる。量子化は量子化マトリックスという8×8の2次元周波数を視覚特性で重み付けした値と、その全体をスカラー倍する量子化スケールという値で乗算した値を量子化値として、DCT係数をその量子化値で叙算する。MPEG復号化器(デコーダー)で逆量子化するときは量子化値で乗算することにより、元のDCT係数に近似している値を得ることになる。
量子化されたデータはVLC器5で可変長符号化される。量子化された値のうち直流(DC)成分は予測符号化のひとつであるDPCM(differential pulse code modulation )を使用する。また交流(AC)成分は 低域から高域にzigzag scanを行い、ゼロのラン長および有効係数値を1つの事象とし、出現確率の高いものから符号長の短い符号を割り当てていくハフマン符号化が行われる。
可変長符号化されたデータは一時バッファ6に蓄えられ、所定の転送レートで符号化データとして出力される。また、その出力されるデータのマクロブロック毎の発生符号量は、符号量制御器21に送信され、目標符号量に対する発生符号量との誤差符号量を量子化器4にフィードバックして量子化スケールを調整することで符号量制御される。
量子化された画像データは逆量子化器7にて逆量子化、逆DCT器8にて逆DCTされ、加算器9を介して一時、画像メモリー10に蓄えられたのち、動き補償予測器1において、差分画像を計算するためのリファレンスの復号化画像として使用される。
このようにしてMPEG符号化された符号化データを復号化するMPEG復号化器(デコーダー)を図6に示す。
入来する符号化データ(ストリーム)はバッファ11でバッファリングされ、バッファ11からのデータはVLD器12に入力される。VLD器12では可変長復号化を行い、直流(DC)成分および交流(AC)成分を得る。交流(AC)成分データは低域から高域にzigzag scanの順で8x8のマトリックスに配置される。このデータは逆量子化器13に入力され、量子化マトリックスにて逆量子化される。逆量子化されたデータは逆DCT器14に入力されて逆DCTされ、画像データ(復号化データ)として出力される。また、復号化データは一時、画像メモリー16に蓄えられたのち、動き補償予測器17において、差分画像を計算するためのリファレンスの復号化画像として使用される。
また、符号化ビットストリームはビデオの場合1ピクチャーごとに可変長の符号量をもっている。これはMPEGがDCT、量子化、ハフマン符号化という情報変換を用いている理由と同時に、画質向上のためにピクチャーごとに配分する符号量は適応的に変更する必要性があり、動き補償予測を行っているので、あるときは入力画像そのままを符号化し、あるときは予測画像の差分である差分画像を符号化するなど符号化画像自体のエントロピーも大きく変化するためである。
この場合、多くはその画像のエントロピー比率に配分しつつ、バッファの制限を守りながら符号量制御される。バッファ管理器は発生した符号量と符号化レートの関係を監視し、所定のバッファ内に収まるように目標符号量を設定する。この値は可変長符号化器にフィードバックされ、符号量制御器に入り、そこで量子化器にセットする量子化値を大きくして発生符号量を抑えたり、量子化値を小さくして発生符号量を小さくしたりする。
このような可変長データを固定の転送レート(符号化レート)で符号化する場合、復号器の最大バッファ量を上限値とすると、一定速度でデータが入力されて、所定の値だけ溜まったとことから、所定の時刻(NTSCのビデオ信号なら1/29.97 sec単位)で復号化を一瞬で行うモデルを使用し、そのバッファがオーバーフローもアンダーフローも発生しないように符号化することがMPEGで規定されている。この規定(VBVバッファ規定)を守っていればVBVバッファ内でのレートは局部的に変化しているものの、観測時間を長く取れば固定の転送レートとなり、MPEGではこのことを固定レートであると定義している。
固定転送レートの場合、発生符号量の少ない場合にはバッファ占有量は、上限値に張り付いた状態になる。この場合、無効ビットを追加してオーバーフローしないように符号量を増やさなければならない。
可変転送レートの場合にはこの固定転送レートの定義を拡張して、バッファー占有率が上限値になった場合、復号器の読み出しを中止することにより、原理的にオーバーフローが起きないように定義されている。こうしたバッファ推移を図7に示す。仮に非常に発生符号量が少なくても、復号器の読み出しが中止されるので、固定転送レートの時のように無効ビットをいれる必要はない。従って、アンダーフローだけが発生しないように符号化する。
MPEGシステムはMPEGビデオ及びオーディオなどで符号化されビットストリームを、1個のビットストリームに多重化し、同期を確保しながら再生する方式を規定したものである。システムで規定されている内容は大きく分けて次の5点である。
1)複数の符号化されたビットストリームの同期再生
2)複数の符号化されたビットストリームの単一ビットストリームへの多重化
3)再生開始時のバッファの初期化
4)連続的なバッファの管理
5)復号や再生などの時刻の確定
MPEGシステムで多重化を行うには情報をパケット化する必要がある。パケットによる多重化とは、例えばビデオ、オーディオを多重化する場合、各々をパケットと呼ばれる適当な長さのストリームに分割し、ヘッダなどの付加情報を付けて、適宜、ビデオ、オーディオのパケットを切り替えて時分割伝送する方式である。ヘッダにはビデオ、オーディオなどを識別する情報や、同期の為の時間情報が存在する。パケット長は伝送媒体やアプリケーションに依存し、ATMのように53バイトから、光ディスクのように4Kバイトと長いものまで存在している。MPEGでは、パケット長は可変で任意に指定できるようになっている。
データはパック、パケット化され、1パックは数パケットで構成されている。各Pパックの先頭部分にはpack start codeやSCR(System Clock Referance) 、パケットの先頭部分にはstream idやタイムスタンプが記述されている。タイムスタンプにはオーディオ、ビデオなどの同期をとる時間情報が記述されており、DTS(Decoding Time Stamp)、PTS(Presentation Time Stamp) の2種類が存在する。PCR(Program Clock Reference)は27MHzの時間精度で記述されており、decoderの基準時計をロックする情報である。DTSはそのパケットデータ内の最初のアクセスユニット(ビデオなら1ピクチャ、オーディオなら例えば1152サンプル)のデコード開始時刻を、PTSは表示(再生)開始時刻を示している。図11に示すように、オーディオ、ビデオ、その他のデコーダーは、PCRでロックした共通の基準時計を常に監視し、DTSやPTSの時間と一致したときに、デコードや表示を行うしくみになっている。多重化されたデータが各デコーダでバッファリングされ、同期した表示を行うための仮想的なデコーダをSTD(System Target Decoder)とよび、このSTDがオーバーフローやアンダーフローを起こさないようにな多重化されていなければならない。
また、MPEGシステムには、大きく分けてTS ( Transport Stream)とPS ( Program Stream )が存在する。これらはPES(Packetized Elementary Stream)、およびその他の必要な情報を含むパケットから構成されている。PESは両ストリーム間の変換を可能とするための中間ストリームとして規定されていて、MPEGで符号化されたビデオ、オーディオデータの他、プライベートストリームなどをパケット化したものである。
PSは共通の基準時間を有するプログラムのビデオ、オーディオの多重化をすることが可能である。パケットレイヤはPESとよばれ、この構造は図12に示すように、後述するTSと共用して用いられ、これらの相互互換性を可能とする。PSのSTDモデルでは、ストリームはPES パケット内の stream id によってスイッチされる。
TSもPSと同じように共通の基準時間を有するプログラムのビデオ、オーディオの多重化をすることが可能であるが、TSはさらに異なる基準時間を有する通信や放送などのマルチプログラムの多重化を可能としている。 TSはATMセル長や誤り訂正符号化する場合を考慮し、188バイトの固定長パケットで構成されており、エラーが存在する系でも使用できるように考慮されている。TS パケット自体の構造はそれほど複雑ではないがマルチプログラムのストリームであるため、その運用は複雑である。PSと比べて特徴的なのはTS パケットが上位構造であるにも関わらず、PES パケット より(通常は)短く、PES パケット を分割してTS パケット に乗せて伝送する点である。TSのSTDモデルでは、ストリームはTS パケット内のPID(パケット ID)によってスイッチされる。
MPEGシステムのTSにはその多重化されている番組の情報に関するパケットがどのPIDであるのかを指示する仕組みがある。それを図13で説明する。まずTSパケット群の中からPID=0のものを探す。それはPAT (Program Association Table)と呼ばれる情報パケットで、そのパケットの中にはPROGRAMナンバーPRに対応する情報PIDがリンクされた形で記述されている。次に目的のPRに対応するPIDのパケットを読みに行くとPMT(Program Map Table)と呼ばれる情報パケットがあり、そのパケットの中にはそのPRに対応する番組のビデオパケットのPIDと、オーディオパケットのPIDの情報が記述されている。
PATとPMTのことをPSI(Program Specific Information)と呼び、目的の番組のチャンネルにアクセス(エントリー)することが可能な情報体系になっている。
また、従来、特開平11−74799の発明によれば、記録媒体に記録されたMPEGデータなどの圧縮データを編集する場合、MPEGデータの連続性を保つため、その編集点ではVBVバッファをつねに固定になるよう発生符号量を制御したり、GOPをクローズドGOPとして符号化するなど、連続性を考慮した符号化をおこなう方法が記載されている。
また、特開平11−187354の発明のよれば、符号化データにはなんの制約も施さずに、そのデータの部分区間のうち、編集素材として抜粋されたデータを指示する情報とその再生順番に関する情報を記述し、記録されたデータは変更せずに、単一記録媒体に映像編集を実現できる方法が記載されている。
まず、本発明で実現可能とする繋ぎ再生の概念を説明する。図8のように第MPEG符号化方式で符号化された画像データである1のMPEG画像データと同じく第2のMPEG画像データが存在する場合の、第1のMPEG画像データの途中(指定された繋ぎ指定位置)から第2のMPEG画像データを繋げて再生することを考える。接続点(第1のMPEG画像データにおける繋ぎ指定位置)がbの位置と仮定すると、第1のMPEG画像データのbの位置まで再生を行い、そのあと第2のMPEG画像データへ接続してデータを再生することになるが、MPEG画像データは単純につなぐとVBVバッファの接続に矛盾が生じ、オーバーフローやアンダーフローがおきてしまうという問題が生じる。
そこで、まず、第1のMPEG画像データと第2のMPEG画像データとのMPEG符号化方式での符号化時における、VBVバッファの情報を所定区間単位(第1のMPEG画像データでは第1の所定区間単位、第2のMPEG画像データでは第2の所定区間単位)でサイド情報として生成して記録媒体に記述しておくようにする。
なお、このサイド情報にVBVバッファの情報を記述しないで繋ぎ再生を実現することも可能である。この場合には2つの方法が考えられるが、それについては後述する。
第1のMPEG画像データに関するVBVバッファの情報は、第1のMPEG画像データの第1の所定区間毎における、その区間の最後のピクチャーのMPEG符号化開始時点または終了時点でのVBVバッファ占有値に関する情報値を示す第1のVBVバッファ占有値関連情報と、VBVバッファ占有値に関する情報値が第1のMPEG画像データのどの位置におけるVBVバッファ占有値に関する情報値であるかを示す第1のアドレス情報とである。
第2のMPEG画像データに関するVBVバッファの情報は、第2のMPEG画像データの第2の所定区間毎における、その区間の最後のピクチャーのMPEG符号化開始時点または終了時点でのVBVバッファ占有値に関する情報値を示す第2のVBVバッファ占有値関連情報と、VBVバッファ占有値に関する情報値が前記第2のMPEG画像データのどの位置におけるVBVバッファ占有値に関する情報値であるかを示す第2のアドレス情報とである。
VBVバッファ占有値に関する情報値とは、例えばMPEGで規定されているVBVバッファ占有値またはVBV delay値である。
前記第1及び第2の所定区間の1単位は後述するように例えば3フレーム程度のものでも、1GOP程度でもよい。仮にその所定区間単位を、第1のMPEG画像データにおいては図8のa-b間、第2のMPEG画像データにおいては図8のc-d間とする。
前記VBVバッファの情報リストには、aの位置(前記第1のMPEG画像データにおける前記繋ぎ指定位置から第1の所定時間分前の前記第1の所定区間の境界:即ち後述する区間Aの開始位置)でのVBVバッファの情報と、bの位置(第1のMPEG画像データにおける前記繋ぎ指定位置:即ち後述する区間Aの終了位置)でのVBVバッファの情報が記述されている。また、第2のMPEG画像データのcの位置(第2のMPEG画像データにおける前記繋ぎ指定位置から第2の所定時間分前の前記第2の所定区間の境界位置)でのVBVバッファの情報と、接続点dの位置(第2のMPEG画像データにおける前記繋ぎ指定位置:この例の場合は第2の所定区間の境界位置)でのVBVバッファの情報も存在する。
そこで、第1のMPEG画像データのa-b区間(第1の繋ぎ区間:ここでは区間Aとする)のデータを、一旦、復号化して復号画像データを得、その復号画像データ(第1の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化を行う。それによって作成された再符号化データを区間Aの再符号化MPEG画像データ(第1の繋ぎ区間再符号化データ)と呼ぶこととする。この再符号化は、VBVバッファ占有値に関する情報値の推移が、aの位置での前記検出した第1のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値から開始されて、dの位置での前記検出した第2のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値までで終了するようにレートコントロールを行ってMPEG符号化方式で再符号化を行う。
従来の繋ぎ再生動作である、第1のMPEG画像データのbの位置まで再生を行い、そのあと第2のMPEG画像データのdの位置へ接続してデータを再生する、という動作を、区間Aの再符号化MPEG画像データを用いて次のような動作とする。即ち、第1のMPEG画像データのaの位置(区間Aの開始位置)までは第1のMPEG画像データの再生を行い、そのあと前記区間Aの再符号化MPEG画像データをその区間の開始位置から終了位置まで再生し、その後、第2のMPEG画像データのdの位置(繋ぎ指定位置)へ接続してd以降の第2のMPEG画像データのデータを再生する、という動作にする。再生装置側にこの動作を行う繋ぎ再生手段を設けて実現させる。
この繋ぎ再生動作とすることで、元の第1及び第2のMPEG画像データ同じコンテンツ内容で且つ、VBVバッファの破綻を起こさないシームレスな接続再生を実現することが可能となる。
なお、図8に示した、第1のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合には、接続点dの位置(第2のMPEG画像データにおける繋ぎ指定位置)のVBVバッファの情報が必要となる。前述したようにVBVバッファの情報は、MPEG画像データの所定区間毎における、その区間の最後のピクチャーのMPEG符号化開始時点または終了時点での情報であるので、所定区間の境界の位置での情報となる。従って、接続点の位置(繋ぎ指定位置)は、少なくとも第2のMPEG画像データにおいては第2の所定区間の境界として指定される必要がある。(即ち、第2のMPEG画像データにおける接続点dの位置は第2の所定区間の境界として指定される必要がある。)
また、第1のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合には、前述したように図8に示したaの位置(繋ぎ区間Aの開始位置)のVBVバッファの情報も必要となる。しかし、aの位置は、第1のMPEG画像データにおける接続点(繋ぎ指定位置)bから第1の所定時間分前の第1の所定区間の境界として指定されるので、接続点bの位置に関わらずaの位置ではVBVバッファの情報がえられる。よって、第1のMPEG画像データにおける接続点bの位置は、必ずしも第1の所定区間の境界として指定される必要はない。
次に、その応用例を図9(2),(3)に示す。同図(1)は図8に示した例と同様のものである。図8に示した例では、第1のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得て繋ぎ再生を実現したが、第2のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得て繋ぎ再生を実現することも可能である。その例が図9(2)に示したものであり、第2のMPEG画像データにおける繋ぎ区間Bの再符号化MPEG画像データを用いるものである。
図9(2)において、第1のMPEG画像データにおける接続点(繋ぎ指定位置)をiの位置とし、第2のMPEG画像データにおける接続点(繋ぎ指定位置)をkの位置とする。前述したVBVバッファの情報を有する単位である第1及び第2の所定区間の1単位を、第1のMPEG画像データにおいてはi-j間、第2のMPEG画像データにおいてはk-l間とする。lの位置は第2のMPEG画像データにおける接続点(繋ぎ指定位置)kから第2の所定時間分後の第2の所定区間の境界位置となる。接続点kを開始位置としlの位置を終了位置とする区間を繋ぎ区間B(第2の繋ぎ区間)とする。
第2のMPEG画像データのを繋ぎ区間B(k-l区間)のデータを、一旦、復号化して、復号画像データを得、その復号画像データ(第2の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化を行う。それによって作成された再符号化データを繋ぎ区間Bの再符号化MPEG画像データ(第2の繋ぎ区間再符号化データ)と呼ぶこととする。この再符号化は、VBVバッファ占有値に関する情報値の推移が、iの位置での第1のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値から開始されて、lの位置での第2のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値までで終了するようにレートコントロールを行ってMPEG符号化方式で再符号化を行う。
そして、繋ぎ区間Bの再符号化MPEG画像データを用いて、第1のMPEG画像データから第2のMPEG画像データへの繋ぎ再生を行う。すなわち、第1のMPEG画像データの接続点i(繋ぎ指定位置)までは第1のMPEG画像データの再生を行い、そのあと前記区間Bの再符号化MPEG画像データをその区間の開始位置から終了位置まで再生し、その後、第2のMPEG画像データのlの位置(繋ぎ区間Bの終了位置)へ接続してlの位置以降の第2のMPEG画像データのデータを再生する、という動作にする。再生装置側にこの動作を行う繋ぎ再生手段を設けて実現させる。
この繋ぎ再生動作とすることで、元の第1及び第2のMPEG画像データ同じコンテンツ内容で且つ、VBVバッファの破綻を起こさないシームレスな接続再生を実現することが可能となる。
なお、図9(2)に示した、第2のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合には、接続点iの位置(第1のMPEG画像データにおける繋ぎ指定位置)のVBVバッファの情報が必要となる。前述したようにVBVバッファの情報は、MPEG画像データの所定区間毎における、その区間の最後のピクチャーのMPEG符号化開始時点または終了時点での情報であるので、所定区間の境界の位置での情報となる。従って、接続点の位置(繋ぎ指定位置)は、少なくとも第1のMPEG画像データにおいては第1の所定区間の境界として指定される必要がある。(即ち、第1のMPEG画像データにおける接続点iの位置は第1の所定区間の境界として指定される必要がある。)
また、第2のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合には、前述のように図9(2)に示した、lの位置(繋ぎ区間Bの終了位置)のVBVバッファの情報も必要となる。しかし、lの位置は、第2のMPEG画像データにおける接続点(繋ぎ指定位置)kから第2の所定時間分後の第2の所定区間の境界として指定されるので、接続点kの位置に関わらずlの位置ではVBVバッファの情報が得られる。よって、第2のMPEG画像データにおける接続点kの位置は、必ずしも第2の所定区間の境界として指定される必要はない。
次に、図9(3)に示す応用例について説明する。この例では、接続点前後の第1及び第2のMPEG画像データを元に繋ぎ区間の再符号化MPEG画像データを得て繋ぎ再生を実現すさせるものである。(この図9(3)に示すタイプが本発明の実施例である。)
図9(3)において、第1のMPEG画像データにおける接続点(繋ぎ指定位置)をnの位置とし、第2のMPEG画像データにおける接続点(繋ぎ指定位置)をpの位置とする。前述したVBVバッファの情報を有する単位である第1及び第2の所定区間の1単位を、第1のMPEG画像データにおいてはm-n間、第2のMPEG画像データにおいてはp-q間とする。
mの位置は第1のMPEG画像データにおける接続点(繋ぎ指定位置)nから第1の所定時間分前の第1の所定区間の境界位置となる。mの位置を開始位置とし接続点nの位置を終了位置とする区間を繋ぎ区間A(第1の繋ぎ区間)とする。qの位置は第2のMPEG画像データにおける接続点(繋ぎ指定位置)pから第2の所定時間分後の第2の所定区間の境界位置となる。接続点pを開始位置としqの位置を終了位置とする区間を繋ぎ区間B(第2の繋ぎ区間)とする。
第1のMPEG画像データの繋ぎ区間A(m-n区間)のデータを、一旦、復号化して復号画像データ(繋ぎ区間A復号画像データ:第1の繋ぎ区間復号画像データ)をえる。また、第2のMPEG画像データのを繋ぎ区間B(p-q区間)のデータを、一旦、復号化して、復号画像データ(繋ぎ区間B復号画像データ:第2の繋ぎ区間復号画像データ)を得る。
繋ぎ区間A復号画像データと繋ぎ区間B復号画像データとを合わせた繋ぎ区間A+B復号画像データ(第3の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化を行う。それによって作成された再符号化データを繋ぎ区間A+Bの再符号化MPEG画像データ(第3の繋ぎ区間再符号化データ)と呼ぶこととする。この再符号化は、VBVバッファ占有値に関する情報値の推移が、mの位置での第1のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値から開始されて、qの位置での第2のVBVバッファ占有値関連情報に基づき得られたVBVバッファ占有値に関する情報値までで終了するようにレートコントロールを行ってMPEG符号化方式で再符号化を行う。
そして、繋ぎ区間A+Bの再符号化MPEG画像データを用いて、第1のMPEG画像データから第2のMPEG画像データへの繋ぎ再生を行う。すなわち、第1のMPEG画像データの繋ぎ区間Aの開始位置mまでは第1のMPEG画像データの再生を行い、そのあと前記繋ぎ区間A+Bの再符号化MPEG画像データをその区間の開始位置から終了位置まで再生し、その後、第2のMPEG画像データの繋ぎ区間Bの終了位置qへ接続してqの位置以降の第2のMPEG画像データのデータを再生する、という動作にする。再生装置側にこの動作を行う繋ぎ再生手段を設けて実現させる。
この繋ぎ再生動作とすることで、元の第1及び第2のMPEG画像データ同じコンテンツ内容で且つ、VBVバッファの破綻を起こさないシームレスな接続再生を実現することが可能となる。
なお、図9(3)に示した例では、前述したようにmの位置(繋ぎ区間Aの開始位置)のVBVバッファの情報が必要となる。mの位置は、第1のMPEG画像データにおける接続点(繋ぎ指定位置)nから第1の所定時間分前の第1の所定区間の境界として指定されるので、接続点nの位置に関わらずmの位置ではVBVバッファの情報が得られる。よって、第1のMPEG画像データにおける接続点nの位置は、必ずしも第1の所定区間の境界として指定される必要はない。
また、前述のように図9(3)に示した、qの位置(繋ぎ区間Bの終了位置)のVBVバッファの情報も必要となる。qの位置は、第2のMPEG画像データにおける接続点(繋ぎ指定位置)pから第2の所定時間分後の第2の所定区間の境界として指定されるので、接続点pの位置に関わらずqの位置ではVBVバッファの情報が得られる。よって、第2のMPEG画像データにおける接続点pの位置も、必ずしも第2の所定区間の境界として指定される必要はない。
このように、図9(1)〜(3)に示した方法は、いずれもシームレスで高品位な繋ぎ再生を実現させることができる
これらの発展系としては、図10に示すように、第1のMPEG画像データと、第2のMPEG画像データや、第3、第4のMPEG画像データを、図のように途中分岐するような繋ぎ再生を実現させることも可能となる。このように、本発明を用いれば、元のMPEG画像データそのものを加工することなく、繋ぎ区間の再符号化MPEG画像データを生成し利用するだけで、他のMPEGデータに自由につなげることができるので、さまざまな分岐ストーリーを構成するプログラムを符号化する際にも、分岐ストーリー毎にそのストーリーの全体にわたる冗長なMPEG画像データを記録することなく、メディアを効率よく使用することが可能となる。(本発明を用いれば、第1〜第4のMPEG画像データそれぞれ一組と、分岐ストーリー毎の繋ぎ区間の再符号化MPEG画像データとを用意しておけばよい。)
また、図9(3)に示す方法を用いれば、前述したように、第1のMPEG画像データにおける接続点の位置は、必ずしも第1の所定区間の境界として指定される必要がなく、第2のMPEG画像データにおける接続点の位置も、必ずしも第2の所定区間の境界として指定される必要がないので、VBVバッファの情報を所定区間単位でサイド情報として記述しておく所定区間単位よりも細かい精度、例えば1フレーム単位で編集する場合に適用できる。この例を図15と共に説明する。所定単位は3フレーム程度のものでも、1GOP程度でもよいが、ここでは1GOPとする。
図15のように繋げる対象の2つのMPEGストリームが存在するとする。第1のMPEGストリームに矢印で示してあるgとhの地点では、前記VBVバッファの情報リストにgの位置でのVBVバッファの情報と、hの位置でのVBVバッファの情報が記述されている。また、第2のMPEG画像データにもiの位置のVBVバッファの情報とjの位置のVBVバッファの情報も存在する。
第1のMEPGストリーム1のpの位置から、第2のMPEGストリームの先頭へ繋ぐ場合、第1のMPEGストリームのgからpまでの区間Aのデータを復号し、さらに、第2のMPEGストリームのiからjの区間Bのデータを復号し、両方の画像をバッファ推移がgの位置のバッファ占有値から始まってjの位置のバッファ占有値になるように再符号化を行う。
それによって作成されたデータを区間A+Bの再符号化MPEG画像データを呼ぶとすると、従来の再生動作である、第1のMPEG画像データのpの位置まで再生を行い、そのあと第2のMPEG画像データへ接続してデータを再生する、という動作は、第1のMPEG画像データのgの位置まで再生を行い、そのあと前記区間A+Bの再符号化MPEG画像データを再生し、その後、第2のMPEG画像データのjへ接続してデータを再生する、という動作にすることで、同じコンテンツ内容で且つ、VBVバッファの破綻を起こさないシームレスな接続再生をすることができる。
次に、サイド情報としてVBVバッファの情報を記述しないで上述した各例と同様な繋ぎ再生を実現する2つの方法について説明する。(繋ぎ区間再符号化データを生成する際に必要となる、VBVバッファ占有値に関する情報値の算出方法について説明する。)
まず、第1の方法について説明する。MPEG規格において、基本的にCBR(constant bit rate)、即ち、固定転送レートの場合には、MPEGビデオのピクチャーレイヤにVBVバッファのバッファ占有率を示す、VBV delay値が規定されている。この場合にはVBV delay値がピクチャー単位に記述されているので、MPEG画像ビットストリームをピクチャーヘッダーのみだけでも観測することで、MPEG画像データの所定位置に対応するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値を検出することができる。この場合、例えば後述する図4におけるVBVバッファ情報検出器33の機能は、ビットストリームのピクチャーヘッダー(MPEGでは0x00000100という4バイトのコード)をサーチして、そのあとの、10ビットのtemparal reference10ビット、picture coding type3ビットのあとに続く、VBV delay16ビットを検出することで実現できる。VBV delay値とは
VBV delay = 90000 x B / R
B:バッファ占有値 R:ビットレート
で定義されたものであるから、固定レートの場合には、このビットレートを用いてVBV delay値からVBVバッファ占有値も計算で求めることができる。(例えば図4に示すVBVバッファ情報検出器33で計算する。)
MPEGではこのVBV delay値は、図16(2)のように、グラフの頂点の位置でのものに注意しなければならない。
次に、第2の方法について説明する。これは、固定転送レートではなく可変転送レートの場合である。MPEG規格では、基本的にVBR(variable bit rate:可変転送レート)の場合、MPEGビデオのピクチャーレイヤにおけるVBVバッファのバッファ占有率を示すVBV delay値はすべて1、(16ビットすべてが1なので0xffff)となる。従って、前記第1の方法は使えない。
そこで、MPEG画像ビットストリームを観測することで得られた情報から次のような計算を行う。まず、ビットストリームの一番初めから、VBVバッファをMPEG規定の最大値(たとえばメインプロファイルメインレベルでは1.75Mbit)まで占有したと仮定する。次に、始めのピクチャーの符号量を減算する。次に、可変転送レート符号化におけるピークレートの伝送レート情報を用いて、表示ピクチャー間の時間だけ経過した場合の伝送量を加算し、次のピクチャーの符号量を減算する。このような一連の加算、減算という処理を所定の求めたいビットストリームの位置まで繰り返し行うことで、図3に示すようなグラフをシミュレーションして求めるがごとく、MPEG画像データの所定位置に対応するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値を求めることができる。可変転送レート時のピークレートは、MPEGではシーケンスヘッダーのbit rateというシンタックスの部分に記述することに規定されているので、それを参照すれば得られる。
例えば、後述する図4に示すVBVバッファ情報検出器33に上述のMPEG画像ビットストリームを観測機能と計算機能を持たせるようにして実現する。(この第2の方法の場合、そのMPEG画像ビットストリームの先頭から、各ピクチャーの発生符号量を観測して計算しなければならないが、第1の方法と同様に予めサイド情報としてVBVバッファの情報を用意しておく必要がない。)
次に、上記第1及び第2の方法を用いた場合における、繋ぎ区間再符号化データの生成について簡単に説明する。なお、この繋ぎ区間再符号化データを用いた繋ぎ再生動作は、予めサイド情報として記録されているVBVバッファの情報により生成した繋ぎ区間再符号化データを用いた場合と同様であるので、ここでは説明を省略する。
図9(1)に示す第1のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合には、第1のMPEG画像データにおける接続点(繋ぎ指定位置)bから第1の所定時間分前の位置aを開始位置として、第1のMPEG画像データにおける繋ぎ指定位置bを終了位置とする区間を第1の繋ぎ区間(繋ぎ区間A)とする。繋ぎ区間Aの開始位置aの指定に、サイド情報を用いる場合のような第1の所定区間の境界といった制限は不要となる。同様に、第2のMPEG画像データにおける接続点(繋ぎ指定位置)dの指定に、サイド情報を用いる場合のような第2の所定区間の境界といった制限は不要となる。
第1のMPEG画像データのa-b区間(繋ぎ区間A)のデータを、一旦、復号化して復号画像データを得、その復号画像データ(第1の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化して、繋ぎ区間Aの再符号化MPEG画像データ(第1の繋ぎ区間再符号化データ)を得る。この再符号化は、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、aの位置に相当するピクチャのMPEG符号化(第1のMPEG画像データ生成時のMPEG符号化)開始時点(または終了時点)でのVBVバッファ占有値から開始される。そして、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、dの位置に相当するピクチャのMPEG符号化(第2のMPEG画像データ生成時のMPEG符号化)開始時点(または終了時点)でのVBVバッファ占有値までで終了するように、レートコントロールを行ってMPEG符号化方式で再符号化される。得られた繋ぎ区間Aの再符号化MPEG画像データ(第1の繋ぎ区間再符号化データ)を記録媒体に記録する。(例えば、後述する図4に示すデータ書き込み部37により記録する。)
次に、図9(2)に示す第2のMPEG画像データ側のみを元に繋ぎ区間の再符号化MPEG画像データを得る場合について説明する。図9(2)において、第1のMPEG画像データにおける接続点(繋ぎ指定位置)をiの位置とし、第2のMPEG画像データにおける接続点(繋ぎ指定位置)をkの位置とする。接続点kを開始位置とし、接続点(繋ぎ指定位置)kから第2の所定時間分後の位置となるlの位置を終了位置とする、第2のMPEG画像データの区間を繋ぎ区間B(第2の繋ぎ区間)とする。繋ぎ区間Bの終了位置lの指定に、サイド情報を用いる場合のような、第2の所定区間の境界といった制限は不要となる。同様に、第1のMPEG画像データにおける接続点(繋ぎ指定位置)iの指定に、サイド情報を用いる場合のような第1の所定区間の境界といった制限は不要となる。
第2のMPEG画像データの繋ぎ区間B(k-l区間)のデータを、一旦、復号化して、復号画像データを得、その復号画像データ(第2の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化して、繋ぎ区間Bの再符号化MPEG画像データ(第2の繋ぎ区間再符号化データ)を得る。この再符号化は、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、iの位置に相当するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値から開始される。そして、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、lの位置に相当するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値までで終了するように、レートコントロールを行ってMPEG符号化方式で再符号化が行われる。得られた繋ぎ区間Bの再符号化MPEG画像データ(第2の繋ぎ区間再符号化データ)を記録媒体に記録する。(例えば、後述する図4に示すデータ書き込み部37により記録する。)
次に、図9(3)に示す、接続点前後の第1及び第2のMPEG画像データを元に繋ぎ区間の再符号化MPEG画像データを得る場合について説明する。
図9(3)において、第1のMPEG画像データにおける接続点(繋ぎ指定位置)をnの位置とし、第2のMPEG画像データにおける接続点(繋ぎ指定位置)をpの位置とする。
第1のMPEG画像データにおける接続点(繋ぎ指定位置)nから第1の所定時間分前の位置をmとする。mの位置を開始位置とし、接続点nの位置を終了位置とする第1のMPEG画像データの区間を、繋ぎ区間A(第1の繋ぎ区間)とする。第2のMPEG画像データにおける接続点(繋ぎ指定位置)pから第2の所定時間分後の位置をqする。接続点pを開始位置とし、qの位置を終了位置とする第2のMPEG画像データの区間を、繋ぎ区間B(第2の繋ぎ区間)とする。
繋ぎ区間Aの開始位置mの指定に、サイド情報を用いる場合のような第1の所定区間の境界といった制限は不要となる。同様に、繋ぎ区間Bの終了位置qの指定に、サイド情報を用いる場合のような第2の所定区間の境界といった制限は不要となる。
第1のMPEG画像データの繋ぎ区間A(m-n区間)のデータを、一旦、復号化して復号画像データ(繋ぎ区間A復号画像データ:第1の繋ぎ区間復号画像データ)を得る。また、第2のMPEG画像データの繋ぎ区間B(p-q区間)のデータを、一旦、復号化して、復号画像データ(繋ぎ区間B復号画像データ:第2の繋ぎ区間復号画像データ)を得る。
そして、繋ぎ区間A復号画像データと繋ぎ区間B復号画像データとを合わせた繋ぎ区間A+B復号画像データ(第3の繋ぎ区間復号画像データ)をMPEG符号化方式で再符号化を行う。それによって作成された再符号化データを繋ぎ区間A+Bの再符号化MPEG画像データ(第3の繋ぎ区間再符号化データ)とする。この再符号化は、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、mの位置に相当するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値から開始される。そして、VBVバッファ占有値の推移が、上記第1または第2の方法で算出された、qの位置に相当するピクチャのMPEG符号化開始時点(または終了時点)でのVBVバッファ占有値までで終了するように、レートコントロールを行ってMPEG符号化方式で再符号化される。得られた繋ぎ区間A+Bの再符号化MPEG画像データ(第3の繋ぎ区間再符号化データ)を記録媒体に記録する。(例えば、後述する図4に示すデータ書き込み部37により記録する。)
図10に示す例においても、もちろん、上述の計算方法により必要な位置でのVBVバッファ占有値を求めることが可能であり、所望の繋ぎ区間再符号化データ)を得ることができる。
次に、本発明を適用した記録再生装置の一実施例によって記録媒体に記録するVBVバッファ情報(MPEG画像データの所定区間毎における、その区間の最後のピクチャーのMPEG符号化開始時点または終了時点でのVBVバッファ占有値に関する情報値を示すVBVバッファ占有値関連情報と、前記VBVバッファ占有値に関する情報値が前記MPEG画像データのどの位置におけるVBVバッファ占有値に関する情報値であるかを示すアドレス情報)、ならびに、MPEG画像データに関する記録構造について詳しく説明する。記録媒体には、MPEG符号化方式で圧縮された画像データであるMPEG画像データが記録される。このMPEG画像データは、一回の記録単位で符号化生成された連続再生可能なデータが複数連続して連なったビットストリームとして記録される。
これらの符号化されたMPEG画像データのビットストリームとは別に、MPEG画像データのビットストリームにおけるIピクチャーの1フレーム前のピクチャー符号化終了時点でのVBVバッファ値(占有値)と、Pピクチャーの1フレーム前のピクチャー符号化終了時点でのVBVバッファ値(占有値)と、前記各VBVバッファ値がMPEG画像データのどの位置におけるVBVバッファ占有値であるかを示すアドレス情報(この例では、MPEG画像データのファイルのはじめからの相対アドレス)が記録される。これらのデータを含むVBVバッファ情報のデータ構造を図1に示す。
VBVバッファ情報は階層構造をもっている。始めにエントリーポイント情報構造体があり、その後にVBV情報構造体がある。エントリーポイント情報構造体は、始めにエントリーポイント(EP)のアドレスの個数を32ビット、その後にEPn(nは1以上の自然数)アドレスを32ビットで順に記述する。EPnアドレスはVBV情報構造体のEPn情報(nは1以上の自然数)の記述されている位置を示し、このVBVバッファ情報の先頭からの相対アドレスを記述する。一方VBV情報構造体は、EP1情報から順に記述されており、EP1情報の中身は相対アドレス、PTM値、VBV値を順に記述する。
VBV情報構造体のEPn情報における相対アドレスとは、図2のように、MPEG画像データのビットストリームにおけるIピクチャーの1フレーム前のピクチャー符号化終了時点、Pピクチャーの1フレーム前のピクチャー符号化終了時点、及び記録終了時点での、そのMPEG画像データの先頭からの相対アドレスであり、例えば単位はバイトが用いられる。ディスクメディアに記録されている場合には、相対アドレスとしてセクターなどが用いられる。
VBV情報構造体のEPn情報におけるPTM値とは、MPEGのシステム規格(多重化規格)において、90kHzもしくは27MHzのクロックで記録されているタイムスタンプである。MPEG規格ではPTS(Presentation Time Stamp)やDTS(Decoding Time Stamp)と呼ばれている。ここでは、MPEG画像データのビットストリームのIピクチャーの1フレーム前のピクチャー符号化終了時点、Pピクチャーの1フレーム前のピクチャー符号化終了時点、及び記録終了時点での、時間情報としてDTSを記録する。DTSは1ピクチャーに1つ記録されており、NTSCのビデオ信号であれば90KHzクロックで1ピクチャにつき3003クロックの間隔で、記録されている。従って、本発明のように3ピクチャーごとにIピクチャかPピクチャが存在している場合で一番初めが0からスタートする場合には、9009、18018....という間隔でPTM情報がEPn情報に記述されることになる。
VBV情報構造体のEPn情報におけるVBV値は、MPEGで規定されているデコーダーの仮想バッファ占有値である。MPEG画像データの1ピクチャごとの発生符号量と、転送レートの値から計算で導けるもので、図3のように、圧縮されているビットストリーム情報のIピクチャーとPピクチャーの1フレーム前のピクチャー符号化終了時点での、図の○の位置でのVBV占有値を記述する。もしくはMPEGで規定されているVBV delay値を記述する。この値はVBV占有値まで、そのときの転送レートでどれだけの時間がかかるかという時間に換算した値である。本発明ではVBVバッファ占有値に関する情報であれば何であっても良い。VBVバッファ占有値とVBV delay値の関係を図17に示す。VBVバッファの占有値OCCは、符号化レートをRとすると、VBV delay = 90000 * OCC / Rという関係にあり、90000は90kHzのカウント数で示すための値である。
MPEG圧縮では基本的にIBB、PBB、というように3フレーム単位でIかPのピクチャータイプを用いて符号化する。MPEG圧縮はBピクチャーは両方向から予測されている可能性があるので、符号化ビットストリーム順番において、ビットストリームのIピクチャー、Pピクチャーの1フレーム前のピクチャー符号化終了時点でしか、データのつなぎ追加は簡単にはできない。そのため本発明では、VBVの情報をビットストリームのIピクチャー、Pピクチャーの1フレーム前のピクチャー符号化終了時点で記述する形態をもつという仮定で説明している。
しかしながら、本質的にはVBV占有値に関する情報値は、毎ピクチャー持っても良い。また、ピクチャー符号化終了時点でなく、符号化開始点でも良い。図16(1)では符号化終了点の値をリストに持つ場合の概念図であるが、この場合には一番初めのVBV占有値に関する情報値が無いため、第1フレームの前に仮想的にフレームがあったとして、その仮想フレームの符号化終了時点のVBV占有値に関する情報値を初期値として計算する。計算は第1のピクチャ符号量を、一番目のVBV占有値に関する情報値に加算して、加算した値から、符号化レートによる傾きから、(1/ピクチャーレート)だけの時間によってどれだけの符号伝送量かを計算した値を減算すると、図16(1)の黒丸部分の初期値が求められる。また、図16(2)では符号化開始点の値をリストに持つ場合の概念図であるが、この場合には一番最後のVBV占有値に関する情報値が無いため、最終フレームの後ろに仮想的にフレームがあったとして、その仮想フレームの符号化開始時点のVBV占有値に関する情報値を最終値として計算する。計算は最終のピクチャ符号量を、最後のVBV占有値に関する情報値から減算して、減算した値から、符号化レートによる傾きから、(1/ピクチャーレート)だけの時間によってどれだけの符号伝送量かを計算した値を加算すると、図16(2)の黒丸部分の最終値が求められる。
次に、本発明を適用した記録再生装置の一実施例の構成を図4に示し、MPEG符号化方式で画像データを符号化しながらVBVバッファ情報を作成する動作を説明をする。
記録媒体31に符号化データがまったく無い状態、すなわち、初めて符号化する場合には、記録媒体31からのデータ読み取り部32では、データが存在していないので、データがないという情報をVBVバッファ情報検出器33に送信する。VBVバッファ情報検出器33でもデータが存在していないので、パラメータ設定器34にはあらかじめ設定した初期値、すなわちVBV値は、たとえばMPEGで規定されるVBVの最大値の80%の値とし、PTMタイムスタンプ情報は0とする。これらの初期設定値を画像符号化器35に送信する。
画像符号化器35では、符号化を初期設定値から開始する。画像符号化器35では符号化を行いながら、ビットストリームのIピクチャーの1フレーム前、及びPピクチャーの1フレーム前のピクチャー符号化終了時点での発生符号量とPTM値、VBV値を、毎回、VBVバッファ情報作成器36へ送信する。それとともに符号化データをデータ書き込み部37へ送信する。さらに、画像符号化器35は、ユーザーが画像圧縮記録を一時停止、もしくは終了した時点での発生符号量とPTM値、VBV値を、VBVバッファ情報作成器36へ送信する。
VBVバッファ情報作成器36では、入力された発生符号量値とPTM値とVBV値から図1に示す構造のVBVバッファ情報のデータを作成する。もしくはそのデータ構造を作成するのに必要なデータをメモリーして所定のフォーマットで記録保持する。VBVバッファ情報作成器36で作成された情報は、データ書き込み部37により符号化データ(MPEG画像データ)が記録媒体31に書き込まれているときに、同時にバースト的に書き込みを行っても良い。また、VBVバッファ情報作成器36で作成された情報は、符号化データ(MPEG画像データ)が書き込み終わったとき、すなわち、ユーザーが画像圧縮記録を一時停止、もしくは終了した後に所定のフォーマットで記録保持されていたデータから、図1の構造に変換してデータ書き込み部37により書き込みを行っても良い。
次に、記録媒体31に記録されている第1及び第2の2つのMPEG画像データに対して、所定の位置からの繋ぎ再生を可能とするための区間Aの部分の再符号化を行う場合の説明を図8を用いて行う。
まず、図示せぬ、ユーザーインターフェースから、すでに記録されている第1及び第2の2つのMPEG画像データのどこのポイントから繋ぎ再生するかを指定してもらう。
記録媒体31には、すでに第1及び第2の2つのMPEG画像データ(圧縮符号化ストリーム)と、図4に示した記録再生装置により生成したVBVバッファ情報とが記録されている。従って、図4に示すデータ読み取り部32ではVBVバッファ情報を読み取り、接続点b(繋ぎ指定位置)から区間Aの分だけ前にある位置の図8におけるaの位置のVBV値、PTM値、相対アドレスを得る。
前記ユーザーインターフェースからの繋ぎ再生位置の指定が、例えば、その指定の仕方が、データの相対アドレスの位置情報の場合には、VBVバッファ情報の構造のEPn情報内の相対アドレス情報にもっとも近い値のデータにリンクされているVBV値、PTM値を用いる。また、もし、その指定の仕方が、データの開始時刻からの時間や、繋ぎ再生されるポイントのタイムスタンプ情報であれば、同様にVBVバッファ情報の構造のEPn情報内のPTM値を用いて、この値が90KHzのクロックで記録されている場合にはその値に 1/90000秒の値を乗じることで秒の時間を得ることができ、その繋ぎ再生する位置(相対アドレス)とVBV値、PTM値を得ることができる。
これらの値はパラメータ設定器34に入力され、画像符号化器35においてその設定値から符号化が開始される。一方、符号化データサーチ器38では再符号化する区間Aの先頭位置を、すでに記録してあるビットストリームに対してサーチする。サーチはデータの相対アドレスを用いて、そのビットストリームファイルの頭からの位置にポインタを設定する。
画像符号化器35では区間Aに対応する第1のMPEG画像データを復号化し、復号画像を用いて再度、VBVバッファ占有値の推移が、aの位置でのVBV値から開始されて、dの位置でのVBV値までで終了するようにレートコントロールを行ってMPEG符号化方式で再符号化を行う。再符号化は前記のように完全に復号した画像を用いても良いが、特開平11−234677に開示されているような、ビットストリーム上での符号量コントロールの技術を用いても良い。
ここでもし、再符号化する区間Aが、VBVバッファ情報の最小単位より長い場合には、再符号化しながら、ビットストリームのIピクチャー、Pピクチャーの1フレーム前のピクチャー符号化終了時点での発生符号量とPTM値、VBV値を、毎回、VBVバッファ情報作成器36へ送信する。それと共に、再符号化データをデータ書き込み部37へ送信する。
VBVバッファ情報作成器36では、入力された発生符号量値とPTM値とVBV値から図1に示す構造のデータを作成する。もしくはそのデータ構造を作成するのに必要なデータをメモリーして所定のフォーマットで記録保持する。VBVバッファ情報作成器36でのその情報は、符号化データが書き込まれているときに、同時にバースト的に書き込みを行っても良いし、符号化データが書き終わったとき、すなわち、ユーザーが画像圧縮記録を一時停止、もしくは終了したときに所定のフォーマットで記録保持されていたデータから、図1の構造に変換して書き込みを行っても良い。
再符号化された区間Aの画像データ(繋ぎ区間A再符号化データ)は、第1、第2のMPEG画像データと分離された別のファイルとして記録する。もしくは、記録第2のMPEG画像データの先頭に連結して記録する。
第1のMPEG画像データと、第2のMPEG画像データと、VBVバッファ占有値に関する情報とそのデータアドレス情報と、前記区間Aの再符号化画像データ(または前記区間Bの再符号化画像データ、または前記区間A+Bの再符号化画像データ)は、同一記録メディアに記録されていても、任意の組み合わせで複数の記録メディアに記録くされていても、それぞれが異なる記録メディアに記録されていてもかまわない。複数の記録メディアに分けて記録されている場合には、それぞれの記録メディア同士がリンクされて(それぞれのデータ、情報同士がリンクされて)運用されるように、同一情報群であることを示す情報、例えばIDなどを各記録メディアに記録しておくと良い。第1のMPEG画像データと、第2のMPEG画像データと、前記区間Aの再符号化画像データ(または前記区間Bの再符号化画像データ、または前記区間A+Bの再符号化画像データ)とが同一の記録媒体に記録されている場合には、一つの記録媒体で、再生装置側の繋ぎ再生を制御できる。
なお、繋ぎ区間再符号化画像データを得るためのVBVバッファ占有値に関する情報を、媒体に記録されているサイド情報から読み出すのではなく、計算により求める場合には、VBVバッファ占有値に関する情報とそのデータアドレス情報とを記録しておく必要はない。
上記実施例で、記録メディアは記録再生装置内の記録メディアとして説明したが、記録再生装置に着脱自在の記録メディア、ネットワークを介した記録メディア(データベース)であってもかまわない。
また、上記実施例では、単体のMPEG画像データに着目して画像データをつなぐ例を説明したが、音声データなどと共にMPEG方式でパケット多重化されたMPEG多重化データであるMPEGトランスポートストリーム内のMPEG画像データをつなぐ場合に適応しても良い。
トランスポートストリームには可変長符号化されているMPEG画像データ、固定長符号化されているMPEG1レイヤー2オーディオもしくはAC3などが多重化されている場合が多い。従って、その多重化されたデータ中の要素符号化データのひとつであるMPEG画像データをつなぐ場合、接続する点においてMPEGで規定されるSTDバッファ(ビデオではVBVバッファ)の整合性を考慮した接続方法として、前記説明した実施例の方法を適応すればよい。
例えば第1及び第2のMPEGトランスポートストリーム内からそれぞれ接続対象の第1及び第2のMPEG画像データを取り出し、上記した実施例と同様にして接続する。繋ぎ再生に使用する繋ぎ区間再符号化データ(前記区間Aの再符号化画像データ、前記区間Bの再符号化画像データ、前記区間A+Bの再符号化画像データ)は、MPEG方式でパケット多重化されたMPEG多重化データとして生成、記録されてもよい。
図14(1)の状態はMPEGトランスポートストリームのパケット多重化されたデータの状態を示している。Vと記載されているパケットはビデオパケット、Aと記載されているパケットはオーディオのパケット、Sと記載されているパケットはシステムで使用されるPATやPMTなどの情報パケットである。おのおのMPEG2システムのルールに準拠した形で記録されている。ビデオパケットは薄いグレーの色を施してある。これらの全体を示した状態が同図(2)である。このビデオパケットだけを集めた状態が同図(3)である。このビデオパケットの中身は、同図(4)に示すように始めがIピクチャーであり、次にBピクチャーが2枚、そのあとにPピクチャーが1枚、と続いてくのが典型的な例である。
これらのピクチャーの1枚もしくは複数のピクチャーにおいて再符号化によって符号量を調整する。例えば符号量が削減された状態が同図(5)である。各ピクチャーの符号量はそれぞれ小さくなっている。その状態でパケット化したものが同図(6)である。減少した部分には黒色を施してある。このパケット分、ビデオの全体の量が減少する。そして、TSを再構築する。この状態を全体で表現したものが同図(7)である。同図(7)を拡大したものが同図(8)である。結果的にVパケットの一部が減少し、それ以外の要素データパケットはそのまま多重化する。
MPEGシステムの規定ではPCRクロック情報は100msecに一度は記録されていなければならない。また、データ長が変更されているので、それぞれの要素パケットに記載されているPCRクロック情報は必要に応じて変更する。また、ビデオパケットにはアクセスユニット(フレームやフィールドのピクチャー単位)の先頭のPESヘッダーが存在するパケットにPTSやDTSが記述されている。オーディオパケットには1つもしくは複数のオーディオフレームをPESでパッキングしたその先頭のPESヘッダーが存在するパケットにPTSが記載されている。これらのタイムスタンプ情報は画像においてはピクチャー数を増減していない場合には変更する必要は無いし、オーディオも再生時間長を増減しなければ変更の必要はないが、それ以外の場合には、適切なPTS,DTSを追加修正する。
さらにまた、単純に再符号化する場合には、予測符号化のリセットタイミングであるIピクチャーからのGOP単位が扱いやすいが、GOPが独立していない場合、即ち、境界のBピクチャーが双方のGOPにまたがって予測されている場合(GOPのclosed gop=0の場合)には、一つ前のGOPの最後のリファレンスピクチャーを復号化して、図示せぬ画像再符号化用メモリーなどに保持しておくことが必要になる場合がある。
第1のMPEG多重化データ(第1のMPEGトランスポートストリーム)と、第2のMPEG画像データ(第2のMPEGトランスポートストリーム)と、VBVバッファ占有値に関する情報とそのデータアドレス情報と、前記区間Aの再符号化画像データ(または前記区間Bの再符号化画像データ、または前記区間A+Bの再符号化画像データ)を要素符号化データとして含んで、MPEG方式によりパケット多重化して生成した繋ぎ区間MPEG多重化データとは、同一記録メディアに記録されていても、任意の組み合わせで複数の記録メディアに記録くされていても、それぞれが異なる記録メディアに記録されていてもかまわない。複数の記録メディアに分けて記録されている場合には、それぞれの記録メディア同士がリンクされて(それぞれのデータ、情報同士がリンクされて)運用されるように、同一情報群であることを示す情報、例えばIDなどを各記録メディアに記録しておくと良い。第1のMPEG多重化画像データと、第2のMPEG多重化画像データと、前記区間Aの再符号化画像データ(または前記区間Bの再符号化画像データ、または前記区間A+Bの再符号化画像データ)の繋ぎ区間MPEG多重化データとが同一の記録媒体に記録されている場合には、一つの記録媒体で、再生装置側の繋ぎ再生を制御できる。