(57)【要約】      （修正有）【課題】回路規模が増大するのを防ぎつつ、各ブロックサイズとそれに応じて予測モードによる予測誤差算出処理を効率良く実行する技術を提供できる。【解決手段】決定された予測単位が４×４画素ブロックであった場合、スイッチ２３７乃至２４３は予測値算出部２０８乃至２１２からの出力を選択する。予測値算出部２０４乃至２１２は４×４画素ブロックの予測モード０乃至８の各予測値を算出し、算出した予測値を予測誤差算出部２１３乃至２２１に出力する。ＳＡＤ算出部２２２乃至２３０は、各予測モードの予測誤差の絶対値の合計値を算出し、ＳＡＤ記憶部２３４に格納する。予測モード決定部２０３は、各予測モードの合計値の最小値がどの予測モーであるかを判定し、その結果を予測誤差出力部２３５に出力する。予測モード決定部２０３は、予測誤差の絶対値の合計が最小となる予測モードを決定する。【選択図】図２
2009218742.tif 000002
【特許請求の範囲】
【請求項１】
入力したピクチャから、４×４画素ブロック、８×８画素ブロック、１６×１６画素ブロックのいずれかを単位に、ピクチャ内の画素を参照して予測誤差を算出し、当該予測誤差を符号化手段に供給することで符号化を行なう画像符号化装置であって、
符号化対象のピクチャの画像データを記憶する記憶手段と、
符号化対象の画素ブロックのサイズを決定する決定手段と、
符号化対象の着目している画素ブロック内の各画素の予測値を算出するために参照する参照画素を得るため、前記着目している画素ブロックの近傍に位置し、既に前記符号化手段で符号化された画素ブロックを復号する復号手段と、
互いに並列に配置され、４×４画素ブロックの全予測モードに対応する複数の予測値算出手段と、
前記複数の予測値算出手段のうち複数の参照画素から予測値を算出する予測モードの予測値算出手段については、その算出した予測値、又は、１つの参照画素のいずれか一方を予測値として選択し、出力する選択手段と、
１つの参照画素を予測値とする予測モードの予測値算出手段からの予測値、及び、前記選択手段を介して出力した予測値から、前記決定手段で決定したブロックサイズの各画素の予測誤差を、並列して算出する複数の予測誤差算出手段と、
該複数の予測誤差算出手段で算出された予測誤差の合計値に基づき、予測誤差の合計が最小となる予測モードを決定し、決定した予測モードに対応する予測誤差算出手段で得られた予測誤差を、前記符号化手段に出力する出力手段と、
前記決定手段で決定したブロックサイズに応じて、前記選択手段及び前記出力手段を制御する制御手段とを備え、
前記制御手段は、
前記決定手段で決定したブロックサイズが４×４画素ブロックであった場合、
前記選択手段を、前記複数の参照画素から予測値を算出する予測モードの予測値算出手段で得られた予測値を選択させ、全予測モードにおける予測誤差を前記複数の予測誤差算出手段で算出させると共に、
前記出力手段を、算出された予測誤差の合計値が最小となった予測誤差算出手段で算出した予測誤差を出力させ、
前記決定手段で決定したブロックサイズが４×４画素ブロック以外であった場合、
前記選択手段を、１つの参照画素を予測値として選択させ、決定したブロック内の画素の予測誤差を、前記複数の予測誤差算出手段にて振り分けて演算を行なわせ、
前記出力手段を、振り分けて演算された予測誤差の合計値が最小となる予測モードで用いられた複数の予測誤差算出手段の予測誤差を出力させる
ことを特徴とする画像符号化装置。
【請求項２】
４×４画素ブロックの場合の全予測モードには、予測モード０乃至８が含まれ、
８×８画素ブロックにおける、１つの参照画素を予測値として用いる全予測モードには、予測モード１、２が含まれ、
１６×１６画素ブロックにおける、１つの参照画素を予測値として用いる全予測モードには、予測モード０、１が含まれる
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記決定手段は、入力した符号化対象の画像データ中に同じ画素値の連続する割合を算出する手段を備え、当該割合に比例して符号化単位の画素ブロックのサイズを決定することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
更に、ｃｈｒｏｍａ８×８画素ブロックの予測値算出手段と、ｃｈｒｏｍａ８×８画素ブロックの予測誤差算出手段とを備えることを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
前記決定手段が決定した画素ブロックのサイズが８×８画素ブロックであった場合、予測モード０の予測値及び予測誤差算出のために、前記ｃｈｒｏｍａ８×８画素ブロックの予測値算出手段及びｃｈｒｏｍａ８×８画素ブロックの予測誤差算出手段を代替利用することを特徴とする請求項４に記載の画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化技術に関するものである。
【背景技術】
【０００２】
動画像を圧縮する場合、一般的に画像データを輝度成分と色差成分とに分けて符号化する。国際標準技術では、動画像を輝度と色相成分とに分けて符号化してもいる。
【０００３】
先ず、在るピクチャ（フレーム）を他のピクチャを参照せずに単独に符号化する。そして、このピクチャを参照して、時間上の以降に入力されるピクチャを動きの予測および補償を利用して予測符号化する。他のピクチャを参照せずに符号化することをイントラ符号化、他のピクチャを参照して動きの予測および補償を利用して符号化することをインター符号化と呼んでいる。
【０００４】
イントラ符号化およびインター符号化は、全て離散コサイン変換（Discrete Cosine Transformation:通称ＤＣＴ）処理、量子化処理、そしてエントロピー符号化を行なうことで損失圧縮（非可逆符号化）される。イントラ符号化では、他のピクチャを参照せず、そのピクチャ内で予測符号化（画面内予測符号化）が利用されている。
【０００５】
ＩＳＯ／ＩＥＣ（International Organization for Standardization/International Electronichal Commison）勧告のＭＰＥＧ（Motion Picture Expert Group）−４、及び、ＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standerdization）のＨ．２６３＋による動画像圧縮技術が知られている。これによると、イントラ符号化で画面内予測をするときに垂直方向８画素、水平方向８画素（以下、８×８画素と表記する）単位のブロックを設定し、各ブロックをＤＣＴ変換を行ない、このＤＣＴ変換で得られた係数を量子化する。そして、量子化後のＤＣ（Direct Current；直流成分）値およびＡＣ（Alternation Current；交流成分）値を、周辺ブロックのＤＣ値およびＡＣ値を参照して予測符号化することによって圧縮効率を上げている。
【０００６】
また、２００３年３月、ＩＳＯ／ＩＥＣ  ＭＰＥＧとＩＴＵ−Ｔ  ＶＣＥＧ（Video Coding Experts Group）が共同で、ＪＶＴ（Joint Video Team）を組織して新しいビデオ符号化標準の勧告を行った。ＩＳＯ／ＩＥＣの勧告では、ＭＰＥＧ−４  Ｐａｒｔ１０／ＡＶＣ（Advanced Video Coding）という名称であり、ＩＴＵ−ＴではＨ．２６４という名称で知られている。この勧告には、イントラ符号化するときに画面内予測方法を使用して圧縮する技術を含んでいる。この技術では、輝度成分と色差成分とに各々異なるサイズのブロック単位および画面内予測方法を使用する。輝度成分は、４×４画素ブロック又は１６×１６画素ブロック単位で予測するものである。４×４画素ブロックの場合、予測方向によって９つの予測方法が定義されており、１６×１６画素ブロックの場合には予測方向によって４つの予測方法が定義されている。各ブロック単位における予測方向は、予測モードと呼ばれる番号と一対一の関係となっている。
【０００７】
図３は４×４画素ブロックを単位に符号化する際の予測モードと予測方向の関係を示している。４×４画素ブロックの予測モードは０〜８の数字で表現されており、予測方向番号“２”は平均値予測になっている。
【０００８】
図４は４×４画素ブロックのブロックの図であり、１つのマス目は１画素を表しており、大文字で表記されている画素Ａ、Ｂ、Ｃ、…は参照画素、小文字で表記されている画素ａ、ｂ、ｃ、…は、着目ブロック内の符号化対象画素である。参照画素Ａ、Ｂ、Ｃ、…の輝度値をＰ（Ａ）、Ｐ（Ｂ）、Ｐ（Ｃ）、・・・、符号化対象画素ａ、ｂ、ｃ、…の予測値をＰｒｅｄ（ａ）、Ｐｒｅｄ（ｂ）、Ｐｒｅｄ（ｃ）、・・・と表すと、４×４画素ブロックの予測モードと、予測値は次のように表せる。
【０００９】
なお、Ｐｒｅｄ（ＡＬＬ）はブロック内の全画素（４×４の１６画素）の予測値を示し、「＞＞ｉ」は右にｉビットシフト演算（下位ビットへのｉビットシフト）を行うことを示している。従って、Ｎ＞＞１は値Ｎを右方向に１ビットシフトすることになり、結果、これらＮ／２1（但し小数点以下切り捨て）を算出することと等価である。また、Ｎ＞＞２は、Ｎ／２2＝Ｎ／４（小数点以下切り捨て）を算出することと等価である。従って、例えば「（Ｎ＋１）＞＞１」は、小数点切り上げのＮ／２を算出することと等価となる。
【００１０】
４×４画素ブロックのスキャン順は、画像の左上隅を起点とする画素ブロックを単位としたラスタースキャン順である。それ故、画像中の画素や画素ブロックの座標は、左上隅の位置を原点（０，０）とし、水平右方向をｘ座標、垂直下方向をｙ座標として定義されていることは良く知られていることでもある。従って、ピクチャの先頭の画素ブロックとは、画像の左上隅にある画素ブロックを意味する。
＜４×４画素ブロックの予測モード“０”＞
Pred(a)＝Pred(e)＝Pred(i)＝Pred(m)＝P(A)
Pred(b)＝Pred(f)＝Pred(j)＝Pred(n)＝P(B)
Pred(c)＝Pred(g)＝Pred(k)＝Pred(o)＝P(C)
Pred(d)＝Pred(h)＝Pred(l)＝Pred(p)＝P(D)
【００１１】
＜４×４画素ブロックの予測モード“１”＞
Pred(a)＝Pred(b)＝Pred(c)＝Pred(d)＝P(I)
Pred(e)＝Pred(f)＝Pred(g)＝Pred(h)＝P(J)
Pred(i)＝Pred(j)＝Pred(k)＝Pred(l)＝P(K)
Pred(m)＝Pred(n)＝Pred(o)＝Pred(p)＝P(L)
【００１２】
＜４×４画素ブロックの予測モード“２”＞
［４×４画素ブロックの位置がピクチャの先頭の場合］
Pred(ALL)＝１２８
［４×４画素ブロックの位置がピクチャの上端の場合］
Pred(ALL)＝｛P(I)＋P(J)＋P(K)＋P(L)＋２｝＞＞２
［ピクチャの左端の場合］
Pred(ALL)＝｛P(A)＋P(B)＋P(C)＋P(D)＋２｝＞＞２
［上記以外の場合］
Pred(ALL)＝｛P(A)＋P(B)＋P(C)＋P(D)＋P(I)＋P(J)＋P(K)＋P(L)＋４｝＞＞３
【００１３】
＜４×４画素ブロックの予測モード“３”＞
Pred(a)＝｛P(A)＋２P(B)＋P(C)＋２｝＞＞２
Pred(b)＝Pred(e)＝｛P(B)＋２P(C)＋P(D)＋２｝＞＞２
Pred(c)＝Pred(f)＝Pred(i)＝｛P(C)＋２P(D)＋P(E)＋２｝＞＞２
Pred(d)＝Pred(g)＝Pred(j)＝Pred(m)＝｛P(D)＋２P(E)＋P(F)＋２｝＞＞２
Pred(h)＝Pred(k)＝Pred(n)＝｛P(E)＋２P(F)＋P(G)＋２｝＞＞２
Pred(l)＝Pred(o)＝｛P(F)＋２P(G)＋P(H)＋２｝＞＞２
Pred(p)＝｛３P(G)＋P(H)＋２｝＞＞２
【００１４】
＜４×４画素ブロックの予測モード“４”＞
Pred(a)＝Pred(f)＝Pred(k)＝Pred(p)＝｛P(A)＋２P(M)＋P(I)＋２｝＞＞２
Pred(b)＝Pred(g)＝Pred(i)＝｛P(M)＋２P(A)＋P(B)＋２｝＞＞２
Pred(c)＝Pred(h)＝｛P(A)＋２P(B)＋P(C)＋２｝＞＞２
Pred(d)＝｛P(C)＋２P(D)＋P(E)＋２｝＞＞２
Pred(e)＝Pred(j)＝Pred(o)＝｛P(M)＋２P(I)＋P(J)＋２｝＞＞２
Pred(i)＝Pred(n)＝｛P(I)＋２P(J)＋P(K)＋２｝＞＞２
Pred(m)＝｛P(J)＋２P(K)＋P(L)＋２｝＞＞２
【００１５】
＜４×４画素ブロックの予測モード“５”＞
Pred(a)＝Pred(j)＝｛P(M)＋P(A)＋１｝＞＞１
Pred(b)＝Pred(k)＝｛P(A)＋P(B)＋１｝＞＞１
Pred(c)＝Pred(l)＝｛P(B)＋P(C)＋１｝＞＞１
Pred(d)＝｛P(C)＋P(D)＋１｝＞＞１
Pred(f)＝Pred(o)＝｛P(M)＋２P(A)＋P(B)＋２｝＞＞２
Pred(g)＝Pred(p)＝｛P(A)＋２P(B)＋P(C)＋２｝＞＞２
Pred(h)＝｛P(B)＋２P(C)＋P(D)＋２｝＞＞２
Pred(e)＝Pred(n)＝｛P(I)＋２P(M)＋P(A)＋２｝＞＞２
Pred(i)＝｛P(J)＋２P(I)＋P(M)＋２｝＞＞２
Pred(m)＝｛P(K)＋２P(J)＋P(I)＋２｝＞＞２
【００１６】
＜４×４画素ブロックの予測モード“６”＞
Pred(a)＝Pred(g)＝｛P(M)＋P(I)＋１｝＞＞１
Pred(e)＝Pred(k)＝｛P(I)＋P(J)＋１｝＞＞１
Pred(i)＝Pred(o)＝｛P(J)＋P(K)＋１｝＞＞１
Pred(m)＝｛P(K)＋P(L)＋１｝＞＞１
Pred(f)＝Pred(l)＝｛P(M)＋２P(I)＋P(J)＋２｝＞＞２
Pred(j)＝Pred(p)＝｛P(I)＋２P(J)＋P(K)＋２｝＞＞２
Pred(n)＝｛P(J)＋２P(K)＋P(L)＋２｝＞＞２
Pred(b)＝Pred(h)＝｛P(A)＋２P(M)＋P(I)＋２｝＞＞２
Pred(c)＝｛P(B)＋２P(A)＋P(M)＋２｝＞＞２
Pred(d)＝｛P(C)＋２P(B)＋P(A)＋２｝＞＞２
【００１７】
＜４×４画素ブロックの予測モード“７”＞
Pred(a)＝｛P(A)＋P(B)＋１｝＞＞１
Pred(b)＝Pred(ｉ)＝｛P(B)＋P(C)＋１｝＞＞１
Pred(c)＝Pred(ｊ)＝｛P(C)＋P(D)＋１｝＞＞１
Pred(d)＝Pred(ｋ)＝｛P(D)＋P(E)＋１｝＞＞１
Pred(l)＝｛P(E)＋P(F)＋１｝＞＞１
Pred(e)＝｛P(A)＋２P(B)＋P(C)＋２｝＞＞２
Pred(f)＝Pred(m)＝｛P(B)＋２P(C)＋P(D)＋２｝＞＞２
Pred(g)＝Pred(n)＝｛P(C)＋２P(D)＋P(E)＋２｝＞＞２
Pred(h)＝Pred(o)＝｛P(D)＋２P(E)＋P(F)＋２｝＞＞２
Pred(p)＝｛P(E)＋２P(F)＋P(G)＋２｝＞＞２
【００１８】
＜４×４画素ブロックの予測モード“８”＞
Pred(a)＝｛P(I)＋P(J)＋１｝＞＞１
Pred(e)＝Pred(c)＝｛P(J)＋P(K)＋１｝＞＞１
Pred(i)＝Pred(g)＝｛P(K)＋P(L)＋１｝＞＞１
Pred(b)＝｛P(I)＋２P(J)＋P(K)＋２｝＞＞２
Pred(f)＝Pred(d)＝｛P(J)＋２P(K)＋P(L)＋２｝＞＞２
Pred(j)＝Pred(h)＝｛P(J)＋３P(K)＋２｝＞＞２
Pred(k)＝Pred(l)＝Pred(m)＝Pred(n)＝Pred(o)＝Pred(p)＝P(L)
【００１９】
また、１６×１６画素ブロックの場合の予測モードと予測方向の関係は、１６×１６予測モード０は垂直予測、１６×１６予測モード１は水平予測、１６×１６予測モード２は平均値予測、１６×１６予測モード３は平面予測となっている。図５に１６×１６のブロックの図を示す。画素（ｘ,ｙ）の画素値をＰ（ｘ,ｙ）、画素（ｘ,ｙ）に対する予測値をＰｒｅｄ（ｘ,ｙ）と表すと、各予測方向に対して予測値は次のように表せる。
【００２０】
＜１６×１６画素ブロックの予測モード“０”＞
Pred(x,y)＝P(x,−１)  (ｘ＝０〜１５,ｙ＝０〜１５)
＜１６×１６画素ブロックの予測モード“１”＞
Pred(x,y)＝P(−１,y)  (ｘ＝０〜１５,ｙ＝０〜１５)
＜１６×１６画素ブロックの予測モード“２”＞
［ピクチャの先頭の場合］
Pred(x,y)＝１２８  (ｘ＝０〜１５,ｙ＝０〜１５)
［ピクチャの上端の場合］
Pred(x,y)＝｛ΣP(−１,y)＋８｝＞＞４  (ｘ＝０〜１５,ｙ＝０〜１５)
［ピクチャの左端の場合］
Pred(x,y)＝｛ΣP(x,−１)＋８｝＞＞４  (ｘ＝０〜１５,ｙ＝０〜１５)
［上記以外の場合］
Pred(x,y)＝｛ΣP(x,−１)＋ΣP(−１,y)＋１６｝＞＞５  (ｘ＝０〜１５,ｙ＝０〜１５)
＜１６×１６画素ブロックの予測モード“３”＞
Pred(x,y)＝｛ａ＋ｂ×(ｘ−７)＋ｃ×(ｙ−７)＋１６｝＞＞５
ａ＝１６×｛(P(−１,１５)＋P(１５,−１))
ｂ＝(５×Ｈ＋３２)＞＞６
ｃ＝(５×Ｖ＋３２)＞＞６
Ｈ＝P(８,−１)−P(６,−１)＋P(９,−１)−P(５,−１)＋P(１０,−１)−P(４,−１)＋P(１１,−１)−P(３,−１)＋P(１２,−１)−P(２,−１)−P(１３,−１)−P(１,−１)＋P(１４,−１)−P(０,−１)＋P(１５,−１)−P(−１,−１)
Ｖ＝P(−１,８)−P(−１,６)＋P(−１,９)−P(−１,５)＋P(−１,１０)−P(−１,４)＋P(−１,１１)−P(−１,３)＋P(−１,１２)−P(−１,２)−P(−１,１３)−P(−１,１)＋P(−１,１４)−P(−１,０)＋P(−１,１５)−P(−１,−１)
【００２１】
上記において、予測モードの数値が小さい程、予測に選択される頻度が高いとされている。
【００２２】
また、色差成分の場合には、４つの予測方向を使用するが、ブロックサイズは８×８画素のブロックを使用する。ただし、色差成分で８×８画素ブロックを使用して予測する方法は、輝度成分で１６×１６を使用して予測する方法とは予測モードの番号と予測方向が異なる。すなわち、色差成分の８×８画素ブロック予測における予測モード“０”は平均値予測、予測モード“１”が水平予測、予測モード“０”が垂直予測、予測モード“３”が平面予測となっている。
【００２３】
さらに、ＪＶＣでは、静止画像符号化処理も含めた、Ｈ．２６４／ＡＶＣ  Ｆｉｄｅｌｉｔｙ  Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎｓ  Ａｍｅｎｄｍｅｎｔも策定中である。この修正案では、輝度成分での８×８画素ブロックを使用する画面内予測方法が提案されている。輝度成分で８×８画素ブロックを使用して予測する方法では４×４画素ブロックを使用して予測する方法と同様に、予測方向によって９つの予測方法があり、予測モードと予測方向は４×４画素ブロックの場合と同じである。予測値も４×４画素ブロックの場合と同様に算出する。
【非特許文献１】"Fast Mode Decision for Intra Prediction," JVT-G013, 7-14 March, 2003
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、イントラ予測符号化を行う際に、どのブロックサイズでどの予測方向で予測を行えば効率が良いかを選択する方法は勧告では決められていない。実際に、最も効率の良いブロックサイズと予測方向を決定するには、全てのブロックサイズ、全ての予測方向で予測した結果をもとに決定する方法が考えられる。しかし、全てのブロックサイズ、全ての予測方向で予測した結果をもとに決定する方法では回路規模は増大し、計算量も膨大になり、リアルタイムで符号化することは困難になる。
【００２５】
そこで、符号化対象周辺のブロックで予測に使用されたブロック単位（以下、予測単位と表記する）や符号化対象ブロックの画像情報などに応じて、符号化対象ブロックの予測単位を予め決定ることが考えられる。そして、決定された予測単位における全ての予測方向で予測を行い、最も効率の良い予測方向を選択する。このとき、４×４画素ブロックの全て予測モードに対する予測手段を持てば、４×４の予測手段を繰り返し使用することによって、１６×１６や８×８の予測単位の予測手段を実現することができる。しかし、前記の方法では予測のための処理時間が長くなってしまう。
【００２６】
例えば、４×４画素ブロックの予測モード０でイントラ予測符号化する場合の予測値算出では、図６で示すように予測値を算出する。図６における１つのマス目は一画素であり、大文字で表記されている画素Ａ、Ｂ、Ｃ、…は参照画素、小文字で表記されている画素ａ、ｂ、ｃ、…は予測符号化対象画素である。参照画素Ａ、Ｂ、Ｃ、…の輝度値をＰ（Ａ）、Ｐ（Ｂ）、Ｐ（Ｃ）…とした場合、予測符号化対象画素ａ、ｂ、ｃ、…に対する予測値をＰｒｅｄ（ａ）、Ｐｒｅｄ（ｂ）、Ｐｒｅｄ（ｃ）、…は次のようにして求めることができる。
Pred(a)＝Pred(e)＝Pred(i)＝Pred(m)＝P(A)
Pred(b)＝Pred(f)＝Pred(j)＝Pred(n)＝P(B)
Pred(c)＝Pred(g)＝Pred(k)＝Pred(o)＝P(C)
Pred(d)＝Pred(h)＝Pred(l)＝Pred(p)＝P(D)
【００２７】
また、Ｉｎｔｒａ１６×１６画素ブロックモード０の場合には、図７で示すように予測値を算出する。図７における画素ブロックの左上隅の画素のｘ軸とｙ軸の座標を（０，０）とし、その画素ｐ（０，０）の画素値をＰ（０、０）で表す。画素ｐ（ｘ、ｙ）に対する予測値Ｐｒｅｄ（ｘ、ｙ）は次の様に求めることができる。
Pred(x,y)＝P(x,-1)  (ｘ＝０〜１５、ｙ＝０〜１５)
【００２８】
このとき、予測単位が１６×１６画素ブロックの場合の予測値を、Ｉｎｔｒａ４×４の予測値算出手段を使用して予測値を算出する。Ｐ（Ａ）＝Ｐ（ｍ，−１）、Ｐ（Ｂ）＝Ｐ（ｍ＋１，−１）、Ｐ（Ｃ）＝Ｐ（ｍ＋２，−１）、Ｐ（Ｄ）＝Ｐ（ｍ＋３，−１）  （ｍ＝０，４，８，１２）とした場合には次の通りである。
P(m,n)＝P(m,n＋１)＝P(m,n＋２)＝P(m,n＋３)＝P(A)
P(m＋１,n)＝P(m＋１,n＋１)＝P(m＋１,n＋２)＝P(m＋１,n＋３)＝P(B)
P(m＋２,n)＝P(m＋２,n＋１)＝P(m＋２,n＋２)＝P(m＋２,n＋３)＝P(C)
P(m＋３,n)＝P(m＋３,n＋１)＝P(m＋３,n＋２)＝P(m＋３,n＋３)＝P(D)
(m,n)＝｛(０,０),(０,４),(０,８),(０,１２),(４,０),(４,４),(４,８),(４,１２),(８,０),(８,４),(８,８),(８,１２),(１２,０),(１２,４),(１２,８),(１２、１２)｝
【００２９】
上記のように１６×１６予測モード０の予測を実現するために、４×４予測モード０の予測手段を繰り返し使用するとすると、１６回繰り返し使用しなくてはならない。
【００３０】
本発明は、上記の問題を解決するためになされたものであり、回路規模が増大するのを防ぎつつ、各ブロックサイズとそれに応じて予測モードによる予測誤差算出処理を効率良く実行する技術を提供しようとするものである。
【課題を解決するための手段】
【００３１】
この課題を解決するため、本発明の画像符号化装置は以下の構成を備える。すなわち、  
入力したピクチャから、４×４画素ブロック、８×８画素ブロック、１６×１６画素ブロックのいずれかを単位に、ピクチャ内の画素を参照して予測誤差を算出し、当該予測誤差を符号化手段に供給することで符号化を行なう画像符号化装置であって、
符号化対象のピクチャの画像データを記憶する記憶手段と、
符号化対象の画素ブロックのサイズを決定する決定手段と、
符号化対象の着目している画素ブロック内の各画素の予測値を算出するために参照する参照画素を得るため、前記着目している画素ブロックの近傍に位置し、既に前記符号化手段で符号化された画素ブロックを復号する復号手段と、
互いに並列に配置され、４×４画素ブロックの全予測モードに対応する複数の予測値算出手段と、
前記複数の予測値算出手段のうち複数の参照画素から予測値を算出する予測モードの予測値算出手段については、その算出した予測値、又は、１つの参照画素のいずれか一方を予測値として選択し、出力する選択手段と、
１つの参照画素を予測値とする予測モードの予測値算出手段からの予測値、及び、前記選択手段を介して出力した予測値から、前記決定手段で決定したブロックサイズの各画素の予測誤差を、並列して算出する複数の予測誤差算出手段と、
該複数の予測誤差算出手段で算出された予測誤差の合計値に基づき、予測誤差の合計が最小となる予測モードを決定し、決定した予測モードに対応する予測誤差算出手段で得られた予測誤差を、前記符号化手段に出力する出力手段と、
前記決定手段で決定したブロックサイズに応じて、前記選択手段及び前記出力手段を制御する制御手段とを備え、
前記制御手段は、
前記決定手段で決定したブロックサイズが４×４画素ブロックであった場合、
前記選択手段を、前記複数の参照画素から予測値を算出する予測モードの予測値算出手段で得られた予測値を選択させ、全予測モードにおける予測誤差を前記複数の予測誤差算出手段で算出させると共に、
前記出力手段を、算出された予測誤差の合計値が最小となった予測誤差算出手段で算出した予測誤差を出力させ、
前記決定手段で決定したブロックサイズが４×４画素ブロック以外であった場合、
前記選択手段を、１つの参照画素を予測値として選択させ、決定したブロック内の画素の予測誤差を、前記複数の予測誤差算出手段にて振り分けて演算を行なわせ、
前記出力手段を、振り分けて演算された予測誤差の合計値が最小となる予測モードで用いられた複数の予測誤差算出手段の予測誤差を出力させることを特徴とする。
【発明の効果】
【００３２】
本発明によれば、回路規模が増大するのを防ぎつつ、各ブロックサイズとそれに応じて予測モードによる予測誤差算出処理を効率良く実行する技術を提供できる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００３４】
図１は本発明を適用した画像符号化装置におけるイントラ符号化にかかる構成図である。インター符号化については、公知の構成を採用するものとし、その説明は省略する。
【００３５】
本装置は、ブロックサイズ決定部１０１、予測誤差算出部１０２、符号化部１０３、及び、局所復号部１０４を有する。
【００３６】
ブロックサイズ決定部１０１は、動画像を構成する１枚の画像データ（動画像データを１フレーム分のピクチャ）と、その動画像の属性情報（画像のサイズ等のパラメータ）を入力する。そして、ブロックサイズ決定部１０１は、入力した画像データを解析し、符号化単位である画素ブロックのサイズを決定する。画素ブロックのサイズは、４×４、８×８、１６×１６画素の３種類のいずれかである。実施形態では、画像データ中の同じ色を持つ画素が連続する個数の合計を計算する。また、画像データの水平、垂直方向のサイズは属性情報から得られるので、全画素数に対する上記の合計数の比率Ｒを求める。そして、その比率Ｒに比例して画素ブロックのサイズを決める。一例を示すのであれば、この比率Ｒと予め設定された２つの閾値Ｔｈ１、Ｔｈ２（Ｔｈ２＞Ｔｈ１）とを比較し、符号化単位の画素ブロックサイズを以下のようにして決めれば良いであろう。
Ｔｈ２＜Ｒ          →  符号化単位を１６×１６画素ブロック
Ｔｈ１＜Ｒ≦Ｔｈ２  →  符号化単位を８×８画素ブロック
Ｒ≦Ｔｈ１          →  符号化単位を８×８画素ブロック
【００３７】
すなわち、同じ色を持つ画素が連続する割合が高いほど、画素ブロックのサイズを大きくする。この結果、同じ色を持つ画素が連続するような画像の場合、小さいサイズのブロックより大きなサイズのブロックの方がオーバーヘッドが少なくなり、符号化効率を高めることができる。逆に、同じ色を持つ画素が連続する割合が少ない場合、ブロックサイズの小さい方が、符号化効率が高くなることも理解できよう。なお、ブロックのサイズを決定するアルゴリズムはこれに限らず、他の手法を用いても構わない。例えば、符号化しようとする画像データの色のヒストグラム（カラー画像の場合、通常は３色成分あるから３次元ヒストグラムとなる）を作成し、分散や標準偏差を算出し、その分散（もしくは標準偏差）に基づいてブロックサイズを決定しても構わないであろう。場合によっては、不図示の操作部やキーボード等のユーザインタフェースを介して、画素ブロックのサイズをユーザの指示に応じて決定しても構わない。
【００３８】
ブロックサイズ決定部１０１は、決定した画素ブロックサイズを特定するための情報（２ビットあれば十分である）を、予測誤差算出部１０２、符号化部１０３に供給する。なお、１つの画像（ピクチャ）を符号化している最中は、このブロックサイズは固定である。
【００３９】
予測誤差算出部１０２は、入力した画像データを、予測単位決定部１０１で決定したブロックサイズに分割し、１つの画素ブロック内に含まれる各画素を、それぞれの予測モードに従った予測値との差分を演算する。そして、予測誤差算出部１０２は、各予測モードでの予測誤差の合計値を求める。そして、予測誤差算出部１０２は、予測誤差の合計値が最小となった予測モードとして決定し、その予測モードを示す情報と、決定した予測モードに従って得られた予測誤差情報を符号化部１０３に出力する。
【００４０】
符号化部１０３は、ブロックサイズ決定手段から通知されたブロックサイズを１フレーム符号化データストリームのヘッダに格納し、出力する。そして、予測誤差算出部１０２からの予測モードを特定する情報をブロックヘッダに格納すると共に、予測誤差情報については量子化、変換処理、エントロピー符号化を行ない、ブロックヘッダに後続する符号化ストリームとして出力する。また、符号化部１０３は、各ブロックの符号化データを、局所復号部１０４に出力する。
【００４１】
局所復号部１０４は、符号化部１０３から入力した１ブロック分の符号化データを復号し、その復号結果の１ブロック分の画像データを予測誤差算出部１０２に出力する。この復号した画像データが予測誤差算出部１０２に出力されるのは、予測誤差算出部１０２が、注目ブロック内の各画素の予測値を、その注目ブロックの近傍の、符号化済みの領域の画素値を参照して算出するためである。
【００４２】
次に、実施形態における予測誤差算出部１０２を説明する。図２は、実施形態の予測誤差算出部１０２の詳細ブロック構成図である。この予測誤差算出部１０２を構成する各処理部については以下の説明から明らかにする。
【００４３】
制御部２３６は、ブロックサイズ決定部１０１から通知されたブロックサイズに基づき、予測誤差算出部１０２内の各処理部を制御する。この制御の中には、参照画素記憶部２０１からの画素値の読出し、ピクチャ記憶部２０２からのブロック内の画素データの読出し、スイッチ２３７乃至２４３の切替えが含まれる。
【００４４】
予測画素記憶部２０１は、予測誤差を算出しようとしている注目ブロックに隣接する、既に符号化された画像データ（局所復号部１０４からの復号結果）を格納する。入力ピクチャ記憶部２０２は、入力した画像データを一時的に記憶する。
【００４５】
ピクチャ記憶部２０２は、符号化すべき画像データ（１ピクチャ）を記憶する。
【００４６】
ｃｈｒｏｍａ８×８モード０予測値算出部２３１は、８×８個の色差の予測値を算出し、ｃｈｒｏｍａ８×８モード０予測誤差算出部２３２は、実際の色差と予測色差との差分を演算子、その結果を予測誤差出力部２３５、及び、ＳＡＤ算出部２３３に出力する。色差については、輝度の予測ブロックのサイズに依存せず、８×８画素である。
【００４７】
なお、符号化対象の画像がモノクロ画像である場合、ｃｈｒｏｍａ８×８モード０予測値算出部２３１、ｃｈｒｏｍａ８×８モード０予測誤差算出部２３２は、予測誤差出力部２３５、及び、ＳＡＤ算出部２３３は無くても構わない。
【００４８】
ここで、説明を簡単なものとするため、ブロックサイズ決定部１０１が、予測単位である輝度の画素ブロックのサイズを４×４画素とした場合について説明する。
【００４９】
この場合、制御部２３６は、複数のスイッチ２３７乃至２４３に選択制御信号を出力し、スイッチ２３７乃至２４３が予測値算出部２０５乃至２１２からの出力を選択させるようにする。
【００５０】
先に説明したように、符号化単位が４×４画素ブロックのサイズの場合、輝度については予測モード０乃至８の計９種類存在する。実施形態では、予測値算出、予測誤差算出を並列的に行なうので、予測値算出部及び予測誤差算出部は複数存在し、それらは並列的に配置されている。
【００５１】
予測値算出部２０４乃至２１２（計９個）は、参照画素記憶部２０１を参照し、４×４画素ブロック内の注目画素について、各予測モードに応じた予測値を算出する。すなわち、予測演算部２０４は、予測モード０の予測値を求め、予測誤差算出部２１３にその予測値を出力する。予測演算部２０５は予測モード１の予測値を求め、その予測値を予測誤差算出部２１４に出力する。予測値算出部２０６は、予測モード２の予測値を算出し、スイッチ２３７を介して、予測誤差算出部２１５に出力する。以下、予測演算部２０７乃至２１２は、予測モード２乃至８の予測値を求め、スイッチ２３９乃至２４３を介して、予測誤差算出部２１６乃至２２１に出力する。
【００５２】
予測値算出２０４は予測モード０の予測値を演算する。予測モード０は図６の画素ａ，ｅ，ｉ，ｍについて予測誤差を求める際の予測値は、参照画素記憶部２０１内の画素Ｐ（Ａ）をそのまま予測値として出力するだけである。また、画素ｂ、ｆ、ｊ、ｎの予測誤差を求める際の予測値は、参照画素記憶部２０１内の画素Ｐ（Ｂ）をそのまま予測値として出力すればよい。以下、同様に、画素Ｐ（Ｃ）、画素Ｐ（Ｄ）が、その真下に位置する画素の予測値として使用される。予測誤差算出部２１３は、各予測値を用いて、その予測値との差分を演算すべき画素データ（制御手段２３６により読み出される）との差分を演算し、ＳＡＤ算出部２２２に出力する。
【００５３】
また、予測値算出部２０５は予測モード１の予測値を演算する。予測モード１は図６の画素ａ，ｂ，ｃ，ｄについては、参照画素記憶部２０１内の画素Ｐ（Ｉ）をそのまま予測値として出力するだけである。以下、同様に、予測誤差算出部２００５が画素ｅ，ｆ，ｇ，ｈの予測誤差を算出する場合には画素Ｐ（Ｊ）が予測値として使用される。他の画素についてもＰ（Ｋ），Ｐ（Ｌ）が、その水平方向に存在する画素値の予測誤差として使用される。
【００５４】
予測値算出部２０４、２０５以外の予測値算出部２０６乃至２１２については、先に示した演算処理を行ない、予測値を求める。
【００５５】
ここで、一例として予測モード４の予測値を算出する予測値算出部２０７について説明する。
【００５６】
予測モード４では、図８の矢印で示される方向に予測値を適用し、各画素の予測誤差を求める。図９は、予測モード４の予測値を演算する予測値算出部２０７と予測誤差算出部部２１８の一部の構成図を示している。図９のａ、ｆ、ｋ、ｐはそれぞれ、入力ピクチャの画素値を示しており、Ａ、Ｉ、Ｍは参照画素値を示している（図４参照）。図中の「＜＜１」は左への１ビットシフト演算を示しており、「＞＞２」は右への２ビットシフト演算を示している。また、「＋」は加算、「−」は減算を示している。参照画素Ａ、Ｉ、Ｍより算出される予測値とａ、ｆ、ｋ、ｐそれぞれの画素値の差分が予測誤差として出力することができる。
【００５７】
ここでは、予測モード４の予測値算出部２０７について示したが、他の予測値算出部も同様にして、各モードの予測値を求め、それぞれに対応する予測誤差算出部が予測誤差を算出することができることは、容易に理解できよう。
【００５８】
上記の結果、各予測誤差算出部２１３乃至２２１は、４×４個の画素データの予測誤差を算出し、その算出結果を、それぞれに接続されたＳＡＤ算出部２２２乃至２３０、及び、予測誤差出力部２３５に出力する。
【００５９】
ＳＡＤ算出部２２２乃至２３０、２３３は、各予測モードのＳＡＤ（Sum of Absolute Diference）、すなわち、制御部２３６から設定された個数の予測誤差の絶対値の合計を算出する。ここでは４×４画素ブロックについて説明しているので、制御部２３６から設定される個数は４×４個である。算出したＳＡＤは、ＳＡＤ記憶部２３４に格納される。なお、予測単位が、４×４画素ブロックである場合、ＳＡＤ算出部２３３は機能しなくても構わない。
【００６０】
通常、予測誤差が小さい値であるほど、符号長の短い符号語を割り当てることで、符号化効率を高めている。換言すれば、ＳＡＤが小さいほど、符号化効率が高くなると言える。そこで、予測モード決定部２０３は、ＳＡＤ記憶部２３４に格納された輝度のＳＡＤ値の中の最小値を検索し、その最小値となった予測モードが０乃至８のいずれであるかを判定し、その判定結果を予測モード情報として予測誤差出力部２３５に出力する。
【００６１】
予測誤差出力部２３５は、内部に、予測誤差算出部２１３乃至２２１、及び、chroma８×８予測誤差算出部２３２で算出された予測誤差を格納するバッファメモリを内蔵する。予測誤差出力部２３５は、予測モード決定部２０３からの予測モード情報と、内部のバッファメモリから、その予測モードで特定される４×４個の予測誤差（予測誤差算出部２１３乃至２２１のいずれかからの予測誤差）を選択し、符号化部１０３に出力する。また、予測誤差出力部２３５は、chroma８×８予測誤差算出部２３２から受信した８×８個のchroma予測誤差については、予め設定されたタイミングで符号化部１０３に出力する。
【００６２】
以上が予測単位として４×４画素ブロックが選択された場合の予測誤差算出部１０２の動作である。次に、４×４画素ブロック以外のサイズが決定された場合について説明する。
【００６３】
先ず、予測単位として１６×１６画素ブロックが選択された場合について説明する。
【００６４】
１６×１６画素ブロックの予測誤差算出を行なう場合、先に説明したように、予測モードには０乃至３の４通りある。しかし、本実施形態では、予測モード０、１について処理を行ない、予測モード２、３は採用しないこととする。なお、予測モード２、３については、別途、それ専用の回路でもって実現しても構わない。
【００６５】
１６×１６画素画素ブロックの予測モード０は、４×４画素ブロックの予測モード０と同様に、垂直方向予測である。また、１６×１６画素画素ブロックの予測モード１は、４×４画素ブロックの予測モード１と同様に、水平方向予測である。
【００６６】
図５を用いて説明する。図５には、１６×１６画素のブロックと既に符号済みの画素ブロックの一部を示している。１６×１６画素ブロックの左上隅の座標を（０，０）とし、その画素をｐ（０，０）とし、画素ｐ（０，０）の予測値Ｐｒｅｄ（０，０）とする。この場合、モード０での各画素の予測値は次のようになる。
Pred(0,0)＝Pred(0,1)＝Pred(0,2)＝…＝Pred(0,15)＝P(0,-1)
Pred(1,0)＝Pred(1,1)＝Pred(1,2)＝…＝Pred(1,15)＝P(1,-1)
Pred(2,0)＝Pred(2,1)＝Pred(2,2)＝…＝Pred(2,15)＝P(2,-1)
：
Pred(15,0)＝Pred(15,1)＝Pred(15,2)＝…＝Pred(15,15)＝P(15,-1)
【００６７】
また、予測モード１での各画素の予測値は次のようになる。
Pred(0,0)＝Pred(1,0)＝Pred(2,0)＝…＝Pred(15,0)＝P(-1,0)
Pred(0,1)＝Pred(1,1)＝Pred(2,1)＝…＝Pred(15,1)＝P(-1,1)
Pred(0,2)＝Pred(1,2)＝Pred(2,2)＝…＝Pred(15,2)＝P(-1,2)
：
Pred(0,15)＝Pred(1,15)＝Pred(2,15)＝…＝Pred(15,15)＝P(15,-1)
【００６８】
上記の通り、モード０、１における予測値は、上記の通り、１つの画素Ｐ（ｍ，−１）又はＰ（−１，ｍ）（ｍ＝０、１、２、…１５）がそのまま予測値として採用される。
【００６９】
図２には、予測誤差算出部２１３乃至２２１の９個が存在する。そこで、本実施形態では、そのうちの８個を有効利用し、並列して処理を行なうことで、処理効率を上げる。
【００７０】
すなわち、予測誤差算出部２１３は、図５を参照するのであればＰ（０，ｍ）、Ｐ（４，ｍ）、Ｐ（８，ｍ）、Ｐ（１２、ｍ）（ｍ＝０、１、２、…１５）についてのモード０の予測誤差を算出するようにする（４本の垂直列の予測誤差を算出する）。これを再定義すると、予測誤差算出部２１３は、画素Ｐ（ｎ，ｍ）（ｎ＝０、４、８、１２；ｍ＝１、２、３、…１５）を、モード０の予測誤差を算出する、と言うことができる。
【００７１】
そして、予測誤差算出部２１４は、図５を参照するのであればＰ（ｍ，０）、Ｐ（ｍ，４）、Ｐ（ｍ，８）、Ｐ（ｍ、１２）についてのモード１の予測誤差を算出するようにする（４本の水平行の予測誤差を算出する）。これを再定義すると、予測誤差算出部２１４はＰ（ｍ，ｎ）をモード１の予測誤差を算出する、と言うことができる。ここで、予測誤差算出部２１４におけるｎ，ｍの順序が、予測誤差算出部２１３のそれと逆であることに注意されたい。
【００７２】
同様に、予測誤差算出部２１５はＰ（ｎ＋１，ｍ）、予測誤差算出部２１７はＰ（ｎ＋２，ｍ）、予測誤差算出部２１９はＰ（ｎ＋３，ｍ）の予測モード０の予測誤差を算出する。
【００７３】
同様に、予測誤差算出部２１６はＰ（ｍ，ｎ＋１）、予測誤差算出部２１８はＰ（ｍ，ｎ＋２）、予測誤差算出部２２０はＰ（ｍ，ｎ＋３）の予測モード１の予測誤差を算出する。
【００７４】
予測誤差算出部２１５乃至２２０は、予測モード０、１の予測誤差を算出することになるので、予測値算出部２０６乃至２１１の演算による予測値は採用できない。それ故、制御部２３６は、スイッチ２３７乃至２４２（２４３は機能してもしなくても構わない）に対し、参照画素記憶部２０１からの画素値をダイレクトに選択するように切替える。
【００７５】
そして、制御部２３６は、例えば、予測誤差算出部２１３が、画素Ｐ（ｎ、ｍ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（ｎ，−１）を読出し、予測値算出部２０４に出力する。同様に、予測誤差算出部２１５が、画素Ｐ（ｎ＋１、ｍ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（ｎ＋１，−１）を読出し、予測値算出部スイッチ２３７に出力する。予測誤差算出部２１７、２１９については説明するまでもないであろう。
【００７６】
一方、制御部２３６は、予測誤差算出部２１４が、画素Ｐ（ｍ、ｎ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（−１，ｎ）を読出し、予測値算出部２０５に出力する。同様に、予測誤差算出部２１６が、画素Ｐ（ｍ、ｎ＋１）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（−１，ｎ＋１）を読出し、予測値算出部スイッチ２３８に出力する。予測誤差算出部２１８、２１０については説明するまでもないであろう。
【００７７】
以上の結果、予測誤差算出部２１３乃至２２０（予測誤差算出部２２１の演算結果は無視する）それぞれは１６×４個の予測誤差を算出することになる。
【００７８】
ＳＡＤ算出部２２２乃至２２９（ＳＡＤ算出部２３０の算出結果は無視する）は、それぞれの予測誤差算出部２１３乃至２２０からの予測誤差の合計値を算出し、その算出結果をＳＡＤ記憶部２３４に格納する。
【００７９】
ここで、ＳＡＤ算出部２２２、２２４、２２６、２２８の算出結果の合計値が、１６×１６画素の予測モード０の予測誤差の絶対値の合計値を意味する。また、ＳＡＤ算出部２２３、２２５、２２７、２２９の算出結果の合計値が１６×１６画素の予測モード１の予測誤差の絶対値の合計値となることは理解できよう。
【００８０】
そこで、予測モード決定部２０３は、予測モード０の予測誤差合計値と、予測モード１の予測誤差合計値とを比較し、小さい方の予測モードを、予測モード情報として予測誤差出力部２３５に出力する。
【００８１】
予測誤差出力部２３５は、予測モード決定部２０３から予測モード０を示す予測モード情報を受信した場合には、その予測モードを示す情報を出力する。そして、後続して、内部のバッファに格納された予測誤差算出部２１３、２１５、２１７、２１９で算出された予測誤差を、予め設定された順に並べ替え出力する。そして、chroma８×８モード０予測誤差算出部２３２で得られた予測誤差も予め設定されたタイミングで出力する。
【００８２】
また、予測誤差出力部２３５は、予測モード決定部２０３から予測モード１を示す予測モード情報を受信した場合には、その予測モードを示す情報を出力する。そして、後続して、内部のバッファに格納された予測誤差算出部２１４、２１６、２１８、２２０で算出された予測誤差を、適当に並べ替え出力する。そして、chroma８×８モード０の予測誤差算出部２３２で得られた予測誤差も適当なタイミングで出力する。
【００８３】
以上が、ブロックサイズ決定部１０１が予測単位として１６×１６画素ブロックとした場合の処理である。上記の説明からわかるように、４×４画素ブロックのモード０乃至８の９個の予測誤差算出部を、有効利用することができる。すなわち、１６×１６画素ブロックのモード０の予測誤差算出、モード１の予測誤差算出を８個の予測誤差算出部で並列して演算することが可能になる。
【００８４】
次に、ブロックサイズ決定部１０１が予測単位として８×８画素ブロックとした場合の処理について説明する。８×８画素ブロック（図１０参照）の場合、予測モードは０乃至３の４通り存在する。但し、８×８画素ブロックの場合の予測モードの番号で示される予測値の求め方と、４×４及び１６×１６画素ブロックの予測モードの番号の予測値の求め方は異なる。すなわち、８×８画素ブロックの場合の予測モード０とは、平均値予測を示す。また、８×８画素ブロックの場合の予測モード１は垂直方向予測、予測モード２は水平方向予測、予測モード３は平面予測となる。
【００８５】
従って、８×８画素ブロックの場合の予測モード１、２については、１６×１６画素ブロックの予測モード０、１と同様に処理することで、並列処理が実現できる。本実施形態では、８×８画素ブロックについては、予測モード０、３については行なわず、予測モード１、２について行なうものとする。ただし、予測モード０、３については、別途、それ専用の回路でもって実現しても構わない。
【００８６】
８×８画素ブロックの場合の予測モード１、２では、上記の通り、予測値は１つの参照画素のみを用いれば良い。それ故、制御部２３６は、スイッチ２３７乃至２４２を、１６×１６画素ブロック時の予測誤差算出と同様に、参照画素記憶部２０１からダイレクトに入力するように切り替える。
【００８７】
そして、予測誤差算出部２１３は、図１０を参照するのであればＰ（０，ｍ）、Ｐ（４，ｍ）（ｍ＝０、１、２、…１５）についてのモード１の予測誤差を算出するようにする。これを再定義すると、予測誤差算出部２１３は、画素Ｐ（ｎ，ｍ）（ｎ＝０、４；ｍ＝１、２、３、…１５）を、モード１の予測誤差を算出する、と言うことができる。
【００８８】
そして、予測誤差算出部２１４は、図５を参照するのであればＰ（ｍ，０）、Ｐ（ｍ，４）についてのモード２の予測誤差を算出するようにする。これを再定義すると、予測誤差算出部２１４はＰ（ｍ，ｎ）をモード２の予測誤差を算出する、と言うことができる。ここで、予測誤差算出部２１４におけるｎ，ｍの順序が、予測誤差算出部２１３のそれと逆であることに注意されたい。
【００８９】
同様に、予測誤差算出部２１５はＰ（ｎ＋１，ｍ）、予測誤差算出部２１７はＰ（ｎ＋２，ｍ）、予測誤差算出部２１９はＰ（ｎ＋３，ｍ）の予測モード１の予測誤差を算出する。
【００９０】
同様に、予測誤差算出部２１６はＰ（ｍ，ｎ＋１）、予測誤差算出部２１８はＰ（ｍ，ｎ＋２）、予測誤差算出部２２０はＰ（ｍ，ｎ＋３）の予測モード２の予測誤差を算出する。
【００９１】
そして、制御部２３６は、例えば、予測誤差算出部２１３が、画素Ｐ（ｎ、ｍ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（ｎ，−１）を読出し、予測値算出部２０４に出力する。同様に、予測誤差算出部２１５が、画素Ｐ（ｎ＋１、ｍ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（ｎ＋１，−１）を読出し、予測値算出部スイッチ２３７に出力する。予測誤差算出部２１７、２１９については説明するまでもないであろう。
【００９２】
一方、制御部２３６は、予測誤差算出部２１４が、画素Ｐ（ｍ、ｎ）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（−１，ｎ）を読出し、予測値算出部２０５に出力する。同様に、予測誤差算出部２１６が、画素Ｐ（ｍ、ｎ＋１）の予測誤差を算出する場合には、参照画素記憶部２０１から画素Ｐ（−１，ｎ＋１）を読出し、予測値算出部スイッチ２３８に出力する。予測誤差算出部２１８、２１０については説明するまでもないであろう。
【００９３】
以上の結果、予測誤差算出部２１３乃至２２０（予測誤差算出部２２１の演算結果は無視する）それぞれは８×２個の予測誤差を算出することになる。
【００９４】
ＳＡＤ算出部２２２乃至２２９（ＳＡＤ算出部２３０の算出結果は無視する）は、それぞれの予測誤差算出部２１３乃至２２０からの予測誤差の合計値を算出し、その算出結果をＳＡＤ記憶部２３４に格納する。
【００９５】
ここで、ＳＡＤ算出部２２２、２２４、２２６、２２８の算出結果の合計値が、８×８画素の予測モード１の予測誤差の絶対値の合計値を意味する。また、ＳＡＤ算出部２２３、２２５、２２７、２２９の算出結果の合計値が８×８画素の予測モード２の予測誤差の絶対値の合計値となることは理解できよう。
【００９６】
そこで、予測モード決定部２０３は、予測モード１の予測誤差合計値と、予測モード２の予測誤差合計値とを比較し、小さい方の予測モードを、予測モード情報として予測誤差出力部２３５に出力する。
【００９７】
予測誤差出力部２３５は、予測モード決定部２０３から予測モード１を示す予測モード情報を受信した場合には、その予測モードを示す情報を出力する。そして、後続して、内部のバッファに格納された予測誤差算出部２１３、２１５、２１７、２１９で算出された予測誤差を、適当に並べ替え出力する。そして、chroma８×８モード０予測誤差算出部２３２で得られた予測誤差も適当なタイミングで出力する。
【００９８】
また、予測誤差出力部２３５は、予測モード決定部２０３から予測モード２を示す予測モード情報を受信した場合には、その予測モードを示す情報を出力する。そして、後続して、内部のバッファに格納された予測誤差算出部２１４、２１６、２１８、２２０で算出された予測誤差を、適当に並べ替え出力する。そして、chroma８×８モード０の予測誤差算出部２３２で得られた予測誤差も適当なタイミングで出力する。
【００９９】
以上が、ブロックサイズ決定部１０１が予測単位として８×８画素ブロックとした場合の処理である。
【０１００】
以上説明したように本実施形態によれば、１枚の画像データを４×４画素ブロックに分割した場合の全予測モードにおける予測値算出部、予測誤差算出部を有する。そして、この構成を有効利用し、８×８画素ブロックにおける予測モード０、１、及び、１６×１６画素ブロックにおける予測モード１、２について、並列的に処理を行なうことが可能になる。従って、回路規模の増大を防ぎ、８×８画素ブロック、１６×１６画素ブロックについては、その処理にかかる時間が増えることを抑制できる。
【０１０１】
なお、実施形態では、８×８画素ブロックにおける予測モード０、３、及び、１６×１６画素ブロックにおける予測モード２、３については、行なわないこととした。しかしながら、これらのブロックサイズとそのモードに対応する回路を付加したとしても、その分だけ回路規模が増大するだけであり、従来技術に対する有効性は十分備えることは理解できよう。
【０１０２】
また、例えば、特に、８×８画素ブロックのモード０については、chroma８×８モード０予測値算出部２３１、chroma８×８モード０予測誤差算出部２３２、chroma８×８モード０ＳＡＤ算出部を、代替利用しても構わない。なぜなら、chroma８×８モード０と、８×８画素ブロックのモード０における予測値の算出方法は、共に平均値予測であり、参照する画素値を輝度にするか、色差にするかにするだけで、等価の処理を行なうことができるからである。
【０１０３】
また、更に、上記実施形態は、Ｈ．２６４に適用しても構わないことは明らかであろう。
【図面の簡単な説明】
【０１０４】
【図１】実施形態におけるイントラ予測符号化を行なう画像符号化装置のブロック構成図である。
【図２】実施形態における予想誤差算出部の構成を示す図である。
【図３】４×４画素ブロックサイズにおける各予測モードと予測方向の関係を示す図である。
【図４】４×４画素ブロック内の画素と、参照画素との関係を示す図である。
【図５】１６×１６画素ブロックの例を示す図である。
【図６】４×４画素ブロックの予測モード０の予測方向を示す図である。
【図７】１６×１６画素ブロックの予測モード０の予測方向を示す図である。
【図８】４×４画素ブロックの予測モード４に予測方向を示す図である。
【図９】４×４画素ブロックの予測モード４の予測値算出部と予測誤差算出部の一部の構成を示す図である。
【図１０】８×８画素ブロックの例を示す図である。
【図１】
2009218742.tif 000003
【図２】
2009218742.tif 000004
【図３】
2009218742.tif 000005
【図４】
2009218742.tif 000006
【図５】
2009218742.tif 000007
【図６】
2009218742.tif 000008
【図７】
2009218742.tif 000009
【図８】
2009218742.tif 000010
【図９】
2009218742.tif 000011
【図１０】
2009218742.tif 000012