JP2004165766A - 画像処理方法 - Google Patents
画像処理方法 Download PDFInfo
- Publication number
- JP2004165766A JP2004165766A JP2002326432A JP2002326432A JP2004165766A JP 2004165766 A JP2004165766 A JP 2004165766A JP 2002326432 A JP2002326432 A JP 2002326432A JP 2002326432 A JP2002326432 A JP 2002326432A JP 2004165766 A JP2004165766 A JP 2004165766A
- Authority
- JP
- Japan
- Prior art keywords
- pixel data
- register
- data group
- reference pixel
- group
- 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.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】テンプレートによって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する際に、処理対象画素の画素値を予測して符号化するのに必要な1次元的に連結された参照画素データ群をより少ない演算数で得る方法を提供することを目的とする。
【解決手段】原画像画素データ群が格納された第1のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第2のレジスタ群に取り出す処理と第1のレジスタ群に格納された原画像画素データ群をシフトする処理の2つの処理を行なうステップと、第2のレジスタ群に取り出された参照画素データ群に対して、それぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データを得るステップと、連結された参照画素データに基づいて、処理対象画素Aの画素値を予測して符号化するステップとを備える。
【選択図】 図1
【解決手段】原画像画素データ群が格納された第1のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第2のレジスタ群に取り出す処理と第1のレジスタ群に格納された原画像画素データ群をシフトする処理の2つの処理を行なうステップと、第2のレジスタ群に取り出された参照画素データ群に対して、それぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データを得るステップと、連結された参照画素データに基づいて、処理対象画素Aの画素値を予測して符号化するステップとを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する画像処理方法に関するものである。
【0002】
【従来の技術】
テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する方法を図4、図5を用いて説明する。
【0003】
図4は画像情報を符号化する際に使用するテンプレートの形状の例を示している。図5は第1のレジスタ群に読み込まれる原画像画素データ群から、1次元的に連結された参照画素データ群を得る様子を示している。
【0004】
テンプレートを用いて処理対象画素Aの画素値を予測して符号化するときには、周辺に位置する原画像画素データ群(図4の網掛け部分)を参照する。これらの参照画素データ群は通常メモリ上に格納されているので、参照画素データ群をレジスタへ読み込んで格納する必要がある。
【0005】
図4に示したテンプレートは3行にまたがっているので、図5(a)のように第1のレジスタ群として3個のレジスタ1、2、3を用意し、これらのレジスタへ原画像画素データ群を格納する。レジスタ1にはm−2行目の原画像画素データ群を、レジスタ2にはm−1行目の原画像画素データ群を、レジスタ3には処理対象画素Aと同一の行m(以下、処理対象行)の原画像画素データ群をそれぞれ読み込んで格納する。
【0006】
メモリからレジスタへのデータの読み込みは通常バイト単位で行なわれるので、参照画素データ群以外の不要な原画像画素データ群も同時に読み込んでしまうことがある。そこで、図5(b)のように第1のレジスタ群と同数の第2のレジスタ群としてレジスタ4、5、6を用意し、第1のレジスタ群から読み込んだ参照画素データ群にマスクをかけて第2のレジスタ群に参照画素データ群だけを取り出す。すなわち、レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの1行目の参照画素データ群を得る。また、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ5にテンプレートの2行目の参照画素データ群を得る。同様に、レジスタ3から読み込んだ原画像画素データ群にマスクをかけて、レジスタ6にテンプレートの3行目の参照画素データ群を得る。
【0007】
必要な全ての参照画素データ群は3個のレジスタ4、5、6に分割して格納されるが、このままでは処理対象画素Aの画素値を予測して符号化する処理が複雑になる。そこで、図5(c)のように参照画素データ群を1次元的に連結して参照画素データ群を一つのレジスタ7にまとめる。
【0008】
次に、前記連結された参照画素データ群を参照することによって処理対象画素Aの画素値を予測して符号化をする。
【0009】
処理対象画素Aの処理が終わると、新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備としてテンプレートを右方向に1画素分移動させる。
【0010】
従来の手法によって、第2のレジスタ群4、5、6に取り出された参照画素データ群から1次元的に連結された参照画素データ群をレジスタ7に得る様子を図6に2つ示す。
【0011】
図6(a)に示す例では、レジスタ4では左に2ビットシフト、レジスタ5では右に4ビットシフト、レジスタ6では右に12ビットシフトして、シフトされたそれぞれの参照画素データ群を連結することによって、レジスタ7に1次元的に連結された参照画素データ群を得る。
【0012】
一方、図6(b)に示す例では、レジスタ4では左に9ビットシフト、レジスタ5は左に3ビットシフト、レジスタ6では右に5ビットシフトして、シフトされたそれぞれの参照画素データを連結することによって、レジスタ7に1次元的に連結された参照画素データ群を得る。
【0013】
このように第2のレジスタ群における処理対象画素Aの相対位置が変わると、例えばレジスタ5のようにシフトする方向とシフトするビット数を変えなければ(図6(a)では右に4ビットシフト、図6(b)では左に3ビットシフト)、レジスタ7に1次元的に連結された参照画素データ群を得ることができない。実際には第2のレジスタ群における処理対象画素Aの相対位置によって8通りのシフト形態が考えられる。
【0014】
【発明が解決しようとする課題】
上記のように、従来手法では第2のレジスタ群における処理対象画素Aの相対位置によって、第2のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態を変えなければならないため、1次元的に連結された参照画素データ群を得るための演算数が多くなってしまう。
【0015】
本発明は、係る問題点を解決するためになされたもので、処理対象画素の画素値を予測して符号化するのに必要な連結された参照画素データ群を、より少ない演算数で得る方法を提供するものである。
【0016】
【課題を解決するための手段】
係る課題を解決するために、本発明の画像処理方法は、
原画像画素データ群が格納された第1のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第2のレジスタ群に取り出す処理と前記第1のレジスタ群の原画像画素データ群をシフトする処理とを行なう参照画素データ群取り出しステップと、
前記参照画素データ群取り出しステップで第2のレジスタ群に取り出された参照画素データ群に対してそれぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データ群を得る参照画素データ群連結ステップと、
前記参照画素データ群連結ステップで得られた連結された参照画素データ群を参照することによって、処理対象画素の画素値を予測して符号化する処理対象画素符号化ステップとを備える。
【0017】
(作用)
符号化の準備としてテンプレートを右方向に1画素分移動させていたかわりに、第1のレジスタ群に格納されている画素データ群を左に1ビットシフトすることで、第2のレジスタ群における処理対象画素Aの相対位置が変わらないようにできる。そのため、第2のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第2のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素を予測して符号化するのに必要な1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0018】
【発明の実施の形態】
以下、本発明に係る実施形態を詳細に説明する。
【0019】
(実施例1)
RISC(Reduced Instruction Set Computer)プロセッサを用いて画像情報を符号化する場合について図1、図2、図4を用いて説明する。
【0020】
図1は本実施例での処理の流れを示している。図2は図1に従って画像情報を符号化するときの様子を示している。また、従来例の説明と同様に図4に示したテンプレートを使用して本実施例の説明をする。
【0021】
符号化の準備として第1のレジスタ群としてレジスタ1、2、3を、第2のレジスタ群としてレジスタ4、5、6を、1次元的に連結された参照画素データ群を格納するためのレジスタ7を用意する。レジスタ1はm−2行目の原画像画素データを格納するために、レジスタ2はm−1行目の原画像画素データを格納するために、レジスタ3は処理対象行mの原画像画素データを格納するために使用する。
【0022】
ステップS101でメモリから原画像画素データ群を第1のレジスタ群に読み込むか否かを判定する。ステップS101で読み込むと判定された場合にはステップS102へ進み、読み込まないと判定された場合にはステップS103へ進む。
【0023】
ステップS102では、原画像画素データ群をメモリから第1のレジスタ群に読み込む。レジスタ1にはm−2行目の原画像画素データ群を、レジスタ2にはm−1行目の原画像画素データ群を読み込む。レジスタ3にはm行目の原画像画素データを読み込む。第1のレジスタ群に原画像画素データ群を読み込む前の様子を示したものが図2(a)で、読み込んだ後の様子を示したものが図2(b)である。原画像画素データ群の読み込みが終わるとステップS103へ進む。
【0024】
ステップS103では、処理対象画素Aの画素値を予測して符号化するのに必要な参照画素データ群を第2のレジスタ群に取り出す。レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの1行目の参照画素データ群を得る。また、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ5にテンプレートの2行目の参照画素データ群を得る。同様に、レジスタ3から読み込んだ原画像画素データ群にマスクをかけて、レジスタ6にテンプレートの3行目の参照画素データ群を得る。第2のレジスタ群に参照画素データ群が取り出された様子を示したものが図2(c)である。
【0025】
新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備として、第1のレジスタ群に格納している原画像画素データ群を1ビット左にシフトする。従来の手法ではテンプレートを右方向に1画素分移動させていたため、第2のレジスタ群における処理対象画素の相対位置が変わっていたが、本発明では第2のレジスタ群における処理対象画素の相対位置は変わらない。シフトされた後の第1のレジスタ群の様子を示したのが図2(d)である。ステップS103での2つの処理が終わるとステップS104へ進む。
【0026】
ステップS104では、ステップS103で第2のレジスタ群に取り出された参照画素データ群に所定のシフト操作を行なう。図2(c)では、レジスタ4は右に2ビットシフト、レジスタ5は右に8ビットシフト、レジスタ3は右に16ビットシフトする。従来手法のように第2のレジスタ群における処理対象画素Aの相対位置が変わることはないので、適用するシフト形態を変える必要がない。シフトされた後の第2のレジスタ群の様子を示したのが図2(e)である。
【0027】
また、ステップS104ではシフトされた参照画素データ群を論理和をとることで連結して、1次元的に連結された参照画素データ群を得る。この様子を示したのが図2(f)である。ステップS104での2つの処理が終わるとステップS105へ進む。
ステップS105では、ステップS104で得られた1次元的に連結された参照画素データ群を参照することによって処理対象画素Aの画素値を予測して符号化し、ステップS106に進む。
【0028】
ステップS106では、1行分の画素を全て復号したか否かを判定する。全て処理していなければ、ステップS101へ戻り、上記の処理を繰り返す。
【0029】
上記のように、実施例では第2のレジスタ群における処理対象画素Aの相対位置が変わらないため、第2のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態をかえる必要がなく、1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0030】
なお、レジスタ7を別に用意せずにレジスタ4、5、6のいずれかを代わりに使用してもよい。
【0031】
また、ステップS103において、先に第1のレジスタ群に格納している原画像画素データ群をシフトしておいてから、処理対象画素の画素値を予測して符号化するのに必要な参照画素データ群を第2のレジスタ群に取り出してもよい。この場合、ステップS104で参照画素データ群のシフト数が上記の場合と異なる。
【0032】
(実施例2)
SIMD(Single Instruction Multiple Data streams)演算を持つプロセッサを用いて画像情報を復号する場合について、図1、図3、図4を用いて説明する。
【0033】
図1は本実施例での処理の流れを示している。図3は図1に従って画像情報を符号化するときの様子を示している。また、説明には図4に示したテンプレートを使用する。
【0034】
実施例2では、テンプレートの形状とプロセッサに実装されている命令によって、使用するレジスタの数が適応的に変化する。例えば、図4に示したテンプレートを用い、プロセッサは64ビットレジスタを持ち、32ビット単位でシフト演算を適用できる場合には、図3のように第1のレジスタ群としてレジスタ1、2を、第2のレジスタ群としてレジスタ3、4を用意する。
【0035】
レジスタ1はm−2行目とm−1行目の原画像画素データ群を、レジスタ2は処理対象行mの原画像画素データ群を格納するために使用する。実施例2の処理の流れは実施例1と同じであるため、異なる部分についてのみ説明する。
【0036】
ステップS103では、レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ3にテンプレートの1行目と2行目の参照画素データ群を得る。同様に、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの3行目の参照画素データ群を得る。レジスタ1にはm−2行目とm−1行目の原画像画素データ群が格納されているため、実施例1の場合よりも少ない演算数で参照画素データ群への取り出しができる。第2のレジスタ群に参照画素データ群を取り出した様子を図3(b)に示す。
【0037】
また、新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備として、第1のレジスタ群に格納している原画像画素データ群を1ビット左にシフトするが、レジスタ1にはm−2行目とm−1行目の原画像画素データ群が格納されており、32ビット単位でシフトすることができるため、実施例1の場合よりも少ない演算数で復号済み画素データ群をシフトすることができる。第1のレジスタ群に格納されている復号済み画素データ群をシフトした様子を図3(c)に示す。
【0038】
上記のように、SIMD演算を持つプロセッサを用いた場合には、実施例1で説明したRISCプロセッサを用いた場合よりもさらに演算数を減らすことができる。
【0039】
(実施例3)
特別な命令を持つプロセッサを用いて画像情報を符号化する場合について図1、図2を用いて説明する。
【0040】
図1は本実施例での処理の流れを示している。図2は図1に従って画像情報を符号化するときの様子を示している。
実施例3の処理の流れは実施例1と同じであるため、異なる部分についてのみ説明する。
【0041】
例えば、特別な命令として、レジスタの所定の位置にあるデータ群を他のレジスタに取り出し、元のレジスタのデータ群を指定した数だけシフトするような命令があるとする。この場合、ステップS103において、図2(b)のレジスタ1に格納されている原画像画素データ群から、図2(c)のレジスタ4のように参照画素データ群を取り出す処理と、図2(d)のレジスタ1のように格納されている原画像画素データ群をシフトする処理が、1つの命令でできるため演算数を減らすことができる。
【0042】
また、レジスタに格納されているデータを指定した数だけシフトした後、他のレジスタとの論理和をとるような命令があるとする。この場合、ステップS104において、図2(c)の第2のレジスタ群に格納されている参照画素データ群から、図2(f)のレジスタ7に1次元的に連結された参照画素データ群を得るときの演算数を減らすことができる。
【0043】
このように特別な命令を持つプロセッサを用いた場合にも、実施例1よりもさらに少ない演算数で1次元的に連結された参照画素データ群を得ることができる。
【0044】
【発明の効果】
以上説明したように本発明によれば、符号化の準備としてテンプレートを右方向に1画素分移動させていたかわりに、第1のレジスタ群に格納されている画素データ群を左に1ビットシフトすることで、第2のレジスタ群における処理対象画素Aの相対位置が変わらないようにできる。そのため、第2のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第2のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素の復号に必要な1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0045】
実施例の説明では、図4に示したテンプレートを用いているが、これに限定されるわけではない。
【図面の簡単な説明】
【図1】テンプレートを用いた符号化方法の処理の流れを示す図。
【図2】本発明で連結された参照画素データ群を得る様子を示す図(RISCプロセッサ)。
【図3】発明で参照画素データ群を取り出す様子と原画像画素データ群をシフトする様子を示す図(SIMD演算を持つプロセッサ)。
【図4】画像情報の符号化に用いられるテンプレートの例を示す図。
【図5】連結された参照画素データ群を得る様子を示す図。
【図6】従来手法で連結された参照画素データ群を得る様子を示す図。
【発明の属する技術分野】
本発明は、テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する画像処理方法に関するものである。
【0002】
【従来の技術】
テンプレートの形状によって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する方法を図4、図5を用いて説明する。
【0003】
図4は画像情報を符号化する際に使用するテンプレートの形状の例を示している。図5は第1のレジスタ群に読み込まれる原画像画素データ群から、1次元的に連結された参照画素データ群を得る様子を示している。
【0004】
テンプレートを用いて処理対象画素Aの画素値を予測して符号化するときには、周辺に位置する原画像画素データ群(図4の網掛け部分)を参照する。これらの参照画素データ群は通常メモリ上に格納されているので、参照画素データ群をレジスタへ読み込んで格納する必要がある。
【0005】
図4に示したテンプレートは3行にまたがっているので、図5(a)のように第1のレジスタ群として3個のレジスタ1、2、3を用意し、これらのレジスタへ原画像画素データ群を格納する。レジスタ1にはm−2行目の原画像画素データ群を、レジスタ2にはm−1行目の原画像画素データ群を、レジスタ3には処理対象画素Aと同一の行m(以下、処理対象行)の原画像画素データ群をそれぞれ読み込んで格納する。
【0006】
メモリからレジスタへのデータの読み込みは通常バイト単位で行なわれるので、参照画素データ群以外の不要な原画像画素データ群も同時に読み込んでしまうことがある。そこで、図5(b)のように第1のレジスタ群と同数の第2のレジスタ群としてレジスタ4、5、6を用意し、第1のレジスタ群から読み込んだ参照画素データ群にマスクをかけて第2のレジスタ群に参照画素データ群だけを取り出す。すなわち、レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの1行目の参照画素データ群を得る。また、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ5にテンプレートの2行目の参照画素データ群を得る。同様に、レジスタ3から読み込んだ原画像画素データ群にマスクをかけて、レジスタ6にテンプレートの3行目の参照画素データ群を得る。
【0007】
必要な全ての参照画素データ群は3個のレジスタ4、5、6に分割して格納されるが、このままでは処理対象画素Aの画素値を予測して符号化する処理が複雑になる。そこで、図5(c)のように参照画素データ群を1次元的に連結して参照画素データ群を一つのレジスタ7にまとめる。
【0008】
次に、前記連結された参照画素データ群を参照することによって処理対象画素Aの画素値を予測して符号化をする。
【0009】
処理対象画素Aの処理が終わると、新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備としてテンプレートを右方向に1画素分移動させる。
【0010】
従来の手法によって、第2のレジスタ群4、5、6に取り出された参照画素データ群から1次元的に連結された参照画素データ群をレジスタ7に得る様子を図6に2つ示す。
【0011】
図6(a)に示す例では、レジスタ4では左に2ビットシフト、レジスタ5では右に4ビットシフト、レジスタ6では右に12ビットシフトして、シフトされたそれぞれの参照画素データ群を連結することによって、レジスタ7に1次元的に連結された参照画素データ群を得る。
【0012】
一方、図6(b)に示す例では、レジスタ4では左に9ビットシフト、レジスタ5は左に3ビットシフト、レジスタ6では右に5ビットシフトして、シフトされたそれぞれの参照画素データを連結することによって、レジスタ7に1次元的に連結された参照画素データ群を得る。
【0013】
このように第2のレジスタ群における処理対象画素Aの相対位置が変わると、例えばレジスタ5のようにシフトする方向とシフトするビット数を変えなければ(図6(a)では右に4ビットシフト、図6(b)では左に3ビットシフト)、レジスタ7に1次元的に連結された参照画素データ群を得ることができない。実際には第2のレジスタ群における処理対象画素Aの相対位置によって8通りのシフト形態が考えられる。
【0014】
【発明が解決しようとする課題】
上記のように、従来手法では第2のレジスタ群における処理対象画素Aの相対位置によって、第2のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態を変えなければならないため、1次元的に連結された参照画素データ群を得るための演算数が多くなってしまう。
【0015】
本発明は、係る問題点を解決するためになされたもので、処理対象画素の画素値を予測して符号化するのに必要な連結された参照画素データ群を、より少ない演算数で得る方法を提供するものである。
【0016】
【課題を解決するための手段】
係る課題を解決するために、本発明の画像処理方法は、
原画像画素データ群が格納された第1のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第2のレジスタ群に取り出す処理と前記第1のレジスタ群の原画像画素データ群をシフトする処理とを行なう参照画素データ群取り出しステップと、
前記参照画素データ群取り出しステップで第2のレジスタ群に取り出された参照画素データ群に対してそれぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データ群を得る参照画素データ群連結ステップと、
前記参照画素データ群連結ステップで得られた連結された参照画素データ群を参照することによって、処理対象画素の画素値を予測して符号化する処理対象画素符号化ステップとを備える。
【0017】
(作用)
符号化の準備としてテンプレートを右方向に1画素分移動させていたかわりに、第1のレジスタ群に格納されている画素データ群を左に1ビットシフトすることで、第2のレジスタ群における処理対象画素Aの相対位置が変わらないようにできる。そのため、第2のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第2のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素を予測して符号化するのに必要な1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0018】
【発明の実施の形態】
以下、本発明に係る実施形態を詳細に説明する。
【0019】
(実施例1)
RISC(Reduced Instruction Set Computer)プロセッサを用いて画像情報を符号化する場合について図1、図2、図4を用いて説明する。
【0020】
図1は本実施例での処理の流れを示している。図2は図1に従って画像情報を符号化するときの様子を示している。また、従来例の説明と同様に図4に示したテンプレートを使用して本実施例の説明をする。
【0021】
符号化の準備として第1のレジスタ群としてレジスタ1、2、3を、第2のレジスタ群としてレジスタ4、5、6を、1次元的に連結された参照画素データ群を格納するためのレジスタ7を用意する。レジスタ1はm−2行目の原画像画素データを格納するために、レジスタ2はm−1行目の原画像画素データを格納するために、レジスタ3は処理対象行mの原画像画素データを格納するために使用する。
【0022】
ステップS101でメモリから原画像画素データ群を第1のレジスタ群に読み込むか否かを判定する。ステップS101で読み込むと判定された場合にはステップS102へ進み、読み込まないと判定された場合にはステップS103へ進む。
【0023】
ステップS102では、原画像画素データ群をメモリから第1のレジスタ群に読み込む。レジスタ1にはm−2行目の原画像画素データ群を、レジスタ2にはm−1行目の原画像画素データ群を読み込む。レジスタ3にはm行目の原画像画素データを読み込む。第1のレジスタ群に原画像画素データ群を読み込む前の様子を示したものが図2(a)で、読み込んだ後の様子を示したものが図2(b)である。原画像画素データ群の読み込みが終わるとステップS103へ進む。
【0024】
ステップS103では、処理対象画素Aの画素値を予測して符号化するのに必要な参照画素データ群を第2のレジスタ群に取り出す。レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの1行目の参照画素データ群を得る。また、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ5にテンプレートの2行目の参照画素データ群を得る。同様に、レジスタ3から読み込んだ原画像画素データ群にマスクをかけて、レジスタ6にテンプレートの3行目の参照画素データ群を得る。第2のレジスタ群に参照画素データ群が取り出された様子を示したものが図2(c)である。
【0025】
新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備として、第1のレジスタ群に格納している原画像画素データ群を1ビット左にシフトする。従来の手法ではテンプレートを右方向に1画素分移動させていたため、第2のレジスタ群における処理対象画素の相対位置が変わっていたが、本発明では第2のレジスタ群における処理対象画素の相対位置は変わらない。シフトされた後の第1のレジスタ群の様子を示したのが図2(d)である。ステップS103での2つの処理が終わるとステップS104へ進む。
【0026】
ステップS104では、ステップS103で第2のレジスタ群に取り出された参照画素データ群に所定のシフト操作を行なう。図2(c)では、レジスタ4は右に2ビットシフト、レジスタ5は右に8ビットシフト、レジスタ3は右に16ビットシフトする。従来手法のように第2のレジスタ群における処理対象画素Aの相対位置が変わることはないので、適用するシフト形態を変える必要がない。シフトされた後の第2のレジスタ群の様子を示したのが図2(e)である。
【0027】
また、ステップS104ではシフトされた参照画素データ群を論理和をとることで連結して、1次元的に連結された参照画素データ群を得る。この様子を示したのが図2(f)である。ステップS104での2つの処理が終わるとステップS105へ進む。
ステップS105では、ステップS104で得られた1次元的に連結された参照画素データ群を参照することによって処理対象画素Aの画素値を予測して符号化し、ステップS106に進む。
【0028】
ステップS106では、1行分の画素を全て復号したか否かを判定する。全て処理していなければ、ステップS101へ戻り、上記の処理を繰り返す。
【0029】
上記のように、実施例では第2のレジスタ群における処理対象画素Aの相対位置が変わらないため、第2のレジスタ群に取り出される参照画素データ群に対して適用するシフト形態をかえる必要がなく、1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0030】
なお、レジスタ7を別に用意せずにレジスタ4、5、6のいずれかを代わりに使用してもよい。
【0031】
また、ステップS103において、先に第1のレジスタ群に格納している原画像画素データ群をシフトしておいてから、処理対象画素の画素値を予測して符号化するのに必要な参照画素データ群を第2のレジスタ群に取り出してもよい。この場合、ステップS104で参照画素データ群のシフト数が上記の場合と異なる。
【0032】
(実施例2)
SIMD(Single Instruction Multiple Data streams)演算を持つプロセッサを用いて画像情報を復号する場合について、図1、図3、図4を用いて説明する。
【0033】
図1は本実施例での処理の流れを示している。図3は図1に従って画像情報を符号化するときの様子を示している。また、説明には図4に示したテンプレートを使用する。
【0034】
実施例2では、テンプレートの形状とプロセッサに実装されている命令によって、使用するレジスタの数が適応的に変化する。例えば、図4に示したテンプレートを用い、プロセッサは64ビットレジスタを持ち、32ビット単位でシフト演算を適用できる場合には、図3のように第1のレジスタ群としてレジスタ1、2を、第2のレジスタ群としてレジスタ3、4を用意する。
【0035】
レジスタ1はm−2行目とm−1行目の原画像画素データ群を、レジスタ2は処理対象行mの原画像画素データ群を格納するために使用する。実施例2の処理の流れは実施例1と同じであるため、異なる部分についてのみ説明する。
【0036】
ステップS103では、レジスタ1から読み込んだ原画像画素データ群にマスクをかけて、レジスタ3にテンプレートの1行目と2行目の参照画素データ群を得る。同様に、レジスタ2から読み込んだ原画像画素データ群にマスクをかけて、レジスタ4にテンプレートの3行目の参照画素データ群を得る。レジスタ1にはm−2行目とm−1行目の原画像画素データ群が格納されているため、実施例1の場合よりも少ない演算数で参照画素データ群への取り出しができる。第2のレジスタ群に参照画素データ群を取り出した様子を図3(b)に示す。
【0037】
また、新たな処理対象画素であるAの右隣の画素の画素値を予測して符号化する準備として、第1のレジスタ群に格納している原画像画素データ群を1ビット左にシフトするが、レジスタ1にはm−2行目とm−1行目の原画像画素データ群が格納されており、32ビット単位でシフトすることができるため、実施例1の場合よりも少ない演算数で復号済み画素データ群をシフトすることができる。第1のレジスタ群に格納されている復号済み画素データ群をシフトした様子を図3(c)に示す。
【0038】
上記のように、SIMD演算を持つプロセッサを用いた場合には、実施例1で説明したRISCプロセッサを用いた場合よりもさらに演算数を減らすことができる。
【0039】
(実施例3)
特別な命令を持つプロセッサを用いて画像情報を符号化する場合について図1、図2を用いて説明する。
【0040】
図1は本実施例での処理の流れを示している。図2は図1に従って画像情報を符号化するときの様子を示している。
実施例3の処理の流れは実施例1と同じであるため、異なる部分についてのみ説明する。
【0041】
例えば、特別な命令として、レジスタの所定の位置にあるデータ群を他のレジスタに取り出し、元のレジスタのデータ群を指定した数だけシフトするような命令があるとする。この場合、ステップS103において、図2(b)のレジスタ1に格納されている原画像画素データ群から、図2(c)のレジスタ4のように参照画素データ群を取り出す処理と、図2(d)のレジスタ1のように格納されている原画像画素データ群をシフトする処理が、1つの命令でできるため演算数を減らすことができる。
【0042】
また、レジスタに格納されているデータを指定した数だけシフトした後、他のレジスタとの論理和をとるような命令があるとする。この場合、ステップS104において、図2(c)の第2のレジスタ群に格納されている参照画素データ群から、図2(f)のレジスタ7に1次元的に連結された参照画素データ群を得るときの演算数を減らすことができる。
【0043】
このように特別な命令を持つプロセッサを用いた場合にも、実施例1よりもさらに少ない演算数で1次元的に連結された参照画素データ群を得ることができる。
【0044】
【発明の効果】
以上説明したように本発明によれば、符号化の準備としてテンプレートを右方向に1画素分移動させていたかわりに、第1のレジスタ群に格納されている画素データ群を左に1ビットシフトすることで、第2のレジスタ群における処理対象画素Aの相対位置が変わらないようにできる。そのため、第2のレジスタ群の常に同じ位置にマスクをかけて参照画素データ群を得ることができる。また、第2のレジスタ群に取り出された参照画素データ群に対して適用するシフト形態を変える必要がなく、処理対象画素の復号に必要な1次元的に連結された参照画素データ群をより少ない演算数で得ることができる。
【0045】
実施例の説明では、図4に示したテンプレートを用いているが、これに限定されるわけではない。
【図面の簡単な説明】
【図1】テンプレートを用いた符号化方法の処理の流れを示す図。
【図2】本発明で連結された参照画素データ群を得る様子を示す図(RISCプロセッサ)。
【図3】発明で参照画素データ群を取り出す様子と原画像画素データ群をシフトする様子を示す図(SIMD演算を持つプロセッサ)。
【図4】画像情報の符号化に用いられるテンプレートの例を示す図。
【図5】連結された参照画素データ群を得る様子を示す図。
【図6】従来手法で連結された参照画素データ群を得る様子を示す図。
Claims (1)
- テンプレートによって決まる参照画素データ群から処理対象画素の画素値を予測して画像情報を符号化する方法であって、
原画像画素データ群が格納された第1のレジスタ群から、テンプレートの形状によって決まる参照画素データ群を第2のレジスタ群に取り出す処理と前記第1のレジスタ群の原画像画素データ群をシフトする処理とを行なう参照画素データ群取り出しステップと、
前記参照画素データ群取り出しステップで第2のレジスタ群に取り出された参照画素データ群に対してそれぞれ所定のシフト操作を行ない、シフトされた参照画素データ群を連結して、連結された参照画素データ群を得る参照画素データ群連結ステップと、
前記参照画素データ群連結ステップで得られた連結された参照画素データ群を参照することによって、処理対象画素の画素値を予測して符号化する処理対象画素符号化ステップと、
を有することを特徴とする符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002326432A JP2004165766A (ja) | 2002-11-11 | 2002-11-11 | 画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002326432A JP2004165766A (ja) | 2002-11-11 | 2002-11-11 | 画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004165766A true JP2004165766A (ja) | 2004-06-10 |
Family
ID=32805344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002326432A Withdrawn JP2004165766A (ja) | 2002-11-11 | 2002-11-11 | 画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004165766A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10311145B2 (en) | 2012-11-16 | 2019-06-04 | Arria Data2Text Limited | Method and apparatus for expressing time in an output text |
-
2002
- 2002-11-11 JP JP2002326432A patent/JP2004165766A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10311145B2 (en) | 2012-11-16 | 2019-06-04 | Arria Data2Text Limited | Method and apparatus for expressing time in an output text |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4750157B2 (ja) | データを右方向平行シフトマージする方法及び装置 | |
US7088371B2 (en) | Memory command handler for use in an image signal processor having a data driven architecture | |
US9201899B2 (en) | Transposition operation device, integrated circuit for the same, and transposition method | |
US11269638B2 (en) | Exposing valid byte lanes as vector predicates to CPU | |
US6912638B2 (en) | System-on-a-chip controller | |
US20090019269A1 (en) | Methods and Apparatus for a Bit Rake Instruction | |
US20030131030A1 (en) | Method and apparatus for parallel shift right merge of data | |
JP2008077590A (ja) | データ転送装置 | |
US8135229B1 (en) | Image processing method and device | |
JP2000207205A (ja) | 演算装置 | |
JPH09259268A (ja) | データストリームのブロックストップフィルタリング処理方法及びブロックストップフィルタリング処理を実行するコンピュータプログラムを記録した媒体 | |
JP2004165766A (ja) | 画像処理方法 | |
US6888892B2 (en) | Method for padding macroblocks | |
JP2002519957A (ja) | 符号関数を処理する方法および装置 | |
JP4817776B2 (ja) | データ処理装置、及びその制御方法 | |
EP1761845B1 (en) | Bit-plane extraction operation | |
JP2004336661A (ja) | 画像復号方法、画像復号装置 | |
JP2010134891A (ja) | 画像処理プロセッサ | |
US5894568A (en) | Apparatus and method for computing a difference in a digital processing system | |
JP4227441B2 (ja) | データ圧縮方法およびプロセッサ | |
KR101149883B1 (ko) | 데이터 처리 장치 | |
JP2004110250A (ja) | 逐次データ処理装置、画像読取装置、画像形成装置、プログラム及び記憶媒体 | |
WO1999030276A1 (fr) | Processeur de signaux numeriques et procede de traitement de signaux numeriques | |
JP2001344099A (ja) | 情報処理装置及び該装置における情報処理方法 | |
JPH01295568A (ja) | 画素合成処理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060207 |