【0001】
【発明の属する技術分野】
本発明は、MPEG、H.26x等の様に、離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際に、若しくは光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる画像情報符号化装置に関するものである。
【0002】
【従来の技術】
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEGなどの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【0003】
特に、MPEG2(ISO/IEC 13818−2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4〜8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18〜22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【0004】
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496−2としてその規格が国際標準に承認された。
【0005】
更に、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU−T Q6/16 VCEG)という標準の規格化が進んでいる。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJVT(Joint Model of Enhanced−Compression Video Coding)として行われている。
【0006】
図1に離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像情報符号化装置のブロック図を示す。すなわち、1はA/D変換装置、2は画面並べ替えバッファ、3は加算器、4はイントラ予測装置、5は直交変換装置、6は量子化装置、7は可逆符号化装置、8は蓄積バッファ、9は逆量子化装置、10は逆直交変換装置、11は逆イントラ予測装置、12はデブロックフィルタ、13はフレームメモリ、14は動き予測・補償装置、15はレート制御装置である。
【0007】
図1において、入力となる画像信号は、まず、A/D変換装置1においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP(Group of Pictures)構造に応じ、画面並べ替えバッファ2においてフレームの並べ替えが行われる。イントラ符号化が行われる画像に関しては、イントラ予測装置4において、イントラ予測処理が行われた後、フレーム全体の画像情報が直交変換装置5に入力され、ここで離散コサイン変換、カルーネン・レーベ変換等の直交変換が施される。直交変換係数5の出力となる変換係数は、量子化装置6において量子化処理が施される。量子化装置6の出力となる、量子化された変換係数は、可逆変換装置7に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、蓄積バッファ8に蓄積され、画像圧縮情報として出力される。量子化装置6の挙動はレート制御装置15によって制御される。同時に、量子化装置6の出力となる、量子化された変換係数は、逆量子化装置9に入力され、更に逆直交変換装置10において逆直交変換処理が施され、逆イントラ予測装置11において逆イントラ予測処理が施された後、復号化画像情報となり、デブロックフィルタ12においてブロック歪の除去が施された後、その情報はフレームメモリ13に蓄積される。
【0008】
インター符号化が行われる画像に関しては、まず、画像情報は動き予測・補償装置14に入力される。同時に参照となる画像情報がフレームメモリ13より取り出され、動き予測・補償処理を施され、参照画像情報が生成される。参照画像情報は加算器3に送られ、ここで当該画像情報との差分信号へ変換される。動き補償・予測装置13は、同時に動きベクトル情報を可逆符号化装置7に出力し、その情報はやはり可変長符号化、算術符号化といった可逆符号化処理が施され、画像圧縮情報のヘッダ部に挿入される情報を形成する。その他の処理はイントラ符号化を施される画像圧縮情報と同様である。
【0009】
図2に離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像情報復号化装置のブロック図を示す。すなわち、16は蓄積バッファ、17は可逆符号化装置、18は逆量子化装置、19は逆直交変換装置、20は逆イントラ予測装置、21は加算器、22はデブロックフィルタ、23は画面並べ替えバッファ、24はD/A変換装置、25は動き予測・補償装置26はフレームメモリである。
【0010】
図2において、入力となる画像圧縮情報は、まず、蓄積バッファ16に格納された後、可逆復号化装置17に転送される。ここで、定められた画像圧縮情報のフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレームがインター符号化されたものである場合には、可逆復号化装置においては、画像圧縮情報のヘッダ部に格納された動きベクトル情報をも復号化し、その情報を動き予測・補償装置21へ転送する。
【0011】
可逆復号化装置の出力となる、量子化された変換係数は、逆量子化装置18に入力され、ここで変換係数として出力される。変換係数は、逆直交変換装置19において、定められた画像圧縮情報のフォーマットに基づき、逆離散コサイン変換、逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレームがイントラ符号化されたものである場合には、逆直交変換処理が施された画像情報は、逆イントラ予測装置20において逆イントラ予測処理が行われた後、デブロックフィルタ21においてブロック歪の除去が施され、画面並べ替えバッファ23に格納され、D/A変換処理の後に出力される。
【0012】
当該フレームがインター符号化されたものである場合には、可逆復号化処理が施された動きベクトル情報、及びフレームメモリ22に格納された画像情報を元に参照画像が生成され、この参照画像と、逆直交変換装置19の出力とが、加算器20において合成される。その他の処理はイントラ符号化されたフレームと同様である。
【0013】
以下では、イントラ予測装置4における動作原理について述べる。
【0014】
JVT符号化方式においては、輝度信号については、イントラ4×4モードと、イントラ16×16モードの2つのイントラモードが規定されている。以下では、まず、イントラ4×4モードにおけるイントラ予測について述べる。
【0015】
マクロブロックタイプがイントラ4×4モードの場合、輝度における予測は、モード0 〜 モード8の9種類の予測モードが用意されている。図3は、予測モードの予測方向を示す。図4は、当該4×4マクロブロックと、予測に用いる隣接画素の関係を示す。
【0016】
画素の予測値をPとすると、各モードにおける画素の予測値は、それぞれ以下のようになる。ただし、予測に用いる隣接画素A〜Qは、すでに復号化された画素である。もし、E〜Hが、復号化されていない、あるいは、当該4×4ブロックと別スライス、若しくは別フレームに属する場合、値DがE〜Hに代入される。M〜Pも同様な場合、値Lが代入される。
【0017】
モード0(DC Prediction)においては、すべての画素が同じ予測値Pを持つ。ただし、予測に用いる画素A〜Qの位置によって、以下のように、予測値の値が異なる。
Case 1: A, B, C, D, I, J, K, Lが当該4×4ブロックと同じsliceにある場合
P = (A+B+C+D+I+J+K+L+4)>>3
Case 2: I, J, K, and Lだけが当該4×4ブロックと同一スライスにある(A, B,C, and Dが異なるスライスに存在する)場合
P = (I+J+K+L+2)>>2
Case 3: A, B, C, and Dだけが4x4blockと同一スライスにある(I, J, K, and Lが異なるスライスに存在する)場合
P = (A+B+C+D+2)>>2
Case 4: A, B, C, D, I, J, K, Lがすべて異なるスライスに存在する場合
P = 128
【0018】
モード1(Veritcal Prediction)は、A, B, C ,D が当該4×4ブロックと同じスライスに所属する場合にのみ適用される。それぞれの予測値は、以下の様に生成される。
a, e, i,: P =A
b, f, j, n : P =B
c, g, k, o : P =C
d, h, l, p : P =D
【0019】
モード2(Horizontal Prediction)は、I, J, K ,L が当該4×4ブロックと同一スライスに存在する場合にのみ適用される。それぞれの予測値は、以下のように生成される。
a, b, c, d : P = I
e, f, g, h : P = J
i, j, k, l : P = K
m, n, o, p: P = L.
【0020】
モード3(Diagonal Down/Right Prediction)は、A, B, C, D, I, J, K, L, Qが全て当該4×4ブロックと同一スライスにある場合のみ適用される。それぞれの予測値は以下のように生成される。
m: P = (J + 2K + L + 2) >> 2
i, n : P = (I + 2J + K + 2) >> 2
e, j, o : P = (Q + 2I + J + 2) >> 2
a, f, k, p : P = (A + 2Q + I + 2) >> 2
b, g, l : P = (Q + 2A + B + 2) >> 2
c, h : P = (A + 2B + C + 2) >> 2
d : P = (B + 2C + D + 2) >> 2
【0021】
モード4(Diagonal Down/Left Prediction)は、A, B, C, D, I, J, K, L, Qが、全て当該4×4ブロックと同じスライスにある場合にのみ適用される。それぞれの予測値は以下のように生成される。
a : P = (A + 2B + C + I + 2J + K + 4) >> 3
b, e : P = (B + 2C + D + J + 2K + L + 4) >> 3
c, f, i : P =(C + 2D + E + K + 2L + M + 4) >> 3
d, g, j, m : P = (D + 2E + F + L + 2M + N + 4) >> 3
h, k, n : P= (E + 2F + G + M + 2N + O + 4) >> 3
l, o : P= (F + 2G + H + N + 2O + P + 4) >> 3
p : P= (G + H + O + P + 2) >> 3
【0022】
モード5(Vertical Left Prediction)は、A, B, C, D, I, J, K, L, Qが全て当該4×4ブロックと同一スライス内に存在する場合にのみ適用される。それぞれの予測値は以下のように生成される。
a, j : P = (Q + A + 1) >> 1
b, k : P = (A + B + 1) >> 1
c, l : P = (B + C + 1) >> 1
d : P = (C + D + 1) >> 1
e, n : P = (I + 2Q + A + 2) >> 2
f, o : P = (Q + 2A + B + 2) >> 2
g, p : P = (A + 2B + C + 2) >> 2
h : P = (B + 2C + D + 2) >> 2
i : P = (Q + 2I + J + 2) >> 2
m: P = (I + 2J + K + 2) >> 2
【0023】
モード6(Vertical Right Prediction)は、A, B, C, D, I, J, K, L, Qが全て当該4×4ブロックと同一スライス内に存在する場合にのみ適用される。それぞれの予測値は以下のように生成される。
a : P = (2A + 2B + J + 2K + L + 4) >> 3
b, i : P = (B + C + 1) >> 1
c, j : P = (C + D + 1) >> 1
d, k : P = (D + E + 1) >> 1
l : P = (E + F + 1) >> 1
e : P =(A + 2B + C + K + 2L + M + 4) >> 3
f, m : P = (B + 2C + D + 2) >> 2
g, n : P = (C + 2D + E + 2) >> 2
h, o : P = (D + 2E + F + 2) >> 2
p : P = (E + 2F + G + 2) >> 2
【0024】
モード7(Horizontal−up Prediction)は、A, B, C, D, I, J, K, L, Qが、全て当該4×4ブロックと同一スライス内に存在する場合のみ適用される。それぞれの予測値は以下のように生成される。
a : P = (B + 2C + D + 2I + 2J + 4) >> 3
b : P = (C + 2D + E + I + 2J + K + 4) >> 3
c, e : P = (D + 2E + F + 2J + 2K + 4) >> 3
d, f : P = (E + 2F + G + J + 2K + L + 4) >> 3
g, i : P = (F + 2G + H + 2K + 2L + 4) >> 3
h, j : P = (G + 3H + K + 3L + 4) >> 3
l, n : P = (L + 2M + N + 2) >> 3
k, m : P = (G + H + L + M + 2) >> 2
o : P = (M + N + 1) >> 1
p : P = (M + 2N + O + 2) >> 2
【0025】
モード8(Horizontal−down Prediction)は、A,B, C, D, I, J, K, L, Qが、全て当該4×4ブロックと同一スライス内に存在する場合にのみ適用される。それぞれの予測値は以下のように生成される。
a, g : P = (Q + I + 1) >> 1
b, h : P = (I + 2Q + A+ 2) >> 2
c : P = (Q + 2A + B+ 2) >> 2
d : P = (A + 2B + C+ 2) >> 2
e, k : P = (I + J + 1) >> 1
f, l : P = (Q + 2I + J+ 2) >> 2
i, o : P = (J + K + 1) >> 1
j, p : P = (I + 2J + K+ 2) >> 2
m : P = (K + L + 1) >> 1
n : P = (J + 2K + L + 2) >> 2
【0026】
次に、輝度信号に対するイントラ16×16予測モードについて述べる。
【0027】
イントラ16×16モードにおけるイントラ予測は、図5に示す、P(0, −1) 〜 P(15, −1) 並びにP(−1,0) 〜 P(−1,15)が隣接画素として用いられる。
【0028】
Mode0(Vertical Prediction)においては、現マクロブロックの上p(0, −1) 〜 p(15, −1) の16画素を予測値として用いる。すなわち、
Pred(i, j) = P(i, −1), i, j=0..15
【0029】
Mode1(Horizontal Prediction)においては、現マクロブロックの左p(−1, 0) 〜 p(−1, 15)の16画素を予測値として用いる。すなわち、
Pred(i, j) = P(−1, j), i, j=0..15
【0030】
Mode2(DC Prediction)においては、現マクロブロックの上16 画素、左16画素の平均値を予測値とするが、どちらかの16画素が当該16×16マクロブロックと別のスライスに属する場合は、予測の計算には用いない。どちらも別のスライスに存在する場合には、予測値を128とする。すなわち、
【0031】
Mode3(Plane Prediction)における予測値は以下のように生成される。
Pred(i,j) = clip1( (a + b・(i−7) + c・(j−7) +16) >> 5 )
ここで、
a = 16・(P(−1,15) + P(15,−1))
b = (5*H+32)>>6
c = (5*V+32)>>6
であり、また、HとVは
である。
【0032】
次に、色差信号のイントラ予測について述べる。
【0033】
色差予測モードは、以下に述べる1つのみが定義されている。すなわち、8×8色差信号ブロックは、図6に示すように、4つの4×4ブロックA, B, C, Dに分割され、それぞれの4×4ブロックに対して、単一の予測値が用いられる。図6において、S0, S1, S2, S3は、それぞれのブロックに隣接した4つの画素の、画素値の和である。
【0034】
予測値の生成は、以下の通りである。
【0035】
S0, S1, S2, S3 が当該16×16マクロブロックと同一スライスにある場合には、
A = (S0 + S2 + 4)>>3
B = (S1 + 2)>>2
C = (S3 + 2)>>2
D = (S1 + S3 + 4)>>3
とする。
【0036】
S0 and S1 のみが当該16×16マクロブロックと同一スライスにある場合には、
A = (S0 + 2)>>2
B = (S1 + 2)>>2
C = (S0 + 2)>>2
D = (S1 + 2)>>2
とする。
【0037】
S2 and S3 のみが当該16×16マクロブロックと同一スライスにある場合には、
A = (S2 + 2)>>2
B = (S2 + 2)>>2
C = (S3 + 2)>>2
D = (S3 + 2)>>2
とする。
【0038】
S0, S1, S2, S3 がすべて別スライスにある場合には
A = B = C = D = 128
とする。
【発明が解決しようとする課題】
【0039】
ところで、今、マクロブロックに含まれるそれぞれの4×4ブロックを、図7に示すようなデフォルトのスキャン順序で処理するとする。
【0040】
ブロック1におけるイントラ予測を行うためには、ブロック0に対する復号画像の画素情報が必要となる。これを実現するための、図1に示した画像情報符号化装置の処理は図8のように逐次処理となる。すなわち、パイプライン処理による処理を行うことが不可能となる。
【0041】
【課題を解決するための手段】
本発明は、上述した課題を解決するために、画像情報符号化装置においては、A/D変換装置、画面並べ替えバッファ、加算器、イントラ予測装置、直交変換装置、量子化装置、可逆符号化装置、蓄積バッファ、逆量子化装置、逆直交変換装置、逆イントラ予測装置、デブロックフィルタ、フレームメモリ、動き予測・補償装置、レート制御装置、ブロックアドレス検出装置、予測制御装置、ブロックアドレス検出装置並びに予測制御装置を兼ね備え、また、画像情報復号化装置においては、蓄積バッファ、可逆復号化装置、逆量子化装置、逆直交変換装置、逆イントラ予測装置、予測制御装置、ブロックアドレス検出装置、デブロックフィルタ、画面並べ替えバッファ、D/A変換装置、動き予測・補償装置並びにフレームメモリを兼ね備え、JVT画像情報符号化装置のように、単一のマクロブロックに複数のブロックを含み、このブロック毎にイントラ予測を行う画像情報符号化装置において、パイプライン処理に基づく高速なイントラ予測を行う手段を提供するものである。
【0042】
上記構成において、画像情報符号化装置では、A/D変換装置においては、入力となるアナログ画像信号をデジタル画像信号に変換し、画面並べ替えバッファにおいては、出力となる画像圧縮情報のGOP構造に応じてフレームの並べ替えを行い、イントラ予測装置においては、当該マクロブロックがイントラマクロブロックである場合には、イントラ予測処理を行い、ブロックアドレス検出装置においては、当該マクロブロックにおいて、どのブロックに対してイントラ予測処理が行われているかを検出し、予測制御装置においては、ブロックアドレス検出装置の出力に応じて、イントラ予測装置における動作原理の制御を行い、加算器においては、当該フレームがインター符号化される場合、入力フレームと参照フレームの差分の生成を行い、直交変換装置においては、入力フレーム、若しくは入力フレームと参照フレームの差分値に、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、量子化装置においては、直交変換が施された変換係数の量子化処理を行い、可逆符号化装置においては、量子化された変換係数に対して、可変長符号化若しくは算術符号化に基づく可逆符号化処理を行い、蓄積バッファにおいては、可逆変換された画像圧縮情報の蓄積を行い、逆量子化装置においては、量子化された変換係数の逆量子化を行い、逆直交変換装置においては、逆量子化が施された直交変換係数の逆直交変換を行い、逆イントラ予測装置においては、当該マクロブロックがイントラマクロブロックであった場合には、逆直交変換された画素値の差分情報に対して逆イントラ予測処理を行い、ブロックアドレス検出装置においては、当該マクロブロックにおいて、どのブロックに対して逆イントラ予測処理が行われているかを検出し、予測制御装置においては、ブロックアドレス検出装置の出力に応じて、逆イントラ予測装置における動作原理の制御を行い、デブロックフィルタにおいては、復号画像に含まれるブロック歪の除去を行い、フレームメモリにおいては、予測画像の格納を行い、動き予測・補償装置においては、フレームメモリに格納された予測画像を入力として、動きベクトル情報の探索並びに動き補償処理を行い、レート制御装置においては、フィードバック制御により量子化装置の動作の制御を行う。
【0043】
また、画像情報復号化装置では、蓄積バッファにおいては、入力となる画像圧縮情報の蓄積を行い、可逆復号化装置においては、可変長符号化若しくは算術符号化に基づく可逆復号化処理を行い、逆量子化装置においては、可逆復号化処理の結果得られる、量子化された直交変換係数の逆量子化処理を行い、逆直交変換装置においては、逆量子化された直交変換係数に対して逆直交変換処理を行い、加算器においては、当該マクロブロックがインターマクロブロックである場合には、逆直交変換の結果得られる画素値の差分情報と、参照画像の合成を行い、逆イントラ予測装置においては、当該マクロブロックがイントラマクロブロックであった場合には、逆直交変換された画素値の差分情報に対して逆イントラ予測処理を行い、ブロックアドレス検出装置においては、当該マクロブロックにおいて、どのブロックに対して逆イントラ予測処理が行われているかを検出し、予測制御装置においては、ブロックアドレス検出装置の出力に応じて、逆イントラ予測装置における動作原理の制御を行い、デブロックフィルタにおいては、画像情報に含まれるブロック歪の除去を行い、画面並べ替えバッファにおいては、入力となる画像圧縮情報のGOP構造に応じた、画像情報の並べ替えを行い、D/A変換装置においては、デジタル信号である画像情報をアナログ信号に変換し、動き予測・補償装置においては、当該マクロブロックがインター符号化されている場合には、画像圧縮情報中に含まれる動きベクトル情報をも用いて参照画像の生成を行い、フレームメモリにおいては、参照となる復号画像の蓄積を行う。
【0044】
【発明の実施の形態】
以下、図面を参照し、本発明の実施例について説明する。
【0045】
(実施例)図9に、本発明による画像情報符号化装置の実施例を示す。すなわち、27はA/D変換装置、28は画面並べ替えバッファ、29は加算器、30はイントラ予測装置31は直交変換装置、32は量子化装置、33は可逆符号化装置、34は蓄積バッファ、35は逆量子化装置、36は逆直交変換装置、37は逆イントラ予測装置、38はデブロックフィルタ、39はフレームメモリ、40は動き予測・補償装置、41はレート制御装置、42はブロックアドレス検出装置、43は予測制御装置、44はブロックアドレス検出装置、45は予測制御装置である。
【0046】
また、図10に、本発明による画像情報復号化装置の実施例を示す。すなわち46は蓄積バッファ、47は可逆復号化装置、48は逆量子化装置、49は逆直交変換装置、50は逆イントラ予測装置、51は予測制御装置、52はブロックアドレス検出装置、53はデブロックフィルタ、54は画面並べ替えバッファ、55はD/A変換装置、56は動き予測・補償装置、57はフレームメモリである。
【0047】
図9において、イントラ予測装置30、逆イントラ予測装置37、ブロックアドレス検出装置42、予測制御装置43、ブロックアドレス検出装置44、予測制御装置45以外における動作原理は図1に示した画像情報符号化装置と同様である。また、図10において、逆イントラ予測装置50、予測制御装置51、ブロックアドレス検出装置52以外における動作原理は図2に示した画像情報復号化装置と同様である。更に、また、ブロックアドレス検出装置42における動作原理は、ブロックアドレス検出装置44及びブロックアドレス検出装置52と同様であり、予測制御装置43における動作原理は、予測制御装置45及び予測制御装置51における動作原理と同様である。以下では、イントラ予測装置30、ブロックアドレス検出装置42、予測制御装置43における動作原理についてのみ述べることとする。
【0048】
イントラ予測装置30においては、図7に示したようなラスタースキャン順の処理を行うのではなく、図11(a)若しくは図11(b)に示したような順番で一連の処理を行う。
【0049】
ここで、従来例で述べられた方法によりイントラ予測を行うと、図4における、当該ブロックの左下に隣接する画素値M〜P、並びに、当該ブロックの右上に隣接する画素値E〜Hを用いることは、パイプライン処理による高速演算を実現するための妨げとなる。
【0050】
そこで、本発明では、従来例で述べられたイントラ予測に代え、これらの画素値を用いないイントラ予測を行う。このようなイントラ予測の一連を図12に示す。
【0051】
これにより、図11(a)に示した方法で、ブロック1,2,3を処理する際には、図13に示すようなパイプラインを組んで処理することが可能となり、高速な画像符号化処理を可能とする。
【0052】
しかしながら、図11(a)及び図11(b)のいずれの場合を用いた場合も、図14の斜線で示した4×4ブロックに関しては、図13に示したようなパイプライン処理を行う場合、■で示した位置における復号画像の画素値を用いたイントラ予測を行うことが出来ないという問題点を有する。
【0053】
かかる問題点は、以下の2通りのいずれかの方式により回避することが可能である。
【0054】
第一の方法は、■で示した復号画像の画素値に代えて、128を予測値として用いる方法である。
【0055】
第二の方法は、図15に示したように、■で示した位置に対する復号画像の画素値に代え、斜線で示した、既に復号済みの画素値をイントラ予測に用いる方法である。
【0056】
以上のいずれかの方法を用いることにより、イントラ予測に伴う画質劣化を最小限に抑えながら、パイプラインによる4×4ブロック毎の高速な処理を可能とする。
【0057】
尚、図16に示したようなパイプラインにより処理を行うことにより、更なる高速化が可能となるが、この時、図11(a)に示したような順序で処理を行った場合、図17の斜線で示した部分の復号画像が、当該4×4ブロックを処理する際に存在しないことになる。
【0058】
この場合も、上述のいずれかの方法により、画質劣化を最小限に抑えながら、パイプラインによる高速な処理を実現することが可能となる。
【0059】
上述のパイプライン処理は、入力となる画像圧縮情報が、例えば720×480若しくは1920×1080といった、大きな画枠のものである際必要となるものであり、画像圧縮情報が176×144といった小さな画枠のものであって、符号化処理及び復号化処理を行う装置の演算能力が十分高い場合には、必ずしも実時間処理を行うには必要とならない。したがって、画像圧縮情報中に、図7に示した順序で復号化処理を行うか、図11に示した順序で復号化処理処理を行うかに関する処理を行うかを示す情報を埋め込む必要がある。
【0060】
このため、1ビットのフラグをシーケンスヘッダに埋め込み、図7に示した方法と、図11に示した方法のいずれを用いるかを図10で示した画像情報復号化装置で選択することを可能とする。
【0061】
このフラグは、シーケンスヘッダではなく、ピクチャヘッダに埋め込まれても良い。すなわち、例えば、フレームレートがシーケンスの途中でより小さな値に変化して、パイプライン処理が必要ではなくなった場合、逆に、フレームレートがシーケンスの途中でより大きな値に変化して、パイプライン処理が必要となった場合には、ピクチャヘッダにあるフラグを図10に示した復号化装置で読み取り、処理の切り替えを行う。フラグはピクチャヘッダに必ず伝送されても良いし、オプションとして伝送されても良い。後者の場合には、フラグが伝送されない場合には、直前に復号化された画像と同様の処理を行う。
【0062】
更に、また、上述の第一若しくは第二の方法は、図11に示した順序により復号化処理を行う場合のみならず、図7に示したような、通常のラスタースキャンオーダーで復号化処理を行う場合にも適用可能である。
【0063】
すなわち、例えば、図7において、4×4ブロック2を処理する際には、イントラ予測に用いられる、左部の隣接画素は、当該マクロブロックには属しておらず、パイプライン処理を行う場合も、既に復号化済みであるが、4×4ブロック3に関しては、パイプライン処理を用いた高速演算を行う場合には、左部の隣接画素に関する復号化処理を用いることが不可能である。
【0064】
この時、図18に示すように、4×4ブロック1、3、9、11、5,7,13,15に対する左部の隣接画素を、4×4ブロック0、2、8、10、4、6、12、14に対する左部の隣接画素として用いるか、またはこれらに代わる値として固定値(たとえば128)を用いることで、また、同様に、4×4ブロック2,3,6,7、10、11、14、15対する上部の隣接画素を、4×4ブロック0,1,4,5,8,9,12,13、に対する上部の隣接画素として用いるか、またはこれらに代わる値 として固定値(たとえば128)を用いることで、画質劣化を最小限に抑えながら、パイプライン処理における高速処理が可能となる。ここでは、4x4Blockの4つ(たとえば、0、1、2、3や、4、5、6、7、)を中間階層(単位)として符号化(もしくは復号)する場合の実施例を示したが、4x4Blockを単位として符号化(もしくは復号)する場合には、ブロック3を符号化する場合の左隣の画素の代わりに、ブロック2の左隣の画素を用いるが、上部の画素は、ブロック1の復号が終了しているので、そのままブロック1の画素を用いる。
【0065】
かかる処理を行うためには、図9に示した画像情報符号化装置の出力となる画像圧縮情報において、それぞれの4×4ブロックに対して、通常のイントラ予測が行われたか、上述の第一若しくは第二の方法がイントラ予測に適用されたかを示す情報をフラグ(例えば1ビットのフラグでよい)として伝送する。
【0066】
このフラグは、シーケンスヘッダもしくはピクチャヘッダもしくは、スライスヘッダにおいて、伝送される。すなわち、当該画像圧縮情報に含まれる全てのイントラマクロブロックに対して、通常のイントラ予測が行われるか、回避モードのイントラ予測が行われるかに関する情報が埋め込まれる。
【0067】
このフラグは上述したように、シーケンスヘッダもしくはピクチャヘッダもしくは、スライスヘッダを単位として伝送することができる。すなわち、例えば、フレームレートがシーケンスの途中でより小さな値に変化して、パイプライン処理が必要ではなくなった場合、逆に、フレームレートがシーケンスの途中でより大きな値に変化して、パイプライン処理が必要となった場合には、ピクチャヘッダにあるフラグを図10に示した復号化装置で読み取り、処理の切り替えを行う。フラグはピクチャヘッダに必ず伝送されても良いし、オプションとして伝送されても良い。後者の場合には、フラグが伝送されない場合には、直前に復号化された画像と同様の処理を行う。このフラグは上述のように、シーケンスヘッダもしくはピクチャヘッダ、もしくはスライスヘッダにおいて、含まれる全てのマクロブロックの予測情報を示すように説明を行ったが、それに限らず、含まれるそれぞれの4×4ブロック(若しくはマクロブロック)に対して指定するようにしてもよい。
【0068】
【発明の効果】
以上述べてきたように、JVT画像情報符号化装置のように、単一のマクロブロックに複数のブロックを含み、このブロック毎にイントラ予測を行う画像情報符号化装置において、パイプライン処理に基づく高速なイントラ予測を行う手段を提供するものである。
【図面の簡単な説明】
【図1】離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像情報符号化装置のブロック図である。
【図2】離散コサイン変換若しくはカルーネン・レーベ変換等の直交変換と動き補償により画像圧縮を実現する画像情報復号化装置のブロック図である。
【図3】イントラ4×4モードにおける、イントラ予測の方向を示した図である。
【図4】イントラ4×4モードにおける、当該4×4ブロックと、イントラ予測に用いられる隣接画素との関係を示した図である。
【図5】イントラ16×16モードにおける、予測に用いられる隣接画素値を示した図である。
【図6】JVT符号化方式で規定されている、色差信号に対するイントラ予測を説明するための図である。
【図7】イントラ予測における問題点を説明するための第一の図である。
【図8】イントラ予測における問題点を説明するための第二の図である。
【図9】本発明による画像情報符号化装置を示したブロック図である。
【図10】本発明による画像情報復号化装置を示したブロック図である。
【図11】イントラ予測装置30における動作原理を説明するための図である。
【図12】パイプライン処理による高速演算を実現するための、イントラ予測の変更方法の一例を示した図である。
【図13】図11で示した動作原理を、パイプライン処理により実現するための第一の例を示した図である。
【図14】図11で示した動作原理を、パイプライン処理により処理する場合の問題点を示した図である。
【図15】図13に示された問題点を解決するための第二の方法を示した図である。
【図16】図11で示した動作原理を、パイプライン処理により実現するための第二の例を示した図である。
【図17】図15で示したパイプライン処理を行う時の問題点を説明するための図である。
【図18】図7に示した、通常のラスタースキャンによる処理を行う際、パイプライン処理に基づく高速演算を実現するためのイントラ予測の回避方法を示した図である。
【符号の説明】
1…A/D変換装置
2…画面並べ替えバッファ
3…加算器
4…イントラ予測装置
5…直交変換装置
6…量子化装置
7…可逆符号化装置
8…蓄積バッファ
9…逆量子化装置
10…逆直交変換装置
11…逆イントラ予測装置
12…デブロックフィルタ
13…フレームメモリ
14…動き予測・補償装置
15…レート制御装置
16…蓄積バッファ
17…可逆符号化装置
18…逆量子化装置
19…逆直交変換装置
20…逆イントラ予測装置
21…加算器
22…デブロックフィルタ
23…画面並べ替えバッファ
24…D/A変換装置
25…動き予測・補償装置
26…フレームメモリ
27…A/D変換装置
28…画面並べ替えバッファ
29…加算器
30…イントラ予測装置
31…直交変換装置
32…量子化装置
33…可逆符号化装置
34…蓄積バッファ
35…逆量子化装置
36…逆直交変換装置
37…逆イントラ予測装置
38…デブロックフィルタ
39…フレームメモリ
40…動き予測・補償装置
41…レート制御装置
42…ブロックアドレス検出装置
43…予測制御装置
44…ブロックアドレス検出装置
45…予測制御装置
46…蓄積バッファ
47…可逆復号化装置
48…逆量子化装置
49…逆直交変換装置
50…逆イントラ予測装置
51…予測制御装置
52…ブロックアドレス検出装置
53…デブロックフィルタ
54…画面並べ替えバッファ
55…D/A変換装置
56…動き予測・補償装置
57…フレームメモリ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to MPEG, H.264. Image information (bit stream) compressed by orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform and motion compensation, such as 26x, is transmitted via network media such as satellite broadcasting, cable TV, the Internet, and mobile phones. The present invention relates to an image information encoding device used when receiving or processing on a storage medium such as an optical, magnetic disk, or flash memory.
[0002]
[Prior art]
In recent years, image information has been treated as digital, and at that time, for the purpose of transmitting and storing information with high efficiency, utilizing the inherent redundancy of image information, MPEG that compresses by orthogonal transform such as discrete cosine transform and motion compensation, etc. Devices conforming to the above-mentioned method are becoming widespread in both information distribution at broadcast stations and the like and information reception in ordinary households.
[0003]
In particular, MPEG2 (ISO / IEC 13818-2) is defined as a general-purpose image coding method, and is a standard covering both interlaced scan images and progressive scan images, as well as standard resolution images and high definition images, and is used for professional use. And is now widely used in a wide range of consumer applications. By using the MPEG2 compression method, for example, a code amount of 4 to 8 Mbps for a standard resolution interlaced scan image having 720 × 480 pixels and 18 to 22 Mbps for a high resolution interlace scan image having 1920 × 1088 pixels. Bit rate), it is possible to realize a high compression rate and good image quality.
[0004]
MPEG2 is mainly intended for high image quality coding suitable for broadcasting, but does not support a coding amount (bit rate) lower than that of MPEG1, that is, a coding method with a higher compression rate. With the spread of mobile terminals, it is expected that the need for such an encoding system will increase in the future, and in response to this, the MPEG4 encoding system has been standardized. Regarding the image coding system, the standard was approved as an international standard in December 1998 as ISO / IEC 14496-2.
[0005]
Furthermore, in recent years, H.264 was initially used for image coding for video conferences. The standardization of 26L (ITU-T Q6 / 16 VCEG) is in progress. H. It is known that 26L requires a larger amount of calculation for encoding and decoding than conventional encoding methods such as MPEG2 and MPEG4, but realizes higher encoding efficiency. Currently, as part of MPEG4 activities, Based on H.26L, Standardization to achieve higher coding efficiency by incorporating functions that are not supported by 26L is performed as JVT (Joint Model of Enhanced-Compression Video Coding).
[0006]
FIG. 1 shows a block diagram of an image information encoding apparatus that realizes image compression by orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform and motion compensation. That is, 1 is an A / D conversion device, 2 is a screen rearrangement buffer, 3 is an adder, 4 is an intra prediction device, 5 is an orthogonal transformation device, 6 is a quantization device, 7 is a lossless encoding device, and 8 is an accumulation. A buffer, 9 is an inverse quantization device, 10 is an inverse orthogonal transform device, 11 is an inverse intra prediction device, 12 is a deblock filter, 13 is a frame memory, 14 is a motion prediction / compensation device, and 15 is a rate control device.
[0007]
In FIG. 1, an input image signal is first converted into a digital signal in an A / D converter 1. Next, the frames are rearranged in the screen rearrangement buffer 2 in accordance with the GOP (Group of Pictures) structure of the image compression information to be output. For an image to be subjected to intra coding, after intra prediction processing is performed in the intra prediction device 4, image information of the entire frame is input to the orthogonal transform device 5, where discrete cosine transform, Karhunen-Loeve transform, and the like are performed. Is performed. The transform coefficient serving as the output of the orthogonal transform coefficient 5 is subjected to a quantization process in the quantization device 6. The quantized transform coefficient output from the quantizer 6 is input to the lossless transformer 7, where the quantized transform coefficient is subjected to lossless encoding such as variable-length encoding or arithmetic encoding, and then stored in the accumulation buffer 8. It is stored and output as image compression information. The behavior of the quantization device 6 is controlled by the rate control device 15. At the same time, the quantized transform coefficient output from the quantization device 6 is input to the inverse quantization device 9, further subjected to inverse orthogonal transformation processing in the inverse orthogonal transformation device 10, and inversely transformed in the inverse intra prediction device 11. After the intra prediction processing, the decoded image information is obtained. After the block distortion is removed by the deblocking filter 12, the information is accumulated in the frame memory 13.
[0008]
For an image on which inter coding is performed, first, image information is input to the motion prediction / compensation device 14. At the same time, reference image information is taken out from the frame memory 13 and subjected to motion prediction / compensation processing to generate reference image information. The reference image information is sent to the adder 3, where it is converted into a difference signal from the image information. The motion compensation / prediction device 13 outputs the motion vector information to the lossless encoding device 7 at the same time, the information is again subjected to a lossless encoding process such as variable-length encoding and arithmetic encoding, and is added to the header of the image compression information. Form the information to be inserted. Other processes are the same as those of the image compression information subjected to intra coding.
[0009]
FIG. 2 shows a block diagram of an image information decoding apparatus that realizes image compression by orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform and motion compensation. That is, 16 is a storage buffer, 17 is a lossless encoding device, 18 is an inverse quantization device, 19 is an inverse orthogonal transform device, 20 is an inverse intra prediction device, 21 is an adder, 22 is a deblock filter, and 23 is a screen arrangement. A change buffer, 24 is a D / A converter, 25 is a motion prediction / compensation device 26 is a frame memory.
[0010]
In FIG. 2, image compression information to be input is first stored in a storage buffer 16 and then transferred to a lossless decoding device 17. Here, processes such as variable-length decoding and arithmetic decoding are performed based on the determined format of the image compression information. At the same time, if the frame is inter-coded, the lossless decoding device also decodes the motion vector information stored in the header portion of the image compression information, and converts the information to a motion prediction / compensation device. Transfer to 21.
[0011]
The quantized transform coefficient, which is the output of the lossless decoding device, is input to the inverse quantization device 18, where it is output as a transform coefficient. The transform coefficients are subjected to inverse orthogonal transform such as inverse discrete cosine transform and inverse Karhunen-Loeve transform in the inverse orthogonal transform device 19 based on the determined format of the image compression information. When the frame is intra-coded, the image information on which the inverse orthogonal transform processing has been performed is subjected to inverse intra prediction processing in the inverse intra prediction device 20 and then subjected to block distortion in the deblocking filter 21. Is removed, stored in the screen rearrangement buffer 23, and output after the D / A conversion processing.
[0012]
If the frame is inter-coded, a reference image is generated based on the motion vector information subjected to the lossless decoding process and the image information stored in the frame memory 22. , And the output of the inverse orthogonal transform unit 19 are combined in an adder 20. Other processes are the same as those of the intra-coded frame.
[0013]
Hereinafter, the operation principle of the intra prediction device 4 will be described.
[0014]
In the JVT encoding method, two intra modes of an intra 4 × 4 mode and an intra 16 × 16 mode are defined for a luminance signal. Hereinafter, first, intra prediction in the intra 4 × 4 mode will be described.
[0015]
When the macro block type is the intra 4 × 4 mode, nine prediction modes of mode 0 to mode 8 are prepared for prediction in luminance. FIG. 3 shows the prediction direction of the prediction mode. FIG. 4 shows the relationship between the 4 × 4 macroblock and adjacent pixels used for prediction.
[0016]
Assuming that the predicted value of the pixel is P, the predicted value of the pixel in each mode is as follows. However, adjacent pixels A to Q used for prediction are pixels that have already been decoded. If E to H have not been decoded or belong to a different slice or different frame from the 4 × 4 block, the value D is substituted for E to H. In the case where M to P are similar, the value L is substituted.
[0017]
In mode 0 (DC Prediction), all pixels have the same predicted value P. However, the value of the predicted value differs as follows depending on the positions of the pixels A to Q used for prediction.
Case 1: A, B, C, D, I, J, K, L are in the same slice as the 4 × 4 block
P = (A + B + C + D + I + J + K + L + 4) >> 3
Case 2: When only I, J, K, and L are in the same slice as the 4 × 4 block (A, B, C, and D are in different slices)
P = (I + J + K + L + 2) >> 2
Case 3: Only A, B, C, and D are in the same slice as 4x4 block (I, J, K, and L are in different slices)
P = (A + B + C + D + 2) >> 2
Case 4: A, B, C, D, I, J, K, and L all exist in different slices
P = 128
[0018]
Mode 1 (Vertical Prediction) is applied only when A, B, C, and D belong to the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a, e, i ,: P = A
b, f, j, n: P = B
c, g, k, o: P = C
d, h, l, p: P = D
[0019]
Mode 2 (Horizontal Prediction) is applied only when I, J, K, and L exist in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a, b, c, d: P = I
e, f, g, h: P = J
i, j, k, l: P = K
m, n, o, p: P = L.
[0020]
Mode 3 (Diagonal Down / Right Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
m: P = (J + 2K + L + 2) >> 2
i, n: P = (I + 2J + K + 2) >> 2
e, j, o: P = (Q + 2I + J + 2) >> 2
a, f, k, p: P = (A + 2Q + I + 2) >> 2
b, g, l: P = (Q + 2A + B + 2) >> 2
c, h: P = (A + 2B + C + 2) >> 2
d: P = (B + 2C + D + 2) >> 2
[0021]
Mode 4 (Diagonal Down / Left Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a: P = (A + 2B + C + I + 2J + K + 4) >> 3
b, e: P = (B + 2C + D + J + 2K + L + 4) >> 3
c, f, i: P = (C + 2D + E + K + 2L + M + 4) >> 3
d, g, j, m: P = (D + 2E + F + L + 2M + N + 4) >> 3
h, k, n: P = (E + 2F + G + M + 2N + O + 4) >> 3
1, o: P = (F + 2G + H + N + 2O + P + 4) >> 3
p: P = (G + H + O + P + 2) >> 3
[0022]
Mode 5 (Vertical Left Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all present in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a, j: P = (Q + A + 1) >> 1
b, k: P = (A + B + 1) >> 1
c, l: P = (B + C + 1) >> 1
d: P = (C + D + 1) >> 1
e, n: P = (I + 2Q + A + 2) >> 2
f, o: P = (Q + 2A + B + 2) >> 2
g, p: P = (A + 2B + C + 2) >> 2
h: P = (B + 2C + D + 2) >> 2
i: P = (Q + 2I + J + 2) >> 2
m: P = (I + 2J + K + 2) >> 2
[0023]
Mode 6 (Vertical Right Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all present in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a: P = (2A + 2B + J + 2K + L + 4) >> 3
b, i: P = (B + C + 1) >> 1
c, j: P = (C + D + 1) >> 1
d, k: P = (D + E + 1) >> 1
l: P = (E + F + 1) >> 1
e: P = (A + 2B + C + K + 2L + M + 4) >> 3
f, m: P = (B + 2C + D + 2) >> 2
g, n: P = (C + 2D + E + 2) >> 2
h, o: P = (D + 2E + F + 2) >> 2
p: P = (E + 2F + G + 2) >> 2
[0024]
Mode 7 (Horizontal-up Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all present in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a: P = (B + 2C + D + 2I + 2J + 4) >> 3
b: P = (C + 2D + E + I + 2J + K + 4) >> 3
c, e: P = (D + 2E + F + 2J + 2K + 4) >> 3
d, f: P = (E + 2F + G + J + 2K + L + 4) >> 3
g, i: P = (F + 2G + H + 2K + 2L + 4) >> 3
h, j: P = (G + 3H + K + 3L + 4) >> 3
l, n: P = (L + 2M + N + 2) >> 3
k, m: P = (G + H + L + M + 2) >> 2
o: P = (M + N + 1) >> 1
p: P = (M + 2N + O + 2) >> 2
[0025]
Mode 8 (Horizontal-down Prediction) is applied only when A, B, C, D, I, J, K, L, and Q are all present in the same slice as the 4 × 4 block. Each predicted value is generated as follows.
a, g: P = (Q + I + 1) >> 1
b, h: P = (I + 2Q + A + 2) >> 2
c: P = (Q + 2A + B + 2) >> 2
d: P = (A + 2B + C + 2) >> 2
e, k: P = (I + J + 1) >> 1
f, l: P = (Q + 2I + J + 2) >> 2
i, o: P = (J + K + 1) >> 1
j, p: P = (I + 2J + K + 2) >> 2
m: P = (K + L + 1) >> 1
n: P = (J + 2K + L + 2) >> 2
[0026]
Next, an intra 16 × 16 prediction mode for a luminance signal will be described.
[0027]
In the intra prediction in the intra 16 × 16 mode, P (0, −1) to P (15, −1) and P (−1,0) to P (−1, 15) shown in FIG. Used.
[0028]
In Mode 0 (Vertical Prediction), 16 pixels of p (0, -1) to p (15, -1) above the current macroblock are used as prediction values. That is,
Pred (i, j) = P (i, −1), i, j = 0. . Fifteen
[0029]
In Mode 1 (Horizontal Prediction), 16 pixels from the left p (-1,0) to p (-1,15) of the current macroblock are used as prediction values. That is,
Pred (i, j) = P (-1, j), i, j = 0. . Fifteen
[0030]
In Mode 2 (DC Prediction), the average value of the upper 16 pixels and the left 16 pixels of the current macroblock is used as the prediction value. If any 16 pixels belong to a different slice from the 16 × 16 macroblock, Not used to calculate forecasts. If both are in different slices, the predicted value is 128. That is,
[0031]
A prediction value in Mode 3 (Plane Prediction) is generated as follows.
Pred (i, j) = clip1 ((a + b. (I-7) + c. (J-7) +16) >> 5)
here,
a = 16 · (P (−1,15) + P (15, −1))
b = (5 * H + 32) >> 6
c = (5 * V + 32) >> 6
And H and V are
It is.
[0032]
Next, the intra prediction of the color difference signal will be described.
[0033]
Only one color difference prediction mode described below is defined. That is, the 8 × 8 chrominance signal block is divided into four 4 × 4 blocks A, B, C, and D as shown in FIG. 6, and a single predicted value is assigned to each of the 4 × 4 blocks. Used. In FIG. 6, S0, S1, S2, and S3 are sums of pixel values of four pixels adjacent to each block.
[0034]
Generation of the predicted value is as follows.
[0035]
If S0, S1, S2, S3 are in the same slice as the 16 × 16 macroblock,
A = (S0 + S2 + 4) >> 3
B = (S1 + 2) >> 2
C = (S3 + 2) >> 2
D = (S1 + S3 + 4) >> 3
And
[0036]
If only S0 and S1 are in the same slice as the 16 × 16 macroblock,
A = (S0 + 2) >> 2
B = (S1 + 2) >> 2
C = (S0 + 2) >> 2
D = (S1 + 2) >> 2
And
[0037]
If only S2 and S3 are in the same slice as the 16 × 16 macroblock,
A = (S2 + 2) >> 2
B = (S2 + 2) >> 2
C = (S3 + 2) >> 2
D = (S3 + 2) >> 2
And
[0038]
If S0, S1, S2, S3 are all in different slices
A = B = C = D = 128
And
[Problems to be solved by the invention]
[0039]
Now, assume that each 4 × 4 block included in a macroblock is processed in a default scan order as shown in FIG.
[0040]
In order to perform intra prediction in block 1, pixel information of a decoded image for block 0 is required. The processing of the image information coding apparatus shown in FIG. 1 for realizing this is a sequential processing as shown in FIG. That is, it becomes impossible to perform processing by pipeline processing.
[0041]
[Means for Solving the Problems]
SUMMARY OF THE INVENTION In order to solve the above-described problems, the present invention provides an image information encoding device, which includes an A / D conversion device, a screen rearrangement buffer, an adder, an intra prediction device, an orthogonal transformation device, a quantization device, and lossless encoding. Device, accumulation buffer, inverse quantization device, inverse orthogonal transform device, inverse intra prediction device, deblock filter, frame memory, motion prediction / compensation device, rate control device, block address detection device, prediction control device, block address detection device In addition, the image information decoding device includes a storage buffer, a lossless decoding device, an inverse quantization device, an inverse orthogonal transform device, an inverse intra prediction device, a prediction control device, a block address detection device, Block filter, screen rearrangement buffer, D / A converter, motion prediction / compensation device, and frame memory , JVT image information coding apparatus, a single macroblock includes a plurality of blocks, and an image information coding apparatus that performs intra prediction for each block performs high-speed intra prediction based on pipeline processing. Is provided.
[0042]
In the above configuration, in the image information encoding device, the A / D converter converts an input analog image signal into a digital image signal, and the screen rearrangement buffer has a GOP structure of compressed image information to be output. In the intra prediction device, if the macro block is an intra macro block, the intra prediction device performs an intra prediction process, and the block address detection device performs The prediction control device controls the operation principle of the intra prediction device in accordance with the output of the block address detection device. The difference between the input frame and the reference frame. In an orthogonal transform device, an input frame or a difference value between an input frame and a reference frame is subjected to an orthogonal transform such as a discrete cosine transform or a Karhunen-Loeve transform. Performs coefficient quantization processing, the lossless encoding device performs lossless encoding processing based on variable-length encoding or arithmetic encoding on the quantized transform coefficients, and performs lossless transformation in the accumulation buffer. The compressed image information is accumulated, the inverse quantizer performs inverse quantization of the quantized transform coefficient, and the inverse orthogonal transform apparatus performs inverse orthogonal transform of the inversely quantized orthogonal transform coefficient. In the inverse intra prediction device, if the macroblock is an intra macroblock, the difference information of the pixel value subjected to the inverse orthogonal transform is The block address detection device performs an intra prediction process, detects which block is subjected to the inverse intra prediction process in the macroblock, and the prediction control device responds to the output of the block address detection device. Then, the principle of operation in the inverse intra prediction device is controlled, the block distortion included in the decoded image is removed in the deblock filter, the predicted image is stored in the frame memory, and the motion prediction / compensation device Performs a search for motion vector information and a motion compensation process using a predicted image stored in a frame memory as an input, and the rate control device controls the operation of the quantization device by feedback control.
[0043]
Also, in the image information decoding device, the storage buffer stores the image compression information to be input, and in the lossless decoding device, the lossless decoding process based on the variable length coding or the arithmetic coding is performed. The quantizer performs an inverse quantization process on the quantized orthogonal transform coefficients obtained as a result of the lossless decoding process, and the inverse orthogonal transform device performs inverse orthogonal transform on the inversely quantized orthogonal transform coefficients. In the adder, if the macroblock is an inter macroblock, the adder synthesizes the difference information of the pixel value obtained as a result of the inverse orthogonal transform and the reference image, and the inverse intra prediction device performs If the macroblock is an intra macroblock, inverse intra-prediction processing is performed on the difference information of the inverse orthogonally transformed pixel values, and the block In the address detection device, the macro block detects which block is subjected to the inverse intra prediction process in the macroblock, and in the prediction control device, in accordance with the output of the block address detection device, The operation principle is controlled. In the deblocking filter, the block distortion included in the image information is removed. In the screen rearrangement buffer, the image information is rearranged according to the GOP structure of the input image compression information. The D / A converter converts the image information, which is a digital signal, into an analog signal, and the motion prediction / compensation device, when the macroblock is inter-coded, includes The reference image is also generated using the motion vector information included in the Made to accumulate decoded image.
[0044]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0045]
(Embodiment) FIG. 9 shows an embodiment of an image information encoding apparatus according to the present invention. That is, 27 is an A / D conversion device, 28 is a screen rearrangement buffer, 29 is an adder, 30 is an intra prediction device 31, an orthogonal transform device, 32 is a quantization device, 33 is a lossless encoding device, and 34 is a storage buffer. , 35 are an inverse quantization device, 36 is an inverse orthogonal transform device, 37 is an inverse intra prediction device, 38 is a deblocking filter, 39 is a frame memory, 40 is a motion prediction / compensation device, 41 is a rate control device, 42 is a block An address detection device, 43 is a prediction control device, 44 is a block address detection device, and 45 is a prediction control device.
[0046]
FIG. 10 shows an embodiment of an image information decoding apparatus according to the present invention. That is, 46 is a storage buffer, 47 is a lossless decoding device, 48 is an inverse quantization device, 49 is an inverse orthogonal transform device, 50 is an inverse intra prediction device, 51 is a prediction control device, 52 is a block address detection device, and 53 is a A block filter, 54 is a screen rearrangement buffer, 55 is a D / A converter, 56 is a motion prediction / compensation device, and 57 is a frame memory.
[0047]
9, the principle of operation other than the intra prediction device 30, the inverse intra prediction device 37, the block address detection device 42, the prediction control device 43, the block address detection device 44, and the prediction control device 45 is the same as that of the image information encoding shown in FIG. Same as the device. In FIG. 10, the operation principle other than the inverse intra prediction device 50, the prediction control device 51, and the block address detection device 52 is the same as that of the image information decoding device shown in FIG. Furthermore, the operation principle of the block address detection device 42 is the same as that of the block address detection device 44 and the block address detection device 52, and the operation principle of the prediction control device 43 is the operation principle of the prediction control device 45 and the prediction control device 51. Same as the principle. Hereinafter, only the operation principle of the intra prediction device 30, the block address detection device 42, and the prediction control device 43 will be described.
[0048]
The intra prediction apparatus 30 does not perform the processing in the raster scan order as shown in FIG. 7, but performs a series of processing in the order as shown in FIG. 11A or 11B.
[0049]
Here, when intra prediction is performed by the method described in the conventional example, the pixel values M to P adjacent to the lower left of the block and the pixel values E to H adjacent to the upper right of the block in FIG. 4 are used. This hinders realization of high-speed operation by pipeline processing.
[0050]
Therefore, in the present invention, instead of the intra prediction described in the conventional example, intra prediction that does not use these pixel values is performed. FIG. 12 shows a series of such intra prediction.
[0051]
As a result, when processing the blocks 1, 2, and 3 by the method shown in FIG. 11A, it is possible to form a pipeline as shown in FIG. Enable processing.
[0052]
However, in both cases of FIG. 11 (a) and FIG. 11 (b), the pipeline processing as shown in FIG. 13 is performed for the 4 × 4 block shown by the diagonal lines in FIG. , ■ cannot perform intra prediction using the pixel value of the decoded image at the position indicated by ■.
[0053]
Such a problem can be avoided by one of the following two methods.
[0054]
The first method is to use 128 as a predicted value instead of the pixel value of the decoded image indicated by ■.
[0055]
In the second method, as shown in FIG. 15, in place of the pixel value of the decoded image corresponding to the position indicated by 既 に, the already decoded pixel value indicated by oblique lines is used for intra prediction.
[0056]
By using any of the above methods, it is possible to perform high-speed processing for each 4 × 4 block by the pipeline while minimizing image quality deterioration due to intra prediction.
[0057]
It is to be noted that the processing can be further speeded up by performing the processing by the pipeline as shown in FIG. 16, but at this time, if the processing is performed in the order as shown in FIG. The decoded image of the portion indicated by the hatched portion 17 does not exist when processing the 4 × 4 block.
[0058]
Also in this case, it is possible to realize high-speed processing by the pipeline while minimizing image quality degradation by any of the above-described methods.
[0059]
The above-described pipeline processing is necessary when the input image compression information has a large image frame, for example, 720 × 480 or 1920 × 1080, and the image compression information has a small image size of 176 × 144. In the case of a frame, if the computing capability of the device that performs the encoding process and the decoding process is sufficiently high, it is not always necessary to perform the real-time process. Therefore, it is necessary to embed information indicating whether to perform the decoding process in the order shown in FIG. 7 or the decoding process in the order shown in FIG. 11 in the image compression information.
[0060]
For this reason, it is possible to embed a 1-bit flag in the sequence header and to select which of the method shown in FIG. 7 and the method shown in FIG. 11 is used by the image information decoding apparatus shown in FIG. I do.
[0061]
This flag may be embedded in the picture header instead of the sequence header. That is, for example, when the frame rate changes to a smaller value in the middle of the sequence and the pipeline processing is not necessary, conversely, the frame rate changes to a larger value in the middle of the sequence, Is necessary, the flag in the picture header is read by the decoding device shown in FIG. 10 and the processing is switched. The flag may be transmitted without fail in the picture header, or may be transmitted as an option. In the latter case, if the flag is not transmitted, the same processing as that of the image decoded immediately before is performed.
[0062]
Furthermore, the above-mentioned first or second method not only performs the decoding process in the order shown in FIG. 11, but also performs the decoding process in a normal raster scan order as shown in FIG. It is also applicable when performing.
[0063]
That is, for example, in FIG. 7, when processing 4 × 4 block 2, the left neighboring pixel used for intra prediction does not belong to the macroblock, and may perform pipeline processing. However, when the high-speed operation using the pipeline processing is performed on the 4 × 4 block 3, it is impossible to use the decoding processing on the left adjacent pixel.
[0064]
At this time, as shown in FIG. 18, adjacent pixels on the left side of the 4 × 4 blocks 1, 3, 9, 11, 5, 7, 13, and 15 are set as 4 × 4 blocks 0, 2, 8, 10, and 4 , 6, 12, and 14, or using a fixed value (e.g., 128) as an alternative value, and also a 4x4 block 2, 3, 6, 7,. The upper neighboring pixels for 10, 11, 14, 15 are used as the upper neighboring pixels for 4 × 4 blocks 0, 1, 4, 5, 8, 9, 12, 13 or fixed as alternative values By using a value (for example, 128), high-speed processing in pipeline processing can be performed while image quality deterioration is minimized. Here, an example in which four (for example, 0, 1, 2, 3, 4, 5, 6, 7) of 4 × 4 Block are encoded (or decoded) as an intermediate layer (unit) has been described. In the case of encoding (or decoding) in units of 4 × 4 Block, the pixel on the left of block 2 is used instead of the pixel on the left in encoding block 3, but the upper pixel is the block 1 Since the decoding of has been completed, the pixels of block 1 are used as they are.
[0065]
In order to perform such processing, in the image compression information output from the image information encoding apparatus illustrated in FIG. 9, whether the normal intra prediction has been performed on each 4 × 4 block or whether the above-described first Alternatively, information indicating whether the second method is applied to intra prediction is transmitted as a flag (for example, a 1-bit flag may be used).
[0066]
This flag is transmitted in a sequence header, a picture header, or a slice header. That is, information regarding whether normal intra prediction or intra avoidance mode intra prediction is performed is embedded in all intra macroblocks included in the image compression information.
[0067]
As described above, this flag can be transmitted in units of a sequence header, a picture header, or a slice header. That is, for example, if the frame rate changes to a smaller value in the middle of the sequence and the pipeline processing is no longer necessary, conversely, the frame rate changes to a larger value in the middle of the sequence, Is necessary, the flag in the picture header is read by the decoding device shown in FIG. 10, and the process is switched. The flag may be transmitted without fail in the picture header, or may be transmitted as an option. In the latter case, if the flag is not transmitted, the same processing as that of the image decoded immediately before is performed. As described above, this flag has been described to indicate the prediction information of all the included macroblocks in the sequence header, the picture header, or the slice header. However, the present invention is not limited to this. (Or a macro block).
[0068]
【The invention's effect】
As described above, in an image information encoding device that includes a plurality of blocks in a single macroblock and performs intra prediction for each block, such as a JVT image information encoding device, high-speed processing based on pipeline processing is performed. This provides means for performing accurate intra prediction.
[Brief description of the drawings]
FIG. 1 is a block diagram of an image information encoding device that realizes image compression by orthogonal transformation such as discrete cosine transformation or Karhunen-Loeve transformation and motion compensation.
FIG. 2 is a block diagram of an image information decoding apparatus that realizes image compression by orthogonal transform such as discrete cosine transform or Karhunen-Loeve transform and motion compensation.
FIG. 3 is a diagram showing directions of intra prediction in an intra 4 × 4 mode.
FIG. 4 is a diagram showing a relationship between the 4 × 4 block and adjacent pixels used for intra prediction in an intra 4 × 4 mode.
FIG. 5 is a diagram showing adjacent pixel values used for prediction in the intra 16 × 16 mode.
FIG. 6 is a diagram for describing intra prediction for a color difference signal, which is defined by the JVT encoding method.
FIG. 7 is a first diagram illustrating a problem in intra prediction.
FIG. 8 is a second diagram illustrating a problem in intra prediction.
FIG. 9 is a block diagram showing an image information encoding device according to the present invention.
FIG. 10 is a block diagram illustrating an image information decoding apparatus according to the present invention.
11 is a diagram for explaining an operation principle in the intra prediction device 30. FIG.
FIG. 12 is a diagram illustrating an example of a method of changing intra prediction for realizing high-speed operation by pipeline processing.
FIG. 13 is a diagram showing a first example for realizing the operation principle shown in FIG. 11 by pipeline processing.
FIG. 14 is a diagram showing a problem when processing the operation principle shown in FIG. 11 by pipeline processing.
FIG. 15 is a diagram showing a second method for solving the problem shown in FIG.
FIG. 16 is a diagram showing a second example for realizing the operation principle shown in FIG. 11 by pipeline processing.
17 is a diagram for explaining a problem when performing the pipeline processing shown in FIG. 15;
FIG. 18 is a diagram illustrating a method of avoiding intra prediction for realizing high-speed operation based on pipeline processing when performing processing by normal raster scanning illustrated in FIG. 7;
[Explanation of symbols]
1. A / D converter
2: Screen sorting buffer
3 ... Adder
4: Intra prediction device
5. Orthogonal transformation device
6 Quantizer
7 ... Reversible coding device
8 ... accumulation buffer
9 ... Dequantizer
10. Inverse orthogonal transform device
11 Inverse intra prediction device
12 ... Deblock filter
13. Frame memory
14. Motion prediction / compensation device
15 ... Rate control device
16 ... accumulation buffer
17… Reversible coding device
18 ... Dequantizer
19 ... Inverse orthogonal transform device
20 ... Intra intra prediction device
21 ... Adder
22 ... Deblock filter
23 ... Screen sorting buffer
24 ... D / A converter
25 ... Motion prediction / compensation device
26 ... Frame memory
27 ... A / D converter
28 ... Screen sorting buffer
29 ... Adder
30 ... Intra prediction device
31 ... Orthogonal transformation device
32 ... Quantizer
33 ... Reversible coding device
34: accumulation buffer
35 ... Dequantizer
36 ... Inverse orthogonal transform device
37 ... Intra intra prediction device
38 ... Deblock filter
39 ... Frame memory
40 ... Motion prediction / compensation device
41 ... Rate control device
42 ... Block address detection device
43 ... Predictive control device
44 ... Block address detection device
45 Predictive control device
46 ... accumulation buffer
47 ... Reversible decoding device
48 ... Dequantizer
49… Inverse orthogonal transform device
50 ... Intra intra prediction device
51 ... Predictive control device
52 ... Block address detection device
53 ... Deblock filter
54: Screen sorting buffer
55 ... D / A converter
56 ... Motion prediction / compensation device
57 ... Frame memory