JPWO2015083300A1 - 動画像符号化装置、動画像符号化方法および動画像符号化用プログラム - Google Patents

動画像符号化装置、動画像符号化方法および動画像符号化用プログラム Download PDF

Info

Publication number
JPWO2015083300A1
JPWO2015083300A1 JP2015551369A JP2015551369A JPWO2015083300A1 JP WO2015083300 A1 JPWO2015083300 A1 JP WO2015083300A1 JP 2015551369 A JP2015551369 A JP 2015551369A JP 2015551369 A JP2015551369 A JP 2015551369A JP WO2015083300 A1 JPWO2015083300 A1 JP WO2015083300A1
Authority
JP
Japan
Prior art keywords
block
motion information
motion
processing
blocks
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
JP2015551369A
Other languages
English (en)
Other versions
JP6344398B2 (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2015083300A1 publication Critical patent/JPWO2015083300A1/ja
Application granted granted Critical
Publication of JP6344398B2 publication Critical patent/JP6344398B2/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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • 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/436Methods 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 using parallelised computational arrangements
    • 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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

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

Abstract

画像を複数のブロックに分割してブロックごとに動きベクトルを含む動き情報を推定する動き推定器(108)に、無依存処理部(124a、124b、124c)、依存処理部(125)、動きベクトルバッファ(126)を備え、無依存処理部(124a、124b、124c)は、並列動作が可能であり、かつ、近傍ブロックの動き情報を用いることなく、参照画像と現画像とにより各ブロックの動きベクトルを探索して、動きベクトルバッファ(126)に記録し、依存処理部(125)は、動きベクトルバッファ(126)に保持された近傍ブロックの動き情報を参照して、処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合、変更した動き情報を動きベクトルバッファ(126)に記録するとともに外部に出力する処理を行う。

Description

本発明は、動画像符号化装置、動画像符号化方法および動画像符号化用プログラムに関し、特に、符号化効率を低下させずに高い並列処理効率で動作する動画像符号化装置、動画像符号化方法および動画像符号化用プログラムに関する。
近年、動画像の解像度向上の要求が年々高まっており、それに伴って、符号化技術に関しても、MPEG(Moving Picture Experts Group)−2、H.264/MPEG−4 AVC(以下H.264と略記する)、H.265/HEVC(High Efficiency Video Coding)(以下H.265と略記する)、と圧縮効率を向上させる技術が次々に開発されてきた。これらの符号化方式は、フレーム間の動き補償予測を用いて情報を圧縮することによって高い符号化効率を達成している。H.265規格に基づいた動画像符号化装置の一例を図19に示す。
図19に示すように、H.265規格に基づく動画像符号化装置は、通常、動き補償予測器001、直交変換器002、量子化器003、符号化器004、逆量子化器005、逆直交変換器006、画面内予測器007、動き推定器008、ループフィルタ009、フレームバッファ010を備えて構成される。なお、非特許文献1のITU−T(International Telecommunication Union Telecommunication Standardization Sector) Recommendation H.265“High efficiency video coding”には、H.265規格に基づく処理内容が詳細に記載されているので、ここでの各構成要素の詳細な説明は割愛する。
H.265規格による動画像符号化処理は、CTB(Coding Tree Brock)と呼ばれる最大64×64画素のブロック単位で行われる。H.265規格における動き補償予測は、次の通りの技術である。入力画像として入力されてくる符号化対象フレームとフレームバッファ010に格納された符号化済みの参照フレームとの間の動き情報を用いて、動き補償予測器001において参照フレームの画像を補正する。そして、補正された画像(予測画像)と符号化対象となる現画像との差分情報であるフレーム間の動きを表す情報のみを符号化することによって、動画像情報を圧縮する。
フレーム間の動きは、移動量を表す動きベクトルによって表現される。参照フレームと符号化対象フレーム間の動き情報を動き推定器008において算出する処理を動き推定と称している。動き推定の処理に当たっては、デコード画像に発生するノイズ量を抑えつつ、符号化する情報量も最小化することができる動き情報を算出することが重要である。このため、近年の動画像符号化装置においては、RD(Rate-Distortion)最適化と呼ばれる手法が広く用いられている。
RD最適化手法においては、多数の動きベクトル候補に対して、J=D+λRで表されるレート歪みコストを算出し、該レート歪みコストが最小になるものを動きベクトルとして採用する。ここで、Dは差分画像に発生する歪み量、Rは動き情報の符号化で発生する符号量、λは画像の複雑さなどに依存する重み係数である。なお、動き情報には、後述する予測ベクトル情報とその動きベクトルとの差分、マージ情報を含む。
空間的・時間的に近傍のブロック同士は、動き情報の相関が高いことから、H.265規格においては、動きベクトルの予測値(予測ベクトル)を近傍の動きベクトルから適応的に選択するAMVP(Adaptive Motion Vector Prediction)や、動き情報を近傍ブロックからコピーするマージモードを用いることによって、動き情報に必要な符号量Rを削減することができる。ここで、近傍ブロックとは、具体的には、図20に示すような符号化対象ブロックの空間近傍ブロック(A0、A1、B0、B1、B2)や時間近傍フレームの同位置ブロックなどであり、マージモードやAMVPに用いるブロックは、近傍ブロックのリストの中からエンコーダが任意に選択することができる。なお、図20は、符号化対象ブロックの空間的な近傍ブロックを説明するための模式図である。
ただし、図20の左下の近傍ブロックA0のCTBは符号化対象CTBよりも後続の処理であるため、近傍ブロックA0の動き情報すなわち処理結果は、CTB内サブブロックの符号化時においてのみ参照される。そこで、以降の説明を簡単にするため、符号化処理対象の各ブロックは、左の近傍ブロックA1・左上の近傍ブロックB2・上の近傍ブロックB1・右上の近傍ブロックB0の各ブロックを参照するものとする。
ここで、近傍ブロックの動き情報は、デコーダにおいて得られる情報と同一であることから、近傍ブロックリストのインデックスのみを符号化することによって動き情報を伝送することができ、符号量Rを削減することができる。動き情報には、マージモードを使用する場合はマージモードであるというフラグと参照ブロックのインデックスのみを含み、それ以外の場合は予測ベクトルで参照するブロックのインデックスと、予測ベクトルと動きベクトルとの差分情報とを含む。
図19に示した動画像符号化装置の動き推定器008の構成例を図21に示す。図21に示す動き推定器008は、動きベクトル探索部020、AMVP選択部021、マージコスト算出部022および動き情報決定部023から構成されている。動きベクトル探索部020は、多数の動きベクトル候補についてブロックマッチングを行ってコストが最小となる暫定動きベクトルを決定する。AMVP選択部021は、動きベクトル符号量Rが最小となるように近傍ブロックの動きベクトルから予測ベクトルを選択する。マージコスト算出部022は、近傍ブロックの動き情報を用いてマージモードのレート歪みコストJを算出する。動き情報決定部023は、最終的な動き情報としてマージモードを用いるか否かを決定する。
マージモードを用いる場合は、近傍ブロックの動きベクトルをコピーしたマージベクトルが符号化対象ブロックの動きベクトルとなり、マージモード以外の場合は、動き探索の結果である暫定動きベクトルがそのまま用いられる。符号化処理対象の或るブロックで決定された動き情報は他のブロックのAMVP選択やマージコスト算出に用いられる。AMVPやマージモードは、符号量削減に大きな効果があり、高符号化効率を得るためには適切に使用することが重要である。
多数のベクトルのコストを比較する動き推定処理は、非常に演算量が多く、高速化が求められる。高速化には、多数のプロセッサコアを持つGPU(Graphic Processing Unit)などのメニ−コアプロセッサを用いた並列処理が特に有望である。
関連する並列処理手法の一つにWPP(Wavefront Parallel Processing)がある。WPPによる並列処理の具体例が、非特許文献2のCheungらによる“Video coding on multicore graphics processors”に記載されている。WPPによる並列処理においては、図22に示すように、符号化対象フレームの各行において一つ上の上行から2ブロックずつ左にずれたブロックを符号化対象ブロックとして並列に処理することによって、左の近傍ブロックや上の近傍ブロックや右上の近傍ブロックの処理結果を参照ブロックとして参照可能としている。ここで、図22は、前記非特許文献2に記載のWPPによる並列処理の具体例を説明するための模式図である。
また、特許文献1の特開2012−175424号公報「符号化処理装置および符号化処理方法」には、画像を複数の領域に分割し、分割された領域の境界に接しているブロックについては、当該ブロックの属する領域内のブロックの情報のみを用いることによって、各領域を並列処理するという技術が記載されている。
特開2012−175424号公報(第9−14頁)
ITU−T Recommendation H.265"High efficiency video coding",Apr.2013. Cheung,Nagai-Man,et al."Video coding on multicore graphics processors",Signal Processing Magazine,IEEE 27.2(2010):79−89.
動画像符号化時の並列処理においては、複数のプロセッサコアそれぞれを十分に稼働させるために多数のタスクを並列に処理可能な状態とすることが重要である。ここで、タスクとは、WPPのような並列処理の場合は各ブロックの処理を指し、前記特許文献1に記載の技術の場合は分割された各領域の処理を指す。複数のプロセッサコアを稼働させるためには、少なくともプロセッサコア数のタスクが必要である。また、各タスクの処理量が異なる場合には、タスク数がより多い方が各プロセッサコアへの処理量の配分を均等にし易い。したがって、GPUのような数千以上のプロセッサコアを持つメニ−コアプロセッサによる並列処理を行う場合には、非常に多くのタスクを並列に処理可能とすることが必要である。
一方、動き推定の処理においては、前述のように、空間的相関性を利用して動き情報を圧縮することから、ブロック間には空間的なデータ依存関係があり、多数のブロックすなわち多数のタスクを並列処理することが難しいという課題がある。WPPによる並列処理の場合は、最大の並列処理数であっても、ブロック行数(4K解像度の場合でも34個)のタスク数しか並列に処理することができない。また、前記特許文献1に記載の技術の場合は、多数の領域(タスク)に分割すると、領域外のブロックを参照することができない、すなわち、マージモードやAMVPを適用することができないブロックが多くなり、符号化効率が低下するという課題がある。
(本発明の目的)
本発明の目的は、前述のような問題を解決し、符号化効率を低下させることなく、多数のタスクを並列処理することが可能な動画像符号化装置、動画像符号化方法および動画像符号化用プログラムを提供することである。
前述の課題を解決するため、本発明による動画像符号化装置、動画像符号化方法および動画像符号化用プログラムは、主に、次のような特徴的な構成を採用している。
(1)本発明による動画像符号化装置は、画像を複数のブロックに分割し、分割されたブロックごとに動きベクトルを含む動き情報を推定する動き推定処理手段を備えた動画像符号化装置であって、
前記動き推定処理手段は、
近傍ブロックの動き情報を用いることなくブロックごとの処理を行う無依存処理手段と、
近傍ブロックの動き情報を用いてブロックごとの処理を行う依存処理手段と、
各ブロックの処理結果である動き情報を保持する動き情報バッファと
を備え、
前記無依存処理手段は、
任意に設定したブロック数ずつ全てのブロックに対して並列に処理することが可能な構成からなるとともに、参照画像と現画像とを入力として、各ブロックの動きベクトルを探索して、前記動き情報バッファに記録する動きベクトル探索手段を含んで構成され、
前記依存処理手段は、
前記動き情報バッファに保持された近傍ブロックの動き情報を参照して、処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合、変更した動き情報を前記動き情報バッファに記録するとともに外部に出力する動作を行う
ことを特徴とする。
(2)本発明による動画像符号化方法は、画像を複数のブロックに分割し、分割されたブロックごとに動きベクトルを含む動き情報を推定する動き推定処理ステップを有する動画像符号化方法であって、
前記動き推定処理ステップとして、
近傍ブロックの動き情報を用いることなくブロックごとの処理を行う無依存処理ステップと、
近傍ブロックの動き情報を用いてブロックごとの処理を行う依存処理ステップと、
各ブロックの処理結果である動き情報を保持する動き情報バッファリングステップと
を有し、
前記無依存処理ステップは、
任意に設定したブロック数ずつ全てのブロックに対して並列に処理することが可能な構成からなるとともに、参照画像と現画像とを入力として、各ブロックの動きベクトルを探索して、前記動き情報バッファリングステップによって保持する動きベクトル探索ステップを有し、
前記依存処理ステップは、
前記動き情報バッファリングステップによって保持された近傍ブロックの動き情報を参照して、処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合、変更した動き情報を前記動き情報バッファに記録するとともに外部に出力する処理を行う
ことを特徴とする。
(3)本発明による動画像符号化用プログラムは、前記(2)に記載の動画像符号化方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
本発明の動画像符号化装置、動画像符号化方法および動画像符号化用プログラムによれば、以下のような効果を奏することができる。
動画像符号化の処理において、符号化効率の低下を抑えつつ、多数のタスクを並列処理することが可能になるので、処理を高速化することができる。
さらに、既存の動画像処理装置に本発明の手法を適用するに当たって、エンコーダへの影響は、参照する近傍ブロックを任意に選択するための選択肢を一部限定するのみであり、デコーダについては変更する必要が一切なく、適用範囲を拡大することができる。
本発明による動画像符号化装置の第1の実施の形態における動き推定器の構成例を示すブロック構成図である。 図1に示した動き推定器における動き推定処理概要の一例を示すフローチャートである。 図1に示した動き推定器の無依存処理部における無依存処理の一例を示すフローチャートである。 図1に示した動き推定器の依存処理部における依存処理の一例を示すフローチャートである。 本発明による動画像符号化装置の第2の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類する例を説明するための模式図である。 本発明による動画像符号化装置の第2の実施の形態における動き推定器の構成例を示すブロック構成図である。 図6に示した動き推定器における動き推定処理概要の一例を示すフローチャートである。 図6に示した動き推定器の第2依存処理部における依存処理の一例を示すフローチャートである。 本発明による動画像符号化装置の第3の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類する一例を説明するための模式図である。 本発明による動画像符号化装置の第3の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類する他の例を説明するための模式図である。 本発明による動画像符号化装置の第3の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類する図9、図10とは異なる例を説明するための模式図である。 本発明による動画像符号化装置の第3の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類するさらに異なる例を説明するための模式図である。 本発明による動画像符号化装置の第4の実施の形態における動き推定器の構成例を示すブロック構成図である。 図13に示した動き推定器における動き推定処理概要の一例を示すフローチャートである。 図13に示した動き推定器の第1依存処理部における依存処理の一例を示すフローチャートである。 本発明による動画像符号化装置の第5の実施の形態における動き推定器における動き推定処理概要の一例を示すフローチャートである。 本発明による動画像符号化装置の第6の実施の形態において符号化対象のブロックを複数種類のブロックに分類する一例を説明するための模式図である。 本発明による動画像符号化装置の第6の実施の形態における動き推定器における動き推定処理概要の一例を示すフローチャートである。 H.265規格に基づいた動画像符号化装置の一例を示すブロック構成図である。 符号化対象ブロックの空間的な近傍ブロックを説明するための模式図である。 図19に示した動画像符号化装置の動き推定器の構成例を示すブロック構成図である。 非特許文献2に記載のWPPによる並列処理の具体例を説明するための模式図である。
以下、本発明による動画像符号化装置、動画像符号化方法および動画像符号化用プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による動画像符号化装置および動画像符号化方法について説明するが、かかる動画像符号化方法をコンピュータにより実行可能な動画像符号化用プログラムとして実施するようにしても良いし、あるいは、動画像符号化用プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。換言すれば、本発明は、ハードウェアの構成に限定されるものではなく、本発明の処理を、CPU(Central Processing Unit)に動画像符号化用プログラムを実行させることにより実現することも可能である。
動画像符号化用プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
また、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことも言うまでもない。
(本発明の特徴)
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、動画像符号化時において、近傍ブロックの処理結果を必須としない処理、つまり、ブロック間依存のない処理である動きベクトル探索などの処理と、近傍ブロックの動き情報を必須とする処理、つまり、ブロック間依存のある処理であるマージコスト算出・AMVP選択などの処理とを分離する。これによって、動き推定の中でも特に演算量が多い動きベクトル探索を高い並列性を有する並列処理とすることを可能にしていることを主要な特徴とする。
[第1の実施の形態]
本第1の実施の形態においては、前述のように、近傍ブロックの処理結果を必須としない処理、つまり、ブロック間依存のない処理である動きベクトル探索処理を少なくとも含む無依存処理と、近傍ブロックの動き情報を必須とする処理、つまり、ブロック間依存のある処理であるマージコスト算出・AMVP選択などの処理を含む依存処理とを分離する。これによって、動き推定の中でも特に演算量が多い動きベクトル探索を高い並列性を有する並列処理とすることを可能にしていることを特徴とする。
(第1の実施の形態の構成の説明)
次に、本発明による動画像符号化装置の構成例として第1の実施の形態の構成について図面を参照して詳細に説明する。第1の実施の形態の動画像符号化装置は、入力画像として入力されてくる符号化対象フレームと符号化済みの参照フレームとの間の動き情報を算出する動き推定器の内部構成を除いて、図19に示したH.265規格準拠の動画像符号化装置における各構成要素と全く同様の構成からなる。すなわち、第1の実施の形態の動画像符号化装置は、動き補償予測器001、直交変換器002、量子化器003、符号化器004、逆量子化器005、逆直交変換器006、画面内予測器007、ループフィルタ009、フレームバッファ010を備える。かつ、この画像符号化装置は、入力画像を複数のブロックに分割し、分割されたブロックごとに動きベクトルを含む動き情報を推定する動き推定処理手段として、動き推定器008の代わりに、動き推定器108を備えて構成される。
本第1の実施の形態における動き推定器108の構成例を図1に示す。動き推定器108は、前述のように、図19に示す動画像符号化装置の動き推定部008を代替することができるものであるが、無依存処理部124a、124b、124c、依存処理部125、動きベクトルバッファ126を少なくとも備えて構成される。図1には、無依存処理部124a、124b、124cの個数を3個とする場合を示しているが、かかる場合に限るものではなく、2個以上の複数個から構成されていれば良い。
無依存処理部124a、124b、124cそれぞれは、近傍にある他のブロック(近傍ブロック)の動き情報を用いることなくブロックごとの処理を行う無依存処理手段である。無依存処理手段は、任意に設定したブロック数ずつ全てのブロックに対して並列に処理することが可能な構成からなっており、図1に示す無依存処理部124a、124b、124cの3つの無依存処理手段からなる構成例においては、3つのブロックごとに並列処理が可能な場合を示している。一方、依存処理部125は、近傍にある他のブロックの動き情報(近傍ブロック)を用いてブロックごとの処理を行う依存処理手段である。また、動きベクトルバッファ126は、各ブロックごとの処理結果である動きベクトルを含む動き情報を保持する動き情報バッファすなわち動き情報保持手段である。
また、無依存処理部124a、124b、124cそれぞれには、動きベクトル探索部120a、120b、120cが含まれて構成されている。動きベクトル探索部120a、120b、120cそれぞれは、参照画像と現画像とを入力として、例えばブロックマッチングにより各ブロックの動きベクトル探索を実施する動きベクトル探索手段である。図1に示す構成例においては、動きベクトル探索部120a、120b、120cの3つの動きベクトル探索手段は、3ブロックの動きベクトル探索を並列に処理することができ、処理結果を各ブロックの暫定動きベクトルとして出力する。動きベクトル探索部120a、120b、120cそれぞれが出力する各ブロックの暫定動きベクトルは動きベクトルバッファ126に保持される。
依存処理部125は、動きベクトルバッファ126に保持された近傍ブロックの動き情報を参照して、符号化処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合には、変更した動き情報を動きベクトルバッファ126に記録する動作を行うものである。依存処理部125は、AMVP選択部121、マージコスト算出部122、動き情報決定部123を少なくとも含んで構成される。AMVP選択部121は、動きベクトルバッファ126に保持された近傍ブロックの動きベクトルから、各ブロックにおける動き情報符号量Rを最小化することができる予測ベクトルを選択し、選択した結果に基づいてAMVPのレート歪みコストJ1を算出してAMVPコストとして出力する予測ベクトル選択手段である。
マージコスト算出部122は、動きベクトルバッファ126に保持された近傍ブロックの動きベクトルから、マージベクトル候補を算出し、さらに、参照画像と現画像とを用いて、各マージベクトル候補のレート歪みコストJ2を算出し、算出したレート歪みコストJ2が最小になるマージベクトル候補を選択し、最小となったレート歪みコストJ2をマージコストとして出力するマージコスト算出手段である。動き情報決定部123は、マージコスト算出部122が算出したマージベクトル候補のレート歪みコストJ2(マージコスト)とAMVP選択部121の算出結果のAMVPのレート歪みコストJ1(AMVPコスト)とを比較した結果に基づいて、符号化処理対象ブロックをマージモードに設定するか否かを決定する動き情報決定手段である。動き情報決定部123は、マージコストがAMVPコストよりも小さければ、当該ブロックをマージモードと決定し、動きベクトルバッファ126の内容をマージモードに更新する。
(第1の実施の形態の動作の説明)
次に、本第1の実施の形態として図1に示した動き推定器108の動作について図2から図4に示すフローチャートを参照しながら詳細に説明する。図2は、図1に示した動き推定器108における動き推定処理概要の一例を示すフローチャートである。図2のフローチャートに示すように、まず、全てのブロックについて並列に無依存処理を行い(ステップS101、ステップS103)、しかる後、全てのブロックについてステップS101の処理結果を用いて依存処理を行う(ステップS102、ステップS104)。
次に、図2のステップS101とステップS102とのそれぞれの動作について、図3のフローチャートと図4のフローチャートとを用いて詳細に説明する。図3は、図1に示した動き推定器108の無依存処理部124a、124b、124cにおける無依存処理(図2のステップS101)の一例を示すフローチャートであり、図4は、図1に示した動き推定器108の依存処理部125における依存処理(図2のステップS102)の一例を示すフローチャートである。
図2のステップS101の無依存処理については、図3のフローチャートに示すように、まず、動きベクトル探索部120a、120b、120cそれぞれが各ブロックの動きベクトル探索を並列に行う(ステップS201)。動きベクトル探索の結果として得られる暫定動きベクトルは、動きベクトルバッファ126に書き込まれる。
次に、図2のステップS102の依存処理の詳細について説明する。依存処理については、図4のフローチャートに示す各ブロックの処理が逐次処理で実行される。各ブロックにおいて、まず、AMVP選択部121が動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルを用いてAMVP候補を列挙し、動き情報符号量Rを最も少なくすることができる予測ベクトルを選択する(ステップS301)。動き情報符号量Rが最も少なくなる予測ベクトルを用いたレート歪みコストJ1がAMVPコストとなる。次に、マージコスト算出部122がマージコストを算出する(ステップS302)。マージコストの算出においては、動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルからマージベクトル候補を列挙し、列挙した各マージベクトル候補のレート歪みコストJ2を算出して、最小となるレート歪みコストJ2(マージコスト)を求める。
次いで、ステップS301およびステップS302それぞれにおいて求めたAMVPコストとマージコストとを動き情報決定部123にて比較する(ステップS303)。動き情報決定部123は、マージコストの方が小さければ(ステップS303のyes)、動き情報としてマージモードであることを設定し(ステップS304)、マージベクトルを当該ブロックの動きベクトルとして動きベクトルバッファ126の内容を更新する(ステップS305)。逆に、AMVPコストの方が小さければ(ステップS303のno)、動き情報決定部123は、動き情報として予測ベクトルを設定する(ステップS306)。つまり、AMVPコストの方が小さい場合は、動きベクトルバッファ126の内容の更新は行われない。
なお、以上の説明においては、依存処理部125における依存処理を逐次的に実施する場合について一例として説明したが、近傍ブロックとの依存制約を守れば、前述したWPPのように、複数の依存処理部を用いて並列処理を行うことも可能である。
(第1の実施の形態の効果の説明)
次に、本第1の実施の形態の効果について説明する。本第1の実施の形態においては、動き推定の中でも演算量の多い動きベクトル探索を、無依存処理として並列に配置した複数個の動きベクトル探索部120a、120b、120cにおいて全ブロックについて並列に処理することができる。これにより、メニーコアプロセッサを用いた場合に、より多くのプロセッサコアを有効に活用することができ、処理時間を短縮することができる。また、動きベクトル探索の結果、近傍ブロックのマージ判定の結果を用いてAMVP選択、マージ選択を行うことができるため、符号化効率の低下を抑えることができる。
[第2の実施の形態]
本第2の実施の形態においては、符号化対象のブロックを2種類に分類し、第1のブロックに対する依存処理を行う場合には、前述した第1の実施の形態と同様に、動きベクトルの更新を行うが、第2のブロックに対する依存処理を行う場合には、動きベクトルの更新を実施しない。これによって、依存処理であるAMVP選択、マージコスト算出も並列処理を行うことを可能にすることを特徴とする。
つまり、本第2の実施の形態においては、全ブロックの無依存処理が終了した後、無依存処理の結果を用いて、第1のブロックに分類したブロックに関する依存処理を行い、続いて、無依存処理の結果と第1のブロックの依存処理の結果とを用いて、第2のブロックに分類したブロックに関する依存処理を行う。
例えば、図5に示すように、互いのブロックの配置関係が左・左上・上・右上のいずれのブロックにもならないブロックからなる第1のブロック051の群とそれ以外の残りのブロックからなる第2のブロック052の群との2つの群に符号化対象画像の全ブロックを分類する。ここで、図5は、第2の実施の形態において符号化対象のブロックを第1のブロックと第2のブロックとに分類する例を説明するための模式図である。図5は、第1のブロック051の群に含まれるブロックの近傍ブロックである、当該ブロックの周辺(上下左右斜め)を囲む合計8個のブロックが、全て第2のブロック052の群に含まれるブロックによって構成されている例を示している。
処理対象のブロックに関する依存処理であるAMVP選択・マージコスト算出の処理に当たっては、当該ブロックの近傍ブロックのうち左・左上・上・右上の各ブロックの動きベクトルを参照する。従って、図5における第1のブロック051は、近傍ブロックのうち第2のブロック052の動きベクトルのみを参照することが分かる。そのため、第1のブロック051の依存処理による動きベクトルの更新は、他の第1のブロック051の依存処理には影響を与えない。よって、第1のブロック051の依存処理は全て並列に実施することができる。さらに、図5における第2のブロック052の依存処理については、動きベクトルを更新しないようにすることによって、近傍ブロックとして第1ブロック051および第2のブロック052の区別なく参照しても、他の第2のブロック052の依存処理に影響を与えることがない。よって、第2のブロック052の依存処理も全て並列に実行することができる。
(第2の実施の形態の構成の説明)
次に、本発明による動画像符号化装置の第2の実施の形態の構成について詳細に説明する。第2の実施の形態の動画像符号化装置についても、第1の実施の形態における動画像符号化装置と同様、動き推定器の内部構成を除いて、図19に示したH.265規格準拠の動画像符号化装置における各構成要素と全く同様の構成からなる。すなわち、第2の実施の形態の動画像符号化装置は、動き補償予測器001、直交変換器002、量子化器003、符号化器004、逆量子化器005、逆直交変換器006、画面内予測器007、ループフィルタ009、フレームバッファ010を備え、かつ、動き推定器008の代わりに動き推定器208を備えて構成される。
本第2の実施の形態における動き推定器208の構成例を図6に示す。動き推定器208は、無依存処理部124a、124b、124c、第1依存処理部227a、227b、第2依存処理部228a、228b、動きベクトルバッファ126を少なくとも備えて構成される。無依存処理部124a、124b、124cおよび動きベクトルバッファ126は第1の実施の形態として図1に示した動き推定器108と全く同様であり、以下では、図1に示した動き推定器108の依存処理部125とは異なる構成要素である第1依存処理部227a、227b、第2依存処理部228a、228bについて説明する。
つまり、図6に示す動き推定器208は、図1に示した動き推定器108の依存処理部125の代わりに、第1のブロック051の依存処理を行う第1依存処理部227a、227bと第2のブロック052の依存処理を行う第2依存処理部228a、228bとを配置して構成される。なお、図6には、第1依存処理部227a、227b、第2依存処理部228a、228bそれぞれの個数を2個ずつ備えた場合を示しているが、かかる場合に限るものではなく、それぞれが任意の個数であって良い。第1依存処理部227a、227b、第2依存処理部228a、228bそれぞれの内部構成は、図1の依存処理部125の場合と同様、AMVP選択部121、マージコスト算出部122、動き情報決定部123を少なくとも含んでそれぞれ構成されている。
第1依存処理部227a、227b(第1依存処理手段)における第1依存処理と第2依存処理部228a、228b(第2依存処理手段)における第2依存処理とは、無依存処理部124a、124b、124cにおける無依存処理の結果である動きベクトルを変更することが可能であるか否かが異なっている。第1依存処理部227a、227bにおける第1依存処理は、動きベクトルバッファ126に保持された近傍ブロックの動き情報の参照結果に基づいて、処理対象のブロックの動き情報を更新して動きベクトルバッファ126に記録するとともに外部に出力する際に、当該処理対象のブロックの動き情報のうち動きベクトルをも含んで更新することができる。そのため、第1依存処理では、無依存処理部124a、124b、124cにおける動きベクトル探索の結果とは異なる動きベクトルを動き情報として出力することができる。一方、第2依存処理部228a、228bにおける第2依存処理は、動きベクトルバッファ126に保持された近傍ブロックの動き情報の参照結果に基づいて、処理対象のブロックの動き情報を更新して動きベクトルバッファ126に記録するとともに外部に出力する際に、当該処理対象のブロックの動き情報のうち動きベクトルについては更新しない。そのため、第2依存処理では、無依存処理部124a、124b、124cにおける動きベクトル探索の結果と同一の動きベクトルを動き情報として出力する。
(第2の実施の形態の動作の説明)
次に、本第2の実施の形態として図6に示した動き推定器208の動作について図7に示すフローチャートを参照しながら詳細に説明する。図7は、図6に示した動き推定器208における動き推定処理概要の一例を示すフローチャートである。図7のフローチャートに示すように、まず、図2のフローチャートのステップS101、S103と同様、全てのブロックについて並列に無依存処理を行い(ステップS401、ステップS403)、しかる後、全ての第1のブロック051についてステップS401の処理結果を用いて第1依存処理を行う(ステップS402、ステップS404)。
次いで、第1のブロックに関する第1依存処理を全て終了すると(ステップS404のyes)、全ての第2のブロック052について第2依存処理を行う(ステップS405、S406)。第2のブロック052に関する第2依存処理を全て終了すると(ステップS406のyes)、動き推定処理が完了になる。ここで、ステップS402の第1依存処理とステップS405の第2依存処理とのそれぞれは、複数個配置されている第1依存処理部227a、227b、第2依存処理部228a、228bそれぞれを用いて、複数個のブロックを並列に処理することができる。
第1依存処理部227a、227bの第1依存処理については、第1の実施の形態として図4に示した依存処理のフローチャートと全く同一の動作を全てのブロックではなく第1のブロック051に対して行う。ただし、第1のブロック051の処理において近傍ブロックとして参照されるブロックは、図5に例示したように、動き情報の変更がない第2のブロック052のみであり、第1依存処理部227a、227bは、並列に動作することが可能である。
次に、図7のステップS405の第2依存処理の動作について、図8のフローチャートを用いて詳細に説明する。図8は、図6に示した動き推定器208の第2依存処理部228a、228bにおける第2依存処理(図7のステップS405)の一例を示すフローチャートである。なお、前述のように、第2依存処理部228a、228bそれぞれにおける第2依存処理においては第2のブロック052に関する依存処理を行う。
各第2のブロックについて、まず、AMVP選択部121が、第1の実施の形態として図4に示したステップS301の場合と同様、動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルを用いてAMVP候補を列挙し、動き情報符号量Rを最も少なくすることができる予測ベクトルを選択する(ステップS501)。動き情報符号量Rが最も少なくなる予測ベクトルを用いたレート歪みコストJ1がAMVPコストとなる。
次に、マージコスト算出部122は、動きベクトルバッファ126に保持されている該当の第2のブロック052の暫定動きベクトルが、マージモードにおけるマージベクトルと同一であるか否かを判断する(ステップS502)。当該第2のブロック052の暫定動きベクトルがマージベクトルと同一であった場合には(ステップS502のyes)、マージコストを算出する(ステップS503)。マージコストの算出においては、第1の実施の形態として図4に示したステップS302の場合と同様、動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルからマージベクトル候補を列挙し、列挙した各マージベクトル候補のレート歪みコストJ2を算出して、最小となるレート歪みコストJ2(マージコスト)を求める。
次いで、ステップS501およびステップS503それぞれにおいて求めたAMVPコストとマージコストとを動き情報決定部123にて比較して(ステップS504)、マージコストの方が小さければ(ステップS504のyes)、第1の実施の形態として図4に示したステップS304の場合と同様、動き情報としてマージモードであることを設定する(ステップS505)。ただし、第1の実施の形態の図4の場合とは異なり、第2のブロック052における第2依存処理の結果は他のブロックから参照されないため、動きベクトルバッファ126を更新する処理は行わない。
また、ステップS502において、当該第2のブロック052の暫定動きベクトルがマージベクトルと同一ではなかった場合には(ステップS502のno)、ステップS504においてAMVPコストの方が小さかった場合(ステップS504のno)と同様、マージコストは算出されず、動き情報にマージモードが設定されることはない。さらに、暫定動きベクトルから変更することもないので、動きベクトルバッファ126に対する動きベクトルの更新も行われない。つまり、第1の実施の形態として図4に示したステップS306の場合と同様、動き情報として予測ベクトルを設定する動作のみを行う(ステップS507)。
(第2の実施の形態の効果の説明)
本第2の実施の形態においては、符号化対象のブロックを第1のブロック051と第2のブロック052との2種類のブロックに分類して、それぞれ、複数個配置した第1依存処理部227a、227bと、第2依存処理部228a、228bとにより、並列に処理する。これにより、無依存処理のみならず、依存処理も並列に処理することが可能になり、処理時間を第1の実施の形態の場合よりも短縮することができる。
[第3の実施の形態]
H.265規格においては、前述のように、動画像符号化装置(エンコーダ)が、マージモード判定・AMVP(予測ベクトル)選択に用いる近傍ブロックを候補内から任意に選択することができる。そのため、第1のブロック群において参照するブロックを一部制限することによって、並列処理を可能としながら、マージモードによる動きベクトルの変更が可能な第1のブロックの個数を増加することができる。つまり、例えば、第2の実施の形態として図6に示した動き推定器208の第1依存処理部227a、227bの第1依存処理手段は、処理対象のブロックの近傍ブロックとして、図5に例示したような第2のブロック052の群に含まれるブロックのみを任意に選択して参照するように設定して、第1のブロック051の群に含まれるブロックの処理を並列に行う構成とする。これによって、第1のブロック051に含まれるブロックの個数を増加させることができる。
例えば、マージモード判定・AMVP選択において、参照を制限するブロックとして、第1のブロック051のそれぞれにおける左上ブロックの参照を禁止することにより、第1のブロック051と第2のブロック052とを図9に示すように設定することも可能である。ここで、図9は、第3の実施の形態において符号化対象のブロックを第1のブロック051と第2のブロック052とに分類する一例を説明するための模式図である。図9に示すように、第1のブロック051の参照ブロックは、左上のブロックを除くと第2のブロック052のみとなる。これにより、第2の実施の形態における図5の場合に比して、第1のブロック051の個数を増加させることができる。
さらに、第1のブロック051の群において、左上に加えて、右上のブロックの参照も禁止することにより、図10に示すように第1のブロック051と第2のブロック052とを設定することもできる。あるいは、第1のブロック051の群において、左ブロックの参照を禁止することによって、図11に示すように第1のブロック051と第2のブロック052とを設定することもできる。また、図12に示すように第1のブロック051と第2のブロック052とを設定して、第1のブロック051の一部については左上・上・右上のブロックの参照を禁止、他の一部については左・左上・右上のブロックの参照を禁止、さらに他の一部については左・上のブロックの参照を禁止というように、第1のブロック051ごとに参照を禁止するブロックを変更することもできる。
なお、本第3の実施の形態における動画像符号化装置の構成や動作については、第2の実施の形態の場合と同様であり、動き推定処理を行う動き推定器も図6に示した動き推定器208と同様の構成を用いて構わない。ただし、本第3の実施の形態においては、第2のブロック052に関するAMVP選択・マージコスト算出の処理において、第2の実施の形態の場合とは異なり、近傍ブロックのうち参照禁止ブロックとしてあらかじめ設定された特定のブロックを参照することはない。ここで、特定のブロックとは、例えば図9に示した第1のブロック051、第2のブロック052の分類例の場合について説明すると、第1のブロック051の左上のブロックを意味している。
(第3の実施の形態の効果の説明)
本第3の実施の形態においては、第1のブロック051が近傍ブロックに関して参照することが可能なブロックに制限を設定することによって、第2の実施の形態の場合に比べて、マージモード判定により動きベクトルを変更することができるブロック(第1のブロック051)の個数を増加することが可能になる。このため、符号化効率を向上することができる。また、第1のブロック051、第2のブロック052のいずれも並列処理が可能であるため、処理時間の増加を抑えることができる。
[第4の実施の形態]
本第4の実施の形態においては、第2・第3の実施の形態における第1のブロック051のみならず、第2のブロック052についても、参照可能なブロックを制限することにより、第1のブロック051と第2のブロック052とをさらに並列に処理することを可能とすることを特徴とする。つまり、本第4の実施の形態においては、第2のブロック052を処理する第2依存処理において、第1のブロック051の参照を禁止し、動きベクトルが変化しない第2のブロック052のみの参照を許可するようにする。例えば、図10に示したブロック分類例の場合、第2のブロック052を処理する第2依存処理においては、第2のブロック052すなわち動きベクトルが変化しない左上と右上のブロックのみを参照可能とする。
(第4の実施の形態の構成の説明)
本第4の実施の形態の動画像符号化装置についても、第1の実施の形態における動画像符号化装置と同様、動き推定器の内部構成を除いて、図19に示したH.265規格準拠の動画像符号化装置における各構成要素と全く同様の構成からなる。すなわち、第4の実施の形態の動画像符号化装置は、動き補償予測器001、直交変換器002、量子化器003、符号化器004、逆量子化器005、逆直交変換器006、画面内予測器007、ループフィルタ009、フレームバッファ010を備え、かつ、動き推定器008の代わりに動き推定器308を備えて構成される。
本第4の実施の形態における動き推定器308の構成例を図13に示す。動き推定器308は、第2の実施形態として図6に示した動き推定器208の場合と同様の機能をそれぞれに有する無依存処理部124a、124b、124c、第2依存処理部228a、228bおよび動きベクトルバッファ126を備える。さらに、動き推定器308は、図6に示した動き推定器208の場合の第1依存処理部227a、227bとは異なる動作を行う第1依存処理部327a、327bを少なくとも備えて構成される。ここで、第1依存処理部327a、327bの第1依存処理手段は、処理対象のブロックを処理する際に、図6における第1依存処理部227a、227bの場合と同様、近傍ブロックのうち第2のブロック052の群に含まれるブロックのみを参照して、第1のブロック051の群に含まれる各ブロックを並列に処理する動作を行う。一方、第2依存処理部228a、228bの第2依存処理手段は、処理対象のブロックを処理する際に、図6における第2依存処理部228a、228bの場合とは異なり、近傍ブロックのうち第2のブロック052の群に含まれるブロックを参照して、第2のブロック052の群に含まれる各ブロックを並列に処理する動作を行う。而して、第1依存処理部327a、327bの第1依存処理手段と第2依存処理部228a、228bの第2依存処理手段とが並列に動作することを可能にしている。
(第4の実施の形態の動作の説明)
次に、本第4の実施の形態として図13に示した動き推定器308の動作について図14に示すフローチャートを参照しながら詳細に説明する。図14は、図13に示した動き推定器308における動き推定処理概要の一例を示すフローチャートである。図14のフローチャートに示すように、まず、図2のフローチャートのステップS101、S103と同様、全てのブロックについて並列に無依存処理を行う(ステップS701、ステップS703)。しかる後、全ての第1のブロック051についてステップS101の処理結果を用いて第1依存処理を行うとともに(ステップS702、ステップS704)、並行して、全ての第2のブロック052について図7のフローチャートのステップS401、S406と同様の第2依存処理を行う(ステップS705、ステップS706)。ただし、ステップS705の第2依存処理において、近傍ブロックとして参照されるブロックは、前述のように、第2ブロック052の群に含まれるブロックのみに制限されている。
つまり、無依存処理および第2依存処理における動作は、第2依存処理の参照ブロックが第2のブロック052のみに制限されている以外は、第2の実施の形態として図8に示した処理と全く同一である。しかし、第1依存処理における動作は、第1のブロック051に関する第1依存処理の結果が他のブロックからは参照されることがない。そのため、第2の実施の形態として図8に示した処理とは異なり、動きベクトルバッファ126を更新する必要はない。
次に、図14のステップS702の第1依存処理の動作について、図15のフローチャートを用いて詳細に説明する。図15は、図13に示した動き推定器308の第1依存処理部327a、327bにおける第1依存処理(図14のステップS702)の一例を示すフローチャートである。第1依存処理部327a、327bそれぞれにおける第1依存処理においては、前述のように、第1のブロック051に関する依存処理を行う。
各第1のブロックについて、まず、AMVP選択部121が、第1の実施の形態として図4に示したステップS301の場合と同様、動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルを用いてAMVP候補を列挙し、動き情報符号量Rを最も少なくすることができる予測ベクトルを選択する(ステップS801)。動き情報符号量Rが最も少なくなる予測ベクトルを用いたレート歪みコストJ1がAMVPコストとなる。
次に、マージコスト算出部122が、マージコストを算出する(ステップS802)。マージコストの算出においては、第1の実施の形態として図4に示したステップS302の場合と同様、動きベクトルバッファ126に保持されている近傍ブロックの動きベクトルからマージベクトル候補を列挙し、列挙した各マージベクトル候補のレート歪みコストを算出して、最小となるレート歪みコストJ2(マージコスト)を求める。
次いで、ステップS801およびステップS802それぞれにおいて求めたAMVPコストとマージコストとを動き情報決定部123にて比較する(ステップS803)。動き情報決定部123は、マージコストの方が小さければ(ステップS803のyes)、第1の実施の形態として図4に示したステップS304の場合と同様、動き情報としてマージモードであることを設定する(ステップS804)。ただし、第1の実施の形態とは異なり、第1のブロック051における第1依存処理の結果は他のブロックから参照されないため、動きベクトルバッファ126を更新する必要はない。
また、ステップS803においてAMVPコストの方が小さかった場合(ステップS803のno)には、第1の実施の形態として図4に示したステップS306の場合と同様、動き情報として予測ベクトルを設定する(ステップS805)。
以上のように、本第4の実施の形態においては、第2のブロック052に対する第2依存処理の動作は、近傍ブロックとしての参照ブロックに制限がある以外は、第2の実施の形態として図8のフローチャートに示した場合と全く同一である。しかし、第1のブロック051に対する第1依存処理の動作は、第2の実施の形態として図8のフローチャートに示した場合とは異なり、第1のブロック051に対する第1依存処理の結果が他のブロックからは参照されることがない。そのため、図13のブロック構成図、図15のフローチャートに示したように、第1依存処理結果によって動きベクトルバッファ126の内容を更新する必要がない。また、図14のフローチャートに示したように、本第4の実施の形態においては、第1依存処理と第2依存処理とを並列に実行することが可能である。
(第4の実施の形態の効果の説明)
本第4の実施の形態においては、第1のブロックと第2のブロックとのそれぞれの依存処理を並列に処理することが可能となるため、第1・第2・第3の実施の形態の場合と比較して、処理時間をさらに短縮することができる。
[第5の実施の形態]
本第5の実施の形態においては、第2・第3の実施の形態の場合に加えて、第1のブロックのみならず、第2のブロックについても、動きベクトルを変更可能とし、さらに、第2のブロックの依存処理結果を参照して、再び、第1のブロックの依存処理を実行することを特徴としている。なお、本第5の実施の形態における動き推定器の構成例は、第2の実施の形態として図6に示した動き推定器208と全く同一の構成で構わない。
(第5の実施の形態の動作の説明)
本第5の実施の形態における動き推定器208の動作概要の一例を図16のフローチャートに示す。図16のフローチャートに示すように、まず、図2のフローチャートのステップS101、S103と同様、全てのブロックについて並列に無依存処理を行い(ステップS901、ステップS903)、しかる後、全ての第1のブロック051について動きベクトルの変更が可能な第1依存処理を並列に行う(ステップS902、ステップS904)。ここで、ステップS902においては、近傍ブロックとして第1のブロック051と第2のブロック052との両方の動きベクトルを参照可能とする。なお、第1のブロック051の動きベクトルは、ステップS902の結果ではなく、ステップS901における無依存処理の結果を用いる。
次いで、第1のブロックに関する第1依存処理を全て終了すると(ステップS904のyes)、全ての第2のブロック052について、動きベクトルを変更しない第2依存処理ではなく、動きベクトルの変更が可能な第1依存処理を並列に行う(ステップS905、S906)。ここで、ステップS905においては、近傍ブロックとして、ステップS902の第1のブロック051に関する第1依存処理の処理結果である動きベクトルのみを用いる。しかる後、再度、全ての第1のブロック051に関する処理に戻り、第1のブロック051について、第1のブロック051に関するステップS902の処理結果と第2のブロック051に関するステップS905の処理結果とを参照して、第2依存処理を行う(ステップS907、ステップS908)。すなわち、ステップS907においては、全ての第1のブロック051に関し、第1依存処理ではなく、第2依存処理を行うこととし、第1のブロック051に関する動きベクトルの変更は行わない。
第1のブロック052に関する第2依存処理を全て終了すると(ステップS908のyes)、動き推定処理が完了になる。なお、図16のフローチャートにおいては、第1のブロック051・第2のブロック052に関する第1依存処理を1回行った後、第1のブロックに関する第2依存処理を行う場合を例示したが、かくのごとき処理の繰り返し回数をさらに増やして繰り返すようにしても良い。
(第5の実施の形態の効果の説明)
本第5の実施の形態においては、第1のブロック051、第2のブロック052のいずれに対しても、少なくとも一度は動きベクトルを変更することを可能とすることによって、第2・第3の実施の形態の場合に比して、符号化効率をさらに向上させることができる。
[第6の実施の形態]
本第6の実施の形態においては、図17に示すように、符号化対象のブロックを、第2ないし第5の実施の形態の場合のように、2種類のみのブロックに分類するのではなく、3種類以上のブロックに分類することを特徴とする。ここで、図17は、第6の実施の形態において符号化対象のブロックを複数種類のブロックに分類する一例を説明するための模式図であり、図17においては、第1のブロック051、第2のブロック052、第3のブロック053の3種類に分類した場合を例示している。なお、本第6の実施の形態における動き推定器の構成例は、第2の実施の形態として図6に示した動き推定器208と全く同一の構成であっても構わない。例えば図6に示した動き推定器208を用いる場合には、第1依存処理部227a、227bが、第1のブロック051と第2のブロック052とに関する依存処理を行い、第2依存処理部228a、228bが、第3のブロック053に関する依存処理を行うようにすれば良い。
(第6の実施の形態の動作の説明)
本第6の実施の形態における動き推定器208の動作概要の一例を図18のフローチャートに示す。図18のフローチャートに示すように、まず、図2のフローチャートのステップS101、S103と同様、全てのブロックについて並列に無依存処理を行い(ステップS1001、ステップS1003)、しかる後、全ての第1のブロック051について動きベクトルの変更が可能な第1依存処理を行う(ステップS1002、ステップS1004)。ここで、ステップS1002においては、第3のブロック053を参照して、第1のブロック051の第1依存処理を行う。
次いで、第1のブロックに関する第1依存処理を全て終了すると(ステップS1004のyes)、全ての第2のブロック052について動きベクトルの変更が可能な第1依存処理を行う(ステップS1005、S1006)。ここで、ステップS1005においては、第1のブロック051および第3のブロック053を参照して、第2のブロック052の第1依存処理を行う。
しかる後、全ての第3のブロック053について動きベクトルの変更を行わない第2依存処理を行う(ステップS1007、S1008)。ここで、ステップ1007においては、第1のブロック051、第2のブロック052および第3のブロック053を参照して、第3のブロック053の第2依存処理を行う。なお、図17の模式図および図18のフローチャートにおいては、第1のブロック051・第2のブロック052・第3のブロック053の3種類に分類した例を示したが、前述のように、かくのごとき分類数に限るものではなく、分類数をさらに増やしても同様の処理を行うことができる。
(第6の実施の形態の効果の説明)
本第6の実施の形態においては、第2ないし第5の実施の形態の場合に比して、動きベクトルを変更可能とするブロック数を増加することができるため、第2ないし第5の実施の形態の場合よりも符号化効率をさらに向上させることができる。
(その他の実施の形態)
前述したAMVP選択処理においては、動き情報の符号化コストのみを算出して動きベクトルとの差分が最も小さい近傍ブロックのベクトルを選択する場合について説明したが、さらに、予測ベクトル周辺の候補ベクトルについて改めてレート歪みコストを計算し直すことにすれば、符号化効率の向上を見込むことができる。また、かくのごとき処理を繰り返すことにより、すなわち、近傍ブロックのベクトルを使用した動きベクトル探索を複数回繰り返す処理を行うことにより、さらに符号化効率を向上させることが可能である。
また、動きベクトルバッファ126に保持するデータとして動きベクトルのみを対象として示しているが、符号化モード情報等の他の情報をさらに加えて保持するようにしても良い。かくのごとき多彩な情報を用いることにより、RDコストの精度をさらに上げて、符号化効率を向上させることが可能になる。
また、前述した各実施の形態においては、依存処理の例として、H.265規格に準拠のコーデックにおけるAMVP選択処理とマージモード判定処理とを示したが、例えばH.264規格準拠のコーデックにおいては、さらに、スキップモード判定処理が依存処理の対象となる。
本発明によれば、符号化効率を保ちつつ高性能の並列処理が可能であるので、高解像度映像の高速処理を実現することができ、本発明を高解像度処理が要求される撮像システムやトランスコードシステムなどに有用に適用することができる。
以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
この出願は、2013年12月4日に出願された日本出願特願2013−250926を基礎とする優先権を主張し、その開示の全てをここに取り込む。
001 動き補償予測器
002 直交変換器
003 量子化器
004 符号化器
005 逆量子化器
006 逆直交変換器
007 画面内予測器
008 動き推定器
009 ループフィルタ
010 フレームバッファ
020 動きベクトル探索部
021 AMVP選択部
022 マージコスト算出部
023 動き情報決定部
051 第1のブロック
052 第2のブロック
053 第3のブロック
108 動き推定器
120a 動きベクトル探索部
120b 動きベクトル探索部
120c 動きベクトル探索部
121 AMVP選択部
122 マージコスト算出部
123 動き情報決定部
124a 無依存処理部
124b 無依存処理部
124c 無依存処理部
125 依存処理部
126 動きベクトルバッファ
208 動き推定器
227a 第1依存処理部
227b 第1依存処理部
228a 第2依存処理部
228b 第2依存処理部
308 動き推定器
327a 第1依存処理部
327b 第1依存処理部

Claims (10)

  1. 画像を複数のブロックに分割し、分割されたブロックごとに動きベクトルを含む動き情報を推定する動き推定処理手段を備えた動画像符号化装置であって、
    前記動き推定処理手段は、
    近傍ブロックの動き情報を用いることなくブロックごとの処理を行う無依存処理手段と、
    近傍ブロックの動き情報を用いてブロックごとの処理を行う依存処理手段と、
    各ブロックの処理結果である動き情報を保持する動き情報バッファと
    を備え、
    前記無依存処理手段は、
    任意に設定したブロック数ずつ全てのブロックに対して並列に処理することが可能な構成からなるとともに、参照画像と現画像とを入力として、各ブロックの動きベクトルを探索して、前記動き情報バッファに記録する動きベクトル探索手段を含んで構成され、
    前記依存処理手段は、
    前記動き情報バッファに保持された近傍ブロックの動き情報を参照して、処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合、変更した動き情報を前記動き情報バッファに記録するとともに外部に出力する動作を行う
    ことを特徴とする動画像符号化装置。
  2. 前記依存処理手段は、
    前記動き情報バッファに保持された近傍ブロックの動き情報を参照し、参照結果に基づいて、処理対象のブロックの動き情報を更新して前記動き情報バッファに記録するとともに外部に出力する際に、前記処理対象のブロックの動き情報のうち動きベクトルをも含んで更新することができる第1依存処理手段と、
    前記動き情報バッファに保持された近傍ブロックの動き情報を参照し、参照結果に基づいて、処理対象のブロックの動き情報を更新して前記動き情報バッファに記録するとともに外部に出力する際に、前記処理対象のブロックの動き情報のうち動きベクトルについては更新しない第2依存処理手段と
    を備えることを特徴とする請求項1に記載の動画像符号化装置。
  3. 前記動き推定処理手段の処理対象画像の全ブロックを第1のブロック群と第2のブロック群とに分類し、
    前記第1依存処理手段は、処理対象のブロックを処理する際に、近傍ブロックのうち前記第2のブロック群に含まれるブロックのみを参照して、前記第1のブロック群に含まれる各ブロックを並列に処理する動作を行い、
    前記第2依存処理手段は、処理対象のブロックを処理する際に、近傍ブロックのうち前記第1のブロック群と前記第2のブロック群とに含まれるブロックを参照して、前記第2のブロック群に含まれる各ブロックを並列に処理する動作を行う
    ことを特徴とする請求項2に記載の動画像符号化装置。
  4. 前記第1依存処理手段は、
    前記第1のブロック群に含まれるブロックの近傍ブロックとして当該ブロックの周辺を囲む8個のブロックが全て前記第2のブロック群に含まれるブロックからなっているように分類される場合には、処理対象のブロックの近傍ブロックとして当該ブロックの周辺を囲む前記第2のブロック群に含まれるブロックのみを選択して参照するか、
    または、
    前記第1のブロック群に含まれるブロックの近傍ブロックとして当該ブロックの周辺を囲む8個のブロックが全て前記第2のブロック群に含まれるブロックからなっているように分類されるか否かに関わらず、処理対象のブロックの近傍ブロックとして前記第2のブロック群に含まれるブロックのみを任意に選択して参照する
    ことを特徴とする請求項3に記載の動画像符号化装置。
  5. 前記動き推定処理手段の処理対象画像の全ブロックを第1のブロック群と第2のブロック群とに分類し、
    前記第1依存処理手段は、処理対象のブロックを処理する際に、近傍ブロックのうち前記第2のブロック群に含まれるブロックを参照して、前記第1のブロック群に含まれる各ブロックを並列に処理する動作を行い、
    前記第2依存処理手段は、処理対象のブロックを処理する際に、近傍ブロックのうち前記第2のブロック群に含まれるブロックを参照して、前記第2のブロック群に含まれる各ブロックを並列に処理する動作を行う
    ことにより、前記第1依存処理手段と前記第2依存処理手段とが並列に動作することを特徴とする請求項2に記載の動画像符号化装置。
  6. 前記動き推定処理手段の処理対象画像の全ブロックを第1のブロック群と第2のブロック群とに分類し、
    前記第1依存処理手段は、処理対象のブロックを処理する際に、近傍ブロックのうち前記第1のブロック群と前記第2のブロック群とに含まれるブロックを参照して、前記第1のブロック群に含まれる各ブロックを並列に処理する動作を行った後、さらに、近傍ブロックのうち前記第1のブロック群に含まれるブロックを参照して、前記第2のブロック群に含まれる各ブロックを並列に処理する動作を行い、
    しかる後、前記第2依存処理手段が、処理対象のブロックを処理する際に、近傍ブロックのうち前記第1のブロック群と前記第2のブロック群とに含まれるブロックを参照して、前記第1のブロック群に含まれる各ブロックを並列に処理する動作を行う
    ことを特徴とする請求項2に記載の動画像符号化装置。
  7. 前記依存処理手段は、
    前記動きベクトルバッファに保持された近傍ブロックの動きベクトルから各ブロックにおける動き情報符号量を最小化することができる予測ベクトルを選択し、選択結果に基づいて、レート歪みコストを算出してAMVP(Adaptive Motion Vector Prediction)コストとして出力する予測ベクトル選択処理手段と、
    前記動きベクトルバッファに保持された近傍ブロックの動きベクトルから得られるマージベクトル候補それぞれのレート歪みコストを算出し、最小となるレート歪みコストをマージコストとして出力するマージコスト算出手段と、
    前記マージコストと前記AMVPコストとの比較結果に基づいて、処理対象のブロックをマージモードとするか否かを決定する動き情報決定手段と
    を含んで構成されていることを特徴とする請求項1ないし6のいずれかに記載の動画像符号化装置。
  8. 画像を複数のブロックに分割し、分割されたブロックごとに動きベクトルを含む動き情報を推定する動画像符号化方法であって、
    前記動き情報の推定は、
    近傍ブロックの動き情報を用いることなくブロックごとの処理を行うこと、
    近傍ブロックの動き情報を用いてブロックごとの処理を行うこと、
    各ブロックの処理結果である動き情報を保持すること、
    を有し、
    前記近傍ブロックの動き情報を用いることなくブロックごとの処理を行うことにおいては、
    任意に設定したブロック数ずつ全てのブロックに対して並列に処理することが可能な構成からなるとともに、参照画像と現画像とを入力として、各ブロックの動きベクトルを探索して、前記動き情報を保持することにより保持し、
    前記近傍ブロックの動き情報を用いてブロックごとの処理を行うことにおいては、
    前記各ブロックの処理結果である前記動き情報を保持することによって保持された近傍ブロックの動き情報を参照して、処理対象のブロックの動き情報の変更の是非を判定し、動き情報を変更する必要があると判定した場合、変更した動き情報を前記動き情報バッファに記録するとともに外部に出力する処理を行う
    ことを特徴とする動画像符号化方法。
  9. 前記近傍ブロックの動き情報を用いてブロックごとの処理を行うことは、
    前記動き情報バッファに保持された近傍ブロックの動き情報を参照し、参照結果に基づいて、処理対象のブロックの動き情報を更新して前記動き情報バッファに記録するとともに外部に出力する際に、前記処理対象のブロックの動き情報のうち動きベクトルをも含んで更新可能とし、
    前記動き情報バッファに保持された近傍ブロックの動き情報を参照し、参照結果に基づいて、処理対象のブロックの動き情報を更新して前記動き情報バッファに記録するとともに外部に出力する際に、前記処理対象のブロックの動き情報のうち動きベクトルについては更新しないこと
    を有することを特徴とする請求項8に記載の動画像符号化方法。
  10. 請求項8または9のいずれかに記載の動画像符号化方法を、コンピュータによって実行せしめる動画像符号化用プログラムが格納された非一時的なコンピュータ可読媒体。
JP2015551369A 2013-12-04 2014-05-26 動画像符号化装置、動画像符号化方法および動画像符号化用プログラム Expired - Fee Related JP6344398B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013250926 2013-12-04
JP2013250926 2013-12-04
PCT/JP2014/002745 WO2015083300A1 (ja) 2013-12-04 2014-05-26 動画像符号化装置、動画像符号化方法および非一時的なコンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JPWO2015083300A1 true JPWO2015083300A1 (ja) 2017-03-16
JP6344398B2 JP6344398B2 (ja) 2018-06-20

Family

ID=53273092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015551369A Expired - Fee Related JP6344398B2 (ja) 2013-12-04 2014-05-26 動画像符号化装置、動画像符号化方法および動画像符号化用プログラム

Country Status (3)

Country Link
US (1) US10136154B2 (ja)
JP (1) JP6344398B2 (ja)
WO (1) WO2015083300A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160014415A1 (en) * 2014-07-08 2016-01-14 Mediatek Inc. Method and apparatus for performing wave-front parallel encoding procedure with constraint on coding mode and/or quantization parameter selection
GB2539211A (en) * 2015-06-08 2016-12-14 Canon Kk Enhanced coding and decoding using intra block copy mode
WO2017010073A1 (ja) * 2015-07-10 2017-01-19 日本電気株式会社 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
EP3691273A4 (en) * 2017-09-26 2020-08-19 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING PROCESS AND DECODING PROCESS
US10440378B1 (en) * 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
CN110650346B (zh) * 2019-09-26 2022-04-22 西安邮电大学 一种3d-hevc深度图运动估计并行实现方法及结构
CN111770345B (zh) * 2020-07-22 2022-02-22 腾讯科技(深圳)有限公司 编码单元的运动估计方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121167A (ja) * 2011-12-09 2013-06-17 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07177519A (ja) 1993-12-20 1995-07-14 Kyocera Corp 動きベクトル検出方法
JP4004653B2 (ja) 1998-08-03 2007-11-07 カスタム・テクノロジー株式会社 動きベクトル検出方法および装置、記録媒体
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US8098733B2 (en) * 2008-03-10 2012-01-17 Neomagic Corp. Multi-directional motion estimation using parallel processors and pre-computed search-strategy offset tables
JPWO2012086829A1 (ja) * 2010-12-21 2014-06-05 日本電気株式会社 動き推定装置、動き推定方法、動き推定プログラム、および動画像符号化装置
JP2012175424A (ja) 2011-02-22 2012-09-10 Panasonic Corp 符号化処理装置および符号化処理方法
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121167A (ja) * 2011-12-09 2013-06-17 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム

Also Published As

Publication number Publication date
JP6344398B2 (ja) 2018-06-20
WO2015083300A1 (ja) 2015-06-11
US10136154B2 (en) 2018-11-20
US20160295225A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
JP6344398B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化用プログラム
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
TW201813396A (zh) 用於視訊編解碼的基於模型的運動向量推導
TW202021343A (zh) 解碼器、編碼器、及相關聯方法和電腦程式
CN113784133B (zh) 解码方法、设备及存储介质
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
TW202015405A (zh) 用於視訊編解碼的幀間預測方法以及裝置
CN111901590B (zh) 一种用于帧间预测的细化运动矢量存储方法及装置
JP6992815B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
JP2014042139A (ja) 符号化装置、符号化方法、及びプログラム
KR20210000595A (ko) 움직임 보상을 사용하는 비디오 코딩 방법 및 장치
JP2016025432A (ja) 動画像符号化装置、動画像符号化方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180411

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: 20180424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180507

R150 Certificate of patent or registration of utility model

Ref document number: 6344398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees