JP2004312379A - Image compression apparatus, image compression method, and image compression program - Google Patents

Image compression apparatus, image compression method, and image compression program Download PDF

Info

Publication number
JP2004312379A
JP2004312379A JP2003103203A JP2003103203A JP2004312379A JP 2004312379 A JP2004312379 A JP 2004312379A JP 2003103203 A JP2003103203 A JP 2003103203A JP 2003103203 A JP2003103203 A JP 2003103203A JP 2004312379 A JP2004312379 A JP 2004312379A
Authority
JP
Japan
Prior art keywords
vector
block
encoding
data
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003103203A
Other languages
Japanese (ja)
Inventor
Hajime Sakano
肇 坂野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IHI Corp
Original Assignee
IHI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IHI Corp filed Critical IHI Corp
Priority to JP2003103203A priority Critical patent/JP2004312379A/en
Publication of JP2004312379A publication Critical patent/JP2004312379A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image compression device which improves the image quality in a short calculation time. <P>SOLUTION: The image compression device is provided with; a means for dividing an image into blocks; a means for selecting a direction of the maximum luminance variation in each block in a prescribed direction; a means for approximating the two-dimensional luminance change of pixels in the block to a linear luminance change only in the selected direction; a means for making approximate linear data into a vector having pixel values for deviations from the center of the block as the elements and outputting the vector number specifying the vector closest to the shape of the pixel value change out of a set of preliminarily prepared reference vectors; a means for restoring an original vector from the vector number; a means for generating restored data in a direction perpendicular to the change direction from the vector data being the linear pixel value change in the direction of the maximum change to obtain approximate surface data; a means for obtaining error between an original in the block and approximate surface data and calculating an error value of each pixel in the block; and a means for encoding error values distributed in the block. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、画像の圧縮を行う画像圧縮装置、画像圧縮方法及び画像圧縮プログラムに関する。
【0002】
【従来の技術】
画像データはデータ量が多く、圧縮せずに蓄積した場合、データ利用の速度、データの蓄積効率の全てにおいて性能が低下する。このため画像データを蓄積、利用する際には高効率の圧縮を行う必要がある。画像を圧縮する際には画像を等サイズの小さな方形の領域に分割し、その領域内で圧縮を行うブロック符号化がよく行われているがそのブロック符号化の中でも最も効率の良い圧縮率で圧縮する手法の一つとしてベクトル量子化がある。ベクトル量子化の手法については特許文献1などに記載されている。ここで、ベクトル量子化での画像圧縮手順について基本的な部分を説明する。
【0003】
(1)画像をn×nのブロックに分割しブロック内のk=n×n個の画素値を左上からx,x,…,xk−1と並べ、そのk次元空間におけるベクトルxρ=(x,x,・・・,xk−1)毎にそれぞれ以下の処理を行う。
(2)ベクトルxρ=(x,x,…,xk−1)と、あらかじめm個の用意した参照用ベクトルyρi=(y ,y ,…,y k−1)を集めたテーブルのすべてのベクトルと距離(差分)D:Di=D(xρ,yρ )=Σ|x−y |を求める。
(3)さらにこの中から最も小さいDiをもつyiを求め、それを表すインデックスi=Iでxを代表させ、ベクトル量子化による符号データとして出力する。
このようなベクトル符号化処理を行うとたとえば4×4画素ブロックデータを考えると8bit×16個の値が12bit程度に圧縮できる。
【0004】
【特許文献1】
特開昭64−60175号公報
【0005】
【発明が解決しようとする課題】
ところで、ベクトル量子化では高い圧縮率で画像を圧縮することが可能であるが、参照用に用意したベクトルテーブルすべてのベクトルと元のブロックベクトルを比較する必要があるため非常に時間がかかる手法である。例えば、該テーブル中のベクトルの数が2048である場合、縦X,横Y画素の画像をブロック化するためにはX×Y×2048回の差分の絶対値計算と加算が必要となる。このように演算量が格段に多いため、現在主流となっている演算処理装置の計算速度ではテレビレートなどの画像をリアルタイムで圧縮することが困難な状況である。また、高速化のために行える単純な手法にサブサンプリングで画素数を減らしたり、コードブックに含まれるベクトルの種類を減らしたりすることが考えられるが、この場合には画素が荒くなったり誤差が大きいベクトルをマッチすることになり、画質の劣化が著しくなり、画質を維持しながら高速化を行うことが難しかった。このように高いフレームレートの画像を高い画質で保存する必要がある場合に、高い圧縮率をもつと言われているベクトル量子化を適用することができない問題がある。さらには事前に用意するテーブルの種類が大きくなると計算量が増えるとともに、圧縮結果として出力するデータ長が増えるため、文字のような不規則(直線だけではない)エッジについては、出現頻度が小さく事前に用意するテーブルに含めることができない。このため、圧縮するとき文字のような部分について代表するデータを探すと、その画像は元画像から遠いものとなり、結果として復元時の文字などは変形して非常に読みづらくなる事も問題である。
【0006】
本発明は、このような事情に鑑みてなされたもので、短い計算処理時間で圧縮処理を実施することが可能で、画質を向上させることができる画像圧縮装置、画像圧縮方法及び画像圧縮プログラムを提供することを目的とする。
【0007】
【課題を解決するための手段】
請求項1に記載の発明は、画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割手段と、m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出手段と、前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出手段が出力した方向のみの一次元の輝度変化に近似する近似データ生成手段と、前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素値変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化手段と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し、近似面データとする面データ複元手段と、前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算手段と、前記ブロック内に分布する誤差値を符号化するブロック符号化手段とを備えたことを特徴とする。
【0008】
請求項2に記載の発明は、前記最大変化方向検出手段から出力される最大変化方向、ベクトル量子化手段の出力及びブロック符合化手段の出力をエントロピー符号化する符合化手段をさらに備えたことを特徴とする。
【0009】
請求項3に記載の発明は、前記ブロック符号化手段は、誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化手段と、前記BTC符号化手段の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化手段の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定手段とからなることを特徴とする。
【0010】
請求項4に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割手段と、前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化手段と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算手段と、前記誤差ブロックを符号化するベクトル符号化手段と、前記ベクトル量子化手段および前記ベクトル符号化手段の出力を可逆符号化する符号化手段とを備えたことを特徴とする。
【0011】
請求項5に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割手段と、前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル手段と、前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化手段と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、前記ベクトル復元手段から得られた近似ベクトルを元のサイズに拡大する拡大データ生成手段と、前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算手段と、前記誤差ブロックを符号化するベクトル符号化手段と、前記ベクトル符号化手段および前記量子化手段の出力を可逆符号化する符号化手段とを備えたことを特徴とする。
【0012】
請求項6に記載の発明は、画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割過程と、m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出過程と、前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出過程で得られる方向のみの一次元の輝度変化に近似する近似データ生成過程と、前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素値変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化過程と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し近似面データとする面データ復元過程と、前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算過程と、前記ブロック内に分布する誤差値を符号化するブロック符号化過程とを有することを特徴とする。
【0013】
請求項7に記載の発明は、前記最大変化方向検出過程で得られる最大変化方向、ベクトル量子化過程の出力及びブロック符合化過程の出力をエントロピー符号化する符合化過程をさらに有することを特徴とする。
【0014】
請求項8に記載の発明は、前記ブロック符号化過程は、誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化過程と、前記BTC符号化過程の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化過程の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定過程とからなることを特徴とする。
【0015】
請求項9に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割過程と、前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化過程と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算過程と、前記誤差ブロックを符号化するベクトル符号化過程と、前記ベクトル量子化過程および前記ベクトル符号化過程の出力を可逆符号化する符号化過程とを備えたことを特徴とする。
【0016】
請求項10に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割過程と、前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル過程と、前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化過程と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、前記ベクトル復元過程から得られた近似ベクトルを元のサイズに拡大する拡大データ生成過程と、前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算過程と、前記誤差ブロックを符号化するベクトル符号化過程と、前記ベクトル符号化過程および前記量子化過程の出力を可逆符号化する符号化過程とを備えたことを特徴とする。
【0017】
請求項11に記載の発明は、画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割処理と、m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出処理と、前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出処理の出力した方向のみの一次元の輝度変化に近似する近似データ生成処理と、前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素破変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化処理と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し、近似面データとする面データ復元処理と、前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算処理と、前記ブロック内に分布する誤差値を符号化するブロック符号化処理とをコンピュータに行わせることを特徴とする。
【0018】
請求項12に記載の発明は、前記最大変化方向検出処理で得られる最大変化方向、ベクトル量子化処理の出力及びブロック符合化処理の出力をエントロピー符号化する符合化処理をさらにコンピュータに行わせることを特徴とする。
【0019】
請求項13に記載の発明は、前記ブロック符号化処理は、誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化処理と、前記BTC符号化処理の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化処理の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定処理とからなることを特徴とする。
【0020】
請求項14に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割処理と、前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化処理と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算処理と、前記誤差ブロックを符号化するベクトル符号化処理と、前記ベクトル量子化処理および前記ベクトル符号化処理の出力を可逆符号化する符号化処理とをコンピュータに行わせることを特徴とする。
【0021】
請求項15に記載の発明は、画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割処理と、前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル処理と、前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化処理と、前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、前記ベクトル復元処理から得られた近似ベクトルを元のサイズに拡大する拡大データ生成処理と、前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算処理と、前記誤差ブロックを符号化するベクトル符号化処理と、前記ベクトル符号化処理および前記量子化処理の出力を可逆符号化する符号化処理とをコンピュータに行わせることを特徴とする。
【0022】
【発明の実施の形態】
以下、本発明の一実施形態による画像圧縮装置を図面を参照して説明する。図1は同実施形態の構成を示すブロック図である。この図において、符号1は、圧縮対象の画像データをn×n(nは2以上の自然数)画素のブロックに分割するブロック化器である。符号2はブロック内をm(mは2以上の自然数)方向にその輝度変化を計測し、その出力である輝度変化量が最も大きくなる方向を選択する最大変化方向検出器である。符号20はブロック内の二次元の画素値の分布を最大変化方向検知器2から出力した最大変化方向への偏移位置ごとの一次元の画素値として近似する近似データ生成器である。符号3は近似データ生成器20から出力した一次元の画素値データの各画素値を要素とするベクトルとし、参照ベクトルの組から近似画素値に最も近いベクトルを探し出し、そのベクトル番号を出力するベクトル量子化器である。
【0023】
符号4は、ベクトル量子化器3が出力したインデックス番号から元の近似データであるベクトルを復元するベクトル復元器である。符号5は、一次元の変化である、最大変化方向への画素値変化をその変化方向と垂直な方向には同じ値を埋めることで近似面データを生成する面データ復元器である。符号6は、ブロック内の元画像から復元画像を差し引き、残り誤差ブロックを生成する誤差計算器である。符号7は、誤差値のブロックを符号化するベクトル符号化とは異なるブロック単位の符号化を行うブロック符号化器である。符号8は、最大変化方向検出器2から出力される最大変化方向、ベクトル量子化器3から出力されるベクトル番号、ブロック符号化器7から出力される符号化データをエントロピー符号化により可逆・可変長圧縮するエントロピー符号化器である。符号9は、エントロピー符号化器8の出力を多重化して圧縮データとする多重化器である。
【0024】
次に、2次元の画素値平面上で最も画素値が変化する方向の変化のみをベクトル量子化で近似し、そのベクトル量子化近似値と元データとの誤差を、第2の符号化器によって符号化する動作を説明する。
まず、ブロック化器1は、入力した4j×4k(j,kはそれぞれ自然数)画素の画像を4×4画素のブロックj×k個に分割する。この結果得られるブロックの例を図2に示す。以下の説明では図2に示すブロックデータを具体的例として説明する。
【0025】
次に、最大変化方向検出器2は、ブロックの中心を通る垂直線から30度おきの6種類の方向(図3に示す0時から5時の方向)の画素値変化(起伏変化という)を計算する。各方向の起伏変化量はその変化方向を計算する直線に対し図4に示すよう変化方向へ中心から一定距離ごとにエリア分け(ここでは4つのエリア)を行い、その4つのエリアごと平均画素値を求め、隣り合うエリア同士の平均画素値(L(1)〜L(4))の差の絶対値(|L(i)−L(I+1)|)を計算し、その合計(|L(1)−L(2)|+|L(2)−L(3)|+|L(3)−L(4)|)を各方向への起伏変化量とすることにより求める。
【0026】
エリア分けは、4×4画素の場合、図5に示すように6種類のベクトル近似直線の方向に対応し、それぞれのベクトル近似直線に直交する方向に一定間隔に4分割する形でのブロック分割方法を図5に示すように予め用意しておくことにより行う。図5に示す例では、A、B、C、Dでしめすエリアが4つのエリアに該当する。なお、ブロックが8×8画素である場合は8分割する。図2に示す画素値を図5に示す分割方法で起伏変化量を計算すると、たとえば1時の方向へのエリアBのエリアの合計値は49+78+81+93=301となり、また1時の方向の変化量は|377/4−301/4|+|301/4−283/4|+|283/4−149/4|=57となる。同様な計算によって求めた起伏変化量を図6に示す。
【0027】
続いて、最大変化方向検出器2は、4個の画素値のうち隣り合う画素値の差の合計が最も大きい直線を選択し、直線の方向Dirと、該当直線による切断面の平均画素値L(i)を得る。例に示したブロックの値について計算すると、2時の方向がもっとも変化量が大きいのでDir=2となる。
【0028】
続いて、近似データ生成器20は同じく図5に示すような変化方向ごとに予め用意しておいたエリア分割方法から、最大変化方向のブロックのエリア分割方法を選択する。その選択した分割方法に基づき分割したエリア内の平均値を求め、変化方向への各偏移位置での画素値を代表する値として出力する。この例では最大変化方向が2時であるので、図5に示す2時方向用の分割方法での各エリアの平均を計算し、L(1)=377/3、L(2)=301/4、L(3)=283/4、L(4)=149/4とする。この例では近似データ生成器20は最大変化方向検出器2と同じ計算方法を用いているが、最大変化方向検出器2が変化方向に隣り合う画素ごとに差の絶対値を求め、最大変化方向検出器2がエリアごとに平均を求めるなど、異なった計算方法を用いても良い。
【0029】
次に、ベクトル量子化器3は得られたLを4次元のベクトルとし、ベクトル量子化を行い、L(i)に最も近いベクトル番号Idxを図示しない参照ベクトルテーブルから選び出す。ここで最も近いとはLと参照ベクトルの絶対値差分の合計を計算し最も小さいものである。ここで、参照ベクトルテーブルが図7に示すような値である場合の計算例を示す。たとえば、ベクトル番号32の絶対値差分合計は|389/4−0|+|325/4−16|+|263/4−32|+|133/4−48|=211であり、またベクトル番号yの絶対値差分の合計は|389/4−96|+|325/4−80|+|263/4−64|+|133/4−32|=5.5となる。ここでベクトル番号yが最小の絶対値差分の合計をとったとすると、このyをベクトル番号Idxとして選び出す。
【0030】
次に、断面形状復元器4は、ベクトル番号Idxと番号が付けられた参照ベクトルをベクトルテーブルから獲得しその項目L’(1)・・・L’(4)を得る。この例では、ベクトル番号yを選び出しているのでL’(1)=96,L’(2)=80,L’(3)=64,L’(4)=32が得られることとなる。
【0031】
次に、面データ復元器5は先に選択した最大変化方向に対応する位置の画素をそれぞれL’(1),L’(2),L’(3),L’(4)を書き込み、ベクトル復元画像を得る。これによって図8(a)に示すの計算中間値が得られる。この例では一次元データから二次元データを復元する方法として対応する位置を決めその値を選択するNearestNeightbor法を用いているが、位置の偏移に応じて一次補間を行うBi−Linear法などを用いてもよい。
【0032】
次に、誤差計算器6は、先に得られたベクトル復元画像を元々の画像のブロックから対応する位置の画素ごとに引き算することにより誤差ブロックデータを得る。すなわち、図2に示す画素値から図8(a)に示す中間値を減算し、その結果、図8(b)の計算中間値の値を得る。
【0033】
次に、ブロック符号化器7は、誤差ブロックデータの各画素について、0以上なら1、0未満なら0となる量子化データ、および、正のデータの個数をNumP、正のデータの平均をAvrP,負のデータの個数をNumN、負のデータの平均を―AvrNとすると、振幅指標を(NumP×AvrP+NumN×AvrN)/(NumP+NumN)と求めることで0を中心とするBlockTruncationCodingで符号化を行う。この結果、各画素ごとに振幅指標を加算するか減算するかを示す(1画素当り1Bitの)量子化データが16個集まった量子化パターン値とBTC振幅指標(8Bit)Dと24Bitに圧縮したデータを生成する。この例では、図9に示すの量子化パターン値を得るとともに、振幅指標7.5(=120/16)を得ることができる。
【0034】
なお、上記の計算で得られた振幅指標が事前に設定してある詳細な表現に関する感度を決める閾値(3:高感度〜12:低感度 程度を設定する。通常は6程度を設定)以下の振幅指標のBTC符号については「BTC符号無し」を示すコードに置き換える。これにより、人が区別、意識できないような微妙な変化やノイズをデータに含めないようにでき、データ量を削減しながら見た目が同じ画像に復元できる。この例では、振幅指標が7で6を超えているため、先に得られたBTC符号化の値を符号化結果として用いる。
【0035】
次に、エントロピー符号化器8は、前述したブロック符号化により得られる4種類のデータ(最大変化方向Dir、BTC振幅指標D、量子化パターン値q、ベクトル番号Idx)をそれぞれエントロピー圧縮する。そして、多重化器9は、得られたエントロピー符号化データを多重化して圧縮データを出力する。
【0036】
なお、ブロック符号化器7は、離散コサイン変換やBTC(Block Truncation Codeing)法やウェーブレット変換などを用いてブロックデータの量子化を行い、その後量子化を行うことで圧縮したデータを生成するようにしてもよい。特に、このブロック符号化器7に量子化段階が2段階(1ビット)のBTC変換を用いる事で効率的な圧縮を行うことができる。この時、ブロック符号化器7は、図10に示すように、「誤差の起伏の量的な傾向を計算したブロック毎の値」と「起伏の分布を表す画素ごとの値」を求めることで誤差の面分布の符号化を行うBTC符号化器71と、BTC符号化の出力を受けの誤差の量的な傾向(=起伏量)が大きいときにはそのままBTCの符号化データを出力し、起伏量が小さい場合には、誤差部分を復号してもその部分は見落とされるものとして「BTC符号データ無し」のコードを付加する出力判定器72を設ければよい。
【0037】
次に、前述した動作によって圧縮した画像を復号する動作を説明する。
まず、エントロピー符号化によって圧縮したデータから最大変化方向Dir=2,BTC振幅指標D=7、ベクトル番号Idx=y、量子化パターン値q=0101 1111 1110 0100(2進数)を復元する。
【0038】
次に、ベクトル番号からベクトルデータを検索し、図11に示すように最大変化方向に向かって順番に画素値を塗り分けることで近似ブロックが得られる。この例では、ベクトル番号がyであるからL(1〜4)=96,80,64,32を復号し、また、最大変化方向2の値から塗り分けする値を2時方向のパターンに塗り分けることに決まるため、図8(a)が復元できる。この例では一次元データから二次元データを復元する方法として対応する位置を決めその値を選択するNearestNeightbor法を用いているが、位置の偏移に応じて一次補間を行うBi−Linear法などを用いてもよい。ただし、復号時の面データの復元方法としても面データ復元器5と同じ復元方法を用いる。
【0039】
次に、BTC符号化方法に対する復号を行い、誤差補正値を得る。この例では、量子化パターン値q=0101 1111 1110 0100(2進数)と振幅指標=7から図12に示す補正量ブロックが復元できる。そして、図8(a)に示すブロックデータと図12に示すブロックデータについて、ブロック内の対応する場所のデータ同士を加算し、その結果復号ブロックとする。この例では、図13に示すブロックデータが得られる。
【0040】
次に、ブロックごとに復号された結果を敷き詰めて画像データを再構成し、復元画像とする。
【0041】
以上の復号の結果、得られた復号例(図14)を確認すると人間が気づきやすい画像中の特徴である、全体的な画素値の傾き(図14中の太い矢印)および画像中の急激なエッジ変化(図14中の太線〜二重線)が復元されている。実際の画像では4×4画素のような局所に特徴部分以外のばらつきが発生することはほとんど無く、この例で示した画像よりさらに忠実に復元できること、ブロックを敷き詰めた場合、人間が気づきやすい特徴が正しく残っていることが復号画像を見たときに正しく画像を理解することに重要であることから、本手法は人間が見た場合に正しく読み取れる画像が復元できる非可逆圧縮方法であるといえる。
【0042】
次に、図15を参照して、他の実施形態を説明する。図15は他の実施形態の構成を示すブロック図である。この実施形態における画像圧縮装置は、画像全体をn×m(n,mは自然数)画素のブロックに切り分けるブロック化器11と、ブロック内の元画像をn×m次元ベクトルとし、図示しない参照ベクトルテーブルの組から元画像ベクトルに最も近いベクトルを探し出し、そのベクトルを示すベクトル番号を出力するベクトル量子化器12と、ベクトル量子化器12から出力したベクトル番号から元の近似データであるベクトルを復元するベクトル復元器13と、ブロック内の元画像からベクトル復元器13から得られた復元画像を差し引き、残り誤差ブロックを生成する誤差計算器14と、誤差計算器14から得られた誤差値のブロックを符号化するベクトル符号化とは異なるブロック単位の符号化を行うブロック符号化器15と、ベクトル量子化12およびブロック符号化器15からの出力データをエントロピー符号化により可逆・可変長圧縮するエントロピー符号化器16と、エントロピー符号化データを多重化する多重化器17とからなる。この画像圧縮装置は、ベクトル量子化器12が参照する参照ベクトルテーブルには大まかな表現のベクトルのみ記録しておき、目標の画質を圧縮するために必要とされるベクトル量子化器12よりも少ない(4分の1以下)ベクトルテーブルを用意することを特徴としている。
【0043】
次に、図16を参照して、他の実施形態における画像圧縮装置を説明する。図15は他の実施形態の構成を示すブロック図である。この実施形態における画像圧縮装置が図1に示す画像圧縮装置と異なる点は、図1に示す画像圧縮装置はベクトルの次元数(パラメータ数)を減少させるために面でなく線としてのデータをベクトル量子化したが、図16に示す画像圧縮装置では、面のデータにサブサンプリングを行い縦、横の画素数を減少させたデータを用いてベクトルの次元数を減少させることである。この実施形態における画像圧縮装置は、画像全体をn×m(n、mは自然数)画素のブロックに切り分けるブロック化器21と、画像のデータを1/dサイズになるよう、間引き処理、もしくは、縮小を行い、縦1/d倍、横1/d倍のデータを生成する(dは2以上の整数)サブサンプル器22と、縮小した画像を切り出したブロックの各画素を要素とするベクトルとし、参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、そのベクトルを示すベクトル番号を出力するベクトル量子化器23と、ベクトル量子化器23から出力したベクトル番号から元の近似データであるベクトルを復元するベクトル復元器24と、ベクトル復元器24から得られた近似ベクトルを元のサイズに拡大する拡大データ生成器25と、ブロック内の元画像から拡大ブロック生成器からの復元画像を差し引き、残り誤差ブロックを生成する誤差計算器26と、誤差計算器26からの誤差値のブロックを符号化するベクトル符号化とは異なるブロック単位の符号化を行うブロック符号化器27と、ベクトル量子化器23およびブロック符号化器27の出力データをエントロピー符号化により可逆・可変長圧縮するエントロピー符号化器28と、エントロピー符号化データを多重化する多重化器17とからなる。
【0044】
次に、本発明による画像圧縮方法と従来技術による画像圧縮方法の比較結果について説明する。
<計算量>
ベクトル量子化のみによる圧縮を行うことに比べ、本発明では細かい部分の変化を考慮したベクトルテーブルを省いた少ないベクトルテーブルだけを用意し、それを参照するようにしたため、最も時間がかかる処理の作業量が数分の一になり、今までベクトル量子化で問題となっていた圧縮速度が遅い特徴を解決できる。例えば、4×4画素のブロックサイズの2048ベクトルのコードブックを持つベクトル符号化を考えると、対象が16個から4個のパラメータに、そしてコードブック自体もx、y方向の変化がx方向への変化だけになるので少なくとも種類数が2分の一以下には減少するため計算量は1/8以下にすることができる。
【0045】
<画質>
本発明では単一方向のベクトル量子化で再現できない大きな変化に直交する方向の画素値変動の分布や、空間的に細かい変化がを含む部分については、大まかなベクトル量子化で近似したブロックデータからの誤差として検出し、その誤差を別のベクトル量子化よりも計算量が少ない符号化方法によって圧縮する。この符号化データの復元時に個々のブロック内では2次元のベクトル符号化のデータで復元されるコードブック内にある画像と同等の画像を復号できるため、それを集めて復号した画像全体でも同様の画質を持つことになる。
図17(a)(b)に示すように最大傾きである矢印の方向の濃度変化を符号化・復号を行い、矢印と直行する方向に同じ色で塗り分ける形で復号を行い、BTC符号化データは付加しないことで元画像と同じ画質が得られる。
また、図17(c)に示すように最大傾きである矢印方向に濃度変化を符号化・復号を行い矢印と直交する方向に同じ色で塗り分ける復号を行い、また図17(c)の下に示す部分を一定(白い部分ー暗い部分の差)だけ濃くする補正値を持つ補正値分布をBTC符号から(2値情報であるため誤差無く)復号し、以上の2つの値を合計することで元画像と同じ画質を得ることができる。
【0046】
このように、人間が局所的に意識しやすい、べた塗りやグラデーション(図17(a)に相当)や図17(b)のような規則的な色むら、および、それらの境目(図17(c))において本手法を用いても2次元のベクトル量子化と同等の画像に復元できる。さらに、二次元画素のベクトル量子化自体が、自然画像で人間が理解する画像の局所的な形としてベクトルテーブルに事前に準備するベクトルデータの多くに、先に説明した特徴をもったデータを含んでおり、これらを参照する番号を得ることにより、人間が気づきやすい部分のみを表現したデータとして圧縮している。このような自然画に対するベクトル量子化手法と比較すると本手法を用いても同じ特徴に対して、同じようなレベルでブロックごとの画像を復元することになる。これにより、復元時にベクトル量子化手法が人間が意識できる範囲で元画像と同程度の画質を得ることができるのと同様に、本手法も自然画をほとんど占める特徴について人間が意識できる範囲で元画像と同程度の画質を得ることができる。
【0047】
<BTC符号化との比較>
ブロック中の大まかな構造をベクトル量子化で圧縮しており、補正が行われBTC符号を付加するブロックはブロック内の構造が複雑な部分に限定され、自然画像のような複雑な部分が一部にしかない画像ではBTC符号化に比べて符号量が減少する。例えばベクトル量子化だけの部分が11bit+方向4bit(4×4のブロックであるた外周の12画素より多い16段階より細かくしても塗り分け方が変わらないため)+BTCの有無1bit,BTCの符号量が32bit(中心色、起伏量、起伏分布16bit)であると考える。全面にBTCを用いる場合には各ブロック32bitであり、本手法ではBTC符号化の補正がある部分は16+32bit、補正が無い部分は16bitで表現できる。このことから複雑な部分が50%よりも少ない場合に本手法で符号化した場合にBTCよりも圧縮率が良くなる。また通常の自然画では複雑な部分が10%程度であり、多い場合でもほとんどは40%程度に収まる。このため自然画一般に用いるための(パラメータ調整をしない)符号化装置としてはBTCに比べても圧縮率が良くなる。また、本手法はBTCにくらべて画質が同等で圧縮率が良くなるといわれているベクトル符号化と同等の画質を持っているので、BTCとも得意、不得意の画像はあるが平均すると同等の画質となる。
【0048】
<文字などエッジと複雑なパターンをもつ画像に関する画質の従来のベクトル量子化との比較>
ベクトル量子化では正確に表現しきれない文字を画像として取り込んだ場合のエッジなどについては、誤差値のブロックをブロック符号化するにあたりBTC法を用いることでエッジ特有の極端な起伏を各画素ごとに凹、凸を切り替える表現で表すことが可能となる。その際、元画像の細部まで再現するモデルとして誤差を近似するのに必要な機能を、2段階の量子化といった最小の情報量で表す事となる。一方、通常のベクトル量子化において全ての太さの文字を再現するためには全ての画素について濃淡の2値を入れ替えた2の16乗のパターンを用意する必要があり、ベクトル検索に要する2の16乗のオーダーの計算量から考えると実用的でない。このように、全ての文字パターンに対応したベクトルを用いて表現することができないベクトル量子化に比べ本手法を用いることにより、文字を含んだ画像について画質を向上させることができる。
【0049】
なお、図1、10、15、16における各処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより画像圧縮処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0050】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0051】
【発明の効果】
以上説明したように、この発明によれば、参照ベクトルテーブルおよびベクトル量子化器の構成とすることでベクトル量子化の対象となるデータの次元数を画素の面積からブロックの長さと減少させることになり、比較対象となる参照ベクトル数が減り、かつ、ベクトル当りの比較量を減少できる画像圧縮装置を提供することができる。この装置では一番大きく変化した方向をベクトル量子化で再現し、それより変化量が小さく、また、細かい変化を第二の量子化で実現することにより、ベクトル量子化の得意とする大まかな変化を表す部分を圧縮することをベクトル量子化に、また、細かな部分をそれ以外の符号化方法に分担させることが可能となる。この結果、高速化のためにやみくもにベクトルテーブル中の参照ベクトル数を減らす事に比べ画質を減らさず圧縮することが可能になるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施形態の構成を示すブロック図である。
【図2】ブロックデータの一例を示す説明図である。
【図3】最大変化方向を示す説明図である。
【図4】起伏変化量の計算方法を示す説明図である。
【図5】エリア分割の方法を示す説明図である。
【図6】起伏変化量の一例を示す説明図である。
【図7】参照ベクトルテーブルの一例を示す説明図である。
【図8】中間計算値の一例を示す説明図である。
【図9】量子化パターンの一例を示す説明図である。
【図10】装置の変形例を示すブロック図である。
【図11】復元される面データの一例を示す説明図である。
【図12】補正量ブロックの一例を示す説明図である。
【図13】復号結果の一例を示す説明図である。
【図14】復元結果を確認するための説明図である。
【図15】他の実施形態における構成を示すブロック図である。
【図16】他の実施形態における構成を示すブロック図である。
【図17】効果を説明するための説明図である。
【符号の説明】
1・・・ブロック化器
2・・・最大変化方向検出器
20・・・近似データ生成器
3・・・ベクトル量子化器
4・・・断面形状復元器
5・・・面データ復元器
6・・・誤差計算器
7・・・ブロック符号化器
71・・・BTC符号化器
72・・・出力判定器
8・・・エントロピー符号化器
9・・・多重化器
11・・・ブロック化器
12・・・ベクトル量子化器
13・・・ベクトル復元器
14・・・誤差計算器
15・・・ブロック符号化器
16・・・エントロピー符号化器
17・・・多重化器
21・・・ブロック化器
22・・・サブサンプル器
23・・・ベクトル量子化器
24・・・ベクトル復元器
25・・・拡大ブロック生成器
26・・・誤差計算器
27・・・ブロック符号化器
28・・・エントロピー符号化器
29・・・多重化器
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image compression device that compresses an image, an image compression method, and an image compression program.
[0002]
[Prior art]
The image data has a large data amount, and if it is stored without compression, the performance deteriorates in all of the data use speed and the data storage efficiency. Therefore, when storing and using image data, it is necessary to perform highly efficient compression. When compressing an image, the image is divided into small rectangular areas of equal size, and block encoding for compressing within the area is often performed, but with the most efficient compression ratio among the block encodings One of the compression techniques is vector quantization. The technique of vector quantization is described in Patent Document 1 and the like. Here, the basic part of the image compression procedure in the vector quantization will be described.
[0003]
(1) The image is divided into n × n blocks, and k = n × n pixel values in the block are represented by x from the upper left.0, X1, ..., xk-1And the vector x in the k-dimensional spaceρ= (X0, X1, ..., xk-1The following processing is performed for each of the following.
(2) Vector xρ= (X0, X1, ..., xk-1) And m prepared reference vectors yρi= (Yi 0, Yi 1, ..., yi k-1) And all vectors and distances (differences) D in the tablei: Di = D (xρ, Yρ i) = Σ | xj-Yi j|
(3) Further, yi having the smallest Di is obtained from the values, x is represented by an index i = I representing the value, and output as code data by vector quantization.
By performing such a vector encoding process, for example, considering 4 × 4 pixel block data, 8 bits × 16 values can be compressed to about 12 bits.
[0004]
[Patent Document 1]
JP-A-64-60175
[0005]
[Problems to be solved by the invention]
By the way, although it is possible to compress an image with a high compression rate by vector quantization, it is necessary to compare all the vectors of the vector table prepared for reference with the original block vector, so that it takes a very long time. is there. For example, if the number of vectors in the table is 2048, it is necessary to calculate and add the absolute value of the difference X × Y × 2048 times to block the image of vertical X and horizontal Y pixels. Since the amount of calculation is remarkably large, it is difficult to compress an image such as a television rate in real time at the calculation speed of a currently mainstream processing device. In addition, a simple method that can be used for speeding up is to reduce the number of pixels by sub-sampling or to reduce the types of vectors included in the codebook.However, in this case, the pixels become rough or errors may occur. Matching large vectors results in significant degradation of image quality, making it difficult to increase the speed while maintaining image quality. When it is necessary to store an image with a high frame rate with high image quality, there is a problem that vector quantization, which is said to have a high compression ratio, cannot be applied. Furthermore, if the type of table prepared in advance increases, the amount of calculation increases and the data length output as a result of compression increases, so that irregular (not just straight) edges such as characters have a low appearance frequency, and Can not be included in the table prepared for. For this reason, when data representative of a portion such as a character is searched for when compression is performed, the image is far from the original image, and as a result, the character at the time of decompression is deformed and becomes very difficult to read. .
[0006]
The present invention has been made in view of such circumstances, and an image compression apparatus, an image compression method, and an image compression program capable of performing compression processing in a short calculation processing time and improving image quality are provided. The purpose is to provide.
[0007]
[Means for Solving the Problems]
According to a first aspect of the present invention, there is provided a block dividing unit for dividing an entire image into blocks of n × n (n is a natural number of 2 or more) pixels, and m (m is a natural number of 2 or more) pixels in each of the blocks. A maximum change direction detecting means for calculating an amount of change in luminance and selecting a direction in which the amount of change is the largest, and a primary change only in a direction in which the two-dimensional luminance change of the pixel in the block is output by the maximum change direction detecting means. Approximation data generating means approximating the original luminance change, and the approximate one-dimensional data as a vector having pixel values for each deviation from the block center as an element, and calculating the pixel value change from a set of reference vectors prepared in advance. Vector quantization means for searching for a vector closest to the shape and outputting a vector number for identifying the vector, and a vector for restoring a vector which is original approximate data from the vector number Surface data duplicating means for generating restored data in a direction perpendicular to the change direction from vector data which is a one-dimensional pixel value change in the maximum change direction, and as approximate surface data, Error value calculating means for calculating an error value by subtracting the approximate plane data from the original image and calculating an error value of each pixel in the block; and block coding means for coding an error value distributed in the block And characterized in that:
[0008]
The invention according to claim 2 further comprises coding means for entropy coding the maximum change direction output from the maximum change direction detection means, the output of the vector quantization means and the output of the block coding means. Features.
[0009]
According to a third aspect of the present invention, the block encoding means obtains a value for each block that has calculated the quantitative tendency of the undulation of the error and a value for each pixel that represents the distribution of the undulation, thereby obtaining the surface distribution of the error. When the output of the BTC encoder and the output of the BTC encoder are large and the quantitative tendency of the error is large, the output of the BTC encoder is output as it is. Output determination means for outputting a code indicating that there is no BTC code data.
[0010]
The invention according to claim 4 is a block dividing unit that divides the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels, and the original image in the block is an n × m dimensional vector, A vector quantization means for searching for a vector closest to the original image vector from a set of reference vectors previously expressed only with a rough expression vector and outputting a vector number indicating this vector, and using the original approximate data from the vector number Vector restoring means for restoring a certain vector, error calculating means for obtaining an error value by subtracting the approximate data from the original image in the block to generate an error block, and vector coding for encoding the error block Means, and encoding means for losslessly encoding the output of the vector quantization means and the vector encoding means. And
[0011]
According to a fifth aspect of the present invention, there is provided a block dividing means for dividing an entire image into blocks of nxm (n, m is a natural number of 2 or more) pixels, and 1 / d times and 1 / d times from the image. (D is an integer equal to or larger than 2) a sub-sampling unit that generates a reduced image, a reduced image vector having each pixel of a block obtained by cutting out the reduced image as an element, and a reduced image vector from a set of reference vectors prepared in advance. , A vector quantization means for outputting a vector number for identifying the vector, a vector restoration means for restoring a vector which is original approximate data from the vector number, and a vector restoration means for obtaining a vector number obtained from the vector restoration means. Enlarged data generating means for enlarging the approximate vector to the original size, and obtaining an error value by subtracting and subtracting the approximate vector from the original image in the block, An error calculator for generating a difference block, a vector encoder for encoding the error block, and an encoder for losslessly encoding the outputs of the vector encoder and the quantizer. And
[0012]
According to a sixth aspect of the present invention, there is provided a block dividing step of dividing the entire image into blocks of n × n (n is a natural number of 2 or more) pixels, and a block dividing process in the m (m is a natural number of 2 or more) direction. Calculating the amount of change in luminance and selecting a direction in which the amount of change is the largest, and a primary change only in the direction in which the two-dimensional luminance change of the pixels in the block is obtained in the maximum change direction detection step. An approximation data generation process approximating the original luminance change, and the approximation one-dimensional data as a vector having pixel values for each deviation from the block center as an element, and the pixel value change from a set of reference vectors prepared in advance. A vector quantization process of searching for a vector closest to the shape and outputting a vector number for identifying the vector, and a vector quantization process for restoring a vector that is original approximate data from the vector number Restoring process, surface data restoring process of generating restoration data in a direction perpendicular to the change direction from vector data which is a one-dimensional pixel value change in the maximum change direction and using the surface data as approximate surface data, and an original image in the block. An error value is obtained by subtracting the approximate surface data from the above, and an error value calculating step of calculating an error value of each pixel in the block, and a block encoding step of encoding an error value distributed in the block. It is characterized by having.
[0013]
The invention according to claim 7 further comprises a coding step of entropy coding the maximum change direction obtained in the maximum change direction detection step, the output of the vector quantization step, and the output of the block coding step. I do.
[0014]
According to an eighth aspect of the present invention, in the block encoding step, a value of each block that calculates a quantitative tendency of the undulation of the error and a value of each pixel representing the distribution of the undulation are obtained by calculating the surface distribution of the error. When the BTC encoding process for performing the encoding and the output of the BTC encoding process have a large quantitative tendency of the error, the output of the BTC encoding process is output as it is, and when the amount of undulation is small, An output determining step of outputting a code indicating that there is no BTC code data.
[0015]
According to a ninth aspect of the present invention, there is provided a block dividing step of dividing an entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels, and an original image in the block is an n × m dimensional vector. A vector quantization step of searching for a vector closest to the original image vector from a set of reference vectors previously expressed only with a rough expression vector and outputting a vector number indicating this vector, and using the original approximate data from the vector number A vector restoration process for restoring a certain vector, an error calculation process for obtaining an error value by subtracting the approximate data from the original image in the block, and an error calculation process for generating an error block, and a vector encoding for encoding the error block And a coding step of losslessly coding an output of the vector quantization step and the vector coding step. And
[0016]
According to a tenth aspect of the present invention, there is provided a block dividing step of dividing an entire image into blocks of nxm (n, m is a natural number of 2 or more) pixels, and 1 / d times and 1 / d times from the image. (D is an integer equal to or greater than 2) a sub-sampling process for generating a reduced image, and a reduced image vector from a set of reference vectors prepared in advance as a reduced image vector having each pixel of a block obtained by cutting out the reduced image as an element. , A vector quantization step of outputting a vector number for identifying the vector, a vector restoration step of restoring a vector that is the original approximate data from the vector number, and a vector restoration step. An enlarged data generation process of enlarging the approximate vector to the original size, and an error value is obtained by subtracting and subtracting the approximate vector from the original image in the block. An error calculation step of generating an error block, a vector encoding step of encoding the error block, and an encoding step of losslessly encoding the outputs of the vector encoding step and the quantization step. And
[0017]
According to an eleventh aspect of the present invention, there is provided a block dividing process for dividing an entire image into blocks of n × n (n is a natural number of 2 or more) pixels, and m (m is a natural number of 2 or more) in each of the blocks. A maximum change direction detection process of calculating a change amount of luminance and selecting a direction in which the change amount is the largest, and a two-dimensional luminance change of a pixel in the block in a primary direction only in a direction output by the maximum change direction detection process. Approximate data generation processing that approximates the original luminance change, and the approximate one-dimensional data is a vector having pixel values for each deviation from the block center as an element, and the pixel break change is calculated from a set of reference vectors prepared in advance. A vector quantization process for finding a vector closest to the shape and outputting a vector number for identifying the vector, and a process for restoring a vector that is original approximate data from the vector number. Torsion restoration processing, surface data restoration processing that generates restoration data in a direction perpendicular to the change direction from vector data that is a one-dimensional pixel value change in the maximum change direction, and sets the restored data as approximate plane data, An error value is obtained by subtracting the approximate plane data from the image, an error value calculation process of calculating an error value of each pixel in the block, and a block encoding process of encoding an error value distributed in the block. Is performed by a computer.
[0018]
According to a twelfth aspect of the present invention, the computer further performs a coding process for entropy coding the maximum change direction obtained by the maximum change direction detection process, the output of the vector quantization process, and the output of the block coding process. It is characterized.
[0019]
According to a thirteenth aspect of the present invention, in the block encoding process, a value of each block that calculates a quantitative tendency of the undulation of the error and a value of each pixel representing the distribution of the undulation are obtained by calculating the surface distribution of the error. When the output of the BTC encoding process for performing the encoding and the output of the BTC encoding process has a large quantitative tendency, the output of the BTC encoding process is output as it is. Output determination processing for outputting a code indicating that there is no BTC code data.
[0020]
The invention according to claim 14 is a block dividing process for dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels, and the original image in the block is an n × m dimensional vector, A vector quantization process of searching for a vector closest to the original image vector from a set of reference vectors previously expressed only with a rough expression vector and outputting a vector number indicating this vector, and using the original approximate data from the vector number A vector restoration process for restoring a certain vector, an error calculation process for obtaining an error value by subtracting the approximate data from the original image in the block to generate an error block, and a vector encoding for encoding the error block Processing and encoding processing for reversibly encoding the output of the vector quantization processing and the vector encoding processing to a computer. It is characterized by performing.
[0021]
According to a fifteenth aspect of the present invention, there is provided a block dividing process for dividing an entire image into blocks of nxm (n, m is a natural number of 2 or more) pixels, and 1 / d times and 1 / d times the image (D is an integer equal to or greater than 2), a sub-sampling process for generating a reduced image, a reduced image vector having each pixel of a block obtained by cutting out the reduced image as an element, and a reduced image vector from a set of reference vectors prepared in advance. , A vector quantization process of outputting a vector number for identifying the vector, a vector restoration process of restoring a vector that is original approximate data from the vector number, and a vector restoration process obtained by the vector restoration process. An enlarged data generation process for enlarging the approximate vector to the original size, and an error value is obtained by subtracting and subtracting the approximate vector from the original image in the block. Causing a computer to perform an error calculation process for generating an error block, a vector encoding process for encoding the error block, and an encoding process for losslessly encoding the outputs of the vector encoding process and the quantization process. It is characterized.
[0022]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an image compression apparatus according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the embodiment. In this figure, reference numeral 1 denotes a block divider that divides image data to be compressed into blocks of n × n (n is a natural number of 2 or more) pixels. Reference numeral 2 denotes a maximum change direction detector that measures the luminance change in the m direction (m is a natural number of 2 or more) in the block and selects the direction in which the luminance change amount that is the output is the largest. Reference numeral 20 denotes an approximation data generator that approximates a two-dimensional pixel value distribution in a block as a one-dimensional pixel value for each shift position in the maximum change direction output from the maximum change direction detector 2. A vector 3 is a vector having each pixel value of the one-dimensional pixel value data output from the approximate data generator 20 as an element, searching for a vector closest to the approximate pixel value from a set of reference vectors, and outputting its vector number. It is a quantizer.
[0023]
Reference numeral 4 denotes a vector restoring unit that restores a vector that is the original approximate data from the index number output from the vector quantizer 3. Reference numeral 5 denotes a plane data reconstructor that generates approximate plane data by filling a pixel value change, which is a one-dimensional change, in a maximum change direction with the same value in a direction perpendicular to the change direction. Reference numeral 6 denotes an error calculator that subtracts the restored image from the original image in the block to generate a remaining error block. Reference numeral 7 denotes a block encoder that performs encoding in block units different from vector encoding that encodes blocks of error values. The code 8 represents the maximum change direction output from the maximum change direction detector 2, the vector number output from the vector quantizer 3, and the encoded data output from the block encoder 7 by lossless / variable by entropy coding. This is an entropy encoder that performs long compression. Reference numeral 9 denotes a multiplexer that multiplexes the output of the entropy encoder 8 to generate compressed data.
[0024]
Next, only the change in the direction in which the pixel value changes most on the two-dimensional pixel value plane is approximated by vector quantization, and the error between the vector quantization approximate value and the original data is calculated by the second encoder. The operation of encoding will be described.
First, the block generator 1 divides an input image of 4j × 4k (j and k are natural numbers) pixels into j × k blocks of 4 × 4 pixels. FIG. 2 shows an example of a block obtained as a result. In the following description, the block data shown in FIG. 2 will be described as a specific example.
[0025]
Next, the maximum change direction detector 2 detects pixel value changes (referred to as undulating changes) in six types of directions (directions from 0 o'clock to 5 o'clock shown in FIG. 3) every 30 degrees from a vertical line passing through the center of the block. calculate. As shown in FIG. 4, the amount of undulation change in each direction is divided into areas (in this case, four areas) at a fixed distance from the center in the change direction with respect to a straight line for calculating the change direction, and the average pixel value for each of the four areas Is calculated, the absolute value (| L (i) -L (I + 1) |) of the difference between the average pixel values (L (1) to L (4)) of the adjacent areas is calculated, and the sum (| L ( 1) −L (2) | + | L (2) −L (3) | + | L (3) −L (4) |) is obtained as the amount of undulation change in each direction.
[0026]
In the case of 4 × 4 pixels, the area division corresponds to the directions of six types of vector approximation straight lines as shown in FIG. 5, and is divided into four blocks at regular intervals in a direction orthogonal to each vector approximation straight line. This is performed by preparing a method in advance as shown in FIG. In the example shown in FIG. 5, the areas indicated by A, B, C, and D correspond to four areas. If the block is 8 × 8 pixels, the block is divided into eight. When the pixel value shown in FIG. 2 is calculated by the dividing method shown in FIG. 5, the total value of the area B in the area at 1 o'clock is 49 + 78 + 81 + 93 = 301, and the change at 1 o'clock is | 377 / 4-301 / 4 | + | 301 / 4-283 / 4 | + | 283 / 4-149 / 4 | = 57. FIG. 6 shows the amount of undulation change obtained by the same calculation.
[0027]
Subsequently, the maximum change direction detector 2 selects a straight line having the largest total difference between adjacent pixel values among the four pixel values, and determines the direction Dir of the straight line and the average pixel value L of the cut surface by the straight line. (I) is obtained. Calculating with respect to the value of the block shown in the example, Dir = 2 because the direction of 2 o'clock has the largest change amount.
[0028]
Subsequently, the approximate data generator 20 selects an area division method of the block in the maximum change direction from the area division methods prepared in advance for each change direction as shown in FIG. An average value in the divided area is obtained based on the selected division method, and the average value is output as a value representative of the pixel value at each shift position in the change direction. In this example, since the maximum change direction is 2 o'clock, the average of each area in the division method for the 2 o'clock direction shown in FIG. 5 is calculated, and L (1) = 377/3 and L (2) = 301 / 4, L (3) = 283/4 and L (4) = 149/4. In this example, the approximate data generator 20 uses the same calculation method as the maximum change direction detector 2, but the maximum change direction detector 2 calculates the absolute value of the difference for each pixel adjacent in the change direction, and calculates the maximum change direction. The detector 2 may use a different calculation method such as calculating an average for each area.
[0029]
Next, the vector quantizer 3 sets the obtained L as a four-dimensional vector, performs vector quantization, and selects a vector number Idx closest to L (i) from a reference vector table (not shown). Here, the closest is the smallest value obtained by calculating the sum of the absolute value differences between L and the reference vector. Here, a calculation example when the reference vector table has values as shown in FIG. 7 will be described. For example, the absolute value difference sum of the vector number 32 is | 389 / 4-0 | + | 325 / 4-16 | + | 263 / 4-32 | + | 133 / 4-48 | = 211. The sum of the absolute value differences of y is | 389 / 4-96 | + | 325 / 4-80 | + | 263 / 4-64 | + | 133 / 4-32 | = 5.5. Here, assuming that the vector number y is the sum of the minimum absolute value differences, this y is selected as the vector number Idx.
[0030]
Next, the cross-section shape restorer 4 obtains a reference vector numbered with the vector number Idx from the vector table, and obtains its items L '(1)... L' (4). In this example, since the vector number y is selected, L '(1) = 96, L' (2) = 80, L '(3) = 64, and L' (4) = 32 are obtained.
[0031]
Next, the plane data restoration unit 5 writes L ′ (1), L ′ (2), L ′ (3), and L ′ (4) for the pixel at the position corresponding to the previously selected maximum change direction, respectively, Obtain a vector restoration image. As a result, a calculated intermediate value shown in FIG. 8A is obtained. In this example, as a method of restoring two-dimensional data from one-dimensional data, a NearestNeighbor method that determines a corresponding position and selects a value is used. However, a Bi-Linear method that performs primary interpolation according to a position shift is used. May be used.
[0032]
Next, the error calculator 6 obtains error block data by subtracting the previously obtained vector restored image from the original image block for each pixel at a corresponding position. That is, the intermediate value shown in FIG. 8A is subtracted from the pixel value shown in FIG. 2, and as a result, the value of the calculated intermediate value shown in FIG. 8B is obtained.
[0033]
Next, the block encoder 7 calculates, for each pixel of the error block data, quantized data that is 1 if 0 or more and 0 if less than 0, the number of positive data is NumP, and the average of positive data is AvrP. If the number of negative data is NumN and the average of the negative data is -AvrN, encoding is performed by BlockTruncationCoding centering on 0 by obtaining the amplitude index as (NumP × AvrP + NumN × AvrN) / (NumP + NumN). As a result, a quantization pattern value in which 16 pieces of quantization data (1 bit per pixel) indicating whether to add or subtract an amplitude index for each pixel, a BTC amplitude index (8 bits) D, and compression to 24 bits. Generate data. In this example, the quantization pattern value shown in FIG. 9 is obtained, and the amplitude index 7.5 (= 120/16) can be obtained.
[0034]
Note that the amplitude index obtained by the above calculation is equal to or less than a threshold (3: high sensitivity to 12: low sensitivity, which is set to about 6; usually, about 6) which determines the sensitivity for the detailed expression set in advance. The BTC code of the amplitude index is replaced with a code indicating “no BTC code”. As a result, it is possible to prevent the data from including subtle changes and noises that cannot be distinguished or conscious by humans, and to restore the image having the same appearance while reducing the data amount. In this example, since the amplitude index is 7 and exceeds 6, the previously obtained BTC encoding value is used as the encoding result.
[0035]
Next, the entropy encoder 8 entropy-compresses the four types of data (the maximum change direction Dir, the BTC amplitude index D, the quantization pattern value q, and the vector number Idx) obtained by the above-described block coding. Then, the multiplexer 9 multiplexes the obtained entropy-encoded data and outputs compressed data.
[0036]
Note that the block encoder 7 quantizes the block data using discrete cosine transform, BTC (Block Truncating Coding) method, wavelet transform, or the like, and then performs quantization to generate compressed data. May be. In particular, efficient compression can be performed by using a two-stage (1 bit) BTC transform for the block encoder 7 in the quantization stage. At this time, as shown in FIG. 10, the block encoder 7 obtains “a value for each block in which the quantitative tendency of the undulation of the error is calculated” and “a value for each pixel representing the distribution of the undulation”. A BTC encoder 71 that encodes the surface distribution of the error, and outputs the BTC encoded data as it is when the error tendency (= undulation amount) of the error received from the output of the BTC encoding is large. Is small, it is sufficient to provide an output determiner 72 for adding a code of "no BTC code data" assuming that even if the error portion is decoded, that portion is overlooked.
[0037]
Next, an operation of decoding an image compressed by the above-described operation will be described.
First, the maximum change direction Dir = 2, the BTC amplitude index D = 7, the vector number Idx = y, and the quantization pattern value q = 01011111111010100 (binary number) are restored from the data compressed by the entropy coding.
[0038]
Next, vector data is searched from the vector number, and as shown in FIG. 11, an approximate block is obtained by coloring pixel values sequentially in the maximum change direction. In this example, since the vector number is y, L (1 to 4) = 96, 80, 64, 32 is decoded, and the value to be painted from the value in the maximum change direction 2 is painted in the pattern at 2 o'clock. Since it is decided to divide, FIG. 8A can be restored. In this example, as a method of restoring two-dimensional data from one-dimensional data, a NearestNeighbor method that determines a corresponding position and selects a value is used. However, a Bi-Linear method that performs primary interpolation according to a position shift is used. May be used. However, the same restoring method as that of the plane data restorer 5 is used as a method of restoring plane data at the time of decoding.
[0039]
Next, decoding for the BTC encoding method is performed to obtain an error correction value. In this example, the correction amount block shown in FIG. 12 can be restored from the quantization pattern value q = 0101 1111 1110 0100 (binary number) and the amplitude index = 7. Then, with respect to the block data shown in FIG. 8A and the block data shown in FIG. 12, data at corresponding locations in the block are added to each other, and as a result, a decoded block is obtained. In this example, the block data shown in FIG. 13 is obtained.
[0040]
Next, image data is reconstructed by laying out the decoded results for each block to obtain a restored image.
[0041]
As a result of the above decoding, when the obtained decoding example (FIG. 14) is checked, the inclination of the entire pixel value (thick arrow in FIG. 14) and the sharp The edge change (thick line to double line in FIG. 14) is restored. In an actual image, there is almost no local variation such as 4 × 4 pixels other than the characteristic portion, and the image can be restored more faithfully than the image shown in this example. Since it is important to correctly understand the image when the decoded image is seen, the present method is a lossy compression method that can restore an image that can be correctly read when viewed by a human. .
[0042]
Next, another embodiment will be described with reference to FIG. FIG. 15 is a block diagram showing a configuration of another embodiment. The image compression apparatus according to this embodiment includes a block converter 11 that divides an entire image into blocks of n × m (n and m are natural numbers) pixels, an original image in the block as an n × m dimensional vector, and a reference vector (not shown). A vector closest to the original image vector is searched for from the set of tables, and a vector quantizer 12 that outputs a vector number indicating the vector, and a vector that is original approximate data is restored from the vector number output from the vector quantizer 12 A vector restoring unit 13, an error calculator 14 for subtracting a restored image obtained from the vector restoring unit 13 from the original image in the block to generate a remaining error block, and a block of an error value obtained from the error calculator 14. A block encoder 15 for performing block-based coding different from vector coding for coding It comprises an entropy encoder 16 for performing lossless / variable-length compression of output data from the child encoder 12 and the block encoder 15 by entropy encoding, and a multiplexer 17 for multiplexing the entropy encoded data. In this image compression apparatus, only a vector of a rough expression is recorded in a reference vector table referred to by the vector quantizer 12, and the number is smaller than the vector quantizer 12 required to compress a target image quality. It is characterized in that a (less than 1/4) vector table is prepared.
[0043]
Next, an image compression apparatus according to another embodiment will be described with reference to FIG. FIG. 15 is a block diagram showing a configuration of another embodiment. The difference between the image compression device in this embodiment and the image compression device shown in FIG. 1 is that the image compression device shown in FIG. 1 converts data as a line instead of a surface into a vector in order to reduce the number of dimensions (number of parameters) of the vector. Although the quantization is performed, the image compression apparatus shown in FIG. 16 performs sub-sampling on the surface data to reduce the number of dimensions of the vector using data in which the number of pixels in the vertical and horizontal directions is reduced. The image compression apparatus according to this embodiment includes a block generator 21 that divides the entire image into blocks of nxm (n and m are natural numbers) pixels, and a thinning process or a process that reduces the image data to a 1 / d size. A sub-sampler 22 that performs reduction and generates data 1 / d times vertically and 1 / d times horizontally (d is an integer of 2 or more) and a vector having each pixel of a block obtained by cutting out the reduced image as an element , A vector closest to the reduced image vector from the set of reference vectors, and a vector quantizer 23 that outputs a vector number indicating the vector, and a vector that is original approximate data based on the vector number output from the vector quantizer 23. And an expanded data generator 25 for expanding the approximate vector obtained from the vector recoverer 24 to the original size. An error calculator 26 for subtracting the restored image from the enlarged block generator from the original image in the block to generate a remaining error block, and a block different from the vector coding for coding the block of the error value from the error calculator 26 A block encoder 27 that performs unit encoding, an entropy encoder 28 that performs lossless and variable-length compression of output data of the vector quantizer 23 and the block encoder 27 by entropy encoding, and an entropy encoded data And a multiplexer 17 for multiplexing.
[0044]
Next, comparison results between the image compression method according to the present invention and the image compression method according to the related art will be described.
<Calculation amount>
Compared to compression using only vector quantization, the present invention prepares only a small vector table omitting the vector table taking into account changes in small parts and refers to it, so that the processing time that takes the most time The amount is reduced to a fraction, and the feature of low compression speed, which has been a problem in vector quantization, can be solved. For example, consider a vector coding having a codebook of 2048 vectors with a block size of 4 × 4 pixels, the target is from 16 to 4 parameters, and the change of the codebook itself in the x and y directions is also in the x direction. , The number of types is reduced to at least a half or less, so that the calculation amount can be reduced to 1/8 or less.
[0045]
<Image quality>
In the present invention, the distribution of pixel value fluctuations in a direction orthogonal to a large change that cannot be reproduced by single-direction vector quantization, and a portion including a small spatial change, are obtained from block data approximated by rough vector quantization. , And compresses the error by an encoding method that requires less calculation than another vector quantization. At the time of restoration of the encoded data, since an image equivalent to an image in a code book restored with data of two-dimensional vector encoding can be decoded in each block, the same image is collected and decoded. It will have image quality.
As shown in FIGS. 17A and 17B, the density change in the direction of the arrow having the maximum inclination is encoded / decoded, and the decoding is performed in such a manner that the same color is applied in the direction perpendicular to the arrow, and the BTC encoding is performed. By not adding data, the same image quality as the original image can be obtained.
Also, as shown in FIG. 17C, the density change is encoded and decoded in the direction of the arrow, which is the maximum slope, and the decoding is performed by painting the same color in the direction orthogonal to the arrow. Decode a correction value distribution having a correction value that makes the part shown in (1) darker by a certain amount (difference between white part and dark part) from the BTC code (no error because it is binary information) and sum the above two values Can obtain the same image quality as the original image.
[0046]
In this manner, solid color or gradation (equivalent to FIG. 17A) or regular color unevenness as shown in FIG. 17B, which is easily noticeable locally by humans, and their boundary (FIG. In c)), even if this method is used, an image equivalent to two-dimensional vector quantization can be restored. Further, the vector quantization of the two-dimensional pixels itself includes data having the above-described characteristics in many of the vector data prepared in advance in the vector table as a local form of an image that is understood by humans in a natural image. By obtaining numbers that refer to these, the data is compressed as data expressing only those parts that are easily noticed by humans. Compared with the vector quantization method for such a natural image, even if this method is used, an image for each block is restored at the same level for the same feature. In this way, just as the vector quantization method can achieve the same image quality as the original image in the range that humans can be aware of when restoring, this method also reduces the original image to the extent that humans can be aware of features that mostly occupy natural images. The same image quality as that of the image can be obtained.
[0047]
<Comparison with BTC coding>
The rough structure in the block is compressed by vector quantization, and the block to which the correction is performed and the BTC code is added is limited to a part having a complicated structure in the block, and a part having a complicated structure such as a natural image is In the case of an image having only a small number of bits, the code amount is reduced as compared with the BTC coding. For example, only the vector quantization part is 11 bits + 4 bits in the direction (because the method of painting does not change even if it is finer than 16 steps which are more than 12 pixels on the outer periphery which are 4 × 4 blocks) + the presence or absence of BTC 1 bit, the code amount of BTC Is 32 bits (center color, undulation amount, undulation distribution 16 bits). When BTC is used on the entire surface, each block is 32 bits. In this method, a portion with BTC coding correction can be expressed by 16 + 32 bits, and a portion without correction can be expressed by 16 bits. Thus, when the complexity is less than 50% and the encoding is performed by the present method, the compression ratio is better than BTC. Also, in a normal natural image, a complicated portion is about 10%, and even if it is large, most of it is within about 40%. For this reason, as a coding apparatus for general use of natural pictures (without parameter adjustment), the compression ratio is better than that of BTC. In addition, this method has the same image quality as vector coding, which is said to have the same image quality and better compression rate than BTC. It becomes.
[0048]
<Comparison of image quality of images with edges and complex patterns such as characters with conventional vector quantization>
With regard to edges when characters that cannot be accurately represented by vector quantization are captured as an image, the BTC method is used to block-code error value blocks, and extreme undulations specific to edges are applied to each pixel. It can be expressed by an expression that switches between concave and convex. At this time, the function necessary to approximate the error as a model that reproduces the details of the original image is represented by a minimum amount of information such as two-stage quantization. On the other hand, in order to reproduce characters of all thicknesses in normal vector quantization, it is necessary to prepare a pattern of 2 to the 16th power in which the binary values of the shades are exchanged for all pixels. It is not practical considering the amount of calculation on the order of the 16th power. As described above, the image quality of an image including a character can be improved by using the present method as compared with the vector quantization that cannot be expressed using the vectors corresponding to all the character patterns.
[0049]
A program for realizing the function of each processing unit in FIGS. 1, 10, 15, and 16 is recorded on a computer-readable recording medium, and the program recorded on this recording medium is read by a computer system and executed. By doing so, the image compression processing may be performed. Here, the “computer system” includes an OS and hardware such as peripheral devices. The “computer system” also includes a WWW system provided with a homepage providing environment (or display environment). The “computer-readable recording medium” refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, and a CD-ROM, and a storage device such as a hard disk built in a computer system. Further, the “computer-readable recording medium” refers to a volatile memory (RAM) inside a computer system serving as a server or a client when a program is transmitted through a network such as the Internet or a communication line such as a telephone line. In addition, programs that hold programs for a certain period of time are also included.
[0050]
Further, the above program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.
[0051]
【The invention's effect】
As described above, according to the present invention, the configuration of the reference vector table and the vector quantizer reduces the number of dimensions of data to be subjected to vector quantization from the pixel area to the block length. That is, it is possible to provide an image compression apparatus that can reduce the number of reference vectors to be compared and reduce the amount of comparison per vector. This device reproduces the direction of the largest change by vector quantization, the amount of change is smaller than that, and the small change is realized by the second quantization. Can be assigned to vector quantization, and the finer portion can be assigned to other encoding methods. As a result, it is possible to obtain an effect that the compression can be performed without reducing the image quality as compared with the case where the number of reference vectors in the vector table is blindly reduced for speeding up.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an embodiment of the present invention.
FIG. 2 is an explanatory diagram illustrating an example of block data.
FIG. 3 is an explanatory diagram showing a maximum change direction.
FIG. 4 is an explanatory diagram showing a method of calculating the amount of change in relief.
FIG. 5 is an explanatory diagram showing a method of area division.
FIG. 6 is an explanatory diagram showing an example of an undulation change amount.
FIG. 7 is an explanatory diagram illustrating an example of a reference vector table.
FIG. 8 is an explanatory diagram illustrating an example of an intermediate calculation value.
FIG. 9 is an explanatory diagram illustrating an example of a quantization pattern.
FIG. 10 is a block diagram showing a modification of the device.
FIG. 11 is an explanatory diagram showing an example of plane data to be restored.
FIG. 12 is an explanatory diagram illustrating an example of a correction amount block.
FIG. 13 is an explanatory diagram showing an example of a decoding result.
FIG. 14 is an explanatory diagram for confirming a restoration result.
FIG. 15 is a block diagram illustrating a configuration according to another embodiment.
FIG. 16 is a block diagram illustrating a configuration according to another embodiment.
FIG. 17 is an explanatory diagram for describing effects.
[Explanation of symbols]
1 ... Block generator
2. Maximum change direction detector
20 ... Approximate data generator
3 ... Vector quantizer
4 ・ ・ ・ Cross-section shape restorer
5 Surface data restorer
6 ... Error calculator
7 ... Block encoder
71 ... BTC encoder
72 ··· Output judgment device
8 ... Entropy encoder
9 Multiplexer
11 ・ ・ ・ Block generator
12 ... vector quantizer
13 ... vector reconstructor
14 ・ ・ ・ Error calculator
15 ... Block encoder
16 ... Entropy encoder
17 ・ ・ ・ Multiplexer
21 ... Block generator
22 ... Sub-sampler
23 ... vector quantizer
24 ・ ・ ・ Vector restorer
25 ... Enlarged block generator
26 ... Error calculator
27 ... Block encoder
28 ・ ・ ・ Entropy encoder
29 ・ ・ ・ Multiplexer

Claims (15)

画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割手段と、
m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出手段と、
前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出手段が出力した方向のみの一次元の輝度変化に近似する近似データ生成手段と、
前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素値変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化手段と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、
前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し、近似面データとする面データ複元手段と、
前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算手段と、
前記ブロック内に分布する誤差値を符号化するブロック符号化手段と
を備えたことを特徴とする画像圧縮装置。
Block dividing means for dividing the entire image into blocks of n × n (n is a natural number of 2 or more) pixels;
a maximum change direction detecting means for calculating a change amount of luminance in the block in each of m (m is a natural number of 2 or more) directions and selecting a direction in which the change amount is the largest;
Approximation data generating means for approximating a two-dimensional luminance change of a pixel in the block to a one-dimensional luminance change only in the direction output by the maximum change direction detection means,
The approximate one-dimensional data is defined as a vector having pixel values for each shift from the block center as an element, and a vector closest to the shape of the pixel value change is searched for from a set of reference vectors prepared in advance, and this vector is identified. Vector quantization means for outputting a vector number;
Vector restoration means for restoring a vector that is the original approximate data from the vector number,
Surface data duplication means for generating restoration data in a direction perpendicular to the change direction from vector data which is a one-dimensional pixel value change in the maximum change direction, and as approximate surface data,
Error value calculation means for calculating an error value by subtracting the approximate surface data from the original image in the block, and calculating an error value of each pixel in the block,
An image compression apparatus comprising: a block encoding unit that encodes an error value distributed in the block.
前記最大変化方向検出手段から出力される最大変化方向、ベクトル量子化手段の出力及びブロック符合化手段の出力をエントロピー符号化する符合化手段をさらに備えたことを特徴とする請求項1に記載の画像圧縮装置。The encoding apparatus according to claim 1, further comprising encoding means for entropy encoding the maximum change direction output from the maximum change direction detection means, the output of the vector quantization means, and the output of the block coding means. Image compression device. 前記ブロック符号化手段は、
誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化手段と、
前記BTC符号化手段の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化手段の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定手段と
からなることを特徴とする請求項1に記載の画像圧縮装置。
The block encoding means includes:
BTC encoding means for encoding the surface distribution of the error by obtaining a value for each block that has calculated the quantitative tendency of the undulation of the error and a value for each pixel representing the distribution of the undulation,
The output of the BTC encoding means is output as it is when the quantitative tendency of the error is large in response to the output of the BTC encoding means, and the code output indicating that there is no BTC code data is output if the undulation is small. 2. The image compression device according to claim 1, further comprising a determination unit.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割手段と、
前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化手段と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、
前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算手段と、
前記誤差ブロックを符号化するベクトル符号化手段と、
前記ベクトル量子化手段および前記ベクトル符号化手段の出力を可逆符号化する符号化手段と
を備えたことを特徴とする画像圧縮装置。
Block dividing means for dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
The original image in the block is set to an n × m-dimensional vector, a vector closest to the original image vector is searched for from a set of reference vectors previously expressed only with a rough expression vector, and a vector for outputting a vector number indicating the vector is output. Quantization means;
Vector restoration means for restoring a vector that is the original approximate data from the vector number,
Error calculation means for obtaining an error value by subtracting the approximate data from the original image in the block, to generate an error block,
Vector encoding means for encoding the error block,
An image compression apparatus comprising: a vector quantization unit; and an encoding unit that losslessly encodes an output of the vector encoding unit.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割手段と、
前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル手段と、
前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化手段と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元手段と、
前記ベクトル復元手段から得られた近似ベクトルを元のサイズに拡大する拡大データ生成手段と、
前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算手段と、
前記誤差ブロックを符号化するベクトル符号化手段と、
前記ベクトル符号化手段および前記量子化手段の出力を可逆符号化する符号化手段と
を備えたことを特徴とする画像圧縮装置。
Block dividing means for dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
Sub-sampling means for generating a reduced image of 1 / d times and 1 / d times (d is an integer of 2 or more) from the image;
A vector quantum for outputting a vector number for identifying a vector closest to the reduced image vector from a set of reference vectors prepared in advance as a reduced image vector having each pixel of a block obtained by cutting the reduced image as an element, and outputting a vector number for identifying the vector Means,
Vector restoration means for restoring a vector that is the original approximate data from the vector number,
Enlarged data generating means for expanding the approximate vector obtained from the vector restoring means to the original size,
Error calculation means for obtaining an error value by subtracting and subtracting an approximate vector from the original image in the block, and generating an error block,
Vector encoding means for encoding the error block,
An image compression apparatus comprising: an encoding unit configured to reversibly encode an output of the vector encoding unit and the quantization unit.
画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割過程と、
m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出過程と、
前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出過程で得られる方向のみの一次元の輝度変化に近似する近似データ生成過程と、
前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素値変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化過程と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、
前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し近似面データとする面データ復元過程と、
前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算過程と、
前記ブロック内に分布する誤差値を符号化するブロック符号化過程と
を有することを特徴とする画像圧縮方法。
A block division process of dividing the entire image into blocks of n × n (n is a natural number of 2 or more) pixels;
a maximum change direction detecting step of calculating a change amount of luminance in the block in each of m (m is a natural number of 2 or more) directions and selecting a direction having the largest change amount;
An approximate data generation step of approximating a two-dimensional luminance change of a pixel in the block to a one-dimensional luminance change only in a direction obtained in the maximum change direction detection step;
The approximate one-dimensional data is defined as a vector having pixel values for each shift from the block center as an element, and a vector closest to the shape of the pixel value change is searched for from a set of reference vectors prepared in advance, and this vector is identified. A vector quantization process for outputting vector numbers,
A vector restoration process of restoring a vector that is the original approximate data from the vector number,
Surface data restoration process of generating restoration data in a direction perpendicular to the change direction from vector data that is a one-dimensional pixel value change in the maximum change direction and setting it as approximate surface data,
An error value calculating step of calculating an error value by subtracting the approximate surface data from the original image in the block, and calculating an error value of each pixel in the block,
A block encoding step of encoding an error value distributed in the block.
前記最大変化方向検出過程で得られる最大変化方向、ベクトル量子化過程の出力及びブロック符合化過程の出力をエントロピー符号化する符合化過程をさらに有することを特徴とする請求項6に記載の画像圧縮方法。7. The image compression apparatus according to claim 6, further comprising a coding step of entropy coding the maximum change direction obtained in the maximum change direction detection step, the output of the vector quantization step, and the output of the block coding step. Method. 前記ブロック符号化過程は、
誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化過程と、
前記BTC符号化過程の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化過程の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定過程と
からなることを特徴とする請求項6に記載の画像圧縮方法。
The block encoding process includes:
A BTC encoding process of encoding the surface distribution of the error by obtaining a value for each block that has calculated the quantitative tendency of the undulation of the error and a value for each pixel representing the distribution of the undulation;
When the output of the BTC encoding process receives the output and the error has a large quantitative tendency, the output of the BTC encoding process is output as it is, and when the amount of undulation is small, a code output indicating no BTC code data is output. 7. The image compression method according to claim 6, comprising a determining step.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割過程と、
前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化過程と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、
前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算過程と、
前記誤差ブロックを符号化するベクトル符号化過程と、
前記ベクトル量子化過程および前記ベクトル符号化過程の出力を可逆符号化する符号化過程と
を備えたことを特徴とする画像圧縮方法。
A block division process of dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
The original image in the block is set to an n × m-dimensional vector, a vector closest to the original image vector is searched for from a set of reference vectors previously expressed only with a rough expression vector, and a vector for outputting a vector number indicating the vector is output. The quantization process,
A vector restoration process of restoring a vector that is the original approximate data from the vector number,
Calculating an error value by subtracting the approximate data from the original image in the block, an error calculation step of generating an error block,
A vector encoding process for encoding the error block;
An image compression method, comprising: the vector quantization step; and an encoding step of losslessly encoding an output of the vector encoding step.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割過程と、
前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル過程と、
前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化過程と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元過程と、
前記ベクトル復元過程から得られた近似ベクトルを元のサイズに拡大する拡大データ生成過程と、
前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算過程と、
前記誤差ブロックを符号化するベクトル符号化過程と、
前記ベクトル符号化過程および前記量子化過程の出力を可逆符号化する符号化過程と
を備えたことを特徴とする画像圧縮方法。
A block division process of dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
A sub-sampling process of generating a reduced image of 1 / d times and 1 / d times (d is an integer of 2 or more) from the image;
A vector quantum for outputting a vector number for identifying a vector closest to the reduced image vector from a set of reference vectors prepared in advance as a reduced image vector having each pixel of a block obtained by cutting the reduced image as an element, and outputting a vector number for identifying the vector Process and
A vector restoration process of restoring a vector that is the original approximate data from the vector number,
An enlarged data generation step of expanding the approximate vector obtained from the vector restoration step to the original size,
Calculating an error value by subtracting and subtracting an approximate vector from an original image in the block, and an error calculation process of generating an error block;
A vector encoding process for encoding the error block;
An image compression method, comprising: an encoding step of reversibly encoding an output of the vector encoding step and the quantization step.
画像全体をn×n(nは2以上の自然数)画素のブロックに分割するブロック分割処理と、
m(mは2以上の自然数)方向にそれぞれ前記ブロック中の輝度の変化量を計算し、該変化量が最も大きい方向を選択する最大変化方向検出処理と、
前記ブロック内の画素の二次元の輝度変化を前記最大変化方向検出処理の出力した方向のみの一次元の輝度変化に近似する近似データ生成処理と、
前記近似一次元データをブロック中心からの偏移ごとの画素値を要素としたベクトルとし、予め用意された参照ベクトルの組から前記画素破変化の形状に最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化処理と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、
前記最大変化方向の一次元の画素値変化であるベクトルデータから変化方向と垂直な方向に復元データを生成し、近似面データとする面データ復元処理と、
前記ブロック内の元画像から前記近似面データを減算することにより誤差値を求め、ブロック内の各画素の誤差値を計算する誤差値計算処理と、
前記ブロック内に分布する誤差値を符号化するブロック符号化処理と
をコンピュータに行わせることを特徴とする画像圧縮プログラム。
A block division process of dividing the entire image into blocks of n × n (n is a natural number of 2 or more) pixels;
a maximum change direction detection process of calculating a change amount of luminance in the block in each of m (m is a natural number of 2 or more) directions and selecting a direction having the largest change amount;
Approximate data generation processing that approximates a two-dimensional luminance change of a pixel in the block to a one-dimensional luminance change only in the direction output by the maximum change direction detection processing;
The approximate one-dimensional data is defined as a vector having pixel values for each deviation from the block center as an element, and a vector closest to the shape of the pixel breaking change is searched for from a set of reference vectors prepared in advance, and this vector is identified. Vector quantization processing for outputting vector numbers,
Vector restoration processing for restoring a vector that is original approximate data from the vector number,
Surface data restoration processing that generates restoration data in a direction perpendicular to the change direction from vector data that is a one-dimensional pixel value change in the maximum change direction, and sets it as approximate surface data;
Calculating an error value by subtracting the approximate surface data from the original image in the block, and calculating an error value of each pixel in the block;
An image compression program for causing a computer to perform a block encoding process for encoding an error value distributed in the block.
前記最大変化方向検出処理で得られる最大変化方向、ベクトル量子化処理の出力及びブロック符合化処理の出力をエントロピー符号化する符合化処理をさらにコンピュータに行わせることを特徴とする請求項11に記載の画像圧縮プログラム。12. The computer according to claim 11, further comprising an encoding process for entropy encoding the maximum change direction obtained in the maximum change direction detection process, the output of the vector quantization process, and the output of the block encoding process. Image compression program. 前記ブロック符号化処理は、
誤差の起伏の量的な傾向を計算したブロック毎の値と起伏の分布を表す画素毎の値を求めることにより誤差の面分布の符号化を行うBTC符号化処理と、
前記BTC符号化処理の出力を受けて誤差の量的な傾向が大きいときには、前記BTC符号化処理の出力をそのまま出力し、起伏量が小さい場合には、BTC符号データ無しを示すコード出力する出力判定処理と
からなることを特徴とする請求項11に記載の画像圧縮プログラム。
The block encoding process includes:
A BTC encoding process for encoding a surface distribution of the error by obtaining a value for each block that calculates a quantitative tendency of the undulation of the error and a value for each pixel representing the distribution of the undulation;
The output of the BTC encoding process is output as it is when the quantitative tendency of the error is large in response to the output of the BTC encoding process, and the code output indicating no BTC code data is output when the undulation is small. 12. The image compression program according to claim 11, comprising a determination process.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割処理と、
前記ブロック内の元画像をn×m次元ベクトルとし、予め大まかな表現のベクトルのみで表現された参照ベクトルの組から元画像ベクトルに最も近いベクトルを探し出し、このベクトルを示すベクトル番号を出力するベクトル量子化処理と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、
前記ブロック内の元画像から前記近似データを減算することにより誤差値を求め、誤差ブロックを生成する誤差計算処理と、
前記誤差ブロックを符号化するベクトル符号化処理と、
前記ベクトル量子化処理および前記ベクトル符号化処理の出力を可逆符号化する符号化処理と
をコンピュータに行わせることを特徴とする画像圧縮プログラム。
A block division process of dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
The original image in the block is set to an n × m-dimensional vector, a vector closest to the original image vector is searched for from a set of reference vectors previously expressed only with a rough expression vector, and a vector for outputting a vector number indicating the vector is output. Quantization processing,
Vector restoration processing for restoring a vector that is original approximate data from the vector number,
Calculating an error value by subtracting the approximate data from the original image in the block, an error calculation process for generating an error block,
A vector encoding process for encoding the error block;
An image compression program for causing a computer to perform a vector quantization process and an encoding process of losslessly encoding an output of the vector encoding process.
画像全体をn×m(n、mは2以上の自然数)画素のブロックに分割するブロック分割処理と、
前記画像から縦1/d倍、横1/d倍(dは2以上の整数)の縮小画像を生成するサブサンプル処理と、
前記縮小画像を切り出したブロックの各画素を要素とする縮小画像ベクトルとし、予め用意された参照ベクトルの組から縮小画像ベクトルに最も近いベクトルを探し出し、このベクトルを識別するベクトル番号を出力するベクトル量子化処理と、
前記ベクトル番号から元の近似データであるベクトルを復元するベクトル復元処理と、
前記ベクトル復元処理から得られた近似ベクトルを元のサイズに拡大する拡大データ生成処理と、
前記ブロック内の元画像から近似ベクトルを減算減算することにより誤差値を求め、誤差ブロックを生成する誤差計算処理と、
前記誤差ブロックを符号化するベクトル符号化処理と、
前記ベクトル符号化処理および前記量子化処理の出力を可逆符号化する符号化処理と
をコンピュータに行わせることを特徴とする画像圧縮プログラム。
A block division process of dividing the entire image into blocks of n × m (n, m is a natural number of 2 or more) pixels;
Sub-sampling processing for generating a reduced image of 1 / d times and 1 / d times (d is an integer of 2 or more) from the image;
A vector quantum for outputting a vector number for identifying a vector closest to the reduced image vector from a set of reference vectors prepared in advance as a reduced image vector having each pixel of a block obtained by cutting the reduced image as an element, and outputting a vector number for identifying the vector Conversion processing,
Vector restoration processing for restoring a vector that is original approximate data from the vector number,
Enlarged data generation processing for expanding the approximate vector obtained from the vector restoration processing to the original size;
Calculating an error value by subtracting and subtracting an approximate vector from the original image in the block, an error calculation process of generating an error block;
A vector encoding process for encoding the error block;
An image compression program for causing a computer to perform a vector encoding process and an encoding process of losslessly encoding an output of the quantization process.
JP2003103203A 2003-04-07 2003-04-07 Image compression apparatus, image compression method, and image compression program Pending JP2004312379A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003103203A JP2004312379A (en) 2003-04-07 2003-04-07 Image compression apparatus, image compression method, and image compression program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003103203A JP2004312379A (en) 2003-04-07 2003-04-07 Image compression apparatus, image compression method, and image compression program

Publications (1)

Publication Number Publication Date
JP2004312379A true JP2004312379A (en) 2004-11-04

Family

ID=33466424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003103203A Pending JP2004312379A (en) 2003-04-07 2003-04-07 Image compression apparatus, image compression method, and image compression program

Country Status (1)

Country Link
JP (1) JP2004312379A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008017304A (en) * 2006-07-07 2008-01-24 Nippon Hoso Kyokai <Nhk> Image coding device, image decoding device, image coding method, and image coding program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008017304A (en) * 2006-07-07 2008-01-24 Nippon Hoso Kyokai <Nhk> Image coding device, image decoding device, image coding method, and image coding program

Similar Documents

Publication Publication Date Title
Li et al. Progressive coding of 3-D graphic models
Deng et al. Content-based image compression for arbitrary-resolution display devices
JP2015504545A (en) Predictive position coding
RU2567988C2 (en) Encoder, method of encoding data, decoder, method of decoding data, system for transmitting data, method of transmitting data and programme product
US20230237705A1 (en) Methods for level partition of point cloud, and decoder
JP2023521675A (en) Method and Apparatus for HAAR-Based Point Cloud Coding
JP2006502604A (en) Image compression method for arbitrarily shaped objects
KR20010053286A (en) Image coding/decoding method and recorded medium on which program is recorded
US20030081852A1 (en) Encoding method and arrangement
Perfilieva et al. The F-transform preprocessing for JPEG strong compression of high-resolution images
John Discrete cosine transform in JPEG compression
JP2885433B2 (en) Image processing method and apparatus
JP2004312379A (en) Image compression apparatus, image compression method, and image compression program
KR20170098163A (en) Image encoding and decoding methods, encoder and decoder using the methods
JP4241517B2 (en) Image encoding apparatus and image decoding apparatus
WO2024193487A1 (en) Methods and apparatus for encoding and decoding displacement information of three-dimensional grid, and terminal
TW463135B (en) Method for efficiently encoding three-dimensional graphics models
WO2023179706A1 (en) Encoding method, decoding method, and terminal
Siddeq Novel methods of image compression for 3D reconstruction
JP2732691B2 (en) Image compression device and image restoration device
Hakami et al. Reversible Color Compression Transform for Big Data System Using Human Visual System
Kolarov et al. Wavelet compression for 3D and higher-dimensional objects
Smolic et al. A survey on coding of static and dynamic 3D meshes
Krivokuća et al. Zerotree Coding of Subdivision Wavelet Coefficients in Dynamic Time-Varying Meshes
Singh et al. COMPARATIVE STUDIES OF VARIOUS TECHNIQUES FOR IMAGE COMPRESSION ALGORITHM