JP2009049460A - 画像処理装置およびその方法、並びにプログラム - Google Patents
画像処理装置およびその方法、並びにプログラム Download PDFInfo
- Publication number
- JP2009049460A JP2009049460A JP2007210869A JP2007210869A JP2009049460A JP 2009049460 A JP2009049460 A JP 2009049460A JP 2007210869 A JP2007210869 A JP 2007210869A JP 2007210869 A JP2007210869 A JP 2007210869A JP 2009049460 A JP2009049460 A JP 2009049460A
- Authority
- JP
- Japan
- Prior art keywords
- data
- deblocking
- prediction
- processing
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】MBループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能な画像処理装置およびその方法、並びにプログラムを提供する。
【解決手段】ノイズ低減のためのデブロッキングフィルタをもつようなたとえばビデオ・コーデックの信号処理において、MB単位において予測処理とデブロッキング処理を完了させ、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置170において新たに隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持するように構成されている。
【選択図】図1
【解決手段】ノイズ低減のためのデブロッキングフィルタをもつようなたとえばビデオ・コーデックの信号処理において、MB単位において予測処理とデブロッキング処理を完了させ、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置170において新たに隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持するように構成されている。
【選択図】図1
Description
本発明は、デジタル画像を処理する画像処理装置およびその方法、並びにプログラムに関するものである。
近年、画像情報をデジタル化して取り扱い、その際、効率の高い情報の伝達および蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換(Discrete Cosine Transform:DCT)等の直交変換と動き補償とにより圧縮するMEPG(Moving Picture Experts Group)などの方式に準拠した装置が普及している。
そのMPEGにおいても、より高い解像度やより滑らかな画像表示を行うために高速なコーデック処理要求が高まってきおり、主にASIC等の専用回路を用いて高速化を図る手法がとられてきた。
しかし、画像伸張・圧縮手法に関しては多種多彩になってきており、専用回路での実現では、これらに柔軟に対応することが困難である。
しかし、画像伸張・圧縮手法に関しては多種多彩になってきており、専用回路での実現では、これらに柔軟に対応することが困難である。
その解決策として、処理装置であるCPUと再構成可能(リコンフィギュアブル)な演算装置を使用し、この再構成可能(リコンフィギュアブル)な演算装置の処理とCPU処理を並列化することにより高速化を図る手法が提案されている。
通常のH..264/AVC復号処理においては、1スライス(ピクチャ)内での各マクロブロック(MB)の逆量子化(IQ)、逆直交変換(IDCT)と予測処理(イントラ(intra)、インタ(inter))を終了し、同一スライス内に含まれる全MBデータを復号した後、ノイズ低減のためのデブロッキング処理を行う。
そして、再構成可能な演算装置は、内部に演算内容を定義した命令セット記憶レジスタ、演算器の集まりと演算に必要な係数を記憶するバッファ、処理データのRAM等のローカルな記憶装置(バッファ)を有する。
再構成可能な演算装置を用いた復号処理においては、CPU側で所定の処理を行っている間、演算装置では、ローカルな記憶装置へのデータのロード(LOAD)し、フレームバッファにストア(STORE)を行ったり、演算器で演算処理を行わせたりすることで、処理の効率化を図っている。
再構成可能な演算装置を用いた復号処理においては、CPU側で所定の処理を行っている間、演算装置では、ローカルな記憶装置へのデータのロード(LOAD)し、フレームバッファにストア(STORE)を行ったり、演算器で演算処理を行わせたりすることで、処理の効率化を図っている。
再構成可能な演算装置においては、ソフトウェア処理でサイクル数が大きくなりリアルタイム性を保証できるように、イントラ予測処理や動き補償に関するデータ処理を行う。
ところで、通常、復号処理においては、イントラ予測処理はデブロッキング処理前のデータを用いて予測を行うため、同一スライスに含まれるMB復号処理が終了するまでデブロッキング処理が行えない。
したがって、予測処理前後とデブロッキング処理前後に入力データのロードと処理結果のストアが発生し、結果的に処理時間が通常よりも多くかかる。
したがって、予測処理前後とデブロッキング処理前後に入力データのロードと処理結果のストアが発生し、結果的に処理時間が通常よりも多くかかる。
より具体的には、通常の復号手順のままでは、イントラ予測時もしくは動き補償時のデータを記憶装置(バッファ)にロードした後、再びフレームバッファにストアする。
その後再びでブロッキング処理時に同様に、データのロードとストア処理が発生するため、結果として処理サイクルが増える。
その後再びでブロッキング処理時に同様に、データのロードとストア処理が発生するため、結果として処理サイクルが増える。
本発明は、MBループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能な画像処理装置およびその方法、並びにプログラムを提供することにある。
本発明の第1の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理装置であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換部と、供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測部と、上記動き補償予測部の処理結果に対してデブロッキング処理を行うデブロッキング処理部と、フレームバッファと、上記逆直交変換部の処理および上記動き補償予測部の処理に応じた演算処理を行い、復号されたMBデータを生成可能で、上記デブロッキング処理部の処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータを上記フレームバッファにストアする演算装置と、を有し、上記演算装置は、上記逆直交変換部の処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する。
好適には、上記演算装置は、記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する。
好適には、上記動き補償予測部は、上記MC処理を行う場合、予測した動き情報に基づき上記フレームバッファに保持されている参照画像から予測MBを上記演算装置の記憶装置にロードさせ、上記演算装置は、所定精度の画素データの計算を行い、動き補償後のMBデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のMBデータとを加算して復号されたMBデータを生成し、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、上記記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する。
好適には、上記動き補償予測部は、上記イントラMBの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、上記演算装置は、上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のMBデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のMBデータとを加算して復号されたMBデータを生成し、上記記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する。
好適には、上記デブロッキング処理部は、デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、上記演算装置は、供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のMBデータを上記フレームバッファにストアする。
好適には、上記各処理が並列化され、パイプライン化されている。
本発明の第2の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理方法であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換ステップと、供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測ステップと、上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキングステップと、上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたMBデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータをフレームバッファにストアする演算ステップと、を有し、上記演算ステップにおいて、上記逆直交変換ステップの処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する。
本発明の第3の観点は、入力画像信号をブロック化し、当該ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理であって、逆量子化された係数データに対して逆直交変換処理を施す逆直交変換処理と、供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測処理と、上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキング処理と、上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたMBデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータをフレームバッファにストアする演算処理と、を有し、上記演算処理において、上記逆直交変換処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する画像処理をコンピュータに実行させるプログラムである。
本発明によれば、演算装置において、逆直交変換部の処理および動き補償予測部の処理に応じた演算処理が行われ、復号されたMBデータが生成される。また、デブロッキング処理部の処理に応じたフィルタリング処理が行われ、デブロッキング処理後のMBデータがフレームバッファにストアされる。
そして演算装置においては、逆直交変換部の処理およびMC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータが保持される。
そして演算装置においては、逆直交変換部の処理およびMC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータが保持される。
本発明によれば、MBループ処理内においてデブロッキング処理を行うことができ、また、データのロードとストアの回数を削減でき、ひいては全体処理の高速化を実現可能である。
以下、本発明の実施の形態を図面に関連付けて説明する。
図1は、本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
本画像処理装置100は、図1に示すように、可変長復号化部(VLD)110、逆量子化部(IQ)120、逆直交変換部としてのIDCT変換部(逆離散コサイン変換部)130、動き補償予測部140、デブロッキング処理部150、フレームバッファ160、およびたとえばソフトウェア的(SW的)に再構成可能(リコンフィギュアブル)な演算装置170を有する。
本実施形態に係る画像処理装置100においては、ノイズ低減のためのデブロッキングフィルタをもつようなビデオ・コーデックの信号処理において、MB単位において予測処理とデブロッキング処理を完了させる。そして、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置170において新たに隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持するように構成されている。
より具体的には、画像処理装置100においては、IDCT、MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の下端1ライン15画素(x,y)=(0,15)..(15,15)と右端1列15画素(x,y)= (15,0)..(15,15)を保持する記憶装置(ラインバッファ、カラムバッファ)をもつことによりMBループ処理内においてデブロッキング処理を行うことができるように構成されている。
また、この条件において、MB単位で復号に必要な各処理が完結するため、処理が並列化かつパイプライン化されている。
より具体的には、画像処理装置100においては、IDCT、MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の下端1ライン15画素(x,y)=(0,15)..(15,15)と右端1列15画素(x,y)= (15,0)..(15,15)を保持する記憶装置(ラインバッファ、カラムバッファ)をもつことによりMBループ処理内においてデブロッキング処理を行うことができるように構成されている。
また、この条件において、MB単位で復号に必要な各処理が完結するため、処理が並列化かつパイプライン化されている。
すなわち、本実施形態の画像処理装置100は、AVC復号のための処理アルゴリズムに基づき、MBループ内にてIDCT+MC(イントラMBの場合はイントラ予測)を行った後、継続してデブロッキングの処理を行う。
これを実現するために、本実施形態のリコンフィギュアブル(再構成可能)な演算装置170は、演算構成を定義するための命令構成レジスタ171、演算に必要な係数用のバッファ172、演算器173、画像データを保持するためのMBバッファ174、および処理アルゴリズムを実現するためのラインバッファおよびカラムバッファ175により構成されている。MBバッファ174とラインバッファおよびカラムバッファ175とによりデータメモリ(記憶装置)176が構成されている。
これを実現するために、本実施形態のリコンフィギュアブル(再構成可能)な演算装置170は、演算構成を定義するための命令構成レジスタ171、演算に必要な係数用のバッファ172、演算器173、画像データを保持するためのMBバッファ174、および処理アルゴリズムを実現するためのラインバッファおよびカラムバッファ175により構成されている。MBバッファ174とラインバッファおよびカラムバッファ175とによりデータメモリ(記憶装置)176が構成されている。
MBは、復号処理の1単位であり、たとえば16×16のデータサイズを有する。MBは、たとえば4つの輝度ブロック(Y0,Y1,Y2,Y3)と2つの色差ブロック(Cb,Cr)とマクロブロックヘッダから形成される。
マクロブロックヘッダにはCBP(Coded Block Pattern)と呼ばれる可変長符号VLCがあり、これはMBに含まれるブロックのうち特定のブロックに有効なデータの存在の有無を示す情報である。
マクロブロックヘッダにはCBP(Coded Block Pattern)と呼ばれる可変長符号VLCがあり、これはMBに含まれるブロックのうち特定のブロックに有効なデータの存在の有無を示す情報である。
可変長復号化部110は、図示しない符号化装置によって符号化されたデータを受けて可変長復号化処理を行い、処理の結果得られた量子化データを逆量子化部120に出力する。
逆量子化部120は、可変長復号化部110による量子化データをマクロブロック(MB)ごとに、たとえば16画素×16ライン(あるいは8画素×8ライン、4画素×4ライン)のブロック単位で逆量子化し、得られたDCT(Discrete Cosine Transform:離散コサイン変換)係数データをIDCT変換部130に出力する。
IDCT変換部130は、逆量子化部120により供給されるDCT係数データに対してIDCT処理を行い、得られた画素データを動き補償予測部140に出力する。
IDCT変換部130は、再構成可能な演算装置170に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ171に設定し、かつ係数データ(coef)を係数バッファ172にロードする。
IDCT変換部130は、再構成可能な演算装置170に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ171に設定し、かつ係数データ(coef)を係数バッファ172にロードする。
動き補償予測部140は、可変長復号化部110により供給された量子化データによりインタ(inter)MBかイントラ(intra)MBかを判別し、インタMBの場合には動き補償部141で所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測部142でイントラ予測を行う。
動き補償部141は、再構成可能な演算装置170に対して所定の演算を行うように演算構成を定義した命令セットを命令構成レジスタ171に設定する。
イントラ予測部142は、図2(A)〜(D)または図3(A)〜(I)に示されるような、イントラ予測の種別を判断し、再構成可能な演算装置170の命令構成レジスタ171に予測モードのみを設定する。
イントラ予測部142は、図2(A)〜(D)または図3(A)〜(I)に示されるような、イントラ予測の種別を判断し、再構成可能な演算装置170の命令構成レジスタ171に予測モードのみを設定する。
図2(A)〜(D)は、16×16イントラ予測の場合で、ハッチングを施した各ブロックが隣接MBの画素データである。
図2(A)は垂直(Vertical)スキャン、図2(B)は水平(Horizontal)スキャン、図2(C)はDC、図2(D)はプレーン(Plane)スキャンをそれぞれ示している。
図2(A)は垂直(Vertical)スキャン、図2(B)は水平(Horizontal)スキャン、図2(C)はDC、図2(D)はプレーン(Plane)スキャンをそれぞれ示している。
図3(A)〜(I)は、4×4イントラ予測の場合で、ハッチングを施した各ブロックが隣接MBの画素データである。
図3(A)は垂直(Vertical)スキャン、図3(B)は水平(Horizontal)スキャン、図3(C)はDC、図3(D)は斜め左下(Diagonal down−left)スキャン、図3(E)は斜め右下(Diagonal down−right)、図3(F)は垂直右(Vretical−right)スキャン、図3(G)は水平下(Horizontal−down)、図3(H)は垂直左(Vertical−left)スキャン、図3(I)は水平上(Horizontal−up)スキャンをそれぞれ示している。
図3(A)は垂直(Vertical)スキャン、図3(B)は水平(Horizontal)スキャン、図3(C)はDC、図3(D)は斜め左下(Diagonal down−left)スキャン、図3(E)は斜め右下(Diagonal down−right)、図3(F)は垂直右(Vretical−right)スキャン、図3(G)は水平下(Horizontal−down)、図3(H)は垂直左(Vertical−left)スキャン、図3(I)は水平上(Horizontal−up)スキャンをそれぞれ示している。
デブロッキング処理部150は、ノイズ低減のためのデブロッキング処理を行う。このデブロッキング処理においては、デブロッキングのモード計算が行われ、α、β、Bs、Tc値が係数バッファ172にロードされ、周辺画素データはフレームバッファ160からロードされる。
演算装置170は、IDCT変換部130により、所定の演算を行うように演算器構成を定義した命令セットが命令構成レジスタ171に設定され、かつ係数データ(coef)が係数バッファ172にロードされると、命令構成レジスタ171の内容に基づきIDCT処理を行い、結果をMBバッファ176に格納する。
演算装置170は、インタMBの場合、動き補償部141により、所定の演算を行うように演算構成を定義した命令セットが命令構成レジスタ171に設定され、予測した動きベクトルに基づきフレームバッファ160に保持されている参照画像から予測MBをMBバッファ176にロードされると、命令内容に基づき最小1/4画素精度の画素データの計算を行い、動き補償後のMBデータを復号する。
続いて演算装置170は、先のIDCT結果とMCデータを加算してこの処理MBの復号されたMBデータを生成する。
演算装置170は、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、Mbデータの(x,y)=(0,15)..(15,15)をラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーする。
続いて演算装置170は、先のIDCT結果とMCデータを加算してこの処理MBの復号されたMBデータを生成する。
演算装置170は、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、Mbデータの(x,y)=(0,15)..(15,15)をラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーする。
演算装置170は、イントラMBの場合、イントラ予測部142で種別が判断され、命令構成レジスタ171に予測モードが設定されると(この場合、参照画像からのデータロードは行わない)、予測モードに基づき該当する予測画素をラインバッファおよびカラムバッファ(Line Buffer/Column buffer)175を用いて、イントラ予測後のMBデータを復号する。
演算装置170は、イントラ予測後はインタMBのときと同様に既にIDCT後のデータと加算を行い、この処理MBの復号されたMBデータを生成する。
演算装置170は、復号後は同じくラインバッファおよびカラムバッファ(Line Buffer/Column Buffer)175に対して所定の画素データをコピーしておく。
演算装置170は、イントラ予測後はインタMBのときと同様に既にIDCT後のデータと加算を行い、この処理MBの復号されたMBデータを生成する。
演算装置170は、復号後は同じくラインバッファおよびカラムバッファ(Line Buffer/Column Buffer)175に対して所定の画素データをコピーしておく。
また、演算装置170は、デブロッキング処理に移行すると、復号後のMBデータが既にMBバッファ176に保持されたままであるため、デブロッキングのモード計算を行い、α、β、Bs、Tc値が係数バッファ172にロードされ、周辺画素データがフレームバッファ160からロードされると、入力された係数値を参照し垂直エッジのフィルタリング、水平エッジのフィルタリング処理を行う。
演算装置170は、デブロッキング処理が終了した後、最終的なMBデータをMBバッファ176からフレームバッファ160に対してストア処理を行う。
演算装置170は、デブロッキング処理が終了した後、最終的なMBデータをMBバッファ176からフレームバッファ160に対してストア処理を行う。
以下、図4〜図6に関連付けて、本実施形態に係る演算装置170におけるラインバッファおよびカラムバッファ175について説明をする。
ラインバッファはいわゆる横方向(水平方向)のバッファで、復号ピクチャの横1ライン分+1画素の画素数サイズを保持できるだけの容量を必要とする。
1画素はイントラ予測のタイプによっては隣接左上MBの画素を参照する可能性があるため、これに対応するためである。なお、ラインバッファを1ライン分にしてカラムバッファを1画素多く17画素分にしてもよい。実装の容易性に応じて適宜変更が可能である。
カラムバッファは縦方向(垂直方向)のバッファで16画素数分のサイズを保持できるだけの容量を必要とする。
1画素はイントラ予測のタイプによっては隣接左上MBの画素を参照する可能性があるため、これに対応するためである。なお、ラインバッファを1ライン分にしてカラムバッファを1画素多く17画素分にしてもよい。実装の容易性に応じて適宜変更が可能である。
カラムバッファは縦方向(垂直方向)のバッファで16画素数分のサイズを保持できるだけの容量を必要とする。
図4は、MB(Xi,Yj)をデコードするとき、ラインバッファとカラムバッファのデータの中身がどの位置の画素が保持されているかを示す図である。
このMBの予測画像生成後はデブロッキング処理前にラインバッファにおけるMB内の縦方向16ライン目の16画素をラインバッファに格納し、右方向縦16画素をカラムバッファに格納する。
このMBの予測画像生成後はデブロッキング処理前にラインバッファにおけるMB内の縦方向16ライン目の16画素をラインバッファに格納し、右方向縦16画素をカラムバッファに格納する。
図5は、図4の右隣に位置する次のMBをデコードするときのラインバッファとカラムバッファのデータの中身を示す図である。
ラインバッファには直前のMBの最下端16画素データとカラムバッファには右端の縦16画素に更新されている。このMBがイントラ予測の場合にはその予測タイプに応じてラインバッファ、カラムバッファの画素を用いて予測画像を生成する。予測画像生成後の動作は図4の説明と同様である。
ラインバッファには直前のMBの最下端16画素データとカラムバッファには右端の縦16画素に更新されている。このMBがイントラ予測の場合にはその予測タイプに応じてラインバッファ、カラムバッファの画素を用いて予測画像を生成する。予測画像生成後の動作は図4の説明と同様である。
最後に図6も同様に図1のMBの1MBライン下に位置するMBをデコードする際の各データの中身を示している。
図7は、本発明の実施形態に係るAVC復号のための処理アルゴリズムの全体を表すフローチャートである。図7においては、MBループ内にてIDCT+MC(イントラMBの場合はイントラ予測)を行った後、継続してデブロッキングの処理を行う処理アルゴリズムを表す。
以下、本実施形態に係る画像処理装置における復号処理手順を図7に関連付けて説明する。
以下、本実施形態に係る画像処理装置における復号処理手順を図7に関連付けて説明する。
AVCのデコードにおいてはNALユニット単位での復号処理となる。入力されたNALユニットはNヘッダ処理を行った後、可変長復号化部110において、可変長復号化処理が行われ、処理の結果得られた量子化データが逆量子化部120に出力される(ST1,ST2)。
逆量子化部120においては、可変長復号化部110による量子化データがマクロブロック(MB)ごとに、たとえば16画素×16ラインのブロック単位で逆量子化され、得られたDCT係数データがIDCT変換部130に出力される(ST3)。
逆量子化部120においては、可変長復号化部110による量子化データがマクロブロック(MB)ごとに、たとえば16画素×16ラインのブロック単位で逆量子化され、得られたDCT係数データがIDCT変換部130に出力される(ST3)。
IDCT変換部130においては、逆量子化部120により供給されるDCT係数データに対してIDCT処理が行われ、得られた画素データが動き補償予測部140に出力される(ST4)。
IDCT変換部130は、再構成可能な演算装置170に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ171に設定し、かつ係数データ(coef)を係数バッファ172にロードする。
演算装置170においては、命令構成レジスタ171の内容に基づきIDCT処理が行われ、結果がMBバッファ176に格納される。
IDCT変換部130は、再構成可能な演算装置170に対して所定の演算を行うように演算器構成を定義した命令セットを命令構成レジスタ171に設定し、かつ係数データ(coef)を係数バッファ172にロードする。
演算装置170においては、命令構成レジスタ171の内容に基づきIDCT処理が行われ、結果がMBバッファ176に格納される。
動き補償予測部140においては、可変長復号化部110により供給された量子化データによりイントラ(intra)MBかインタ(inter)MBかが判別される(ST5)。
ステップST5の判別の結果、インタMBの場合、動き補償部141で所定の動き補償(MC)が行われる(ST6)。
そして、動き補償部141により、再構成可能な演算装置170において、所定の演算を行うように演算構成を定義した命令セットが命令構成レジスタ171に設定され、予測した動きベクトルに基づきフレームバッファ160に保持されている参照画像から予測MBをMBバッファ176にロードされる。
演算装置170においては、演算器173で命令内容に基づき最小1/4画素精度の画素データの計算が行われ、動き補償後のMBデータが復号される。
続いて演算装置170では、先のIDCT結果とMCデータが加算されてこの処理MBの復号されたMBデータが生成される。
演算装置170においては、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、Mbデータの(x,y)=(0,15)..(15,15)がラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーされる(ST9)。
ステップST5の判別の結果、インタMBの場合、動き補償部141で所定の動き補償(MC)が行われる(ST6)。
そして、動き補償部141により、再構成可能な演算装置170において、所定の演算を行うように演算構成を定義した命令セットが命令構成レジスタ171に設定され、予測した動きベクトルに基づきフレームバッファ160に保持されている参照画像から予測MBをMBバッファ176にロードされる。
演算装置170においては、演算器173で命令内容に基づき最小1/4画素精度の画素データの計算が行われ、動き補償後のMBデータが復号される。
続いて演算装置170では、先のIDCT結果とMCデータが加算されてこの処理MBの復号されたMBデータが生成される。
演算装置170においては、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、Mbデータの(x,y)=(0,15)..(15,15)がラインバッファにおよび(x,y)=(15,0)..(15,15)をカラムバッファにコピーされる(ST9)。
ステップST5の判別の結果、イントラMBの場合、イントラ予測部142でイントラ予測が行われる(ST7)。イントラ予測部142でイントラ予測の種別が判断され、命令構成レジスタ171に予測モードが設定されると(この場合、参照画像からのデータロードは行わない)、予測モードに基づき該当する予測画素をラインバッファおよびカラムバッファ(Line Buffer/Column buffer)175を用いて、イントラ予測後のMBデータが復号される。
演算装置170においては、イントラ予測後はインタMBのときと同様に既にIDCT後のデータと加算が行われ、この処理MBの復号されたMBデータが生成される(ST8)。
演算装置170においては、復号後は同じくラインバッファおよびカラムバッファ(Line Buffer/Column Buffer)175に対して所定の画素データがコピーされる(ST9)。
演算装置170においては、イントラ予測後はインタMBのときと同様に既にIDCT後のデータと加算が行われ、この処理MBの復号されたMBデータが生成される(ST8)。
演算装置170においては、復号後は同じくラインバッファおよびカラムバッファ(Line Buffer/Column Buffer)175に対して所定の画素データがコピーされる(ST9)。
また、デブロッキング処理に移行すると、デブロッキング処理部150において、復号後のMBデータが既にMBバッファ176に保持されたままであるため、デブロッキングのモード計算が行われ、α、β、Bs、Tc値が係数バッファ172にロードされ、周辺画素データがフレームバッファ160からロードされると、演算装置170においては、入力された係数値を参照し垂直エッジのフィルタリング、水平エッジのフィルタリング処理が行われる(ST10)。
演算装置170においては、デブロッキング処理が終了した後、最終的なMBデータのMBバッファ176からフレームバッファ160に対してのストア処理が行われる(ST11)。
次のMB処理についてはステップST1に戻り同様の処理を行い、スライス(ピクチャ)全体の復号が行われる。
演算装置170においては、デブロッキング処理が終了した後、最終的なMBデータのMBバッファ176からフレームバッファ160に対してのストア処理が行われる(ST11)。
次のMB処理についてはステップST1に戻り同様の処理を行い、スライス(ピクチャ)全体の復号が行われる。
以上説明したように、本実施形態によれば、ノイズ低減のためのデブロッキングフィルタをもつようなたとえばビデオ・コーデックの信号処理において、MB単位において予測処理とデブロッキング処理を完了させ、イントラ予測用にはデブロッキング処理前の画素データが必要となるため、演算装置170において新たに隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持するように構成されている。
より具体的には、画像処理装置100においては、IDCT、MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の下端1ライン15画素(x,y)=(0,15)..(15,15)と右端1列15画素(x,y)= (15,0)..(15,15)を保持する記憶装置(ラインバッファ、カラムバッファ)をもつことによりMBループ処理内においてデブロッキング処理を行うことができるように構成されている。したがって、以下の効果を得ることができる。
より具体的には、画像処理装置100においては、IDCT、MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の下端1ライン15画素(x,y)=(0,15)..(15,15)と右端1列15画素(x,y)= (15,0)..(15,15)を保持する記憶装置(ラインバッファ、カラムバッファ)をもつことによりMBループ処理内においてデブロッキング処理を行うことができるように構成されている。したがって、以下の効果を得ることができる。
上記処理アルゴリズムと必要なラインバッファ、カラムバッファを併せ持つことにより、MBループ処理内においてデブロッキング処理を行うことができ、またデータのロードとストアは予測処理前とデブロッキング処理後の1回ずつで済み、全体としては処理の高速化が実現可能となる。
ラインバッファおよびカラムバッファを搭載し本アルゴリズムを適用することで処理単位をMBで完結できるため、CPUを増やすことでMB単位での並列処理を可能とし、全体としての復号処理時間を短縮することが容易となる。
ラインバッファおよびカラムバッファを搭載し本アルゴリズムを適用することで処理単位をMBで完結できるため、CPUを増やすことでMB単位での並列処理を可能とし、全体としての復号処理時間を短縮することが容易となる。
図8は、本実施形態に係る複数のCPUによる復号処理のパイプライン化例を示す図である。
図8の例は、実際にCPUを2つ使用し各処理をパイプライン動作させる場合の実施例である。
この図において、あるMBnの逆量子化(IQ)からイントラ・インタ(INTRA/INTER)予測処理までをCPU1にて処理し、次のMBのIQ処理に進む。
CPU2側では以降の処理すなわちIDCT+予測処理、ラインバッファおよびカラムバッファコピー、デブロッキング処理までを担当しフレームバッファに結果を格納する。 終了時点で既にCPU1側では次のMBn+1について再びIDCT+予測処理を行う。
この図において、あるMBnの逆量子化(IQ)からイントラ・インタ(INTRA/INTER)予測処理までをCPU1にて処理し、次のMBのIQ処理に進む。
CPU2側では以降の処理すなわちIDCT+予測処理、ラインバッファおよびカラムバッファコピー、デブロッキング処理までを担当しフレームバッファに結果を格納する。 終了時点で既にCPU1側では次のMBn+1について再びIDCT+予測処理を行う。
なお、上述した実施形態において、ソフトウェア的に再構成可能な演算装置を用いIDCT、イントラ予測、動き補償、デブロッキングの演算を処理しているが、これらの処理が専用ハードウェア処理に置き換えた場合も実現が可能である。
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
100・・・画像処理装置、110・・・変長復号化部、120・・・逆量子化部、130・・・IDCT変換部、140・・・動き補償予測部、141・・・動き補償部、142・・・動き予測部、150・・・デブロッキング処理部、160・・・フレームバッファ、170・・・演算装置、171・・・命令構成レジスタ、172・・・係数用バッファ、173・・・演算器、174・・・MBバッファ、175・・・ラインバッファおよびカラムバッファ。
Claims (11)
- ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理装置であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換部と、
供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測部と、
上記動き補償予測部の処理結果に対してデブロッキング処理を行うデブロッキング処理部と、
フレームバッファと、
上記逆直交変換部の処理および上記動き補償予測部の処理に応じた演算処理を行い、復号されたMBデータを生成可能で、上記デブロッキング処理部の処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータを上記フレームバッファにストアする演算装置と、を有し、
上記演算装置は、
上記逆直交変換部の処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する
画像処理装置。 - 上記演算装置は、
記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する
請求項1記載の画像処理装置。 - 上記動き補償予測部は、
上記MC処理を行う場合、予測した動き情報に基づき上記フレームバッファに保持されている参照画像から予測MBを上記演算装置の記憶装置にロードさせ、
上記演算装置は、
所定精度の画素データの計算を行い、動き補償後のMBデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のMBデータとを加算して復号されたMBデータを生成し、復号されたMBデータに対しては後続のMBがイントラ予測であった場合に備え、上記記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する
請求項2記載の画像処理装置。 - 上記動き補償予測部は、
上記イントラMBの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、
上記演算装置は、
上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のMBデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のMBデータとを加算して復号されたMBデータを生成し、上記記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する
請求項2記載の画像処理装置。 - 上記動き補償予測部は、
上記イントラMBの場合、イントラ予測の種別を判断し、上記演算装置に予測モード情報を供給し、
上記演算装置は、
上記予測モードに基づき、上記記憶装置の保持データを用いてイントラ予測後のMBデータを復号し、続いて先の逆直交変換処理結果と当該動き補償後のMBデータとを加算して復号されたMBデータを生成し、上記記憶装置に、デブロッキング前の復号後のMB内の下端1ライン分の画素データと右端1列分の画素データを保持する
請求項3記載の画像処理装置。 - 上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のMBデータを上記フレームバッファにストアする
請求項2記載の画像処理装置。 - 上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のMBデータを上記フレームバッファにストアする
請求項4記載の画像処理装置。 - 上記デブロッキング処理部は、
デブロッキングのモード計算を行って係数値を上記演算装置に供給し、周辺画素データを上記フレームバッファから上記記憶装置にロードさせ、
上記演算装置は、
供給された上記係数値を参照して上記フィルタリング処理を行い、当該処理後のMBデータを上記フレームバッファにストアする
請求項5記載の画像処理装置。 - 上記各処理が並列化され、パイプライン化されている
請求項8記載の画像処理装置。 - ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理方法であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換ステップと、
供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測ステップと、
上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキングステップと、
上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたMBデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータをフレームバッファにストアする演算ステップと、を有し、
上記演算ステップにおいて、
上記逆直交変換ステップの処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する
画像処理方法。 - ブロック単位で直交変換を施して量子化された画像圧縮情報を逆量子化し、逆直交変換を施して復号する画像処理であって、
逆量子化された係数データに対して逆直交変換処理を施す逆直交変換処理と、
供給された量子化データによりインタ(inter)マクロブロック(MB)かイントラ(intra)MBかを判別し、インタMBの場合には所定の動き補償(MC)を行い、イントラMBの場合にはイントラ予測を行う動き補償予測処理と、
上記動き補償予測ステップの処理結果に対してデブロッキング処理を行うデブロッキング処理と、
上記逆直交変換ステップの処理および上記動き補償予測ステップの処理に応じた演算処理を行い、復号されたMBデータを生成し、上記デブロッキングステップの処理に応じたフィルタリング処理を行い、デブロッキング処理後のMBデータをフレームバッファにストアする演算処理と、を有し、
上記演算処理において、
上記逆直交変換処理および上記MC処理とデブロッキング処理を後続MBの予測方法がイントラ予測である場合に備えて、デブロッキング前の復号後のMB内の新たな隣接上MBの最下端のデータと隣接左MBの最右端のデータを保持する
画像処理をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007210869A JP2009049460A (ja) | 2007-08-13 | 2007-08-13 | 画像処理装置およびその方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007210869A JP2009049460A (ja) | 2007-08-13 | 2007-08-13 | 画像処理装置およびその方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009049460A true JP2009049460A (ja) | 2009-03-05 |
Family
ID=40501313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007210869A Pending JP2009049460A (ja) | 2007-08-13 | 2007-08-13 | 画像処理装置およびその方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009049460A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454340A (zh) * | 2010-12-28 | 2017-02-22 | 杜比国际公司 | 用于选择性地破坏视频编码中的预测的方法和系统 |
-
2007
- 2007-08-13 JP JP2007210869A patent/JP2009049460A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454340A (zh) * | 2010-12-28 | 2017-02-22 | 杜比国际公司 | 用于选择性地破坏视频编码中的预测的方法和系统 |
CN106454340B (zh) * | 2010-12-28 | 2019-08-06 | 杜比国际公司 | 用于选择性地破坏视频编码中的预测的方法和系统 |
US10986344B2 (en) | 2010-12-28 | 2021-04-20 | Dolby Laboratories Licensing Corporation | Method and system for picture segmentation using columns |
US11178400B2 (en) | 2010-12-28 | 2021-11-16 | Dolby Laboratories Licensing Corporation | Method and system for selectively breaking prediction in video coding |
US11356670B2 (en) | 2010-12-28 | 2022-06-07 | Dolby Laboratories Licensing Corporation | Method and system for picture segmentation using columns |
US11582459B2 (en) | 2010-12-28 | 2023-02-14 | Dolby Laboratories Licensing Corporation | Method and system for picture segmentation using columns |
US11871000B2 (en) | 2010-12-28 | 2024-01-09 | Dolby Laboratories Licensing Corporation | Method and system for selectively breaking prediction in video coding |
US11949878B2 (en) | 2010-12-28 | 2024-04-02 | Dolby Laboratories Licensing Corporation | Method and system for picture segmentation using columns |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4182442B2 (ja) | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 | |
JP5390773B2 (ja) | オーバーラップスムージングおよびインループデブロッキングの区分的な処理 | |
US9106888B2 (en) | Reducing quantization artifacts using neighbor-based weighted dithering | |
TWI382764B (zh) | 用於儲存中間迴路過濾資料之暫存記憶體(scratch pad) | |
JP4699685B2 (ja) | 信号処理装置及びそれを用いた電子機器 | |
US8218640B2 (en) | Picture decoding using same-picture reference for pixel reconstruction | |
JP4924904B2 (ja) | データフレームのシーケンスの効率的な符号化/復号 | |
US20120328000A1 (en) | Video Decoding System Supporting Multiple Standards | |
US8184715B1 (en) | Method for efficiently executing video encoding operations on stream processor architectures | |
US20160007038A1 (en) | Late-stage mode conversions in pipelined video encoders | |
JP6415016B2 (ja) | 画像符号化装置、画像符号化方法及びプログラム | |
JP2007150913A (ja) | 画像符号化装置 | |
JP2006157925A (ja) | パイプラインデブロッキングフィルタ | |
Su et al. | Efficient parallel video processing techniques on GPU: from framework to implementation | |
JP2013090120A (ja) | 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム | |
KR101392349B1 (ko) | 비디오 디코딩 방법 및 장치 | |
MX2013000355A (es) | Dispositivo de procesamiento de imagenes, metodo de procesamiento de imagenes, y programa. | |
JP2007258882A (ja) | 画像復号装置 | |
JP2000175201A (ja) | 画像処理装置及び方法、並びに提供媒体 | |
JP2009049460A (ja) | 画像処理装置およびその方法、並びにプログラム | |
KR100636911B1 (ko) | 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치 | |
Jo et al. | Flexible multi-core platform for a multiple-format video decoder | |
JP4888224B2 (ja) | 画像処理装置およびその方法、並びにプログラム | |
Wei | H. 264 Baseline Real-time High Definition Encoder on CELL | |
JP5655100B2 (ja) | 画像音声信号処理装置及びそれを用いた電子機器 |