以下、図面を参照して本発明の実施形態を説明する。
図1は本発明の一実施形態に係る符号化装置の構成を示している。カメラ101で取り込まれた動画像はA/D変換器102でデイジタル信号に変換され、符号化回路103に入力される。符号化回路103では、DCT変換、量子化、可変長符号化、逆量子化、逆DCT変換、動き保証などによって、動画像信号の高能率圧縮符号化が行われ、符号化されたデータ列が生成される。符号化されたデータ列の中の重要へッダ情報は重要ヘッダ情報再構築回路104に入力され、ここに一旦保持される。符号化回路103の後にはビット列再構成回路107があり、ここで伝送路に送り出される最終的な符号列、すなわちMPEG2などに準拠したデータストリームが決定される。
ビット列再構成回路107においては、まず、ある一定のビット列単位でその先頭に同期信号回路105で決定されている同期信号が付加され、その後、指示情報挿入回路106により、そのビット列に指示情報が挿入される。この指示情報は重要へッダ情報の追加を示すものであり、この指示情報をビット列に挿入することによって、そのビット列に重要へッダ情報を追加することが可能となる。次いで、重要情報再構築回路104から必要な重要ヘッダ情報が取り出され、それがビット列に付加される。なおここでのビット列構成の詳細は、図4、図5を参照して後述する。
ビット列再構築回路107で最終的に決定したビット列は、符号化された他の音声情報、文字情報等と多重化回路108において多重化され、伝送路110に送出される。なお、ヘッダ情報内の何を重要ヘッダ情報とするかについては、符号化回路103の外からユーザが自由に指定することも可能である。
図2は本発明に関わる復号部の構成である。
伝送されてきたビット列は分離回路121において、画像情報、音声情報、文字情報等に分離される。画像情報のビット列はまず、同期検出回路122において同期を検出することにより、ビット列内の復号開始位置を検出する。その情報が復号回路124に送られ、ここから復号処理が開始、あるいは再開される。まず最も上位のレイヤのへッダ情報から復号が開始されるが、これら復号された信号はエラーチェック回路125により誤りが混入しているかどうかがチェックされる。もし誤りの混入が確認された場合は、その部分が使用出来ないため、その旨を重要情報回路126に伝えておく。次のレイヤのヘッダ情報を復号する際に、同期検出回路122において同期を検出した後、今度は同じビット列が指示情報判定回路123にも転送され、ここで指示情報の内容が調べられる。これにより、重要ヘッダ情報が追加されているか否か、および追加されている場合にはその重要ヘッダ情報の種類及び追加位置などが検出される。この検出結果に基づき、指示情報判定回路123から復号回路124に動作指示が与えられる。復号回路124では、現レイヤのヘッダ情報と、そこに付加されている重要ヘッダ情報の復号が行われる。重要ヘッダ情報の復号結果は、重要情報保持回路126に転送され、ここで一旦保持される。もしエラーチェック回路125から誤り混入確認信号が来ている場合は、上位レイヤでの重要へッダ情報が使用できないことがわかるため、復号回路124は、現レイヤで送られてきた重要ヘッダ情報を代用することにより、現レイヤに後続する符号列に対する復号処理を継続する。復号された画像などの情報は、D/A回路127においてアナログ信号に戻され、モニタ128上に表示される。
次に、本実施形態で用いられる画像符号列の構造について説明する。
図3は画画を複数のレイヤに分割する場合の概念図である。
一つのフレーム200は例えば16画素×16画素のマクロブロックを集めた多数のスライス(マクロブロックライン)201に分割される(図3(a))。一方、各スライス201はその中がいくつかのマクロブロック203の集合として構築されている(図3(b))。フレーム200として画面全体を捉えた場合が最上位レイヤとなり、その中の201ごとに捉えた場合が次のレイヤ、203レベルがさらにその次のレイヤということになる。
図4は、図3で示した各レイヤのデータ構造の一例を示した図である。
図4(a)は、図3(a)に対応する最上位のフレームレイヤのビット列であり、図4(b)は図3(b)のスライスに対応するスライスレイヤのビット列の従来例である。一方図4(c)は、図3(b)のスライスに対応するスライスレイヤについてのここで提案する新たなビット列の例である。
図4(a)に示されているように、フレームレイヤすなわち1フレームの画像符号列は、ピクチャのスタート位置を示す同期信号(ピクチャスタートコード;PSC)から始まる。PSCの後にはフレームを再生するタイミングを示すタイムレファランス(TR)、フレーム内/フレーム間等の予測符号化のタイプ情報(PT)が続き、その後には量子化ステップサイズ情報(PQ)が続く。これらTR,PT,PQは画面の全ての復号処理あるいは表示に際して必要な情報であり、これらの情報が誤り等によって破壊された場合、仮にその後のレイヤで再び同期が取れたとしても、復号あるいは表示が正しくは行われないことになる。PQの後のDataには、下位のレイヤ情報が格納されており、その典型的なビット列が図4(b)となる。
図4(b)に示されているように、スライスレイヤにおいては、各スライス201の画像符号列は、その開始を示す同期信号(SSC)から始まり、その後に予測タイプ情報(SPT)、続いてそのスライス番号(SN)、最後は量子化ステップサイズ情報(SQ)となる。その後のDataは、さらに下位のマクロブロックレイヤの情報である。
次に本第1実施形態で使用されるスライスレイヤの構造を図4(c)を用いて説明する。
上述したように図4(a)の情報は重要情報であり、この部分が使用できない場合は、仮にその下層のスライスレイヤの情報が破壊されていなくても、正しく画面を復号することが出来ない。図4(a)の情報が使用できない場合でもその下層のスライスレイヤの情報を正しく復号できるようにするためには、図4(a)のヘッダ情報の内容がスライスレイヤで分かることが必要になる。そこで、本第1実施形態では、SPT内に指示情報を示す予め定められたビットパターンの符号を用意し、その符号が現れた場合は、図4(a)で伝送したヘッダ情報を再びスライスレイヤで伝送するようにしている。この例ではTRとPTを伝送している(この場合はSPTを指示情報として使用しており、SPTが本来の予測タイプを表していないことから、PTが必要となっている)。図4(a)のフレームレイヤに誤りが混入しなかった場合は、この情報(TR,PT)は使用されないことになるが、もしフレームレイヤの情報が誤り等で破壊された場合には、図4(c)におけるこれらの情報を代用して、復号処理を続けることが可能となる。
図5は図4に代わる別の例である。
図5(a)に示すフレームレイヤは図4(a)と同様であるが、図5(b),(c)のスライスレイヤについては、そのヘッダ情報に挿入される指示情報が図4と異なっている。図4ではSPT内に指示情報を用意したが、ここでは新たなビット(IS)を挿入している。ISが次にフレームレイヤの重要情報が続くことを示している場合は、図5(c)に示されているようにISの次にTRを伝送し、復号側は、フレームレイヤの情報が誤り等で破壊された場合には、スライスレイヤのTRを利用する。この場合は、SPTが純粋に予測タイプのみを表すようになっているため、図4の場合のようにPTを再度スライスレイヤで伝送する必要はない。
図5(d)は図5(b)の変形例であり、スライスレイヤにおいて、SPTを伝送しない場合の例である。この時はISの指示によってフレームレイヤの重要情報を再送する際に、スライスレイヤでは、図5(e)のようにTRとPTが必要になる。
図6は、画面が単一のレイヤで構成される場合の概念図、およびその時のビット列の例である。
この場合は図6(a)のように、画面内が単純にブロック(マクロブロック)だけで分割される。この場合の1フレームの画像符号列は、図6(b)のように、一つの同期信号PSCのみによって画面全体の同期を取る仕組みになる。この時もTRやPTが重要であることにかわりないため、仮にこれらの情報が破壊された場合には、その後の情報が正しく伝送されても、復号を行うことが出来ない。従って何らかの方法でこれら重要情報を再度伝送する仕組みが有効である。特にランダムエラーが発生する場合、どちらの情報も破壊される確率は、一度しか情報を伝送しない場合に比べて格段に減少する。またバーストエラーが発生する場合も、これら再送情報を一度目の情報からある程度離しておくことによって、双方とも破壊される確率を減少させることができる。図6(b)の例では、重要情報TR,PT,PQ等の後にISを挿入し、この信号の指示によってこの後にTR,PT等を挿入することが可能な構成になっている。指示情報ISの位置は、上述した理由により、例えばバーストエラーの統計的な継続期間以上、重要情報から離しておくことが有効となる。
図7は本発明に関わる符号化部の他の構成例である。
カメラ301で取り込まれた画像はA/D変換器302でディジタル信号に変換され、符号化回路303に入力される。符号化回路303の後にはビット列再構成回路307があり、ここで伝送路に送り出される最終的なビット列が決定される。特に誤りが発生しやすいネットワークを使用する場合は、回復しきれなかつた誤りの伝搬を極力避けるため、予測を行わないリフレッシュという操作をある一定時間ごとに行うことが普通である。このリフレッシュは面面全体をそのモードにすることも可能であるが(この場合はそのフレームの予測タイプがフレーム内になる)、リフレッシュ(フレーム内符号化)はフレーム間符号化に比べて発生情報量が格段に多いため、特に低ビットレートの符号化伝送に使用することは難しい。そのため、1フレーム内の一部分のみにリフレッシュを行い、ある一定時間をかけて、フレーム全体に相当する位置のリフレッシュを終了するという手法を用いることが好ましい。また、誤りが復号側で検知された場合は、再送要求を出して、その部分のみを送りなおしてもらうようにすることも重要である。
これらの処理を実現するためには、符号化回路303で符号化している途中で、フレーム内/フレーム間の予測切り替えが行えることが必要である。仮にある一定の部分(ここでは一例として図3に示した特定のスライスとする)のみのリフレッシュを行う場合、このスライスの予測タイプはその前までのスライスの予測タイプと異なるため、非常に重要な情報となる。また、リフレッシュの場合は量子化ステップサイズもフレーム間予測の場合とは大きく異なるため、この情報も重要である。
図7の符号化装置においては、符号化回路303でリフレッシュのための符号化を行った場合、その情報が指示情報挿入回路305に送られる。一方前記リフレッシュのための重要情報は符号化処理変更情報回路306に予め格納されている。ビット列再構成回路307では、リフレッシュのための符号化が行われたスライスのビット列の先頭に同期信号回路304で決定されている同期信号が付加され、その後指示情報挿入回路305により、リフレッシュを行ったことを示す指示情報が挿入される。この状態で、リフレッシュされた画像を復号するために必要な前述の重要情報が追加可能となるため、符号化処理変更情報回路306から必要な重要情報が取り出され、スライスのビット列に付加される。なおここでのビット列構成例の詳細は図9で説明する。
ビット列再構成回路307で最終的に決定したビット列は他の符号化された音声情報、文字情報等と多重化回路308において多重化され、伝送路310に送出される。なおリフレッシュに際して、どの様な情報を重要情報として追加するかは符号化処理変更情報回路306の外からユーザが自由に指定することも可能である。
図8は、図7の符号化部に対応する復号装置の構成例である。伝送されてきた符号列は分離回路320において、画像情報、音声情報、文字情報等に分離される。画像情報のビット列はまず、同期検出回路321において同期を検出することにより、ビット列内の復号開始位置が検出される。その情報が復号回路323に送られ、ここから復号処理が開始、あるいは再開される。さらにビット列は指示情報判定回路322にも転送され、ここで指示情報の内容が判定される。リフレッシュが実現可能な構成の場合、この指示情報によって、復号処理の種類をフレーム内/フレーム間予測符号化タイプに合わせて変更できれば良いため、復号回路323内のフレーム内復号器324、フレーム間復号器325を切り替えるスイッチを、指示情報判定回路322からの信号により切り替える。そして、リフレッシュのためのスライスについては、フレーム内復号器324によって復号処理が実行される。このフレーム内復号処理は、前述の量子化ステップサイズなどの重要情報に従って制御される。復号回路323のフレーム内復号器324またはフレーム間復号器325で復号された画像情報は、D/A回路326においてアナログ信号に戻された後、モニタ327上に表示される。
図9はリフレッシュを行う場合のフレーム内の様子と、それに対応する画像符号列の構造を示した図である。
フレーム351は複数のスライスに分割されるが、ここでは例えばフレーム間符号化を行うスライス352の次に、リフレッシュのためのスライス353が伝送される場合を考える(図9(a))。その次のスライス354は再びフレーム間符号化となる。この時に伝送されるビット列の様子を図9(b)に示す。このビット列内の各部分361、362、および363は、それぞれ図9(a)のスライス352、353、および354に相当する。リフレッシュのためのスライスのビット列に含まれているSPT2内には、フレーム内符号化を使用したリフレッシュであることを示す指示情報が挿入される。その後のSQ2はリフレッシュ用に用意された量子化ステップサイズを示している。また、Data2は全て、フレーム内符号化の結果として復号される。
図10は重要情報の内容に関する別の例を示した図であり、図10(a)はフレーム、図10(b)はスライスレイヤのビット列である。
スライスレイヤにおいて、指示情報となるSPT後に来る情報は図4ではTRであった。これは表示のタイミングをそのまま表現しても良いが、場合によってはその表現に関わるビット数が多大になることもある。これを避けるために、図10では、圧縮符号化で一般に行われる処理である、その情報に対応する、以前に伝送した情報との差分を符号化する、という手法が採用されている。
すなわち、TRとして0から255までを考えた場合、これらをそのまま表現するには8ビットを要する。しかしこれを例えば、3フレーム以上のコマ落としがないという拘束条件が成り立つ場合を考えると、この時、表示する際に互いに隣合うフレームは、最大で3フレーム以上は離れないことになるから、相対的なタイムレファランスとしては4つの状態(コマ落としの数が0、1、2、3)が表現できれば十分である。この時はTRとして2ビットあれば良いことになり、ビット数の削減が可能になる。ただしこの場合は、すでに復号された直前の情報が必要となるため、この部分のTRのみでは表示タイミングが確定しない。
図10(b)は、上で説明した差分のTR(図ではDTR)を重要ヘッダ情報としてスライスレイヤにて伝送する場合のビット列の例である。DTRが復号された後、すでに復号されている前フレームの図10(a)に相当するフレームレイヤのピット列のTR情報にDTRを加えることによって、現フレームの真のTRを算出することができる。
図11は上記図10のような場合の復号処理を行う回路を示した図である。この図は、図2の復号部分と入れ換えることによって動作する。まず分離回路121から送られてきたビット列は、同期検出回路122により復号開始位置がわかり、フレームレイヤのTR,PT等が復号器401で復号される。同時にこの復号されたTR情報はメモリ2(404)に格納される。また、これらへッダ情報はエラーチェック回路402で誤りがチェックされ、その結果がメモリ1(403)に転送される(以上図10(a)についての処理)。一方、図10(b)のスライスレイヤについては、まず指示情報判定回路123によってSPTが判定され、その後のDTR,PTが401で復号される。また、DTRは403に転送される。もし402からの情報により、その上位のフレームレイヤのヘッダ情報(TR)が誤り等により使用できないことが分かった場合は、403から404ヘリクエスト信号を出して、ここにすでに格納されている前フレームのTR情報を403に転送する。403内ではこのTRと、現フレームにおける上記DTRとを加算して、現フレームのTRを作成し、これを401に戻して復号処理を継続するとともに、このTR情報を404にも転送して、次のフレームでの同様の処理に使用できるようにしておく。
図12は、他のヘッダ情報のための用意されているビットパターンの中で未使用のパターンを指示情報として使用する場合の例である。
ここでは、SPTとして2ビットのビットパターンが予め割り当てられている場合を想定する。予測タイプはI(フレーム内符号化)、P(順方向予測符号化)、B(双方向予測符号化)の3種類であり、それぞれ00、01、10のビットパターンが割り当てられている。従って“11”に対する情報が未使用であるため、この符号を指示情報として使用する。つまり、SPTが“11”である場合は予測タイプではなく、その後に重要情報が続くことを示している。なお指示情報が示す重要情報はへッダ情報(TR,PT,PQ)あるいはその一部でも良いし、あるいはその後のデータ(例えば図4(a)のData)を含んでも良い。これらはシステムの要求や、ネットワークの誤り発生頻度、必要な符号化レート等によって変更することが可能である。
以上のように、本第1実施形態では、ヘッダ情報のような重要情報が消失しても、それを復元するための情報がある一定の指示情報の指示に従って追加伝送されるため、重要ヘッダ情報を誤りなどが発生してそれを復号できない場合でも、その後に転送される指示情報とその指示情報で指定される復元用情報を用いて、復号処理を正しく継続することが可能となる。
次に、本発明の第2実施形態について説明する。
本第2実施形態に係る符号化装置の全体構成は図1の符号化装置と同一である。本第2実施形態においては、画像信号は、図13のように各フレーム(ピクチャまたはVOPとも呼ぶ)はマクロブロックと呼ばれる小領域(図中点線の領域)に分割されて符号化が行われる。さらに、画像信号を符号化した画像符号列に誤りが混入した時にそのフレーム内の個々の符号列でも同期が回復できるように、フレームを1ないしは複数マクロブロックからなるビデオパケット(図中実線の領域)と呼ばれる単位に区切って符号化が行われる。
図14は、符号化装置から出力される画像符号列の1例を示したものである。図14(a)は1つのフレーム(VOP)全体の画像符号列である。VOPの先頭には一意復号可能な同期符号であるVOP start code(図中VSC)と、そのVOPに関するヘッダ情報を含むVOPヘッダ(図中VOP header)がつけられる。
VOPの符号列はさらに、マクロブロックデータ(図中MBdata)を含むビデオパケット毎の符号列に区切られている。各ビデオパケットの画像符号列の先頭にはresync marker(図中RM)と呼ばれる一意に復号可能な同期符号と、それに続くビデオパケットヘッダ(図中Video packet header)が付けられる。ただし、VOPの最初のビデオパケットにはVOP start codeとVOP headerが付いているので、ここにはresync marker(RM)とビデオパケットヘッダ(Video packet header)は付けない。
図14(b)は、VOPヘッダに含まれるヘッダ情報の例を示したものである。図中、modulo time base(MTB)とVOP time increment(VTI)は、そのVOPの時刻を示す情報である。この時刻情報は、そのVOPのフレームを復号及び表示するタイミングを規定するために使用される。
ここで、図15を用いて、VOPの時刻と、modulo time base(MTB)、VOP time increment(VTI)との関係を説明する。VOP time incrementは時刻をミリ秒精度で表す情報であり、VOPの時刻を1000ミリ秒(1秒)で剰余を取った値が入る。modulo time baseは時刻を秒精度で表す情報であり、直前に符号化したVOPと同じ秒ならば“0”になり、異なる秒ならばその差分値になる。
例えば、図15のようにVOPの時刻(ミリ秒)が0,33,700,1000,1300,1833,2067の場合、VOP time incrementはそれぞれ1000の剰余、すなわち、0,33,700,0,300,833,67である。また、modulo time baseが1となるのは、時刻を1000で割って小数点以下を切り捨てた値(図の例では0,0,0,1,1,1,2となる)が、直前のVOPと異なる場合、すなわち、時刻=0,1000,2067に相当するVOPで“1”になり、それ以外のVOPでは“0”になる。また、modulo time baseは可変長符号を用いた符号化を行ってもよい。例えばmodulo time baseが0,1,2…のときに、可変長符号をそれぞれ“1”,“01”,“001”…のように対応づけて用いることも可能である。
また、図14(b)のVOP予測モード(図中VPT)はそのVOP全体の予測符号化モード(I,B,P)を示す情報である。VOP量子化パラメータ(図中PQ)はそのVOPの符号化に用いられた量子化ステップ幅を示す情報である。ただし、VOPを複数のビデオパケットに分割して符号化する場合は、ビデオパケットごとに量子化ステップ幅を変更可能であるため、最初のビデオパケットの量子化ステップ幅を示す情報としてもよい。
図14(c)および(d)は、ビデオパケットに付加されるヘッダ情報であるビデオパケットヘッダ(Video packet header)に含まれる情報の例を示したものである。マクロブロック番号(図中MBA)はそのビデオパケットの最初のマクロブロックの番号を示す情報である。ビデオパケット量子化パラメータ(図中SQ)はそのビデオパケットの量子化ステップ幅を示す情報である。ヘッダ拡張コード(図中HEC)は、ビデオパケットヘッダに二重化(多重化)する重要情報が追加されているかどうかを示すフラグである。HECが“0”のときは図14(c)のように重要情報は追加されておらず、またHECが“1”のときは図14(d)のように重要情報が追加されている。図14(d)の例では、画像フレームの時刻情報を復元できるようにするために、重要情報として、VOPの時刻を表すmodulo time base(図中MTB)とVOP time increment(図中VTI)がそのまま付加されている。
図16は図14の画像符号化列に対応した復号化装置の構成を示すブロック図である。ここでは、図2の復号化装置と相対応する部分に同一の符号を付してその差異のみを説明する。図16の復号化装置においては、図2の復号化装置の構成に加え、VOPヘッダ復号回路601、ビデオパケットヘッダ復号回路602、時刻復号回路603、一時記憶回路621が設けられている。
同期検出回路122でVOP start codeが検出されると、復号回路124にこれが検出されたことを示す信号が通知される。復号回路124はその通知に応答して、VOP start codeに引き続くVOPヘッダが含まれる符号列、すなわち最初のビデオパケットをVOPヘッダ復号回路601に送り、そこでVOPヘッダの復号が実行させる。VOPヘッダ復号回路601では、VOPヘッダに含まれる時刻、VOP符号化モード、VOP量子化パラメータの復号が行われる。このうち、時刻については、modulo time baseおよびVOP time incrementが時刻復号回路603に送られ、そこで時刻の復号が行われる。
時刻復号回路603では、まず、送られてきたmodulo time baseおよびVOP time incrementが復号されるとともに、誤りがないかのチェックが行なわれる。誤りのチェックは、modulo time baseおよびVOP time incrementから復号された時刻が、実際に存在しうる時刻であるかを検証することによって行う。例えば、符号化した画像信号がNTSC信号の場合にはフレームレートは30Hzであるため、時刻は1/30秒(=33ミリ秒)の倍数の値を取るはずである。したがって、復号された時刻が1/30秒の倍数でなかった場合にはmodulo time baseおよびVOP time incrementに伝送路誤りがあると判定する。同時に、PAL信号の場合には1/25秒の倍数になっているかでチェック可能である。
このようなエラーチェックのための基準値は、画像信号の種類(PAL,NTSC,CIF等)ごとに符号化装置、復号化装置であらかじめ定められた値を用意しておいてもよいし、(図示しない)システム情報の符号列にこれを示す情報を入れて示してもよいし、画像符号列の一部に入れてもよい。
時刻復号回路603での時刻の復号および誤りチェックが終わると、VOPヘッダ復号回路601には、誤りがあると判定されたときはそれを示す信号が、誤りがないと判定されたときは復号された時刻を示す信号が送られる。VOPヘッダ復号化回路601は、時刻に誤りがなかった場合には、一時記憶回路621にこの時刻を示す情報を格納した後、その情報と他の情報とをあわせて復号回路124に送る。一方、時刻に誤りがあったときには、そのVOPヘッダが含まれる最初のビデオパケットの符号列は破棄され、次のビデオパケットの復号が開始される。
同期検出回路122でresync marker(RM)が検出されると復号回路124にそれらが検出されたことを示す信号が伝えられる。復号回路124はそれに応じて、resync marker(RM)に引き続くビデオパケットヘッダが含まれる符号列、つまり2番目以降のあるビデオパケット、をビデオパケットヘッダ復号回路601に送り、そこでビデオパケットヘッダの復号を実行させる。ビデオパケットヘッダ復号回路602では、ビデオパケットヘッダに含まれるマクロブロック番号(MBA)、ビデオパケット量子化パラメータ(SQ)、ヘッダ拡張コード(HEC)の復号が行われる。
もし、ヘッダ拡張コード(HEC)=“1”だった場合には、それに引き続くmodulo time baseおよびVOP time incrementを時刻復号回路603に送り、ここで時刻の復号を行う。時刻復号回路603では、先のVOPヘッダの復号の場合と同様に、送られてきたmodulo time baseおよびVOP time incrementを復号するとともに、誤りがないかチェックを行う。時刻復号回路603での時刻の復号および誤りチェックが終わると、ビデオパケットヘッダ復号回路602には、誤りがあると判定されたときはそれを示す信号が、誤りがないと判定されたときは復号された時刻を示す信号が送られる。ビデオヘッダ復号化回路602では、時刻に誤りがあったときには、そのVOPヘッダが含まれるビデオパケットの符号列は破棄し、次のビデオパケットの復号を行う。
一方、時刻に誤りがなかった場合には、第1の一時記憶回路621に格納されている時刻、すなわち直前に復号されたビデオパケットで得た時刻との比較を行い、現在のビデオパケットが含まれるVOPの判定を行う。もし同一の時刻であれば、そのビデオパケットは直前に復号されたビデオパケットと同一のVOPに含まれていると判定し、復号回路124に復号されたビデオパケットヘッダの情報を示す信号を送って復号を行う。一方、復号された時刻と一時記憶回路621に格納されている時刻が異なる場合には、これから復号しようとするビデオパケットは、直前に復号されたビデオパケットとは異なるVOPに含まれていると判定する。この場合は、一時記憶回路621に復号された時刻を記録するとともに、復号回路124に対して、直前のビデオパケットとこのビデオパケットとの間にVOP領域があり、このビデオパケットから新しいVOPとして復号することを示すVOP分割信号、復号された時刻、および、復号されたビデオパケットヘッダの情報を示す信号を送る。復号回路124ではVOP分割信号を受け、直前に復号されたビデオパケットでVOPが終了したとみなしてVOP復号終了処理を行い、これから復号しようとするビデオパケットが次のVOPの最初のビデオパケットとみなしてVOP復号開始処理を行い、引き続きビデオパケットの復号を行う。
このような処理を行うことにより、たとえVOP start codeおよびVOPヘッダが誤りによって失われてしまっても、ビデオパケットヘッダの時刻情報によってVOP境界を判定できるとともに、正しい復号時刻を得ることができるため、復号画像の品質が向上する。
図17は、VOPヘッダおよびビデオパケットヘッダの第2の例を示したものである。図14の例と比較すると、ヘッダに含まれる情報に誤りが入ったかどうかをチェックするCRC検査ビットが付加されている点が異なる。
図17(a)はVOPヘッダである。図中、CW1はVOPヘッダに含まれるmodulo time base、VOP time increment、VOP符号化モード、VOP量子化パラメータに対するCRCチェックを行うための検査ビットである。
図17(b)および(c)はビデオパケットヘッダである。図中、CW2は、マクロブロック番号、ビデオパケット量子化パラメータ、および、ヘッダ拡張コードに対するCRCチェックを行うための検査ビットである。また、CW3はHEC=“1”、すなわち、重要情報が付加されたビデオパケットヘッダのみに存在し、重要情報、すなわち、modulo time baseおよびVOP time incrementに対するCRCチェックを行うための検査ビットである。
図18は図17の画像符号列に対応する復号化装置の構成である。図16の復号化装置に相対する部分に同一の符号を付してその違いのみを説明すると、CRC判定回路605が加わっている点が異なる。
VOPヘッダ復号回路601では、VOPヘッダに含まれる情報の復号を行うと共に、CRC検査ビットCW1を用いてVOPヘッダのCRCチェックを行う。もし、CRCチェックで誤りありと判定された場合は、そのVOPヘッダおよびそれが含まれるビデオパケットを破棄して、次のビデオパケットの復号に移る。
ビデオパケットヘッダ復号回路602では、ビデオパケットヘッダに含まれる情報の復号を行うと共に、CRC検査ビットCW2を用いてビデオパケットヘッダのCRCチェックを行う。もし、CRCチェックで誤りありと判定された場合は、そのビデオパケットヘッダおよびそれが含まれるビデオパケットを破棄して、次のビデオパケットの復号に移る。もし、誤りなしと判定された場合には、復号されたヘッダ拡張コードHECが“1”であった場合には、それに引き続く追加された重要情報(MTBおよびVTI)を復号する。そしてCRC検査ビットCW3を用いて重要情報に誤りが入っているか否かがチェックされる。もし、誤りがなければ前述の図16の復号化装置の場合と同様に、VOPヘッダや他のビデオパケットヘッダ中の時刻情報との比較、VOP分割処理等を行う。
以上説明したように、第2実施形態においては、画像フレームの時刻を表す情報をそのフレーム内のビデオパケットに付加しているため、VOPヘッダに含まれる時刻情報が誤りによって失われてもビデオパケットヘッダ中の重要情報により正しい時刻を復号できるため、復号装置において正しい時刻に画像を再生表示することができる。
また、ビデオパケットヘッダの時刻情報と、VOPヘッダあるいは他のビデオパケットヘッダの時刻情報を比較してVOP境界判定を行うことにより、VOP start codeが誤りによって失われてもVOPの境界を正しく復号でき、復号画像の品質が向上する。
上述の例において、重要情報が含まれるかどうかは各ビデオパケット毎にヘッダ拡張コード(HEC)によって示される。例えば、すべてのビデオパケットヘッダでHEC=“1”として重要情報を入れるようにしてもよいし、一部のビデオパケットのみHEC=“1”としてもよい。伝送路誤りの状態に応じて重要情報を入れるビデオパケットの数を制御することにより、少ないオーバーヘッドで効率的に重要情報を保護することができる。
例えば、上述の例のようにmodulo time base(MTB)とVOP time increment(VTI)を用いて復号時刻を表す場合には、MTB=0の場合には時刻情報が正しく復号できなくても復号時刻の誤差は1秒以下だが、MTBが0以外のVOPでMTBが正しく復号されないとそれ以降のVOPで復号時刻に秒単位の大きな誤差が生じてしまう。このため、MTBが0のVOPでは全てのビデオパケットでHEC=“0”とするか少数のビデオパケットでのみHEC=“1”とし、MTBが1以外のVOPでは全てないしは多くのビデオパケットでHEC=“1”としてMTBが正しく復号されるようにしても良い。
第2の実施形態では、二重化する重要情報として、時刻を表す情報(modulo time base,VOP time increment)を用いる例を示したが、この情報以外にも、例えば、符号化モードを表す情報、量子化パラメータを表す情報、動き補償に関する情報、動きベクトル情報等を合わせて二重化してもよい。
複数のVOP予測モード(例えば、フレーム内予測VOP(I−VOP)、前方予測VOP(P−VOP)、前方後方予測VOP(B−VOP)等)をVOP毎に切り替えて符号化する場合には、このVOP予測モードに関する情報が正しく復号できないとそのVOPを復号することができない。VOP予測モードもビデオパケットヘッダに二重化情報として含めることにより、VOPへッダのVOP予測モードが誤りによって失われても、ビデオパケットヘッダ中の二重化情報に含まれているVOP予測モード情報をもとにそのVOPを復号することが可能である。以下、そのような例について説明する。
図27は、第2の実施形態におけるビデオパケットヘッダの第3の例を示したものである。1つのフレーム(VOP)全体の画像符号列およびVOPへッダはそれぞれ図14(a)および(b)と同一である。図27(a)および(b)はそれぞれ、へッダ拡張コードHEC=“0”およびHEC=“1”の時のビデオパケットヘッダである。図14のビデオパケットヘッダに比べ、HEC=“1”の時に、時刻を表す情報(図中MTB,VTI)に加え、VOP予測モード(図中VPT)が含まれている点が異なる。
図27の画像符号列に対応する復号化装置はその全体構成は図16と同じである。ただし、ビデオパケットヘッダ復号回路602の動作が異なる。また、一時記憶回路621に時刻情報(modulo time base,VOP time increment)だけでなく、VOP予測モード情報(VPT)も記録する点が異なる。以下、この相違点を中心に復号化回路の動作を説明する。
同期検出回路122でVOP start codeが検出されると復号回路124にこれが検出されたことを示す信号が伝えられる。復号回路124はそれに応じて、VOP start codeに引き続くVOPへッダが含まれる符号列をVOPヘッダ復号回路601に送り、VOPへッダの復号が行われる。VOPへッダ復号回路601では、VOPヘッダに含まれる時刻情報(MTB,VTI)、VOP符号化モード情報(VPT)、VOP量子化パラメータ(PQ)の復号が行われる。このうち、時刻については、modulo time base(MTB)およびVOP time increment(VTI)を時刻復号回路603に送り、ここで時刻の復号が行われる。
時刻復号回路603では、まず、送られてきたmodulo time baseおよびVOP time incrementを復号するとともに、誤りがないかチェックを行う。誤りのチェックは、modulo time baseおよびVOP time incrementから復号された時刻が、実際に存在しうる時刻であるかを検証することによって行う。例えば、符号化した画像信号がNTSC信号の場合にはフレームレートは30Hzであるため、時刻は1/30秒(=33ミリ秒)の倍数の値を取るはずである。したがって、復号された時刻が1/30秒の倍数でなかった場合にはmodulo time baseおよびVOP time incrementに伝送路誤りが有ると判定する。同様に、PAL信号の場合には1/25秒の倍数になっているかでチェック可能である。
画像信号の種類(PAL,NTSC,CIF等)は符号化装置、復号化装置であらかじめ定められた値を用いてもよいし、(図示しない)システム情報の符号列にこれを示す情報を入れて示してもよいし、画像符号列の一部に人れていも良い。
時刻復号回路603での時刻の復号および誤りチェックが終わると、VOPヘッダ復号回路601に、誤りが有ると判定されたときはそれを示す信号が、誤りが無いと判定されたときは復号された時刻を示す信号が送られれる。VOPヘッダ復号化回路601では、時刻に誤りがなかった場合には、さらにVOP予測モード情報(VPT)を復号する。もし、VOP予測モード情報にも誤りがなかった場合は、時刻情報とVOP予測モード情報を一時記憶回路621に格納し、他の情報とあわせて復号回路124に送る。一方、VOPヘッダに含まれる時刻情報やVOP予測モード情報に誤りがあったときには、そのVOPヘッダが含まれるビデオパケットの符号列は破棄し、次のビデオパケットの復号を行う。
同期検出回路122でresync markerが検出されると復号回路124にそれらが検出されたことを示す信号が伝えられる。復号回路124はそれに応じて、resync markerに引き続くビデオパケットヘッダが含まれる符号列をビデオパケットヘッダ復号回路601に送り、ビデオパケットヘッダの復号が行われる。ビデオパケットヘッダ復号回路601では、ビデオパケットヘッダに含まれるマクロブロック番号、ビデオパケット量子化パラメータ、へッダ拡張コードの復号を行う。
もし、へッダ拡張コードHEC=“1”だった場合には、それに引き続くmodulo time baseおよびVOP time incrementを時刻復号回路603に送り、ここで時刻の復号を行う。時刻復号回路603では、先のVOPヘッダの復号の場合と同様に、送られてきたmodulo time baseおよびVOP time incrementを復号するとともに、誤りがないかチェックを行う。時刻復号回路603での時刻の復号および誤りチェックが終わると、ピデオパケットヘッダ復号回路602に、誤りが有ると判定されたときはそれを示す信号が、誤りが無いと判定されたときは復号された時刻を示す信号が送られる。ビデオパケットヘッダ復号化回路602では、時刻に誤りがあったときには、そのビデオパケットヘッダが含まれるビデオパケットの符号列は破棄し、次のビデオパケットの復号を行う。
一方、時刻に誤りがなかった場合には、さらに時刻情報に引き続くVOP予測モード情報の復号を行う。もし、VOP予測モード情報にも復号誤りが無かった場合には、復号された時刻情報と、第1の一時記憶回路621に格納されている時刻との比較を行い、そのビデオパケットが含まれるVOPの判定を行う。もし同一の時刻であれば、そのビデオパケットは直前に復号されたビデオパケットと同一のVOPに含まれていると判定し、復号回路124に復号されたビデオパケットヘッダの情報を示す信号を送って復号を行う。一方、復号された時刻と一時記憶回路621に格納されている時刻が異なる場合には、これから復号しようとするビデオパケットは、直前に復号されたビデオパケットとは異なるVOPに含まれていると判定する。この場合は、一時記憶回路621に復号された時刻情報およびVOP予測モード情報を記録するとともに、復号回路124に、このビデオパケットがVOPの最初であることを示すVOP分割信号、復号された時刻、および、復号されたビデオパケットヘッダの情報を示す信号を送る。復号回路124ではVOP分割信号を受け、直前に復号されたビデオパケットでVOPが終了したとみなしてVOP復号終了処理を行い、これから復号しようとするビデオパケットが次のVOPの最初のビデオパケットとみなしてVOP復号開始処理を行い、引き続きビデオパケットの復号を行う。
なお、ビデオパケットヘッダに含まれているVOP予測モード情報と、一時記憶回路621に記録されているVOP予測モード情報が異なる場合には、そのビデオパケットはビデオパケットヘッダに含まれているVOP予測モードを用いて復号処理を行っても良い。これにより、VOPヘッダに含まれているVOP予測モード情報が正しく復号できなかった場合にもそのビデオパケットを復号することが可能である。
このような処理を行うことによりVOP start codeおよびVOPヘッダが誤りによって失われてしまってもビデオパケットヘッダの時刻情報およびVOP予測モード情報によってVOP境界とVOP予測モードを正しく識別できるため、復号画像の品質が向上する。
なお、VOPへッダやビデオパケットヘッダを復号する際に、画像符号列中に(図示しない)誤り検査情報(CRC、スタッフィングビット等)がある場合や、伝送路/蓄積媒体からの符号列を受信する回路、あるいは、受信した符号列を画像符号列、音声符号列等に分離する逆多重化回路において符号列中に誤りがあることを判定する機能がある場合には、これらによって誤り判定された結果を用いて復号されたVOPヘッダやビデオパケットヘッダに誤りがあるかを判定するようにしても良い。もし、これによって復号された情報に誤りがあると判定された場合には、それらの情報は画像復号には用いないようにする。また、誤りがあると判定された情報が含まれるビデオパケットは復号せずに破棄するようにしても良い。
図28は、第2の実施形態におけるビデオパケットヘッダの第4の例を示したものである。1つのフレーム(VOP)全体の画像符号列およびVOPヘッダはそれぞれ図14(a)および図17(a)と同一である。図28(a)および(b)はそれぞれ、HEC=“0”およびHEC=“1”の時のビデオパケットヘッダである。図17(b),(c)のビデオパケットヘッダに比べ、HEC=“1”の時に、時刻を表す情報(図中MTB,VTI)に加え、VOP予測モード(図中VPT)が含まれている点が異なる。
図28の画像符号列に対応する復号化装置はその全体構成は図18と同じである。ただし、ビデオパケットヘッダ復号回路602の動作が異なる。また、一時記憶回路621に時刻情報(modulo time base,VOP time increment)だけでなく、VOP予測モード情報(VPT)も記録する点が異なる。以下、この相違点を中心に復号化回路の動作を説明する。
VOPヘッダ復号回路601では、VOPへッダに含まれる情報の復号を行うと共に、CRC検査ビットCW1を用いてVOPヘッダのCRCチェックを行う。もし、CRCチェックで誤りありと判定された場合は、そのVOPヘッダおよびそれが含まれるビデオパケットを破棄して、次のビデオパケットの復号に移る。
ビデオパケットヘッダ復号回路602では、ビデオパケットヘッダに含まれる情報の復号を行うと共に、CRC検査ビットCW2を用いてビデオパケットヘッダのCRCチェックを行う。もし、CRCチェックで誤りありと判定された場合は、そのビデオパケットヘッダおよびそれが含まれるビデオパケットを破棄して、次のビデオパケットの復号に移る。もし、誤り無しと判定された場合には、復号されたヘッダ拡張コードHECが1であった場合には、それに引き続く二重化された重要情報(図中MTB,VTIおよびVPT)を復号する。そして、CRC検査ビットCW3を用いて二重化重要情報に誤りが入っているかチェックする。もし、誤りがなければ前述の図16の復号化装置と同様に、VOPへッダや他のビデオパケットヘッダ中の時刻情報との比較、VOP分割処理等を行う。
以上説明したように、時刻を表す情報を重要情報に含めているため、VOPヘッダに含まれる時刻情報が誤りによって失われてもビデオパケットヘッダ中の重要情報により正しい時刻を復号できるため、復号装置において正しい時刻に画像を再生表示することができる。また、ビデオパケットヘッダの時刻情報と、VOPヘッダあるいは他のビデオパケットヘッダの時刻情報を比較してVOP境界判定を行うことにより、VOP start codeが誤りによって失われてもVOPの境界を正しく復号でき、復号画像の品質が向上する。
また、VOP予測モードもビデオパケットヘッダに二重化情報として含めることにより、VOPへッダのVOP予測モードが誤りによって失われても、ビデオパケットヘッダ中の二重化情報に含まれているVOP予測モード情報をもとにそのVOPを復号することが可能である。
また、第2の実施形態において、VOPヘッダ、ビデオパケットヘッダに同期符号(Picture start code,VOP start code,Resync marker等)と同一のパターンが生じないようにマーカービットと呼ばれるビットを付加してもよい。
図31は図14の符号列にマーカービットを付加した例である。図31中、VOP time increment(VTI)の後ろにある“marker”がマーカービットであり、予め定められたビット値(例えば“1”)を持つ。
図32は、マーカービットのないビデオパケットヘッダとマーカービットのあるビデオパケットヘッダを比較して示したものである。図32(a)のように、同期符号の一つであるresync markerを“00000000000000001”というビットパターンを持つ17ビットの符号語とする。また、VOP time increment(VTI)は10ビットの任意の値を持つ符号語であり、MTBは最後のビットが0の可変長符号である。
図32(b)のようにマーカービットがない場合にはVTIが0の連続するパターンになった場合にはresync markerと同一のビットパターンが生じてしまう。図32(b)の例では、MTBの“0”とVTIの“0000000000”とそれに続く“000001”というビット列でresync markerと同一のパターンが生じてしまっている。
これに対し図32(c)のようにVTIの後ろにマーカービット“1”を付加することにより、ビデオパケットヘッダ中の連続する0ビットの数が最大11ビット(MTBの最後の1ビットの0とVTIの“0000000000”)に抑えられるため、resync markerと同一のビットパターンを生じることはない。
なお、マーカービットは予め定められたビット値(図32の例では“1”)を持つため、復号化装置においてマーカービットがこの予め定められた値かどうかを判定することにより、VOPヘッダ、ビデオパケットヘッダに伝送路誤りがあるかどうかを判定するようにしてもよい。
第2の実施形態で示した図17、図27、図28等の他の符号列にも同様にマーカービットを付加して用いることができる。
また、このような符号列の構造はスライスレイヤを用いた場合にも適用できる。図33は第1の実施形態におけるスライス構造を用いた符号列の別の例を示したものである。
図33中、SSCはスライス同期符号、EPBは同期符号(例えばSSC)以外の部分が同期符号と同一のビットパターンにならないように付加されるビット値“1”を持つビット、MBAはそのスライスの最初のマクロブロックの番号を示す情報、SQUATNTはそのスライスで用いられる量子化パラメータ、GFIDはピクチャヘッダに含まれる情報またはその一部を示すための情報である。また、同期符号SSCを符号列中のバイト位置にそろえる場合にはスタッフィングビットSSTUFがSSCの前に付加される。Macroblock Dataは各マクロブロックの情報である。
TRが二重化された重要情報であり、時刻情報(Temporal Reference)を示している。TRIはTRが付加されたかどうかを示す1ビットのフラグで、TRI=1の時にTRが付加される。
次に、本発明の第3実施形態について説明する。
図19は本第3実施形態に係る動画像・音声符号化装置の全体構成を示す。圧縮符号化する動画像信号101Aおよび音声信号102Aはそれぞれ動画像符号化装置111Aおよび音声符号化装置112Aに入力され、それぞれ圧縮されて動画像符号列121Aおよび音声符号列122Aが出力される。動画像符号化装置および音声符号化装置の構成については、文献(安田浩編著、“マルチメディア符号化の国際標準”、丸善(平成6年))等の詳しいのでここでは省略する。
動画像符号列121Aおよび音声符号列122Aは、データ符号列103Aと共に、多重化装置130Aで多重化され、多重化符号列135Aが出力される。
図20は、図19の動画像・音声符号化装置に対応する動画像・音声復号化装置の全体構成を示す図である。動画像・音声符号化装置からの多重化符号列185Aは、多重分離装置180Aで分離され、動画像符号列171A、音声符号列172Aおよびデータ符号列173Aが出力される。動画像符号列171A、音声符号列172Aはそれぞれ動画像復号化装置161Aおよび音声復号化装置162Aに入力され、そこでそれぞれ復号されることにより、再生動画像信号151Aおよび再生音声信号152Aが出力される。
図21(a)および(b)は、動画像符号列121Aの2つの例を示したものである。動画像符号化装置111Aにおける符号化はピクチャ(フレーム,VOP)単位に行われて動画像符号列121Aが作成される。ピクチャの中はさらにマクロブロックと呼ばれる小領域に分割されて符号化が行われる。
1ピクチャの動画像符号列はピクチャのスタート位置を示す一意復号可能な符号であるピクチャスタートコード(PSC)201A(VOPスタートコードともいう)からはじまる。
ピクチャスタートコード201Aの後ろにはピクチャヘッダ(PH)202A(VOPヘッダともいう)が続く。ピクチャヘッダ202Aには、ピクチャの時間的位置を示すPTR(Picture Temporal Reference)221A、ピクチャ全体の符号化モードを示すピクチャ符号化モード(PCM)222A、ピクチャ量子化ステップサイズ(PQ)223Aが含まれている。ピクチャヘッダ202Aの後ろには各マクロブロックの符号化データ203Aが続く。
図21(b)は複数のマクロブロックをまとめたスライス毎に符号化を行った例を示したものである。
各スライスの符号列においては、スライスのスタート位置を示す一意復号可能な符号である再同期マーカー(RM)210A、スライスヘッダ(SH)211Aが続き、さらに各マクロブロックのマクロブロックデータ(MB)203Aが続く。スライスヘッダ211Aにはスライスの最初のマクロブロックの番号を示すSMBN(Slice Macroblock Number)231A、量子化ステップサイズ(SQ)232Aが含まれている。
再同期マーカー210Aおよびスライスヘッダ211Aは、あらかじめ定められた一定ビット毎に付加しても良いし、画像フレーム中の特定の位置に付加するようにしてもよい。このようにスライス構造をもつ符号化を行った場合には、動画像符号列中に誤りが混入しても、一意復号可能な再同期マーカー210Aで再同期をとることができ、誤りが伝播する範囲をそのスライスの中に収めることができるため、伝送路誤りがあったときの再生画像の品質が向上する。
図22は、多重化器で多重化された多重化符号列135Aの一例を示す図である。多重化符号列135Aは、動画像符号列(VIDEO)、音声(オーディオ)符号列(SPEECH)、データ,制御情報符号列(DATA)が所定のサイズごとにそれぞれ多重化されている複数の多重パケットから構成されている。図22中、301A,302A,303Aで示す区間がそれぞれひとつの多重化パケットである。これは、全ての多重化パケットが同じ長さ(ビット数)の固定長パケットでも良いし、多重化パケット毎に長さの異なる可変長パケットでも良い。
各多重化パケットは最初に多重化パケットのスタート位置を示す多重化スタートコード(MSC)310Aが付き、その後ろに多重化ヘッダ(MH)311A,312A,313Aが続く。その後ろに図19の動画像符号列121A、音声符号列122A、データ符号列103Aをパケット単位などで多重化した多重化ペイロード(図中321A,322A,323A)が続く。
図23(a)および図23(b)は多重化ヘッダ(MH)311A中に含まれる情報の第1の例を示す図である。図中、多重化コード(MC)351Aは、多重化ペイロード321Aの中に動画像符号列(Video)、音声符号列(Speech)、データ符号列(Data)がどのように多重化されているかを示している情報である。この多重化コード情報(MC)に伝送誤りが生じると、多重化がどのように行われているかが分からなくなるため、多重分離装置180Aで動画像符号列、音声符号列、データ符号列を正しく分離できなくなる。このため、動画像復号化装置161A、音声復号化装置162Aでも正しい復号を行うことができず、再生動画像信号、音声信号の品質が劣化してしまう。
これを避けるため、多重化ヘッダ(MH)はいずれも誤り検査符号および誤り訂正符号により強い誤り保護を行う。図23中、353A(CRC)がCRC誤り検査ビット、354A(FEC)が誤り訂正符号の検査ビットである。
本第3実施形態では、動画像符号列(Video)を含む多重化パケットの多重化ヘッダ(MH)には、動画像符号列(Video)のビデオヘッダ情報(VHD)352Aも多重化コード情報(MC)と一緒に含められている。図23の例では、ビデオヘッダ情報(VHD)352Aが含まれる多重化ヘッダ(MH)は、MH1(311A)およびMH2(312A)である。ビデオヘッダ情報(VHD)352Aは、動画像符号化におけるピクチャ(フレーム)全体の符号化モード等の、誤りが混入すると再生画像に大きな劣化が生じてしまう重要な情報である。例えば、動画像符号化列が図21に示すものの場合は、ピクチャヘッダ202Aやスライスヘッダ211Aないしはその中の一部の情報をビデオヘッダ情報(VHD)352Aとして多重化ヘッダ中に入れる。
このように、動画像符号化におけるピクチャヘッダ等の重要情報を多重化ヘッダに挿入して、多重化コード(MC)と合わせて誤り訂正符号および誤り検出符号を生成してそれらによって強い誤り保護を行うことが本第3実施形態の特徴である。これにより、重要情報に対して誤り保護を行わない従来の動画像符号化装置に比べ、伝送路誤りに対する耐性が向上する。
図24は多重化ヘッダ(MH)の第2の例を示す図である。図23に示した第1の例に相対応する情報に同一の符号を付して相違点のみを説明すると、動画像符号列(Video)を含む多重化パケットには、多重化ヘッダの中にビデオヘッダ情報(VHD)352Aに加え、動画像符号列のピクチャやスライスの境界の位置を示すピクチャポインタ(ALP)451Aが含まれていることが第1の例と異なる。
ピクチャポインタ(ALP)451Aがない場合には、多重分離装置180Aで動画像符号列を分離した後、動画像復号化装置161Aでピクチャスタートコードや再同期マーカによりピクチャやスライス境界を検出する必要がある。これに対し、ピクチャポインタ(ALP)451Aを多重化ヘッダに含めた場合には、ピクチャやスライス境界がこのピクチャポインタによっても検出できる。ピクチャポインタは多重化ヘッダ中で強く誤り保護が行われているため、ピクチャ境界やスライス境界が正しく検出される確率が向上し、再生画像の品質が向上する。
また、ビデオヘッダ情報(VHD)352Aには、ピクチャヘッダ、スライスヘッダに含まれる全ての情報を含めても良いし、一部の情報だけを含めるようにしてもよい。
図25は、動画像符号列(Video)を含む多重化パケット601A,601Bそれぞれの多重化ヘッダ中に、それぞれ対応する多重化コード(MC1)611A,(MC2)621Aに加えて、ビデオヘッダ情報として、Picture Time Referemce(PTR1)612A,(PTR2)622Aのみを含めた例である。
図中、多重化パケット601Aの多重化ペイロード中には、PTR=1のピクチャの符号列の最後のスライス(Slice N)613Aと、それに続くPTR=2のピクチャのピクチャスタートコード(PSC)614Aと、PTR=2のPicture Time Referemce(PTR2)615Aと、ピクチャ符号化モード(PCM2)616Aと、PTR=2のピクチャの符号列の最初のスライスの前半部分(Slice 1)617Aが含まれている。また、多重化パケット602Aのペイロードには、PTR=2のピクチャの符号列の最初のスライスの後半分(Slice 1)623A、第2スライスの再同期マーカー(RM)624A、スライスヘッダ(SH2)625A、PTR=2のピクチャの符号列の第2スライス(Slice 2)626Aが含まれている。
多重化パケット601Aの多重化ヘッダ(MH1)には、その多重化パケット601A中に最後の部分の符号列があるPTR=1のピクチャのPTR612Aが含まれ、多重化コード(MC1)611Aと共に誤り訂正、検出符号(CRC,FEC)で誤り保護される。したがって、多重化ペイロードの動画像符号化列中に含まれるPTR(615A)が誤りによって正しく復号できなくても、多重化ヘッダ中のPTR(612A)が正しく復号され、正しいPTRを得ることができるので、復号したピクチャを正しい時間に表示することができる。
さらに、スライス構造を用いた動画像符号化方式においては、スライススタートコード(再同期マーカ)、スライスヘッダの含まれる多重化パケットのビデオヘッダ情報352AにPTRを入れれば、ピクチャスタートコードが誤りによって正しく復号できなくても、このPTRによってピクチャ境界を判定できる。例えば、ピクチャスタートコード(PSC)614AやPTR615Aが欠落しても、次の多重化パケットの多重化ヘッダ中にPTR622Aが含まれているため、これとそれより前の多重化パケットの多重化ヘッダに含まれるPTR(例えばPTR612A)を比較し、これが等しくなければ多重化パケット601Aにピクチャ境界があると判定する。この場合、多重化パケット602A中に再同期マーカーがある最初のスライス(図の例では624Aのslice2から)正しく復号を行うことができる。
ピクチャ符号化モードが頻繁に変わる符号化方式(例えばBピクチャを用いた符号化方式等)を用いる場合には、多重化ヘッダにピクチャ符号化モードを含めるようにしてもよい。
図26は多重化符号列の第3の例である。この多重化符号列では、各多重化パケット701A,702A,703A中にひとつのピクチャないしはスライスが入り、各ピクチャヘッダ(PH1)712A、スライスヘッダ(SH2)722Aが多重化ヘッダ751A,752Aの中で多重化コード(MC1)711A,(MC2)721Aと一緒に誤り保護されている。このように、動画像符号化のピクチャ、スライスと、多重化パケットをそろえておけば、各多重化パケットは必ずピクチャないしはスライスのスタート位置であることが一意に分かるため、多重分離された画像符号列の中から改めてピクチャスタートコードや再同期マーカーを検出する必要がなく、処理量が削減される。さらには、多重化スタートコードを伝送路誤りに対して強い耐性を有する符号としておけば、ピクチャやスライスのスタート位置が正しく特定できずにそのピクチャやスライスが復号できない確率が少なくなる。
なお、本第3実施形態では、1つの画像/音声信号を符号化、復号化する例を示したが、複数の画像/音声信号符号化装置を用いて複数の画像/音声信号を符号化および多重化し、また複数の画像/音声信号復号化装置を用いて複数の画像/音声信号を分離/復号化する場合にも同様に応用できる。この場合、多重化ヘッダ情報に含めるビデオヘッダ情報には、複数の画像信号を識別する情報を含めるようにしても良い。
また、本第3実施形態と前述の第1および第2実施形態とを適宜組み合わせて伝送用符号列を生成することにより、さらに信頼性の高い符号化情報の伝送が可能となる。第3実施形態において、時刻を表すPTR(Picture Time Reference)を第2実施形態と同様のmodulo time base,VOP time incrementとして取り扱うことも可能である。このように用いることにより、第2実施形態で説明したのと同様に、modulo time base,VOP time incrementの規則性を利用したチェックを行ってもよい。
次に本発明による情報を蓄積する媒体に関する具体例について説明する。
図29は、本発明による符号化装置から出力された画像符号列が蓄積される記録媒体810を用いて画像信号を再生するシステムを示す図である。記録媒体810には、本発明による画像符号化装置で符号化された画像符号列を含む符号列が蓄積されている。820はこの蓄積媒体810に蓄積されている符号列から、画像信号を再生する復号装置であり、830は再生画像を出力する画像情報出力装置である。ここで、画像情報出力装置とは、例えばディスプレイ等を示す。あるいは、再生された画像信号を(図示しない)蓄積媒体に記録しても良いし、図示しない伝送路を介して他の装置又はシステムに伝送してもよい。
このような構成の本システムは、蓄積媒体810に前述の各実施形態で説明した如きフォーマットの符号列を蓄積してある。この符号列は、VOP(ピクチャ、フレームともいう)ヘッダ情報の一部がビデオパケット(あるいはスライス、GOB等)ヘッダの一部に二重化情報として記録されていることが特徴である。復号化装置820はこの蓄積媒体810に蓄積されている符号列から、画像信号を再生する。すなわち、復号化装置820は、蓄積媒体810より信号線801を介して符号列を読み込み、図30に示す手順により再生画像を生成する。
以下、図30にしたがって復号化装置820での処理の内容を説明する。
蓄積媒体810から画像符号列を順次読み込み、まず同期符号を検出する(ステップS11)。もし、検出された同期符号がVOP start codeだったら(ステップS12のYES)、直前に復号されたVOP(フレーム)を画像情報出力装置へ出力する処理を行う(ステップS13)。そして、画像符号列中VOP start codeに引き続くVOPへッダ(図29中VOP header)の復号を行う(ステップS14)。もし、VOPヘッダが正しく復号できたら(ステップS15のYES)、復号化装置中の一時記憶回路に記録されている情報を復号されたVOPヘッダ情報(時刻情報、VOP予測モード等)で置き換える(ステップS16)。そしてVOPヘッダに引き続くマクロブロックデータ(図29中MB data)を復号し、そのビデオパケットの復号を行う(ステップS17)。
もし、検出された同期符号がresync markerだったら(ステップS18のYES)、resync markerに引き続くビデオパケットヘッダ(マクロブロック番号(MBA)、ビデオパケット量子化パラメータ(SQ)、へッダ拡張コードHEC))の復号を行う(ステップS19)。もし、ビデオパケットヘッダ中のヘッダ拡張コードHEC=“0”だった場合には(ステップS20のNO)、そのビデオパケットの復号を行う(ステップS17)。もし、ヘッダ拡張コードHEC=“1”だった場合には(ステップS20のYES)、それに引き続く二重化情報(図29中DUPH)の復号を行う(ステップS21)。もし、二重化情報が正しく復号できたならば(ステップS22のYES)、この二重化情報と、一時記憶回路に保存されていた情報を比較する(ステップS23)。もし比較結果が等しければ(ステップS23のNO)、ビデオパケットヘッダに引き続くマクロブロックデータ(図29中MBdata)を復号し、そのビデオパケットを復号する(ステップS17)。もし、比較結果が等しくなければ(ステップS23のYES)、このピデオパケットは直前に復号されたVOPとは異なるVOPに属すると判定し、直前に復号したVOPを画像情報出力装置に出力する処理を行い(ステップS24)、一時記憶装置に記録されている情報を復号した二重化情報で置き換える(ステップS25)。さらにそのビデオパケットの復号を行う(ステップS17)。
以上、図30に示した同期符号検出から始まる一連の処理を、蓄積媒体810に記録されている画像符号列を順次読み込みながら繰り返していき、動面像信号を再生する。
なお、画像符号列をそのまま蓄積媒体に記録するのではなく、音声信号やオーディオ信号を符号化した符号列、データ、制御情報等との多重化を行った符号列を蓄積媒体に記録するようにしても良い。この場合、蓄積媒体に記録した情報を画像復号化装置820で復号する前に、逆多重化装置で画像符号列と音声・オーディオ符号列、データ、制御情報を逆多重化する処理を行い、逆多重化された画像符号列を復号化装置820で復号する。
また、図29では、蓄積媒体810に記録されている情報が復号化装置820に信号線801を介して伝達される例を示したが、信号線以外に、有線/無線/赤外線等の伝送路を介して情報を伝達しても構わない。
以上のように本発明によれば、蓄積媒体に記録されている符号列は、重要な情報が二重化して記録されているため、蓄積媒体に記録された情報に誤りがある場合や、蓄積媒体に記録された情報を再生画像に送る信号線や伝送路において誤りが生じる場合においても、劣化の少ない再生画像を再生することができる。
次に、本発明の第4の実施形態について説明する。
本実施形態に係る動画像・音声符号化装置および動画像・音声復号化装置の全体構成はそれぞれ図19および図20と同一である。ただし、各部の動作は第3の実施形態と異なる。以下、この相違点を中心に説明する。
図34(a),(b)および(c)は動画像符号列121Aの3つの例を示したものである。動画像符号化装置111Aにおける符号化はVOP(ピクチャ、フレーム、フィールドともいう)単位に行われて動画像符号列121Aが作成される。ピクチャの中はさらにマクロブロックと呼ばれる小領域に分割されて符号化が行われる。
1つのVOPの動画像符号列は一意復号可能な同期符号であるVOPスタートコード(図中VSC)(ピクチャスタートコードともいう)からはじまる。VOPスタートコードの後ろにはVOPヘッダ(図中VH)(ピクチャヘッダともいう)が続く。VOPヘッダには、VOPの時刻を表す情報、VOP符号化モード、VOP量子化ステップサイズ等が含まれている。VOPヘッダの後ろには各マクロブロックの符号化データが続く。
図34(a)はVOP内をビデオパケット(スライス、GOBともいう)と呼ばれる符号化単位に区切って符号化を行う例を示したものである。ビデオパケットは1ないしは複数のマクロブロック(図中MBdata)からなる。例えば動きベクトルの隣接マクロブロックの動きベクトルからの予測のように、複数マクロブロックにわたる予測を用いた動画像符号化を行う場合には、伝送路誤りの影響が他のビデオパケットに及ばないようにするため、同一のビデオパケットに含まれるマクロブロックだけから予測を行うようにしてもよい。
VOPの最初のビデオパケット以外の各ビデオパケットの符号列は、一意復号可能な同期符号である再同期マーカ(RM)(スライススタートコード、GOBスタートコードともいう)と、ビデオパケットヘッダ(VPH)(スライスヘッダ、GOBヘッダともいう)から始まり、さらに各マクロブロックのデータ(MBdata)が続く。ビデオパケットヘッダにはビデオパケットの最初のマクロブロックの位置を示すマクロブロック番号(あるいはスライス番号やGOB番号)、ビデオパケットの量子化ステップサイズ等が含まれている。さらに、第1および第2の実施形態で説明したように、VOPヘッダ情報等の重要情報を含めるようにしてもよい。
図34(b)は、動画像符号列を、予測モードや動きベクトルに関する情報と、動き補償適応予測の残差信号、あるいは、それを直交変換(DCT等)した直交変換係数に関する情報との2つに分けて符号化した符号列の例を示したものである。各ビデオパケットの符号列の中で、予測モードや動きベクトルに関する情報(図中Motion)は前方(図の例ではビデオパケットヘッダないしはVOPヘッダのすぐ後)にあり、予測残差DCT係数に関する情報(図中Texture)は後方にある。2種類の情報の間はモーションマーカ(図中MM)で区切られている。
図34(c)は、符号化する画像の形状に関する情報をあわせて符号化する動画像符号化方式の符号列の例を示したものである。図中、Shapeが形状情報に関する情報であり、各ビデオパケットのなかで予測モードや動きベクトルに関する情報(Motion)よりも前方(図の例ではビデオパケットヘッダないしはVOPヘッダのすぐ後)にある。形状情報(Shape)と予測モードや動きベクトルに関する情報(Motion)の間はシェープマーカ(図中SM)で区切られている。
図34の動画像符号化列において、スタートコードや再同期マーカ等の同期符号は、あるビット数の整数倍のビット位置に揃えるようにすることが好ましい。図35は、各ビデオパケットの最初にあるVOPスタートコード(VSC)および再同期マーカ(RM)の位置をNビットの整数倍の位置にそろえた例である。このような処理を行うことにより、同期符号を任意のビット位置に配置する符号化方式に比べ、復号化装置で同期符号を検出する位置を1/Nに削減することができる。これにより、復号化装置における同期検出処理が簡略化されると共に、伝送路誤りによって同期符号と同一のビットパターン(疑似同期符号)が生じ同期符号が誤って検出されてしまう類似同期と呼ばれる現象の確率を1/Nに抑えることができ、伝送路誤りが入ったときの復号画像の品質が向上する。
このように同期符号の位置を揃えるために、同期符号の直前の情報と同期符号の間にはスタッフィングビット(図35(a)中 stuffing bits)を入れる。図35(b)は、N=8の時のスタッフィングビットの符号表の例を示した図である。このスタッフィングビットは従来多く用いられてきた全てのビットが“0”のスタッフィングビット等と異なり、符号列の逆方向から一意に復号でき、スタッフィングビットの長さを復号装置で特定できることが特徴である。図35(b)の例では、スタッフィングビットの最初の1ビットが“0”で他のビットは“1”である。したがって、スタッフィングビットの最後のビット、すなわち、同期符号の直前のビットから順に逆方向にみて最初の“0”のビットがスタッフィングビットの最初のビットと判定することが可能である。
このように、スタッフィングビットの最初のビットの位置を特定できるため、復号装置において符号列中に伝送路誤りが混入したことを容易に検出することが可能である。符号列の復号が正しく行われた場合には、スタッフィングビットの直前のデータの復号終了位置と、スタッフィングビットの開始位置が一致しているはずである。もし、復号終了位置とスタッフィングビットの開始位置がずれていた場合には、符号列に伝送路誤りが入ったと判定し、その符号列を復号に用いないようにしても良い。
また、符号列の逆方向からも復号可能な可変長符号を用いて逆方向の復号を行う場合には、復号化装置において逆方向復号の開始位置を特定する必要がある。スタッフィングビットは復号開始位置はスタッフィングビットの直前のビットであるが、従来の、例えば全てのビットが同一のビット値をもつスタッフィングビットはその長さを特定できないため、復号装置で逆方向復号の開始位置がわからない。これに対し、図35のスタッフィングビットは最初のビットの位置を特定することができるため、逆方向復号の開始位置を特定することが可能である。
また、同期符号が“00000000000000001”のように“0”が多く含まれる符号語の場合、従来の全て“0”のスタッフィングビットは誤りが混入することにより同期符号と同一のビットパターンになってしまう確率が高く、類似同期を生じやすいという問題があった。これに対し、図35のスタッフィングビットは最初のビット以外全て“1”のため、“0”が多く含まれる同期符号とハミング距離が離れており、類似同期が生じる可能性が低い。
以上のように、スタッフィングビットを予め定められた規則に従って生成することにより、復号化逆多重化装置において、多重化符号列中のスタッフィングビットをその生成規則と照合し、もしその生成規則に反すると判定された場合には、多重化符号列中に誤りが混入したと判定することが可能である。これにより、復号化逆多重化装置において、逆多重化し、復号化した信号に大きな劣化が生じないような処理を行うことにより、多重化符号列中に誤りが混入したときの復号化信号の品質を向上させることができる。
なお、VOPスタートコードや再同期マーカ以外に、モーションマーカ(MM)やシェープマーカ(SM)もあるビット数の整数倍のビット位置に揃え、その前に図35(b)のようなスタッフィングビットを入れても良い。これにより、形状情報、予測モードや動きベクトル情報等も誤り検出や逆方向復号を行うことができる。
図36は多重化器130Aの構成の例を示した図である。図36の例では、多重化処理をアダプテーション層1031A(Adaptation Layer)と多重化層1032A(Multiplex layer)と呼ばれる2段階で行う。アダプテーション層1031Aへの入力は動画像符号列121A、音声符号列122A、データ符号列103Aである。アダプテーション層で処理を行った出力1041A,1042A,1043Aは多重化層1032Aに入力される。多重化層からの出力が多重化符号列135Aになる。
図37は動画像符号列121Aに対してアダプテーション層での処理を行った出力符号列1041Aの例を示したものである。アダプテーション層での処理は、動画像符号列121Aをある単位に区切ったAL−SDU(アクセスユニット(Access Unit)ともいう)という単位毎に処理が行われる。1つのAL−SDUをアダプテーション層で処理した出力はAL−PDUとよばれる。図37は1つのAL−PDUの構成を示したものである。各AL−PDUにはALヘッダ(AL−header)がつく。ALヘッダには、例えば、AL−PDUの番号、属性、動画像符号化や多重化のモード等を示す情報を入れても良い。ALヘッダの後ろにはALペイロード(AL payload)としてAL−SDUが続く。さらに、その後ろにCRC検査ビットなど、AL−PDUに伝送路誤りが入ったかどうかを検出するための検査ビットを付けても良い。
アダプテーション層では、音声符号列121Aやデータ符号列103Aに対しても同様の処理を行い、音声符号列およびデータ符号列に対するAL−PDU1042Aおよび1043Aを出力する。ただし、ALヘッダに入れる情報やCRC検査ビットの長さや有無などは動画像符号列に対するAL−PDU1041Aと異なるようにしても良い。
アダプテーション層で作成されたAL−PDU1041A,1042A,1043Aは、多重化層で多重化される。多重化はMUX−PDUと呼ばれる単位毎に行う。図38(a)〜(c)は多重化を行ったMUX−PDUの例を示したものである。MUX−PDUには、多重化同期符号(MUX flag)、多重化ヘッダ(MUX header)がつく。多重化ヘッダには、MUX−PDUに多重化されているアダプテーション層からの出力の種類や多重化の仕方、MUX−PDUの長さ等の情報を入れても良い。
図38(a)は1つのMUX−PDUの中に1つのAL−PDUを入れる例を示したものである。
図38(b)は1つのAL−PDUを複数(図の例では2つ)のMUX−PDUに分割する例を示したものである。この場合、多重化ヘッダには、MUX−PDUに含まれる分割されたAL−PDUが、1つのAL−PDU全体の何番目にあたるかを示す情報や、1つのAL−PDUの最初あるいは最後の分割AL−PDUであることを示す情報を入れても良い。
図38(c)は、1つのMUX−PDUに複数のAL−PDUを入れる例を示したものである。図の例では、動画像符号列のAL−PDU(Video AL−PDU)と音声符号列のAL−PDU(Audio AL−PDU)を合わせて多重化した例である。この場合、多重化ヘッダには、MUX−PDU中に含まれる複数のAL−PDUの境界を示す情報を入れても良い。あるいは、AL−PDUの境界に、境界を示す識別子をつけてもよい。
前述のように、アダプテーション層では符号列をAL−SDUあるいはアクセスユニット(access unit)と呼ばれる単位に区切って処理を行う。図39は、動画像符号列のアダプテーション層での区切り方の例を示した図である。
図39は1つのVOPを1つのアクセスユニットとする例である。図39(a)〜(c)がそれぞれ図34(a)〜(c)の動画像符号列に対応する。
図40は1つのビデオパケットを1つのアクセスユニットとする例である。図40(a)〜(c)がそれぞれ図34(a)〜(c)の動画像符号列に対応する。
図34(b),(c)のように、ビデオパケット内をさらに形状情報、動きベクトル情報、DCT係数情報のように区切って符号化する場合には、アクセスユニットもこれに合わせて区切ってもよい。図41はこのような例を示したものである。図41(a),(b)がそれぞれ図34(b),(c)の動画像符号列に対応している。形状情報(Shape)、予測モードや動きベクトルに関する情報(Motion)、残差信号やそのDCT係数に関する情報(Texture)毎に、その境界を示すモーションマーカ(MM)、シェープマーカ(SM)を境にしてアクセスユニットを構成する。
前述のように多重化層においてMUX−PDUやAL−PDUの境界を示す多重化同期符号、AL境界識別子等が付加されている場合には、各アクセスユニットのスタート位置はこれから判別することができる。この場合は、動画像符号列からアクセスユニットの先頭にある同期符号を取り除いても構わない。図42は1つのVOPを1つのアクセスユニットにする例で、この場合はVOPの先頭にあるVOPスタートコードを取り除いても構わない。図43は1つのビデオパケットを1つのアクセスユニットにする例で、この場合はビデオパケットの先頭にあるVOPスタートコード、再同期マーカを取り除いても構わない。図44は形状情報(Shape)、予測モードや動きベクトルに関する情報(Motion)、残差信号やそのDCT係数に関する情報(Texture)毎にアクセスユニットを構成する例で、この場合、ビデオパケットの先頭にあるVOPスタートコード、再同期マーカと、Shape、Motion、Textureの境界を示すモーションマーカ(MM)、シェープマーカ(SM)を取り除いても構わない。
図45のように1つのアクセスユニットに1ないしは複数のビデオパケットを入れてもよい。この場合、図45(b)のようにアクセスユニットの最初にあるVOPスタードコードないしは再同期マーカだけを取り除いても構わない。図34(b),(c)の動画像符号列についても同様に複数のビデオパケットでアクセスユニットを構成してもよい。
図34(b)および(c)のように、ビデオパケットをShape,Motion,Textureのように分割して符号化する場合は、複数のビデオパケットのShape、Motion、Textureをそれぞれ集めてアクセスユニットを構成してもよい。図46は図34(b)の符号列に対してこのような処理を行ったもので、Motion、Textureをそれぞれ集めてアクセスユニットを構成してある。VOPヘッダおよびビデオパケットヘッダは各ビデオパケット毎にMotionの前につける。
Motion、Textureを集めてアクセスユニットを構成する単位はVOP単位でも構わないし、任意の複数個のビデオパケットでも構わない。
このようなアクセスユニット構成において、各ビデオパケットのMotion、Textureの境界に同期符号をつけてもよい。図46(b)はMotionの境界に、(c),(d)はMotionおよびTextureの境界に同期符号(RM)を入れたものである。さらに、図46(d)の例では各アクセスユニットの先頭にも同期符号(VSC)を入れている。MotionとTextureで異なる同期符号を用いてもよい。例えば、Motionではモーションマーカを、Textureでは再同期マーカを用いてもよい。
なお、図34(c)の動画像符号列についても、Shape、Motion、Textureデータをそれぞれ集めてアクセスユニットを構成することが可能である。
以上のように、Shape、Motion、Textureのような重要度の異なる符号列の中から同一重要度のもの同士をそれぞれ集めてアクセスユニットを構成し、各アクセスユニット毎に異なる誤り保護(例えば誤り訂正符号、誤り検出符号、再送等)を行うことにより、それぞれの符号列の重要度に応じた誤り保護を行うことができ、伝送路誤りが入ったときの復号画像の品質が向上する。一般に、形状情報(Shape)、モード情報や動きベクトル情報(Motion)は伝送路誤りが入ると復号画像に大きな品質劣化を生じてしまう。このため、Shape,Motionに対して強い誤り訂正符号を用いるといった強い誤り保護を行ってもよい。逆に予測残差信号(Texture)は伝送路誤りが入ってもそれほど大きな画質劣化を生じないため、それほど強く誤り保護を行わなくてもよく、誤り訂正符号、誤り検出符号等による冗長度を少なくすることができる。
以上の動画像符号列の同期符号を取り除く例では、多重化器130Aで動画像符号列121Aに含まれている同期符号を取り除いてもよいし、画像符号化器111Aであらかじめ同期符号を取り除いた動画像符号列121Aを多重化器に渡すようにしてもよい。
図39〜図46のいずれの例においても、各アクセスユニットの長さがあらかじめ決められた長さの整数倍(例えばバイト単位)になるようにしてもよい。図35の例で示したように、動画像符号列が再同期マーカやスタートコードの前にスタッフィングビットを入れて各ビデオパケットや各VOPがNビット(例えばバイト)単位になっている場合には、このスタッフィングビットを含めてアクセスユニットにすれば、アクセスユニットの長さを決められた長さの整数倍(バイト単位等)にすることが可能である。
もし動画像符号列でこのような処理を行っていない場合には、図47のように各アクセスユニットの最後にスタッフィングビットを入れてアクセスユニットの長さを決められた長さの整数倍(バイト単位等)にしてもよい。スタッフィングビットには例えば図35(b)のスタッフィングビットを用いればよい。この場合、動画像符号列にスタッフィングビットを入れた場合と同様に、スタッフィングビットを用いて符号列に混入した誤りを検出することも可能である。また、動画像符号列以外に音声やデータの符号列に対してもスタッフィングビットを付加してアクセスユニットの長さを決められた長さの整数倍(バイト単位等)にしてもよい。
多重化層では、多重化ペイロード中に多重化同期符号と同一のビットパターンがある場合、逆多重化器でこのビットパターンを誤って多重化同期符号と判定し、MUX−PDUの境界が誤って検出されてしまう疑似同期(エミュレーションとも言う)が生じることがある。動画像符号化器において動画像符号列中の同期符号(VOPスタートコード、再同期マーカ等)以外の部分にこれと同一のビットパターンが無いような動画像符号列を生成した場合には、動画像同期符号を用いて多重化層での類似同期が生じたかどうかを検出することができる。
MUX−PDUペイロードの先頭位置と、AL−PDUの先頭位置を合わせMUX−PDUを構成する。図38に示した例は何れもこのような構成になっている。そして、AL−SDU(アクセスユニット)の先頭に動画像同期符号を入れる。このようにすれば、多重化同期符号と動画像同期符号は多重化ヘッダやALヘッダをはさんで隣接して配置される。もし逆多重化装置で誤って多重化同期符号が検出された場合、これに隣接する多重化ヘッダ、ALヘッダおよび動画像同期符号を検出しようとするが、検出した多重化同期符号は疑似同期であるため、本来多重化ヘッダ,ALヘッダおよび動画像同期符号があるとしてこれらの復号を行った場所にはまったく別の情報が入っている。したがって、逆多重化器において復号した多重化ヘッダ、ALヘッダおよび動画像同期符号が正しい情報かどうかを判定し、正しくないと判定された場合には検出した多重化同期符号を疑似同期と判定する。
図48は、多重化器の構成の第2の例である。この例では、多重化器は、FlexMux層とTransMux層の2つの階層に分かれている。さらに、FlexMux層はアダプテーションサブレイヤ(AL)と多重化サブレイヤ(Mux sublayer)に、TransMux層はプロテクションサブレイヤ(Protection Layer)とトランスマックスサブレイヤ(TransMux Layer)に分かれている。
図49はFlexMux層で生成された符号列の例を示したものである。1061Aがアダプテーションサブレイヤで、1062Aが多重化サブレイヤで構成された符号列である。アダプテーションサブレイヤには、多重化する情報の種類や時刻を表す情報等の情報が入ったALヘッダ(Header)1065Aが付き、さらに、多重化する動画像符号列、音声符号列、データ符号列等のペイロード(Payload)1066Aが多重化され、AL−PDUが生成される。多重化サブレイヤでは、必要に応じて、さらにAL−PDUの種類やチャネル番号などを示すインデックス(index)1068Aと、AL−PDUの長さを示す情報(length)1069AがついてFlexMux−PDUが生成される。
FlexMux層で生成されたFlexMux−PDUはTransMux層に入力される。TransMux層には図36の多重化器の構成を用いても構わない。この場合、プロテクションサブレイヤ図36のアダプテーション層1031Aに、トランスマックスサブレイヤが図36の多重化層1032Aに相当する。あるいは、トランスマックスサブレイヤに図36の構成を用い、プロテクションサブレイヤは用いないようにしてもよい。
なお、スタッフィングビットによってあらかじめ定められた長さの整数倍の長さに設定された単位符号列を多重化する構成、および同一重要度の符号語同士をそれぞれまとめてそれをアクセス単位とする構成は、前述の第1乃至第3実施形態で説明した多重化符号化列の構造それぞれに適宜適用することができる。
また、図45のようにひとつのアクセスユニットに複数のビデオパケットをいれる場合、アクセスユニットの境界および再同期マーカのフレーム内の配置を図50のようにしてもよい。図50中、白丸が再同期マーカのあるマクロブロック(すなわちビデオパケットの最初のマクロブロック)を、灰丸がアクセスユニット内の最初のマクロブロックの位置を示している。このような画像では、背景部分よりも人物のほうがより重要な情報であるため、伝送路誤りに対して高い耐性を有する方が好ましい。このため、人物部分に再同期マーカを多く配してビデオパケットの間隔を細かくし、伝送路誤りから回復が早期に図れるようにして誤りに耐性を強くする。逆に、背景部分は重要度がそれほど高くないため、再同期マーカーは少なくしてビデオパケットの間隔を広くしても構わない。
さらに、フレーム内をラスタスキャンの順に左上から右下のマクロブロックへと符号化する符号化方式においては、あるマクロブロックに混入した誤りがより右下のマクロブロックに波及することがある。特に重要領域内に誤りが波及すると大きな画質劣化を生じるため、重要領域がスタートするマクロブロックはアクセスユニット内の最初のマクロブロックとし、他のアクセスユニットに混入した誤りの影響が及ばないようにしてもよい。図50の例では重要領域である人物の左端マクロブロックをアクセスユニットの最初のマクロブロックにしてある。
ひとつのアクセスユニットの中で誤り保護の強さを切り換えられる場合には、フレーム内の領域の重要度に応じて誤り保護を切り換えてもよい。図51はこのような切り換えを行う例である。図51中、薄い灰色(ハッチング)の領域が強い誤り保護を行う領域(High QoS)で、より重要な情報である人物部分にこれを割り当ててある。図52はこれに対応するアクセスユニットの構成の例を示したものである。図中、薄い灰色(ハッチング)部分が図51の薄い灰色のマクロブロックに相当するもので、この部分は強く誤り保護を行う。
ビデオパケットをMotion,Textureのように分割して符号化する場合は、図52(b)のようにアクセスユニット内の前半にMotionを、後半にTextureを入れ、さらに図51中薄い灰色で示した重要領域をそれぞれの前半にくるようにしてもよい。あるいは図52(c)のようにMotionとTextureを別のアクセスユニットにし、それぞれの前半をより強く誤り保護してもよい。これらにより、重要領域の符号列のさらに重要なMotion部分をより強く誤り保護することができる。
以上のような再同期マーカの配置やアクセスユニット内の構成を使用することにより、少ないオーバーヘッド(冗長度)でより強い誤り耐性を持たせることが可能である。一般に再同期マーカや強い誤り保護を用いることによりオーバーヘッドが増加してしまうが、重要な情報である人物等に再同期マーカを多く割り当てて誤り保護を強くし、背景のようなあまり重要でない領域には再同期マーカを少なくして誤り保護を弱くすることにより、全体に均一に再同期マーカの割り当てと誤り保護を行う場合に比べ、同じ平均オーバーヘッドで重要情報に対してより強い誤り耐性を持たせることができる。
さらに、図51の人物部分のように多くの再同期マーカを割り当てた場合、ビデオパケットの長さがこれに対応して非常に短くなるため、各ビデオパケットをそれぞれひとつのアクセスユニットに割り当ててしまうと、ALヘッダ、多重化ヘッダ、多重化同期符号等によるオーバーヘッドが非常に大きくなってしまう。この場合は図45のようにひとつのアクセスユニットに複数のビデオパケットを入れた方がオーバーヘッドは少なくなる。
以上説明した各実施形態の符号化/復号化装置の構成およびストリーム構造は適宜組み合わせて使用することができる。また、各符号化/復号化装置の動作はそれぞれソフトウェア制御による処理手順に置き換えて実行することもでき、そのソフトウェアおよび符号化ストリームはそれぞれ記録媒体として提供することができる。