(58)【調査した分野】(Int.Cl.,DB名)
前記量子化マトリクス修正部は、前記圧縮率が、所定の第2の圧縮率より低い場合、被写界深度内に属すると判定された前記1つ以上のブロック以外のブロックに対して、前記量子化マトリクスの値を、より大きい値に修正する、
請求項2記載の画像処理装置。
前記空間周波数の低周波成分のパワーの割合が所定の割合より高いブロックは、第1の閾値以下の空間周波数のパワーを前記第1の閾値を超える空間周波数のパワーで除した値が、第2の閾値を越えるブロックである、請求項2又は3記載の画像処理装置。
【背景技術】
【0002】
近年、奥行き情報を取得できる深度センサを搭載したカメラが盛んに研究開発されている。例えば、RGBにD(奥行き)を加えた画像情報を取得するRGB―Dセンサを搭載したカメラの一例として、Microsoft社のKinect(登録商標)がある。このような背景から、2次元の画像信号と、奥行き情報とを有する動画像情報の利用が増加することが予想される。
【0003】
また、動画情報を効率的に処理する規格であるH.264/AVC(Advanced Video Coding)やH.265/HEVC(High Efficiency Video Coding)の映像の圧縮符号化方式では、映像の各フレームをブロックと呼ばれる矩形領域に分割して符号化が行われる。
【0004】
この映像の圧縮の手法の1つとして、画像の符号化の際に量子化の処理が行われる。量子化とは、元々持っているデータの細かさを粗く分け直す処理である。すなわち、直交変換した各周波数成分に対して、所定の量子化ステップで除算した結果を整数値に丸める処理を「量子化」と呼んでいる。逆に、この量子化で得られた整数値に量子化ステップを乗算して直交変換した成分に戻す処理を「逆量子化」と呼ぶ。
【0005】
量子化によって、直交変換した成分よりも小さな整数値と少ないバリエーションとなった量子化値を符号化することで、直交変換した成分を直接符号化するよりも符号化に必要なビット数を少なくすることができる(例えば非特許文献1、及び非特許文献2参照)。
【0006】
図1は、H.264/AVCにおける、インターブロック(画面間符号化ブロック)の量子化マトリクスの例を示す図である。
図1(a)は、4×4の16個のインターブロックの量子化マトリクス110を示している。
図1(b)は、8×8の64個のインターブロックの量子化マトリクス120を示している。
【0007】
例えば、
図1(b)における量子化マトリクス120のブロック101の量子化ステップ値は、「9」を示している。画像をDCT(離散コサイン変換)した場合、このブロック101に対応するDCT係数は、DC(直流)成分に該当する。したがって、DCTの直流成分を9で除算し、余りを切り捨てた商の値が、DC成分の量子化後の値となる。
【0008】
量子化ステップが小さい場合には、DCT係数の周波数成分を量子化ステップで割り、切り捨てられる余りは一般に小さくなる。このため、量子化された値を逆量子化して戻した値と、量子化前の値との誤差は小さくなり、量子化による画像の品質の劣化は少ない。しかしながら、商の値は一般に大きくなるとともに商の値がとり得るバリエーションが多くなるため、符号化効率(圧縮率)は低下する。したがって、量子化ステップを変えることで、圧縮率、画像の品質等を調整することが可能である。
【0009】
一般に、量子化ステップは、人間の目に認識されやすい低周波成分(
図1の量子化マトリクスの左上部分)に対して、小さな値とする。そして、人間の目に対して画像の劣化が認識されにくい高周波成分(
図1の量子化マトリクスの右下部分)に対して、大きな値とすることが多い。
【0010】
上述のように、量子化ステップを大きくすれば、画像の符号化効率を高めることができる。しかしながら、空間周波数の低い画像の領域において、等高線のような擬似輪郭が発生する傾向が高くなる。
【0011】
逆に、量子化ステップを小さくすれば、画像の圧縮率は低下するが、画像表現及び精細度が向上した画像を再現することができる。しかしながら、例えば被写界深度外のような、一般的に人間によって重要視されない画像領域においても、低圧縮の処理が施されるため、全体的な圧縮率を低下させることになる。
【0012】
したがって、互いに相反する画像の品質の担保と圧縮率の確保を得るためには、画像の性質に応じて、量子化ステップの値を適切に選ぶことが重要である、
【発明を実施するための形態】
【0027】
以下、実施例について図面を参照しながら説明する。
【0028】
[実施例1]
実施例1における画像処理装置10は、修正された量子化マトリクスを決定する装置である。この画像処理装置は、プログラムが実行されることで機能してもよいし、集積回路などにより実装されてもよい。
【0029】
<実施例1の概要及び位置づけ>
実施例1は、修正された量子化マトリクス(又は量子化パラメータ)を決定するために、画像の奥行き情報に基づく被写界深度の情報を用いる。この量子化マトリクス(又は量子化パラメータ)は、既に述べたように、画像の符号化の過程において、情報の圧縮を行うために用いられる。したがって、以下に詳述する実施例1は、例えば、画像符号化装置の中で用いることができる。なお、画像符号化装置については、実施例2において、その具体例を示すこととする。
【0030】
なお、実施例1で用いる被写界深度の情報を得るためには、分割された各ブロックにおける奥行き情報と、空間周波数の情報に関して画像の1フレーム分の情報を取得することが望ましい。このため、以下に説明する実施例1においては、1フレームの画像処理を2パスで行う具体例を示す。
【0031】
すなわち、1パス目において、1フレーム内の各ブロックの被写界深度情報が得られる。そして、2パス目において、この被写界深度情報を用いて、1フレーム内の各ブロックの量子化マトリクス(又は量子化パラメータ)を修正する処理が施される。
【0032】
したがって、1パス目及び2パス目のいずれのパスにおいても、実施例1を含む画像符号化装置全体が動作することは、当業者であれば理解されるところである。なお、1パス目におけるブロック分割情報を、そのまま2パス目で用いることが望ましい。このため、1パス目におけるブロック分割情報が保存され、2パス目の処理において、その保存されたブロック分割情報が利用される。なお、実施例1は2パスの処理に限定されるものではない。
【0033】
なお、実施例1においては、画像符号化装置における前処理部、エントロピー符号化部、予測誤差信号、ブロック直交変換後情報、量子化後情報等にも言及している。これらの詳細は、画像符号化装置の具体例を示す実施例2において詳述するが、実施例1の理解を助けるために、これらの概略を以下に簡潔に述べることとする。
【0034】
前処理部は、原画像のピクチャタイプに合わせてピクチャを並べ替え、ピクチャタイプ及びフレーム毎のフレーム画像等を順次出力する。また、前処理部は、ブロック分割なども行う。
【0035】
エントロピー符号化部は、シンボルの出現頻度に応じて可変長の符号を割り当てるものであり、量子化された信号出力等を符号化する。
【0036】
予測誤差信号とは、原画像のブロックのデータと、予測画像のブロックのデータの差分値を意味する。他のフレームの情報又は同一フレーム内の周辺の情報から、画像を予測し、原画像との差分を得て、予測誤差信号を得ることによって、符号化すべき画像の情報量を圧縮することができる。
【0037】
ブロック直交変換後情報とは、予測誤差信号を直交変換することによって得られた情報を意味する。直交変換の手法としては、例えばDCT(離散コサイン変換)が用いられる。予測誤差信号を直交変換することによって、更に情報の圧縮が可能である。
【0038】
量子化後情報とは、直交変換後の情報を量子化した情報を意味する。直交変換後の情報を量子化することによって出力信号の符号量を低減することができる。
【0039】
以上の前提に基づいて、以下、実施例1の構成及び動作について詳述する。なお、実施例1は、これらの前提に限定されるものではない。
<実施例1の構成>
実施例1における1つのフレームに対する処理は、大きく1パス目と2パス目に分けられる。特定のフレームに対する1パス目の処理が終了すると、その特定のフレームに対する2パス目の処理が実行される。
【0040】
図2は、実施例1における画像処理装置10の概略ブロック図である。
図2に示す画像処理装置は、1パス目動作部140と、1パス・2パス切替指示部130と、量子化マトリクス修正部160とを有する。1パス・2パス切替指示部130が、1パス目動作指示信号132を活性化させ、1パス目動作部140を動作させる。また、1パス・2パス切替指示部130は、1パス・2パス切替指示162を前処理部200に与え、前処理部200が1パス目の処理であることを認識させる。なお、前処理部の動作については、後述する。また、1パス・2パス切替指示部130は、2パス目動作指示信号184を活性化させ、量子化マトリクス修正部160を動作させる。また、1パス・2パス切替指示部130は、2パス目動作指示信号184を活性化させ、後述するエントロピー符号化部を動作させる。
【0041】
1パス目動作部140は、ブロック分割情報保存部111と、予測誤差信号情報量積算部112と、奥行き情報クラスタリング部113と、被写界深度判定部114と、空間周波数取得部115と、量子化後情報量積算部116と、圧縮率判定部117とを有する。また、被写界深度判定部114は被写界深度保存部118を含む。
【0042】
1パス目動作部140は、1パス目において動作を行い、2パス目は、必用な情報を他の処理部に提供する能力を有する。
【0043】
ブロック分割情報保存部111は、前処理部200からのブロック分割情報164を取得し、順次保存する。ブロック分割情報保存部111は、少なくとも1フレーム分のブロック分割情報を保存することができる。1フレーム分のブロック分割情報は、被写界深度保存部118に提供される。また、1フレーム分のブロック分割情報164は、前処理部に提供され、前処理部が、2パス目において、1パス目と同じブロック分割を行うことができるようにする。
【0044】
予測誤差信号情報量積算部112は、1フレーム分の予測誤差信号168の情報量の積算値aを取得する。
【0045】
量子化後情報量積算部116は、1フレーム分の、量子化後情報182を積算し、積算値bを取得する。
【0046】
圧縮率判定部117は、b/a=cを計算することにより、直交変換と量子化により達成される1フレーム分の情報量の圧縮率cを取得する。圧縮率cが所定の第1の圧縮率より高い場合を「高圧縮率」と判定し、圧縮率cが所定の第2の圧縮率より低い場合、「低圧縮率」と判定する。この判定の結果は、2パス目において量子化マトリクス修正部160に提供される。
【0047】
奥行き情報クラスタリング部113は、例えば、1フレーム分の奥行き情報のヒストグラムを求め、このヒストグラムが取る値の範囲をクラスタ数n(例えばn=2)に等分割し、奥行き情報を分類する。奥行き情報クラスタリング部113は、各画素位置又は各所定領域の奥行き情報のクラスタリング結果として、奥行き降順に番号(例えば、クラスタ番号=1、0)を付与して、このクラスタリング結果を得る。クラスタリングの手法としては、K−means法を用いることができる。
【0048】
K-means法は,あらかじめ固定された数(例えば,n個)のクラスタの各々にその代表であるプロトタイプを与え,それぞれのデータを最も近いプロトタイプに割り当てることでクラスタリングを行う手法である。なお、実施例1は、特定のクラスタリング手法に限定されるものではない。
【0049】
被写界深度判定部114は、クラスタリング結果、及び空間周波数のパワーの情報として例えばブロック直交変換後情報172を用いる。ブロック直交変換後情報172は、空間周波数取得部115を介して取得される。
【0050】
なお、
図2において空間周波数取得部115は、ブロック直交変換後情報172の代わりに、原画像から空間周波数のパワーを直接求めてもよい。この場合には、空間周波数取得部115に、原画像を与える。そして、空間周波数取得部115において、該当するブロックについて空間周波数のパワーを計算する。空間周波数のパワーを取得する手法としては、DCT(離散コサイン変換)、アダマール変換、離散フーリエ変換などを用いることができる。
【0051】
まず、被写界深度判定部114は、同じクラスタにクラスタリングされた直交変換ブロックの空間周波数のうち、高い帯域のパワーの割合を算出する。なお、パワーではなく、空間周波数のレベルの絶対値、空間周波数の成分毎の強度等を用いてもよい。
【0052】
なお、本明細書においては、「空間周波数のパワー」の語を用いるが、この語は、「空間周波数のレベルの絶対値」、「空間周波数の成分毎の強度」等をも意味する語として用いる。
【0053】
図3は、画像の1つのブロックを直交変換して得られた直交変換係数(空間周波数)をブロック状に並べた例を示している。空間周波数成分300は、1つの直交変換ブロック(8画素×8ライン)の64画素をDCT変換した64個のDCT係数を、水平成分及び垂直成分に並べたものである。
【0054】
例えば、空間高周波成分の領域は、斜線で示した周波数領域390である。周波数領域390は、水平方向、及び垂直方向、それぞれの空間最大周波数の1/2を超える領域である。周波数領域390の空間周波数のパワーをH
1、全体の空間周波数成分300の空間周波数のパワーをW
1とすれば、周波数領域390の空間高周波数のパワーの割合α
1は、以下の式で求まる。
【0055】
α
1=H
1/W
1
クラスタ数を2個とし、ここで求めたα
1を、クラスタ0に属する複数のブロックの各々に対して求めて、空間高周波数のパワーの割合の平均値αを求める。同様にクラスタ1に属する複数のブロック全体に対して求めた空間高周波数のパワーの割合の平均値をβとする。
【0056】
そして、αとβを比較し、α>βであれば、αが導かれたクラスタ0に属する複数のブロックが、被写界深度の領域内であると判断することができる。その理由は、被写界深度内の領域は、ぼけのない鮮明な画像が多いため、空間高周波数のパワーの割合が大きくなるという経験則に基づいているからである。以上のようにして、被写界深度内/外の領域を特定することができる。
【0057】
なお、
図3に示す空間高周波数成分の領域の取り方は、一例に過ぎず、実施例1は、これに限定されない。また、上記の例では、クラスタ数を2としたが、3以上のクラスタに分けて、空間高周波数のパワーの割合が最も大きくなるクラスタに属する複数のブロックで構成される領域を、被写界深度内の領域と判定してもよい。
【0058】
また、上述の例では、
図3の空間周波数成分300の左上(0,0)の位置のDCT係数の直流(DC)成分をも、全体の空間周波数のパワーの平均値を求める際に利用した。しかしながら、DC成分は、ブロックの明るさに関連する係数であるため、空間周波数のパワーの平均値を求める際に、計算から除外してもよい。DC成分を除外することによって、画像の明るさに左右されずに、空間高周波数のパワーの割合α
1を求めることができる。
【0059】
被写界深度判定部114に含まれる被写界深度保存部118は、ブロック分割情報保存部111からの情報と、被写界深度判定部114での情報とを用いて、1フレームに含まれる各ブロックの被写界深度の内/外の情報を保存する。
【0060】
以上の処理によって、1パス目動作部140は、現在処理しているフレームが、高圧縮率、低圧縮率、あるいはそれ以外かの特定を行う。加えて、1パス目動作部140は、1フレームの各ブロックに対して、被写界深度の内/外の特定を行う。
【0061】
1パス・2パス切替指示部130は、前処理部200に対し、2パス目の処理であることを伝達する。前処理部200は、この伝達に応答して、ブロック分割情報保存部111から得られたブロック分割情報に従って、ブロック分割を行い、各ブロックが処理されるよう、ブロックに関する情報を順次出力する。また、1パス・2パス切替指示部130は、2パス目動作指示信号184を、量子化マトリクス修正部160及びエントロピー符号化部204に与える。なお、エントロピー符号化部204については、
図7を用いて後述する。
【0062】
量子化マトリクス修正部160は、符号化のために一旦作成された量子化マトリクス又は量子化パラメータであるQp値174、被写界深度判定部114からの情報、空間周波数取得部115からの情報、及び圧縮率判定部117からの情報を受け取る。量子化マトリクス修正部160は、符号化のために一旦作成された量子化マトリクス又は量子化パラメータであるQp値174を修正することができる。
【0063】
まず、圧縮率判定部117が、高圧縮であると判定した場合を説明する。この場合には、量子化マトリクス修正部160は、被写界深度内に属するブロックに対して、擬似輪郭の発生を抑制する処理を施す。
【0064】
量子化マトリクス修正部160は、被写界深度内に属するブロックのうち、空間低周波数のパワーの割合が、例えば所定の閾値より高いブロックを特定する。一般に、被写界深度内のブロックは、鮮明度が高いため、空間低周波数のパワーよりも空間高周波数のパワーの割合が高い場合が多い。しかしながら、オブジェクトのテクスチャ自体が空間低周波数を持つような場合には、被写界深度内においても、空間低周波数のパワーの割合が高いブロックが存在する場合がある。このようなブロックでは、上述のように擬似輪郭が発生する確率が高い。しかも被写界深度内にそのブロックが存在するために、この擬似輪郭が目立ちやすいと判断される。
【0065】
したがって、量子化マトリクス修正部160は、このようなブロックに対して、擬似輪郭の発生を抑制するために、量子化マトリクスの値を、より小さくすることが望ましい。このため、量子化マトリクス修正部160は、このようなブロックを特定する。
【0066】
量子化マトリクス修正部160は、特定されたブロックの量子化ステップを、より小さな値にして修正する。たとえば、量子化マトリクス修正部160は、量子化マトリクスの各要素の値を1/2にした値に修正してもよい。或いは、量子化マトリクス修正部160は、Qp値を、例えば6減算してもよい。Qp値が6減算されると、量子化マトリクスの値の各々は、1/2に設定されることになる。
【0067】
或いは、例えば、
図3に周波数領域390で示した量子化マトリクスの空間高周波成分の領域に対応する量子化マトリクスの値のみを1/2にした値に修正してもよい。あるいは、
図3において、行番号が4以上、列番号が4以上の周波数領域に対応する量子化マトリクスの値のみを1/2にした値に修正してもよい。なお、修正のための係数1/2の値は例であり、その他の計数値を掛けても良いことは言うまでもない。また、空間高周波成分としてどの空間周波数の帯域を採用するかは、上記の例に限定されない。
【0068】
上述のように、空間高周波成分に対応する量子化マトリクスの値を小さくする理由は、擬似輪郭が縞模様を呈するため、縞模様の部分で、高周波数成分が増加しているためである。したがって、擬似輪郭を抑制するためには、高周波成分の量子化誤差を小さくすることが効果的である場合が多い。
【0069】
或いは、量子化マトリクス修正部160は、量子化マトリクスの値の各々を個別に修正し、新たな値を有する量子化マトリクスを生成する。
【0070】
次に、圧縮率判定部117が、低圧縮であると判定した場合を説明する。この場合には、符号化効率を高める処理を行うことができる。量子化マトリクス修正部160は、被写界深度判定部114で、被写界深度外であると判定された直交変換ブロックに対する量子化マトリクスの値を、より大きな値にして修正する。この理由は、被写界深度外の領域は、注視領域でない場合が多いため、この領域における圧縮率を高めても、画像の劣化が認識されにくいことが経験側として存在するからである。量子化マトリクス修正部160は、被写界深度判定部114で、被写界深度外であると判定された直交変換ブロックに対する量子化マトリクスの値を、例えば2倍の値に修正してもよい。なお、実施例1は、2倍に限定されるものではない。
【0071】
或いは、上記の場合には、量子化マトリクス修正部160は、Qp値に、例えば6を加算してもよい。上述のように、Qp値に6を加算すると、量子化マトリクスの値の各々は、2倍される。或いは、量子化マトリクス修正部160は、量子化マトリクスの値の各々を個別に修正し、新たな値を有する修正された量子化マトリクス186を生成してもよい。
【0072】
以上のようにして、量子化マトリクス修正部160によって修正された量子化マトリクスの情報は、エントロピー符号化を経て復号側に伝送される(186)。また、併せて、被写界深度内/外の情報も復号側に伝送されてもよい。
【0073】
なお、上述の説明において、Qp値を修正した場合には、修正されたQp値を復号側に伝送すればよい。例えば、H.264/AVCの規格では、規格上Qp値を復号側に送ることになっている。このため、修正されたQp値が復号側に送られれば、復号側は、量子化マトリクスの修正に係る追加的な復号化の機能を新たに設ける必要はない。
【0074】
<動作>
次に、実施例1における画像処理装置10の動作について説明する。
図4は、画像処理装置10の処理の一例を示す図である。
図4に示すステップS410で、空間周波数取得部115は、ブロック直交変換後情報172を取得する。なお、上述のように、空間周波数取得部115は、原画像のフレーム(画像)に対して、直交変換が行われるブロック(直交変換ブロック)領域毎に、空間周波数解析を独自に行ってもよい。
【0075】
ステップS420で、被写界深度判定部114は、画像のブロック毎の被写界深度の内/外判定を行う。判定では、例えば画素毎、又は所定の領域毎に取得された256段階の奥行き情報をK-means法などによりクラスタ化を行ってもよい。クラスタ数nとしては、例えば、n=2とする。動作の詳細については、
図5で述べる。ブロック毎の被写界深度の情報は、ブロック分割情報保存部111のブロック分割の情報に対応付けて、被写界深度保存部118に保存される。
【0076】
ステップS430で、圧縮率判定部117は、画像全体の圧縮率の高低を判定する。圧縮率判定部117は、例えば、フレームの圧縮率を、上述のように予測誤差信号情報量積算部112の情報と、量子化後情報量積算部116の情報との比を計算することによって求めることができる。
【0077】
ステップS440で、量子化マトリクス修正部160は、符号化のために一旦作成された量子化マトリクス又はQp値174を修正し、修正された量子化マトリクス又はQp値186を得る。この動作の詳細については、
図6を用いて説明する。
【0078】
図5は、実施例1における被写界深度の判定の例を示すフローチャートである。
【0079】
ステップS510で、1フレーム分の奥行き情報170に基づいて、奥行き情報クラスタリング部113は、各ブロックをクラスタ化する。クラスタ化の一例を以下に示す。
【0080】
まず、奥行き情報クラスタリング部113は、奥行き情報のヒストグラムを求め、このヒストグラムが取る値の範囲をクラスタ数n(例えばn=2)に等分割し、奥行き情報を分類する。
【0081】
奥行き情報クラスタリング部113は、各画素位置又は各所定領域の奥行き情報のクラスタリング結果として、奥行き降順に番号(クラスタ番号=1、0)を付与して、このクラスタリング結果を得る。
【0082】
奥行き情報クラスタリング部113は、ブロック毎に、クラスタリング情報の代表値を取得する。例えば、奥行き情報クラスタリング部113は、ブロック毎にクラスタリング情報を平均化し、端数を四捨五入する整数化を行うことで、ブロック毎に1つの奥行き情報(クラスタ番号の代表値=1又は0)を取得する。例えば、上述の整数化を行った値が1であれば、クラスタ番号の代表値=1とする。また、整数化を行った値が0であれば、クラスタ番号の代表値=0とすればよい。なお、奥行き情報クラスタリング部113は、ブロック毎に、クラスタリング情報の中央値や最頻値をクラスタ番号の代表値としてもよい。
【0083】
ステップS520で、被写界深度判定部114は、奥行き情報クラスタリング部113からの情報を用いて、同じクラスタに属するブロック毎に空間高周波数のパワーの割合を算出する。ブロックにおける空間高周波数のパワーの割合の計算の例については、
図3を用いて既に説明したので、説明は省略する。
【0084】
ステップS530で、被写界深度判定部114は、空間高周波数のパワーの割合が最も高いクラスタを特定する。この特定されたクラスタに属する複数のブロックが被写界深度内に存在する可能性の高いブロックであると推定できる。
【0085】
ステップS540で、被写界深度判定部114は、特定されたクラスタに属するブロックの情報を、被写界深度保存部118に送る。被写界深度保存部118に保存された情報は、2パス目において、量子化マトリクス修正部160において用いられる。
【0086】
図6は、量子化マトリクス修正部160が、量子化マトリクスの値を修正する例を示したフローチャートである。
【0087】
ステップS610で、量子化マトリクス修正部160は、圧縮率判定部117からの圧縮率の情報(高圧縮率であるか低圧縮率であるかの情報)を基に、処理の分岐のための判定を行う。判定結果が「はい」であれば、高圧縮であるためステップS620に進む。判定結果が「いいえ」であれば、ステップS611に進む。
【0088】
ステップS611で、量子化マトリクス修正部160は、圧縮率判定部117からの圧縮率の情報(高圧縮率であるか低圧縮率であるかの情報)を基に、処理の分岐のための判定を行う。判定結果が「はい」であれば低圧縮であるためステップS640に進む。判定結果が「いいえ」であれば、高圧縮でも低圧縮でもないため、終了する。
【0089】
ステップS620で、量子化マトリクス修正部160は、被写界深度内に属するブロックのうち、空間低周波数のパワーの割合が、例えば所定の閾値より高いブロックを特定する。一般に、被写界深度内のブロックは、鮮明度が高いため、空間低周波数のパワーよりも空間高周波数のパワーの割合が高い場合が多い。しかしながら、オブジェクトのテクスチャ自体が空間低周波数を持つような場合には、被写界深度内においても、空間低周波数のパワーの割合が高いブロックが存在する場合がある。このようなブロックでは、上述のように擬似輪郭が発生する確率が高い。しかも被写界深度内にそのブロックが存在するために、この擬似輪郭が目立ちやすいと判断される。このようなブロックは、例えば、ブロック内における第1の閾値以下の空間周波数のパワーを第1の閾値を超える空間周波数のパワーで除した値が、第2の閾値を越えるブロックを見出せばよい。なお、第1の閾値、及び第2の閾値は、本実施例を実装する際に、当業者が適宜設定することができる。
【0090】
したがって、量子化マトリクス修正部160は、このようなブロックに対して、擬似輪郭の発生を抑制するために、量子化マトリクスの値を、より小さくすることが望ましい。このため、量子化マトリクス修正部160は、このようなブロックを特定する。
【0091】
ステップS630で、量子化マトリクス修正部160は、特定されたブロックの量子化ステップを、より小さい値に設定する。量子化マトリクスの値の設定の例については、既に量子化マトリクス修正部160の説明の部分で詳述したので、ここでは省略する。
【0092】
ステップS640で、量子化マトリクス修正部160は、被写界深度外のブロックを特定する。被写界深度外のブロックは、経験則上、目に止まりにくいと判断される。したがって、被写界深度外のブロックの圧縮率を上げても、画像の劣化は目立ちにくいと予測される。このような理由から、量子化マトリクス修正部160は、被写界深度外のブロックの圧縮率を上げるように、被写界深度外のブロックに対応する量子化マトリクスの値を、より大きくする。量子化マトリクスの値の設定の例については、既に量子化マトリクス修正部160の説明の部分で詳述したので、ここでは省略する。
【0093】
以上、実施例1では、奥行き情報から、被写界深度に関する情報を取得することができる。加えて、この被写界深度の情報を用いて、画質の向上、又は圧縮率の増加を図ることができる。より詳細には、高圧縮時においては、被写界深度内に発生し得る擬似輪郭の発生を充分に抑制することができる。また、低圧縮時においては、被写界深度外の領域の量子化ステップを増加させることで、画像の劣化がなるべく目立たないように、圧縮率を上げることができる。
【0094】
[実施例2]
実施例2では、実施例1における画像処理装置10を画像処理部(1)11に含む画像処理装置(画像符号化装置)について説明する。
【0095】
<構成>
図7は、実施例2における画像処理装置20の概略構成の一例を示すブロック図である。
図7に示す例では、画像処理装置20は、前処理部200と、予測誤差信号生成部201と、直交変換部202と、量子化部203と、エントロピー符号化部204と、逆量子化部205と、逆直交変換部206と、復号画像生成部207と、ループフィルタ部209と、復号画像記憶部210と、イントラ予測部211と、インター予測部212と、動きベクトル計算部213と、予測画像選択部215と、画像処理部(1)11とを有する。各部についての概略を以下に説明する。
【0096】
前処理部200は、ピクチャタイプに合わせてピクチャを並べ替え、ピクチャタイプ及びフレーム毎のフレーム画像等を順次出力する。また、前処理部200は、ブロック分割なども行い、ブロック分割の境界情報を、画像処理部(1)11、及びループフィルタ部209に出力する。前処理部200は、画像処理部(1)11から、1パス・2パス切替指示162を取得する。また、前処理部200は、画像処理部(1)11との間で、ブロック分割情報を、信号線164を介して交換する。前処理部200は、1パス目で、ブロック分割情報を画像処理部(1)11に与える。そして、前処理部200は、2パス目で、ブロック分割情報を画像処理部(1)11から取得する。このようにすることによって、前処理部200は、1パス目のブロック分割と同じブロック分割を、2パス目で用いることができる。
【0097】
予測誤差信号生成部201は、入力された原画像データの符号化対象画像が、例えば32×32、16×16、8×8画素などのブロックに分割されたブロックデータを取得する。
【0098】
予測誤差信号生成部201は、そのブロックデータと、予測画像選択部215から出力される予測画像のブロックデータとにより、予測誤差信号を生成する。予測誤差信号生成部201は、生成された予測誤差信号を、画像処理部(1)11、及び直交変換部202に出力する。
【0099】
直交変換部202は、入力された予測誤差信号を直交変換処理する。直交変換部202は、変換された係数値を示す信号を、画像処理部(1)11、及び量子化部203に出力する。
【0100】
量子化部203は、直交変換部202からの出力信号を量子化する。量子化部203は、量子化することによって出力信号の符号量を低減し、この出力信号を画像処理部(1)11、エントロピー符号化部204、及び逆量子化部205に出力する。
【0101】
画像処理部(1)11は、実施例1で説明した画像処理装置10を含み得る。なお、画像処理部(1)11は、量子化部203から信号線174により量子化パラメータ等を受け取る。そして、画像処理部(1)11によって修正された量子化パラメータの情報が、信号線186によって、量子化部203に返される。量子化部203は、この修正された量子化パラメータを使用して、量子化を実行する。なお、画像処理部(1)11は、量子化パラメータの代わりに、量子化マトリクス自体を修正して、量子化部203に与えてもよい。画像処理部(1)11には、信号線170を介して、前処理部200から奥行き情報が入力されている。なお、前処理部200は、上述のように原画像を画像処理部(1)11に提供してもよい。原画像は、
図2示す空間周波数取得部115で利用され得る。また、奥行き情報は、
図2示す奥行き情報クラスタリング部113で利用される。また、画像処理部(1)11には、直交変換部202から信号線710を介して、直交変換係数が入力される。この直交変換係数は、
図2に示す空間周波数取得部115が利用する。
【0102】
エントロピー符号化部204は、画像処理部(1)11から2パス目動作指示信号184を受け取ることにより、2パス目であることを認識し動作する。エントロピー符号化部204は、量子化部203からの出力信号や、動きベクトル計算部213から出力された動きベクトル情報やループフィルタ部209からのフィルタ係数などをエントロピー符号化して出力する。
【0103】
また、エントロピー符号化部204は、イントラ予測部211から取得したイントラ予測方向の差分値や、インター予測部212から取得した動きベクトルと予測ベクトルの差分値などをエントロピー符号化する。
【0104】
また、エントロピー符号化部204は、画像処理部(1)11で修正された量子化マトリクスの情報を符号化する。エントロピー符号化とは、シンボルの出現頻度に応じて可変長の符号を割り当てる方式をいう。
【0105】
逆量子化部205は、量子化部203からの出力信号を逆量子化してから逆直交変換部206に出力する。逆直交変換部206は、逆量子化部205からの出力信号を逆直交変換処理してから復号画像生成部207に出力する。これら逆量子化部205及び逆直交変換部206によって復号処理が行われることにより、符号化前の予測誤差信号と同程度の信号が得られる。
【0106】
復号画像生成部207は、イントラ予測部211で画面内予測された画像或いはインター予測部212で動き補償された画像のブロックデータと、逆量子化部205及び逆直交変換部206により復号処理された予測誤差信号とを加算する。復号画像生成部207は、加算して生成した復号画像のブロックデータを、ループフィルタ部209に出力する。
【0107】
ループフィルタ部209は、例えばALF(Adaptive Loop Filter)やデブロッキングフィルタである。ループフィルタ部209は、フィルタ処理結果を復号画像記憶部210に出力し、蓄積された1画像分のフィルタ処理結果を参照画像として記憶させる。
【0108】
復号画像記憶部210は、入力した復号画像のブロックデータを新たな参照画像のデータとして記憶し、イントラ予測部211、インター予測部212及び動きベクトル計算部213に出力する。
【0109】
イントラ予測部211は、符号化対象画像の処理対象ブロックに対して、既に符号化された参照画素から予測画像のブロックデータを生成する。イントラ予測部211は、複数の予測方向を用いて予測を行い、最適な予測方向を決定する。予測方向については、符号化済みブロックの予測方向との差分値をビットストリームに含めるために、差分値がエントロピー符号化部204に出力される。
【0110】
インター予測部212は、復号画像記憶部210から取得した参照画像のデータを動きベクトル計算部213から提供される動きベクトルで動き補償する。これにより、動き補償された参照画像としてのブロックデータが生成される。動きベクトルについては、符号化済みブロックの動きベクトル(予測ベクトル)との差分値をビットストリームに含めるために、差分値がエントロピー符号化部204に出力される。
【0111】
動きベクトル計算部213は、符号化対象画像におけるブロックデータと、復号画像記憶部210から取得する参照画像とを用いて、動きベクトルを求める。
【0112】
動きベクトル計算部213は、求めた動きベクトルをインター予測部212に出力し、参照画像を示す情報を含む動きベクトル情報をエントロピー符号化部204に出力する。
【0113】
イントラ予測部211とインター予測部212から出力されたブロックデータは、予測画像選択部215に入力される。
【0114】
予測画像選択部215は、イントラ予測部211とインター予測部212から取得したブロックデータのうち、どちらか一方のブロックデータを予測画像として選択する。選択された予測画像は、予測誤差信号生成部201に出力される。
【0115】
なお、
図7に示す画像処理装置20の構成は一例であり、必要に応じて各構成を組み合わせたり、各構成を適宜変更したりしてもよい。
【0116】
以上、実施例2によれば、画像符号化時に、奥行き情報を得て、得られた奥行き情報に基づいて、高圧縮時には擬似輪郭の抑制又は、低圧縮時には圧縮率の向上を図ることができる。
【0117】
[実施例3]
実施例3における画像処理装置(画像復号装置)は、実施例2における画像処理装置20で符号化されたビットストリームを復号する装置である。
【0118】
<構成>
図8は、実施例3における画像処理装置30の概略構成の一例を示すブロック図である。
図8に示すように、画像処理装置30は、エントロピー復号部301と、逆量子化部302と、逆直交変換部303と、イントラ予測部304と、復号情報記憶部305と、インター予測部306と、予測画像選択部307と、復号画像生成部308と、ループフィルタ部310と、フレームメモリ311とを有する。各部についての概略を以下に説明する。
【0119】
エントロピー復号部301は、ビットストリームが入力されると、画像処理装置20のエントロピー符号化に対応するエントロピー復号を行う。エントロピー復号部301により復号された予測誤差信号などは逆量子化部302に出力される。また、実施例1又は2において利用された量子化マトリクスの修正に関する情報、及びインター予測されている場合の、復号された動きベクトルの差分値などは復号情報記憶部305に出力される。
【0120】
また、エントロピー復号部301は、イントラ予測の場合、イントラ予測部304にその旨通知する。また、エントロピー復号部301は、復号対象画像がインター予測されているか、イントラ予測されているかを予測画像選択部307に通知する。
【0121】
逆量子化部302は、エントロピー復号部301からの出力信号に対して、必要に応じて実施例1又は2において利用された量子化マトリクスの修正に関する情報を考慮して、逆量子化処理を行う。逆量子化された出力信号は逆直交変換部303に出力される。
【0122】
逆直交変換部303は、逆量子化部302からの出力信号の復号ブロックに対して逆直交変換処理を行い、残差信号を生成する。残差信号は復号画像生成部308に出力される。
【0123】
イントラ予測部304は、フレームメモリ311から取得する復号対象画像の既に復号化された周辺画素から、複数の予測方向を用いて予測画像を生成する。
【0124】
復号情報記憶部305は、分割モードなどの復号情報を記憶する。
【0125】
インター予測部306は、フレームメモリ311から取得した参照画像のデータを復号情報記憶部305から動きベクトルの差分値などを取得する。インター予測部306は、予測ベクトルを決定し、決定した予測ベクトルと、動きベクトルの差分値とを加算し、動きベクトルを生成する。インター予測部306は、生成した動きベクトルを用いて動き補償を行う。これにより、動き補償された参照画像としてのブロックデータが生成される。
【0126】
予測画像選択部307は、イントラ予測画像、又はインター予測画像のどちらか一方の予測画像を選択する。選択されたブロックデータは、復号画像生成部308に出力される。
【0127】
復号画像生成部308は、予測画像選択部307から出力される予測画像と、逆直交変換部303から出力される残差信号とを加算し、復号画像を生成する。生成された復号画像はループフィルタ部310に出力される。
【0128】
ループフィルタ部310は、復号画像生成部308から出力された復号画像に対し、ブロック歪を低減するためのフィルタをかけ、ループフィルタ処理後の復号画像をフレームメモリ311に出力する。
【0129】
なお、ループフィルタ後の復号画像は表示装置などに出力される。
【0130】
フレームメモリ311は、参照画像となる復号画像などを記憶する。なお、復号情報記憶部305とフレームメモリ311は、分けた構成にしているが、同じ記憶部であってもよい。
【0131】
以上、実施例3によれば、実施例2の符号時に使用された量子化マトリクスに係る修正の情報を用いて、画像処理装置20で符号化されたビットストリームを、適切に復号することができる。
【0132】
[実施例4]
図9は、実施例4における画像処理装置40の概略構成の一例を示すブロック図である。
図9に示す画像処理装置40は、上述した実施例1〜3で説明した画像処理をソフトウェアで実装した装置の一例である。
【0133】
図9に示すように、画像処理装置40は、制御部401と、主記憶部402と、補助記憶部403と、ドライブ装置404と、ネットワークI/F部406と、入力部407と、表示部408とを有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【0134】
制御部401は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部401は、主記憶部402又は補助記憶部403に記憶された画像処理のプログラムを実行する演算装置である。制御部401は、入力部407や記憶装置からデータを受け取り、演算、加工した上で、表示部408や記憶装置などに出力する。
【0135】
また、制御部401は、画像処理のプログラムを実行することで、実施例1〜4で説明した処理を実現することができる。
【0136】
主記憶部402は、ROM(Read Only Memory)やRAM(Random Access Memory)などである。主記憶部402は、制御部401が実行する基本ソフトウェアであるOS(Operating System)やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【0137】
補助記憶部403は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【0138】
ドライブ装置404は、記録媒体405、例えばフレキシブルディスクからプログラムを読み出し、記憶部にインストールする。
【0139】
また、記録媒体405に、所定のプログラムを格納し、この記録媒体405に格納されたプログラムはドライブ装置404を介して画像処理装置40にインストールされる。インストールされた所定のプログラムは、画像処理装置40により実行可能となる。
【0140】
ネットワークI/F部406は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器と画像処理装置40とのインターフェースである。
【0141】
入力部407は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部408の表示画面上でキーの選択等を行うためのマウスやスライドパット等を有する。表示部408は、LCD(Liquid Crystal Display)等により構成され、制御部401から入力される表示データに応じた表示が行われる。
【0142】
なお、
図2の画像処理装置10、
図7の画像処理装置20、及び
図8の画像処理装置30の各部は、例えば制御部401及びワークメモリとしての主記憶部402により実現されうる。
【0143】
また、
図7に示す復号画像記憶部210は、例えば主記憶部402又は補助記憶部403により実現され、
図7に示す復号画像記憶部210以外の構成は、例えば制御部401及びワークメモリとしての主記憶部402により実現されうる。
【0144】
また、
図8に示す復号情報記憶部305及びフレームメモリ311は、例えば主記憶部402又は補助記憶部403により実現されうる。
図8に示す復号情報記憶部305及びフレームメモリ311以外の構成は、例えば制御部401及びワークメモリとしての主記憶部402により実現されうる。
【0145】
画像処理装置40で実行されるプログラムは、実施例1〜3で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部401が補助記憶部403からプログラムを読み出して実行することにより上記各部のうち1又は複数の各部が主記憶部402上にロードされ、1又は複数の各部が主記憶部402上に生成されるようになっている。
【0146】
このように、上述した実施例1〜3で説明した画像処理は、コンピュータに実行させるためのプログラムとして実現することができる。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、実施例1〜3で説明した処理を実現することができる。
【0147】
また、このプログラムを記録媒体405に記録し、このプログラムが記録された記録媒体405をコンピュータや携帯端末などの処理装置に読み取らせて、前述した画像処理を実現させることも可能である。
【0148】
なお、記録媒体405は、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【0149】
また、上述した各実施例で説明した画像処理は、1つ又は複数の集積回路に実装され得る。なお、実施例4における画像処理装置40は、上記の通り、画像処理装置10、20、30の少なくとも1つの装置としての機能を有する。
【0150】
また、上述した各実施例における画像処理装置は、奥行き情報を用いて被写界深度情報を出力し、または量子化マトリクスを修正する符号化技術に対して適用可能であり、H.264/AVCやH.265/HEVCだけに限られるものではない。
【0151】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記変形例以外にも種々の変形及び変更が可能である。