JP2000232646A - ストリーム伝送装置および方法、並びに提供媒体 - Google Patents

ストリーム伝送装置および方法、並びに提供媒体

Info

Publication number
JP2000232646A
JP2000232646A JP3194599A JP3194599A JP2000232646A JP 2000232646 A JP2000232646 A JP 2000232646A JP 3194599 A JP3194599 A JP 3194599A JP 3194599 A JP3194599 A JP 3194599A JP 2000232646 A JP2000232646 A JP 2000232646A
Authority
JP
Japan
Prior art keywords
data
picture
encoding
code
stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3194599A
Other languages
English (en)
Other versions
JP3817951B2 (ja
Inventor
Takuya Kitamura
卓也 北村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP03194599A priority Critical patent/JP3817951B2/ja
Publication of JP2000232646A publication Critical patent/JP2000232646A/ja
Application granted granted Critical
Publication of JP3817951B2 publication Critical patent/JP3817951B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 【課題】 トランスコーダの規模を小さくするととも
に、再符号化に伴う画像の劣化を抑制可能なストリーム
を、少ない容量のメディアを介して伝送できるようにす
る。 【解決手段】 符号化パラメータ分離装置105は、再
符号化に最適な符号化パラメータを抽出し、記述子とと
もに、組合せ記述子分離部511に出力する。スイッチ
513は、組合せ記述子分離部511から供給された記
述子に対応して、組合せ記述子分離部511から供給さ
れた符号化パラメータ、または、符号化パラメータ算出
部512がベースバンドビデオデータから算出した符号
化パラメータを選択し、符号化装置106に出力する。
符号化装置106は、入力された符号化パラメータに基
づいて、ベースバンドビデオデータを符号化し、履歴符
号化装置107から供給される履歴情報を含むuser_dat
aを多重化し、出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ストリーム伝送装
置および方法、並びに提供媒体に関し、特に、動画像信
号を、例えば光磁気ディスクや磁気テープなどの記録媒
体に記録し、これを再生して、ステレオ視が可能なディ
スプレイなどに表示したり、テレビ会議システム、テレ
ビ電話システム、放送用機器など、動画像信号を伝送路
を介して送信側から受信側に伝送し、受信側において、
これを受信して表示する場合などに用いて好適なストリ
ーム伝送装置および方法、並びに提供媒体に関する。
【0002】
【従来の技術】例えば、テレビ会議システム、テレビ電
話システムなどのように、動画像信号を遠隔地に伝送す
るシステムにおいては、伝送路を効率良く利用するた
め、映像信号のライン相関やフレーム間相関を利用し
て、画像信号が圧縮符号化される。
【0003】画像信号が圧縮符号化される場合、生成さ
れるビットストリームが、所定のビットレートになるよ
うに符号化が行われる。しかしながら、実運用上におい
て、伝送路の都合により、ビットストリームのビットレ
ートを変換する必要が生じることがある。このような場
合、図1に示すようなトランスコーダ131により、符
号化されている情報を一旦復号し、ビットレートが所定
の値になるように、再び符号化する方法が一般的であ
る。図1の例の場合、10Mbpsで送られてきたビットス
トリームが、復号装置132により復号され、デジタル
ビデオ信号として符号化装置133に供給され、符号化
装置133により、ビットレートが5Mbpsであるビット
ストリームに符号化されて出力される。
【0004】
【発明が解決しようとする課題】このように映像信号を
再符号化する場合、符号化装置133には、図2に示す
ように、映像信号のライン相関やフレーム間相関を検出
する動き検出部134が符号化部135の前段に必要と
なり、符号化装置133の規模が大きくなる課題があっ
た。
【0005】また、例えば放送局においては、映像の編
集が秒単位で行われるので、フレームの画像情報が他の
フレームの画像情報と独立しているほうがよい。そこ
で、図3に示すように、低いビットレート(3乃至9Mb
ps)で転送しても画質が劣化しないように、相関関係を
有するフレームの集合であるGOP(Group of Picture)を
構成するフレーム数が多いLong GOPの符号化装置133
−1から出力されたビットストリームは、復号装置13
2−1、符号化装置133−2、復号装置132−2、
符号化装置133−3などを有する放送局の復号装置1
32−1と符号化装置133−2により、GOPを構成す
るフレーム数が少ないShort GOPに変換されて、高ビッ
トレート(18乃至50Mbps)で伝送され、編集終了
後、復号装置132−2と符号化装置133−3によ
り、再度Long GOPに変換されて、後段の復号装置132
−3に出力される。このように、画像情報に符号化、復
号が繰り返されると、符号化の度に使用される符号化パ
ラメータが変化するので画像情報が劣化する課題があっ
た。
【0006】本発明はこのような状況に鑑みてなされた
ものであり、過去に演算した動きベクトルを用いて再符
号化を行うことにより、装置の規模を小さくするととも
に、再符号化に伴う画像の劣化を抑制することを、少な
いデータ量で可能とするものである。
【0007】
【課題を解決するための手段】請求項1に記載のストリ
ーム伝送装置は、過去の符号化処理において使用された
複数の符号化パラメータから所定の符号化パラメータを
選択的に組み合わせる組み合わせ手段と、組み合わせ手
段により組み合わされた符号化パラメータの履歴を表す
符号化履歴情報を生成する生成手段と、生成手段により
生成された符号化履歴情報を、符号化ストリームに重乗
してメディアに伝送する伝送手段とを含むことを特徴と
する。
【0008】請求項4に記載のストリーム伝送方法は、
過去の符号化処理において使用された複数の符号化パラ
メータから所定の符号化パラメータを選択的に組み合わ
せる組み合わせステップと、組み合わせステップの処理
により組み合わされた符号化パラメータの履歴を表す符
号化履歴情報を生成する生成ステップと、生成ステップ
の処理により生成された符号化履歴情報を、符号化スト
リームに重乗してメディアに伝送する伝送ステップとを
含むことを特徴とする。
【0009】請求項5に記載の提供媒体は、複数の符号
化パラメータから所定のメディアを介して符号化ストリ
ームを伝送するストリーム伝送装置に、過去の符号化処
理において使用された複数の符号化パラメータから所定
の符号化パラメータを選択的に組み合わせる組み合わせ
ステップと、組み合わせステップの処理により組み合わ
された符号化パラメータの履歴を表す符号化履歴情報を
生成する生成ステップと、生成ステップの処理により生
成された符号化履歴情報を、符号化ストリームに重乗し
てメディアに伝送する伝送ステップとを含む処理を実行
させるコンピュータが読み取り可能なプログラムを提供
することを特徴とする提供媒体。
【0010】請求項1に記載のストリーム伝送装置、請
求項4に記載のストリーム伝送方法、および請求項5に
記載の提供媒体においては、過去の符号化処理において
使用された複数の符号化パラメータから所定の符号化パ
ラメータが選択的に組み合わされ、組み合わされた符号
化パラメータの符号化履歴情報が生成され、符号化スト
リームに重乗され、伝送される。
【0011】
【発明の実施の形態】本発明を適用したトランスコーダ
について説明する前に、動画像信号の圧縮符号化につい
て説明する。なお、本明細書においてシステムの用語
は、複数の装置、手段などにより構成される全体的な装
置を意味するものである。
【0012】例えば、テレビ会議システム、テレビ電話
システムなどのように、動画像信号を遠隔地に伝送する
システムにおいては、伝送路を効率良く利用するため、
映像信号のライン相関やフレーム間相関を利用して、画
像信号を圧縮符号化するようになされている。
【0013】ライン相関を利用すると、画像信号を、例
えばDCT(離散コサイン変換)処理するなどして圧縮す
ることができる。
【0014】また、フレーム間相関を利用すると、画像
信号をさらに圧縮して符号化することが可能となる。例
えば図4に示すように、時刻t1乃至t3において、フ
レーム画像PC1乃至PC3がそれぞれ発生している場
合、フレーム画像PC1およびPC2の画像信号の差を
演算して、PC12を生成し、また、フレーム画像PC
2およびPC3の差を演算して、PC23を生成する。
通常、時間的に隣接するフレームの画像は、それ程大き
な変化を有していないため、両者の差を演算すると、そ
の差分信号は小さな値のものとなる。そこで、この差分
信号を符号化すれば、符号量を圧縮することができる。
【0015】しかしながら、差分信号のみを伝送したの
では、元の画像を復元することができない。そこで、各
フレームの画像を、Iピクチャ、PピクチャまたはBピ
クチャの3種類のピクチャタイプのいずれかとし、画像
信号を圧縮符号化するようにしている。
【0016】すなわち、例えば図5に示すように、フレ
ームF1乃至F17までの17フレームの画像信号をグ
ループオブピクチャ(GOP)とし、処理の1単位とする。
そして、その先頭のフレームF1の画像信号はIピクチ
ャとして符号化し、第2番目のフレームF2はBピクチ
ャとして、また第3番目のフレームF3はPピクチャと
して、それぞれ処理する。以下、第4番目以降のフレー
ムF4乃至F17は、BピクチャまたはPピクチャとし
て交互に処理する。
【0017】Iピクチャの画像信号としては、その1フ
レーム分の画像信号をそのまま伝送する。これに対し
て、Pピクチャの画像信号としては、基本的には、図5
に示すように、それより時間的に先行するIピクチャま
たはPピクチャの画像信号からの差分を伝送する。さら
にBピクチャの画像信号としては、基本的には、図6に
示すように、時間的に先行するフレームまたは後行する
フレームの両方の平均値からの差分を求め、その差分を
符号化する。
【0018】図7は、このようにして、動画像信号を符
号化する方法の原理を示している。同図に示すように、
最初のフレームF1は、Iピクチャとして処理されるた
め、そのまま伝送データF1Xとして伝送路に伝送され
る(画像内符号化)。これに対して、第2のフレームF
2は、Bピクチャとして処理されるため、時間的に先行
するフレームF1と、時間的に後行するフレームF3の
平均値との差分が演算され、その差分が伝送データF2
Xとして伝送される。
【0019】ただし、このBピクチャとしての処理は、
さらに細かく説明すると、4種類存在する。その第1の
処理は、元のフレームF2のデータをそのまま伝送デー
タF2Xとして伝送するものであり(SP1)(イント
ラ符号化)、Iピクチャにおける場合と同様の処理とな
る。第2の処理は、時間的に後のフレームF3からの差
分を演算し、その差分(SP2)を伝送するものである
(後方予測符号化)。第3の処理は、時間的に先行する
フレームF1との差分(SP3)を伝送するものである
(前方予測符号化)。さらに第4の処理は、時間的に先
行するフレームF1と後行するフレームF3の平均値と
の差分(SP4)を生成し、これを伝送データF2Xと
して伝送するものである(両方向予測符号化)。
【0020】実際には、上述した4つの方法のうちの伝
送データが最も少なくなる方法が採用される。
【0021】なお、差分データを伝送するとき、差分を
演算する対象となるフレームの画像(参照画像)との間
の動きベクトルx1(フレームF1とF2の間の動きベ
クトル)(前方予測の場合)、もしくはx2(フレーム
F3とF2の間の動きベクトル)(後方予測の場合)、
またはx1とx2の両方(両方向予測の場合)が、差分
データとともに伝送される。
【0022】また、PピクチャのフレームF3は、時間
的に先行するフレームF1を予測画像として、このフレ
ームとの差分信号(SP3)と、動きベクトルx3が演
算され、これが伝送データF3Xとして伝送される(前
方予測符号化)。あるいはまた、元のフレームF3のデ
ータが、そのままデータF3Xとして伝送される(SP
1)(イントラ符号化)。これらの方法のうち、Bピク
チャにおける場合と同様に、伝送データがより少なくな
る方法が選択される。
【0023】図8は、上述した原理に基づいて、動画像
信号を符号化して伝送し、これを復号化する装置の構成
例を示している。符号化装置1は、入力された映像信号
を符号化し、伝送路としての記録媒体3に伝送するよう
になされている。そして、復号装置2は、記録媒体3に
記録された信号を再生し、これを復号して出力するよう
になされている。
【0024】符号化装置1においては、入力された映像
信号が前処理回路11に入力され、そこで輝度信号と色
信号(本実施の形態の場合、色差信号)が分離され、そ
れぞれA/D変換器12,13でアナログ信号からデジタ
ル信号に変換される。A/D変換器12,13によりデジ
タル信号に変換された映像信号は、フレームメモリ14
に供給され、記憶される。フレームメモリ14は、輝度
信号を輝度信号フレームメモリ15に、また、色差信号
を色差信号フレームメモリ16に、それぞれ記憶させ
る。
【0025】フォーマット変換回路17は、フレームメ
モリ14に記憶されたフレームフォーマットの信号を、
ブロックフォーマットの信号に変換する。すなわち、図
9に示すように、フレームメモリ14に記憶された映像
信号は、1ライン当りHドットのラインがVライン集め
られた、図9(A)に示すようなフレームフォーマットの
データとされている。フォーマット変換回路17は、こ
の1フレームの信号を、図9(B)に示すように、16ラ
インを単位としてM個のスライスに区分する。そして、
各スライスは、M個のマクロブロックに分割される。マ
クロブロックは、図9(C)に示すように、16×16個
の画素(ドット)に対応する輝度信号により構成され、
この輝度信号は、さらに8×8ドットを単位とするブロ
ックY[1]乃至Y[4]に区分される。そして、この
16×16ドットの輝度信号には、8×8ドットのCb
信号と、8×8ドットのCr信号が対応される。
【0026】このように、ブロックフォーマットに変換
されたデータは、フォーマット変換回路17からエンコ
ーダ18に供給され、ここでエンコード(符号化)が行
われる。その詳細については、図10を参照して後述す
る。
【0027】エンコーダ18によりエンコードされた信
号は、ビットストリームとして伝送路に出力される。例
えば記録回路19に供給され、デジタル信号として記録
媒体3に記録される。
【0028】再生回路30により記録媒体3より再生さ
れたデータは、復号装置2のデコーダ31に供給され、
デコードされる。デコーダ31の詳細については、図1
5を参照して後述する。
【0029】デコーダ31によりデコードされたデータ
は、フォーマット変換回路32に入力され、ブロックフ
ォーマットからフレームフォーマットに変換される。そ
して、フレームフォーマットの輝度信号は、フレームメ
モリ33の輝度信号フレームメモリ34に供給されて記
憶され、色差信号は色差信号フレームメモリ35に供給
されて記憶される。輝度信号フレームメモリ34と色差
信号フレームメモリ35から読み出された輝度信号と色
差信号は、それぞれD/A変換器36,37によりアナ
ログ信号に変換され、後処理回路38に供給される。後
処理回路38は、輝度信号と色差信号を合成して出力す
る。
【0030】次に図10を参照して、エンコーダ18の
構成について説明する。符号化される画像データは、マ
クロブロック単位で動きベクトル検出回路50に入力さ
れる。動きベクトル検出回路50は、予め設定されてい
る所定のシーケンスに従って、各フレームの画像データ
を、Iピクチャ、Pピクチャ、またはBピクチャとして
処理する。シーケンシャルに入力される各フレームの画
像を、I,P、またはBのいずれのピクチャとして処理
するかは、予め定められている(例えば、図5と図6に
示したように、フレームF1乃至F17により構成され
るグループオブピクチャが、I,B,P,B,P,・・
・B,Pとして処理される)。
【0031】Iピクチャとして処理されるフレーム(例
えば、フレームF1)の画像データは、動きベクトル検
出回路50からフレームメモリ51の前方原画像部51
aに転送、記憶され、Bピクチャとして処理されるフレ
ーム(例えば、フレームF2)の画像データは、原画像
部51bに転送、記憶され、Pピクチャとして処理され
るフレーム(例えば、フレームF3)の画像データは、
後方原画像部51cに転送、記憶される。
【0032】また、次のタイミングにおいて、さらにB
ピクチャ(フレームF4)またはPピクチャ(フレーム
F5)として処理すべきフレームの画像が入力されたと
き、それまで後方原画像部51cに記憶されていた最初
のPピクチャ(フレームF3)の画像データが、前方原
画像部51aに転送され、次のBピクチャ(フレームF
4)の画像データが、原画像部51bに記憶(上書き)
され、次のPピクチャ(フレームF5)の画像データ
が、後方原画像部51cに記憶(上書き)される。この
ような動作が順次繰り返される。
【0033】フレームメモリ51に記憶された各ピクチ
ャの信号は、そこから読み出され、予測モード切り替え
回路52において、フレーム予測モード処理、またはフ
ィールド予測モード処理が行なわれる。
【0034】さらにまた、予測判定回路54の制御の下
に、演算部53において、画像内予測、前方予測、後方
予測、または両方向予測の演算が行なわれる。これらの
処理のうち、いずれの処理を行なうかは、予測誤差信号
(処理の対象とされている参照画像と、これに対する予
測画像との差分)に対応して決定される。このため、動
きベクトル検出回路50は、この判定に用いられる予測
誤差信号の絶対値和(自乗和でもよい)を生成する。
【0035】ここで、予測モード切り替え回路52にお
けるフレーム予測モードとフィールド予測モードについ
て説明する。
【0036】フレーム予測モードが設定された場合にお
いては、予測モード切り替え回路52は、動きベクトル
検出回路50より供給される4個の輝度ブロックY
[1]乃至Y[4]を、そのまま後段の演算部53に出
力する。すなわち、この場合においては、図11に示す
ように、各輝度ブロックに奇数フィールドのラインのデ
ータと、偶数フィールドのラインのデータとが混在した
状態となっている。このフレーム予測モードにおいて
は、4個の輝度ブロック(マクロブロック)を単位とし
て予測が行われ、4個の輝度ブロックに対して1個の動
きベクトルが対応される。
【0037】これに対して、予測モード切り替え回路5
2は、フィールド予測モードにおいては、図11に示す
構成で動きベクトル検出回路50より入力される信号
を、図12に示すように、4個の輝度ブロックのうち、
輝度ブロックY[1]とY[2]を、例えば奇数フィー
ルドのラインのドットだけで構成させ、他の2個の輝度
ブロックY[3]とY[4]を、偶数フィールドのライ
ンのドットだけで構成させて、演算部53に出力する。
この場合においては、2個の輝度ブロックY[1]とY
[2]に対して、1個の動きベクトルが対応され、他の
2個の輝度ブロックY[3]とY[4]に対して、他の
1個の動きベクトルが対応される。
【0038】動きベクトル検出回路50は、フレーム予
測モードにおける予測誤差の絶対値和、およびフィール
ド予測モードにおける予測誤差の絶対値和を予測モード
切り替え回路52に出力する。予測モード切り替え回路
52は、フレーム予測モードとフィールド予測モードに
おける予測誤差の絶対値和を比較し、その値が小さい予
測モードに対応する処理を施して、データを演算部53
に出力する。
【0039】ただし、このような処理は、実際には動き
ベクトル検出回路50で行われる。すなわち、動きベク
トル検出回路50は、決定されたモードに対応する構成
の信号を予測モード切り替え回路52に出力し、予測モ
ード切り替え回路52は、その信号を、そのまま後段の
演算部53に出力する。
【0040】なお、色差信号は、フレーム予測モードの
場合、図11に示すように、奇数フィールドのラインの
データと偶数フィールドのラインのデータとが混在する
状態で、演算部53に供給される。また、フィールド予
測モードの場合、図12に示すように、各色差ブロック
Cb,Crの上半分(4ライン)が、輝度ブロックY
[1],Y[2]に対応する奇数フィールドの色差信号
とされ、下半分(4ライン)が、輝度ブロックY
[3],Y[4]に対応する偶数フィールドの色差信号
とされる。
【0041】また、動きベクトル検出回路50は、以下
に示すようにして、予測判定回路54において、画像内
予測、前方予測、後方予測、または両方向予測のいずれ
の予測を行なうかを決定するための予測誤差の絶対値和
を生成する。
【0042】すなわち、画像内予測の予測誤差の絶対値
和として、参照画像のマクロブロックの信号Aijの総和
ΣAijの絶対値|ΣAij|と、マクロブロックの信号A
ijの絶対値|Aij|の総和Σ|Aij|の差を求める。ま
た、前方予測の予測誤差の絶対値和として、参照画像の
マクロブロックの信号Aijと、予測画像のマクロブロッ
クの信号Bijの差Aij−Bijの絶対値|Aij−Bij|の
総和Σ|Aij−Bij|を求める。また、後方予測と両方
向予測の予測誤差の絶対値和も、前方予測における場合
と同様に(その予測画像を前方予測における場合と異な
る予測画像に変更して)求める。
【0043】これらの絶対値和は、予測判定回路54に
供給される。予測判定回路54は、前方予測、後方予測
および両方向予測の予測誤差の絶対値和のうちの最も小
さいものを、インタ予測の予測誤差の絶対値和として選
択する。さらに、このインタ予測の予測誤差の絶対値和
と、画像内予測の予測誤差の絶対値和とを比較し、その
小さい方を選択し、この選択した絶対値和に対応するモ
ードを予測モードとして選択する。すなわち、画像内予
測の予測誤差の絶対値和の方が小さければ、画像内予測
モードが設定される。インタ予測の予測誤差の絶対値和
の方が小さければ、前方予測、後方予測または両方向予
測モードのうちの対応する絶対値和が最も小さかったモ
ードが設定される。
【0044】このように、動きベクトル検出回路50
は、参照画像のマクロブロックの信号を、フレームまた
はフィールド予測モードのうち、予測モード切り替え回
路52により選択されたモードに対応する構成で、予測
モード切り替え回路52を介して演算部53に供給する
とともに、4つの予測モードのうちの予測判定回路54
により選択された予測モードに対応する予測画像と参照
画像の間の動きベクトルを検出し、可変長符号化回路5
8と動き補償回路64に出力する。上述したように、こ
の動きベクトルとしては、対応する予測誤差の絶対値和
が最小となるものが選択される。
【0045】予測判定回路54は、動きベクトル検出回
路50が前方原画像部51aよりIピクチャの画像デー
タを読み出しているとき、予測モードとして、フレーム
またはフィールド(画像)内予測モード(動き補償を行
わないモード)を設定し、演算部53のスイッチ53d
を接点a側に切り替える。これにより、Iピクチャの画
像データがDCTモード切り替え回路55に入力される。
【0046】DCTモード切り替え回路55は、図13ま
たは図14に示すように、4個の輝度ブロックのデータ
を、奇数フィールドのラインと偶数フィールドのライン
が混在する状態(フレームDCTモード)、または、分離
された状態(フィールドDCTモード)、のいずれかの状
態にして、DCT回路56に出力する。
【0047】すなわち、DCTモード切り替え回路55
は、奇数フィールドと偶数フィールドのデータを混在し
てDCT処理した場合における符号化効率と、分離した状
態においてDCT処理した場合の符号化効率とを比較し、
符号化効率の良好なモードを選択する。
【0048】例えば、入力された信号を、図13に示す
ように、奇数フィールドと偶数フィールドのラインが混
在する構成とし、上下に隣接する奇数フィールドのライ
ンの信号と偶数フィールドのラインの信号の差を演算
し、さらにその絶対値の和(または自乗和)を求める。
【0049】また、入力された信号を、図14に示すよ
うに、奇数フィールドと偶数フィールドのラインが分離
した構成とし、上下に隣接する奇数フィールドのライン
同士の信号の差と、偶数フィールドのライン同士の信号
の差を演算し、それぞれの絶対値の和(または自乗和)
を求める。
【0050】さらに、両者(絶対値和)を比較し、小さ
い値に対応するDCTモードを設定する。すなわち、前者
の方が小さければ、フレームDCTモードを設定し、後者
の方が小さければ、フィールドDCTモードを設定する。
【0051】そして、選択したDCTモードに対応する構
成のデータをDCT回路56に出力するとともに、選択し
たDCTモードを示すDCTフラグを、可変長符号化回路5
8、および動き補償回路64に出力する。
【0052】予測モード切り替え回路52における予測
モード(図11と図12)と、このDCTモード切り替え
回路55におけるDCTモード(図13と図14)を比較
して明らかなように、輝度ブロックに関しては、両者の
各モードにおけるデータ構造は実質的に同一である。
【0053】予測モード切り替え回路52において、フ
レーム予測モード(奇数ラインと偶数ラインが混在する
モード)が選択された場合、DCTモード切り替え回路5
5においても、フレームDCTモード(奇数ラインと偶数
ラインが混在するモード)が選択される可能性が高く、
また予測モード切り替え回路52において、フィールド
予測モード(奇数フィールドと偶数フィールドのデータ
が分離されたモード)が選択された場合、DCTモード切
り替え回路55において、フィールドDCTモード(奇数
フィールドと偶数フィールドのデータが分離されたモー
ド)が選択される可能性が高い。
【0054】しかしながら、必ずしも常にこのようにモ
ードが選択されるわけではなく、予測モード切り替え回
路52においては、予測誤差の絶対値和が小さくなるよ
うにモードが決定され、DCTモード切り替え回路55に
おいては、符号化効率が良好となるようにモードが決定
される。
【0055】DCTモード切り替え回路55より出力され
たIピクチャの画像データは、DCT回路56に入力され
てDCT処理され、DCT係数に変換される。このDCT係数
は、量子化回路57に入力され、送信バッファ59のデ
ータ蓄積量(バッファ蓄積量)に対応した量子化スケー
ルで量子化された後、可変長符号化回路58に入力され
る。
【0056】可変長符号化回路58は、量子化回路57
より供給される量子化スケール(スケール)に対応し
て、量子化回路57より供給される画像データ(いまの
場合、Iピクチャのデータ)を、例えばハフマン符号な
どの可変長符号に変換し、送信バッファ59に出力す
る。
【0057】可変長符号化回路58にはまた、量子化回
路57より量子化スケール(スケール)、予測判定回路
54より予測モード(画像内予測、前方予測、後方予
測、または両方向予測のいずれが設定されたかを示すモ
ード)、動きベクトル検出回路50より動きベクトル、
予測モード切り替え回路52より予測フラグ(フレーム
予測モードまたはフィールド予測モードのいずれが設定
されたかを示すフラグ)、およびDCTモード切り替え回
路55が出力するDCTフラグ(フレームDCTモードまたは
フィールドDCTモードのいずれが設定されたかを示すフ
ラグ)が入力されており、これらも可変長符号化され
る。
【0058】送信バッファ59は、入力されたデータを
一時蓄積し、蓄積量に対応するデータを量子化回路57
に出力する。送信バッファ59は、そのデータ残量が許
容上限値まで増量すると、量子化制御信号によって量子
化回路57の量子化スケールを大きくすることにより、
量子化データのデータ量を低下させる。また、これとは
逆に、データ残量が許容下限値まで減少すると、送信バ
ッファ59は、量子化制御信号によって量子化回路57
の量子化スケールを小さくすることにより、量子化デー
タのデータ量を増大させる。このようにして、送信バッ
ファ59のオーバフローまたはアンダフローが防止され
る。
【0059】そして、送信バッファ59に蓄積されたデ
ータは、所定のタイミングで読み出され、伝送路に出力
され、例えば記録回路19を介して記録媒体3に記録さ
れる。
【0060】一方、量子化回路57より出力されたIピ
クチャのデータは、逆量子化回路60に入力され、量子
化回路57より供給される量子化スケールに対応して逆
量子化される。逆量子化回路60の出力は、IDCT(逆離
散コサイン変換)回路61に入力され、逆離散コサイン
変換処理された後、演算器62を介してフレームメモリ
63の前方予測画像部63a供給されて記憶される。
【0061】動きベクトル検出回路50は、シーケンシ
ャルに入力される各フレームの画像データを、たとえ
ば、I,B,P,B,P,B・・・のピクチャとしてそ
れぞれ処理する場合、最初に入力されたフレームの画像
データをIピクチャとして処理した後、次に入力された
フレームの画像をBピクチャとして処理する前に、さら
にその次に入力されたフレームの画像データをPピクチ
ャとして処理する。Bピクチャは、後方予測を伴うた
め、後方予測画像としてのPピクチャが先に用意されて
いないと、復号することができないからである。
【0062】そこで動きベクトル検出回路50は、Iピ
クチャの処理の次に、後方原画像部51cに記憶されて
いるPピクチャの画像データの処理を開始する。そし
て、上述した場合と同様に、マクロブロック単位でのフ
レーム間差分(予測誤差)の絶対値和が、動きベクトル
検出回路50から予測モード切り替え回路52と予測判
定回路54に供給される。予測モード切り替え回路52
と予測判定回路54は、このPピクチャのマクロブロッ
クの予測誤差の絶対値和に対応して、フレーム/フィー
ルド予測モード、または画像内予測、前方予測、後方予
測、もしくは両方向予測の予測モードを設定する。
【0063】演算部53は、画像内予測モードが設定さ
れたとき、スイッチ53dを上述したように接点a側に
切り替える。したがって、このデータは、Iピクチャの
データと同様に、DCTモード切り替え回路55、DCT回路
56、量子化回路57、可変長符号化回路58、および
送信バッファ59を介して伝送路に伝送される。また、
このデータは、逆量子化回路60、IDCT回路61、およ
び演算器62を介してフレームメモリ63の後方予測画
像部63bに供給されて記憶される。
【0064】また、前方予測モードが設定された場合、
スイッチ53dが接点bに切り替えられるとともに、フ
レームメモリ63の前方予測画像部63aに記憶されて
いる画像(いまの場合、Iピクチャの画像)データが読
み出され、動き補償回路64により、動きベクトル検出
回路50が出力する動きベクトルに対応して動き補償さ
れる。すなわち、動き補償回路64は、予測判定回路5
4より前方予測モードの設定が指令されたとき、前方予
測画像部63aの読み出しアドレスを、動きベクトル検
出回路50が、現在、出力しているマクロブロックの位
置に対応する位置から動きベクトルに対応する分だけず
らしてデータを読み出し、予測画像データを生成する。
【0065】動き補償回路64より出力された予測画像
データは、演算器53aに供給される。演算器53a
は、予測モード切り替え回路52より供給された参照画
像のマクロブロックのデータから、動き補償回路65よ
り供給された、このマクロブロックに対応する予測画像
データを減算し、その差分(予測誤差)を出力する。こ
の差分データは、DCTモード切り替え回路55、DCT回路
56、量子化回路57、可変長符号化回路58、および
送信バッファ59を介して伝送路に伝送される。また、
この差分データは、逆量子化回路60、およびIDCT回路
61により局所的に復号され、演算器62に入力され
る。
【0066】この演算器62にはまた、演算器53aに
供給されている予測画像データと同一のデータが供給さ
れている。演算器62は、IDCT回路61が出力する差分
データに、動き補償回路64が出力する予測画像データ
を加算する。これにより、元の(復号した)Pピクチャ
の画像データが得られる。このPピクチャの画像データ
は、フレームメモリ63の後方予測画像部63bに供給
されて記憶される。
【0067】動きベクトル検出回路50は、このよう
に、IピクチャとPピクチャのデータが前方予測画像部
63aと後方予測画像部63bにそれぞれ記憶された
後、次にBピクチャの処理を実行する。予測モード切り
替え回路52と予測判定回路54は、マクロブロック単
位でのフレーム間差分の絶対値和の大きさに対応して、
フレーム/フィールドモードを設定し、また、予測モー
ドを画像内予測モード、前方予測モード、後方予測モー
ド、または両方向予測モードのいずれかに設定する。
【0068】上述したように、画像内予測モードまたは
前方予測モードの時、スイッチ53dは接点aまたはb
に切り替えられる。このとき、Pピクチャにおける場合
と同様の処理が行われ、データが伝送される。
【0069】これに対して、後方予測モードまたは両方
向予測モードが設定された時、スイッチ53dは、接点
cまたはdにそれぞれ切り替えられる。
【0070】スイッチ53dが接点cに切り替えられて
いる後方予測モードの時、後方予測画像部63bに記憶
されている画像(いまの場合、Pピクチャの画像)デー
タが読み出され、動き補償回路64により、動きベクト
ル検出回路50が出力する動きベクトルに対応して動き
補償される。すなわち、動き補償回路64は、予測判定
回路54より後方予測モードの設定が指令されたとき、
後方予測画像部63bの読み出しアドレスを、動きベク
トル検出回路50が、現在、出力しているマクロブロッ
クの位置に対応する位置から動きベクトルに対応する分
だけずらしてデータを読み出し、予測画像データを生成
する。
【0071】動き補償回路64より出力された予測画像
データは、演算器53bに供給される。演算器53b
は、予測モード切り替え回路52より供給された参照画
像のマクロブロックのデータから、動き補償回路64よ
り供給された予測画像データを減算し、その差分を出力
する。この差分データは、DCTモード切り替え回路5
5、DCT回路56、量子化回路57、可変長符号化回路
58、および送信バッファ59を介して伝送路に伝送さ
れる。
【0072】スイッチ53dが接点dに切り替えられて
いる両方向予測モードの時、前方予測画像部63aに記
憶されている画像(いまの場合、Iピクチャの画像)デ
ータと、後方予測画像部63bに記憶されている画像
(いまの場合、Pピクチャの画像)データが読み出さ
れ、動き補償回路64により、動きベクトル検出回路5
0が出力する動きベクトルに対応して動き補償される。
【0073】すなわち、動き補償回路64は、予測判定
回路54より両方向予測モードの設定が指令されたと
き、前方予測画像部63aと後方予測画像部63bの読
み出しアドレスを、動きベクトル検出回路50がいま出
力しているマクロブロックの位置に対応する位置から動
きベクトル(この場合の動きベクトルは、前方予測画像
用と後方予測画像用の2つとなる)に対応する分だけず
らしてデータを読み出し、予測画像データを生成する。
【0074】動き補償回路64より出力された予測画像
データは、演算器53cに供給される。演算器53c
は、動きベクトル検出回路50より供給された参照画像
のマクロブロックのデータから、動き補償回路64より
供給された予測画像データの平均値を減算し、その差分
を出力する。この差分データは、DCTモード切り替え回
路55、DCT回路56、量子化回路57、可変長符号化
回路58、および送信バッファ59を介して伝送路に伝
送される。
【0075】Bピクチャの画像は、他の画像の予測画像
とされることがないため、フレームメモリ63には記憶
されない。
【0076】なお、フレームメモリ63において、前方
予測画像部63aと後方予測画像部63bは、必要に応
じてバンク切り替えが行われ、所定の参照画像に対し
て、一方または他方に記憶されているものを、前方予測
画像あるいは後方予測画像として切り替えて出力するこ
とができる。
【0077】上述した説明においては、輝度ブロックを
中心として説明をしたが、色差ブロックについても同様
に、図11乃至図14に示すマクロブロックを単位とし
て処理されて伝送される。なお、色差ブロックを処理す
る場合の動きベクトルは、対応する輝度ブロックの動き
ベクトルを垂直方向と水平方向に、それぞれ1/2にし
たものが用いられる。
【0078】図15は、図8のデコーダ31の構成を示
すブロック図である。伝送路(記録媒体3)を介して伝
送された符号化された画像データは、図示せぬ受信回路
で受信されたり、再生装置で再生され、受信バッファ8
1に一時記憶された後、復号回路90の可変長復号化回
路82に供給される。可変長復号化回路82は、受信バ
ッファ81より供給されたデータを可変長復号化し、動
きベクトル、予測モード、予測フラグ、およびDCTフラ
グを動き補償回路87に出力し、量子化スケールを逆量
子化回路83に出力するとともに、復号された画像デー
タを逆量子化回路83に出力する。
【0079】逆量子化回路83は、可変長復号化回路8
2より供給された画像データを、同じく可変長復号化回
路82より供給された量子化スケールに従って逆量子化
し、IDCT回路84に出力する。逆量子化回路83より出
力されたデータ(DCT係数)は、IDCT回路84により、
逆離散コサイン変換処理が施され、演算器85に供給さ
れる。
【0080】IDCT回路84より演算器85に供給された
画像データが、Iピクチャのデータである場合、そのデ
ータは演算器85より出力され、演算器85に後に入力
される画像データ(PまたはBピクチャのデータ)の予
測画像データ生成のために、フレームメモリ86の前方
予測画像部86aに供給されて記憶される。また、この
データは、フォーマット変換回路32(図8)に出力さ
れる。
【0081】IDCT回路84より供給された画像データ
が、その1フレーム前の画像データを予測画像データと
するPピクチャのデータであり、前方予測モードのデー
タである場合、フレームメモリ86の前方予測画像部8
6aに記憶されている、1フレーム前の画像データ(I
ピクチャのデータ)が読み出され、動き補償回路87で
可変長復号化回路82より出力された動きベクトルに対
応する動き補償が施される。そして、演算器85におい
て、IDCT回路84より供給された画像データ(差分のデ
ータ)と加算され、出力される。この加算されたデー
タ、すなわち、復号されたPピクチャのデータは、演算
器85に後に入力される画像データ(Bピクチャまたは
Pピクチャのデータ)の予測画像データ生成のために、
フレームメモリ86の後方予測画像部86bに供給され
て記憶される。
【0082】Pピクチャのデータであっても、画像内予
測モードのデータは、Iピクチャのデータと同様に、演
算器85において処理は行われず、そのまま後方予測画
像部86bに記憶される。
【0083】このPピクチャは、次のBピクチャの次に
表示されるべき画像であるため、この時点では、まだフ
ォーマット変換回路32へ出力されない(上述したよう
に、Bピクチャの後に入力されたPピクチャが、Bピク
チャより先に処理され、伝送されている)。
【0084】IDCT回路84より供給された画像データ
が、Bピクチャのデータである場合、可変長復号化回路
82より供給された予測モードに対応して、フレームメ
モリ86の前方予測画像部86aに記憶されているIピ
クチャの画像データ(前方予測モードの場合)、後方予
測画像部86bに記憶されているPピクチャの画像デー
タ(後方予測モードの場合)、または、その両方の画像
データ(両方向予測モードの場合)が読み出され、動き
補償回路87において、可変長復号化回路82より出力
された動きベクトルに対応する動き補償が施されて、予
測画像が生成される。但し、動き補償を必要としない場
合(画像内予測モードの場合)、予測画像は生成されな
い。
【0085】このようにして、動き補償回路87で動き
補償が施されたデータは、演算器85において、IDCT回
路84の出力と加算される。この加算出力は、フォーマ
ット変換回路32に出力される。
【0086】ただし、この加算出力はBピクチャのデー
タであり、他の画像の予測画像生成のために利用される
ことがないため、フレームメモリ86には記憶されな
い。
【0087】Bピクチャの画像が出力された後、後方予
測画像部86bに記憶されているPピクチャの画像デー
タが読み出され、動き補償回路87を介して演算器85
に供給される。但し、このとき、動き補償は行われな
い。
【0088】なお、このデコーダ31には、図8のエン
コーダ18における予測モード切り替え回路52とDCT
モード切り替え回路55に対応する回路が図示されてい
ないが、これらの回路に対応する処理、すなわち、奇数
フィールドと偶数フィールドのラインの信号が分離され
た構成を元の構成に必要に応じて戻す処理は、動き補償
回路87により実行される。
【0089】また、上述した説明においては、輝度信号
の処理について説明したが、色差信号の処理も同様に行
われる。ただし、この場合の動きベクトルは、輝度信号
用の動きベクトルを、垂直方向および水平方向に1/2
にしたものが用いられる。
【0090】図16は、符号化された画像の品質を示し
ている。画像の品質(SNR:Signal toNoise Ratio)は、ピ
クチャタイプに対応して制御され、Iピクチャ、および
Pピクチャは高品質とされ、Bピクチャは、I,Pピク
チャに比べて劣る品質とされて伝送される。これは、人
間の視覚特性を利用した手法であり、全ての画像品質を
平均化するよりも、品質を振動させたほうが視覚上の画
質が良くなるためである。このピクチャタイプに対応し
た画質の制御は、図10の量子化回路57により実行さ
れる。
【0091】図17は、本発明を適用したトランスコー
ダ101の構成を示しており、図18は、そのさらに詳
細な構成を示している。復号装置102は、所定のビッ
トレート(この例の場合、10Mbps)のビットストリーム
に含まれる(多重化されている)符号化された画像信号
を、ビットストリームに含まれる(多重化されている)
そのビットストリームの現符号化パラメータ(フレーム
/フィールドDCTフラグ、フレーム/フィールド予測フ
ラグ、予測モード、ピクチャタイプ、動きベクトル、マ
クロブロック情報、および量子化スケール)を用いて復
号し、符号化パラメータ多重装置103に出力するとと
もに、現符号化パラメータも符号化パラメータ多重装置
103に出力するようになされている。
【0092】復号装置102はまた、ビットストリーム
に含まれるユーザデータを復号、分離し、履歴復号装置
104に出力する。その詳細は後述するが、このユーザ
データには、直近の3世代分の符号化パラメータで構成
される世代履歴情報が含まれている。これに対して、現
符号化パラメータは、例えばgroup_of_pictures_header
(1),extension_and_user_data(1),picture_heade
r(),picture_coding_extension(),extensions_data
(2),picture_data()、または、sequence_extension()
に含まれている(後述する図41)。履歴復号装置10
4は、入力されたユーザデータを復号し、3世代分の符
号化パラメータを含む世代履歴情報を符号化パラメータ
多重装置103に出力する。
【0093】なお、復号装置102は、図8の復号装置
2のデコーダ31(図15)を図19に示すデコーダ1
11に変更したものである。デコーダ111の可変長復
号化回路112は、現符号化パラメータをビットストリ
ームから抽出し、所定の回路に供給するとともに、世代
履歴情報を含むユーザデータを抽出し、履歴復号装置1
04に出力するようになされている。デコーダ111の
その他の構成は、デコーダ31と同様であるので、その
説明は省略する。
【0094】符号化パラメータ多重装置103は、復号
された画像データの空き領域(その詳細は、図21を参
照して説明する)に4世代分の符号化パラメータを書き
込み(多重化し)、ベースバンドのデジタルビデオ信号
として、粗結合された(符号化パラメータ伝送用の専用
バス等が設けられていない)符号化パラメータ分離装置
105に出力する。符号化パラメータ分離装置105
は、ベースバンドのデジタルビデオ信号から、画像デー
タと、符号化装置106で符号化に用いる符号化パラメ
ータを分離して符号化装置106に供給するようになさ
れている。
【0095】符号化パラメータ分離装置105はまた、
入力されたベースバンドのデジタルビデオ信号から、符
号化装置106で用いる符号化パラメータを除く3世代
分の符号化パラメータを抽出し、履歴符号化装置107
に出力する。履歴符号化装置107は、入力された3世
代分の符号化パラメータをユーザデータに書き込み、そ
のユーザデータを符号化装置106に出力する。
【0096】符号パラメータが書き込まれる画像データ
のフォーマットについて、図20と図21を参照して説
明する。1個のマクロブロックは、図20に示すよう
に、16×16(=256)画素で構成される。この1
6×16画素のデータは、8×8画素の輝度信号の4個
のブロックと、8×8画素の色差信号の4個のブロック
(2個のCbブロックと2個のCrブロック)から構成され
ている。図21は、このうちの、4画素分の輝度データ
Y[0][x]乃至Y[3][x]、2画素分の色差データCr[0][x],
Cr[1][x]、および2画素分の色差データCb[0][x],Cb
[1][x](x=0乃至9)を伝送するフォーマットを表し
ている。従って、図20に示す256画素のマクロブロ
ックのデータは、図21に示すフォーマットを64個
(=256/4)用意することで伝送される。
【0097】実際の1画素分の輝度データ、および1画
素分の色差データは、いずれも8ビットのデータとされ
ている。しかしながら、図21の画像データの伝送フォ
ーマットとしては、1画素あたり、10ビット分の容量
(D0乃至D9)が設けられているので、2画素分の領
域(D0,D1)が不要となる。図21のフォーマット
全体では16ビット(=2×8)分の空き容量が存在す
るので、1マクロブロックでは、1024ビット(16
ビット×64個)の情報が記録できるので、この102
4ビット分の領域に本来の画像データ以外の符号化パラ
メータを書き込む。なお、1個のマクロブロックに対応
する符号化パラメータは、256ビットの情報量がある
ので、この領域には、過去4回の符号化に使用された符
号化パラメータを記録することができる。
【0098】このように、符号化パラメータ多重装置1
03から符号化パラメータ分離装置105に伝送される
画像データ(デジタルビデオ信号)には、輝度信号Y、
色差信号Cr,Cbを記載する領域として、10画素分
(D0乃至D9)の領域が設けられている。しかしなが
ら実際に輝度信号Y等が書き込まれる領域は、D2乃至
D9の8画素分の領域であり、D0,D1の領域は利用
されない。そこで、この2ビットの領域を符号化パラメ
ータの書き込み用領域として利用する。これにより、図
20の16×16画素の所定の位置の画素の下位2ビッ
トに、符号化パラメータが書き込まれることとなる。
【0099】符号化パラメータ多重装置103におい
て、符号化パラメータが書き込まれる画像データのフォ
ーマットについて、図20と図21を参照して説明す
る。1個のマクロブロックは、図20に示すように、1
6×16画素で構成される。この16×16画素のデー
タは、8×8画素の輝度信号Y[0][x]乃至Y[3][x]と、8
×8画素の色差信号Cr[0][x],Cr[1][x]およびCb[0]
[x],Cb[1][x](x=2乃至9)から構成されている。例
えば、輝度信号Y[0][9]は、8×8画素の1行目の画素
(8画素)の輝度信号を示している。1画素当たりの輝
度信号の情報量は8ビットなので、輝度信号Y[0][9]の
情報量は、8(画素)×8(ビット)=64ビットとな
る。色差信号についても同様である。
【0100】これに対して、画像データのフォーマット
は、図21に示すように、10行分の領域(D0乃至D
9)が設けられているので、2行分の領域(D0,D
1)が不要となる。この空き領域には、64ビット×1
6=1024ビットの情報が記録できるので、この2行
分の領域に本来の画像データ以外の符号化パラメータが
書き込まれる。なお、1個のマクロブロックに対応する
符号化パラメータは、256ビットの情報量があるの
で、この領域には、過去4回の符号化に使用された符号
化パラメータを記録することができる。
【0101】符号化パラメータ多重装置103から符号
化パラメータ分離装置105に伝送される画像データ
(デジタルビデオ信号)には、輝度信号Y、色差信号C
r,Cbを記載する領域として、10行分(D0乃至D
9)の領域が設けられている。しかしながら実際に輝度
信号Y等が書き込まれる領域は、D2乃至D9の8行分
の領域であり、D0,D1の領域は利用されない。そこ
で、この2行の領域を符号化パラメータの書き込み用領
域として利用する。これにより、図20の16×16画
素の所定の位置の画素の下位2ビットに、符号化パラメ
ータが書き込まれることとなる。
【0102】符号化装置106は、これから行う符号化
のための符号化パラメータとして供給された現符号化パ
ラメータを利用して画像データを符号化するとともに、
履歴符号化装置107から供給されるユーザデータをビ
ットストリームに多重化して、所定のビットレート(こ
の例の場合、5Mbps)でSDTI(Serial Data Transfer Int
erface)108−i(i=1,2,・・・,N)(後述
する図33)に出力するようになされている。
【0103】なお、符号化装置106は、図8の符号化
装置1のエンコーダ18(図10)を図22に示すエン
コーダ121に変更したものである。エンコーダ121
は、エンコーダ18から符号化パラメータを生成する動
きベクトル検出回路50、フレームメモリ51、予測モ
ード切り替え回路52、予測判定回路54、およびDCT
モード切り替え回路55を削除し、履歴符号化装置10
7の出力するユーザデータを可変長符号化回路58で可
変長符号化するようにしたものである。エンコーダ12
1のその他の構成は、エンコーダ18と同様であるの
で、その説明は省略する。
【0104】次に、図18における履歴復号装置104
と履歴符号化装置107についてさらに説明する。同図
に示すように、履歴復号装置104は、復号装置102
より供給されるユーザデータをデコードするユーザデー
タデコーダ201、ユーザデータデコーダ201の出力
を変換するコンバータ202、およびコンバータ202
の出力から履歴情報を再生するヒストリデコーダ203
により構成されている。
【0105】また、履歴符号化装置107は、符号化パ
ラメータ分離装置105より供給される3世代分の符号
化パラメータをフォーマット化するヒストリフォーマッ
タ211、ヒストリフォーマッタ211の出力を変換す
るコンバータ212、コンバータ212の出力をユーザ
データのフォーマットにフォーマットするユーザデータ
フォーマッタ213により構成されている。
【0106】ユーザデータデコーダ201は、復号装置
102より供給されるユーザデータをデコードして、コ
ンバータ202に出力する。詳細は図54を参照して後
述するが、ユーザデータ(user_data())は、user_data
_start_codeとuser_dataからなり、MPEG規格においては
user_dataの中に、連続する23ビットの”0”(start
_codeと同一のコード)を発生させることを禁止してい
る。これは、そのデータが、start_codeとして誤検出さ
れるのを防止するためである。履歴情報(history_stre
am())は、ユーザデータエリアに(MPEG規格のuser_dat
aの一種として)記述され、その中には、このような連
続する23ビット以上の”0”が存在することがあり得
るので、これを、連続する23ビット以上の”0”が発
生しないように処理して、converted_history_stream()
(後述する図41)に変換する必要がある。この変換を
行うのは、履歴符号化装置107のコンバータ212で
ある。履歴復号装置104のコンバータ202は、この
コンバータ212と逆の変換処理を行う(連続する23
ビット以上の”0”を発生させないために挿入された”
1”を除去する)ものである。
【0107】ヒストリデコーダ203は、コンバータ2
02の出力から履歴情報を生成し、符号化パラメータ多
重装置103に出力する。
【0108】一方、履歴符号化装置107においては、
ヒストリフォーマッタ211が符号化パラメータ分離装
置105より供給される3世代分の符号化パラメータを
履歴情報のフォーマットに変換する。このフォーマット
には、固定長のもの(後述する図43乃至図49)と、
可変長のもの(後述する図50)とがある。これらの詳
細については後述する。
【0109】ヒストリフォーマッタ211により、フォ
ーマット化された履歴情報は、コンバータ212におい
て、converted_history_stream()に変換される。これ
は、上述したように、user_data()のstart_codeが誤検
出されないようにするためのものである。すなわち、履
歴情報内には連続する23ビット以上の”0”が存在す
るが、user_data中には連続する23ビット以上の”
0”を配置することができないので、この禁止項目に触
れないようにコンバータ212によりデータを変換する
のである。
【0110】ユーザデータフォーマッタ213は、コン
バータ212より供給されるconverted_history_stream
()に、後述する図41に基づいて、History_Data_IDを
付加し、さらに、user_data_stream_codeを付加して、v
ideo stream中に挿入できるMPEG規格のuser_dataを生成
し、符号化装置106に出力する。
【0111】図23は、ヒストリフォーマッタ211の
構成例を表している。その符号語変換器301と符号長
変換器305には、符号化パラメータ(今回、履歴情報
として伝送する符号化パラメータ)(項目データ)と、
この符号化パラメータを配置するストリームを特定する
情報(例えば、シンタックスの名称(例えば、後述する
sequence_headerの名称))(項目NO.)が、符号化パラ
メータ分離装置105から供給されている。符号語変換
器301は、入力された符号化パラメータを、指示され
たシンタックスに対応する符号語に変換し、バレルシフ
タ302に出力する。バレルシフタ302は、符号語変
換器301より入力された符号語を、アドレス発生回路
306より供給されるシフト量に対応する分だけシフト
し、バイト単位の符号語として、スイッチ303に出力
する。アドレス発生回路306が出力するビットセレク
ト信号により切り換えられるスイッチ303は、ビット
分設けられており、バレルシフタ302より供給される
符号語を、RAM304に供給し、記憶させる。このとき
の書き込みアドレスは、アドレス発生回路306から指
定される。また、アドレス発生回路306から読み出し
アドレスが指定されたとき、RAM304に記憶されてい
るデータ(符号語)が読み出され、後段のコンバータ2
12に供給されるとともに、必要に応じて、スイッチ3
03を介してRAM304に再び供給され、記憶される。
【0112】符号長変換器305は、入力されるシンタ
ックスと符号化パラメータとから、その符号化パラメー
タの符号長を決定し、アドレス発生回路306に出力す
る。アドレス発生回路306は、入力された符号長に対
応して、上述したシフト量、ビットセレクト信号、書き
込みアドレス、または読み出しアドレスを生成し、それ
らを、それぞれバレルシフタ302、スイッチ303、
またはRAM304に供給する。
【0113】以上のように、ヒストリフォーマッタ21
1は、いわゆる可変長符号化器として構成され、入力さ
れた符号化パラメータを可変長符号化して出力する。
【0114】図24は、以上のようにしてヒストリフォ
ーマット化されたデータをデコードするヒストリデコー
ダ203の構成例を表している。このヒストリデコーダ
203には、コンバータ202から供給された符号化パ
ラメータのデータがRAM311に供給されて、記憶され
る。このときの書き込みアドレスは、アドレス発生回路
315から供給される。アドレス発生回路315はま
た、所定のタイミングで読み出しアドレスを発生し、RA
M311に供給する。このとき、RAM311は、読み出し
アドレスに記憶されているデータを読み出し、バレルシ
フタ312に出力する。バレルシフタ312は、アドレ
ス発生回路315が出力するシフト量に対応する分だ
け、入力されるデータをシフトし、逆符号長変換器31
3と逆符号語変換器314に出力する。
【0115】逆符号長変換器313にはまた、コンバー
タ202から、符号化パラメータが配置されているスト
リームのシンタックスの名称(項目NO.)が供給されて
いる。逆符号長変換器313は、そのシンタックスに基
づいて、入力されたデータ(符号語)から符号長を求
め、求めた符号長をアドレス発生回路315に出力す
る。
【0116】また、逆符号語変換器314は、バレルシ
フタ312より供給されたデータを、シンタックスに基
づいて復号し(逆符号語化し)、符号化パラメータ多重
装置103に出力する。
【0117】また、逆符号語変換器314は、どのよう
な符号語が含まれているのかを特定するのに必要な情報
(符号語の区切りを決定するのに必要な情報)を抽出
し、アドレス発生回路315に出力する。アドレス発生
回路315は、この情報と逆符号長変換器313より入
力された符号長に基づいて、書き込みアドレスおよび読
み出しアドレスを発生し、RAM311に出力するととも
に、シフト量を発生し、バレルシフタ312に出力す
る。
【0118】図25は、コンバータ212の構成例を表
している。この例においては、ヒストリフォーマッタ2
11とコンバータ212の間に配置されているバッファ
メモリ320の、コントローラ326が出力する読み出
しアドレスから8ビットのデータが読み出され、D型フ
リップフロップ(D−FF)321に供給され、保持さ
れるようになされている。そして、D型フリップフロッ
プ321より読み出されたデータは、スタッフ回路32
3に供給されるとともに、8ビットのD型フリップフロ
ップ322にも供給され、保持される。D型フリップフ
ロップ322より読み出された8ビットのデータは、D
型フリップフロップ321より読み出された8ビットの
データと合成され、16ビットのパラレルデータとし
て、スタッフ回路323に供給される。
【0119】スタッフ回路323は、コントローラ32
6より供給されるスタッフ位置を示す信号(stuff posi
tion)の位置に符号”1”を挿入し(スタッフィング
し)、合計17ビットのデータとして、バレルシフタ3
24に出力する。
【0120】バレルシフタ324は、コントローラ32
6より供給されるシフト量を示す信号(shift)に基づ
いて入力されたデータをシフトして、8ビットのデータ
を抽出し、8ビットのD型フリップフロップ325に出
力する。D型フリップフロップ325に保持されたデー
タは、そこから読み出され、バッファメモリ327を介
して、後段のユーザデータフォーマッタ213に供給さ
れる。この時、コントローラ326は、出力するデータ
とともに、書き込みアドレスを発生し、コンバータ21
2とユーザデータフォーマッタ213との間に介在する
バッファメモリ327に供給する。
【0121】図26は、スタッフ回路323の構成例を
表している。D型フリップフロップ322,321より
入力された16ビットのデータは、それぞれスイッチ3
31−16乃至331−1の接点aに入力されている。
スイッチ331−i(i=0乃至15)の接点cには、
MSB側(図中上方)に隣接するスイッチのデータが供給
されている。例えば、スイッチ331−12の接点cに
は、MSB側に隣接するスイッチ331−13の接点aに
供給されているLSBから13番目のデータが供給されて
おり、スイッチ331−13の接点cには、MSB側に隣
接するスイッチ331−14の接点aに供給されている
LSB側から14番目のデータが供給されている。
【0122】但し、LSBに対応するスイッチ331−1
よりさらに下側のスイッチ331−0の接点aは、開放
されている。また、MSBに対応するスイッチ331−1
6の接点cは、それより上位のスイッチが存在しないた
め、開放されている。
【0123】各スイッチ331−0乃至331−16の
接点bには、データ”1”が供給されている。
【0124】デコーダ332は、コントローラ326よ
り供給されるデータ”1”を挿入する位置を示す信号st
uff positionに対応して、スイッチ331−0乃至33
1−16のうち、1つのスイッチを接点b側に切り替
え、それよりLSB側のスイッチは、接点c側にそれぞれ
切り替えさせ、それよりMSB側のスイッチは、接点a側
に切り替えさせる。
【0125】図26は、LSB側から13番目にデータ”
1”を挿入する場合の例を示している。従って、この場
合、スイッチ331−0乃至スイッチ331−12は、
いずれも接点c側に切り替えられ、スイッチ331−1
3は、接点b側に切り替えられ、スイッチ331−14
乃至スイッチ331−16は、接点a側に切り替えられ
ている。
【0126】図25のコンバータ212は、以上のよう
な構成により、22ビットの符号を23ビットに変換し
て、出力することになる。
【0127】図27は、図25のコンバータ212の各
部の出力データのタイミングを表している。コンバータ
212のコントローラ326がバイト単位のクロックに
同期して、読み出しアドレス(図27(A))を発生す
ると、バッファメモリ320から、それに対応するデー
タが、バイト単位で読み出され、D型フリップフロップ
321に一旦保持される。そして、D型フリップフロッ
プ321より読み出されたデータ(図27(B))は、
スタッフ回路323に供給されるとともに、D型フリッ
プフロップ322に供給され、保持される。D型フリッ
プフロップ322に保持されたデータは、そこからさら
に読み出され(図27(C))、スタッフ回路323に
供給される。
【0128】従って、スタッフ回路323の入力(図2
7(D))は、読み出しアドレスA1のタイミングにお
いて、最初の1バイトのデータD0とされ、次の読み出
しアドレスA2のタイミングにおいて、1バイトのデー
タD0と1バイトのデータD1より構成される2バイト
のデータとなり、さらに読み出しアドレスA3のタイミ
ングにおいては、データD1とデータD2より構成され
る2バイトのデータとなる。
【0129】スタッフ回路323には、データ”1”を
挿入する位置を示す信号stuff position(図27
(E))がコントローラ326より供給される。スタッ
フ回路323のデコーダ332は、スイッチ331−1
6乃至331−0のうち、この信号stuff positionに対
応するスイッチを接点bに切り換え、それよりLSB側の
スイッチを接点c側に切り換え、さらにそれよりMSB側
のスイッチを接点a側に切り換える。これにより、デー
タ”1”が挿入されるので、スタッフ回路323から
は、信号stuff positionで示す位置に、データ”1”が
挿入されたデータ(図27(F))が出力される。
【0130】バレルシフタ324は、入力されたデータ
を、コントローラ326より供給される信号shift(図
27(G))で示される量だけバレルシフトして、出力
する(図27(H)) 。この出力がさらにD型フリッ
プフロップ325で一旦保持された後、後段に出力され
る(図27(I))。
【0131】D型フリップフロップ325より出力され
るデータには、22ビットのデータの次に、データ”
1”が挿入されている。従って、データ”1”と、次の
データ”1”の間には、その間のビットが全て0であっ
たとしても、0のデータの連続する数は22となる。
【0132】図28は、コンバータ202の構成例を表
している。このコンバータ202のD型フリップフロッ
プ341乃至コントローラ346よりなる構成は、図2
5に示したコンバータ212のD型フリップフロップ3
21乃至コントローラ326と基本的に同様の構成であ
るが、コンバータ212におけるスタッフ回路323に
代えて、ディリート回路343が挿入されている点がコ
ンバータ212における場合と異なっている。その他の
構成は、図25のコンバータ212における場合と同様
である。
【0133】すなわち、このコンバータ202において
は、コントローラ346が出力する削除するビットの位
置を示す信号delete positionに従って、ディリート回
路343が、そのビット(図25のスタッフ回路323
で挿入されたデータ”1”)が削除される。
【0134】その他の動作は、図25のコンバータ21
2における場合と同様である。
【0135】図29は、ディリート回路343の構成例
を表している。この構成例においては、D型フリップフ
ロップ342,341より入力された16ビットのデー
タのうち、LSB側の15ビットが、それぞれ対応するス
イッチ351−0乃至351−14の接点aに供給され
ている。各スイッチの接点bには、1ビットだけMSB側
のデータが供給されている。デコーダ352は、コント
ローラ346より供給される信号delete positionによ
り指定されるビットを削除して、15ビットのデータと
して出力するようになされている。
【0136】図29は、LSBから第13番目のビットが
ディリートされる状態を示している。従って、この場
合、スイッチ351−0乃至スイッチ351−11が接
点a側に切り替えられ、LSBから第12番目までの12
ビットが、そのまま選択、出力されている。また、スイ
ッチ351−12乃至351−14は、それぞれ接点b
側に切り替えられているので、第14番目乃至第16番
目のデータが、第13番目乃至第15番目のビットのデ
ータとして選択、出力される。
【0137】図26のスタッフ回路323および図29
のディリート回路343の入力が16ビットとなってい
るのは、それぞれ図25のコンバータ212のスタッフ
回路323の入力が、D型フリップフロップ322,3
21より供給される16ビットとされており、また、図
28のコンバータ202においても、ディリート回路3
43の入力が、D型フリップフロップ342,341に
より16ビットとされているためである。図25におい
て、スタッフ回路323の出力する17ビットをバレル
シフタ324でバレルシフトすることにより、例えば8
ビットを最終的に選択、出力しているのと同様に、図2
8のコンバータ202においても、ディリート回路34
3の出力する15ビットのデータを、バレルシフタ34
4で所定量だけバレルシフトすることにより、8ビット
のデータとしている。
【0138】図30は、コンバータ212の他の構成例
を表している。この構成例においては、カウンタ361
が入力データのうち、連続する0のビットの数をカウン
トし、そのカウント結果をコントローラ326に出力す
るようになされている。コントローラ326は、例えば
カウンタ361が連続する0のビットを22個カウント
したとき、信号stuff positionをスタッフ回路323に
出力する。また、このとき、コントローラ326は、カ
ウンタ361をリセットし、再び連続する0のビットの
数をカウンタ361にカウントさせる。
【0139】その他の構成と動作は、図25における場
合と同様である。
【0140】図31は、コンバータ202の他の構成例
を表している。この構成例においては、入力データのう
ち、連続する0の数をカウンタ371がカウントし、そ
のカウント結果をコントローラ346に出力するように
なされている。カウンタ371のカウント値が22に達
したとき、コントローラ346は、信号delete positio
nをディリート回路343に出力するとともに、カウン
タ371をリセットし、再び新たな連続する0のビット
の数をカウンタ371にカウントさせる。その他の構成
は、図28における場合と同様である。
【0141】このように、この構成例においては、所定
のパターン(データ”0”の連続する数)に基づいて、
マーカービットとしてのデータ”1”が挿入され、ま
た、削除されることになる。
【0142】図30と図31に示す構成は、図25と図
28に示す構成よりも効率的な処理が可能となる。但
し、変換後の長さが元の履歴情報に依存することにな
る。
【0143】図32は、ユーザデータフォーマッタ21
3の構成例を表している。この例においては、コントロ
ーラ383がコンバータ212とユーザデータフォーマ
ッタ213との間に配置されているバッファメモリ(図
示せず)に読み出しアドレスを出力すると、そこから読
み出されたデータが、ユーザデータフォーマッタ213
のスイッチ382の接点a側に供給される。ROM381
には、ユーザデータスタートコード、データIDなどの
user_data()を生成するのに必要なデータが記憶されて
いる。コントローラ313は、所定のタイミングにおい
て、スイッチ382を接点a側または接点b側に切り替
え、ROM381に記憶されているデータ、またはコンバ
ータ212より供給されるデータを適宜選択し、出力す
る。これにより、user_data()のフォーマットのデータ
が符号化装置106に出力される。
【0144】なお、図示は省略するが、ユーザデータデ
コーダ201は、図32のROM381より読み出され、
挿入されたデータを削除するスイッチを介して、入力デ
ータを出力するようにすることで実現することができ
る。
【0145】図33は、例えば映像編集スタジオにおい
て、複数のトランスコーダ101−1乃至101−Nが
直列に接続されて使用される状態を示している。各トラ
ンスコーダ101−i(i=1乃至N)の符号化パラメ
ータ多重装置103−iは、上述した符号化パラメータ
用の領域の最も古い符号化パラメータが記録されている
区画に、自己が用いた最新の符号化パラメータを上書き
する。このことにより、ベースバンドの画像データに
は、同一のマクロブロックに対応する直近の4世代分の
符号化パラメータ(世代履歴情報)が記録されることに
なる。
【0146】各符号化装置106−iのエンコーダ12
1−i(図22)は、その可変長符号化回路58におい
て、符号化パラメータ分離装置105−iから供給され
る今回用いる符号化パラメータに基づいて、量子化回路
57より供給されるビデオデータを符号化する。このよ
うにして生成されるビットストリーム(例えば、pictur
e_header())中に、その現符号化パラメータは多重化さ
れる。
【0147】可変長符号化回路58はまた、履歴符号化
装置107−iより供給されるユーザデータ(世代履歴
情報を含む)を、出力するビットストリーム中に多重化
する(図21に示すような埋め込み処理ではなく、ビッ
トストリーム中に多重化される)。そして、符号化装置
106−iの出力するビットストリームは、SDTI108
−iを介して、後段のトランスコーダ101−(i+
1)に入力される。
【0148】トランスコーダ101−iとトランスコー
ダ101−(i+1)は、それぞれ図18に示すように
構成されている。従って、その処理は、図18を参照し
て説明した場合と同様となる。
【0149】実際の符号化パラメータの履歴を利用した
符号化として、現在Iピクチャとして符号化されていた
ものを、PもしくはBピクチャに変更したい場合、過去
の符号化パラメータの履歴を見て、過去にPもしくはB
ピクチャであった場合を探し、これらの履歴が存在した
場合は、その動きベクトルなどのパラメータを利用し
て、ピクチャタイプを変更する。反対に過去に履歴がな
い場合は、動き検出を行わないピクチャタイプの変更を
断念する。もちろん履歴がない場合であっても、動き検
出を行えばピクチャタイプを変更できる。
【0150】図21に示すフォーマットの場合、4世代
分の符号化パラメータを埋め込むようにしたが、I、
P、Bの各ピクチャタイプのパラメータを埋め込むよう
にすることもできる。図34は、この場合のフォーマッ
トの例を示している。この例では、同一のマクロブロッ
クが、過去にピクチャタイプの変更を伴って符号化され
たときにおける、ピクチャタイプ毎に1世代分の符号化
パラメータ(ピクチャ履歴情報)が記録される。したが
って、図19に示したデコーダ111、および図22に
示したエンコーダ121は、現在(最新)、1世代前、
2世代前、および3世代前の符号化パラメータの代わり
に、Iピクチャ、Pピクチャ、およびBピクチャに対応
する1世代分の符号化パラメータを入出力することにな
る。
【0151】また、この例の場合、Cb[1][x]とCr[1][x]
の領域は利用しないので、Cb[1][x]とCr[1][x]の領域を
有さない4:2:0フォーマットの画像データにも本発
明を適用することができる。
【0152】この例の場合、復号装置102は、符号化
パラメータを復号と同時に取り出し、ピクチャタイプを
判定して、画像信号のピクチャタイプに対応した場所に
符号化パラメータを書き込んで(多重化して)符号化パ
ラメータ分離装置105に出力する。符号化パラメータ
分離装置105は、符号化パラメータを分離し、これか
ら符号化したいピクチャタイプと、入力された過去の符
号化パラメータを考慮して、ピクチャタイプを変更しな
がら再符号化を行うことができる。
【0153】次に、各トランスコーダ101において、
変更が可能なピクチャタイプを判定する処理について、
図35のフローチャートを参照して説明する。なお、こ
の処理はトランスコーダ101におけるピクチャタイプ
の変更は、過去の動きベクトルを利用するので、動き検
出を行わないで実行されることを前提としている。ま
た、以下に説明する処理は、符号化パラメータ分離装置
105により実行される。
【0154】ステップS1において、ピクチャタイプ毎
に1世代分の符号化パラメータ(ピクチャ履歴情報)が
符号化パラメータコントローラ122に入力される。
【0155】ステップS2において、符号化パラメータ
分離装置105は、ピクチャ履歴情報にBピクチャに変
更したときの符号化パラメータが存在するか否かを判定
する。ピクチャ履歴情報にBピクチャに変更したときの
符号化パラメータが存在すると判定された場合、ステッ
プS3に進む。
【0156】ステップS3において、符号化パラメータ
分離装置105は、ピクチャ履歴情報にPピクチャに変
更したときの符号化パラメータが存在するか否かを判定
する。ピクチャ履歴情報にPピクチャに変更したときの
符号化パラメータが存在すると判定された場合、ステッ
プS4に進む。
【0157】ステップS4において、符号化パラメータ
分離装置105は、変更可能なピクチャタイプがIピク
チャ、Pピクチャ、およびBピクチャであると判断す
る。
【0158】ステップS3において、ピクチャ履歴情報
にPピクチャに変更したときの符号化パラメータが存在
しないと判定された場合、ステップS5に進む。
【0159】ステップS5において、符号化パラメータ
分離装置105は、変更可能なピクチャタイプがIピク
チャ、およびBピクチャであると判断する。さらに、符
号化パラメータ分離装置105は、特殊処理(Bピクチ
ャの履歴情報に含まれる後方予測ベクトルを使わず、前
方予測ベクトルだけを使う)を施すことにより、擬似的
にPピクチャに変更可能であると判断する。
【0160】ステップS2において、ピクチャ履歴情報
にBピクチャに変更したときの符号化パラメータが存在
しないと判定された場合、ステップS6に進む。
【0161】ステップS6において、符号化パラメータ
分離装置105は、ピクチャ履歴情報にPピクチャに変
更したときの符号化パラメータが存在するか否かを判定
する。ピクチャ履歴情報にPピクチャに変更したときの
符号化パラメータが存在すると判定された場合、ステッ
プS7に進む。
【0162】ステップS7において、符号化パラメータ
分離装置105は、変更可能なピクチャタイプがIピク
チャ、およびPピクチャであると判断する。さらに、符
号化パラメータ分離装置105は、特殊処理(Pピクチ
ャに履歴情報に含まれる前方予測ベクトルだけを使う)
を施すことにより、Bピクチャに変更可能であると判断
する。
【0163】ステップS6において、ピクチャ履歴情報
にPピクチャに変更したときの符号化パラメータが存在
しないと判定された場合、ステップS8に進む。ステッ
プS8において、符号化パラメータ分離装置105は、
動きベクトルが存在しないので、変更可能なピクチャタ
イプがIピクチャだけである(IピクチャなのでIピク
チャ以外には変更できない)と判断する。
【0164】ステップS4,S5,S7,S8の処理の
次にステップS9において、符号化パラメータ分離装置
105は、変更可能なピクチャタイプを表示装置(図示
せず)に表示してユーザに通知する。
【0165】図36は、ピクチャタイプ変更の例を示し
ている。ピクチャタイプを変更する場合、GOPを構成す
るフレーム数が変更される。すなわち、この例の場合、
N=15(GOPのフレーム数N=15)、M=3(GOP内のI、また
はPピクチャの出現周期M=3)のフレームから構成される
Long GOP(第1世代)から、N=1,M=1のフレームで構成
されるShort GOP(第2世代)に変換され、再度、N=1
5,M=3のフレームから構成されるLong GOP(第3世代)
に変換されている。なお、図中において破線は、GOPの
境界を示している。
【0166】第1世代から第2世代にピクチャタイプが
変更される場合において、上述した変更可能ピクチャタ
イプ判定処理の説明から明らかなように、全てのフレー
ムは、ピクチャタイプをIピクチャに変更することが可
能である。このピクチャタイプ変更のとき、動画像(第
0世代)が第1世代に変換されたときに演算された全て
の動きベクトルは、ピクチャ履歴情報に保存された(残
された)状態となる。次に、再度Long GOPに変換される
(第2世代から第3世代にピクチャタイプが変更され
る)場合、第0世代から第1世代に変換されたときのピ
クチャタイプ毎の動きベクトルが保存されているので、
これを再利用することにより、画質劣化を抑えて、再
度、Long GOPに変換することが可能となる。
【0167】図37は、ピクチャタイプ変更の他の例を
示している。この例の場合、N=14,M=2であるLong GOP
(第1世代)から、N=2,M=2であるShort GOP(第2世
代)に変換され、さらに、N=1,M=1であるフレーム数
が1のShort GOP(第3世代)に変換されて、フレーム
数NがランダムなGOP(第4世代)に変換される。
【0168】この例においても、第0世代から第1世代
に変換されたときのピクチャタイプ毎の動きベクトル
が、第3世代から第4世代への変換のときまで保存され
る。そこで、図37に示すように、複雑にピクチャタイ
プを変更しても、保存されている符号化パラメータを再
利用されることにより、画質劣化を小さく抑えることが
できる。さらに、保存されている符号化パラメータの量
子化スケールを有効に利用すれば画質劣化の少ない符号
化を実現できる。
【0169】この量子化スケールの再利用について、図
38を参照して説明する。図38は、所定のフレーム
が、第1世代から第4世代まで常に、Iピクチャに変換
されており、ビットレートだけが、4Mbps,18Mbps、
または50Mbpsに変更されていることを示している。
【0170】例えば、第1世代(4Mbps)から第2世代
(18Mbps)への変換の際に、ビットレートの高速化に伴
って、細かい量子化スケールで再符号化しても画質は向
上しない。なぜならば、過去において粗い量子化ステッ
プで量子化されたデータは、復元しないからである。し
たがって、図38に示すように、途中でビットレートが
高速化しても、それに伴って細かい量子化ステップで量
子化することは、情報量が増加するだけであって画質の
向上には繋がらない。したがって、過去のもっとも粗い
(大きい)量子化スケールを維持するように制御すれ
ば、最も無駄が無く、効率的な符号化が可能となる。
【0171】上述したように、ビットレートが変更され
るときは、過去の量子化スケールの履歴を利用して符号
化することは非常に有効である。
【0172】この量子化制御処理について、図39のフ
ローチャートを参照して説明する。ステップS11にお
いて、符号化パラメータ分離装置105は、入力された
ピクチャ履歴情報に、いまから変換するピクチャタイプ
の符号化パラメータが存在するか否かを判定する。変換
するピクチャタイプの符号化パラメータが存在すると判
定された場合、ステップS12に進む。
【0173】ステップS12において、符号化パラメー
タ分離装置105は、ピクチャ履歴情報の対照となる符
号化パラメータから量子化スケール(Q_history)を抽出
する。
【0174】ステップS13において、符号化パラメー
タ分離装置105は、送信バッファ59から量子化回路
57にフィードバックされる量子化スケールの候補値Q_
feedbackを読み取る。
【0175】ステップS14において、符号化パラメー
タ分離装置105は、Q_historyがQ_feedbackよりも大
きい(粗い)か否かを判定する。Q_historyがQ_feedbac
kよりも大きいと判定された場合、ステップS15に進
む。
【0176】ステップS15において、符号化パラメー
タ分離装置105は、量子化スケールとしてQ_history
を量子化回路57に出力する。量子化回路57は、Q_hi
storyを用いて量子化を実行する。
【0177】ステップS16において、フレームに含ま
れる全てのマクロブロックが量子化されたか否かが判定
される。全てのマクロブロックが量子化されていないと
判定された場合、ステップS13に戻り、ステップS1
3乃至S16の処理が、全てのマクロブロックが量子化
されるまで繰り返される。
【0178】ステップS14において、Q_historyがQ_f
eedbackよりも大きくない(細かい)いと判定された場
合、ステップS17に進む。
【0179】ステップS17において、符号化パラメー
タ分離装置105は、量子化スケールとしてQ_feedback
を量子化回路57に出力する。量子化回路57は、Q_fe
edbackを用いて量子化を実行する。
【0180】ステップS11において、変換するピクチ
ャタイプの符号化パラメータが存在しないと判定された
場合、ステップS18に進む。
【0181】ステップS18において、量子化回路57
は、送信バッファ59からフィードバックされる量子化
スケールの候補値Q_feedbackを受け付ける。
【0182】ステップS19において、量子化回路57
は、Q_feedbackを用いて量子化を実行する。
【0183】ステップS20において、フレームに含ま
れる全てのマクロブロックが量子化されたか否かが判定
される。全てのマクロブロックが量子化されていないと
判定された場合、ステップS18に戻り、ステップS1
8乃至S20の処理が、全てのマクロブロックが量子化
されるまで繰り返される。
【0184】なお、本実施の形態におけるトランスコー
ダ101の内部においては、上述したように、復号側と
符号側が粗結合されており、符号化パラメータを画像デ
ータに多重化させて伝送させたが、図40に示すよう
に、復号装置102と符号化装置106を符号化パラメ
ータ伝送用の高速バス111で接続する(密結合する)
ようにしてもよい。
【0185】図41は、MPEGのビデオストリームをデコ
ードするためのシンタックスを表わした図である。デコ
ーダは、このシンタックスに従ってMPEGビットストリー
ムをデコードすることによって、ビットストリームから
意味のある複数のデータ項目(データエレメント)を抽
出する。以下に説明するシンタックスは、図において、
その関数や条件文は細活字で表わされ、そのデータエレ
メントは、太活字で表されている。データ項目は、その
名称、ビット長、及びそのタイプと伝送順序を示すニー
モニック(Mnemonic)で記述されている。
【0186】まず、この図41に示されているシンタッ
クスにおいて使用されている関数について説明する。
【0187】next_start_code()関数は、ビットストリ
ーム中に記述されているスタートコードを探すための関
数である。この図41に示されたシンタックスにおい
て、このnext_start_code()関数の次に、sequence_head
er()関数とsequence_extension()関数とが順に配置され
ているので、このビットストリームには、このsequence
_header()関数とsequence_extension()関数によって定
義されたデータエレメントが記述されている。従って、
ビットストリームのデコード時には、このnext_start_c
ode()関数によって、sequence_header()関数とsequence
_extension()関数の先頭に記述されているスタートコー
ド(データエレメントの一種)をビットストリーム中か
ら見つけ、それを基準にして、 sequence_header()関数
とsequence_extension()関数をさらに見つけ、それらに
よって定義された各データエレメントをデコードする。
【0188】尚、sequence_header()関数は、MPEGビッ
トストリームのシーケンス層のヘッダデータを定義する
ための関数であって、sequence_extension()関数は、MP
EGビットストリームのシーケンス層の拡張データを定義
するための関数である。
【0189】sequence_extension()関数の次に配置され
ている do{ }while構文は、while文によって定義されて
いる条件が真である間、do文の{ }内の関数に基いて記
述されたデータエレメントをデータストリーム中から抽
出するための構文である。すなわち、 do{ }while構文
によって、while文によって定義されている条件が真で
ある間、ビットストリーム中から、do文内の関数に基い
て記述されたデータエレメントを抽出するデコード処理
が行われる。
【0190】このwhile文に使用されているnextbits()
関数は、ビットストリーム中に現れるビット又はビット
列と、次にデコードされるデータエレメントとを比較す
るための関数である。この図41のシンタックスの例で
は、nextbits()関数は、ビットストリーム中のビット列
とビデオシーケンスの終わりを示すsequence_end_code
とを比較し、ビットストリーム中のビット列とsequence
_end_codeとが一致しないときに、このwhile文の条件が
真となる。従って、sequence_extension()関数の次に配
置されている do{ }while構文は、ビットストリーム中
に、ビデオシーケンスの終わりを示すsequence_end_cod
eが現れない間、do文中の関数によって定義されたデー
タエレメントがビットストリーム中に記述されているこ
とを示している。
【0191】ビットストリーム中には、sequence_exten
sion()関数によって定義された各データエレメントの次
には、extension_and_user_data(0)関数によって定義さ
れたデータエレメントが記述されている。このextensio
n_and_user_data(0)関数は、MPEGビットストリームのシ
ーケンス層の拡張データとユーザデータを定義するため
の関数である。
【0192】このextension_and_user_data(0)関数の次
に配置されている do{ }while構文は、while文によって
定義されている条件が真である間、do文の{ }内の関数
に基いて記述されたデータエレメントを、ビットストリ
ーム中から抽出するための関数である。このwhile文に
おいて使用されているnextbits()関数は、ビットストリ
ーム中に現れるビット又はビット列と、picture_start_
code又はgroup_start_codeとの一致を判断するための関
数であって、ビットストリーム中に現れるビット又はビ
ット列と、picture_start_code又はgroup_start_codeと
が一致する場合には、while文によって定義された条件
が真となる。よって、このdo{ }while構文は、ビットス
トリーム中において、picture_start_code又はgroup_st
art_codeが現れた場合には、そのスタートコードの次
に、do文中の関数によって定義されたデータエレメント
のコードが記述されているので、このpicture_start_co
de又はgroup_start_codeによって示されるスタートコー
ドを探し出すことによって、ビットストリーム中からdo
文中に定義されたデータエレメントを抽出することがで
きる。
【0193】このdo文の最初に記述されているif文は、
ビットストリーム中にgroup_start_codeが現れた場合、
という条件を示しいる。このif文による条件が真である
場合には、ビットストリーム中には、このgroup_start_
codeの次にgroup_of_picture_header(1)関数及びextens
ion_and_user_data(1)関数によって定義されているデー
タエレメントが順に記述されている。
【0194】このgroup_of_picture_header(1)関数は、
MPEGビットストリームのGOP層のヘッダデータを定義す
るための関数であって、 extension_and_user_data(1)
関数は、MPEGビットストリームのGOP層の拡張データ(e
xtension_data)及びユーザデータ(user_data)を定義
するための関数である。
【0195】さらに、このビットストリーム中には、gr
oup_of_picture_header(1)関数及びextension_and_user
_data(1)関数によって定義されているデータエレメント
の次に、picture_header()関数とpicture_coding_exten
sion()関数によって定義されたデータエレメントが記述
されている。もちろん、先に説明したif文の条件が真と
ならない場合には、 group_of_picture_header(1)関数
及びextension_and_user_data(1)関数によって定義され
ているデータエレメントは記述されていないので、 ext
ension_and_user_data(0)関数によって定義されている
データエレメントの次に、 picture_header()関数とpic
ture_coding_extension()関数によって定義されたデー
タエレメントが記述されている。
【0196】このpicture_header()関数は、 MPEGビッ
トストリームのピクチャ層のヘッダデータを定義するた
めの関数であって、 picture_coding_extension()関数
は、MPEGビットストリームのピクチャ層の第1の拡張デ
ータを定義するための関数である。
【0197】次のwhile文は、このwhile文によって定義
されている条件が真である間、次のif文の条件判断を行
うための関数である。このwhile文において使用されて
いるnextbits()関数は、ビットストリーム中に現れるビ
ット列と、extension_start_code又はuser_data_start_
codeとの一致を判断するための関数であって、ビットス
トリーム中に現れるビット列と、 extension_start_cod
e又はuser_data_start_codeとが一致する場合には、こ
のwhile文によって定義された条件が真となる。
【0198】第1のif文は、ビットストリーム中に現れ
るビット列とextension_start_codeとの一致を判断する
ための関数である。ビットストリーム中に現れるビット
列と32ビットのextension_ start_codeとが一致する
場合には、ビットストリーム中において、extension_st
art_codeの次にextension_data(2)関数によって定義さ
れるデータエレメントが記述されている。
【0199】第2のif文は、ビットストリーム中に現れ
るビット列とuser_data_start_codeとの一致を判断する
ための構文であって、ビットストリーム中に現れるビッ
ト列と32ビットのuser_data_start_codeとが一致する
場合には、第3のif文の条件判断が行われる。このuser
_data_start_codeは、MPEGビットストリームのピクチャ
層のユーザデータエリアの開始を示すためのスタートコ
ードである。
【0200】第3のif文は、ビットストリーム中に現れ
るビット列とHistory_Data_IDとの一致を判断するため
の構文である。ビットストリーム中に現れるビット列と
この32ビットのHistory_Data_IDとが一致する場合に
は、このMPEGビットストリームのピクチャ層のユーザデ
ータエリアにおいて、この32ビットのHistory_Data_I
Dによって示されるコードの次に、converted_history_s
tream()関数によって定義されるデータエレメントが記
述されている。
【0201】converted_history_stream()関数は、MPEG
符号化時に使用したあらゆる符号化パラメータを伝送す
るための履歴情報及び履歴データを記述するための関数
である。このconverted_history_stream()関数によって
定義されているデータエレメントの詳細は、図43乃至
図50を参照して、history_stream()として後述する。
また、このHistory_Data_IDは、MPEGビットストリーム
のピクチャ層のユーザデータエリアに記述されたこの履
歴情報及び履歴データが記述されている先頭を示すため
のスタートコードである。
【0202】else文は、第3のif文において、条件が非
真であることを示すための構文である。従って、このMP
EGビットストリームのピクチャ層のユーザデータエリア
において、converted_history_stream()関数によって定
義されたデータエレメントが記述されていない場合に
は、user_data()関数によって定義されたデータエレメ
ントが記述されている。
【0203】図41において、履歴情報は、converted_
history_stream()に記述され、user_data()に記述され
る訳ではないが、このconverted_history_stream()は、
MPEG規格のuser_dataの一種として記述されるので、本
明細書中においては、場合によって、履歴情報がuser_d
ataに記述されるとも説明するが、それは、MPEG規格のu
ser_dataの一種として記述されるということを意味す
る。
【0204】picture_data()関数は、MPEGビットストリ
ームのピクチャ層のユーザデータの次に、スライス層及
びマクロブロック層に関するデータエレメントを記述す
るための関数である。通常は、このpicture_data()関数
によって示されるデータエレメントは、ビットストリー
ムのピクチャ層のユーザデータエリアに記述されたconv
erted_history_stream()関数によって定義されるデータ
エレメント又はuser_data()関数によって定義されたデ
ータエレメントの次に記述されているが、ピクチャ層の
データエレメントを示すビットストリーム中に、extens
ion_start_code又はuser_data_start_code が存在しな
い場合には、このpicture_data()関数によって示される
データエレメントは、 picture_coding_extension()関
数によって定義されるデータエレメントの次に記述され
ている。
【0205】このpicture_data()関数によって示される
データエレメントの次には、sequence_header()関数とs
equence_extension()関数とによって定義されたデータ
エレメントが順に配置されている。このsequence_heade
r()関数とsequence_extension()関数によって記述され
たデータエレメントは、ビデオストリームのシーケンス
の先頭に記述されたsequence_header()関数とsequence_
extension()関数によって記述されたデータエレメント
と全く同じである。このように同じデータをストリーム
中に記述する理由は、ビットストリーム受信装置側でデ
ータストリームの途中(例えばピクチャ層に対応するビ
ットストリーム部分)から受信が開始された場合に、シ
ーケンス層のデータを受信できなくなり、ストリームを
デコード出来なくなることを防止するためである。
【0206】この最後のsequence_header()関数とseque
nce_extension()関数とによって定義されたデータエレ
メントの次、つまり、データストリームの最後には、シ
ーケンスの終わりを示す32ビットのsequence_end_cod
eが記述されている。
【0207】以上のシンタックスの基本的な構成の概略
を示すと、図42に示すようになる。
【0208】次に、converted_history_stream()関数に
よって定義されたヒストリーストリームに関して説明す
る。
【0209】このconverted_history_stream()は、MPEG
のピクチャ層のユーザデータエリアに履歴情報を示すヒ
ストリーストリームを挿入するための関数である。尚、
「converted」の意味は、スタートエミュレーションを
防止するために、ユーザエリアに挿入すべき履歴データ
から構成される履歴ストリームの少なくとも22ビット
毎にマーカービット(1ビット)を挿入する変換処理を
行ったストリームであることを意味している。
【0210】このconverted_history_stream()は、以下
に説明する固定長の履歴ストリーム(図43乃至図4
9)又は可変長の履歴ストリーム(図50)のいずれか
の形式で記述される。エンコーダ側において固定長の履
歴ストリームを選択した場合には、デコーダ側において
履歴ストリームから各データエレメントをデコードする
ための回路及びソフトウエアが簡単になるというメリッ
トがある。一方、エンコーダ側において可変長の履歴ス
トリームを選択した場合には、エンコーダにおいてピク
チャ層のユーザエリアに記述される履歴情報(データエ
レメント)を必要に応じて任意に選択することができる
ので、履歴ストリームのデータ量を少なくすることがで
き、その結果、符号化されたビットストリーム全体のデ
ータレートを低減することができる。
【0211】本発明において説明する「履歴情報」、
「履歴データ」、「履歴パラメータ」とは、過去の符号
化処理において使用した符号化パラメータ(又はデータ
エレメント)を意味し、現在の(最終段の)符号化処理
において使用した符号化パラメータを意味するものでは
ない。例えば、第1世代の符号化処理において、あるピ
クチャをIピクチャで符号化して伝送し、次なる第2世
代の符号化処理において、このピクチャを今度はPピク
チャとして符号化して伝送し、さらに、第3世代の符号
化処理において、このピクチャをBピクチャで符号化し
て伝送する例をあげて説明する。第3世代の符号化処理
において使用した符号化パラメータが、第3世代の符号
化処理において生成された符号化ビットストリームのシ
ーケンス層、GOP層、ピクチャ層、スライス層及びマク
ロブロック層の所定位置に記述されている。一方、過去
の符号化処理である第1世代及び第2世代の符号化処理
において使用した符号化パラメータは、第3世代の符号
化処理において使用した符号化パラメータが記述される
シーケンス層やGOP層に記述されるのでは無く、既に説
明したシンタックスに従って、符号化パラメータの履歴
情報として、ピクチャ層のユーザデータエリアに記述さ
れる。
【0212】まず、固定長の履歴ストリームシンタック
スについて図43乃至図49を参照して説明する。
【0213】最終段(例えば第3世代)の符号化処理に
おいて生成されたビットストリームのピクチャ層のユー
ザデータエリアには、まず最初に、過去(例えば第1世
代及び第2世代)の符号化処理において使用されていた
シーケンス層のシーケンスヘッダに含められる符号化パ
ラメータが、履歴ストリームとして挿入される。尚、過
去の符号化処理において生成されたビットストリームの
シーケンス層のシーケンスヘッダ等の履歴情報は、最終
段の符号化処理において生成されたビットストリームの
シーケンス層のシーケンスヘッダに挿入されることは無
いという点に注意すべきである。
【0214】過去の符号化処理で使用したシーケンスヘ
ッダに含められるデータエレメントは、sequence_heade
r_code、sequence_header_present_flag、horizontal_s
ize_value、vertical_size_value、aspect_ratio_infor
mation、frame_rate_code、bit_rate_value、marker_bi
t、VBV_buffer_size_value、constrained_parameter_fl
ag、load_intra_quantizer_matrix、intra_quantizer_m
atrix、load_non_intra_quantizer_matrix、及びnon_in
tra_quantizer_matrix等から構成される。
【0215】sequence_header_codeは、シーケンス層の
スタート同期コードを表すデータである。sequence_hea
der_present_flagは、sequence_header内のデータが有
効か無効かを示すデータである。 horizontal_size_val
ueは、画像の水平方向の画素数の下位12ビットから成る
データである。vertical_size_valueは、画像の縦のラ
イン数の下位12ビットからなるデータである。aspect_r
atio_informationは、画素のアスペクト比(縦横比)ま
たは表示画面アスペクト比を表すデータである。frame_
rate_codeは、画像の表示周期を表すデータである。
【0216】bit_rate_valueは、発生ビット量に対する
制限のためのビット・レートの下位18ビット(400bsp単
位で切り上げる)データである。marker_bitは、スター
トコードエミュレーションを防止するために挿入される
ビットデータである。VBV_buffer_size_valueは、発生
符号量制御用の仮想バッファ(ビデオバッファベリファ
イヤー)の大きさを決める値の下位10ビットデータであ
る。constrained_parameter_flagは、各パラメータが制
限以内であることを示すデータである。load_intra_qua
ntizer_matrixは、イントラMB用量子化マトリックス・
データの存在を示すデータである。intra_quantizer_ma
trixは、イントラMB用量子化マトリックスの値を示す
データである。load_non_intra_quantizer_matrixは、
非イントラMB用量子化マトリックス・データの存在を
示すデータである。non_intra_quantizer_matrixは、非
イントラMB用量子化マトリックスの値を表すデータで
ある。
【0217】最終段の符号化処理において生成されたビ
ットストリームのピクチャ層のユーザデータエリアに
は、過去の符号化処理において使用されたシーケンス層
のシーケンスエクステンションを表わすデータエレメン
トが、履歴ストリームとして記述される。
【0218】この過去の符号化処理で使用したシーケン
スエクステンションを表わすデータエレメントは、 ext
ension_start_code、extension_start_code_identifie
r、sequence_extension_present_flag、profile_and_le
vel_indication、progressive_sequence、chroma_forma
t、horizontal_size_extension、vertical_size_extens
ion、bit_rate_extension、vbv_buffer_size_extensio
n、low_delay、frame_rate_extension_n 、及び frame_
rate_extension_d等のデータエレメントである。
【0219】extension_start_codeは、エクステンショ
ンデータのスタート同期コードを表すデータである。ex
tension_start_code_identifierは、どの拡張データが
送られるかを示すデータである。sequence_extension_p
resent_flagは、シーケンスエクステンション内のデー
タが有効であるか無効であるかを示すデータである。pr
ofile_and_level_indicationは、ビデオデータのプロフ
ァイルとレベルを指定するためのデータである。progre
ssive_sequenceは、ビデオデータが順次走査であること
を示すデータである。chroma_formatは、ビデオデータ
の色差フォーマットを指定するためのデータである。
【0220】horizontal_size_extensionは、シーケン
スヘッダのhorizntal_size_valueに加える上位2ビット
のデータである。vertical_size_extensionは、シーケ
ンスヘッダのvertical_size_valueに加える上位2ビッ
トのデータである。bit_rate_extensionは、シーケンス
ヘッダのbit_rate_valueに加える上位12ビットのデー
タである。vbv_buffer_size_extensionは、シーケンス
ヘッダのvbv_buffer_size_valueに加える上位8ビット
のデータである。low_delayは、Bピクチャを含まない
ことを示すデータである。frame_rate_extension_nは、
シーケンスヘッダのframe_rate_codeと組み合わせてフ
レームレートを得るためのデータである。frame_rate_e
xtension_dは、シーケンスヘッダのframe_rate_codeと
組み合わせてフレームレートを得るためのデータであ
る。
【0221】続いて、ビットストリームのピクチャ層の
ユーザエリアには、過去の符号化処理において使用され
たシーケンス層のシーケンスディスプレイエクステンシ
ョンを表わすデータエレメントが、履歴ストリームとし
て記述される。
【0222】このシーケンスディスプレイエクステンシ
ョンとして記述されているデータエレメントは、extens
ion_start_code、extension_start_code_identifier、s
equence_display_extension_present_flag、video_form
at、color_description、color_primaries、transfer_c
haracteristics、matrix_coeffients、display_horizon
tal_size、及びdisplay_vertical_sizeから構成され
る。
【0223】extension_start_codeは、エクステンショ
ンデータのスタート同期コードを表すデータである。ex
tension_start_code_identifierは、どの拡張データが
送られるかを示すコードである。sequence_display_ext
ension_present_flagは、シーケンスディスプレイエク
ステンション内のデータエレメントが有効か無効かを示
すデータである。video_formatは、原信号の映像フォー
マットを表すデータである。color_descriptionは、色
空間の詳細データがあることを示すデータである。colo
r_primariesは、原信号の色特性の詳細を示すデータで
ある。transfer_characteristicsは、光電変換がどのよ
うに行われたのかの詳細を示すデータである。matrix_c
oeffientsは、原信号が光の三原色からどのように変換
されたかの詳細を示すデータである。display_horizont
al_sizeは、意図するディスプレイの活性領域(水平サ
イズ)を表すデータである。display_vertical_size
は、意図するディスプレイの活性領域(垂直サイズ)を
表すデータである。
【0224】続いて、最終段の符号化処理において生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において生成されたマクロブロッ
クの位相情報を示すマクロブロックアサイメントデータ
(macroblock_assignment_in_user_data)が、履歴スト
リームとして記述される。
【0225】このマクロブロックの位相情報を示すmacr
oblock_assignment_in_user_dataは、macroblock_assig
nment_present_flag、v_phase、h_phase等のデータエレ
メントから構成される。
【0226】このmacroblock_assignment_present_flag
は、macroblock_assignment_in_user_data内のデータエ
レメントが有効か無効かを示すデータである。 v_phase
は、画像データからマクロブロックを切り出す際の垂直
方向の位相情報を示すデータである。 h_phaseは、画像
データからマクロブロックを切り出す際の水平方向の位
相情報を示すデータである。
【0227】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用されたGOP層のGOPヘ
ッダを表わすデータエレメントが、履歴ストリームとし
て記述されている。
【0228】このGOPヘッダを表わすデータエレメント
は、group_start_code、group_of_picture_header_pres
ent_flag、time_code、closed_gop、及びbroken_linkか
ら構成される。
【0229】group_start_codeは、GOP層の開始同期コ
ードを示すデータである。 group_of_picture_header_p
resent_flagは、 group_of_picture_header内のデータ
エレメントが有効であるか無効であるかを示すデータで
ある。 time_codeは、GOPの先頭ピクチャのシーケンス
の先頭からの時間を示すタイムコードである。closed_g
opは、GOP内の画像が他のGOPから独立再生可能なことを
示すフラグデータである。broken_linkは、編集などの
ためにGOP内の先頭のBピクチャが正確に再生できない
ことを示すフラグデータである。
【0230】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用されたピクチャ層の
ピクチャヘッダを表わすデータエレメントが、履歴スト
リームとして記述されている。
【0231】このピクチャヘッダに関するデータエレメ
ントは、picture_start_code、temporal_reference、pi
cture_coding_type、vbv_delay、full_pel_forward_vec
tor、forward_f_code、full_pel_backward_vector、及
び backward_f_codeから構成される。
【0232】具体的には、picture_start_codeは、ピク
チャ層の開始同期コードを表すデータである。temporal
_referenceは、ピクチャの表示順を示す番号でGOPの先
頭でリセットされるデータである。picture_coding_typ
eは、ピクチャタイプを示すデータである。vbv_delay
は、ランダムアクセス時の仮想バッファの初期状態を示
すデータである。full_pel_forward_vectorは、順方向
動きベクトルの精度が整数単位か半画素単位かを示すデ
ータである。forward_f_codeは、順方向動きベクトル探
索範囲を表すデータである。full_pel_backward_vector
は、逆方向動きベクトルの精度が整数単位か半画素単位
かを示すデータである。backward_f_codeは、逆方向動
きベクトル探索範囲を表すデータである。
【0233】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用されたピクチャ層の
ピクチャコーディングエクステンションが、履歴ストリ
ームとして記述されている。
【0234】このピクチャコーディングエクステンショ
ンに関するデータエレメントは、extension_start_cod
e、extension_start_code_identifier、f_code[0][0]、
f_code[0][1]、f_code[1][0]、f_code[1][1]、intra_dc
_precision、picture_structure、top_field_first、fr
ame_predictive_frame_dct、concealment_motion_vecto
rs、q_scale_type、intra_vlc_format、alternate_sca
n、repeat_firt_field、chroma_420_type、progressive
_frame、composite_display_flag、v_axis、field_sequ
ence、sub_carrier、burst_amplitude、及びsub_carrie
r_phaseから構成される。
【0235】extension_start_codeは、ピクチャ層のエ
クステンションデータのスタートを示す開始コードであ
る。extension_start_code_identifierは、どの拡張デ
ータが送られるかを示すコードである。 f_code[0][0]
は、フォワード方向の水平動きベクトル探索範囲を表す
データである。f_code[0][1]は、フォワード方向の垂直
動きベクトル探索範囲を表すデータである。f_code[1]
[0]は、バックワード方向の水平動きベクトル探索範囲
を表すデータである。f_code[1][1]は、バックワード方
向の垂直動きベクトル探索範囲を表すデータである。
【0236】intra_dc_precisionは、DC係数の精度を表
すデータである。picture_structureは、フレームスト
ラクチャかフィールドストラクチャかを示すデータであ
る。フィールドストラクチャの場合は、上位フィールド
か下位フィールドかもあわせて示すデータである。top_
field_firstは、フレームストラクチャの場合、最初の
フィールドが上位か下位かを示すデータである。frame_
predictive_frame_dctは、フレーム・ストラクチャの場
合、フレーム・モードDCTの予測がフレーム・モードだ
けであることを示すデータである。concealment_motion
_vectorsは、イントラマクロブロックに伝送エラーを隠
蔽するための動きベクトルがついていることを示すデー
タである。
【0237】q_scale_typeは、線形量子化スケールを利
用するか、非線形量子化スケールを利用するかを示すデ
ータである。intra_vlc_formatは、イントラマクロブロ
ックに、別の2次元VLCを使うかどうかを示すデータで
ある。alternate_scanは、ジグザグスキャンを使うか、
オルタネート・スキャンを使うかの選択を表すデータで
ある。repeat_firt_fieldは、2:3プルダウンの際に
使われるデータである。chroma_420_typeは、信号フォ
ーマットが4:2:0の場合、次のprogressive_frame
と同じ値、そうでない場合は0を表すデータである。pr
ogressive_frameは、このピクチャが、順次走査できて
いるかどうかを示すデータである。composite_display_
flagは、ソース信号がコンポジット信号であったかどう
かを示すデータである。
【0238】v_axisは、ソース信号が、PALの場合に使
われるデータである。field_sequenceは、ソース信号
が、PALの場合に使われるデータである。sub_carrier
は、ソース信号が、PALの場合に使われるデータであ
る。burst_amplitudeは、ソース信号が、PALの場合に使
われるデータである。sub_carrier_phaseは、ソース信
号が、PALの場合に使われるデータである。
【0239】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用された量子化マトリ
ックスエクステンションが、履歴ストリームとして記述
されている。
【0240】この量子化マトリックスエクステンション
に関するデータエレメントは、extension_start_code、
extension_start_code_identifier、quant_matrix_exte
nsion_present_flag、load_intra_quantizer_matrix、i
ntra_quantizer_matrix[64]、load_non_intra_quantize
r_matrix、non_intra_quantizer_matrix[64]、load_chr
oma_intra_quantizer_matrix、chroma_intra_quantizer
_matrix[64]、load_chroma_non_intra_quantizer_matri
x、及びchroma_non_intra_quantizer_matrix[64] から
構成される。
【0241】extension_start_codeは、この量子化マト
リックスエクステンションのスタートを示す開始コード
である。extension_start_code_identifierは、どの拡
張データが送られるかを示すコードである。 quant_mat
rix_extension_present_flagは、この量子化マトリック
スエクステンション内のデータエレメントが有効か無効
かを示すためのデータである。load_intra_quantizer_m
atrixは、イントラマクロブロック用の量子化マトリッ
クスデータの存在を示すデータである。intra_quantize
r_matrixは、イントラマクロブロック用の量子化マトリ
ックスの値を示すデータである。
【0242】load_non_intra_quantizer_matrixは、非
イントラマクロブロック用の量子化マトリックスデータ
の存在を示すデータである。non_intra_quantizer_matr
ixは、非イントラマクロブロック用の量子化マトリック
スの値を表すデータである。load_chroma_intra_quanti
zer_matrixは、色差イントラマクロブロック用の量子化
マトリックス・データの存在を示すデータである。chro
ma_intra_quantizer_matrixは、色差イントラマクロブ
ロック用の量子化マトリックスの値を示すデータであ
る。load_chroma_non_intra_quantizer_matrixは、色差
非イントラマクロブロック用の量子化マトリックス・デ
ータの存在を示すデータである。chroma_non_intra_qua
ntizer_matrixは、色差非イントラマクロブロック用の
量子化マトリックスの値を示すデータである。
【0243】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用されたコピーライト
エクステンションが、履歴ストリームとして記述されて
いる。
【0244】このコピーライトエクステンションに関す
るデータエレメントは、extension_start_code、extens
ion_start_code_itentifier、copyright_extension_pre
sent_flag、copyright_flag、copyright_identifier、o
riginal_or_copy、copyright_number_1、copyright_num
ber_2、及び copyright_number_3から構成される。
【0245】extension_start_codeは、コピーライトエ
クステンションのスタート示す開始コードである。exte
nsion_start_code_itentifierのどのエクステンション
データが送られるかを示すコードである。 copyright_e
xtension_present_flagは、このコピーライトエクステ
ンション内のデータエレメントが有効か無効かを示すた
めのデータである。copyright_flagは、次のコピーライ
トエクステンション又はシーケンスエンドまで、符号化
されたビデオデータに対してコピー権が与えられている
か否かを示す。
【0246】copyright_identifierは、ISO/IEC JTC/SC
29によって指定されたコピー権の登録機関を識別するた
めのデータである。original_or_copyは、ビットストリ
ーム中のデータが、オリジナルデータであるかコピーデ
ータであるかを示すデータである。copyright_number_1
は、コピーライトナンバーのビット44から63を表わ
すデータである。copyright_number_2は、コピーライト
ナンバーのビット22から43を表わすデータである。
copyright_number_3は、コピーライトナンバーのビット
0から21を表わすデータである。
【0247】続いて、最終段の符号化処理によって生成
されたビットストリームのピクチャ層のユーザエリアに
は、過去の符号化処理において使用されたピクチャディ
スプレイエクステンション( picture_display_extensi
on )が、履歴ストリームとして記述されている。
【0248】このピクチャディスプレイエクステンショ
ンを表わすデータエレメントは、extension_start_cod
e、extension_start_code_identifier、picture_displa
y_extension_present_flag、frame_center_horizontal_
offset_1、frame_center_vertical_offset_1、frame_ce
nter_horizontal_offset_2、frame_center_vertical_of
fset_2、frame_center_horizontal_offset_3、及びfram
e_center_vertical_offset_3から構成される。
【0249】extension_start_codeは、ピクチャディス
プレイエクステンションのスタートを示すための開始コ
ードである。extension_start_code_identifierは、ど
の拡張データが送られるかを示すコードである。pictur
e_display_extension_present_flagは、ピクチャディス
プレイエクステンション内のデータエレメントが有効か
無効かを示すデータである。frame_center_horizontal_
offsetは、表示エリアの水平方向のオフセットを示すデ
ータであって、3つのオフセット値まで定義することが
できる。frame_center_vertical_offsetは、表示エリア
を垂直方向のオフセットを示すデータであって、3つの
オフセット値まで定義することができる。
【0250】最終段の符号化処理において生成されたビ
ットストリームのピクチャ層のユーザエリアには、既に
説明したピクチャディスプレイエクステンションを表わ
す履歴情報の次に、過去の符号化処理において使用され
たユーザデータが、履歴ストリームとして記述されてい
る。
【0251】このユーザデータの次には、過去の符号化
処理において使用されたマクロブロック層に関する情報
が、履歴ストリームとして記述されている。
【0252】このマクロブロック層に関する情報は、ma
croblock_address_h、macroblock_address_v、slice_he
ader_present_flag、skipped_macroblock_flag等のマク
ロブロックの位置に関するデータエレメントと、macrob
lock_quant、macroblock_motion_forward、macroblock_
motion_backward、mocroblock_pattern、macroblock_in
tra、spatial_temporal_weight_code_flag、frame_moti
on_type、及びdct_type等のマクロブロックモードに関
するデータエレメントと、quantiser_scale_code等の量
子化ステップ制御に関するデータエレメントと、PMV[0]
[0][0]、PMV[0][0][1]、motion_vertical_field_select
[0][0]、PMV[0][1][0]、PMV[0][1][1]、motion_vertica
l_field_select[0][1]、PMV[1][0][0]、PMV[1][0][1]、
motion_vertical_field_select[1][0]、PMV[1][1][0]、
PMV[1][1][1]、motion_vertical_field_select[1][1]等
の動き補償に関するデータエレメントと、coded_block_
pattern等のマクロブロックパターンに関するデータエ
レメントと、num_mv_bits、num_coef_bits、及びnum_ot
her_bits等の発生符号量に関するデータエレメントから
構成されている。
【0253】以下にマクロブロック層に関するデータエ
レメントについて詳細に説明する。
【0254】macroblock_address_hは、現在のマクロブ
ロックの水平方向の絶対位置を定義するためのデータで
ある。macroblock_address_vは、現在のマクロブロック
の垂直方向の絶対位置を定義するためのデータである。
slice_header_present_flagは、このマクロブロックが
スライス層の先頭であり、スライスヘッダを伴なうか否
かを示すデータである。skipped_macroblock_flagは、
復号化処理においてこのマクロブロックをスキップする
か否かを示すデータでる。
【0255】macroblock_quantは、後述する図70乃至
図72に示されたマクロブロックタイプ( macroblock_
type )から導かれるデータであって、quantiser_scale
_codeがビットストリーム中に現れるか否かを示すデー
タである。macroblock_motion_forwardは、図70乃至
図72に示されたマクロブロックタイプから導かれるデ
ータであって、復号化処理で使用されるデータである。
macroblock_motion_backwardは、図70乃至図72に示
されたマクロブロックタイプから導かれるデータであっ
て、復号化処理で使用されるデータである。mocroblock
_patternは、図70乃至図72に示されたマクロブロッ
クタイプから導かれるデータであって、coded_block_pa
tternがビットストリーム中に現れるか否かを示すデー
タである。
【0256】macroblock_intraは、図70乃至図72に
示されたマクロブロックタイプから導かれるデータであ
って、復号化処理で使用されるデータである。spatial_
temporal_weight_code_flagは、図70乃至図72に示
されたマクロブロックタイプから導かれるデータであっ
て、時間スケーラビリティで下位レイヤ画像のアップサ
ンプリング方法を示すspatial_temporal_weight_code
は、ビットストリーム中に存在するか否かを示すデータ
である。
【0257】frame_motion_typeは、フレームのマクロ
ブロックの予測タイプを示す2ビットのコードである。
予測ベクトルが2個でフィールドベースの予測タイプで
あれば「00」であって、予測ベクトルが1個でフィー
ルドベースの予測タイプであれば「01」であって、予
測ベクトルが1個でフレームベースの予測タイプであれ
ば「10」であって、予測ベクトルが1個でディアルプ
ライムの予測タイプであれば「11」である。field_mo
tion_typeは、フィールドのマクロブロックの動き予測
を示す2ビットのコードである。予測ベクトルが1個で
フィールドベースの予測タイプであれば「01」であっ
て、予測ベクトルが2個で18×8マクロブロックベー
スの予測タイプであれば「10」であって、予測ベクト
ルが1個でディアルプライムの予測タイプであれば「1
1」である。dct_typeは、DCTがフレームDCTモードか、
フィールドDCTモードかを示すデータである。quantiser
_scale_codeはマクロブロックの量子化ステップサイズ
を示すデータである。
【0258】次に動きベクトルに関するデータエレメン
トについて説明する。動きベクトルは、復号時に必要な
動きベクトルを減少させるために、先に符号化されたベ
クトルに関し差分として符号化される。動きベクトルの
復号を行うために復号器は、4個の動きベクトル予測値
(それぞれ水平及び垂直成分を伴なう)を維持しなけれ
ばいけない。この予測動きベクトルをPMV[r][s][v]と表
わすことにしている。[r]は、マクロブロックにおける
動きベクトルが第1のベクトルであるのか、第2のベク
トルであるのかを示すフラグであって、マクロブロック
におけるベクトルが第1のベクトルである場合には
「0」となって、マクロブロックにおけるベクトルが第
2のベクトルである場合には「1」となる。[s]は、マ
クロブロックにおける動きベクトルの方向が、前方向で
あるのか後方向であるのかを示すフラグであって、前方
向動きベクトルの場合には「0」となって、後方向動き
ベクトルの場合には「1」となる。[v]は、マクロブロ
ックにおけるベクトルの成分が、水平方向であるのか垂
直方向であるのかを示すフラグであって、水平方向成分
の場合には「0」となって、垂直方向成分の場合には
「1」となる。
【0259】従って、PMV[0][0][0]は、第1のベクトル
の前方向の動きベクトルの水平方向成分のデータを表わ
し、PMV[0][0][1]は、第1のベクトルの前方向の動きベ
クトルの垂直方向成分のデータを表わし、PMV[0][1][0]
は、第1のベクトルの後方向の動きベクトルの水平方向
成分のデータを表わし、PMV[0][1][1]は、第1のベクト
ルの後方向の動きベクトルの垂直方向成分のデータを表
わし、 PMV[1][0][0]は、第2のベクトルの前方向の動
きベクトルの水平方向成分のデータを表わし、PMV[1]
[0][1]は、第2のベクトルの前方向の動きベクトルの垂
直方向成分のデータを表わし、 PMV[1][1][0]は、第2
のベクトルの後方向の動きベクトルの水平方向成分のデ
ータを表わし、PMV[1][1][1] は、第2のベクトルの後
方向の動きベクトルの垂直方向成分のデータを表わして
いる。
【0260】motion_vertical_field_select[r][s]は、
予測の形式にいずれの参照フィールドを使用するのかを
示すデータである。このmotion_vertical_field_select
[r][s]が「0」の場合には、トップ参照フィールドを使
用し、「1」の場合には、ボトム参照フィールドを使用
することを示している。
【0261】よって、motion_vertical_field_select
[0][0]は、第1のベクトルの前方向の動きベクトルを生
成する際の参照フィールドを示し、motion_vertical_fi
eld_select[0][1]は、第1のベクトルの後方向の動きベ
クトルを生成する際の参照フィールドを示し、motion_v
ertical_field_select[1][0]は、第2のベクトルの前方
向の動きベクトルを生成する際の参照フィールドを示
し、motion_vertical_field_select[1][1]は、第2ベク
トルの後方向の動きベクトルを生成する際の参照フィー
ルドを示している。
【0262】coded_block_patternは、DCT係数を格納す
る複数のDCTブロックのうち、どのDCTブロックに、有意
係数(非0係数)があるかを示す可変長のデータであ
る。num_mv_bitsは、マクロブロック中の動きベクトル
の符号量を示すデータである。num_coef_bitsは、マク
ロブロック中のDCT係数の符号量を示すデータである。n
um_other_bitsは、マクロブロックの符号量で、動きベ
クトル及びDCT係数以外の符号量を示すデータである。
【0263】次に、可変長の履歴ストリームから各デー
タエレメントをデコードするためのシンタックスについ
て、図50乃至図69を参照して説明する。
【0264】この可変長の履歴ストリームは、next_sta
rt_code()関数、sequence_header()関数、sequence_ext
ension()関数、extension_and_user_data(0)関数、grou
p_of_picture_header()関数、extension_and_user_data
(1)関数、picture_header()関数、picture_coding_exte
nsion()関数、re_coding_stream_info()関数、extensio
n_and_user_data(2)関数、及びpicture_data()関数によ
って定義されたデータエレメントによって構成される。
【0265】next_start_code()関数は、ビットストリ
ーム中に存在するスタートコードを探すための関数であ
るので、履歴ストリームの最も先頭には、図51に示す
ような、過去の符号化処理において使用されたデータエ
レメントであってsequence_header()関数によって定義
されたデータエレメントが記述されている。
【0266】sequence_header()関数によって定義され
たデータエレメントは、sequence_header_code、sequen
ce_header_present_flag、horizontal_size_value、ver
tical_size_value、aspect_ratio_information、frame_
rate_code、bit_rate_value、marker_bit、VBV_buffer_
size_value、constrained_parameter_flag、load_intra
_quantizer_matrix、intra_quantizer_matrix、load_no
n_intra_quantizer_matrix、及びnon_intra_quantizer_
matrix等である。
【0267】sequence_header_codeは、シーケンス層の
スタート同期コードを表すデータである。sequence_hea
der_present_flagは、sequence_header内のデータが有
効か無効かを示すデータである。 horizontal_size_val
ueは、画像の水平方向の画素数の下位12ビットから成る
データである。vertical_size_valueは、画像の縦のラ
イン数の下位12ビットからなるデータである。aspect_r
atio_informationは、画素のアスペクト比(縦横比)ま
たは表示画面アスペクト比を表すデータである。frame_
rate_codeは、画像の表示周期を表すデータである。bit
_rate_valueは、発生ビット量に対する制限のためのビ
ット・レートの下位18ビット(400bsp単位で切り上げる)
データである。
【0268】marker_bitは、スタートコードエミュレー
ションを防止するために挿入されるビットデータであ
る。VBV_buffer_size_valueは、発生符号量制御用の仮
想バッファ(ビデオバッファベリファイヤー)の大きさ
を決める値の下位10ビットデータである。constrained_
parameter_flagは、各パラメータが制限以内であること
を示すデータである。load_intra_quantizer_matrix
は、イントラMB用量子化マトリックス・データの存在を
示すデータである。intra_quantizer_matrixは、イント
ラMB用量子化マトリックスの値を示すデータである。
load_non_intra_quantizer_matrixは、非イントラMB
用量子化マトリックス・データの存在を示すデータであ
る。non_intra_quantizer_matrixは、非イントラMB用
量子化マトリックスの値を表すデータである。
【0269】sequence_header()関数によって定義され
たデータエレメントの次には、図52で示すような、se
quence_extension()関数によって定義されたデータエレ
メントが、履歴ストリームとして記述されている。
【0270】sequence_extension()関数によって定義さ
れたデータエレメントとは、extension_start_code、ex
tension_start_code_identifier、sequence_extension_
present_flag、profile_and_level_indication、progre
ssive_sequence、chroma_format、horizontal_size_ext
ension、vertical_size_extension、bit_rate_extensio
n、vbv_buffer_size_extension、low_delay、frame_rat
e_extension_n 、及びframe_rate_extension_d等のデー
タエレメントである。
【0271】extension_start_codeは、エクステンショ
ンデータのスタート同期コードを表すデータである。ex
tension_start_code_identifierは、どの拡張データが
送られるかを示すデータである。sequence_extension_p
resent_flagは、シーケンスエクステンション内のデー
タが有効であるか無効であるかを示すスデータである。
profile_and_level_indicationは、ビデオデータのプロ
ファイルとレベルを指定するためのデータである。prog
ressive_sequenceは、ビデオデータが順次走査であるこ
とを示すデータである。chroma_formatは、ビデオデー
タの色差フォーマットを指定するためのデータである。
horizontal_size_extensionは、シーケンスヘッダのhor
izntal_size_valueに加える上位2ビットのデータであ
る。vertical_size_extensionは、シーケンスヘッダのv
ertical_size_value加える上位2ビットのデータであ
る。bit_rate_extensionは、シーケンスヘッダのbit_ra
te_valueに加える上位12ビットのデータである。vbv_
buffer_size_extensionは、シーケンスヘッダのvbv_buf
fer_size_valueに加える上位8ビットのデータである。
【0272】low_delayは、Bピクチャを含まないこと
を示すデータである。frame_rate_extension_nは、シー
ケンスヘッダのframe_rate_codeと組み合わせてフレー
ムレートを得るためのデータである。frame_rate_exten
sion_dは、シーケンスヘッダのframe_rate_codeと組み
合わせてフレームレートを得るためのデータである。
【0273】sequence_extension()関数によって定義さ
れたデータエレメントの次には、図53に示すようなex
tension_and_user_data(0)関数によって定義されたデー
タエレメントが、履歴ストリームとして記述されてい
る。 extension_and_user_data(i)関数は、「i」が1以
外のときは、extension_data()関数によって定義される
データエレメントは記述せずに、user_data()関数によ
って定義されるデータエレメントのみを履歴ストリーム
として記述する。よって、 extension_and_user_data
(0)関数は、 user_data()関数によって定義されるデー
タエレメントのみを履歴ストリームとして記述する。
【0274】user_data()関数は、図54に示されたよ
うなシンタックスに基いて、ユーザデータを履歴ストリ
ームとして記述する。
【0275】extension_and_user_data(0)関数によって
定義されたデータエレメントの次には、図55に示すよ
うなgroup_of_picture_header()関数によって定義され
たデータエレメント、及びextension_and_user_data(1)
関数によって定義されるデータエレメントが、履歴スト
リームとして記述されている。但し、履歴ストリーム中
に、GOP層のスタートコードを示すgroup_start_codeが
記述されている場合にのみ、 group_of_picture_header
()関数によって定義されたデータエレメント、及びexte
nsion_and_user_data(1)関数によって定義されるデータ
エレメントが記述されている。
【0276】group_of_picture_header()関数によって
定義されたデータエレメントは、group_start_code、gr
oup_of_picture_header_present_flag、time_code、clo
sed_gop、及びbroken_linkから構成される。
【0277】group_start_codeは、GOP層の開始同期コ
ードを示すデータである。 group_of_picture_header_p
resent_flagは、 group_of_picture_header内のデータ
エレメントが有効であるか無効であるかを示すデータで
ある。 time_codeは、GOPの先頭ピクチャのシーケンス
の先頭からの時間を示すタイムコードである。closed_g
opは、GOP内の画像が他のGOPから独立再生可能なことを
示すフラグデータである。broken_linkは、編集などの
ためにGOP内の先頭のBピクチャが正確に再生できない
ことを示すフラグデータである。
【0278】extension_and_user_data(1)関数は、 ext
ension_and_user_data(0)関数と同じように、user_data
()関数によって定義されるデータエレメントのみを履歴
ストリームとして記述する。
【0279】もし、履歴ストリーム中に、GOP層のスタ
ートコードを示すgroup_start_codeが存在しない場合に
は、これらのgroup_of_picture_header()関数及びexten
sion_and_user_data(1)関数によって定義されるデータ
エレメントは、履歴ストリーム中には記述されていな
い。その場合には、 extension_and_user_data(0)関数
によって定義されたデータエレメントの次に、picture_
headr()関数によって定義されたデータエレメントが履
歴ストリームとして記述されている。
【0280】picture_headr()関数によって定義された
データエレメントは、図56に示すように、picture_st
art_code、temporal_reference、picture_coding_typ
e、vbv_delay、full_pel_forward_vector、forward_f_c
ode、full_pel_backward_vector、backward_f_code、ex
tra_bit_picture、及びextra_information_pictureであ
る。
【0281】具体的には、picture_start_codeは、ピク
チャ層の開始同期コードを表すデータである。temporal
_referenceは、ピクチャの表示順を示す番号でGOPの先
頭でリセットされるデータである。picture_coding_typ
eは、ピクチャタイプを示すデータである。vbv_delay
は、ランダムアクセス時の仮想バッファの初期状態を示
すデータである。full_pel_forward_vectorは、順方向
動きベクトルの精度が整数単位か半画素単位かを示すデ
ータである。forward_f_codeは、順方向動きベクトル探
索範囲を表すデータである。full_pel_backward_vector
は、逆方向動きベクトルの精度が整数単位か半画素単位
かを示すデータである。backward_f_codeは、逆方向動
きベクトル探索範囲を表すデータである。 extra_bit_p
ictureは、後続する追加情報の存在を示すフラグであ
る。このextra_bit_pictureが「1」の場合には、次にe
xtra_information_pictureが存在し、extra_bit_pictur
eが「0」の場合には、これに続くデータが無いことを
示している。extra_information_pictureは、規格にお
いて予約された情報である。
【0282】picture_headr()関数によって定義された
データエレメントの次には、図57に示すようなpictur
e_coding_extension()関数によって定義されたデータエ
レメントが、履歴ストリームとして記述されている。
【0283】このpicture_coding_extension()関数によ
って定義されたデータエレメントとは、extension_star
t_code、extension_start_code_identifier、f_code[0]
[0]、f_code[0][1]、f_code[1][0]、f_code[1][1]、int
ra_dc_precision、picture_structure、top_field_firs
t、frame_predictive_frame_dct、concealment_motion_
vectors、q_scale_type、intra_vlc_format、alternate
_scan、repeat_firt_field、chroma_420_type、progres
sive_frame、composite_display_flag、v_axis、field_
sequence、sub_carrier、burst_amplitude、及びsub_ca
rrier_phaseから構成される。
【0284】extension_start_codeは、ピクチャ層のエ
クステンションデータのスタートを示す開始コードであ
る。extension_start_code_identifierは、どの拡張デ
ータが送られるかを示すコードである。 f_code[0][0]
は、フォワード方向の水平動きベクトル探索範囲を表す
データである。f_code[0][1]は、フォワード方向の垂直
動きベクトル探索範囲を表すデータである。f_code[1]
[0]は、バックワード方向の水平動きベクトル探索範囲
を表すデータである。f_code[1][1]は、バックワード方
向の垂直動きベクトル探索範囲を表すデータである。in
tra_dc_precisionは、DC係数の精度を表すデータであ
る。
【0285】picture_structureは、フレームストラク
チャかフィールドストラクチャかを示すデータである。
フィールドストラクチャの場合は、上位フィールドか下
位フィールドかもあわせて示すデータである。top_fiel
d_firstは、フレームストラクチャの場合、最初のフィ
ールドが上位か下位かを示すデータである。frame_pred
ictive_frame_dctは、フレーム・ストラクチャの場合、
フレーム・モードDCTの予測がフレーム・モードだけで
あることを示すデータである。concealment_motion_vec
torsは、イントラマクロブロックに伝送エラーを隠蔽す
るための動きベクトルがついていることを示すデータで
ある。q_scale_typeは、線形量子化スケールを利用する
か、非線形量子化スケールを利用するかを示すデータで
ある。intra_vlc_formatは、イントラマクロブロック
に、別の2次元VLCを使うかどうかを示すデータであ
る。
【0286】alternate_scanは、ジグザグスキャンを使
うか、オルタネート・スキャンを使うかの選択を表すデ
ータである。repeat_firt_fieldは、2:3プルダウン
の際に使われるデータである。chroma_420_typeは、信
号フォーマットが4:2:0の場合、次のprogressive_
frame と同じ値、そうでない場合は0を表すデータであ
る。progressive_frameは、このピクチャが、順次走査
できているかどうかを示すデータである。composite_di
splay_flagは、ソース信号がコンポジット信号であった
かどうかを示すデータである。v_axisは、ソース信号
が、PALの場合に使われるデータである。field_sequenc
eは、ソース信号が、PALの場合に使われるデータであ
る。sub_carrierは、ソース信号が、PALの場合に使われ
るデータである。burst_amplitudeは、ソース信号が、P
ALの場合に使われるデータである。sub_carrier_phase
は、ソース信号が、PALの場合に使われるデータであ
る。
【0287】picture_coding_extension()関数によって
定義されたデータエレメントの次には、re_coding_stre
am_info()関数によって定義されたデータエレメントが
履歴ストリームとして記述されている。このre_coding_
stream_info()関数は、主に履歴情報の組み合わせを記
述する場合に用いられるものであり、その詳細について
は、図76を参照して後述する。
【0288】re_coding_stream_info()関数によって定
義されたデータエレメントの次には、extensions_and_u
ser_data(2)によって定義されたデータエレメントが、
履歴ストリームとして記述されている。このextension_
and_user_data(2)関数は、図53に示したように、ビッ
トストリーム中にエクステンションスタートコード(ex
tension_start_code)が存在する場合には、extension_
data()関数によって定義されるデータエレメントが記述
されている。このデータエレメントの次には、ビットス
トリーム中にユーザデータスタートコード(user_data_
start_code)が存在する場合には、user_data()関数に
よって定義されるデータエレメントが記述されている。
但し、ビットストリーム中にエクステンションスタート
コード及びユーザデータスタートコードが存在しない場
合には extension_data()関数 及びuser_data()関数に
よって定義されるデータエレメントはビットトリーム中
には記述されていない。
【0289】extension_data()関数は、図58に示すよ
うに、extension_start_codeを示すデータエレメント
と、sequence_display_extension()関数、quant_matrix
_extension()関数、copyright_extension()関数、及びp
icture_display_extension()関数によって定義されるデ
ータエレメンエトとを、ビットストリーム中に履歴スト
リームとして記述するための関数である。
【0290】sequence_display_extension()関数は、ex
tension_data(i)関数が、i=0のときに存在する。i
の値は、extension_data()が、group_of_pictures_head
er()に続くことはないので、1となることはない。
【0291】sequence_display_extension()関数は、図
59に示すように、extension_start_code_identifie
r,video_format,colour_description,colour_primar
ies,transfer_characteristics,matrix_coefficient
s,display_horizontal_size,marker_bit,display_ve
rtical_sizeのデータエレメントより構成されている。
【0292】extension_start_code_identifierは、拡
張(extension)を識別するための4ビットの整数であ
る。video_formatは、符号化される前の画像の表示ビッ
トの整数である。colour_descriptionは、ビットストリ
ーム中に、colour_primaries,transfer_characteristi
cs、およびmatrix_coefficientsが存在するか否かを表
し、その値が1であるとき、これらが存在することを意
味する。
【0293】colour_primariesは、8ビットの整数であ
り、情報元原色の色度座標を表す。transfer_character
isticsは、8ビットの整数であり、情報元画像の光電子
変換特性を示す。matrix_coefficientsは、8ビットの
整数であり、緑、青、および赤の原色から、輝度および
色差信号を導くとき使用されるマトリクス係数を表す。
これらのcolour_primaries,transfer_characteristic
s,matrix_coefficientsは、colour_descriptionの値が
1である場合にのみ存在する。
【0294】display_horizontal_sizeとdisplay_verti
cal_sizeは、意図された表示の有効領域の水平方向の大
きさと垂直方向の大きさを矩形で定義する。display_ho
rizontal_sizeは、horizontal_sizeと同じ単位で定義さ
れ、display_vertical_sizeは、vertical_sizeと同じ単
位で定義される。marker_bitは、スタートコードエミュ
レーションを防止するために挿入されるビットデータで
ある。
【0295】quant_matrix_extension()関数によって定
義されるデータエレメントは、図60に示すように、ex
tension_start_code、extension_start_code_identifie
r、quant_matrix_extension_present_flag、load_intra
_quantizer_matrix、intra_quantizer_matrix[64]、loa
d_non_intra_quantizer_matrix、non_intra_quantizer_
matrix[64]、load_chroma_intra_quantizer_matrix、ch
roma_intra_quantizer_matrix[64]、load_chroma_non_i
ntra_quantizer_matrix、及びchroma_non_intra_quanti
zer_matrix[64] である。
【0296】extension_start_codeは、この量子化マト
リックスエクステンションのスタートを示す開始コード
である。extension_start_code_identifierは、どの拡
張データが送られるかを示すコードである。 quant_mat
rix_extension_present_flagは、この量子化マトリック
スエクステンション内のデータエレメントが有効か無効
かを示すためのデータである。load_intra_quantizer_m
atrixは、イントラマクロブロック用の量子化マトリッ
クスデータの存在を示すデータである。intra_quantize
r_matrixは、イントラマクロブロック用の量子化マトリ
ックスの値を示すデータである。
【0297】load_non_intra_quantizer_matrixは、非
イントラマクロブロック用の量子化マトリックスデータ
の存在を示すデータである。non_intra_quantizer_matr
ixは、非イントラマクロブロック用の量子化マトリック
スの値を表すデータである。load_chroma_intra_quanti
zer_matrixは、色差イントラマクロブロック用の量子化
マトリックス・データの存在を示すデータである。chro
ma_intra_quantizer_matrixは、色差イントラマクロブ
ロック用の量子化マトリックスの値を示すデータであ
る。load_chroma_non_intra_quantizer_matrixは、色差
非イントラマクロブロック用の量子化マトリックス・デ
ータの存在を示すデータである。chroma_non_intra_qua
ntizer_matrixは、色差非イントラマクロブロック用の
量子化マトリックスの値を示すデータである。
【0298】copyright_extension()関数によって定義
されるデータエレメントは、図61に示すように、 ext
ension_start_code、extension_start_code_itentifie
r、copyright_extension_present_flag、copyright_fla
g、copyright_identifier、original_or_copy、copyrig
ht_number_1、copyright_number_2、及び copyright_nu
mber_3から構成される。
【0299】extension_start_codeは、コピーライトエ
クステンションのスタート示す開始コードである。exte
nsion_start_code_itentifierどのエクステンションデ
ータが送られるかを示すコードである。 copyright_ext
ension_present_flagは、このコピーライトエクステン
ション内のデータエレメントが有効か無効かを示すため
のデータである。
【0300】copyright_flagは、次のコピーライトエク
ステンション又はシーケンスエンドまで、符号化された
ビデオデータに対してコピー権が与えられているか否か
を示す。copyright_identifierは、ISO/IEC JTC/SC29に
よって指定されたコピー権の登録機関を識別するための
データである。original_or_copyは、ビットストリーム
中のデータが、オリジナルデータであるかコピーデータ
であるかを示すデータである。copyright_number_1は、
コピーライトナンバーのビット44から63を表わすデ
ータである。copyright_number_2は、コピーライトナン
バーのビット22から43を表わすデータである。copy
right_number_3は、コピーライトナンバーのビット0か
ら21を表わすデータである。
【0301】picture_display_extension()関数によっ
て定義されるデータエレメントは、図62に示すよう
に、extension_start_code_identifier、frame_center_
horizontal_offset、frame_center_vertical_offset等
である。
【0302】extension_start_code_identifierは、ど
の拡張データが送られるかを示すコードである。 frame
_center_horizontal_offsetは、表示エリアの水平方向
のオフセットを示すデータであって、number_of_frame_
center_offsetsによって定義される数のオフセット値を
定義することができる。frame_center_vertical_offset
は、表示エリアを垂直方向のオフセットを示すデータで
あって、 number_of_frame_center_offsetsによって定
義される数のオフセット値を定義することができる。
【0303】再び図50に戻って、extension_and_user
_data(2)関数によって定義されるデータエレメントの次
には、picture_data()関数によって定義されるデータエ
レメントが、履歴ストリームとして記述されている。但
し、このpicture_data()関数は、red_bw_flagが1では
ないか、または、red_bw_indicatorが2以下である場合
に存在する。このred_bw_flagとred_bw_indicatorは、r
e_coding_stream_info()関数に記述されており、これら
については、図76と図77を参照して後述する。
【0304】picture_data()関数によって定義されるデ
ータエレメントは、図63に示すように、slice()関数
によって定義されるデータエレメントである。このslic
e()関数によって定義されるデータエレメントはビット
ストリーム中に少なくとも1個記述されている。
【0305】slice()関数は、図64に示されるよう
に、slice_start_code、slice_quantiser_scale_code、
intra_slice_flag、intra_slice、reserved_bits、extr
a_bit_slice、extra_information_slice、及びextra_bi
t_slice 等のデータエレメントと、macroblock()関数に
よって定義されるデータエレメントを、履歴ストリーム
として記述するための関数である。
【0306】slice_start_codeは、slice()関数によっ
て定義されるデータエレメントのスタートを示すスター
トコードである。slice_quantiser_scale_codeは、この
スライス層に存在するマクロブロックに対して設定され
た量子化ステップサイズを示すデータである。しかし、
各マクロブロック毎に、quantiser_scale_codeが設定さ
れている場合には、各マクロブロックに対して設定され
たmacroblock_quantiser_scale_codeのデータが優先し
て使用される。
【0307】intra_slice_flagは、ビットストリーム中
にintra_slice及びreserved_bitsが存在するか否かを示
すフラグである。intra_sliceは、スライス層中にノン
イントラマクロブロックが存在するか否かを示すデータ
である。スライス層におけるマクロブロックのいずれか
がノンイントラマクロブロックである場合には、intra_
sliceは「0」となり、スライス層におけるマクロブロ
ックの全てがノンイントラマクロブロックである場合に
は、intra_sliceは「1」となる。reserved_bitsは、7
ビットのデータであって「0」の値を取る。extra_bit_
sliceは、履歴ストリームとして追加の情報が存在する
ことを示すフラグであって、次にextra_information_sl
iceが存在する場合には「1」に設定される。追加の情
報が存在しない場合には「0」に設定される。
【0308】これらのデータエレメントの次には、macr
oblock()関数によって定義されたデータエレメントが、
履歴ストリームとして記述されている。
【0309】macroblock()関数は、図65に示すよう
に、macroblock_escape、macroblock_address_incremen
t、及びmacroblock_quantiser_scale_code、及びmarker
_bit等のデータエレメントと、macroblock_modes()関
数、motion_vectors(s)関数、及びcode_block_patter
n()関数によって定義されたデータエレメントを記述す
るための関数である。
【0310】macroblock_escapeは、参照マクロブロッ
クと前のマクロブロックとの水平方向の差が34以上で
あるか否かを示す固定ビット列である。参照マクロブロ
ックと前のマクロブロックとの水平方向の差が34以上
の場合には、macroblock_address_incrementの値に33
をプラスする。macroblock_address_incrementは、参照
マクロブロックと前のマクロブロックとの水平方向の差
を示すデータである。もし、このmacroblock_address_i
ncrementの前にmacroblock_escapeが1つ存在するので
あれば、このmacroblock_address_incrementの値に33
をプラスした値が、実際の参照マクロブロックと前のマ
クロブロックとの水平方向の差分を示すデータとなる。
【0311】macroblock_quantiser_scale_codeは、各
マクロブロック毎に設定された量子化ステップサイズで
あり、macroblock_quantが”1”のときだけ存在する。
各スライス層には、スライス層の量子化ステップサイズ
を示すslice_quantiser_scale_codeが設定されている
が、参照マクロブロックに対してmacroblock_quantiser
_scale_codeが設定されている場合には、この量子化ス
テップサイズを選択する。
【0312】macroblock_address_incrementの次には、
macroblock_modes()関数によって定義されるデータエレ
メントが記述されている。macroblock_modes()関数は、
図66に示すように、macroblock_type、frame_motion_
type、field_motion_type、dct_type等のデータエレメ
ントを、履歴ストリームとして記述するための関数であ
る。
【0313】macroblock_typeは、マクログブロックの
符号化タイプを示すデータである。具体的には、図67
乃至図69に示されるように、macroblock_typeは、mac
roblock_quant、dct_type_flag、macroblock_motion_fo
rward、及びmacroblock_motion_backwardなどのフラグ
から生成された可変長データである。 macroblock_quan
tは、マクロブロックに対して量子化ステップサイズを
設定するためのmacroblock_quantiser_scale_codeが設
定されているか否かを示すフラグあって、ビットストリ
ーム中にmacroblock_quantiser_scale_codeが存在する
場合には、 macroblock_quantは「1」の値を取る。
【0314】dct_type_flagは、参照マクロブロックが
フレームDCT又はフィールドDCTで符号化されているかを
示すdct_typeが存在するか否かを示すためのフラグ(言
い換えるとDCTされているか否かを示すフラグ)であっ
て、ビットストリーム中にdct_typeが存在する場合に
は、このdct_type_flagは「1」の値を取る。 macroblo
ck_motion_forwardは、参照マクロブロックが前方予測
されているか否かを示すフラグであって、前方予測され
ている場合には「1」の値を取る。macroblock_motion_
backwardは、参照マクロブロックが後方予測されている
か否かを示すフラグであって、後方予測されている場合
には「1」の値を取る。
【0315】もし、red_bw_flagが「1」ではないか、
または、red_bw_flagが1であり、且つ、red_bw_indica
torが1以下である場合(後述する図77の組み合わせ
が、組み合わせ1,2または3の場合)であり、macrob
lock_motion_forward又はmacroblock_motion_backward
が「1」であり、ピクチャ構造がフレームであり、さら
にframe_period_frame_dctが「0」である場合には、ma
croblock_typeを表わすデータエレメントの次にframe_m
otion_typeを表わすデータエレメントが記述されてい
る。尚、このframe_period_frame_dctは、 frame_motio
n_typeがビットストリーム中に存在するか否かを示すフ
ラグである。
【0316】frame_motion_typeは、フレームのマクロ
ブロックの予測タイプを示す2ビットのコードである。
予測ベクトルが2個でフィールドベースの予測タイプで
あれば「00」であって、予測ベクトルが1個でフィー
ルドベースの予測タイプであれば「01」であって、予
測ベクトルが1個でフレームベースの予測タイプであれ
ば「10」であって、予測ベクトルが1個でディアルプ
ライムの予測タイプであれば「11」である。
【0317】frame_motion_typeを記述する条件が満足
されない場合には、macroblock_typeを表わすデータエ
レメントの次にfield_motion_typeを表わすデータエレ
メントが記述されている。
【0318】field_motion_typeは、フィールドのマク
ロブロックの動き予測を示す2ビットのコードである。
予測ベクトルが1個でフィールドベースの予測タイプで
あれば「01」であって、予測ベクトルが2個で18×
8マクロブロックベースの予測タイプであれば「10」
であって、予測ベクトルが1個でディアルプライムの予
測タイプであれば「11」である。
【0319】もし、ピクチャ構造がフレームで、 frame
_period_frame_dctがframe_motion_typeがビットストリ
ーム中に存在することを示し、且つ、frame_period_fra
me_dctがdct_typeがビットストリーム中に存在すること
を示し、さらに、red_bw_flagが「1」ではないか、ま
たは、red_bw_flagが「1」で、red_bw_indicatorが1
以下である場合には、macroblock_typeを表わすデータ
エレメントの次にdct_typeを表わすデータエレメントが
記述されている。尚、dct_typeは、DCTがフレームDCTモ
ードか、フィールドDCTモードかを示すデータである。
【0320】再び図65に戻って、もし、red_bw_flag
が「1」ではないか、または、red_bw_flagが「1」
で、red_bw_indicatorが1以下であり、さらに、参照マ
クロブロックが前方予測マクロブロックであるか又は参
照マクロブロックがイントラマクロブロックであって且
つコンシール処理のマクロブロックのいずれかの場合に
は、motion_vectors(0)関数によって定義されるデータ
エレメントが記述される。また、参照マクロブロックが
後方予測マクロブロックである場合には、motion_vecto
rs(1)関数によって定義されるデータエレメントが記述
される。尚、 motion_vectors(0)関数は、第1番めの動
きベクトルに関するデータエレメントを記述するための
関数であって、motion_vectors(1)関数は、第2番めの
動きベクトルに関するデータエレメントを記述するため
の関数である。
【0321】motion_vectors(s)関数は、図70に示さ
れるように、動きベクトルに関するデータエレメントを
記述するための関数である。
【0322】もし、動きベクトルが1個でディアルプラ
イム予測モードを使用していない場合には、motion_ver
tical_field_select[0][s]とmotion_vector(0,s)によっ
て定義されるデータエレメントが記述される。
【0323】このmotion_vertical_field_select[r][s]
は、第1番目の動きベクトル(前方又は後方のどちらの
ベクトルであっても良い)が、ボトムフィールドを参照
して作られたベクトルであるかトップフィールドを参照
して作られたベクトルであるかを示すフラグである。こ
の指標“r”は、第1番めのベクトル又は第2番めのベ
クトルのいずれのベクトルであるかを示す指標であっ
て、“s”は、予測方向が前方又は後方予測のいずれで
あるかを示す指標である。
【0324】motion_vector(r,s)関数は、図71に示さ
れるように、motion_code[r][s][t]に関するデータ列
と、motion_residual[r][s][t]に関するデータ列と、dm
vector[t]を表わすデータとを記述するための関数であ
る。
【0325】motion_code[r][s][t]は、動きベクトルの
大きさを−16〜+16の範囲で表わす可変長のデータ
である。 motion_residual[r][s][t]は、動きベクトル
の残差を表わす可変長のデータである。よって、このmo
tion_code[r][s][t]と motion_residual[r][s][t]との
値によって詳細な動きベクトルを記述することができ
る。 dmvector[t]は、ディユアルプライム予測モードの
ときに、一方のフィールド(例えばボトムフィールドに
対してトップフィールドを一方のフィールドとする)に
おける動きベクトルを生成するために、時間距離に応じ
て既存の動きベクトルがスケールされると共に、トップ
フィールドとボトムフィールドとのライン間の垂直方向
のずれを反映させるために垂直方向に対して補正を行う
データである。この指標“r”は、第1番めのベクトル
又は第2番めのベクトルのいずれのベクトルであるかを
示す指標であって、“s”は、予測方向が前方又は後方
予測のいずれであるかを示す指標である。“s”は、動
きベクトルが垂直方向の成分であるか水平方向の成分で
あるかを示すデータである。
【0326】図71に示されmotion_vector(r,s)関数に
よって、まず、水平方向のmotion_coder[r][s][0]を表
わすデータ列が、履歴ストリームとして記述される。mo
tion_residual[0][s][t]及びmotion_residual[1][s][t]
の双方のビット数は、f_code[s][t]で示されるので、 f
_code[s][t]が1でない場合には、 motion_residual[r]
[s][t] がビットストリーム中に存在することを示すこ
とになる。水平方向成分のmotion_residual[r][s][0]が
「1」でなくて、水平方向成分のmotion_code[r][s][0]
が「0」でないということは、ビットストリーム中にmo
tion_residual[r][s][0]を表わすデータエレメントが存
在し、動きベクトルの水平方向成分が存在するというこ
とを意味しているので、その場合には、水平方向成分の
motion_residual[r][s][0]を表わすデータエレメントが
記述されている。
【0327】続いて、垂直方向のmotion_coder[r][s]
[1]を表わすデータ列が、履歴ストリームとして記述さ
れる。同じようにmotion_residual[0][s][t]及びmotion
_residual[1][s][t]の双方のビット数は、f_code[s][t]
で示されるので、 f_code[s][t]が1でない場合には、
motion_residual[r][s][t] がビットストリーム中に存
在することを表わすことになる。motion_residual[r]
[s][1]が「1」でなくて、motion_code[r][s][1]が
「0」でないということは、ビットストリーム中にmoti
on_residual[r][s][1]を表わすデータエレメントが存在
し、動きベクトルの垂直方向成分が存在するということ
を意味しているので、その場合には、垂直方向成分のmo
tion_residual[r][s][1]を表わすデータエレメントが記
述されている。
【0328】図65に戻って、coded_block_pattern()
関数は、macroblock_patternが「1」であり、且つ、re
d_bw_flagが「1」ではないか、または、red_bw_flagが
「1」で、red_bw_indicatorが0である場合には、code
d_block_pattern()関数が、marker_bitの次に記述され
る。これらの条件が満足されない場合には、coded_bloc
k_pattern()関数は記述されない。
【0329】coded_block_pattern()関数は、図72に
示すように、coded_block_pattern_420,coded_block_p
attern_1,coded_block_pattern_2のデータエレメント
より構成されている。coded_block_pattern_420は、変
数cbpを導くために使用される可変長コードである。cod
ed_block_pattern_1は、chroma_formatが4:2:2で
ある場合に、2ビットの固定長コードを付加する場合の
ものであり、coded_block_pattern_2は、chroma_format
が4:4:4である場合に、6ビットの固定長コードを
付加するものである。
【0330】なお、可変長フォーマットにおいては、伝
送するビットレートを減少させるために、履歴情報を削
減することができる。
【0331】すなわち、macroblock_typeとmotion_vect
ors()は転送するが、quantiser_scale_codeを転送しな
い場合には、slice_quantiser_scale_codeを”0000
0”とすることで、ビットレートを減少させることがで
きる。
【0332】また、macroblock_typeのみ転送し、motio
n_vectors()、quantiser_scale_code、およびdct_type
を転送しない場合には、macroblock_typeとして、”not
coded”を使用することで、ビットレートを減少するこ
とができる。
【0333】さらにまた、picture_coding_typeのみ転
送し、slice()以下の情報は全て転送しない場合には、s
lice_start_codeを持たないpicture_data()を使用する
ことで、ビットレートを減少させることができる。
【0334】以上においては、user_data内の23ビッ
トの連続する”0”が出ないようにする場合に、22ビ
ット毎に”1”を挿入するようにしたが、22ビット毎
でなくてもよい。また、連続する”0”の個数を数え
て”1”を挿入するのではなく、Byte_allignを調べて
挿入するようにすることも可能である。
【0335】さらに、MPEGにおいては、23ビットの連
続する”0”の発生を禁止しているが、実際には、バイ
トの先頭から23ビット連続する場合だけが問題とさ
れ、バイトの先頭ではなく、途中から0が23ビット連
続する場合は、問題とされない。従って、例えば24ビ
ット毎に、LSB以外の位置に”1”を挿入するようにし
てもよい。
【0336】また、以上においては、履歴情報を、vide
o elementary streamに近い形式にしたが、packetized
elementary streamやtransport streamに近い形式にし
てもよい。また、Elementary Streamのuser_dataの場所
を、picture_dataの前としたが、他の場所にすることも
できる。
【0337】図18のトランスコーダ101において
は、4世代分の符号化パラメータを履歴情報として後段
に出力するようにしたが、実際には、履歴情報の全てが
必要となるわけではなく、アプリケーション毎に必要な
履歴情報は異なってくる。また、実際の伝送路あるいは
記録媒体(伝送メディア)には、容量に制限があり、圧
縮しているとはいえ、全ての履歴情報を伝送するように
すると、容量的に負担となり、結果的に画像ビットスト
リームのビットレートを抑圧してしまい、履歴情報伝送
の有効性が損なわれることになる。
【0338】そこで、履歴情報として伝送する項目の組
み合わせを記述する記述子を履歴情報に組み込んで後段
に送信するようにし、全ての履歴情報を伝送するのでは
なく、様々なアプリケーションに対応した情報を伝送す
るようにすることができる。図73は、このような場合
のトランスコーダ101の構成例を表している。
【0339】図73において、図18における場合と対
応する部分には同一の符号を付してあり、その説明は適
宜省略する。図73の構成例においては、符号化パラメ
ータ分離装置105と符号化装置106の間、及び履歴
符号化装置107と符号化装置106の間に、符号化パ
ラメータ選択回路501が挿入されている。
【0340】符号化パラメータ選択回路501は、符号
化パラメータ分離装置105が出力するベースバンドビ
デオ信号から符号化パラメータを算出する符号化パラメ
ータ算出部512、符号化パラメータ分離装置105が
出力する、このトランスコーダ101において、符号化
するのに最適と判定された符号化パラメータ(いまの場
合、2世代前の符号化パラメータ)に関する情報から、
符号化パラメータと記述子(red_bw_flag,red_bw_indi
cator)を分離する組合せ記述子分離部511、並びに
符号化パラメータ算出部512が出力する符号化パラメ
ータと、組合せ記述子分離部511が出力する符号化パ
ラメータのうち、いずれか一方を、組合せ記述子分離部
511で分離された記述子に対応して選択し、符号化装
置106に出力するスイッチ513を有している。その
他の構成は、図18における場合と同様である。
【0341】ここで、履歴情報として伝送する項目の組
み合わせについて説明する。履歴情報は、分類すると、
picture単位の情報と、macroblock単位の情報に分ける
ことができる。slice単位の情報は、それに含まれるmac
roblockの情報を収集することで得ることができ、GOP単
位の情報は、それに含まれるpicture単位の情報を収集
することで得ることができる。
【0342】picture単位の情報は、1フレーム毎に1
回伝送されるだけなので、情報伝送に占めるビットレー
トは、それほど大きくはない。これに対して、macroblo
ck単位の情報は、各macroblock毎に伝送されるため、例
えば1フレームの走査線数が525本で、フィールドレ
ートが60フィールド/秒のビデオシステムの場合、1
フレームの画素数を720×480とすると、macroblo
ck単位の情報は、1フレームあたり1350(=720
/16×480/16)回伝送することが必要となる。
このため、履歴情報の相当の部分がmacroblock毎の情報
で占められることになる。そこで、履歴情報としては、
少なくともpicture単位の情報は常に伝送するが、macro
block単位の情報は、アプリケーションに応じて選択し
て伝送するようにすることで、伝送する情報量を抑制す
ることができる。
【0343】履歴情報として転送されるmacroblock単位
の情報には、例えばnum_coef_bits,num_mv_bits,num_
other_bits,q_scale_code,q_scale_type,motion_typ
e,mv_vert_field_sel[][],mv[][][],mb_mfwd,mb_mb
wd,mb_pattern,coded_block_pattern,mb_intra,sli
ce_start,dct_type,mb_quant,skipped_mbなどがあ
る。これらは、macroblock rate informationの要素を
用いて表現されたものである。
【0344】num_coef_bitsは、macroblockの符号量の
うち、DCT係数に要した符号量を表す。num_mv_bitsは、
macroblockの符号量のうち、動きベクトルに要した符号
量を表す。num_other_bitsは、macroblockの符号量のう
ち、num_coef_bits及びnum_mv_bits以外の符号量を表
す。
【0345】q_scale_codeは、macroblockに適用された
q_scale_codeを表す。motion_typeは、macroblockに適
用された動きベクトルのtypeを表す。mv_vert_field_se
l[][]は、macroblockに適用された動きベクトルのfield
selectを表す。
【0346】mv[][][]は、macroblockに適用された動き
ベクトルを表す。mb_mfwdは、macroblockの予測モード
が前方向予測であることを示すフラグである。mb_mbwd
は、macroblockの予測モードが後方向予測であることを
示すフラグである。mb_patternは、macroblockのDCT係
数の非0のものの有無を示すフラグである。
【0347】coded_block_patternは、macroblockのDCT
係数の非0のものの有無をDCTブロック毎に示すフラグ
である。mb_intraは、macroblockがintra_macroかそう
でないかを示すフラグである。slice_startは、macrobl
ockがsliceの先頭であるか否かを示すフラグである。dc
t_typeは、macroblockがfield_dctかflame_dctかを示す
フラグである。
【0348】mb_quantは、macroblockがquantiser_scal
e_codeを伝送するか否かを示すフラグである。skipped_
mbは、macroblockがskipped macroblockであるか否かを
示すフラグである。
【0349】これらの項目は、常に全て必要であるわけ
ではなく、アプリケーションに応じて必要となる項目が
変化する。例えば、num_coef_bitsやslice_startといっ
た項目は、再エンコードした際のビットストリームをで
きる限り元の形に戻したいというtransparentという要
求を有するアプリケーションにおいて必要となる。換言
すれば、ビットレートを変更するようなアプリケーショ
ンにおいては、これらの項目は必要ではない。また、非
常に伝送路の制限が厳しい場合には、各ピクチャの符号
化タイプが判るだけでもよいようなアプリケーションも
存在する。このような状況から、履歴情報を伝送する項
目の組み合わせの例として、例えば図74に示すような
組み合わせが考えられる。
【0350】図74において、各組み合わせの中の項目
に対応する値「2」は、その情報が存在し、利用可能で
あることを意味し、「0」は、その情報が存在しないこ
とを意味する。「1」は、他の情報の存在を補助する目
的のため、あるいは、構文上存在するが、元のビットス
トリーム情報とは関係がないなど、その情報自身には意
味がないことを表している。例えば、slice_startは、
履歴情報を伝送する際のsliceの先頭のmacroblockにお
いて、「1」になるが、本来のビットストリームに対し
て、sliceが必ずしも同一位置関係にあるわけではない
場合には、履歴情報としては無意味になる。
【0351】図74の例においては、(num_coef_bit
s,num_mv_bits,num_other_bits),(q_scale_code,
q_scale_type),(motion_type,mv_vert_field_sel[]
[],mv[][][]),(mb_mfwd,mb_mbwd),(mb_patter
n),(coded_block_pattern),(mb_intra),(slic
e_start),(dct_type),(mb_quant),(skipped_m
b)の各項目の有無により、組み合わせ1乃至組み合わ
せ5の5つの組み合わせが用意されている。
【0352】組み合わせ1は、完全にtransparentなビ
ットストリームを再構成することを目的とした組み合わ
せである。この組み合わせによれば、発生符号量情報を
用いることによる精度の高いトランスコーディングが実
現できる。組み合わせ2も、完全にtransparentなビッ
トストリームを再構成することを目的とした組み合わせ
である。組み合わせ3は、完全にtransparentなビット
ストリームを再構成することはできないが、視覚的にほ
ぼtransparentなビットストリームを再構成できるよう
にするための組み合わせである。組み合わせ4は、tran
sparentという観点からは組み合わせ3よりも劣るが、
視覚上問題がないビットストリームの再構成ができる組
み合わせである。組み合わせ5は、transparentという
観点からは組み合わせ4よりも劣るが、少ない履歴情報
でビットストリームの完全ではない再構成ができる組み
合わせである。
【0353】これらの組み合わせのうち、組み合わせの
番号の数字が小さいものほど、機能的には上位である
が、履歴を転送するのに必要となる容量が多くなる。従
って、想定するアプリケーションと履歴に使用できる容
量を考慮することによって、伝送する組み合わせを決定
する必要がある。
【0354】次に、図75のフローチャートを参照し
て、図73のトランスコーダ101の動作について説明
する。ステップS41において、トランスコーダ101
の復号装置102は、入力されたビットストリームを復
号し、そのビットストリームを符号化する際に使用され
た符号化パラメータを抽出し、その符号化パラメータを
符号化パラメータ多重装置103に出力するとともに、
復号したビデオデータをやはり符号化パラメータ多重装
置103に出力する。ステップS42において、復号装
置102にはまた、入力されたビットストリームからus
er_dataを抽出し、履歴復号装置104に出力する。履
歴復号装置104は、ステップS43において、入力さ
れたuser_dataから、組み合わせ情報(記述子)を用い
て、履歴情報としての符号化パラメータを抽出し、符号
化パラメータ多重装置103に出力する。
【0355】符号化パラメータ多重装置103は、ステ
ップS44において、ステップS41で取り出された復
号装置102から供給される符号化パラメータと、ステ
ップS43で履歴復号装置104が出力した符号化パラ
メータとを、復号装置102から供給されるベースバン
ドのビデオデータに、図21または図34に示すような
フォーマットに従って多重化し、符号化パラメータ分離
装置105に出力する。
【0356】符号化パラメータ分離装置105は、ステ
ップS45において、符号化パラメータ多重装置103
より供給されたベースバンドのビデオデータから符号化
パラメータを抽出し、その中から今回の符号化に最も適
している符号化パラメータを選択し、記述子とともに、
組合せ記述子分離部511に出力する。また、符号化パ
ラメータ分離装置105は、今回の符号化に最適と判定
された符号化パラメータ以外の符号化パラメータ(例え
ば、最適な符号化パラメータが2世代前の符号化パラメ
ータであると判定された場合には、それ以外の第1世
代、第3世代、及び第4世代の符号化パラメータ)を履
歴符号化装置107に出力する。履歴符号化装置107
は、符号化パラメータ分離装置105より入力された符
号化パラメータをステップS46において、user_data
に記述し、そのuser_data(converted_history_strea
m())を符号化装置106に出力する。
【0357】符号化パラメータ選択回路501の組合せ
記述子分離部511は、符号化パラメータ分離装置10
5より供給されたデータから、符号化パラメータと記述
子を分離し、符号化パラメータをスイッチ513の一方
の接点に供給する。スイッチ513の他方の接点には、
符号化パラメータ算出部512が、符号化パラメータ分
離装置100が出力するベースバンドのビデオデータか
ら、符号化パラメータを算出し、供給している。スイッ
チ513は、ステップS48において、組合せ記述子分
離部511が出力した記述子に対応して、組合せ記述子
分離部511が出力した符号化パラメータ、または符号
化パラメータ算出部512が出力した符号化パラメータ
のいずれかを選択し、符号化装置106に出力する。す
なわち、スイッチ513では、組合せ記述子分離部51
1から供給された符号化パラメータが有効である場合に
は、それが出力する符号化パラメータが選択されるが、
それが出力する符号化パラメータが無効であると判定さ
れた場合には、符号化パラメータ算出部512がベース
バンドビデオを処理することで算出した符号化パラメー
タが選択される。この選択は、伝送メディアの容量に対
応して行われる。
【0358】符号化装置106は、ステップS49にお
いて、スイッチ513から供給された符号化パラメータ
に基づいて、符号化パラメータ分離装置105より供給
されたベースバンドビデオ信号を符号化する。また、ス
テップS50において、符号化装置106は、符号化し
たビットストリームに、履歴符号化装置107より供給
されたuser_dataを多重化し、出力する。
【0359】このようにして、各履歴によって得られる
符号化パラメータの組み合わせが異なっているような場
合でも、支障なくトランスコーディングすることが可能
となる。
【0360】このように、履歴情報は、図41に示した
ように、ビデオストリームのuser_data()関数の一種と
してのhistory_stream()(より正確には、converted_hi
story_stream())で伝送される。そのhistory_stream()
のシンタックスは、図50に示した通りである。履歴情
報の項目の組み合わせを表す記述子(red_bw_flag,red
_bw_indicator)、およびMPEGのストリームではサポー
トされていない項目(num_other_bits,num_mv_bits,n
um_coef_bits)は、この図50の中のre_coding_stream
_info()関数により伝送される。
【0361】re_coding_stream_info()関数は、図76
に示すように、user_data_start_code,re_coding_stre
am_info_ID,red_bw_flag,red_bw_indicator,marker_
bit,num_other_bits,num_mv_bits,num_coef_bitsな
どのデータエレメントより構成される。
【0362】user_data_start_codeは、user_dataが開
始することを表すスタートコードである。re_coding_st
ream_info_IDは、16ビットの整数であり、re_coding_
stream_info()関数の識別のために用いられる。その値
は、具体的には、”1001 00011110 1100”(0x91ec)と
される。
【0363】red_bw_flagは、1ビットのフラグであ
り、履歴情報が全ての項目を伝送する場合には0とさ
れ、このフラグの値が1である場合、このフラグに続く
red_bw_indicatorを調べることにより、図74に示した
組み合わせのうち、どの組み合わせで項目が送られてい
るのかを決定することができる。
【0364】red_bw_indicatorは、2ビットの整数であ
り、項目の組み合わせを図77に示すように記述する。
【0365】即ち、図74に示した5つの組み合わせの
うち、組み合わせ1の場合、red_bw_flagは0とされ、
組み合わせ2乃至組み合わせ5のとき、red_bw_flagは
1とされる。これに対して、red_bw_indicatorは、組み
合わせ2の場合0とされ、組み合わせ3の場合1とさ
れ、組み合わせ4の場合2とされ、組み合わせ5の場合
3とされる。
【0366】従って、red_bw_indicatorは、red_bw_fla
gが1の場合に(組み合わせ2乃至組み合わせ5の場合
に)規定される。
【0367】さらに、図76に示すように、red_bw_fla
gが0である場合(組み合わせ1の場合)、マクロブロ
ック毎に、marker_bit,num_other_bits,num_mv_bit
s,num_coef_bitsが記述される。これら4つのデータエ
レメントは、組み合わせ2乃至組み合わせ5の場合(re
d_bw_flagが1の場合)規定されない。
【0368】図63に示したように、picture_data()関
数は、1個以上のslice()関数から構成される。しかし
ながら、組み合わせ5の場合、picture_data()関数を含
めて、それ以下のシンタックス要素は伝送されない(図
74)。この場合、履歴情報は、picture_typeなどのpi
cture単位の情報の伝送を意図したものとなる。
【0369】組み合わせ1乃至組み合わせ4の場合、図
64に示したslice()関数が存在する。しかしながら、
このslice()関数によって決定されるsliceの位置情報
と、元のビットストリームのsliceの位置情報は、履歴
情報の項目の組み合わせに依存する。組み合わせ1また
は組み合わせ2の場合、履歴情報の元となったビットス
トリームのsliceの位置情報と、slice()関数によって決
定されるsliceの位置情報とは、同一である必要があ
る。
【0370】図65に示すmacroblock()関数のシンタッ
クス要素は、履歴情報の項目の組み合わせに依存する。
macroblock_escape,macroblock_address_increment,m
acroblock_modes()関数は、常に存在する。しかしなが
ら、macroblock_escapeとmacroblock_address_incremen
tの情報としての有効性は、組み合わせによって決定さ
れる。履歴情報の項目の組み合わせが、組み合わせ1ま
たは組み合わせ2の場合、元のビットストリームのskip
ped_mb情報と同じものが伝送される必要がある。
【0371】組み合わせ4の場合、motion_vectors()関
数は存在しない。組み合わせ1乃至組み合わせ3の場
合、macroblock_modes()関数のmacroblock_typeによっ
て、motion_vectors()関数の存在が決定される。組み合
わせ3または組み合わせ4の場合には、coded_block_pa
ttern()関数は存在しない。組み合わせ1と組み合わせ
2の場合、macroblock_modes()関数のmacroblock_type
によって、coded_block_pattern()関数の存在が決定さ
れる。
【0372】図66に示したmacroblock_modes()関数の
シンタックス要素は、履歴情報の項目の組み合わせに依
存する。macroblock_typeは、常に存在する。組み合わ
せが組み合わせ4である場合、flame_motion_type,fie
ld_motion_type,dct_typeは存在しない。
【0373】macroblock_typeより得られるパラメータ
の情報としての有効性は、履歴情報の項目の組み合わせ
によって決定される。
【0374】履歴情報の項目の組み合わせが組み合わせ
1または組み合わせ2である場合、macroblock_quant
は、元のビットストリームと同じである必要がある。組
み合わせ3または組み合わせ4の場合、macroblock_qua
ntは、macroblock()関数内のquantiser_scale_codeの存
在を表し、元のビットストリームと同じである必要はな
い。
【0375】組み合わせが組み合わせ1乃至組み合わせ
3である場合、macroblock_motion_forwardとmacrobloc
k_motion_backwardは、元のビットストリームと同一で
ある必要がある。組み合わせが組み合わせ4または組み
合わせ5である場合、その必要はない。
【0376】組み合わせが組み合わせ1または組み合わ
せ2である場合、macroblock_patternは、元のビットス
トリームと同一である必要がある。組み合わせ3の場
合、macroblock_patternは、dct_typeの存在を示すのに
用いられる。組み合わせが組み合わせ4である場合、組
み合わせ1乃至組み合わせ3における場合のような関係
は成立しない。
【0377】履歴情報の項目の組み合わせが組み合わせ
1乃至組み合わせ3の場合、macroblock_intraは、元の
ビットストリームと同一である必要がある。組み合わせ
4の場合には、その限りでない。
【0378】図50のhistory_stream()は、履歴情報を
可変長とする場合のシンタックスであるが、図43乃至
図44に示すように、固定長のシンタックスとする場
合、固定長の履歴情報内に、伝送される項目中のどれが
有効であるかを示す情報としての記述子(red_bw_flag
とred_bw_indicator)をベースバンド画像に重畳し、伝
送するようにする。その結果、この記述子を調べること
により、フィールドとして存在するが、その内容は無効
であるといった判断をすることが可能となる。
【0379】このため、図47に示すように、re_codin
g_stream_informationとして、user_data_start_code,
re_coding_stream_info_ID,red_bw_flag,red_bw_indi
cator,marker_bitが配置されている。それぞれの意味
は、図76における場合と同様である。
【0380】このように履歴として伝送する符号化パラ
メータの要素をアプリケーションに応じた組み合わせで
伝送するようにすることで、アプリケーションに応じた
履歴を適当なデータ量で伝送するようにすることができ
る。
【0381】以上のように、履歴情報を可変長符号とし
て伝送する場合、re_coding_stream_info()関数は、図
76に示すように構成され、図50に示すように、hist
ory_stream()関数の一部として伝送される。これに対し
て、履歴情報を固定長符号として伝送する場合には、図
47に示したように、history_stream()関数の一部とし
て、re_coding_stream_information()が伝送される。図
47の例では、re_coding_stream_informationとして、
user_data_start_code,re_coding_stream_info_ID,re
d_bw_flag,red_bw_indicatorが伝送される。
【0382】また、図73の符号化パラメータ多重装置
103が出力するベースバンドの信号中における履歴情
報の伝送のために、図78に示すようなRe_Coding info
rmation Bus macroblock formatが規定される。このマ
クロブロックは、16×16(=256)ビットで構成
される。そして、そのうちの図78において上から3行
目と4行目に示す32ビットが、picrate_elementとさ
れる。このpicrate_elementには、図79乃至図81に
示すPicture rate elementsが記述される。図79の上
から2行目に1ビットのred_bw_flagが規定されてお
り、また、3行目に3ビットのred_bw_indicatorが規定
されている。即ち、これらのフラグred_bw_flag,red_b
w_indicatorは、図78のpicrate_elementとして伝送さ
れる。
【0383】図78のその他のデータについて説明する
と、SRIB_sync_codeは、このフォーマットのマクロブロ
ックの最初の行が左詰めにアライメントされていること
を表すコードであり、具体的には、”11111”に設
定される。fr_fl_SRIBは、picture_structureがフレー
ムピクチャ構造の場合(その値が”11”である場
合)、1に設定され、Re_Coding Information Bus macr
oblockが16ラインを超えて伝送されることを表し、pi
cture_structureがフレーム構造ではない場合、0に設
定され、Re_Coding Information Busが16ラインを超
えて伝送されることを意味する。この機構により、Re_C
oding Information Busが、空間的かつ時間的にデコー
ドされたビデオフレームまたはフィールドの対応する画
素にロックされる。
【0384】SRIB_top_field_firstは、元のビットスト
リームに保持されているtop_field_firstと同じ値に設
定され、関連するビデオのRe_Coding Information Bus
の時間的アライメントをrepeat_first_fieldとともに表
している。SRIB_repeat_first_fieldは、元のビットス
トリームに保持されているrepeat_first_fieldと同じ値
に設定される。first fieldのRe_Coding Information B
usの内容は、このフラグに示されるように繰り返される
必要がある。
【0385】422_420_chromaは、元のビットストリーム
が4:2:2または4:2:0のいずれであるかを表
す。その値の0は、ビットストリームが4:2:0であ
り、色差信号のアップサンプリングが、4:2:2のビ
デオが出力されるように行われたことを表す。その値の
0は、色差信号のフィルタリング処理が実行されていな
いことを表す。
【0386】rolling_SRIB_mb_refは、16ビットのモ
ジュロ65521を表し、この値は、毎マクロブロック毎に
インクリメントされる。この値は、フレームピクチャ構
造のフレームに渡って連続している必要がある。さもな
くば、この値は、フィールドに渡って連続している必要
がある。この値は、0から65520の間の所定の値に初期
化される。これにより、レコーダのシステムに、ユニー
クなRe_Coding Information Busの識別子を組み込むこ
とが許容される。
【0387】Re_Coding Information Bus macroblockの
その他のデータの意味は、上述した通りであるので、こ
こでは省略する。
【0388】図82に示すように、図78の256ビッ
トのRe_Coding Information Busのデータは、1ビット
ずつ、色差データのLSBであるCb[0][0],Cr[0][0],Cb
[1][0],Cr[1][0]に配置される。図82に示すフォーマ
ットにより、4ビットのデータを送ることができるの
で、図78の256ビットのデータは、図82のフォー
マットを64(=256/4)個送ることで伝送するこ
とができる。
【0389】なお、上記各処理を行うコンピュータプロ
グラムは、磁気ディスク、CD-ROM等の情報記録媒体より
なる提供媒体のほか、インターネット、デジタル衛星な
どのネットワーク提供媒体を介してユーザに提供するこ
とができる。
【0390】
【発明の効果】以上の如く、請求項1に記載のストリー
ム伝送装置、請求項4に記載のストリーム伝送方法、お
よび請求項5に記載の提供媒体によれば、過去の符号化
処理において使用された複数の符号化パラメータを、選
択的に組み合わせて、その符号化履歴情報を生成し、符
号化ストリームに重乗するようにしたので、再符号化に
伴う画像の劣化を抑制可能なストリームを、少ない容量
のメディアを介して伝送することが可能となる。
【図面の簡単な説明】
【図1】従来のトランスコーダ131の構成の例を示す
ブロック図である。
【図2】従来のトランスコーダ131の他の構成の例を
示すブロック図である。
【図3】従来の符号化装置と復号装置の配置を説明する
図である。
【図4】高効率符号化の原理を説明する図である。
【図5】画像データを圧縮する場合におけるピクチャタ
イプを説明する図である。
【図6】画像データを圧縮する場合におけるピクチャタ
イプを説明する図である。
【図7】動画像信号を符号化する原理を説明する図であ
る。
【図8】動画像信号を符号化し、復号する装置の構成を
示すブロック図である。
【図9】画像データの構成を説明する図である。
【図10】図8のエンコーダ18の構成を示すブロック
図である。
【図11】図10の予測モード切換回路52の動作を説
明する図である。
【図12】図10の予測モード切換回路52の動作を説
明する図である。
【図13】図10の予測モード切換回路52の動作を説
明する図である。
【図14】図10の予測モード切換回路52の動作を説
明する図である。
【図15】図8のデコーダ31の構成を示すブロック図
である。
【図16】ピクチャタイプに対応したSNR制御を説明す
る図である。
【図17】本発明を適用したトランスコーダ101の構
成を示すブロック図である。
【図18】図17のトランスコーダ101のより詳細な
構成を示すブロック図である。
【図19】図17の復号装置102に内蔵されるデコー
ダ111の構成を示すブロック図である。
【図20】マクロブロックの画素を説明する図である。
【図21】符号化パラメータが記録される領域を説明す
る図である。
【図22】図17の符号化装置106に内蔵されるエン
コーダ121の構成を示すブロック図である。
【図23】図18のヒストリーフォマッタ211の構成
例を示すブロック図である。
【図24】図18のヒストリーデコーダ203の構成例
を示すブロック図である。
【図25】図18のコンバータ212の構成例を示すブ
ロック図である。
【図26】図25のスタッフ回路323の構成例を示す
ブロック図である。
【図27】図25のコンバータ212の動作を説明する
タイミングチャートである。
【図28】図18のコンバータ202の構成例を示すブ
ロック図である。
【図29】図28のディリート回路343の構成例を示
すブロック図である。
【図30】図18のコンバータ212の他の構成例を示
すブロック図である。
【図31】図18のコンバータ202の他の構成例を示
すブロック図である。
【図32】図18のユーザデータフォーマッタ213の
構成例を示すブロック図である。
【図33】図17のトランスコーダ101が実際に使用
される状態を示す図である。
【図34】符号化パラメータが記録される領域を説明す
る図である。
【図35】図17の符号化装置106の変更可能ピクチ
ャタイプ判定処理を説明するフローチャートである。
【図36】ピクチャタイプが変更される例を示す図であ
る。
【図37】ピクチャタイプが変更される他の例を示す図
である。
【図38】図17の符号化装置106の量子化制御処理
を説明する図である。
【図39】図17の符号化装置106の量子化制御処理
を説明するフローチャートである。
【図40】密結合されたトランスコーダ101の構成を
示すブロック図である。
【図41】ビデオシーケンスのストリームのシンタック
スを説明する図である。
【図42】図41のシンタックスの構成を説明する図で
ある。
【図43】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図44】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図45】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図46】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図47】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図48】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図49】固定長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図50】可変長の履歴情報を記録するhistory_stream
()のシンタックスを説明する図である。
【図51】sequence_header()のシンタックスを説明す
る図である。
【図52】sequence_extension()のシンタックスを説明
する図である。
【図53】extension_and_user_data()のシンタックス
を説明する図である。
【図54】user_data()のシンタックスを説明する図で
ある。
【図55】group_of_pictures_header()のシンタックス
を説明する図である。
【図56】picture_header()のシンタックスを説明する
図である。
【図57】picture_coding_extension()のシンタックス
を説明する図である。
【図58】extension_data()のシンタックスを説明する
図である。
【図59】sequence_display_extension()のシンタック
スを説明する図である。
【図60】quant_matrix_extension()のシンタックスを
説明する図である。
【図61】copyright_extension()のシンタックスを説
明する図である。
【図62】picture_display_extension()のシンタック
スを説明する図である。
【図63】picture_data()のシンタックスを説明する図
である。
【図64】slice()のシンタックスを説明する図であ
る。
【図65】macroblock()のシンタックスを説明する図で
ある。
【図66】macroblock_modes()のシンタックスを説明す
る図である。
【図67】Iピクチャに対するmacroblock_typeの可変
長符号を説明する図である。
【図68】Pピクチャに対するmacroblock_typeの可変
長符号を説明する図である。
【図69】Bピクチャに対するmacroblock_typeの可変
長符号を説明する図である。
【図70】motion_vectors(s)のシンタックスを説明す
る図である。
【図71】motion_vector(r,s)のシンタックスを説明す
る図である。
【図72】coded_block_pattern()のシンタックスを説
明する図である。
【図73】本発明を適用したトランスコーダ101の他
の構成を示すブロック図である。
【図74】履歴情報の項目の組み合わせを説明する図で
ある。
【図75】図73のトランスコーダ101の動作を説明
するフローチャートである。
【図76】re_coding_stream_info()のシンタックスを
説明する図である。
【図77】red_bw_flag,red_bw_indicatorを説明する
図である。
【図78】Re_Coding Information Bus macroblock for
mationを説明する図である。
【図79】Picture rate elementsを説明する図であ
る。
【図80】Picture rate elementsを説明する図であ
る。
【図81】Picture rate elementsを説明する図であ
る。
【図82】Re_Coding Information Busが記録される領
域を説明する図である。
【符号の説明】
1 符号化装置, 2 復号化装置, 3 記録媒体,
12,13 A/D変換器, 14 フレームメモリ,
15 輝度信号フレームメモリ, 16 色差信号フ
レームメモリ, 17 フォーマット変換回路, 18
エンコーダ,31 デコーダ, 32 フォーマット
変換回路, 33 フレームメモリ,34 輝度信号フ
レームメモリ, 35 色差信号フレームメモリ, 3
6,37 D/A変換器, 50 動きベクトル検出回
路, 51 フレームメモリ,52 予測モード切り替
え回路, 53 演算部, 54 予測判定回路,55
DCTモード切り替え回路, 56 DCT回路, 57
量子化回路, 58可変長符号化回路, 59 送信バ
ッファ, 60 逆量子化回路, 61IDCT回路, 6
2 演算器, 63 フレームメモリ, 64 動き補
償回路,81 受信バッファ, 82 可変長復号化回
路, 83 逆量子化回路,84 IDCT回路, 85
演算器, 86 フレームメモリ, 87 動き補償回
路, 101 トランスコーダ, 102 復号装置,
103 符号化パラメータ多重装置, 105 符号
化パラメータ分離装置, 106 符号化装置, 10
6 SDTI, 111 デコーダ, 112 可変長復号
化回路, 121 エンコーダ, 122 符号化パラ
メータコントローラ, 131 トランスコーダ, 1
32 復号装置, 133 符号化装置, 134 動
き検出部, 135 符号化部
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5C059 KK01 KK22 KK34 KK35 KK36 MA23 MC11 MC38 ME02 NN01 NN28 PP05 PP06 PP07 PP16 RA01 RC11 SS07 SS11 SS20 UA02 UA05 UA33 UA38 5C063 AB07 AB09 AC01 BA12 CA11 CA12

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 所定のメディアを介して符号化ストリー
    ムを伝送するストリーム伝送装置において、 過去の符号化処理において使用された複数の符号化パラ
    メータから所定の符号化パラメータを選択的に組み合わ
    せる組み合わせ手段と、 前記組み合わせ手段により組み合わされた前記符号化パ
    ラメータの履歴を表す符号化履歴情報を生成する生成手
    段と、 前記生成手段により生成された前記符号化履歴情報を、
    前記符号化ストリームに重乗して前記メディアに伝送す
    る伝送手段とを含むことを特徴とするストリーム伝送装
    置。
  2. 【請求項2】 前記符号化ストリームは、MPEG方式で符
    号化されていることを特徴とする請求項1に記載のスト
    リーム伝送装置。
  3. 【請求項3】 前記重乗手段は、前記符号化履歴情報
    を、前記符号化ストリームにuser_dataとして重乗する
    ことを特徴とする請求項1に記載のストリーム生成装
    置。
  4. 【請求項4】 所定のメディアを介して符号化ストリー
    ムを伝送するストリーム伝送装置のストリーム伝送方法
    において、 過去の符号化処理において使用された複数の符号化パラ
    メータから所定の符号化パラメータを選択的に組み合わ
    せる組み合わせステップと、 前記組み合わせステップの処理により組み合わされた前
    記符号化パラメータの履歴を表す符号化履歴情報を生成
    する生成ステップと、 前記生成ステップの処理により生成された前記符号化履
    歴情報を、前記符号化ストリームに重乗して前記メディ
    アに伝送する伝送ステップとを含むことを特徴とするス
    トリーム伝送方法。
  5. 【請求項5】 所定のメディアを介して符号化ストリー
    ムを伝送するストリーム伝送装置に、 過去の符号化処理において使用された複数の符号化パラ
    メータから所定の符号化パラメータを選択的に組み合わ
    せる組み合わせステップと、 前記組み合わせステップの処理により組み合わされた前
    記符号化パラメータの履歴を表す符号化履歴情報を生成
    する生成ステップと、 前記生成ステップの処理により生成された前記符号化履
    歴情報を、前記符号化ストリームに重乗して前記メディ
    アに伝送する伝送ステップとを含む処理を実行させるコ
    ンピュータが読み取り可能なプログラムを提供すること
    を特徴とする提供媒体。
JP03194599A 1999-02-09 1999-02-09 ストリーム伝送装置および方法、並びに記録媒体 Expired - Fee Related JP3817951B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03194599A JP3817951B2 (ja) 1999-02-09 1999-02-09 ストリーム伝送装置および方法、並びに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03194599A JP3817951B2 (ja) 1999-02-09 1999-02-09 ストリーム伝送装置および方法、並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2000232646A true JP2000232646A (ja) 2000-08-22
JP3817951B2 JP3817951B2 (ja) 2006-09-06

Family

ID=12345113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03194599A Expired - Fee Related JP3817951B2 (ja) 1999-02-09 1999-02-09 ストリーム伝送装置および方法、並びに記録媒体

Country Status (1)

Country Link
JP (1) JP3817951B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007180776A (ja) * 2005-12-27 2007-07-12 Nec Corp 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置
US7986732B2 (en) 2003-04-10 2011-07-26 Nec Corporation Moving picture compression/encoding method conversion device and moving picture communication system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7986732B2 (en) 2003-04-10 2011-07-26 Nec Corporation Moving picture compression/encoding method conversion device and moving picture communication system
JP2007180776A (ja) * 2005-12-27 2007-07-12 Nec Corp 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置
JP4666255B2 (ja) * 2005-12-27 2011-04-06 日本電気株式会社 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置

Also Published As

Publication number Publication date
JP3817951B2 (ja) 2006-09-06

Similar Documents

Publication Publication Date Title
KR100571687B1 (ko) 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법
KR100766740B1 (ko) 부호화 히스토리 정보를 이용하는 데이터 변환 장치 및 방법
JP3724205B2 (ja) 復号装置および方法、並びに記録媒体
JP3724203B2 (ja) 符号化装置および方法、並びに記録媒体
JP3724204B2 (ja) 符号化装置および方法、並びに記録媒体
JP2001169278A (ja) ストリーム生成装置および方法、ストリーム伝送装置および方法、符号化装置および方法、並びに記録媒体
JP3890838B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、記録媒体
JP4016290B2 (ja) ストリーム変換装置およびストリーム変換方法、符号化装置および符号化方法、並びに、記録媒体
JP4139983B2 (ja) 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、ストリーム出力装置、および、ストリーム出力方法
JP3817951B2 (ja) ストリーム伝送装置および方法、並びに記録媒体
JP4539637B2 (ja) ストリーム記録装置およびストリーム記録方法、ストリーム再生装置およびストリーム再生方法、ストリーム伝送装置およびストリーム伝送方法、並びに、プログラム格納媒体
JP3817952B2 (ja) 再符号化装置および方法、符号化装置および方法、並びに記録媒体
JP4016294B2 (ja) 符号化装置および符号化方法、ストリーム変換装置およびストリーム変換方法、並びに記録媒体
JP4478630B2 (ja) 復号装置および復号方法、プログラム、並びに記録媒体
JP4482811B2 (ja) 記録装置及び方法
JP4543321B2 (ja) 再生装置及び方法
JP3724202B2 (ja) 画像データ処理装置および方法、並びに記録媒体
JP4016293B2 (ja) 符号化装置および符号化方法、並びに記録媒体
JP4016348B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016347B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP4016349B2 (ja) ストリーム変換装置およびストリーム変換方法、並びに、記録媒体
JP2000059770A (ja) データ伝送装置および方法、並びに提供媒体
JP2007124703A (ja) 復号装置および復号方法、伝送装置および伝送方法、並びに記録媒体
JP2007124704A (ja) 復号装置および復号方法、伝送装置および伝送方法、並びに、記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050922

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060605

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090623

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100623

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110623

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120623

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130623

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees