JP3421463B2 - 画像圧縮装置の量子化テーブル生成装置 - Google Patents

画像圧縮装置の量子化テーブル生成装置

Info

Publication number
JP3421463B2
JP3421463B2 JP04133395A JP4133395A JP3421463B2 JP 3421463 B2 JP3421463 B2 JP 3421463B2 JP 04133395 A JP04133395 A JP 04133395A JP 4133395 A JP4133395 A JP 4133395A JP 3421463 B2 JP3421463 B2 JP 3421463B2
Authority
JP
Japan
Prior art keywords
category
blocks
spatial frequency
scan
data
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.)
Expired - Fee Related
Application number
JP04133395A
Other languages
English (en)
Other versions
JPH08214170A (ja
Inventor
紳聡 阿部
Original Assignee
ペンタックス株式会社
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 ペンタックス株式会社 filed Critical ペンタックス株式会社
Priority to JP04133395A priority Critical patent/JP3421463B2/ja
Priority to US08/598,207 priority patent/US5937098A/en
Publication of JPH08214170A publication Critical patent/JPH08214170A/ja
Application granted granted Critical
Publication of JP3421463B2 publication Critical patent/JP3421463B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、カラー静止画像をJP
EGアルゴリズムに準拠して情報圧縮する画像圧縮装置
に関する。
【0002】
【従来の技術】高解像度画像を符号化して通信伝送路を
介して情報の授受を行う標準化アルゴリズムが、JPE
G(Joint Photographic Expert Group)から勧告されて
いる。このJPEGから勧告されているアルゴリズム、
すなわちJPEGアルゴリズムのベースライン・プロセ
スでは、大幅な情報圧縮を行うため、初めに2次元DC
T変換によって原画像データを空間周波数軸上の成分に
分解し、そして、その空間周波数軸上で表された各デー
タを量子化テーブルを用いて量子化し、さらに量子化し
た各データを符号化する。JPEGでは、この符号化の
ため、所定のハフマンテーブルを推奨している。
【0003】従来の画像圧縮装置では、通常、デフォル
トの量子化テーブルが使用され、必要に応じて、量子化
テーブルの各量子化係数に単一の係数を乗じることによ
って修正された量子化テーブルが作成されている。
【0004】
【発明が解決しようとする課題】このように修正量子化
テーブルは、各空間周波数に対して一律に係数を乗じる
ことによって得られているため、個々の画像の特質(例
えば、低周波数成分に比して高周波数成分が多い等の性
質)に応じた量子化を行うことができず、画質を落とす
ことなく画像データを圧縮しているとは言い難かった。
【0005】本発明は、以上のような問題点に鑑み、個
々の画像の特質に応じた画像圧縮を達成することができ
る画像圧縮装置の量子化テーブル生成装置を提供するこ
とを目的としている。
【0006】
【課題を解決するための手段】本発明は、原画像データ
を複数のブロックに分割し、直交変換を施して空間周波
数毎に直交変換係数を求め、直交変換係数を所定の量子
化係数から成る量子化テーブルにより量子化して求めた
量子化直交変換係数を、空間周波数に関して1次元配列
データとして並びかえた後、量子化直交変換係数を所定
のデ−タ量を有するカテゴリに分類するとともに、0の
量子化直交変換係数が連続する数に基づいてラン長を求
めて符号化を行ない符号化データを求める画像圧縮装置
において、空間周波数毎に符号化データのデータ量の目
標値を設定する手段と、第1の空間周波数の符号化デー
タの統計量に基づいて、1次元配列データにおいて第1
の空間周波数に隣接する第2の空間周波数の符号化デー
タのデータ量を予測する手段と、この予測された第2の
空間周波数のデータ量が目標値以下になるように、その
空間周波数に対応した量子化係数を定める量子化係数演
算手段とを備え、予測手段は、第1の空間周波数におけ
る0の量子化直交変換係数に対応するカテゴリ「0」の
ブロック数を用いて、第2の空間周波数の符号化データ
のデータ量を予測することを特徴とする画像圧縮装置の
量子化テーブル生成装置である
【0007】
【実施例】以下図示実施例に基づいて本発明を説明す
る。図1は本発明の一実施例に係る画像圧縮装置のブロ
ック図である。
【0008】被写体Sから到来した光は集光レンズ11
によって集光され、被写体像がCCD(固体撮像素子)
12の受光面上に結像される。CCD12の受光面には
多数の光電変換素子が配設され、また光電変換素子の上
面には、例えばR、G、Bの各色フィルタ要素から成る
カラーフィルタが設けられている。各光電変換素子はひ
とつの画素に対応している。被写体像は、各光電変換素
子によって所定の色に対応した電気信号に変換され、A
/D変換器13に入力される。なお、図1の構成ではC
CD12が1枚のみであるが、2枚以上のCCDが設け
られた構成でもよい。
【0009】A/D変換器13においてA/D変換され
た信号は、図示しない信号処理回路によって輝度信号Y
と色差信号Cb、Crとに変換され、画像メモリ14に
入力される。画像メモリ14は輝度信号Yおよび色差信
号Cb、Crをそれぞれ格納するために、相互に独立し
たメモリ領域に分割されており、各メモリ領域は1画像
分の記憶容量を有している。
【0010】画像メモリ14から読み出された輝度信号
Yおよび色差信号Cb、Crは、データ圧縮処理のた
め、DCT処理回路21に入力される。DCT処理回路
21では、輝度信号Y等の原画像データが離散コサイン
変換(以下DCTという)される。すなわち本実施例で
は、原画像データの直交変換としてDCT変換が利用さ
れる。なお、図1ではDCT処理回路21が1つの処理
回路として示されているが、実際には輝度信号Yおよび
色差信号Cb、Cr毎に独立したDCT処理回路が設け
られている。
【0011】画像圧縮装置は、DCT処理回路21、量
子化処理回路22、ハフマン符号化処理回路23、空間
周波数データ量設定部24、量子化テーブル生成部25
等から成る。DCT処理回路21、量子化処理回路22
およびハフマン符号化処理回路23では、輝度信号Y等
の画像データは1画面に関して複数のブロックに分割さ
れ、ブロック単位で処理される。なお各ブロックは8×
8個の画素データから構成される。
【0012】DCT処理回路21において求められた輝
度信号Yおよび色差信号Cb、CrのDCT係数は、そ
れぞれ量子化処理回路22に入力される。量子化処理回
路22も、DCT処理回路21と同様、各信号毎に設け
られている。量子化処理回路22に入力された輝度信号
Y、色差信号Cb、CrのDCT係数は、8×8個の量
子化係数により構成される量子化テーブルQ1によっ
て、それぞれ量子化される。この量子化は線形量子化で
あり、すなわち各DCT係数は対応する量子化係数によ
って割算される。
【0013】なお本実施例においては、JPEGアルゴ
リズムに準拠して、輝度信号YのDCT係数を量子化す
る量子化テーブルQ1と、色差信号Cb、CrのDCT
係数を量子化する量子化テーブルQ1とは異なっている
が、各信号において同一の量子化テーブルQ1を用いて
もよい。これらの量子化テーブルQ1は、後述するよう
に、空間周波数データ量設定部24と量子化テーブル生
成部25により、原画像データの空間周波数分布等の性
質に応じた最適なものが生成される。
【0014】量子化処理回路22から出力された輝度信
号Y、色差信号Cb、Crの量子化DCT係数はハフマ
ン符号化処理回路23に入力され、ハフマンテーブルQ
2を用い、所定のアルゴリズムによってハフマン符号化
される。
【0015】ハフマン符号化により得られた画像信号
(圧縮画像データ)は、ICメモリカード等の記録媒体
に記録される。
【0016】図2は、一例として、8×8画素のブロッ
クの画像データP(Y)xy と、DCT係数S(Y)uv と、量
子化DCT係数R(Y)uv と、量子化テーブルQ(Y)uv と
を示している。
【0017】図2(a)の画像データP(Y)xy は、2次
元DCT変換によって、図2(b)に示す8×8=64
個のDCT係数S(Y)uv に変換される。これらのDCT
係数のうち、位置(0,0)にあるDCT係数S(Y)00
はDC成分であり、残り63個のDCT係数S(Y)uv は
AC成分である。AC成分は、係数S(Y)01 若しくは係
数S(Y)10 から係数S(Y)77 に向かって、より高い空間
周波数成分が8×8画素ブロックの画像データ中にどの
くらいあるかを示している。DC成分は8×8画素のブ
ロック全体の画素値の平均値(直流成分)を表してい
る。すなわち、各DCT係数S(Y)uv はそれぞれ所定の
空間周波数に対応している。
【0018】図2(d)は量子化処理回路21で用いら
れる量子化テーブルQ(Y)uv の一例を示している。この
ような量子化テーブルQ(Y)uv としては、上述したよう
に、輝度信号Yと色差信号Cb、Crとで別のものでも
よい。量子化テーブルQ(Y)uv は、JPEGフォーマッ
トの画像データを記録媒体に記録する際に、各信号に対
応した位置に、その信号の量子化に使用された量子化テ
ーブルQ(Y)uv の内容が記録される。
【0019】量子化テーブルQ(Y)uv を用いてDCT係
数S(Y)uv を量子化する式は以下のように定義される。 R(Y)uv =round(S(Y)uv /Q(Y)uv) {0≦ u,v≦
7} この式における roundは最も近い整数への近似を意味す
る。すなわち、DCT係数S(Y)uv 及び量子化テーブル
Q(Y)uv の各要素同士の割算と四捨五入とによって、図
2(c)に示すような量子化DCT係数R(Y)uv が求め
られる。
【0020】このようにして量子化処理回路22におい
て求められた量子化DCT係数R(Y)uv 、R(Cb)uv、R
(Cr)uvは、ハフマン符号化処理回路23に入力される。
【0021】次にハフマン符号化処理回路23における
ハフマン符号化について、図3〜図8を参照して説明す
る。なお以下の説明において、量子化DC係数とは量子
化されたDC成分をいい、量子化AC係数とは量子化さ
れたAC成分をいう。
【0022】量子化DC係数R(Y)00 と量子化AC係数
(量子化DC係数R(Y)00 以外の量子化DCT係数R
(Y)uv )では符号化方法が異なっている。量子化DC係
数R(Y)00 の符号化は次のように行われる。
【0023】まず、現在符号化しようとするブロックの
量子化DC係数R(Y)00 と一つ前に符号化されたブロッ
クの量子化DC係数R(Y)00 との差分が求められる。こ
の差分値が図3に示すカテゴリの何れに属するかが判断
され、そのカテゴリを表す符号語が、図4に示す符号表
(DC成分の符号化テーブル)から求められる。例え
ば、現在符号化しようとするブロックの量子化DC係数
R(Y)00 が「16」であり、一つ前に符号化されたブロ
ックの量子化DC係数R(Y)00 が「25」である時、差
分値は「−9」であるので、図3のカテゴリ表から、差
分値=−9の属するカテゴリは「4」と判別され、さら
にそのカテゴリの符号語が図4の符号表より「 101」と
判断される。
【0024】次いで差分値が、図3のカテゴリ表におい
て、そのカテゴリ内において何番目の値であるかが、付
加ビットにより表される。例えば差分値=−9はカテゴ
リ=4のグループにおいて、小さい方から7番目にある
ので、付加ビットは「0110」となる。すなわち、現在符
号化しているブロックの量子化DC係数R(Y)00 のハフ
マン符号語は「 1010110」となる。
【0025】一方、量子化AC係数の符号化は、図5に
示す処理ルーチンによって行われる。まずステップ12
0において、63個の量子化AC係数が図6に示す順序
でジグザグスキャンされ、1次元配列データに並びかえ
られる。量子化AC係数を、ジグザグスキャンの順序に
従って、スキャンAC1 、AC2 ・・・AC63と呼ぶこ
ととする。次に、ステップ122では、1次元に並べら
れた各量子化AC係数が「0」であるか否かかが判断さ
れる。量子化AC係数が「0」である時、ステップ12
4において、その「0」である量子化AC係数が連続す
る数がカウントされる。これにより「0」が連続する長
さ、すなわちラン長が求められる。
【0026】これに対し、ステップ122において量子
化AC係数が「0」でないと判断された時、ステップ1
26において、量子化DC係数と同じようなグループ分
けが行われるとともに付加ビットが求められる。この量
子化AC係数のグループ分けは、量子化DC係数のグル
ープ分けとは異なり、その量子化AC係数そのものにつ
いて行われる。すなわち、量子化AC係数が例えば
「4」である時、図7に示す表を参照してカテゴリ
「3」が得られる。また、量子化AC係数「4」はカテ
ゴリ=3のグループにおいて小さい方から5番目にある
ので、付加ビットは「 100」となる。
【0027】ステップ130では、ハフマンテーブルの
AC符号表(図8)を参照し、例えば量子化AC係数
「4」の直前のデータのラン長が「0」である場合、こ
のラン長とカテゴリ=3とに基づいて、符号語「 100」
が得られる。そして、この符号語「 100」とステップ1
26において得られた付加ビット「 100」を組み合わせ
ことにより2次元ハフマン符号語「100100」が求められ
る。
【0028】図2(c)の量子化DCT係数をハフマン
符号化した結果を、図9の符号化データHFとして示
す。
【0029】図10は図9に示す符号化データHFを再
び示している。このような符号化データHFは、各ブロ
ック毎に得られ、1画面が5400ブロックにより構成
される場合、符号化データHFは5400だけ得られ
る。上述したように、符号化データHFは、1つの量子
化DC係数に関する符号化データと、63個の量子化A
C係数に関する符号化データとから成る。
【0030】量子化DC係数に関する符号化データは、
カテゴリの符号語FA0と付加ビットFB0とから成
る。量子化AC係数に関する符号化データは、ラン長・
カテゴリの符号語と付加ビットから構成される。次に、
量子化AC係数に関する符号化データについてさらに詳
細に説明する。
【0031】図9の例では、スキャンAC1 が4であ
り、かつラン長が0であることに基づく符号化データと
して、ラン長・カテゴリの符号語FA1と付加ビットF
B1が生成され、スキャンAC2 が−7であり、かつラ
ン長が0であることに基づく符号化データとして、ラン
長・カテゴリの符号語FA2と付加ビットFB2が生成
されている。スキャンAC3 が0であるので、付加ビッ
トFB2の後には、スキャンAC4 が3であり、かつラ
ン長が1であることに基づく符号化データとして、ラン
長・カテゴリの符号語FA4と付加ビットFB4が生成
されている。同様にして、ラン長・カテゴリの符号語F
A5と付加ビットFB5、ラン長・カテゴリの符号語F
A8と付加ビットFB8、ラン長・カテゴリの符号語F
A9と付加ビットFB9がそれぞれ生成されている。終
端データ(EOB)は、スキャンAC10以降は全て0が
続くことを示している。
【0032】次に、量子化テーブルQ1の生成について
説明する。図1に示すように量子化テーブルQ1は、設
定合計符号量とDCTデータ統計量とに基づいて生成さ
れる。設定合計符号量は、記録媒体に記録される1画面
分の符号化データHFの合計ビット数であり、例えば5
24288ビット(64Kbyte)である。DCTデータ
統計量はDCT処理回路21の出力データに基づいて得
られる。DCT処理回路21の出力データは原画像デー
タをDCT変換したものであり、8×8個の量子化係数
が全て「1」である量子化テーブルQ1(以下、デフォ
ルトの量子化テーブルという)を用いて量子化したもの
と等価である。この出力データをジグザグスキャンして
(図6参照)、ラン長とカテゴリを求めた(図5参照)
後、図24に示す表を参照して各空間周波数毎のビット
長を求めることにより、DCTデータ統計量が得られ
る。すなわち、このDCTデータ統計量は、次に述べる
ように、図11に示すようなカテゴリ分布と、図12に
示すようなスキャン毎の符号量の分布である。
【0033】図11は、デフォルトの量子化テーブルを
用いた時の所定の空間周波数(例えばスキャンAC1
でのカテゴリ分布、すなわち各カテゴリに分類されるブ
ロックの数の例を示している。この図に示すようなカテ
ゴリ分布は、1つの画像において、DC成分に関するも
のと、63個のAC成分に関するものとが生成され、す
なわちカテゴリ分布は全部で64だけ生成される。本実
施例において原画像データは5400ブロックに分割さ
れており、図11の例では、カテゴリが0であるブロッ
ク数は602であり、カテゴリが1であるブロック数は
1088である。
【0034】図12は、デフォルトの量子化テーブルを
用いた時の各スキャンにおける符号化データHFのビッ
ト数の分布の例であり、これは1つの画像の全ブロック
に関して、各空間周波数毎の合計ビット数を示してい
る。例えばDC成分の場合、カテゴリの符号語FA0と
付加ビットFB0(図10参照)の合計ビット数は42
238(符号DB0)である。スキャンAC1 の場合、
ラン長・カテゴリの符号語FA1と付加ビットFB1の
合計ビット数は34009(符号DB1)、スキャンA
2 の場合、ラン長・カテゴリの符号語FA2と付加ビ
ットFB2の合計ビット数は33833(符号DB2)
である。図10の例では、スキャンAC3に関してラン
長・カテゴリの符号語と付加ビットは存在しないが、他
のブロックにおいてスキャンAC3 のデータが存在する
ため、合計ビット数は25920(符号DB3)となっ
ている。このようにして、スキャンAC63の合計ビット
数20909(符号DB63)までのデータが生成され
る。
【0035】設定合計符号量とDCTデータ統計量は、
空間周波数データ量設定部24に入力される。空間周波
数データ量設定部24では、例えば図13に示すよう
な、各空間周波数毎(すなわちスキャン毎)の符号量の
分布が設定される。すなわち、DC成分の符号量は44
240ビット(符号SB0)、スキャンAC1 の符号量
は33008ビット(符号SB1)、スキャンAC2
符号量は35629ビット(符号SB2)であり、スキ
ャンAC63の符号量まで設定される(符号SB63)。
これらの符号量の合計値すなわち設定合計符号量は所定
値(図13の例では524288ビット)に定められ
る。
【0036】この符号量(データ量)は目標値であり、
この画像圧縮装置では、後述するように各空間周波数毎
の符号量がこの目標値になるように、量子化テーブルQ
1が生成される。すなわち、この符号量の分布は、最終
的に得られた量子化テーブルQ1を用いた場合のハフマ
ン符号化データにおける、各空間周波数毎の符号量の目
標値であり、例えば高周波数成分をカットしたい場合に
は、高周波数成分に関する符号量が相対的に小さくなる
ように定められる。なお各空間周波数における符号量
は、再生画像が原画像に近くなるように、例えば試行錯
誤によって求められる。
【0037】また空間周波数データ量設定部24では、
DCTデータ統計量のうちのスキャン毎の符号量の分布
(図12参照)を用いて、各空間周波数毎の符号量の上
限値を定めてもよい。例えば、図13においてスキャン
AC4 の合計ビット数は28844(符号SB4)に定
められているが、DCTデータ統計量の符号量分布に基
づいて、28461ビットに制限してもよい(図12の
符号DB4参照)。
【0038】量子化テーブル生成部25では、DCTデ
ータ統計量と空間周波数データ量設定部24からの入力
データとに基づいて、量子化テーブルQ1を構成する各
量子化係数が生成される。
【0039】DC成分に関する量子化係数の求め方につ
いて説明する。まず、デフォルトの量子化テーブル(全
ての量子化係数が1である量子化テーブル)を用いて、
全てのブロックのDC成分が量子化される。そして、現
在量子化係数を求めようとしているブロックの量子化D
C係数と一つ前のブロックの量子化DC係数との差分値
が求められる。
【0040】この差分値が図3に示すカテゴリの何れに
属するかが判断され、そのカテゴリを表す符号語が、図
4に示す符号表(DC成分の符号化テーブル)から求め
られる。また図3のカテゴリ表から、その差分値に対応
した付加ビット数が求められる。例えば、差分値のカテ
ゴリが「2」であるとき、符号長は3ビットであり、付
加ビット数は2ビットである。したがって、差分値のカ
テゴリが「2」である量子化DC係数の符号量は5ビッ
トである。
【0041】このようにして、量子化DC係数の符号量
が各ブロック毎に求められ、これらの合計符号量(ビッ
ト数)が求められる。この合計符号量が図13に示すD
C成分の符号量(符号SB0)以下であれば、その時の
量子化係数が最終的なものとして決定される。もし、そ
の合計値が図13の符号量(符号SB0)よりも大きけ
れば、次に量子化係数は2に変更され、この量子化係数
を用いて、上述したような合計ビット数の検討が行われ
る。
【0042】この新しい量子化係数を用いたときの合計
ビット数を求めるために、各カテゴリに該当するブロッ
クの数を予測しておくことが必要である。すなわち図1
5に示すようなカテゴリ分布の表を、予め求めておく必
要がある。このカテゴリ分布の表の求め方の一例を図3
を参照して次に説明する。
【0043】例えばカテゴリ「2」に属する差分値は、
−3、−2、2、3である。量子化係数が2になると、
差分値「2」は2/2=1となるため、カテゴリ「1」
に移る。差分値「−2」も同様である。これに対し、差
分値「3」は3/2=1.5≒2となるため、カテゴリ
「2」のままである。差分値「−3」も同様である。し
たがって、この例では、量子化係数が1であるときにカ
テゴリ「2」に属していた差分値のうち、半分がカテゴ
リ「1」に変化し、半分がカテゴリ「2」のままであ
る。このようにして、量子化係数が変化した場合のカテ
ゴリ分布が予想され、このカテゴリ分布の表を用いるこ
とにより、合計符号量が求められる。
【0044】次に、AC成分に関する量子化係数の求め
方について説明する。AC成分については、ハフマン符
号化データの中にラン長に関するデータが含まれており
(図10の例えば符号FA1、FA2、FA4等)、ま
た量子化係数を変化させるとラン長が変化する。したが
って、量子化係数を変化させたときの各スキャンのデー
タ量は、量子化係数を変化させる前のそのスキャンのデ
ータ量だけに基づいて予測することはできない。そこで
本実施例では、次に述べるように、カテゴリ分布の表を
用いて、量子化係数を変化させたときの各スキャンのデ
ータ量を予測し、この予測値に基づいて量子化係数を決
定している。
【0045】図14は、図11に示すカテゴリ分布を各
スキャンについて同時に示す表の一例である。すなわ
ち、このカテゴリ分布の表は、デフォルトの量子化テー
ブルを用いた時の各空間周波数における、各カテゴリに
分類されるブロックの数を示している。なお図14で
は、DC成分と、スキャンAC1 からスキャンAC11
で示され、スキャンAC12からスキャンAC63までは省
略されている。また図14において、最上段の数字はカ
テゴリを示している。例えばスキャンAC1 において、
カテゴリ「0」のブロック数は602、カテゴリ「1」
のブロック数は1088である。
【0046】図15は、図14と異なり、全ての量子化
係数が「16」である量子化テーブルを用いた時のカテ
ゴリ分布の表を示している。図7から理解されるよう
に、量子化係数「1」を用いた場合のカテゴリ「0」か
ら「3」までのAC成分値は、量子化係数「16」を用
いると0になるため、そのAC成分値のカテゴリは
「0」となる。すなわち、図15におけるスキャンAC
1 の3479個のカテゴリ「0」のブロックは、図14
における、カテゴリ「0」〜「3」の602、108
8、1184、605の各ブロックに対応している。
【0047】同様に量子化係数「1」を用いた場合のカ
テゴリ「4」のAC成分値は、量子化係数「16」を用
いると−1または1になるため、そのAC成分値のカテ
ゴリは「1」となる。一方、量子化係数「1」を用いた
場合のカテゴリ「5」のAC成分値は、量子化係数「1
6」を用いると1になるものと2になるものとがある。
したがって、量子化係数「16」を用いた場合、一部の
ブロックのAC成分値のカテゴリは「1」となり、他の
ブロックのAC成分値のカテゴリは「2」となる。すな
わち、図15におけるスキャンAC1 の866個のカテ
ゴリ「1」のブロックは、図14における、カテゴリ
「4」の529のブロックと、カテゴリ「5」の一部の
ブロックに対応している。このように、量子化係数を変
化させると、あるカテゴリに属するブロックがそのまま
他のカテゴリに移行するとは限らず、異なるカテゴリに
移行することがある。
【0048】次に、スキャンACi-1 、ACi のカテゴ
リが共に「0」であるブロック数の予測について、図1
6〜図19を参照して説明する。
【0049】図16〜図19において、C
〔0〕は、そ
のスキャンでのカテゴリ「0」のブロック数、C〔1
〜〕は、そのスキャンでのカテゴリ「1」以上のブロッ
ク数である。Z〔k〕は、ラン長がkであるブロック数
の予測値である。C’
〔0〕は1つ前のスキャンでのカ
テゴリ「0」のブロック数、Z’
〔0〕は1つ前のスキ
ャンでのラン長が0であるブロック数である。
【0050】図16はスキャンAC1 のカテゴリ「0」
のブロック数と、カテゴリ「1」以上のブロック数を示
している。スキャンAC1 では、図15に示すように、
カテゴリ「0」のブロック数C
〔0〕は3479であ
り、カテゴリ「1」以上のブロック数C〔1〜〕は19
21(=5400−3479)である。したがって、ス
キャンAC1 において、ラン長が1であるブロック数Z
〔1〕は3479、ラン長が0であるブロック数Z
〔0〕は1921である。
【0051】図17は、スキャンAC2 までのラン長が
2、1、0であるブロック数を示している。スキャンA
2 では、図15に示すように、カテゴリ「0」のブロ
ック数C
〔0〕は3619であり、カテゴリ「1」以上
のブロック数C〔1〜〕は1781である。したがって
ラン長が0であるブロック数Z
〔0〕が1781である
ことは明らかであるが、ラン長が2であるブロック数Z
〔2〕とラン長が1であるブロック数Z〔1〕について
は明らかではない。そこで本実施例では、ブロック数Z
〔2〕とブロック数Z〔1〕との比は、スキャンAC1
でのラン長が1であるブロック数Z〔1〕とラン長が0
であるブロック数Z’
〔0〕との比に等しいと仮定し
て、ブロック数Z〔2〕とブロック数Z〔1〕のブロッ
ク数を予想している。すなわち本実施例では、スキャン
AC1 、AC2 において共にカテゴリが「0」であるブ
ロック数は、スキャンAC1 におけるカテゴリ「0」の
ブロック数に関連すると仮定している。
【0052】このようにして求められたブロック数Z
〔2〕は、スキャンAC1 、AC2 のカテゴリが共に
「0」である場合における、スキャンAC2 に対応して
いる。またブロック数Z〔1〕は、スキャンAC1 のカ
テゴリが「0」以外である場合における、カテゴリが
「0」であるスキャンAC2 に対応している。
【0053】図18は、スキャンAC3 までのラン長が
3、2、1、0であるブロック数を示している。スキャ
ンAC3 では、図15に示すように、カテゴリ「0」の
ブロック数C
〔0〕は4366であり、カテゴリ「1」
以上のブロック数C〔1〜〕は1034である。したが
ってブロック数Z
〔0〕は1034である。ブロック数
Z〔1〕は、スキャンAC2 でのブロック数Z’
〔0〕
の割合に依存すると仮定し、 Z〔1〕=4366×1781/5400=1440 となる。一方、ブロック数Z〔2〕、〔3〕の比は、ス
キャンAC2 でのブロック数Z〔1〕、〔2〕の比に等
しいと仮定し、 Z〔2〕=4366×1287/5400=1041 Z〔3〕=4366×2332/5400=1885 となる。
【0054】このブロック数Z〔3〕は、スキャンAC
1 、AC2 、AC3 のカテゴリが共に「0」である場合
における、スキャンAC3 に対応している。またブロッ
ク数Z〔2〕は、スキャンAC1 のカテゴリが「0」以
外であり、かつスキャンAC2 のカテゴリが「0」であ
る場合における、カテゴリが「0」であるスキャンAC
3 に対応している。ブロック数Z〔1〕は、スキャンA
2 のカテゴリが「0」以外である場合における、カテ
ゴリが「0」であるスキャンAC3 に対応している。
【0055】図19はスキャンAC4 までのラン長が
4、3、2、1、0であるブロックを示している。スキ
ャンAC4 以降においても上述した処理が行われ、ラン
長がkであるブロック数Z〔k〕が求められる。
【0056】このようにしてスキャンAC63までのラン
長が求められると、次に、図20〜図23に示すような
ラン長・カテゴリの表が各カテゴリ毎に作成される。
【0057】図20は、スキャンAC1 のラン長・カテ
ゴリの表であり、この表は、ラン長が0であってカテゴ
リ「0」以外のカテゴリ分布を示している。スキャンA
1おいて、カテゴリ「0」以外のブロック数は、図1
6に示すように全部で1921(=Z
〔0〕)ある。カ
テゴリ分布は、図15に示すように、カテゴリ「1」、
「2」・・・「5」の順に、866、519、300、
212、24であり、カテゴリ「6」以上のブロック数
は0である。この数値をそのまま転記することにより、
図20の表が作成される。
【0058】図21は、スキャンAC2 のラン長・カテ
ゴリの表であり、この表は、ラン長が0と1であってカ
テゴリ「0」以外のカテゴリ分布を示している。スキャ
ンAC2 おいて、カテゴリ「0」以外のブロック数は、
図17に示すように全部で1781(=Z
〔0〕)あ
る。カテゴリ分布は、図15に示すように、カテゴリ
「1」、「2」・・・「5」の順に、850、487、
315、119、10であり、カテゴリ「6」以上のブ
ロック数は0である。カテゴリ「1」の850のブロッ
クは、図17に示すZ〔1〕とZ〔2〕の比、すなわち
スキャンAC1 でのラン長が0であるブロック数Z’
〔0〕とラン長が1であるブロック数Z〔1〕との比に
等しいと仮定して、ラン長が0のブロック数は302、
ラン長が1のブロック数は548に定められている。同
様に、カテゴリ「2」の487のブロックについては、
ラン長が0のブロック数は173、ラン長が1のブロッ
ク数は314に定められている。このようにして、図2
1の表が作成される。
【0059】図22は、スキャンAC3 のラン長・カテ
ゴリの表であり、この表は、ラン長が0と1と2であっ
てカテゴリ「0」以外のカテゴリ分布を示している。ス
キャンAC3 おいて、カテゴリ「0」以外のブロック数
は、図18に示すように全部で1034(=Z
〔0〕)
ある。カテゴリ分布は、図15に示すように、カテゴリ
「1」、「2」・・・「4」の順に、675、220、
121、18であり、カテゴリ「5」以上のブロック数
は0である。各カテゴリのブロック数は、図18に示す
Z〔1〕とZ〔2〕とZ〔3〕の比に従って、ラン長が
0と1と2のブロック数に分配されている。
【0060】図23は、スキャンAC4 のラン長・カテ
ゴリの表である。この表も上述した処理により、図15
と図19を参照して作成される。このようにしてスキャ
ンAC63までのラン長・カテゴリの表が作成される。
【0061】次に、図20〜図23に示すようなラン長
・カテゴリの表を参照して、各スキャンにおけるデータ
量(ビット数)が計算される。この計算のため、図24
に示す符号長の表が用いられる。この表中の各数値はJ
PEGにより推奨されたハフマンテーブルの各符号語の
符号長を示している。例えば、ラン長が1で、カテゴリ
が2である符号語の符号長は5である。
【0062】スキャンAC1 については、図20と図2
4を参照して全ブロックにおけるラン長・カテゴリの符
号語のビット数は、 866 x 2 + 519 x 2 + 300 x 3 + 212 x 4 + 24 x 5 = 4638 となる。一方、付加ビットについては、カテゴリの数値
がそのままビット数に対応しているため、付加ビットの
ビット数は、 866 x 1 + 519 x 2+ 300 x 3 + 212 x 4 + 24 x 5 = 3772 となる。したがってスキャンAC1 の予想データ量は、 4638 + 3772 = 8410(ビット) である。
【0063】スキャンAC2 〜スキャンAC63について
も、スキャンAC1 と同様な計算によってデータ量が求
められる。
【0064】このようにして得られた各スキャンにおけ
るデータ量は、図13に示す設定符号量以下でなければ
ならない。例えば、スキャンAC1 については3300
8ビット以下に抑えられなければならない。上述の例で
は、実施例の説明のために量子化係数を「16」とした
ため、データ量は8410ビットであり設定符号量より
もかなり小さい。したがって実際には、量子化係数は
「16」よりも小さい数値が適当である。すなわち、量
子化係数が「1」である場合の予想データ量が3300
8ビットよりも大きければ、量子化係数を1だけ大きく
して予想データ量を計算し直し、このような操作を行い
ながら、設定符号量以下になるような量子化係数を求め
る。
【0065】上述した量子化テーブルの生成を、図25
のフローチャートを用いて説明する。なお、このフロー
チャートはスキャンAC2 〜AC63に関する量子化係数
の生成を示しており、DC成分とスキャンAC1 の量子
化係数は既に求められているものとする。
【0066】ステップ101では、パラメータiが2に
定められる。ステップ102では、量子化係数qが初期
値として1に定められる。
【0067】ステップ103では、図14を用いて、図
15に示すようなスキャンACi のカテゴリ分布が生成
される。例えば、パラメータiが3であり量子化係数q
が16である時、このカテゴリ分布は、図15に示す例
では、 4366, 675, 220, 121, 18, 0, 0, 0, 0, 0, 0 である。
【0068】なおステップ103が実行される前に、符
号P11で示すように、スキャンACi-1 のカテゴリ
「0」のブロック数が求められている。例えばパラメー
タiが3であり、スキャンAC2 の量子化係数qが16
であった場合、スキャンAC2のカテゴリ「0」のブロ
ック数は図15の例では3619である。また、符号P
12で示すように、スキャンACi-1 のカテゴリ「0」
のブロック数の分布が求められている。例えばパラメー
タiが3であり、スキャンAC2 の量子化係数qが16
であった場合、スキャンAC2 における図17の例で
は、ブロック数Z〔2〕は2332、ブロック数Z
〔1〕は1287、ブロック数Z
〔0〕は1781であ
る。
【0069】ステップ104では、ステップ103にお
いて求められたスキャンACi のカテゴリ分布と、スキ
ャンACi-1 のカテゴリ「0」のブロック数(符号P1
1)と、スキャンACi-1 のカテゴリ「0」のブロック
数の分布(符号P12)とに基づいて、スキャンACi
におけるカテゴリ「0」のブロック数の分布が予測され
る。例えばパラメータiが3であり、量子化係数qが1
6である時、スキャンAC3 における図18の例では、
図15と図17のデータに基づいて、ブロック数Z
〔3〕は1885、ブロック数Z〔2〕は1041、ブ
ロック数Z〔1〕は1440である。
【0070】ステップ105では、スキャンACi にお
ける圧縮データの予測データ量が求められる。例えばパ
ラメータiが3であり、量子化係数qが16である時、
スキャンAC3 における予測データ量Di は、図22の
ラン長・カテゴリの表と図24の符号長の表とから、 223 x 2 + 73 x 2 + 40 x 3 + 6 x 4+ 161 x 4 + 52 x
5 + 29 x 7 + 4 x 9+ 291 x 5 + 95 x 8 + 52 x 10 + 8
x 12+ (223 + 161 + 291) + (73 + 52 + 95) x 2+ (40
+ 29 + 52) x 3 + (6 + 4 + 8) x 4= 6260(ビット) となる。
【0071】ステップ106では、ステップ105にお
いて計算された予測データ量Di が図13に示すような
設定符号量Si であるか否かが判定される。上述したス
テップ105の説明の例の場合、量子化係数qを16と
したため予測データ量Di は6260ビットとなり、図
13の設定符号量S3 =24042(符号SB3)より
もかなり小さい。しかし実際には、量子化係数qが1で
ある場合から始めるため、最初のうちは予測データ量D
i は設定符号量Si よりも大きい。したがって、ステッ
プ107において量子化係数qがまだ255に達してい
ないことが確認された後、ステップ108において量子
化係数qが1だけインクリメントされ、再びステップ1
03に戻る。
【0072】そしてステップ103〜105が再び実行
され、ステップ106において予測データ量Di が設定
符号量Si 以下であると判定されると、これにより量子
化係数qが確定する。すなわち、ステップ106からス
テップ110へ進み、パラメータiが63に達したか否
かが判定される。パラメータiが63に達していない
時、ステップ111において次のスキャンに関する設定
符号量Si+1 が設定符号量Si と予測データ量Di の差
だけ加算される。すなわち、次のスキャンの設定符号量
i+1 は、前のスキャン設定符号量Si において用いら
れなかった分が割り当てられる。
【0073】次いでステップ112では、パラメータi
が1だけインクリメントされ、ステップ102へ戻り、
次のスキャンについてステップ102〜108が実行さ
れて量子化係数が求められる。
【0074】ステップ110においてパラメータiが6
3に達していると判定されると、ステップ113に進
み、量子化係数qに基づいて量子化係数が生成され、こ
のプログラムは終了する。
【0075】図16〜図23を参照して説明した、各ス
キャンACi のデータ量の第1の予測方法は、比較的簡
単な例であって、必ずしも高精度な予測であるとは言え
ない。そこで次に、さらに高精度な第2の予測方法につ
いて、図26〜図28を参照して説明する。
【0076】図26は「00」データの分布、すなわち
スキャンACi-1 とスキャンACiとが共にカテゴリ
「0」であるブロック数を示し、図14のカテゴリ分布
の表に対応している。例えば、スキャンAC1 、AC2
が共にカテゴリ「0」のブロック数は120(符号
12)、スキャンAC2 、AC3 が共にカテゴリ「0」
のブロック数は159(符号J23)、スキャンAC3
AC4 が共にカテゴリ「0」のブロック数は186(符
号J34)、スキャンAC62、AC63が共にカテゴリ
「0」のブロック数は327(符号J6263)である。
【0077】スキャンACi-1 、ACi がそれぞれカテ
ゴリ「0」であるブロック数が変化すると、スキャンA
i-1 、ACi が共にカテゴリ「0」であるブロック数
はスキャンACi-1 のブロック数の変化率とスキャンA
i の変化率との積に比例すると仮定する。例えば、ス
キャンACi-1 、ACi のブロック数が共に2倍になっ
たとすると、スキャンACi-1 、ACi が共にカテゴリ
「0」であるブロック数は4倍になる。このような仮定
の下に、スキャンACi-1 とACi のカテゴリ「0」の
ブロック数に基づいて、量子化後のスキャンACi-1
量子化後のスキャンACi が共にカテゴリ「0」のブロ
ック数を予測する。
【0078】「00」データの分布は、ブロック数の基
準値を3500とすることによって正規化され、メモリ
に格納される。例えば、スキャンAC1 、AC2 が共に
カテゴリ「0」であるブロック数は、正規化によって、
図27に示すように3823に変換される。図28は、
正規化された「00」データの分布の表を示し、例え
ば、スキャンAC1 、AC2 の「00」データは382
3(符号K12)、スキャンAC2 、AC3 の「00」デ
ータは3577(符号K23)、スキャンAC3 、AC4
の「00」データは3280(符号K34)、スキャンA
62、AC63の「00」データは2262(符号KJ
6263)である。
【0079】図29は、カテゴリ「0」であるスキャン
ACi-1 のブロック数を横軸に、またスキャンA
i-1 、ACi が共にカテゴリ「0」であるブロック数
(すなわち「00」データ)を縦軸にとったグラフであ
る。このグラフにおいて、横座標の最大値は全ブロック
数(5400)であり、Slow は上述した基準値350
0、Smid は例えば4800、Shighは例えば5150
である。縦座標の最大値Omax は可変であり、最大値O
max が基準値3500である時、Ohighは例えば340
3、Omid は例えば3144、Olow は例えば2463
である。折れ点f、g、hは、再生画像の画質が原画像
に近くなるように、例えば試行錯誤によって求められる
が、折れ点bは、次に述べるようにスキャンACi-1
ACi のカテゴリ「0」のブロック数に応じて変化す
る。
【0080】折れ点bの求め方を、図15の場合を例に
とり説明する。例えば、スキャンAC3 のカテゴリ
「0」のブロック数は4366であり、スキャンAC4
のカテゴリ「0」のブロック数は4108である。
【0081】まず図28の表を参照し、スキャンA
3 、AC4 の「00」データとして、K34=3280
が得られる。次に、図29において、最大値Omax を基
準値3500に定めた状態で、Slow (3500)に対
応する縦座標を読むと、点cが得られる。原点aと点c
を結んだ直線L1と、Olow から横方向に延びる直線L
2との交点bを求めると、折れ線abfghが得られ
る。
【0082】次に、縦座標の最大値Omax をスキャンA
4 のブロック数4108に合わせると、Ohighは39
94、Omid は3690、Olow は2891となる。こ
の状態で、横座標においてスキャンAC3 のブロック数
4366に対応する折れ線bf上の点P3の縦座標を読
むと、3530がスキャンAC3 、AC4 の「00」デ
ータとして得られる。この数値は、図19においてZ
〔2〕とZ〔3〕とZ〔4〕の和(=3321)に相当
し、図19の例よりも大きい。すなわち第2の予測方法
によれば、スキャンAC3 、AC4 の「00」データは
第1の予測方法の場合よりも多い。
【0083】このようにして得られた「00」データ
は、次に述べる方法によって、Z〔2〕とZ〔3〕とZ
〔4〕に分配される。
【0084】この分配のためには、図18に示すような
スキャンAC2 、AC3 の「00」データに関するZ
〔1〕、Z〔2〕、Z〔3〕の値が必要であり、また、
これらのZ〔1〕、Z〔2〕、Z〔3〕を求めるために
は、図17に示すようなスキャンAC1 、AC2 の「0
0」データに関するZ〔1〕、Z〔2〕の値が必要であ
る。
【0085】スキャンAC1 、AC2 のZ〔1〕、Z
〔2〕は、図29と同様にして折れ線abfghを作成
し、この折れ線上の点を読むことによって求められる。
Z〔2〕は折れ線から直接求められ、Z〔1〕はC
〔0〕とZ〔2〕の差として求められる。スキャンAC
2 、AC3 に関しては、Z〔2〕とZ〔3〕の和が、折
れ線abfghを作成してこの折れ線上の点を読むこと
によって求められ、Z〔1〕は、Z〔2〕とZ〔3〕の
和をC
〔0〕から引くことにより求められる。Z〔2〕
とZ〔3〕の各値は、スキャンAC1 、AC2 のZ
〔1〕、Z〔2〕の比に従って分配される。すなわち、
スキャンAC2 、AC3 に関するZ〔1〕、Z〔2〕、
Z〔3〕の各値が得られる。
【0086】同様にして、スキャンAC3 、AC4 のZ
〔2〕、Z〔3〕、Z〔4〕の各値は、スキャンA
2 、AC3 のZ〔1〕、Z〔2〕、Z〔3〕の比に従
って分配される。これにより、図23に示すようなラン
長・カテゴリの表が得られ、スキャンAC4 における圧
縮データの予測データ量が計算される。他のスキャンに
ついても同様な計算が行われ、予測データ量が求められ
る。
【0087】次にスキャンACi のデータ量の第3の予
測方法について説明する。スキャンACi-1 においてラ
ン長がkであるブロック数をZ〔k〕、スキャンAC
i-1 におけるカテゴリ「0」である全ブロック数をZ
ALL 、スキャンACi-1 においてカテゴリ「0」であ
り、かつスキャンACi においてカテゴリ「j」である
ブロック数をCTj とする。また修正係数をZWとす
る。
【0088】スキャンACi におけるラン長がkでカテ
ゴリがjであるブロック数B〔k,j〕は、 B〔k,j〕=CTj × Z〔k〕/ZALL +(1−CTj /ZALL )×Z〔k〕×ZW/1000 (1) により求められる。スキャンACi におけるラン長が
(k+1)であるブロック数Z〔k+1〕(すなわちラ
ン長がkでカテゴリが0であるブロック数)は、 Z〔k+1〕=CT0 × Z〔k〕/ZALL +(1−CT0 /ZALL )×Z〔k〕×ZW/1000 (2) により求められる。
【0089】修正係数ZWは、0から1000までの値
をとりうる。例えばZW=0のとき、 Z〔k+1〕=CTj × Z〔k〕/ZALL となり、これは第2の予測方法と同じ結果になる。ZW
=1000とすると、 Z〔k+1〕=Z〔k〕 となり、これは、スキャンACi-1 のラン長kのブロッ
クが、スキャンACi において全てカテゴリ「0」とな
ることを示している。以下に説明する例では、ZW=5
0としている。
【0090】ここで、スキャンAC3 において、Z
〔0〕=1034、Z〔1〕=1440、Z〔2〕=1
041、Z〔3〕=1885であり、またスキャンAC
4 におけるカテゴリ分布として、図30のような表が得
られているとする。すなわち、スキャンAC3 がカテゴ
リ「0」である4366ブロックにおいて、スキャンA
4 では、カテゴリ「0」のブロック数CT0 は332
1、カテゴリ「1」のブロック数CT1 は655、カテ
ゴリ「2」のブロック数CT2 は276、カテゴリ
「3」のブロック数CT3 は101、カテゴリ「4」の
ブロック数CT4 は13、カテゴリ「5」以上のブロッ
ク数は0であるとする。
【0091】次に述べるように、ラン長が1であるデー
タからブロック数が求められ、図31に示すようなラン
長・カテゴリの分布表が求められる。
【0092】スキャンAC4 において、ラン長が1であ
り、かつカテゴリ「1」であるブロック数は、(1)式
より、 B〔1,1〕=CT1 ×Z〔1〕/ZALL+(1−CT
1 /ZALL )×Z〔1〕×ZW/1000=655 x 1440/436
6 + ( 1 - 655/4366 ) x 1440 x 50/1000= 216 + 61 =
277 となる。同様に、ラン長が1であり、かつカテゴリ
「2」であるブロック数は、(1)式より、 B〔1,2〕=CT2 ×Z〔1〕/ZALL+(1−CT
2 /ZALL )×Z〔1〕×ZW/1000=91 + 67 = 158 となる。
【0093】ラン長が1であり、かつカテゴリ「3」で
あるブロック数については、(1)式より、 B〔1,3〕=CT3 ×Z〔1〕/ZALL+(1−CT
3 /ZALL )×Z〔1〕×ZW/1000=33 + 71 = 104 となるが、図30に示されるようにCT3 =C〔3〕=
101である。したがって、104ではなく、強制的に
101に定められる。
【0094】ラン長が1であり、かつカテゴリ「4」で
あるブロック数についても同様に、B〔1,4〕は強制
的に13に定められる。
【0095】スキャンAC4 においてラン長が2である
ブロック数Z〔2〕(すなわちラン長が1であり、かつ
カテゴリが0であるブロック数)は、 Z〔2〕=Z〔1〕−(277 + 158 + 101 + 13) = 89
1 となる。
【0096】ラン長が2であり、かつカテゴリ「1」で
あるブロック数については、 B〔2,1〕=CT1 ×Z〔2〕/ZALL+(1−CT
1 /ZALL )×Z〔2〕×ZW/1000=655 x 1041/436
6 + ( 1 - 655/4366 ) x 1041 x 50/1000= 156 + 44 =
200 となる。ラン長が2であり、かつカテゴリ「2」である
ブロック数については、 B〔2,2〕= 66 + 49 = 115 となる。
【0097】ラン長が2であり、かつカテゴリ「3」で
あるブロック数B〔2,3〕は、B〔1,3〕の結果に
従って0であり、またラン長が2であり、かつカテゴリ
「4」であるブロック数B〔2,4〕は、B〔1,4〕
の結果に従って0である。
【0098】スキャンAC4 においてラン長が3である
ブロック数Z〔3〕(すなわちラン長が2であり、かつ
カテゴリが0であるブロック数)は、 Z〔3〕=Z〔2〕−(200 + 115 + 0 + 0)= 726 となる。
【0099】ラン長が3であり、かつカテゴリ「1」で
あるブロック数については、 B〔3,1〕=CT1 ×Z〔3〕/ZALL+(1−CT
1 /ZALL )×Z〔3〕×ZW/1000=655 x 1885/436
6 + ( 1 - 655/4366 ) x 1885 x 50/1000= 283 + 80 =
363 となる。しかし、カテゴリ「1」であるブロック数CT
1 の総数が655であるため、 B〔3,1〕= 655 - 277 - 200= 178 となる。
【0100】ラン長が3であり、かつカテゴリ「2」で
あるブロック数については、 B〔3,2〕=CT2 ×Z〔3〕/ZALL+(1−CT
2 /ZALL )×Z〔3〕×ZW/1000=119 + 88 = 207 となる。しかし、カテゴリ「2」であるブロック数CT
2 の総数が276であるため、 B〔3,2〕= 276 - 158 - 115= 3 となる。
【0101】ラン長が3であり、かつカテゴリ「3」で
あるブロック数は、B〔1,3〕、B〔2,3〕の結果
に従って0であり、またラン長が3であり、かつカテゴ
リ「4」であるブロック数は、B〔1,4〕、B〔2,
4〕の結果に従って0である。
【0102】スキャンAC4 においてラン長が4である
ブロック数Z〔4〕(すなわちラン長が3であり、かつ
カテゴリが0であるブロック数)は、 Z〔4〕=Z〔3〕−(178 + 3 + 0 + 0)= 1704 となる。
【0103】ラン長が0であるブロック数において、カ
テゴリ「1」〜「4」のブロック数は、図30より、1
55、65、24、3となる。また、ラン長が1である
ブロック数Z〔1〕(すなわちラン長が0であり、かつ
カテゴリが0であるブロック数)は、図30より、 Z〔1〕=787 となる。
【0104】図32は、このようにして求められたラン
長・カテゴリの分布の表であり、第1の予測方法におけ
る図23に対応している。また図31に示されるよう
に、ラン長が4であるブロック数(ラン長が3であり、
かつカテゴリが0であるブロック数)は1704であ
り、これは第1の予測方法において得られたZ〔4〕=
1434よりも大きくなっている。すなわち第3の予測
方法によれば、ラン長が伸びることが理解される。
【0105】次に、図30に示されるようなカテゴリ分
布表において、スキャンACi-1 のカテゴリが「0」
で、かつスキャンACi のカテゴリが「1」以上のブロ
ック数を図29の折れ線abfghを用いて求める方法
を説明する。
【0106】この場合、図29において横軸はスキャン
ACi-1 のカテゴリ「0」のブロック数を示し、縦軸は
スキャンACi におけるカテゴリ「0」とカテゴリ
「1」のブロック数の和を示す。まず、縦軸のOmax
〔0〕とC〔1〕の和(=4108+810=491
8)に定め、これに伴いOhigh、Omid 、Olow を求め
る。次に、横座標の4366に対応した折れ線上の点
(例えばP3)を読み、この点に対応した縦座標を読む
と、この値はスキャンAC4 におけるカテゴリ「0」と
カテゴリ「1」のブロック数の和である。したがって、
この和から、既に求められているカテゴリ「0」の値を
引けば、スキャンACi-1 のカテゴリが「0」でかつス
キャンACi のカテゴリが「1」のブロック数が求めら
れる。以下、同様にして、スキャンACi-1 のカテゴリ
が「0」でかつスキャンACi のカテゴリが「2」以上
のブロック数が求められる。
【0107】
【発明の効果】以上のように本発明によれば、個々の画
像の画質に応じた画像圧縮を達成することができるとい
う効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施例の画像圧縮装置を示すブロッ
ク図である。
【図2】画像データP(Y)xy 、DCT変換係数S(Y)uv
、量子化DCT係数R(Y)uv 、量子化テーブルQ(Y)uv
の例を示す図である。
【図3】DC係数の差分値のカテゴリを示す図である。
【図4】DC係数の符号化テーブルを示す図である。
【図5】量子化AC係数の符号化を行う処理ルーチンを
示すフローチャートである。
【図6】AC係数をハフマン符号化する際に行われるジ
グザグスキャンを示す図である。
【図7】AC係数のカテゴリを示す図である。
【図8】JPEGにより推奨されたハフマンテーブルを
示す図である。
【図9】ハフマン符号化による符号化データの一例を示
す図である。
【図10】符号化データの構成要素を示す図である。
【図11】全ての量子化係数が「1」である量子化テー
ブルを用いた時の所定の空間周波数でのカテゴリ分布の
例を示す図である。
【図12】全ての量子化係数が「1」である量子化テー
ブルを用いた時の、各スキャンにおける符号化データの
ビット数の分布の例を示す図である。
【図13】空間周波数データ量設定部において設定され
る各空間周波数毎(すなわちスキャン毎)の符号量の分
布の例を示す図である。
【図14】図11に示すカテゴリ分布を各スキャンにつ
いて同時に示す図である。
【図15】全ての量子化係数が「16」である量子化テ
ーブルを用いた時のカテゴリ分布の表を示す図である。
【図16】スキャンAC1 のカテゴリ「0」のブロック
数と、カテゴリ「1」以上のブロック数を示す図であ
る。
【図17】スキャンAC2 までのラン長が2、1、0で
あるブロック数を示す図である。
【図18】スキャンAC3 までのラン長が3、2、1、
0であるブロック数を示す図である。
【図19】スキャンAC4 までのラン長が4、3、2、
1、0であるブロック数を示す図である。
【図20】スキャンAC1 のラン長・カテゴリの表を示
す図である。
【図21】スキャンAC2 のラン長・カテゴリの表を示
す図である。
【図22】スキャンAC3 のラン長・カテゴリの表を示
す図である。
【図23】スキャンAC4 のラン長・カテゴリの表を示
す図である。
【図24】JPEGにより推奨されたハフマンテーブル
の各符号語の符号長を示す図である。
【図25】量子化テーブルを生成するプログラムのフロ
ーチャートである。
【図26】「00」データの分布を示す図である。
【図27】スキャンAC1 とスキャンAC2 の「00」
データの正規化を示す図である。
【図28】正規化された「00」データの分布の表を示
す図である。
【図29】スキャンACi-1 のカテゴリ「0」のブロッ
ク数とスキャンACi-1 とスキャンACi の「00」デ
ータとの関係を示す図である。
【図30】スキャンAC4 におけるカテゴリ分布の例を
示す図である。
【図31】第3の予測方法によって得られたラン長・カ
テゴリの分布の例を示す図である。
【図32】図31のラン長・カテゴリの分布の表を図2
3に対応した形式で表した図である。
【符号の説明】
M ICメモリカード

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 原画像データを複数のブロックに分割
    し、直交変換を施して空間周波数毎に直交変換係数を求
    め、前記直交変換係数を所定の量子化係数から成る量子
    化テーブルにより量子化して求めた量子化直交変換係数
    を、空間周波数に関して1次元配列データとして並びか
    えた後、前記量子化直交変換係数を所定のデ−タ量を有
    するカテゴリに分類するとともに、0の量子化直交変換
    係数が連続する数に基づいてラン長を求めて符号化を行
    ない符号化データを求める画像圧縮装置であって、 前記空間周波数毎に符号化データのデータ量の目標値を
    設定する手段と、全ての量子化係数が1であるデフォルトの量子化テーブ
    ルを用いたときの各空間周波数における各カテゴリに分
    類されるブロック数を示すカテゴリ分布表を求める手段
    と、 前記1次元配列データにおいてAC成分の先頭に位置す
    る空間周波数については、前記カテゴリ分布表に基づい
    て、量子化係数を変化させて符号化データのデータ量を
    予測し、前記1次元配列データにおいてAC成分の先頭
    以外に位置する空間周波数については、前記カテゴリ分
    布表と少なくとも 第1の空間周波数の符号化データの統
    計量に基づいて、量子化係数を変化させて、前記1次
    元配列データにおいて前記第1の空間周波数に隣接する
    第2の空間周波数の符号化データのデータ量を予測する
    手段と、前記予測手段により予測された データ量が前記目標値以
    下になるように、その空間周波数に対応した量子化係数
    を定める量子化係数演算手段とを備え、 前記予測手段は、前記1次元配列データにおいてAC成
    分の先頭以外に位置する空間周波数について、前記第1
    の空間周波数における0の量子化直交変換係数に対応す
    るカテゴリ「0」のブロック数を用いて、前記第2の空
    間周波数の符号化データのデータ量を予測することを特
    徴とする画像圧縮装置の量子化テーブル生成装置。
  2. 【請求項2】 前記予測手段は、前記1次元配列データ
    においてAC成分の先頭以外に位置する空間周波数につ
    いては、前記カテゴリ分布表と第1の空間周波数および
    第1の空間周波数よりも低い空間周波数の符号化データ
    の統計量とに 基づいて、前記第2の空間周波数の符号化
    データのデータ量を予測することを特徴とする請求項1
    に記載の量子化テーブル生成装置。
  3. 【請求項3】 前記予測手段は、少なくとも前記第1の
    空間周波数におけるカテゴリ「0」のブロック数を用い
    、前記第1および第2の空間周波数において共にカテ
    ゴリ「0」であるブロック数を予測することを特徴とす
    る請求項1に記載の量子化テーブル生成装置。
  4. 【請求項4】 前記予測手段は、少なくとも前記第1の
    空間周波数におけるカテゴリ「0」のブロック数を用い
    、前記第1の空間周波数におけるカテゴリ「0」であ
    り、かつ前記第2の空間周波数におけるカテゴリ「j」
    (jは正の整数)であるブロック数を予測することを特
    徴とする請求項1に記載の量子化テーブル生成装置。
  5. 【請求項5】 前記予測手段は、量子化係数「1」を用
    いた時における、前記第1および第2の空間周波数が共
    にカテゴリ「0」であるブロック数を示すカテゴリ分布
    表に基づいて、所定の量子化直交変換係数を用いた時に
    おける、前記第1および第2の空間周波数が共にカテゴ
    リ「0」であるブロック数を予測することを特徴とする
    請求項1に記載の量子化テーブル生成装置。
  6. 【請求項6】 前記予測手段は、量子化係数「1」を用
    いた時における、前記第1および第2の空間周波数が共
    にカテゴリ「0」であるブロック数を示すカテゴリ分布
    表に基づいて、所定の量子化直交変換係数を用いた時に
    おける、前記第1の空間周波数が共にカテゴリ「0」で
    あり、かつ前記第2の空間周波数がカテゴリ「j」(j
    は正の整数)であるブロック数を予測することを特徴と
    する請求項1に記載の量子化テーブル生成装置。
  7. 【請求項7】 前記予測手段は、量子化係数「1」を用
    いた時の各空間周波数における、各カテゴリに分類され
    るブロックの数に基づいて、所定の量子化直交変換係数
    を用いた時の各空間周波数における、各カテゴリに分類
    されるブロックの数を求めることを特徴とする請求項1
    に記載の量子化テーブル生成装置。
JP04133395A 1995-02-06 1995-02-06 画像圧縮装置の量子化テーブル生成装置 Expired - Fee Related JP3421463B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04133395A JP3421463B2 (ja) 1995-02-06 1995-02-06 画像圧縮装置の量子化テーブル生成装置
US08/598,207 US5937098A (en) 1995-02-06 1996-02-06 Adaptive quantization of orthogonal transform coefficients for setting a target amount of compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04133395A JP3421463B2 (ja) 1995-02-06 1995-02-06 画像圧縮装置の量子化テーブル生成装置

Publications (2)

Publication Number Publication Date
JPH08214170A JPH08214170A (ja) 1996-08-20
JP3421463B2 true JP3421463B2 (ja) 2003-06-30

Family

ID=12605602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04133395A Expired - Fee Related JP3421463B2 (ja) 1995-02-06 1995-02-06 画像圧縮装置の量子化テーブル生成装置

Country Status (1)

Country Link
JP (1) JP3421463B2 (ja)

Also Published As

Publication number Publication date
JPH08214170A (ja) 1996-08-20

Similar Documents

Publication Publication Date Title
US6198848B1 (en) Method and apparatus for compressing and storing data indicative of a full-color image
EP1834487B1 (en) Method for improved entropy coding
US5875039A (en) Image processing method and apparatus
JP3356663B2 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラムを記録した記録媒体
US7133567B2 (en) Image coding apparatus and image coding method
JPH0723383A (ja) ビット固定のための映像圧縮方法と伸張方法及びその装置
EP1466483A1 (en) Coder matched layer separation and interpolation for compression of compound documents
CN1124045C (zh) 用在视频信号编码***中的行程长度编码方法和装置
US5937098A (en) Adaptive quantization of orthogonal transform coefficients for setting a target amount of compression
US7333664B2 (en) Image compression method capable of reducing tile boundary distortion
US6915014B1 (en) Image processing apparatus and method
JPH0832037B2 (ja) 画像データ圧縮装置
JP4514169B2 (ja) デジタル信号変換装置及び方法
JP3532963B2 (ja) 画像圧縮装置
JP3421463B2 (ja) 画像圧縮装置の量子化テーブル生成装置
DE602004011213T2 (de) Intraframe-komprimierung und dekomprimierung von videosignalen mit fester bitrate
JP3559314B2 (ja) 画像圧縮装置
JP3746804B2 (ja) 画像圧縮装置
EP1892965A2 (en) Fixed bit rate, intraframe compression and decompression of video
JPH04167868A (ja) 画像データの符号化装置
JP3190164B2 (ja) 符号量見積り装置
JPH0752951B2 (ja) 画像データ圧縮処理方法および装置
JPH0575867A (ja) 画像データ符号化装置
JP3392949B2 (ja) 画像圧縮装置および画像伸張装置
JP3645690B2 (ja) 画像圧縮装置およびカメラ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090418

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100418

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100418

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees