JP2009017262A - データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム - Google Patents

データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム Download PDF

Info

Publication number
JP2009017262A
JP2009017262A JP2007177155A JP2007177155A JP2009017262A JP 2009017262 A JP2009017262 A JP 2009017262A JP 2007177155 A JP2007177155 A JP 2007177155A JP 2007177155 A JP2007177155 A JP 2007177155A JP 2009017262 A JP2009017262 A JP 2009017262A
Authority
JP
Japan
Prior art keywords
motion vector
block
unit
index value
image data
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
JP2007177155A
Other languages
English (en)
Other versions
JP4325708B2 (ja
Inventor
Yusuke Sagawa
裕祐 佐川
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2007177155A priority Critical patent/JP4325708B2/ja
Priority to US12/145,215 priority patent/US8204326B2/en
Priority to CN2008101264675A priority patent/CN101340585B/zh
Publication of JP2009017262A publication Critical patent/JP2009017262A/ja
Application granted granted Critical
Publication of JP4325708B2 publication Critical patent/JP4325708B2/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/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/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
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

【課題】対象ブロックの予測動きベクトルを求める際に、動き補償ブロックとして複数種類のサイズが選択可能である場合に、動き補償ブロックの選択に係る演算量を削減する。
【解決手段】マクロブロックを、規定の7種類のブロックサイズのうち最小サイズの4×4画素のブロックに分割し、このブロックを単位としてマクロブロックをラスタスキャンした順に、インデクス値を定義する。メモリに対してインデクス値に応じた領域を設け、対象ブロックに隣接するブロックの動きベクトルを、隣接ブロックのサイズに対応して単位ブロック毎にコピーする。対象ブロックに関して、サイズに応じて左上隅および右上隅の単位ブロックに対応するインデクス値を生成する。対象ブロックのインデクス値に基づき隣接ブロックのインデクス値を求め、インデクス値が示す単位ブロックから動きベクトルを読み出し、対象ブロックの予測動きベクトルを求める。
【選択図】図6

Description

この発明は、ビデオデータを直交符号化と画面内予測符号による動き補償とを用いて圧縮符号化する場合に用いて好適なデータ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラムに関する。
近年、動画などの画像情報をディジタルデータとして取り扱い、画像情報特有の冗長性を利用して、離散コサイン変換などの直交変換と動き補償を用いた予測符号化とにより画像データを圧縮符号化する、MPEG(Moving Pictures Experts Group)に規定される圧縮符号化方式に準拠した画像情報の符号化装置や復号化装置が、放送局などの情報配信や、一般家庭での情報受信の双方において普及が進んでいる。
特に、MPEG2(Moving Pictures Experts Group 2:ISO(International Organization for Standardization)/IEC(International Electrotechnical Commition) 13818−2)方式は、汎用画像符号化方式として定義される。このMPEG2方式は、インタレース走査による画像データおよびプログレッシブ走査による画像データの双方、ならびに、標準解像度画像および高精細画像を網羅する標準とされ、現在、プロフェッショナル用途およびコンシューマ用途の広範なアプリケーションに広く用いられている。
このMPEG2方式による圧縮符号化方式を用いることにより、例えば720×480画素の解像度を持つ標準解像度のインタレース走査画像であれば符号量としてビットレートで4〜8Mbps(Bit per Second)、1920×1088画素の解像度を持つ高解像度のインタレース走査画像であれば、符号量としてビットレートで18〜22Mbpsをそれぞれ割り当てることで、高い圧縮率と良好な画質の実現が可能である。
MPEG2方式は、主として放送用に適合する高画質符号化を対象としていた一方で、より小さい符号量(低ビットレート)、つまり、より高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、高圧縮率、低ビットレートを可能とする符号化方式の要求が高まっており、この要求に対応してMPEG4方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496−2という規格が国際標準として承認された。
さらに、近年では、H.26Lと称される動画像符号化方式の国際標準化が進められている。H.26Lは、当初テレビ会議用の画像符号化を目的として策定されたもので、既存のMPEG4などの符号化方式と比較して、約2倍の圧縮性能を達成することが目標とされている。
また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能も取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われ、2003年3月には、国際標準の符号化方式がITU−T(International Telecommunication Union-Telecommunication Standarization Sector)勧告H.264あるいはISO(International Organization for Standarization)/IEC(International Electrotechnical Commission)国際標準14496−10(MPEG−4パート10)Advanced Video Coding(以下、H.264|AVCと略称する)に規定された。非特許文献1には、この規格に基づく処理の内容が記載されている。
「Draft Errata List with Revision-Marked Corrections for H.264/AVC」, JVT-1050, Thomas Wiegand et al., Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, 2003
また、特許文献1には、このH.264|AVC規格に基づく符号化技術が記載されている。
特願2006−25033号公報
このH.264|AVC規格に基づく符号化方式は、従来から行われている、直交変換と動き補償を用いた予測符号化によるフレーム間圧縮とを行う例えばMPEG2方式といった符号化方式に対し、さらに処理対象のブロックに隣接または接するブロックの動きベクトルを用いて、当該処理対象の動きベクトルを予測するようにされていることが特徴の一つとなっている。図20を用いて、予測動きベクトルを用いた符号化について概略的に説明する。
予測動きベクトルを用いた符号化は、画面を所定サイズのブロックに分割したマクロブロックを単位として行われる。ここでは、1マクロブロックのサイズを16×16画素であるものとする。また、画面内において、画面の左上隅のマクロブロックから、画面の左端から右端へ向け、さらに、画面の上端から下端に向けて予測動きベクトルを用いた符号化が行われる。すなわち、処理対象のマクロブロックに対して上側に位置するマクロブロックと、水平方向で左側に位置するマクロブロックは、既に符号化処理が終了している。
図20Aに例示されるように、処理対象であるマクロブロックEの予測動きベクトルPMV(E)は、当該マクロブロックEの左に隣接するマクロブロックA、上に隣接するマクロブロックBおよび右上に接するマクロブロックCの動きベクトルMV(A)、MV(B)およびMV(C)とから、水平成分および垂直成分のそれぞれについてメジアン(中央値)を取って求める。
一方、H.264|AVC規格では、動き予測・補償ブロックのサイズが可変とされている。すなわち、動き予測・補償ブロックサイズは、マクロブロック単位のサイズとして16×16画素、16×8画素、8×16画素、8×8画素の4種類と、さらに8×8画素のブロックにおいては、サブマクロブロック単位のサイズとして8×8画素、8×4画素、4×8画素、4×4画素の4種類とが規定されている。これら7種類の動き予測・補償ブロックを適宜、切り替えて用いる。このように、複数種類のサイズの動き予測・補償ブロックの中から最適なものを切り替えて用いることで、発生符号量を抑制しつつ、よりきめ細かな動き予測を行うことができる。
一例として、図20Bに例示されるように、処理対象のマクロブロックEに対し、左に隣接するマクロブロックAにおいては8×4画素のサブマクロブロックが用いられ、上に隣接するマクロブロックBにおいては4×8画素のサブマクロブロックが用いられ、右上に接するマクロブロックCにおいては16×8画素のマクロブロックが用いられる。
上述したように、動き予測・補償ブロックのサイズとして複数が規定されているため、処理対象のマクロブロックと、周囲に位置するマクロブロックおよびサブマクロブロックの動き予測・補償ブロックサイズとの間に膨大な組み合わせが存在する。そのため、従来では、処理対象となるマクロブロックEの予測動きベクトルMV(E)を求める際の、隣接するブロックの動きベクトルMV(A)、MV(B)およびMV(C)の選択に伴う演算量が膨大となり、処理時間が長時間化してしまうという問題点があった。
また、処理時間を短縮しようとすると、高い処理能力を持つ演算回路を用いる必要があり、装置のコストアップに繋がるおそれがあるという問題点があった。
例えば、16×16画素のサイズを持つマクロブロックにおけるサブマクロブロックの組み合わせ数は、図21〜図24に例示されるように、256通りとなる。すなわち、サブマクロブロックタイプは、それぞれ4の分岐を有する4階層の構成とされ、それぞれ4ビットのデータ長を有するパラメータsub_mb_type0、sub_mb_type1、sub_mb_type2およびsub_mb_type3と、上位のマクロブロックタイプを示す6ビットのデータ長を有するパラメータmb_typeとを用いて表現される。
図21は、マクロブロック内における左上隅のサブマクロブロックタイプのブロックサイズを8×8画素に固定した場合の組み合わせ例、図22は、左上隅のサブマクロブロックタイプのブロックサイズを8×4画素に固定した場合の組み合わせ例、図23は、左上隅のサブマクロブロックタイプのブロックサイズを4×8画素に固定した場合の組み合わせ例、図24は、左上隅のサブマクロブロックタイプのブロックサイズを4×4画素に固定した場合の組み合わせ例である。1マクロブロック内で、この256通りの組み合わせにマクロブロックタイプのブロックサイズ分の3通りを足した259通りの組み合わせが存在する。したがって、処理対象のブロックと隣接するブロックとの組み合わせに259=67081通りのパターンが存在し、この67081通りの判別を実装しなければならなかった。
したがって、この発明の目的は、処理対象のブロックに対して隣接または接するブロックの動きベクトルを用いて、処理対象の動きベクトルを予測し、動き予測・補償ブロックとして複数種類のサイズが選択可能である場合に、当該動き予測・補償ブロックの選択に係る演算量を削減できるデータ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラムを提供することにある。
第1の発明は、上述した課題を解決するために、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成部と、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御部と、インデクス値生成部で生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部とを有し、動きベクトル読み出し部で読み出された動きベクトルに基づき予測動きベクトルを求めるようにしたことを特徴とするデータ処理装置である。
また、第2の発明は、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有することを特徴とするデータ処理方法である。
また、第3の発明は、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有するデータ処理方法をコンピュータに実行させることを特徴とするデータ処理プログラムである。
また、第4の発明は、動画像データを符号化する符号化装置において、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成部と、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御部と、インデクス値生成部で生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部とを有し、動きベクトル読み出し部で読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された画像データとの差分を符号化するようにしたことを特徴とする符号化装置である。
また、第5の発明は、動画像データを符号化する符号化方法において、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有し、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された画像データとの差分を符号化するようにしたことを特徴とする符号化方法である。
また、第6の発明は、動画像データを符号化する符号化方法をコンピュータに実行させる符号化プログラムにおいて、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有し、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された画像データとの差分を符号化するようにした符号化方法をコンピュータ装置に実行させることを特徴とする符号化プログラムである。
また、第7の発明は、ブロック毎に求められた動きベクトルと動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号装置において、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成部と、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御部と、インデクス値生成部で生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部とを有し、動きベクトル読み出し部で読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された符号化画像データとを加算して復号処理を行うようにしたことを特徴とする復号装置である。
また、第8の発明は、ブロック毎に求められた動きベクトルと動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号方法において、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有し、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された符号化画像データとを加算して復号処理を行うようにしたことを特徴とする復号方法である。
また、第9の発明は、ブロック毎に求められた動きベクトルと動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号方法をコンピュータに実行させる復号プログラムにおいて、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納するステップと、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成するインデクス値生成のステップと、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納する格納制御のステップと、インデクス値生成のステップにより生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、動きベクトル読み出しのステップで読み出された動きベクトルに基づき予測動きベクトルを求めるステップとを有し、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された符号化画像データとを加算して復号処理を行うようにした復号方法をコンピュータに実行させることを特徴とする復号プログラムである
上述したように、第1〜第3の発明は、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、インデクス値に従い動きベクトル格納部から読み出された動きベクトルに基づき予測動きベクトルを求めるようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無い。
また、第4〜第6の発明は、動画像データを符号化する際に、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、インデクス値に従い動きベクトル格納部から読み出された動きベクトルに基づき予測動きベクトルを求め、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された画像データとの差分を符号化するようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無い。
また、第7〜第9の発明は、ブロック毎に求められた動きベクトルと動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する際に、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された符号化画像データとを加算して復号処理を行うようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無い。
第1〜第3の発明は、上述したように、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、インデクス値に従い動きベクトル格納部から読み出された動きベクトルに基づき予測動きベクトルを求めるようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無いという効果がある。
また、第4〜第6の発明は、上述したように、動画像データを符号化する際に、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、インデクス値に従い動きベクトル格納部から読み出された動きベクトルに基づき予測動きベクトルを求め、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された画像データとの差分を符号化するようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無いという効果がある。
また、第7〜第9の発明は、上述したように、ブロック毎に求められた動きベクトルと動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する際に、1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、単位ブロック領域に動きベクトルを格納し、対象ブロックと同一の2次元画像領域内にあり対象ブロックの左側、上側、右上または左上で対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、動きベクトル格納部の隣接ブロックに対応したそれぞれの単位ブロック領域毎に複製して格納し、予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき対象ブロックの左上隅および右上隅の単位ブロックの位置に対応するインデクス値を生成し、生成されたインデクス値に基づき、動きベクトル格納部から動きベクトルを読み出す単位ブロック領域を示すインデクス値を求め、動きベクトル読み出しのステップにより読み出された動きベクトルを用いて求めた予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、予測画像データと入力された符号化画像データとを加算して復号処理を行うようにしているため、動きベクトル格納部から予測動きベクトルを求めるために用いる動きベクトルを読み出す際に、対応する隣接ブロックのサイズを考慮する必要が無いという効果がある。
以下、この発明の実施の一形態を、図面を参照しながら説明する。図1は、この発明が適用される一例の符号化復号システム1を概略的に示す。符号化復号システム1は、送信側の符号化装置2と受信側の復号装置4とを有し、符号化装置2と復号装置4とが伝送路3で接続されてなる。
符号化装置2は、入力されたビデオ信号による画像データに対して、離散コサイン変換などの直交変換と、動き補償を用いた画面内予測符号化およびフレーム間予測符号化により圧縮符号化を施す。フレーム間予測符号化では、フレーム画像が、例えばフレーム内符号化に基づくピクチャであるI(Intra-coded)ピクチャと、予測符号化に基づくピクチャであるP(Predictive-coded)ピクチャB(Bi-directionally predictive coded)ピクチャとからなり、これらIピクチャ、PピクチャおよびBピクチャが所定に配列されたGOP(Group Of Pictures)構造を持つデータとして符号化される。符号化装置2は、圧縮符号化されたフレーム画像データを、ビットストリームとして出力する。
ビットストリームは、伝送路3を介して復号化装置4に伝送される。伝送路3は、衛星放送波、CATV(Cable Television)網、電話回線網、携帯電話回線網といった通信網を適用することができる。また、伝送路3として、光ディスク、磁気ディスク、磁気テープ、半導体メモリといった記憶または記録媒体であってもよい。復号装置4は、伝送路3を介して伝送されたビットストリームに対して、符号化装置2による符号化方式に対応した復号処理を行い、圧縮符号化されたフレーム画像データを伸長してベースバンドのビデオ信号として出力する。
図2は、この実施の一形態に適用される符号化装置2の一例の構成を示す。例えば、原画像である、輝度信号Y、色差信号Cb、Crから構成されるアナログ方式のビデオ信号がA/D変換部10に供給され、ディジタルビデオ信号からなる画像データに変換されて出力される。並べ替え部11は、A/D変換部10から出力された画像データ内のフレーム画像信号を、例えばIピクチャ、PピクチャおよびBピクチャからなGOP構造に応じて、符号化する順番に並べ替える。フレーム順を並べ替えられた原画像の画像データは、減算部の12一方の入力端と、動き予測・補償部28と、イントラ予測部27とにそれぞれ入力される。
減算部12の他方の端子に対して、後述する選択部29から出力された予測画像データPIが入力される。減算部12は、一方の端子に入力された原画像による画像データから他方の端子に入力された予測画像データPIを減算し、原画像による画像データと、予測画像データPIとの差分を示す差分画像データを出力する。差分画像データは、直交変換部13に供給される。
直交変換部13は、供給された差分画像データに対して直交変換を施して係数データを生成する。ここでは、直交変換部13で行われる直交変換を例えば離散コサイン変換(DCT:Discrete Cosine Transform)を用いることが考えられる。直交変換部13で生成された係数データは、量子化部14に供給される。量子化部14は、後述するレート制御部17から供給される量子化スケールに基づき係数データを量子化し、係数データが量子化された量子化データを出力する。
なお、直交変換部13による直交変換処理と、量子化部14による量子化処理は、それぞれ所定のブロック単位でなされる。例えば、1フレームを所定に分割して直交変換処理の単位となる直交変換ブロックを形成し、複数の直交変換ブロックからなるマクロブロックが量子化処理の単位とされる。一例として、直交変換ブロックは、8×8画素からなる正方ブロックであり、マクロブロックは、4個の直交変換ブロックからなる正方ブロックとして形成される。
量子化部14から出力され量子化データは、エントロピー符号化部15および逆量子化部20にそれぞれ供給される。
エントロピー符号化部15は、供給された量子化データに対して、可変長符号化処理や算術符号化処理といったエントロピー符号化処理を施し、データをさらに圧縮符号化する。このとき、エントロピー符号化部15は、後述する動き予測・補償部28から供給される動きベクトルMVまたは当該動きベクトルMVの差分動きベクトルと、予測符号化により参照される参照画像データの識別データと、後述するイントラ予測部27から供給されるイントラ予測モードIPMとを符号化し、符号化された量子化データのヘッダなどに所定に格納する。
このエントロピー符号化部15から出力される符号化データが、この符号化装置2における最終的な圧縮画像データとされる。エントロピー符号化部15から出力された圧縮画像データは、バッファ16に格納される。上述したレート制御部17は、バッファ16に格納される圧縮画像データを監視し、監視結果に基づき量子化スケールを決定して量子化部14に供給する。また、バッファ16に格納された圧縮画像データは、所定に読み出され変調処理など伝送路3に送出するために必要な処理を施され、符号化装置2から出力される。
一方、逆量子化部20は、量子化部14から供給された量子化データに対して量子化部14による処理と逆の処理を施し、逆量子化されたデータを生成する。この逆量子化されたデータは、逆直交変換部21に供給され、上述の直交変換部13での直交変換の逆変換処理を施される。逆直交変換部21から出力された逆変換画像データは、加算部22の一方の入力端に入力される。
加算部22は、一方の入力端に入力された逆変換画像データと、他方の入力端に入力された、後述する選択部29から出力される予測画像データPIとを加算して再構成画像データを生成する。再構成画像データは、デブロックフィルタ23に供給され、ブロック歪みを除去されて参照画像データREFとしてフレームメモリ24に書き込まれる。
なお、フレームメモリ24には、後述する動き予測・補償部28による動き予測および補償処理、ならびに、イントラ予測部27におけるイントラ予測処理の対象となっているピクチャの再構成画像データが、処理を終了したマクロブロックを単位として、順に書き込まれる。
動き予測・補償部28は、後述するPMV生成部25から供給される予測動きベクトルPMVに基づき最終的に選択した動き予測・補償ブロックサイズに基づき、フレームメモリ24に格納される参照画像データREFと画像並べ替え部11から供給される原画像の画像データとから動きベクトルMVを検出する。動き予測・補償部28は、フレームメモリ24に格納される参照画像データREFと、動きベクトルMVとに基づき予測画像データPImを生成すると共に、符号化されたデータの符号量の指標となる指標データCOSTmを求める。これら予測画像データPImおよび指標データCOSTmは、選択部29の一方の入力端に入力される。
なお、動き予測・補償部28は、ピクチャタイプがBピクチャであるフレームに対して、ダイレクトモードによる予測符号化を行うことができる。ダイレクトモードは、動きベクトルMVを符号化済みのブロックから動き情報の予測を行うモードであり、時間ダイレクトモードと空間ダイレクトモードとがある。ダイレクトモードでは、図3に例示されるように、対象ピクチャに対して時間的に前後のピクチャの対応するブロックの動きベクトルに基づき、対象ピクチャの対応するブロックの動きベクトルを予測する。例えば、対象ピクチャの後方直近の参照ピクチャがアンカーピクチャとされ、アンカーピクチャと、アンカーピクチャに対して対象ピクチャを挟んだ位置のアンカーピクチャの参照ピクチャとを用いる。
このように、ダイレクトモードにおいては、符号化済みブロックから動きベクトルを予測するため、所定のピクチャについて、生成した全ての動きベクトルを保存しておく必要がある。図2の例では、ダイレクトモード用メモリ30に、生成された動きベクトルが保存される。このとき、当該所定のピクチャ内のマクロブロックにおいて、動き補償ブロックのサイズが全て4×4画素である場合が有り得る。そのため、ダイレクトモード用メモリ30は、4×4画素のブロックにおいて検出される可能性がある動きベクトルを、1マクロブロック当たり16ブロック分、それを1フレーム分格納可能な容量を持っている必要がある。
動き予測・補償部28は、後述する選択部29から供給される選択信号SELに基づき、上述の動きベクトルMVをダイレクトモード用メモリ30に格納する。これにより、単位ブロック毎に動きベクトルMVを格納するために別途、メモリを設ける必要が無く、回路規模の増大が発生しない。勿論、これに限らず、動きベクトルMVを格納するメモリを別途、設けるようにしてもよい。
動き予測・補償部28は、検出した動きベクトルMVをエントロピー符号化部15に供給する。また、動き予測・補償部28は、最終的に選択された動き予測・補償ブロックのサイズを示す情報と、参照画像データREFを示す動き予測・補償モードMEMと、動き予測・補償処理において選択した参照画像データの識別データとをエントロピー符号化部15に供給する。エントロピー符号化部15は、供給されたこれらの情報を、ヘッダなどの所定に格納し符号化する。
PMV生成部25は、原画像による画像データにおける処理対象とされるマクロブロックがインター(画面間)符号化される場合に、マクロブロックに規定された複数の動き予測・補償ブロックサイズのブロックデータそれぞれについて、その周囲のブロックデータについて既に生成され、隣接MV選択部26により選択されたブロックの動きベクトルに基づき、予測動きベクトルPMVを生成する。
PMV生成部25および隣接MV選択部26における処理について、概略的に説明する。動き予測・補償部28から出力された各ブロックの動きベクトルMVが隣接MV選択部26に供給される。この例では、隣接MV選択部26は、ダイレクトモード用メモリ30から動きベクトルMVを読み出す。
この実施の一形態では、動き予測・補償ブロックのブロックサイズとして、図4に例示されるように、マクロブロック単位のサイズとして16×16画素、16×8画素、8×16画素、8×8画素の4種類(マクロブロックタイプと称する)が規定され(図4A参照)、8×8画素のブロックにおいては、さらにサブマクロブロック単位のサイズとして8×8画素、8×4画素、4×8画素、4×4画素の4種類(サブマクロブロックタイプと呼ばれる)が規定されている(図4B参照)。
隣接MV選択部26は、処理対象とされるマクロブロックの周囲に位置する複数のブロックのデータ(すなわち、2次元画像領域内で処理対象とされるマクロブロックの周囲に位置するブロックのデータ)であって、当該処理対象のマクロブロックよりも先に動きベクトルMVの生成処理が行われる、予め決められた所定のブロックを選択する。そして、隣接MV選択部26は、選択されたブロックの動きベクトルMVをPMV生成部25に供給する。
この発明の実施の一形態では、隣接MV選択部26におけるブロック選択処理を工夫することで、処理対象のマクロブロックの周囲に位置する各ブロックから所定のブロックを選択する処理を軽減している。
PMV生成部25は、隣接MV選択部26から供給された動きベクトルMVに基づき、処理対象とされるブロックの予測動きベクトルPMVを求める。例えば、PMV生成部25では、例えば処理対象とされるブロックの上および左に隣接するブロック、ならびに、右上に接するブロックそれぞれの動きベクトルMVのメディアンを抽出し、処理対象とされるブロックの予測動きベクトルPMVとする。なお、メディアン(Median)は、対象となる複数の値のうちの中間値を示す。
PMV生成部25は、予測動きベクトルPMVを、垂直方向および水平方向についてそれぞれ独立的に生成する。したがって、例えば処理対象の左に隣接するブロックにおける動きベクトルMVの垂直成分が予測動きベクトルPMVの垂直成分となり、右上に接するブロックにおける動きベクトルMVの水平成分が予測動きベクトルPMVの水平成分となるような場合が有り得る。
なお、PMV生成部25は、例えば処理対象であるブロックの周囲に位置すべきブロックの全てが、当該ブロックの周囲、すなわち2次元画像領域内の隣接または接する位置に存在しない場合には、当該ブロックの予測動きベクトルPMVの値を0とする。また、当該処理対象のブロックの上側に隣接すべきブロックが当該ブロックの周囲、すなわち2次元画像領域内に存在しない場合には、当該ブロックの予測動きベクトルPMVとして、当該ブロックの左に隣接するブロックの動きベクトルMVを用いる。さらに、処理対象のブロックの右上に位置すべきブロックが2次元画像領域内に存在しない場合には、当該ブロックによる動きベクトルMVに代えて、処理対象のブロックの左上に接する位置にあるブロックの動きベクトルMVを用いて、予測動きベクトルPMVを求める。
なお、以下では、処理対象のマクロブロック(適宜、マクロブロックEと呼ぶ)に対し、左に隣接するブロックをブロックA、上側に隣接するブロックをブロックB、右上に接するブロックをブロックC、左上に接するブロックをブロックDと呼ぶ。
イントラ予測部27は、画像並べ替え部11から供給された原画像の画像データに対して、イントラ(画面内)予測符号化を行う。このとき、イントラ予測部27は、例えば4×4画素単位で画面内予測符号化を行うイントラ4×4モード、或いは、16×16画素単位で画面内予測符号化を行うイントラ16×16モードの複数の予測モードのそれぞれについて、処理対象のマクロブロックの予測画像データPIiを生成し、この予測画像データPIiと、並べ替え部11から供給された原画像による画像データとに基づき、符号化されたデータ量の指標となる指標データCOSTiを生成する。イントラ予測部27は、生成された指標データCOSTiを最小にするイントラ予測モードを選択する。そして、イントラ予測部27は、最終的に選択したイントラ予測モードに対応して生成した予測画像データPIiおよび指標データCOSTiを、選択部29に供給する。
また、イントラ予測部27は、選択部29から供給される選択信号SELにより、イントラ予測モードが選択されたことを示されると、最終的に選択したイントラ予測モードを示す予測モード情報IPMを、エントロピー符号化部15に供給する。エントロピー符号化部15は、供給された予測モード情報IPMをヘッダなどに格納し、符号化する。
選択部29は、動き予測・補償部28から供給された指標データCOSTiと、イントラ予測部27から供給された指標データCOSTmとを比較して値が小さい方を特定し、特定された指標データに対応して入力された予測画像データPIiまたは予測画像データPImを選択して出力する。選択部29から出力された予測画像データPIiまたは予測画像データPImは、減算部13の他方の入力端に入力される。
また、選択部29は、指標データCOSTiと指標データCOSTmとの比較の結果、指標データCOSTiの方が小さいと判断した場合に、イントラ予測モードが選択されたことを示す選択信号SELを出力する。一方、選択部29は、この比較の結果、指標データCOSTmの方が小さいと判断した場合に、動き予測・補償モードが選択されたことを示す選択信号SELを出力する。選択信号SELは、イントラ予測部27および動き予測・補償部28にそれぞれ供給される。
なお、H.264|AVCにおいては、マクロブロックを水平方向に連ねたスライスが符号化の単位とされる。そのため、1ピクチャ内に、Iスライス、PスライスおよびBスライスの、異なるタイプのスライスを混在させることができる。なお、Iスライスは、画面内(イントラ)符号化のみを行うスライスである。Bスライスは、画面内符号化および参照ピクチャを1枚乃至2枚用いたフレーム間予測符号化を行うスライスである。また、Pスライスは、画面内符号化および参照ピクチャを1枚用いた、フレーム間予測符号化を行うスライスである。H.264|AVCにおいては、これら参照ピクチャを用いフレーム間予測符号化を行うPスライスやBスライスに属するマクロブロックであっても、イントラ予測部27によるイントラ予測符号化が行われる場合がある。
次に、上述した復号装置4について説明する。図5は、この発明の実施の一形態に適用される復号装置4の一例の構成を示す。復号装置4は、バッファ40、エントロピー符号復号部41、逆量子化部42、逆直交変換部43、加算部44、デブロックフィルタ45、画面並べ替えバッファ46、D/A変換部47、フレームメモリ50、動き予測・補償部51、イントラ予測部54、PMV生成部52および隣接MV選択部53から構成される。
上述のようにして符号化装置2において圧縮符号化されたフレーム画像からなるビットストリームが、伝送路3を介して復号装置4に入力される。入力されたビットストリームは、バッファ40に一旦溜め込まれる。バッファ40から読み出されたビットストリームは、エントロピー符号復号部41に供給される。
エントロピー符号復号部41は、図2を用いて説明した符号化装置2のエントロピー符号化部15において施されたエントロピー符号化に対応し、エントロピー符号の復号処理が行われる。エントロピー符号が復号されたデータは、逆量子化部42に供給される。また、エントロピー符号復号部41は、復号されたフレーム画像データがイントラ符号化されたものである場合、当該フレーム画像データをイントラ予測部54に供給する。
なお、エントロピー符号復号部41は、ヘッダ部に格納された各情報の復号も行う。例えば、復号されたフレーム画像データがイントラ符号化されたものである場合、エントロピー符号復号部41では、ヘッダ部に格納されたイントラ予測モードを示す予測モード情報IPMや動きベクトルMVまたは動きベクトルMVの差分動きベクトルを復号する。復号された予測モード情報IPMは、後述するイントラ予測部54に供給される。また、復号された動きベクトルMVまたは差分動きベクトルは、後述する隣接MV選択部53に供給される。
逆量子化部42は、エントロピー符号復号部41から供給されたデータに対して、上述した符号化装置2の量子化部15(図2参照)における処理と逆の処理を施し、逆量子化されたデータを生成する。この逆量子化されたデータは、逆直交変換部43に供給される。逆直交変換部43は、逆量子化部42から供給されたデータに対して、上述した符号化装置2の直交変換部13(図2参照)での直交変換の逆変換処理を施したデータ(逆変換画像データと呼ぶことにする)を生成する。逆変換画像データは、加算部44の一方の入力端に入力される。
処理対象のフレームがイントラ符号化されたフレームである場合には、イントラ予測部54は、エントロピー符号復号部41から供給された、イントラ符号化されたフレーム画像データと予測モード情報IPMとを用いて復号処理を行い予測画像データを生成する。この予測画像データが加算部44の他方の入力端に入力され、逆変換画像データと合成される。
一方、処理対象のフレームがインター符号化されたフレームである場合には、動き予測・補償部51から出力された参照画像データが加算部44の他方の入力端に入力され、逆変換画像データと合成される。
例えば、上述した符号化装置2の場合と略同様に、インター符号化されたデータを処理する場合、隣接MV選択部53は、上述したエントロピー符号復号部41から供給された動きベクトルMVから処理対象のマクロブロックの周囲に位置する各ブロックから所定のブロックを選択する。そして、上述したエントロピー符号復号部41から供給された動きベクトルMVから、選択されたブロックに対応するものを選択し、PMV生成部52に供給する。PMV生成部52は、供給された動きベクトルMVに基づき予測動きベクトルPMVを求める。動き予測・補償部51は、供給された予測動きベクトルPMVとフレームメモリ50に格納されたフレーム画像データとに基づき参照画像データを生成する。
なお、上述では、図2に示す符号化装置2や図5に示す復号装置4の各部分がハードウェアにより構成されているように説明したが、これはこの例に限定されない。例えば、符号化装置2や復号装置4の一部または全部をソフトウェアで実現することも可能である。例えば、パーソナルコンピュータといったコンピュータに対し、符号化装置2や復号装置4を実行させるようなプログラムを所定の記録媒体やネットワークを介して供給し、コンピュータに搭載させる。コンピュータにおいてこのプログラムを実行させることで、符号化装置2や復号装置4の機能をコンピュータ上で実現させることができる。
次に、この発明の主題に係る、上述した、符号化装置2における隣接MV選択部26、ならびに、復号装置4における隣接MV選択部53について、詳細に説明する。なお、これら隣接MV選択部26および隣接MV選択部53は、同一の構成を適用することができるので、以下では、符号化装置2における隣接MV選択部26を例にとって説明する。
この発明の実施の一形態においては、例えば16×16画素の正方ブロックからなるマクロブロックを、H.264|AVCに規定される、16×16画素〜4×4画素の7種類の動き補償ブロックサイズのうち最小サイズである4×4画素のブロックに分割し、この分割された4×4画素のブロック単位でマクロブロックをラスタスキャンした順に、インデクス値を定義する。このインデックス値が定義される4×4画素のブロックを、以下では、単位ブロックと呼ぶことにする。
すなわち、図6に例示されるように、処理対象のマクロブロック(E)と、予測動きベクトルを求めるための各マクロブロック(A)〜(D)に対し、マクロブロックの左上隅に位置する単位ブロックに対してインデクス値4'd0を定義し、以降、左上隅を起点として左方向から右方向へ向けて1ずつインデクス値を増加させ、さらに上側から下方向に向けて順次インデクス値を増加させるようにして、単位ブロックそれぞれに対してインデックス値を定義する。なお、ここで用いる「値4'dx」の表記について、「4'd」は、右の数値「x」が実際には2進数で4ビットの数値として表現される値を、10進数で表記していることを示す。
具体的には、マクロブロックの最上列の4個の単位ブロックに対し、左からインデクス値4'd0、値4'd1、値4'd2、値4'd3が定義され、2列目の4個の単位ブロックに対し、左からインデクス値4'd4、値4'd5、値4'd6、値4'd7が定義され、3列目の4個の単位ブロックに対し、左からインデクス値4'd8、値4'd9、値4'd10、値4'd11が定義され、最下列の4個の単位ブロックに対し、左からインデクス値4'd12、値4'd13、値4'd14、値4'd15が定義される。
さらに、上述の16×16画素〜4×4画素の7種類の動き補償ブロックサイズのブロックのそれぞれについて、左端および右端のブロックを定義し、これら左端のブロックのインデクス値lft_idx[3:0](値4'dx)と、右端のブロックのインデクス値rht_idx[3:0](値4'dy)とを特定する。左端および右端のブロックは、動き補償ブロックにおける最上列の左端および右端の単位ブロックと定義する。なお、インデクス値lft_idx[3:0]などにおける[3:0]の表記は、その値を2進数表記した際に、LSB(Least Significant Bit)側の4ビットしか用いないことを示す。
図7は、7種類の動き補償ブロックサイズのブロックのそれぞれにおける左端および右端の単位ブロックに対して定義されるインデクス値Lft_idx[3:0](値4'dx)およびインデクス値rht_idx[3:0]4'dyを、マクロブロックタイプおよびサブマクロブロックタイプと関連付けた一例のテーブルを示す。このテーブルは、例えば符号化装置2が有する図示されないROM(Read Only Memory)に予め記憶される。また、図8は、16×16画素〜4×4画素の7種類の動き補償ブロックサイズのブロックのそれぞれについて、これら左端および右端の単位ブロックのマクロブロック上での位置を示すと共に、対応するインデクス値Lft_idx[3:0]4'dxおよびインデクス値rht_idx[3:0]4'dyを示す。
図7を参照し、マクロブロックタイプが16×16画素の場合、動き補償部ブロックとマクロブロックとが等しくなり、左端の単位ブロックがインデクス値lft_idx[3:0]4'd0とされ、右端の単位ブロックがインデクス値rht_idx[3:0]4'd3とされる。
マクロブロックタイプが16×8画素の場合、動き補償ブロックは、マクロブロックを水平方向に2分割したものとなる。上段の動き補償ブロックでは、左端の単位ブロックがインデクス値lft_idx[3:0]4'd0とされ、右端の単位ブロックがインデクス値rht_idx[3:0]4'd3とされ、下段の動き補償ブロックでは、左端の単位ブロックがインデクス値lft_idx[3:0]4'd8とされ、右端の単位ブロックがインデクス値rht_idx[3:0]4'd15とされる。
マクロブロックタイプが8×16画素の場合、動き補償ブロックは、マクロブロックを垂直方向に2分割したものとなる。左側の動き補償ブロックでは、左端の単位ブロックがインデクス値lft_idx[3:0]4'd0とされ、右端の単位ブロックがインデクス値rht_idx[3:0]4'd11とされる。また、右側の動き補償ブロックでは、左端の単位ブロックがインデクス値lft_idx[3:0]4'd2とされ、右端の単位ブロックがインデクス値rht_idx[3:0]4'd3とされる。
マクロブロックタイプが8×8画素の場合、さらに8×8画素、8×4画素、4×8画素および4×4画素の4種類のサブマクロブロックタイプが定義される。サブマクロブロックタイプが8×8画素の場合、動き補償ブロックは、マクロブロックを水平方向および垂直方向にそれぞれ2分割した4個のブロックとなり、上述のマクロブロックタイプの場合と同様に、最上列の左端および右端の単位ブロックに対してそれぞれインデクス値lft_idx[3:0]4'dxおよびインデクス値rht_idx[3:0]4'dyが定義される。
なお、サブマクロブロックタイプが4×8画素および4×4画素の場合には、水平方向に1個の単位ブロックしか並ばない。そのため、同一の単位ブロックが左端および右端の単位ブロックと見做されると共に、インデクス値lft_idx[3:0](値4'dx)およびインデクス値rht_idx[3:0](値4'dy)も、同一の値が用いられる。
図9は、隣接MV選択部26の一例の構成を示す。なお、復号装置4側の隣接MV選択部53は、この図9に示す構成と略同一なので、ここでの説明を省略する。隣接MV選択部26は、ブロック値生成部100、加算部102およびmv格納部106を有すると共に、4個のセレクタ101、103、104および105を有する。mv格納部106は、上述したダイレクトモード用メモリ30に対する読み書きを制御することができるようになっている。
ブロック値生成部100は、マクロブロックタイプを示す情報mb_typeと、サブマクロブロックタイプを示す情報sub_mb_typeとが入力され、これら情報mb_typeおよび情報sub_mb_typeに基づき、例えば上述の図7に従いブロックのインデクス値lft_idx[3:0]4'dxおよびインデクス値rht_idx[3:0]4'dyを生成する。一例として、情報mb_typeが16×16画素のマクロブロックタイプを示していれば、図7を参照し、インデクス値lft_idx[3:0]4'd0およびインデクス値rht_idx[3:0]4'd3が生成され、ブロック値生成部100に供給される。情報mb_typeおよび情報sub_mb_typeは、例えば図示されない制御部で生成することが考えられる。
ブロック値生成部100で生成されたインデクス値lft_idx[3:0]4'dxは、セレクタ101の第1の入力端に入力され、インデクス値rht_idx[3:0]4'dyは、セレクタ101の第2の入力端に入力される。セレクタ101は、例えば、処理対象のマクロブロックの右上に接するブロックCの動きベクトルMV(C)を取得する際に、第2の入力端に切り替えられるようにされている。セレクタ101の出力は、加算部102の一方の入力端に入力される。
例えば、処理対象のマクロブロックに対し、当該ブロックCが存在する場合には、セレクタ101において第2の入力端が選択され、インデクス値rht_idx[3:0]4'dyが出力される。一方、ブロックCが存在しない場合は、上述したように、ブロックDが存在すれば当該ブロックDが用いられる。この場合には、セレクタ101において第1の出力端が選択され、インデクス値lft_idx[3:0]4'dxが出力される。
セレクタ103、104および105は、それぞれ所定の値がセットされ、動きベクトルMVを取得するブロックに応じた選択を行う。セレクタ103は、ブロックAに関する選択を行うもので、例えば第1および第2の入力端にそれぞれインデクス値4'd3およびインデクス値4'15がセットされる。この例では、セレクタ103は、ブロックAの動きベクトルMVを用いる際に、上述するセレクタ101で選択された値rht_idx[3:0]が値4'd0、値4'd4、値4'd8および値4'd12の場合に第1の入力端が選択され、その他の場合に第2の入力端が選択される。
ブロックBに関する選択を行うセレクタ104は、例えば第1の入力端にインデクス値4'd12がセットされ、第2の入力端にセレクタ103の出力が入力される。この例では、セレクタ104は、ブロックBの動きベクトルMVを用いる際に第1の入力端が選択され、その他の場合に第2の入力端が選択される。
ブロックCに関する選択を行うセレクタ105は、例えば第1〜第4の入力端に値4'd9、値4'd11、値4'd13および値4'd15がそれぞれ入力され、第5の入力端にセレクタ104の出力が入力される。セレクタ105の出力が加算部102の他方の入力端に入力される。この例では、セレクタ105は、ブロックAまたはブロックBの動きベクトルMVを用いる際に第5の入力端が選択される。また、セレクタ105は、ブロックCの動きベクトルMVを用いる際に、第1または第3の入力端が選択され、値4'd9または値4'd13が出力される。さらに、セレクタ105は、ブロックDの動きベクトルMVを用いる際に、第2または第4の入力端が選択され、値4'd11または値4'd15が出力される。
加算部102は、一方の入力端に入力される、セレクタ101から供給される値と、他方の入力端に入力される、セレクタ105から供給される値とを加算する。加算結果は、LSB側の4ビットのみが用いられ、隣接ブロックのインデクス値nbd_idx[3:0]として出力される。インデクス値nbd_idx[3:0]は、mv格納部106に供給される。
mv格納部106は、例えばダイレクトモード用メモリ30に対するアクセス制御をできるようにされ、動き予測・補償処理部28で求められた動きベクトルMVをダイレクトモード用メモリ30に格納すると共に、インデクス値nbd_idx[3:0]に示されるアドレスからデータを読み出す。これに限らず、mv格納部106そのものがメモリであってもよい。例えば、mv格納部106は、ダイレクトモード用メモリ30に対し、単位ブロックに対応してマッピングし、図10に例示されるように、単位ブロックに対応する領域毎にラスタスキャン順で割り当てたインデクス値を対応付ける。動きベクトルMVは、mv格納部106に供給されると、ダイレクトモード用メモリ30に対し、マクロブロックタイプに応じた動き補償ブロックに対応した単位ブロック領域にそれぞれコピーされて格納される。
例えばマクロブロックタイプが16×16画素の場合には、0から15までのインデクス値に対応付けられた各単位ブロック領域のそれぞれに、同一の動きベクトルMVがコピーされる。また例えば、マクロブロックタイプが16×8画素の場合には、0から7までのインデクス値に対応付けられた各単位ブロックのそれぞれに、上段の動き補償ブロックによる動きベクトルMVがコピーされ、8から15までのインデクス値に対応付けられた各単位ブロック領域のそれぞれに、下段の動き補償ブロックによる動きベクトルMVがコピーされる。
このように、この実施の一形態では、動きベクトルMVが単位ブロック領域にそれぞれコピーされて保存されるため、動き補償ブロックがどのようなサイズであっても所定の単位ブロック領域にアクセスすることで動きベクトルを読み出すことができる。そのため、処理対象のブロックに隣接する動き補償ブロックのサイズを示す情報を保持する必要が無い。すなわち、発明の課題の項で既に説明したように、サブマクロブロックタイプまで考慮した場合、マクロブロックタイプを示すデータ長が6ビットのパラメータと、サブマクロブロックタイプを示すそれぞれデータ長が4ビットのパラメータsub_mb_type0、sub_mb_type1、sub_mb_type2およびsub_mb_type3を保持する必要が無い。
mv格納部106は、ダイレクトモード用メモリ30の、加算部102から供給されたインデクス値nbd_idx[3:0]に対応する単位ブロック領域からデータを読み出し、動きベクトルmvとして出力する。この動きベクトルmvがPMV生成部25に供給される。
このように、隣接MV選択部26において、mv格納部106により、ダイレクトモード用メモリ30に対して単位ブロック毎にラスタスキャン順にインデクス値を割り当て、対応する動きベクトルMVを単位ブロック毎に格納する。そして、セレクタ101、103、104および105での選択結果に応じて加算部102で算出された、処理対象のマクロブロックに対して隣接する隣接ブロックのインデクス値を、mv格納部106に入力させる。これにより、処理対象のマクロブロック(マクロブロックE)の予測動きベクトルPMVを求めるために必要な、ブロックAの動きベクトルMV(A)、ブロックBの動きベクトルMV(B)およびブロックCの動きベクトルMV(C)を選択することができる。
なお、この隣接MV選択部26では、このようにダイレクトモード用メモリ30に対して動きベクトルMVを書き込むようにしている。そのため、隣接MV選択部26における処理は、必ず、ダイレクトモードによる予測処理が終了してから行う必要がある。
図11のフローチャートを用いて、隣接MV選択部26における一例の処理について説明する。なお、このフローチャートにおける各処理は、例えば符号化装置2の全体を制御する図示されない制御部により、所定のプログラムに従いなされる。これに限らず、符号化装置2を構成する各部間で所定に制御信号などをやりとりし、各部が互いに自律的および/または協働的に動作するようにしてもよい。
先ず、最初のステップS10で、ブロック値生成部100において、処理対象のマクロブロックEのマクロブロックタイプおよびサブマクロブロックタイプに基づき、例えば上述した図7に従いインデクス値lft_idx[3:0]とインデクス値rht_idx[3:0]とが所定にセットされ、ブロック値が生成される。
ブロックAの動きベクトルMV(A)を取得する場合(ステップS11)、当該ブロックAの動きベクトルMV(A)がmv格納部106に供給され、既に説明したようにして、ダイレクトモード用メモリ30上のインデクス値が対応する単位ブロック領域に対してそれぞれコピーされる。また、セレクタ101において、第1の入力端が選択され、インデクス値lft_idx[3:0]が出力される。
処理はステップS12に移行され、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8または値4'd12の何れかであるか否かが判断される。若し、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8または値4'd12の何れかであると判断されれば、処理はステップS13に移行される。ステップS13では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]とインデクス値4'd3とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
一方、上述したステップS12で、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8および値4'd12の何れでもないと判断されたら、処理はステップS14に移行される。ステップS14では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]とインデクス値4'd15とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
ブロックBの動きベクトルMV(B)を取得する場合(ステップS16)、当該ブロックBの動きベクトルMV(B)がmv格納部106に供給され、既に説明したようにして、ダイレクトモード用メモリ30上のインデクス値が対応する単位ブロック領域に対してそれぞれコピーされる。また、セレクタ101において、第1の入力端が選択され、インデクス値lft_idx[3:0]が出力される。
処理はステップS17に移行され、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]とインデクス値4'd12とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
ブロックCの動きベクトルMV(C)を取得する場合(ステップS18)、当該ブロックCの動きベクトルMV(C)がmv格納部106に供給され、既に説明したようにして、ダイレクトモード用メモリ30上のインデクス値が対応する単位ブロック領域に対してそれぞれコピーされる。また、セレクタ101において、第2の入力端が選択され、インデクス値rht_idx[3:0]が出力される。
処理はステップS19に移行され、インデクス値rht_idx[3:0]が値4'd3であるか否かが判断される。若し、インデクス値rht_idx[3:0]が値4'd3であると判断されれば、処理はステップS20に移行される。ステップS20では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]とインデクス値4'd13とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
一方、上述したステップS19で、インデクス値lft_idx[3:0]が値4'd3ではないと判断されれば、処理はステップS21に移行される。ステップS21では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]とインデクス値4'd9とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
処理対象のブロックと同一の2次元画像領域内に、処理対象のブロックの右上に接するブロックが存在しない場合、既に説明したように、処理対象のブロックの左上に接するブロックDの動きベクトルMV(D)が用いられる。この場合、ブロックDの動きベクトルMV(D)がmv格納部106に供給され、既に説明したようにして、ダイレクトモード用メモリ30上のインデクス値が対応する単位ブロック領域に対してそれぞれコピーされる。また、セレクタ101において、第1の入力端が選択され、インデクス値lft_idx[3:0]が出力される。
ステップS22で、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8または値4'd12の何れかであるか否かが判断される。若し、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8または値4'd12の何れかであると判断されれば、処理はステップS23に移行される。ステップS23では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]とインデクス値4'd15とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
一方、上述したステップS22で、インデクス値lft_idx[3:0]が値4'd0、値4'd4、値4'd8および値4'd12の何れでもないと判断されたら、処理はステップS24に移行される。ステップS24では、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]とインデクス値4'd11とを加算した値として求める。隣接ブロックのインデクス値nbd_idx[3:0]が取得できたら、処理はステップS15に移行される。
ステップS15では、取得された隣接ブロックのインデクス値nbd_idx[3:0]に基づき、mv格納部106により、ダイレクトモード用メモリ30に格納された動きベクトルMVが読み出される。この動きベクトルMVがPMV生成部25に供給される。
上述した図11のフローチャートによる隣接MV選択部26による処理を、より具体的な例を用いて説明する。一例として、図12のような場合について考える。すなわち、処理対象のマクロブロック(ブロックE)は、マクロブロックタイプが16×16画素のブロックとする。また、ブロックEの予測動きベクトルPMVを求めるために必要な、左に隣接するブロックA、上側に隣接するブロックBおよび右上に接するブロックCに関し、ブロックAは、マクロブロックタイプが16×8画素のブロック、ブロックBは、マクロブロックタイプが8×8画素で、サブマクロブロックタイプが4×8画素のブロック、ブロックCは、マクロブロックタイプが8×8画素で、サブマクロブロックタイプが8×8画素のブロックであるものとする。
処理対象のブロックEについて、上述した図7に従い、ブロック値生成部100においてインデクス値lft_idx[3:0]として値4'd0がセットされ、インデクス値rht_idx[3:0]として値4'd3がセットされる(ステップS10)。
ブロックAの動きベクトルMV(A)を取得したい場合には(ステップS11)、先ず、当該ブロックAの動きベクトルMV(A)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックAのマクロブロックタイプに対応するインデクス値が0から7までの単位ブロック領域に対して、各単位ブロック毎にそれぞれコピーされる。インデクス値が8から15までの単位ブロック領域に対しては、例えば、ブロックAが含まれるマクロブロックにおける、ブロックAの下側の16×8画素の領域の動きベクトルMVが、単位ブロック毎にそれぞれコピーされる。
セレクタ101において第1の入力端が選択され、インデクス値lft_idx[3:0](値4'd0)が加算部102の一方の入力端に入力される。インデクス値lft_idx[3:0]が値4'd0なので、ステップS12の判断により処理がステップS13に移行される。
セレクタ103で第1の入力端が選択されて値4'd3が選択され、セレクタ104およびセレクタ105では、それぞれ第2の入力端および第5の入力端が選択され、セレクタ103から出力された値4'd3が加算部102の他方の入力端に入力される。加算部102では、一方の入力端に入力されたインデクス値lft_idx[3:0]4'd0と他方の入力端に入力された値4'd3とが加算され、加算結果として隣接ブロックのインデクス値nbd_idx[3:0]4'd3が出力される(ステップS13)。
mv格納部106では、このインデクス値nbd_idx[3:0]4'd3に示される単位ブロック領域に書き込まれた動きベクトルMV(A)が読み出される(ステップS15)。この動きベクトルMV(A)がPMV生成部25に供給される。
ブロックBの動きベクトルMV(B)を取得したい場合には(ステップS16)、先ず、当該ブロックBの動きベクトルMV(B)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックBのマクロブロックタイプおよびサブマクロブロックに対応する、インデクス値が8の単位ブロック領域と、インデクス値が12の単位ブロック領域とに対して、各単位ブロック毎にそれぞれコピーされる。他の単位ブロック領域に対しても、同様にして、ブロックBが含まれるマクロブロックにおける対応するブロックの動きベクトルMVが単位ブロック毎にそれぞれコピーされる。
セレクタ101において第1の入力端が選択され、インデクス値lft_idx[3:0]4'd0が加算部102の一方の入力端に入力される。また、セレクタ104で第1の入力端が選択されて値4'd12が出力され、セレクタ105で第5の入力端が選択され、セレクタ104から出力された値4'd12が加算部102の他方の入力端に入力される。加算部102では、一方の入力端に入力されたインデクス値lft_idx[3:0]4'd0と他方の入力端に入力された値4'd12とが加算され、加算結果として隣接ブロックのインデクス値nbd_idx[3:0]4'd12が出力される(ステップS17)。
mv格納部106は、ダイレクトモード用メモリ30から、このインデクス値nbd_idx[3:0]4'd12に示される単位ブロック領域に書き込まれた動きベクトルMV(B)を読み出す(ステップS15)。この動きベクトルMV(B)がPMV生成部25に供給される。
ブロックCの動きベクトルMV(C)を取得したい場合には(ステップS18)、先ず、当該ブロックCの動きベクトルMV(C)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックCのマクロブロックタイプおよびサブマクロブロックに対応する、インデクス値が8、9、12および13の単位ブロック領域に対して、各単位ブロック毎にそれぞれコピーされる。mv格納部106の他の単位ブロック領域に対しても、同様にして、ブロックCが含まれるマクロブロックにおける対応するブロックの動きベクトルMVが単位ブロック毎にそれぞれコピーされる。
セレクタ101において第2の入力端が選択され、インデクス値rht_idx[3:0](値4'd3)が加算部102の一方の入力端に入力される。インデクス値rht_idx[3:0]が値4'd3なので、処理はステップS20に移行される。
セレクタ105で第1の入力端が選択され値4'd9が出力され、加算部102の他方の入力端に入力される。加算部102では、一方の入力端に入力されたインデクス値rht_idx[3:0]4'd3と他方の入力端に入力された値4'd9とが加算され、加算結果として隣接ブロックのインデクス値nbd_idx[3:0]4'd12が出力される(ステップS20)。mv格納部106では、このインデクス値nbd_idx[3:0]4'd12に示される単位ブロック領域に書き込まれた動きベクトルMV(C)が読み出される(ステップS15)。この動きベクトルMV(C)がPMV生成部25に供給される。
なお、既に説明したように、ブロックEの2次元画像領域内にブロックCが存在しなければ、予測動きベクトルPMVを求めるために、ブロックEの左上に接するブロックDが用いられる。この場合には、上述したように、ステップS22において、図11の例のようにインデクス値lft_idx[3:0]が値4'd0であれば、処理がステップS23に移行される。そして、セレクタ105で第4の入力端が選択され、値4'd15が出力される。値4'd15は、加算部102の他方の入力端に入力される。加算部102において、第1の入力端に入力されたインデクス値lft_idx[3:0]4'd0と、他方の入力端に入力された値4'd15とが加算され、加算結果としてインデクス値nbd_idx[3:0]4'd15が得られる。インデクス値4'd15の単位ブロックは、マクロブロックの右下隅に位置し、ブロックEの左上と接する。
上述したような処理を、例えば、上述した図7の上から順に左端および右端のインデクス値lft_idx[3:0]およびインデクス値rht_idx[3:0]を生成するように、順次、情報mb_typeおよび情報sub_mb_typeを入力して実行することが考えられる。これにより、処理対象のブロックEにおける、マクロブロックタイプ毎(およびサブマクロブロックブロックタイプ毎)の予測動きベクトルPMVを求めることができる。
このとき、例えばブロックEのマクロブロックタイプが8×8画素の場合には、当該ブロックEを含むマクロブロック内の情報を用いてと該ブロックEの予測動きベクトルPMVを求めることが起こり得る。そのため、マクロブロック内のラスタスキャン順で処理を行うとよい。
上述では、処理対象のブロックEを、サイズがマクロブロックと等しい、マクロブロックタイプが16×16画素のブロックであるものとして説明したが、これはこの例に限られない。すなわち、この実施の一形態による隣接MV選択処理は、処理対象のブロックEが別のマクロブロックタイプであっても適用可能である。
一例として、図13に示されるように、処理対象のブロックEのサイズが8×8画素、すなわち、当該ブロックEのマクロブロックタイプおよびサブマクロブロックタイプがそれぞれ8×8画素である場合について説明する。ブロックEは、当該ブロックEが含まれるマクロブロック内の左下隅に位置するものとする。また、ブロックEの予測動きベクトルPMVを求めるために必要な各ブロックに関し、処理対象のブロックEがマクロブロックの左下隅に位置するので、右上に接するブロックCは存在せず、代わりにブロックEの左上に接するブロックDを用いる。このブロックD、ならびに、ブロックEの左に隣接するブロックAおよび上側に隣接するブロックBは、それぞれマクロブロックタイプおよびサブマクロブロックタイプが4×4画素のブロックであるとする。
先ず、処理対象のブロックEについて、上述した図7に従い、ブロック値生成部100においてインデクス値lft_idx[3:0]として値4'd10がセットされ、インデクス値rht_idx[3:0]として値4'd11がセットされる(ステップS10)。
ブロックAの動きベクトルMV(A)を取得したい場合には(ステップS11)、先ず、当該ブロックAの動きベクトルMV(A)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックAのマクロブロックタイプおよびサブマクロブロックタイプに対応するインデクス値が9の単位ブロック領域に対してコピーされる。
セレクタ101において第1の入力端が選択され、インデクス値lft_idx[3:0]4'd0が加算部102の一方の入力端に入力される。インデクス値lft_idx[3:0]が値4'd10なので、ステップS12の判断により処理がステップS14に移行される。
セレクタ103で第2の入力端が選択されて値4'd15が選択され、セレクタ104およびセレクタ105では、それぞれ第2の入力端および第5の入力端が選択され、セレクタ103から出力された値4'd15が加算部102の他方の入力端に入力される。加算部102では、一方の入力端に入力されたインデクス値lft_idx[3:0]4'd10と他方の入力端に入力された値4'd15とが加算され、加算結果として隣接ブロックのインデクス値nbd_idx[3:0]4'd9が出力される(ステップS13)。
すなわち、加算結果は、値4'd25であって、2進数表記では「b11001」(「b」は続く数値が2進数表記であることを示す)となるが、インデクス値nbd_idx[3:0]は、既に説明したようにLSB側の4ビットのみを用いるため、「b1001」となり、値4'd9が得られる。
mv格納部106では、ダイレクトモード用メモリ30から、このインデクス値nbd_idx[3:0]4'd9に示される単位ブロック領域に書き込まれた動きベクトルMV(A)が読み出される(ステップS15)。この動きベクトルMV(A)がPMV生成部25に供給される。
ブロックBの動きベクトルMV(B)を取得したい場合には(ステップS16)、先ず、当該ブロックBの動きベクトルMV(B)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックBのマクロブロックタイプおよびサブマクロブロックに対応する、インデクス値が6の単位ブロック領域に対してコピーされる。
セレクタ101において第1の入力端が選択され、インデクス値lft_idx[3:0]4'd0が加算部102の一方の入力端に入力される。また、セレクタ104で第1の入力端が選択されて値4'd12が出力され、セレクタ105で第6の入力端が選択され、セレクタ104から出力された値4'd12が加算部102の他方の入力端に入力される。加算部102では、一方の入力端に入力されたインデクス値lft_idx[3:0]4'd0と他方の入力端に入力された値4'd12とが加算され、加算結果として隣接ブロックのインデクス値nbd_idx[3:0]4'd12が出力される(ステップS17)。
mv格納部106では、このインデクス値nbd_idx[3:0](値4'd12)に示される単位ブロック領域に書き込まれた動きベクトルMV(B)が読み出される(ステップS15)。この動きベクトルMV(B)がPMV生成部25に供給される。
次に、ブロックCの動きベクトルMV(C)が取得される。この例では、処理対象のブロックEの右上に接する、既に予測符号化が終了したブロックが存在しない。そのため、ブロックCの代わりにブロックDの動きベクトルMV(D)が取得される。当該ブロックDの動きベクトルMV(D)が、mv格納部106に供給され、ダイレクトモード用メモリ30上の、当該ブロックCのマクロブロックタイプおよびサブマクロブロックに対応する、インデクス値が5の単位ブロック領域に対してコピーされる。
セレクタ101において第1の入力端が選択され、インデクス値rht_idx[3:0]4'd10が加算部102の一方の入力端に入力される。インデクス値rht_idx[3:0]が値4'd10なので、処理はステップS24に移行される。
セレクタ105で第2の入力端が選択され、値4'd11が出力される。値4'd11は、加算部102の他方の入力端に入力される。加算部102において、第1の入力端に入力されたインデクス値lft_idx[3:0]4'd10と、他方の入力端に入力された値4'd11とが加算され、加算結果としてインデクス値nbd_idx[3:0]4'd5が得られる。
すなわち、加算結果は、値4'd21となり、2進数表記では「b10101」となるが、インデクス値nbd_idx[3:0]は、LSB側の4ビットのみを用いるため、「b0101」となり、値4'd5が得られる。インデクス値4'd5の単位ブロックは、ブロックEの左上と接する。
課題の項で既に述べたように、従来では、処理対象のマクロブロックEの予測動きベクトルPMVを求めるために、例えばマクロブロックBの動きベクトルを選択する場合、マクロブロックEとマクロブロックBとの組み合わせに、259=67081通りの組み合わせが存在し、処理時間が長期化すると共に、演算回路に高い処理能力が要求されていた。
一方、この発明の実施の一形態によれば、図10に例示されるように、mv格納部106により、メモリに対してラスタスキャン順に割り当てられた4×4画素の単位ブロック領域毎に動きベクトルMVを保持するようにしている。そのため、マクロブロックBの動きベクトルMV(B)は、lft_idx[3:0]+値4'd12という4ビットの加算処理のみで取得できる。そのため、処理時間の短縮、並びに演算量の削減が見込める。
次に、この発明の実施の一形態の変形例について説明する。上述では、メモリに対して、4×4画素の単位ブロック毎のインデクス値を、ラスタスキャン順に割り当てるようにしているが、これはこの例に限定されない。例えば、H.264の|AVCの規定によれば、4×4画素単位で画面内予測符号化(イントラ符号化)を行う場合には、図14に例示されるように、16×16画素のマクロブロックを8×8画素の中ブロックに4分割し、この中ブロックのそれぞれをさらに4×4画素の小ブロックに分割し、中ブロックを左上、右上、左下および右下の順に符号化すると共に、中ブロックのそれぞれを同様にして左上、右上、左下および右下の順に符号化する。
この発明の実施の一形態の変形例は、単位ブロック領域毎に割り当てるインデクス値を、このH.264|AVCに規定されるイントラ符号化の際の符号化順とした場合の例である。以下、この実施の一形態の変形例における隣接MV選択部26の処理について、概略的に説明する。
図15に例示されるように、処理対象のマクロブロック(E)と、予測動きベクトルを求めるための各マクロブロック(A)〜MB(D)のそれぞれについて、図14を用いて説明したように、マクロブロックを8×8画素の中ブロックに分割してマクロブロック内で左上、右上、左下、右下の順に並べ、中ブロックのそれぞれをさらに4×4画素の小ブロックに分割する。小ブロックのそれぞれに対して、中ブロック内の左上を起点として左上、右上、左下、右下の順に1ずつ増加するインデクス値を割り当て、このインデクス値を、中ブロック毎に順次増加させて割り当てる。
図16〜図19は、この実施の一形態の変形例による隣接MV選択部26における処理の例を示す。図16〜図19は、上述した図11におけるブロックA、B、CおよびDの動きベクトルMVを取得する際の処理にそれぞれ対応する。図16〜図19において、上述の図11と共通する部分には同一の符号を付し、詳細な説明を省略する。
図16は、この実施の一形態の変形例によるブロックAの動きベクトルMVを取得する際の一例の処理を示す。図16は、上述した図11における、ブロックAの動きベクトルMVを取得する際の処理を示すステップS11以下の処理に対応する。図16と図11とを比較して分かるように、実施の一形態の変形例では、上述の実施の一形態によるブロックAの動きベクトルMVの取得の例と比べ、判断分岐処理が1だけ増えている。
すなわち、この図16の例では、インデクス値lft_idx[3:0]が値4'd0、値4'd2、値4'd8または値4'd10の何れかであるか、値4'd4、値4'd6、値4'd12または値4'd14の何れかであるか、若しくは、これら以外の値であるかを判断し、判断結果に応じて、隣接ブロックのインデクス値nbd_idx[3:0]を求める。
より具体的には、インデクス値lft_idx[3:0]が値4'd0、値4'd2、値4'd8または値4'd10の何れかであると判断されれば(ステップS120)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd5とを加算した値として求める(ステップS130)。インデクス値lft_idx[3:0]が値4'd4、値4'd6、値4'd12または値4'd14の何れかであると判断されれば(ステップS121)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd13とを加算した値として求める(ステップS131)。また、インデクス値lft_idx[3:0]がこれら以外の値であると判断されれば、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd15とを加算した値として求める(ステップS132)。
図17は、この実施の一形態の変形例によるブロックBの動きベクトルMVを取得する際の一例の処理を示す。図17は、上述した図11における、ブロックBの動きベクトルMVを取得する際の処理を示すステップS16以下の処理に対応する。図17と図11とを比較して分かるように、実施の一形態の変形例では、上述の実施の一形態によるブロックBの動きベクトルMVの取得の例と比べ、判断分岐処理が1だけ増えている。
すなわち、この図17の例では、インデクス値lft_idx[3:0]が値4'd0、値4'd1、値4'd4、値4'd5、値4'd8、値4'd9、値4'd12または値4'd13の何れかであるか否かを判断し、判断結果に応じて、隣接ブロックのインデクス値nbd_idx[3:0]を求める。
より具体的には、インデクス値lft_idx[3:0]が値4'd0、値4'd1、値4'd4、値4'd5、値4'd8、値4'd9、値4'd12または値4'd13の何れかであると判断されれば(ステップS170)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd10とを加算した値として求める(ステップS171)。一方、インデクス値lft_idx[3:0]がこれらの値ではないと判断されれは、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd14とを加算した値として求める(ステップS172)。
図18は、この実施の一形態の変形例によるブロックCの動きベクトルMVを取得する際の一例の処理を示す。図18は、上述した図11における、ブロックCの動きベクトルMVを取得する際の処理を示すステップS18以下の処理に対応する。図18と図11とを比較して分かるように、実施の一形態の変形例では、上述の実施の一形態によるブロックCの動きベクトルMVの取得の例と比べ、判断分岐処理が3だけ増えている。
すなわち、この図18の例では、インデクス値rht_idx[3:0]が値4’d5であるか、値4’d1または値4’d9であるか、値4'd3または値4'd11であるか、値4'd0、値4'd4、値4’d8または値4’d12であるか、または、これらの何れの値でもないかを判断し、判断結果に応じて、隣接ブロックのインデクス値nbd_idx[3:0]を求める。
より具体的には、インデクス値rht_idx[3:0]が値4’d5であると判断されれば(ステップS190)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]と値4'd5とを加算した値として求める(ステップS200)。インデクス値rht_idx[3:0]が値4’d1または値4’d9の何れかであると判断されれば(ステップS191)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]と値4'd12とを加算した値として求める(ステップS201)。インデクス値rht_idx[3:0]が値4’d3または値4’d11の何れかであると判断されれば(ステップS192)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]と値4'd1とを加算した値として求める(ステップS202)。
インデクス値rht_idx[3:0]が値4'd0、値4'd4、値4’d8または値4’d12の何れかであると判断されれば(ステップS193)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]と値4'd11とを加算した値として求める(ステップS202)。一方、インデクス値rht_idx[3:0]がこれらの値の何れでもないと判断されれば、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値rht_idx[3:0]と値4'd15とを加算した値として求める(ステップS202)。
図19は、この実施の一形態の変形例によるブロックDの動きベクトルMVを取得する際の一例の処理を示す。図19は、上述した図11における、ブロックDの動きベクトルMVを取得する際の処理を示すステップS22以下の処理に対応する。図19と図11とを比較して分かるように、実施の一形態の変形例では、上述の実施の一形態によるブロックCの動きベクトルMVの取得の例と比べ、判断分岐処理が4だけ増えている。
すなわち、この図19の例では、インデクス値lft_idx[3:0]が値4'd0または値4d’8であるか、値4'd2または値4'd10であるか、値4'd4または値4'd12であるか、値4'd6または値4'd14であるか、値4'd1.値4'd5、値4'd9または値4'd13であるか、または、これらの何れの値でもないかを判断し、判断結果に応じて、隣接ブロックのインデクス値nbd_idx[3:0]を求める。
より具体的には、インデクス値lft_idx[3:0]が値4'd0または値4d’8の何れかであると判断されれば(ステップS220)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd15とを加算した値として求める(ステップS230)。インデクス値lft_idx[3:0]が値4'd2または値4'd10の何れかであると判断されれば(ステップS221)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd3とを加算した値として求める(ステップS231)。インデクス値lft_idx[3:0]が値4'd4または値4'd12の何れかであると判断されれば(ステップS222)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd7とを加算した値として求める(ステップS232)。
インデクス値lft_idx[3:0]が値4'd6または値4'd14の何れかであると判断されれば(ステップS223)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd11とを加算した値として求める(ステップS233)。インデクス値lft_idx[3:0]が値4'd1.値4'd5、値4'd9または値4'd13の何れかであると判断されれば(ステップS224)、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd9とを加算した値として求める(ステップS234)。一方、インデクス値lft_idx[3:0]がこれらの値の何れでもないと判断されれば、隣接ブロックのインデクス値nbd_idx[3:0]を、インデクス値lft_idx[3:0]と値4'd15とを加算した値として求める(ステップS235)。
このように、インデクス値をラスタスキャン順ではなく、例えばH.264n|AVCに規定されるイントラ予測符号の符号化順に定義した場合でも、この発明による処理を適用することができる。但しこの実施の一形態の変形例の場合、図16〜図19を用いて説明したように、実施の一形態によるラスタスキャン順にインデクス値を定義した場合に比べて判断分岐処理が多いので、処理速度や負荷などの点で、実施の一形態による処理に対して不利であると考えられる。
次に、この発明の実施の一形態の他の変形例について、概略的に説明する。
既に説明したように、ダイレクトモードは、Bピクチャについて、符号化済みのブロックから動き情報を予測生成することができる。そのため、ダイレクトモードに対応するためには、所定のピクチャについて、生成した全ての動きベクトルを保存しておく必要がある。このとき、当該所定のピクチャ内のマクロブロックにおいて、動き補償ブロックのサイズが全て4×4画素である場合が有り得る。そのため、ダイレクトモード用メモリ30は、4×4画素のブロックにおいて検出される可能性がある動きベクトルを、1マクロブロック当たり16ブロック分、それを1フレーム分格納可能な容量を持っている必要がある。
一方、H.264|AVCには、ピクチャタイプとしてBピクチャが存在しない、ベースライン(Baseline)プロファイルと呼ばれる小規模なプロファイルが規定されている。ベースラインプロファイルにおいては、ダイレクトモードが実行されないため、ベースラインプロファイルに準じた符号化を行う場合には、上述した動きベクトルを保存しておくためのメモリが必要なく、予測動きベクトルPMVを求めるために必要な動きベクトルのみをメモリに保存しておけばよいことになる。
すなわち、ベースプロファイルのような、ピクチャタイプとしてのBピクチャが存在しないシステムにおいて、図9に示されるmv格納部106に接続されるメモリは、例えば図10に例示されるブロックB、CおよびDではインデクス値4'd12、4'd13、4'd14および4’d15の動きベクトルMVを保存し、ブロックAではインデクス値4'd3、4'd7、4'd11および4'd15の動きベクトルMVのみを保存する構成とすることができ、動きベクトルMVを格納しておくメモリの容量を削減することができる。
この発明が適用される一例の符号化復号システムを概略的に示すブロック図である。 実施の一形態に適用される符号化装置の一例の構成を示すブロック図である。 ダイレクトモードを説明するための略線図である。 動き予測・補償ブロックに定義される複数のブロックサイズを示す略線図である。 発明の実施の一形態に適用される復号装置の一例の構成を示すブロック図である。 インデクス値について説明するための略線図である。 インデクス値Lft_idx[3:0]およびインデクス値rht_idx[3:0]をマクロブロックタイプおよびサブマクロブロックタイプと関連付けた一例のテーブルを示す略線図である。 動き補償ブロック左端および右端の単位ブロックのマクロブロック上での位置を示すと共に、対応するインデクス値Lft_idx[3:0]およびインデクス値rht_idx[3:0]を示す略線図である。 隣接MV選択部の一例の構成を示すブロック図である。 単位ブロックに対応する領域毎にラスタスキャン順で割り当てたインデクス値を対応付けることを説明するための略線図である。 隣接MV選択部における一例の処理を示すフローチャートである。 隣接MV選択部による処理をより具体的に説明するための略線図である。 隣接MV選択部による処理をより具体的に説明するための略線図である。 実施の一形態の変形例による一例のインデクス値の割り当てを示す略線図である。 実施の一形態の変形例による一例のインデクス値の割り当てを示す略線図である。 実施の一形態の変形例によるブロックAの動きベクトルMVを取得する際の一例の処理を示すフローチャートである。 実施の一形態の変形例によるブロックBの動きベクトルMVを取得する際の一例の処理を示すフローチャートである。 実施の一形態の変形例によるブロックCの動きベクトルMVを取得する際の一例の処理を示すフローチャートである。 実施の一形態の変形例によるブロックdの動きベクトルMVを取得する際の一例の処理を示すフローチャートである。 予測動きベクトルを用いた符号化について概略的に説明するための略線図である。 16×16画素のサイズを持つマクロブロックにおけるサブマクロブロックの組み合わせを示す略線図である。 16×16画素のサイズを持つマクロブロックにおけるサブマクロブロックの組み合わせを示す略線図である。 16×16画素のサイズを持つマクロブロックにおけるサブマクロブロックの組み合わせを示す略線図である。 16×16画素のサイズを持つマクロブロックにおけるサブマクロブロックの組み合わせを示す略線図である。
符号の説明
2 符号化装置
3 伝送路
4 復号装置
11 画像並べ替え部
12 減算部
13 直交変換部
14 量子化部
15 エントロピー符号化部
16 バッファ
17 レート制御部
20 逆量子化部
21 逆直交変換部
22 加算部
23 デブロックフィルタ
24 フレームメモリ
25 PMV生成部
26 隣接MV選択部
27 イントラ予測部
28 動き予測・補償部
29 選択部
30 ダイレクトモード用メモリ
100 ブロック値生成部
101,103,104,105 セレクタ
102 加算部
106 mv格納部

Claims (20)

  1. 1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、該単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成部と、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御部と、
    上記インデクス値生成部で生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部と
    を有し、
    上記動きベクトル読み出し部で読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるようにした
    ことを特徴とするデータ処理装置。
  2. 請求項1に記載のデータ処理装置において、
    上記動きベクトル格納部の上記単位ブロック領域に対し、上記マクロブロック内でのラスタスキャン順に上記インデクス値が割り当てられる
    ことを特徴とするデータ処理装置。
  3. 請求項1に記載のデータ処理装置において、
    上記動きベクトル読出部は、上記動きベクトル格納部の1の上記単位ブロック領域から上記動きベクトルを読み出す
    ことを特徴とするデータ処理装置。
  4. 請求項1に記載のデータ処理装置において、
    上記単位ブロックは、上記マクロブロックを垂直方向および水平方向にそれぞれ4分割してなり、
    上記動きベクトル読み出し部は、上記インデクス値生成部で生成された上記インデクス値と所定の値とを加算して上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求めるようにされ、
    上記動きベクトルを読み出す単位ブロック領域を示すインデクス値は、上記加算結果のLSB側4ビットのみを用いるようにした
    ことを特徴とするデータ処理装置。
  5. 1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有する
    ことを特徴とするデータ処理方法。
  6. 1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有するデータ処理方法をコンピュータに実行させる
    ことを特徴とするデータ処理プログラム。
  7. 動画像データを符号化する符号化装置において、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、該単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成部と、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御部と、
    上記インデクス値生成部で生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部と
    を有し、
    上記動きベクトル読み出し部で読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された画像データとの差分を符号化するようにした
    ことを特徴とする符号化装置。
  8. 請求項7に記載の符号化装置において、
    上記動きベクトル格納部の上記単位ブロック領域に対し、上記マクロブロック内でのラスタスキャン順に上記インデクス値が割り当てられる
    ことを特徴とする符号化装置。
  9. 請求項7に記載の符号化装置において、
    上記動きベクトル読出部は、上記動きベクトル格納部の1の上記単位ブロック領域から上記動きベクトルを読み出す
    ことを特徴とする符号化装置。
  10. 請求項7に記載の符号化装置において、
    上記単位ブロックは、上記マクロブロックを垂直方向および水平方向にそれぞれ4分割してなり、
    上記動きベクトル読み出し部は、上記インデクス値生成部で生成された上記インデクス値と所定の値とを加算して上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求めるようにされ、
    上記動きベクトルを読み出す単位ブロック領域を示すインデクス値は、上記加算結果のLSB側4ビットのみを用いるようにした
    ことを特徴とする符号化装置。
  11. 請求項7に記載の符号化装置において、
    画像データ内のブロックを該画像データに対して符号化順が前で表示順が前および/または後の符号化済み画像データの対応するブロックを用いて直接的に予測するダイレクトモードで該符号化済み画像データを格納するために用いる格納部を、上記動きベクトル格納部と兼用するようにした
    ことを特徴とする符号化装置。
  12. 動画像データを符号化する符号化方法において、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有し、
    上記動きベクトル読み出しのステップにより読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された画像データとの差分を符号化するようにした
    ことを特徴とする符号化方法。
  13. 動画像データを符号化する符号化方法をコンピュータに実行させる符号化プログラムにおいて、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有し、
    上記動きベクトル読み出しのステップにより読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎に求められた動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された画像データとの差分を符号化するようにした符号化方法をコンピュータ装置に実行させる
    ことを特徴とする符号化プログラム。
  14. ブロック毎に求められた動きベクトルと該動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号装置において、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられ、該単位ブロック領域に動きベクトルを格納するようにした動きベクトル格納部と、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成部と、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御部と、
    上記インデクス値生成部で生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出し部と
    を有し、
    上記動きベクトル読み出し部で読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された符号化画像データとを加算して復号処理を行うようにした
    ことを特徴とする復号装置。
  15. 請求項14に記載の復号装置において、
    上記動きベクトル格納部の上記単位ブロック領域に対し、上記マクロブロック内でのラスタスキャン順に上記インデクス値が割り当てられる
    ことを特徴とする復号装置。
  16. 請求項14に記載の復号装置において、
    上記動きベクトル読出部は、上記動きベクトル格納部の1の上記単位ブロック領域から上記動きベクトルを読み出す
    ことを特徴とする復号装置。
  17. 請求項14に記載の復号装置において、
    上記単位ブロックは、上記マクロブロックを垂直方向および水平方向にそれぞれ4分割してなり、
    上記動きベクトル読み出し部は、上記インデクス値生成部で生成された上記インデクス値と所定の値とを加算して上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求めるようにされ、
    上記動きベクトルを読み出す単位ブロック領域を示すインデクス値は、上記加算結果のLSB側4ビットのみを用いるようにした
    ことを特徴とする復号装置。
  18. 請求項14に記載の復号装置において、
    画像データ内のブロックを該画像データに対して符号化順が前で表示順が前および/または後の復号済み画像データの対応するブロックを用いて直接的に予測するダイレクトモードで該復号済み画像データを格納するために用いる格納部を、上記動きベクトル格納部と兼用するようにした
    ことを特徴とする復号装置。
  19. ブロック毎に求められた動きベクトルと該動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号方法において、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有し、
    上記動きベクトル読み出しのステップにより読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された符号化画像データとを加算して復号処理を行うようにした
    ことを特徴とする復号方法。
  20. ブロック毎に求められた動きベクトルと該動きベクトルを用いて求めた予測動きベクトルとに基づき生成された予測画像データと、入力された画像データとの差分が符号化された符号化画像データを復号する復号方法をコンピュータに実行させる復号プログラムにおいて、
    1画面を所定に分割したマクロブロックをさらに所定に分割した単位ブロックに対応した単位ブロック領域が、該マクロブロック内で所定の順序にインデクス値を割り当てられて設けられた動きベクトル格納部に対し、該単位ブロック領域に動きベクトルを格納するステップと、
    予測動きベクトルを求める、複数の異なるサイズを取り得る対象ブロックのサイズに基づき該対象ブロックの左上隅および右上隅の上記単位ブロックの位置に対応する上記インデクス値を生成するインデクス値生成のステップと、
    上記対象ブロックと同一の2次元画像領域内にあり該対象ブロックの左側、上側、右上または左上で該対象ブロックに接する、複数の異なるサイズを取り得る隣接ブロックの動きベクトルを、上記動きベクトル格納部の該隣接ブロックに対応したそれぞれの上記単位ブロック領域毎に複製して格納する格納制御のステップと、
    上記インデクス値生成のステップにより生成された上記インデクス値に基づき、上記動きベクトル格納部から上記動きベクトルを読み出す単位ブロック領域を示すインデクス値を求める動きベクトル読み出しのステップと、
    上記動きベクトル読み出しのステップで読み出された上記動きベクトルに基づき上記予測動きベクトルを求めるステップと
    を有し、
    上記動きベクトル読み出しのステップにより読み出された上記動きベクトルを用いて求めた上記予測動きベクトルと、ブロック毎の動きベクトルとに基づき予測画像データを生成し、該予測画像データと入力された符号化画像データとを加算して復号処理を行うようにした復号方法をコンピュータに実行させる
    ことを特徴とする復号プログラム。
JP2007177155A 2007-07-05 2007-07-05 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム Expired - Fee Related JP4325708B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007177155A JP4325708B2 (ja) 2007-07-05 2007-07-05 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
US12/145,215 US8204326B2 (en) 2007-07-05 2008-06-24 Data processing apparatus, data processing method and data processing program, encoding apparatus, encoding method and encoding program, and decoding apparatus, decoding method and decoding program
CN2008101264675A CN101340585B (zh) 2007-07-05 2008-07-03 数据处理设备、方法及编码设备、方法和解码设备、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007177155A JP4325708B2 (ja) 2007-07-05 2007-07-05 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム

Publications (2)

Publication Number Publication Date
JP2009017262A true JP2009017262A (ja) 2009-01-22
JP4325708B2 JP4325708B2 (ja) 2009-09-02

Family

ID=40214516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007177155A Expired - Fee Related JP4325708B2 (ja) 2007-07-05 2007-07-05 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム

Country Status (3)

Country Link
US (1) US8204326B2 (ja)
JP (1) JP4325708B2 (ja)
CN (1) CN101340585B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017076980A (ja) * 2016-10-24 2017-04-20 株式会社Jvcケンウッド 画像符号化装置
CN107948657A (zh) * 2011-03-21 2018-04-20 Lg 电子株式会社 选择运动矢量预测值的方法和使用其的设备

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628794B2 (en) * 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
CN104618719B (zh) * 2009-10-20 2018-11-09 夏普株式会社 运动图像编码装置、运动图像解码装置、运动图像编码方法及运动图像解码方法
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101768207B1 (ko) 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
KR101495724B1 (ko) 2010-02-02 2015-02-25 삼성전자주식회사 계층적 데이터 단위의 스캔 순서에 기반한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
JP5368631B2 (ja) * 2010-04-08 2013-12-18 株式会社東芝 画像符号化方法、装置、及びプログラム
CN108462874B (zh) * 2010-04-09 2022-06-07 三菱电机株式会社 运动图像编码装置以及运动图像解码装置
US8837592B2 (en) * 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
JP2012094959A (ja) * 2010-10-25 2012-05-17 Sony Corp 画像処理装置と画像処理方法およびプログラム
CN103209878B (zh) * 2010-11-16 2015-11-25 三菱电机株式会社 影像信息分发显示系统及影像信息分发显示方法
JP2012124591A (ja) * 2010-12-06 2012-06-28 Sony Corp 画像符号化装置と動きベクトル符号化方法、画像復号化装置と動きベクトル復号化方法、およびプログラム
EP3554078A1 (en) 2010-12-13 2019-10-16 Electronics and Telecommunications Research Institute Method and device for determining reference unit
CN107071460B (zh) * 2010-12-14 2020-03-06 M&K控股株式会社 用于编码运动画面的设备
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
CN102831571B (zh) * 2011-07-08 2014-10-22 图芯芯片技术(上海)有限公司 用流水线方式单步实现图形图像缩放、旋转的5阶滤波器的设计方法
KR20130050406A (ko) * 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
US9451277B2 (en) * 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9426463B2 (en) 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US20150181232A1 (en) * 2012-07-18 2015-06-25 Sony Corporation Image processing device and method
JP5798539B2 (ja) * 2012-09-24 2015-10-21 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測復号装置及び動画像予測復号方法
US9317770B2 (en) * 2013-04-28 2016-04-19 Tencent Technology (Shenzhen) Co., Ltd. Method, apparatus and terminal for detecting image stability
WO2016057323A1 (en) 2014-10-06 2016-04-14 Huawei Technologies Co., Ltd. Improved palette mode in high efficiency video coding (hevc) screen content coding (scc)
CN106331712B (zh) * 2015-06-30 2019-06-25 展讯通信(上海)有限公司 一种视频图像压缩方法
CN107833176A (zh) 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
US20210133854A1 (en) 2018-09-13 2021-05-06 Shanghai Cambricon Information Technology Co., Ltd. Information processing method and terminal device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05127809A (ja) * 1991-04-19 1993-05-25 Sharp Corp 三次元空間座標入力装置
EP0651574B1 (en) * 1993-03-24 2001-08-22 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
JP4034380B2 (ja) * 1996-10-31 2008-01-16 株式会社東芝 画像符号化/復号化方法及び装置
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
JP4015934B2 (ja) * 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
JP2004179687A (ja) * 2002-11-22 2004-06-24 Toshiba Corp 動画像符号化/復号化方法及び装置
JP4277793B2 (ja) * 2004-12-17 2009-06-10 ソニー株式会社 画像処理装置、符号化装置およびそれらの方法
KR100703751B1 (ko) * 2005-02-14 2007-04-06 삼성전자주식회사 가상 영역의 영상을 참조하여 인코딩 및 디코딩 하는 방법및 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948657A (zh) * 2011-03-21 2018-04-20 Lg 电子株式会社 选择运动矢量预测值的方法和使用其的设备
CN107979758A (zh) * 2011-03-21 2018-05-01 Lg 电子株式会社 选择运动矢量预测值的方法和使用其的设备
CN107979758B (zh) * 2011-03-21 2021-05-04 Lg 电子株式会社 选择运动矢量预测值的方法和使用其的设备
CN107948657B (zh) * 2011-03-21 2021-05-04 Lg 电子株式会社 选择运动矢量预测值的方法和使用其的设备
US10999598B2 (en) 2011-03-21 2021-05-04 Lg Electronics Inc. Method for selecting motion vector predictor and device using same
JP2017076980A (ja) * 2016-10-24 2017-04-20 株式会社Jvcケンウッド 画像符号化装置

Also Published As

Publication number Publication date
JP4325708B2 (ja) 2009-09-02
US8204326B2 (en) 2012-06-19
US20090010553A1 (en) 2009-01-08
CN101340585A (zh) 2009-01-07
CN101340585B (zh) 2011-05-11

Similar Documents

Publication Publication Date Title
JP4325708B2 (ja) データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
KR102398644B1 (ko) 인트라 예측 정보 부호화 방법 및 장치
TWI400960B (zh) Image processing apparatus and method
JP4617644B2 (ja) 符号化装置及び方法
JP2020018022A (ja) ビデオ符号化方法、ビデオ復号方法、ビデオエンコーダ、及びビデオデコーダ
KR20190046704A (ko) 비대칭 서브 블록 기반 영상 부호화/복호화 방법 및 장치
KR20190110960A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20130045152A (ko) 인트라 예측 모드 복호화 방법 및 장치
MXPA06002595A (es) Interfaz de programacion innovaciones en la codificacion descodificacion de macrobloques e informacion de movimiento para video intercalado y progresivo.
CN108093262B (zh) 图像解码装置
KR20130045150A (ko) 영상 복호화 방법 및 장치
JP2004140473A (ja) 画像情報符号化装置、復号化装置並びに画像情報符号化方法、復号化方法
KR20060109290A (ko) 화상 복호 장치 및 화상 복호 방법과 화상 복호 프로그램
WO2011125730A1 (ja) 画像符号化装置と画像符号化方法および画像復号化装置と画像復号化方法
KR20190110065A (ko) 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
CN116783889A (zh) 跨分量样本自适应偏移中的编解码增强
JP2012080571A (ja) 符号化装置及び方法
JP2017183910A (ja) 画像符号化装置及び画像符号化方法
US20220217397A1 (en) Video Processing Methods and Apparatuses of Determining Motion Vectors for Storage in Video Coding Systems
JP2024513978A (ja) クロス成分サンプル適応オフセットの符号化拡張
JP2020053725A (ja) 予測画像補正装置、画像符号化装置、画像復号装置、及びプログラム
JP4760551B2 (ja) 動きベクトル復号化方法および復号化装置
JP2012080569A (ja) 符号化装置及び方法
JP2012080570A (ja) 符号化装置及び方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090511

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090601

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees