(57)【特許請求の範囲】
【請求項１】
入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、
前記予測値と前記画素データの画素値との差分である差分値のとりうる範囲に基づいて定められる改良差分値のとりうる範囲に従い、前記画素値および前記予測値に基づいて改良差分値を生成する改良差分値生成手段と、
前記改良差分値を符号化することにより、圧縮画像データを求める符号化手段と、
前記圧縮画像データを記録媒体に記録する記録手段とを備え、
前記改良差分値のとりうる範囲が、前記画素値のとりうる範囲の中で前記予測値より大きい非差分値の範囲の値に対し、正負の符号を変えるように反転させ、さらに、前記差分値のとりうる範囲の中で絶対値が前記非差分値の部分的範囲と等しい範囲において、前記正負が反転された非差分値の範囲の値と前記部分的範囲の値を、絶対値の小さい順で正負の値が交互に現れるように並べることにより規定され、
前記改良差分値生成手段が、前記予測値に基づいて定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と、前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値のとりうる範囲の中で、前記画素値に対応する改良差分値を求めることを特徴とする画像圧縮装置。
【請求項２】
前記予測値生成手段が、符号化対象の画素データに対し、１つ左隣の画素データを予測値とすることを特徴とする請求項１に記載の画像圧縮装置。
【請求項３】
請求項１に記載された画像圧縮装置によって得られた圧縮画像データを伸張する画像伸張装置であって、
前記記録媒体に記録された前記圧縮画像データを復号化することにより、前記改良差分値を求める復号化手段と、
すでに復元された画像データから求められる予測値から定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値から対応する画素データを順次復元し、前記画像データを復元する手段と
を備えたことを特徴とする画像伸張装置。
【請求項４】
前記予測値が、先に復元された前記画素データに基いて求められることを特徴とする請求項３に記載の画像伸張装置。
【請求項５】
入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、
前記予測値と前記画素データの画素値との差分である差分値のとりうる範囲に基づいて定められる改良差分値のとりうる範囲に従い、前記画素値および前記予測値に基づいて改良差分値を生成する改良差分値生成手段と、
前記改良差分値のビット列を上位ビット列と下位ビット列の２つに分離し、前記上位ビット列で表される上位改良差分値と前記下位ビット列で表される下位改良差分値を求めるビット分離手段と、
前記上位改良差分値を符号化することにより、圧縮画像データを求める符号化手段と、
前記圧縮画像データを記録媒体に記録するとともに、前記下位改良差分値をそのまま前記記録媒体に記録する記録手段とを備え、
前記改良差分値のとりうる範囲が、前記画素値のとりうる範囲の中で前記予測値より大きい非差分値の範囲の値に対し、正負の符号を変えるように反転させ、さらに、前記差分値のとりうる範囲の中で絶対値が前記非差分値の部分的範囲と等しい範囲において、前記正負が反転された非差分値の範囲の値と前記部分的範囲の値を、絶対値の小さい順で正負の値が交互に現れるように並べることにより規定され、
前記改良差分値生成手段が、前記予測値に基づいて定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と、前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値のとりうる範囲の中で、前記画素値に対応する改良差分値を求めることを特徴とする画像圧縮装置。
【請求項６】
前記ビット分離手段が、前記改良差分値のビット列を右シフト演算し、前記右シフト演算により変換される前記改良差分値のビット列を上位ビット列、前記右シフト演算により分離される下位ビットを下位ビット列とすることを特徴とする請求項５に記載の画像圧縮装置。
【請求項７】
請求項５に記載された画像圧縮装置によって得られた圧縮画像データを伸張する画像伸張装置であって、
前記記録媒体に記録された前記圧縮画像データを復号化することにより、前記上位改良差分値を求める復号化手段と、
前記復号化手段により得られた前記上位改良差分値と、前記記録媒体に記録された前記下位改良差分値をビット合成することにより、前記改良差分値を求めるビット合成手段と、
すでに復元された画像データから求められる予測値から定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値から対応する画素データを順次復元し、前記画像データを復元する手段と
を備えたことを特徴とする画像伸張装置。
【請求項８】
前記ビット合成手段が、前記上位改良差分値のビット列を左シフト演算し、前記左シフト演算により空白になるビット部分に前記下位ビット列を当てはめることにより、前記改良差分値を求めることを特徴とする請求項７に記載の画像伸張装置。
【請求項９】
入力される静止画像に対応し、ビット列で表される画像データに対し、前記画像データのビット列を２つに分離して上位ビット列で表される上位画像データと下位ビット列で表される下位画像データを求めるビット分離手段と、
複数の画素データによって構成される前記上位画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、
前記予測値と前記画素データの画素値との差分である差分値のとりうる範囲に基づいて定められる改良差分値のとりうる範囲に従い、前記画素値および前記予測値に基づいて改良差分値を生成する改良差分値生成手段と、
前記改良差分値を符号化することにより、圧縮画像データを求める符号化手段と、
前記圧縮画像データおよび前記下位画像データを記録媒体に記録する記録手段とを備え、
前記改良差分値のとりうる範囲が、前記画素値のとりうる範囲の中で前記予測値より大きい非差分値の範囲の値に対し、正負の符号を変えるように反転させ、さらに、前記差分値のとりうる範囲の中で絶対値が前記非差分値の部分的範囲と等しい範囲において、前記正負が反転された非差分値の範囲の値と前記部分的範囲の値を、絶対値の小さい順で正負の値が交互に現れるように並べることにより規定され、
前記改良差分値生成手段が、前記予測値に基づいて定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と、前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値のとりうる範囲の中で、前記画素値に対応する改良差分値を求めることを特徴とする画像圧縮装置。
【請求項１０】
前記ビット分離手段が、前記画像データのビット列を右シフト演算し、前記右シフト演算により変換される前記画像データのビット列を上位ビット列、前記右シフト演算により分離される下位ビットを前記下位ビット列とすることを特徴とする請求項９に記載の画像圧縮装置。
【請求項１１】
請求項９に記載された画像圧縮装置によって得られた圧縮画像データを伸張する画像伸張装置であって、
前記記録媒体に記録された前記圧縮画像データを復号化することにより、前記改良差分値を求める復号化手段と、
すでに復元された上位画像データから求められる予測値から定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値から対応する画素データを順次復元し、前記上位画像データを復元する手段と、
前記記録媒体に記録された前記下位画像データと前記上位画像データをビット合成することにより、前記画像データを求めるビット合成手段と
を備えたことを特徴とする画像伸張装置。
【請求項１２】
前記ビット合成手段が、前記上位画像データのビット列を左シフト演算し、前記左シフト演算により空白になるビット部分に前記下位ビット列を当てはめることにより、前記画像データを求めることを特徴とする請求項１１に記載の画像伸張装置。
【請求項１３】
入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、
前記予測値と前記画素データの画素値との差分である差分値のとりうる範囲に基づいて定められる改良差分値のとりうる範囲に従い、前記画素値および前記予測値に基づいて改良差分値を生成する改良差分値生成手段と、
前記改良差分値が負の値である場合には前記改良差分値を−１で掛け算して正の値に変換する手段と、
はじめから正である、もしくは−１が掛け算されたことにより正の値に変換された前記改良差分値のビット列を上位ビット列と下位ビット列の２つに分離し、前記上位ビット列で表される上位改良差分値と前記下位ビット列で表される下位改良差分値を求めるビット分離手段と、
前記下位改良差分値の前記下位ビット列に対し、前記改良差分値が正の値である場合には正の付加符号ビット、前記改良差分値が負の値である場合には負の付加符号ビットを付加する付加手段と、
前記上位改良差分値を符号化することにより、圧縮画像データを求める符号化手段と、
前記圧縮画像データと前記正および負の付加符号ビット付きで前記下位改良差分値を記録媒体に記録する記録手段とを備え、
前記改良差分値のとりうる範囲が、前記画素値のとりうる範囲の中で前記予測値より大きい非差分値の範囲の値に対し、正負の符号を変えるように反転させ、さらに、前記差分値のとりうる範囲の中で絶対値が前記非差分値の部分的範囲と等しい範囲において、前記正負が反転された非差分値の範囲の値と前記部分的範囲の値を、絶対値の小さい順で正負の値が交互に現れるように並べることにより規定され、
前記改良差分値生成手段が、前記予測値に基づいて定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と、前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値のとりうる範囲の中で、前記画素値に対応する改良差分値を求めることを特徴とする画像圧縮装置。
【請求項１４】
請求項１３に記載された画像圧縮装置によって得られた圧縮画像データを伸張する画像伸張装置であって、
前記記録媒体に記録された前記圧縮画像データを復号化することにより、前記上位改良差分値を求める復号化手段と、
前記記録媒体に記録された前記付加符号ビットを除いた前記下位改良差分値と前記上位改良差分値をビット合成することにより、前記改良差分値を求めるビット合成手段と、
前記下位改良差分値に付加されていて前記記録媒体に記録された付加符号ビットが負の値である場合には、前記ビット合成手段により得られた前記改良差分値に−１を掛け算して負の値に変換する手段と、
すでに復元された画像データから求められる予測値から定められる、前記画素値のとりうる範囲と、前記差分値のとりうる範囲と前記改良差分値のとりうる範囲との対応関係に従い、前記改良差分値から対応する画素データを順次復元し、前記画像データを復元する手段と
を備えたことを特徴とする画像伸張装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラー静止画像を圧縮、伸張処理するための画像圧縮装置および画像伸張装置に関する。
【０００２】
【従来の技術】
カラー静止画像を圧縮することによって通信回路を介した画像転送を効率的に行うため、ＪＰＥＧ（Joint Photographic Expert Group ）方式と呼ばれる画像圧縮方式が標準化されており、ＪＰＥＧ方式を大きく分けると基本方式（ベースラインプロセス）を代表とする非可逆符号化方式と可逆符号化方式の２つに分類される。後者の可逆符号化方式では、１画面の画像において隣接する画素間に相関関係があることから、符号化（圧縮）対象である画素データを隣接する画素データから予測し、予測した画素データと実際の画素データとの差分値を求め、この差分値を符号化する。符号化された画素データは、復号化され、予測値と差分値に基いて元の画素データに復元され、これにより原画像が復元される。
【０００３】
【発明が解決しようとする課題】
このような可逆符号化方式によれば、高解像度の画像に対して歪みを生じさせずに圧縮、伸張処理することができる。しかし、すべての画素データを符号化する必要があるために、直交変換と量子化の実行によりゼロラン（画素データを１列に並べたときの０の値である画素データが連続すること）を作り出す基本方式に比べて画像を効率的に圧縮することができない。
【０００４】
本発明は、高解像度の画像に対して画質劣化を生じさせず、かつ効率的に圧縮、伸張処理するための画像圧縮装置および画像伸張装置を得ることを目的としている。
【０００５】
【課題を解決するための手段】
本発明の画像圧縮装置は、入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、予測値と画素データとの差分をとることにより、差分値を求める差分値生成手段と、予測値に対応した差分値のとりうる範囲に基いて改良差分値を生成する改良差分値生成手段と、改良差分値を符号化することにより、圧縮画像データを求める符号化手段とを備え、改良差分値生成手段が、差分値のとりうる範囲のなかで、差分値と正負の符号を反転させた差分値を、差分値のとりうる範囲における差分値の増加もしくは減少方向に対応させて、絶対値の小さい順に並べることにより、改良差分値を求めることを特徴とする。
【０００６】
改良差分値生成手段は、絶対値が等しい差分値と正負の符号を反転させた差分値を、正の値と負の値が交互に現れるように並べることが望ましい。
【０００７】
改良差分値生成手段は、予測値に対応した差分値のとりうる範囲を第１および第２および第３の部分的範囲に分けるとともに、第１の部分的範囲を第４の部分的範囲に置き換え、差分値の存在しない非差分値範囲に存在する数値を第３の部分的範囲に存在する差分値の代わりに使用して、第２の部分的範囲に存在する差分値と非差分値範囲に存在する数値が絶対値の小さい順に交互に並べられた第５の部分的範囲を生成し、第４および第５の部分的範囲に存在するビット列で表される改良差分値を求めることが望ましい。
【０００８】
改良差分値生成手段は、第１の部分的範囲における上限の差分値と下限の差分値との絶対値が等しくなるように、差分値のとりうる範囲を第１および第２および第３の部分的範囲に分けることが望ましい。
【０００９】
改良差分値生成手段は、非差分値範囲に存在する数値の合計と第３の部分的範囲に存在する差分値の合計とが等しくなるように、差分値のとりうる範囲を第１および第２および第３の部分的範囲に分けることが望ましい。
【００１０】
予測値生成手段は、符号化対象の画素データに対し、１つ左隣の画素データを予測値とすることが望ましい。
【００１１】
本発明の画像伸張装置は、圧縮画像データを復号化することにより、改良差分値を求める復号化手段と、改良差分値のとりうる範囲と差分値のとりうる範囲を対応させることにより、差分値を復元する手段と、差分値と予測値との差をとることで画素データを順次復元することにより、画像データを復元する手段とを備えたことを特徴とする。
【００１２】
予測値は、先に復元された画素データに基いて求められることが望ましい。
【００１３】
本発明の画像圧縮装置は、入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、予測値と画素データとの差分をとることにより、差分値を求める差分値生成手段と、予測値に対応した差分値のとりうる範囲に基いてビット列で表される改良差分値を生成する改良差分値生成手段と、改良差分値のビット列を上位ビット列と下位ビット列の２つに分離し、上位ビット列で表される上位改良差分値と下位ビット列で表される下位改良差分値を求めるビット分離手段と、上位改良差分値を符号化することにより、圧縮画像データを求める符号化手段とを備え、改良差分値生成手段が、差分値のとりうる範囲のなかで、差分値と正負の符号を反転させた差分値を、差分値のとりうる範囲における差分値の増加もしくは減少方向に対応させて、絶対値の小さい順に並べることにより、改良差分値を求めることを特徴とする。
【００１４】
ビット分離手段は、改良差分値のビット列を右シフト演算し、右シフト演算により変換される改良差分値のビット列を上位ビット列、右シフト演算により分離される下位ビットを下位ビット列とすることが望ましい。
【００１５】
本発明の画像伸張装置は、圧縮画像データを復号化することにより、上位改良差分値を求める復号化手段と、復号化手段により得られた上位改良差分値と入力される下位改良差分値をビット合成することにより、改良差分値を求めるビット合成手段と、改良差分値のとりうる範囲と差分値のとりうる範囲を対応させることにより、差分値を復元する手段と、差分値と予測値との差をとることで前記画素データを順次復元することにより、画像データを復元する手段とを備えたことを特徴とする。
【００１６】
ビット合成手段は、上位改良差分値のビット列を左シフト演算し、左シフト演算により空白になるビット部分に下位ビット列を当てはめることにより、改良差分値を求めることが望ましい。
【００１７】
本発明の画像圧縮装置は、入力される静止画像に対応し、ビット列で表される画像データに対し、画像データのビット列を２つに分離して上位ビット列で表される上位画像データと下位ビット列で表される下位画像データとを求めるビット分離手段と、複数の画素データから構成される上位画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、予測値と画素データとの差分をとることにより、差分値を求める差分値生成手段と、予測値に対応した差分値のとりうる範囲に基いて改良差分値を生成する改良差分値生成手段と、改良差分値を符号化することにより、圧縮画像データを求める符号化手段とを備え、改良差分値生成手段が、差分値のとりうる範囲のなかで、差分値と正負の符号を反転させた差分値を、差分値のとりうる範囲における差分値の増加もしくは減少方向に対応させて、絶対値の小さい順に並べることにより、改良差分値を求めることを特徴とする。
【００１８】
ビット分離手段は、画像データのビット列を右シフト演算し、右シフト演算により変換される画像データのビット列を上位ビット列、右シフト演算により分離される下位ビットを前記下位ビット列とすることが望ましい。
【００１９】
本発明の画像伸張装置は、圧縮画像データを復号化することにより、前記改良差分値を求める復号化手段と、改良差分値のとりうる範囲と差分値のとりうる範囲を対応させることにより、前記差分値を復元する手段と、差分値と予測値との差をとることで画素データを順次復元することにより、上位画像データを復元する手段と、入力される下位画像データと上位画像データをビット合成することにより、画像データを求めるビット合成手段とを備えたことを特徴とする。
【００２０】
ビット合成手段は、上位画像データのビット列を左シフト演算し、左シフト演算により空白になるビット部分に下位ビット列を当てはめることにより、画像データを求めることが望ましい。
【００２１】
本発明の画像圧縮装置は、入力される静止画像に対応した、複数の画素データによって構成される画像データについて、各画素データ毎に、隣接する画素データに基いて予測値を求める予測値生成手段と、予測値と画素データとの差分をとることにより、差分値を求める差分値生成手段と、予測値に対応した差分値のとりうる範囲に基いてビット列で表される改良差分値を生成する改良差分値生成手段と、改良差分値が負の値である場合には改良差分値を−１で掛け算して正の値に変換する手段と、はじめから正である、もしくは−１が掛け算されたことにより正の値に変換された改良差分値のビット列を上位ビット列と下位ビット列の２つに分離し、上位ビット列で表される上位改良差分値と下位ビット列で表される下位改良差分値を求めるビット分離手段と、下位改良差分値の下位ビット列に対し、改良差分値が正の値である場合には正の付加符号ビット、改良差分値が負の値である場合には負の付加符号ビットを付加する付加手段と、改良差分値を符号化することにより、圧縮画像データを求める符号化手段とを備え、改良差分値生成手段が、差分値のとりうる範囲のなかで、差分値と正負の符号を反転させた差分値を、差分値のとりうる範囲における差分値の増加もしくは減少方向に対応させて、絶対値の小さい順に並べることにより、改良差分値を求めることを特徴とする。
【００２２】
本発明の画像伸張装置は、圧縮画像データを復号化することにより、上位改良差分値を求める復号化手段と、付加符号ビットを除いた下位改良差分値と上位改良差分値をビット合成することにより、改良差分値を求めるビット合成手段と、下位改良差分値に付加されていた付加符号ビットが負の値である場合には、ビット合成手段により得られた改良差分値に−１を掛け算して負の値に変換する手段と、改良差分値のとりうる範囲と差分値のとりうる範囲を対応させることにより、差分値を復元する手段と、差分値と予測値との差をとることで前記画素データを順次復元することにより、画像データを復元する手段と、
を備えたことを特徴とする。
【００２３】
【発明の実施の形態】
以下、本発明の実施形態である画像圧縮装置および画像伸張装置について図面を参照して説明する。
図１〜図１０は第１の実施形態例である画像圧縮装置および画像伸張装置に関する図であり、図１は、画像圧縮装置のブロック図である。
【００２４】
被写体像１６( 静止画像）は、レンズ１７を介して撮像素子１８の受光面上に結像される。撮像素子１８の受光面には光電変換素子が配設され、光電変換素子の上面にはレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の各色フィルタ要素からなるカラーフィルタが設けられている。各光電変換素子は一つの画素データに対応しており、被写体像は各光電変換素子によって所定の色に対応した電気的な画像信号に変換される。そして画像信号は、Ａ／Ｄ変換器( 図示せず）においてアナログ信号からデジタル信号に変換される。
【００２５】
デジタル化された画像信号は、信号処理回路（図示せず）において輝度データＹ、色差データＣｂ、Ｃｒに変換されて画像メモリ１９に画像データとして記録される。画像メモリ１９には、輝度データＹおよび色差データＣｂ、Ｃｒがそれぞれ独立した領域に格納されており、各メモリ領域は１画像分の記憶容量を有している。輝度データＹおよび色差データＣｂ、Ｃｒは、画像圧縮装置１０に対する入力データである。
【００２６】
輝度データＹおよび色差データＣｂ、Ｃｒの画像データは、１画面において複数のブロックに分割され、ブロック単位で処理される。各ブロックは、８×８個の画素データからなる。
【００２７】
輝度データＹおよび色差データＣｂ，Ｃｒは、画像メモリ１９から読み出され、画像圧縮装置１０内に送られる。画像圧縮装置１０は、予測値生成部１１、差分値生成部１２、改良差分値生成部１３、グループ部１４、ハフマン符号化部１５から構成されている。輝度データＹおよび色差データＣｂ，Ｃｒは、画像圧縮装置１０内においてそれぞれ別々に圧縮処理される。
【００２８】
各ブロックにおける輝度データＹおよび色差データＣｂ，Ｃｒの画素データに基き、予測値が予測値生成部１１において求められる。予測値は、符号化（圧縮）対象である画素データの値を隣接する画素データの値に基いて予測した値である。
【００２９】
輝度データＹおよび色差データＣｂ，Ｃｒの画素データは、差分値生成部１２において差分値に変換される。この差分値は、予測値生成部１１において得られた予測値から実際の画素データの値が引き算されることにより求められる。
【００３０】
輝度データＹおよび色差データＣｂ，Ｃｒの差分値は、改良差分値生成部１３において改良差分値に変換される。改良差分値は、予測値および差分値に基いて算出され、画素データの代わりに符号化の対象とされる。
【００３１】
輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は、グループ部１４においてグループ表Ｔに基いてグループ分けされ、改良差分値が属するグループのグループ番号とそのグループ番号に対応した付加ビットが求められる。
【００３２】
グループ部１４において得られたグループ番号に基いてハフマンテーブルＨを参照することにより、符号語がハフマン符号化部１５において求められる。ハフマン符号化部１５ではエントロピー符号化が行われ、ここではエントロピー符号化の一つとしてハフマン符号化が適用される。なお、グループ分けおよびハフマン符号化を、ここでは符号化とする。符号語とグループ部１４において得られた付加ビットを組み合わせた圧縮画像データ（符号化データ）が、記録媒体Ｍに記録される。
【００３３】
図２、図３を用いて、１つの画素ブロックに対する圧縮処理について説明する。ここでは、輝度データＹの画素データを対象とする。
【００３４】
図２では、画素ブロックＰと予測値行列Ｅと差分値行列Ｈと改良差分値行列ＫＨが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ画素値（画素データを以下では画素値とする）Ｐyx、予測値Ｅyx、差分値Ｈyx、改良差分値ＫＨyxと表される。
【００３５】
画素値Ｐyxにおいて、添字ｙは縦方向の位置を表し、上から０，１，２，・・・７である。また、添字ｘは横方向の位置を表し、左から０，１，２，・・・７である。例えば、ｘ＝１、ｙ＝１の場合、画素値Ｐyx＝１６２である。
【００３６】
まず符号化対象の画素値Ｐyxに隣接する画素値Ｐyxに基いて予測値Ｅyxが求められる。予測値Ｅyxの算出方法は幾つか知られているが、ここでは符号化対象である画素値Ｐyxの１つ左隣の画素値Ｐyx-1をそのまま予測値Ｅyxとする方法（前値予測）により予測値Ｅyxを求める。ただし、画素ブロックＰにおいて最左端の列に位置する画素値Ｐy0に対する予測値Ｅy0は、１つ左隣の画素ブロックＰにおいて最右端の列に位置する画素値Ｐy7から求められる。
【００３７】
例えば、符号化対象である画素値Ｐ17（＝１３２）の１つ左隣である画素値Ｐ16（＝１４）が予測値Ｅ17（＝１４）となる。
【００３８】
次に予測値Ｅyxとそれに対応する実際の画素値Ｐyxに基き、画素値Ｐyxが差分値Ｈyxに変換される。すなわち、予測値Ｅyxから画素値Ｐyxが引き算されて、差分値Ｈyxが求められる。
【００３９】
例えば、予測値Ｅ17（＝１４）から画素値Ｐ17＝（１３２）が引き算されることにより、差分値Ｈ17（＝−１１８）が求められる。
【００４０】
差分値Ｈyxは、予測値Ｅyxと画素値Ｐyxに基いて改良差分値ＫＨyxに変換される。改良差分値ＫＨyxは、−１２８〜１２７の範囲のいずれかの値であり、画素値Ｐyxの代わりに符号化の対象とされる。例えば、差分値Ｈ17（＝−１１８）は、改良差分値ＫＨ17（＝６６）に変換される。また、差分値Ｈ21（＝−１）はそのまま改良差分値ＫＨ21（＝−１）となる。なお、改良差分値ＫＨyxに関しては後述する。
【００４１】
図３では、グループ表ＴとハフマンテーブルＨが示されており、具体的に改良差分値ＫＨ17（＝６６）がグループ分けおよびハフマン符号化されている。
【００４２】
改良差分値ＫＨyxは、グループ表Ｔに基いてグループ分けされる。グループ表Ｔは、改良差分値ＫＨyxの属するグループを示す欄と、そのグループ番号Ｃを示す欄と、グループ番号Ｃに対応した付加ビット数を示す欄から構成されている。
【００４３】
例えば、グループ表Ｔを参照して改良差分値ＫＨ17（＝６６）をグループ分けすると、グループ番号［７］が得られ、付加ビット数は７となる。
【００４４】
グループ分けにより得られたグループ番号Ｃと付加ビット数から、付加ビットが求められる。付加ビットは、改良差分値ＫＨyxが属するグループにおいて改良差分値ＫＨyxの値を特定するために設けられたビットである。
【００４５】
グループ番号［７］のグループにおいて６６は−１２７から数えて６７番目に大きい数であることから、改良差分値ＫＨyx（＝６６）に対する付加ビットは−１２７が２進数「０００００００」であることを考慮すれば６６の２進数「１００００１０」である。
【００４６】
グループ分けにより得られたグループ番号Ｃに基いてハフマンテーブルＨを参照することにより、符号語が求められる。ハフマンテーブルＨは、グループ番号Ｃを示す欄と、符号長を示す欄と、符号語を示す欄から構成され、改良差分値ＫＨyxのグループ番号Ｃに対応した符号語を有している。
【００４７】
改良差分値ＫＨ17（＝６６）のグループ番号「７」に基いてハフマンテーブルＨを参照することにより、改良差分値ＫＨ17（＝６６）の符号語は、「１１１１０」である。
【００４８】
この符号語と付加ビットを組み合わせることで符号化データが求まる。改良差分値ＫＨ17（＝６６）の場合、符号語「１１１１０」と付加ビット「１００００１１」を組み合わせることにより、符号化データ「１１１１０１００００１１」が求められる。
【００４９】
このように改良差分値ＫＨyxをグループ分け、ハフマン符号化することで符号化データ、すなわち圧縮画像データが求められる。
【００５０】
図４、図５、図６を用いて、改良差分値ＫＨyxについて詳述する。ここでは、輝度データＹの改良差分値ＫＨyxを対象とする。
【００５１】
図４には、予測値Ｅ17（＝１４）に対する画素値Ｐyx、差分値Ｈyx、および改良差分値ＫＨyxのとりうる範囲を載せた表Ｓが示されている。また図５には、予測値Ｅ17（＝１４）に対する画素値Ｐyx、差分値Ｈyx、改良差分値ＫＨyxのとりうる範囲が棒線で表されており、棒線Ｌ０は画素値Ｐyxのとりうる範囲、棒線Ｌ１は差分値Ｈyxのとりうる範囲、棒線Ｌ２は改良差分値ＫＨyxのとりうる範囲を示している。
【００５２】
輝度データＹの画素値Ｐyxのとりうる範囲は、棒線Ｌ０で示されるように０〜２５５である。一方予測値Ｅ17（＝１４）に対する差分値Ｈyxのとりうる範囲は、棒線Ｌ１で示されるように−２４１〜１４である。従って予測値Ｅ17（＝１４）に対する差分値Ｈyxは、整数範囲（非差分値範囲）ＬＦ（１５〜１２７）には存在しない。
【００５３】
棒線Ｌ１で示される差分値Ｈyxが存在する範囲を、部分的範囲（第３の部分的範囲）ＬＣ（−２４１〜−１２９）、部分的範囲（第２の部分的範囲）ＬＢ（−１２８〜−１５）、部分的範囲（第１の部分的範囲）ＬＡ（−１４〜１４）に分ける。整数範囲ＬＦに存在する整数の合計数と部分的範囲ＬＣに存在する差分値Ｈyxの合計数は等しい。また、部分的範囲ＬＡでは、差分値Ｈyxが−１４〜１４の範囲の値をとる。
【００５４】
部分的範囲ＬＣに存在する差分値Ｈyxの代わりに整数範囲ＬＦに存在する整数が用いられるのが、棒線Ｌ２で示された改良差分値ＫＨyxのとりうる範囲である。棒線Ｌ２における部分的範囲（第５の部分的範囲）ＬＥ（−１２８〜−１５）では、整数範囲ＬＦに存在する整数と部分的範囲ＬＢに存在する差分値Ｈyxが絶対値の小さい順に交互に並べられている。この部分的範囲ＬＥは表Ｓにおいて網線で表される。具体的に部分的範囲ＬＥに存在する改良差分値ＫＨyxの一部（−１５、１５、−１６）がそれぞれ（ｎ１、ｎ２、ｎ３）で示されている。
【００５５】
この部分的範囲ＬＥにおける改良差分値ＫＨyxの並びは、部分的範囲ＬＢに存在する差分値Ｈyxとその差分値Ｈyxに対して正負の符号を反転させた差分値−Ｈyxを、交互に絶対値が小さい順に並べたものと等しい。
【００５６】
棒線Ｌ２における部分的範囲（第４の部分的範囲）ＬＤ（−１４〜１４）に存在する改良差分値ＫＨyxは、棒線Ｌ１における部分的範囲ＬＡに存在する差分値Ｈyxと対応している。なお、部分的範囲ＬＡ，部分的範囲ＬＤにおける最大値（ここでは１４）と最小値（ここでは−１４）の絶対値は等しい。
【００５７】
棒線Ｌ２で示される改良差分値ＫＨyxのとりうる範囲と棒線Ｌ１で示される差分値Ｈyxのとりうる範囲を対応させることにより、差分値Ｈyxに対応する改良差分値ＫＨyxが求められる。例えば、差分値Ｈyxが−１２９である場合、それに対応する改良差分値ＫＨyxは−７２である。
【００５８】
図４で示されるように、改良差分値ＫＨyxの絶対値の増加方向と、差分値Ｈyxの増加あるいは減少方向（ここでは減少方向）は対応している。そのため改良差分値ＫＨyxとそれに対応する差分値Ｈyxをそれぞれ比べてみると、差分値Ｈyxの絶対値が大きければ大きいほど改良差分値ＫＨyxの絶対値と差分値Ｈyxの絶対値との差はより大きい。
【００５９】
ここで図３で示されたグループ表Ｔによるグループ分けを取り上げると、改良差分値ＫＨyxは差分値Ｈyxに比べより小さいグループ番号Ｃのグループに属し、対応する付加ビットのビット数も少なくなる。また、グループ番号［８］に属する改良差分値ＫＨyxは−１２８のみとなり付加ビットは必要としない。従って改良差分値ＫＨyxの符号化データのビット数は差分値Ｈyxに比べ少なくなる。
【００６０】
図６には、予測値Ｅ17（＝１４）に対して差分値Ｈyxである確率分布が示されている。この確率分布は、棒線Ｌ１で示される範囲の差分値Ｈyxの中で実際に差分値Ｈyxになる確率を表している。横軸は差分値Ｈyxのとりうる範囲であり、縦軸は実際に差分値Ｈyxとなる確率である。
【００６１】
１画面の画像において隣接する画素間には相関関係があることから、差分値Ｈyxは０付近の値である確率が高い。従って、差分値Ｈyxの確率分布曲線はガウス分布曲線Ｖで表される。
【００６２】
部分的範囲ＬＥにおいて改良差分値ＫＨyxは、絶対値が小さい順に正と負が交互に現れるように並べられている。従って改良差分値ＫＨyxの絶対値の増加率（数値が大きくなっていく割合）は、部分的範囲ＬＢにおける差分値Ｈyxの絶対値の増加率に対して半分の増加率となる。絶対値の小さい差分値Ｈyxほど実際に符号化対象となる確率が高いことを考慮すれば、絶対値の増加率が抑えられている改良差分値ＫＨyxの符号化データのビット数は、差分値Ｈyxに比べて少なくなる。
【００６３】
このように予測値Ｅyxと差分値Ｈyxのとりうる範囲に基いて改良差分値ＫＨyxのとりうる範囲を生成し、差分値Ｈyxの代わりに改良差分値ＫＨyxを符号化すれば、符号化データに必要とするビット数、すなわち情報量が少なくて済む。
【００６４】
色差データＣｂ，Ｃｒの改良差分値ＫＨyxも、輝度データＹと同じように求められる。ただし、色差データＣｂ，Ｃｒの範囲は−１２８〜１２７であるため、色差データＣｂ、Ｃｒに１２８が足し算されてから同じように改良差分値ＫＨyxが求められる。
【００６５】
図７は、１つの改良差分値行列ＫＨを求める手順を示したフローチャートである。図２、図７を用いて１つの改良差分値行列ＫＨを求める手順を説明する。
【００６６】
ステップ１０１では、添字ｙが０に設定される。ステップ２０２では、添字ｘが０に設定され、求められる改良差分値ＫＨyxが行列の横方向を表す行の中で最も左側に位置する改良差分値ＫＨyxに決定される。求められる改良差分値ＫＨyxが決定されると、ステップ１０３に移る。そしてステップ１０３では、予測値Ｅyxが１２８以上であるか否かが判定される。
【００６７】
ステップ１０３において予測値Ｅyxが１２８以上であると判断されると、ステップ１０４に移る。ステップ１０４では、画素値Ｐyxが（１）式
Ｐyx＜２×Ｅyx−２５５          ・・・・・（１）
を満たすか否かが判定される。画素値Ｐyxが（１）式を満たすと判断されると、ステップ１０６に移る。画素値Ｐyxが（１）式を満たさないと判断されると、ステップ１０５に移り、改良差分値ＫＨyxが（２）式で求められ、ステップ１１３に移る。
ＫＨyx＝Ｅyx−Ｐyx                ・・・・・（２）
【００６８】
ステップ１０６では、画素値Ｐyxが偶数であるか否かが判断される。画素値Ｐyxが偶数であると判断されるとステップ１０７に移り、改良差分値ＫＨyxが（３）式で求められる。
ＫＨyx＝Ｐyx／２−１２８          ・・・・・（３）
画素値Ｐyxが偶数ではないと判断されるとステップ１０８に移り、改良差分値ＫＨyxが（４）式で求められる。
ＫＨyx＝１２８−（Ｐyx＋１）／２    ・・・・（４）
改良差分値ＫＨyxが求められると、ステップ１１３に移る。
【００６９】
例えば、予測値Ｅ61（＝１７５）に対する画素値Ｐ61（＝１９）は奇数であるから、改良差分値ＫＨ61は（４）式より
ＫＨ61＝１２８−（１９＋１）／２＝１１８
である。
【００７０】
ステップ１０３において予測値Ｅyxが１２８以上ではないと判断されるとステップ１０９に移る。ステップ１０９では、画素値Ｐyxが（５）式を満たすか否かが判断される。
Ｐyx＞２×Ｅyx                  ・・・・・（５）
画素値Ｐyxが（５）式を満たすと判断されるとステップ１１０に移る。画素値Ｐyxが上式を満たさないと判断されるとステップ１０５に移り、改良差分値ＫＨyxは（２）式で求められ、ステップ１１３に移る。
【００７１】
ステップ１１０では、画素値Ｐyxが偶数であるか否かが判定される。画素値Ｐyxが偶数でないと判断されるとステップ１１１に移り、改良差分値ＫＨyxは（６）式で求められる。
ＫＨyx＝−（Ｐyx＋１）／２        ・・・・・（６）
画素値Ｐyxが偶数であると判断されるとステップ１１２に移り、改良差分値ＫＨyxが（７）式で求められる。
ＫＨyx＝Ｐyx／２                ・・・・・（７）
改良差分値ＫＨyxが求められると、ステップ１１３に移る。
【００７２】
例えば、予測値Ｅ17（＝１４）に対する画素値Ｐ17（＝１３２）は偶数であることから、改良差分値ＫＨ17は（７）式より
ＫＨ17＝１３２／２＝６６
となる。
【００７３】
ステップ１１３では、添字ｘに１が加算される。すなわち、求められる改良差分値ＫＨyxが１つ右隣の改良差分値ＫＨyxに決定される。
【００７４】
ステップ１１４では、添字ｘが８であるか否かが判定される。すなわち、１つ改良差分値ＫＨyxが１つの行においてすべて求められたか否かが判定される。添字ｘが８であると判断されるとステップ１１５に移り、添字ｘが８でないと判断されるとステップ１０３に戻る。
【００７５】
ステップ１１５では、添字ｙに１が加算される。すなわち、求められる改良差分値ＫＨyxが１つ下の行の改良差分値ＫＨyxに決定される。
【００７６】
ステップ１１６では、添字ｙが８であるか否かが判定される。すなわち、改良差分値ＫＨyxがすべて求められたか否か判定される。添字ｙが８であると判定されると改良差分値行列ＫＨを求める演算は終了する。添字ｙが８でないと判断されるとステップ１０２に戻る。なお、１画面におけるすべての画素ブロックＰに対してこのような改良差分値行列ＫＨを求める演算が行われる。
【００７７】
以上のように圧縮処理において差分値Ｈyxの代わりに改良差分値ＫＨyxを符号化することにより、画像データを符号化するのに必要な情報量が少なくて済み、画像を効率的に圧縮することができる。
【００７８】
図８は、本発明の第１の実施形態を適用した画像伸張装置のブロック図である。この画像圧縮装置では、第１の実施形態における画像圧縮装置によって圧縮された画像データを復元する。
【００７９】
圧縮画像データは、記録媒体Ｍから読み出され、画像伸張装置２０に送られる。画像伸張装置２０は、ハフマン復号化部２１、グループ合成部２２、差分値復元部２３、画素データ復元部２４、予測値生成部２５から構成されている。
【００８０】
記録媒体Ｍに記録された輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データは、ハフマン復号化部２１において復号化される。すなわち、ハフマンテーブルＨを参照することにより、付加ビットを除いた符号化データからグループ番号が求められる。なおハフマン符号化部２１では、圧縮画像データに対するエントロピー復号化が行われ、ここではエントロピー復号化の一つであるハフマン復号化が適用される。
【００８１】
復号化により得られたグループ番号と付加ビットに基いてグループ表Ｔを参照することにより、改良差分値ＫＨyxがグループ合成部２２において求められる。なお、ハフマン復号化とグループ合成部２２において改良差分値を求めることを、ここでは復号化とする。そして輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は、差分値復元部２３において差分値に変換される。
【００８２】
この差分値と予測値生成部２５において生成される予測値を用いることにより、画素データが画素データ復元部２４において生成される。すなわち、すでに復元された画素データに基いて生成された予測値と差分値との差から画素データが求められる。求められた画素データは予測値生成部２５に送られ、次に復元される画素データに対する予測値の算出に用いられる。
【００８３】
順次画素データが復元されることにより、輝度データＹおよび色差データＣｂ，Ｃｒの画像データが復元され、画像データが画像メモリ１９に送られる。
【００８４】
図９を用いて圧縮画像データの伸張処理について説明する。ここでは、輝度データＹの圧縮画像データを対象としている。
【００８５】
図９には、改良差分値行列ＫＨと差分値行列Ｈと予測値行列Ｅと画素ブロックＰが８×８のマトリクスで示されている。各マトリクスの要素は、それぞれ改良差分値ＫＨyx、差分値Ｈyx、予測値Ｅyx、画素値Ｐyxと表される。
【００８６】
圧縮画像データは、ハフマンテーブルＨとグループ表Ｔに基いて復号化され、改良差分値ＫＨyxに変換される。
【００８７】
。予測値Ｅyxにおける改良差分値ＫＨyxのとりうる範囲と差分値Ｈyxのとりうる範囲を対応させることにより、改良差分値ＫＨyxから差分値Ｈyxが復元される。例えば予測値ＥyxがＥ44（＝１６７）のとき、改良差分値ＫＨ44（＝１１６）は差分値Ｈ44（＝１４４）に復元される。
【００８８】
差分値Ｈyxとそれに対応する予測値Ｅyxから、画素値Ｐyxが求められる。すなわち、予測値Ｅyxから差分値Ｈyxが引き算されることで、画素値Ｐyxが求められる。画素値Ｐyxは、画素ブロックＰにおいて１つずつ復元され、復元された画素値Ｐyxが次に復元される画素値Ｐyxに対する予測値Ｅyxとなる。
【００８９】
例えば、予測値Ｅ44（＝１６７）から差分値Ｈ44（＝１４４）が引き算されることにより、画素値Ｐ44（＝２３）が求められる。画素値Ｐ44は、次に復元される画素値Ｐ45に対する予測値Ｅ45（＝２３）となる。
【００９０】
このように順次画素値Ｐyxが復元されることにより、１つの画素ブロックＰが復元される。
【００９１】
図１０は、改良差分値ＫＨyxと予測値Ｅyxに基いて画素値Ｐyxを求める手順を示したフローチャートである。図９、図１０を用いて１つの画素ブロックＰを求める手順を説明する。
【００９２】
ステップ２０１では、添字ｙが０に設定される。ステップ２０２では、添字ｘが０に設定され、復元される画素値Ｐyxが行列の横方向を表す行の中で最も左側の画素値Ｐyxに決定される。復元される画素値Ｐyxが決定されるとステップ２０３に移り、予測値Ｅyxが１２８以上であるか否かが判定される。
【００９３】
ステップ２０３において、予測値Ｅyxが１２８以上であると判断されると、ステップ２０４に移る。 ステップ２０４では改良差分値ＫＨyxが（８）式を満たすか否かが判定される。
Ｅyx−２５５≦ＫＨyx≦２５５−Ｅyx      ・・・・（８）
改良差分値ＫＨyxが（８）式を満たすと判断されると、ステップ２０５に移り、画素値Ｐyxが（９）式で求められる。
Ｐyx＝Ｅyx−ＫＨyx                        ・・・・（９）
画素値Ｐyxが求められると、ステップ２１３に移る。
【００９４】
例えば、改良差分値ＫＨ32（＝７）に対する予測値Ｅ32（＝１６８）は、（８）式を満たすことから、画素値Ｐ32は（９）式より
Ｐ32＝１６８−７＝１６１
となる。
【００９５】
ステップ２０４において（８）式を満たさないと判断されると、ステップ２０６に移り、改良差分値ＫＨyxが０以上であるか否かが判定される。改良差分値ＫＨyxが０以上であると判定されるとステップ２０８に移り、画素値Ｐyxが（１０）式で求められる。
Ｐyx＝２５５−２×ＫＨyx              ・・・・・（１０）
改良差分値ＫＨyxが０以上ではない判断されると、ステップ２０７に移り、画素値Ｐyxが（１１）式で求められる。
Ｐyx＝ＫＨyx×２＋２５６              ・・・・・（１１）
画素値Ｐyxが求められるとステップ２１３に移る。
【００９６】
ステップ２０３において予測値Ｅyxが１２８以上でないと判断されるとステップ２０９に移る。ステップ２０９では、改良差分値ＫＨyxが（１２）式を満たすか否かが判定される。
−Ｅyx≦ＫＨyx≦Ｅyx                  ・・・・・（１２）
改良差分値Ｅが（１２）式を満たすと判断されるとステップ２０５に移り、（９）式により画素値Ｐyxが求められる。改良差分値ＫＨyxが（１２）式を満たさないと判断されるとステップ２１０に移る。
【００９７】
ステップ２１０では、改良差分値ＫＨyxが０以上であるか否かが判断される。改良差分値ＫＨyxが０以上であると判断されると、ステップ２１２に移り画素値Ｐyxが（１３）式で求められる。
Ｐyx＝２×ＫＨyx                      ・・・・・（１３）
改良差分値ＫＨyxが０以上でないと判断されるとステップ２１１に移り画素値Ｐyxが（１４）式で求められる。
Ｐyx＝−２×ＫＨyx−１                  ・・・・・（１４）
画素値Ｐyxが求められると、ステップ２１３に移る。
【００９８】
例えば、予測値Ｅ17（＝１４）に対する改良差分値ＫＨ17（＝６６）は０以上であるから、画素値Ｐ17は（１３）式より
Ｐ17＝２×６６＝１３２
となる。
【００９９】
ステップ２１３では、添字ｘに１が加算される。すなわち、復元される画素値Ｐyxが１つ右隣の画素値Ｐyxに決定される。
【０１００】
ステップ２１４では、添字ｘが８であるか否かが判定される。すなわち、画素値Ｐyxが１つの行においてすべて復元されたか否かが判定される。添字ｘが８であると判断されるとステップ２１５に移り、添字ｘが８でないと判断されるとステップ２０３に戻る。
【０１０１】
ステップ２１５では、添字ｙに１が加算される。すなわち、復元される画素値Ｐyxが１つ下の行の画素値Ｐyxに決定される。
【０１０２】
ステップ２１６では、添字ｙが８であるか否かが判定される。すなわち、１つの画素ブロックＰにおいて画素値Ｐyxがすべて復元されたか否かが判定される。添字ｙが８であると判定されると画素値Ｐyxを復元する演算は終了する。添字ｙが８でないと判断されるとステップ２０２に戻る。なお、１画面におけるすべての改良差分値行列ＫＨyxに対してこのような画素ブロックＰを求める演算が行われる。
【０１０３】
以上のように第１の実施形態によれば、差分値Ｈyxの代わりに改良差分値ＫＨyxを符号化することにより、圧縮画像データの情報量が少なくて済み、画像を効率的に圧縮することができる。また改良差分値ＫＨyxから画素値Ｐyxを復元することにより無歪みで画像を伸張することができる。
【０１０４】
図１１〜図１８は、第２の実施形態例である画像圧縮装置および画像伸張装置に関する図である。
【０１０５】
図１１は、第２の実施形態例を適用した画像圧縮装置のブロック図である。
【０１０６】
第１の実施形態と同じように被写体像１６の光がレンズ１７を介して撮像素子１８に結像される。撮像素子１８において光電変換により発生した画像信号はＡ／Ｄ変換器および信号処理回路においてそれぞれ処理されて輝度データＹおよび色差データＣｂ，Ｃｒに変換され、画像データとして画像メモリ１９に記録される。輝度データＹおよび色差データＣｂ，Ｃｒの画像データは画像メモリ１９から読み出され、画像圧縮装置３０に送られる。画像圧縮装置３０は、予測値生成部３１、差分値生成部３２、改良差分値生成部３３、ビット分離部３４、グループ部３５、ハフマン符号化部３６から構成されている。
【０１０７】
輝度データＹおよび色差データＣｂ、Ｃｒの画像データは、１画面において複数のブロックに分割され、ブロック単位で処理される。各ブロックは、８×８個の画素データからなる。
【０１０８】
各ブロックにおける輝度データＹおよび色差データＣｂ，Ｃｒの画素データに基き、予測値が予測値生成部３１において求められる。予測値は、符号化対象である１つの画素データに隣接する画素データに基づいて求められる。
【０１０９】
輝度データＹおよび色差データＣｂ，Ｃｒの画素データは、差分値生成部３２において差分値に変換される。すなわち、予測値生成部３１において得られた予測値から画素データが引き算されることにより、差分値が求められる。
【０１１０】
輝度データＹおよび色差データＣｂ，Ｃｒの差分値は、改良差分値生成部３３において改良差分値に変換される。
【０１１１】
輝度データＹおよび色差データＣｂ，Ｃｒは、画像圧縮装置３０内においてビット列で表され、輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値もビット列で表される。改良差分値のビット列は、ビット分離部３４において上位改良差分値のビット列（上位ビット列）と下位改良差分値のビット列（下位ビット列）に分離される。上位改良差分値はグループ部３５に送られるが、下位改良差分値は符号化されずに記録媒体Ｍの下位記録領域Ｍ２に記録される。
【０１１２】
輝度データＹおよび色差データＣｂ，Ｃｒの上位改良差分値は、グループ部３５においてグループ表Ｔに基いてグループ分けされ、上位改良差分値が属するグループのグループ番号とそれに対応した付加ビットが求められる。
【０１１３】
グループ部３５において得られたグループ番号に基いてハフマンテーブルＨを参照することにより、符号語がハフマン符号化部３６において求められる。そして、符号語とグループ部３５において得られた付加ビットを組み合わせた圧縮画像データが、記録媒体Ｍの圧縮画像データ記録領域Ｍ１に記録される。
【０１１４】
図１２を用いて画素ブロックＰに対する圧縮処理を説明する。
【０１１５】
図１２には、改良差分値行列ＫＨと、上位改良差分値行列ＤＨと、下位改良差分値行列ＤＬがそれぞれ８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ改良差分値ＫＨyx、上位改良差分値ＤＨyx、下位改良差分値ＤＬyxと表される。なお、改良差分値行列ＫＨは、第１の実施形態例の図２で示された改良差分値行列ＫＨであり、画素値Ｐyxから改良差分値ＫＨyxへの圧縮処理に関しては第１の実施形態と同じであるためここでは省略する。
【０１１６】
改良差分値ＫＨyxのビット列は、ビット分離により上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨyxと下位ビット列で表される下位改良差分値ＤＬyxが求められる。ここでは、ビット分離されるビット数は１ビットであり、１ビットに対してもビット列として表す。
【０１１７】
例えば、改良差分値ＫＨ01（＝６）のビット列は、ビット分離により上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨ01（＝３）と下位ビット列で表される下位改良差分値ＤＬ01（＝０）が求められる。ビット分離に関しては後述する。
【０１１８】
ビット分離により得られた上位改良差分値ＤＨyxは、グループ表およびハフマンテーブルＨに基いてグループ分けおよびハフマン符号化される。このとき、上位改良差分値ＤＨyxは改良差分値ＫＨyxに比べ小さい値となる。そのため、ハフマン符号化する前に実行されるジグザグスキャンにより並べられた上位改良差分値ＫＨyxの１次元の列では、ゼロランの出現頻度が増え、ゼロラン長（ゼロランの長さ）が長くなる。したがって、上位改良差分値ＫＨyxに対するグループ分けおよびハフマン符号化により得られる符号化データのビット数は、改良差分値Ｈyxに比べて少ない。すなわち、符号化データに必要な情報量が少なくて済む。
【０１１９】
図１２、図１３を用いて１ビットのビット分離を詳述する。そのため、改良差分値ＫＨyxをビット列で表す。１つの改良差分値ＫＨyxには、通常８ビットが割り当てられるが、ここでは１６ビットを割り当てる。改良差分値ＫＨyxは正負の値をとり、１６ビットにおいて１ビットが符号ビットとして使用される。
【０１２０】
図１３では、図１２の改良差分値ＫＨ01（＝６）に対するビット分離を示している。改良差分値ＫＨ01（＝６）は、２進法で表すと「０００００１１０」であり、符号ビットＦは正を示す「０」である。１６ビットのビット列Ｂ０において、２進数「０００００１１０」は右端からの８ビットを使用して表される。「０」である符号ビットＦは、ビット列Ｂ０の左端にある最上位ビットに置かれる。改良差分値ＫＨ01（＝６）が正の値であるため、使用されていない７ビットＪ０は「０００００００」である。
【０１２１】
ビット分離の実行により、改良差分値ＫＨ01（＝６）のビット列は、右シフト演算される。右シフト演算とは、ビット列における各ビットを指定されたビット数だけ右に桁移動させる演算である。１ビットの右シフト演算が実行されると、各ビットが右に１つずつ移動させられ、「０」である右端の最下位ビットＫは分離される。そして右シフト演算により空白になった左端の最上位ビットには、「０」である符号ビットＦが埋められる。
【０１２２】
このようにして、ビット列Ｂ０は右シフト演算により７ビットを使用して２進数「０００００１１」が表されるビット列Ｂ１に変換される。このビット列Ｂ１が上位ビット列であり、２進数「「００００００１１」を１０進法で表した値が上位改良差分値ＤＨ01の値となる。すなわち、上位改良差分値ＤＨ01の値は３である。
【０１２３】
一方、右シフト演算により分離された最下位ビットＫが下位ビット列であり、２進数「０」を１０進法で表した値が、下位改良差分値ＤＬ01の値である。すなわち、下位改良差分値ＤＬ01の値は０である。
【０１２４】
このように改良差分値ＫＨ01（＝６）のビット列Ｂ０は、ビット分離により上位ビット列であるビット列Ｂ１と下位ビット列である最下位ビットＫに分離され、上位改良差分値ＤＨ01（＝３）と下位改良差分値ＤＬ01（＝０）が求められる。
【０１２５】
以上のようなビット分離の実行により、改良差分値ＫＨyxのビット列が上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨyxと下位ビット列で表される下位改良差分値ＤＬyxが求められる。
【０１２６】
負である改良差分値ＫＨyxに対しても同じようにビット分離される。ただし、符号ビットＦは負を示す「１」であり、使用されない７ビットＪ０は「１１１１１１１」である。また、２ビット、３ビットのビット分離を実行する場合、２ビット、３ビットの右シフト演算が実行される。
【０１２７】
図１４は、改良差分値ＫＨに対するｎビットのビット分離の手順を示したフローチャートである。図１２、図１４を用いてビット分離のフローチャートを説明する。
【０１２８】
ステップ３０１では、添字ｙが０に設定される。ステップ３０２では、添字ｘが０に設定され、行列の横方向を表す行の中で最も左側の改良差分値ＫＨyxがビット分離の対象とされる。改良差分値ＫＨ00が（＝２）が最初のビット分離の対象である。
【０１２９】
ステップ３０３では、改良差分値ＫＨyxに対してｎビットのビット分離を実行するためにｎビットの右シフト演算が実行され、上位改良差分値ＤＨyxが求められる。
【０１３０】
例えば１ビットのビット分離の場合、改良差分値ＫＨ01（＝６）のビット列が１ビット右シフト演算され、上位改良差分値ＤＨ01（＝３）が求められる。また３ビットのビット分離の場合、改良差分値ＫＨ01（＝６）のビット列が３ビット右シフト演算され、上位改良差分値ＤＨ01（＝０）が求められる。
【０１３１】
ステップ３０４では、下位改良差分値ＤＬyxが求められる。下位改良差分値ＤＬyxを求める算術式は、（１５）式のようになる。
【０１３２】
ＤＬyx＝ＫＨyx−（ＤＨyx×２n ）    ・・・・・・（１５）
【０１３３】
例えば１ビットのビット分離の場合、改良差分値ＫＨ01（＝６）に対する上位改良差分値ＤＨ01の値は３であることから、下位改良差分値ＤＬ01は、
ＤＬ01＝６−（３×２1 ）＝０
となる。
【０１３４】
また３ビットのビット分離の場合、改良差分値ＫＨ01（＝６）に対する上位改良差分値ＤＨ01の値は０であることから、下位改良差分値ＤＬ01は、
ＤＬ01＝６−（０×２3 ）＝６
となる。
【０１３５】
ステップ３０５では、添字ｘに１が加算される。すなわち、１つ右隣の改良差分値ＫＨyxがビット分離の対象とされる。
【０１３６】
ステップ３０６では、添字ｘが８であるか否かが判定される。すなわち、１つの行に対してすべての改良差分値ＫＨyxがビット分離されたか否かが判定される。添字ｘが８であると判断されるとステップ３０７に移り、添字ｘが８でないと判断されるとステップ３０３に戻る。
【０１３７】
ステップ３０７では、添字ｙに１が加算される。すなわち、１つ下の行の改良差分値ＫＨyxがビット分離の対象とされる。
【０１３８】
ステップ３０８では、添字ｙが８であるか否かが判定される。すなわち、すべての改良差分値ＫＨyxがビット分離されたか否か判定される。添字ｙが８であると判定されると一連のビット分離は終了する。添字ｙが８でないと判断されるとステップ３０２に戻る。
【０１３９】
このように第２実施形態では、第１実施形態と違って改良差分値ＫＨyxを得た後にビット分離を実行して、ビット分離により得られる上位改良差分値を符号化する。圧縮処理においてビット分離を実行することにより、符号化データに必要な情報量が少なくて済むため、画像を効率的に圧縮することができる。
【０１４０】
図１５は、第２の実施形態で適用される画像伸張装置のブロック図である。この画像伸張装置では、第２の実施形態における画像圧縮装置によって圧縮された画像データを復元する。
【０１４１】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データは記録媒体Ｍの圧縮画像データ記録領域Ｍ１から読み出され、画像伸張装置４０に送られる。画像伸張装置４０は、ハフマン復号化部４１、グループ合成部４２、ビット合成部４３、差分値復元部４４、画素データ復元部４５、予測値生成部４６から構成されている。
【０１４２】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データから付加ビットを除いた符号語は、ハフマン復号化部４１において復号化される。すなわち、ハフマンテーブルＨを参照することにより符号語からグループ番号が求められる。この復号化はハフマン符号化とは逆の作用である。
【０１４３】
復号化により得られたグループ番号と付加ビットに基いてグループ表Ｔを参照することにより、上位改良差分値がグループ合成部４２において求められる。
【０１４４】
輝度データＹおよび色差データＣｂ、Ｃｒの上位改良差分値と記録媒体Ｍの下位記録領域Ｍ２から読み出された下位改良差分値がビット合成部４３においてビット合成され、改良差分値が復元される。
【０１４５】
輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は、差分値復元部４４において差分値に変換される。この差分値と予測値生成部４６において生成される予測値を用いることにより、画素データが画素データ復元部４５において生成される。すなわち、すでに復元された画素データに基いて生成された予測値と差分値との差から画素データが求められる。求められた画素データは予測値生成部４６に送られ、次に復元される画素データに対する予測値の算出に用いられる。
【０１４６】
順次画素データが復元されることにより、輝度データＹおよび色差データＣｂ，Ｃｒの画像データが復元され、画像データは画像メモリ１９に送られる。
【０１４７】
図１６を用いて、輝度データＹの圧縮画像データに対する伸張処理を説明する。
【０１４８】
図１６には、上位改良差分値行列ＤＨと下位改良差分値行列ＤＬと改良差分値行列ＫＨが８×８のマトリクスで例示されいてる。各マトリクスの要素は、それぞれ上位改良差分値ＤＨyx、下位改良差分値ＤＬyx、改良差分値ＫＨyxと表される。
【０１４９】
上位改良差分値とそれに対応する下位改良差分値ＤＬyxがビット合成され、改良差分値ＫＨyxが復元される。ビット合成されるビット数は、ここでは１ビットである。
【０１５０】
例えば、上位改良差分値ＤＨ01（＝３）と下位改良差分値ＤＬ01（＝０）がビット合成され、改良差分値ＫＨ01（＝６）が復元される。ビット合成に関しては、後述する。
【０１５１】
改良差分値ＫＨから画像データまでの伸張処理に関しては図２で示したように第１の実施形態例と同じであるためここでは省略する。
【０１５２】
図１６、図１７を用いて、ｎビットのビット合成を詳述する。そのため、上位改良差分値ＤＨyxをビット列で表す。
【０１５３】
図１７では、上位改良差分値ＤＨ01（＝３）と下位改良差分値ＤＬ01（＝０）に対する１ビットのビット合成を示している。
【０１５４】
上位改良差分値ＤＨ01（＝３）は、図１３で示したように１６ビットのビット列Ｂ１で表される。下位改良差分値ＤＬ01（＝０）は２進数で「０」であり、下位ビット列Ｋ１で表される。
【０１５５】
ビット合成の実行により、上位改良差分値ＤＨ01（＝３）のビット列Ｂ１は、左シフト演算される。左シフト演算は、各ビットを指定されたビット数だけ左に桁移動させる演算である。１ビットの左シフト演算が実行されると、各ビットが左に１つずつ移動させられ、左端の「０」である符号ビットＦが分離される。そして左シフト演算によって空白になった右端の最下位ビットには、「０」である下位ビット列Ｋ１が当てはめられる。また、左端から２番目の「０」であるビットＦ０が左端の最上位ビットに移動され、符号ビットＦとなる。
【０１５６】
左シフト演算により、ビット列Ｂ１は８ビットを使用して２進数「０００００１１０」が表されるビット列Ｂ０に変換される。そして２進数「０００００１１０」を１０進法で表した値が改良差分値ＫＨ01となる。すなわち、改良差分値ＫＨ01の値は６である。
【０１５７】
このように、上位改良差分値ＤＨ01（＝３）と下位改良差分値ＤＬ01（＝０）ビット合成され、改良差分値ＫＨ01（＝６）が復元される。
【０１５８】
なお、２ビット、３ビットのビット合成を実行する場合、２ビット、３ビットの左シフト演算が実行される。
【０１５９】
図１８は、上位改良差分値ＤＨyxと下位改良差分値ＤＬyxに対するｎビットのビット合成の手順を示したフローチャートである。図１６、図１８を用いてビット合成のフローチャートを説明する。
【０１６０】
ステップ４０１では、縦方向の位置を表すｙが０に設定される。ステップ４０２では、横方向の位置を表す添字ｘが０に設定され、行列の横方向を表す行の中でもっとも左側の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成の対象とされる。上位改良差分値ＤＨ00と下位改良差分値ＤＬ00が最初のビット合成の対象である。
【０１６１】
ステップ４０３では、上位改良差分値ＤＨyxに対してｎビットの左シフト演算が実行され、改良差分値ＫＨyxが求められる。改良差分値ＫＨyxを求める算術式は、（１６）式のようになる。
【０１６２】
ＫＨyx＝ＤＨyx×２n ＋ＤＬyx        ・・・・・・（１６）
【０１６３】
例えば、１ビットのビット合成の場合、上位改良差分値ＤＨ01（＝３）と下位改良差分値ＤＬ01（＝０）に対して改良差分値ＫＨ01の値は、
Ｄ01＝３×２1 ＋０＝６
となる。
【０１６４】
例えば、３ビットのビット合成の場合、上位改良差分値ＤＨ01（＝０）と下位改良差分値ＤＬ01（＝６）に対して改良差分値ＫＨ01の値は
Ｄ01＝０×２3 ＋６＝６
となる。
【０１６５】
ステップ４０４では、添字ｘに１が加算される。これによりビット合成される対象の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxが１つ右隣の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxに移される。
【０１６６】
ステップ４０５では、添字ｘが８であるか否かが判定される。すなわち、横方向の１つの行に関して全ての上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成されたか否かが判定される。添字ｘが８であると判定されるとステップ４０６に移る。添字ｘが８でないと判定されるとステップ４０３に戻る。
【０１６７】
ステップ４０６では、添字ｊに１が加算される。すなわち、ビット合成される対象の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxが、１つ下の行の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxに移される。
【０１６８】
ステップ４０７では、添字ｙが８であるか否かが判定される。すなわち、全ての上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成されたか否かが判定される。添字ｙが８であると判定されると、１つの上位改良差分値行列ＤＨと下位改良差分値行列ＤＬに対するビット合成は終了する。添字ｙが８でないと判定されると、ステップ４０２に戻る。
【０１６９】
以上のように第２の実施形態によれば、ビット分離を実行して改良差分値を上位改良差分値ＤＨyxと下位改良差分値ＤＬyxに分離することにより、符号化データに必要な情報量を少なくすることができる。すなわち、画像を効率的に圧縮することができる。また、ビット合成を実行して上位改良差分値ＤＨyxと下位改良差分値ＤＬyxから改良差分値ＫＨyxを復元することにより、無歪みで画像を復元することができる。
【０１７０】
図１９〜図２６は、第３の実施形態である画像圧縮装置および画像伸張装置に関する図である。
【０１７１】
図１９は、第３の実施形態である画像圧縮装置のブロック図である。
【０１７２】
第１の実施形態と同様に被写体像１６の光はレンズ１７を介して撮像素子１８上に結像され、撮像素子１８において光電変換により画像信号が発生する。画像信号はＡ／Ｄ変換器においてアナログ信号からデジタル信号に変換され、また信号処理回路（図示せず）において輝度データＹおよび色差データＣｂ，Ｃｒに変換される。輝度データＹおよび色差データＣｂ，Ｃｒは画像データとして画像メモリ１９に記録される。
【０１７３】
輝度データＹおよび色差データＣｂ、Ｃｒの画像データは、１画面において複数のブロックに分割され、ブロック単位で処理される。各ブロックは、８×８個の画素データからなる。
【０１７４】
輝度データＹおよび色差データＣｂ，Ｃｒの画像データは、画像メモリ１９から読み出され、画像圧縮装置５０に送られる。画像圧縮装置５０は、ビット分離部５１、予測値生成部５２、差分値生成部５３、改良差分値生成部５４、グループ部５５、ハフマン符号化部５６から構成されている。
【０１７５】
２進数のビット列で表される輝度データＹおよび色差データＣｂ，Ｃｒの画像データは、ビット分離部５１において上位画像データと下位画像データに分離される。そして下位画像データは、圧縮処理されずにそのまま記録媒体Ｍの下位記録領域Ｍ２に記録される。
【０１７６】
各ブロックにおける輝度データＹおよび色差データＣｂ，Ｃｒの上位画素データに基き、予測値が予測値生成部５２において求められる。予測値は、符号化（圧縮）対象である上位画素データの値を隣接する上位画素データを基にして予測した値である。
【０１７７】
輝度データＹおよび色差データＣｂ，Ｃｒの上位画素データは、差分値生成部５３において差分値に変換される。この差分値は、予測値生成部５２において得られた予測値から実際の画素データの値が引き算されることにより求められる。
【０１７８】
差分値は改良差分値生成部５４において改良差分値に変換される。改良差分値は、画素データと予測値に基いて算出され、差分値の代わりに符号化の対象とされる。
【０１７９】
輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は、グループ部５５においてグループ表Ｔに基いてグループ分けされ、改良差分値が属するグループのグループ番号とそのグループ番号に対応した付加ビットが求められる。
【０１８０】
グループ部５５において得られたグループ番号に基いてハフマンテーブルＨを参照することにより、符号語がハフマン符号化部５６において求められる。そして、符号語とグループ部５５において得られた付加ビットを組み合わせた圧縮画像データ（符号化データ）が、記録媒体Ｍに記録される。
【０１８１】
図２０、図２１を用いて１つの画素ブロックに対する圧縮処理を説明する。ただし、輝度データＹの画素ブロックを対象とする。
【０１８２】
図２０には、画素ブロックＰと、上位画素ブロックＰＨと、下位画素ブロックＰＬとがそれぞれ８×８のマトリクスで示されている。各マトリクスの要素は、それぞれ画素値Ｐyx、上位画素値ＰＨyx、下位画素値ＰＬyxと表される。
【０１８３】
各画素値Ｐyxのビット列はビット分離によって上位ビット列と下位ビット列に分離され、上位ビット列で表される上位画素値ＰＨyxと下位ビット列で表される下位画素値ＰＬyxが求められる。ビット分離されるビット数は、ここでは１ビットである。
【０１８４】
例えば画素値Ｐ01（＝１５３）は、ビット分離により上位ビット列と下位ビット列に分離され、上位ビット列で表される上位画素値ＰＨ01（＝７６）と下位ビット列で表される下位画素値ＰＬ01（＝１）が求められる。
【０１８５】
図２１では、上位画素ブロックＰＨと予測値行列Ｅと差分値行列Ｈと改良差分値行列ＫＨが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ上位画素値ＰＨyx、予測値Ｅyx、差分値Ｈyx、改良差分値ＫＨyxと表される。
【０１８６】
第１の実施形態と同じようにように上位画素値ＰＨyxに基いて予測値Ｅyxが求められる。ここでは符号化対象の上位画素値ＰＨyxの１つ左隣の上位画素値ＰＨyx-1の値が、そのまま予測値Ｅyxとなる。
【０１８７】
例えば、符号化対象である上位画素値ＰＨ01（＝７６）の１つ左隣である上位画素値Ｐ00（＝７９）が予測値Ｅ01（＝７９）となる。
【０１８８】
次に予測値Ｅyxとそれに対応する実際の上位画素値ＰＨyxに基き、上位画素値ＰＨyxが差分値Ｈyxに変換される。すなわち、予測値Ｅから上位画素値Ｐyxが引き算されて、差分値Ｈyxが求められる。
【０１８９】
例えば、予測値Ｅ01（＝７９）から上位画素値Ｐ01＝（７６）が引き算されることにより、差分値Ｈ01（＝３）が求められる。
【０１９０】
差分値Ｈyxは、予測値Ｅyxと画素値Ｐyxに基いて改良差分値ＫＨyxに変換される。改良差分値ＫＨyxは、−６４〜６３の範囲のいずれかの値であり、差分値Ｈyxの代わりに符号化の対象とされる。例えば、差分値Ｈ22（＝６９）は、改良差分値ＫＨ22（＝５６）に変換される。
【０１９１】
改良差分値ＫＨは、グループ表ＴおよびハフマンテーブルＨに基いてグループ分けおよびハフマン符号化され、これにより符号化データが求められる。
【０１９２】
図２２は、上位画素ブロックＰＨに対してｎビットのビット分離が実行された場合に１つの改良差分値行列ＫＨを求める手順を示したフローチャートである。図２１、図２２を用いて改良差分値ＫＨyxを求める手順を説明する。
【０１９３】
ステップ５０１では、添字ｙが０に設定される。ステップ５０２では、添字ｘが０に設定され、求められる改良差分値ＫＨyxが行列の横方向を表す行の中で最も左側の改良差分値ＫＨyxに決定される。すなわち、改良差分値ＫＨ00（＝１）が最初に求められる。求められる改良差分値ＫＨyxが決定されるとステップ５０３に移り、予測値Ｅyxの値が２7-n 以上であるか否かが判定される。
【０１９４】
ステップ５０３において予測値Ｅyxが２7-n 以上であると判断されるとステップ５０４に移る。ステップ５０４では、上位画素値ＰＨyxが（１７）式
ＰＨyx＜２×Ｅyx−２8-n ＋１      ・・・・・（１７）
を満たすか否かが判定される。上位画素値ＰＨyxが（１７）式を満たすと判断されると、ステップ５０６に移る。上位画素値ＰＨyxが（１７）式を満たさないと判断された場合、ステップ５０５移り、改良差分値Ｈyxが（１８）式で求められる。
ＫＨyx＝Ｅyx−ＰＨyx              ・・・・・（１８）
改良差分値ＫＨyxが求められると、ステップ５１３に移る。
【０１９５】
ステップ５０６では、上位画素値ＰＨyxが偶数であるか否かが判断される。上位画素値ＰＨyxが偶数であると判断されるとステップ５０７に移り、改良差分値ＫＨyxが（１９）式で求められる。
ＫＨyx＝ＰＨyx／２−２7-n         ・・・・・（１９）
上位画素値ＰＨyxが偶数ではないと判断されるとステップ５０８に移り、改良差分値ＫＨyxが（２０）式で求められる。
ＫＨyx＝２7-n −（ＰＨyx＋１）／２  ・・・・（２０）
改良差分値ＫＨyxが求められると、ステップ５１３に移る。
【０１９６】
例えば、１ビットのビット分離により得られた奇数である上位画素値ＰＨ22（＝１５）と予測値Ｅ22（＝８４）に対する改良差分値ＫＨyxは（２０）式より、
ＫＨ22＝２6 −（１５＋１）／２＝５６
である。
【０１９７】
ステップ５０３において予測値Ｅyxが２7-n 以上の値ではないと判断されるとステップ５０９に移る。ステップ５０９では、上位画素値ＰＨyxが（２１）式を満たすか否かが判定される。
ＰＨyx＞２×Ｅyx                    ・・・・・（２１）
上位画素値ＰＨyxが上式を満たすと判断されるとステップ５１０に移る。上位画素値ＰＨyxが上式を満たさないと判断されるとステップ５０５に移り、改良差分値ＫＨyxが（１８）式で求められる。改良差分値ＫＨyxが求められるとステップ５１３に移る。
【０１９８】
ステップ５１０では、上位画素値ＰＨyxが偶数であるか否かが判定される。上位画素値ＰＨyxが偶数でないと判断されるとステップ５１１に移り、改良差分値ＫＨyxが（２２）式で求められる。
ＫＨyx＝−（ＰＨyx＋１）／２      ・・・・・（２２）
上位画素値ＰＨyxが偶数であると判断されるとステップ５１２に移り、改良差分値ＫＨyxが（２３）式で求められる。
ＫＨyx＝ＰＨyx／２                ・・・・・（２３）
改良差分値ＫＨyxが求められると、ステップ５１３に移る。
【０１９９】
例えば、１ビットのビット分離により得られた奇数である上位画素値ＰＨ45（＝８１）とそれに対応する予測値Ｅ45（＝１１）に対して、改良差分値ＫＨyxは（２２）式より、
ＫＨ45＝−（８１＋１）／２＝−４１
となる。
【０２００】
ステップ５１３では、添字ｘに１が加算される。すなわち、求められる改良差分値ＫＨyxが１つ右隣の改良差分値ＫＨyxに決定される。
【０２０１】
ステップ５１４では、添字ｘが８であるか否かが判定される。すなわち、１つ改良差分値ＫＨyxが１つの行においてすべて求められたか否かが判定される。添字ｘが８であると判断されるとステップ５１５に移り、添字ｘが８でないと判断されるとステップ５０３に戻る。
【０２０２】
ステップ５１５では、添字ｙに１が加算される。すなわち、求められる改良差分値ＫＨyxが１つ下の行の改良差分値ＫＨyxに決定される。
【０２０３】
ステップ５１６では、添字ｙが８であるか否かが判定される。すなわち、改良差分値ＫＨyxがすべて求められたか否か判定される。添字ｙが８であると判定されると改良差分値ＫＨyxを求める計算は終了する。添字ｙが８でないと判断されるとステップ５０２に戻る。
【０２０４】
このように第３の実施形態では、第１の実施形態と異なって画素値Ｐyxに対してビット分離を実行し、ビット分離により得られた上位画素値ＰＨyxに対して圧縮処理を行う。そして改良差分値ＫＨyxはビット分離を行わないで得られる改良差分値ＫＨyxよりも小さい値となり、ゼロラン長が長くなる。このように圧縮処理において画素値Ｐyxをビット分離することにより、改良差分値ＫＨyxを符号化するのに必要な情報量が少なくて済み、効率的に画像を圧縮することができる。
【０２０５】
図２３は、第３の実施形態例である画像伸張装置のブロック図である。
【０２０６】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データは記録媒体Ｍの圧縮画像データ記録領域Ｍ１から読み出され、画像伸張装置６０に送られる。画像伸張装置６０は、ハフマン復号化部６１、グループ合成部６２、差分値復元部６３、上位画素データ復元部６４、ビット合成部６５、予測値生成部６６から構成されている。
【０２０７】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データから付加ビットを除いた符号語は、ハフマン復号化部６１において復号化される。すなわち、符号語に基いてハフマンテーブルＨを参照することによりグループ番号が求められる。この復号化はハフマン符号化とは逆の作用である。
【０２０８】
復号化により得られたグループ番号と付加ビットに基いてグループ表Ｔを参照することにより、改良差分値がグループ合成部６２において求められる。
【０２０９】
予測値生成部６６において生成される予測値に基き、輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は差分値復元部６３において差分値に変換される。予測値は、上位画素データ復元部６４において復元された上位画素データに基いて求められる。
【０２１０】
輝度データＹおよび色差データＣｂ，Ｃｒの差分値と予測値に基いて、上位画素データが上位画素データ復元部６４において復元される。復元された上位画素データは予測値生成部６６に送られ、次に復元される上位画素データに対する予測値の算出に用いられる。
【０２１１】
上位画素データが復元されることにより、輝度データＹおよび色差データＣｂ，Ｃｒの上位画像データが復元される。
【０２１２】
輝度データＹおよび色差データＣｂ、Ｃｒの上位画像データと記録媒体Ｍの下位記録領域Ｍ２から読み出された下位画像データがビット合成部６５においてビット合成され、画像データが復元される。復元された画像データは、画像メモリ１９に送られる。
【０２１３】
図２４、図２５を用いて圧縮画像データに対する伸張処理を説明する。圧縮画像データは、ここでは輝度データＹを対象としている。
【０２１４】
図２４では、改良差分値行列ＫＨ、予測値行列Ｅ、差分値行列Ｈ、上位画素ブロックＰＨが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ改良差分値ＫＨyx、予測値Ｅyx，差分値Ｈyx、上位画素値ＰＨyxと表される。
【０２１５】
ハフマンテーブルＨおよびグループ表Ｔを参照することにより、圧縮画像データから改良差分値ＫＨyxが求められる。そして予測値Ｅyxにおける改良差分値ＫＨyxのとりうる範囲と差分値Ｈyxのとりうる範囲が対応されて差分値Ｈyxが復元される。
【０２１６】
差分値Ｈyxと対応する予測値Ｅyxから上位画素値ＰＨyxが求められる。すなわち、予測値Ｅyxから差分値Ｈyxが引き算されることにより、上位画素値ＰＨyxが求められる。
【０２１７】
例えば予測値Ｅ44（＝８３）から差分値Ｈ44（＝７２）が引き算されることにより、上位画素値ＰＨ44（＝１１）が復元される。
【０２１８】
復元された上位画素値ＰＨyxは、次に復元対象となる１つ右隣の上位画素値ＰＨyxを算出するための予測値Ｅyxとなる。そして順次上位画素値ＰＨyxが復元されることにより、上位画素ブロックＰＨが復元される。
【０２１９】
図２５には、上位画素ブロックＰＨと下位画素ブロックＰＬと画素ブロックＰが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ上位画素値ＰＨyx、下位画素値ＰＬyx、画素値Ｐyxと表される。
【０２２０】
上位画素値ＰＨyxとそれに対応する下位画素値ＰＬyxがビット合成され、画素値Ｐyxが復元される。ビット合成されるビット数は、ここでは１ビットである。
【０２２１】
例えば上位画素値ＰＨ01（＝７６）と下位画素値ＰＬ01（＝１）がビット合成されると、画素値Ｐ01（＝１５３）が復元される。
【０２２２】
このように圧縮画像データが伸張処理され、画像ブロックＰが復元される。
【０２２３】
図２６は、ｎビットのビット分離を実行した場合に上位画素値ＰＨyxを求める手順を示したフローチャートである。図２４、図２６を用いて上位画素値ＰＨyxを求める手順を説明する。
【０２２４】
ステップ６０１では、添字ｙが０に設定される。ステップ６０２では、添字ｘが０に設定され、復元される上位画素値ＰＨyxが行列の横方向を表す行の中で最も左側の上位画素値ＰＨyxに決定される。復元される上位画素値ＰＨyxが決定されるとステップ６０３に移り、予測値Ｅyxが２7-n 以上であるか否かが判定される。
【０２２５】
ステップ６０３において、予測値Ｅyxが２7-n 以上であると判断されると、ステップ６０４に移る。 ステップ６０４では改良差分値ＫＨyxが（２４）式を満たすか否かが判定される。
Ｅyx−２8-n ＋１≦ＫＨyx≦２8-n −１−Ｅyx  ・・・（２４）
改良差分値ＫＨyxが（２４）式を満たすと判断されると、ステップ６０５に移り、上位画素値ＰＨyxが（２５）式で求められる。
ＰＨyx＝Ｅyx−ＫＨyx                  ・・・・・・（２５）
上位画素値ＰＨyxが求められると、ステップ６１３に移る。
【０２２６】
例えば、１ビットのビット分離が実行された場合に得られる改良差分値ＫＨ03（＝３）は、予測値Ｅ03（＝７９）であるとき、
８０−２7 ＝−４８≦３≦２7 −８０＝４８
より（２４）式を満たす。よって、上位画素値ＰＨ03は（２５）式より
ＰＨ03＝７９−３＝７６
である。
【０２２７】
ステップ６０４において改良差分値ＫＨyxが（２４）式を満たさないと判断されるとステップ６０６に移り、改良差分値ＫＨyxが０以上であるか否かが判定される。改良差分値ＫＨyxが０以上であると判定されるとステップ６０８に移り、上位画素値ＰＨyxが（２６）式で求められる。
ＰＨyx＝２8-n −１−２×ＫＨyx        ・・・・・（２６）
改良差分値ＫＨyxが０以上ではないと判断されるとステップ６０７に移り、上位画素値ＰＨyxが（２７）式で求められる。
ＰＨyx＝ＫＨyx×２＋２8-n             ・・・・・（２７）
上位画素値ＰＨyxが求められると、ステップ６１３に移る。
【０２２８】
ステップ６０３において予測値Ｅyxが２7-n 以上でないと判断されるとステップ６０９に移る。ステップ６０９では、改良差分値ＫＨyxが（２８）式の不等式を満たすか否かが判定される。
−Ｅyx≦ＫＨyx≦Ｅyx                ・・・・・（２８）
改良差分値ＫＨyxが（２８）式を満たすと判断されるとステップ６０５に移り、上位画素値ＰＨyxが（２５）式で求められる。改良差分値ＫＨyxが（２８）式を満たさないと判断されるとステップ６１０に移る。
【０２２９】
ステップ６１０では、改良差分値ＫＨyxが０以上であるか否かが判定される。改良差分値ＫＨyxが０以上であると判断されるとステップ６１２に移り、上位画素値ＰＨyxが（２９）式で求められる。
ＰＨyx＝２×ＫＨyx                ・・・・・（２９）
改良差分値ＫＨyxが０以上でないと判断されるとステップ６１１に移り、上位画素値ＰＨyxが（３０）式で求められる。
ＰＨyx＝−２×ＫＨyx−１            ・・・・・（３０）
上位画素値ＰＨyxが求められるとステップ６１３に移る。
【０２３０】
ステップ６１３では、添字ｘに１が加算される。すなわち、復元される上位画素値ＰＨyxが１つ右隣の上位画素値ＰＨyxに決定される。
【０２３１】
ステップ６１４では、添字ｘが８であるか否かが判定される。すなわち、上位画素値ＰＨyxが１つの行においてすべて復元されたか否かが判定される。添字ｘが８であると判断されるとステップ６１５に移り、添字ｘが８でないと判断されるとステップ６０３に戻る。
【０２３２】
ステップ６１５では、添字ｙに１が加算される。すなわち、復元される上位画素値ＰＨyxが１つ下の行の上位画素値ＰＨyxに決定される。
【０２３３】
ステップ６１６では、添字ｙが８であるか否かが判定される。すなわち、１つの画素ブロックＰにおいて上位画素値ＰＨyxがすべて復元されたか否かが判定される。添字ｙが８であると判定されると上位画素値Ｐyxを求める計算は終了する。添字ｙが８でないと判断されるとステップ６０２に戻る。
【０２３４】
以上のように第３の実施形態によれば、画素値Ｐを上位画素値ＰＨと下位画素値ＰＬにビット分離することにより、符号化データに必要な情報量が少なくなり、画像を効率的に圧縮することができる。また、上位画素値ＰＨと下位画素値ＰＬをビット合成することにより、無歪みで画像を復元することができる。
【０２３５】
図２７〜図３４は、第４の実施形態例である画像伸張装置および画像圧縮装置に関する図である。
【０２３６】
図２７では、第４の実施形態例である画像圧縮装置のブロック図が示されている。
【０２３７】
第１の実施形態と同じように被写体像１６の光がレンズ１７を介して撮像素子１８に結像される。撮像素子１８において光電変換により発生した画像信号はＡ／Ｄ変換器および信号処理回路においてそれぞれ処理されて輝度データＹおよび色差データＣｂ，Ｃｒに変換され、画像データとして画像メモリ１９に記録される。輝度データＹおよび色差データＣｂ，Ｃｒの画像データは画像メモリ１９から読み出され、画像圧縮装置７０に送られる。画像圧縮装置７０は、予測値生成部７１、差分値生成部７２、改良差分値生成部７３、ビット分離部７４、グループ部７５、ハフマン符号化部７６から構成されている。
【０２３８】
輝度データＹおよび色差データＣｂ、Ｃｒの画像データは、１画面において複数のブロックに分割され、ブロック単位で処理される。各ブロックは、８×８個の画素データからなる。
【０２３９】
各ブロックにおける輝度データＹおよび色差データＣｂ，Ｃｒの画素データに基き、予測値が予測値生成部７１において求められる。予測値は、符号化対象である１つの画素データに隣接する画素データに基づいて求められる。
【０２４０】
輝度データＹおよび色差データＣｂ，Ｃｒの画素データは、差分値生成部７２において差分値に変換される。すなわち、予測値生成部７１において得られた予測値から画素データが引き算されることにより、差分値が求められる。
【０２４１】
輝度データＹおよび色差データＣｂ，Ｃｒの差分値は、改良差分値生成部７３において改良差分値に変換される。
【０２４２】
輝度データＹおよび色差データＣｂ，Ｃｒは、画像圧縮装置内７０において２進数のビット列で表されており、輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値も２進数のビット列で表される。改良差分値のビット列は、ビット分離部７４においてビット分離され、上位改良差分値のビット列（上位ビット列）と下位改良差分値のビット列（下位ビット列）に分離される。そして下位改良差分値のビット列に対して付加符号ビットが付加されることにより、符号付下位改良差分値が求められる。符号付下位改良差分値は、符号化（圧縮）されずに記録媒体Ｍの符号付下位記録領域Ｍ３に記録される。
【０２４３】
輝度データＹおよび色差データＣｂ，Ｃｒの上位改良差分値は、グループ部７５においてグループ表Ｔに基いてグループ分けされ、上位改良差分値が属するグループのグループ番号とそれに対応した付加ビットが求められる。
【０２４４】
グループ部７５において得られたグループ番号に基いてハフマンテーブルＨを参照することにより、符号語がハフマン符号化部７６において求められる。そして、符号語とグループ部７５において得られた付加ビットを組み合わせた圧縮画像データが、記録媒体Ｍの圧縮画像データ記録領域Ｍ１に記録される。
【０２４５】
図２８を用いて画素ブロックＰに対する圧縮処理を説明する。
【０２４６】
図２８には、改良差分値行列ＫＨと、上位改良差分値行列ＤＨと下位改良差分値行列ＤＬがそれぞれ８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ改良差分値ＫＨyx、上位改良差分値ＤＨyx、下位改良差分値ＤＬyxと表される。なお改良差分値行列ＫＨは、第１の実施形態例の図２で示された改良差分値行列ＫＨであり、画素値Ｐyxから改良差分値ＫＨyxへの圧縮処理に関しては第１の実施形態と同じであるためここでは省略する。
【０２４７】
各改良差分値ＫＨyxは、ビット分離により上位改良差分値ＤＨyxと下位改良差分値ＤＬyxに分離される。すなわち、改良差分値ＫＨyxのビット列が上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨyxと下位ビット列で表される下位改良差分値ＤＬyxが求められる。このとき、正の値である改良差分値ＫＨyxはそのままビット分離されるが、負の値である改良差分値ＫＨyxは−１が掛け算されて正の値に変換された後ビット分離される。ここでビット分離されるビット数は、１ビットである。
【０２４８】
例えば、上位改良差分値ＫＨ02（＝−５）のビット列は、−１が掛け算されて値が５に変換された後に上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨ02（＝２）と下位ビット列で表される下位改良差分値ＤＬ02（＝１）が求められる。
【０２４９】
そして下位改良差分値ＤＬyxの下位ビット列に対し、 付加符号ビットが付加される。このとき、正の値である改良差分値ＫＨyxのビット列がビット分離されたときには正の付加符号ビット（＋）、負の値である改良差分値ＫＨyxのビット列がビット分離されたときには負の付加符号ビット（−）が、下位改良差分値ＤＬyxに付加される。正または負の付加符号ビットが付加された下位改良差分値ＤＬyxを符号付下位改良差分値ＦＬyxとして表す。
【０２５０】
例えば下位改良差分値ＤＬ02（＝１）のビット列に負の付加符号ビット（−）が付加されることにより、符号付下位改良差分値ＦＬ02（＝（−）１）が求められる。ただし、符号付下位改良差分値ＦＬ02の値が−１であるのではなく、１の値に付加符号ビット（−）が付加されていることを表している。
【０２５１】
上位改良差分値ＤＨyxはグループ分けおよびハフマン符号化され、これにより圧縮画像データが求められる。
【０２５２】
図２８、２９を用いて付加符号ビットを取り入れたビット分離について詳述する。そのため、改良差分値ＫＨyxをビット列で表す。通常改良差分値ＫＨyxには８ビットが割り当てられるが、ここでは１６ビットのビット列において８ビット割り当てられていることにする。また、改良差分値ＫＨyxは正負の値をとるため正または負の符号ビットが設けられる。
【０２５３】
図２９では、改良差分値ＫＨ02（＝−５）に対する１ビットのビット分離を示している。
【０２５４】
改良差分値ＫＨ02（＝−５）は、２進法で表すと「１１１１１０１１」であり、符号ビットＦは負を示す「１」である。１６ビットのビット列において２進数「１１１１１０１１」は右端から８ビットを使用して表され、符号ビットＦはビット列Ａ０の左端にある最上位ビットに置かれる。なお、使用されていない７ビットＪ０は「１１１１１１１」である。
【０２５５】
改良差分値ＫＨ02（＝−５）は、−１が掛け算されることで値が５に変換され、それによりビット列Ａ０はビット列Ａ１に変換される。ビット列Ａ１において、８ビットを使用して２進数「０００００１０１」が表され、符号ビットＦは正を示す「０」である。更に使用されていない７ビットＪ０は「０００００００」となる。
【０２５６】
ビット分離の実行により、ビット列Ａ１は右シフト演算される。右シフト演算とは、ビット列の各ビットを指定されたビット数だけ右に桁移動させ演算である。１ビットの右シフト演算が実行されると、各ビットが右に１つずつ移動させられ、「１」である最下位ビットＫは分離される。そして右シフト演算により空白になる左端の最上位ビットには「０」である符号ビットＦが当てはめられる。
【０２５７】
このような右シフト演算により、ビット列Ａ１は７ビットを使用して２進数「０００００１０」が表されるビット列Ａ２に変換される。このビット列Ａ２が上位ビット列であり、２進数「０００００１０」を１０進法で表した値が上位改良差分値ＤＨ02の値となる。すなわち、上位改良差分値ＤＨ02の値は２である。
【０２５８】
一方、右シフト演算により分離された最下位ビットＫが下位ビット列であり、最下位ビットＫの値が下位改良差分値ＤＬ02の値となる。２進数「１」は１０進法で１であるから、下位改良差分値ＤＬ02の値は１である。
【０２５９】
改良差分値ＫＨ02（＝−５）が負の値であるため、下位改良差分値ＤＬ02（＝１）に対して付加符号ビットＦ（−）が付加され、符号付下位改良差分値ＦＬ02（＝（−）１）が求められる。付加符号ビットＦ（−）は、負を示す「１」である。
【０２６０】
このように改良差分値ＫＨ02（＝−５）のビット列は、−１が掛け算されて値が５に変換された後ビット分離され、上位ビット列で表される上位改良差分値ＤＨ02（＝２）と下位ビット列で表される下位量改良差分値ＤＬ02（＝１）が求められる。そして、下位改良差分値ＤＬ02（＝１）のビット列に対して負の付加符号ビットＦ（−）が付加され、符号付下位改良差分値ＦＬ02（＝（−）１）が求められる。
【０２６１】
正の値である改良差分値ＫＨyxに対してビット分離を実行する場合、改良差分値ＫＨyxはそのままビット分離される。そしてビット分離により得られる下位改良差分値ＤＬyxに対して正の付加符号ビットＦ（＋）が付加される。付加符号ビットＦ（＋）は、正を示す「０」である。
【０２６２】
以上のように改良差分値ＫＨyxのビット列は、上位ビット列と下位ビット列に分離され、上位ビット列で表される上位改良差分値ＤＨyxと下位ビット列で表される下位改良差分値ＤＬyxが求められる。そして下位改良差分値ＤＬyxには、付加符号ビットＦ（＋）もしくはＦ（−）が付加される。
【０２６３】
なお、２ビット、３ビットのビット分離を実行する場合、２ビット、３ビットの右シフト演算が実行される。
【０２６４】
図３０は、１つの改良差分値行列に対するｎビットのビット分離の手順を示すフローチャートである。図２８、図３０を用いてビット分離のフローチャートを説明する。
【０２６５】
ステップ７０１では、添字ｙが０に設定される。ステップ７０２では、添字ｘが０に設定され、行列の横方向を表す行の中で最も左側の改良差分値ＫＨyxがビット分離の対象とされる。最初に改良差分値ＫＨ00（＝２）がビット分離の対象となる。
【０２６６】
ステップ７０３では、改良差分値ＫＨyxの値が０以上であるか否かが判定される。改良差分値ＫＨyxの値が０以上であると判定されると、ステップ７０４に移り、正の付加符号ビットＦ（＋）が設けられる。改良差分値ＫＨyxの値が０以上でないと判断された場合、ステップ７０５に移る。
【０２６７】
ステップ７０５では、負の付加符号ビットＦ（−）が設けられる。そしてステップ７０６では、改良差分値ＫＨyxに−１が掛け算され、改良差分値ＫＨyxは正の値に変換される。
【０２６８】
ステップ７０７では、改良差分値ＫＨyxに対してｎビットの右シフト演算が実行され、上位改良差分値ＤＨyxが求められる。
【０２６９】
例えば１ビットのビット分離の場合、改良差分値ＫＨ02（＝−５）は−１が掛け算されて右シフト演算されることにより、上位改良差分値ＤＨ02（＝２）が求められる。また３ビットのビット分離の場合、改良差分値ＫＨ02（＝−５）は−１が掛け算されて右シフト演算されることにより、上位改良差分値ＤＨ02（＝０）が求められる。
【０２７０】
ステップ７０８では、下位改良差分値ＤＬyxが求められる。下位改良差分値ＤＬyxを求める算術式は、（３１）式のようになる。
【０２７１】
ＤＬyx＝ＫＨyx−（ＤＨyx×２n ）・・・・・・（３１）
【０２７２】
例えば１ビットのビット分離の場合、符号を正にした後の改良差分値ＫＨ02（＝５）に対して上位改良差分値ＤＨ02の値が２であることから、下位改良差分値ＤＬ02の値は、
ＤＬ02＝５−（２×２1 ）＝１
となる。
【０２７３】
例えば３ビットのビット分離の場合、符号を正にした後の改良差分値ＫＨ02（＝５）に対して上位改良差分値ＤＨ02の値が０がであることから、下位改良差分値ＤＬ02の値は、
ＤＬ02＝５−（０×２3 ）＝５
となる。
【０２７４】
ステップ７０９では、下位改良差分値ＤＬyxにステップ７０４またはステップ７０５で設けられた付加符号ビットＦ（＋）または付加符号ビットＦ（−）が付加され、符号付下位量子化ＤＣＴ係数ＦＬyxが求められる。
【０２７５】
例えば下位改良差分値ＤＬ02（＝１）に対し、ステップ７０５で設けられた付加符号ビットＦ（−）が付加され、符号付下位改良差分値ＦＬ02（＝（−）１）が求められる。
【０２７６】
ステップ７１０では、添字x に１が加算される。すなわち、１つ右隣の改良差分値ＫＨyxが、ビット分離の対象とされる。
【０２７７】
ステップ７１１では、添字ｘが８であるか否かが判定される。すなわち、横方向の１つの行に対してすべての改良差分値ＫＨyxがビット分離されたか否かが判定される。添字ｘが８であると判定されるとステップ７１２に移り、添字ｘが８でないと判定されるとステップ７０３に戻る。
【０２７８】
ステップ７１２では、添字ｙに１が加算される。すなわち、１つ下の行の改良差分値ＫＨyxが、ビット分離の対象とされる。
【０２７９】
ステップ７１３では、添字y が８であるか否かが判定される。すなわち、すべての改良差分値ＫＨyxがビット分離されたか否かが判定される。添字ｙが８であると判定されると、改良差分値行列ＫＨに対するビット分離は終了する。添字ｙが８でないと判定されると、ステップ７０２に戻る。
【０２８０】
このように第４の実施形態では、第２の実施形態と異なり負の値である改良差分値ＫＨyxには−１を掛けて正の値に変換した後ビット分離する。このため、改良差分値ＫＨyxが−１のとき、そのままビット分離して得られる上位改良差分値ＫＨyxは−１であるが、−１を掛けてからビット分離して得られる上位改良差分値ＫＨyxは０となる。すなわち、ゼロランの出現頻度が高くなるため、符号化データに必要な情報量が少なくなる。従って画像を効率的に圧縮することができる。
【０２８１】
図３１は、第４の実施形態を適用した画像伸張装置のブロック図である。この画像伸張装置では、第４の実施形態における画像圧縮装置によって圧縮された画像データを復元する。
【０２８２】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データは、記録媒体Ｍの圧縮画像データ記録領域Ｍ１から読み出され、画像伸張装置８０に送られる。画像伸張装置８０は、ハフマン復号化部８１、グループ合成部８２、ビット合成部８３、差分値復元部８４、予測値生成部８６、画素データ復元部８５から構成されている。
【０２８３】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データから付加ビットを除いた符号語は、ハフマン復号化部８１において復号化される。すなわち、ハフマンテーブルＨを参照することにより符号語からグループ番号が求められる。この復号化はハフマン符号化とは逆の作用である。
【０２８４】
復号化により得られたグループ番号と付加ビットに基いてグループ表Ｔを参照することにより、上位改良差分値がグループ合成部８２において求められる。
【０２８５】
輝度データＹおよび色差データＣｂ、Ｃｒの上位改良差分値と記録媒体Ｍの符号付下位記録領域Ｍ３から読み出された符号付下位改良差分値から付加符号ビットを取り除いた下位改良差分値がビット合成部８３においてビット合成され、これにより改良差分値が復元される。
【０２８６】
輝度データＹおよび色差データＣｂ，Ｃｒの改良差分値は、差分値復元部８４において差分値に変換される。この差分値と予測値生成部８６において生成される予測値を用いることにより、画素データが画素データ復元部８５において生成される。すなわち、すでに復元された画素データに基いて生成された予測値と差分値との差から画素データが求められる。求められた画素データは予測値生成部８６に送られ、次に復元される画素データに対する予測値の算出に用いられる。
【０２８７】
順次画素データが復元されることにより、輝度データＹおよび色差データＣｂ，Ｃｒの画像データが復元され、画像データは画像メモリ１９に送られる。
【０２８８】
図３２を用いて圧縮画像データに対する伸張処理を説明する。以下では、輝度データＹの圧縮画像データを対象とする。
【０２８９】
図３２には、図２８で示された符号付下位改良差分値行列ＦＬと、下位改良差分値行列ＤＬと、上位改良差分値行列ＤＨと、改良差分値行列ＫＨとが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ符号付下位改良差分値ＦＬyx、下位改良差分値ＤＬyx、上位改良差分値ＤＨyx、改良差分値ＫＨyxと表される。
【０２９０】
符号付下位改良差分値ＦＬyxから付加符号ビットを取り除いた下位改良差分値ＤＬyxがビット合成の対象とされる。上位改良差分値ＤＨyxとそれに対応する下位改良差分値ＤＬyxがビット合成されることにより、改良差分値ＫＨyxが復元される。ただし、負の付加符号ビット（−）が付加されていた下位改良差分値ＤＬyxがビット合成の対象である場合、復元される改良差分値ＫＨyxは−１が掛け算され、負の値に変換される。ビット合成されるビット数は、ここでは１ビットである。
【０２９１】
例えば、 上位改良差分値ＤＨ02（＝２）と負の付加符号ビット（−）が付加されていた下位改良差分値ＤＬ02（＝１）がビット合成され、−１が掛け算されることにより、改良差分値ＫＨ02（＝−５）が復元される。
【０２９２】
改良差分値ＫＨyxから画素値Ｐyxまでの伸張処理に関しては図９で示された第１の実施形態と同じであるためここでは省略する。
【０２９３】
図３２、図３３を用いて、１ビットのビット合成を詳述する。そのため、上位改良差分値ＤＨyxをビット列で表す。
【０２９４】
図３３では、図３２の上位改良差分値ＤＨ02（＝２）と下位改良差分値ＤＬ02（＝１）に対する１ビットのビット合成を示している。
【０２９５】
上位改良差分値ＤＨ02（＝２）は、１６ビットのビット列Ａ２において、７ビットを使用して２進数「０００００１０」が表される。下位改良差分値ＤＬ02（＝１）は２進数で「１」であり、下位ビット列Ｋ１で表される。
【０２９６】
ビット合成の実行により、上位改良差分値ＤＨ02（＝２）のビット列Ａ２は左シフト演算される。左シフト演算とは、各ビットを指定されたビット数だけ左に移動させる演算である。１ビットの左シフト演算が実行されると、ビット列Ａ２において各ビットが１つずつ左に移動させられ、左端の「０」である符号ビットＦが分離される。そして左シフト演算により空白になった右端の最下位ビットには、「１」である下位ビット列Ｋ１が当てはめられる。また、左端から２番目の「０」であるビットＦ０が左シフト演算により最上位ビットに移動され、符号ビットＦとなる。
【０２９７】
このような左シフト演算により、ビット列Ａ２は８ビットを使用して２進数「０００００１０１」が表されるビット列Ａ１に変換される。２進数「０００００１０１」を１０進法で表すと値は５であるが、下位改良差分値ＤＬyx（＝１）には負の付加符号ビットＦ（−）が付加されていたことから、５の値に対して−１が掛け算される。この掛け算によりビット列Ａ１は、最上位ビットには負の符号ビットＦが置かれ、８ビットを使用して２進数「１１１１１０１１」が表されるビット列Ａ０に変換される。そして、２進数「１１１１１０１１」を１０進法で表した値が改良差分値ＫＨ02となる。すなわち、負の符号ビットＦを考慮すれば改良差分値ＫＨ02の値は、−５である。
【０２９８】
このように、上位改良差分値ＤＨ02（＝２）と下位改良差分値ＤＬ02（＝１）がビット合成され、付加符号ビットＦ（−）に対応して−１が掛け算されることにより、改良差分値ＫＨ02（＝−５）が復元される。
【０２９９】
ビット合成の対象である下位改良差分値ＤＬyxに対し正の付加符号ビットＦ（＋）が付加されていた場合、左シフト演算により得られるビット列において表される２進数の値が改良差分値ＫＨyxの値となる。
【０３００】
なお、２ビット、３ビットのビット合成を実行する場合、２ビット、３ビットの左シフト演算が実行される。
【０３０１】
図３４は、上位改良差分値行列と下位改良差分値行列に対するｎビットのビット合成の手順を示したフローチャートである。図３２、図３４を用いてビット合成のフローチャートを説明する。
【０３０２】
ステップ８０１では、添字ｙが０に設定される。ステップ８０２では、添字ｘが０に設定され、行列の横方向を表す行の中で一番左側の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成の対象とされる。上位改良差分値ＤＨ00と下位改良差分値ＤＬ00が最初のビット合成の対象である。
【０３０３】
ステップ８０３では、上位改良差分値ＤＨyxのビット列に対してｎビットの左シフト演算が実行され、下位改良差分値ＤＬyxを加えることにより改良差分値ＫＨyxが求められる。改良差分値ＫＨyxを求める算術式は、（３２）式のようになる。
【０３０４】
ＫＨyx＝ＤＨyx×２n ＋ＤＬyx・・・・・（３２）
【０３０５】
例えば１ビットのビット合成を実行する場合、上位改良差分値ＤＨ02（＝２）と下位改良差分値ＤＬ02（＝１）に対する改良差分値ＫＨ02の値は、
ＫＨ02＝２×２1 ＋１＝５
となる。
【０３０６】
例えば３ビットのビット合成を実行する場合、上位改良差分値ＤＨ02（＝０）と下位改良差分値ＤＬ02（＝５）に対する改良差分値ＫＨ02の値は、
ＫＨ02＝０×２3 ＋５＝５
となる。
【０３０７】
ステップ８０４では、下位改良差分値ＤＬyxに付加されていた付加符号ビットが正の付加符号ビット（＋）であるか否かが判定される。正の付加符号ビット（＋）でないと判定されるとステップ８０５に移り、改良差分値ＫＨyxは−１が掛け算され負の値に変換される。正の付加符号ビット（＋）であると判定されると、ステップ８０６に移る。
【０３０８】
ステップ８０６では、添字ｘに１が加算される。すなわち、１つ右隣の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成の対象とされる。
【０３０９】
ステップ８０７では、添字ｘが８であるか否かが判定される。すなわち、１つの行に関してすべての上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成されたか否かが判定される。添字ｘが８であると判定されると、ステップ８０８に移る。添字ｘが８でないと判定されると、ステップ８０３に戻る。
【０３１０】
ステップ８０８では、添字ｙに１が加算される。すなわち、１つ下の行の上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成の対象とされる。
【０３１１】
ステップ８０９では、添字ｙが８であるか否かが判定される。すなわち、すべての上位改良差分値ＤＨyxと下位改良差分値ＤＬyxがビット合成されたか否かが判定される。添字ｙが８であると判定されると、一連のビット合成は終了する。添字ｙが８でないと判定されると、ステップ８０２に戻る。
【０３１２】
以上のように第４の実施形態によれば、改良差分値ＫＨyxが正である時はそのままで、負である時は正の値に変換してビット分離し、上位改良差分値ＤＨyxと符号付下位改良差分値ＦＬyxを求めることにより、符号化データに必要な情報量を少なくすることができる。また上位改良差分値ＤＨyxと符号付下位改良差分値ＦＬyxに基いてビット合成を実行し、改良差分値ＫＨyxを復元することにより、無歪みで原画像を復元することができる。
【０３１３】
【発明の効果】
以上のように本発明によれば、高解像度の画像を無歪みで圧縮、伸張することができ、かつ効率的に圧縮することができる。
【図面の簡単な説明】
【図１】第１の実施形態例である画像圧縮装置のブロック図である。
【図２】画素ブロックと予測値行列と差分値行列と改良差分値行列を示した図である。
【図３】グループ表とハフマンテーブルを示した図である。
【図４】予測値が１４のときの画素値、差分値、改良差分値のとりうる範囲を示した表である。
【図５】予測値が１４のときの画素値、差分値、改良差分値のとりうる範囲を棒線で示した図である。
【図６】予測値に対して実際に差分値となる確率を示した図である。
【図７】改良差分値を求める手順を示したフローチャートである。
【図８】第１の実施形態例である画像伸張装置のブロック図である。
【図９】改良差分値行列と差分値行列と予測値行列と画素ブロックを示した図である。
【図１０】画素値を復元する手順を示したフローチャートである。
【図１１】第２の実施形態例である画像圧縮装置のブロック図である。
【図１２】改良差分値行列と上位改良差分値行列と下位改良差分値行列を示した図である。
【図１３】改良差分値のビット分離を示した図である。
【図１４】ビット分離の手順を示したフローチャートである。
【図１５】第２の実施形態例である画像伸張装置のブロック図である。
【図１６】上位改良差分値行列と下位改良差分値行列と改良差分値行列を示した図である。
【図１７】上位改良差分値と下位改良差分値に対するビット合成を示した図である。
【図１８】ビット合成の手順を示したフローチャートである。
【図１９】第３の実施形態例である画像圧縮装置のブロック図である。
【図２０】画素ブロックと上位画素ブロックと下位画素ブロックを示した図である。
【図２１】上位画素ブロックと予測値行列と差分値行列と改良差分値行列を示した図である。
【図２２】改良差分値を求める手順を示したフローチャートである。
【図２３】第３の実施形態例である画像伸張装置のブロック図である。
【図２４】改良差分値行列と差分値行列と上位画素ブロックと予測値行列を示した図である。
【図２５】上位画素ブロックと下位画素ブロックと画素ブロックを示した図である。
【図２６】画素値を復元する手順を示したフローチャートである。
【図２７】第４の実施形態例である画像伸張装置のブロック図である。
【図２８】改良差分値行列と上位改良差分値行列と下位改良差分値行列と符号付下位改良差分値行列を示した図である。
【図２９】改良差分値に対するビット分離を示した図である。
【図３０】ビット分離の手順を示したフローチャートである。
【図３１】第４の実施形態例である画像伸張装置のブロック図である。
【図３２】符号付下位改良差分値行列と下位改良差分値行列と上位改良差分値行列と改良差分値行列を示した図である。
【図３３】上位改良差分値と下位改良差分値に対するビット合成を示した図である。
【図３４】ビット合成の手順を示したフローチャートである。
【符号の説明】
ＬＡ  部分的範囲（第１の部分的範囲）
ＬＢ  部分的範囲（第２の部分的範囲）
ＬＣ  部分的範囲（第３の部分的範囲）
ＬＤ  部分的範囲（第４の部分的範囲）
ＬＥ  部分的範囲（第５の部分的範囲）
ＬＦ  整数範囲（非差分値範囲）
【図１】
0003857820.tif 000002
【図２】
0003857820.tif 000003
【図３】
0003857820.tif 000004
【図４】
0003857820.tif 000005
【図５】
0003857820.tif 000006
【図６】
0003857820.tif 000007
【図７】
0003857820.tif 000008
【図８】
0003857820.tif 000009
【図９】
0003857820.tif 000010
【図１０】
0003857820.tif 000011
【図１１】
0003857820.tif 000012
【図１２】
0003857820.tif 000013
【図１３】
0003857820.tif 000014
【図１４】
0003857820.tif 000015
【図１５】
0003857820.tif 000016
【図１６】
0003857820.tif 000017
【図１７】
0003857820.tif 000018
【図１８】
0003857820.tif 000019
【図１９】
0003857820.tif 000020
【図２０】
0003857820.tif 000021
【図２１】
0003857820.tif 000022
【図２２】
0003857820.tif 000023
【図２３】
0003857820.tif 000024
【図２４】
0003857820.tif 000025
【図２５】
0003857820.tif 000026
【図２６】
0003857820.tif 000027
【図２７】
0003857820.tif 000028
【図２８】
0003857820.tif 000029
【図２９】
0003857820.tif 000030
【図３０】
0003857820.tif 000031
【図３１】
0003857820.tif 000032
【図３２】
0003857820.tif 000033
【図３３】
0003857820.tif 000034
【図３４】
0003857820.tif 000035