JP2015012548A - 画像処理装置、補正方法および補正プログラム - Google Patents

画像処理装置、補正方法および補正プログラム Download PDF

Info

Publication number
JP2015012548A
JP2015012548A JP2013138457A JP2013138457A JP2015012548A JP 2015012548 A JP2015012548 A JP 2015012548A JP 2013138457 A JP2013138457 A JP 2013138457A JP 2013138457 A JP2013138457 A JP 2013138457A JP 2015012548 A JP2015012548 A JP 2015012548A
Authority
JP
Japan
Prior art keywords
pixel
block
target
motion vector
pixel component
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.)
Granted
Application number
JP2013138457A
Other languages
English (en)
Other versions
JP6163919B2 (ja
Inventor
都市 雅彦
Masahiko Toshi
雅彦 都市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013138457A priority Critical patent/JP6163919B2/ja
Priority to US14/313,279 priority patent/US20150003528A1/en
Publication of JP2015012548A publication Critical patent/JP2015012548A/ja
Application granted granted Critical
Publication of JP6163919B2 publication Critical patent/JP6163919B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】階層的動き予測にかかる演算量の増大を抑制すること。【解決手段】画像処理装置100は、対象フレームTFの縮小画像と参照フレームRFの縮小画像とに基づいて、対象フレームTFを区切って分割された対象ブロックTBの第1動きベクトルV1を検出する。画像処理装置100は、第1動きベクトルV1に基づいて、参照フレームRF上のブロックBのエッジ方向に略直交する第1画素成分を特定する。画像処理装置100は、第1画素成分に対応する対象ブロックTB上の画素列を含む当該画素列に平行な探索範囲を設定する。画像処理装置100は、第1画素成分に対応する探索範囲内の第2画素成分ごとに、第1画素成分の画素値と第2画素成分の画素値との差分を表す評価値を算出する。画像処理装置100は、第2画素成分ごとの評価値に基づいて、第1動きベクトルV1を補正する。【選択図】図1

Description

本発明は、画像処理装置、補正方法および補正プログラムに関する。
動き予測は、一連のフレームのうちの処理対象となる対象フレーム内の元ブロックと類似するブロックを参照フレームから探し出し、元ブロックとの空間的な位置の差を動きベクトルとして出力する処理である。また、サブサンプルされた縮小画像に対して動き予測を行う階層的動き予測と呼ばれる技術がある。
階層的動き予測では、例えば、1段階目の動き予測において、原画像と参照画像のそれぞれを縮小した画像を用いて、おおよその動きベクトルが導出される。そして、2段階目の動き予測において、原画像と参照画像を用いて、1段階目の動き予測結果の動きベクトルが示す点を中心とした探索範囲について動き探索が行われる。
例えば、1段階目の動き予測において、原画像と比較して縦横1/2倍の縮小画像を用いて動きベクトルの導出を行った場合、導出された動きベクトルを縦横2倍に拡大し原画像に当てはめると2画素単位の粒度の動きベクトルが求められたといえる。2段階目の動き探索では縦横±1つまり3x3の範囲の探索点で動き予測ベクトルを探索することで、原画像の画素精度の動きベクトルを求めることができる。縮小画像を用いた階層的な動き予測を行なうことで、原画像を用いた動き予測と比較して少ない演算量で動き予測を行なうことが可能となる。(例えば、特許文献1)
また、縮小処理により画像の高周波成分の情報が失われるため、縮小画像による探索では動きベクトルを誤検出する可能性がある。そのため、画像の鮮鋭度を評価値として、鮮鋭度が高い場合には階層的動き予測を行わないようにする技術がある。(例えば、特許文献2)
特開2009−55410号公報 特開2012−19465号公報
しかしながら、従来技術によれば、階層的動き予測において、画像の縮小率が高くなると、1段階目の動き予測で得られる動きベクトルの精度が粗くなり、2段階目の動き予測での探索点が多くなって動き予測にかかる演算量が増大するという問題がある。
一つの側面では、本発明は、階層的動き予測にかかる演算量の増大を抑制することができる画像処理装置、補正方法および補正プログラムを提供することを目的とする。
本発明の一側面によれば、処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する画像処理装置、補正方法および補正プログラムが提案される。
本発明の一態様によれば、階層的動き予測にかかる演算量の増大を抑制することができるという効果を奏する。
図1は、実施の形態にかかる補正方法の一実施例を示す説明図である。 図2は、動きベクトルと探索範囲との関係を示す説明図である。 図3は、コンピュータシステム300のハードウェア構成例を示すブロック図である。 図4は、ブロックBのエッジ直交成分の具体例を示す説明図である。 図5は、エッジ情報Eのデータ構造の一例を示す説明図である。 図6は、エッジ情報テーブル600の記憶内容の一例を示す説明図である。 図7は、画像処理装置100の機能的構成例を示すブロック図である。 図8は、探索範囲SR2の設定例を示す説明図である。 図9は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の一例を示す説明図である。 図10は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第1の対処例を示す説明図である。 図11は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第2の対処例を示す説明図である。 図12は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第3の対処例を示す説明図である。 図13は、エッジ直交成分のバリエーションを示す説明図(その1)である。 図14は、エッジ直交成分のバリエーションを示す説明図(その2)である。 図15は、画像処理装置100の画像処理手順の一例を示すフローチャートである。 図16は、エッジ情報作成処理の具体的処理手順の一例を示すフローチャートである。 図17は、第1動きベクトル補正処理の具体的処理手順の一例を示すフローチャートである。 図18は、第2動きベクトル検出処理の具体的処理手順の一例を示すフローチャートである。 図19は、符号化装置1900の装置構成例を示すブロック図である。 図20は、転送情報の具体例を示す説明図である。
以下に図面を参照して、本発明にかかる画像処理装置、補正方法および補正プログラムの実施の形態を詳細に説明する。
(補正方法の一実施例)
図1は、実施の形態にかかる補正方法の一実施例を示す説明図である。図1において、画像処理装置100は、階層的動き予測を行うコンピュータである。画像処理装置100は、例えば、MPEG(Moving Picture Experts Group)2、MPEG4、H.264、HEVC(High Efficiency Video Coding)等の規格が定める圧縮方式に従って動き予測を行う。
ここで、動き予測とは、対象画像を区切って分割されたブロックと類似するブロックを参照画像から探索し、ブロック間の空間的な位置の差を動きベクトルとして出力する処理である。対象画像とは、動画像である一連のフレームのうちの処理対象(例えば、符号化対象)となる対象フレームの画像である。対象画像は、対象フレームの原画像であってもよく、また、対象フレームの原画像を縮小した画像であってもよい。
参照画像とは、一連のフレームのうちの対象フレームの参照先となる参照フレームの画像である。参照画像は、例えば、符号化済みの画像である。ブロックとは、対象画像や参照画像を、例えば、8×8画素や16×16画素などの単位で区切って分割した画像である。対象画像においては、ブロックは、いわゆるマクロブロックや、ブロックパーティションなどのフレーム間予測の実施単位である。
また、階層的動き予測とは、動き予測の処理全体を複数の段階に分け、前の段階ほど、原画像、参照画像をより縮小した画像に対して動き予測を行い、2段階目以降では、前段で検出した動きベクトルから特定される参照画像上の探索範囲について動き予測を行う手法である。
具体的には、例えば、画像処理装置100は、1段階目の動き予測において、縮小率r(rx×ry)で対象フレームを縮小した縮小画像と参照フレームを縮小した縮小画像とに基づいて、対象フレームから分割された対象ブロックの動きベクトルを検出する。ただし、rxは、x軸方向の縮小率であり、ryは、y軸方向の縮小率であり、1よりも小さい値をとる。
より具体的には、例えば、画像処理装置100は、動きベクトルの候補となる候補ベクトルごとに、候補ベクトルに対応する参照ブロックと対象ブロックとの違いを示す評価値を算出する。そして、画像処理装置100は、例えば、算出した評価値が最小となる候補ベクトルを動きベクトルとして出力する。これにより、対象フレームと参照フレームのそれぞれを縮小した縮小画像を用いて、おおよその動きベクトルを導出することができる。
以下の説明では、1段階目の動き予測を「縮小ME(Motion Estimation)」と表記し、縮小MEにおいて検出される動きベクトルを「第1動きベクトル」と表記する場合がある。また、2段階目の動き予測を「詳細ME」と表記し、詳細MEにおいて検出される動きベクトルを「第2動きベクトル」と表記する場合がある。
つぎに、画像処理装置100は、詳細MEにおいて、対象フレームと参照フレームを用いて、縮小MEの結果である第1動きベクトルから特定される参照フレーム上の点の周辺を探索範囲として第2動きベクトルを探索する。詳細MEの探索起点は、第1動きベクトルを縮小率rの逆数倍(1/r)拡大したベクトルが示す参照フレーム上での点となる。
以下の説明では、第1動きベクトルを縮小率rの逆数倍(1/r)拡大したベクトルについても「第1動きベクトル」と表記する場合がある。
縮小MEでは、縮小率を高くすればするほど、より広い範囲を少ない演算量で探索することができる。ところが、縮小率を高くすればするほど、縮小MEで得られる第1動きベクトルの精度が粗くなる(すなわち、動きベクトルが指し示す点間の間隔が広がる)。このため、詳細MEにおいて、ピクセル単位の高精度な動き予測を行うための探索点が多くなって動き予測にかかる演算量の増大を招いてしまう。
ここで、図2を用いて、縮小MEで得られる第1動きベクトルと、詳細MEにおける探索範囲との関係について説明する。ここでは、対象フレームと参照フレームを縮小率「1/4(1/4×1/4)」で縮小した縮小画像を用いて、第1動きベクトルを検出する場合を想定する。
図2は、動きベクトルと探索範囲との関係を示す説明図である。図2において、太線枠の格子点201〜209は、縮小MEで得られる第1動きベクトルが指し示す参照フレーム上の点である。また、探索範囲200は、第1動きベクトルが指し示す点が点201の場合に設定される詳細MEにおける探索範囲の一例である。
具体的には、格子点201〜209は、x軸方向、y軸方向それぞれに縮小率「1/4」の逆数である4画素単位に設けられる。この場合、整数画素位置の探索をカバーするためには、詳細MEにおいて、第1動きベクトルが指し示す点201を中心に、最低でもx方向、y方向で±2画素の範囲で探索を行うことになる。
このため、詳細MEにおける探索範囲200は、第1動きベクトルが指し示す点201を中心に、例えば、x軸方向に±2画素、y軸方向に±2画素の範囲に設定される。すなわち、縮小率を高くすればするほど、縮小MEで整数画素位置の探索をカバーするためにより広い範囲で探索を行うことになり、動き予測にかかる演算量が増大する。このとき、縮小MEで得た第1動きベクトルが指し示す位置が縮小率rの逆数倍よりも細かな単位で得られれば、詳細MEの探索範囲を限定でき、動き予測にかかる演算量を削減することができる。
そこで、本実施の形態では、画像処理装置100は、縮小MEで得た第1動きベクトルから参照フレーム上のブロックのエッジに略直交する画素成分を特定し、特定した画素成分と対象ブロックとのブロックマッチングを行うことで第1動きベクトルを補正する。以下、画像処理装置100の補正処理例について説明する。
(1)画像処理装置100は、対象フレームTFの縮小画像と参照フレームRFの縮小画像とに基づいて、対象フレームTFを区切って分割された対象ブロックTBの第1動きベクトルV1を検出する。ここでは、対象フレームTFと参照フレームRFを縮小率1/4(1/4×1/4)で縮小した縮小画像を用いて、第1動きベクトルV1を検出する場合を想定する。
図1の例では、対象ブロックTBの第1動きベクトルV1(4X,4Y)が検出されている。ただし、第1動きベクトルV1は、対象フレームTFと参照フレームRFの縮小画像を用いて検出された第1動きベクトルV1(X,Y)を縮小率rの逆数倍、すなわち、4倍に拡大したベクトルである。
(2)画像処理装置100は、検出した第1動きベクトルV1に基づいて、参照フレームRF上のブロックBのエッジ方向に略直交する第1画素成分を特定する。ここで、エッジとは、画像において明るさの変化が相対的に大きい箇所である。ここでは、参照フレームRFを区切って分割したブロックBごとにエッジが検出される。
第1画素成分は、エッジ方向に略直交する1以上の画素列により構成される。第1画素成分を構成する画素列の長さや列数は、任意に設定可能である。また、第1画素成分は、例えば、複数のブロックBに跨がる画素列により構成されてもよい。図1の例では、第1画素成分は、7画素の画素列により構成されている。
具体的には、例えば、まず、画像処理装置100は、第1動きベクトルV1が示す参照フレームRF上の点Aに対象ブロックTBを配置した場合に、対象ブロックTBと重なる参照フレームRF上のブロックBを特定する。図1の例では、参照ブロックRF上のブロックB1〜B4が特定される。
つぎに、画像処理装置100は、特定した参照フレームRF上のブロックB1〜B4のエッジ方向に略直交する画素成分101〜104と対象ブロックTBとの重なり度合いを判断する。そして、画像処理装置100は、対象ブロックTBとの重なり度合いが最大となるブロックBの画素成分を第1画素成分として特定する。図1の例では、ブロックB2の画素成分102が第1画素成分として特定される。
(3)画像処理装置100は、特定した第1画素成分に対応する対象ブロックTB上の画素列を含む当該画素列に平行な探索範囲を設定する。具体的には、例えば、画像処理装置100は、第1画素成分に対応する対象ブロックTB上の画素列を含み、当該画素列を平行に±k画素ずらした対象フレームTF上の範囲を探索範囲に設定する。
ここで、kは、縮小率rの逆数倍の1/2程度の値である。例えば、縮小率rを「1/4」とすると、kは「2」となる。図1の例では、第1画素成分に対応する対象フレームTF上の画素列105を、y軸方向(画素列105に平行な方向)に±2画素ずらした範囲が探索範囲110に設定されている。
(4)画像処理装置100は、設定した探索範囲において、第1画素成分に対応する探索範囲内の第2画素成分ごとに、第1画素成分の画素値と第2画素成分の画素値との差分を表す評価値を算出する。ここで、評価値は、例えば、第1画素成分と第2画素成分との対応する画素間の差分を表す値を累積加算することにより算出される。
評価値は、第1画素成分と第2画素成分との類似度合いを判断する指標となる。画素間の差分を表す値は、例えば、画素間の画素値の差の絶対値である。画素値は、画素が示す色情報であり、例えば、輝度成分値、青色色差成分値、赤色色差成分値などの成分値であってもよく、また、赤成分値、緑成分値、青成分値などの成分値であってもよい。
評価値は、具体的には、例えば、SAD(Sum of Absolute Difference)、SATD(Sum of Absolute Transformed Difference)、SSD(Sum of Squared Difference)などである。
すなわち、画像処理装置100は、第1画素成分と対象ブロックTBとのブロックマッチングを行う。なお、ブロックマッチングとは、対象画像内の画素値と、参照画像に対して水平方向・垂直方向に(vx,vy)だけ移動した画素値との間で、SSDやSADなどを評価値として求め、最小評価値を示す移動量を動きベクトルとする探索手法である。
ここで、第1画素成分は、参照フレームRF上のブロックBのエッジ方向に略直交する画素成分である。エッジ方向に略直交する画素成分は、明るさが大きく変化する傾向にある。このため、第1画素成分と対象フレームTF上の画素成分とのブロックマッチングを行った場合、評価値が大きく変化する可能性が高く、第1画素成分と類似する対象フレームTF上の箇所を効率的に探索することができる。
図1の例では、第2画素成分は、対象フレームTF上の探索範囲110において、参照フレームRFの第1画素成分に対応する画素列105をy軸方向に1画素ずつずらしたものとなる。すなわち、探索範囲110内の第2画素成分は5パターンとなり、第1画素成分の画素値と第2画素成分の画素値との差分を表す評価値が5パターン算出される。
ここでは、対象ブロックTBをy軸の正方向、負方向のいずれの方向にもずらしていない場合(k=0)、すなわち、画素列105が第2画素成分となる場合の評価値を「評価値v1」と表記する。また、対象ブロックTBをy軸の正方向に1画素ずらした場合(k=1)の評価値を「評価値v2」と表記する。
また、対象ブロックTBをy軸の正方向に2画素ずらした場合(k=2)の評価値を「評価値v3」と表記する。また、対象ブロックTBをy軸の負方向に1画素ずらした場合(k=−1)の評価値を「評価値v4」と表記する。また、対象ブロックTBをy軸の負方向に2画素ずらした場合(k=−2)の評価値を「評価値v5」と表記する。
(5)画像処理装置100は、算出した第2画素成分ごとの評価値に基づいて、第1動きベクトルV1を補正する。具体的には、例えば、まず、画像処理装置100は、第2画素成分ごとの評価値v1〜v5のうちの最小の評価値v_minに対応するkを特定する。そして、画像処理装置100は、特定したkを補正量kとして、例えば、下記式(1)または(2)に代入することにより、第1動きベクトルV1を補正する。
V1(x,y)=V1(X/r+k,Y/r) …(1)
V1(x,y)=V1(X/r,Y/r+k) …(2)
より具体的には、例えば、第2画素成分がx軸に平行の場合、画像処理装置100は、上記式(1)に補正量kを代入することにより、第1動きベクトルV1を補正する。また、第2画素成分がy軸に平行の場合、画像処理装置100は、上記式(2)に補正量kを代入することにより、第1動きベクトルV1を補正する。
図1の例では、評価値v1〜v5のうちの評価値v3を最小の評価値v_minとすると、補正量kは「k=2」となる。また、第2画素成分は、y軸に平行である。このため、画像処理装置100は、上記式(2)に補正量k(k=2)を代入することにより、第1動きベクトルV1を補正する。
補正後の第1動きベクトルV1は、下記式(3)のようになる。具体的には、補正後の第1動きベクトルV1は、参照フレームRF上の点A’を指し示すベクトルである。
V1(X,Y)=V1(4X,4Y+2) …(3)
このように、画像処理装置100によれば、縮小MEで得た第1動きベクトルV1から特定される参照フレームRF上のブロックBjの第1画素成分と対象ブロックTBとのブロックマッチングを行うことにより、第1動きベクトルV1を補正することができる。これにより、縮小率rの逆数倍よりも細かな位置精度の第1動きベクトルV1を効率的に得ることができ、詳細MEでの探索範囲を限定して動き予測にかかる演算量を削減することができる。
(コンピュータシステム300のハードウェア構成例)
つぎに、図1に示した画像処理装置100が適用されるコンピュータシステム300のハードウェア構成例について説明する。コンピュータシステム300は、例えば、動画像を記録・再生する機能を有するシステムであり、具体的には、例えば、パーソナル・コンピュータ、テレビジョン、レコーダ、ビデオカメラ、デジタルカメラ、携帯電話、スマートフォンなどである。
図3は、コンピュータシステム300のハードウェア構成例を示すブロック図である。図3において、コンピュータシステム300は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、アクセラレータ304と、を有する。また、各構成部はバス310によってそれぞれ接続されている。
ここで、CPU301は、コンピュータシステム300の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。より具体的には、例えば、フラッシュROMがOSやファームウェアなどのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されているプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させることになる。
I/F303は、他の装置からのデータの入出力を制御する。具体的には、例えば、I/F303は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、I/F303は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
なお、コンピュータシステム300は、上述した構成部のほかに、例えば、磁気ディスクドライブ、磁気ディスク、ディスプレイ、キーボード、マウス、イメージセンサなどを有することにしてもよい。アクセラレータ304は、CPU動画像処理の一部を実現するハードウェアを備えている。
(ブロックBのエッジ直交成分)
つぎに、フレームFを区切って分割されたブロックBのエッジ方向に略直交する画素成分の具体例について説明する。以下の説明では、ブロックBのエッジ方向に略直交する画素成分を「エッジ直交成分」と表記する場合がある。このエッジ直交成分は、上述した第1画素成分に相当する。
図4は、ブロックBのエッジ直交成分の具体例を示す説明図である。図4において、フレームFを区切って分割されたブロックBごとに、ブロックBのエッジ方向に略直交するエッジ直交成分が示されている。フレームFは、動画像である一連のフレームのうちのいずれかのフレームである。
ここで、ブロックBは、16×16画素のブロックである。ブロックBのエッジ方向が縦方向の場合、ブロックBのエッジ直交成分は、ブロックBの中央部の横長(7×1画素)の画素列となる。一方、ブロックBのエッジ方向が横方向の場合、ブロックBのエッジ直交成分は、ブロックBの中央部の縦長(1×7画素)の画素列となる。
画像処理装置100は、ブロックBごとに、ブロックBのエッジ直交成分を示すエッジ情報Eを作成する。エッジ情報Eのデータ構造については、図5を用いて後述する。なお、ここでは、フレームFから分割された各ブロックBを、16×16画素のブロックとしたが、これに限らない。例えば、各ブロックBは、32×32画素や64×64画素のブロックであってもよい。
(エッジ情報Eのデータ構造)
つぎに、フレームFを区切って分割されたブロックBごとに作成されるエッジ情報Eのデータ構造について説明する。
図5は、エッジ情報Eのデータ構造の一例を示す説明図である。図5において、エッジ情報Eは、方向情報501と、画素情報502と、を含む。方向情報501は、ブロックBのエッジ直交成分が縦方向または横方向のいずれの方向であるかを示す1byteの情報である。画素情報502は、縦長(1×7画素)または横長(7×1画素)のエッジ直交成分の各画素の情報(1byte)を示す7byteの情報である。
(エッジ情報テーブル600の記憶内容)
つぎに、画像処理装置100が用いるエッジ情報テーブル600の記憶内容について説明する。エッジ情報テーブル600は、例えば、図3に示したメモリ302により実現される。
以下の説明では、動画像である一連のフレームを「フレームF1〜Fn」と表記し(nは、2以上の自然数)、フレームF1〜Fnのうちの任意のフレームを「フレームFi」と表記する場合がある(i=1,2,…,n)。また、フレームFiを区切って分割された複数のブロックを「ブロックB1〜Bm」と表記し(mは、2以上の自然数)、ブロックB1〜Bmのうちの任意のブロックを「ブロックBj」と表記する場合がある(j=1,2,…,m)。
図6は、エッジ情報テーブル600の記憶内容の一例を示す説明図である。図6において、エッジ情報テーブル600は、フレームF1〜Fnに含まれるフレームFiごとに、フレームFiを区切って分割されたブロックB1〜Bmのエッジ情報E1〜Emを有する。フレームIDは、フレームFiを識別する識別子である。ブロックIDは、ブロックBjを識別する識別子である。エッジ情報は、ブロックBjのエッジ情報Ejである。
(画像処理装置100の機能的構成例)
図7は、画像処理装置100の機能的構成例を示すブロック図である。図7において、画像処理装置100は、入力部701と、作成部702と、生成部703と、第1の検出部704と、特定部705と、第1の設定部706と、算出部707と、補正部708と、第2の設定部709と、第2の検出部710と、出力部711と、を含む構成である。各機能部は、具体的には、例えば、論理積回路であるAND、否定論理回路であるINVERTER、論理和回路であるOR、論理和否定回路であるNORや、ラッチ回路であるFF(Flip Flop)などの素子によって形成されてもよい。また、各機能部は、例えば、Verilog−HDL(Hardware Description Language)などの記述によって機能定義し、その記述を論理合成してFPGA(Field Programmable Gate Array)によって実現してもよい。また、各機能部は、例えば、図3に示したメモリ302に記憶されたプログラムをCPU301に実行させることにより、または、アクセラレータ304により、または、CPU301とアクセラレータ304とで処理を分担し、全体で、その機能を実現することにしてもよい。各機能部の処理結果は、例えば、メモリ302に記憶される。
入力部701は、フレームF1〜Fnの入力を受け付ける機能を有する。フレームF1〜Fnは、例えば、符号化対象となる動画像である。具体的には、例えば、入力部701は、I/F303を介して、他の装置からフレームF1〜Fnの入力を受け付ける。受け付けられたフレームF1〜Fnは、例えば、図3に示したメモリ302に記憶される。
作成部702は、フレームFiを区切って分割されたブロックBjのエッジ情報Ejを作成する機能を有する。具体的には、例えば、まず、作成部702は、Sobelフィルタを用いて、フレームFiから分割されたブロックBjのエッジを検出する。Sobelフィルタは、空間1次微分を計算して、輪郭を検出するフィルタである。
下記式(4)および(5)は、ブロックBjに縦・横方向のSobelフィルタをかけた結果を示す。また、下記式(6)は、ブロックBjのエッジ強度(勾配強度)を示す。ただし、Px,Pyは、x,y方向のエッジ強度である。
Figure 2015012548
Figure 2015012548
作成部702は、x,y方向のエッジ強度Pが予め設定された閾値以上で、エッジ強度Pxがエッジ強度Pyよりも大きい場合、ブロックBjの縦方向のエッジを検出する。そして、作成部702は、ブロックBjからエッジ方向(縦方向)に略直交する画素成分をエッジ直交成分として抽出して、ブロックBjのエッジ情報Ejを作成する。
また、作成部702は、x,y方向のエッジ強度Px,Pyが閾値以上で、エッジ強度Pyがエッジ強度Pxよりも大きい場合、ブロックBjの横方向のエッジを検出する。そして、作成部702は、ブロックBjからエッジ方向(横方向)に略直交する画素成分をエッジ直交成分として抽出して、ブロックBjのエッジ情報Ejを作成する。
また、作成部702は、x,y方向のエッジ強度Px,Pyが閾値未満の場合、ブロックBjにエッジがないことを示すエッジ情報Ejを作成する。作成されたブロックBjのエッジ情報Ejは、例えば、図6に示したエッジ情報テーブル600に記憶される。
なお、作成部702は、ブロックBjのエッジの角度θを算出して、縦・横以外の方向(角度θ)のエッジ情報Ejを作成することにしてもよい。この場合、エッジ直交成分の方向を示す情報が、例えば、エッジ情報Ejの方向情報501に記憶される。角度θは、例えば、下記式(7)を用いて求めることができる。
θ=tan-1(Py/Px) …(7)
生成部703は、所定の縮小率rでフレームFiを縮小した縮小画像を生成する機能を有する。具体的には、例えば、縮小率rが「r=0.25」の場合、生成部703は、フレームFiを水平垂直両方で1/4にサブサンプリングしてフレームFiの縮小画像を生成する。生成されたフレームFiの縮小画像は、例えば、メモリ302に記憶される。
第1の検出部704は、対象フレームTFの縮小画像と参照フレームRFの縮小画像とに基づいて、対象フレームTFを区切って分割された対象ブロックTBの第1動きベクトルV1を検出する機能を有する。ここで、第1動きベクトルV1は、対象画像OPの縮小画像から分割されたブロックと、参照画像RPの縮小画像上の探索範囲内の参照ブロックとの空間的な位置の差を示すベクトルである。
以下の説明では、対象フレームTFの縮小画像から分割されたブロックのうち対象ブロックTBに対応するブロックを「対象ブロックtb」と表記する場合がある。また、参照フレームRFの縮小画像上の探索範囲内のブロックを「参照ブロックrb」と表記する場合がある。
具体的には、例えば、第1の検出部704は、参照フレームRFの縮小画像上の探索範囲内の参照ブロックrbを1画素精度(あるいは、半画素精度、1/4画素精度など)で順次選択する。なお、参照フレームRFの縮小画像上の探索範囲は予め指定されている。探索範囲は、例えば、参照フレームRFの縮小画像上における対象ブロックtbの位置を中心として±15画素の範囲などである。
つぎに、第1の検出部704は、対象ブロックtbと参照ブロックrbとの対応する画素間の差分を表す値を累積加算することにより、参照ブロックrbごとの評価値を算出する。そして、第1の検出部704は、算出した参照ブロックrbごとの評価値に基づいて、対象ブロックTBの第1動きベクトルV1を検出する。ここで、参照ブロックrbの評価値は、例えば、SAD、SATD、SSDなどである。
具体的には、例えば、第1の検出部704は、参照フレームRFの縮小画像上の探索範囲内の参照ブロックrbのうち評価値が最小となる参照ブロックrbに対応するベクトルV(X,Y)を検出する。そして、第1の検出部704は、検出したベクトルV(X,Y)を縮小率rの逆数倍に拡大したベクトルを第1動きベクトルV1(X/r,Y/r)として検出する。
特定部705は、第1の検出部704によって検出された第1動きベクトルV1に基づいて、参照フレームRF上のブロックBjのエッジ直交成分を特定する機能を有する。具体的には、例えば、まず、特定部705は、第1動きベクトルV1が示す参照フレームRF上の位置に対象ブロックTBを配置した場合に、対象ブロックTBと重なる参照フレームRF上のブロックBjを特定する。
つぎに、特定部705は、図6に示したエッジ情報テーブル600を参照して、特定した参照フレームRF上のブロックBjのエッジ直交成分と対象ブロックTBとの重なり度合いを判断する。この際、エッジ直交成分の方向は、エッジ情報Ejの方向情報501から特定することができる。また、エッジ直交成分の位置は、例えば、予め設定されたブロックBjの中央部である。そして、特定部705は、エッジ情報テーブル600を参照して、対象ブロックTBとの重なり度合いが最大となる参照フレームRF上のブロックBjのエッジ直交成分を示すエッジ情報Ejを特定する。これにより、第1動きベクトルV1が指し示す参照フレームRF上の点の周辺のエッジ直交成分のうち、対象ブロックTBとのブロックマッチングを行う適切なエッジ直交成分ECを特定することができる。
なお、対象ブロックTBとの重なり度合いが大きいブロックBjほど、ブロックBjのエッジ直交成分と対象ブロックTBとの重なり度合いが大きくなる可能性が高い。このため、特定部705は、例えば、第1動きベクトルV1が示す参照フレームRF上の位置に配置した対象ブロックTBとの重なり度合いが最大となるブロックBjを特定し、そのブロックBjのエッジ直交成分を示すエッジ情報Ejを特定することにしてもよい。
以下の説明では、特定部705によって特定された参照フレームRF上のブロックBjのエッジ直交成分を「エッジ直交成分EC」と表記する場合がある。
第1の設定部706は、特定部705によって特定されたエッジ直交成分ECに対応する対象ブロックTB上の画素列を含む当該画素列に平行な探索範囲を設定する機能を有する。具体的には、例えば、第1の設定部706は、エッジ直交成分ECに対応する対象ブロックTB上の画素列を含み、当該画素列を平行に±k画素ずらした範囲を探索範囲に設定する。なお、kの値は、任意に設定可能であり、例えば、エッジ直交成分と対象ブロックTBとのブロックマッチングにかかる演算量を考慮して設定される。具体的には、例えば、kは、縮小率rの逆数倍の1/2〜1/3程度の値である。
以下の説明では、第1の設定部706によって設定された対象フレームTF上の探索範囲を「探索範囲SR1」と表記する場合がある。
算出部707は、第1の設定部706によって設定された探索範囲SR1において、エッジ直交成分ECに対応する探索範囲SR1内の画素成分ごとに、エッジ直交成分の画素値と該画素成分の画素値との差分を表す評価値vを算出する機能を有する。すなわち、算出部707は、エッジ直交成分と対象ブロックTBとのブロックマッチングを行う。ここで、エッジ直交成分ECに対応する探索範囲SR1内の画素成分は、エッジ直交成分ECと同一形状の探索範囲SR1内の画素列である。
以下の説明では、エッジ直交成分ECに対応する探索範囲SR1内の画素成分を「対象画素成分TC」と表記する場合がある。エッジ直交成分ECを1列の画素成分とすると、探索範囲SR1内には、(2k+1)通りの対象画素成分TCが存在する。対象画素成分TCの評価値vは、例えば、SAD、SATD、SSDなどである。
具体的には、例えば、算出部707は、エッジ直交成分ECと対象画素成分TCとの対応する画素間の差分を表す値を累積加算することにより、対象画素成分TCごとの評価値vを算出する。なお、エッジ直交成分ECに対応する探索範囲SR1内の画素成分が、対象ブロックTBから外れる場合がある。この場合の対処例については、図9〜図12を用いて後述する。
補正部708は、算出部707によって算出された対象画素成分TCごとの評価値vに基づいて、第1動きベクトルV1を補正する機能を有する。具体的には、例えば、まず、補正部708は、対象画素成分TCごとの評価値vのうちの最小の評価値v_minに対応するkを特定する。そして、補正部708は、例えば、特定したkを補正量kとして、上記式(1)または(2)に代入することにより、第1動きベクトルV1を補正する。
より具体的には、例えば、対象画素成分TCがx軸に平行の場合、補正部708は、上記式(1)に補正量kを代入することにより、第1動きベクトルV1を補正する。また、対象画素成分TCがy軸に平行の場合、補正部708は、上記式(2)に補正量kを代入することにより、第1動きベクトルV1を補正する。
第2の設定部709は、補正部708によって補正された補正後の第1動きベクトルV1と対象画素成分TCの方向とに基づいて、参照フレームRF上の探索範囲SR2を設定する機能を有する。ここで、対象画素成分TCの方向は、ブロックBjのエッジ方向に略直交する方向である。また、探索範囲SR2は、詳細MEの動き予測における探索範囲である。
具体的には、例えば、第2の設定部709は、補正後の動きベクトルV1が示す参照フレームRF上の点を中心として、対象画素成分TC(エッジ直交成分EC)に直交する方向の幅に比べて、対象画素成分TCに平行な方向の幅が狭い矩形領域を探索範囲SR2に設定する。なお、探索範囲SR2の設定例については、図8を用いて後述する。
第2の検出部710は、対象フレームTFと参照フレームRFとに基づいて、対象フレームTFを区切って分割された対象ブロックTBの第2動きベクトルV2を検出する機能を有する。ここで、第2動きベクトルV2は、詳細MEの動き予測において検出される動きベクトルである。
具体的には、例えば、まず、第2の検出部710は、第2の設定部709によって設定された参照フレームRF上の探索範囲SR2において、対象ブロックTBに対応する探索範囲SR2内の参照ブロックRBごとに、対象ブロックTBの画素値と参照ブロックRBの画素値との差分を表す評価値Vを算出する。参照ブロックRBの評価値Vは、例えば、SAD、SATD、SSDなどである。
そして、第2の検出部710は、算出した参照ブロックRBごとの評価値Vに基づいて、対象ブロックTBの第2動きベクトルV2を検出する。より具体的には、例えば、第2の検出部710は、参照フレームRFの探索範囲SR2内の参照ブロックRBのうちの評価値が最小となる参照ブロックRBに対応するベクトルを第2動きベクトルV2として検出する。
なお、第2の検出部710は、参照ブロックRBの評価値Vを算出する際に、画素間の差分を表す値を累積加算する過程において、その累積加算値が、算出済みの他の参照ブロックRBの評価値よりも大きくなった場合、累積加算演算を中断することにしてもよい。すなわち、その後の累積加算過程を続行しても、その評価値が最良の評価値を示すことはないため、第2の検出部710は、その参照ブロックRBの評価値Vの算出処理を中断することにしてもよい。
出力部711は、第2の検出部710によって検出された対象ブロックTBの第2動きベクトルV2を出力する機能を有する。具体的には、例えば、出力部711は、差分画像を周波数成分に変換して量子化する機能部(例えば、後述する図19に示すDCT/量子化部1916)などに、対象ブロックTBの第2動きベクトルV2を出力する。
(探索範囲SR2の設定例)
つぎに、詳細MEの動き予測における探索範囲SR2の設定例について説明する。
図8は、探索範囲SR2の設定例を示す説明図である。図8において、(8−1)は、補正部708による第1動きベクトルV1の補正が行われなかった場合の探索範囲SR2の設定例である。ここでは、初期範囲として、第1動きベクトルV1が示す参照フレームRF上の点Pを中心として、x方向に±3画素、y方向に±3画素の探索範囲SR2が設定されている。
(8−2)は、補正部708による第1動きベクトルV1の補正が行われ、かつ、対象画素成分TCがx方向の場合の探索範囲SR2の設定例である。ここでは、x方向は、対象画素成分TCを用いた補正が行われており、y方向に比べて位置精度が高いため、初期設定から左右の縦1列(図8中、点線枠)を削った探索範囲SR2が設定されている。これにより、初期範囲に比べて、詳細MEにおける探索範囲を限定することができる。
(8−3)は、補正部708による第1動きベクトルV1の補正が行われ、かつ、対象画素成分TCがy方向の場合の探索範囲SR2の設定例である。ここでは、y方向は、対象画素成分TCを用いた補正が行われており、x方向に比べて位置精度が高いため、初期設定から上下の横1列(図8中、点線枠)を削った探索範囲SR2が設定されている。これにより、初期範囲に比べて、詳細MEにおける探索範囲を限定することができる。
なお、ここでは、対象画素成分TCの方向(x方向またはy方向)に応じて、固定的に初期設定から1列分範囲を小さくする場合について説明したが、これに限らない。具体的には、例えば、第2の設定部709は、エッジ直交成分ECに対応する参照フレームRF上のブロックBjのエッジが検出された際のエッジ強度Pと、対象画素成分TCの評価値v_minとに基づいて、削減列数を決定することにしてもよい。
より具体的には、例えば、第2の設定部709は、条件「P>閾値α、かつ、S>閾値β」を満たす場合、削減列数を「2」、すなわち、探索範囲SR2の初期設定から削る列数を「2」に決定することにしてもよい。また、第2の設定部709は、上記条件を満たさない場合、削減列数を「1」、すなわち、探索範囲SR2の初期設定から削る列数を「1」に決定することにしてもよい。
なお、ブロックBjのエッジ強度Pは、例えば、ブロックBjのエッジ情報Ejに含まれていてもよい。また、上記閾値α、βは、例えば、予め設定されてメモリ302に記憶されている。
(エッジ直交成分ECのブロックマッチを行う際の対処例)
つぎに、エッジ直交成分ECと対象ブロックTBとのブロックマッチを行う際に、エッジ直交成分ECに対応する探索範囲SR1内の画素成分が、対象ブロックTBから外れる場合の対処例について説明する。ここで、エッジ直交成分ECに対応する探索範囲SR1内の画素成分が、対象ブロックTBから外れる場合は、下記(i)および(ii)の2通りである。
(i)エッジ直交成分ECの一部または全部が対象ブロックTBから外れる場合
(ii)対象フレームTF上の探索範囲SR1内において、エッジ直交成分ECに対応する画素成分を変更した場合に対象ブロックTBから外れる場合
図9は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の一例を示す説明図である。図9において、対象ブロックTBと、対象フレームTF上の探索範囲SR1との位置関係が示されている。ここで、「k=±0」の場合、エッジ直交成分ECに対応する対象画素成分TCが対象ブロックTBにすべて含まれている。
同様に、「k=+2」の場合、エッジ直交成分ECに対応する対象画素成分TCが対象ブロックTBにすべて含まれている。一方、「k=−2」の場合は、エッジ直交成分ECに対応する対象画素成分TCが対象ブロックTBから外れている。これでは、エッジ直交成分ECと対象ブロックTBとのブロックマッチを行っても対象画素成分TCの評価値vを算出することができない。以下、この場合の対処例について説明する。
<第1の対処例>
図10は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第1の対処例を示す説明図である。図10において、対象ブロックTBと、エッジ直交成分ECに対応する対象画素成分TC1〜TC4との位置関係が示されている。
ここで、対象画素成分TCが対象ブロックTBから外れる場合、対象ブロックTBの周辺の画素を含めて、すなわち、対象ブロックTBの周辺の画素をメモリ302から読み出して、対象画素成分TCの評価値vを算出することができる。なお、対象ブロックTBの周辺の画素をどの程度拡張して読み出せばよいのかは、例えば、第1動きベクトルV1、エッジ情報E、対象フレームTF上の探索範囲SR1等から特定することができる。
ところが、対象ブロックTBから離れ過ぎている画素を読み出して、動き探索を行っても適切な結果が得られないため、拡張して読み出し可能な周辺画素に制限を設ける。例えば、拡張して読み出し可能な周辺画素は、対象ブロックTBの周囲N画素(例えば、N=4画素)までとする。
算出部707は、対象ブロックTBの周囲N画素まで拡張した矩形領域EAに対象画素成分TCが含まれている場合、対象画素成分TCの評価値vを算出する。一方、算出部707は、矩形領域EAから対象画素成分TCが外れる場合、対象画素成分TCの評価値vを算出しない。すなわち、矩形領域EAから対象画素成分TCが外れる場合、第1動きベクトルV1の補正は行われない。
図10の例では、対象画素成分TC1,TC2は矩形領域EAに含まれる。このため、算出部707は、エッジ直交成分ECと対象画素成分TC1,TC2との対応する画素間の差分を表す値を累積加算することにより、対象画素成分TC1,TC2ごとの評価値vを算出する。一方、対象画素成分TC3,TC4については矩形領域EAから外れる。このため、算出部707は、対象画素成分TC3,TC4の評価値vを算出しない。
このように、対象ブロックTBの周辺の画素を拡張して読み出すことにより、対象画素成分TCが対象ブロックTBから外れる場合であっても、対象画素成分TCの評価値vを算出することができる。また、拡張して読み出し可能な周辺画素に制限を設けることにより、動き探索精度が低下するのを防ぐことができる。
<第2の対処例>
図11は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第2の対処例を示す説明図である。図11において、対象ブロックTBと、エッジ直交成分ECに対応する対象画素成分TC1〜TC3との位置関係が示されている。
算出部707は、対象画素成分TCの一部が対象ブロックTBから外れる場合、対象画素成分TCのうちの対象ブロックTBと重なっている重複部分についての評価値を算出する。つぎに、算出部707は、算出した重複部分の評価値の画素単位の平均値に基づいて、対象画素成分TCのうちの対象ブロックTBから外れている部分についての評価値を算出する。
図11の例では、対象画素成分TC1,TC2は対象ブロックTBに含まれる。このため、算出部707は、エッジ直交成分ECと対象画素成分TC1,TC2との対応する画素間の差分を表す値を累積加算することにより、対象画素成分TC1,TC2ごとの評価値vを算出する。
一方、対象画素成分TC3については対象ブロックTBから外れる。この場合、まず、算出部707は、対象画素成分TC3のうちの対象ブロックTBと重なっている重複部分、すなわち、5画素分の評価値v[1]を算出する。そして、算出部707は、5画素分の評価値v[1]の画素単位の平均値「v[1]/5」を算出する。
つぎに、算出部707は、画素単位の平均値「v[1]/5」に基づいて、対象画素成分TC3のうちの対象ブロックTBから外れている部分、すなわち、2画素分の評価値v[2]についての評価値を算出する。ここでは、評価値v[2]は、「v[2]=2×v[1]/5」となる。そして、算出部707は、5画素分の評価値v[1]と2画素分の評価値v[2]とを足し合わせることにより、対象画素成分TC3の評価値vを算出する。
このように、対象画素成分TCのうちの対象ブロックTBと重なっている重複部分の評価値v[1]の平均値に基づいて、対象画素成分TCのうちの対象ブロックTBから外れている部分の評価値v[2]を算出することができる。これにより、対象画素成分TCが対象ブロックTBから外れる場合であっても、対象画素成分TCの評価値vを算出することができる。
ただし、対象画素成分TCのうちの対象ブロックTBと重なっている部分がない場合、算出部707は、対象画素成分TCの評価値vを算出しない。また、対象画素成分TCのうちの対象ブロックTBと重なっている部分が、対象画素成分TC全体の1割程度の場合、算出部707は、対象画素成分TCの評価値vを算出しないことにしてもよい。これにより、動き探索精度が低下するのを防ぐことができる。
<第3の対処例>
図12は、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れる場合の第3の対処例を示す説明図である。図12において、対象ブロックTBと、エッジ直交成分ECに対応する対象画素成分TC1〜TC3との位置関係が示されている。
算出部707は、対象ブロックTBから外れる対象画素成分TCがある場合、対象ブロックTBとの重なりが最も少ない対象画素成分TCに合わせて、エッジ直交成分ECの画素を制限する。すなわち、算出部707は、評価値を算出可能なエッジ直交成分ECのANDをとる。
図12の例では、対象画素成分TC3の一部が対象ブロックTBから外れており、対象画素成分TC3のうちの対象ブロックTBと重なっている重複部分は5画素である。この場合、算出部707は、7画素のエッジ直交成分ECを5画素に制限する。具体的には、算出部707は、7画素のエッジ直交成分ECのうち対象ブロックTBから外れる部分である上の2画素を除外する。
これにより、エッジ直交成分ECに対応する画素成分が対象ブロックTBから外れることを防ぐことができる。ただし、対象画素成分TCのうちの対象ブロックTBと重なっている部分がない場合、算出部707は、対象画素成分TCの評価値vを算出しない。また、対象画素成分TCのうちの対象ブロックTBと重なっている部分が、対象画素成分TC全体の1割程度の場合、算出部707は、対象画素成分TCの評価値vを算出しない。
<第4の対処例>
第4の対処例としては、算出部707は、対象画素成分TCの一部または全部が対象ブロックTBから外れる場合には、対象画素成分TCの評価値vを算出しないことにしてもよい。
なお、上記(i)および(ii)の対処方法として、上述した第1〜第4の対処例のいずれの対処方法を選択するのかは、例えば、初期設定で選択されることにしてもよい。具体的には、例えば、上記(i)の対処方法としては、第1の対処例または第4の対処例のいずれかの対処方法が選択される。また、上記(ii)の対処方法としては、例えば、第1の対処例、第2の対処例、第3の対処例および第4の対処例のいずれかの対処方法が選択される。
(エッジ直交成分のバリエーション)
つぎに、図13および図14を用いて、フレームFiを区切って分割されたブロックBjのエッジ直交成分のバリエーションについて説明する。
図13は、エッジ直交成分のバリエーションを示す説明図(その1)である。図13において、ブロックBjのエッジ直交成分として、斜めのエッジ直交成分1301,1302が示されている。この場合、エッジ情報Eの方向情報501には、例えば、ブロックBjのエッジ直交成分が右上がりまたは右下がりのいずれの方向であるかを示す1byteの情報が格納される。
図14は、エッジ直交成分のバリエーションを示す説明図(その2)である。作成部702は、ブロックBj内を複数の領域に分割し、複数の領域の中から最もエッジの強い(例えば、Sobelフィルタなどのフィルタ後の値が大きい)位置のエッジ直交成分を抽出することにしてもよい。
図14の例では、16×16画素のブロックBjが4×4画素単位の16ブロック(例えば、ブロック1401)に分割されている。この場合、作成部702は、例えば、ブロックBj内を4ブロック(8×8画素)単位で9箇所(例えば、領域1410,1420,1430,1440)のエッジ有無判定を行う(図14中、(14−1))。
そして、作成部702は、最もフィルタ結果の大きい箇所(例えば、領域1430,1440)のエッジ情報を、ブロックBjのエッジ情報Eとして作成する(図14中、(14−2))。ただし、この場合、ブロックBjごとに、エッジ直交成分が抽出される位置が異なるため、作成部702は、エッジ直交成分が抽出されたブロックBj内の位置を示す位置情報(例えば、0〜8)をエッジ情報Eに追加する。また、特定部705は、対象ブロックTBと重なる参照フレームRF上のブロックBjを特定する際に、エッジ情報Eに含まれる位置情報(0〜8)を参照して判断する。
(画像処理装置100の画像処理手順)
つぎに、画像処理装置100の画像処理手順について説明する。ここでは、画像処理装置100が実行する画像処理の一例として、対象フレームTFから分割された対象ブロックTBの動きベクトルを検出する処理について説明する。
図15は、画像処理装置100の画像処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、画像処理装置100は、動画像であるフレームF1〜Fnの入力を受け付ける(ステップS1501)。
つぎに、画像処理装置100は、フレームFiを区切って分割されたブロックBjのエッジ情報Ejを作成するエッジ情報作成処理を実行する(ステップS1502)。なお、エッジ情報作成処理の具体的な処理手順については、図16を用いて後述する。
そして、画像処理装置100は、フレームF1〜Fnに含まれる各フレームFiを縮小率rで縮小した縮小画像を生成する(ステップS1503)。つぎに、画像処理装置100は、フレームF1〜Fnから、処理対象となる対象フレームTFを選択し(ステップS1504)、対象フレームTFの参照先となる参照フレームRFを選択する(ステップS1505)。
そして、画像処理装置100は、対象フレームTFの縮小画像と参照フレームRFの縮小画像とに基づいて、対象フレームTFを区切って分割された対象ブロックTBごとの第1動きベクトルV1を検出する(ステップS1506)。
つぎに、画像処理装置100は、対象ブロックTBごとの第1動きベクトルV1を補正する第1動きベクトル補正処理を実行する(ステップS1507)。なお、第1動きベクトル補正処理の具体的な処理手順については、図17を用いて後述する。
そして、画像処理装置100は、対象ブロックTBごとの第2動きベクトルV2を検出する第2動きベクトル検出処理を実行する(ステップS1508)。なお、第2動きベクトル検出処理の具体的な処理手順については、図18を用いて後述する。
つぎに、画像処理装置100は、フレームF1〜Fnから選択されていない未選択の対象フレームTFがあるか否かを判断する(ステップS1509)。ここで、未選択の対象フレームTFがある場合(ステップS1509:Yes)、画像処理装置100は、ステップS1504に戻って、フレームF1〜Fnから未選択の対象フレームTFを選択する。
一方、未選択の対象フレームTFがない場合(ステップS1509:No)、画像処理装置100は、本フローチャートによる一連の処理を終了する。これにより、動画像であるフレームF1〜Fnに含まれる対象フレームTFを区切って分割された対象ブロックTBごとの第2動きベクトルV2を検出することができる。
<エッジ情報作成処理の具体的処理手順>
つぎに、図15に示したステップS1502のエッジ情報作成処理の具体的な処理手順について説明する。
図16は、エッジ情報作成処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、画像処理装置100は、フレームF1〜FnからフレームFiを選択する(ステップS1601)。つぎに、画像処理装置100は、選択したフレームFiを区切って分割されたブロックBjを選択する(ステップS1602)。
そして、画像処理装置100は、選択したブロックBjのエッジを検出する(ステップS1603)。つぎに、画像処理装置100は、検出結果に基づいて、ブロックBjにエッジがあるか否かを判断する(ステップS1604)。ここで、エッジがない場合(ステップS1604:No)、画像処理装置100は、ステップS1606に移行する。
一方、エッジがある場合(ステップS1604:Yes)、画像処理装置100は、ブロックBjからエッジ方向に略直交する画素成分をエッジ直交成分として抽出する(ステップS1605)。そして、画像処理装置100は、ブロックBjのエッジ情報Ejを作成する(ステップS1606)。なお、ブロックBjにエッジがない場合は、ブロックBjにエッジがないことを示すエッジ情報Ejが作成される。
つぎに、画像処理装置100は、フレームFiから選択されていない未選択のブロックBがあるか否かを判断する(ステップS1607)。ここで、未選択のブロックBがある場合(ステップS1607:Yes)、画像処理装置100は、ステップS1602に戻って、フレームFiから選択されていない未選択のブロックBjを選択する。
一方、未選択のブロックBがない場合(ステップS1607:No)、画像処理装置100は、フレームF1〜Fnから選択されていない未選択のフレームFがあるか否かを判断する(ステップS1608)。ここで、未選択のフレームFがある場合(ステップS1608:Yes)、画像処理装置100は、ステップS1601に戻って、フレームF1〜Fnから選択されていない未選択のフレームFiを選択する。
一方、未選択のフレームFがない場合(ステップS1608:No)、画像処理装置100は、本フローチャートによる一連の処理を終了して、エッジ情報作成処理を呼び出したステップに戻る。これにより、動画像であるフレームF1〜Fnに含まれるフレームFを区切って分割されたブロックBごとのエッジ情報Eを作成することができる。
<第1動きベクトル補正処理の具体的処理手順>
つぎに、図15に示したステップS1507の第1動きベクトル補正処理の具体的な処理手順について説明する。
図17は、第1動きベクトル補正処理の具体的処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、画像処理装置100は、対象フレームTFから対象ブロックTBを選択し(ステップS1701)、対象ブロックTBの第1動きベクトルV1を取得する(ステップS1702)。
つぎに、画像処理装置100は、第1動きベクトルV1に基づいて、対象ブロックTBとの重なり度合いが最大となる参照フレームRF上のブロックBjのエッジ直交成分ECを示すエッジ情報Ejを特定する(ステップS1703)。そして、画像処理装置100は、エッジ情報Ejが特定されたか否かを判断する(ステップS1704)。
ここで、エッジ情報Ejが特定されなかった場合(ステップS1704:No)、画像処理装置100は、ステップS1709に移行する。一方、エッジ情報Ejが特定された場合(ステップS1704:Yes)、画像処理装置100は、エッジ直交成分ECに対応する対象フレームTF上の画素列を含む当該画素列に平行な探索範囲SR1を設定する(ステップS1705)。
つぎに、画像処理装置100は、エッジ直交成分ECに対応する探索範囲SR1内の対象画素成分TCごとに、エッジ直交成分の画素値と対象画素成分TCの画素値との差分を表す評価値vを算出する(ステップS1706)。そして、画像処理装置100は、対象画素成分TCごとの評価値vに基づいて、第1動きベクトルV1を補正する補正量kを特定する(ステップS1707)。
つぎに、画像処理装置100は、特定した補正量kに基づいて、第1動きベクトルV1を補正する(ステップS1708)。そして、画像処理装置100は、対象フレームTFから選択されていない未選択の対象ブロックTBがあるか否かを判断する(ステップS1709)。
ここで、未選択の対象ブロックTBがある場合(ステップS1709:Yes)、画像処理装置100は、ステップS1701に戻る。一方、未選択の対象ブロックTBがない場合(ステップS1709:No)、画像処理装置100は、本フローチャートによる一連の処理を終了して、第1動きベクトル補正処理を呼び出したステップに戻る。これにより、縮小MEの動き予測において得られる第1動きベクトルV1を補正することができる。
<第2動きベクトル検出処理の具体的処理手順>
つぎに、図15に示したステップS1508の第2動きベクトル検出処理の具体的な処理手順について説明する。
図18は、第2動きベクトル検出処理の具体的処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、画像処理装置100は、対象フレームTFから対象ブロックTBを選択し(ステップS1801)、対象ブロックTBの第1動きベクトルV1を取得する(ステップS1802)。
つぎに、画像処理装置100は、対象ブロックTBの第1動きベクトルV1が補正されたか否かを判断する(ステップS1803)。具体的には、例えば、画像処理装置100は、対象ブロックTBの第1動きベクトルV1に基づくブロックBjのエッジ情報Ejが特定されている場合に、第1動きベクトルV1が補正されたと判断することができる。
ここで、第1動きベクトルV1が補正されていない場合(ステップS1803:No)、画像処理装置100は、ステップS1805に移行する。一方、第1動きベクトルV1が補正された場合(ステップS1803:Yes)、画像処理装置100は、補正後の第1動きベクトルV1と対象画素成分TCの方向とに基づいて、参照フレームRF上の探索範囲SR2を設定する(ステップS1804)。
つぎに、画像処理装置100は、対象ブロックTBに対応する探索範囲SR2内の参照ブロックRBごとに、対象ブロックTBの画素値と参照ブロックRBの画素値との差分を表す評価値Vを算出する(ステップS1805)。なお、第1動きベクトルV1が補正されていない場合の探索範囲SR2は、初期範囲となる。
そして、画像処理装置100は、算出した参照ブロックRBごとの評価値に基づいて、対象ブロックTBの第2動きベクトルV2を検出する(ステップS1806)。つぎに、画像処理装置100は、対象フレームTFから選択されていない未選択の対象ブロックTBがあるか否かを判断する(ステップS1807)。
ここで、未選択の対象ブロックTBがある場合(ステップS1807:Yes)、画像処理装置100は、ステップS1801に戻る。一方、未選択の対象ブロックTBがない場合(ステップS1807:No)、画像処理装置100は、本フローチャートによる一連の処理を終了して、第2動きベクトル検出処理を呼び出したステップに戻る。
これにより、補正後の第1動きベクトルV1に応じて設定される探索範囲SR2において、対象ブロックTBの第2動きベクトルV2を探索することができる。
(符号化装置1900の装置構成例)
つぎに、画像処理装置100を符号化装置1900に適用した場合の装置構成例について説明する。
図19は、符号化装置1900の装置構成例を示すブロック図である。図19において、符号化装置1900は、演算部1910と、メモリ部1920と、を含む。演算部1910は、エッジ検出部1911と、画像縮小部1912と、縮小ME部1913と、縮小ME補正部1914と、ME部1915と、DCT/量子化部1916と、逆DCT/逆量子化部1917と、エントロピー符号化部1918と、を含む。また、メモリ部1920は、縮小原画バッファ1921と、エッジ情報バッファ1922と、原画バッファ1923と、参照画バッファ1924と、を含む。
符号化装置1900に入力される入力画像は、原画バッファ1923に格納される。入力画像は、圧縮対象(符号化対象)となる画像である。エッジ検出部1911は、入力画像のエッジを検出する。エッジ情報は、エッジ情報バッファ1922に格納される。画像縮小部1912は、入力画像を縮小する。具体的には、例えば、画像縮小部1912は、ローパスフィルタとリサンプリングにより、入力画像の縮小画像を生成することができる。縮小画像は、縮小原画バッファ1921に格納される。
縮小ME部1913は、縮小原画バッファ1921に格納された縮小画像を用いて動き予測を行う。縮小画像を用いて動き予測では、原画を用いた動き予測に比べて精度は低下するが少ない演算量で広範囲の探索を行うことができる。縮小ME補正部1914は、エッジ情報バッファ1922に格納されるエッジ情報と、原画バッファ1923に格納される原画とを用いて、縮小ME部1913によって得られる動きベクトルを補正する。
ME部1915は、原画バッファ1923に格納される原画と、参照画バッファ1924に格納される参照画とを用いた動き予測を行う。ME部1915は、縮小ME補正部1914による補正後の動きベクトルに基づいて、動き予測を行う際の探索範囲を削減することで演算量を削減する。
DCT/量子化部1916は、差分画像を周波数成分に変換し量子化する。逆DCT/逆量子化部1917は、参照画作成のためのローカルデコード処理を行う。エントロピー符号化部1918は、エントロピー符号化処理を行ってビットストリームを生成する。ビットストリームは、圧縮後の動画像ビットストリーム出力である。
ここで、原画バッファ1923に格納される原画は、縮小ME補正部1914およびME部1915で用いられる。このため、ME部1915は、原画バッファ1923から原画を読み出すのではなく、縮小ME補正部1914から原画を取得することにしてもよい。すなわち、縮小ME補正部1914が取得した原画データをブロック間転送することにより、原画データの転送帯域が増加することによる影響を排除することができる。
また、縮小ME部1913で用いられる縮小参照画と、縮小ME補正部1914で用いられるエッジ情報とをまとめて転送することにしてもよい。具体的には、例えば、縮小ME部1913は、縮小参照画とエッジ情報とを一つにまとめた転送情報を一括してメモリ部1920から読み出すことにしてもよい。
この場合、縮小ME部1913と縮小ME補正部1914とのブロック間転送により、縮小ME部1913から縮小ME補正部1914にエッジ情報が転送される。ここで、メモリ部1920から一括して読み出される転送情報の具体例について説明する。
図20は、転送情報の具体例を示す説明図である。図20において、転送情報2000は、参照フレームRFの縮小画像から分割されるブロックB(4×4画素)についての縮小参照画2010と、ブロックBのエッジ情報Eとを含む情報である。
ここで、縮小参照画2010は、ブロックBについて、4×4画素(px)の16byte分の輝度信号(Y)と、2×2画素(px)の4byte分の色差信号(Cb)と、2×2画素(px)の4byte分の色差信号(Cr)と、を含む。すなわち、縮小参照画2010は、24byteの情報となる。
エッジ情報Eは、図5に示したように、方向情報501(1byte)と、画素情報502(7byte)と、を含む8byteの情報である。このため、転送情報2000は、32byte(=256bit)の情報となる。例えば、データ転送のビット幅が32byteの場合、転送情報2000を一度に転送することができる。これにより、縮小ME補正部1914で用いられるエッジ情報Eを読み出すためのメモリアクセス回数の増大を防ぐことができる。
なお、上述した画像処理装置100の作成部702は、例えば、エッジ検出部1911に相当する。また、画像処理装置100の生成部703は、例えば、画像縮小部1912に相当する。また、画像処理装置100の第1の検出部704は、縮小ME部1913に相当する。また、画像処理装置100の特定部705、第1の設定部706、算出部707および補正部708は、縮小ME補正部1914に相当する。また、画像処理装置100の第2の設定部709および第2の検出部710は、ME部1915に相当する。また、画像処理装置100のメモリ302は、メモリ部1920に相当する。
以上説明したように、実施の形態にかかる画像処理装置100によれば、縮小MEで得られる第1動きベクトルV1に基づいて、参照フレームRF上のブロックBjのエッジ直交成分ECを特定することができる。また、画像処理装置100によれば、エッジ直交成分ECに対応する対象フレームTF上の画素列を含む当該画素列に平行な探索範囲SR1を設定することができる。また、画像処理装置100によれば、エッジ直交成分ECに対応する探索範囲SR1内の対象画素成分TCごとに、エッジ直交成分ECの画素値と対象画素成分TCの画素値との差分を表す評価値vを算出することができる。また、画像処理装置100によれば、対象画素成分TCごとの評価値vに基づいて、第1動きベクトルV1を補正することができる。
これにより、第1動きベクトルV1が指し示す参照フレームRF上の位置として、縮小率rの逆数倍よりも細かな単位の位置を得ることができる。具体的には、参照フレームRF上のブロックBjのエッジ直交成分ECに平行な方向については、補正前よりも高い位置精度の第1動きベクトルV1を得ることができる。
また、画像処理装置100によれば、補正後の動きベクトルV1が示す参照フレームRF上の点を中心として、対象画素成分TCに直交する方向の幅に比べて、対象画素成分TCに平行な方向の幅が狭い矩形領域を探索範囲SR2に設定することができる。これにより、詳細MEにおける探索範囲SR2として、参照フレームRF上での位置精度が高いエッジ直交成分ECに平行な方向について初期範囲よりも狭めた範囲を設定することができる。
また、画像処理装置100によれば、対象ブロックTBに対応する探索範囲SR2内の参照ブロックRBごとに、対象ブロックTBの画素値と参照ブロックRBの画素値との差分を表す評価値Vを算出することができる。そして、画像処理装置100によれば、参照ブロックRBごとの評価値Vに基づいて、対象ブロックTBの第2動きベクトルV2を検出することができる。
これにより、初期範囲よりも限定した範囲で詳細MEを行うことができ、ピクセル単位の高精度な動き予測にかかる演算量を削減することができる。
また、画像処理装置100によれば、第1動きベクトルV1が示す参照フレームRF上の位置に配置した対象ブロックTBとの重なり度合いが最大となるブロックBjのエッジ直交成分ECを特定することができる。これにより、対象ブロックTB(対象画素成分TC)とエッジ直交成分ECとのブロックマッチを行うことができる確率を高めることができる。
なお、本実施の形態で説明した補正方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本補正プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本補正プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した画像処理装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述した画像処理装置100の機能をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、画像処理装置100を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出する検出部と、
前記検出部によって検出された前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定する設定部と、
前記設定部によって設定された前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出する算出部と、
前記算出部によって算出された前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する補正部と、
を有することを特徴とする画像処理装置。
(付記2)前記補正部によって補正された補正後の第1動きベクトルと前記第2画素成分の方向とに基づいて、前記参照フレーム上の第2探索範囲を設定する第2の設定部と、
前記第2の設定部によって設定された前記第2探索範囲において、前記対象ブロックに対応する前記第2探索範囲内の参照ブロックごとに、前記対象ブロックの画素値と前記参照ブロックの画素値との差分を表す評価値を算出する第2の算出部と、
前記第2の算出部によって算出された前記参照ブロックごとの評価値に基づいて、前記対象ブロックの第2動きベクトルを検出する第2の検出部と、
を有することを特徴とする付記1に記載の画像処理装置。
(付記3)前記第2の設定部は、
前記補正後の第1動きベクトルが示す前記参照フレーム上の点を中心として、前記第2画素成分に直交する方向の幅に比べて、前記第2画素成分に平行な方向の幅が狭い矩形領域を前記第2探索範囲に設定することを特徴とする付記2に記載の画像処理装置。
(付記4)前記第1動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと前記参照フレーム上のブロックとの重なり度合いに基づいて、前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分を特定する特定部を有し、
前記設定部は、
前記特定部によって特定された前記第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定することを特徴とする付記1〜3のいずれか一つに記載の画像処理装置。
(付記5)前記参照フレームを区切って分割されたブロックごとに、前記ブロックのエッジを検出することにより、前記ブロックのエッジ方向を示す方向情報と、当該エッジ方向に略直交する画素成分の画素値と、を含むエッジ情報を作成する作成部を有し、
前記特定部は、
前記作成部によって作成された前記ブロックごとのエッジ情報を参照して、前記第1動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと、前記参照フレーム上のブロックのエッジ方向に略直交する画素成分との重なり度合いが最大となるブロックのエッジ方向に略直交する画素成分を前記第1画素成分として特定し、
前記算出部は、
前記設定部によって設定された前記探索範囲において、前記特定部によって特定された前記第1画素成分の画素値を含むエッジ情報に基づいて、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出することを特徴とする付記4に記載の画像処理装置。
(付記6)前記評価値は、SAD(Sum of Absolute Difference)またはSATD(Sum of Absolute Transformed Difference)またはSSD(Sum of Squared Difference)であることを特徴とする付記1〜5のいずれか一つに記載の画像処理装置。
(付記7)コンピュータが、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、
検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、
算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する、
処理を実行することを特徴とする補正方法。
(付記8)コンピュータに、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、
検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、
算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する、
処理を実行させることを特徴とする補正プログラム。
(付記9)コンピュータに、
処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、
検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、
算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する、
処理を実行させる補正プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
100 画像処理装置
701 入力部
702 作成部
703 生成部
704 第1の検出部
705 特定部
706 第1の設定部
707 算出部
708 補正部
709 第2の設定部
710 第2の検出部
711 出力部

Claims (7)

  1. 処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出する検出部と、
    前記検出部によって検出された前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定する設定部と、
    前記設定部によって設定された前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出する算出部と、
    前記算出部によって算出された前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する補正部と、
    を有することを特徴とする画像処理装置。
  2. 前記補正部によって補正された補正後の第1動きベクトルと前記第2画素成分の方向とに基づいて、前記参照フレーム上の第2探索範囲を設定する第2の設定部と、
    前記第2の設定部によって設定された前記第2探索範囲において、前記対象ブロックに対応する前記第2探索範囲内の参照ブロックごとに、前記対象ブロックの画素値と前記参照ブロックの画素値との差分を表す評価値を算出する第2の算出部と、
    前記第2の算出部によって算出された前記参照ブロックごとの評価値に基づいて、前記対象ブロックの第2動きベクトルを検出する第2の検出部と、
    を有することを特徴とする請求項1に記載の画像処理装置。
  3. 前記第2の設定部は、
    前記補正後の第1動きベクトルが示す前記参照フレーム上の点を中心として、前記第2画素成分に直交する方向の幅に比べて、前記第2画素成分に平行な方向の幅が狭い矩形領域を前記第2探索範囲に設定することを特徴とする請求項2に記載の画像処理装置。
  4. 前記第1動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと前記参照フレーム上のブロックとの重なり度合いに基づいて、前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分を特定する特定部を有し、
    前記設定部は、
    前記特定部によって特定された前記第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定することを特徴とする請求項1〜3のいずれか一つに記載の画像処理装置。
  5. 前記参照フレームを区切って分割されたブロックごとに、前記ブロックのエッジを検出することにより、前記ブロックのエッジ方向を示す方向情報と、当該エッジ方向に略直交する画素成分の画素値と、を含むエッジ情報を作成する作成部を有し、
    前記特定部は、
    前記作成部によって作成された前記ブロックごとのエッジ情報を参照して、前記第1動きベクトルが示す前記参照フレーム上の位置に配置した前記対象ブロックと、前記参照フレーム上のブロックのエッジ方向に略直交する画素成分との重なり度合いが最大となるブロックのエッジ方向に略直交する画素成分を前記第1画素成分として特定し、
    前記算出部は、
    前記設定部によって設定された前記探索範囲において、前記特定部によって特定された前記第1画素成分の画素値を含むエッジ情報に基づいて、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出することを特徴とする請求項4に記載の画像処理装置。
  6. コンピュータが、
    処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、
    検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
    設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、
    算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する、
    処理を実行することを特徴とする補正方法。
  7. コンピュータに、
    処理対象となる対象フレームの縮小画像と前記対象フレームの参照先となる参照フレームの縮小画像とに基づいて、前記対象フレームを区切って分割された対象ブロックの第1動きベクトルを検出し、
    検出した前記第1動きベクトルから特定される前記参照フレーム上のブロックのエッジ方向に略直交する第1画素成分に対応する前記対象ブロック上の画素列を含む当該画素列に平行な探索範囲を設定し、
    設定した前記探索範囲において、前記第1画素成分に対応する前記探索範囲内の第2画素成分ごとに、前記第1画素成分の画素値と前記第2画素成分の画素値との差分を表す評価値を算出し、
    算出した前記第2画素成分ごとの評価値に基づいて、前記第1動きベクトルを補正する、
    処理を実行させることを特徴とする補正プログラム。
JP2013138457A 2013-07-01 2013-07-01 画像処理装置、補正方法および補正プログラム Expired - Fee Related JP6163919B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013138457A JP6163919B2 (ja) 2013-07-01 2013-07-01 画像処理装置、補正方法および補正プログラム
US14/313,279 US20150003528A1 (en) 2013-07-01 2014-06-24 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013138457A JP6163919B2 (ja) 2013-07-01 2013-07-01 画像処理装置、補正方法および補正プログラム

Publications (2)

Publication Number Publication Date
JP2015012548A true JP2015012548A (ja) 2015-01-19
JP6163919B2 JP6163919B2 (ja) 2017-07-19

Family

ID=52115577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013138457A Expired - Fee Related JP6163919B2 (ja) 2013-07-01 2013-07-01 画像処理装置、補正方法および補正プログラム

Country Status (2)

Country Link
US (1) US20150003528A1 (ja)
JP (1) JP6163919B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021193648A1 (ja) * 2020-03-25 2021-09-30 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置およびサーバ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6135220B2 (ja) * 2013-03-18 2017-05-31 富士通株式会社 動画処理装置、動画処理方法および動画処理プログラム
US10469708B2 (en) * 2017-02-17 2019-11-05 Synaptics Incorporated Systems and methods for image optimization and enhancement in electrophotographic copying
CN113411509B (zh) * 2021-06-15 2023-09-26 西安微电子技术研究所 一种星载自主视觉处理系统
CN116055717B (zh) * 2023-03-31 2023-07-14 湖南国科微电子股份有限公司 视频压缩方法、装置、计算机设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264598A (ja) * 1994-03-23 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 動き補償方法、動きベクトル検出回路および動き補償回路
JP2003224854A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd 動きベクトル検出装置及び画像処理装置並びにコンピュータ・ソフトウエア
JP2008118340A (ja) * 2006-11-02 2008-05-22 Shibasoku:Kk 動きベクトル検出装置及びビデオ信号処理装置
JP2009055410A (ja) * 2007-08-28 2009-03-12 Sony Corp 画像処理装置および画像処理方法
JP2010097436A (ja) * 2008-10-16 2010-04-30 Keyence Corp 画像処理におけるパターンモデルの位置決め方法、画像処理装置、画像処理プログラム及びコンピュータで読み取り可能な記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
JP3277418B2 (ja) * 1993-09-09 2002-04-22 ソニー株式会社 動きベクトル検出装置および方法
US6940557B2 (en) * 2001-02-08 2005-09-06 Micronas Semiconductors, Inc. Adaptive interlace-to-progressive scan conversion algorithm
JP2003299040A (ja) * 2002-04-03 2003-10-17 Sony Corp 動きベクトル検出装置及び方法
JP2005223631A (ja) * 2004-02-05 2005-08-18 Sony Corp データ処理装置およびその方法と符号化装置および復号装置
JP5163429B2 (ja) * 2008-11-05 2013-03-13 ソニー株式会社 動きベクトル検出装置、その処理方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264598A (ja) * 1994-03-23 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 動き補償方法、動きベクトル検出回路および動き補償回路
JP2003224854A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd 動きベクトル検出装置及び画像処理装置並びにコンピュータ・ソフトウエア
JP2008118340A (ja) * 2006-11-02 2008-05-22 Shibasoku:Kk 動きベクトル検出装置及びビデオ信号処理装置
JP2009055410A (ja) * 2007-08-28 2009-03-12 Sony Corp 画像処理装置および画像処理方法
JP2010097436A (ja) * 2008-10-16 2010-04-30 Keyence Corp 画像処理におけるパターンモデルの位置決め方法、画像処理装置、画像処理プログラム及びコンピュータで読み取り可能な記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021193648A1 (ja) * 2020-03-25 2021-09-30 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置およびサーバ

Also Published As

Publication number Publication date
US20150003528A1 (en) 2015-01-01
JP6163919B2 (ja) 2017-07-19

Similar Documents

Publication Publication Date Title
US11381839B2 (en) Method and device for image motion compensation
CN110557640B (zh) 加权交织预测
JP6073405B2 (ja) 映像復号化方法及び装置
TW202002657A (zh) 成分依賴的子區塊分割
US10116934B2 (en) Image processing method and apparatus
JP6163919B2 (ja) 画像処理装置、補正方法および補正プログラム
US20150117540A1 (en) Coding apparatus, decoding apparatus, coding data, coding method, decoding method, and program
US9596467B2 (en) Motion estimation device for predicting a vector by referring to motion vectors of adjacent blocks, motion estimation method and storage medium of motion estimation program
BR112020006969A2 (pt) janela de acesso à memória limitada para refinamento de vetor de movimento
TWI722465B (zh) 子塊的邊界增強
US10034016B2 (en) Coding apparatus, computer system, coding method, and computer product
BR122021006509A2 (pt) método de decodificação de imagem com base na predição de movimento afim e dispositivo usando lista de candidatos à fusão afins no sistema de codificação de imagem
KR102097422B1 (ko) 조작 영상 검출 장치 및 방법
WO2016131270A1 (zh) 一种错误隐藏的方法和装置
JP6090430B2 (ja) 符号化装置、方法、プログラム、コンピュータシステム、記録媒体
JP2007158855A (ja) 動きベクトル検出装置および動きベクトル検出方法
KR101709894B1 (ko) 움직임 벡터들의 방향과 크기를 고려한 프레임 레이트 증가 방법 및 이를 이용하는 장치
US10397566B2 (en) Image coding apparatus, image coding method, and program
JP2013207402A (ja) 画像符号化装置及びプログラム
JP2009267726A (ja) 動画像符号化装置、録画装置、動画像符号化方法、動画像符号化プログラム
US9471992B2 (en) Moving image processing apparatus, moving image processing method, and computer product
JP2013098740A (ja) 画像処理装置及びその制御方法
KR20100035342A (ko) 고해상도 동영상의 효율적 저장을 위한 동영상 변경 시스템및 방법
JP2014230040A (ja) 符号化装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170605

R150 Certificate of patent or registration of utility model

Ref document number: 6163919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees