(57)【要約】【課題】可変長符号化されたデータを読み取るに際して、エラーの影響を軽減することができるデータ読取方法、およびデータ読取装置等を提供する。【解決手段】可変長符号化されたデータを読み取るデータ読取装置である。このデータ読取装置は、ＤＳＰ１において、一連の符号語を順次読み取る符号語読取手順と、符号語読取手順による読み取り位置が次の再同期マーカの位置に到達する前に、この次の再同期マーカを検出する再同期マーカ検出手順と、を実行する。【選択図】　　　図１
2004112593.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化されたデータを読み取るデータ読取方法において、
一連の符号語を順次読み取る第１の符号語読取手順と、
前記第１の符号語読取手順による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手順と、
を備えることを特徴とするデータ読取方法。
【請求項２】
前記再同期マーカ検出手順により検出された前記次の再同期マーカを基準として一連の符号語を順次読み取る第２の符号語読取手順を備えることを特徴とする請求項１に記載のデータ読取方法。
【請求項３】
前記データは両方向からの読み取りが可能に構成され、
前記一連の符号語を前記第１の符号語読取手順と逆方向から読み取る第３の符号語読取手順を備え、
前記第３の符号語読取手順では、前記再同期マーカ検出手順により検出された再同期マーカを基準として前記一連の符号語を順次読み取ることを特徴とする請求項１または２に記載のデータ読取方法。
【請求項４】
前記第１の符号語読取手順により読み取られる範囲のエラーを判定するエラー判定手順を備えることを特徴とする請求項１〜３のいずれか１項に記載のデータ読取方法。
【請求項５】
前記エラー判定手順では、前記第１の符号語読取手順によって、復号できない符号語が読み取られた場合には、エラーと判定することを特徴とする請求項４に記載のデータ読取方法。
【請求項６】
前記再同期マーカ間のビット数に関する情報を読み込むビット数情報読込手順と、
前記第１の符号語読取手順により読み取られる符号語のビット数をカウントするカウント手順と、
を備え、
前記エラー判定手順では、前記ビット数情報読込手順により読み込まれた前記情報および前記カウント手順によりカウントされたビット数に基づいてエラーと判定することを特徴とする請求項４に記載のデータ読取方法。
【請求項７】
可変長符号化されたデータを読み取るデータ読取装置において、
一連の符号語を順次読み取る第１の符号語読取手段と、
前記第１の符号語読取手段による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手段と、
を備えることを特徴とするデータ読取装置。
【請求項８】
前記再同期マーカ検出手段により検出された前記次の再同期マーカを基準として一連の符号語を順次読み取る第２の符号語読取手段を備えることを特徴とする請求項７に記載のデータ読取装置。
【請求項９】
可変長符号化されたデータを読み取るデータ読取方法を実行するためのプログラムにおいて、
コンピュータを、
一連の符号語を順次読み取る第１の符号語読取手順、
および、前記第１の符号語読取手順による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手順、として機能させることを特徴とするプログラム。
【請求項１０】
コンピュータを、
前記再同期マーカ検出手順により検出された前記次の再同期マーカを基準として一連の符号語を順次読み取る第２の符号語読取手順として機能させることを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長符号（ＶＬＣ：Ｖａｒｉａｂｌｅ　Ｌｅｎｇｔｈ　Ｃｏｄｅ）化されたデータを読み取るデータ読取方法等に関する。
【０００２】
【従来の技術】
複数の事象を、それぞれ同一長の符号語で表す固定長符号による符号化技術がある。固定長符号を用いたデータをデコードする場合、ビット系列にエラーがあっても、その後の符号語の先頭位置が分かる。このため、エラーが存在する位置よりも後ろのデータについても、正常にデコードができる。
【０００３】
一方、複数の事象に対し、異なる長さの符号語を割り当てる可変長符号による符号化が知られている。可変長符号を用いる場合には、出現頻度を考慮して符合語の長さを変えることができるため、全体としてのデータ量を削減できるという利点がある。
【０００４】
【発明が解決しようとする課題】
しかし、可変長符号を用いる場合には、エラーが存在した場合に、後続の符号語の先頭位置が不明となる。このため、原理的にエラーの位置よりも後ろに位置する符号語については、連鎖的に正しいデコード処理ができなくなるという欠点がある。
【０００５】
本発明は、可変長符号化されたデータを読み取るに際して、エラーの影響を軽減することができるデータ読取方法、およびデータ読取装置等を提供することを目的とする。
【０００６】
【課題を解決するための手段】
請求項１に記載のデータ読取方法は、可変長符号化されたデータを読み取るデータ読取方法において、一連の符号語を順次読み取る第１の符号語読取手順と、前記第１の符号語読取手順による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手順と、を備えることを特徴とする。
【０００７】
請求項７に記載のデータ読取装置は、可変長符号化されたデータを読み取るデータ読取装置において、一連の符号語を順次読み取る第１の符号語読取手段と、前記第１の符号語読取手段による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手段と、を備えることを特徴とする。
【０００８】
請求項９に記載のプログラムは、可変長符号化されたデータを読み取るデータ読取方法を実行するためのプログラムにおいて、コンピュータを、一連の符号語を順次読み取る第１の符号語読取手順、および、前記第１の符号語読取手順による読み取り位置が次の再同期マーカの位置に到達する前に、前記次の再同期マーカを検出する再同期マーカ検出手順、として機能させることを特徴とする。
【０００９】
【発明の実施の形態】
以下、図１〜図８を参照して、本発明によるデータ読取方法について説明する。図１は本実施形態のデータ読取方法を実行するためのデータ読取装置の構成を示すブロック図である。
【００１０】
図１に示すように、データ読取装置は、ビットストリームに対しＭＰＥＧ４に従ったデコード（復号）処理を実行してビデオ信号およびオーディオ信号を生成するＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）１と、ＤＳＰ１における処理に必要なデータを逐次格納するＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）２と、ＤＳＰ１および制御装置４における処理を規定するプログラム（デコードプログラム等）を格納するＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）３と、ＤＳＰ１、ＲＡＭ２およびＲＯＭ３を制御する制御装置４と、を備える。
【００１１】
次に、ＤＳＰ１に入力されるビットストリームについて説明する。本実施形態では、ビットストリームとして、ＭＰＥＧ４に従って可変長符号化により生成されたビット系列を用いている。可変長符号化は符号化の対象となる事象（例えば、英文字の場合はａ、ｂ、ｃ・・・等のアルファベット）に対し、長さの異なる符号語を割り当てる方式である。これにより、出現頻度の高い事象を短い符号語で、出現頻度の低い事象を長い符号語で、それぞれ表現することができるため、全体としてビット系列を短くできる特長がある。
【００１２】
図２は可変長符号の例を示している。図２の例では、符号語「１０」が英文字「Ａ」を、符号語「０１」が英文字「Ｂ」を、符号語「００１」が英文字「Ｃ」を、符号語「１１０１」が英文字「Ｄ」を、それぞれ表している。この場合、図２に示すように、ビット系列が「００１１１０１１０００１０１」であれば、「ＣＤＡＣＢ」とデコードされる。一方、ビット系列における▲１▼の位置のビットがエラーにより反転すると、「ＣＤＡＸ」とデコードされる。「Ｘ」はテーブルになく変換不能な符号語が検出されたことを示す（以下、同様）。また、可変長符号化を行った場合、「Ｘ」に続く符号語の開始位置が不明であるため、「Ｘ」以降の一連の符号語をデコードすることもできなくなる。
【００１３】
このような可変長符号化の欠点を解消するため、ビット系列の途中に再同期マーカが挿入される。図３は再同期マーカの挿入位置を概念的に示す図である。図３に示すように、画像データの途中に複数の再同期マーカが挿入される。この例では、１フレームを構成するＶＯＰ　（Ｖｉｄｅｏ　Ｏｂｊｅｃｔ　Ｐｌａｎｅ）内において、生成ビット長が一定長に到達する度に再同期マーカを挿入しており、画像データのビット系列中における再同期マーカの位置（図３（ａ））、および画像の左上から右下に向かう画素に順次対応する画像データ中に存在する再同期マーカの画像中の位置（図３（ｂ））を、それぞれ示している。
【００１４】
このような再同期マーカを挿入することによりデコードを開始すべきポイント、すなわち先頭にある符号語の開始位置を示すことができる。この再同期マーカ間の単位をビデオパケット（Ｖｉｄｅｏ　Ｐａｃｋｅｔ）と呼び、ビデオパケットのヘッダ部分には再度デコーダを開始するために必要な情報が記述される。また、ヘッダ部分に続く符号化情報部分には、任意の数の事象に対応する符号語（マクロブロック符号化情報）を格納することができる。１ＶＯＰに対応するビットストリームは、任意の数のビデオパケットに分割することができる。
【００１５】
図４は、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、「Ｆ」、「Ｇ」、「Ｈ」、「再同期マーカ」をそれぞれ示す符号語と、「Ｂ、Ｆ、Ｃ、Ｇ、Ｅ、Ｈ、再同期マーカ」を順次示すビット系列とを示す図である。図４に示すように、先頭から順次データを読み取り、事象が割り当てられた符号語が検出される度にデコード処理が順次進行する。
【００１６】
次に、図５〜図７を参照して、データ読取装置１００の動作について説明する。図５はデータ読取りの手順を示すフローチャートである。図５に示す処理はＲＯＭ３に格納されたプログラムを用いて制御装置４の制御により実行される。
【００１７】
図５のステップＳ１では、再同期マーカによって区画された所定のビデオパケットのデータを読み込み、そのビデオパケットについてデコードを実行する処理を開始する。次に、現在デコード処理を実行中のビデオパケットと次のビデオパケットの間にある、次の再同期マーカをサーチする（ステップＳ２）。次の再同期マーカを検出後、現在のビデオパケットについてデコード処理を実行し（ステップＳ３）、デコード処理においてエラーが検出されたか否か判断する（ステップＳ４）。この判断が肯定されればステップＳ５へ進み、否定されればステップＳ６へ進む。ステップＳ５では検出されたエラーの内容に合致したエラーの隠蔽処理を実行し、ステップＳ６へ進む。ステップＳ６では、対応するＶＯＰのデコードを終了する。以上の処理を各ビデオパケットについて繰り返すことで、順次デコードを実行することができる。
【００１８】
上記ステップＳ５におけるエラー検出処理では、テーブルにない符号語が検出された場合や、妥当でない値（エラーがなければありえない値）が検出された場合などにエラーと判断することができる。
【００１９】
上記実施形態において、再同期マーカ間のビデオパケットに含まれるデータのビット数に関する情報（例えば、そのビデオパケットに含まれる最大ビット数）をヘッダ部分から読み込み、その情報を利用した処理を加えるようにしてもよい。例えば、ビデオパケットに含まれるはずのビット数を超えても次の再同期マーカを検出できない場合には、その時点において、この再同期マーカの部分でビット反転が生じていることが判明する。このため、迅速に適切な処理を実行することが可能となる。また、ビデオパケットに含まれるはずのビット数を超えても符号語のデコードが終了しない場合には、エラーであると判断することができる。
【００２０】
次に、図５に示す処理によるデコードの結果について、従来の方法と比較しながら説明する。図６（ａ）〜（ｃ）は、従来のデコード方法に従った場合のデコード結果を示している。
【００２１】
図４におけるビット系列の▲２▼の部分のビットがエラーにより反転した場合、図６（ａ）に示すように、従来のデコード方法では、「Ｂ、Ｇ、Ｃ、Ｇ、Ｅ、Ｈ、再同期マーカ」の順にデコードされる。本実施形態では、次の再同期マーカが予め検出されるが、結果として、従来のデコード方法と同一のデコード結果が得られる。
【００２２】
図４におけるビット系列の▲３▼の部分のビットがエラーにより反転した場合、図６（ｂ）に示すように、従来のデコード方法では、「Ｂ、Ｆ、Ｆ、Ａ、Ｃ、Ａ、Ｆ、Ｘ」の順にデコードされ、次の再同期マーカを検出することができない。このため、次のビデオパケットについて、正常なデコードが不可能となる。これに対し、本実施形態では、このようなビットの反転があっても次の再同期マーカを確実に検出することができる。このため、次のビデオパケットについては、先頭からデコードを再開することができる。
【００２３】
図４におけるビット列の▲４▼の部分のビットがエラーにより反転した場合、図６（ｃ）に示すように、従来のデコード方法では、「Ｂ、Ｆ、Ｃ、Ｘ、Ｘ、Ｘ」の順にデコードされるが、デコードできない符号語が出現した段階で次の再同期マーカの検出を開始する。本実施形態では、次の再同期マーカが予め検出されるが、結果として、従来のデコード方法と同一のデコード結果が得られる。
【００２４】
図７は符号語が逆方向からもデコードが可能なように構成されている特殊な可変長符号（ＲＶＬＣ：Ｒｅｖｅｒｓｉｂｌｅ　Ｖａｒｉａｂｌｅ　Ｌｅｎｇｔｈ　Ｃｏｄｅ）を説明するための図である。図７に示すように、一方向からのデコードが可能な通常の可変長符号では、エラーが発生した位置よりも後方ではデータのデコードが不可能となり、これらのデータを利用できない。これに対して、順方向および逆方向のいずれからもデコードが可能である場合には、順方向からのデコードが可能な範囲にも、逆方向からのデコードが可能な範囲にも含まれない部分のみがデータを利用できない範囲となる。このため、通常の可変長符号に比べてデータをより有効に利用できる。このような逆方向からのデコードが可能な可変長符号を本実施形態のデータ読取方法に適用することもできる。
【００２５】
図８は、本実施形態のデータ読取方法により読み取ることのできるデータ読取範囲を従来の方法と比較して示す図である。図８に示すように、従来の方法（図８において、１）従来の方式）では実際にエラーがある位置（ｂ）を過ぎてエラーが検出される位置（ｘ）までの間、実際には誤りがあるにもかかわらず、正しくデコードされたものと判断されて処理される部分（ｅ）が次のビデオパケットまで継続する可能性がある。すなわち、図８に示すように、誤ってデコードされる部分（ｅ）中に、次の再同期マーカ（ａ）が含まれた場合には、次のビデオパケットのデータが誤ってデコードされる。すなわち、エラーが次のビデオパケットまで伝播するという現象が発生する。なお、図８の例では、エラーを検出した位置（Ｘ）よりもやや前の位置（例えば、最後の符号語に相当する長さだけ前の位置）からデータを捨てるような処理を行っており、図８における本実施形態の説明についても同様である。
【００２６】
これに対して、本実施形態のデータ読取方法によれば、通常の可変長符号化を用いた場合（図８において、２）提案方式）では、予め次の再同期マーカ（ａ）を検出するため、再同期マーカ間のバイト（ビット）長、つまりビデオパケットのバイト（ビット）長を予め把握している。したがってデコードが次の再同期マーカ（ａ）の部分に及んだときに再同期マーカ（ａ）が認識できなかった場合は、デコード済みのバイト（ビット）長と、その値との間で矛盾を生じることによりエラーの存在が判明する。すなわち、ビデオパケット内のどこかにエラーがあったことが判明するとともに、次のビデオパケットについては正しいデコードを実行することが可能となる。したがって、次のビデオパケットは正しくデコードすることができる部分（ｄ）となり、正しくデコードされたものと判断されて処理される部分（ｅ）およびデータが捨てられる部分（ｃ）、つまりエラー判明により、デコード不要となった部分が減少する。つまり、次のビデオパケットにエラーが伝播するおそれがない。
【００２７】
さらに、本実施形態のデータ読取方法に、順方向および逆方向のいずれからもデコードが可能であるような形式で可変長符号化が行われている場合（図８において、３）提案方式）では、再同期マーカが検出できているので、検出済みの再同期マーカから逆方向の復号もすることができる。これにより、両方向からのデコードが可能となり、エラーの影響を局所化することができるため、映像等の再生品位は更に向上する。なお、従来の方式では予め次の再同期マーカを捉えていないため、両方向からの復号ができず、本実施形態のような効果を得ることができない。
【００２８】
上記実施形態において、図８は本実施形態のアルゴリズムを視覚的にわかり易く示すために、エラーの発生位置、デコード可能な部分、デコード不可能な部分等を便宜的に配置したものである。本実施形態における処理手順は、図８に示される例に限定されることはない。
【図面の簡単な説明】
【図１】本実施形態のデータ読取方法を実行するためのデータ読取装置の構成を示すブロック図。
【図２】可変長符号の例を示す図。
【図３】再同期マーカの挿入位置を概念的に示す図であり、（ａ）は画像データのビット系列中における再同期マーカの位置を、（ｂ）は画像中における再同期マーカの位置を、それぞれ示す図。
【図４】符号語およびビット系列を示す図。
【図５】データ読み取りの手順を示すフローチャート。
【図６】デコード結果を示す図であり、（ａ）〜（ｃ）はそれぞれ従来のデコード方法に従った場合のデコード結果を示す図。
【図７】符号語が逆方向からもデコードが可能なように構成されている可変長符号を示す図。
【図８】本実施形態のデータ読取方法により読み取ることのできるデータ読取範囲を従来の方法と比較して示す図。
【符号の説明】
１　　　ＤＳＰ（第１の符号語読取手段、第２の符号語読取手段、第３の符号語読取手段、再同期マーカ検出手段）
【図１】
2004112593.tif 000003
【図２】
2004112593.tif 000004
【図３】
2004112593.tif 000005
【図４】
2004112593.tif 000006
【図５】
2004112593.tif 000007
【図６】
2004112593.tif 000008
【図７】
2004112593.tif 000009
【図８】
2004112593.tif 000010