(57)【特許請求の範囲】
【請求項１】
画像データの圧縮処理に、ウェーブレット変換処理、量子化処理、及び垂直差分処理を含み、
前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理であり、
前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい数で量子化する処理であり、
前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理である、データ処理方法。
【請求項２】
請求の範囲第１項において、前記垂直差分処理の後に可変長符号化処理を含み、
前記可変長符号化処理は、前記垂差分処理の結果に対し、低周波数帯域のデータには画素単位の符号化を行ない、高周波数帯域のデータにはゼロの画素データが連続するときはゼロが連続する所定範囲で特定コードを付与し前記所定範囲外では画素単位の符号化を行なう処理である、データ処理方法。
【請求項３】
請求の範囲第２項において、前記ウェーブレット変換処理の前に千鳥間引き処理及びラインパック処理を含み、
前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ラインとの間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理であり、
前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して１ラインに並べる処理であり、ラインパック処理で１ラインに並べられたデータを一つの表示ラインの画像データとみなして後の処理を行なう、データ処理方法。
【請求項４】
ウェーブレット変換処理、量子化処理、及び垂直差分処理を含む画像データの圧縮処理で圧縮された画像データの伸張処理に、垂直予測処理、逆量子化処理、及び逆ウェーブレット変換処理を含み、
前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理であり、
前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい数で量子化する処理であり、
前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理であり、
前記垂直予測処理は前記表示ライン毎に所定方向隣りの表示ラインとの間で前記差分を加算する処理であり、
前記逆量子化処理は、前記垂直予測処理の結果に対し、周波数成分毎に決められた量子化係数で乗算又はシフト演算を行なう処理であり、
前記逆ウェーブレット変換処理は、前記逆量子化処理で得られた高周波数画像データと低周波数画像データに対する補間と周波数合成を行なって表示ライン毎の画像データを生成する処理である、データ処理方法。
【請求項５】
請求の範囲第４項において、前記画像データの圧縮処理には前記垂直差分処理の後に可変長符号化処理を更に含み、前記画像データの伸張処理には可変長復号処理を更に含み、
前記可変長符号化処理は、前記垂直差分処理の結果に対し、低周波数帯域のデータには画素単位の符号化を行ない、高周波数帯域のデータにはゼロの画素データが連続するときはゼロが連続する所定範囲に特定コードを付与し前記所定範囲外では画素単位の符号化を行なう処理であり、
前記可変長復号処理は、低周波数帯域のデータには画素単位の復号を行ない、高周波数帯域のデータにはその符号の値に応じてゼロ拡張と画素単位の復号を行なう処理である、データ処理方法。
【請求項６】
請求の範囲第５項において、前記画像データの圧縮処理には前記ウェーブレット変換処理の前に千鳥間引き処理及びラインパック処理を更に含み、前記画像データの伸張処理にはラインアンパック処理及び千鳥補完処理を更に含み、
前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ラインとの間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理であり、
前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して１ラインに並べる処理であり、ラインパック処理で１ライン並べられたデータを一つの表示ラインの画像データとみなして後の圧縮処理を行なうものとされ、
前記ラインアンパック処理は、前記逆ウェーブレット変換処理で生成された画像データに対し、１ラインの画像データを千鳥状で２ラインに分散配置する処理であり、
前記千鳥補完処理は、前記ラインアンパック処理された画像データに対し、斜めに隣合う画素のデータ同士を加算平均し、加算平均が不可能な端の画素位置に応ずるデータにはその画素位置の隣りの加算平均された画素位置のデータを用いて、必要な画素データを補完する、データ処理方法。
【請求項７】
画像データを入力しウェーブレット変換処理、量子化処理、及び垂直差分処理により画像データの圧縮を行ない、圧縮された画像データを入力し垂直予測処理、逆量子化処理、及び逆ウェーブレット変換処理により画像データの伸張を行なうデータ処理装置であって、
前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理であり、
前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい数で量子化する処理であり、
前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理であり、
前記垂直予測処理は前記表示ライン毎に所定方向隣りの表示ラインとの間で前記差分を加算する処理であり、
前記逆量子化処理は、前記垂直予測処理の結果に対し、周波数成分毎に決められた量子化係数で乗算又はシフト演算を行なう処理であり、
前記逆ウェーブレット変換処理は、前記逆量子化処理で得られた高周波数画像データと低周波数画像データに対する補間と周波数合成を行なって表示ライン毎の画像データを生成する処理である、データ処理装置。
【請求項８】
請求の範囲第７項において、前記画像データの圧縮では前記垂直差分処理の後に可変長符号化処理を更に行ない、前記画像データの伸張では可変長復号処理を更に行なうデータ処理装置であって、
前記可変長符号化処理は、前記垂直差分処理の結果に対し、低周波数帯域のデータには画素単位の符号化を行ない、高周波数帯域のデータにはゼロの画素データが連続するときはゼロが連続する所定範囲で特定コードを付与し前記所定範囲外では画素単位の符号化を行なう処理であり、
前記可変長復号処理は、低周波数帯域のデータには画素単位の復号を行ない、高周波数帯域のデータにはその符号の値に応じてゼロ拡張と画素単位の復号を行なう処理である、データ処理装置。
【請求項９】
請求の範囲第８項において、前記画像データの圧縮処理では前記ウェーブレット変換処理の前に千鳥間引き処理及びラインパック処理を更に行ない、前記画像データの伸張処理ではラインアンパック処理及び千鳥補完処理を更に行なうデータ処理装置であって、
前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ライン間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理であり、
前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して並べる処理であり、ラインパック処理で１ラインに並べられたデータを表示ラインの画像データとみなして後の圧縮処理を行なうものとされ、
前記ラインアンパック処理は、前記逆ウェーブレット変換処理で生成された画像データに対し、１ラインの画像データを千鳥状に２ラインに分散配置する処理であり、
前記千鳥補完処理は、前記ラインアンパック処理された画像データに対し、斜めに隣合う画素のデータ同士を加算平均し、加算平均が不可能な端の画素位置に応ずるデータにはその画素位置の隣りの加算平均された画素位置のデータを用いて、必要な画素データを補完する、データ処理装置。
【請求項１０】
ウェーブレット変換処理、量子化処理、及び垂直差分処理により圧縮された画像データを入力し、垂直予測処理、逆量子化処理、及び逆ウェーブレット変換処理により画像データの伸張を行なうデータ処理装置であって、
前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理であり、
前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい数で量子化する処理であり、
前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理であり、
前記垂直予測処理は前記表示ライン毎に所定方向隣りの表示ラインとの間で前記差分を加算する処理であり、
前記逆量子化処理は、前記垂直予測処理の結果に対し、周波数成分毎に決められた量子化係数で乗算又はシフト演算を行なう処理であり、
前記逆ウェーブレット変換処理は、前記逆量子化処理で得られた高周波数画像データと低周波数画像データに対する補間と周波数合成を行なって表示ライン毎の画像データを生成する処理である、データ処理装置。
【請求項１１】
請求の範囲第１０項において、前記垂直差分処理の後に可変長符号化処理を行なうことによって圧縮された画像データの伸張では、可変長復号処理を更に行なうデータ処理装置であって、
前記可変長符号化処理は、前記垂直差分処理の結果に対し、低周波数帯域のデータには画素単位の符号化を行ない、高周波数帯域のデータにはゼロの画素データが連続するときはゼロが連続する所定範囲で特定コードを付与し前記所定範囲外では画素単位の符号化を行なう処理であり、
前記可変長復号処理は、低周波数帯域のデータには画素単位の復号を行ない、高周波数帯域のデータにはその符号の値に応じてゼロ拡張と画素単位の復号を行なう処理である、データ処理装置。
【請求項１２】
請求の範囲第１１項において、前記ウェーブレット変換処理の前に千鳥間引き処理及びラインパック処理を更に行なって圧縮された画像データの伸張では、ラインアンパック処理及び千鳥補完処理を更に行なうデータ処理装置であって、
前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ライン間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理であり、
前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して１ラインに並べる処理であり、ラインパック処理で並べられたデータを表示ラインの画像データとみなして後の圧縮処理を行なうものとされ、
前記ラインアンパック処理は、前記逆ウェーブレット変換処理で生成された画像データに対し、１ラインの画像データを千鳥状に２ラインに分散配置する処理であり、
前記千鳥補完処理は、前記ラインアンパック処理された画像データに対し、斜めに隣合う画素のデータ同士を加算平均し、加算平均が不可能な端の画素位置に応ずるデータにはその画素位置の隣りの加算平均された画素位置のデータを用いて、必要な画素データを補完する、データ処理装置。
【発明の詳細な説明】
【技術分野】  本発明は、画像データを圧縮・伸張するデータ処理方法及びデータ処理装置に関し、例えばビデオ監視システムに適用して有効な技術に関する。
【背景技術】  画像データの圧縮・伸張技術として、ＩＳＯ／ＩＥＣ０１９１８−１（ＪＰＥＧ）のＪＰＥＧ静止画圧縮規格、ＩＳＯ／ＩＥＣ１３８１８−２（ＭＰＥＧ２）及びＩＳＯ／ＩＥＣ１１１７２−２（ＭＰＥＧ１）のＭＰＥＧ動画圧縮規格、ＩＳＯ／ＩＥＣ１５４４４−１（ＪＰＥＧ２０００）及びＩＳＯ／ＩＥＣ１５４４４−３（ＭｏｔｉｏｎＪＰＥＧ２０００）のＪＰＥＧ２０００静止画・動画圧縮規格などが有る。
ＪＰＥＧ静止画圧縮規格では、デジタル化された画像をブロック分割して各ブロック毎にＤＣＴ変換（離散コサイン変換）、量子化、ＤＣ成分（直流成分）予測を施し、ハフマン符号化により画像データを圧縮する。また、この圧縮データの復号は上記圧縮と逆の手順すなわち、ハフマン復号化、ＤＣ成分予測、逆量子化、逆ＤＣＴ変換から画像を生成して実現する。
ＭＰＥＧ動画圧縮規格では、デジタル化された画像をブロック分割して各ブロック毎に動きベクトル検出、ＤＣＴ変換、量子化、ＡＣ／ＤＣ成分（交流／直流成分）予測を施し、ハフマン符号化により画像データを圧縮する。また、この圧縮データの復号は上記圧縮と逆の手順すなわち、ハフマン復号化、ＡＣ／ＤＣ成分予測、逆量子化、逆ＤＣＴ変換、動き補償から画像を生成して実現する。
ＪＰＥＧ２０００静止画・動画圧縮規格では、デジタル化された画像をウェーブレット変換、量子化を施し、算術符号化により画像を圧縮する。また、この圧縮データの復号は上記圧縮と逆の手順すなわち、算術復号化、逆量子化、逆ウェーブレット変換から画像を生成して実現する。
特開２００３−１７４６４５号公報には、ビデオ監視システムにおいて監視ビデオ画像の関心領域と非関心領域との差異についてのビデオ画像のウェーブレット変換処理について記載される。これによれば、ビデオ監視画像を高周波数画像データと低周波数画像データに変換し、前記高周波数画像データにより関心領域に対する第１画像データとそれ以外の領域に対する第２画像データとを記録し、第１画像データと前期定収は画像データを結合させて関心領域データとするものである。
【発明の開示】
本発明者は画像データの圧縮・伸張に要するシステムリソースの多少について検討し、以下の検討結果を得た。
ＪＰＥＧの場合には、ＤＣＴ変換および量子化により画像不連続に起因するブロックノイズが発生する。また、８×８画素のブロックを単位に圧縮処理を行なうため、少なくとも８表示ライン分の画像データを格納するメモリが必要になる。更にＤＣＴ変換を行なう論理規模も大きくなる。
ＭＰＥＧの場合には、ＤＣＴ変換および量子化により画像不連続に起因するブロックノイズが発生する。また、フレーム間予測を行うため、１〜２フレーム分の画像データを蓄えるメモリが必要になる。そして、動き検出部およびＤＣＴ変換部の論理規模が大きくなる。
ＪＰＥＧ２０００の場合には、２次元ウェーブレット変換を行なうため、１フレーム分の画像データを蓄えるメモリが必要である。要する、高周波数画像データと低周波数画像データへの変換を表示画面の表示ライン方向とこれに垂直な方向との双方に対して行なうからである。
何れの方法もメモリや論理回路など比較的大きなシステムリソースを必要とする。特開２００３−１７４６４５号公報に記載の技術では処理に要するシステムリソースの低減について考慮されていない。
本発明の目的は、画像データの圧縮・伸張に要するシステムリソースを少なくすることができるデータ処理方法、更にはその方法を用いるデータ処理装置を提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
本願において開示される発明のうち代表的なものの概要を説明すれば以下の通りである。
１．《圧縮処理方法》本発明に係るデータ処理方法は、画像データの圧縮処理に、ウェーブレット変換処理、量子化処理、及び垂直差分処理を含み、
（ａ）前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理であり、
（ｂ）前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい数で量子化する処理であり、
（ｃ）前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理である。
前記ウェーブレット変換処理は表示ライン方向に対して行なう１次の変換処理であり、表示ライン方向とその垂直方向の双方に対して行なう２次のウェーブレット変換処理に比べ、画像データを保持するのに要するメモリの記憶容量を最大１表示ライン分まで低減することができる。
ウェーブレット変換処理された高周波数画像データは高周波数であるほど人の眼では視認し難く、それ故に、前記量子化処理で高周波数データほど大きい数で量子化することにより、画像データの有効ビット数を減らすことができる。
垂直差分処理では、水平方向の相関が少ない低周波数帯域のデータに対し、相関の強い垂直方向でデータを削減することができる。垂直差分処理を併用することにより、１次のウェーブレット変換処理を採用しても、データの圧縮率を高めることができる。垂直差分処理では前後２表示ライン分の画像データを保持することができるメモリエリアが有れば充分なので、２次のウェーブレット変換処理に比べても必要なメモリの記憶容量は格段に少なくて済む。
本発明の具体的な形態では、前記垂直差分処理の後に可変長符号化処理を含む。
（ｄ）前記可変長符号化処理は、前記垂直差分処理の結果に対し、低周波数帯域のデータには画素単位の符号化を行ない、高周波数帯域のデータにはゼロの画素データが連続するときはゼロが連続する所定範囲で特定コードを付与し前記所定範囲外では画素単位の符号化を行なう処理である。前記量子化処理では高周波数帯域データほど大きい数で量子化されるから、高周波数帯域データの量子化結果ほどゼロが連続する確立が高い。要するに、値が小さいものほど出現確立が高い。前記可変長符号化処理はこれを前提として、ゼロのビット列のビット数を縮小する。
本発明の更に具体的な形態では、前記ウェーブレット変換処理の前に千鳥間引き処理及びラインパック処理を含む。
（ｅ）前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ラインとの間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理である。隣接画素は近似する傾向に有るということを前提として、縦横の比率を保持したまま画素数を半分に圧縮することができる。
（ｆ）前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して１ラインに並べる処理であり、ラインパック処理で１ラインに並べられたデータを一つの表示ラインの画像データとみなして後の処理を行なう。前記ウェーブレット変換処理は表示ライン単位のライン処理であるからラインが長くライン数が少ない方が処理効率を高くすることができる。
２．《伸張処理方法》本発明に係る別のデータ処理方法は、前述の（ａ）ウェーブレット変換処理、（ｂ）量子化処理、及び（ｃ）垂直差分処理を含む画像データの圧縮処理で圧縮された画像データの伸張処理に、垂直予測処理、逆量子化処理、及び逆ウェーブレット変換処理を含む。
（ｇ）垂直予測処理は前記表示ライン毎に所定方向隣りの表示ラインとの間で、前記垂直差分処理で得られた差分を加算する処理であり、前記垂直差分処理の逆の処理を行なう。
（ｈ）前記逆量子化処理は、前記垂直予測処理の結果に対し、周波数成分毎に決められた量子化係数で乗算又はシフト演算を行なう処理であり、前記量子化処理の逆の処理を行なう。
（ｉ）前記逆ウェーブレット変換処理は、前記逆量子化処理で得られた高周波数画像データと低周波数画像データに対する補間と周波数合成を行なって表示ライン毎の画像データを生成する。この伸張処理により、上記圧縮方法で圧縮された画像データの伸張が可能になる。
本発明の具体的な形態では、画像データの圧縮処理には前述の（ｃ）垂直差分処理の後に（ｄ）可変長符号化処理を更に含み、前記画像データの伸張処理には可変長復号処理を更に含む。
（ｊ）前記可変長復号処理は、低周波数帯域のデータには画素単位の復号を行ない、高周波数帯域のデータにはその符号の値に応じてゼロ拡張と画素単位の復号を行なう処理である。
本発明の更に具体的な形態では、画像データの圧縮処理には前記（ａ）ウェーブレット変換処理の前に（ｅ）千鳥間引き処理及び（ｆ）ラインパック処理を更に含み、前記画像データの伸張処理にはラインアンパック処理及び千鳥補完処理を更に含む。
（ｋ）前記ラインアンパック処理は、前記逆ウェーブレット変換処理で生成された画像データに対し、１ラインの画像データを千鳥状で２ラインに分散配置する処理であり、
（ｍ）前記千鳥補完処理は、前記ラインアンパック処理された画像データに対し、斜めに隣合う画素のデータ同士を加算平均し、加算平均が不可能な端の画素位置に応ずるデータにはその画素位置の隣りの加算平均された画素位置のデータを用いて、必要な画素データを補完する処理である。画像圧縮ではライン方向にはウェーブレット変換処理によるフィルタ演算が行なわれているが、垂直方向に対しては垂直差分が採られフィルタ演算は行なわれていない。フィルタ演算の結果は垂直差分の結果に比べてノイジーであるが、その相違は、千鳥補完処理において斜めに隣合う画素のデータ同士を加算平均することによって相互の打ち消され、表示の劣化を抑制する。
３．《圧縮・伸張処理装置》本発明に係るデータ処理装置は、画像データを入力し前記（ａ）ウェーブレット変換処理、前記（ｂ）量子化処理、及び前記（ｃ）垂直差分処理により画像データの圧縮を行ない、圧縮された画像データを入力し前記（ｇ）垂直予測処理、前記（ｈ）逆量子化処理、及び前記（ｉ）逆ウェーブレット変換処理により画像データの伸張を行なう。
本発明の具体的な形態では、前記画像データの圧縮では前記垂直差分処理の後に前記（ｄ）可変長符号化処理を更に行ない、前記画像データの伸張では前記（ｊ）可変長復号処理を更に行なう。
本発明の更に具体的な形態では、前記画像データの圧縮処理では前記（ａ）ウェーブレット変換処理の前に前記（ｅ）千鳥間引き処理及び前記（ｆ）ラインパック処理を更に行ない、前記画像データの伸張処理では前記（ｋ）ラインアンパック処理及び前記（ｍ）千鳥補完処理を更に行なう。
４．《伸張処理装置》本発明に係るデータ処理装置は、前記（ａ）ウェーブレット変換処理、前記（ｂ）量子化処理、及び前記（ｃ）垂直差分処理により圧縮された画像データを入力し、前記（ｇ）垂直予測処理、前記（ｈ）逆量子化処理、及び前記（ｉ）逆ウェーブレット変換処理により画像データの伸張を行なう。
本発明の具体的な形態では、前記（ｃ）垂直差分処理の後に前記（ｄ）可変長符号化処理を行なうことによって圧縮された画像データの伸張では、前記（ｊ）可変長復号処理を更に行なう。
本発明のさらに具体的な形態では、前記（ａ）ウェーブレット変換処理の前に前記（ｅ）千鳥間引き処理及び前記（ｆ）ラインパック処理を更に行なって圧縮された画像データの伸張では、前記（ｋ）ラインアンパック処理及び前記（ｍ）千鳥補完処理を更に行なう。
【図面の簡単な説明】  第１図は本発明に係るデータ処理装置として画像データを圧縮するエンコーダを例示するブロック図である。
第２図は本発明に係るデータ処理装置として圧縮された画像データを伸張するデコーダを例示するブロック図である。
第３図は千鳥間引き処理の具体例を示す説明図である。
第４図はラインパック処理の具体例を示す説明図である。
第５図は表示ラインの端の画素に対してその周期性を拡張するための周期拡張の説明図である。
第６図はウェーブレット変換処理を行なうフィルタの３段構成を例示する論理回路図である。
第７図は第６図の各段のフィルタの具体的構成を例示する論理回路図である。
第８図は量子化処理の具体例を示す説明図である。
第９図は可変長符号化処理の具体例を示すフローチャートである。
第１０図は第１ブロック符号化処理を示すフローチャートである。
第１１図は第２ブロック符号化処理を示すフローチャートである。
第１２図は第３ブロック符号化処理を示すフローチャートである。
第１３図は１画素単位の符号化処理（ピクセルの符号化処理）の手順を示すフローチャートである。
第１４図は１画素が採り得る値に応じたカテゴリ及びコード等を示す説明図である。
第１５図は可変長復号処理の具体例を示すフローチャートである。
第１６図は第１ブロック復号処理を示すフローチャートである。
第１７図は第２ブロック復号処理を示すフローチャートである。
第１８図は第３ブロック復号処理を示すフローチャートである。
第１９図は１画素単位の復号処理（ピクセル復号処理）の手順を示すフローチャートである。
第２０図は逆ウェーブレット変換処理を行なうフィルタの３段構成を例示する論理回路図である。
第２１図は第２１図の各段のフィルタの具体的構成を例示するフローチャートである。
第２２図はラインアンパック処理の具体例を示す説明図である。
第２３図は千鳥補完処理の具体例を示すフローチャートである。
【発明を実施するための最良の形態】  《データ処理装置》
第１図には本発明に係るデータ処理装置として画像データを圧縮するエンコーダが例示される。エンコーダ１は、入力画像データに対して千鳥間引き処理を行なう千鳥間引き部２、千鳥間引き処理結果に対してラインパック処理を行なうラインパック部３、ラインパック処理結果に対してウェーブレット変換処理を行なうＤＷＴ変換部４、ウェーブレット変換処理結果に対して量子化処理を行なう量子化部５、量子化処理結果に対して垂直差分処理を行なう垂直差分部６、垂直差分処理結果に対して可変長符合化処理を行なうＶＬＣ符合化部７を有し、ＶＬＣ符合化部７より圧縮された画像データのストリームが得られる。
第２図には本発明に係るデータ処理装置として圧縮された画像データを伸張するデコーダが例示される。エンコーダ１１は、圧縮された画像データの入力ストリームを受けて可変長復号処理を行なうＶＬＣ復号部１７、可変長復号処理結果に対して垂直予測処理を行なう垂直予測部１６、垂直予測処理結果に対して逆量子化処理を行なう逆量子化部１５、逆量子化処理結果に対して逆ウェーブレット変換処理を行なうｉＤＷＴ変換部１４、逆ウェーブレット変換処理結果に対してラインアンパック処理を行なうラインアンパック部１３、ラインアンパック処理結果に対して千鳥補完処理を行なう千鳥補完部１２を有し、千鳥補完部１２より復号された画像データが出力される。
第１図及び第２図に示されるエンコーダ１及びデコーダ１１は夫々のユニットを専用ハードウェアロジック例えばフル・カスタ厶ＬＳＩにて構成し、或いは汎用マイクロプロセッサに各ユニットの処理を実現するプログラムを実行させるソフトウェア主体の例えばマイクロコンピュータにて構成し、又は前記ハードウェア及びソフトウェア双方を用いたシステムＬＳＩにて構成することが可能である。ＬＳＩ（半導体集積回路）で構成する場合には、シングルチップであっても、マルチチップであってもよい。何れの構成を採用するかは、動作速度、フレームの表示画素数、コスト、開発期間などに応じて適宜選択すればよい。特に、専用ハードを用いて処理結果を直列的に下流に流す構成を採用する場合には各ユニット間の処理能力が整合していればユニット間でデータの受け渡しを行なうためのデータバッファは最小限とすることができる。ソフトウェア主体のマイクロコンピュータ等による構成を採用する場合には、各ユニットでの処理速度がＣＰＵの動作基準クロック周波数に依存するので処理の軽重による処理の時間差を埋めるために比較的大きなデータバッファメモリが必要になる場合もある。データ処理装置における実装形態は、エンコーダだけ、デコーダだけ、或いは双方の何れであってもよい。
《圧縮処理方法》
上記エンコーダ１による圧縮処理方法の詳細を説明する。
第３図には前記千鳥間引き処理の具体例が示される。前記千鳥間引き処理は、前記表示ラインの画像データを１画素毎に間引き、表示ライン上の間引き位置を隣の表示ラインとの間で相違させ、隣り合う表示ラインの一方の表示ラインの間引き位置を偶数番目の画素位置とするとき他方の表示ラインの間引き位置を奇数番目の画素位置とする処理である。第３図に則して説明すれば、千鳥間引く処理は、Ｎ×Ｍ個の画素の入力画像データを１画素置きにサンプリングし、（Ｎ／２）×（Ｍ／２）個の画素の画像データに変換する処理とされる。サンプリングされる画素は、偶数ラインでは２ｎ（ｎは０及び正の整数）番目の画素、奇数ラインでは２ｎ＋１番目の画素とされる。第３図においてサンプリングされる画素にはハッチングを付してある。
千鳥間引き処理は、隣接画素は近似する傾向に有るということを前提として、縦横の比率を保持したまま画素数を半分に圧縮することができる。
第４図には前記ラインパック処理の具体例が示される。前記ラインパック処理は、前記隣り合う表示ラインの一方の表示ラインと他方の表示ラインの間引き処理されたデータから交互に画素データを取り出して１ラインに並べる処理であり、後の処理では、ラインパック処理で１ラインに並べられたデータを一つの表示ラインの画像データとみなす。前記ウェーブレット変換処理は表示ライン単位のライン処理であるから、ラインが長くライン数が少ない方が高い処理効率を実現できる。
第５図乃至第７図には前記ウェーブレット変換処理の具体例が示される。前記ウェーブレット変換処理は、表示画面の表示ライン毎に画像データを高周波数画像データと低周波数画像データに変換する処理である。
先ず、入力データは１画素当り例えば０〜２５５の値を採る。このデータを０を中心に正負の値で表現するように、−１２８〜１２７の範囲の値にレベルシフトする。画素データの有効ビット数を減らすことができる。更に、処理の連続性という観点より第５図に例示されるように、表示ラインの端の画素に対してその周期性を拡張するために、左端の画素のデータＰ０には左端から２番目及び３番目の画素のデータＰ１，Ｐ２を折り返して拡張し、右端の画素のデータＰｎには右端から２番目の画素のデータＰｎ−１を折り返して拡張する。
ウェーブレット変換処理を行なうフィルタ２０は第６図に例示される１次フィルタ２１、２次フィルタ２２、３次フィルタ２３の３段構成とされる。各フィルタはローパスフィルタ（Ｈ０（ｚ））、ハイパスフィルタ（Ｈ１（ｚ））、及びダウンサンプラー（↓２）によって構成される。要するに、ハイパスフィルタ（Ｈ１（ｚ））を通過した高周波数帯域のデータを一つ置きにサンプリングして出力すると共に、ローパスフィルタ（Ｈ０（ｚ））を通過した低周波数帯域のデータを一つ置きにサンプリングして出力する。２次フィルタ２２には１次フィルタ２１の１次低周波のデータが入力され、３次フィルタ２３には２次フィルタ２２の２次低周波のデータが入力される。１表示ラインのデータ数をＮとすると、１次高周波のデータ数はＮ／２、２次高周波のデータ数はＮ／４、３次高周波のデータ数はＮ／８、３次低周波のデータ数はＮ／８とされる。
各段のフィルタの具体的構成を例示する第７図のように、各段のフィルタは、遅延バッファ（Ｚ−１）、（１＋（Ｚ−１））／２の演算を行なう演算器（Ｐ（ｚ））、（１＋（Ｚ−１））／４の演算を行なう演算器（Ｕ（ｚ））、ダウンサンプラー（↓２）によって構成される。演算器は加算器とシフタによって実現することができ、乗算器を用いなくても済む。
上記ウェーブレット変換処理は表示ライン方向に対して行なう１次の変換処理であり、表示ライン方向とその垂直方向の双方に対して行なう２次のウェーブレット変換処理に比べ、画像データを保持するのに要するメモリの記憶容量を最大１表示ライン分まで低減することができる。
第８図には前記量子化処理の具体例が示される。前記量子化処理は、ウェーブレット変換処理の結果に対し、高周波数データほど大きい量子化係数で量子化する処理である。量子化係数は周波数成分毎に決められている。量子化係数が２のべき乗数であれば量子化はシフト演算によって行なえばよい。任意係数の場合にはその逆数の乗算を行なえばよい。第８図のフローチャートに従えば、先ず、入力値の正負が判定され（Ｓ１）、正数の場合には量子化係数によるシフト演算（又は逆数乗算）が行なわれ（Ｓ３）、負数の場合には符号反転され（Ｓ２）、反転値に対して量子化係数によるシフト演算（又は逆数乗算）が行なわれる（Ｓ３）。前記入力値が正数であれば（Ｓ４）、ステップＳ３の演算結果が量子化処理の結果とされ、前記入力値が負数であれば（Ｓ４）、ステップＳ３の演算結果を符号反転し（Ｓ５）、これが量子化処理の結果とされる。
上記ウェーブレット変換処理された高周波数画像データは高周波数であるほど人の眼では視認し難く、それ故に、前記量子化処理で高周波数データほど大きい数で量子化することにより、画像データの有効ビット数を減らすことができる。
前記垂直差分処理は、量子化されたデータに対し前記表示ライン毎に所定方向隣りの表示ラインとの間で差分を採る処理である。第６図の例に従えば、低周波数帯域データである３次高周波のフィルタ出力及び３次低周波のフィルタ出力に関する量子化データに関し、隣りの上側表示ラインとの差分が求められる。最上位の表示ラインの低周波数データ成分はゼロとの差分が採られる。その次の表示ラインの低周波数データ成分は最上位の表示ラインの低周波数データ成分と差分が採られ、以下同様に最下位の表示ラインの低周波数データ成分まで差分処理が行なわれる。高周波数帯域データについては垂直方向の相関が弱いのでここでは垂直差分処理の対象とはしていないが、高周波数帯域データに対しても垂直差分処理を行なうことは可能である。
上記垂直差分処理では、水平方向の相関が少ない低周波数帯域のデータに対し、相関の強い垂直方向でデータを削減することができる。垂直差分処理を併用することにより、１次のウェーブレット変換処理を採用しても、データの圧縮率を高めることができる。垂直差分処理では前後２表示ライン分の画像データを保持することができるメモリエリアが有れば充分なので、２次のウェーブレット変換処理に比べても必要なメモリの記憶容量は格段に少なくて済む。
第９図乃至第１４図には可変長符号化処理の具体例が示される。前記可変長符号化処理は、ハフマン符号化に加えブロック分割符号化を行ない、ゼロが連続する高周波数帯域のデータをより短い符号で表現するようにした処理とされる。具体的には、前記可変長符号化処理は、高周波数帯域データ（１次高周波データ及び２次高周波データ）と、それ以外の低周波数帯域データとで相違され、第９図に例示されるように、前記垂直差分処理の結果に対し、高周波数帯域データ（１次高周波データ又は２次高周波データ）かが判定され（Ｓ１１）、低周波数帯域データには画素（ピクセル）単位の符号化を行ない（Ｓ１２）、高周波数帯域データにはゼロの画素データが連続するときはゼロが連続する所定範囲で特定コードを付与し前記所定範囲外では画素単位の符号化を行なうブロック符号化処理を行なう（３１３）。
ステップ３１３の第１ブロック符号化処理では、１次高周波データ及び２次高周波データは２０画素毎に分割され、第１０図に例示されるように、その２０画素が全部ゼロであれば値０を１ビット出力する（Ｓ１４）。２０画素が全部ゼロで無ければ値１を１ビット出力して（Ｓ１５）、１０画素単位の第２ブロック符号化処理を２回行なう（Ｓ１６，Ｓ１７）。
第２ブロック符号化処理（Ｓ１６、Ｓ１７）では、２０画素毎に分割された１次高周波データ及び２次高周波データが１０画素単位に分割され、第１１図に示されるように、１０画素が全部ゼロであれば値０を１ビット出力する（Ｓ１８）。１０画素が全部ゼロで無ければ値１を１ビット出力して（Ｓ１９）、５画素単位の第３ブロック符号化処理を２回行なう（３２０，Ｓ２１）。
第３ブロック符号化処理（Ｓ２０、Ｓ２１）では、１０画素毎に分割された１次高周波データ及び２次高周波データが５画素単位に分割され、第１２図に示されるように、５画素が全部ゼロであれば値０を１ビット出力する（８２２）。５画素が全部ゼロで無ければ値１を１ビット出力して（８２３）、１画素単位の符号化処理が行なわれる（Ｓ２４）。
前記量子化処理では高周波数データほど大きい数で量子化されるから、高周波数データの量子化結果ほどゼロが連続する確立が高い。要するに、値が小さいものほど出現確立が高い。前記可変長符号化処理はこれを前提として、ゼロのビット列のビット数を縮小する。
前記ステップＳ１２、Ｓ２４の１画素単位の符号化処理（ピクセルの符号化処理）の手順は第１３図に例示される。第１４図には１画素が採り得る値に応じたカテゴリ（値を示すために必要なビット数）、コード（値の範囲を示すビット列）等が示される。第１４図の“コード＋値のカテゴリ長”が画素単位の符号化における可変長符号となる。先ず、画素の符号化ではその画素の値に応じたコードが出力される（Ｓ２５）。次に、その画素の値が負数である判別される（Ｓ２６）。負数であれば値から１をマイナスして（Ｓ２７）、そのマイナス値の下位所定ビット長（カテゴリで指示されるビット長）を出力し（Ｓ２８）、負数でなければ画素の値そのままの下位所定ビット長（カテゴリで指示されるビット長）を出力する（３２８）。例えば画素の値が−５の場合、ステップＳ２５でコード１１１００を出力し、ステップＳ２８では−６（＝−５−１）の値“１０１０”の下位３ビット“０１０”をその画素の値として出力する。この例からも明らかなように、画素の値が負数の場合にステップＳ２７で値から１をマイナスするのは、カテゴリで指示されるビット長を出力したとき負数と正数を区別するためである。要するに、負数であれば正数の反転データとなり、これによって正負が区別可能になる。
《伸張処理方法》
上記デコーダ１１による伸張処理方法の詳細を説明する。
第１５図乃至第１９図には可変長復号処理の具体例が示される。この可変長復号処理は、低周波数帯域データには画素単位の復号を行ない、高周波数帯域データにはその符号の値に応じてゼロ拡張と画素単位の復号を行なう処理である。例えば第１５図に例示されるように、前記可変長復号処理は、入力ストリームに対し、高周波数帯域データ（１次高周波データ又は２次高周波データ）かが判定され（Ｓ３１）、低周波数帯域データには画素（ピクセル）単位の復号を行ない（Ｓ３２）、高周波数帯域データには第１ブロック復号処理を行なう（Ｓ３３）。
ステップ３３３の第１ブロック復号処理では、第１６図に例示されるように、１ビット取得しこれが論理値“０”であれば２０画素分ゼロを出力してゼロ拡張を行ない（Ｓ３４）、論理値“０”でなければ別の第２ブロック復号処理を２回行なう（Ｓ３５，Ｓ３６）。
第２ブロック復号処理（Ｓ３５、Ｓ３６）では、第１７図に例示されるように、更に１ビット取得しこれが論理値“０”であれば１０画素分ゼロを出力してゼロ拡張を行ない（Ｓ３７）、論理値“０”でなければ更に別の第３ブロック復号処理を２回行なう（３３８，Ｓ３９）。
第３ブロック復号処理（Ｓ３８、Ｓ３９）では、第１８図に例示されるように、更に１ビット取得しこれが論理値“０”であれば５画素分ゼロを出力してゼロ拡張を行ない（Ｓ４０）、論理値“０”でなければ１画素単位の復号を行なう（Ｓ４１）。
前記ステップＳ３２、Ｓ４１の１画素単位の復号処理（ピクセル復号処理）の手順は第１９図に例示される。先ず、画素の復号ではその画素のデータのコードと、コードに対応するカテゴリを取得する（Ｓ４３）。取得したカテゴリによって画素の値を示すデータの有効ビット長が認識される。この有効ビット長分だけ画素データから値を取得し（Ｓ４４）、そのトップビットが“０”であるか否か、即ち負数であるか否かを判定する（Ｓ４５）。負数であれば、その値に１をプラスして符号拡張を行なって正規の数に戻し（Ｓ４６）、符号拡張された有効ビット長とコードに従って画素の値を出力する（Ｓ４７）。正数のときは符号拡張を行なわず、前記有効ビット長とコードに従って画素の値を出力する（Ｓ４７）。例えば画素の値が−５の符号化データが入力された場合、ステップＳ４３でコード１１１００を取得し、これに対応するカテゴリから有効ビット長が３ビットであることを取得し、ステップＳ４４で有効ビット長に応ずる３ビット“０１０”を取得し、ステップＳ４６でこれに１加算して“０１１”を得る。そして、値として−５、即ち“１１１１１０１１”を出力する。
前記垂直予測処理は前記表示ライン毎に所定方向隣りの表示ラインとの間で前記垂直差分処理で得られた差分を加算する処理であり、前記垂直差分処理の逆の処理を行なう。例えば最上位ラインは０との加算を行ない、順次隣りの上側表示ラインの差分との加算を行なう。
前記逆量子化処理は、前記垂直予測処理の結果に対し、周波数成分毎に決められた量子化係数で乗算又はシフト演算を行なう処理であり、前記量子化処理の逆の処理を行なう。量子化係数が任意係数の場合にはその逆数を乗算し、２のべき乗数であればシフト演算で代用することができる。
第２０図及び第２１図には逆ウェーブレット変換処理の具体例が示される。前記逆ウェーブレット変換処理は、前記逆量子化処理で得られた高周波数画像データと低周波数画像データに対する補間と周波数合成を行なって表示ライン毎の画像データを生成する処理である。
逆ウェーブレット変換処理を行なうフィルタ３０は、第２０図に例示される１次フィルタ３１、２次フィルタ３２、３次フィルタ３３の３段構成とされる。各フィルタはローパスフィルタ（Ｆ０（ｚ））、ハイパスフィルタ（Ｆ１（ｚ））、及びアップサンプラー（↑２）によって構成される。入力データはウェーブレット変換処理と同様に周期拡張が行なわれ、低周波帯域及び高周波帯域の夫々のデータ入力に対してアップサンプラー（↑２）で１ビット毎に補間を行なって、ローパスフィルタ（Ｆ０（ｚ））、ハイパスフィルタ（Ｆ１（ｚ））を通し、その出力に対して周波数合成を行なう。１次フィルタ３１には３次低周波のデータと３次高周波のデータが入力される。２次フィルタ３２には１次フィルタ３１の出力データ２次高周波のデータが入力される。３次フィルタ３３には２次フィルタ３２の出力データと１次高周波のデータが入力される。
各段のフィルタの具体的構成を例示する第２１図のように、各段のフィルタは、遅延バッファ（Ｚ−１）、（１＋（Ｚ−１））／２の演算を行なう演算器（Ｐ（ｚ））、（１＋（Ｚ−１））／４の演算を行なう演算器（Ｕ（ｚ））、アップサンプラー（↑２）によって構成される。演算器は加算器とシフタによって実現することができ、乗算器を用いなくても済む。
第２２図には前記ラインアンパック処理の具体例が示される。前記ラインアンパック処理は、前記逆ウェーブレット変換処理で生成された画像データに対し、１ラインの画像データを千鳥状で２ラインに分散配置する処理である。例えばＮ×Ｍの画素配列の入力画像に対して前記千鳥間引き処理により（Ｎ／２）×（Ｍ／２）の画素配列に、これに対するラインパック処理でＮ×（Ｍ／４）の画素配列にされているとき、ラインアンパック処理により、千鳥間引きされた配列と同じ（Ｎ／２）×（Ｍ／２）の画素配列に変換される。
第２３図には前記千鳥補完処理の具体例が示される。前記千鳥補完処理は、前記ラインアンパック処理された画像データに対し、斜めに隣合う画素のデータ同士を加算平均し、加算平均が不可能な端の画素位置に応ずるデータにはその画素位置の隣りの加算平均された画素位置のデータを用いて、必要な画素データを補完する処理である。第２３図に従えば、生成ピクセルＢ１は存在ピクセルＡ１とＡ３の加算平均で得られ、生成ピクセルＢ２は存在ピクセルＡ２とＡ３の加算平均で得られる。加算平均が不可能な端の画素位置は第２３図に従えばピクセルＣ１〜Ｃ３〜Ｃ５に至る端縁部分の配置とされる。生成ピクセルＣ１は存在ピクセルＢ５のコピー、生成ピクセルＣ２、Ｃ３，Ｃ４は存在ピクセルＢ５のコピー、生成ピクセルＣ５は存在ピクセルＢ７のコピーとされる。
画像圧縮ではライン方向にはウェーブレット変換処理によるフィルタ演算が行なわれているが、垂直方向に対しては垂直差分が採られフィルタ演算は行なわれていない。フィルタ演算の結果は垂直差分の結果に比べてノイジーであるが、その相違は、千鳥補完処理において斜めに隣合う画素のデータ同士を加算平均することによって相互に打ち消され、表示の劣化を抑制することができる。
以上説明した画像データの圧縮・伸張方法によれば以下の作用効果を得ることができる。
千鳥間引きは千鳥格子上に画像を間引くことにより、縦横の比率を保持したまま画素数を半分にすることができる。
ウェーブレット変換ではウェーブレットフィルタバンクにより、周波数分割を行いエネルギ効率を偏らせることができる。ウェーブレット変換を整数型リフティング構成、量子化数を２のべき乗に制限した場合、乗算器が不要になる。  ウェーブレット変換を使用しているため高圧縮時の画像がＤＣＴ変換のものにくらべ視覚的に良好である。
量子化は視覚特性上認識しにくい高周波数帯域を大きなステップで量子化することにより、高周波数帯域のデータを削減するこができる。
垂直予測は水平方向の相関が少ない低周波数帯域のデータに対し、相関の強い垂直方向に予測を行いデータを削減することができる。
可変長符号化はハフマン符号化に加えブロック分割符号化を行い、ゼロが連続する高周波数帯域のデータのより短い符号で表現することができる。２次元ゼロランレングスではなくブロック分割符号化を行うため、小さな可変長符号表を用いればよい。
上記圧縮・伸張処理はライン単位で行われるため、２〜３ライン分のメモリ領域があればよい。処理に必要なメモリ領域が少ないため、小規模システムに実装可能である。
ＤＣＴ変換のような矩形ブロック分割を行わないためブロックノイズが発生しない。
高周波成分の量子化により、水平方向のノイズ成分を除去することができる。
演算器の数及び必要なメモリ容量が少ないため、小規模システムに実装できる。
高圧縮時の画像が視覚的に良好なため低ビットレートでのデータ伝送が可能になる。
フレーム間圧縮を行わないため、データの加工が容易である。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、画像データの圧縮には千鳥間引、ラインパック、及び可変長符号化の処理を省いてもよい。可変長符号化におけるブロック符号化でブロック分割する画素数は適宜変更可能であり、また、階層的ブロック分割の階層数も適宜変更可能である。
【産業上の利用可能性】  本発明は、動画の圧縮・伸張を行う監視カメラや情報端末、静止画圧縮・伸張を行うデジタルカメラ等の電子機器、その他動画・静止画圧縮を行う電子機器全般に広く適用可能である。
【図１】
0004425221.tif 000002
【図２】
0004425221.tif 000003
【図３】
0004425221.tif 000004
【図４】
0004425221.tif 000005
【図５】
0004425221.tif 000006
【図６】
0004425221.tif 000007
【図７】
0004425221.tif 000008
【図８】
0004425221.tif 000009
【図９】
0004425221.tif 000010
【図１０】
0004425221.tif 000011
【図１１】
0004425221.tif 000012
【図１２】
0004425221.tif 000013
【図１３】
0004425221.tif 000014
【図１４】
0004425221.tif 000015
【図１５】
0004425221.tif 000016
【図１６】
0004425221.tif 000017
【図１７】
0004425221.tif 000018
【図１８】
0004425221.tif 000019
【図１９】
0004425221.tif 000020
【図２０】
0004425221.tif 000021
【図２１】
0004425221.tif 000022
【図２２】
0004425221.tif 000023
【図２３】
0004425221.tif 000024