説明

画像圧縮装置、画像処理装置及び画像圧縮方法

【課題】 再圧縮による画質の劣化を最小限まで抑制することを可能にする画像圧縮装置、画像処理装置及び画像圧縮方法を提供する。
【解決手段】 再圧縮部14は、単位領域毎に圧縮されているとともに当該単位領域を複数備える圧縮画像データPD1を、当該単位領域毎に伸張することで生成される伸張画像データPD2に対し、その少なくとも一部を修正することで生成される修正画像データPD3を受け付けて、当該修正画像データPD3中で修正された部分を含む単位領域である修正単位領域a1のデータを再圧縮することで、再圧縮修正単位領域データAD1を生成する。また、選択置換部15は、修正単位領域a1に対応する圧縮画像データPD1中の単位領域のデータを、再圧縮修正単位領域データAD1に置換することで、再圧縮画像データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を圧縮する画像圧縮装置や、当該画像圧縮装置を備えた画像処理装置に関する。また、画像を圧縮する画像圧縮方法に関する。
【背景技術】
【0002】
デジタルスチルカメラの撮像によって作成される画像データや、パソコンのウェブブラウザ等で扱われる画像データは、一つの画素の画素値を構成する各成分値(RGB:赤緑青)の階調が、例えば8ビット(フルカラー)程度と大きく、画像データ全体のデータ量も大きいものとなる。このような画像データは、データ量が大きいことから転送や保存などの扱いが不便になるため、例えばJPEG(Joint Photographic Experts Group)等の所定の規格(ISO/IEC10918−1等)に従って圧縮され、データ量が低減される。
【0003】
JPEGの規格に従うような非可逆的な圧縮を行うと、データ量を効果的に低減することはできるが、圧縮及び伸張後の画像データは、元の圧縮前の画像データと異なり画質が劣化する。これは、画像データを圧縮する際に、画像の見え方に対する影響が小さい一部のデータが削除されたり、演算で生じた値の端数の排除により近似化されたりするが、画像データを伸張する際に、圧縮時に削除されたデータと完全に一致したデータを補填することができなかったり、圧縮時に近似化された値を使用せざるを得なかったりすることに起因する。
【0004】
さらに、圧縮されている画像データを伸張し、さらに圧縮する(再圧縮する)だけでも、画質は劣化する。具体的に例えば、圧縮されて保存されている画像データを修正するために、当該画像データを一旦伸張し、修正後に画像データを再圧縮するだけでも、画質は劣化する。
【0005】
そこで、例えば特許文献1及び2では、画像データの圧縮及び伸張が、画像データのMCU(Minimum Coded Unit)毎に行われていることを利用して、再圧縮に伴う画質の劣化を抑制する画像処理装置が提案されている。
【0006】
具体的に、特許文献1では、画像データ中のある部分を他の部分へ移動する(カット&ペーストする)際に、MCU内における当該ある部分の境界の位置が移動の前後で保持されるようにすることで、画質の劣化を抑制する画像処理装置が提案されている。また、特許文献2では、選択された複数のMCUから成る矩形領域を伸張することで仮想画像を生成し、当該仮想画像が修正されれば、修正後の仮想画像をMCU毎に再圧縮して、画像データに書き戻す画像処理装置が提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平06−217111号公報
【特許文献2】特開平06−46243号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1で提案されている画像処理装置では、カット&ペーストのみでしか画像データを修正することができない上に、貼り付け可能な位置が制限される。そのため、画像データへの書き足しや、画像データ中の部分的な変形、自由な位置への貼り付けなど、多様な修正に対応することができないため、問題となる。さらに、修正後に画像データ全体が再圧縮されることで、修正されていないMCUのデータが無用に再圧縮されて画質が劣化するため、問題となる。
【0009】
一方、特許文献2で提案されている画像処理装置では、画像の劣化を、修正が行われ得る仮想画像の範囲内に限定することができる。しかしながら、修正が行われた部分が仮想画像の範囲内よりも十分に小さい場合、修正されていないMCUのデータが無用に再圧縮されることで画質が劣化するため、問題となる。
【0010】
本発明は、上記の問題点に鑑み、再圧縮による画質の劣化を最小限まで抑制することを可能にする画像圧縮装置、画像処理装置及び画像圧縮方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明は、所定の単位領域毎に圧縮されているとともに当該単位領域を複数備える圧縮画像データを、当該単位領域毎に伸張することで生成される伸張画像データに対し、その少なくとも一部を修正することで生成される修正画像データを受け付けて、前記修正画像データ中で修正された部分を含む前記単位領域である修正単位領域のデータを再圧縮することで再圧縮修正単位領域データを生成する再圧縮部と、
前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換することで、再圧縮画像データを生成する選択置換部と、
を備えることを特徴とする画像圧縮装置を提供する。
【0012】
さらに、上記特徴の画像圧縮装置は、前記再圧縮部は、前記圧縮画像データに用いられている圧縮方法を用いて、前記修正画像データ中の前記修正単位領域のデータを再圧縮すると、好ましい。
【0013】
このように構成すると、再圧縮修正単位領域データに適用されている再圧縮方法を、圧縮画像データに適用されている圧縮方法と一致させることができる。そのため、再圧縮修正単位領域データによる圧縮画像データの直接的な置換が可能になる。
【0014】
さらに、上記特徴の画像圧縮装置は、前記圧縮画像データに用いられている圧縮方法を検出する検出部を、さらに備え、
前記再圧縮部は、前記検出部が検出した圧縮方法を用いて、前記修正単位領域のデータを再圧縮すると、好ましい。
【0015】
このように構成すると、一般的なユーザであっても意識し難い伸張方法と再圧縮方法との対応を、容易かつ確実に実現することが可能になる。
【0016】
さらに、上記特徴の画像圧縮装置は、前記伸張画像データ及び前記修正画像データのそれぞれの画素値を、対応する単位領域毎に比較することで前記修正単位領域を検出する比較部を、さらに備え、
前記再圧縮部は、前記比較部が検出した前記修正単位領域のデータを再圧縮し、
前記選択置換部は、前記比較部が検出した前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換すると、好ましい。
【0017】
このように構成すると、修正画像データ中の修正単位領域を、精度良く検出することが可能になる。
【0018】
また、本発明は、上記のいずれかの特徴を有する画像圧縮装置と、
前記単位領域毎に圧縮及び符号化されている圧縮符号化画像データを、当該単位領域毎に復号化することで、前記圧縮画像データを生成する復号化部と、
前記圧縮画像データを前記単位領域毎に伸張することで、前記伸張画像データを生成する伸張部と、
前記再圧縮画像データを、前記単位領域毎に再符号化することで、再圧縮符号化画像データを生成する再符号化部と、
を備えることを特徴とする画像処理装置を提供する。
【0019】
さらに、上記特徴の画像処理装置は、前記圧縮符号化画像データに関連付けられているデータを参照することで、前記圧縮符号化画像データに用いられている符号化方法と、前記圧縮画像データに用いられている圧縮方法と、のそれぞれを検出する検出部を、さらに備え、
前記復号化部は、前記検出部が検出した前記符号化方法に対応する復号化方法を用いて、前記圧縮符号化データを復号化し、
前記伸張部は、前記検出部が検出した前記圧縮方法に対応する伸張方法を用いて、前記圧縮画像データを伸張し、
前記再圧縮部は、前記検出部が検出した前記圧縮方法を用いて、前記修正単位領域のデータを再圧縮し、
前記符号化部は、前記検出部が検出した前記符号化方法を用いて、前記再圧縮画像データを再符号化すると、好ましい。
【0020】
このように構成すると、一般的なユーザであっても意識し難い復号化方法及び再符号化方法の対応と、伸張方法及び再圧縮方法の対応と、を容易かつ確実に実現することが可能になる。
【0021】
また、本発明は、所定の単位領域毎に圧縮されるとともに当該単位領域を複数備える圧縮画像データを、当該単位領域毎に伸張することで生成される伸張画像データに対し、その少なくとも一部を修正することで生成される修正画像データを受け付けて、前記修正画像データ中で修正された部分を含む前記単位領域である修正単位領域のデータを再圧縮することで再圧縮修正単位領域データを生成する再圧縮ステップと、
前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換することで、再圧縮画像データを生成する選択置換ステップと、
を備えることを特徴とする画像圧縮方法を提供する。
【発明の効果】
【0022】
上記特徴の画像圧縮装置や画像処理装置、画像圧縮方法によれば、修正された部分が含まれる修正単位領域が選択的に再圧縮され、他の部分は圧縮画像データと同様である(即ち、伸張及び再圧縮に伴う劣化が生じていない)再圧縮画像データを生成することができる。したがって、画像処理装置は、再圧縮による画質の劣化を、必要最小限である修正により変更された修正単位領域に留めることで、画質の劣化を最小限まで抑制した再圧縮画像データを生成することが可能になる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施形態に係る画像処理装置の概略構成を示すブロック図。
【図2】圧縮画像データの模式図。
【図3】図1に示す画像処理装置の概略動作を示すフローチャート。
【図4】本発明の実施例に係る画像処理装置の概略構成を示すブロック図。
【図5】圧縮符号化画像データの生成方法の一例を示す図。
【図6】ダウンサンプリング処理によって間引かれる各成分値の具体例を示す図。
【図7】各成分値を間引くための演算方法の具体例を示す図。
【図8】量子化テーブルの具体例を示す図。
【図9】図4に示す画像処理装置の概略動作を示すフローチャート。
【図10】図4に示す画像処理装置をソフトウエア(プログラム)として実現する場合の具体例を示すブロック図
【発明を実施するための形態】
【0024】
<<画像処理装置の概略>>
最初に、本発明の実施形態に係る画像処理装置の概略構成について、図1及び図2を参照して説明する。図1は、本発明の実施形態に係る画像処理装置の概略構成を示すブロック図である。図2は、圧縮画像データの模式図である。なお、図1では、画像処理装置が処理する各データの具体例を示す模式図を、ブロック図と併せて示している。また、図2に示す圧縮画像データの模式図は、図1に示した圧縮画像データを拡大したものである。
【0025】
図1に示すように、画像処理装置1は、単位領域(図1中の各データの模式図及び図2に示す圧縮画像データの模式図において、破線で囲まれた矩形の領域として例示)毎に圧縮されるとともに単位領域を複数備える圧縮画像データPD1を単位領域毎に伸張して伸張画像データPD2を生成する伸張部11と、伸張画像データPD2の少なくとも一部を修正して修正画像データPD3を生成する修正部12と、伸張画像データPD2及び修正画像データPD3のそれぞれの画素値を対応する単位領域毎に比較することで修正画像データPD3中の修正された部分を含む単位領域である修正単位領域a1を検出する比較部13と、修正単位領域a1のデータを再圧縮することで再圧縮修正単位領域データAD1を生成する再圧縮部14と、修正単位領域a1に対応する圧縮画像データPD1中の単位領域のデータを再圧縮修正単位領域データAD1に置換することで再圧縮画像データP4を生成する選択置換部15と、を備える。
【0026】
次に、図1及び図3を参照して、図1に示した画像処理装置1の概略動作について説明する。図3は、図1に示す画像処理装置の概略動作を示すフローチャートである。
【0027】
図3に示すように、画像処理装置1が動作を開始すると、最初に、伸張部11が単位領域毎に圧縮画像データPD1を伸張することで、伸張画像データPD2を生成する(ステップ#1)。
【0028】
次に、修正部12が、伸張画像データPD2を修正して、修正画像データPD3を生成する(ステップ#2)。なお、修正部12が伸張画像データPD2に対して行う修正内容とは、例えば、マウスやタッチパネル等のユーザインターフェースを介して画像処理装置1に入力されるユーザの指示に従ったものである。
【0029】
上記のように修正画像データPD3が生成されると、画像処理装置1は、転送や保存等に適した形式にするべく、この修正画像データPD3に基づいた再圧縮画像データPD4を生成する。ただし、本発明の実施形態に係る画像処理装置1では、以下に説明するように、修正画像データPD3をそのまま単純に再圧縮せず、画質の劣化を最小限まで抑制する再圧縮を行う。
【0030】
まず、比較部13が、伸張画像データPD2及び修正画像データPD3において、対応する(同じ位置となる)N番目の単位領域(最初はN=1、ステップ#3)について画素値を比較することで、修正画像データPD3中の修正単位領域a1の有無を検出する(ステップ#4,NO及びステップ#5)。ただし、比較部13が比較すべき単位領域がない場合、換言すると、Nmax(例えば、各画像データP1〜P4に含まれる単位領域の総数)番目の単位領域まで既に比較している場合は(ステップ#4,YES)、画像処理装置1の動作を終了する。
【0031】
比較部13は、伸張画像データPD2及び修正画像データPD3の、N番目の単位領域内の画素値が異なる(例えば、画素値が異なる画素が1以上ある)ことを確認する場合、修正画像データPD3中の当該N番目の単位領域に、修正された部分が含まれると判断する(ステップ#6,YES)。即ち、比較部13が、修正画像データPD3中の当該N番目の単位領域を、修正単位領域a1であると判断する。
【0032】
再圧縮部14は、修正画像データPD3中の、比較部13が判断した修正単位領域a1のデータを再圧縮することで、再圧縮修正単位領域データAD1を生成する(ステップ#7)。このとき、再圧縮部14は、圧縮画像データPD1に用いられている圧縮方法を用いて、修正単位領域a1のデータを再圧縮する(詳細は後述の実施例において述べる)。なお、圧縮画像データPD1に用いられている圧縮方法は、例えば、圧縮画像データPD1の解析や、圧縮画像データPD1に関連付けられているヘッダデータなどを参照することによって、把握することができる。
【0033】
さらに、選択置換部15は、圧縮画像データPD1中のN番目の単位領域のデータを、再圧縮修正単位領域データAD1に置換する(ステップ#8)。これにより、選択置換部15によって生成される再圧縮画像データPD4のN番目の単位領域のデータが、再圧縮修正単位領域データAD1になる。
【0034】
一方、比較部13が、伸張画像データPD2及び修正画像データPD3の、N番目の単位領域内の画素値が等しい(例えば、画素値が異なる画素がない)ことを確認する場合、修正画像データPD3中の当該N番目の単位領域に、修正された部分が含まれないと判断する(ステップ#6,NO)。この場合、選択置換部15は、圧縮画像データPD1中のN番目の単位領域のデータを置換しない。これにより、選択置換部15によって生成される再圧縮画像データPD4のN番目の単位領域のデータが、圧縮画像データPD1中のN番目の単位領域のデータになる。
【0035】
そして、画像処理装置1は、上記のように再圧縮画像データPD4のN番目の単位領域のデータを生成すると(ステップ#6,NOまたはステップ#8)、再圧縮画像データPD4における次の順番の単位領域のデータについても同様に生成するために、Nを1増加して(ステップ#9)、ステップ#4に戻る。
【0036】
以上のように、画像処理装置1は、修正された部分が含まれる修正単位領域a1が選択的に再圧縮され、他の部分は圧縮画像データPD1と同様である(即ち、伸張及び再圧縮に伴う劣化が生じていない)再圧縮画像データPD4を生成することができる。したがって、画像処理装置1は、再圧縮による画質の劣化を、必要最小限である修正により変更された修正単位領域a1に留めることで、画質の劣化を最小限まで抑制した再圧縮画像データPD4を生成することが可能になる。
【0037】
また、比較部13は、伸張画像データPD2及び修正画像データPD3のそれぞれの画素値を比較する。そのため、修正画像データPD3中の修正単位領域a1を、精度良く検出することが可能になる。
【0038】
なお、画像処理装置1が修正部12を備えるものとして例示したが、画像処理装置1は、必ずしも修正部12を備える必要はない。例えば、画像処理装置1の外部に修正装置を備え、当該修正装置が伸張画像データPD2の修正(ステップ#2に相当)を行ってもよい。なお、この場合、比較部13及び再圧縮部14のそれぞれが、画像処理装置1の外部の修正装置から修正画像データPD3を取得してもよい。また、画像処理装置1が、外部の修正装置に対して、伸張部11で生成した伸張画像データPD2を出力してもよい。
【0039】
さらに上記の場合、画像処理装置1が伸張部11を備えなくてもよい。例えば、画像処理装置1の外部に伸張装置を備え、当該伸張装置が伸張画像データPD2の生成(ステップ#1に相当)を行ってもよい。なお、この場合、比較部13が画像処理装置1の外部の伸張装置から伸張画像データPD2を取得したり、画像処理装置1が比較部13に与える伸張画像データPD2を生成するための伸張部を別途備えたりしてもよい。
【0040】
また、画像処理装置1が比較部13を備えるものとして例示したが、画像処理装置1は、必ずしも比較部13を備える必要はない。即ち、比較部13による比較(ステップ#5及び#6)に代わる何らかの方法で、再圧縮部14及び選択置換部15が、修正単位領域a1を把握してもよい。具体的に例えば、修正部12や画像処理装置1の外部の修正装置が修正画像データPD3を生成する際に修正単位領域a1を検出したり、画像処理装置1の外部の比較装置が上述の比較(ステップ#5及び#6に相当)を行うことで修正単位領域a1を検出したりすることで、修正単位領域a1を示すデータを生成し、当該データを再圧縮部14及び選択置換部15が取得することによって修正単位領域a1を把握してもよい。
【0041】
また、再圧縮部14が、修正単位領域a1のデータを選択的に再圧縮するものとして例示したが、修正画像データPD3全体を単位領域毎に再圧縮するものとしてもよい。しかし、再圧縮部14が、修正単位領域a1のデータを選択的に再圧縮するものである場合、無用な演算を減らすことができるため、好ましい。
【0042】
また、比較部13が、伸張画像データPD2と、再圧縮部14で再圧縮する前の修正画像データPD3とを比較するものとして例示したが、圧縮画像データPD1と、修正画像データPD3を再圧縮部14で再圧縮して得られるデータとを比較するものとしてもよい。しかし、比較部13が、伸張画像データPD2と修正画像データPD3とを比較するものである場合、修正部12の修正に起因する単位領域内のデータの変化を、再圧縮部14の再圧縮に起因する単位領域内のデータの変化と区別して検出することが可能になり、修正単位領域a1を精度良く検出することが可能になるため、好ましい。さらにこの場合、再圧縮部14が少なくとも修正単位領域a1を圧縮すれば足りることから、無用な演算を減らすことができるため、好ましい。
【0043】
<<画像処理装置の実施例>>
次に、上述した画像処理装置1を具体化した実施例について、図面を参照して説明する。まず、本発明の実施例に係る画像処理装置の概略構成について、図4を参照して説明する。図4は、本発明の実施例に係る画像処理装置の概略構成を示すブロック図である。なお、図4に示す画像処理装置5は、図1の画像処理装置1が取り得る一態様(具体的には、修正部12を備えず、比較部13に与える伸張画像データPD2を生成する伸張部11を備える態様)を具体化したものである。
【0044】
図4に示すように、画像処理装置5は、単位領域毎に圧縮及び符号化されているとともに単位領域を複数備える圧縮符号化画像データを単位領域毎に復号化することで圧縮画像データを生成する復号化部51と、圧縮画像データを伸張して伸張画像データを生成する伸張部52と、伸張画像データ及び修正画像データのそれぞれの画素値を対応する単位領域毎に比較することで修正画像データ中の修正された部分を含む単位領域である修正単位領域を検出する比較部53と、修正単位領域のデータを再圧縮することで再圧縮修正単位領域データを生成する再圧縮部54と、修正単位領域に対応する圧縮画像データ中の単位領域のデータを再圧縮修正単位領域データに置換することで再圧縮画像データを生成する選択置換部55と、再圧縮画像データを再符号化することで再圧縮符号化画像データを生成する再符号化部56と、圧縮符号化画像データに関連付けられているヘッダデータを参照することで圧縮符号化画像データに用いられている符号化方法と圧縮画像データに用いられている圧縮方法とのそれぞれを検出する検出部57と、を備える。
【0045】
なお、圧縮符号化画像データは、例えばJPEGのデータである。また、伸張画像データ及び修正画像データは、例えばBMP(Bitmap Image)のデータである。
【0046】
<圧縮符号化画像データの生成方法>
上記の圧縮符号化画像データの生成方法の一例について、図面を参照して説明する。図5は、圧縮符号化画像データの生成方法の一例を示す図である。
【0047】
図5に示すように、最初に、例えばBMPの原画像データの画素値について、画素値を構成する各成分値をRGBからYCbCr(Y:輝度、Cb,Cr:色差)へ変換する(YCbCr変換処理)。例えば、下記式(1)に示すような、所定の規格(例えば、ISO/IEC10918−2)に従った演算を行う。なお、下記式(1)は実数演算であり、求められるYCbCrの各値は、小数部分が切り捨てまたは切り上げられたものになる。
【0048】
【数1】






・・・(1)
【0049】
次に、各成分値(特に、Cb,Cr)の間引きを行う(ダウンサンプリング処理)。当該処理について、図6及び図7を参照して説明する。図6は、ダウンサンプリング処理によって間引かれる各成分値の具体例を示す図である。図7は、各成分値を間引くための演算方法の具体例を示す図である。なお、図6及び図7は、処理の単位となる水平方向2個×垂直方向2個=合計4個の画素について示したものである。また、図7に示す各具体例は、図6(b)に示すダウンサンプリング処理に対応するものである。
【0050】
図6(a)に示す「4:2:2」のダウンサンプリング処理では、Y成分値の変動はないが、Cb成分値及びCr成分値がそれぞれ1/2(水平方向2個×垂直方向2個=合計4個から、水平方向1個×垂直方向2個=合計2個)に減少する。一方、図6(b)に示す「4:2:0」のダウンサンプリング処理では、Y成分値の変動はないが、Cb成分値及びCr成分値がそれぞれ1/4(水平方向2個×垂直方向2個=合計4個から、1個)に減少する。
【0051】
人間の目は、輝度成分に対しては敏感であるが、色差成分に対しては輝度成分よりも鈍感である。そのため、このように色差成分Cb,Crを積極的に間引くことで、画質の劣化を目立たせずにデータ量を効果的に低減することができる。
【0052】
また、例えば、図6(b)に示す各成分値の間引きは、図7(a)〜(c)に示す演算方法によって実現することが可能である。図7(a)に示す演算方法は、水平方向2個×垂直方向2個=合計4個の画素について、いずれか1つの画素(図示の例では当該4個の画素の中で左上隅となる画素)の成分値を選択的に残し、他は除去することで、間引き後の1つの画素(図示の例では当該4個の画素の中で左上隅となる画素)の成分値を求めるものである。また、図7(b)に示す演算方法は、水平方向2個×垂直方向2個=合計4個の画素について、それぞれの成分値を平均化することで、間引き後の1つの画素(図示の例では当該4個の画素の中で左上隅となる画素)の成分値を求めるものである。また、図7(c)に示す演算方法は、水平方向2個×垂直方向2個=合計4個の画素中のいずれか1つの画素(図示の例では当該4個の画素中の左上隅の画素)の成分値と、当該画素の周囲に隣接する8つの画素の成分値とを平均化することで、間引き後の1つの画素(図示の例では当該4個の画素中の左上隅の画素)の成分値を求めるものである。なお、図7(b)及び図7(c)に示す演算方法の具体例において、各成分値の重みを等しくした単純な平均を行ってもよいが、少なくとも1つの成分値の重みを他と異ならせた加重平均を行ってもよい。
【0053】
また、例えば「4:2:0」のダウンサンプリング処理を、水平方向16個×垂直方向16個=合計256個の画素(「4:2:0」のダウンサンプリング処理を行う場合における1つのMCU。単位領域に相当。)に対して行うと、水平方向8個×垂直方向8個=合計64個の成分値から成る「ブロック」が、Y成分値については水平方向2個×垂直方向2個=合計4個、Cb成分値及びCr成分値についてはそれぞれ1個ずつ得られる。
【0054】
次に、上記ブロックの画素の各成分値に対して離散コサイン変換を行うことで、各成分値を、空間領域の値から周波数領域の値に変換する(離散コサイン変換処理)。
【0055】
離散コサイン変換処理として、例えば下記式(2)に示す演算を行う。当該演算は、JPEGの圧縮符号化画像データの生成に適用可能なものである。下記式(2)の演算は、1次元に配列する8個の値に対して行われ、それによって1次元に配列する8個の値が出力される。即ち、当該演算の前後で値の配列は変化しないため、結果として水平方向8×垂直方向8=合計64個の値によって構成される係数配列が得られる。なお、下記式(2)に示す演算は、水平方向及び垂直方向に対してそれぞれ2回ずつ行われる。また、当該演算は実数演算であり、求められる値は、小数部分が切り捨てまたは切り上げられたものになる。
【0056】
下記式(2)中のXは、演算対象の値であり、nは値の配列位置(水平方向の左端及び垂直方向の上端がn=0、水平方向の右端及び垂直方向の下端がn=7)である。また、Xは出力される値を示しており、kは求めようとする値の配列位置である(即ち、kは0以上7以下の値)。なお、当該演算によって得られる係数配列は、左上隅の値が直流成分を表し、右下ほど周波数成分が大きい(高周波成分の)値を表すものとなる。
【0057】
【数2】






・・・(2)
【0058】
次に、係数配列の各値を、当該係数配列と同じサイズ(水平方向8個×垂直方向8個=合計64個)の量子化テーブルに規定される各値で除す(量子化処理)。これにより、係数配列の各値を小さい値へと丸め込む(取り得る値の範囲を狭くするとともに、小数部分を切り捨てまたは切り上げる)。この量子化処理について、図面を参照して説明する。図8は、量子化テーブルの具体例を示す図である。
【0059】
図8(a)は、輝度成分用の量子化テーブルであり、図8(b)は色差成分用の量子化テーブルである。いずれの量子化テーブルも、係数配列の低周波成分に対応する(低周波成分を除する)左上の値が大きく、高周波成分に対応する(高周波成分を除する)右下の値ほど大きくなっている。
【0060】
人間の目は、低周波成分に対しては敏感であるが、高周波成分に対しては低周波成分よりも鈍感である。そのため、このように高周波成分がより強く丸められるように量子化する(取り得る値の範囲を狭め、量子化処理後に同じ値になる確率を上げる)ことで、画質の劣化を目立たせずに、後述する符号化後のデータ量を効果的に低減することができる。
【0061】
上述した各種処理により、原画像データの圧縮が行われ、圧縮画像データが生成される。そして、この圧縮画像データを、例えばハフマン符号化により符号化することで、圧縮符号化画像データを構成する1つの単位領域(MCU)が生成される(ハフマン符号化処理)。
【0062】
ハフマン符号化処理は、上述の量子化処理により得られた水平方向8個×垂直方向8個=合計64個の各値の出現率に応じて、可変長の符号を割り当て出力するものである。より具体的に、ハフマン符号化処理は、出現率の高い値ほど短い符号を割り当てることで、全体のデータ量を低減する可逆的な符号化方法である。なお、ハフマン符号化処理として、例えば上述のISO/IEC10918−1等で規定されている方法を利用することができる。
【0063】
そして、ハフマン符号化処理によって得られるYCbCrの各成分のデータは、単位領域毎(MCU毎)にまとめられ、複数の単位領域によって圧縮符号化画像データが構成される。さらに、ダウンサンプリング方法(例えば、図6及び図7参照)や量子化テーブル(例えば、図8参照)などの圧縮方法を示す圧縮方法データや、ハフマン符号化処理における符号の割り当てを示すハフマンテーブルなどの符号化方法を示す符号化方法データが、ヘッダデータとしてこの圧縮符号化画像データに関連付けられることで、ファイルが構成される。
【0064】
上述のように、圧縮画像データは、圧縮時の各種処理によって情報の一部が損失するため、画質が劣化し得る。したがって、圧縮画像データに対して伸張及び再圧縮を行うと、画質が劣化する。この具体的な要因として、例えば以下の3点がある。
1.ダウンサンプリング処理による色差成分の間引き。
2.量子化処理による値の丸め込み。
3.YCbCr変換処理及び離散コサイン変換処理による小数部分の切り捨てまたは切り上げ。
なお、上記3.におけるYCbCr変換処理及び離散コサイン変換処理は、いずれも値の表現方法を変換する処理に過ぎず、本来的に情報が損失するものではない。しかしながら、これらの処理では、小数部分を含み得る値を演算する上で、誤差(実装上の計算誤差)が発生する。
【0065】
上記要因1.及び2.に起因する、圧縮画像データの伸張及び再圧縮に伴う画質の劣化は、伸張方法と再圧縮方法とを対応させることで、抑制することができる。しかし、上記要因3.は、小数部分の扱いについてJPEG等の規格で規定されておらず(計算精度の下限についてISO/IEC10918−2で規定されているのみ)、圧縮や伸張を行う装置やプログラム等に応じた誤差が生じ得る。そのため、当該要因に起因する画質の劣化を抑制することは、困難である。即ち、仮に修正を行わなかったとしても、圧縮画像データを伸張及び再圧縮するだけで、画質の劣化が発生することになる。
【0066】
この点、上述の画像処理装置1,5は、圧縮画像データの修正が行われていない単位領域に対して、伸張及び再圧縮が行われないようにすることで、再圧縮画像データの画質の劣化を最小限まで抑制することを可能にする。さらに、上述の画像処理装置1,5は、伸張部11,52が行う伸張方法と、再圧縮部14,54が行う再圧縮方法とを対応させることで、再圧縮修正単位領域データに適用されている再圧縮方法を、圧縮画像データに適用されている圧縮方法と一致させている。これにより、再圧縮修正単位領域データによる圧縮画像データの直接的な置換が可能になる。
【0067】
<画像処理装置の動作>
上述のようにして生成されている圧縮符号化画像データを伸張及び修正することで得られる修正画像データを取得して、再圧縮する画像処理装置5の概略動作について、図面を参照して説明する。図9は、図4に示す画像処理装置の概略動作を示すフローチャートである。なお、図9に示す動作の前に、修正画像データが生成されているものとする。
【0068】
図9に示すように、画像処理装置5が動作を開始すると、最初に、検出部57が圧縮符号化画像データに関連付けられているヘッダデータを解析することで、符号化方法データ及び圧縮方法データを取得する(ステップ#11)。
【0069】
次に、復号化部11が、圧縮符号化画像データのN番目の単位領域(最初はN=1、ステップ#12)のデータを取得する(ステップ#14)。ただし、復号化部11が取得すべき単位領域がない場合、換言すると、Nmax番目の単位領域まで既に取得している場合は(ステップ#13,YES)、画像処理装置5の動作を終了する。
【0070】
復号化部11は、検出部57が検出した符号化方法データが示す符号化方法に対応した(当該符号化方法の逆に相当する)復号化方法で、取得した圧縮符号化画像データのN番目の単位領域のデータを復号化する(ステップ#15)。具体的に例えば、復号化部11は、ハフマンテーブルが示す割り当てに従い、符号を元の圧縮画像データの値に変換する。
【0071】
次に、伸張部52が、検出部57が検出した圧縮方法データが示す圧縮方法に対応した(当該圧縮方法の逆に相当する)伸張方法で、復号化部11が復号化した圧縮画層データのN番目の単位領域のデータを伸張する(ステップ#16)。
【0072】
具体的に例えば、伸張部11は、量子化テーブル(図8参照)の各値を、復号化して得られたデータの各値に乗じる(逆量子化処理)。さらに、伸張部11は、逆量子化処理によって得られた各値に対して、離散コサイン変換(上記式(2)参照)の逆変換となる処理を行う(離散コサイン逆変換処理)。さらに、伸張部11は、離散コサイン逆変換処理によって得られた各値を用いて、上述のダウンサンプリング処理(図6及び図7参照)によって間引かれた成分値(特に、色差成分)の補間を行う(アップサンプリング処理)。さらに、伸張部11は、アップサンプリング処理によって得られたYCbCrの成分値を、上記式(1)に従ってRGBの成分値に変換する(RGB変換処理)。なお、伸張部11は、アップサンプリング処理において、補間すべき成分値に隣接する成分値をコピーすることで補間を行ってもよいし、補間すべき成分値に隣接または近接する成分値を用いた線形補間や非線形補間などによって補間を行ってもよい。
【0073】
次に、比較部53は、修正画像データのN番目の単位領域のデータを取得する(ステップ#17)。そして、比較部13が、伸張画像データ及び修正画像データにおいて、対応する(同じ位置となる)N番目の単位領域について画素値を比較することで、修正画像データ中の修正単位領域の有無を検出する(ステップ#18)。
【0074】
比較部53は、伸張画像データ及び修正画像データの、N番目の単位領域内の画素値が異なる(例えば、画素値が異なる画素が1以上ある)ことを確認する場合、修正画像データ中の当該N番目の単位領域に、修正された部分が含まれると判断する(ステップ#19,YES)。即ち、比較部53が、修正画像データ中の当該N番目の単位領域を、修正単位領域であると判断する。
【0075】
この場合、再圧縮部54は、修正画像データ中の、比較部53が判断した修正単位領域のデータを再圧縮することで、再圧縮修正単位領域データを生成する(ステップ#20)。このとき、再圧縮部54は、検出部57が検出した圧縮方法データが示す圧縮方法と同じ圧縮方法で、修正単位領域のデータを再圧縮することで、再圧縮修正単位領域データを生成する。そして、選択置換部55が、当該再圧縮修正単位領域データを出力する(ステップ#21)。
【0076】
一方、比較部53が、伸張画像データ及び修正画像データの、N番目の単位領域内の画素値が等しい(例えば、画素値が異なる画素がない)ことを確認する場合、修正画像データ中の当該N番目の単位領域に、修正された部分が含まれないと判断する(ステップ#19,NO)。
【0077】
この場合、選択置換部55は、圧縮画像データ中のN番目の単位領域のデータを出力する(ステップ#22)。
【0078】
符号化部56は、上記のように選択置換部55から出力されるN番目の単位領域のデータを、検出部57が検出した符号化方法データが示す符号化方法と同じ符号化方法で符号化することで、再圧縮符号化画像データのN番目の単位領域のデータを生成する(ステップ#23)。そして、画像処理装置5は、再圧縮符号化画像データにおける次の順番の単位領域のデータについても同様に生成するために、Nを1増加して(ステップ#24)、ステップ#13に戻る。
【0079】
以上のように、画像処理装置5は、圧縮符号化画像データを復号化する際に用いる復号化方法と、再圧縮画像データを再符号化する際に用いる符号化方法とを対応させ、圧縮画像データを伸張する際に用いる伸張方法と、修正画像データ(修正単位領域のデータ)を再圧縮する際に用いる圧縮方法とを対応させる。さらに、画像処理装置5は、再圧縮及び再符号化による画質の劣化を、必要最小限である修正により変更された修正単位領域に留める。したがって、画像処理装置5は、画質の劣化を最小限まで抑制した再圧縮符号化画像データを生成することが可能になる。
【0080】
また、画像処理装置5は、検出部57により圧縮符号化画像データに用いられている圧縮方法と符号化方法とを検出することで、圧縮符号化画像データを復号化する際に用いる復号化方法と、再圧縮画像データを再符号化する際に用いる符号化方法とを対応させ、圧縮画像データを伸張する際に用いる伸張方法と、修正画像データ(修正単位領域のデータ)を再圧縮する際に用いる圧縮方法とを対応させる。そのため、一般的なユーザであっても意識し難い上記の方法の対応を、容易かつ確実に実現することが可能になる。
【0081】
<<画像処理装置の適用例>>
図1及び図4に示す画像処理装置1,5が備える各ブロックの一部または全部は、周知のマイクロプロセッサ等の演算処理装置がコンピュータプログラムを実行することにより実現されるソフトウエアとして構成してもよいし、さらにその一部または全部を、周知なロジック回路やメモリ回路を用いたハードウエア手段として構成してもよい。
【0082】
ここでは、図4に示す画像処理装置5を、ソフトウエア(プログラム)として実現する場合の具体例について、図面を参照して説明する。図10は、図4に示す画像処理装置をソフトウエア(プログラム)として実現する場合の具体例を示すブロック図である。
【0083】
図10に示すように、コンピュータCは、ユーザに操作されることでユーザの指示内容を受け付けるユーザインターフェースUと、ユーザインターフェースUから入力されるユーザの指示にしたがって演算を行う演算処理装置Pと、演算処理装置Pの演算結果をユーザに対して表示するモニタMと、プログラムやデータ等を記録する記録装置Rと、を備える。
【0084】
記録装置Rは、ハードディスクなどの記録媒体から成り、少なくとも、画像処理プログラム5(図4に示した画像処理装置5に相当)と、画像を修正するための画像修正プログラムE(具体的に例えば、マイクロソフト社のMSPAINTに代表されるペイントソフトや、Adobe社のPhotoShopに代表されるフォトレタッチソフトなど)と、を記録している。これらのプログラム5,Eは、必要に応じて演算処理装置Pに読み出され、実行される。また、記録装置Rは、上述の圧縮符号化画像データPD10や、再圧縮符号化画像データPD11を記録し得る。
【0085】
なお、画像処理プログラム5を演算処理装置Pで実行することで行われる動作は、上述の画像処理装置5と同様である。そのため、以下では、当該動作の詳細な説明を省略する。また、演算処理装置Pは、演算に必要な所定のデータ(例えば、各種プログラムや各種画像データなど)を記憶するメモリ等を備えるものとする。
【0086】
次に、ユーザがコンピュータCを用いて圧縮符号化画像データPD10を修正し、さらにその修正によって得られた修正画像データを記録する際の動作について、図9を参照して説明する。なお、以下では説明の簡略化のため、ユーザによるユーザインターフェースUの操作について、記載を省略する。
【0087】
最初に、ユーザは、圧縮符号化画像データPD10の修正を望む場合、演算処理装置Pに対して、圧縮符号化画像データPD10の復号化及び伸張を行う(画像修正プログラムEで修正することができる状態にする)旨の指示を入力する。すると、演算処理装置Pは、モニタMに所定の画面(図10に示す画面)を表示させて、ユーザに対してさらなる指示の入力を求める。
【0088】
例えば、モニタMに図10に示す画面が表示される場合であれば、演算処理装置Pは、ユーザに対して、修正対象である圧縮符号化画像データPD10(JPEG)の名称を、「Source JPEG」のエディットボックスに入力することを求める。また、演算処理装置Pは、ユーザに対して、圧縮符号化画像データPD10を復号化及び伸張して得られる伸張画像データ(BMP)の名称を、「Bitmap」のエディットボックスに入力することを求める。さらに、演算処理装置Pは、ユーザに対して、復号化及び伸張の実行を確定する指示である「Extract」ボタンの押下(例えば、マウスによるクリック)を求める。
【0089】
ユーザが上記の指示を全て演算処理装置Pに入力すると、演算処理装置Pは、画像処理プログラム5(例えば、復号化部51、伸張部52及び検出部57)を実行して、圧縮符号化画像データPD10の復号化と伸張を行い、伸張画像データを生成する。なお、演算処理装置Pは、画像処理プログラム5以外のプログラムを用いて、伸張画像データを生成してもよい。
【0090】
次に、演算処理装置Pは、ユーザの指示に従い、画像修正プログラムEを実行して伸張画像データの修正を行い、修正画像データを生成する。ここで、ユーザが、生成された修正画像データの保存(記録)を望む場合、演算処理装置Pに対して、修正画像データの再圧縮及び再符号化を行う(データ量を減らして記録や転送等の取扱いが容易な状態にする)旨の指示を入力する。すると、演算処理装置Pは、モニタMに所定の画面(図10に示す画面)を表示させて、ユーザに対してさらなる指示の入力を求める。
【0091】
例えば、モニタMに図10に示す画面が表示される場合であれば、演算処理装置Pは、ユーザに対して、修正前の圧縮符号化画像データPD10(JPEG)の名称を、「Source JPEG」のエディットボックスに入力することを求める。また、演算処理装置Pは、ユーザに対して、再圧縮及び再符号化対象である修正画像データ(BMP)の名称を、「Bitmap」のエディットボックスに入力することを求める。また、演算処理装置Pは、ユーザに対して、修正画像データを再圧縮及び再符号化して得られる再圧縮符号化画像データPD11(BMP)の名称を、「JPEG file to output」のエディットボックスに入力することを求める。さらに、演算処理装置Pは、ユーザに対して、再圧縮及び再符号化の実行を確定する指示である「Recompress」ボタンの押下(例えば、マウスによるクリック)を求める。
【0092】
ユーザが上記の指示を全て演算処理装置Pに入力すると、演算処理装置Pは、画像処理プログラム5を実行して上述の動作(図4及び図9参照)を行い、再圧縮符号化画像データPD11を生成する。なお、演算処理装置Pは、再圧縮符号化画像データPD11を、必要に応じて記録装置Rに記録させてもよい。
【0093】
なお、上述のコンピュータCでは、演算処理装置Pが画像処理プログラム5を実行する際に、圧縮符号化画像データPD10の復号化及び伸張や、修正画像データの再圧縮及び再符号化を、ユーザがマニュアルで指示するものとして説明したが、自動的に行うものとしてもよい。例えば、画像処理プログラム5を、画像修正プログラムEと連携させてもよい。
【0094】
具体的に例えば、画像処理プログラムEの実行時に、修正対象として圧縮符号化画像データPD10が選択された場合に、画像処理プログラム5が自動的に実行されて当該圧縮符号化画像データPD10が復号化及び伸張されるようにしてもよい。また、画像処理プログラムEの実行時に、修正画像データの保存がユーザから指示された場合に、画像処理プログラム5が自動的に実行されて当該修正画像データが再圧縮及び再符号化されるようにしてもよい(ただし、演算処理装置Pが、当該修正画像データの元になった圧縮符号化画像データPD10の名称等を記憶するなどして、画像処理プログラム5の実行時に当該圧縮符号化画像データPD10を認識し得るものとする)。
【0095】
<<変形等>>
主として静止画の画像データを対象として処理する画像処理装置1,5について述べたが、本発明は、動画を構成するフレームを対象として処理する画像処理装置にも適用可能である。
【産業上の利用可能性】
【0096】
本発明に係る画像圧縮装置や画像処理装置、画像圧縮方法は、例えばJPEGなどの規格に従って圧縮されている圧縮画像データを伸張及び再圧縮する画像圧縮装置や画像圧縮方法、当該画像圧縮装置を備える画像処理装置等に、好適に利用され得る。
【符号の説明】
【0097】
1 : 画像処理装置
11 : 伸張部
12 : 修正部
13 : 比較部
14 : 再圧縮部
15 : 選択置換部
5 : 画像処理装置、画像処理プログラム
51 : 復号化部
52 : 伸張部
53 : 比較部
54 : 再圧縮部
55 : 選択置換部
56 : 再符号化部
57 : 検出部
PD1 : 圧縮画像データ
PD2 : 伸張画像データ
PD3 : 修正画像データ
PD4 : 再圧縮画像データ
a1 : 修正単位領域
AD1 : 再圧縮修正単位領域データ

【特許請求の範囲】
【請求項1】
所定の単位領域毎に圧縮されているとともに当該単位領域を複数備える圧縮画像データを、当該単位領域毎に伸張することで生成される伸張画像データに対し、その少なくとも一部を修正することで生成される修正画像データを受け付けて、前記修正画像データ中で修正された部分を含む前記単位領域である修正単位領域のデータを再圧縮することで再圧縮修正単位領域データを生成する再圧縮部と、
前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換することで、再圧縮画像データを生成する選択置換部と、
を備えることを特徴とする画像圧縮装置。
【請求項2】
前記再圧縮部は、前記圧縮画像データに用いられている圧縮方法を用いて、前記修正画像データ中の前記修正単位領域のデータを再圧縮することを特徴とする請求項1に記載の画像圧縮装置。
【請求項3】
前記圧縮画像データに用いられている圧縮方法を検出する検出部を、さらに備え、
前記再圧縮部は、前記検出部が検出した圧縮方法を用いて、前記修正単位領域のデータを再圧縮することを特徴とする請求項2に記載の画像圧縮装置。
【請求項4】
前記伸張画像データ及び前記修正画像データのそれぞれの画素値を、対応する単位領域毎に比較することで前記修正単位領域を検出する比較部を、さらに備え、
前記再圧縮部は、前記比較部が検出した前記修正単位領域のデータを再圧縮し、
前記選択置換部は、前記比較部が検出した前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換することを特徴とする請求項1〜3のいずれか1項に記載の画像圧縮装置。
【請求項5】
請求項1〜4のいずれか1項に記載の画像圧縮装置と、
前記単位領域毎に圧縮及び符号化されている圧縮符号化画像データを、当該単位領域毎に復号化することで、前記圧縮画像データを生成する復号化部と、
前記圧縮画像データを前記単位領域毎に伸張することで、前記伸張画像データを生成する伸張部と、
前記再圧縮画像データを、前記単位領域毎に再符号化することで、再圧縮符号化画像データを生成する再符号化部と、
を備えることを特徴とする画像処理装置。
【請求項6】
前記圧縮符号化画像データに関連付けられているデータを参照することで、前記圧縮符号化画像データに用いられている符号化方法と、前記圧縮画像データに用いられている圧縮方法と、のそれぞれを検出する検出部を、さらに備え、
前記復号化部は、前記検出部が検出した前記符号化方法に対応する復号化方法を用いて、前記圧縮符号化データを復号化し、
前記伸張部は、前記検出部が検出した前記圧縮方法に対応する伸張方法を用いて、前記圧縮画像データを伸張し、
前記再圧縮部は、前記検出部が検出した前記圧縮方法を用いて、前記修正単位領域のデータを再圧縮し、
前記符号化部は、前記検出部が検出した前記符号化方法を用いて、前記再圧縮画像データを再符号化することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
所定の単位領域毎に圧縮されるとともに当該単位領域を複数備える圧縮画像データを、当該単位領域毎に伸張することで生成される伸張画像データに対し、その少なくとも一部を修正することで生成される修正画像データを受け付けて、前記修正画像データ中で修正された部分を含む前記単位領域である修正単位領域のデータを再圧縮することで再圧縮修正単位領域データを生成する再圧縮ステップと、
前記修正単位領域に対応する前記圧縮画像データ中の前記単位領域のデータを、前記再圧縮修正単位領域データに置換することで、再圧縮画像データを生成する選択置換ステップと、
を備えることを特徴とする画像圧縮方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate