(57)【要約】【課題】読み出し処理時間の短縮化。【解決手段】可変長復号器３は可変長符号化・ランレングス符号化データを、ＴｏｔａｌＣｏｅｆｆとｌｅｖｅｌとｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅとに順次復号する。書き込み制御器８が、ｌｅｖｅｌをデコードされた順に第１のデータバッファに書き込む。初期アドレス算出器５が、ＴｏｔａｌＣｏｅｆｆとｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とからｌｅｖｅｌの初期アドレスを算出する。アドレス保持器が、初期アドレスとｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応するｌｅｖｅｌのアドレスを保持する。読み出し制御器９が、アドレス情報に基づいて、第１のデータバッファ４からｌｅｖｅｌを読み出す。選択器１０が、アドレス情報に基づいてｌｅｖｅｌとゼロ係数とから選択する。【選択図】  図１
2007329903.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号化・ランレングス符号化データを復号する可変長復号化装置であって、
外部から入力される前記可変長符号化・ランレングス符号化データを、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向において前記ｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとに順次復号する可変長復号器と、
前記ｌｅｖｅｌを格納する第１のデータバッファと、
前記ｌｅｖｅｌをデコードされた順に前記第１のデータバッファに書き込む書き込み制御器と、
前記ＴｏｔａｌＣｏｅｆｆと前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する初期アドレス算出器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを確定して保持するアドレス保持器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファから前記ｌｅｖｅｌを読み出す読み出し制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかのデータを選択する選択器と、
前記選択器が選択するデータを後段処理する後段処理器と、
を備える、
可変長復号化装置。
【請求項２】
前記アドレスの保持器は、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅの個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを演算するアドレス演算器と、
前記アドレス演算器が演算する前記ｌｅｖｅｌのアドレスと前記ＴｏｔａｌＣｏｅｆｆとに基づいて前記選択器と前記読み出し制御器とを制御する情報レジスタと、
を含む、
請求項１の可変長復号化装置。
【請求項３】
前記書き込み制御器は、
前記ＴｏｔａｌＣｏｅｆｆのアドレスから前記ｔｏｔａｌ＿ｚｅｒｏｓの値を順次減算することで実効アドレスを算定して当該実効アドレスを前記データバッファに書き込む、
請求項１の可変長復号化装置。
【請求項４】
前記第１のデータバッファは、Ｋ個（Ｋは２以上の自然数）のバンクで前記ｌｅｖｅｌを交互に格納したうえで、前記情報レジスタの値に基づいてＫ個のデータを同時に読み出すものである、
請求項２の可変長復号化装置。
【請求項５】
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅとを格納する第２のデータバッファをさらに備える、
請求項１の可変長復号化装置。
【請求項６】
バンク制御器をさらに備え、
前記第１のデータバッファと前記情報レジスタとは、複数組のバンク構成を有しており、
前記バンク制御器は、前記情報レジスタと前記第１のデータバッファとのそれぞれにおいて、前記複数のバンクを切り替える、
請求項１の可変長復号化装置。
【請求項７】
前記バンク制御器は、前記情報レジスタと前記複数のデータバッファとにおいて選択した前記バンクにのみクロックを供給する、
請求項６の可変長復号化装置。
【請求項８】
さらに、前記第１のデータバッファの格納データをさらに格納する第３のデータバッファと、
前記読み出し制御器の動作に連動して前記第３のデータバッファへの書き込みを制御する第２の書き込み制御器と、
前記情報レジスタと同一のレジスタ値を前記第２の書き込み制御器を介して受け取って格納する第２の情報レジスタと、
前記第２の情報レジスタが格納している前記レジスタ値に基づいて前記第３のデータバッファの読み出しを制御する第２の読み出し制御器と、
を備え、
前記選択器は、前記第２の情報レジスタが格納している前記レジスタ値に基づいて前記第３のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちいずれかを選択して出力し、
前記後段処理器は、前記選択器が選択するデータを後段処理する、
請求項２の可変長復号化装置。
【請求項９】
さらに、前記選択器によって選択されたデータを格納する第３のデータバッファと、
前記読み出し制御器の動作に連動して前記第３のデータバッファへの書き込みを制御する第２の書き込み制御器と、
前記第３のデータバッファの読み出しを制御する第２の読み出し制御器と、
を備え、
前記後段処理器は、前記第３のデータバッファの出力データを後段処理して外部へ出力する、
請求項１の可変長復号化装置。
【請求項１０】
前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列で構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレスとは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記第２の情報レジスタに記憶し、
前記第２の読み出し制御器は、前記第２の情報レジスタの記憶情報に基づいて前記第３のデータバッファから複数データを同時読み出しする、
請求項８の可変長復号化装置。
【請求項１１】
前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列で構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレス位置とは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記第２の情報レジスタに記憶し、
前記第２の読み出し制御器は、前記第２の情報レジスタの記憶情報に基づいて前記第３のデータバッファから複数データを同時読み出しする、
請求項９の可変長復号化装置。
【請求項１２】
前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列の配列を変更可能であり、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出した複数のデータを同時に前記第３のデータバッファに書き込む、
請求項１０の可変長復号化装置。
【請求項１３】
前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列の配列を変更可能であり、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出した複数のデータを同時に前記第３のデータバッファに書き込む、
請求項１１の可変長復号化装置。
【請求項１４】
前記第３のデータバッファは、ビットイネーブル制御が可能なメモリから構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレス位置とは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記情報レジスタに記憶し、
前記第２の読み出し制御器は、前記情報レジスタの情報に基づいて前記第３のデータバッファから複数データを同時読み出しする、
請求項８の可変長復号化装置。
【請求項１５】
前記第３のデータバッファは、ビットイネーブル制御が可能なメモリから構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレス位置とは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記情報レジスタに記憶し、
前記第２の読み出し制御器は、前記情報レジスタの情報に基づいて前記第３のデータバッファから複数データを同時読み出しする、
請求項９の可変長復号化装置。
【請求項１６】
前記第２の書き込み制御器には、スキャン情報が入力され、当該スキャン情報によって前記第３のデータバッファの書き込みアドレスを変更する、
請求項８の可変長復号化装置。
【請求項１７】
前記第２の書き込み制御器には、スキャン情報が入力され、当該スキャン情報によって前記第３のデータバッファの書き込みアドレスを変更する、
請求項９の可変長復号化装置。
【請求項１８】
前記後段処理器は逆量子化処理器である、
請求項１の可変長復号化装置。
【請求項１９】
可変長符号化・ランレングス符号化データを復号する可変長復号化装置であって、
外部から入力される前記可変長符号化・ランレングス符号化データを、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとに順次復号する可変長復号器と、
前記ｌｅｖｅｌを格納する第１のデータバッファと、
前記ｌｅｖｅｌをデコードされた順に前記第１のデータバッファに書き込む書き込み制御器と、
前記ＴｏｔａｌＣｏｅｆｆと前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する初期アドレス算出器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを確定して保持するアドレス保持器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいて当該これらのデータに対応するアドレス位置に、前記ｌｅｖｅｌをシフトさせるデータシフト制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファから前記ｌｅｖｅｌを読み出す読み出し制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかのデータを選択する選択器と、
前記選択器が選択するデータを後段処理する後段処理器と、
を備える、
可変長復号化装置。
【請求項２０】
前記アドレスの保持器は、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅの個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを演算するアドレス演算器と、
前記アドレス演算器が演算する前記ｌｅｖｅｌのアドレスと前記ＴｏｔａｌＣｏｅｆｆに基づいて前記選択器と前記読み出し制御器を制御する情報レジスタと、
を含む、
請求項１９の可変長復号化装置。
【請求項２１】
前記書き込み制御器は、
前記ＴｏｔａｌＣｏｅｆｆのアドレスから前記ｔｏｔａｌ＿ｚｅｒｏｓの値を順次減算することで実効アドレスを算定して当該実効アドレスを前記データバッファに書き込む、
請求項１９の可変長復号化装置。
【請求項２２】
前記第１のデータバッファは、Ｋ個（Ｋは２以上の自然数）のバンクで前記ｌｅｖｅｌを交互に格納したうえで、前記情報レジスタの値に基づいてＫ個のデータを同時に読み出すものである、
請求項１９の可変長復号化装置。
【請求項２３】
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅとを格納する第２のデータバッファをさらに備える、
請求項１９の可変長復号化装置。
【請求項２４】
バンク制御器をさらに備え、
前記第１のデータバッファと前記情報レジスタとは、複数組のバンク構成を有しており、
前記バンク制御器は、前記情報レジスタと前記第１のデータバッファとのそれぞれにおいて、前記複数のバンクを切り替える、
請求項１９の可変長復号化装置。
【請求項２５】
前記バンク制御器は、前記情報レジスタと前記複数のデータバッファとにおいて選択した前記バンクにのみクロックを供給する、
請求項２４の可変長復号化装置。
【請求項２６】
前記後段処理器は逆量子化処理器である、
請求項１９の可変長復号化装置。
【請求項２７】
請求項１の可変長復号化装置を含んで画像処理を行う画像処理回路と、
前記画像処理回路へ画像信号を出力するセンサと、
前記センサへ光を結像する光学系と、
を備える撮像システム。
【請求項２８】
前記センサから得た画像信号をデジタル信号に変換して前記画像処理回路へ供給する変換器を、
さらに備える、
請求項２７の撮像システム。
【請求項２９】
請求項２２の可変長復号化装置を含んで画像処理を行う画像処理回路と、
前記画像処理回路へ画像信号を出力するセンサと、
前記センサへ光を結像する光学系と、
を備える、
撮像システム。
【請求項３０】
前記センサから得た画像信号をデジタル信号に変換して前記画像処理回路へ供給する変換器を、さらに備える、
請求項２９の撮像システム。
【請求項３１】
可変長符号化・ランレングス符号化データを復号する可変長復号化方法であって、
前記可変長符号化・ランレングス符号化データを獲得する獲得ステップと、
獲得した前記可変長符号化・ランレングス符号化データから、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後の非ゼロ係数以前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向において非ゼロ係数値の前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを順次復号する復号ステップと、
前記ｌｅｖｅｌを第１のデータバッファに格納する格納ステップと、
前記ＴｏｔａｌＣｏｅｆｆの非ゼロ係数の個数と前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する算出ステップと、
前記初期アドレスの算出結果と前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記非ゼロ係数のアドレスを確定する確定ステップと、
前記非ゼロ係数のアドレスに基づいて、前記データバッファから前記ｌｅｖｅｌを読み出す読み出しステップと、
前記非ゼロ係数のアドレスに基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌとゼロ係数とのうちいずれかを選択する選択ステップと、
選択したデータを後段処理する後段処理ステップと、
を含む、
可変長復号化方法。
【請求項３２】
さらに、前記データバッファから読み出された前記ｌｅｖｅｌもう一つのデータバッファに格納するもう一つの格納ステップと、
前記ｌｅｖｅｌのアドレスと前記ＴｏｔａｌＣｏｅｆｆとに基づいて前記選択ステップと前記読み出しステップとを制御する情報レジスタを設けたうえで、当該情報レジスタの値に基づいて前記もう一つのデータバッファから前記ｌｅｖｅｌを読み出すもう一つの読み出しステップと、
前記情報レジスタの値に基づいて前記もう一つのデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかを選択するもう一つの選択ステップと、
を含み、
前記もう一つの格納ステップは、前記もう一つのデータバッファが書き込める状態であれば処理を実行する、
請求項３１の可変長復号化方法。
【請求項３３】
前記データバッファに格納されている前記ｌｅｖｅｌと前記非ゼロ係数とのうちから選択したデータをもう一つのデータバッファに格納するもう一つの格納ステップと、
前記もう一つのデータバッファからデータを読み出すもう一つの読み出しステップと、
前記もう一つのデータバッファから読み出した前記データを後段処理するもう一つの後段処理ステップと、
をさらに含み、
前記もう一つの格納ステップは、前記もう一つのデータバッファが書き込める状態であれば処理を実行する、
請求項３１の可変長復号化方法。
【請求項３４】
外部から入力されるスキャン情報に基づいて前記情報レジスタの書き込みアドレスを変換する変換ステップをさらに含み、
前記もう一つの格納ステップは、前記ｌｅｖｅｌを、前記スキャン情報に基づいて所定の走査順に変換したうえで前記もう一つのデータバッファに格納する、
請求項３２の可変長復号化方法。
【請求項３５】
前記後段処理ステップは逆量子化ステップである、
請求項３１の可変長復号化方法。
【請求項３６】
可変長符号化・ランレングス符号化データを復号する可変長復号化方法であって、
前記可変長符号化・ランレングス符号化データを獲得する獲得ステップと、
獲得した前記可変長符号化・ランレングス符号化データから、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後の非ゼロ係数以前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向において非ゼロ係数値の前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅを順次復号する復号ステップと、
前記ｌｅｖｅｌを第１のデータバッファに格納する格納ステップと、
前記ＴｏｔａｌＣｏｅｆｆの非ゼロ係数の個数と前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する算出ステップと、
前記初期アドレスの算出結果と前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記非ゼロ係数のアドレスを確定する確定ステップと、
前記初期アドレスの算出結果と前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレス位置に、前記ｌｅｖｅｌをシフトさせるシフトステップと、
前記確定ステップで確定したアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌを読み出す読み出しステップと、
前記確定ステップで確定したアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌとゼロ係数とのうちのいずれかのデータを選択する選択ステップと、
前記選択ステップによって選択されたデータを後段処理する後段処理ステップと、
を含む可変長復号化方法。
【請求項３７】
前記後段処理ステップは逆量子化ステップである、
請求項３６の可変長復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ランレングス符号化と可変長符号化を用いた符号データを可変長復号およびランレングス復号する復号化方法およびその復号化装置に関する。特には、圧縮された画像データを伸張する画像伸張技術で用いられる可変長復号化方法およびその可変長復号化装置に関する。また、撮像システムに関する。
【背景技術】
【０００２】
ランレングス符号および可変長符号を用いる圧縮伸張方法は、画像データの一般的な圧縮技術であるＪＰＥＧ（Joint Photographic Experts Group）やＭＰＥＧ（Moving Picture Experts Group）で用いられており、ディジタルカメラやディジタルビデオカメラの普及、通信技術の発達に伴い、少ない情報量でデータ転送が行える技術として広く普及している。
【０００３】
代表的な画像圧縮装置の構成を図３１に示し、以下この図を参照して説明する。画像データが、あらかじめ１ブロック８×８個に分割されたうえで順次入力されてくる。ＤＣＴ（Discrete Cosine Transform）部１０１は、この画像データを離散コサイン変換によって周波数変換することでＤＣＴ係数を生成する。自然画像ではたいてい色の変化が滑らかであるため周波数変換を行ってＤＣＴ係数を生成すると、図３２に示すように、低周波領域ｍには大きな値のＤＣＴ係数が分布する一方、高周波領域ｎには小さな値のＤＣＴ係数が分布する。特に左上隅の係数ｏは周波数成分を持たないＤＣ成分と呼ばれ、それ以外の係数はＡＣ成分と呼ばれる。
【０００４】
量子化部１０２は、予め設定して量子化値でＤＣＴ係数を除算することで量子化係数を生成する。この処理により画質的に影響を与えない高周波領域に“０”の係数（ゼロ係数）を集中させることが可能になる。
【０００５】
さらに、可変長符号化部１０３において、図３３に示すようなジグザグスキャンの順で順次“０”の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬとを組み合わせてランレングスデータを生成する。そして、その組み合わせの出現率に合わせて長さの異なる符号語を割り当てることでデータの容量を小さくする。
【０００６】
一方、上記構成によって符号化された可変長符号データを復号する画像伸張装置は、図３４に示すように、画像圧縮装置に対応する、可変長復号部１０４、逆量子化部１０５、および逆ＤＣＴ部１０６を備える。
【０００７】
可変長復号部１０４は、可変長符号データを“０”の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬとの組み合わせとして復号したうえで、ＲＵＮの大きさ分だけゼロ係数を生成し、生成したゼロ係数と、ＬＥＶＥＬで表される係数とを組み合わせる。この動作が８×８画素分生成されるまで繰り返される。逆量子化部１０５は、上記生成された８×８個分の係数を、予め設定しておいた量子化値で乗算することで逆量子化ＤＣＴ係数を生成する。逆ＤＣＴ部１０６は、上記生成された逆量子化ＤＣＴ係数を周波数領域から空間領域に変換することで画像データとして復号する。
【０００８】
従来の可変長復号部１０４の構成について図３５を参照して説明する。可変長復号器１０８は、入力器１０７から入力される可変長符号データを “０”の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬの組み合わせとして復号する。書き込み制御器１０９は、復号されたＲＵＮの個数だけデータバッファ１１２へ“０”を書き込むように選択器１１０に選択信号を供給する。これにより選択器１１０は、データバッファ１１２にＲＵＮの個数だけ“０”を書き込む。“０”を書き込んだ後、選択器１１０は、ＬＥＶＥＬで表される係数をデータバッファ１１２に書き込む。この動作が８×８画素分生成されるまで繰り返された後、読み出し制御器１１１は、ジグザグスキャン（図３３）によってデータをデータバッファ１１２から順次読み出して出力器１１３から逆量子化部１０５へ出力する。
【０００９】
しかしながら、上記従来の構成では、ＲＵＮの個数分だけ“０”である係数が連続して書き込まれている期間では、可変長復号器１０８は処理することができずに無駄な時間が発生してしまい、このことが復号化処理の高速化の妨げになる。
【００１０】
上記不具合の１つの解決案として、特許文献１に例示されるランレングス符号の復号回路がある。その構成の一例を図３６を参照して説明する。図３６において、２０２は可変長符号化・ランレングス符号化データを入力する入力器である。２０３は入力器２０２から入力されたデータを、“０”の個数を表すＲＵＮと、係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する可変長復号器である。２０４はＬＥＶＥＬを格納するデータバッファである。２０５はＲＵＮによる“０”の個数に基づいてこのデータに対応するＬＥＶＥＬのアドレスを演算するアドレス加算器である。２０６はアドレス加算器２０５の結果を記憶するＭ×Ｎビットの情報レジスタである。２０７はアドレス加算器２０５からの情報に基づいてＬＥＶＥＬをデータバッファ２０４へ格納する書き込み制御器である。２０８は情報レジスタ２０６の値に基づいてデータバッファ２０４からＬＥＶＥＬを読み出す読み出し制御器である。２０９は情報レジスタ２０６の値に基づいて、データバッファ２０４に格納されているＬＥＶＥＬと“０”のうちいずれかを選択して出力する選択器である。２１０は選択器２０９からのデータを後段処理する後段処理器である。２１１は後段処理器２１０からのデータを出力する出力器である。
【００１１】
入力器２０２から可変長符号化・ランレングス符号化データが入力されると、可変長復号器２０３は、入力される可変長符号化・ランレングス符号化データを、“０”の個数を表すＲＵＮと係数値の大きさを表すＬＥＶＥＬとの組み合わせとして順次復号する。
【００１２】
アドレス加算器２０５は、復号化したデータにおいて、図３３に示すジグザグスキャンの順に、すなわち１→２→９→１７・・・という順に、復号されたＲＵＮの大きさに基づいてアドレスを演算する。情報レジスタ２０６は、ＲＵＮの大きさ分だけジグザグスキャン順に例えば“０”を連続して記憶し、その後の位置にＬＥＶＥＬのアドレスとして例えば“１”を記憶する。書き込み制御器２０７は、アドレス加算器２０５が演算したアドレスにＬＥＶＥＬを書き込む。
【００１３】
書き込み制御器２０７は、１ブロック分のＬＥＶＥＬの書き込みが終了したか否かを判断し、未終了であると判断するときは復号の最初のステップに戻り、終了したと判断するときは読み出しの処理に進む。可変長復号器２０３によって１ブロックに相当するＲＵＮとＬＥＶＥＬとの組み合わせが復号されたうえでＬＥＶＥＬの書き込みが終了すると、読み出し制御器２０８は、後段処理器２１０からの読み出し許可を示す制御信号に基づいて情報レジスタ２０６の記憶内容を判断してその判断結果に基づいて読み出し処理を制御する。すなわち、読み出し制御器２０８は、情報レジスタ２０６に“１”が格納されているビットに相当するアドレスをデータバッファ２０４に出力したうえで、そのアドレスに格納されているＬＥＶＥＬを読み出す。選択器２０９では読み出し制御器２０８が情報レジスタ２０６を判断する際、同時に、情報レジスタ２０６のビットが“０”の場合は、後段処理器２１０に“０”を出力し、“１”の場合は、後段処理器２１０にデータバッファ２０４から読み出した出力データＬＥＶＥＬを出力する。後段処理器２１０は選択器２０９を介して受け取ったデータを後段処理したうえで、出力器２１１から処理したデータを出力する。
【００１４】
上記の従来の技術によれば、データバッファ２０４の後段に選択器２０９を設けたうえで、データバッファ２０４には、“０”を格納することなく、ＬＥＶＥＬのみを格納する。これにより、“０”は後段の選択器２０９において選択される。可変長復号器２０３はその動作を停止させる必要がなく、高速化に有利となる。そして、必要最低限の構成で、アドレスの保持器の情報に基づいてＬＥＶＥＬのみを読み出すことで、データバッファ２０４へのアクセスを削減できることから、低消費電力の可変長復号器を提供することができる。
【００１５】
一方、現在、ＭＰＥＧ４に続く圧縮技術としてＨ．２６４符号化方法（以下、Ｈ．２６４と称す）が注目されている。図３７は、代表的なＨ．２６４の処理ブロックであり、４×４画素分で構成される。Ｈ．２６４の可変長符号の特徴としては、ＪＰＥＧやＭＰＥＧ２、ＭＰＥＧ４と異なり、ブロック中の非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅが符号化されていることであり、ＲＵＮとＬＥＶＥＬとが組み合わせとして符号化されていないことである。Ｈ．２６４に関しては、インプレス標準教科書Ｈ．２６４／ＡＶＣ教科書に詳細な説明がある。
【特許文献１】特開２００６−７４１９７号
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、Ｈ．２６４においては、ＲＵＮとＬＥＶＥＬの組み合わせが復号されるのではないので、ＲＵＮとＬＥＶＥＬの組み合わせが復号されることを前提としている上記従来の構成では、情報レジスタに情報を記憶することができない。
【００１７】
本発明の主たる目的は、ＲＵＮとＬＥＶＥＬとの組み合わせ構成でなくとも情報レジスタへのデータ書き込みを可能とし、読み出し時の処理時間を短くすることで、より高効率の可変長復号化装置および可変長復号化方法を提供することである。
【課題を解決するための手段】
【００１８】
上述した課題を解決するために本発明の可変長復号化装置は、
外部から入力される前記可変長符号化・ランレングス符号化データを、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向において前記ｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとに順次復号する可変長復号器と、
前記ｌｅｖｅｌを格納する第１のデータバッファと、
前記ｌｅｖｅｌをデコードされた順に前記第１のデータバッファに書き込む書き込み制御器と、
前記ＴｏｔａｌＣｏｅｆｆと前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する初期アドレス算出器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを確定して保持するアドレス保持器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファから前記ｌｅｖｅｌを読み出す読み出し制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかのデータを選択して出力する選択器と、
前記選択器が選択するデータを後段処理する後段処理器と、
を備える、ここでの技術的特長は、初期アドレス算出器を備えたことである。
【００１９】
上記構成において、前記アドレスの保持器は、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅの個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを演算するアドレス演算器と、
前記アドレス演算器が演算する前記ｌｅｖｅｌのアドレスと前記ＴｏｔａｌＣｏｅｆｆとに基づいて前記選択器と前記読み出し制御器とを制御する情報レジスタと、
を含む、という態様がある。
【００２０】
このような構成により、アドレスの保持器（情報レジスタ）のアドレスに基づいてデータバッファからｌｅｖｅｌを読み出すことで、データバッファへの書き込みを低減できる。そのため、低消費電力されたＨ．２６４に対応可能な可変長復号装置を提供することが可能となる。
【００２１】
上記構成の可変長復号化装置において、
前記書き込み制御器は、
前記ＴｏｔａｌＣｏｅｆｆのアドレスから前記ｔｏｔａｌ＿ｚｅｒｏｓの値を順次減算することで実効アドレスを算定して当該実効アドレスを前記データバッファに書き込む、という態様がある。なお、これについては、後述する実施の形態での図７を参照することができる。
【００２２】
このような構成により、アドレスの保持器（情報レジスタ）は前記ｌｅｖｅｌのアドレスのみを記憶するだけでよくて、ＴｏｔａｌＣｏｅｆｆを記憶しておく必要がなくなり、小回路規模での可変長復号化装置を提供することが可能となる。
【００２３】
また、上記構成において、前記第１のデータバッファは、Ｋ個（Ｋは２以上の自然数）のバンクで前記ｌｅｖｅｌを交互に格納したうえで、前記情報レジスタの値に基づいてＫ個のデータを同時に読み出して前記選択器において複数のデータを同時に“０”に置き換える構成は、好ましいものの１つである。
【００２４】
このような構成により、複数データを同時にデータバッファから読み出すことが可能となり、結果として高速な可変長復号化装置を提供することが可能となる。
【００２５】
また、上記の構成において、
バンク制御器をさらに備え、
前記第１のデータバッファと前記情報レジスタとは、複数組のバンク構成を有しており、
前記バンク制御器は、前記情報レジスタと前記第１のデータバッファとのそれぞれにおいて、前記複数のバンクを切り替えることが望ましい。なお、この構成については、後述する実施の形態における図１０を参照することができる。
【００２６】
このような構成により、データバッファの読み出しを待つことなく、次のブロックのデコード処理を開始できるので、高速な可変長復号化装置を提供することが可能となる。
【００２７】
上記の構成において、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅとを格納する第２のデータバッファをさらに備えることが望ましい。なお、この構成については、後述する実施の形態における図１２を参照することができる。
【００２８】
このような構成により、ｒｕｎ＿ｂｅｆｏｒｅの復号が高速に行われた場合に、情報レジスタへの書き込みを待つことなく、次のデコード処理を開始できるので、高速な可変長復号装置を提供することが可能となる。
【００２９】
上記の構成において、
前記バンク制御器は、前記情報レジスタと前記複数のデータバッファとにおいて選択した前記バンクにのみクロックを供給することが望ましい。
【００３０】
このような構成により、未使用バンクへのクロック供給を制限できるので、低消費電力の可変長復号化装置を提供することが可能となる。
【００３１】
上記の構成において、
さらに、前記第１のデータバッファの格納データをさらに格納する第３のデータバッファと、
前記読み出し制御器の動作に連動して前記第３のデータバッファへの書き込みを制御する第２の書き込み制御器と、
前記情報レジスタと同一のレジスタ値を前記第２の書き込み制御器を介して受け取って格納する第２の情報レジスタと、
前記第２の情報レジスタが格納している前記レジスタ値に基づいて前記第３のデータバッファの読み出しを制御する第２の読み出し制御器と、
を備え、
前記選択器は、前記第２の情報レジスタが格納している前記レジスタ値に基づいて前記第３のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちいずれかを選択して出力し、
前記後段処理器は、前記選択器が選択するデータを後段処理するのが望ましい。
【００３２】
なお、この構成については、後述する実施の形態における図１４を参照することができる。特徴は、第１のデータバッファの次段に第３のデータバッファがあり、さらにその次段に選択器が配置されていることである  このような構成により、第１のデータバッファと第３のデータバッファとの間の転送がｌｅｖｅｌのみとなり、結果として可変長復号化処理の高速化が可能となる。
【００３３】
上記の構成において、前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列で構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレス位置とは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記第２の情報レジスタに記憶し、
前記第２の読み出し制御器は、前記第２の情報レジスタの記憶情報に基づいて前記第３のデータバッファから複数データを同時読み出しするのが望ましい。
【００３４】
このような構成により、デコードされたスキャン順序と異なる順序での後段処理器への出力が可能となって後段処理器でのスキャン変換が不要となる。これにより、全体として復号処理を高速化することが可能となる。
【００３５】
上記構成において、前記第３のデータバッファは、複数のデータバッファ行またはデータバッファ列の配列を変更可能であり、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出した複数のデータを同時に前記第３のデータバッファに書き込むことが望ましい。
【００３６】
また、上記構成において、前記第３のデータバッファは、ビットイネーブル制御が可能なメモリから構成され、
前記第２の書き込み制御器は、前記第１のデータバッファから読み出したデータを、前記第１のデータバッファにおけるアドレス位置とは異なる前記第３のデータバッファのアドレス位置に書き込んだうえで、当該第３のデータバッファにおけるデータ格納アドレスを前記情報レジスタに記憶し、
前記第２の読み出し制御器は、前記情報レジスタの情報に基づいて前記第３のデータバッファから複数データを同時読み出しすることが望ましい。
【００３７】
このような構成により、第２の情報レジスタは不要となり、また第１のデータバッファと第３のデータバッファ間の転送が複数データになることで、結果として可変長復号化処理の高速化が可能となる。
【００３８】
さらに、前記第２の書き込み制御器には、スキャン情報が入力され、当該スキャン情報によって前記第３のデータバッファの書き込みアドレスを変更することが望ましい。また、前記後段処理器は逆量子化処理器である、という態様がある。
【００３９】
このような構成により、異なるスキャンモードを有するＭＰＥＧ４などと第３のデータバッファを共有することができるので、小さい回路規模で複数符号化モードに対応した復号器の実現が可能になる。
【００４０】
また、本発明の可変長復号化装置は、
可変長符号化・ランレングス符号化データを復号する可変長復号化装置であって、
外部から入力される前記可変長符号化・ランレングス符号化データを、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとに順次復号する可変長復号器と、
前記ｌｅｖｅｌを格納する第１のデータバッファと、
前記ｌｅｖｅｌをデコードされた順に前記第１のデータバッファに書き込む書き込み制御器と、
前記ＴｏｔａｌＣｏｅｆｆと前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する初期アドレス算出器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記ｌｅｖｅｌのアドレスを確定して保持するアドレス保持器と、
前記初期アドレスと前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応するアドレス位置に、前記ｌｅｖｅｌをシフトさせるデータシフト制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファから前記ｌｅｖｅｌを読み出す読み出し制御器と、
前記アドレス保持器が保持しているアドレス情報に基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかのデータを選択する選択器と、
前記選択器が選択するデータを後段処理する後段処理器と、
を備える。
【００４１】
なお、この構成については、後述する実施の形態における図２６を参照することができる。ここでの技術的特長は、データシフト制御器を備えたことである。
【００４２】
特徴は、あらかじめデータバッファ内のデータをデータシフトさせて前記アドレス保持器と同じ位置に並べ替えておくことである。このような構成により、アドレスの保持器に基づいて読み出しアドレスを算出する必要のない制御容易な読出し方法でデータバッファからｌｅｖｅｌを読み出すことができる。またデータバッファへの書き込みを低減できることができる。これにより、低消費電力されたＨ．２６４に対応可能な可変長復号器を提供することが可能となる。
【００４３】
次に、上記目的を達成するために本発明の可変長復号化方法は、
可変長符号化・ランレングス符号化データを復号する可変長復号化方法であって、
前記可変長符号化・ランレングス符号化データを獲得する獲得ステップと、
獲得した前記可変長符号化・ランレングス符号化データから、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後の非ゼロ係数以前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向において非ゼロ係数値の前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを順次復号する復号ステップと、
前記ｌｅｖｅｌを第１のデータバッファに格納する格納ステップと、
前記ＴｏｔａｌＣｏｅｆｆの非ゼロ係数の個数と前記ｔｏｔａｌ＿ｚｅｒｏｓのゼロ係数の個数とから前記ｌｅｖｅｌの初期アドレスを算出する算出ステップと、
前記初期アドレスの算出結果と前記ｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数とに基づいてこれらのデータに対応する前記非ゼロ係数のアドレスを確定する確定ステップと、
前記非ゼロ係数のアドレスに基づいて、前記データバッファから前記ｌｅｖｅｌを読み出す読み出しステップと、
前記非ゼロ係数のアドレスに基づいて、前記第１のデータバッファに格納されている前記ｌｅｖｅｌとゼロ係数とのうちいずれかを選択する選択ステップと、
選択したデータを後段処理する後段処理ステップと、
を含む。
【００４４】
この方法により、前記確定ステップで確定された値（アドレス）を判断することで、データの読み出しと選択器からの出力とを選択する動作を制御することができる。これにより、データバッファへの書き込みを低減できることから、低消費電力されたＨ．２６４に対応可能な可変長復号化方法を提供することが可能となる。
【００４５】
上記構成の可変長復号化方法において、
さらに、前記データバッファから読み出された前記ｌｅｖｅｌをもう一つのデータバッファに格納するもう一つの格納ステップと、
前記ｌｅｖｅｌのアドレスと前記ＴｏｔａｌＣｏｅｆｆとに基づいて前記選択ステップと前記読み出しステップとを制御する情報レジスタを設けたうえで、当該情報レジスタの値に基づいて前記もう一つのデータバッファから前記ｌｅｖｅｌを読み出すもう一つの読み出しステップと、
前記情報レジスタの値に基づいて前記もう一つのデータバッファに格納されている前記ｌｅｖｅｌと前記ゼロ係数とのうちのいずれかを選択するもう一つの選択ステップと、
を含み、
前記もう一つの格納ステップは、前記もう一つのデータバッファが書き込める状態であれば処理を実行することが望ましい。
【００４６】
この方法により、データバッファのデータが後段処理を待たずに出力できるので、次の復号処理を行うことが可能となり、さらに復号処理を高速化することが可能となる。
【００４７】
また、上記の可変長復号化方法において、
前記データバッファに格納されている前記ｌｅｖｅｌと前記非ゼロ係数とのうちから選択したデータをもう一つのデータバッファに格納するもう一つの格納ステップと、
前記もう一つのデータバッファからデータを読み出すもう一つの読み出しステップと、
前記もう一つのデータバッファから読み出した前記データを後段処理するもう一つの後段処理ステップと、
をさらに含み、
前記もう一つの格納ステップは、前記もう一つのデータバッファが書き込める状態であれば処理を実行することが望ましい。
【００４８】
この方法により、もう一つのデータバッファのアドレス計算は不要となり、データバッファへのアクセスを容易にすることができる。
【００４９】
また、本発明の可変長復号化方法は、外部から入力されるスキャン情報に基づいて前記情報レジスタの書き込みアドレスを変換する変換ステップをさらに含み、
前記もう一つの格納ステップは、前記ｌｅｖｅｌを、前記スキャン情報に基づいて所定の走査順に変換したうえで前記もう一つのデータバッファに格納することが望ましい。
【００５０】
この方法により、Ｈ．２６４だけでなくＭＰＥＧ４などの複数の走査モードを有する可変長復号化方法においても実現することができる。
【００５１】
次に、本発明の第１の撮像システムは、前記のいずれかの可変長復号化装置を含んで画像処理を行う画像処理回路と、画像処理回路へ画像信号を出力するセンサと、前記センサへ光を結像する光学系とを備えたものである。このような構成により、可変長復号の高速実行に伴って画像処理の高速化が期待できる。
【００５２】
本発明の第２の撮像システムは、第１の撮像システムにおいて、センサから得た画像信号をデジタル信号に変換して画像処理回路へ供給する変換器をさらに備えたものである。このような構成により、デジタル信号処理の利点を発揮することができる。
【００５３】
本発明によれば、初期アドレス算出器を設けることで、ＲＵＮとＬＥＶＥＬの組み合わせでなくとも情報レジスタへの書き込みを行うことが可能となり、データバッファに格納されたデータに対する情報をアドレス保持器（アドレス演算器と情報レジスタとの組み合わせ）によって把握して、ゼロ以外のデータのみを読み出すことができる。これにより、読み出し時間を短縮化し、全体として可変長復号化処理を高速化することができ、さらなる低消費電力を実現できる。
【００５４】
また、本発明によれば、初期アドレス算出器により、ＲＵＮとＬＥＶＥＬとの組み合わせ構成でなくとも情報レジスタへの書き込みを行うことが可能であり、データバッファに格納されたデータに対する情報をアドレスの保持器（アドレス演算器と情報レジスタの組み合わせ）によって把握し、ゼロ以外のデータのみを読み出すので、読み出し時間を短縮化し、全体として可変長復号化処理を高速化することができ、さらなる低消費電力を実現できる。
【発明の効果】
【００５５】
以上説明してきたように、本発明の可変長復号化装置および可変長復号化方法は、データバッファに格納されたデータに対する情報をアドレス保持器によって把握できることにより、ゼロ以外のデータのみ読み出すことが可能となる。そのため、読み出し時間を短縮化することが可能となって、全体として可変長復号化処理を高速化することができる。また、低消費電力を実現できるため、高速な復号化処理が要求される画像復号システム等への応用が可能である。
【００５６】
特に近年、低ビットレート符号化技術として注目を集めているＨ．２６４を搭載したカメラ付き携帯電話やＤＳＣなどにも有用な装置を提供することが可能である。
【発明を実施するための最良の形態】
【００５７】
以下、本発明にかかわる可変長復号化装置の実施の形態を図面に基づいて詳細に説明する。
【００５８】
（実施の形態１）
本発明の実施の形態１の可変長復号化装置について図面を参照しながら説明する。図１に本発明の実施の形態１における可変長復号化装置の概略構成を示す。なお、本実施の形態においては、１ブロックのデータが４×４個の場合について説明する。
【００５９】
図１において、２は入力器である。３は可変長復号器である。４はデータバッファである。５は初期アドレス演算器である。６がアドレス演算器である。７は情報レジスタである。８は書き込み制御器である。９は読み出し制御器である。１０は選択器である。１１は後段処理器である。１２は出力器である。
【００６０】
入力器２は可変長符号化・ランレングス符号化データを入力する。可変長復号器３は、入力器２から入力されたデータから、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを抽出したうえで順次復号する。データバッファ４はｌｅｖｅｌを格納する。初期アドレス演算器５はＴｏｔａｌＣｏｅｆｆとｔｏｔａｌ＿ｚｅｒｏｓから初期アドレスを算出する。演算器６は初期アドレスとｒｕｎ＿ｂｅｆｏｒｅによるゼロ係数の個数に基づいてこれらのデータに対応するｌｅｖｅｌのアドレスを演算する。情報レジスタ７はＭ×Ｎビット＋ｘビットの情報レジスタであって、アドレス演算器６の演算結果とＴｏｔａｌＣｏｅｆｆとを記憶する。書き込み制御器８はｌｅｖｅｌを順次データバッファ４に書き込む。読み出し制御器９は情報レジスタ７の値に基づいてデータバッファ４からｌｅｖｅｌを読み出す。選択器１０は情報レジスタ７の値に基づいて、データバッファ４に格納されているｌｅｖｅｌとゼロ係数とのうちのいずれかを選択して出力する。後段処理器１１は選択器１０からのデータを後段処理する。出力器１２は後段処理器１１が出力するデータを外部に出力する。
【００６１】
図２は、本発明の実施の形態１の可変長復号化装置における処理の流れ図である。図２に従って処理の流れについて説明する。まず入力器２から可変長符号化・ランレングス符号化データが入力されると、可変長復号器３は、非ゼロ係数の個数を表すＴｏｔａｌＣｏｅｆｆと、非ゼロ係数値の大きさを表すｌｅｖｅｌと、データスキャン方向において最後のｌｅｖｅｌより前のゼロ係数の個数を表すｔｏｔａｌ＿ｚｅｒｏｓと、データスキャン方向においてｌｅｖｅｌの前のゼロ係数の連続個数を表すｒｕｎ＿ｂｅｆｏｒｅとを順次復号する（ステップＳ１）。
【００６２】
図３に順次復号された例を示す。図３は図３３のブロックに実際の値を入れた一例である。デコードにおいてはジグザグスキャンの逆順にデータが復号される。図４は、図３の４×４ブロックデータをジグザグスキャンの逆順に並べたものである。図５は、図３で示した一例のステップＳ１での復号例である。
【００６３】
まず、１６データのうちの非ゼロ係数（＋２３，−４，＋１１，＋８，−３，＋１，−１）の個数であるＴｏｔａｌＣｏｅｆｆ＝７が復号される。次に、非ゼロ係数の大きさを示すｌｅｖｅｌが、逆ジグザグスキャン順に、−１→＋１→−３→＋８→＋１１→−４→＋２３と、順次復号される。次に、ジグザグスキャン順の最後のｌｅｖｅｌ＝−１の前に存在する“０”の総個数ｔｏｔａｌ＿ｚｅｒｏｓ＝５が復号される。最後にｌｅｖｅｌの前に存在する“０”の個数ｒｕｎ＿ｂｅｆｏｒｅが逆ジグザグスキャン順に、１→２→１→１→０→０が順次復号される。
【００６４】
復号化データにおいて、
・ｌｅｖｅｌ＝−１の前に存在する“０”の個数は１である、
・ｌｅｖｅｌ＝＋１の前に存在する“０”の個数は２である、
・ｌｅｖｅｌ＝−３の前に存在する“０”の個数は１である、
・ｌｅｖｅｌ＝＋８の前に存在する“０”の個数は１である、
・ｌｅｖｅｌ＝＋１１の前に存在する“０”の個数は０（存在しない）である、
・ｌｅｖｅｌ＝−４の前に存在する“０”の個数は０である、
・ｌｅｖｅｌ＝＋２３の前に存在する“０”の個数は０である、
という結果が得られる。
【００６５】
この結果に基づいて、ｒｕｎ＿ｂｅｆｏｒｅは、逆ジグザグスキャン順に、１→２→１→１→０→０となる。さらに、復号されたｌｅｖｅｌが順次データバッファ４に書き込まれる（ステップＳ２）。
【００６６】
さらに復号されたＴｏｔａｌＣｏｅｆｆとｔｏｔａｌ＿ｚｅｒｏｓから初期アドレスが算出される（ステップＳ３）。図５に示す例では、ＴｏｔａｌＣｏｅｆｆ＝７とｔｏｔａｌ＿ｚｅｒｏｓ＝５とが加算されて、初期アドレス＝１２が算出される。
【００６７】
さらに、復号されたｒｕｎ＿ｂｅｆｏｒｅの大きさに基づいて、アドレス演算器６において、図３に示す逆ジグザグスキャンの順に、初期アドレス＝１２からｒｕｎ＿ｂｅｆｏｒｅに“１”を加えた値が減算されていく。すなわち、図５に示す例の場合、１２→１０→７→５→３→２→１という順にアドレスが演算される（ステップＳ４）。ｒｕｎ＿ｂｅｆｏｒｅは、１→２→１→１→０→０である。
【００６８】
すなわち、初期アドレスは１２であるから、
・初期アドレス“１２”から１番目のｒｕｎ＿ｂｅｆｏｒｅの値“１”に“１”加えた値を減算するとアドレスは“１０”になる。
・算定したアドレス“１０”から２番目のｒｕｎ＿ｂｅｆｏｒｅの値“２”に“１”を加えた値を減算するとアドレスは“７”になる。
・算定したアドレス“７”から３番目のｒｕｎ＿ｂｅｆｏｒｅの値“１”に“１”を加えた値を減算するとアドレスは“５”になる。
・算定したアドレス“５”から４番目のｒｕｎ＿ｂｅｆｏｒｅの値“１”に“１”を加えた値を減算するとアドレスは“３”になる。
・算定したアドレス“３”から５番目のｒｕｎ＿ｂｅｆｏｒｅの値“０”に“１”を加えた値を減算するとアドレスは“２”になる。
・算定したアドレス“２”から６番目のｒｕｎ＿ｂｅｆｏｒｅの値“０”に“１”を加えた値を減算するとアドレスは“１”になる。
【００６９】
この１２→１０→７→５→３→２→１のアドレスは、ｌｅｖｅｌの−１→＋１→−３→＋８→＋１１→−４→＋２３それぞれに対応する。
【００７０】
また、情報レジスタ７において、算出したアドレスをｌｅｖｅｌのアドレスとして例えば“１”を記憶し、ブロックの残りは“０”を記憶するとともに、データバッファ読み出し初期アドレスとしてＴｏｔａｌＣｏｅｆｆの値を記憶しておく。（ステップＳ５）。
【００７１】
図４に示す例の場合、非ゼロ係数の箇所を“１”として記憶し、ＴｏｔａｌＣｏｅｆｆ＝“７”をデータバッファ読み出し初期アドレスとして記憶する。１ブロック分のアドレス算出が終了したかを判断し、まだのときはステップＳ１に戻り、終了したときは読み出しの処理に進む（ステップＳ６）。
【００７２】
可変長復号器３から１ブロックに相当するデータが復号され、アドレス算出された後（ステップＳ６でＹｅｓ）、読み出し制御器９は後段処理器１１からの読み出し許可を示す制御信号を受けて情報レジスタ７の記録内容を判定する（ステップＳ７）。ステップＳ７において情報レジスタ７に“１”が格納されていると判定する場合には、データバッファ読み出し初期アドレスを減算することでアドレスを生成し、生成したアドレスをデータバッファ４に送出する。これにより、データバッファ４においてそのアドレスに格納されているｌｅｖｅｌが読み出される（ステップＳ８）。アドレスの遷移は例えば図６に示す遷移となる。
【００７３】
データバッファアドレスは、読み出し順に、デクリメントされている（７→６→５→４→３→２→１）。読み出し制御器９が情報レジスタ７を判定するのと同時に、選択器１０は次の処理を実施する。すなわち、情報レジスタ７のビットが“０”の場合、選択器１０は、“０”を後段処理器１１に出力する。一方、“１”の場合、選択器１０は、データバッファ４からの出力データｌｅｖｅｌを後段処理器１１に出力する（ステップＳ８）。後段処理器１１は選択器１０から供給されるデータを後段処理したうえで（ステップＳ９）、出力器１２から処理データとして出力する（ステップＳ１０）。
【００７４】
〔データバッファ書き込み〕
本実施形態では、図７に示すように、書き込み制御器８ａは、ＴｏｔａｌＣｏｅｆｆの値を順次減算することで、データバッファ４ａに書き込むデータを生成してもよい。そうすると、情報レジスタ７ａはデータバッファ読み出し初期アドレスを記憶しておく必要がなくなってＭ×Ｎビットで構成することができる。図８の読み出し制御例に示されるように、読み出し制御器９ａは、アドレス１から順に情報レジスタごとにアドレスを加算していく。これによりデータバッファアドレスは、読み出し順に、インクリメントされる（１→２→３→４→５→６→７）。
【００７５】
〔データバッファ構成〕
本実施形態では、図７に示すように、データバッファ４ａをＫバンク構成にしておいてもよい。情報レジスタ７ａは読み出し制御器９ａにより複数のデータを同時に読み出し、選択器１０ａは複数のデータを同時に“０”に置き換える。Ｋ＝２の場合、ｌｅｖｅｌは奇数アドレスバンクと偶数アドレスバンクとに交互に格納されている。図９はＫ＝２の場合の読み出し例である。１回目の読み出しにおいては初期アドレス１から読み出される。すなわち、奇数アドレス１からは“＋２”が、偶数アドレス２からは“−４”がそれぞれ読み出される。このとき、情報レジスタ７を見ると、前者後者両方ともに“１”が書かれているので、“＋２３“と“−４”とがそのまま読み出しデータとなる。以上の結果、２個の係数が読み出されるので、初期アドレス１に“２”を加算した“３”が２回目の読み出し開始アドレスとなる。２回目の読み出しで、奇数アドレス３からは“＋１１”が、偶数アドレス４からは“＋８”が読み出される。情報レジスタ７を見ると、最初のデータのみ“１”が書かれているので、後者のデータは“０”に置き換えられる。すなわち“＋１１”，“０”が２回目の読み出しデータとなる。１つの係数を読み出したので、アドレス３に“１”を加えた“４”が３回目の読み出し開始アドレスとなる。３回目の読み出しで、偶数アドレス４からは“＋８”が、奇数アドレス５からは“−３”がそれぞれ読み出される。情報レジスタ７を見ると、前者のデータのみ“１”が書かれているので、後者のデータは“０”に置き換えられる。すなわち“＋８”,“０”が３回目の読み出しデータとなる。１つの係数を読み出したので、アドレス４に“１”を加えた“５”が４回目の読み出し開始アドレスとなる。４回目の読み出しで、奇数アドレス５からは“−３”が、偶数アドレス６からは“＋１”が読み出される。情報レジスタ７を見ると、前者のデータのみ“１”が書かれているので、後者のデータは“０”に置き換えられる。すなわち“−３”,“０”が４回目の読み出しデータとなる。１つの係数を読み出したので、アドレス５に“１”を加えた“６”が５回目の読み出し開始アドレスとなる。５回目の読み出しで、偶数アドレス６からは“＋１”が、奇数アドレス７からは“−１”がそれぞれ読み出される。情報レジスタ７を見ると、後者のデータのみ“１”が書かれているので、前者のデータは“０”に置き換えられ、“＋１”を後者のデータとして出力する。すなわち“０”,“＋１”が５回目の読み出しデータとなる。このように８回目まで読み出しが続けられる。
【００７６】
上記のように構成された本実施の形態によれば、以下の効果を奏する。すなわち、初期アドレス算出器５を設けたことで、従来の技術では対応できなかった、Ｈ．２６４の可変長符号化データでも情報レジスタ７を活用することが可能となる。
【００７７】
さらに書き込み制御器８において、ｌｅｖｅｌを出力された順番と逆順になるようにデータバッファ４に記憶しておくことで、情報レジスタ７がデータバッファを読み出すために初期アドレスを記憶しておく必要がなく、回路規模を小さくすることができる。さらに、データバッファ４をＫバンク構成にすることで、データバッファ４からのＫデータ同時読み出しが可能となり、高速化を実現できる。
【００７８】
（実施の形態２）
以下、本発明の実施の形態２の可変長復号化装置について図面を参照しながら説明する。図１０に本発明の実施の形態２における可変長復号化装置の概略構成を示す。なお、説明の便宜上、実施の形態１と同様の構成については同一の符号を付してその説明を一部省略する。この可変長復号化装置は実施の形態１の可変長復号化装置に、バンク制御器１３を追加し、データバッファ４ｂおよび情報レジスタ７ｂをＪバンク構成（Ｊは２以上の自然数）にしている。
【００７９】
実施の形態２の可変長復号化装置について、以下、図面を参照しながら動作を説明する。図１１は、図１０の可変長復号化装置における、データフローの例である。Ｊ＝２の２バンク構成を例として説明する。バンク制御器１３によるバンク制御信号の初期値は“０”としておき、“０”がバンクＡ、“１”がバンクＢを示すものとする。１ブロック目の処理のｌｅｖｅｌのデコードにおいて、データバッファ４ｂのバンクＡにｌｅｖｅｌが書き込まれる。次にｒｕｎ＿ｂｅｆｏｒｅのデコードにおいて、情報レジスタ７ｂのバンクＡにｌｅｖｅｌが書き込まれる。この後にバンク制御信号を“１”とする。２ブロック目の処理において、ｌｅｖｅｌのデコードでは、データバッファ４ｂのバンクＢにｌｅｖｅｌが書き込まれ、ｒｕｎ＿ｂｅｆｏｒｅのデコードにおいては、情報レジスタ７ｂのバンクＢにｌｅｖｅｌが書き込まれる。この２ブロック目の処理時に、データバッファ４ｂの読み出し処理が行われる。読み出しにおいては、バンク制御信号の示す逆のバンクのデータが読み出される。すなわち、バンク制御信号が“１”を示すので、１ブロック目のデータとして、情報レジスタ７ｂのバンクＡの値に基づき、データバッファ４ｂのバンクＡが読み出される。
【００８０】
〔第２のデータバッファ〕
本実施形態では、図１２に示すように、第２のデータバッファ１４を備えていてもよい。この場合、第２のデータバッファ１４には、初期アドレス算出器５の算出結果と、ｒｕｎ＿ｂｅｆｏｒｅとが記憶される。アドレス演算器６および書き込み制御器８には、第２のデータバッファ１４からデータが出力される。
【００８１】
図１３は、図１２の可変長復号化装置における、データフローの例である。Ｊ＝３の３バンク構成を例として説明する。バンク制御器１３によるバンク制御信号の初期値は“０”としておき、“０”がバンクＡ、“１”がバンクＢ、“２”がバンクＣを示すものとする。１ブロック目の処理では、ｌｅｖｅｌのデコードにおいて、第１のデータバッファ４ｂのバンクＡにｌｅｖｅｌが書き込まれる。次にｔｏｔａｌ＿ｚｅｒｏｓがデコードされ、初期アドレス算出器５の結果が第２のデータバッファ１４のバンクＡに記憶される。次にｒｕｎ＿ｂｅｆｏｒｅのデコードにおいて、第２のデータバッファ１４のバンクＡにｒｕｎ＿ｂｅｆｏｒｅが記憶される。この後、バンク制御信号が“１”に設定される。
【００８２】
２ブロック目の処理では、ｌｅｖｅｌのデコードにおいて、第１のデータバッファ４ｂのバンクＢにｌｅｖｅｌが書き込まれ、ｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅのデコードにおいて、第２のデータバッファ１４のバンクＢに初期アドレス算出器５の結果とｒｕｎ＿ｂｅｆｏｒｅが書き込まれる。この２ブロック目の処理時に、第２のデータバッファ１４のバンクＡの読み出し処理が行われる。読み出された情報に基づいて情報レジスタ７ｂのバンクＡの書き込みが行われる。
【００８３】
３ブロック目の処理では、ｌｅｖｅｌのデコードにおいて、第１のデータバッファ４ｂのバンクＣにｌｅｖｅｌが書き込まれ、ｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅのデコードにおいて、第２のデータバッファ１４のバンクＣに初期アドレス算出器５の結果とｒｕｎ＿ｂｅｆｏｒｅが書き込まれる。この３ブロック目の処理時に、第２のデータバッファ１４のバンクＢの読み出し処理が行われ、その情報に基づいて情報レジスタ７ｂのバンクＢの書き込みが行われる。さらに、情報レジスタ７ｂのバンクＡの情報に基づき、第１のデータバッファ４ｂのバンクＡの値が読み出される。バンク制御信号は、第１のデータバッファ４ｂ、第２のデータバッファ１４、および情報レジスタ７ｂとは別に作成される。
【００８４】
読み出し処理では、第１のデータバッファ４ｂは、バンク制御信号の示す値よりも“１”多いバンクのデータを読み出す。すなわち、バンク制御信号が“１”を示す場合はバンクＣを、バンク制御信号が“２”を示す場合はバンクＡを、バンク制御信号が“０”を示す場合はバンクＢを、それぞれ第１のデータバッファ４ｂは読み出す。第２のデータバッファ１４および情報レジスタ７ｂは、バンク制御信号の示す値よりも“１”少ないバンクのデータを読み出す。すなわち、バンク制御信号が“１”を示す場合はバンクＡを、バンク制御信号が“２”を示す場合はバンクＢを、バンク制御信号が“０”を示す場合はバンクＣを、それぞれ第２のデータバッファ１４および情報レジスタ７ｂは読み出す。
【００８５】
〔クロック制御〕
書き込みバンクと読み出しバンクの２バンクしか使用しないので、バンク制御信号をクロック制御信号として用いて、未使用バンクのクロックを停止させてもよい。そうすれば、以下の効果を奏する。
【００８６】
データバッファ４ｂおよび情報レジスタ７ｂをバンク構成にすることで、データバッファ４ｂの読み出しを待つことなく、次のブロックの可変長復号を行うことができ、処理を高速化することができる。
【００８７】
さらに、第２のデータバッファ１４を備えることで、ｒｕｎ＿ｂｅｆｏｒｅのデコードが高速に行われた場合、第２のデータバッファ１４をデコードされたｒｕｎ＿ｂｅｆｏｒｅをすべて同時に書き込める構成にしておくことで、情報レジスタ７ｂの書き込み終了を待つことなく次のブロックの可変長復号を行うことができる。これによりさらなる処理の高速化を実現できる。また、バンク制御信号を用いて未使用バンクのクロックを停止できるので、消費電力の抑制が可能となり、低電力化を実現できる。
【００８８】
（実施の形態３）
以下、本発明の実施の形態３の可変長復号化装置について図面を参照しながら説明する。図１４に本発明の実施の形態３における可変長復号化装置の概略構成を示す。なお、説明の便宜上、実施の形態１と同様の構成については同一の符号を付してその説明を一部省略する。
【００８９】
この可変長復号化装置は、実施の形態１の可変長復号化装置に、第３のデータバッファ１５と、第２の書き込み制御器１６と、第２の情報レジスタ１７と、第２の読み出し制御器１８とをさらに備える。
【００９０】
実施の形態３の可変長復号化装置について、以下、図面を参照しながら動作を説明する。図１５は、本発明の実施の形態３の可変長復号化装置における処理の流れ図である。図１５に従って処理の流れについて説明する。
【００９１】
１ブロックに相当するＴｏｔａｌＣｏｅｆｆとｌｅｖｅｌとｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅとが可変長復号器３によって復号されて（ステップＳ１１）、ｒｕｎ＿ｂｅｆｏｒｅが第１の情報レジスタ７ａに書き込まれた後（ステップＳ１２〜Ｓ１６）、第１の読み出し制御器９が第１の情報レジスタ７ａの記録内容を判定する（ステップＳ１７）。そして、第１の情報レジスタ７ａに“１”が格納されていると判定されるビットに相当するアドレスが第１のデータバッファ４に出力されることで、そのアドレスに格納されているｌｅｖｅｌが読み出される（ステップＳ１８）。第２の書き込み制御器１６は第１の読み出し制御器９と連動して、第１のデータバッファ４に格納されているデータを第３のデータバッファ１５に書き込み、第１の情報レジスタ７ａの値を第２の情報レジスタ１７に書き込む（ステップＳ１９）。
【００９２】
１ブロック分の第３のデータバッファ１５および第２の情報レジスタ１７への書き込みが終了すると（ステップＳ２０でＹｅｓ）、第２の読み出し制御器１８は、第２の情報レジスタ１７の記録内容を判定する（ステップＳ２１）。そして、第２の情報レジスタ１７に“１”が格納されていると判定されるビットに相当するアドレスが第３のデータバッファ１５に出力されることで、そのアドレスに格納されているｌｅｖｅｌが読み出される（ステップＳ２２）。
【００９３】
選択器１０では第２の読み出し制御器１８が第２の情報レジスタ１７を判断するのと同時に次の処理を実施する。すなわち、第２の情報レジスタ１７のビットが“０”の場合、選択器１０を介して“０”が後段処理器１１に出力される。“１”の場合、第３のデータバッファ１５の出力データｌｅｖｅｌが選択器１０を介して後段処理器１１に出力される（ステップＳ２３）。さらに、同時に可変長復号器３は次のブロックの復号を開始し（ステップＳ２１）、１ブロックに相当するＴｏｔａｌＣｏｅｆｆとｌｅｖｅｌとｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅとが復号され（ステップＳ２２）、後段処理器１１の処理が終了していれば（ステップＳ２４でＹｅｓ）、上記の動作を繰り返し（ステップＳ２５）、終了していなければ（ステップＳ２４でＮｏ）、ステップＳ１に戻って次の１ブロック分のデータが転送されてくるまで待機する。
【００９４】
[第３のデータバッファのバンク構成]
なお、本実施形態は、図１６に示すように、第３のデータバッファ１５ｃをＩバンク構成（Ｉは２以上の自然数）にしておき、第２の書き込み制御器１６ｃで書き込み順序を変換した上で第２の情報レジスタ１７ｃおよび第３のデータバッファ１５ｃに書き込む構成としてもよい。
【００９５】
図１７に、書き込み順番の変換を示す。図１７の（ａ）は、第１の情報レジスタ７ａの記憶位置を示す。図１７の（ｂ）は、第１の情報レジスタ７ａの読み出し順序（ジグザグスキャン順）を示す。図１７の（ｃ）は第１のデータバッファ４に記憶されている値を示す。図１７の（ｄ）は、第３のデータバッファ１５ｃのバンク構成例を示す。この例では、４つのバンクＡ，Ｂ，Ｃ，Ｄが横方向に並列され、アドレス１，２，３，４が縦方向に設定されている。
【００９６】
図１７の（ｅ）は、第３のデータバッファ１５ｃへの１つ目のデータ書き込み手順である。図１７の（ａ）および図１７の（ｂ）から明らかなように、アドレス１にデータが存在するので、データ“＋２３”がバンクＡのアドレス１に書き込まれる。図１７の（ｆ）は２つ目のデータの書き込みであり、アドレス２のデータである“−４”がバンクＢのアドレス１に書き込まれる。図１７の（ｇ）は３つ目のデータの書き込みであり、アドレス３のデータである“＋１１”がバンクＡのアドレス２に書き込まれる。図１７の（ｈ）は４つ目のデータの書き込みであり、アドレス５のデータである“＋８”がバンクＢのアドレス２に書き込まれる。図１７の（ｉ）は５つ目のデータの書き込みであり、アドレス７のデータである“−３”がバンクＤのアドレス１に書き込まれる。図１７の（ｊ）は６つ目のデータの書き込みであり、アドレス１０のデータである“＋１”がバンクＡのアドレス４に書き込まれる。図１７の（ｋ）は７つ目のデータの書き込みであり、アドレス１２のデータである“−１”がバンクＣのアドレス３に書き込まれる。
【００９７】
図１８に第１の情報レジスタ７ａから第３のデータバッファ１５ｃを介して行う第２の情報レジスタ１７ｃへのアドレス変換表を示す。第２の情報レジスタ１７ｃについても、この変換表の通りに記憶しておく位置を変換しておく。
【００９８】
このような配列に変換することで、後段処理器１１がジグザグスキャン順ではなく横順序でのデータ読み出しを要求する場合に対応でき、また複数データの同時読み出しが可能となる。
【００９９】
また、図１９に示すように、４つのバンクＡ,Ｂ,Ｃ,Ｄを縦方向に並列し、アドレス１,２,３,４が横方向に設定すれば、縦順序での複数データ同時読み出しが可能となる。
【０１００】
上記のように構成された本実施の形態によれば、以下の効果を奏する。すなわち、第１のデータバッファ４のデータが後段処理器１１の処理を待たずに出力することができる。さらに、データバッファ間の転送をｌｅｖｅｌのみにすることができ、その結果、次の可変長復号が行え、さらに復号処理をさらに高速にすることができる。
【０１０１】
さらに、第３のデータバッファ１５ｃをバンク構成にし、第３のデータバッファ１５ｃと第２の情報レジスタ１７とにデータを書き込む際にアドレスを変換しておくことにより、後段処理へのデータ読み出し順序の多様化が可能となり、かつ複数データの同時読み出しも可能となるので、後段処理の読み出し速度が高速な復号化装置が実現可能となる。
【０１０２】
なお、本実施の形態では、第３のデータバッファ１５ｃをバンク構成としたが、第３のデータバッファ１５ｃをビットイネーブル制御が可能なバッファで構成してもよい。その結果、バッファ分割の必要がないので制御信号が削減され、より小さい回路規模での構成が可能となる。
【０１０３】
（実施の形態４）
以下、本発明の実施の形態４の可変長復号化装置について図面を参照しながら説明する。図２０に本発明の実施の形態４における可変長復号化装置の概略構成を示し、以下に説明する。なお、説明の便宜上、実施の形態１もしくは実施の形態２もしくは実施の形態３と同様の構成については同一の符号を付してその説明を一部省略する。
【０１０４】
本実施形態の可変長復号化装置は実施の形態２の可変長復号化装置の構成において、第１のデータバッファ４ｄがＫバンクに分割された状態でＪバンク構成されている。さらには、第３のデータバッファ１５ｄと第２の書き込み制御器１６ｄと第２の読み出し制御器１８ｄとが追加されている。
【０１０５】
以上のように構成された実施の形態４の可変長復号化装置について、以下、図面を参照しながら動作を説明する。図２１は、本発明の実施の形態４の可変長復号化装置における処理の流れ図である。図２１に従って処理の流れについて説明する。
【０１０６】
可変長復号器３によって、１ブロックに相当するＴｏｔａｌＣｏｅｆｆとｌｅｖｅｌとｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅｔとが復号されたうえで（ステップＳ３１）。情報レジスタ７ａにｒｕｎ＿ｂｅｆｏｒｅが書き込まれる（ステップＳ３２〜Ｓ３６）。第１の読み出し制御器９ａは情報レジスタ７ｄの格納内容を判断し（ステップＳ３７〜Ｓ３８）、情報レジスタ７ｄに“１”が格納されているビットに相当するアドレスを第１のデータバッファ４ｄに出力することで、そのアドレスに格納されているｌｅｖｅｌを第１のデータバッファ４ｄから読み出す（ステップＳ３９）。
【０１０７】
第１の読み出し制御器９ａが情報レジスタ７ｄの格納内容を判断するのと同時に、選択器１０ａは、情報レジスタ７ｄのビットが“０”の場合は“０”を、“１”の場合は第１のデータバッファ４ｄの出力データｌｅｖｅｌを、それぞれ第３のデータバッファ１５ｄに出力する（ステップＳ３９）。
【０１０８】
第２の書き込み制御器１６ｄは、第１の読み出し制御器９ａと連動して、選択器１０ｄからのデータを第３のデータバッファ１５ｄに書き込む（ステップＳ４０）。１ブロック分の第３のデータバッファ１５ｄへの書き込みが終了すると（ステップＳ４１でＹｅｓ）、第２の読み出し制御器１８ｄは第３のデータバッファ１５ｄからデータを読み出し（ステップＳ４２）、後段処理器１１に出力する（ステップＳ４３）。これと同時に可変長復号器３は次のブロックの復号を開始する（ステップＳ４４）。
【０１０９】
さらに、可変長復号器３において１ブロックに相当するＴｏｔａｌＣｏｅｆｆとｌｅｖｅｌとｔｏｔａｌ＿ｚｅｒｏｓとｒｕｎ＿ｂｅｆｏｒｅとが復号され（ステップＳ３１）、後段処理器１１が処理を終えていれば（ステップＳ４４でＹｅｓ）、以上の動作を繰り返し（ステップＳ４５）、終了していなければ次データ転送が発生するまで待機する。
【０１１０】
図２２には第３のデータバッファ１５ｄのバンク構成例を示し、図２３には、第１の情報レジスタ７ｄから、第３のデータバッファ１５ｄと第２の情報レジスタ１７とにアドレスを変換する際の変換表を示す。Ｋ＝４の場合、第１の読み出し制御器９ｄは４つのデータを同時に第１のデータバッファ４ｄと第１の情報レジスタ７ｄとから読み出したうえで、読み出した値それぞれを、情報レジスタ７ｄの値に基づいて選択器１０ａにおいて“０”に置き換えさせる。本例に示すバンク構成にしておくことで、第３のデータバッファ１５ｄへの４データの同時書き込みが可能となる。第３のデータバッファ１５ｄはＩバンクに分割されたバッファをＨバンク保有する構成であるが、ＨはＪと同じか、それよりも大きければ構わない。
【０１１１】
図２４に実施の形態４におけるデータフローを示す。図１２のデータフローとは、第３のデータバッファライトがある点のみにおいて異なる。上記のように構成された本実施の形態によれば、以下の効果を奏する。
【０１１２】
後段処理器１１の処理を待たずに、第１のデータバッファ４ｄのデータを出力できるようにしたので、その結果として、次の可変長復号が行え、さらに復号処理を高速化することが可能となる。
【０１１３】
また、第１のデータバッファ４ｄから複数データを読み出すことが可能で、かつ第３のデータバッファ１５ｄへの複数のデータの同時書き込みが可能になったことで、第１のデータバッファ４ｄから全係数データを読み出した場合でも高速な読み出しが可能であり、第２の情報レジスタを持たずに復号回路を構成することが可能となる。
【０１１４】
以上の結果として、小さい回路規模での高速化が可能な復号処理装置を構築することが可能となる。
【０１１５】
（実施の形態５）
以下、本発明の実施の形態５の可変長復号化装置について図面を参照しながら説明する。図２５に本発明の実施の形態５における可変長復号化装置の概略構成を示し、以下に説明する。なお、説明の便宜上、実施の形態１〜４と同様の構成については同一の符号を付してその説明を一部省略する。
【０１１６】
この可変長復号化装置は、実施の形態４の可変長復号化装置と同様の構成を備えるものの、スキャン選択信号１９が第２の書き込み制御器１６ｅに入力される点において実施の形態４と異なる。
【０１１７】
実施の形態４において、ジグザグスキャン順に読み出される第１のデータバッファ４ｄからのアドレス変換を説明したが、スキャン選択信号１９に応じて変換するアドレスを変えることで、異なるスキャンにも対応することが可能となる。結果として、異なるスキャンモードを有するＭＰＥＧ４などと第３のデータバッファ１５ｄを共有することができるので、小さい回路規模で複数符号化モードに対応した復号化装置を実現できる。
【０１１８】
（実施の形態６）
以下、本発明の実施の形態６の可変長復号化装置について図面を参照しながら説明する。図２６に本発明の実施の形態６における可変長復号化装置の概略構成を示し、以下に説明する。なお、説明の便宜上、実施の形態１〜６と同様の構成については同一の符号を付してその説明を一部省略する。なお、本実施の形態においては、１ブロックのデータが４×４個の場合について説明する。
【０１１９】
本実施形態の可変長復号化装置は、実施の形態２の可変長復号化装置と同様の構成を備えるものの、データシフト制御器２０を追加することでデータバッファ４ｅをＭｘＮ個のデータを同時シフトできるようにし、さらに、読出し制御器９ｅの制御方法を変更している。以上のように構成された実施の形態７の可変長復号化装置について、以下、図面を参照しながら動作を説明する。図２７は、本実施の形態の可変長復号化装置における処理の流れ図である。本実施形態の可変長復号化装置の動作は、実施の形態１の動作に類似しているももの、復号された非ゼロ係数値の大きさを表すｌｅｖｅｌ（ステップＳ２）を（ステップＳ４）の結果に応じてデータシフトを行う（ステップＳ２−２）点で実施の形態１と異なる。図５に示す実施の形態１の動作例では、（ステップＳ４）において、１２→１０→７→５→３→２→１のアドレスが算出される。これはｌｅｖｅｌの−１→＋１→−３→＋８→＋１１→−４→＋２３それぞれに対応する。
【０１２０】
図２８Ａ〜図２８Ｈに（ステップＳ２−２）で、１２→１０→７→５→３→２→１のアドレス位置にｌｅｖｅｌ−１→＋１→−３→＋８→＋１１→−４→＋２３をｒｕｎ＿ｂｅｆｏｒｅが演算される毎に移動させた例を示す。図２８Ａ〜図２８Ｈは図８に示す読出し順と同様の読出し順として説明する。図２８Ａは、復号された非ゼロ係数値がデータバッファ４ｅに置かれた状態（ステップＳ２）を示す。図２８Ｂは、（ステップＳ４）により算出された初期アドレス＝“１２”に基づき、アドレス“１２”の位置までデータがシフトされた状態を示す。図２８Ｃは、（ステップＳ４）により算出されたアドレス＝“１０”に基づき、アドレス“１０”の位置までアドレス“１６”〜アドレス“１３”のデータを除くデータがシフトされた状態を示す。図２８Ｄは、（ステップＳ４）により算出されたアドレス＝“７”に基づき、アドレス“７”の位置までアドレス“１６”〜アドレス“１０”のデータを除くデータがシフトされた状態を示す。図２８Ｅは、（ステップＳ４）により算出されたアドレス＝“５”に基づき、アドレス“５”の位置までアドレス“１６”〜アドレス“７”のデータを除くデータがシフトされた状態を示す。図２８Ｆは、（ステップＳ４）により算出されたアドレス＝“３”に基づき、アドレス“３”の位置までアドレス“１６”〜アドレス“５”のデータを除くデータがシフトされた状態を示す。図２８Ｇは、（ステップＳ４）により算出されたアドレス＝“２”に基づき、アドレス“２”の位置までアドレス“１６”〜アドレス“３”のデータを除くデータがシフトされた状態を示す。図２８Ｈは、（ステップＳ４）により算出されたアドレス＝“１”に基づき、アドレス“１”の位置までアドレス“１６”〜アドレス“１”のデータを除くデータがシフトされた状態を示す。
【０１２１】
情報レジスタ７において、算出したアドレスをｌｅｖｅｌのアドレスとして例えば“１”を記憶し、ブロックの残りは“０”を記憶する。（ステップＳ５）。１ブロック分のアドレス算出が終了したかを判断し、まだのときはステップＳ１に戻り、終了したときは読み出しの処理に進む（ステップＳ６）。図２９は、図２６の可変長復号化装置における、データフローの例である。Ｊ＝２の２バンク構成を例として説明する。
【０１２２】
本実施形態のデータフローは、実施の形態２に類似しているものの、ｒｕｎ＿ｂｅｆｏｒｅのデコードにおいて、情報レジスタ７ｂのバンクＡにデータが書き込まれる際、データバッファ４ｂのバンクＡのシフト動作を行う点で異なり、読み出しにおいては、情報レジスタ７ｂのバンクＡの値に基づいて読み出しアドレス算出を行うのではなく、そのまま初期値１からアドレスを１ずつインクリメントしてデータバッファ４ｂのバンクＡを読み出す点で異なる。以上のように構成された本実施の形態によれば、以下の効果を奏する。
【０１２３】
データシフト制御器２０を設けたことで、Ｈ．２６４の可変長符号化データでも情報レジスタ７を活用することが可能となり、情報レジスタの値を用いてデータバッファアドレスを算出する必要がないのでその読出し制御回路を簡易に作成できる。
【０１２４】
（実施の形態７）
図３０は、本発明の実施の形態６における撮像システム５０、例えばデジタルスチルカメラ（ＤＳＣ）の構成を示す図である。図３０中の信号処理装置５５は、上記本発明の実施の形態１〜５の可変長復号化装置のうちいずれかである。
【０１２５】
図３０によれば、光学系５１を通って入射した画像光はイメージセンサ５２上に結像される。イメージセンサ５２はタイミング制御回路５８によって駆動されることにより、結像された画像光を蓄積し、電気信号へと光電変換する。イメージセンサ５２から読み出された電気信号は、アナログ・デジタル変換器（ＡＤＣ）５３によってデジタル信号へと変換された後、信号処理装置５５を含む画像処理回路５４に入力される。この画像処理回路５４においては、Ｙ／Ｃ処理、エッジ処理、画像の拡大縮小、および本発明を用いた画像圧縮伸張処理などの画像処理が行われる。画像処理された信号は、記録転送回路５６においてメディアへの記録あるいは転送が行われる。記録あるいは転送された信号は、再生回路５７により再生される。この撮像システム５０の全体は、システム制御回路５９によって制御される。
【０１２６】
なお、本発明の実施の形態の信号処理装置５５における画像処理は必ずしも光学系５１を介してイメージセンサ５２に結像された画像光に基づく信号のみに適用されるものではなく、例えば外部装置から電気信号として入力される画像信号を処理する際にも適用可能であることは言うまでもない。
【産業上の利用可能性】
【０１２７】
以上説明してきたように、本発明の可変長復号化装置および可変長復号化方法は、データバッファに格納されたデータに対する情報をアドレス保持器によって把握できることにより、ゼロ以外のデータのみ読み出すことが可能となる。そのため、読み出し時間を短縮化することが可能となって、全体として可変長復号化処理を高速化することができる。また、低消費電力を実現できるため、高速な復号化処理が要求される画像復号システム等への応用が可能である。
【０１２８】
特に近年、低ビットレート符号化技術として注目を集めているＨ．２６４を搭載したカメラ付き携帯電話やＤＳＣなどにも有用な装置を提供することが可能である。
【図面の簡単な説明】
【０１２９】
【図１】本発明の実施の形態１における可変長復号化装置の構成を示すブロック図。
【図２】本発明の実施の形態１における可変長復号化装置の動作を示すフローチャート。
【図３】ブロックデータの実例と逆ジグザグスキャンの説明図；
【図４】ブロックデータの一次元化説明図。
【図５】図３の実例における復号データ。
【図６】図３の実例を用いた図１の装置におけるアドレス遷移説明図。
【図７】本発明の実施の形態１における可変長復号化装置の構成を示すブロック図（データバッファＫ分割）。
【図８】図３の実例を用いた図７の装置におけるアドレス遷移説明図。
【図９】図３の実例を用いた図７の装置における２係数読み出し時のアドレス遷移説明図。
【図１０】本発明の実施の形態２における可変長復号化装置の構成を示すブロック図。
【図１１】本発明の実施の形態２における処理フロー図。
【図１２】本発明の実施の形態２における可変長復号化装置の構成を示すブロック図（第２のデータバッファ）。
【図１３】本発明の実施の形態２における処理フロー図（第２のデータバッファ）。
【図１４】本発明の実施の形態３における可変長復号化装置の構成を示すブロック図。
【図１５】本発明の実施の形態３における可変長復号化装置の動作を示すフローチャート。
【図１６】本発明の実施の形態３における可変長復号化装置の構成を示すブロック図（第３のデータバッファＩ分割）。
【図１７】実施の形態３における第３のデータバッファの構成と図３の実例を用いたアドレス変換例の説明図。
【図１８】実施の形態３におけるアドレス変換テーブル例の説明図。
【図１９】実施の形態３における第３のデータバッファの別の構成。
【図２０】本発明の実施の形態４における可変長復号化装置の構成を示すブロック図。
【図２１】本発明の実施の形態４における可変長復号化装置の動作を示すフローチャート。
【図２２】図３の実例を用いた実施の形態４におけるバンク構成例の説明図。
【図２３】実施の形態４におけるアドレス変換テーブル例の説明図。
【図２４】本発明の実施の形態４における処理フロー図。
【図２５】本発明の実施の形態５における可変長復号化装置の構成を示すブロック図。
【図２６】本発明の実施の形態６における可変長復号化装置の構成を示すブロック図。
【図２７】実施の形態６における可変長復号化装置の動作を示すフローチャート。
【図２８Ａ】実施の形態６におけるデータ遷移例（その１）である。
【図２８Ｂ】実施の形態６におけるデータ遷移例（その２）である。
【図２８Ｃ】実施の形態６におけるデータ遷移例（その３）である。
【図２８Ｄ】実施の形態６におけるデータ遷移例（その４）である。
【図２８Ｅ】実施の形態６におけるデータ遷移例（その５）である。
【図２８Ｆ】実施の形態６におけるデータ遷移例（その６）である。
【図２８Ｇ】実施の形態６におけるデータ遷移例（その７）である。
【図２８Ｈ】実施の形態６におけるデータ遷移例（その８）である。
【図２９】実施の形態６における処理フロー図である。
【図３０】本発明の実施の形態７における撮像システムの構成を示すブロック図である。
【図３１】代表的な画像符号化装置の構成を示すブロック図である。
【図３２】ＤＣＴ係数の一例の説明図である。
【図３３】復号後の量子化ＤＣＴ係数とジグザグスキャンの説明図である。
【図３４】代表的な画像復号装置の構成を示すブロック図である。
【図３５】従来の技術における可変長復号部の構成を示すブロック図である。
【図３６】従来の技術におけるランレングス符号の復号回路の構成を示すブロック図である。
【図３７】Ｈ．２６４おけるブロック構成とジグザグスキャンの説明図である。
【符号の説明】
【０１３０】
２  入力器
３  可変長復号器
４  第１のデータバッファ
５  初期アドレス算出器
６  アドレス演算器
７  情報レジスタ
８  書き込み制御器
９  読み出し制御器
１０  選択器
１１  後段処理器
１２  出力器
１３  バンク制御器
１４  第２のデータバッファ
１６  第２の書き込み制御器
１７  第２の情報レジスタ
１８  第２の読み出し制御器
１９  スキャン選択信号
５０  撮像システム
５１  光学系
５２  イメージセンサ
５３  アナログ・デジタル変換器
５４  画像処理回路
５５  信号処理装置（可変長復号化装置）
５６  記録転送回路
５７  再生回路
５８  タイミング制御回路
５９  システム制御回路
【図１】
2007329903.tif 000003
【図２】
2007329903.tif 000004
【図３】
2007329903.tif 000005
【図４】
2007329903.tif 000006
【図５】
2007329903.tif 000007
【図６】
2007329903.tif 000008
【図７】
2007329903.tif 000009
【図８】
2007329903.tif 000010
【図９】
2007329903.tif 000011
【図１０】
2007329903.tif 000012
【図１１】
2007329903.tif 000013
【図１２】
2007329903.tif 000014
【図１３】
2007329903.tif 000015
【図１４】
2007329903.tif 000016
【図１５】
2007329903.tif 000017
【図１６】
2007329903.tif 000018
【図１７】
2007329903.tif 000019
【図１８】
2007329903.tif 000020
【図１９】
2007329903.tif 000021
【図２０】
2007329903.tif 000022
【図２１】
2007329903.tif 000023
【図２２】
2007329903.tif 000024
【図２３】
2007329903.tif 000025
【図２４】
2007329903.tif 000026
【図２５】
2007329903.tif 000027
【図２６】
2007329903.tif 000028
【図２７】
2007329903.tif 000029
【図２８Ａ】
2007329903.tif 000030
【図２８Ｂ】
2007329903.tif 000031
【図２８Ｃ】
2007329903.tif 000032
【図２８Ｄ】
2007329903.tif 000033
【図２８Ｅ】
2007329903.tif 000034
【図２８Ｆ】
2007329903.tif 000035
【図２８Ｇ】
2007329903.tif 000036
【図２８Ｈ】
2007329903.tif 000037
【図２９】
2007329903.tif 000038
【図３０】
2007329903.tif 000039
【図３１】
2007329903.tif 000040
【図３２】
2007329903.tif 000041
【図３３】
2007329903.tif 000042
【図３４】
2007329903.tif 000043
【図３５】
2007329903.tif 000044
【図３６】
2007329903.tif 000045
【図３７】
2007329903.tif 000046