(57)【要約】【課題】符号化の演算における絶対的な遅延と回路規模とを抑えて、十分なスループットを得ることができる符号化装置を提供。【解決手段】エントロピー符号化装置10は、量子化された変換係数をデータとしてデータレジスタ部12に格納し、データレジスタ部12からこの変換係数を列方向に読み出し、ステート出力制御部18からのステート制御信号26に応じてステート出力部16から８個単位でデータ24を符号化演算部20に出力させ、符号化演算部20でデータ24をジグザグスキャン方向に読み出された順に演算する。【選択図】図１
2007228530.tif 000002
【特許請求の範囲】
【請求項１】
供給される第１のデータを変換して得られた量子化された変換係数を第２のデータとして第１の方向に演算して、符号化する符号化装置において、該装置は、
第２のデータを蓄積する記憶手段と、
該記憶手段から第１の方向と異なる第２の方向に読み出される第２のデータを複数個まとめた所定の単位で読み出す読出し制御信号を生成する読出し制御手段と、
該読出し制御信号に応じて前記所定の単位で第２のデータを出力させる出力手段と、
供給される第２のデータを第１の方向に読み出された順に演算する符号化手段とを含むことを特徴とする符号化装置。
【請求項２】
請求項１に記載の装置において、該装置は、前記出力手段からの第２のデータを所定の時間にわたって遅延させる遅延手段を含み、
該遅延手段は、前記出力手段または前記出力手段と前記符号化手段との間に配設されることを特徴とする符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、とくに、画像圧縮、静止画圧縮のエントロピー符号化部が合理的に実装される符号化装置に関するものである。
【背景技術】
【０００２】
従来、静止画は、エントロピー符号化部で圧縮してきた。圧縮に際してエントロピー符号化部には、演算するデータ列がジグザグスキャン則に従った順番で１次元に読み出される。ただし、この順番は演算データレジスタ番号と異なる点に留意する。エントロピー符号化部は、この１次元に読み出した各データを基に演算し、エントロピー符号化する。
【０００３】
たとえば、演算データが64個格納されている演算データレジスタ考える。便宜上、８×８、計64個のマスに対してO〜63の数字を与えて、各データを特定する。後述するように、演算データレジスタには最初から全てのデータ揃っているわけではない。データは、まず0〜7の8個、次に8〜15の8個、・・・、56〜63の8個と８組、すなわち８回または８行のステートに分けて供給される。このように８回目のデータ供給後に、データ64個すべてが揃うことになる。
【０００４】
エントロピー符号化における演算には、この演算データより連続した前のデータ64個を使用して行なう。ここでの連続とは、演算データレジスタ番号の順ではなく、64個のマスの内、左上隅から開始されるジグザグスキャン則に従って付された順番を意味する。この順番で全てが揃わないと、エントロピー符号化の演算がされない。
【０００５】
したがって、エントロピー符号化において演算する順番のデータが途中抜けて無い場合には、欠落したデータが揃うまでの待ち時間が生じる。この結果、待ち時間の間、演算が停止してしまう。揃った全データを基に実行することから、滞りなく演算させるには、実行開始までに絶対遅延が生じる。また、データが揃って順番に従ってデータそれぞれをエントロピー符号化すると、演算のステップが増えてしまう。これは、演算量、すなわちスループットの小さいことを意味する。
【０００６】
上述したエントロピー符号化における演算とは逆に、符号化で用いるデータをジグザグ則に変換して、読み出す技術の開示がある。特許文献１は画像符号化システムである。このシステムは、ラスタスキャンとジグザグスキャンをRAM（Random Access Memory）一面で実現させるため、デュアルポートメモリを用い、ジグザグアドレスの先頭アドレス送出時点を、ラスタアドレスの先頭アドレス送出時点から29〜34番目のアドレス内に設定した指定アドレス送出時点まで遅延させる遅延部を設けて遅らせ、デュアルポートの第１ポートから量子化係数を書き込み、第２ポートから書き込んだ量子化係数を読み出す。これによりこのシステムは回路規模を縮小させている。従来、ラスタスキャンが終了したものにジグザグスキャンさせることから、64アドレス分の回路遅延が生じていたが、回路遅延を半分で済ませることができる。
【特許文献１】特開平５−207289号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前述した絶対遅延が大きいことは、遅延データを蓄積するメモリを用いることになり、回路規模を増大させる原因になる。さらに、近年リアルタイム性が各分野で求められ、演算に関しては遅延無く実行されることが望まれている。ところが、一般的に、回路規模を小さくした場合には、演算に掛かる絶対遅延が大きくなり、また演算量は小さくなってしまう。
【０００８】
また、特許文献１は、量子化係数を求める前段でのDCT（Discrete Cosine Transform）演算におけるデータの書込み/読出し処理の回路構成を記載しているに過ぎない。また、特許文献１は、ラスタアドレスの先頭アドレス送出時点から29〜34番目のアドレス内に遅らせて読み出すことで書込みと読出しが衝突または重ならないように動作させることに特徴があり、回路遅延を半分に済ませている。
【０００９】
しかしながら、エントロピー符号化は前述したように、データ列をジグザグスキャン則に従った順番に読み出して、演算する。このことから、特許文献１をエントロピー符号化の演算に適用しても、結果的に64アドレス分のデータすべてが揃った後、ジグザグスキャン則に従った順番に演算することになる。すなわち、64アドレス分の回路遅延は改善されず、十分なスループットも得ることができないことを意味する。
【００１０】
本発明はこのような従来技術の欠点を解消し、符号化の演算における絶対的な遅延と回路規模とを抑えて、十分なスループットを得ることができる符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は上述の課題を解決するために、供給される第１のデータを変換して得られた量子化された変換係数を第２のデータとして第１の方向に演算して、符号化する符号化装置において、この装置は、第２のデータを蓄積する記憶手段と、この記憶手段から第１の方向と異なる第２の方向に読み出される第２のデータを複数個まとめた所定の単位で読み出す読出し制御信号を生成する読出し制御手段と、この読出し制御信号に応じて所定の単位で第２のデータを出力させる出力手段と、供給される第２のデータを第１の方向に読み出された順に演算する符号化手段とを含むことを特徴とする。
【発明の効果】
【００１２】
本発明に係る符号化装置によれば、第２のデータを記憶手段に格納し、この記憶手段から第２のデータを第２の方向に読み出し、読出し制御手段からの読出し制御信号に応じて出力手段から所定の単位で第２のデータを符号化手段に出力させ、符号化手段で第２のデータを第１の方向に読み出された順に演算することにより絶対的な遅延と符号化手段の回路規模とを抑えても、十分なスループットを得ることができる。
【発明を実施するための最良の形態】
【００１３】
次に添付図面を参照して本発明による符号化装置の一実施例を詳細に説明する。図１を参照すると、本発明による符号化装置の実施例は、量子化された変換係数をデータとしてデータレジスタ部12に格納し、データレジスタ部12からこの変換係数を列方向に読み出し、ステート出力制御部18からのステート制御信号26に応じてステート出力部16から８個単位でデータ24を符号化演算部20に出力させ、符号化演算部20でデータ24をジグザグスキャン方向に読み出された順に演算することにより絶対的な遅延と符号化手段の回路規模とを抑えても、十分なスループットを得ることができる。
【００１４】
本実施例は、本発明の符号化装置をエントロピー符号化装置10に適用した場合である。本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
【００１５】
エントロピー符号化装置10は、図１に示すように、データレジスタ部12、読出し制御部14、ステート出力部16、ステート出力制御部18および符号化演算部20を含む。データレジスタ部12は、ブロックデータを記憶する機能を有する。本実施例においてデータレジスタ部12は、符号化演算部20で演算に使用する直交変換後のデータ（数値または量子化変換係数）を格納する。格納するブロックデータは、８×８＝64個存在する。データレジスタ部12は、読出し制御部14からの読出し制御信号22に応じてレジスタそれぞれに格納したデータをステート出力部16に出力する。
【００１６】
読出し制御部14は、データレジスタ部12のデータレジスタから読み出す機能を有する。読出し制御部14は、上述の機能に基づき読出し制御信号22を生成し、データレジスタ部12にデータを出力する。
【００１７】
ステート出力部16は、データレジスタ部12から供給されるステートに含まれる量子化変換係数を、たとえば８個を一まとめに扱い、出力する機能を有する。ステート出力部16は、供給されるステートのデータ24を符号化演算部20に出力する。ステート出力制御部18は、ブロックデータの順序に応じたステート毎にステート制御信号26を生成する機能を有する。ステート出力制御部18は、ステート制御信号26をステート出力部16に出力する。
【００１８】
符号化演算部20は、供給されるデータ（量子化された変換係数）24を基に演算によりエントロピー符号化する機能を有する。エントロピー符号化は、演算により出現頻度の高い量子化された変換係数またはシンボルに短い符号、出現頻度の低いシンボルに長い符号を割り当てる。この符号化には、たとえばハフマン符号化や算術符号化等がある。符号化演算部20は、JPEG（Joint Photographic Experts Group）のエントロピー符号化であるハフマン符号部を有する。符号化演算部20は、各マス目に対する演算として、供給される64個のデータ、たとえば“0”、“0,1”、“0,1,2”、“0,1,2,3”、・・・および“0,1,2,3,4,・・・,61,62,63”を基にエントロピー符号化したデータ28を出力する。
【００１９】
なお、エントロピー符号化装置10は、読出し制御部14を有するだけでなく、図示しないが書込み制御部も有することは言うまでもない。書込み制御部は、データレジスタ部12に量子化された変換係数の書込みを制御する機能を有する。
【００２０】
次にエントロピー符号化装置10の動作について説明する。エントロピー符号化装置10の前段には、図示しない直交変換部がある。エントロピー符号化装置10は、直交変換部での演算後のデータを扱うことから、エントロピー符号化は、この直交変換における動作の影響を大きく受ける。
【００２１】
ここで、直交変換部は、JPEG圧縮で言えば離散コサイン変換（Discrete Cosine Transformation： DCT）を用いる。
【００２２】
図２および図３のマス目は、図１に示したデータレジスタ部12のレジスタに対応する。図3(a)のマス目内の数字は、レジスタの位置を示す。図2(a)および図3(a)のマス目には、直交変換後のデータ、すなわち量子化された変換係数が格納される。図2(b)の矢印30は、データがジグザグスキャン則に従って書き込まれることを示す。このようなデータ格納状況にあって、データは、図3(b)の矢印32が示すように列方向に読み出される。しかしながら、エントロピー符号化は、ジグザグスキャン則に従って読み出されたデータを用いて演算する。
【００２３】
図１を用いて説明すると、このように量子化された変換係数は、合計64個有るが、直交変換後のデータがステート出力部16に読み出される。ステート出力部16は、読み出したデータ24を８個ずつ符号化演算部20に出力する。符号化演算部20は、供給されるデータ24に対して演算して、エントロピー符号化する。このとき、エントロピー符号化は、直交変換のデータ算出に依存して、ジグザグスキャン則に従って演算される。しかしながら、符号化演算部20には、ジグザグスキャン則と異なる読出し順序でデータ24が供給される。したがって、エントロピー符号化装置10には、ステート毎に供給されるデータとジグザグスキャン則に従うデータを基にした演算順序の差異を合理的に吸収し実行することが要求される。
【００２４】
次にこれら64個の量子化された変換係数を、単にデータという。これらのデータがどのように演算されるかを説明する。従来としては、一般的に、図2(a)のデータ配列に対して、２次元の直交変換演算の合理性から、図4(a)の矢印34の方向、すなわち行方向に一次演算し、次に図4(b)の矢印36方向、すなわち列方向に二次演算する。
【００２５】
本実施例の場合、図４に示した直交変換後のデータ演算について述べる。実際の動作は、２次元直交変換における２次演算として、図4(b)に示した列方向にデータ演算する。このデータ演算は、符号化演算部20に１列分のデータが供給されることから、符号化演算部20は、１列分のデータが１回のステップにより演算される構造を有する。図2(a)のデータ配列において列方向にある８個のデータ単位が次ステップのエントロピー符号化の演算に用いるため１ステップで一度に送られる。エントロピー符号化装置10は、このような演算系の基本構造に基づき動作、すなわち演算する。
【００２６】
ところで、直交変換後のデータは、列方向に１列ずつ順に８個のデータが用意されるが、前述したように符号化演算部20は図2(b)に示したジグザグスキャン則に従って演算を進める。このため、エントロピー符号化を行なう一点のデータに着目すると、あるステップ内での演算に用いるデータが揃っていない場合がある。
【００２７】
この場合についてクロックを用いた順序回路の概念で表現する。演算に用いるデータは読出し制御部14により１ステート８個で、１クロックあたり１回の任意のデータが入出力される。すなわち１ステートは、８クロックで入出力することができる。ブロックデータは64クロックで読み出される。これは、ステート内のクロック数が任意の演算を、クロックのステップ数に分けて行なうことも意味する。換言すると、１ステートに１列８個のデータが揃い、順次繰り返し全８ステート、64個のデータセットになり、これで１セット終了する。この１セットが終了すると、同様に２セット目が間を空けずに始まり、連続して次のセットをなくなるまで繰り返す。
【００２８】
本実施例では、クロックにより分割することを述べているものでないので、この意味についての説明は省略する。前述したように、符号化演算部20は、JPEGのハフマン符号を用いることから、エントロピー符号化は、図２のジグザグスキャン則の順番により演算するように標準で定められている。
【００２９】
ここで、あるマス目の演算には、スキャンしたあるマス目より若番のマス目すべての値が用いられる。これは、具体的に説明すると、３のマス目の演算には、“1,2”のマス目のデータを用いられ、18のマス目の演算には、“17,16,・・・,2,1”のように、18が示される前のマス目のデータが用いられることを意味する。
【００３０】
あるマス目の演算ではこのマス目より前のデータを揃えるが、１ステートで列方向８マス目分のデータを読み出すステートが順次に繰り返される。しかしながら、この読出し動作では、あるマス目の演算に用いるデータが揃っていないことになる。具体的に、読み出すステート、処理量および１ステート遅延した際の処理量の関係を図５に示す。最初のステート（第１ステート）では、図2(a)から明らかなように、マスの番号は、“0,2,3,9,10,20,21,33”である。この場合、“1”がないことから、エントロピー符号化演算できるデータ、マス目のないことがわかる。したがって、処理量は0である。２ステート目では、“1,4,8,11,19,22,34,36”のデータまでが揃う。このとき、マス目は、“1,2,3,4”が連続して揃うことになる。したがって、エントロピー符号化は、1〜4までの４マスそれぞれを演算できる。順次、このように見ていくと、３ステート目では、“5,7,12,18,23,33,37,48”のデータまでが揃う。マス目は、“1,2,3,4,5”が連続して揃い、エントロピー符号化は、第３のステートで１マス目分が演算可能になる。４ステート目では、“1〜13”まで連続して揃う。エントロピー符号化は、８マス目（13-(4+1)）分が演算可能になる。
【００３１】
同様に、５ステート目では“14”の１マス目分のエントロピー符号化が可能になる。６ステート目では“15〜26”までの12マス目分のエントロピー符号化が演算可能になる。７ステート目では“27”の１マス目分のエントロピー符号化が可能になる。最後に、８ステート目で直流成分も含め37マス目分のエントロピー符号化が演算可能になる。これによりすべての値についてエントロピー符号化が演算される。
【００３２】
ここで、図６の処理量からわかるように、符号化演算部20は、最大１ステート内で37マス目分の同時演算が要求される。上述した演算処理量から、本実施例の符号化演算部20は、ｎ＝37個の符号化演算回路または演算ブロックを実装した場合に相当する。
【００３３】
１ステートで１演算する演算ブロックがある場合、入力と同等のスループットを得るためには８ステート目で37演算ブロックが用いられる。また、演算ブロックを１個に削減するには37クロックが要求される。多くのクロック数を用いることは、１ステートの時間を細かく分けることになる。この結果、１クロックの周期が短くなる。このため、演算ブロックの演算速度を向上させるという問題も生じてくる。
【００３４】
このような事態に対処するには、エントロピー符号化装置10は、図６に示すように、符号化部38として配設する。符号化部38は、符号化演算部20、40および42と複数有する。図６は符号化部38にステート出力部16から符号化演算部20、40および42の数に対応したデータラインが接続されることを示す。本実施例ではステート出力部16の出力３に対し符号化演算部も３個配設される。読み出しに用いるステート数と同じステート数で演算する場合、まとまったステートデータを符号化部38に渡しても、パイプライン演算が可能である。この結果、スループット問題が生じない。
【００３５】
ここで、スループット問題とは、パイプライン演算できなくなる状態で、データの読出し処理より演算のステート数が多く用いる場合などに生じる。さらに説明すると、基本動作の演算レジスタから順次ジグザグスキャン則の順序でデータを読出し演算する部分に対し、演算量を増やすことを意味する。換言すれば、スループットを向上させる手法としては、演算ブロックを複数設置すること、複数ある演算ブロックに演算レジスタに蓄積されているデータを合理的に送り出す方法と言うことができる。図６の符号化部38は、符号化演算部20、40および42に演算ブロックを分散させるが、前述したように符号化部38での演算ブロック総数をｎ＝37に設定する。
【００３６】
再び図５に戻って、後者の一手法として遅延データ送出を提案する。本実施例では、演算のステートを１個ずらす機能を有する遅延回路44がステート出力部16に配される。この読出しによると、符号化演算部20は、最初と次のステートのデータとを合わせ、２ステート使って演算することになる。最初のステートでは可能な演算数が0、次のステートで４個の演算が可能である。
【００３７】
ここで、ずれた１ステート目では、４個の演算を均等に分けて、２個演算し、次のステートでも２個演算させる。演算個数の設定は任意に均等化させる。最後のステートまで進んだときは、本実施例では最後の一つ前で19の演算、そして最後のステートでも19の処理となる。この場合、エントロピー符号化装置10は、符号化部38における演算ブロックの数を最大でもｎ＝19個の実装で済む。エントロピー符号化装置10は、これにより回路構成の規模をほぼ半分にできる。この場合の絶対遅延は、１ステート分となるが、回路規模としては半分に縮小される。さらに、遅延回路44がもう１ステート遅らせた、２ステート遅延の場合、エントロピー符号化装置10は、回路規模を1/3まで縮小させることができる。
【００３８】
なお、遅延回路44は、ステート出力部16内に配設させたが、本実施例に限定されるものでなく、ステート出力部16と符号化演算部20との間や符号化演算部20内の受信側に配設させてもよい。
【００３９】
エントロピー符号化装置は、ブロックデータ、64個を的確に演算させるため従来では符号化演算部20内に演算ブロックを64個用いることになる。しかしながら、本発明を適用したエントロピー符号化装置10は、図１の構成では演算ブロックが37個で済み、図６の構成では演算ブロックが19個で済む。エントロピー符号化装置10は、適用する装置の仕様に合わせて遅延と回路規模を設定し、設計することが望ましい。
【００４０】
以上のように構成することにより、絶対遅延を少なく、回路規模の増大を抑えた形で所望のスループットを実現させることが可能になる。
【図面の簡単な説明】
【００４１】
【図１】本発明に係る符号化装置を適用したエントロピー符号化装置における概略的な構成を示すブロック図である。
【図２】図１の符号化演算部での演算におけるデータの読み出すべき順序と方向を説明する図である。
【図３】図１のデータレジスタ部のレジスタ番号とステート出力部からの出力との関係を説明する図である。
【図４】１次および２次演算でのデータ読出し方向を説明する図である。
【図５】図１のエントロピー符号化装置におけるステートの読出しと処理量の関係を示す図である。
【図６】図１に示したエントロピー符号化装置の回路規模を縮小させる概略的な構成を示すブロック図である。
【符号の説明】
【００４２】
10  エントロピー符号化装置
12  データレジスタ
14  読出し制御部
16  ステート出力部
18  ステート出力制御部
20  符号化演算部
【図１】
2007228530.tif 000003
【図２】
2007228530.tif 000004
【図３】
2007228530.tif 000005
【図４】
2007228530.tif 000006
【図５】
2007228530.tif 000007
【図６】
2007228530.tif 000008