(57)【要約】  符号化ストリーム復号装置において、充填確認回路１６はバッファ回路１１に十分な量のストリームが格納されていることを確認する。その後、制御回路１３は復号回路１２に制御信号を出力して可変長復号処理を指示することを繰り返し始める。この復号処理の繰り返しにより、バッファ回路１１での総消費ストリーム量が閾値設定回路１４の閾値以上となった場合には、無効化回路１５が「１」値の復号無効化信号を生成して制御回路１３に出力する。制御回路１３は、復号無効化信号を受けると、復号処理の停止を指示する制御信号を復号回路１２に出力し、復号回路１２は復号処理を停止する。従って、長い待ち時間を要することなく、ストリームの誤りが検出される。
2010125616.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されるストリームを蓄えるバッファ手段と、
前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、
前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、
前記復号手段で消費された消費ストリームの閾値を格納する閾値設定手段と、
前記閾値設定手段の閾値と、前記復号手段で消費された消費ストリーム量とに基づいて復号無効化信号を発生して前記制御手段に出力する無効化手段とを備えた
ことを特徴とする符号化ストリーム復号装置。
【請求項２】
前記請求項１記載の符号化ストリーム復号装置において、
前記閾値設定手段が格納する閾値を考慮した十分な量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、
前記制御手段は、前記充填確認手段によりストリームの充填が確認されるまで前記復号手段を待機させる
ことを特徴とする符号化ストリーム復号装置。
【請求項３】
前記請求項１又は２記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段の復号動作を停止させ、
前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号により復号処理を停止し、ストリームを消費しない
ことを特徴とする符号化ストリーム復号装置。
【請求項４】
前記請求項１又は２記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けても、前記復号手段の復号を継続させる制御信号を生成し、
前記復号手段は、前記無効化手段が発生する復号無効化信号を受け、この復号無効化信号を受けている間は、前記制御手段に対して、前記制御手段が生成する制御信号を受理して動作したようにふるまう
ことを特徴とする符号化ストリーム復号装置。
【請求項５】
前記請求項４記載の符号化ストリーム復号装置において、
前記復号手段は、
前記無効化手段からの復号無効化信号を受けている間は、復号処理を行わず、
復号結果として特殊な値を生成して、その特殊な値の復号結果を前記制御手段に出力する
ことを特徴とする符号化ストリーム復号装置。
【請求項６】
前記請求項４又は５記載の符号化ストリーム復号装置において、
前記復号手段は、
前記無効化手段からの復号無効化信号を受けている間は、クロックダウンなどの消費電力の低減を行う
ことを特徴とする符号化ストリーム復号装置。
【請求項７】
前記請求項５記載の符号化ストリーム復号装置において、
前記制御手段は、
一連の復号処理からなるタスクの終了後、前記無効化手段から復号無効化信号が発生しているかどうかを判断し、その復号無効化信号が発生しているとき、復帰のための制御を行う
ことを特徴とする符号化ストリーム復号装置。
【請求項８】
前記請求項３記載の符号化ストリーム復号装置において、
前記無効化手段から前記閾値設定手段の閾値と前記復号手段で消費したストリーム総消費量との差分を伝えられると共に、前記バッファ手段から内部のストリームの状態を伝えられる状態保存手段を備え、
前記状態保存手段は、前記復号手段での復号処理が中断した後、その中断した復号処理の再開時には、前記閾値とストリーム総消費量との差分を新たな閾値として前記閾値設定手段に通知すると共に、前記バッファ手段のストリームの状態を復元させる
ことを特徴とする符号化ストリーム復号装置。
【請求項９】
前記請求項８記載の符号化ストリーム復号装置において、
前記状態保存手段は、
前記閾値とストリーム総消費量との差分を変更して前記閾値設定手段に通知すると共に、この変更に対応するように前記バッファ手段のストリームの状態を変更して、
ストリームの巻き戻し又はスキップを可能とした
ことを特徴とする符号化ストリーム復号装置。
【請求項１０】
前記請求項３記載の符号化ストリーム復号装置において、
前記復号手段の動作を制御するための他の制御信号を生成して前記復号手段に出力する他の制御手段を備え、
前記復号手段は、前記無効化手段から復号無効化信号を受けている間は、前記他の制御手段からの制御信号に基づく復号処理を実行する
ことを特徴とする符号化ストリーム復号装置。
【請求項１１】
前記請求項３記載の符号化ストリーム復号装置において、
前記制御手段は、複数のタスクを並列に制御し、
前記復号手段は、前記複数のタスクのうち何れか１つのタスクに基づく復号処理の実行時において前記無効化手段から復号無効化信号を受けている間は、他タスクの復号処理を実行する
ことを特徴とする符号化ストリーム復号装置。
【請求項１２】
外部から入力されるストリームを蓄えるバッファ手段と、
前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、
前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、
前記制御手段での制御信号の生成回数の閾値を格納する閾値設定手段と、
前記閾値設定手段の閾値と前記制御手段での制御信号の生成回数とに基づいて復号無効化信号を発生して前記制御手段に通知する無効化手段とを備えた
ことを特徴とする符号化ストリーム復号装置。
【請求項１３】
前記請求項１２記載の符号化ストリーム復号装置において、
所定量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、
前記制御手段は、前記充填確認手段によりストリームの所定量への充填が確認されるまで前記復号手段を待機させる
ことを特徴とする符号化ストリーム復号装置。
【請求項１４】
前記請求項１２又は１３記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段での復号動作を停止させ、
前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号を受けて、復号処理を停止し、ストリームを消費しない
ことを特徴とする符号化ストリーム復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータを扱う信号処理装置に係り、特に可変長符号化されたデータを含む符号化ストリームの復号装置に関する。
【背景技術】
【０００２】
デジタル信号処理技術の進歩に伴ない、ＤＶＤやＢＤ、ＳＤメモリカードなどを記憶媒体として、動画や音声を格納するＡＶ信号を記録・再生する各種装置が開発され、様々な用途で利用されている。更に、放送波によるＡＶ信号の送受信や、デジタルネットワークを介したＡＶ信号の送受信を行うような装置も広く普及しつつある。このような応用用途では、高品質なＡＶ信号の記録・再生を実現するため、複雑な符号化技術が使用されている。従って、これらの処理には多大な演算量と複雑な制御が必要となる。しかし、その一方で、実際の利用場面では、記憶媒体の読み書きや送受信の過程でＡＶ信号にエラーが発生する可能性も考慮して処理を行う必要がある。【０００３】
従来、特許文献１に記載の可変長符号復号装置では、復号するべきビットストリームが誤っていた場合に、誤りを容易に検出できる構成をとっている。【０００４】
この可変長符号復号装置は、図１３に示すように、第１記憶部１と、復号部２と、タイマー部３と、制御部４とを備える。第１記憶部１は、受信した可変長符号データを記憶する。復号部２は、第１記憶部１から読み出されたハフマン符号を復号する。タイマー部３は、復号部２による復号の開始から所定時間経過後にタイムアップ信号を出力する。制御部４は、タイマー部３のタイムアップ信号に基づいて復号部２による復号を強制終了させる。【０００５】
このように構成することにより、可変長符号の誤りに起因して復号処理の時間が所定時間以上になった場合に、タイマー部のタイムアップ信号に基づいて復号部による復号が強制終了される。これにより、可変長符号に誤りがあることが検出されると共に、復号処理時間の超過による画像のこま落ちや音声の欠落が発生することが防止される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１８５３３２号公報（第３−１１頁、図１等）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記従来の構成では、可変長符号に誤りがあった場合、タイムアウト信号が発生するまで一定の時間、処理が進まなくなる。システムが高速化するほどタイムアウト時間が相対的に長くなるため、高速に処理を行う必要があるシステムではタイムアウト時間の影響が大きくなるという課題がある。【０００８】
また、ビットレートが一定ではないような場合や、複数の処理を同時に処理するようなシステムにおいて、リソースの競合が起こった場合などでは、処理時間に揺らぎが発生する。前記従来の構成では、処理時間に揺らぎが発生した場合には、タイムアウト時間を最も長いものに設定する必要があると考えられるため、複雑な処理を行う必要があるシステムにおいてタイムアウト時間が長くなってしまうという課題がある。【０００９】
本発明は、前記課題を解決するものであり、その目的は、高速かつ複雑な処理が必要とされるシステムで効率的に誤りを検出できる符号化ストリーム復号装置を提供することにある。
【課題を解決するための手段】
【００１０】
以上の目的を達成するため、本発明では、復号処理を終えた総消費ストリーム量や復号処理の回数でもってストリームの誤りを検出し、これにより、長いタイムアウト時間を一律に待つことがないようにする。【００１１】
具体的に、本発明の符号化ストリーム復号装置は、外部から入力されるストリームを蓄えるバッファ手段と、前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、前記復号手段で消費された消費ストリームの閾値を格納する閾値設定手段と、前記閾値設定手段の閾値と、前記復号手段で消費された消費ストリーム量とに基づいて復号無効化信号を発生して前記制御手段に出力する無効化手段とを備えたことを特徴とする。【００１２】
本発明は、前記符号化ストリーム復号装置において、前記閾値設定手段が格納する閾値を考慮した十分な量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、前記制御手段は、前記充填確認手段によりストリームの充填が確認されるまで前記復号手段を待機させることを特徴とする。【００１３】
本発明は、前記符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段の復号動作を停止させ、前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号により復号処理を停止し、ストリームを消費しないことを特徴とする。【００１４】
本発明は、前記符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けても、前記復号手段の復号を継続させる制御信号を生成し、前記復号手段は、前記無効化手段が発生する復号無効化信号を受け、この復号無効化信号を受けている間は、前記制御手段に対して、前記制御手段が生成する制御信号を受理して動作したようにふるまうことを特徴とする。【００１５】
本発明は、前記符号化ストリーム復号装置において、前記復号手段は、前記無効化手段からの復号無効化信号を受けている間は、復号処理を行わず、復号結果として特殊な値を生成して、その特殊な値の復号結果を前記制御手段に出力することを特徴とする。【００１６】
本発明は、前記符号化ストリーム復号装置において、前記復号手段は、前記無効化手段からの復号無効化信号を受けている間は、クロックダウンなどの消費電力の低減を行うことを特徴とする。【００１７】
本発明は、前記符号化ストリーム復号装置において、前記制御手段は、一連の復号処理からなるタスクの終了後、前記無効化手段から復号無効化信号が発生しているかどうかを判断し、その復号無効化信号が発生しているとき、復帰のための制御を行うことを特徴とする。【００１８】
本発明は、前記符号化ストリーム復号装置において、前記無効化手段から前記閾値設定手段の閾値と前記復号手段で消費したストリーム総消費量との差分を伝えられると共に、前記バッファ手段から内部のストリームの状態を伝えられる状態保存手段を備え、前記状態保存手段は、前記復号手段での復号処理が中断した後、その中断した復号処理の再開時には、前記閾値とストリーム総消費量との差分を新たな閾値として前記閾値設定手段に通知すると共に、前記バッファ手段のストリームの状態を復元させることを特徴とする。【００１９】
本発明は、前記符号化ストリーム復号装置において、前記状態保存手段は、前記閾値とストリーム総消費量との差分を変更して前記閾値設定手段に通知すると共に、この変更に対応するように前記バッファ手段のストリームの状態を変更して、ストリームの巻き戻し又はスキップを可能としたことを特徴とする。【００２０】
本発明は、前記符号化ストリーム復号装置において、前記復号手段の動作を制御するための他の制御信号を生成して前記復号手段に出力する他の制御手段を備え、前記復号手段は、前記無効化手段から復号無効化信号を受けている間は、前記他の制御手段からの制御信号に基づく復号処理を実行することを特徴とする。【００２１】
本発明は、前記符号化ストリーム復号装置において、前記制御手段は、複数のタスクを並列に制御し、前記復号手段は、前記複数のタスクのうち何れか１つのタスクに基づく復号処理の実行時において前記無効化手段から復号無効化信号を受けている間は、他タスクの復号処理を実行することを特徴とする。【００２２】
本発明の符号化ストリーム復号装置は、外部から入力されるストリームを蓄えるバッファ手段と、前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、前記制御手段での制御信号の生成回数の閾値を格納する閾値設定手段と、前記閾値設定手段の閾値と前記制御手段での制御信号の生成回数とに基づいて復号無効化信号を発生して前記制御手段に通知する無効化手段とを備えたことを特徴とする。【００２３】
本発明は、前記符号化ストリーム復号装置において、所定量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、前記制御手段は、前記充填確認手段によりストリームの所定量への充填が確認されるまで前記復号手段を待機させることを特徴とする。【００２４】
本発明は、前記符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段での復号動作を停止させ、前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号を受けて、復号処理を停止し、ストリームを消費しないことを特徴とする。【００２５】
以上により、本発明では、一連の復号処理を行うタスクにおいて、復号処理を行う毎にその復号処理を終えた消費ストリーム量を蓄積し、総消費ストリーム量が閾値設定手段の閾値を越えた際、又は、制御手段での制御信号の生成回数、即ち、復号処理の回数が閾値設定手段の閾値を越えた際には、直ちに無効化手段が復号無効化信号を生成するので、ストリーム誤りが待ち時間を発生することなく直ちに検出される。【００２６】
特に、本発明では、復号処理を開始した後に、外部からのストリーム入力が滞った場合にも、無効化手段による復号無効化信号の発生までは、バッファ手段はアンダーフロー状態にならない。【００２７】
更に、本発明では、無効化手段による復号無効化信号の発生時には、復号手段がストリームの消費を停止するので、復号無効化信号の発生後に外部からのストリーム入力が滞った場合にも、バッファ手段はアンダーフロー状態に陥らない。【００２８】
加えて、本発明では、復号無効化信号の発生の有無や、バッファ手段がアンダーフロー状態に陥っているか否かを制御手段が復号処理毎に確認する必要がないので、制御手段による制御が簡単化される。【００２９】
また、本発明では、復号無効化信号の発生時には、復号手段が復号結果として、特殊な値、例えば０を出力するので、音声信号処理時に復号無効化信号が発生しても出力を無音状態などにできる。従って、制御手段による例外処理を行うことなく、ストリームの誤りによる雑音の発生が防止される。【００３０】
更に、本発明では、制御手段は復号処理の実行毎に誤り検出を行わないが、連続した一連の復号処理実行の終了後に、無効化手段から復号無効化信号の発生の有無を取得して、必要に応じて復帰処理を行うので、各復号処理の実行のための制御手段による制御を簡単化しつつ、所定定間隔毎に誤り検出及び復帰処理を挿入することができる。【００３１】
加えて、本発明では、状態保存手段には、閾値とストリーム総消費量との差分や、バッファ手段のストリームの状態が保存されるので、一連の連続した復号処理から成るタスクを一旦中断して、他タスクや他ストリームの復号処理を行い、その後に、その中断したタスクを再開することが可能となる。【００３２】
また、本発明では、中断したタスクの再開時には、閾値とストリーム総消費量との差分を元の値から変更し、それに対応してバッファ手段のストリームの状態を変更するので、ストリームの巻き戻しやスキップをすることが可能になる。【００３３】
更に、本発明では、制御手段が複数のタスクを処理する場合や、制御手段が複数存在する場合において、復号無効化信号の発生時には、他のタスク又は他の制御手段が復号手段を使用できる。
【発明の効果】
【００３４】
以上説明したように、本発明の符号化ストリーム復号装置によれば、長い待ち時間を発生させることなくストリームの誤りを検出できるので、高速に動作する復号システムやマルチタスクシステム、又はビットレートが一定でないコーデックを扱う場合にも、誤り検出までの相対的な待ち時間を効果的に短縮できる効果を奏する。
【図面の簡単な説明】
【００３５】
【図１】図１は本発明の実施形態１に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図２】図２は同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図３】図３は本発明の実施形態２に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図４】図４は同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図５】図５は本発明の実施形態３に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図６】図６は同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図７】図７は本発明の実施形態４に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図８】図８は同符号化ストリーム復号装置の処理例を示すフロー図である。
【図９】図９は本発明の実施形態５に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図１０】図１０は同符号化ストリーム復号装置の他の構成を示すブロック図である。
【図１１】図１１は本発明の実施形態６に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図１２】図１２は符号化テーブルの一例を示す図である。
【図１３】図１３は従来の可変長符号復号化装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態に係る符号化ストリーム復号装置について図面を参照しながら説明する。
【００３７】
（実施形態１）
図１は、本発明の実施形態１に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００３８】
図１に示す符号化ストリーム復号装置は、バッファ回路１１と、復号回路１２と、例えばプロセッサから成る制御回路１３と、閾値設定回路１４と、無効化回路１５とを備え、外部から入力されるストリームに対して可変長符号の復号を行う。
【００３９】
バッファ回路（バッファ手段）１１は、復号処理に備え、外部から入力されるストリームを充填する。復号回路（復号手段）１２は、バッファ回路１１から入力されるストリームに対し、制御信号に対応する可変長復号処理を行い、復号結果とその際に消費したストリームの消費量を出力する。
【００４０】
また、制御回路（制御手段）１３は、復号回路１２の復号動作についての各種の制御を行う。制御回路１３の一連の動作を以後タスクと呼ぶ。復号のためのタスクでは、制御回路１３は復号回路１２を制御する制御信号を生成し、その復号結果を受信する動作を繰り返す。制御信号の生成方法は、それまでのストリーム入力に依存して次の制御信号を決定する方法や、ストリームのヘッダ部分をデコードして決定する方法などが考えられる。
【００４１】
閾値設定回路（閾値設定手段）１４は、外部又は制御回路１３により復号処理の開始前に閾値を設定され、その閾値を無効化回路１５に出力する。更に、無効化回路（無効化手段）１５は、復号回路１２から出力されるストリーム消費量の総和を演算し、それが閾値設定回路１４から出力される閾値を越えれば復号無効化信号を有効にする。具体的には、ストリーム消費量の総和が閾値以下の場合は復号無効化信号として「０」を出力し、ストリーム消費量の総和が閾値を越えた場合には、復号無効化信号として「１」を出力するものとする。
【００４２】
符号化テーブルが図１２で表されるような符号化ストリーム「０１１００１０１０１１１１１１１」を可変長復号する動作を説明する。図２はこの構成による復号処理フローを示す。
【００４３】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ここでは、ストリーム長である１６ビットが外部から入力されることを想定して、正常な（誤りのない）総消費ストリーム量に等しい「閾値」として、その「１６」ビットを設定するものとする。次に、制御回路１３は復号処理のための繰り返し処理に入る。制御回路１３は、６回の復号処理で復号が終了することをストリームのヘッダ部分の解析等により知っているか、又は規格により予め知っているものとする。
【００４４】
１回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４５】
２回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４６】
３回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４７】
４回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「７」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４８】
５回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「９」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４９】
６回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１６」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。
【００５０】
次に、ストリームが誤って「０１１００１０１１１１１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。
【００５１】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ストリーム長である１６ビットが外部から入力され、その「１６」を閾値として設定するものとする。次に、制御回路１３は復号処理のための繰り返し処理に入る。
【００５２】
１回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５３】
２回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５４】
３回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がストリーム「０」をバッファ回路１１より取得する。復号回路１２はストリーム消費量「１」を無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５５】
４回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「７」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５６】
５回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５７】
６回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１７」との比較を行う。ストリーム消費量の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、制御回路１３は復号の繰り返し処理を中止する制御信号を復号回路１２に出力する。その結果、復号回路１２は復号処理を停止し、その後はストリームを消費しない。更に、制御回路１３は復帰処理を行い、タスクを終了する。
【００５８】
この構成により、本来よりも復号処理が多くなるようなストリームの誤りを検出できる。本実施形態では、総消費ストリーム量が閾値を越えれば直ちにストリーム誤りと検出できるので、従来のように長い待ち時間を経てタイムアップ信号が出力される場合と比較して、ストリームの誤り検出に長い待ち時間が発生しない。制御回路（プロセッサ）１３の処理性能が今後更に向上してシステムがより高速化すれば、復号処理もより短時間で終了できるので、誤り検出までの時間はより一層短縮される。
【００５９】
本実施形態では、誤りのない場合のストリームの長さがヘッダに格納されており、復号する前に正しいストリーム長を取得できる場合を想定しているが、それがない場合でも、コーデックの規格上の最大値を利用するか、実際の利用場面であり得る最大長を閾値として用いることにより、本実施形態の構成を採用することができる。
【００６０】
（実施形態２）
図３は、本発明の実施形態２に係る符号化ストリーム復号装置の構成を示すブロック図である。この構成では、実施形態１と異なり、充填確認回路１６を持つ。それ以外は実施形態１と同じである。
【００６１】
図３において、充填確認回路（充填確認手段）１６は、バッファ回路１１から充填ストリーム量を入力され、閾値設定回路から閾値を入力される。この両者を比較し、充填ストリーム量が閾値以上になれば、そのことを制御回路１３に通知する。
【００６２】
図４はこの構成の処理フロー例を示す。制御回路１３は、閾値の設定後、充填確認回路１６によりバッファ回路１１へのストリームの閾値以上の充填量が確認された後、最初の制御信号を生成し、その確認までは復号回路１２の復号処理を待機させる。それ以外は実施形態１と同じである。
【００６３】
この構成により、ストリームの供給が不安定なシステムにおいて、復号処理時にアンダーフローが発生する可能性を排除することができる。そのため、復号処理にデータ量が少ないアンダーフロー時に復号回路１２が不正な値を返すようなシステムにおいて、復号の繰り返し処理中でのアンダーフロー判定を省略できる。また、アンダーフロー時にバッファ回路１２が充填されるまで復号回路１２が待機するようなシステムでは、復号処理時にアンダーフローが発生すると、制御回路１３はバッファ回路１２が充填されるまで待たされるが、本構成により復号処理時のアンダーフローを防ぎ、復号処理開始前にバッファ回路１２が充填されるまでの間、制御回路１３を他タスクの処理のために使用することが可能である。
【００６４】
（実施形態３）
図５は、本発明の実施形態３に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００６５】
本実施形態の構成では、実施形態２と異なり、無効化回路１５が発生する復号無効化信号は復号回路１２にも通知される。また、予め復号処理が何回必要なのかは予め分かっているものとする。
【００６６】
図６は、この構成の処理フロー例を示す。実施形態２と異なり、制御回路１３は復号処理実行時に復号無効化信号に基づく分岐を行わず、復号無効化信号とは無関係に復号処理を継続させる制御信号の生成を続行する。また、復号回路１２は、復号無効化信号が「１」で有効な場合は、前記制御回路１３が発生する制御信号を受理するが、復号処理は実際には行わずに、特殊な値として「０」を復号結果として制御回路１３に出力し、制御信号を受けて復号処理をしたようにふるまう。このとき、復号回路１２は、不要回路の消費電力低減のために、クロックダウンや、電源を遮断する等を行っても良い。また、制御回路１３は、最後の復号処理終了後に復号無効化信号が有効になっていた場合に、復帰処理のための制御を行う。
【００６７】
符号化テーブルが図１２で表されるようなストリーム「０１１００１０１０１１１１１１１」が、誤って「０１１００１１１１１１１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。
【００６８】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ストリーム長である１６ビットが外部から入力され、その「１６」を閾値として設定するものとする。次に、充填確認回路１６がストリームの充填を確認した後、制御回路１３は復号処理のための繰り返し処理に入る。制御回路１３は、６回の復号処理で復号が終了することを知っているものとする。
【００６９】
１回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７０】
２回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７１】
３回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がストリーム「０」をバッファ回路１１より取得する。復号回路１２はストリーム消費量「１」を無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７２】
４回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１２」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７３】
５回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１０」の長さである「５」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１７」との比較を行う。ストリーム消費量の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、復号回路１２は復号処理を行わないが、復号結果として「０」を出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７４】
６回目：制御回路１３が可変長符号を復号する制御信号を生成するが、復号無効化信号が「１」であるので、復号回路１２は復号処理を行わず、復号結果として「０」を出力する。
【００７５】
本実施形態の構成では、制御回路１３は復号処理毎に復号無効化信号の値が「０」か「１」かを判定する必要がない。外部から入力されるストリームは、通常、誤りがない場合が多いので、この誤りがないストリームに対して制御回路１３が各復号処理で行わなければいけない処理を削減できる。制御回路１３は、最後に復号無効化信号が「１」になっていれば、誤りがある１タスク分を捨てる等の制御を行えば済む。
【００７６】
（実施形態４）
図７は、本発明の実施形態４に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００７７】
本実施形態の構成では、実施形態１と異なり、状態保存回路１７を備える。状態保存回路（状態保存手段）１７は、無効化回路１５から入力される閾値とストリーム総消費量との差分（閾値−ストリーム総消費量）及びバッファ回路１１内のストリームの状態を記憶する。また、記憶した前記閾値とストリーム総消費量の差分を閾値設定回路１４に通知し、バッファ回路１１のストリームの状態を復元する。
【００７８】
図８はこの構成の処理フロー例を示す。前記実施形態３と異なり、制御回路１３は復号処理の継続の判定時に復号処理を中断するための制御を行うことができる。復号処理を中断する際には、制御回路１３による処理継続判定直後に、状態保存回路１７が無効化回路１５から入力される閾値とストリーム総消費量との差分及びバッファ回路１１から取得したバッファ回路１１のストリームの状態を記憶する。復号再開時には、バッファ回路１１のストリームの状態を復元し、記憶した閾値とストリーム総消費量との差分を新たな閾値として閾値設定回路１４に通知して、中断した処理を再開する。
【００７９】
例えば、実施形態１のストリームに誤りがない場合の例で、４回目の復号処理の後に中断をする場合、状態保存回路１７は閾値「１６」とストリーム総消費量「７」との差分である「９」と、ストリームの先頭を指すポインタなどバッファ回路１１が保持する状態を保存する。その後、復号処理を再開する場合には、閾値設定回路１４に新たな閾値として「９」を設定し、バッファ回路１１のポインタの設定や、必要であればストリームの充填を行い、５回目の復号処理から処理を再開する。
【００８０】
制御回路１３が復号処理以外のタスクも実行するプロセッサで実現される場合、復号処理の途中で他のタスクに切り替えることが可能であれば、より複雑なシステムを構成可能となる。
【００８１】
また、復号再開時には、閾値とストリーム総消費量との差分、及びバッファ回路１１のストリームの状態を変更して復元することにより、ストリームのスキップや巻き戻しを実現することもできる。
【００８２】
（実施形態５）
図９は、本発明の実施形態５に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００８３】
本実施形態の構成では、実施形態１と異なり、制御回路１３ａと、他の制御回路（他の制御手段）１３ｂとを備える。この構成において、通常時、復号回路１２は、何れか一方の制御回路（例えば１３ａ）が生成した制御信号のみを受け付け、実行中の制御回路１３ａのタスクが終了するか、又は実施形態４の方法で処理が中断されるまで同じ制御回路１３ａからの制御信号のみを受け付ける。しかし、復号無効化信号が「１」に有効になった場合には、以後は復号回路１２はそのタスクでは復号する必要がないため、他方の制御回路１３ｂが生成する制御信号のみを受け付けるようにする。
【００８４】
図１０は、１つの制御回路１３が複数のタスク１８ａ、１８ｂを並列に行っている構成を示す。この場合にも、各タスク１８ａ、１８ｂが制御信号を出力する際に、同時にタスクを区別するための識別信号を出力することにより、複数の制御回路が存在する場合と同様に処理ができる。
【００８５】
（実施形態６）
図１１は、本発明の実施形態６に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００８６】
図１１に示す符号化ストリーム復号装置は、バッファ回路１１と、復号回路１２と、制御回路１３と、閾値設定回路１４と、無効化回路１５と、充填確認回路１６とを備える。
【００８７】
バッファ回路１１は、復号処理に備え、外部から入力されるストリームを充填する。復号回路１２は、バッファ回路１１から入力されるストリームに対し、制御信号に対応する復号処理を行い、復号結果を出力する。制御回路１３は、復号回路１２を制御する制御信号を生成し、その結果を受信する。
【００８８】
また、閾値設定回路（閾値設定手段）１４は、外部又は制御回路１３により、制御回路１３が制御信号を生成する回数、即ち、復号処理の回数の閾値を設定され、その閾値を無効化回路１５に出力する。
【００８９】
無効化回路１５は、前記制御回路１３が制御信号を生成した回数と、閾値設定回路１４からの閾値とを比較して、予め定めた制御信号生成回数が閾値を越えれば復号無効化信号を有効にする。充填確認回路１６は、バッファ回路１１から充填ストリーム量が入力され、この充填ストリーム量が所定量以上になれば、そのことを制御回路１３に通知する。
【００９０】
本実施形態の構成においても、図４で示した実施形態２と同様の制御を行うことができる。
【００９１】
符号化テーブルが図１２で表されるようなストリーム「０１１００１０１０１１１１１１１」が、誤って「０１１００１０１０１０１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。また、復号結果が「ｈ」となったときに１タスク分の復号処理を終了するものとする。
【００９２】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ここでは、正常な制御信号生成回数（正常な復号処理回数）として「６」が外部から入力され、その「６」を閾値として設定するものとする。次に、充填確認回路１６がストリームの充填を確認した後、制御回路１３は復号処理のための繰り返し処理に入る。
【００９３】
１回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「１」との比較を行う。制御信号生成回数が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９４】
２回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「２」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９５】
３回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「３」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９６】
４回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「４」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９７】
５回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「５」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９８】
６回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「６」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９９】
７回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「７」との比較を行う。制御信号生成回数の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、制御回路１３は復号処理を停止させる制御信号を生成し、その結果、復号回路１２は復号処理を行わない。その後、制御回路１３は処理を終了する。
【０１００】
尚、本実施形態では、充填確認回路１６を持つ構成の場合を説明したが、これを持たない実施形態１の場合にも同様に本発明を適用できるのは勿論である。また、本実施形態は前記第３〜第５の実施形態と組み合せても良いのは言うまでもない。
【産業上の利用可能性】
【０１０１】
以上説明したように、本発明に係る符号化ストリーム復号装置は、長い待ち時間を要することなくストリームの誤りを検出できるので、高度な符号化技術を用いた音声や動画像の復号装置、又は可変長符号を用いた通信装置等の用途に適用して有用である。
【符号の説明】
【０１０２】
１１    バッファ回路（バッファ手段）
１２    復号回路（復号手段）
１３    制御回路（制御手段）
１３ｂ  他の制御回路（他の制御手段）
１４    閾値設定回路（閾値設定手段）
１５    無効化回路（無効化手段）
１６    充填確認回路（充填確認手段）
１７    状態保存回路（状態保存手段）
【図１】
2010125616.tif 000003
【図２】
2010125616.tif 000004
【図３】
2010125616.tif 000005
【図４】
2010125616.tif 000006
【図５】
2010125616.tif 000007
【図６】
2010125616.tif 000008
【図７】
2010125616.tif 000009
【図８】
2010125616.tif 000010
【図９】
2010125616.tif 000011
【図１０】
2010125616.tif 000012
【図１１】
2010125616.tif 000013
【図１２】
2010125616.tif 000014
【図１３】
2010125616.tif 000015
【手続補正書】
【提出日】平成23年5月23日(2011.5.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータを扱う信号処理装置に係り、特に可変長符号化されたデータを含む符号化ストリームの復号装置に関する。
【背景技術】
【０００２】
デジタル信号処理技術の進歩に伴ない、ＤＶＤやＢＤ、ＳＤメモリカードなどを記憶媒体として、動画や音声を格納するＡＶ信号を記録・再生する各種装置が開発され、様々な用途で利用されている。更に、放送波によるＡＶ信号の送受信や、デジタルネットワークを介したＡＶ信号の送受信を行うような装置も広く普及しつつある。このような応用用途では、高品質なＡＶ信号の記録・再生を実現するため、複雑な符号化技術が使用されている。従って、これらの処理には多大な演算量と複雑な制御が必要となる。しかし、その一方で、実際の利用場面では、記憶媒体の読み書きや送受信の過程でＡＶ信号にエラーが発生する可能性も考慮して処理を行う必要がある。
【０００３】
従来、特許文献１に記載の可変長符号復号装置では、復号するべきビットストリームが誤っていた場合に、誤りを容易に検出できる構成をとっている。
【０００４】
この可変長符号復号装置は、図１３に示すように、第１記憶部１と、復号部２と、タイマー部３と、制御部４とを備える。第１記憶部１は、受信した可変長符号データを記憶する。復号部２は、第１記憶部１から読み出されたハフマン符号を復号する。タイマー部３は、復号部２による復号の開始から所定時間経過後にタイムアップ信号を出力する。制御部４は、タイマー部３のタイムアップ信号に基づいて復号部２による復号を強制終了させる。
【０００５】
このように構成することにより、可変長符号の誤りに起因して復号処理の時間が所定時間以上になった場合に、タイマー部のタイムアップ信号に基づいて復号部による復号が強制終了される。これにより、可変長符号に誤りがあることが検出されると共に、復号処理時間の超過による画像のこま落ちや音声の欠落が発生することが防止される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１８５３３２号公報（第３−１１頁、図１等）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前記従来の構成では、可変長符号に誤りがあった場合、タイムアウト信号が発生するまで一定の時間、処理が進まなくなる。システムが高速化するほどタイムアウト時間が相対的に長くなるため、高速に処理を行う必要があるシステムではタイムアウト時間の影響が大きくなるという課題がある。
【０００８】
また、ビットレートが一定ではないような場合や、複数の処理を同時に処理するようなシステムにおいて、リソースの競合が起こった場合などでは、処理時間に揺らぎが発生する。前記従来の構成では、処理時間に揺らぎが発生した場合には、タイムアウト時間を最も長いものに設定する必要があると考えられるため、複雑な処理を行う必要があるシステムにおいてタイムアウト時間が長くなってしまうという課題がある。
【０００９】
本発明は、前記課題を解決するものであり、その目的は、高速かつ複雑な処理が必要とされるシステムで効率的に誤りを検出できる符号化ストリーム復号装置を提供することにある。
【課題を解決するための手段】
【００１０】
以上の目的を達成するため、本発明では、復号処理を終えた総消費ストリーム量や復号処理の回数でもってストリームの誤りを検出し、これにより、長いタイムアウト時間を一律に待つことがないようにする。
【００１１】
具体的に、請求項１記載の発明の符号化ストリーム復号装置は、外部から入力されるストリームを蓄えるバッファ手段と、前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、前記復号手段で消費された消費ストリームの閾値を格納する閾値設定手段と、前記閾値設定手段の閾値と、前記復号手段で消費された消費ストリーム量とに基づいて復号無効化信号を発生して前記制御手段に出力する無効化手段とを備えたことを特徴とする。
【００１２】
請求項２記載の発明は、前記請求項１記載の符号化ストリーム復号装置において、前記閾値設定手段が格納する閾値を考慮した十分な量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、前記制御手段は、前記充填確認手段によりストリームの充填が確認されるまで前記復号手段を待機させることを特徴とする。
【００１３】
請求項３記載の発明は、前記請求項１又は２記載の符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段の復号動作を停止させ、前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号により復号処理を停止し、ストリームを消費しないことを特徴とする。
【００１４】
請求項４記載の発明は、前記請求項１又は２記載の符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けても、前記復号手段の復号を継続させる制御信号を生成し、前記復号手段は、前記無効化手段が発生する復号無効化信号を受け、この復号無効化信号を受けている間は、前記制御手段に対して、前記制御手段が生成する制御信号を受理して動作したようにふるまうことを特徴とする。
【００１５】
請求項５記載の発明は、前記請求項４記載の符号化ストリーム復号装置において、前記復号手段は、前記無効化手段からの復号無効化信号を受けている間は、復号処理を行わず、復号結果として特殊な値を生成して、その特殊な値の復号結果を前記制御手段に出力することを特徴とする。
【００１６】
請求項６記載の発明は、前記請求項４又は５記載の符号化ストリーム復号装置において、前記復号手段は、前記無効化手段からの復号無効化信号を受けている間は、クロックダウンなどの消費電力の低減を行うことを特徴とする。
【００１７】
請求項７記載の発明は、前記請求項５記載の符号化ストリーム復号装置において、前記制御手段は、一連の復号処理からなるタスクの終了後、前記無効化手段から復号無効化信号が発生しているかどうかを判断し、その復号無効化信号が発生しているとき、復帰のための制御を行うことを特徴とする。
【００１８】
請求項８記載の発明は、前記請求項３記載の符号化ストリーム復号装置において、前記無効化手段から前記閾値設定手段の閾値と前記復号手段で消費したストリーム総消費量との差分を伝えられると共に、前記バッファ手段から内部のストリームの状態を伝えられる状態保存手段を備え、前記状態保存手段は、前記復号手段での復号処理が中断した後、その中断した復号処理の再開時には、前記閾値とストリーム総消費量との差分を新たな閾値として前記閾値設定手段に通知すると共に、前記バッファ手段のストリームの状態を復元させることを特徴とする。
【００１９】
請求項９記載の発明は、前記請求項８記載の符号化ストリーム復号装置において、前記状態保存手段は、前記閾値とストリーム総消費量との差分を変更して前記閾値設定手段に通知すると共に、この変更に対応するように前記バッファ手段のストリームの状態を変更して、ストリームの巻き戻し又はスキップを可能としたことを特徴とする。
【００２０】
請求項１０記載の発明は、前記請求項３記載の符号化ストリーム復号装置において、前記復号手段の動作を制御するための他の制御信号を生成して前記復号手段に出力する他の制御手段を備え、前記復号手段は、前記無効化手段から復号無効化信号を受けている間は、前記他の制御手段からの制御信号に基づく復号処理を実行することを特徴とする。
【００２１】
請求項１１記載の発明は、前記請求項３記載の符号化ストリーム復号装置において、前記制御手段は、複数のタスクを並列に制御し、前記復号手段は、前記複数のタスクのうち何れか１つのタスクに基づく復号処理の実行時において前記無効化手段から復号無効化信号を受けている間は、他タスクの復号処理を実行することを特徴とする。
【００２２】
請求項１２記載の発明の符号化ストリーム復号装置は、外部から入力されるストリームを蓄えるバッファ手段と、前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、前記制御手段での制御信号の生成回数の閾値を格納する閾値設定手段と、前記閾値設定手段の閾値と前記制御手段での制御信号の生成回数とに基づいて復号無効化信号を発生して前記制御手段に通知する無効化手段とを備えたことを特徴とする。
【００２３】
請求項１３記載の発明は、前記請求項１２記載の符号化ストリーム復号装置において、所定量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、前記制御手段は、前記充填確認手段によりストリームの所定量への充填が確認されるまで前記復号手段を待機させることを特徴とする。
【００２４】
請求項１４記載の発明は、前記請求項１２又は１３記載の符号化ストリーム復号装置において、前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段での復号動作を停止させ、前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号を受けて、復号処理を停止し、ストリームを消費しないことを特徴とする。
【００２５】
以上により、本発明では、一連の復号処理を行うタスクにおいて、復号処理を行う毎にその復号処理を終えた消費ストリーム量を蓄積し、総消費ストリーム量が閾値設定手段の閾値を越えた際、又は、制御手段での制御信号の生成回数、即ち、復号処理の回数が閾値設定手段の閾値を越えた際には、直ちに無効化手段が復号無効化信号を生成するので、ストリーム誤りが待ち時間を発生することなく直ちに検出される。
【００２６】
特に、本発明では、復号処理を開始した後に、外部からのストリーム入力が滞った場合にも、無効化手段による復号無効化信号の発生までは、バッファ手段はアンダーフロー状態にならない。
【００２７】
更に、本発明では、無効化手段による復号無効化信号の発生時には、復号手段がストリームの消費を停止するので、復号無効化信号の発生後に外部からのストリーム入力が滞った場合にも、バッファ手段はアンダーフロー状態に陥らない。
【００２８】
加えて、本発明では、復号無効化信号の発生の有無や、バッファ手段がアンダーフロー状態に陥っているか否かを制御手段が復号処理毎に確認する必要がないので、制御手段による制御が簡単化される。
【００２９】
また、本発明では、復号無効化信号の発生時には、復号手段が復号結果として、特殊な値、例えば０を出力するので、音声信号処理時に復号無効化信号が発生しても出力を無音状態などにできる。従って、制御手段による例外処理を行うことなく、ストリームの誤りによる雑音の発生が防止される。
【００３０】
更に、本発明では、制御手段は復号処理の実行毎に誤り検出を行わないが、連続した一連の復号処理実行の終了後に、無効化手段から復号無効化信号の発生の有無を取得して、必要に応じて復帰処理を行うので、各復号処理の実行のための制御手段による制御を簡単化しつつ、所定定間隔毎に誤り検出及び復帰処理を挿入することができる。
【００３１】
加えて、本発明では、状態保存手段には、閾値とストリーム総消費量との差分や、バッファ手段のストリームの状態が保存されるので、一連の連続した復号処理から成るタスクを一旦中断して、他タスクや他ストリームの復号処理を行い、その後に、その中断したタスクを再開することが可能となる。
【００３２】
また、本発明では、中断したタスクの再開時には、閾値とストリーム総消費量との差分を元の値から変更し、それに対応してバッファ手段のストリームの状態を変更するので、ストリームの巻き戻しやスキップをすることが可能になる。
【００３３】
更に、本発明では、制御手段が複数のタスクを処理する場合や、制御手段が複数存在する場合において、復号無効化信号の発生時には、他のタスク又は他の制御手段が復号手段を使用できる。
【発明の効果】
【００３４】
以上説明したように、本発明の符号化ストリーム復号装置によれば、長い待ち時間を発生させることなくストリームの誤りを検出できるので、高速に動作する復号システムやマルチタスクシステム、又はビットレートが一定でないコーデックを扱う場合にも、誤り検出までの相対的な待ち時間を効果的に短縮できる効果を奏する。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態１に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図２】同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図３】本発明の実施形態２に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図４】同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図５】本発明の実施形態３に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図６】同符号化ストリーム復号装置の処理例を示すフローチャート図である。
【図７】本発明の実施形態４に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図８】同符号化ストリーム復号装置の処理例を示すフロー図である。
【図９】本発明の実施形態５に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図１０】同符号化ストリーム復号装置の他の構成を示すブロック図である。
【図１１】本発明の実施形態６に係る符号化ストリーム復号装置の構成を示すブロック図である。
【図１２】符号化テーブルの一例を示す図である。
【図１３】従来の可変長符号復号化装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態に係る符号化ストリーム復号装置について図面を参照しながら説明する。
【００３７】
（実施形態１）
図１は、本発明の実施形態１に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００３８】
図１に示す符号化ストリーム復号装置は、バッファ回路１１と、復号回路１２と、例えばプロセッサから成る制御回路１３と、閾値設定回路１４と、無効化回路１５とを備え、外部から入力されるストリームに対して可変長符号の復号を行う。
【００３９】
バッファ回路（バッファ手段）１１は、復号処理に備え、外部から入力されるストリームを充填する。復号回路（復号手段）１２は、バッファ回路１１から入力されるストリームに対し、制御信号に対応する可変長復号処理を行い、復号結果とその際に消費したストリームの消費量を出力する。
【００４０】
また、制御回路（制御手段）１３は、復号回路１２の復号動作についての各種の制御を行う。制御回路１３の一連の動作を以後タスクと呼ぶ。復号のためのタスクでは、制御回路１３は復号回路１２を制御する制御信号を生成し、その復号結果を受信する動作を繰り返す。制御信号の生成方法は、それまでのストリーム入力に依存して次の制御信号を決定する方法や、ストリームのヘッダ部分をデコードして決定する方法などが考えられる。
【００４１】
閾値設定回路（閾値設定手段）１４は、外部又は制御回路１３により復号処理の開始前に閾値を設定され、その閾値を無効化回路１５に出力する。更に、無効化回路（無効化手段）１５は、復号回路１２から出力されるストリーム消費量の総和を演算し、それが閾値設定回路１４から出力される閾値を越えれば復号無効化信号を有効にする。具体的には、ストリーム消費量の総和が閾値以下の場合は復号無効化信号として「０」を出力し、ストリーム消費量の総和が閾値を越えた場合には、復号無効化信号として「１」を出力するものとする。
【００４２】
符号化テーブルが図１２で表されるような符号化ストリーム「０１１００１０１０１１１１１１１」を可変長復号する動作を説明する。図２はこの構成による復号処理フローを示す。
【００４３】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ここでは、ストリーム長である１６ビットが外部から入力されることを想定して、正常な（誤りのない）総消費ストリーム量に等しい「閾値」として、その「１６」ビットを設定するものとする。次に、制御回路１３は復号処理のための繰り返し処理に入る。制御回路１３は、６回の復号処理で復号が終了することをストリームのヘッダ部分の解析等により知っているか、又は規格により予め知っているものとする。
【００４４】
１回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４５】
２回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４６】
３回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４７】
４回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「７」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４８】
５回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「９」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００４９】
６回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１６」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。
【００５０】
次に、ストリームが誤って「０１１００１０１１１１１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。
【００５１】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ストリーム長である１６ビットが外部から入力され、その「１６」を閾値として設定するものとする。次に、制御回路１３は復号処理のための繰り返し処理に入る。
【００５２】
１回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５３】
２回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５４】
３回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がストリーム「０」をバッファ回路１１より取得する。復号回路１２はストリーム消費量「１」を無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５５】
４回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１０」の長さである「２」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「７」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５６】
５回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。制御回路１３は復号無効化信号が「０」であることを確認して処理を継続する。
【００５７】
６回目：制御回路１３が、バッファ回路１１がアンダーフロー状態でないことを確認した後、可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１７」との比較を行う。ストリーム消費量の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、制御回路１３は復号の繰り返し処理を中止する制御信号を復号回路１２に出力する。その結果、復号回路１２は復号処理を停止し、その後はストリームを消費しない。更に、制御回路１３は復帰処理を行い、タスクを終了する。
【００５８】
この構成により、本来よりも復号処理が多くなるようなストリームの誤りを検出できる。本実施形態では、総消費ストリーム量が閾値を越えれば直ちにストリーム誤りと検出できるので、従来のように長い待ち時間を経てタイムアップ信号が出力される場合と比較して、ストリームの誤り検出に長い待ち時間が発生しない。制御回路（プロセッサ）１３の処理性能が今後更に向上してシステムがより高速化すれば、復号処理もより短時間で終了できるので、誤り検出までの時間はより一層短縮される。
【００５９】
本実施形態では、誤りのない場合のストリームの長さがヘッダに格納されており、復号する前に正しいストリーム長を取得できる場合を想定しているが、それがない場合でも、コーデックの規格上の最大値を利用するか、実際の利用場面であり得る最大長を閾値として用いることにより、本実施形態の構成を採用することができる。
【００６０】
（実施形態２）
図３は、本発明の実施形態２に係る符号化ストリーム復号装置の構成を示すブロック図である。この構成では、実施形態１と異なり、充填確認回路１６を持つ。それ以外は実施形態１と同じである。
【００６１】
図３において、充填確認回路（充填確認手段）１６は、バッファ回路１１から充填ストリーム量を入力され、閾値設定回路から閾値を入力される。この両者を比較し、充填ストリーム量が閾値以上になれば、そのことを制御回路１３に通知する。
【００６２】
図４はこの構成の処理フロー例を示す。制御回路１３は、閾値の設定後、充填確認回路１６によりバッファ回路１１へのストリームの閾値以上の充填量が確認された後、最初の制御信号を生成し、その確認までは復号回路１２の復号処理を待機させる。それ以外は実施形態１と同じである。
【００６３】
この構成により、ストリームの供給が不安定なシステムにおいて、復号処理時にアンダーフローが発生する可能性を排除することができる。そのため、復号処理にデータ量が少ないアンダーフロー時に復号回路１２が不正な値を返すようなシステムにおいて、復号の繰り返し処理中でのアンダーフロー判定を省略できる。また、アンダーフロー時にバッファ回路１２が充填されるまで復号回路１２が待機するようなシステムでは、復号処理時にアンダーフローが発生すると、制御回路１３はバッファ回路１２が充填されるまで待たされるが、本構成により復号処理時のアンダーフローを防ぎ、復号処理開始前にバッファ回路１２が充填されるまでの間、制御回路１３を他タスクの処理のために使用することが可能である。
【００６４】
（実施形態３）
図５は、本発明の実施形態３に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００６５】
本実施形態の構成では、実施形態２と異なり、無効化回路１５が発生する復号無効化信号は復号回路１２にも通知される。また、予め復号処理が何回必要なのかは予め分かっているものとする。
【００６６】
図６は、この構成の処理フロー例を示す。実施形態２と異なり、制御回路１３は復号処理実行時に復号無効化信号に基づく分岐を行わず、復号無効化信号とは無関係に復号処理を継続させる制御信号の生成を続行する。また、復号回路１２は、復号無効化信号が「１」で有効な場合は、前記制御回路１３が発生する制御信号を受理するが、復号処理は実際には行わずに、特殊な値として「０」を復号結果として制御回路１３に出力し、制御信号を受けて復号処理をしたようにふるまう。このとき、復号回路１２は、不要回路の消費電力低減のために、クロックダウンや、電源を遮断する等を行っても良い。また、制御回路１３は、最後の復号処理終了後に復号無効化信号が有効になっていた場合に、復帰処理のための制御を行う。
【００６７】
符号化テーブルが図１２で表されるようなストリーム「０１１００１０１０１１１１１１１」が、誤って「０１１００１１１１１１１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。
【００６８】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ストリーム長である１６ビットが外部から入力され、その「１６」を閾値として設定するものとする。次に、充填確認回路１６がストリームの充填を確認した後、制御回路１３は復号処理のための繰り返し処理に入る。制御回路１３は、６回の復号処理で復号が終了することを知っているものとする。
【００６９】
１回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「０」の長さである「１」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７０】
２回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１０」の長さである「３」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「４」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７１】
３回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がストリーム「０」をバッファ回路１１より取得する。復号回路１２はストリーム消費量「１」を無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「５」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７２】
４回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１１１１」の長さである「７」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１２」との比較を行う。ストリーム消費量の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｈ」を制御回路１３に出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７３】
５回目：制御回路１３が可変長符号を復号する制御信号を生成し、復号回路１２がバッファ回路１１のストリームの先頭を見て、「１１１１０」の長さである「５」をストリーム消費量として無効化回路１５に伝え、無効化回路１５が閾値「１６」とストリーム消費量の総和「１７」との比較を行う。ストリーム消費量の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、復号回路１２は復号処理を行わないが、復号結果として「０」を出力する。制御回路１３は復号無効化信号に関わらず処理を継続する。
【００７４】
６回目：制御回路１３が可変長符号を復号する制御信号を生成するが、復号無効化信号が「１」であるので、復号回路１２は復号処理を行わず、復号結果として「０」を出力する。
【００７５】
本実施形態の構成では、制御回路１３は復号処理毎に復号無効化信号の値が「０」か「１」かを判定する必要がない。外部から入力されるストリームは、通常、誤りがない場合が多いので、この誤りがないストリームに対して制御回路１３が各復号処理で行わなければいけない処理を削減できる。制御回路１３は、最後に復号無効化信号が「１」になっていれば、誤りがある１タスク分を捨てる等の制御を行えば済む。
【００７６】
（実施形態４）
図７は、本発明の実施形態４に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００７７】
本実施形態の構成では、実施形態１と異なり、状態保存回路１７を備える。状態保存回路（状態保存手段）１７は、無効化回路１５から入力される閾値とストリーム総消費量との差分（閾値−ストリーム総消費量）及びバッファ回路１１内のストリームの状態を記憶する。また、記憶した前記閾値とストリーム総消費量の差分を閾値設定回路１４に通知し、バッファ回路１１のストリームの状態を復元する。
【００７８】
図８はこの構成の処理フロー例を示す。前記実施形態３と異なり、制御回路１３は復号処理の継続の判定時に復号処理を中断するための制御を行うことができる。復号処理を中断する際には、制御回路１３による処理継続判定直後に、状態保存回路１７が無効化回路１５から入力される閾値とストリーム総消費量との差分及びバッファ回路１１から取得したバッファ回路１１のストリームの状態を記憶する。復号再開時には、バッファ回路１１のストリームの状態を復元し、記憶した閾値とストリーム総消費量との差分を新たな閾値として閾値設定回路１４に通知して、中断した処理を再開する。
【００７９】
例えば、実施形態１のストリームに誤りがない場合の例で、４回目の復号処理の後に中断をする場合、状態保存回路１７は閾値「１６」とストリーム総消費量「７」との差分である「９」と、ストリームの先頭を指すポインタなどバッファ回路１１が保持する状態を保存する。その後、復号処理を再開する場合には、閾値設定回路１４に新たな閾値として「９」を設定し、バッファ回路１１のポインタの設定や、必要であればストリームの充填を行い、５回目の復号処理から処理を再開する。
【００８０】
制御回路１３が復号処理以外のタスクも実行するプロセッサで実現される場合、復号処理の途中で他のタスクに切り替えることが可能であれば、より複雑なシステムを構成可能となる。
【００８１】
また、復号再開時には、閾値とストリーム総消費量との差分、及びバッファ回路１１のストリームの状態を変更して復元することにより、ストリームのスキップや巻き戻しを実現することもできる。
【００８２】
（実施形態５）
図９は、本発明の実施形態５に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００８３】
本実施形態の構成では、実施形態１と異なり、制御回路１３ａと、他の制御回路（他の制御手段）１３ｂとを備える。この構成において、通常時、復号回路１２は、何れか一方の制御回路（例えば１３ａ）が生成した制御信号のみを受け付け、実行中の制御回路１３ａのタスクが終了するか、又は実施形態４の方法で処理が中断されるまで同じ制御回路１３ａからの制御信号のみを受け付ける。しかし、復号無効化信号が「１」に有効になった場合には、以後は復号回路１２はそのタスクでは復号する必要がないため、他方の制御回路１３ｂが生成する制御信号のみを受け付けるようにする。
【００８４】
図１０は、１つの制御回路１３が複数のタスク１８ａ、１８ｂを並列に行っている構成を示す。この場合にも、各タスク１８ａ、１８ｂが制御信号を出力する際に、同時にタスクを区別するための識別信号を出力することにより、複数の制御回路が存在する場合と同様に処理ができる。
【００８５】
（実施形態６）
図１１は、本発明の実施形態６に係る符号化ストリーム復号装置の構成を示すブロック図である。
【００８６】
図１１に示す符号化ストリーム復号装置は、バッファ回路１１と、復号回路１２と、制御回路１３と、閾値設定回路１４と、無効化回路１５と、充填確認回路１６とを備える。
【００８７】
バッファ回路１１は、復号処理に備え、外部から入力されるストリームを充填する。復号回路１２は、バッファ回路１１から入力されるストリームに対し、制御信号に対応する復号処理を行い、復号結果を出力する。制御回路１３は、復号回路１２を制御する制御信号を生成し、その結果を受信する。
【００８８】
また、閾値設定回路（閾値設定手段）１４は、外部又は制御回路１３により、制御回路１３が制御信号を生成する回数、即ち、復号処理の回数の閾値を設定され、その閾値を無効化回路１５に出力する。
【００８９】
無効化回路１５は、前記制御回路１３が制御信号を生成した回数と、閾値設定回路１４からの閾値とを比較して、予め定めた制御信号生成回数が閾値を越えれば復号無効化信号を有効にする。充填確認回路１６は、バッファ回路１１から充填ストリーム量が入力され、この充填ストリーム量が所定量以上になれば、そのことを制御回路１３に通知する。
【００９０】
本実施形態の構成においても、図４で示した実施形態２と同様の制御を行うことができる。
【００９１】
符号化テーブルが図１２で表されるようなストリーム「０１１００１０１０１１１１１１１」が、誤って「０１１００１０１０１０１１１１１（０）」と入力された場合を考える。ここで、１７ビット目は本来復号するべきストリームの次に続くストリームである。また、復号結果が「ｈ」となったときに１タスク分の復号処理を終了するものとする。
【００９２】
先ず、閾値設定回路１４は、外部又は制御回路１３から受信した閾値を記憶する。ここでは、正常な制御信号生成回数（正常な復号処理回数）として「６」が外部から入力され、その「６」を閾値として設定するものとする。次に、充填確認回路１６がストリームの充填を確認した後、制御回路１３は復号処理のための繰り返し処理に入る。
【００９３】
１回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「１」との比較を行う。制御信号生成回数が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９４】
２回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「２」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｃ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９５】
３回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「３」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ａ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９６】
４回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「４」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９７】
５回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「５」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９８】
６回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「６」との比較を行う。制御信号生成回数の総和が閾値以下であるので、無効化回路１５は復号無効化信号として「０」を出力する。復号無効化信号が「０」であるので、復号回路１２は復号処理を行い、復号結果「ｂ」を制御回路１３に出力する。制御回路１３は復号結果が「ｈ」ではないので、処理を継続する。
【００９９】
７回目：制御回路１３が可変長符号を復号する制御信号を生成し、無効化回路１５が閾値「６」と制御信号生成回数「７」との比較を行う。制御信号生成回数の総和が閾値を越えているので、無効化回路１５は復号無効化信号として「１」を出力する。復号無効化信号が「１」であるので、制御回路１３は復号処理を停止させる制御信号を生成し、その結果、復号回路１２は復号処理を行わない。その後、制御回路１３は処理を終了する。
【０１００】
尚、本実施形態では、充填確認回路１６を持つ構成の場合を説明したが、これを持たない実施形態１の場合にも同様に本発明を適用できるのは勿論である。また、本実施形態は前記第３〜第５の実施形態と組み合せても良いのは言うまでもない。
【産業上の利用可能性】
【０１０１】
以上説明したように、本発明に係る符号化ストリーム復号装置は、長い待ち時間を要することなくストリームの誤りを検出できるので、高度な符号化技術を用いた音声や動画像の復号装置、又は可変長符号を用いた通信装置等の用途に適用して有用である。
【符号の説明】
【０１０２】
１１    バッファ回路（バッファ手段）
１２    復号回路（復号手段）
１３    制御回路（制御手段）
１３ｂ  他の制御回路（他の制御手段）
１４    閾値設定回路（閾値設定手段）
１５    無効化回路（無効化手段）
１６    充填確認回路（充填確認手段）
１７    状態保存回路（状態保存手段）
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部から入力されるストリームを蓄えるバッファ手段と、
前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、
前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、
前記復号手段で消費された消費ストリームの閾値を格納する閾値設定手段と、
前記閾値設定手段の閾値と、前記復号手段で消費された消費ストリーム量とに基づいて復号無効化信号を発生して前記制御手段に出力する無効化手段とを備えた
ことを特徴とする符号化ストリーム復号装置。
【請求項２】
前記請求項１記載の符号化ストリーム復号装置において、
前記閾値設定手段が格納する閾値を考慮した十分な量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、
前記制御手段は、前記充填確認手段によりストリームの充填が確認されるまで前記復号手段を待機させる
ことを特徴とする符号化ストリーム復号装置。
【請求項３】
前記請求項１又は２記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段の復号動作を停止させ、
前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号により復号処理を停止し、ストリームを消費しない
ことを特徴とする符号化ストリーム復号装置。
【請求項４】
前記請求項１又は２記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けても、前記復号手段の復号を継続させる制御信号を生成し、
前記復号手段は、前記無効化手段が発生する復号無効化信号を受け、この復号無効化信号を受けている間は、前記制御手段に対して、前記制御手段が生成する制御信号を受理して動作したようにふるまう
ことを特徴とする符号化ストリーム復号装置。
【請求項５】
前記請求項４記載の符号化ストリーム復号装置において、
前記復号手段は、
前記無効化手段からの復号無効化信号を受けている間は、復号処理を行わず、
復号結果として特殊な値を生成して、その特殊な値の復号結果を前記制御手段に出力する
ことを特徴とする符号化ストリーム復号装置。
【請求項６】
前記請求項４又は５記載の符号化ストリーム復号装置において、
前記復号手段は、
前記無効化手段からの復号無効化信号を受けている間は、クロックダウンなどの消費電力の低減を行う
ことを特徴とする符号化ストリーム復号装置。
【請求項７】
前記請求項５記載の符号化ストリーム復号装置において、
前記制御手段は、
一連の復号処理からなるタスクの終了後、前記無効化手段から復号無効化信号が発生しているかどうかを判断し、その復号無効化信号が発生しているとき、復帰のための制御を行う
ことを特徴とする符号化ストリーム復号装置。
【請求項８】
前記請求項３記載の符号化ストリーム復号装置において、
前記無効化手段から前記閾値設定手段の閾値と前記復号手段で消費したストリーム総消費量との差分を伝えられると共に、前記バッファ手段から内部のストリームの状態を伝えられる状態保存手段を備え、
前記状態保存手段は、前記復号手段での復号処理が中断した後、その中断した復号処理の再開時には、前記閾値とストリーム総消費量との差分を新たな閾値として前記閾値設定手段に通知すると共に、前記バッファ手段のストリームの状態を復元させる
ことを特徴とする符号化ストリーム復号装置。
【請求項９】
前記請求項８記載の符号化ストリーム復号装置において、
前記状態保存手段は、
前記閾値とストリーム総消費量との差分を変更して前記閾値設定手段に通知すると共に、この変更に対応するように前記バッファ手段のストリームの状態を変更して、
ストリームの巻き戻し又はスキップを可能とした
ことを特徴とする符号化ストリーム復号装置。
【請求項１０】
前記請求項３記載の符号化ストリーム復号装置において、
前記復号手段の動作を制御するための他の制御信号を生成して前記復号手段に出力する他の制御手段を備え、
前記復号手段は、前記無効化手段から復号無効化信号を受けている間は、前記他の制御手段からの制御信号に基づく復号処理を実行する
ことを特徴とする符号化ストリーム復号装置。
【請求項１１】
前記請求項３記載の符号化ストリーム復号装置において、
前記制御手段は、複数のタスクを並列に制御し、
前記復号手段は、前記複数のタスクのうち何れか１つのタスクに基づく復号処理の実行時において前記無効化手段から復号無効化信号を受けている間は、他タスクの復号処理を実行する
ことを特徴とする符号化ストリーム復号装置。
【請求項１２】
外部から入力されるストリームを蓄えるバッファ手段と、
前記バッファ手段に蓄えられたストリームに対し可変長符号復号処理を行う復号手段と、
前記復号手段の動作を制御するための制御信号を生成して前記復号手段に出力する制御手段と、
前記制御手段での制御信号の生成回数の閾値を格納する閾値設定手段と、
前記閾値設定手段の閾値と前記制御手段での制御信号の生成回数とに基づいて復号無効化信号を発生して前記制御手段に通知する無効化手段とを備えた
ことを特徴とする符号化ストリーム復号装置。
【請求項１３】
前記請求項１２記載の符号化ストリーム復号装置において、
所定量のストリーム量が前記バッファ手段に蓄えられたことを確認する充填確認手段を備え、
前記制御手段は、前記充填確認手段によりストリームの所定量への充填が確認されるまで前記復号手段を待機させる
ことを特徴とする符号化ストリーム復号装置。
【請求項１４】
前記請求項１２又は１３記載の符号化ストリーム復号装置において、
前記制御手段は、前記無効化手段から復号無効化信号を受けたとき、制御信号により前記復号手段での復号動作を停止させ、
前記復号手段は、前記無効化手段が復号無効化信号を発生しているとき、前記制御手段からの制御信号を受けて、復号処理を停止し、ストリームを消費しない
ことを特徴とする符号化ストリーム復号装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010125616.tif 000016
【図２】
2010125616.tif 000017
【図３】
2010125616.tif 000018
【図４】
2010125616.tif 000019
【図５】
2010125616.tif 000020
【図６】
2010125616.tif 000021
【図７】
2010125616.tif 000022
【図８】
2010125616.tif 000023
【図９】
2010125616.tif 000024
【図１０】
2010125616.tif 000025
【図１１】
2010125616.tif 000026
【図１２】
2010125616.tif 000027
【図１３】
2010125616.tif 000028
【国際調査報告】
2010125616.tif 000029
2010125616.tif 000030