(57)【要約】【課題】本発明の一実施例では、実装面積および演算負荷の小さい画像符号化装置を提供することを目的とする。【解決手段】上記課題を解決するため、予測画素データを演算する画像符号化装置は、隣接画素データを保持する複数の記憶領域と、該複数の記憶領域の該隣接画素データをそれぞれ出力する複数の出力部を有し、保持した該隣接画素データを任意の該記憶領域に移動可能な記憶部と、該出力部から出力された該隣接画素データの一部を選択する選択部と、該選択部が選択した隣接素画素データを用いて該予測画素データを生成する第一演算器と、該記憶部に対して複数の予測モードに応じて該記憶領域に保持した該隣接画素データを移動させ、該選択部に対して該予測モードに応じて該隣接画素データの一部を選択させ、該第一演算器に対して該予測モードに応じた演算を実行させる制御部を有する。【選択図】図２
2011023817.tif 000002
【特許請求の範囲】
【請求項１】
フレームを構成する複数の画素ブロックのうち予測対象の該画素ブロックの予測計算に用いる隣接画素データから予測画素データを演算する画像符号化装置であって、
該隣接画素データを該隣接画素データ単位で保持する複数の記憶領域と、該複数の記憶領域の該隣接画素データをそれぞれ出力する複数の出力部を有し、保持した該隣接画素データを任意の該記憶領域に移動可能な記憶部と、
該記憶部の特定の該出力部と結線され、該出力部から出力された該隣接画素データの一部を選択する選択部と、
該選択部に対応して設けられ該選択部が選択した隣接素画素データを用いて該予測画素データを生成する第一演算器と、
該記憶部に対してアルゴリズムの異なる複数の予測モードに応じて該記憶領域に保持した該隣接画素データを移動させる制御を行い、該選択部に対して該予測モードに応じて該出力部から出力された該隣接画素データの一部を選択させる制御を行い、該第一演算器に対して該予測モードに応じた演算を実行させる制御を行う制御部と
を有する画像符号化装置。
【請求項２】
該記憶部は複数のレジスタで構成された該記憶領域を有し、該複数のレジスタに保持した該隣接画素データを任意の該レジスタに移動可能なシフトレジスタであることを特徴とする、請求項１に記載の画像符号化装置。
【請求項３】
該選択部は該制御部から出力された制御信号に応じて該出力部から出力された該隣接画素データの一部を選択し該第一演算器に出力するマルチプレクサと、該制御信号に応じて該マルチプレクサが未選択の該隣接画素データの一部を選択し該マルチプレクサに出力する補助マルチプレクサを有することを特徴とする、請求項１に記載の画像符号化装置。
【請求項４】
該予測モードに応じて該記憶部に記憶された該隣接画素データを読み込んで演算し該予測画素データを生成する第二演算器をさらに有することを特徴とする、請求項１に記載の画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画データを符号化する画像符号化装置に関する。
【背景技術】
【０００２】
動画データのフレーム間およびフレーム内の差分値に基づいてデータを圧縮し符号化する画像符号化技術が様々な分野で利用されている。フレームとは動画データを構成する一枚の静止画である。差分値に基づいてデータサイズを圧縮し符号化する画像符号化技術としてはＨ．２６４やＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などがある。画像の圧縮符号化によって動画データのデータサイズを小さくすることにより、限られた記憶容量を有する記憶媒体に対し、より長時間で高画質の動画データを記憶させることが出来る。動画圧縮の機能を有する画像符号化装置はハンディカメラなどの携帯機器にも実装されている。
【０００３】
動画データを構成するそれぞれのフレームは複数のマクロブロックから構成される。マクロブロックはそれぞれ複数の画素データで構成される画素ブロックである。１つのフレーム内において、選択した一つのマクロブロックの予測計算に用いる隣接画素データに基づいて予測画素データを生成し、この予測画素データと実際のマクロブロックの画素データとの差分に基づいておこなう画像予測処理をフレーム内予測処理という。予測画素データの生成にはそれぞれ異なるアルゴリズムを有する複数の予測モードが用いられる。複数の予測モードによる複数の予測画素データが１つのマクロブロックに対して生成される。生成された複数の予測画素データの中で予測対象の画素データに最も近いものとの差分を計算し、その計算結果を符号化することにより画像の圧縮率を高めることが出来る。
【０００４】
フレーム内予測処理を行う画像符号化装置は、隣接画素データを記憶する複数のレジスタと、複数のレジスタに記憶された隣接画素データの一部を選択する複数のマルチプレクサと、複数のマルチプレクサから出力された画素データに基づいて予測画素を演算する複数の演算器と、予測画素の演算処理を制御する制御部とを有する。マルチプレクサは各予測モードに応じて、レジスタに記憶された隣接画素データから予測画素の演算に必要な画素データを選択し、演算器に出力する。
【０００５】
隣接画素データはそれぞれ異なるレジスタに記憶されている。マクロブロック内の画素予測に必要な隣接画素データは予測モードにより異なる。複数の予測モードに対応するために、それぞれのマルチプレクサは隣接画素データを記憶した全てのレジスタに接続されている。全てのレジスタは保持した隣接画素データをマルチプレクサに出力する。制御部は予測モードに応じてマルチプレクサのレジスタ選択動作を切り替える。このように複雑な画素選択動作に対応するマルチプレクサは、回路の実装面積および画素選択動作における演算負荷が大きくなる。以下の特許文献には動画圧縮符号化に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２５９２４７号公報
【特許文献２】特願２００８−２７１３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の一実施例では、実装面積および演算負荷の小さい画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、フレームを構成する複数の画素ブロックのうち予測対象の該画素ブロックの予測計算に用いる隣接画素データから予測画素データを演算する画像符号化装置は、該隣接画素データを該隣接画素データ単位で保持する複数の記憶領域と、該複数の記憶領域の該隣接画素データをそれぞれ出力する複数の出力部を有し、保持した該隣接画素データを任意の該記憶領域に移動可能な記憶部と、該記憶部の特定の該出力部と結線され、該出力部から出力された該隣接画素データの一部を選択する選択部と、該選択部に対応して設けられ該選択部が選択した隣接素画素データを用いて該予測画素データを生成する第一演算器と、該記憶部に対してアルゴリズムの異なる複数の予測モードに応じて該記憶領域に保持した該隣接画素データを移動させる制御を行い、該選択部に対して該予測モードに応じて該出力部から出力された該隣接画素データの一部を選択させる制御を行い、該第一演算器に対して該予測モードに応じた演算を実行させる制御を行う制御部とを有する。
【発明の効果】
【０００９】
実施形態によれば、実装面積および演算負荷の小さい画像符号化装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】画像符号化装置のブロック図である。
【図２】フレーム内予測部の詳細ブロック図である。
【図３】予測画素の演算に用いる隣接画素テーブル図である。
【図４】予測モード３における予測画素生成処理フローチャート図である。
【図５】予測モード５における予測画素生成処理フローチャート図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１２】
図１は本実施の形態に係る画像符号化装置１の構成の一例を示すブロック図である。画像符号化装置１は入力された動画データを圧縮し符号化する。画像符号化装置１は差分器５、ＤＣＴ変換部３、量子化部１０、逆量子化部１７、逆ＤＣＴ変換部７、加算器１８、フレーム内予測部１１、フレーム間予測部１２、可変長符号化部１３を有する。ここでＤＣＴとは離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）であり、離散信号を周波数領域の信号に変換する処理である。
【００１３】
フレーム内予測部１１は予測対象ブロックの予測計算に用いる符号化済みの隣接ブロックの画素１６から予測画像を生成し、生成した予測画像と予測画像生成前のブロックの入力画像２との差分値が最も小さい予測モードを求めるフレーム内予測処理を行う。フレーム内予測部１１は差分値が最も小さい予測モードを選択することにより、最も正確な画像予測が可能な予測モードを決定する。
【００１４】
フレーム間予測部１２は予測対象ブロックに対し、前方、後方、あるいはその両方のフレームから予測画像を生成し、生成した予測画像と元の入力画像２との差分を求めるフレーム間予測処理を行う。フレーム間予測部１２は入力画像２および参照画像６２を入力とし、予測画像ブロックの生成を行う。フレーム間予測部１２は予測画像と入力画像２との差分値が最も小さい予測モードを選択することにより、最も正確な画像予測が可能な予測モードを決定する。
【００１５】
判定部６はフレーム間予測部１２およびフレーム内予測部１１が出力する予測画素のうち、予測誤差の小さい画像を予測画像８として出力する。
【００１６】
差分器５は入力画像２とその予測結果である予測画像８との差分を計算し、その差分値を予測誤差６０として出力する。ここで予測画像８はフレーム間予測処理またはフレーム内予測処理において隣接フレームのマクロブロックあるいは同一フレームの隣接マクロブロックに基づいて生成された画像である。画像符号化装置１は各予測処理により生成された予測画像８と予測処理前の入力画像２との差分を符号化し出力する。差分が小さくなるほど画像の圧縮率は高くなる。
【００１７】
ＤＣＴ変換部３は予測誤差６０を離散コサイン変換により周波数領域に変換する。量子化部１０は変換したＤＣＴ係数値に対し、量子化ステップで除算した結果を整数値に丸める処理をする。
【００１８】
可変長符号化部１３は出現頻度の高い情報は短い符号で表現し、出現頻度の低い情報は長い符号で表現することにより、全体として出力ビット数を減らす処理を行い、符号化データ１９を出力する。
【００１９】
逆量子化部１７は量子化部１０により量子化された予測誤差を逆量子化する。逆量子化した予測誤差は逆ＤＣＴ変換部７により逆変換され、ＤＣＴ系数値に変換される前の予測誤差６１となる。
【００２０】
加算部１８はフレーム内予測部１１又はフレーム間予測部１２により生成された予測画像８と予測誤差６１とを加算し画像１６を出力する。画像１６はフィルタ部９に入力される。フィルタ部９はデブロッキング・フィルタとも呼ばれ、画像１６のブロックひずみを減少させる。フィルタ部９はブロックひずみ処理後の画像を復元画像１５として出力する。復元画像１５はフレーム間予測部１２によるフレーム間予測処理の参照画像として用いられる。
【００２１】
入力画像２が入力されると、フレーム間予測部１２によりフレーム間予測処理が実行され、フレーム内予測部１１によりフレーム内予測処理が実行される。判定部６はフレーム間予測処理結果およびフレーム内予測処理結果のうち最も入力画像２との差分値が小さい予測画像８を出力する。
【００２２】
差分器５は生成された予測画像８と入力画像２との差分を計算し予測誤差６０をＤＣＴ変換部３に出力する。予測誤差６０はＤＣＴ変換部３により変換され量子化部１０で量子化される。量子化された予測画像８は可変長符号部１３により符号化され、符号化データ１９として出力される。
【００２３】
量子化部１０は量子化した予測誤差を可変長符号化部１３に出力すると共に、逆量子化部１７へ出力する。逆量子化部１７により逆量子化された予測誤差は逆ＤＣＴ変換部７により周波数領域から時間領域に変換される。加算器１８は時間領域に変換された予測誤差と判定部６から出力された予測画像８とを加算し、予測処理前の画像１６を復号生成する。
【００２４】
以上の動作により画像符号化装置１は、フレーム間予測処理とフレーム内予測処理により動画を圧縮することが出来る。
【００２５】
図２はフレーム内予測部１１の詳細ブロック図である。フレーム内予測部１１は予測モードごとに生成した予測画像のデータと、入力された入力画像２との差分値を求め、もっとも差分値の小さい予測モードにおける予測画素を予測画像４として出力する。画像符号化装置１は元の入力画像２と予測画像４との差分値である予測誤差をＤＣＴ係数値に変換して量子化し、可変長符号化した符号化データ１９を出力する。したがって、差分値が小さいほど画像の圧縮率を高くすることが出来る。
【００２６】
フレーム内予測部１１は制御部１４、記憶部２０、複数の選択部２１、演算部２２、減算部２３、モード判定部２４を有する。フレーム内予測部１１は制御部１４から出力される制御信号に基づいてフレーム内予測処理を行う。制御部１４の出力する制御信号にはシフト信号３０、選択信号３１、演算信号３２がある。
【００２７】
記憶部２０は隣接符号化済みの画像１６のうち、予測対象のマクロブロックの予測計算に用いる隣接画素データを画素データ単位でそれぞれ保持する複数の記憶領域と、記憶領域の隣接画素データを出力する複数の出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５を有し、保持した隣接画素データの記憶領域を任意に移動させることが可能である。本実施例において記憶部２０の複数の記憶領域は隣接画素データを格納する複数のレジスタである。記憶部２０は個々のレジスタに保持する隣接画素データを制御部１４から出力されるシフト信号３０に応じて隣のレジスタへ移動させるシフトレジスタであってもよい。本実施例において、隣接画素データを記憶する複数のレジスタのうちレジスタＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５は、保持した隣接画素データを出力する出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５をそれぞれ有する。それぞれのレジスタＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５の出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５は後述する複数の選択部２１にそれぞれ結線されている。レジスタＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５に保持された隣接画素データは出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５から選択部２１へ出力される。
【００２８】
記憶部２０を形成する複数のレジスタのうち、両端のレジスタはそのレジスタに記憶している画素データを自分自身のレジスタにコピーしながら隣のレジスタに画素データをシフトさせる機能を有する。例えば右端のレジスタに画素データ“Ｈ”が記憶されており、左にシフトする命令が来た場合、右端のレジスタは画素データ“Ｈ”を左隣のレジスタにシフトさせると共に、画素データ“Ｈ”を自分自身にも保持する。また、記憶部２０のレジスタの数は全ての隣接画素データよりも多く設けておき、余分なレジスタにはあらかじめその余分な領域に最も近いレジスタに記憶した隣接画素データをコピーしておいてもよい。あるいは別途補助記憶レジスタを用意し、シフト動作によって記憶部２０から溢れた隣接画素データを補助記憶レジスタに記憶させても良い。これにより、画素データを何も記憶していないレジスタを無くすことが出来るとともに、シフト動作によりレジスタに記憶された隣接画素データが消えるのを防ぐことが出来る。
【００２９】
選択部２１は記憶部２０の特定の出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５に結線され、記憶部２０の複数の出力部Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５から出力された隣接画素データの一部を選択し演算部２２に出力する。複数の選択部２１はそれぞれマルチプレクサ２１０、２１１、２１２、２１３を有する。マルチプレクサ２１０は記憶部２０の出力部Ｃ０、Ｃ１、Ｃ２に接続されている。マルチプレクサ２１１は記憶部２０の出力部Ｃ１、Ｃ２、Ｃ３に接続されている。マルチプレクサ２１２は記憶部２０の出力部Ｃ２、Ｃ３、Ｃ４に接続されている。マルチプレクサ２１３は記憶部２０の出力部Ｃ３、Ｃ４、Ｃ５に接続されている。例えばレジスタＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５にそれぞれ隣接画素データ“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”が記憶されている場合、マルチプレクサ２１０、２１１、２１２、２１３にはそれぞれ、隣接画素データ（“Ａ”、“Ｂ”、“Ｃ”）、（“Ｂ”、“Ｃ”、“Ｄ”）、（“Ｃ”、“Ｄ”、“Ｅ”）、（“Ｄ”、“Ｅ”、“Ｆ”）が出力される。
【００３０】
マルチプレクサ２１０、２１１、２１２、２１３をそれぞれ複数のマルチプレクサで構成し、それぞれのマルチプレクサが入力信号を出力するか否かの切り替え動作を制御部１４で制御しても良い。
【００３１】
マルチプレクサ２１０、２１１、２１２、２１３の前段にはそれぞれ補助的な画素選択動作を行う補助マルチプレクサ２１４、２１５、２１６、２１７が接続されている。補助マルチプレクサ２１４、２１５、２１６、２１７は記憶部２０に記憶された画素データの一部を入力とする。補助マルチプレクサ２１４、２１５、２１６、２１７は選択信号３１に基づいてマルチプレクサ２１０、２１１、２１２、２１３が未選択の隣接画素データの一部を選択しマルチプレクサ２１０、２１１、２１２、２１３に出力する。補助マルチプレクサ２１４、２１５、２１６、２１７は特定の予測モードにおいてマルチプレクサ２１０、２１１、２１２、２１３がレジスタＤ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５から画素予測に必要な画素データを読み込めない場合に記憶部２０から画素データを選択し、マルチプレクサ２１０、２１１、２１２、２１３にそれぞれ出力する。
【００３２】
なお、予測モードによってそれぞれの補助マルチプレクサ２１４、２１５、２１６、２１７が取得すべき画素はあらかじめ分かっているので、記憶部２０に対し予測画素の生成に必要な画素データが記憶されているレジスタに限定して補助マルチプレクサ２１４、２１５、２１６、２１７を接続してもよい。本実施例において、記憶部２０のそれぞれのレジスタに左から順に“Ｌ”、“Ｋ”、“Ｊ”、“Ｉ”、“Ｍ”、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”、“Ｇ”、“Ｈ”が初期値として保持されているとする。レジスタＤ０の左側のレジスタをＤ６とし、レジスタＤ６の出力部を出力部Ｃ６とする。この場合各予測モードでの予測画素の演算に必要な隣接画素を考慮し、補助マルチプレクサ２１４はレジスタＤ０の左側のレジスタＤ６の出力部Ｃ６に結線する。補助マルチプレクサ２１５はレジスタＤ１の左側のレジスタＤ０の出力部Ｃ０に結線する。補助マルチプレクサ２１６はレジスタＤ２の左側のレジスタＤ０、Ｄ１の出力部Ｃ０、Ｃ１に結線する。補助マルチプレクサ２１７はレジスタＤ３の左側のレジスタＤ６、Ｄ０、Ｄ１、Ｄ２の出力部Ｃ６、Ｃ０、Ｃ１、Ｃ２に結線する。
【００３３】
以上の通り、記憶部２０のシフト動作および記憶部２０と選択部２１との接続関係を考慮することにより、それぞれの補助マルチプレクサ２１４、２１５、２１６、２１７と接続すべきレジスタの数を少なくすることが出来る。接続するレジスタの数を少なくすることにより配線面積および補助マルチプレクサ２１４、２１５、２１６、２１７の回路規模は小さくなり、画像符号化装置全体の実装面積を小さくすることが出来る。
【００３４】
演算部２２は入力された画素データに基づいて予測画素データを演算する。演算部２２は制御部１４から出力される演算信号３２に基づいて予測画素の演算内容を決定する。演算部２２は演算器２２０、２２１、２２２、２２３、２２４を有する。なお、実施例において、演算部２２が複数の演算器を有するように記載しているが、１つの演算部２２が演算信号３２に応じて演算機能を切り替えるように設計しても良い。
【００３５】
演算器２２０、２２１、２２２、２２３、２２４による演算処理は予測モードによって異なる。演算部２２による演算処理の詳細は後述する。演算器２２０はマルチプレクサ２１０の出力画素データに基づいて予測画素データを生成する。演算器２２１はマルチプレクサ２１１の出力画素データに基づいて予測画素データを生成する。演算器２２２はマルチプレクサ２１２の出力画素データに基づいて予測画素データを生成する。演算器２２３はマルチプレクサ２１３の出力画素データに基づいて予測画素データを生成する。演算器２２４は後述する予測モード１から予測モード３の予測画素を生成する。演算器２２４には記憶部２０に記憶されたすべての画素データが入力される。
【００３６】
制御部１４は該記憶部２０に対してアルゴリズムの異なる複数の予測モードに応じて記憶領域に保持した隣接画素データを移動させる制御を行い、選択部２１に対して予測モードに応じて受信した隣接画素データの一部を選択させる制御を行い、演算器２２０、２２１、２２２、２２３に対して予測モードに応じた演算を実行させる制御を行う。制御部１４はシフト信号３０、選択信号３１、演算信号３２の値を予測モードに応じて決定する。
【００３７】
減算部２３は演算部２２により生成された予測画素と予測対象の元の入力画像２との差分値を計算する。減算部２３は減算器２３０、２３１、２３２、２３３を有する。モード判定部２４は予測モードごとの差分値を記憶し、すべての予測モードのうちもっとも差分値の小さいものをベストモードとして選択し、選択した予測モードに対応する予測画像４を出力する。
【００３８】
フレーム内予測部１１の動作は予測モードによって異なる。フレーム内予測部１１の動作の詳細は後述する。予測モードに応じて記憶部２０の各レジスタに記憶された画素データをシフトさせることにより、選択部２１に入力される画素データの最大数を小さくすることが出来る。これにより記憶部２０と選択部２１との配線面積および選択部２１の回路規模を小さくすることが出来る。また、選択部２１による信号選択処理数を少なくすることが出来、信号選択処理における消費電力を小さくすることが出来る。
【００３９】
なお、本実施例におけるフレーム内予測部１１は４×４画素のマクロブロックに対するフレーム内予測処理での構成を示しているが、８×８画素および１６×１６画素のマクロブロックをフレーム内予測処理する場合の構成も基本的に同じである。
【００４０】
図３はフレーム内予測部１１によるフレーム内予測処理において、マクロブロック内の各画素を予測するのに用いる隣接画素を示した隣接画素テーブルである。図３のＡからＩは４×４画素のマクロブロックに対する別個の予測モードをそれぞれ示している。図３のＡにおいて、予測モードにおける４×４画素のマクロブロック４０は予測対象のマクロブロックである。また、図３のＡからＩにおいて実線で囲まれた画素Ａから画素Ｍはマクロブロック４０の予測に用いる隣接画素である。制御部１４は図３に示す各隣接画素データが演算部２２に受け渡されるように記憶部２０および選択部２１を制御する。制御部１４による記憶部２０および選択部２１の制御の詳細は後述する。
【００４１】
図３のＡにおいて、列５０から列５３はマクロブロック４０の各列の画素の予測に用いる隣接画素の組み合わせを示している。それぞれの列の画素群は、フレーム内予測部１１の演算部２２に入力される画素を示している。また、行５５から行５８はマクロブロック４０の各行の画素の予測に用いる隣接画素の組み合わせを示している。演算部２２は、各予測モードＡからＩに応じて予測画素の計算を行う。
【００４２】
マクロブロック４０の行５５、列５０を起点（０、０）とした場合のｙ行目、ｘ列目の予測画素をｐｒｅｄ（ｘ、ｙ）とし、マクロブロックの予測計算に用いる隣接画素をｐ（ｘ、ｙ）とする。これにより、Ａ＝ｐ（０、−１）、Ｂ＝ｐ（１、−１）、Ｃ＝ｐ（２、−１）、Ｄ＝ｐ（３、−１）、Ｅ＝ｐ（４、−１）、Ｆ＝ｐ（５、−１）、Ｇ＝ｐ（６、−１）、Ｈ＝ｐ（７、−１）、Ｉ＝ｐ（−１、０）、Ｊ＝ｐ（−１、１）、Ｋ＝ｐ（−１、２）、Ｌ＝ｐ（−１、３）、Ｍ＝ｐ（−１、−１）と表すことができる。
【００４３】
フレーム内予測処理の予測対象となるマクロブロックのサイズは、Ｈ．２６４規格の場合４×４画素、８×８画素、および１６×１６画素が用意されている。それぞれのサイズにおけるフレーム内予測処理の処理方法は基本的に同じであるため、本実施例では４×４画素のマクロブロックに対するフレーム内予測処理について詳細に説明する。
【００４４】
図３のＡはモード０の予測モード図である。モード０では隣接画素である画素（Ａ、Ｂ、Ｃ、Ｄ）をマクロブロック内の同じ列５０から列５３の画素の予測値とする。
【００４５】
モード０において予測画素はｐｒｅｄ（ｘ、ｙ）＝ｐ（ｘ、−１）として計算される。モード０での予測画素の演算は図２の演算器２２０、２２１、２２２、２２３により実行してもよいし、演算器２２４により実行しても良い。
【００４６】
図３のＢはモード１の予測モード図である。モード１では隣接画素である画素（Ｉ、Ｊ、Ｋ、Ｌ）をマクロブロック内の同じ行５５から行５８の画素の予測値とする。
【００４７】
モード１において予測画素はｐｒｅｄ（ｘ、ｙ）＝ｐ（−１、ｙ）として計算される。モード１での予測画素の演算は図２の演算器２２４により実行される。
【００４８】
図３のＣはモード２の予測モード図である。モード２では隣接画素である画素（Ａ、Ｂ、Ｃ、Ｄ、Ｉ、Ｊ、Ｋ、Ｌ）の平均値をマクロブロック内のそれぞれの画素の予測値とする。
【００４９】
モード２において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（０、−１）＋ｐ（１、−１）＋ｐ（２、−１）＋ｐ（３、−１）＋ｐ（−１、０）＋ｐ（−１、１）＋ｐ（−１、２）＋ｐ（−１、３）＋４）＞＞３として計算される。ここで＞＞３は画素のビットデータを右に３桁シフトすることを表す。モード２での予測画素の演算は図２の演算器２２４により実行される。
【００５０】
図３のＤはモード３におけるマクロブロック４０の予測演算に必要な隣接画素を示している。フレーム内予測部１１の演算部２２は、各サイクルに応じて１行ごとに予測画素の計算を行う。例えば列５０の予測画素の演算は演算器２２０が行う。サイクル０において演算器２２０に入力される画素データを（０、演算器２２０）とすると、（０、演算器２２０）＝（Ａ、Ｂ、Ｃ）である。同様に（０、演算器２２１）＝（Ｂ、Ｃ、Ｄ）、（０、演算器２２２）＝（Ｃ、Ｄ、Ｅ）、（０、演算器２２３）＝（Ｄ、Ｅ、Ｆ）となる。サイクル１から３までの予測画素の計算も同様に（１、演算器２２０）＝（Ｂ、Ｃ、Ｄ）、（１、演算器２２１）＝（Ｃ、Ｄ、Ｅ）、（１、演算器２２２）＝（Ｄ、Ｅ、Ｆ）、（１、演算器２２３）＝（Ｅ、Ｆ、Ｇ）、（２、演算器２２０）＝（Ｃ、Ｄ、Ｅ）、（２、演算器２２１）＝（Ｄ、Ｅ、Ｆ）、（２、演算器２２２）＝（Ｅ、Ｆ、Ｇ）、（２、演算器２２３）＝（Ｆ、Ｇ、Ｈ）、（３、演算器２２０）＝（Ｄ、Ｅ、Ｆ）、（３、演算器２２１）＝（Ｅ、Ｆ、Ｇ）、（３、演算器２２２）＝（Ｆ、Ｇ、Ｈ）、（３、演算器２２３）＝（Ｇ、Ｈ、Ｈ）となる。フレーム内予測部１１は４つの演算器２２０から２２３を用いて４×４画素のマクロブロック４０の画素を１行ずつ予測演算処理する。モード３についての予測処理の詳細は後述する。
【００５１】
モード３において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ＋ｙ、−１）＋２×ｐ（ｘ＋ｙ＋１、−１）＋ｐ（ｘ＋ｙ＋２、−１）＋２）＞＞２として計算される。ただし、ｘ＝ｙ＝３の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（６、−１）＋３×ｐ（７、−１）＋２）＞＞２として計算される。
【００５２】
図３のＥはモード４におけるマクロブロック４０の予測演算に必要な隣接画素を示している。マクロブロック４０の各画素の予測に必要な隣接画素データはそれぞれ、（０、演算器２２０）＝（Ｉ、Ｍ、Ａ）、（０、演算器２２１）＝（Ｍ、Ａ、Ｂ）、（０、演算器２２２）＝（Ａ、Ｂ、Ｃ）、（０、演算器２２３）＝（Ｂ、Ｃ、Ｄ）、（１、演算器２２０）＝（Ｊ、Ｉ、Ｍ）、（１、演算器２２１）＝（Ｉ、Ｍ、Ａ）、（１、演算器２２２）＝（Ｍ、Ａ、Ｂ）、（１、演算器２２３）＝（Ａ、Ｂ、Ｃ）、（２、演算器２２０）＝（Ｋ、Ｊ、Ｉ）、（２、演算器２２１）＝（Ｊ、Ｉ、Ｍ）、（２、演算器２２２）＝（Ｉ、Ｍ、Ａ）、（２、演算器２２３）＝（Ｍ、Ａ、Ｂ）、（３、演算器２２０）＝（Ｌ、Ｋ、Ｊ）、（３、演算器２２１）＝（Ｋ、Ｊ、Ｉ）、（３、演算器２２２）＝（Ｊ、Ｉ、Ｍ）、（３、演算器２２３）＝（Ｉ、Ｍ、Ａ）である。
【００５３】
ｘがｙより大きい場合、モード４において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ−ｙ−２、−１）＋２×ｐ（ｘ−ｙ−１、−１）＋ｐ（ｘ−ｙ、−１）＋２）＞＞２として計算される。ｘがｙより小さい場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ−ｘ−２）＋２×ｐ（−１、ｙ−ｘ−１）＋ｐ（−１、ｙ−ｘ）＋２）＞＞２として計算される。ｘ＝ｙの場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（０、−１）＋２×ｐ（−１、−１）＋ｐ（−１、０）＋２）＞＞２として計算される。
【００５４】
図３のＦはモード５におけるマクロブロック４０の予測演算に必要な隣接画素を示している。マクロブロック４０の各画素の予測に必要な隣接画素データはそれぞれ、（０、演算器２２０）＝（Ｍ、Ａ）、（０、演算器２２１）＝（Ａ、Ｂ）、（０、演算器２２２）＝（Ｂ、Ｃ）、（０、演算器２２３）＝（Ｃ、Ｄ）、（１、演算器２２０）＝（Ｉ、Ｍ、Ａ）、（１、演算器２２１）＝（Ｍ、Ａ、Ｂ）、（１、演算器２２２）＝（Ａ、Ｂ、Ｃ）、（１、演算器２２３）＝（Ｂ、Ｃ、Ｄ）、（２、演算器２２０）＝（Ｊ、Ｉ、Ｍ）、（２、演算器２２１）＝（Ｍ、Ａ）、（２、演算器２２２）＝（Ａ、Ｂ）、（２、演算器２２３）＝（Ｂ、Ｃ）、（３、演算器２２０）＝（Ｋ、Ｊ、Ｉ）、（３、演算器２２１）＝（Ｉ、Ｍ、Ａ）、（３、演算器２２２）＝（Ｍ、Ａ、Ｂ）、（３、演算器２２３）＝（Ａ、Ｂ、Ｃ）である。モード５についての予測処理の詳細は後述する。
【００５５】
ＶＲ＝２×ｘ−ｙとし、ｘ、ｙがＶＲ＝０、ＶＲ＝２、ＶＲ＝４、またはＶＲ＝６の何れかを満たす場合、モード５において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ−（ｙ＞＞１）−１、−１）＋ｐ（ｘ−（ｙ＞＞１）、−１）＋１）＞＞１として計算される。ｘ、ｙがＶＲ＝１、ＶＲ＝３、またはＶＲ＝５の何れかを満たす場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ−（ｙ＞＞１）−２、−１）＋２×ｐ（ｘ−（ｙ＞＞１）−１、−１）＋ｐ（ｘ−（ｙ＞＞１）、−１）＋２）＞＞２として計算される。ＶＲ＝−１の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、０）＋２×ｐ（−１、−１）＋ｐ（０、−１）＋２）＞＞２として計算される。ｘ、ｙがＶＲ＝−２またはＶＲ＝−３を満たす場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ−１）＋２×ｐ（−１、ｙ−２）＋ｐ（−１、ｙ−３）＋２）＞＞２として計算される。
【００５６】
図３のＧはモード６におけるマクロブロック４０の予測演算に必要な隣接画素を示している。マクロブロック４０の各画素の予測に必要な隣接画素データはそれぞれ、（０、演算器２２０）＝（Ｉ、Ｍ）、（０、演算器２２１）＝（Ｉ、Ｍ、Ａ）、（０、演算器２２２）＝（Ｍ、Ａ、Ｂ）、（０、演算器２２３）＝（Ａ、Ｂ、Ｃ）、（１、演算器２２０）＝（Ｊ、Ｉ）、（１、演算器２２１）＝（Ｊ、Ｉ、Ｍ）、（１、演算器２２２）＝（Ｉ、Ｍ）、（１、演算器２２３）＝（Ｉ、Ｍ、Ａ）、（２、演算器２２０）＝（Ｋ、Ｊ）、（２、演算器２２１）＝（Ｋ、Ｊ、Ｉ）、（２、演算器２２２）＝（Ｊ、Ｉ）、（２、演算器２２３）＝（Ｊ、Ｉ、Ｍ）、（３、演算器２２０）＝（Ｌ、Ｋ）、（３、演算器２２１）＝（Ｌ、Ｋ、Ｊ）、（３、演算器２２２）＝（Ｋ、Ｊ）、（３、演算器２２３）＝（Ｋ、Ｊ、Ｉ）である。
【００５７】
ＨＤ＝２×ｙ−ｘとし、ｘ、ｙがＨＤ＝０、ＨＤ＝２、ＨＤ＝４、またはＨＤ＝６の何れかを満たす場合、モード６において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ−（ｘ＞＞１）−１）＋ｐ（−１、ｙ−（ｘ＞＞１））＋１）＞＞１として計算される。ｘ、ｙがＨＤ＝１、ＨＤ＝３、またはＨＤ＝５の何れかを満たす場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ−（ｘ＞＞１）−２）＋２×ｐ（−１、ｙ−（ｘ＞＞１）−１）＋ｐ（−１、ｙ−（ｘ＞＞１））＋２）＞＞２として計算される。ＨＤ＝−１の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、０）＋２×ｐ（−１、−１）＋ｐ（０、−１）＋２）＞＞２として計算される。ｘ、ｙがＨＤ＝−２またはＨＤ＝−３を満たす場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ−１、−１）＋２×ｐ（ｘ−２、−１）＋ｐ（ｘ−３）＋２、−１）＞＞２として計算される。
【００５８】
図３のＨはモード７におけるマクロブロック４０の予測演算に必要な隣接画素を示している。マクロブロック４０の各画素の予測に必要な隣接画素データはそれぞれ、（０、演算器２２０）＝（Ａ、Ｂ）、（０、演算器２２１）＝（Ｂ、Ｃ）、（０、演算器２２２）＝（Ｃ、Ｄ）、（０、演算器２２３）＝（Ｄ、Ｅ）、（１、演算器２２０）＝（Ａ、Ｂ、Ｃ）、（１、演算器２２１）＝（Ｂ、Ｃ、Ｄ）、（１、演算器２２２）＝（Ｃ、Ｄ、Ｅ）、（１、演算器２２３）＝（Ｄ、Ｅ、Ｆ）、（２、演算器２２０）＝（Ｂ、Ｃ）、（２、演算器２２１）＝（Ｃ、Ｄ）、（２、演算器２２２）＝（Ｄ、Ｅ）、（２、演算器２２３）＝（Ｅ、Ｆ）、（３、演算器２２０）＝（Ｂ、Ｃ、Ｄ）、（３、演算器２２１）＝（Ｃ、Ｄ、Ｅ）、（３、演算器２２２）＝（Ｄ、Ｅ、Ｆ）、（３、演算器２２３）＝（Ｅ、Ｆ、Ｇ）である。
【００５９】
ｙ＝０またはｙ＝２の場合、モード７において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ＋（ｙ＞＞１）、−１）＋ｐ（ｘ＋（ｙ＞＞１）＋１、−１）＋１）＞＞１として計算される。ｙ＝１またはｙ＝３の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（ｘ＋（ｙ＞＞１）、−１）＋２×ｐ（ｘ＋（ｙ＞＞１）＋１、−１）＋ｐ（ｘ＋（ｙ＞＞１）＋２、−１）＋２）＞＞２として計算される。
【００６０】
図３のＩはモード８におけるマクロブロック４０の予測演算に必要な隣接画素を示している。マクロブロック４０の各画素の予測に必要な隣接画素データはそれぞれ、（０、演算器２２０）＝（Ｊ、Ｉ）、（０、演算器２２１）＝（Ｋ、Ｊ、Ｉ）、（０、演算器２２２）＝（Ｋ、Ｊ）、（０、演算器２２３）＝（Ｌ、Ｋ、Ｊ）、（１、演算器２２０）＝（Ｋ、Ｊ）、（１、演算器２２１）＝（Ｌ、Ｋ、Ｊ）、（１、演算器２２２）＝（Ｌ、Ｋ）、（１、演算器２２３）＝（Ｌ、Ｌ、Ｋ）、（２、演算器２２０）＝（Ｌ、Ｋ）、（２、演算器２２１）＝（Ｌ、Ｌ、Ｋ）、（２、演算器２２２）＝（Ｌ）、（２、演算器２２３）＝（Ｌ）、（３、演算器２２０）＝（Ｌ）、（３、演算器２２１）＝（Ｌ）、（３、演算器２２２）＝（Ｌ）、（２、演算器２２３）＝（Ｌ）である。
【００６１】
ＨＵ＝ｘ＋２×ｙとし、ｘ、ｙがＨＵ＝０、ＨＵ＝２、ＨＵ＝４の何れかを満たす場合、モード８において予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ＋（ｘ＞＞１））＋ｐ（−１、ｙ＋（ｘ＞＞１）＋１）＋１）＞＞１として計算される。ｘ、ｙがＨＵ＝１またはＨＵ＝３の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、ｙ＋（ｘ＞＞１））＋２×ｐ（−１、ｙ＋（ｘ＞＞１）＋１）＋ｐ（−１、ｙ＋（ｘ＞＞１））＋２）＞＞２として計算される。ＨＵ＝５の場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝（ｐ（−１、２）＋３×ｐ（−１、３）＋２）＞＞２として計算される。ＨＵが５よりも大きい場合、予測画素はｐｒｅｄ（ｘ、ｙ）＝ｐ（−１、３）として計算される。
【００６２】
フレーム内予測部１１はモード０からモード８までのすべてのモードについて予測画素を計算する。フレーム内予測部１１は各モードにおける予測画素と予測処理前の元の画素との差分を取り、差分値が最も小さくなるモードを予測精度が高いモードとして選択する。各予測モードにおける選択部２１の隣接画素選択処理ステップを減らすことにより、隣接画素選択動作に伴う消費電力を削減することが出来る。この結果、フレーム内予測部１１を有する画像符号化装置１の消費電力を削減することが出来る。
【００６３】
図４はフレーム内予測部１１における予測モード３での予測画素演算フロー図である。フロー７０から７３はそれぞれ演算器２２０から２２３における画素予測演算に関わる処理フローである。
【００６４】
予測対象となるマクロブロック４０の隣接画素ＡからＭは記憶部２０に記憶される。制御部１４はレジスタＤ０からＤ５に画素データＡからＦが割り当てられるようにシフト信号３０を記憶部２０に出力する（Ｓ１０）。マルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５に格納する画素データと、マルチプレクサ２１０から２１３が演算器２２０から２２３に出力する画素データは同一である。よって制御部１４はマルチプレクサ２１０から２１３に対し、レジスタＤ０からＤ５から受信した画素データをそのまま出力するように選択信号３１を選択部２１に出力する。
【００６５】
演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ１１０からＳ１１３）。前述のとおり、予測画素の演算方法は予測モードごとに異なる。制御部１４は予測モード３に応じた演算信号３２を演算部２２に出力する。
【００６６】
マクロブロック４０における１行目の予測画素の演算が終了すると、制御部１４は２行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、各レジスタに記憶された画素データの記憶位置を左に一つシフトさせるシフト信号３０を出力する。シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データはＢからＧとなる（Ｓ１２）。マルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５に格納された画素データと、マルチプレクサ２１０から２１３が演算器２２０から２２３に出力する画素データは同一である。よって制御部１４はマルチプレクサ２１０から２１３に対し、レジスタＤ０からＤ５から入力された画素データをそのまま出力するように選択信号３１を選択部２１に出力する。演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ１３０からＳ１３３）。
【００６７】
マクロブロック４０における２行目の予測画素の演算が終了すると、制御部１４は３行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、各レジスタに記憶された画素データの記憶位置を左に一つシフトさせるシフト信号３０を出力する。シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データはＣからＨとなる（Ｓ１４）。マルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５に格納する画素データと、マルチプレクサ２１０から２１３が演算器２２０から２２３に出力する画素データは同一である。よって制御部１４はマルチプレクサ２１０から２１３に対し、レジスタＤ０からＤ５から入力された画素データをそのまま出力するように選択信号３１を選択部２１に出力する。演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ１５０からＳ１５３）。
【００６８】
マクロブロック４０における３行目の予測画素の演算が終了すると、制御部１４は４行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、各レジスタに記憶された画素データの記憶位置を左に一つシフトさせるシフト信号３０を出力する。ここで、画素Ｈの右隣のデータは記憶部２０に記憶されていない。右隣にデータが無い場合、レジスタＤ０はシフト前に記憶している画素データ“Ｈ”を保持する。このため、シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データは（Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｈ）となる（Ｓ１５）。
【００６９】
マルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５に格納する画素データと、マルチプレクサ２１０から２１３が演算器２２０から２２３に出力する画素データは同一である。よって制御部１４はマルチプレクサ２１０から２１３に対し、レジスタＤ０からＤ５から入力された画素データをそのまま出力するように選択信号３１を選択部２１に出力する。演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ１６０からＳ１６３）。演算器２２０から２２３は入力される３つの画素データに基づいて予測画素を生成する（Ｓ１６０からＳ１６３）。
【００７０】
減算部２３は演算部２２により予測演算したマクロブロックの画像と、フレーム内予測処理前の元の画像１６との差分値を計算する（Ｓ１７１からＳ１７３）。モード判定部２４は予測モードごとの予測画素および差分値を記憶する。モード判定部２４はそれぞれの予測モードにおける差分値を比較評価し、もっとも差分値の小さい予測モードを特定する。モード判定部２４は特定したモードにおける予測画像４を出力する（Ｓ１８）。
【００７１】
モード４における予測画素の計算も、モード３と同様に記憶部２０の各レジスタに記憶された画素データの記憶位置をシフトさせることによって実行することが出来る。ただし、モード３ではレジスタに対する画素データの記憶位置を左側にシフトさせていたのに対し、モード４では画素データの記憶位置を右側にシフトさせる。また前述の通り、演算部２２で行う演算内容もモード３とモード４とでは異なる。
【００７２】
モード７における予測画素の計算も、モード３と同様に記憶部２０の各レジスタに記憶された画素データの記憶位置をシフトさせることによって実行することが出来る。ただし、モード３ではレジスタに対する画素データの記憶位置を１サイクルごとに左側にシフトさせていたのに対し、モード７ではサイクル２でのみ画素データの記憶位置を左側にシフトさせる。また前述の通り、演算部２２で行う演算内容もモード３とモード７とでは異なる。
【００７３】
以上の通り、予測モードに応じて記憶部２０の各レジスタに対する画素データの記憶位置をシフトさせることにより、予測モードごとの隣接画素を参照し、予測画素を算出することが出来る。
【００７４】
図５はフレーム内予測部１１における予測モード５での予測画素演算フロー図である。フロー８０から８３はそれぞれ演算器２２０から２２３における画素予測演算に関わる処理フローである。予測モード５では３行目の予測画素の生成において、演算器２２０での予測画素の演算に必要な画素Ｋをマルチプレクサ２１０から受信できない。本実施例ではそのような場合のフレーム内予測部１１の動作について説明する。
【００７５】
予測対象となるマクロブロック４０の隣接画素データＡからＭは記憶部２０に記憶される。制御部１４はレジスタＤ０からＤ５に画素データＭからＥが格納されるようにシフト信号３０を記憶部２０に出力する（Ｓ２０）。制御部１４は、それぞれのマルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５により記憶される画素データのうち２つの画素データを選択し、演算器２２０から２２３へ出力するよう、選択信号３１を選択部２１に出力する。
【００７６】
演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ２１０からＳ２１３）。前述の通り予測画素の演算方法は予測モードごとに異なる。制御部１４は予測モード５に応じた演算信号３２を演算部２２に出力する。
【００７７】
マクロブロック４０における１行目の予測画素の演算が終了すると、制御部１４は２行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、レジスタに対する画素データの記憶位置を右に一つシフトさせるシフト信号３０を出力する。シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データはＩからＤとなる（Ｓ２２）。マルチプレクサ２１０から２１３に接続されたレジスタＤ０からＤ５に格納する画素データと、マルチプレクサ２１０から２１３が演算器２２０から２２３に出力する画素データは同一である。よって制御部１４はマルチプレクサ２１０から２１３に対し、レジスタＤ０からＤ５から受信した画素データをそのまま出力するように選択信号３１を選択部２１に出力する。演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ２３０からＳ２３３）。
【００７８】
マクロブロック４０における２行目の予測画素の演算が終了すると、制御部１４は３行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、各レジスタに対する画素データの記憶位置を右側に1つシフトさせるシフト信号３０を出力する。シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データはＪからＣとなる（Ｓ２４）。２行目の予測演算時と異なり、制御部１４はマルチプレクサ２１１から２１３に対し、それぞれ記憶部２０からの画素データ（Ｊ、Ｉ、Ｍ）、（Ｍ、Ａ）、（Ａ、Ｂ）、（Ｂ、Ｃ）を選択し演算器２２０から２２３へ出力するよう、選択信号３１を出力する。
【００７９】
演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ２６０からＳ２６３）。演算器２２０から２２３は、予測画素の演算処理を制御部１４から出力された演算信号３２に応じて実行する。
【００８０】
マクロブロック４０における３行目の予測画素の演算が終了すると、制御部１４は４行目の予測画素の演算処理に移行する。制御部１４は記憶部２０に対し、記憶画素をそのままの位置に保持させるシフト信号３０を出力する。シフト信号３０により、レジスタＤ０からＤ５に記憶された画素データは（Ｊ、Ｉ、Ｍ、Ａ、Ｂ、Ｃ）のままとなる（Ｓ２８）。制御部１４はマルチプレクサ２１１から２１３に対し、それぞれ画素データ（Ｉ、Ｍ、Ａ）、（Ｍ、Ａ、Ｂ）、（Ａ、Ｂ、Ｃ）を選択し演算器２２１から２２３へ出力するよう、選択信号３１を出力する。
【００８１】
これに対しマルチプレクサ２１０を補助する補助マルチプレクサ２１４は、記憶部２０に記憶された画素データからＫを選択し、マルチプレクサ２１０へ出力する。マルチプレクサ２１０は選択信号３１に応じて、入力された画素データＫ、Ｊ、Ｉ、ＭからＫ、Ｊ、Ｉを選択し、演算器２２０に出力する（Ｓ２７）。
【００８２】
本実施例のように、予測モードに対応した予測画素演算の際に、画素演算に用いる画素データがレジスタＤ０からＤ５に格納されていないことがある。レジスタＤ０からＤ５にない画素データから必要な画素データを選択するための補助マルチプレクサ２１４から２１７を設けておくことにより、マルチプレクサ２１０から２１３だけでは選択できない画素データを演算部２２に出力することが出来る。またマルチプレクサ２１０から２１３が演算部２２に対し予測画素の生成に必要な画素データを送れない場合にのみ、補助マルチプレクサ２１４から２１７が動作すればよい。これにより選択部２１による消費電力を低く抑えることができる。
【００８３】
演算器２２０から２２３はマルチプレクサ２１０から２１３により出力された画素データに基づいて予測画素を生成する（Ｓ２９０からＳ２９３）。
【００８４】
減算部２３は演算部２２により予測演算したマクロブロックの画像と、フレーム内予測処理前の元の画像１６との差分値を計算する（Ｓ３００からＳ３０３）。モード判定部２４は予測モードごとの予測画素および差分値を記憶する。モード判定部２４はそれぞれの予測モードにおける差分値を比較評価し、もっとも差分値の小さい予測モードを特定する。モード判定部２４は特定したモードにおける予測画像４を出力する（Ｓ３１）。
【００８５】
以上の通り、予測モードに応じてマルチプレクサ２１０から２１３へ出力すべき画素データを記憶部２０に記憶された画素データのシフトだけでは対応できない場合であっても、補助マルチプレクサ２１４から２１７を用いて他の隣接画素を選択可能にしておくことにより、予測モードに応じた特殊な画素データの選択動作に対応することが出来る。
【００８６】
モード６における予測画素の計算も、モード５と同様に補助マルチプレクサ２１４から２１７を用いて他の隣接画素を選択可能にし、予測モードに応じた特殊な画素データの選択動作に対応することが出来る。より具体的には、サイクル１で各レジスタに対する画素データの記憶位置を右側にシフトさせると共に、画素“Ｉ”を補助マルチプレクサ２１７からマルチプレクサ２１３へ出力する。同様に、サイクル２において各レジスタに対する画素データの記憶位置を右側にシフトさせると共に、画素“Ｊ”を補助マルチプレクサ２１７からマルチプレクサ２１３へ出力する。さらにサイクル３において各レジスタに対する画素データの記憶位置を右側にシフトさせると共に、画素“Ｋ”を補助マルチプレクサ２１７からマルチプレクサ２１３へ出力する。前述の通り、演算部２２で行う演算内容はモード５とモード６とでは異なる。
【００８７】
モード８における予測画素の計算も、モード５と同様に補助マルチプレクサ２１４から２１７を用いて他の隣接画素を選択可能にし、予測モードに応じた特殊な画素データの選択動作に対応することが出来る。
【００８８】
より具体的な処理は以下の通りである。サイクル０において、補助マルチプレクサ２１５は画素“Ｋ”を出力し、補助マルチプレクサ２１６は画素“Ｋ、Ｊ”を出力し、補助マルチプレクサ２１７は画素“Ｊ、Ｋ、Ｉ”を出力する。サイクル１において、記憶部２０の各レジスタに記憶する画素データの記憶位置を右側へシフトさせると共に、補助マルチプレクサ２１５は画素“Ｌ”を出力し、補助マルチプレクサ２１６は画素“Ｌ、Ｋ”を出力し、補助マルチプレクサ２１７は画素“Ｌ、Ｋ”を出力する。サイクル２において、記憶部２０の各レジスタに対する画素データの記憶位置を右側へシフトさせると共に、補助マルチプレクサ２１６は画素“Ｌ”を出力し、補助マルチプレクサ２１７は画素“Ｌ”を出力する。サイクル３において、記憶部２０の各レジスタに対する画素データの記憶位置を右側へシフトさせる。
【００８９】
全ての予測モードのうち、補助マルチプレクサ２１５、２１６を用いるのはモード８のみである。またモード８では予測対象マクロブロックの全ての行の計算に補助マルチプレクサ２１５、２１６、２１７を用いる必要がある。モード８の計算を演算器２２４に実行させれば、補助マルチプレクサ２１５、２１６は不要になる。補助マルチプレクサ２１５、２１６を実装しないことにより、画像符号化装置の回路規模を更に小さくすることができる。また、補助マルチプレクサ２１５、２１６による画素選択動作が不要となり、画像符号化装置の消費電力を小さくすることが出来る。
【符号の説明】
【００９０】
１  画像符号化装置
２  入力画像
２０  記憶部
２１  選択部
２２  演算部
２３  減算部
２４  モード判定部
【図１】
2011023817.tif 000003
【図２】
2011023817.tif 000004
【図３】
2011023817.tif 000005
【図４】
2011023817.tif 000006
【図５】
2011023817.tif 000007