(57)【特許請求の範囲】
【請求項１】
画像データを複数のマクロブロックに分割し、該マクロブロックに隣接する画素を用いてイントラ予測を行う動画像符号化装置であって、
各マクロブロックにつき、前記イントラ予測に用いる予測モードであって、最も符号化効率の良い予測モードを、マクロブロックの垂直方向上側に隣接する画素を用いる第１の予測モードグループと、該垂直方向上側に隣接する画素を用いない第２の予測モードグループとのいずれかに属する予測モードから決定する決定手段と、
決定された前記予測モードを保存する第１予測モード保存手段と、
前記第１予測モード保存手段に保存された、第２の予測モードグループに属し、かつ、１水平ライン分のマクロブロックについて決定された予測モードの数をカウントするカウンタと、
前記決定手段により１水平ライン分のマクロブロックについて前記予測モードが決定された際の、前記カウンタのカウント値の大きさに基づいて、前記１水平ラインに属するマクロブロックによりスライス分割を行うか否かを決定するスライス分割判定手段と
を備えることを特徴とする動画像符号化装置。
【請求項２】
前記決定手段は、第１のサイズのマクロブロックと、該第１のサイズのマクロブロックを更に分割した第２のサイズのマクロブロックであって、該第１のサイズのマクロブロックの垂直方向上側に隣接する画素と隣接する第２のサイズのマクロブロックとについて、前記予測モードを決定することを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記スライス分割判定手段は、前記カウント値が閾値より大きい場合に、スライス分割を行うと判定することを特徴とする請求項１又は２に記載の動画像符号化装置。
【請求項４】
決定された前記予測モードが前記第１の予測モードグループに属する場合に、前記第２の予測モードグループに属する予測モードのうち、最も符号化効率の良い予測モードを保存する第２予測モード保存手段と、
前記スライス分割判定手段がスライス分割を行なうと判定した場合、前記１水平ラインに属するマクロブロックのうち、決定された前記予測モードが前記第１の予測モードグループに属するマクロブロックについて、前記第２予測モード保存手段に保存された予測モードにより予測画像データを生成するイントラ予測手段と
をさらに備えることを特徴とする請求項１乃至３のいずれか１項に記載の動画像符号化装置。
【請求項５】
決定された前記予測モードが前記第１の予測モードグループに属するマクロブロックについて、前記画像データにおけるアドレスを保存するアドレス保存手段をさらに備え、
前記イントラ予測手段は、前記アドレス保存手段に保存されたアドレスに基づいて該マクロブロックを特定し、前記第２予測モード保存手段に保存された予測モードにより前記予測画像データを生成することを特徴とする請求項４に記載の動画像符号化装置。
【請求項６】
前記決定手段は、各予測モードについて予測誤差を算出し、該予測誤差が最小の予測モードを前記最も符号化効率の良い予測モードと決定することを特徴とする請求項１乃至５のいずれか１項に記載の動画像符号化装置。
【請求項７】
前記スライス分割判定手段において決定されたスライス分割に基づき生成されたスライスに属し、符号化されたマクロブロック数をカウントするマクロブロックカウンタをさらに備え、
前記決定手段は、前記マクロブロックカウンタのカウント値に基づき前記第２の予測モードグループに属する予測モードについて算出した予測誤差から所定値を減算し、減算後の予測誤差に基づいて前記最も符号化効率の良い予測モードを決定することを特徴とする請求項６に記載の動画像符号化装置。
【請求項８】
前記決定手段は、前記第１の予測モードグループに属する予測モードについて算出した予測誤差のうち最小となる第１の予測誤差が、前記第２の予測モードグループに属する予測モードについて算出した予測誤差のうち最小となる第２の予測誤差よりも小さく、かつ、前記第２の予測誤差と前記第１の予測誤差との差分が、所定の差分よりも小さい場合に、前記第２の予測誤差に対応する予測モードを、前記最も符号化効率の良い予測モードに決定することを特徴とする請求項１乃至５のいずれか１項に記載の動画像符号化装置。
【請求項９】
画像データを複数のマクロブロックに分割し、該マクロブロックに隣接する画素を用いてイントラ予測を行う動画像符号化装置の制御方法であって、
各マクロブロックにつき、前記イントラ予測に用いる予測モードであって、最も符号化効率の良い予測モードを、マクロブロックの垂直方向上側に隣接する画素を用いる第１の予測モードグループと、該垂直方向上側に隣接する画素を用いない第２の予測モードグループとのいずれかに属する予測モードから決定する決定工程と、
決定された前記予測モードを保存する第１予測モード保存手段に保存する保存工程と、
前記第１予測モード保存手段に保存された、第２の予測モードグループに属し、かつ、１水平ライン分のマクロブロックについて決定された予測モードの数をカウントするカウンタ工程と、
前記決定工程において１水平ライン分のマクロブロックについて前記予測モードが決定された際の、前記カウンタのカウント値の大きさに基づいて、前記１水平ラインに属するマクロブロックによりスライス分割を行うか否かを決定するスライス分割判定工程と
を備えることを特徴とする動画像符号化装置の制御方法。
【請求項１０】
コンピュータを請求項１乃至８のいずれか１項に記載の動画像符号化装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置及びその制御方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、マルチメディアに関連する情報のデジタル化が急進しており、それに伴い映像情報の高画質化に向けた要求が高まっている。具体的な例として放送メディアの従来の７２０×４８０画素のSD（standard definition）から、１９２０×１０８０画素のHD（high definition）に移行が行われつつあることを挙げることができる。
【０００３】
その一方で、テレビ電話やテレビ会議システムなど高画質はさほど要求されないものの、リアルタイム性が高くかつ伝送誤り率の少ない符号化方式が求められている。
【０００４】
これらの要求に対し、ＩＴＵ−Ｔ  ＳＧ１６やＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の活動で画像間の相関を利用したピクチャ間予測を用いた符号化圧縮方式の標準化作業が進められている。
【０００５】
この中でも、現状最も高能率符号化を実現し、かつエラー耐性が高いといわれる符号化方式にＨ．２６４／ＭＰＥＧ−４  ＰＡＲＴ１０（ＡＶＣ）（以下、Ｈ．２６４と呼ぶ）がある。このＨ．２６４では、符号化対象のピクチャを複数のブロック（例えば、マクロブロック）に分割した際に、１つ以上のブロックによって"スライス"を形成して、スライスを単位とした符号化を行うことができる。
【０００６】
Ｈ．２６４を前提とするスライスの設定に関する提案としては、特許文献１が知られている。
【０００７】
スライスは、スライスごとに単独で復号することが可能なため、１つのピクチャをできるだけ多くのスライスで分割することで、符号化後のストリームのエラー耐性を高めることができると考えられる。すなわち、ストリームの伝送誤り等によるエラーを最小限に食い止めることができるものである。
【０００８】
ところで、H.２６４で導入された新たな技術のひとつとして、ピクチャ内の相関性を利用したイントラ予測が導入されている。Ｈ．２６４のイントラ予測とは、同一ピクチャ内における隣接するブロックの画素値を用いて符号化対象ブロックの画素値を予測するものである。
【０００９】
なお、イントラ予測には複数の予測ブロックサイズ・予測方向を定義した予測モード（以下、イントラ予測モード）が存在する。例えば、１６×１６画素のブロックデータを基に予測方向を決定するイントラ１６×１６予測には４種類の予測方向が４×４画素のブロックデータを基に予測方向を決定するイントラ４×４予測には９種類の予測方向がある。
【００１０】
H.２６４ではこれらのイントラ予測モードから最も適切なものを選択することにより、高能率な符号化を実現している。
【００１１】
イントラ予測で最適なイントラ予測モードを求めるためにH.２６４のリファレンスソフトモデルＪＭ（Ｊｏｉｎｔ  Ｍｏｄｅｌ）では全てのイントラ予測モードに対して演算を行い、最適なイントラ予測モードを選択している。なお、Ｈ．２６４はＩＴＵ−Ｔ  ＳＧ１６やＩＳＯ／ＩＥＣが提供している。
【００１２】
イントラ予測においては、複数の画素データから構成されるマクロブロックの処理を行う場合に、例えば、当該処理対象のマクロブロックに隣接する所定のマクロブロックの画素データ、予測モードなどの情報を用いて処理を行う。
【００１３】
但し、処理対象のマクロブロックに隣接する上記所定のマクロブロックが、該処理対象のマクロブロックと異なるスライスに属する場合には、当該隣接した所定のマクロブロックの情報は用いることができないため、代替値を用いて処理を行う。このような代替値を用いた処理は、スライス境界に位置するマクロブロックについて生じる。
【特許文献１】特開２００６−１１４９７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上記のように代替値を用いてイントラ予測モードを選択する場合、代替値を用いたことにより符号化効率が低下し、スライス境界付近で画質の劣化を生じてしまうという問題がある。
【００１５】
本発明は、このような問題点に鑑みてなされたものであり、画質の劣化を抑えたスライスの分割を可能とする動画像符号化技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記の課題を解決するための本発明は、画像データを複数のマクロブロックに分割し、該マクロブロックに隣接する画素を用いてイントラ予測を行う動画像符号化装置であって、
各マクロブロックにつき、前記イントラ予測に用いる予測モードであって、最も符号化効率の良い予測モードを、マクロブロックの垂直方向上側に隣接する画素を用いる第１の予測モードグループと、該垂直方向上側に隣接する画素を用いない第２の予測モードグループとのいずれかに属する予測モードから決定する決定手段と、
決定された前記予測モードを保存する第１予測モード保存手段と、
前記第１予測モード保存手段に保存された第２の予測モードグループに属し、かつ、１水平ライン分のマクロブロックについて決定された予測モードの数をカウントするカウンタと、
前記決定手段により１水平ライン分のマクロブロックについて前記予測モードが決定された際の、前記カウンタのカウント値の大きさに基づいて、前記１水平ラインに属するマクロブロックによりスライス分割を行うか否かを決定するスライス分割判定手段と
を備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、画質の劣化を抑えたスライスの分割を可能とする動画像符号化技術を提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して発明の実施形態を説明する。
【００１９】
［第１の実施形態］
以下に図１、図２、図３、図４を参照しながら、発明の第１の実施形態に対応する動画像符号化装置について詳細に説明する。
【００２０】
図１は本発明に係る動画像符号化装置のブロック図である。なお、本実施形態では、符号化対象となるピクチャの符号化として、フレーム画像を符号化することを例にして説明する。
【００２１】
図１に示すように、本発明に係る動画像符号化装置はフレームメモリ１０１、フィルタ後参照フレームメモリ１０２、動き予測部１０３、動き補償部１０４、イントラ予測部１０５、直交変換部１０６、量子化部１０７、
エントロピー符号化部１０８、逆量子化部１０９、逆直交変換部１１０、スイッチ１１１、減算器１１２、加算器１１３、フィルタ前参照フレームメモリ１１４、ループフィルタ１１５、スライス分割決定部１１６を備えて構成される。
【００２２】
係る構成において、まず入力画像を符号化する方法について述べる。
【００２３】
フレームメモリ１０１には表示順に入力画像データが保存され、入力画像データは符号化対象となる第１のサイズの１６×１６画素のマクロブロックに分割される。符号化対象ブロックは、符号化順に動き予測部１０３、イントラ予測部１０５、減算器１１２に順次送信される。減算器１１２はフレームメモリ１０１から送信される符号化対象ブロックから、スイッチ１１１から送信される予測画像ブロックを減算し、画像残差データを出力する。なお、予測画像ブロックの生成方法については後述する。
【００２４】
直交変換部１０６では減算器１１２から出力された画像残差データを直交変換処理して、変換係数を量子化部１０７に出力する。量子化部１０７は直交変換部１０６から提供された変換係数を所定の量子化パラメータを用いて量子化し、エントロピー符号化部１０８および逆量子化部１０９に出力する。エントロピー符号化部１０８は量子化部１０７で量子化された変換係数を入力し、CAVLC、CABACなどのエントロピー符号化を施して、符号化データストリームとして出力する。
【００２５】
続いて、量子化部１０７で量子化された変換係数を用いた参照画像データの生成方法について説明する。
【００２６】
逆量子化部１０９は量子化部１０７から提供される量子化された変換係数を、逆量子化する。逆直交変換部１１０は逆量子化部１０９で逆量子化された変換係数を逆直交変換し、復号残差データを生成し加算器１１３に出力する。加算器１１３は復号残差データと、スイッチ１１１から出力される後述の予測画像データとを加算し参照画像データを生成する。生成された参照画像データは、フィルタ前参照フレームメモリ１１４に保存されるとともに、フィルタ前参照フレームメモリ１１４からループフィルタ１１５へ出力される。ループフィルタ１１５は、参照画像データをフィルタリングしてノイズを除去し、フィルタ後の参照画像データをフィルタ後参照フレームメモリ１０２に保存する。
【００２７】
続いて、入力画像データおよびフィルタ前参照画像データ、フィルタ後参照画像データを用いた予測画像データの生成方法について説明する。
【００２８】
動き予測部１０３は、符号化対象ブロックのフィルタ後参照画像データでの動き量を表す動きベクトルを検出する。そのために、動き予測部１０３には、フレームメモリ１０１から送信される符号化対象ブロックと、フィルタ後参照フレームメモリ１０２から送信されるフィルタ後参照画像データとが入力される。検出された動きベクトルは、フィルタ後参照フレーム画像データ番号と共に動き補償部１０４に出力される。
【００２９】
動き補償部１０４は、動き予測部１０３から提供された動きベクトルを用いて、フィルタ後参照フレームメモリ１０２中のフィルタ後参照フレーム画像データ番号で示される参照フレーム画像を参照して、各ブロックの予測画像データを生成する。生成した予測画像データはスイッチ１１１に出力される。
【００３０】
一方、イントラ予測部１０５はフレームメモリ１０１から提供される符号化対象ブロックとフィルタ前参照フレームメモリ１１４から提供される符号化済みの符号化対象ブロックの周辺画素を用いてイントラ予測を行う。即ち、イントラ予測において適切なイントラ予測モードを選択して予測画像データを生成し、スイッチ１１１に出力する。
【００３１】
スイッチ１１１は、動き補償部１０４およびイントラ予測部１０５から送信されてくる予測画像データのうち、適切な予測画像を選択して減算器１１２に出力する。なお、適切な予測画像の選択方法は、例えば符号化対象ブロックと参照画像データの画像残差の絶対値和が小さいほうを選択するなどの方法が挙げられる。但し、本実施形態では、選択方法自体が発明の本質的特徴となるわけではないので、その種類は特に限定されるものではない。
【００３２】
次に、イントラ予測部１０５で選択可能な予測モードによる予測画像の生成方法について図４を参照して説明する。該予測モードには、第１のサイズの１６×１６画素のブロックデータを基に予測方向を決定するイントラ１６×１６予測には４種類が存在する。また、第２のサイズの４×４画素のブロックデータを基に予測方向を決定するイントラ４×４予測には９種類の予測モードがある。
【００３３】
まず、イントラ１６×１６予測で選択可能な予測モードによる予測画像の生成方法を説明する。ここで、符号化対象ブロックに属する画素データをP(x,y)とする。なお、x，yはブロックを構成するマトリクス状の画素データの行方向および列方向の位置を示し、０〜１５の整数である。
【００３４】
ここで、符号化対象ブロックに隣接する画素データをP(x,-1)，P(-1,y)とする。また、画素データは、上記符号化対象ブロックと異なるピクチャあるいは異なるスライスに属する場合などに、「利用可能でない(unavailable) 」であると判断される。
【００３５】
予測モード０：
予測モード０は、vertical（垂直）予測であり、P(x,-1)が「利用可能」である場合に適用される。この場合に、vertical（垂直）予測では、予測画像データPIの画素データPred(x,y)を数１のように生成する。
［数１］
Pred(x,y)＝P（x,-1） : x,y = ０..１５
予測モード１：
予測モード１は、horizontal（水平）予測であり、P(-1,y)が「利用可能」である場合に適用される。この場合、horizontal（水平）予測では、予測画像データPIの画素データPred(x,y)を数２のように生成する。
［数２］
Pred(x,y)＝P（-1,y） : x,y = ０..１５
予測モード２：
予測モード２は、ＤＣ予測であり、イントラ１６×１６予測では、予測画像データPIの画素データPred（x，y）を数３のように生成する。
【００３６】
まず、P(x,-1)およびP(-1,y)の全てが「利用可能」である場合に、イントラ１６×１６予測では、予測画像データPIの画素データPred（x，y）を数３のように生成する。
［数３］
0004958825.tif 000002
P(x,-1)がunavailableである場合には予測画像データPIの画素データPred（x，y）を数４のように生成する。
［数４］
0004958825.tif 000003
P(-1,y)がunavailableである場合には予測画像データPIの画素データPred（x，y）を数５のように生成する。
［数５］
0004958825.tif 000004
P(x,-1)、P(-1,y)がすべてunavailableである場合には予測画像データPIの画素データPred（x，y）は１２８を用いる。
【００３７】
予測モード３：
予測モード３は、plane予測であり、P(x,-1)、P(-1,y)の全てが上記「利用可能」である場合に適用される。この場合に、plane予測では、予測画像データPIの画素データPred（x，y）を数６のように生成する。
［数６］
0004958825.tif 000005
0004958825.tif 000006
続いてイントラ４×４予測で選択可能な予測モードによる予測ブロックデータの生成方法を、図４を参照して説明する。
【００３８】
図４は、イントラ４×４予測の符号化処理対象となる４×４のブロックに属する画素データａ〜ｐと、当該ブロックデータの周囲に属する画素データＡ〜Ｍとの位置関係を説明するための図である。画素データａ〜ｐの予測値によって、予測画像データＰＩが生成される。なお、画素データＡ〜Ｍは、上記処理対象のブロックと異なるピクチャあるいは異なるスライスに属する場合などに、「利用可能でない(unavailable) 」であると判断される。
【００３９】
予測モード０：
予測モード０は、vertical（垂直）予測であり、図４に示す画素データA,B,C,Dの全てが上記「利用可能」である場合に適用される。この場合、vertical予測は、符号化対象ブロックの画素データａ〜ｐの予測値を、画素データA,B,C,Dを用いて数７のように生成する。
［数７］
a,e,i,m：  A
b,f,j,n：  B
c,g,k,o：  C
d,h,l,p：  D
予測モード１：
予測モード１は、horizontal（水平）予測であり、図４に示す画素データI,J,K,Lの全てが上記「利用可能」である場合に適用される。この場合、horizontal予測は、符号化対象ブロック画素データａ〜ｐの予測値を、画素データI,J,K,Lを用いて数８のように生成する。
［数８］
a,b,c,d：  I
e,f,g,h：  J
i,j,k,l：  K
m,n,o,p：  L
予測モード２：
予測モード２は、DC予測である。図４に示す画素データA,B,C,D,I,J,K,Lの全てが上記「利用可能」である場合には、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,Lを用いて数９のように生成する。
［数９］
（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｉ＋Ｊ＋Ｋ＋Ｌ＋４）＞＞３
また、図４に示す画素データA,B,C,Dの全てが上記「利用可能」でない場合には、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,Dを用いて数１０のように生成する。
［数１０］
（Ｉ＋Ｊ＋Ｋ＋Ｌ＋２）＞＞２
また、図４に示す画素データI,J,K,Lの全てが上記「利用可能」でない場合には、符号化対象ブロック画素データａ〜ｐの予測値を、画素データI,J,K,Lを用いて数１１のように生成する。
［数１１］
（Ａ＋Ｂ＋Ｃ＋Ｄ＋２）＞＞２
また、図４に示す画素データA,B,C,D,I,J,K,Lの全てが上記「利用可能」でない場合には、符号化対象ブロック画素データａ〜ｐの予測値「１２８」を用いる。
【００４０】
予測モード３：
予測モード３は、Diagonal_Down_Left予測であり、図４に示す画素データA,B,C,D,I,J,K,L,Mの全てが上記「利用可能」である場合に適用される。この場合、Diagonal_Down_Left予測は、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,L,Mを用いて数１２のように生成する。
［数１２］
a：  (A+２B+C+2)＞＞2
b,e：（B+2C+D+2）＞＞2
c,f,i：（C+2D+E+2）＞＞2
d,g,j,m：（D+2E+F+2）＞＞2
h,k,n：（E+2F+G+2）＞＞2
l,o：（F+2G+H+2）＞＞2
p：（G+３H+2）＞＞2
予測モード４：
予測モード４は、Diagonal_Down_Right予測であり、図４に示す画素データA,B,C,D,I,J,K,L,Mの全てが上記「利用可能」である場合に適用される。この場合に、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,L,Mを用いて数１３のように生成する。
［数１３］
m：(J+2K+L+2)＞＞2
i,n：(I+2J+K+2)＞＞2
e,j,o：(M+2I+J+2)＞＞2
a,f,k,p：(A+2M+I+2)＞＞2
b,g,l：(M+2A+B+2)＞＞2
c,h：(A+2B+C+2) ＞＞2
d：(B+2C+D+2)＞＞2
予測モード５：
予測モード５は、Diagonal_Vertical_Right予測であり、図４に示す画素データA,B,C,D,I,J,K,L,Mの全てが上記「利用可能」である場合に適用される。この場合に、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,L,Mを用いて数１４のように生成する。
［数１４］
a,j：(M+A+1)＞＞1
b,k：(A+B+1)＞＞1
c,l：(B+C+1)＞＞1
d：(C+D+1)＞＞1
e,n：(I+2M+A+2)＞＞2
f,o：(M+2A+B+2)＞＞2
g,p：(A+2B+C+2)＞＞2
h：(B+2C+D+2)＞＞2
I：(M+2I+J+2)＞＞2
m：(I+2J+K+2)＞＞2
予測モード６：
予測モード６は、Horizontal_Down予測であり、図４に示す画素データA,B,C,D,I,J,K,L,Mの全てが上記「利用可能」である場合に適用される。この場合に、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,L,Mを用いて数１５のように生成する。
［数１５］
a,g：(M+I+1)＞＞1
b,h：(I+2M+A+2)＞＞2
c：(M+2A+B+2)＞＞2
d：(A+2B+C+2)＞＞2
e,k：(I+J+1)＞＞1
f,l：(M+2I+J+2)＞＞2
i,o：(J+K+1)＞＞1
j,p：(I+2J+K+2)＞＞2
m：(K+L+1)＞＞1
n：(J+2K+L+2)＞＞2
予測モード７：
予測モード７は、Vertical_Left予測であり、図４に示す画素データA,B,C,D,I,J,K,L,Mの全てが上記「利用可能」である場合に適用される。この場合に、符号化対象ブロック画素データａ〜ｐの予測値を、画素データA,B,C,D,I,J,K,L,Mを用いて数１６のように生成する。
［数１６］
a：(A+B+1)＞＞1
b,i：(B+C+1)＞＞1
c,j：(C+D+1)＞＞1
d,k：(D+E+1)＞＞1
l：(E+F+1)＞＞1
e：(A+2B+C+2)＞＞2
f,m：(B+2C+D+2)＞＞2
g,n：(C+2D+E+2)＞＞2
h,o：(D+2E+F+2)＞＞2
p：(E+2F+G+2)＞＞2
予測モード８：
予測モード８は、Horizontal_Up予測であり、図４に示す画素データI,J,K,Lが上記「利用可能」である場合に適用される。この場合に、符号化対象ブロック画素データａ〜ｐの予測値を、画素データI,J,K,Lを用いて数１７のように生成する。
［数１７］
a：(I+J+1)＞＞1
b：(I+2J+K+2)＞＞2
c,e：(J+K+1)＞＞1
d,f：(J+2K+L+2)＞＞2
g,i：(K+L+1)＞＞1
h,j：(K+３L+2)＞＞2
k,l,m,n,o,p：L
なおイントラ１６×１６予測のモード１は水平方向に高い相関（重み付け）を持たせたモードであり、モード０は垂直方向に高い相関（重み付け）を持たせたモードである。またモード２、３は水平および垂直方向の重み付けを殆ど行っていないモードである。
【００４１】
イントラ４×４予測のモード１，６，８は水平方向に高い相関（重み付け）を持たせたモードであり、モード０，５，７は垂直方向に高い相関（重み付け）を持たせたモードである。また、モード２，４，３は水平および垂直方向の重み付けを殆ど行っていないモードである。
【００４２】
次に本発明の最も特徴的な部分であるスライスを分割する処理について説明する。以降では、図５のスライス分割決定部１１６のブロック図、図２のフローチャート、図３のマクロブロック内の４×４のブロックデータ（ブロックＢＬＯＣＫ）のＭＢアドレスを説明する図を参照して説明する。
【００４３】
なお、本実施形態では説明の簡略化のため、Ｉスライスのみで構成されるピクチャを例に挙げて説明する。従って、本実施形態では動き予測部１０３で動きベクトルを検出する処理は行われない。また、本実施形態では符号化処理がパイプライン的に分割されて処理され、前段で水平方向１ライン分のマクロブロックのイントラ予測モードが決定し、後段で他の符号化処理が行われるものとする。以下では、前段で行われる水平方向１ライン分のマクロブロックのイントラ予測モードの決定処理を説明する。
【００４４】
図２のステップＳ２０１において、イントラ予測部１０５は１６×１６イントラ予測あるいは４×４イントラ予測の内から最も符号化効率の良い予測モードを選択する。イントラ予測モードを選択する方法としては、例えば、数１８に示す予測誤差Ｃｏｓｔを各予測モードについて求め、Ｃｏｓｔが最小のものを符号化効率の良い予測モードとする方法を挙げることができる。但し、Ｃｏｓｔを求める方法の種別については特に問わない。
[数１８]
0004958825.tif 000007
なお、数１８においてｎはイントラ１６×１６予測かイントラ４×４予測かで１６か４の値を取る。また、Org(i,j)は符号化対象データの左上を(０,０)として右下を（n,n）とした時の画素位置(i,j)の画素値、Pred(mod e,i,j)は同様に予測画像データの画素位置(i,j)の画素値である。また、SAD0(mod e)はヘッダデータのビット数を表し、QP0は量子化パラメータQPと実際に量子化に用いられる量子化スケールを関連付ける係数である。
【００４５】
続くステップＳ２０２でイントラ予測部１０５は、選択された予測モードが４×４のイントラ予測モードであるか否かを判定する。もし、１６×１６予測の予測モードが選択された場合（ステップＳ２０２において「ＮＯ」）、ステップＳ２０３に移行する。
【００４６】
ステップＳ２０３では、予測モードをスライス分割決定部１１６に送信する。この予測モードは、最も符号化効率の良い予測モードとして、第１予測モード保存部５０４に保存される。このとき、最も符号化効率の良い予測モードとして予測モード０、３が選ばれた場合、イントラ予測部１０５は予測モード１、２のうち最も符号化効率の良い予測モードを更に特定し、スライス分割決定部１１６に出力する。予測モード１、２のうち最も符号化効率の良い予測モードの情報は、第２予測モード保存部５０３に保存される。
【００４７】
一方、４×４予測の予測モードが選択された場合（ステップＳ２０２において「ＹＥＳ」）、ステップＳ２０４に移行する。イントラ予測部１０５は、図３に示す符号化対象マクロブロック内の処理対象の４×４のブロックのうち、所定のＭＢアドレスのブロックの予測モードのみをスライス分割決定部１１６に出力する。出力された予測モードは、最も符号化効率の良い予測モードとして、第１予測モード保存部５０４に保存される。ここで、所定のＭＢアドレスは、図３における「０」、「１」、「４」、「５」のアドレスをいい、以下これらのブロックの集合を第１の４×４ＭＢグループと呼ぶ。
【００４８】
ステップＳ２０４においてイントラ予測部１０５は更に、イントラ４×４予測時に予測モード０、３、４、５、６、７のいずれかが選ばれた場合には、予測モード１、２、８から最も符号化効率の良い予測モードを特定する。イントラ予測部１０５は、該特定された予測モードをスライス分割決定部１１６に出力し、第２予測モード保存部５０３に保存する。
【００４９】
なお、以後、イントラ１６×１６予測時の予測モード０、３、イントラ４×４予測時の予測モード０、３、４、５、６、７を第１の予測モードグループという。また、イントラ１６×１６予測時の予測モード１、２、イントラ４×４予測時の予測モード１、２、８を第２の予測モードグループと呼ぶ。
【００５０】
ここで、第１の４×４ＭＢグループの予測モードとその他のグループ（第２の４×４ＭＢグループ）とで、処理を分ける趣旨を述べる。
【００５１】
まず、第１の４×４ＭＢグループは符号化対象マクロブロックの垂直方向上側の画素に隣接するのに対し、第２の４×４ＭＢグループは隣接しない。そのため、第１の４×４ＭＢグループで垂直方向上側でマクロブロックに隣接する画素を用いた予測モードが適切な予測モードであった場合、該マクロブロックでスライスの分割を行うと画質の劣化を伴うことになる。一方、第２の４×４ＭＢグループの垂直方向上側ではスライスの分割が行われない。
【００５２】
そこで、本実施形態では、第１の４×４ＭＢグループで選択された予測モードを後述するスライス分割決定の指標に用いる。
【００５３】
また、第１の予測モードグループと第２の予測モードグループの２つのグループに分ける趣旨を述べる。
【００５４】
第２の予測モードグループは垂直方向上側に隣接する画素を予測に用いない。そのため、当該１６×１６のブロックでスライス分割を行っても画質に劣化を伴わない。一方、第１の予測モードグループは垂直方向上側に隣接する画素を予測に用いるため、スライス分割を行うと画質が劣化してしまう。即ち、第２の予測モードグループの数が多ければ、該符号化対象ブロックでスライス分割を行っても、画質の劣化が少ないと判断できる。以上の理由から、第２の予測モードグループの数をスライス分割を行うか否かの指標として用いる。
【００５５】
そこで、図２のフローチャートのステップＳ２０５では、第１予測モード保存部５０４に保存された予測モードが、第２の予測モードグループに属するか否かを判定する。もし、属すると判定された場合（ステップＳ２０５において「ＹＥＳ」）、ステップＳ２０６に移行する。一方、属しないと判定された場合（ステップＳ２０５において「ＮＯ」）、ステップＳ２０８に移行する。
【００５６】
ステップＳ２０６では、図５のスライス分割決定部１１６内の予測モードカウンタ５００が、カウント値（以下、Count）を１だけカウントアップし、ステップＳ２０７に移行する。カウンタ５００は、１水平ラインに属するマクロブロックのうち、第２の予測モードグループに属する予測モードが選択されたマクロブロックの数をカウントするカウンタである。従って、１水平ラインの処理が終了するたびにCountがリセットされる。ステップＳ２０７では、スライス分割決定部１１６内のブロックアドレス保存部５０１が、第２の予測モードグループに所属しているブロックのアドレスを保存し、ステップＳ２０８に移行する。
【００５７】
ステップＳ２０８では、水平方向１ライン分のマクロブロックの処理が終了したか否かを判定する。もし、処理が終了したと判定された場合（ステップＳ２０８において「ＹＥＳ」）、ステップＳ２０９に移行する。処理が終了していないと判定された場合（ステップＳ２０８において「ＮＯ」）、ステップＳ２０１に戻って次のマクロブロックについて処理を行う。
【００５８】
ステップＳ２０９では、予測モードカウンタ５００が、Countの値をスライス分割判定部５０２に出力する。続くステップＳ２１０でスライス分割判定部５０２は、予め設定してある閾値ＴｈとCountとを比較し、Countが閾値Thより大きいか否かを判定する。もし、Countの値が閾値Ｔｈ以下の場合（ステップＳ２１０において「ＮＯ」）、ステップＳ２１４に移行する。一方、Countの値が閾値Ｔｈより大きいの場合（ステップＳ２１０において「ＹＥＳ」）、ステップＳ２１１に移行する。ステップＳ２１１では、該１水平ラインに属するマクロブロックによりスライス分割を行う。スライスが分割されることが決まった場合は図示しないCPUに新たなスライスヘッダをストリームに付加するよう指示すると共に、スライス分割判定部５０２にもスライス分割が実施されることを示す信号を送信する。
【００５９】
続くステップＳ２１２では、処理が終了した１水平ライン分のＭＢのうち、第２の予測モードグループに属する予測モードが選択されていたＭＢにつき、第１予測モード保存部５０４からイントラ予測部１０５に予測モードをそのまま送信する。
【００６０】
続くステップＳ２１３では、第１の予測モードグループに属する予測モードが選択されていたＭＢにつき、第２予測モード保存部５０３に保存されている対応する予測モードをイントラ予測部１０５に送信する。これは、スライスの分割により、第１の予測モードグループに属する予測モードを選択していたブロックは、そのままでは垂直方向の画素が参照できず予測が行えなくなるためである。
【００６１】
ステップＳ２１４では、第１予測モード保存部５０４からイントラ予測部１０５に予測モードをそのまま送信する。
【００６２】
以上により、イントラ予測部１０５は、上述したパイプライン処理の後段で行う符号化処理において、スライス分割決定部１１６から送信されてくる予測モードに応じて予測画像を生成しスイッチ１１１に送信することができる。
【００６３】
以上、説明したようにスライス分割決定部１１６によってスライスをまたいだ画素を用いたイントラ予測モードの選択数が少ない時にだけスライス分割を行うことが可能となる。すなわち、スライス境界における画質の劣化を抑制したスライス分割が可能となり、エラー耐性を保ちつつ高品質な画像を提供することが可能になる。
【００６４】
［第２の実施形態］
以下、発明の第２の実施形態を説明する。図６は、本実施形態に対応する動画像符号化装置の構成の一例を示す図である。図６に示す本実施形態に係る動画像符号化装置は第１の実施形態における図１の装置とほぼ同じ構造を有するが、ＭＢカウンタ１１７を有する点が異なる。
【００６５】
なお、イントラ予測部１０５とＭＢカウンタ１１７以外の構成の動作については第１の実施形態と同様のため説明を省く。
【００６６】
ＭＢカウンタ１１７はスライスが開始するマクロブロックの値を０として、CPUからマクロブロックの符号化開始を示す信号が送信される度にカウンタ（以後、ＭＢCount）をカウントアップする。即ち、ＭＢカウンタ１１７は、スライスに含まれるマクロブロック数をカウントするマクロブロックカウンタである。また、同時にＭＢCountをイントラ予測部１０５に送信する。また、スライス分割が行われた際にはＭＢCountを０にリセットする。
【００６７】
イントラ予測部１０５は第１実施形態と同様、１６×１６イントラ予測あるいは４×４イントラ予測の内から最も符号化効率の良い予測モードを選択する。イントラ予測モードを選択する方法としては数１８に示す予測誤差Costを算出し、Costの最小のものを符号化効率の良い予測モードとするなどを挙げることができるが、Costを算出する方法については問わない。ただし本実施形態では第２の予測モードグループ（垂直方向の画素を予測に用いないグループ）に関しては、たとえば数１８で求められるCostから以下の数１９で算出される所定値ｋを減算してCostを求める。
［数１９］
0004958825.tif 000008
なお、Ｔｈα＞Ｔｈβ＞Ｔｈγとし、α＞β＞γとする。
【００６８】
このようなCostを算出することで、減算後のCostの値が小さくなり第２の予測モードグループが選択される確率を高め、スライス分割が行われやすくできる。また、数１９でα＞β＞γとしているのは第２の予測モードグループがあまり選択されずスライス分割が行われない場合に、第２の予測モードグループが選択される確率を高め、スライス分割が行われやすくするためである。
【００６９】
なお、数１９においてCostから減算する値としてα、β、γを設けたが更に多くの閾値を設け減算する値の種類を増やしても良い。以降の処理は第１の実施形態と同様のため、説明を省く。
【００７０】
以上、本実施形態では、説明したように第２の予測モードグループ（垂直方向の画素を予測に用いないグループ）に関して、通常のCostからＭＢCountの増加に応じて増加する所定の値を減算する。これにより、なかなかスライス分割が行われない場合にスライス分割が実施される可能性を高め、ストリームのエラー耐性を高めることができる。
【００７１】
［第３の実施形態］
次に発明の第３の実施形態を説明する。本実施形態の動画像符号化装置の構成は図１に示したものと同様であるが、イントラ予測部１０５における予測モードの決定方法は第１の実施形態の内容とは異なる。なお、イントラ予測部１０５以外の構成の動作については第１の実施形態と同様のため説明を省く。
【００７２】
イントラ予測部１０５は第１の実施形態と同様、１６×１６イントラ予測あるいは４×４イントラ予測の内から最も符号化効率の良い予測モードを選択する。イントラ予測モードを選択する方法としては数１８に示す予測誤差Costを求め、Costの最も小さいものを符号化効率の良い予測モードとすることができる。但し、Costを求める方法はこれに限定されるものではない。Costが最も小さい予測モードが第２の予測モードグループに属する場合の処理は、第１実施形態と同様であるためここでは省略する。
【００７３】
Costが最も小さい予測モードが第１の予測モードグループに属する場合のCostを、第１の予測誤差「Cost1」とする。また、その時の第２の予測モードグループに属する予測モードのうち、最もCostが小さかった予測モードのCostを第２の予測誤差「Cost2」とする。
【００７４】
本実施形態では、、Cost2とCost1との差分の大きさに基づいて、予測モードを決定する。具体的にCost2-Cost1＜Th を満たす場合には、イントラ予測モードとして第２の予測モードグループのうち最もCostが小さかった予測モードを選択する。一方、Cost2-Cost1≧Th である場合にはイントラ予測モードとして第１の予測モードグループのうち最もCostが小さかった予測モードを選択する。なお、閾値Thの値は、画質の劣化を伴わない程度に十分小さい値を設定する。
【００７５】
即ち、第１の予測モードグループのCostが最も小さい場合でも、第１の予測モードグループのCostと第２の予測モードグループのCostの差がそれほど大きくない場合は、第２の予測モードグループの予測モードをイントラ予測モードとして選択する。
【００７６】
以上のように、本実施形態では、第１の予測モードグループのCost1と第２の予測モードグループのCost2の差が小さい場合のみ第２の予測モードグループを積極的に選択する。これにより、画質の劣化をほとんど伴わず、スライス分割が実施される可能性を高め、ストリームのエラー耐性を高めることができる。
【００７７】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７８】
また、本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７９】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００８０】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図面の簡単な説明】
【００８１】
【図１】発明の第１の実施形態及び第３の実施形態に係る動画像符号化装置の構成の一例を示すブロック図である。
【図２】発明の第１の実施形態に係る動画像符号化装置のイントラ予測部およびスライス分割部の動作を説明するためのフローチャートである。
【図３】発明の第１の実施形態に係る動画像符号化装置の４×４マクロブロックのＭＢアドレスを説明するための図である。
【図４】発明の実施形態に係るイントラ予測の予測モードを説明するための図である。
【図５】発明の第１の実施形態に係る動画像符号化装置のスライス分割部の概略の構成を示すブロック図である。
【図６】発明の第２の実施形態に係る動画像符号化装置の構成の一例を示すブロック図である。
【符号の説明】
【００８２】
１０１  フレームメモリ
１０２  フィルタ後参照フレームメモリ
１０３  動き予測部
１０４  動き補償部
１０５  イントラ予測部
１０６  直交変換部
１０７  量子化部
１０８  エントロピー符号化部
１０９  逆量子化部
１１０  逆直交変換部
１１１  スイッチ
１１２  減算器
１１３  加算器
１１４  フィルタ前参照フレームメモリ
１１５  ループフィルタ
１１６  スライス分割決定部
１１７  ＭＢカウンタ
【図１】
0004958825.tif 000009
【図２】
0004958825.tif 000010
【図３】
0004958825.tif 000011
【図４】
0004958825.tif 000012
【図５】
0004958825.tif 000013
【図６】
0004958825.tif 000014