[go: up one dir, main page]

WO2012120582A1 - 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路 - Google Patents

動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路 Download PDF

Info

Publication number
WO2012120582A1
WO2012120582A1 PCT/JP2011/007139 JP2011007139W WO2012120582A1 WO 2012120582 A1 WO2012120582 A1 WO 2012120582A1 JP 2011007139 W JP2011007139 W JP 2011007139W WO 2012120582 A1 WO2012120582 A1 WO 2012120582A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
pixel
size
motion compensation
partition
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.)
Ceased
Application number
PCT/JP2011/007139
Other languages
English (en)
French (fr)
Inventor
博史 天野
田中 健
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to CN201180015469.7A priority Critical patent/CN102884794B/zh
Priority to JP2012530044A priority patent/JP5857244B2/ja
Priority to US13/638,629 priority patent/US8917763B2/en
Publication of WO2012120582A1 publication Critical patent/WO2012120582A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Definitions

  • the processing time for transferring pixel data from the frame memory can be made shorter than in the prior art. More specifically, the time taken for the process of identifying a rectangular pixel block is much shorter than the time taken for the process of identifying a non-rectangular reference block. On the other hand, since the rectangular pixel block is a larger area than the non-rectangular reference block, the time required to transfer the rectangular pixel block from the frame memory to the reference block memory takes to transfer the non-rectangular reference block. Slightly longer than time. Taken together, the processing time from the start of the process of identifying a rectangular pixel block to the completion of transfer can be significantly reduced as compared to the case of a non-rectangular reference block.
  • a program according to an aspect of the present invention is stored in a frame memory for a non-rectangular target block included in a moving image in a computer including a reference block memory for storing a part of a reference image.
  • Motion compensation is performed using the reference image.
  • a rectangular pixel block including a non-rectangular reference block used for motion compensation for the target block is identified from the reference image, and pixel data of the identified pixel block is identified from the frame memory
  • a motion compensation device capable of reducing the time from decoding of header information such as a memory band or motion vector when performing polygon (non-rectangular) motion compensation to reading of a reference block. can do.
  • FIG. 5B is an example of a flowchart showing an operation of the image decoding device focusing on the processing of the motion compensation unit.
  • FIG. 6A is another example of the block diagram of the motion compensation unit.
  • FIG. 6B is another example of the flowchart showing the operation of the image decoding device focusing on the processing of the motion compensation unit.
  • FIG. 7 is a diagram showing an example of the relationship between pixel blocks and partitions.
  • FIG. 8 is a view showing peripheral pixels transferred together with the pixel block.
  • FIG. 9 is a diagram showing an example of in-reference block coordinates.
  • FIG. 10 is a diagram showing an example of coordinates in the reference screen.
  • FIG. 11 is a diagram showing an example of the relationship between the coordinates of the reference image and the bank of the reference block memory.
  • FIG. 44 is a detailed flowchart of the process of determining whether a reference macroblock crosses a cache line boundary and changing the preload designation address in the conventional motion compensation device.
  • FIG. 45 is an explanatory diagram of a preload designation address setting method in the case where a reference macro block crosses a cache line boundary in the conventional motion compensation device.
  • the switch 1180 outputs the predicted image generated by the in-plane prediction unit 1150 to the subtractor 1110 and the adder 1126 when the target block is subjected to in-plane prediction coding.
  • the switch 1180 outputs the predicted image generated by the motion compensation unit 1170 to the subtractor 1110 and the adder 1126.
  • the reference block memory 1171 is a storage unit for storing a part of the reference images stored in the frame memory 2140. Specifically, a part of the reference image used for the processing in the motion compensation processing unit 1174 is stored.
  • step S2304 in order to add the pixels necessary for the filtering process in the motion compensation processing unit 1174 to the pixel block, the upper left pixel and the size of the pixel block calculated in step S2302 or step S2303 are corrected (step S2304) .
  • step S2703 the coordinates in the reference block of the upper left pixel of the pixel block circumscribing partition 0 are set to (0, 0) (step S2703), and the process of step S2704 is performed.
  • step S2812 the coordinates in the reference block of the upper left pixel of the pixel block circumscribing partition 0 are set to (0, 0) (step S2812), and the process of step S2813 is performed.
  • step S2904 the coordinates in the reference block of the upper left pixel of the pixel block circumscribing partition 1 are set to (1/2 * H_SIZE + ⁇ , 0) (step S2904), and the process of step S2905 is performed.
  • the processing for deriving the upper left coordinates and the size ends.
  • step S3304 it is determined from the H_SIZE and V_SIZE of the block partition information acquired from the motion detection unit 1160 whether 0 ⁇ f (0) ⁇ V_SIZE. If 0 ⁇ f (0) ⁇ V_SIZE, the process of step S3305 is performed. In step S3305, effective pixel determination is performed when there is a partition division boundary from the left side to the right side of the pixel block, and the determination of effective pixels in the pixel block when 0 ° ⁇ ⁇ 90 ° is ended (step S3305). On the other hand, if 0 ⁇ f (0) ⁇ V_SIZE, the process of step S3306 is performed (step S3306).
  • step S3910 it is determined whether i ⁇ H_SIZE. Then, if i ⁇ H_SIZE, the process of step S3911 is performed. In step S3911, i ++ is set, and the process of step S3902 is performed (step S3911). On the other hand, if i ⁇ H_SIZE does not hold, the effective pixel determination in the case where there is a partition division boundary from the left side to the right side of the pixel block is ended (step S3910).
  • an object of the present invention is to reduce the transfer load from the frame memory 1140 to the reference block memory 1171 by excluding a part of pixels not used for motion compensation from transfer targets.
  • the configurations and basic operations of the image coding apparatus and the image decoding apparatus according to the second embodiment are the same as those of the first embodiment, and thus the detailed description of the common points is omitted, and the differences will be mainly described.
  • the frame memory transfer control unit 1172 replaces the lower 3 bits of the coordinate values of the pixels forming the side of the reference block 3500 with 0 (S4403). For example, when the lower 3 bits of the coordinates (15, 2) of the upper right pixel 3501 of the non-rectangular reference block 3500 are replaced with 0, the coordinates (8, 0) of the upper left pixel 3201 of the pixel block 3200 including this pixel 3501 Is obtained. However, if the size of the pixel block is different, the number of bits replaced with 0 is also different. For example, if the size of the pixel block is 16 pixels ⁇ 16 pixels, the lower 4 bits of the coordinate value may be replaced with 0.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 動き補償装置(1170)は、非矩形状の対象ブロックに対して、フレームメモリ(1140)に記憶されている参照画像を用いて動き補償を行うもので、参照画像のうちの一部を記憶するための参照ブロックメモリ(1171)と、動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを参照画像の中から特定し、特定した画素ブロックの画素データをフレームメモリ(1140)から参照ブロックメモリ(1171)に転送するフレームメモリ転送制御部(1172)と、参照ブロックメモリ(1171)に記憶されている画素ブロックに含まれる参照ブロックを用いて、対象ブロックの予測ブロックを生成する動き補償処理部(1174)とを備える。

Description

動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
 本発明は、動画像データに対する動画像処理装置に関し、特に非矩形の動き補償を用いる動き補償装置に関する。
 近年、広く利用されている動画像圧縮技術の標準規格としては、例えば、ITU-T(国際電気通信連合 電気通信標準化部門)のH.261およびH.263、ISO/IEC(国際標準化機構 国際電気標準会議)のMPEG(Moving Picture Experts)-1、MPEG-2およびMPEG-4など、また、ITU-TとMPEGの合同であるJVT(Joint Video Team)のH.264/MPEG-4 AVC(Advanced Video Coding)などがある。更に、次世代の動画像圧縮技術がITU-TやISO/IECなどで検討されている。
 一般に、動画像圧縮技術の重要な要素に、動画像を構成する連続した複数の画像の持つ時間方向の冗長性を削減することで情報量の圧縮を行う動き補償画面間予測がある。動き補償画面間予測とは、符号化対象画像内の画素ブロックが、符号化対象画像の前方または後方に位置する参照画像内のどの方向にどの程度動いたかを検出して、予測画像(以下、「動き補償ブロック」、または「インター予測ブロック」ともいう)の作成を行い、得られた予測画像と符号化対象画像との差分値に対して符号化を行う手法である。
 符号化対象画像内の動き補償ブロックが、符号化対象画像の前方または後方に位置する参照画像内のどの方向にどの程度動いたかを示す情報を動きベクトルという。参照される画像を参照画像と呼ぶ。動き補償ブロックは独立した動きベクトルと参照画像を持つことが可能である。動き補償に必要となる画素ブロックを参照ブロックと呼ぶ。
 H.264/MPEG-4 AVCの動き補償画面間予測では、16×16、16×16、16×8、8×16、8×8、8×4、4×8、4×4の7通りの矩形動き補償ブロックが用いられる。
 一方、ITU-TおよびISO/IECなどにおいて、次世代の動画像圧縮技術に提案されている動き補償画面間予測に、より良い符号化効率を実現するため、動き補償ブロックの形やサイズを画像の特性などに応じて適応的に変化させる動き補償技術(以下、「多角形動き補償」、または、「非矩形動き補償」ともいう)がある(非特許文献1、非特許文献2、特許文献1、および、特許文献2)。
 図42は、特許文献2に記載されたマクロブロック分割の例を示すものである。図42に記載されたように、マクロブロックをジオメトリカルに分割し、それぞれのインター予測ブロックを復号する。また、図43は、特許文献2に記載されたジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法のフロー図である。
 図43を参照すると、ジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法が概ね方法100によって示されている。
 方法100は、制御を機能ブロック114に受け渡す開始ブロック112を含む。機能ブロック114は、現在のモードタイプがジオメトリック・モードタイプであるかどうかを判定する。現在のモードタイプがジオメトリック・モードタイプである場合には、制御が機能ブロック116に受け渡される。現在のモードタイプがジオメトリック・モードタイプでない場合には、制御が終了ブロック120に受け渡される。
 機能ブロック116は、ジオメトリック・パーティション・パラメータを復号し(例えば、予測のために近傍のジオメトリック・データが利用可能である場合には、これを使用し、適切に符号化テーブルを適応させる)、制御を機能ブロック118に受け渡す。機能ブロック118は、パーティション・インター予測を復号し(例えば、予測のために近傍の復号されたデータが利用可能である場合には、これを使用し、適切に符号化テーブルを適応させる)、制御を終了ブロック120に受け渡す。
 また、従来の動き補償装置としては、参照ブロック読み出し時のメモリアクセス性能を向上させるためにキャッシュメモリを用いるものがあった(例えば、特許文献3参照)。図44は、特許文献3に記載された従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。図45は、特許文献3に記載された従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっている場合のプリロード指定アドレス設定法の説明図である。
 図44は、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。同図を図45の参照マクロブロックがキャッシュライン境界をまたがっている場合のアドレスの説明図を用いて説明する。まず、図45において参照マクロブロック内の上端行の開始アドレスはA番地であり、その行の後尾アドレスはB番地であるとする。キャッシュライン境界はC番地にあり、このC番地がA番地とB番地との間にあることから、参照マクロブロックがキャッシュライン境界をまたがっている、すなわち参照マクロブロックの行がキャッシュライン境界を含んでいるものと判定される。
 図44のステップS21で参照キャッシュライン境界マクロブロックの行の先頭アドレスが算出され、そのアドレスがA番地とされ、ステップS22で参照マクロブロックの行の後尾アドレスが算出され、そのアドレスがB番地とされる。そしてステップS23でA番地とB番地の間にキャッシュライン境界が存在するか否かが判定され、存在する時にはその番地がC番地として求められ、ステップS24でキャッシュライン境界をまたがっていると判定され、ステップS25でプリロード指定アドレス、すなわちプリロード時における先頭アドレスが従来例におけるA番地から変更されてC番地とされる。ステップS23でA番地と番地の間にキャッシュライン境界が存在しない時には、ステップS26でキャッシュライン境界をまたがっていないと判定され、ステップS27でプリロード指定アドレスが行の先頭アドレス、すなわちA番地とされる。
 図45で説明したように、参照マクロブロックがキャッシュライン境界をまたがっている場合には、プリロード先頭アドレスをC番地とすることによってその行のその前の領域、すなわち図45のA領域が今回のマクロブロックに対する復号処理ではプリロードされないことになる。従ってこのA領域に対応してキャッシュミスが発生する確率が存在するが、ラスター順でマクロブロックの走査方法をとること、すなわち行の左端のマクロブロックから復号を行うことによって、動きベクトルを考慮しても参照フレーム画像のマクロブロックの中で右端に近いマクロブロックよりも左端に近いマクロブロックの方がプリロード済みである確率が高い。
 従って、図45においてもA領域は参照マクロブロックの左側にあることからこのA領域のデータはすでにキャッシュメモリにプリロード済みとなっている確率が高い。特許文献3ではこのような動画像データ処理の特性に対応してデータのプリロード命令を発行することによって、キャッシュミスの発生が低減されることが期待される。
国際公開第2008/016605号 国際公開第2008/016609号 特許第4180547号公報
Oscar Divorra Escoda et al著「GEOMETRY-ADAPTIVE BLOCK PARTITIONING FOR VIDEO CODING」 In Proc. Of International Conference on Acoustics, Speech, and Signal Processing(ICASSP 2007), April 2007 Oscar Divorra et al著「Geometry-adaptive Block Partioning」 ITU-Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group(VCEG) document VCEG-AF10、 April 2007
 しかしながら、特許文献2に記載されている従来の構成では、次世代の画像圧縮技術に提案されている動き補償画面間予測で使用する参照ブロックを格納したメモリのメモリアクセスについての記載はなく、動き補償画面間予測を用いた場合の参照ブロックを格納したメモリのメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間の低減が難しいという課題を有していた。
 また、特許文献3に記載されている従来の構成では、動き補償に必要な参照ブロック読み出し時のメモリアクセス性能を向上させるために、参照ブロックの左端画素の座標と右端画素の座標の2画素の間にキャッシュライン境界が存在するかどうかを判定してプリロードアドレスを決定するという方法をとっている。このため、多角形動き補償を行う場合には、参照ブロックが多角形であるため、水平方向に2つ以上の画素で構成されていない場合があり、その場合は従来の構成ではプリロードアドレスが計算できないという課題と、参照ブロックが水平方向に2つ以上の画素で構成されているとしても参照ブロックの左端画素の座標と右端画素の座標を参照ブロックに1度計算するだけではキャッシュラインを超えるかどうか判定できないという課題を有していた。
 本発明は、上記従来の課題を解決するもので、多角形(非矩形)の対象ブロックに対して動き補償を行う場合のメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間を低減することができる動き補償装置を提供することを目的とする。
 本発明の一形態に係る動き補償装置は、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う。具体的には、前記参照画像のうちの一部を記憶するための参照ブロックメモリと、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える。
 上記構成によれば、フレームメモリから画素データを転送する処理時間を従来よりも短縮することができる。より具体的には、矩形の画素ブロックを特定する処理に要する時間は、非矩形の参照ブロックを特定する処理に要する時間よりも遥かに短い。一方、矩形の画素ブロックは非矩形の参照ブロックより大きな領域であるので、矩形の画素ブロックをフレームメモリから参照ブロックメモリに転送するのに要する時間は、非矩形の参照ブロックを転送するのに要する時間より僅かに長い。これらを総合すると、矩形の画素ブロックを特定する処理を開始してから転送を完了するまでの処理時間は、非矩形の参照ブロックの場合と比較して大幅に短縮することができる。
 さらに、該動き補償装置は、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備えてもよい。そして、前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成してもよい。
 一例として、前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送してもよい。
 他の例として、前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む1以上の画素ブロックを特定し、特定した前記1以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送してもよい。
 このように、フレームメモリから参照ブロックメモリに転送される矩形状の画素ブロックは、非矩形状の参照ブロックを含む単一の画素ブロックであってもよいし、非矩形状の参照ブロックを含む複数の画素ブロックの集合であってもよい。
 さらに、該動き補償装置は、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備えてもよい。そして、前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送してもよい。
 これにより、既に参照ブロックメモリに記憶されている画素データの転送を省略することができるので、フレームメモリから画素データを転送する処理時間をさらに短縮することができる。
 本発明の一形態に係る動画像復号装置は、符号化ストリームを復号して復号動画像を生成する。具体的には、参照画像を記憶するフレームメモリと、上記に記載の動き補償装置と、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償装置によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成する復号部とを備える。そして、前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する。
 本発明の一形態に係る動画像符号化装置は、動画像を符号化して符号化ストリームを生成する。具体的には、参照画像を記憶するフレームメモリと、上記に記載の動き補償装置と、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償装置によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成する符号化部とを備える。そして、前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する。
 本発明の一形態に係る動き補償方法は、参照画像のうちの一部を記憶するための参照ブロックメモリを備える動き補償装置が、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う方法である。具体的には、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含む。
 本発明の一形態に係るプログラムは、参照画像のうちの一部を記憶するための参照ブロックメモリを備えるコンピュータに、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行なわせる。具体的には、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを、コンピュータに実行させる。
 本発明の一形態に係る集積回路は、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う。具体的には、前記参照画像のうちの一部を記憶するための参照ブロックメモリと、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える。
 本発明によれば、多角形(非矩形)動き補償を行う場合のメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間を低減することができる動き補償装置を提供することができる。
図1は、実施の形態1に係る画像符号化装置のブロック図である。 図2Aは、動き補償部のブロック図の一例である。 図2Bは、動き補償部の処理を中心とした画像符号化装置の動作を示すフローチャートの一例である。 図3Aは、動き補償部のブロック図の他の例である。 図3Bは、動き補償部の処理を中心とした画像符号化装置の動作を示すフローチャートの他の例である。 図4は、実施の形態1に係る画像復号装置のブロック図である。 図5Aは、動き補償部のブロック図の一例である。 図5Bは、動き補償部の処理を中心とした画像復号装置の動作を示すフローチャートの一例である。 図6Aは、動き補償部のブロック図の他の例である。 図6Bは、動き補償部の処理を中心とした画像復号装置の動作を示すフローチャートの他の例である。 図7は、画素ブロックとパーティションとの関係の例を示す図である。 図8は、画素ブロックと共に転送される周辺の画素を示す図である。 図9は、参照ブロック内座標の例を示す図である。 図10は、参照画面内座標の例を示す図である。 図11は、参照画像の座標と、参照ブロックメモリのバンクとの関係例を示す図である。 図12は、参照ブロックメモリ状態管理部に保持されている情報の一例を示す図である。 図13は、画素ブロックのアドレス算出処理の全体の流れを示すフローチャートである。 図14は、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図15は、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図16は、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図17は、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図18は、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図19は、θ=0°,90°,180°,270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。 図20は、画素ブロック内の有効画素抽出処理の全体の流れを示すフローチャートである。 図21は、画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図22は、0°<θ<90°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図23は、90°<θ<180°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図24は、180°<θ<270°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図25は、270°<θ<360°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図26は、θ=0°,90°,180°,270°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。 図27は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図28は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図29は、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図30は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図31は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図32は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。 図33は、実施の形態2に係る画素ブロックのアドレス算出処理を説明するための図である。 図34は、実施の形態2に係る矩形状の画素ブロックの左上座標を導出する処理の流れを示すフローチャートである。 図35は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図36は、デジタル放送用システムの全体構成図である。 図37は、テレビの構成例を示すブロック図である。 図38は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図39は、光ディスクである記録メディアの構造例を示す図である。 図40は、各実施の形態の動画像復号装置を実現する集積回路の構成例を示す構成図である。 図41は、各実施の形態の動画像復号装置を実現する集積回路の構成例を示す構成図である。 図42は、従来のマクロブロック分割の例を示す図である。 図43は、従来のジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法のフロー図である。 図44は、従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。 図45は、従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっている場合のプリロード指定アドレス設定法の説明図である。
 以下本発明の実施の形態について、図面を参照しながら説明する。
 (実施の形態1)
 図1は、本実施の形態における画像符号化装置の構成を示すブロック図である。画像符号化装置1000は、符号化処理部1100と、符号化処理部1100の動作を制御する符号化制御部1200とを備える。
 符号化処理部1100は、動画像をブロックごとに符号化することによって符号化ストリームを生成する。このような符号化処理部1100は、減算器1110、直交変換部1121、量子化部1122、エントロピー符号化部1123、逆量子化部1124、逆直交変換部1125、加算器1126、デブロッキングフィルタ1130、フレームメモリ1140、面内予測部1150、動き補償部1170、動き検出部1160、及びスイッチ1180を備える。
 減算器1110は、動画像を取得するとともに、スイッチ1180から予測画像(予測ブロック)を取得する。そして、減算器1110は、その動画像に含まれる符号化対象ブロック(対象ブロック)から予測画像を減算することによって残差画像(残差ブロック)を生成する。
 直交変換部1121は、減算器1110によって生成された残差画像に対して、例えば離散コサイン変換などの直交変換を行うことによって、その残差画像を複数の周波数係数からなる係数ブロックに変換する。量子化部1122は、その係数ブロックに含まれる各周波数係数を量子化することによって、量子化された係数ブロックを生成する。
 エントロピー符号化部1123は、量子化部1122によって量子化された係数ブロックと、動き検出部1160によって検出された動きベクトル、ブロックパーティション情報(後述)、及び参照画像特定情報等をエントロピー符号化(可変長符号化)することによって符号化ストリームを生成する。
 逆量子化部1124は、量子化部1122によって量子化された係数ブロックを逆量子化する。逆直交変換部1125は、その逆量子化された係数ブロックに含まれる各周波数係数に対して逆離散コサイン変換などの逆直交変換を行うことによって、復号残差画像(復号残差ブロック)を生成する。
 加算器1126は、スイッチ1180から取得した予測画像と、逆直交変換部1125によって生成された復号残差画像とを加算することによって、局所復号画像(復号ブロック)を生成する。
 なお、本実施の形態においては、上記の直交変換部1121、量子化部1122、エントロピー符号化部1123、逆量子化部1124、逆直交変換部1125、及び加算器1126で、符号化部1120を構成しているが、これに限定されない。例えば、動き検出部1160又は符号化制御部1200等をさらに加えてもよい。
 デブロッキングフィルタ1130は、加算器1126によって生成された局所復号画像のブロック歪みを除去し、その局所復号画像をフレームメモリ1140に格納する。
 面内予測部1150は、加算器1126によって生成された局所復号画像を用いて対象ブロックに対して面内予測を行うことによって予測画像(予測ブロック)を生成する。
 動き検出部1160は、動画像に含まれる対象ブロックに対して動きベクトルを検出し、その検出された動きベクトル、ブロックパーティション情報、及び参照画像特定情報を動き補償部1170とエントロピー符号化部1123とに出力する。なお、ブロックパーティション情報とは、対象ブロック(参照ブロック)の形状を示す情報である。また、参照画像特定情報とは、フレームメモリ1140に記憶されている複数の参照画像のうちの1つを特定するための情報である。
 ブロックパーティション情報は、例えば、図7に示されるように、参照ブロックの水平サイズH_SIZEと、参照ブロックの垂直サイズV_SIZEと、従来例(特許文献1、特許文献2、非特許文献1、非特許文献2)に記載されているρ及びθとを含む。
 ρ及びθは、参照ブロックのパーティションを決めるパラメータであり、ρ及びθで定義される線分と直交する直線をパーティション分割境界と定義する。ρは、画素ブロックの中心からパーティション分割境界に直交する線分の長さを表す。θは、画素ブロックの中心から水平方向右側を0°とし、反時計回りを正としたときの線分の角度を表す。
 また、パーティション分割境界の左側の領域をパーティション0、パーティション分割境界の右側の領域をパーティション1と定義する。言い換えれば、パーティション分割境界で区画される2つのパーティションのうち、画素ブロックの左上の画素を含むパーティションをパーティション0、もう一方をパーティション1と定義する。
 動き補償部1170は、フレームメモリ1140に格納されている参照画像と、動き検出部1160によって検出された動きベクトルとを用いることによって、対象ブロックに対して動き補償を行う。動き補償部1170は、このような動き補償によって対象ブロックに対する予測画像(予測ブロック)を生成する。
 なお、本発明に係る動き補償部1170は、矩形状の対象ブロックに対する動き補償と、非矩形状の対象ブロックに対する動き補償とを行なうことができる。また、本明細書中の「矩形状」には、正方形と長方形とが該当する。一方、本明細書中の「非矩形状」には、矩形状に該当しない形状、具体的には、台形、平行四辺形、三角形及び五角形等の四角形以外の多角形、円形、楕円形等が該当する。
 スイッチ1180は、対象ブロックが面内予測符号化される場合には、面内予測部1150によって生成された予測画像を減算器1110および加算器1126に出力する。一方、スイッチ1180は、対象ブロックが画面間予測符号化される場合には、動き補償部1170によって生成された予測画像を減算器1110および加算器1126に出力する。
 次に、図2Aを参照して、動き補償部(動き補償装置)1170の構成の一例を説明する。図2Aは、動き補償部1170のブロック図の一例である。図2Aに示される動き補償部1170は、参照ブロックメモリ1171と、フレームメモリ転送制御部1172と、参照ブロックメモリ転送制御部1173と、動き補償処理部1174とを備える。
 参照ブロックメモリ1171は、フレームメモリ2140に記憶されている参照画像のうちの一部を記憶するため記憶部である。具体的には、参照画像のうちの動き補償処理部1174での処理に用いられる一部が記憶される。
 なお、参照ブロックメモリ1171は、典型的には、フレームメモリ2140より記憶容量が小さく、且つフレームメモリ2140よりデータの読み出し速度が速い記憶部である。典型的には、フレームメモリ2140はDRAM(Dynamic Random Access Memory)であり、参照ブロックメモリ1171はSRAM(Static Random Access Memory)であるが、これには限定されない。
 フレームメモリ転送制御部1172は、参照画像の一部の領域である画素ブロックの画素データを、フレームメモリ2140から参照ブロックメモリ1171に転送する。なお、画素ブロックとは、動き補償処理部1174で用いられる参照ブロックを含む矩形状の領域を指す。また、参照ブロックとは、参照画像の一部の領域であって、対象ブロックに対する動き補償に用いられる領域である。ここで、対象ブロックと参照ブロックとは、通常同じ形状となる。すなわち、対象ブロックが矩形状の場合には参照ブロックも矩形状となり、対象ブロックが非矩形状の場合には参照ブロックも非矩形状となる。
 そこで、フレームメモリ転送制御部1172は、画素ブロックの位置及び形状を、動き検出部1160から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて特定する。そして、参照ブロックが矩形状の場合、フレームメモリ転送制御部1172は、参照画像そのものの画素ブロックの画素データを、フレームメモリ2140から参照ブロックメモリ1171に転送する。一方、参照ブロックが非矩形状の場合、フレームメモリ転送制御部1172は、参照ブロックを含む(典型的には、外接する)画素ブロックを参照画像の中から特定し、特定した画素ブロックの画素データを、フレームメモリ2140から参照ブロックメモリ1171に転送する。
 ただし、フレームメモリ転送制御部1172は、実際には、参照ブロックが矩形状であるか非矩形状であるかにかかわらず、特定した画素ブロックの画素データに加えて、当該画素ブロックの周辺画素の画素データも合わせて転送する。具体的には、図8に示されるように、画素ブロックの画素データと、画素ブロック周辺の画素の画素データとを合わせて転送する。詳細は後述する。
 参照ブロックメモリ転送制御部1173は、参照ブロックの画素データを、参照ブロックメモリ1171から動き補償処理部1174に転送する。参照ブロックメモリ転送制御部1173は、参照ブロックの位置及び形状を、動き検出部1160から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて特定する。
 そして、参照ブロックが矩形状の場合、参照ブロックメモリ転送制御部1173は、参照ブロックメモリ1171に記憶されている画素ブロックの画素データを、そのまま動き補償処理部1174に転送する。一方、参照ブロックが非矩形状の場合、参照ブロックメモリ転送制御部1173は、矩形状の画素ブロックから非矩形状の参照ブロックを抽出し、抽出した参照ブロックの画素データを、参照ブロックメモリ1171から動き補償処理部1174に転送する。
 ただし、参照ブロックメモリ転送制御部1173は、実際には、参照ブロックが矩形状であるか、非矩形状であるかにかかわらず、抽出した参照ブロックの画素データに加えて、当該参照ブロックの周辺画素の画素データも合わせて転送する。詳細は後述する。
 動き補償処理部1174は、参照ブロックメモリ1171に記憶されている画素ブロックに含まれる参照ブロックを用いて、より具体的には、参照ブロックメモリ転送制御部1173によって転送された参照ブロックを用いて、対象ブロックの予測ブロックを生成する。
 次に、図2Bを参照して、図1及び図2Aに示される画像符号化装置1000及び動き補償部1170の動作を説明する。図2Bは、動き補償部1170の処理を中心とした画像符号化装置1000の動作を示すフローチャートの一例である。
 まず、動き検出部1160は、対象ブロックの動き検出を行い、動きベクトルとブロックパーティション情報と参照画像特定情報とを動き補償部1170に出力する(ステップS1110)。ここで、対象ブロックが矩形状の場合には、ブロックパーティション情報は省略することができる。
 次に、フレームメモリ転送制御部1172は、動き検出部1160から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて、フレームメモリ1140に記憶されている参照画像のうち、転送の対象となる画素ブロックのアドレスを算出する処理を実行する(ステップS1120)。
 画素ブロック内の座標(画素ブロック内座標)の例を図9に示す。原点は、画素ブロックの左上端で、水平方向(x座標)は右方向が正の方向とし、垂直方向(y座標)は下方向が正の方向とする。また、参照画像内の座標(参照画像内座標)の例を図10に示す。原点は、参照画像の左上端で、水平方向(x座標)は右方向が正の方向とし、垂直方向(y座標)は下方向が正の方向とする。
 フレームメモリ転送制御部1172は、まず、画素ブロックの左上端を(0,0)とする座標系で画素ブロックのアドレスを算出し、算出したアドレスを参照画像の左上端を(0,0)とする座標系に変換する処理を行う。アドレス算出処理の詳細は、後述する。そして、フレームメモリ転送制御部1172は、特定した画素ブロックの画素データを、フレームメモリ1140から参照ブロックメモリ1171に転送する(ステップS1130)。
 次に、参照ブロックメモリ転送制御部1173は、参照ブロックメモリ1171に記憶されている画素ブロックのうち、転送の対象となる参照ブロックを抽出する処理を実行する(ステップS1140)。以下、画素ブロックのうちの転送の対象となる画素(すなわち、参照ブロックを構成する画素)を「有効画素」、転送の対象とならない画素を「無効画素」と標記する。そして、参照ブロックメモリ転送制御部1173は、抽出された参照ブロックの画素データを、参照ブロックメモリ1171から動き補償処理部1174に転送する(ステップS1150)。
 次に、動き補償処理部1174は、動き検出部1160から取得した動きベクトルと、参照ブロックメモリ転送制御部1173によって転送された参照ブロックとを用いて、対象ブロックに対する動き補償処理を実行する(ステップS1160)。そして、動き補償処理部1174は、動き補償処理によって生成された予測ブロックの画素データを、減算器1110に出力する。
 減算器1110は、動き補償処理部1174から取得した予測ブロックの画素データを、対応する対象ブロックの画素データから減算することにより、残差ブロックを生成する(ステップS1170)。そして、減算器1110は、生成した残差ブロックの画素データを、符号化部1120に出力する。
 符号化部1120は、減算器1110から取得した残差ブロックの画素データを符号化して符号化ストリームとして出力すると共に、ローカルエンコードして得られる復号ブロックをフレームメモリ1140に格納する(ステップS1180)。
 具体的には、残差ブロックを直交変換部1121で直交変換し、量子化部1122で量子化する。そして、量子化部1122で生成された量子化係数をエントロピー符号化部1123でエントロピー符号化して、符号化ストリームを生成する。また、エントロピー符号化部1123の処理と並行して、量子化部1122で生成された量子化係数を逆量子化部1124で逆量子化し、逆直交変換部1125で逆直交変換し、加算器1126で予測ブロックを加算し、デブロッキングフィルタ1130でフィルタ処理をして得られる復号ブロックをフレームメモリ1140に格納する。
 次に、図3A及び図3Bを参照して、動き補償部1170の構成及び動作の他の例を説明する。図3Aは、動き補償部1170のブロック図の他の例である。図3Bは、動き補償部1170の処理を中心とした画像符号化装置1000の動作を示すフローチャートの他の例である。なお、図2A及び図2Bとの共通点には同一の符号を付して詳しい説明は省略する。
 図3Aに示される動き補償部1170は、図2Aの構成に加えて、参照ブロックメモリ状態管理部1175をさらに備える。参照ブロックメモリ状態管理部1175は、参照画像の画素データが参照ブロックメモリ1171に記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する。そして、フレームメモリ転送制御部1172は、特定した画素ブロックのうち、参照ブロックメモリ1171に記憶されていない画素データを、参照ブロックメモリ状態管理部1175で管理されている転送ブロック単位で選択的に転送する。
 図11の(a)は、参照ブロックメモリ1171の構成例である。図11の(b)は、参照画像の座標と、参照ブロックメモリ1171のバンクとの関係例(解像度1920×1080pixelのとき)である。図12は、参照ブロックメモリ状態管理部1175に保持されている情報の一例である。
 まず、参照ブロックメモリ1171の記憶領域は、図11の(a)に示されるように、所定のサイズ(この例では、16×16画素)のバンク(転送ブロック)に区画されている。そして、参照ブロックメモリ1171に対する画素データの書き込みは、このバンク単位で行なわれる。
 参照ブロックメモリ状態管理部1175は、参照ブロックメモリ1171に保持されている画素データの参照画像内座標での水平座標を特定する情報(x_offset)と、参照ブロックメモリ1171に保持されている画素データの参照画像内座標での垂直座標を特定する情報(y_offset)と、参照ブロックメモリ1171に保持されている参照画像を特定する情報(refidx)と、動き補償に有意な画素データを保持しているかどうかの状態を表す情報(状態)とを、バンク単位で管理する。
 なお、「x_offset」は、例えば、画素ブロックの頂点(左上端)の参照画像内座標での水平座標の上位4ビットに相当する。「y_offset」は、例えば、画素ブロックの頂点(左上端)の参照画像内座標での垂直座標の上位4ビットに相当する。「refidx」は、例えば、参照画像のピクチャ番号(参照画像特定情報)である。「状態」には、例えば、当該バンクに有意な画素が保持されている場合に「valid」が、有意な画素が保持されていない場合に「invalid」が設定される。
 具体的には、フレームメモリ転送制御部1172が算出した参照画像内での画素ブロックの座標情報から、参照ブロックメモリ1171に保持されている画素データのx_offset、y_offset、refidx、及び状態を更新し、保持する。そして、保持した情報をフレームメモリ転送制御部1172、及び参照ブロックメモリ転送制御部1173に出力する。
 参照ブロックメモリ状態管理部1175に記憶されている情報は、例えば、参照ブロックメモリ1171が図11の(a)で示される構成をし、図11の(b)に示されるが参照画像の一部を記憶している場合に、図12に示すような情報である。
 フレームメモリ転送制御部1172は、加算器1126から出力された復号画像をフレームメモリ1140に参照画像として書き込む。また、動き検出部1160から取得したブロックパーティション情報と、参照画像特定情報と、動きベクトルとから動き補償をするために必要な参照画像を特定し、参照ブロックを含む画素ブロックの参照画像内座標での水平座標と垂直座標とを計算する。
 そして、フレームメモリ転送制御部1172は、計算した水平座標及び垂直座標と、参照ブロックメモリ状態管理部1175から取得した参照ブロックメモリ1171に保持されている画素データのx_offset、y_offset、refidx、及び状態とを比較して、参照ブロックメモリ1171に必要な画素データが記憶されていなければ、フレームメモリ1140から当該画素データを含むバンクを読み出し、参照ブロックメモリ1171に書き込む。
 参照ブロックメモリ状態管理部1175は、フレームメモリ転送制御部1172が読み出して参照ブロックメモリ1171に書き込んだ画素データのx_offset、y_offset、refidx、及び状態を更新する。一方、参照ブロックメモリ1171に必要な画素データが記憶されていれば、フレームメモリ1140からバンクは読み出さない。
 図3Bに示されるフローチャートは、ステップS1122及びステップS1132が追加されている点が、図2Bに示されるフローチャートと相違する。すなわち、フレームメモリ転送制御部1172は、図3Bに示されるように、画素ブロックのアドレス算出処理(ステップS1120)の後、特定した画素ブロック全体が既に参照ブロックメモリ1171に格納されているかを確認する(ステップS1122)。
 特定した画素ブロック全体が参照ブロックメモリ1171に格納されていなければ(ステップS1122でN)、フレームメモリ転送制御部1172は、特定した画素ブロックのうち、参照ブロックメモリ1171に記憶されていない画素データを、参照ブロックメモリ状態管理部1175で管理されている転送ブロック単位で選択的に転送する(ステップS1130)。そして、参照ブロックメモリ状態管理部1175は、フレームメモリ転送制御部1172による転送結果に応じて、参照ブロックメモリの状態を更新する(ステップS1132)。
 図4は、本実施の形態における画像復号装置の構成を示すブロック図である。画像復号装置2000は、復号処理部2100と、復号処理部2100の動作を制御する復号制御部2200とを備える。
 復号処理部2100は、符号化ストリームをブロックごとに復号することによって復号画像を生成する。このような復号処理部2100は、エントロピー復号部2111、逆量子化部2112、逆直交変換部2113、加算器2120、デブロッキングフィルタ2130、フレームメモリ2140、面内予測部2150、動き補償部2160、及びスイッチ2170を備える。
 エントロピー復号部2111は、符号化ストリームを取得し、その符号化ストリームをエントロピー復号(可変長復号)し、量子化係数ブロックと、動きベクトルと、ブロックパーティション情報と、参照画像特定情報とを生成する。
 逆量子化部2112は、エントロピー復号部2111によるエントロピー復号によって生成された量子化係数ブロックを逆量子化する。逆直交変換部2113は、その逆量子化された係数ブロックに含まれる各周波数係数に対して逆離散コサイン変換などの逆直交変換を行うことによって、復号残差画像(復号残差ブロック)を生成する。
 なお、本実施の形態においては、上記のエントロピー復号部2111、逆量子化部2112、及び逆直交変換部2113で、復号部2110を構成しているが、これに限定されない。
 加算器2120は、スイッチ2170から取得した予測画像(予測ブロック)と、逆直交変換部2113によって生成された復号残差画像とを加算することによって復号画像(復号ブロック)を生成する。
 デブロッキングフィルタ2130は、加算器2120によって生成された復号画像のブロック歪みを除去し、その復号画像をフレームメモリ2140に格納するとともに、その復号画像を出力する。
 面内予測部2150は、加算器2120によって生成された復号画像を用いて復号対象ブロック(対象ブロック)に対して面内予測を行うことによって予測画像(予測ブロック)を生成する。
 動き補償部2160は、フレームメモリ2140に格納されている画像を参照画像と、エントロピー復号部2111によるエントロピー復号によって生成された動きベクトルとを用いて、対象ブロックに対して動き補償を行う。動き補償部2160は、このような動き補償によって対象ブロックに対する予測画像(予測ブロック)を生成する。
 スイッチ2170は、対象ブロックが面予測符号化されている場合には、面内予測部2150によって生成された予測画像を加算器2120に出力する。一方、スイッチ2170は、対象ブロックが画面間予測符号化されている場合には、動き補償部2160によって生成された予測画像を加算器2120に出力する。
 次に、図5Aを参照して、動き補償部(動き補償装置)2160の構成の一例を説明する。図5Aは、動き補償部2160のブロック図の一例である。図5Aに示される動き補償部2160は、参照ブロックメモリ2161と、フレームメモリ転送制御部2162と、参照ブロックメモリ転送制御部2163と、動き補償処理部2164とを備える。なお、図5Aに示される動き補償部2160の各機能ブロックは、図2Aに示される同一名称の各機能ブロックに対応する。
 なお、フレームメモリ転送制御部2162は、エントロピー復号部2111から動きベクトル、ブロックパーティション情報、及び参照画像特定情報を取得する点が図2Aのフレームメモリ転送制御部1172と相違する。また、参照ブロックメモリ転送制御部2163は、エントロピー復号部2111からブロックパーティション情報を取得する点が図2Aの参照ブロックメモリ転送制御部1173と相違する。さらに、動き補償処理部2164は、生成した予測ブロックを加算器2120に出力する点が図2Aの動き補償処理部1174と相違する。
 次に、図5Bを参照して、図4及び図5Aに示される画像復号装置2000及び動き補償部2160の動作を説明する。図5Bは、動き補償部2160の処理を中心とした画像復号装置2000の動作を示すフローチャートの一例である。
 まず、エントロピー復号部2111は、符号化ストリームをエントロピー復号して、量子化係数ブロックと、動きベクトルと、ブロックパーティション情報と、参照画像特定情報とを生成する(ステップS1210)。
 次に、フレームメモリ転送制御部2162は、エントロピー復号部2111から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて、転送対象となる画素ブロックのアドレスを算出する処理を実行する(ステップS1220)。なお、この処理は、図2BのステップS1120と共通する処理であって、詳細は後述する。そして、フレームメモリ転送制御部2162は、特定した画素ブロックの画素データを、フレームメモリ2140から参照ブロックメモリ2161に転送する(ステップS1230)。
 次に、参照ブロックメモリ転送制御部2163は、転送の対象となる参照ブロックを抽出する処理を実行する(ステップS1240)。なお、この処理は、図2BのステップS1140と共通する処理であって、詳細は後述する。そして、参照ブロックメモリ転送制御部2163は、抽出された参照ブロックの画素データを、参照ブロックメモリ2161から動き補償処理部2164に転送する(ステップS1250)。
 次に、動き補償処理部2164は、エントロピー復号部2111から取得した動きベクトルと、参照ブロックメモリ転送制御部2163によって転送された参照ブロックとを用いて、対象ブロックに対する動き補償処理を実行する(ステップS1260)。そして、動き補償処理部2164は、動き補償処理によって生成された予測ブロックの画素データを、加算器2120に出力する。
 加算器2120は、逆直交変換部2113から取得した復号残差ブロックの画素データと、動き補償処理部2164から取得した予測ブロックの対応する画素データとを加算して、復号ブロック(復号画像)を生成する(ステップS1270)。なお、復号残差ブロックは、エントロピー復号部2111で生成された量子化係数ブロックを、逆量子化部2112で逆量子化し、逆直交変換部2113で逆直交変換することによって得られる。
 そして、加算器2120で生成された復号画像は、デブロッキングフィルタ2130でフィルタ処理され、復号画像として出力されると共に、参照画像としてフレームメモリ2140に格納される(ステップS1280)。
 次に、図6A及び図6Bを参照して、動き補償部2160の構成及び動作の他の例を説明する。図6Aは、動き補償部2160のブロック図の他の例である。図6Bは、動き補償部2160の処理を中心とした画像復号装置2000の動作を示すフローチャートの他の例である。なお、図5A及び図5Bとの共通点には同一の符号を付して詳しい説明は省略する。
 図6Aに示される動き補償部2160は、図5Aの構成に加えて、参照ブロックメモリ状態管理部2165をさらに備える。参照ブロックメモリ状態管理部2165の機能は、図3Aの参照ブロックメモリ状態管理部1175と共通するので、説明は省略する。
 フレームメモリ転送制御部2162は、図6Bに示されるように、画素ブロックのアドレス算出処理(ステップS1220)の後、特定した画素ブロック全体が既に参照ブロックメモリ2161に格納されていなければ(ステップS1222でN)、特定した画素ブロックのうち、参照ブロックメモリ2161に記憶されていない画素データを、参照ブロックメモリ状態管理部2165で管理されている転送ブロック単位で選択的に転送する(ステップS1230)。そして、参照ブロックメモリ状態管理部2165は、フレームメモリ転送制御部2162による転送結果に応じて、参照ブロックメモリの状態を更新する(ステップS1232)。
 図13~図19を用いて、フレームメモリ転送制御部1172の参照ブロックを含む矩形状の画素ブロックのアドレス算出の詳細な動作説明を行う。図13は、フレームメモリ転送制御部1172が行う画素ブロックのアドレス算出処理の全体の流れを示すフローチャートである。なお、以下の説明は、フレームメモリ転送制御部2162にも同様に当てはまる。
 まず、フレームメモリ転送制御部1172は、動き検出部1160から取得したブロックパーティション情報を用いて、動き補償処理で必要となる参照ブロックが非矩形状であるかどうかを判定する(ステップS2301)。
 ステップS2301の判定の結果、参照ブロックが矩形状である場合(ステップS2301でY)には、矩形状の参照ブロックに一致する画素ブロックの左上画素とサイズとを算出する(ステップS2302)。
 一方、ステップS2301の判定の結果、参照ブロックが非矩形状である場合(ステップS2301でNO)には、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する(ステップS2303)。
 次に、動き補償処理部1174でのフィルタ処理に必要な画素を画素ブロックに加えるために、ステップS2302又はステップS2303で算出した画素ブロックの左上画素とサイズとを修正する処理を行う(ステップS2304)。
 例えば、H.264の動き補償で用いられる6タップフィルタを用いて、水平方向の小数画素生成を行う場合は、図8に示されるように、画素ブロックの左上画素の水平座標を-2補正し、水平サイズを+5補正する。同様に、H.264の動き補償で用いられる6タップフィルタを用いて、垂直方向の小数画素生成を行う場合は、図8に示されるように、画素ブロックの左上画素の垂直座標を-2補正し、垂直サイズを+5補正する。なお、H.264の動き補償で用いられる6タップフィルタ処理を例にしたが、必ずしもそうである必要はなく、いかなるフィルタ処理であっても構わない。
 次に、フレームメモリ転送制御部1172は、動き検出部1160から取得した動きベクトル情報と、画素ブロックの座標情報とを用いて、ステップS2304で導出した各パーティションに外接する画素ブロックの左上座標を動きベクトル分だけ並行移動して、参照画像内の矩形状の画素ブロックの左上座標を求める(ステップS2305)。
 すなわち、ステップS2302及びステップS2303では、一旦、対象ブロックの位置での画素ブロックの左上座標を算出しており、この仮の左上座標をステップS2305で動きベクトル分だけ平行移動することにより、本来の参照ブロックの位置における画素ブロックの左上座標を得ることができる。
 次に、フレームメモリ転送制御部1172は、各矩形状の画素ブロックの参照画像内の左上座標を、参照画像のフレームメモリ1140内でのアドレスに変換することによって、フレームメモリ1140から読み出す矩形状の画素ブロックを構成する画素データのアドレスを計算する(ステップS2306)。
 図14は、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。なお、図14~図19で示すフローチャートでは、ブロックパーティション情報として、参照ブロックの水平サイズH_SIZEと、参照ブロックの垂直サイズV_SIZEと、従来例(特許文献1、特許文献2、非特許文献1、非特許文献2)に記載されているρとθを用いて説明する。
 ステップS2401では、動き検出部1160から取得したパーティション情報θが、0°<θ<90°かどうかを判定する。すなわち、ρとθとで定義される線分が、図7の第1象限(右上の領域)に位置するか否かを判定する。そして、0°<θ<90°である場合は、ステップS2402の処理を行う。ステップS2402では、0°<θ<90°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う(ステップS2402)。一方、0°<θ<90°でない場合は、ステップS2403の処理を行う(ステップS2401)。
 ステップS2403では、動き検出部1160から取得したブロックパーティション情報θが、90°<θ<180°かどうかを判定する。すなわち、ρとθとで定義される線分が、図7の第2象限(左上の領域)に位置するか否かを判定する。そして、90°<θ<180°である場合は、ステップS2404の処理を行う。ステップS2404では、90°<θ<180°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う(ステップS2404)。一方、90°<θ<180°でない場合は、ステップS2405の処理を行う(ステップS2403)。
 ステップS2405では、動き検出部1160から取得したパーティション情報θが、180°<θ<270°かどうかを判定する。すなわち、ρとθとで定義される線分が、図7の第3象限(左下の領域)に位置するか否かを判定する。そして、180°<θ<270°である場合は、ステップS2406の処理を行う。ステップS2406では、180°<θ<270°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う(ステップS2406)。一方、180°<θ<270°でない場合は、ステップS2407の処理を行う(ステップS2405)。
 ステップS2407では、動き検出部1160から取得したパーティション情報θが、270°<θ<360°かどうかを判定する。すなわち、ρとθとで定義される線分が、図7の第4象限(右下の領域)に位置するか否かを判定する。そして、270°<θ<360°である場合は、ステップS2408の処理を行う。ステップS2408では、270°<θ<360°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う(ステップS2408)。一方、270°<θ<360°でない場合は、ステップS2409の処理を行う(ステップS2407)。
 ステップS2409では、θ=90°、180°、270°、または360°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う(ステップS2409)。
 図15は、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。なお、図15~図19で示すフローチャートでは、ブロックパーティション情報と水平座標情報とからパーティション分割境界の垂直座標を導出するf(x)という関数と、ブロックパーティション情報と垂直座標情報とからパーティション分割境界の水平座標を導出するg(x)とを用いているが、この関数を下記式1及び式2に示す。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 ステップS2501では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2502の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2512の処理を行う(ステップS2501)。
 ステップS2502では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップS2503の処理を行う。一方、0<g(0)<H_SIZEでない場合は、ステップS2507の処理を行う(ステップS2502)。
 ステップS2507では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS2508の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS2512の処理を行い(ステップS2507)、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2503では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2503)、ステップS2504の処理を行う。ステップS2504では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし(ステップS2504)、ステップS2505の処理を行う。
 ステップS2505では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(0),0)とし(ステップS2505)、ステップS2506の処理を行う。ステップS2506では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE-g(0),垂直サイズh=f(H_SIZE-1)とし(ステップS2506)、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 すなわち、ステップS2503~ステップS2506では、図7に示されるように、パーティション分割境界が画素ブロックの上辺及び右辺と交差する場合のパーティション0及びパーティション1に外接する画素ブロックの左上座標とサイズとを導出している。
 なお、この例では、パーティション分割境界に接する2つのパーティション0、1の両方について、左上座標とサイズとを導出したが、パーティション0、1のどちらが参照ブロックであるかを特定して、特定された側の左上座標とサイズとを導出するようにしてもよい。これは、図15~図19の各処理に共通する。
 ステップS2508では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2508)、ステップS2509の処理を行う。ステップS2509では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=f(H_SIZE-1)とし(ステップS2509)、ステップS2510の処理を行う。
 ステップS2510では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,f(0))とし(ステップS2510)、ステップS2511の処理を行う。ステップS2511では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(0)とし(ステップS2511)、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 すなわち、ステップS2508~ステップS2511では、パーティション分割境界が画素ブロックの左辺及び右辺と交差する場合のパーティション0及びパーティション1に外接する画素ブロックの左上座標とサイズとを導出している。
 ステップS2512では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2512)、ステップS2513の処理を行う。ステップS2513では、パーティション0に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZEとし(ステップS2513)、ステップS2514の処理を行う。
 ステップS2514では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(0),0)とし(ステップS2514)、ステップS2515の処理を行う。ステップS2515では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE-g(0),垂直サイズh=V_SIZEとし(ステップS2515)、0°<θ<90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 すなわち、ステップS2512~ステップS2515では、パーティション分割境界が画素ブロックの上辺及び下辺と交差する場合のパーティション0及びパーティション1に外接する画素ブロックの左上座標とサイズとを導出している。
 なお、図16~図18についても上記と同様に、パーティション分割境界が画素ブロックのどの辺と交差するかを場合分けながら、各パーティションに外接する画素ブロックの左上座標とサイズとを算出している。
 図16は、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
 ステップS2601では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS2602の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS2612の処理を行う(ステップS2601)。
 ステップS2602では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップS2603の処理を行う。一方、0<g(0)<H_SIZEでない場合は、ステップS2607の処理を行う(ステップS2602)。
 ステップS2607では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2608の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2612の処理を行い(ステップS2607)、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2603では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2603)、ステップS2604の処理を行う。ステップS2604では、パーティション0に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=f(0)とし(ステップS2604)、ステップS2605の処理を行う。
 ステップS2605では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2605)、ステップS2606の処理を行う。ステップS2606では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし(ステップS2606)、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2608では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2608)、ステップS2609の処理を行う。ステップS2609では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=f(0)とし(ステップS2609)、ステップS2610の処理を行う。
 ステップS2610では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,f(H_SIZE-1))とし(ステップS2610)、ステップS2611の処理を行う。ステップS2611では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(H_SIZE-1)とし(ステップS2611)、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2612では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2612)、ステップS2613の処理を行う。ステップS2613では、パーティション0に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=V_SIZEとし(ステップS2613)、ステップS2614の処理を行う。
 ステップS2614では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(V_SIZE-1),0)とし(ステップS2614)、ステップS2615の処理を行う。ステップS2615では、パーティション1の外接矩形の水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZEとし(ステップS2615)、90°<θ<180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 図17は、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
 ステップS2701では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS2702の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS2712の処理を行う(ステップS2701)。
 ステップS2702では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2703の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2707の処理を行う(ステップS2702)。
 ステップS2707では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2708の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2712の処理を行い(ステップS2707)、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2703では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2703)、ステップS2704の処理を行う。ステップS2704では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=f(H_SIZE-1)とし(ステップS2704)、ステップS2705の処理を行う。
 ステップS2705では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,f(0))とし(ステップS2705)、ステップS2706の処理を行う。ステップS2706では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(0)とし(ステップS2706)、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2708では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2708)、ステップS2709の処理を行う。ステップS2709では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし(ステップS2709)、ステップS2710の処理を行う。
 ステップS2710では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,f(0))とし(ステップS2710)、ステップS2711の処理を行う。ステップS2711では、パーティション1に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZE-f(0)とし(ステップS2711)、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2712では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2712)、ステップS2713の処理を行う。ステップS2713では、パーティション0に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZEとし(ステップS2713)、ステップS2714の処理を行う。
 ステップS2714では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(0),0)とし(ステップS2714)、ステップS2715の処理を行う。ステップS2715では、パーティション1の外接矩形の水平サイズw=H_SIZE-g(0),垂直サイズh= V_SIZEとし(ステップS2715)、180°<θ<270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 図18は、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
 ステップS2801では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2802の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2812の処理を行う(ステップS2801)。
 ステップS2802では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS2803の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS2807の処理を行う(ステップS2802)。
 ステップS2807では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS2808の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS2812の処理を行い(ステップS2807)、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2803では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2803)、ステップS2804の処理を行う。ステップS2804では、パーティション0の外接矩形の水平サイズw=H_SIZE,垂直サイズh=f(0)とし(ステップS2804)、ステップS2805の処理を行う。
 ステップS2805では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,f(H_SIZE-1))とし(ステップS2805)、ステップS2806の処理を行う。ステップS2806では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(H_SIZE-1)とし(ステップS2806)、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2808では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2808)、ステップS2809の処理を行う。ステップS2809では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし(ステップS2809)、ステップS2810の処理を行う。
 ステップS2810では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(V_SIZE-1),f(H_SIZE-1))とし(ステップS2810)、ステップS2811の処理を行う。ステップS2811では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZE-f(H_SIZE-1)とし(ステップS2811)、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2812では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2812)、ステップS2813の処理を行う。ステップS2813では、パーティション0に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=V_SIZEとし(ステップS2813)、ステップS2814の処理を行う。
 ステップS2814では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(g(V_SIZE-1),0)とし(ステップS2814)、ステップS2815の処理を行う。ステップS2815では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZEとし(ステップS2815)、270°<θ<360°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 図19は、θ=0°,90°,180°,270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
 ステップS2901では、動き検出部1160から取得したブロックパーティション情報のθから、θ=0°かどうかを判定する。そして、θ=0°である場合は、ステップS2902の処理を行う。一方、θ=0°でない場合は、ステップS2906の処理を行う(ステップS2901)。
 ステップS2906では、動き検出部1160から取得したブロックパーティション情報のθから、θ=90°かどうかを判定する。そして、θ=90°である場合は、ステップS2907の処理を行う。一方、θ=90°でない場合は、ステップS2911の処理を行う(ステップS2906)。
 ステップS2911では、動き検出部1160から取得したブロックパーティション情報のθから、θ=180°かどうかを判定する。そして、θ=180°である場合は、ステップS2912の処理を行う。一方、θ=180°でない場合は、ステップS2916の処理を行う(ステップS2911)。
 ステップS2916では、動き検出部1160から取得したブロックパーティション情報のθから、θ=270°かどうかを判定する。そして、θ=270°である場合は、ステップS2917の処理を行う(ステップS2916)。
 ステップS2902では、パーティション0に外接するが層ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2902)、ステップS2903の処理を行う。ステップS2903では、パーティション0に外接する画素ブロックの水平サイズw=1/2*H_SIZE+ρ,垂直サイズh=V_SIZEとし(ステップS2903)、ステップS2904の処理を行う。
 ステップS2904では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(1/2*H_SIZE+ρ,0)とし(ステップS2904)、ステップS2905の処理を行う。ステップS2905では、パーティション1に外接する画素ブロックの水平サイズw=1/2*H_SIZE-ρ,垂直サイズh=V_SIZEとし(ステップS2905)、θ=0°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2907では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2907)、ステップS2908の処理を行う。ステップS2908では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE-ρとし(ステップS2908)、ステップS2909の処理を行う。
 ステップS2909では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,1/2*V_SIZE-ρ)とし(ステップS2909)、ステップS2910の処理を行う。ステップS2910では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE+ρとし(ステップS2910)、θ=90°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2912では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2912)、ステップS2913の処理を行う。ステップS2913では、パーティション0に外接する画素ブロックの水平サイズw=1/2*H_SIZE-ρ,垂直サイズh=V_SIZEとし(ステップS2913)、ステップS2914の処理を行う。
 ステップS2914では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(1/2*H_SIZE-ρ,0)とし(ステップS2914)、ステップS2915の処理を行う。ステップS2915では、パーティション1に外接する画素ブロックの水平サイズw=1/2*H_SIZE+ρ,垂直サイズh=V_SIZEとし(ステップS2915)、θ=180°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 ステップS2917では、パーティション0に外接する画素ブロックの左上画素の参照ブロック内座標を(0,0)とし(ステップS2917)、ステップS2918の処理を行う。ステップS2918では、パーティション0に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE+ρとし(ステップS2918)、ステップS2919の処理を行う。
 ステップS2919では、パーティション1に外接する画素ブロックの左上画素の参照ブロック内座標を(0,1/2*V_SIZE+ρ)とし(ステップS2919)、ステップS2920の処理を行う。ステップS2920では、パーティション1に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE-ρとし(ステップS2920)、θ=270°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
 以上、図14~図19で示したフローチャートの処理により、各非矩形パーティションに外接する画素ブロックの左上座標とサイズとが導出できる。
 次に、図20~図32を用いて、参照ブロックメモリ転送制御部1173の画素ブロック内の有効画素抽出処理の詳細な動作説明を行う。図20は、参照ブロックメモリ転送制御部1173が行う画素ブロック内の有効画素抽出処理の全体の流れを示すフローチャートである。なお、以下の説明は、参照ブロックメモリ転送制御部2163にも同様に当てはまる。
 まず、参照ブロックメモリ転送制御部1173は、動き検出部1160から取得したブロックパーティション情報を用いて、動き補償処理で必要となる参照ブロックが非矩形であるかどうかを判定する(ステップS3101)。ステップS3301の判定の結果、参照ブロックが矩形である場合には、画素ブロック内の全ての画素を有効画素と判定する(ステップS3102)。一方、ステップS3301の判定の結果、参照ブロックが非矩形である場合には、画素ブロック内の有効画素判定を行う(ステップS3103)。
 次に、動き補償部1170で利用するフィルタ処理に必要な画素を参照ブロックに追加するために、有効画素の座標を補正する(ステップS3104)。例えば、H.264の動き補償で用いられる6タップフィルタを用いて、水平方向の小数画素生成を行う場合は、参照ブロックの左上画素の水平座標を-2補正して、水平サイズを+5補正する。H.264の動き補償で用いられる6タップフィルタを用いて、垂直方向の小数画素生成を行う場合は、参照ブロックの左上画素の垂直座標を-2補正して、垂直サイズを+5補正する。H.264の動き補償で用いられる6タップフィルタ処理を例にしたが、必ずしもそうである必要はなくいかなるフィルタ処理であっても構わない。
 次に、参照ブロックメモリ転送制御部1173は、参照ブロックメモリ1171内の参照ブロックの有効画素座標の情報を求め、当該情報で特定される参照ブロックの画素データを動き補償部1170に出力する(ステップS3105)。
 図21は、画素ブロック内の有効画素の判定の流れを示すフローチャートである。図21~図32で示すフローチャートでは、ブロックパーティション情報として、画素ブロックの水平サイズH_SIZEと、画素ブロックの垂直サイズV_SIZEと、従来例(特許文献1、特許文献2、非特許文献1、非特許文献2)に記載されているρとθとを用いて説明する。
 ステップS3201では、動き検出部1160から取得したブロックパーティション情報θが、0°<θ<90°かどうかを判定する。そして、0°<θ<90°である場合は、ステップS3202の処理を行う。ステップS3202では、0°<θ<90°のときの画素ブロック内の有効画素の判定を行う(ステップS3202)。一方、0°<θ<90°でない場合は、ステップS3203の処理を行う(ステップS3201)。
 ステップS3203では、動き検出部1160から取得したブロックパーティション情報θが、90°<θ<180°かどうかを判定する。そして、90°<θ<180°である場合は、ステップS3204の処理を行う。ステップS3204では、90°<θ<180°のときの画素ブロック内の有効画素の判定を行う(ステップS3204)。一方、90°<θ<180°でない場合は、ステップS3205の処理を行う(ステップS3203)。
 ステップS3205では、動き検出部1160から取得したブロックパーティション情報θが、180°<θ<270°かどうかを判定する。そして、180°<θ<270°である場合は、ステップS3206の処理を行う。ステップS3206では、180°<θ<270°のときの画素ブロック内の有効画素の判定を行う(ステップS3206)。一方、180°<θ<270°でない場合は、ステップS3207の処理を行う(ステップS3205)。
 ステップS3207では、動き検出部1160から取得したブロックパーティション情報θが、270°<θ<360°かどうかを判定する。そして、270°<θ<360°である場合は、ステップS3208の処理を行う。ステップS3208では、270°<θ<360°のときの画素ブロック内の有効画素の判定を行う(ステップS3208)。一方、270°<θ<360°でない場合は、ステップS3209の処理を行う(ステップS3207)。
 ステップS3209では、θ=90°、180°、270°、または360°のときの画素ブロック内の有効画素の判定を行う(ステップS3209)。
 図22は、0°<θ<90°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
 ステップS3301では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3302の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3306の処理を行う(ステップS3301)。
 ステップS3302では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップS3303の処理を行う。ステップS3303では、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、0°<θ<90°のときの画素ブロック内の有効画素の判定を終了する(ステップS3303)。一方、0<g(0)<H_SIZEでない場合は、ステップS3304の処理を行う(ステップS3302)。
 ステップS3304では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS3305の処理を行う。ステップS3305では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、0°<θ<90°のときの画素ブロック内の有効画素の判定を終了する(ステップS3305)。一方、0<f(0)<V_SIZEでない場合は、ステップS3306の処理を行う(ステップS3306)。
 ステップS3306では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、0°<θ<90°のときの画素ブロック内の有効画素の判定を終了する(ステップS3306)。
 図23は、90°<θ<180°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
 ステップS3401では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS3402の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS3406の処理を行う(ステップS3401)。
 ステップS3402では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップS3403の処理を行う。ステップS3403では、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定を行い、90°<θ<180°のときの画素ブロック内の有効画素の判定を終了する(ステップS3403)。一方、0<g(0)<H_SIZEでない場合は、ステップS3404の処理を行う(ステップS3402)。
 ステップS3404では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3405の処理を行う。ステップS3405では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、90°<θ<180°のときの画素ブロック内の有効画素の判定を終了する(ステップS3405)。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3406の処理を行う(ステップS3406)。
 ステップS3406では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、90°<θ<180°のときの画素ブロック内の有効画素の判定を終了する(ステップS3406)。
 図24は、180°<θ<270°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
 ステップS3501では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS3502の処理を行う。一方、0<f(0)<V_SIZEでない場合は、ステップS3506の処理を行う(ステップS3501)。
 ステップS3502では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3503の処理を行う。ステップS3503では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、180°<θ<270°のときの画素ブロック内の有効画素の判定を終了する(ステップS3503)。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3504の処理を行う(ステップS3502)。
 ステップS3504では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3505の処理を行う。ステップS3505では、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、180°<θ<270°のときの画素ブロック内の有効画素の判定を終了する(ステップS3505)。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3506の処理を行う(ステップS3506)。
 ステップS3506では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、180°<θ<270°のときの画素ブロック内の有効画素の判定を終了する(ステップS3506)。
 図25は、270°<θ<360°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
 ステップS3601では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3602の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3606の処理を行う(ステップS3601)。
 ステップS3602では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(0)<V_SIZEかどうかを判定する。そして、0<f(0)<V_SIZEである場合は、ステップS3603の処理を行う。ステップS3603では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、270°<θ<360°のときの画素ブロック内の有効画素の判定を終了する(ステップS3603)。一方、0<f(0)<V_SIZEでない場合は、ステップS3604の処理を行う(ステップS3602)。
 ステップS3604では、動き検出部1160から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップS3605の処理を行う。ステップS3605では、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、270°<θ<360°のときの画素ブロック内の有効画素の判定を終了する(ステップS3605)。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップS3606の処理を行う(ステップS3606)。
 ステップS3606では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、270°<θ<360°のときの画素ブロック内の有効画素の判定を終了する(ステップS3606)。
 図26は、θ=0°,90°,180°,270°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
 ステップS3701では、動き検出部1160から取得したブロックパーティション情報のθから、θ=0°かどうかを判定する。そして、θ=0°である場合は、ステップS3702の処理を行う。一方、θ=0°でない場合は、ステップS3703の処理を行う(ステップS3701)。
 ステップS3703では、動き検出部1160から取得したブロックパーティション情報のθから、θ=90°かどうかを判定する。そして、θ=90°である場合は、ステップS3704の処理を行う。一方、θ=90°でない場合は、ステップS3705の処理を行う(ステップS3705)。
 ステップS3705では、動き検出部1160から取得したブロックパーティション情報のθから、θ=180°かどうかを判定する。そして、θ=180°である場合は、ステップS3706の処理を行う。一方、θ=180°でない場合は、ステップS3707の処理を行う(ステップS3705)。
 ステップS3707では、動き検出部1160から取得したブロックパーティション情報のθから、θ=270°かどうかを判定する。そして、θ=270°である場合は、ステップS3708の処理を行う(ステップS3707)。
 図26に記載のあるvalid_partition0(i,j)、および、valid_partition1(i,j)は、画素ブロックと同じサイズの2次元行列データであり、2つに分割されたブロックパーティションを構成する画素が画素ブロック内の各座標で有効かどうかを示す情報である。1のときに有効であることを示し、0のときに無効であることを示す。
 ステップS3702では、0<=i<=1/2*H_SIZE+ρ,0<=j<V_SIZEの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、1/2*H_SIZE+ρ<=i<H_SIZE,0<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする(ステップS3702)。
 ステップS3704では、0<=i<=H_SIZE,0<=j<1/2*V_SIZE-ρの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、0<=i<=H_SIZE,1/2*V_SIZE-ρ<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする(ステップS3704)。
 ステップS3706では、0<=i<=1/2*H_SIZE-ρ、0<=j<V_SIZEの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、1/2*H_SIZE-ρ<=i<H_SIZE、0<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする(ステップS3706)。
 ステップS3708では、0<=i<=H_SIZE,0<=j<1/2*V_SIZE+ρの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、0<=i<=H_SIZE,1/2*V_SIZE+ρ<=j <V_SIZEの画素について、valid_partition0 (i,j)=0、valid_partition1(i,j)=1とする(ステップS3708)。
 図27は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
 ステップS3801では、j=0とし、ステップS3802の処理を行う(ステップS3801)。ステップS3802では、i=0とし、ステップS3803の処理を行う(ステップS3802)。ステップS3803では、斜辺(パーティション分割境界)を成す座標(g(j),j)を算出し、ステップS3804の処理を行う(ステップS3803)。
 ステップS3804では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS3805の処理を行う(ステップS3804)。ステップS3805では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップS3806の処理を行う。ステップS3806では、i++とし、ステップS3804の処理を行う(ステップS3806)。すなわち、ステップS3804~ステップS3806は、パーティション分割境界の左側に位置する画素を、パーティション0に属する画素と判定する処理である。
 一方、0<=i<=g(j)ではない場合は、ステップS3807の処理を行う(ステップS3805)。
 ステップS3807では、valid_partition0 (i,j)=0、valid_partition1(i,j)=1とし、ステップS3808の処理を行う(ステップS3807)。ステップS3808では、g(j)<=i< H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップS3809の処理を行う。ステップS3809では、i++とし、ステップS3807の処理を行う(ステップS3809)。すなわち、ステップS3807~ステップS3809は、パーティション分割境界の右側に位置する画素を、パーティション1に属する画素と判定する処理である。
 一方、g(j)<=i<H_SIZEではない場合は、ステップS3810の処理を行う(ステップS3808)。ステップS3810では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップS3811の処理を行う。ステップS3811では、j++とし、ステップS3802の処理を行う(ステップS3811)。一方、j<V_SIZEではない場合は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS3810)。
 図28は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図28は、図27の処理と類似し、パーティション分割境界の上側に位置する画素をパーティション0に属する画素と判定し、下側に位置する画素をパーティション1に属する画素と判定する処理である。
 ステップS3901では、j=0とし、ステップS3902の処理を行う(ステップS3901)。ステップS3902では、i=0とし、ステップS3903の処理を行う(ステップS3902)。ステップS3903では、斜辺(パーティション分割境界)を成す座標(i,f(i))を算出し、ステップS3904の処理を行う(ステップS3903)。
 ステップS3904では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS3905の処理を行う(ステップS3904)。ステップS3905では、0<=j<=f(i)かどうかを判定する。そして、0<=j<=f(i)である場合は、ステップS3906の処理を行う。ステップS3906では、j++とし、ステップS3904の処理を行う(ステップS3906)。一方、0<=j<=f(i)ではない場合は、ステップS3907の処理を行う(ステップS3905)。
 ステップS3907では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS3908の処理を行う(ステップS3907)。ステップS3908では、f(i)<=j<V_SIZEかどうかを判定する。そして、f(i)<=j< V_SIZEである場合は、ステップS3909の処理を行う。ステップS3909では、j++とし、ステップS3907の処理を行う(ステップS3909)。一方、f(i)<=j<V_SIZEではない場合は、ステップS3910の処理を行う(ステップS3908)。
 ステップS3910では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップS3911の処理を行う。ステップS3911では、i++とし、ステップS3902の処理を行う(ステップS3911)。一方、i<H_SIZEではない場合は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS3910)。
 図29は、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
 ステップS4001では、j=0とし、ステップS4002の処理を行う(ステップS4001)。ステップS4002では、i=0とし、ステップS4003の処理を行う(ステップS4002)。ステップS4003では、斜辺(パーティション分割境界)を成す座標(g(j),j)を算出し、ステップS4004の処理を行う(ステップS4003)。
 ステップS4004では、g(j)<H_SIZEかどうかを判定する。そして、g(j)<H_SIZEである場合は、ステップS4005の処理を行う。一方、g(j)<H_SIZEでない場合は、ステップS4011の処理を行う(ステップS4004)。
 ステップS4005では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4006の処理を行う(ステップS4005)。ステップS4006では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップS4007の処理を行う。ステップS4007では、i++とし、ステップS4005の処理を行う(ステップS4007)。一方、0<=i<=g(j)ではない場合は、ステップS4008の処理を行う(ステップS4006)。すなわち、ステップS4005~ステップS4007は、パーティション分割境界の左側に位置する画素を、パーティション0に属する画素と判定する処理である。
 ステップS4008では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS4009の処理を行う(ステップS4008)。ステップS4009では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップS4010の処理を行う。ステップS4010では、i++とし、ステップS4008の処理を行う(ステップS4010)。一方、g(j)<=i<H_SIZEではない場合は、ステップS4014の処理を行う(ステップS4009)。すなわち、ステップS4008~ステップS4010は、パーティション分割境界の右側に位置する画素を、パーティション1に属する画素と判定する処理である。
 ステップS4011では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4012の処理を行う(ステップS4011)。ステップS4012では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップS4013の処理を行う。ステップS4013では、i++とし、ステップS4011の処理を行う(ステップS4013)。一方、i<H_SIZEではない場合は、ステップS4014の処理を行う(ステップS4012)。すなわち、ステップS4011~ステップS4013は、パーティション分割境界と画素ブロックの右辺との交点より下側の画素を、全てパーティション0に属する画素と判定する処理である。
 ステップS4014では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップS4015の処理を行う。ステップS4015では、j++とし、ステップS4002の処理を行う(ステップS4015)。一方、j<V_SIZEではない場合は、復号ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS4014)。
 図30は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図30は、図29の処理と類似し、パーティション分割境界の左側に位置する画素をパーティション0に属する画素と判定し、右側に位置する画素をパーティション1に属する画素と判定し、パーティション分割境界と画素ブロックの左辺との交点より下側の画素を、全てパーティション1に属する画素と判定する処理である。
 ステップS4101では、j=0とし、ステップS4102の処理を行う(ステップS4101)。ステップS4102では、i=0とし、ステップS4103の処理を行う(ステップS4102)。ステップS4103では、斜辺(パーティション分割境界)を成す座標(g(j),j)を算出し、ステップS4104の処理を行う(ステップS4103)。
 ステップS4104では、0<=g(j)かどうかを判定する。そして、0<=g(j)である場合は、ステップS4105の処理を行う。一方、0<=g(j)でない場合は、ステップS4111の処理を行う(ステップS4104)。
 ステップS4105では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4106の処理を行う(ステップS4105)。ステップS4106では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップS4107の処理を行う。ステップS4107では、i++とし、ステップS4105の処理を行う(ステップS4107)。一方、0<=i<=g(j)ではない場合は、ステップS4108の処理を行う(ステップS4106)。
 ステップS4108では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS4109の処理を行う(ステップS4108)。ステップS4109では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップS4110の処理を行う。ステップS4110では、i++とし、ステップS4108の処理を行う(ステップS4110)。一方、g(j)<=i<H_SIZEではない場合は、ステップS4114の処理を行う(ステップS4109)。
 ステップS4111では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS4112の処理を行う(ステップS4111)。ステップS4112では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップS4113の処理を行う。ステップS4113では、i++とし、ステップS4111の処理を行う(ステップS4113)。一方、i<H_SIZEではない場合は、ステップS4114の処理を行う(ステップS4112)。
 テップS4114では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップS4115の処理を行う。ステップS4115では、j++とし、ステップS4102の処理を行う(ステップS4115)。一方、j<V_SIZEではない場合は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS4114)。
 図31は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図31は、図29の処理と類似し、パーティション分割境界と画素ブロックの左辺との交点より上側の画素を全てパーティション1に属する画素と判定し、パーティション分割境界の左側に位置する画素をパーティション0に属する画素と判定し、右側に位置する画素をパーティション1に属する画素と判定する処理である。
 ステップS4201では、j=0とし、ステップS4202の処理を行う(ステップS4201)。ステップS4202では、i=0とし、ステップS4203の処理を行う(ステップS4202)。ステップS4203では、斜辺(パーティション分割境界)を成す座標(g(j),j)を算出し、ステップS4204の処理を行う(ステップS4203)。
 ステップS4204では、0<=g(j)かどうかを判定する。そして、0<=g(j)である場合は、ステップS4205の処理を行う。一方、0<=g(j)でない場合は、ステップS4211の処理を行う(ステップS4204)。
 ステップS4205では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS4206の処理を行う(ステップS4205)。ステップS4206では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップS4207の処理を行う。ステップS4207では、i++とし、ステップS4205の処理を行う(ステップS4207)。一方、0<=i<=g(j)ではない場合は、ステップS4208の処理を行う(ステップS4206)。
 ステップS4208では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4209の処理を行う(ステップS4208)。ステップS4209では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップS4210の処理を行う。ステップS4210では、i++とし、ステップS4208の処理を行う(ステップS4210)。一方、g(j)<=i<H_SIZEではない場合は、ステップS4214の処理を行う(ステップS4209)。
 ステップS4211では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4212の処理を行う(ステップS4211)。ステップS4212では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップS4213の処理を行う。ステップS4213では、i++とし、ステップS4211の処理を行う(ステップS4213)。一方、i<H_SIZEではない場合は、ステップS4214の処理を行う(ステップS4212)。
 ステップS4214では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップS4215の処理を行う。ステップS4215では、j++とし、ステップS4202の処理を行う(ステップS4215)。一方、j<V_SIZEではない場合は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS4214)。
 図32は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図32は、図29の処理と類似し、パーティション分割境界と画素ブロックの右辺との交点より上側の画素を全てパーティション0に属する画素と判定し、パーティション分割境界の左側に位置する画素をパーティション0に属する画素と判定し、右側に位置する画素をパーティション1に属する画素と判定する処理である。
 ステップS4301では、j=0とし、ステップS4302の処理を行う(ステップS4301)。ステップS4302では、i=0とし、ステップS4303の処理を行う(ステップS4302)。ステップS4303では、斜辺(パーティション分割境界)を成す座標(g(j),j)を算出し、ステップS4304の処理を行う(ステップS4303)。
 ステップS4304では、g(j)<H_SIZEかどうかを判定する。そして、g(j)<H_SIZEである場合は、ステップS4305の処理を行う。一方、g(j)<H_SIZEでない場合は、ステップS4311の処理を行う(ステップS4304)。
 ステップS4305では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4306の処理を行う(ステップS4305)。ステップS4306では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップS4307の処理を行う。ステップS4307では、i++とし、ステップS4305の処理を行う(ステップS4307)。一方、0<=i<=g(j)ではない場合は、ステップS4308の処理を行う(ステップS4306)。
 ステップS4308では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップS4309の処理を行う(ステップS4308)。ステップS4309では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップS4310の処理を行う。ステップS4310では、i++とし、ステップS4308の処理を行う(ステップS4310)。一方、g(j)<=i<H_SIZEではない場合は、ステップS4314の処理を行う(ステップS4309)。
 ステップS4311では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップS4312の処理を行う(ステップS4311)。ステップS4312では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップS4313の処理を行う。ステップS4313では、i++とし、ステップS4311の処理を行う(ステップS4313)。一方、i<H_SIZEではない場合は、ステップS4314の処理を行う(ステップS4312)。
 ステップS4314では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップS4315の処理を行う。ステップS4315では、j++とし、ステップS4302の処理を行う(ステップS4315)。一方、j<V_SIZEではない場合は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する(ステップS4314)。
 以上、図20~図32で示したフローチャートの処理により参照ブロックメモリ1171内での画素ブロック有効画素、すなわち参照ブロックの抽出ができる。
 かかる構成によれば、フレームメモリ1140から非矩形動き補償を実施するための参照ブロックのアドレスを決定する時間を短くすることができる。そのため、動き検出部1160がヘッダ情報(動きベクトル、ブロックパーティション情報、及び参照画像特定情報等)を算出してから、フレームメモリ転送制御部1172が、参照ブロックを含む矩形状の画素ブロックを読み出し、参照ブロックメモリ1171に書き込むまでの時間を短くすることができる。
 なお、非矩形の参照ブロックを含む矩形領域の参照画面座標での水平座標と垂直座標を計算する方法として外接する矩形の頂点座標から求める方法を示したが、参照ブロックを含む矩形の頂点座標から計算してもよいし、参照ブロックをなす辺の座標から計算してもよい。
 (実施の形態2)
 実施の形態1に係るフレームメモリ転送制御部1172は、非矩形状の参照ブロックに外接する単一の矩形画素ブロックの画素データを、フレームメモリ1140から参照ブロックメモリ1171に転送する。例えば、図33のハッチング(斜線ハッチング及びドットハッチングを含む)で示される三角形の参照ブロック3500(105画素)を動き補償に用いる場合、矩形状の画素ブロック3000(256画素)が転送の対象となる。このように、参照ブロックの形状又は大きさによっては、実際には動き補償に用いない多くの画素(上記の例では、151画素)を転送する必要が生じる可能性がある。
 そこで、実施の形態2では、動き補償に用いない画素の一部を転送の対象から除外することによって、フレームメモリ1140から参照ブロックメモリ1171への転送負荷を低減することを目的とする。なお、実施の形態2に係る画像符号化装置及び画像復号装置の構成及び基本的な動作は実施の形態1と共通するので、共通点の詳しい説明は省略し、相違点を中心に説明する。
 図33は、動き補償に用いられる非矩形の参照ブロックを含む矩形状の画素ブロックを示す図である。図34は、実施の形態2に係る画素ブロックの左上座標を導出する処理を示すフローチャートである。すなわち、実施の形態2は、図13のステップS2303に相当する処理が実施の形態1と相違する。
 まず、実施の形態2に係るフレームメモリ転送制御部1172は、図33に示されるように、参照画像3000を予め定められた大きさの矩形状の複数の画素ブロック3100、3200、3300、3400に区画し、画素ブロック3100、3200、3300、3400の単位でフレームメモリ1140から参照ブロックメモリ1171に転送することができる。すなわち、画素ブロック3100、3200、3300、3400は、例えばDRAMのアクセス単位であって、図33の例では、8画素×8画素の正方形である。但し、画素ブロックの大きさは上記に限定されない。また、画素ブロックは正方形である必要はなく、長方形であってもよい。
 そして、実施の形態2に係るフレームメモリ転送制御部1172は、複数の画素ブロック3100、3200、3300、3400のうち、非矩形状の参照ブロック3500を構成する画素を含む1以上の画素ブロック3200、3300、3400を特定し、特定した1以上の画素ブロック3200、3300、3400の画素データをフレームメモリ1140から参照ブロックメモリ1171に転送する。
 図34を参照して、転送対象となる画素ブロックの左上座標を導出する処理を説明する。但し、図34は、左上座標を導出する処理の一例であって、本発明はこれに限定されない。
 まず、フレームメモリ転送制御部1172は、非矩形状の参照ブロック3500の辺を構成する画素の座標を特定する(S4401)。図33の例では、斜線ハッチングで示される39画素の座標が特定される。なお、画素の座標は、x座標(横方向)及びy座標(縦方向)の組み合わせで表現され、例えば、左上の画素3101の座標は(0,0)となる。
 次に、フレームメモリ転送制御部1172は、ステップS4401で特定した39画素全てに対して、ステップS4403~ステップS4405の処理を実行する(S4402、S4406)。この繰り返し処理は、非矩形の参照ブロック3500を構成する画素を含む画素ブロックの左上座標を導出する処理である。
 まず、フレームメモリ転送制御部1172は、参照ブロック3500の辺を構成する画素の座標値の下3ビットを0に置き換える(S4403)。例えば、非矩形の参照ブロック3500の右上の画素3501の座標(15,2)の下3ビットを0に置き換えると、この画素3501を含む画素ブロック3200の左上の画素3201の座標(8,0)が得られる。但し、画素ブロックの大きさが異なれば0に置き換えるビット数も異なり、例えば、画素ブロックの大きさが16画素×16画素であれば、座標値の下4ビットを0に置き換えればよい。
 次に、フレームメモリ転送制御部1172は、ステップS4403で導出した座標(8,0)が、後述するステップS4404で既に出力された座標であるか否かを判断する(S4403)。そして、未だ出力されていない座標である場合(S4403でNo)、フレームメモリ転送制御部1172は、ステップS4403で導出した座標(8,0)を、非矩形の参照ブロック3500を構成する画素を含む画素ブロック3200の左上座標として出力する(S4404)。
 一方、次に画素3501の左下の画素3502に対してステップS4403~ステップS4405を実行したとすると、画素3501の場合と同様に、画素ブロック3200の左上の画素3201の座標(8,0)が得られる(S4403)。このため、この座標は出力されない(S4404でYes)。
 上記の処理を、図33の斜線ハッチングで示される39画素に対して実行すると、例えば、画素3503の座標(9,8)から画素ブロック3400の左上の画素3401の座標(8,8)が得られ、画素3504の座標(7,10)から画素ブロック3300の左上の画素3301の座標(0,8)が得られる。
 すなわち、実施の形態2の処理を図33に適用すれば、図13のステップS2303に相当する処理で、3つの画素ブロック3200、3300、3400の左上座標が得られる。一方、各画素ブロック3200、3300、3400のサイズは固定(8画素×8画素)であるので、改めて導出する必要はない。
 このように、実施の形態2によれば、参照ブロック3500を動き補償で用いるために、3つの画素ブロック3200、3300、3400の画素データ(192画素)をフレームメモリ1140から参照ブロックメモリ1171に転送すればよく、実施の形態1と比較して転送負荷を低減することが可能となる。
 (実施の形態3) セット・システム実装形態
 *実行プログラムとそのプログラムを保持する記録メディア*
 上記各実施の形態で示した画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
 さらにここで、上記各実施の形態で示した画像処理装置の応用例とそれを用いたシステムを説明する。
 *ネットで接続されたシステム*
 図35は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106~ex110が設置されている。
 このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106~ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
 しかし、コンテンツ供給システムex100は図35のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106~ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
 カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
 コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
 なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
 また、これら符号化・復号処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
 また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
 以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
 *放送システム*
 なお、コンテンツ供給システムex100の例に限らず、図36に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは上記各実施の形態で説明した動画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
 また、記録媒体であるCDやDVD等の蓄積メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
 また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
 *放送システム内の機器の一例としてのテレビ*
 図37は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像情報のビットストリームを取得、または出力するチューナex301と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調/復調部ex302と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。また、テレビex300は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号した音声信号を出力するスピーカex307、復号した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
 まず、テレビex300がアンテナex204等により外部から取得したデータを復号し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した映像データ、音声データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318~ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
 また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
 また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または書き込む場合には、上記復号処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
 *テレビまたはリーダ/レコーダが記録メディアへの記録再生を行う構成について*
 一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図38に示す。情報再生/記録部ex400は、以下に説明する要素ex401~ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
 以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
 図39に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
 以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
 また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図37に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
 このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
 また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
 (実施の形態4) LSI実装形態
 *LSI1 発明部のみ*
 本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現した形態を図40に示す。フレームメモリ3をDRAM上に実現し、その他の回路やメモリをLSI上に構成している。
 これらは個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
 さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話やテレビ、デジタルビデオレコーダー、デジタルビデオカメラ、カーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶やPDP(プラズマディスプレイパネル)、有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
 また、本実施の形態は、システムLSIとDRAM(Dynamic Random Access Memory)の構成を示したが、eDRAM(embeded DRAM)やSRAM(Static Random Access Memory)やハードディスクなど他の記憶装置で構成してもかまわない。
 (実施の形態5) セット・システム実装形態
 *LSI1 全体*
 上記各実施の形態で示した画像復号装置および方法は、典型的には集積回路であるLSIで実現される。一例として、図41に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502~ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
 また、例えば復号処理を行う場合には、LSIex500は、マイコンex502の制御に基づいて、ストリームI/Oex506によって復調処理回路ex220から得られた符号化データ、または記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。マイコンex502の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声データの復号および/または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex511等に蓄積するとよい。復号された出力信号はメモリex511等を適宜介しながら、AVI/Oex509からモニタex219等に出力される。メモリex511にアクセスする際にはメモリコントローラex503を介する構成である。
 なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
 なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 本発明の画像復号装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
 100 方法
 112 開始ブロック
 114,116,118 機能ブロック
 120 終了ブロック
 1000 画像符号化装置
 1100 符号化処理部
 1110 減算器
 1120 符号化部
 1121 直交変換部
 1122 量子化部
 1123 エントロピー符号化部
 1124,2112 逆量子化部
 1125,2113 逆直交変換部
 1126,2120 加算器
 1130,2130 デブロッキングフィルタ
 1140,2140 フレームメモリ
 1150,2150 面内予測部
 1160 動き検出部
 1170,2160 動き補償部
 1171,2161 参照ブロックメモリ
 1172,2162 フレームメモリ転送制御部
 1173,2163 参照ブロックメモリ転送制御部
 1174,2164 動き補償処理部
 1175,2165 参照ブロックメモリ状態管理部
 1180,2170 スイッチ
 1200 符号化制御部
 2000 画像復号装置
 2100 復号処理部
 2110 復号部
 2111 エントロピー復号部
 2200 復号制御部
 3000 参照画像
 3100,3200,3300,3400 画素ブロック
 3101,3201,3301,3401,3501,3502,3503,3504 画素
 3500 参照ブロック
ex100   コンテンツ供給システム
ex101   インターネット
ex102   インターネットサービスプロバイダ
ex103   ストリーミングサーバ
ex104   電話網
ex106   基地局
ex107   基地局
ex108   基地局
ex109   基地局
ex110   基地局
ex111   コンピュータ
ex112   PDA(Personal Digital Assistant)
ex113   カメラ
ex114   携帯電話
ex115   ゲーム機
ex116   カメラ
ex117   マイク
ex200   デジタル放送用システム
ex201   放送局
ex202   放送衛星
ex203   ケーブル
ex204   アンテナ
ex205   アンテナ
ex210   車
ex211   カーナビゲーション
ex212   再生装置
ex213   モニタ
ex215   記録メディア
ex216   記録メディア
ex217   セットトップボックス(STB)
ex218   リーダ/レコーダ
ex219   モニタ
ex220   復調部
ex230   情報トラック
ex231   記録ブロック
ex232   内周領域
ex233   データ記録領域
ex234   外周領域
ex300   テレビ(受信機)
ex301   チューナ
ex302   変調/復調部
ex303   多重/分離部
ex304   音声信号処理部
ex305   映像信号処理部
ex306   信号処理部
ex307   スピーカ
ex308   表示部
ex309   出力部
ex310   制御部
ex311   電源回路部
ex312   操作入力部
ex313   ブリッジ
ex314   スロット部
ex315   ドライバ
ex316   モデム
ex317   インタフェース部
ex318   バッファ
ex319   バッファ
ex400   情報再生/記録部
ex401   光ヘッド
ex402   変調記録部
ex403   再生復調部
ex404   バッファ
ex405   ディスクモータ
ex406   サーボ制御部
ex407   システム制御部
ex500   LSI
ex502   CPU
ex503   メモリコントローラ
ex505   電源回路部
ex506   ストリームI/O
ex507   信号処理部
ex509   AV I/O
ex510   バス
ex511   メモリ

Claims (10)

  1.  動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う動き補償装置であって、
     前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
     前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
     前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える
     動き補償装置。
  2.  該動き補償装置は、さらに、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備え、
     前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する
     請求項1に記載の動き補償装置。
  3.  前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
     請求項1又は2に記載の動き補償装置。
  4.  前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む1以上の画素ブロックを特定し、特定した前記1以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
     請求項1又は2に記載の動き補償装置。
  5.  該動き補償装置は、さらに、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備え、
     前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送する
     請求項1~4のいずれか1項に記載の動き補償装置。
  6.  符号化ストリームを復号して復号動画像を生成する動画像復号装置であって、
     参照画像を記憶するフレームメモリと、
     請求項1~5のいずれか1項に記載の動き補償装置と、
     前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償装置によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成する復号部とを備え、
     前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
     動画像復号装置。
  7.  動画像を符号化して符号化ストリームを生成する動画像符号化装置であって、
     参照画像を記憶するフレームメモリと、
     請求項1~5のいずれか1項に記載の動き補償装置と、
     前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償装置によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成する符号化部とを備え、
     前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
     動画像符号化装置。
  8.  参照画像のうちの一部を記憶するための参照ブロックメモリを備える動き補償装置が、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う動き補償方法であって、
     前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
     前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含む
     動き補償方法。
  9.  参照画像のうちの一部を記憶するための参照ブロックメモリを備えるコンピュータに、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行なわせるプログラムであって、
     前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
     前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを、コンピュータに実行させる
     プログラム。
  10.  動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う集積回路であって、
     前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
     前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
     前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える
     集積回路。
PCT/JP2011/007139 2011-03-07 2011-12-20 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路 Ceased WO2012120582A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201180015469.7A CN102884794B (zh) 2011-03-07 2011-12-20 运动补偿装置、运动图像编码装置、运动图像解码装置、运动补偿方法、以及集成电路
JP2012530044A JP5857244B2 (ja) 2011-03-07 2011-12-20 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
US13/638,629 US8917763B2 (en) 2011-03-07 2011-12-20 Motion compensation apparatus, video coding apparatus, video decoding apparatus, motion compensation method, program, and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-049638 2011-03-07
JP2011049638 2011-03-07

Publications (1)

Publication Number Publication Date
WO2012120582A1 true WO2012120582A1 (ja) 2012-09-13

Family

ID=46797594

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/007139 Ceased WO2012120582A1 (ja) 2011-03-07 2011-12-20 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路

Country Status (4)

Country Link
US (1) US8917763B2 (ja)
JP (1) JP5857244B2 (ja)
CN (1) CN102884794B (ja)
WO (1) WO2012120582A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016143336A1 (ja) * 2015-03-10 2016-09-15 日本電気株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを記憶する記録媒体
RU2797353C1 (ru) * 2019-06-24 2023-06-02 Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. Способ, аппарат и устройство кодирования и декодирования
US12041266B2 (en) 2019-06-24 2024-07-16 Hangzhou Hikvision Digital Technology Co., Ltd. Encoding and decoding method, apparatus and device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5890794B2 (ja) * 2013-02-28 2016-03-22 株式会社東芝 画像処理装置
CN105206239B (zh) * 2015-10-16 2018-03-30 深圳市华星光电技术有限公司 Mura现象补偿方法
JP2019016065A (ja) * 2017-07-04 2019-01-31 キヤノン株式会社 画像処理装置およびその制御方法
CN116567265B (zh) * 2017-08-22 2025-11-07 松下电器(美国)知识产权公司 图像编码方法、图像解码方法及比特流生成装置
US11695967B2 (en) * 2018-06-22 2023-07-04 Op Solutions, Llc Block level geometric partitioning
JP6958768B2 (ja) * 2019-06-20 2021-11-02 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
CN114303370B (zh) 2019-09-01 2023-11-14 北京字节跳动网络技术有限公司 视频编解码中预测权重的对准
CN114556919B (zh) * 2019-10-10 2025-09-30 北京字节跳动网络技术有限公司 去块滤波的改进

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005277968A (ja) * 2004-03-25 2005-10-06 Matsushita Electric Ind Co Ltd 画像符号化方法および画像復号化方法
WO2005109205A1 (ja) * 2004-04-15 2005-11-17 Matsushita Electric Industrial Co., Ltd. 矩形領域に対するバーストメモリアクセス方法
JP2008271292A (ja) * 2007-04-23 2008-11-06 Nec Electronics Corp 動き補償装置
JP2010258530A (ja) * 2009-04-21 2010-11-11 Fujitsu Ltd 動きベクトル検出装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04180547A (ja) 1990-11-13 1992-06-26 Riken Corp セラミック分散鉄基焼結材料
AU1941797A (en) 1997-03-17 1998-10-12 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
EP1077329A4 (en) 1999-03-05 2006-08-02 Tokyo Electron Ltd VACUUM MACHINE
JP2004218648A (ja) 1999-03-05 2004-08-05 Tadahiro Omi 真空装置
WO2003003749A1 (fr) * 2001-06-29 2003-01-09 Ntt Docomo, Inc. Codeur d'images, decodeur d'images, procede de codage d'images et procede de decodage d'images
US8275047B2 (en) * 2001-09-20 2012-09-25 Xilinx, Inc. Method and device for block-based conditional motion compensation
AU2003280207A1 (en) * 2002-12-20 2004-07-14 Koninklijke Philips Electronics N.V. Segment-based motion estimation
JP4180547B2 (ja) 2004-07-27 2008-11-12 富士通株式会社 動画像データ復号装置、および復号プログラム
KR101108681B1 (ko) * 2005-01-19 2012-01-25 삼성전자주식회사 동영상 코덱에서의 주파수 변환 계수 예측 방법 및 장치,이를 구비한 부호화 및 복호화 장치와 방법
JP4114885B2 (ja) * 2005-10-31 2008-07-09 松下電器産業株式会社 画像符号化装置、方法、及びプログラム
US8238429B2 (en) * 2005-12-02 2012-08-07 Texas Instruments Incorporated Statistically cycle optimized bounding box for high definition video decoding
KR101380580B1 (ko) 2006-08-02 2014-04-02 톰슨 라이센싱 비디오 인코딩을 위한 적응형 기하학적 파티셔닝 방법 및 장치
JP4901450B2 (ja) * 2006-12-19 2012-03-21 株式会社東芝 動画像符号化装置
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
US20110122950A1 (en) * 2009-11-26 2011-05-26 Ji Tianying Video decoder and method for motion compensation for out-of-boundary pixels
US20120300850A1 (en) * 2010-02-02 2012-11-29 Alex Chungku Yie Image encoding/decoding apparatus and method
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
WO2011129067A1 (ja) * 2010-04-13 2011-10-20 パナソニック株式会社 動き補償方法、画像復号方法、画像符号化方法、動き補償装置、プログラム、及び集積回路
DK3661204T3 (da) * 2010-07-20 2021-09-20 Ntt Docomo Inc Billedforudsigelse-afkodningsindretning, billedforudsigelse-afkodningsfremgangsmåde
CA3017317C (en) * 2011-01-12 2019-11-05 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9667942B2 (en) * 2012-11-20 2017-05-30 Qualcomm Incorporated Adaptive luminance compensation in three dimensional video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005277968A (ja) * 2004-03-25 2005-10-06 Matsushita Electric Ind Co Ltd 画像符号化方法および画像復号化方法
WO2005109205A1 (ja) * 2004-04-15 2005-11-17 Matsushita Electric Industrial Co., Ltd. 矩形領域に対するバーストメモリアクセス方法
JP2008271292A (ja) * 2007-04-23 2008-11-06 Nec Electronics Corp 動き補償装置
JP2010258530A (ja) * 2009-04-21 2010-11-11 Fujitsu Ltd 動きベクトル検出装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016143336A1 (ja) * 2015-03-10 2016-09-15 日本電気株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを記憶する記録媒体
RU2797353C1 (ru) * 2019-06-24 2023-06-02 Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. Способ, аппарат и устройство кодирования и декодирования
US12041266B2 (en) 2019-06-24 2024-07-16 Hangzhou Hikvision Digital Technology Co., Ltd. Encoding and decoding method, apparatus and device
RU2852642C2 (ru) * 2019-06-24 2025-12-11 Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. Способ, аппарат и устройство декодирования, электронное устройство декодирования и носитель информации

Also Published As

Publication number Publication date
JP5857244B2 (ja) 2016-02-10
US20130044816A1 (en) 2013-02-21
CN102884794B (zh) 2016-08-10
CN102884794A (zh) 2013-01-16
US8917763B2 (en) 2014-12-23
JPWO2012120582A1 (ja) 2014-07-07

Similar Documents

Publication Publication Date Title
JP5857244B2 (ja) 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
JP6715467B2 (ja) 符号化方法、復号方法、符号化装置、復号装置および符号化復号装置
US9641866B2 (en) Applying partition-based filters
US8718149B2 (en) Image coding method and image decoding method
EP2618579B1 (en) Image decoding device, image encoding device, method for said devices, program, integrated circuit, and transcoder
JP6390883B2 (ja) 画像処理装置
JP5859692B2 (ja) 画像符号化復号化装置
WO2011161949A1 (ja) 画像復号装置、画像復号方法、集積回路およびプログラム
WO2011111341A1 (ja) 動画像復号装置、動画像符号化装置、動画像復号回路及び動画像復号方法
WO2012046435A1 (ja) 画像処理装置、画像符号化方法および画像処理方法
WO2011004577A1 (ja) 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路
WO2011016250A1 (ja) 符号化方法、復号方法、符号化装置及び復号装置
WO2011048764A1 (ja) 復号装置、復号方法、プログラム、及び集積回路
WO2012014461A1 (ja) 符号化方法および復号化方法
JP5546044B2 (ja) 画像復号装置、画像符号化装置、画像復号回路及び画像復号方法
WO2012096194A1 (ja) 画像符号化方法、画像符号化装置、画像復号化方法、画像復号化装置および画像符号化復号化装置
JP5468604B2 (ja) 画像復号装置、集積回路、画像復号方法及び画像復号システム
JP5378520B2 (ja) 動画像復号化装置、動画像復号化方法、動画像復号化システム、集積回路およびプログラム
US20180176602A1 (en) Method for encoding/decoding image and device for same
WO2013076897A1 (ja) 画像処理装置および画像処理方法
JP6996300B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
WO2011089865A1 (ja) 画像符号化方法、画像復号方法、それらの装置、プログラムおよび集積回路
WO2011129052A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
WO2012090478A1 (ja) 動画像符号化方法、および、動画像復号化方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180015469.7

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2012530044

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13638629

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11860660

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11860660

Country of ref document: EP

Kind code of ref document: A1