(57)【要約】【課題】パイプライン処理により高速処理を可能としかつ規格に従った符号化データを生成可能な符号化装置を提供すること。【解決手段】符号化装置は、入力データを複数のブロックに分割してブロック毎に処理する。このため、入力データと予測モードに応じて１つのブロックのイントラ予測を行なって生成されたイントラ予測信号とに基づき再構成データを生成するブロック処理部と、ブロック選択部にパイプライン処理を行なわせるようブロックを選択するブロック選択部５１とを有し、ブロック選択部５１は、１つのブロックと当該１つのブロックを処理する際に参照するブロックとの関係を示すブロック間依存関係に基づき定まる処理順序に従い、前ブロックの処理が終了するタイミング以降に次ブロックを選択する。【選択図】図２
2008271127.tif 000002
【特許請求の範囲】
【請求項１】
画像信号からなる入力データを複数のブロックに分割してブロック毎に処理する符号化装置であって、
前記入力データと、予測モードに応じて１つのブロックのイントラ予測を行なって生成されたイントラ予測信号とに基づき再構成データを生成するブロック処理部と、
前記ブロック処理部にパイプライン処理を行なわせるようブロックを選択するブロック選択部とを有し、
前記ブロック選択部は、１つのブロックと当該１つのブロックを処理する際に参照するブロックとの関係を示すブロック間依存関係に基づき定まる処理順序に従い、前ブロックの処理が終了するタイミング以降に次ブロックを選択する符号化装置。
【請求項２】
前記ブロック処理部は、１６×１６マクロブロックを４×４ブロックに分割してブロック毎に処理する
ことを特徴とする請求項１記載の符号化装置。
【請求項３】
前記ブロック処理部は、予測モードに応じて１つのブロックのイントラ予測を行なって生成されたイントラ予測信号と入力データとの差分である残留値を求め、この残留値を符号化して復号し、この復号信号と前記イントラ予測信号とを加算して再構成データを生成する。
ことを特徴とする請求項１又は２記載の符号化装置。
【請求項４】
前記ブロック処理部は、
予測モードに応じて１つのブロックのイントラ予測を行なうイントラ予測器と、
入力データと前記イントラ予測器により生成されたイントラ予測信号との差分として得られる残留値を符号化する残留値符号化器と、
前記残留値の復号信号と前記イントラ予測信号とを加算して再構成データを生成する再構成データ生成部とを有し、
前記ブロック選択部は、前記イントラ予測器、残留値符号化器、及び再構成データ生成部に入力するブロックを選択する
ことを特徴とする請求項１乃至３のいずれか１項記載の符号化装置。
【請求項５】
前記ブロック選択部は、前記処理順序のうち、順不同のブロックについてパイプライン処理を行なわせるようブロックを選択する
ことを特徴とする請求項１乃至４のいずれか１項記載の符号化装置。
【請求項６】
１６×１６マクロブロックを４×４ブロックに分割して処理する場合のブロックを（Ｘ，Ｙ）｛Ｘ，Ｙ＝０，１，２，３｝で表すとき、前記処理順序は、（０，０）（１，０）（０，１）（２，０）（１，１）（３，０）（０，２）（２，１）（１，２）（３，１）（０，３）（２，２）（１，３）（３，２）（２，３）（３，３）の順序である
ことを特徴とする請求項１乃至５のいずれか１項記載の符号化装置。
【請求項７】
（０，１）及び（２，０）、（１，１）及び（３，０）、（０，２）及び（２，１）、（１，２）及び（３，１）、（０，３）及び（２，２）、並びに（１，３）及び（３，２）の順序はそれぞれ順不同である
ことを特徴とする請求項６記載の符号化装置。
【請求項８】
前記イントラ予測器と再構成データ生成部とを同一ハードウェアで構成する
ことを特徴とする請求項１乃至７のいずれか１項記載の符号化装置。
【請求項９】
Ｈ．２６４方式の符号化データを生成する
ことを特徴とする請求項１乃至８のいずれか１項記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｈ．２６４（ＭＰＥＧ（Moving Picture Experts Group）−４  ＡＶＣ）方式に好適な符号化装置に関する。
【背景技術】
【０００２】
映像符号化または復号化において、低ビットレート伝送のために設けられたＨ．２６４又はＭＰＥＧ−４  ＡＶＣ標準によれば、イントラ予測モードが９個存在する。この９個の予測モードは、垂直方向モード、水平方向モード、ＤＣ（Direct Current）モード、対角線方向左側ダウンモード、対角線方向右側ダウンモード、垂直右側モード、水平ダウンモード、垂直左側モード及び水平アップモードである（特許文献１参照）。
【０００３】
従来、特許文献１には、このような映像符号化又は復号化においてサブブロック単位のイントラ予測処理段階を減らしてイントラ予測速度を向上させることを目的としたイントラ予測方法及び装置が開示されている。
【０００４】
図１６は、特許文献１に記載の映像符号化時のイントラ予測装置を示すブロック図である。このイントラ予測装置１００は、１６×１６マクロブロックを４×４サブブロックに分けた映像信号に適用され、カウンタ１０１、イントラ予測処理部１１０、加算器１２０、参照ピクセル生成部１３０より構成される。
【０００５】
カウンタ１０１は、当該１６×１６マクロブロック（以下、マクロブロックという。）でイントラ予測処理動作を設定する。すなわち、カウンタ１０１は、参照ピクセル生成部１３０で参照サブブロックのピクセル値が生成される度に当該マクロブロックでイントラ予測処理動作のカウント値をアップデートする。カウンタ１０１がアップカウンタである場合、アップデートはカウント値がアップされるように行われ、カウンタ１０１がダウンカウンタである場合、アップデートはカウント値がダウンされるように行われる。
【０００６】
各イントラ予測処理動作のカウント値は、イントラ予測処理動作情報として定義される。したがって、カウンタ１０１は、イントラ予測処理動作情報提供部として定義されうる。カウンタ１０１から出力されるイントラ予測処理動作情報は、イントラ予測処理部１１０に出力される。
【０００７】
イントラ予測処理部１１０は、マクロブロックに含まれている４×４サブブロックのうち少なくとも一つのサブブロックをイントラ予測が行われるサブブロックと決定し、決定されたイントラ予測が行われるサブブロックに対して複数のイントラ予測モードを行って最適のイントラ予測モード及びイントラ予測サンプルを出力する。
【０００８】
このためにイントラ予測処理部１１０は、第１ＳＡＥ計算器１１１、第２ＳＡＥ計算器１１２、コスト比較器１１３より構成される。第１ＳＡＥ計算器１１１は、カウンタ１０１から出力されるイントラ予測処理動作情報に基づいてイントラ予測を行うサブブロックを決定する。第２ＳＡＥ計算器１１２は、第１ＳＡＥ計算器１１１のようにカウンタ１０１から出力されるイントラ予測処理動作情報に基づいてイントラ予測が行われるサブブロックを決定する。
【０００９】
第１ＳＡＥ計算器１１１と第２ＳＡＥ計算器１１２とは、イントラ予測処理動作情報によってイントラ予測が行われるサブブロックが決定されれば、決定されたイントラ予測サブブロックに対して、９個のイントラ予測モードに対するイントラ予測を行う。
【００１０】
第１ＳＡＥ計算器１１１と第２ＳＡＥ計算器１１２それぞれは、９個の予測モードに対応するイントラ予測を行って得たイントラ予測サンプルと当該サブブロックの入力ピクセル値（４×４ピクセル値）とを利用して各イントラ予測モード別ＳＡＥを検出する。そして、各イントラ予測モード別に検出されたＳＡＥとイントラ予測モード情報（第１ＳＡＥ計算器１１１の場合にモードＡ、第２ＳＡＥ計算器１１２の場合にモードＢ）及び当該イントラ予測サンプルをコスト比較器１１３に出力する。
【００１１】
コスト比較器１１３は、受信したＳＡＥを別途に比較し、それぞれ最小ＳＡＥを有するイントラ予測モードを当該イントラ予測を行うサブブロックの最適のイントラ予測モード情報（モードＡ、モードＢ）として出力し、最適のイントラ予測モードで検出されたイントラ予測サンプルを当該イントラ予測を行うサブブロックのイントラ予測サンプルとして出力する。その際、各イントラ予測を行うサブブロックのイントラ予測モード情報とイントラ予測サンプルとを順次に出力する。
【００１２】
イントラ予測モード情報（モードＡ、モードＢ）は、映像復号化時に使われる。イントラ予測が行われる各サブブロックのイントラ予測サンプルは、加算器１２０に出力される。
【００１３】
加算器１２０は、イントラ予測サンプルに当該イントラ予測が行われるサブブロックの残留値を加算する。残留値は、当該サブブロックの予測されたピクセル値と現在入力されるピクセル値間の差値である。
【００１４】
参照ピクセル生成部１３０は、加算器１２０から出力される加算結果で当該イントラ予測が行われるサブブロックのピクセル値を再構成して保存し、再構成されたピクセル値を次のイントラ予測処理動作のための参照サブブロックのピクセル値に生成する。生成されたピクセル値は、イントラ予測処理部１１０の第１ＳＡＥ計算器１１１及び第２ＳＡＥ計算器１１２に提供される。この参照ピクセル生成部１３０は、参照サブブロックのピクセル値が生成される度にカウンタ１０１に参照サブブロックのピクセル値の生成を知らせる信号を提供する。これにより、カウンタ１０１は、カウント値をアップデートしてイントラ予測処理動作情報をアップデートさせる。
【００１５】
図１７は、このイントラ予測装置１００のブロックの処理タイミングを示す図である。このイントラ予測装置１００は、１６×１６のマクロブロックを４×４の１６個のサブブロックに分割し、これらのブロックの番号を図４で示すように０乃至１５とすると、図１７に示すように、２つの演算器（特許文献１ではＳＡＥ計算部）で、それぞれ１つずつ、図に示した番号のサブブロックの処理を行う。ブロックの番号はＨ．２６４の規格により規定された順序であるが、全体の処理時間を短縮するために、ブロックの処理順序を変更している。すなわち、処理ブロックと、当該ブロックの処理に参照するブロックとにより決まるブロック間の依存関係に従って順序を変更し、依存関係がなく並列に実行できるブロック処理を同時に実行する複数の演算器、特許文献１では２つの演算器、に割り当てている。このことにより、１つの演算器で１個のブロックを１段階で処理を行う場合、１６個のブロック処理を、１０段階で終了することができる。
【００１６】
また、特許文献２には、単一のマクロブロックに複数のブロックを含み、このブロック毎にイントラ予測を行い、パイプライン処理に基づく高速なイントラ予測を行うことを目的とした画像情報符号化装置が開示されている。この符号化装置においては、ＪＶＴ符号化方式のように、一つのマクロブロックを複数のブロックに分割し、それぞれのブロックを単位としてイントラ予測並びに直交変換及び量子化処理を行う画像圧縮情報を出力する符号化装置で、ラスタースキャン以外の順序でそれぞれのブロックを逐次処理する。具体的には、ブロックの位置を、（Ｘ，Ｙ）｛Ｘ，Ｙ＝０，１，２，３｝で表すとすれば、（０，０）（１，０）（０，１）（２，０）（１，１）（３，０）（２，１）（０，２）（３，１）（１，２）（０，３）（２，２）（１，３）（３，２）（２，３）（３，３）の順で処理を行う。
【特許文献１】特開２００５−１３０５０９号公報
【特許文献２】特開２００４−１４０４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、特許文献１に記載の方法においては、ブロック処理をパラレルに行なうため、演算器が複数必要となり、回路規模が大きくなる。これは、ブロック間の依存関係により並列に実行できる処理を、そのまま並列処理により実行しているので、並列度に対応した複数の演算器が必要となるからである。また、処理速度をさらに短縮することができない。これは、イントラ予測処理段階によりブロック処理を区切っているため、処理段階間で処理の一部を重ねることができないので、少なくとも処理段階のそれぞれで必要な処理時間の総和だけの処理時間がかかってしまうからである。
【００１８】
また、特許文献２に記載の方法においては、パイプライン処理によりＨ．２６４の規格から外れた方法でイントラ予測を行なっており、画質が劣化するという問題点がある。図１８及び図１９は、特許文献２に記載の処理タイミングを示す図である。図１８又は図１９に示すように、指定したブロックの順序で順次処理する際に、図１８に示す方法では、後続のブロックは先行するブロックの２つ前のブロックの終了後に開始されるが、一つ前のブロックの終了前に開始され、図１９に示す方法では、後続のブロックは先行するブロックの４つ前のブロックの終了後に開始されるが、１乃至３つ前のブロックの終了前に開始される。このようなパイプライン処理では、規格通りブロックを処理することができない。すなわち、１つのブロック処理の際に参照すべきブロックの処理が終了していないのにもかかわらず処理を行なうため、図２０に示すように、例えばＡ、Ｂ、Ｃ、Ｄが確定していない場合は、ａ、ｂ、ｃ、ｄを参照し、Ｉ、Ｊ、Ｋ、Ｌが確定していない場合は、ｉ、ｊ、ｋ、ｌを参照している。さらに右上ブロックの画素（Ｅ〜Ｈ）を参照しない予測方式としている。従って、規格どおりの符号化データが得られないという問題点がある。
【００１９】
なお、Ｈ．２６４では、図５に示すように、４×４画素イントラ予測では、符号対象ブロックがあるとすると、符号化済みの左、左上、上、右上のブロックの画素（Ａ〜Ｍ）を使用して当該符号対象ブロックのイントラ予測を行なう。よって、符号対象ブロックを符号化する際には、左、左上、上、右上のブロックの画素（Ａ〜Ｍ）の符号化が終了している必要がある。これに対し、特許文献２に記載の方法においては、上記のようなタイミングでパイプライン処理を行なうため、左、上、右上ブロックの符号化が終了する前に対象ブロックの符号化を行なうこととなり、上記のように、規格とは異なる画素を参照する必要が生じてしまう。
【課題を解決するための手段】
【００２０】
本発明に係る符号化装置は、入力データを複数のブロックに分割してブロック毎に処理する符号化装置であって、前記入力データと、予測モードに応じて１つのブロックのイントラ予測を行なって生成されたイントラ予測信号とに基づき再構成データを生成するブロック処理部と、前記ブロック処理部にパイプライン処理を行なわせるようブロックを選択するブロック選択部とを有し、前記ブロック選択部は、１つのブロックと当該１つのブロックを処理する際に参照するブロックとの関係を示すブロック間依存関係に基づき定まる処理順序に従い、前ブロックの処理が終了するタイミング以降に次ブロックを選択するものである。
【００２１】
本発明においては、ブロック間依存関係に基づき定まる処理順序に従い、前ブロックの処理が終了するタイミング以降に次ブロックを選択しつつパイプライン処理するため、処理が終了したブロックを参照することができ、かつ処理の高速化を実現することができる。
【発明の効果】
【００２２】
本発明によれば、パイプライン処理により高速処理を可能としかつ規格に従った符号化データを生成可能な符号化装置を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、Ｈ．２６４に準拠した符号化データを生成する装置であって、パイプライン処理により処理の高速化を実現する画像符号化装置に適用したものである。すなわち、本実施の形態においては、Ｈ．２６４のようなブロック間の処理順序に依存関係のある画像符号化方式において、ブロック内の処理を複数のステージからなるパイプライン処理で動作させ、ブロック処理の順序を適切に変更し、パイプライン処理の各ステージに割り当てることで、ハードウェア規模を増加させることなく処理速度を向上させる。
【００２４】
実施の形態１．
図１は、本発明の実施の形態１にかかる符号化装置を示す図である。図１に示すように、符号化装置１は、残留値符号化部１１、可変長符号化部２３、再構成データ生成部１２、デブロックフィルタ１３、フレームメモリ１４、インター予測部（フレーム間予測）１５、イントラ予測部１６、予測制御部１７を有する。
【００２５】
残留値符号化部１１は、直交変換部２１、量子化部２２、逆量子化部２４及び逆直交変換部２５を有する。直交変換部２１には、入力画像と予測画像（イントラ予測信号又はインター予測信号）との差分（残留値）が入力され、これを直交変換する。量子化部２２は、量子化パラメータに基づき直交変換されたデータを量子化する。量子化されたデータは、逆量子化部１１に入力され、逆量子化され、これが逆直交変換部２５に入力される。逆直交変換部２５は、これを逆直交変換し、再構成データ生成部１２に出力する。
【００２６】
可変長符号化部２３は、符号化パラメータに基づき、量子化されたデータ、量子化パラメータ及び符号化パラメータを可変長符号化し、圧縮画像信号として出力する。
【００２７】
再構成データ生成部１２は、予測画像と逆直交変換部２５から入力されるデータとを加算する加算器３１からなる。加算器３１の出力は、デブロックフィルタ１３及びイントラ予測部１６に入力される。
【００２８】
デブロックフィルタ１３は、整数変換のブロック境界のみを平滑化してブロックノイズの発生を抑制する。フレームメモリ１４は、フレーム間予測に必要な参照フレームのデータを保存する。
【００２９】
インター予測部１５は、１マクロブロック（１６×１６画素）、１６×８画素、８×１６画素、８×８画素、８×４画素、４×８画素、４×４画素単位の計７種類のブロックサイズで動き補償を行い、複数の参照フレームを使用して予測画像を生成する。インター予測では、例えばシーンチェンジや移動物体を考慮してより前のフレームを参照フレームとして指定することが可能である。
【００３０】
イントラ予測部１６は、イントラ予測器４２と減算器４１とを有する。イントラ予測器４２は、フレーム間予測を用いないマクロブロックに対して、上や左などに隣接するマクロブロックの隣接画素から補間によって予測画像を生成する。予測画像の生成単位となるブロックサイズは、輝度（Ｙ）成分については４×４及び１６×１６画素の２種類である。また、予測画像生成における補間パターンは、輝度成分の４×４単位の場合は９種類、輝度成分の１６×１６単位は４種類が利用できる。さらに、ハイプロファイル以上のプロファイルでは、８×８画素単位のイントラ予測も利用可能である。補間パターンは４×４の場合と同様の９種類が利用できる。減算器４１は、入力画像と予測画像の差分を残留値として求める。
【００３１】
予測制御部１７は、後述するブロック選択部により、残留値符号化部１１、再構成データ生成部１２、イントラ予測器４２、及びインター予測部１５に入力するブロックを選択する。この場合、１つのブロックと当該１つのブロックを処理する際に参照するブロックとの関係を示すブロック間依存関係に基づき定まる処理順序に従い、ブロックの処理が終了するタイミング以降に次ブロックを選択する。さらに、セレクタ１８を制御し、インター予測部１５から得られる予測画像か、イントラ予測器４２から得られる予測画像かを選択させる。
【００３２】
残留値符号化部１１、再構成データ生成部１２及びイントラ予測部１６により、予測モードに応じて１つのブロックのイントラ予測を行なって生成されたイントラ予測信号と入力データとの差分である残留値を求め、この残留値を符号化して復号し、この復号信号とイントラ予測信号とを加算して再構成データを生成するブロック処理部が構成される。
【００３３】
図２は、ブロック処理部を示す図である。図２に示すように、ブロック処理部は、ブロック選択部５１により制御される。なお、本実施の形態においては、ブロック選択部は、予測制御部１７に含まれるとして説明するが、個別にブロック選択部を設けてもよい。
【００３４】
上述したように、イントラ予測部１６は、入力される予測モードに従ってイントラ予測により予測画像を生成するイントラ予測器４２と、入力データとイントラ予測器４２にて生成された予測画像の差分を残留値として求める減算器とを有する。残留値符号化部１１は、残留値が入力され、その残留値の直交変換、量子化、逆量子化、逆直交変換を行なう残留値符号化器２６を有する。再構成データ生成部１２は、残留値符号化部１１からの復号データとイントラ予測器４２からのイントラ予測画像を加算して再構成データを生成する加算器３１と、再構成データを保存する再構成データ保存部３２とを有する。
【００３５】
次に、ブロック処理について説明する。なお、本実施の形態においては、４×４画素のイントラ符号化をパイプライン処理することで符号化処理時間を短縮化するものであり、その他の処理については、公知の技術と同様とすることができる。よって、以下では、４×４画素のイントラ符号化について説明する。図３は、ブロックを説明する図である。図３に示すように、１枚のピクチャ（フレーム）を１６×１６画素のマクロブロックとし、さらにこれを４×４＝１６等分したものが４×４画素のブロックとなる。４×４イントラ符号化（輝度）では、図４に示すように、通常は、１６×１６画素を構成する０〜１５の順序に符号化が行なわれる。すなわち、この４×４ブロックは図に示すブロック番号順に符号化データが並べられる。
【００３６】
図５に示すように、実線で描かれた４×４ブロックのイントラ予測を行う場合には、最大でＡ〜Ｍで示された１３個の画素が使用される。すなわち破線で囲まれた左上、直上、右上、左横のブロック内の画素が参照される。予測に使われる画素は再構成された画素である必要があるため、これらの画素を用いるためには、これらを含む隣接ブロックの符号化処理が終了していなければならない。具体的には、例えばブロック９を符号化する際、ブロック２、３、６、８の符号化が終了している必要がある。本明細書においては、これをブロックの依存関係ということとする。
【００３７】
４×４画素のイントラ予測では、予測モード０から予測モード８まで９種類の予測モードがある。予測モード０では、上ブロックを参照する。予測モード１では左ブロックを参照する。予測モード２では、左ブロック及び上ブロックを参照してそれらの平均値を使用する。予測モード３では、上ブロックと右上ブロックを参照する。予測モード４では左ブロック、左上ブロック及び上ブロックを参照する。予測モード５では左上ブロック及び上ブロックを参照する。予測モード６では、左ブロック及び左上ブロックを参照する。予測モード７では、上ブロック及び右上ブロックを参照する。予測モード８では左ブロックを参照する。
【００３８】
図６は、１マクロブロックの中のブロック間の依存関係を示す図である。図の数字は図４に示すブロック番号であり、矢印の元のブロックの処理が終了しなければ、矢印の先のブロックの処理ができないことを示している。図の矢印は全て右向きとなり、この図においては、左側から右側へとブロック処理を進めることができる。同じ列に並んでいるブロックは、並列処理が可能である。これによれば、ブロック２と４、ブロック３と５、ブロック８と６、ブロック９と７、ブロック１０と１２、ブロック１１と１３は同時に符号化することができる。上述した特許文献１は、これらを２つのブロック処理部を用意し、並列に処理させることで処理速度を向上するものであるが、上述したように、ハードウェア量が増大する。一方、図７に示すように、ブロックの各処理を直列に行なうと処理時間が増大する。
【００３９】
そこで、本実施の形態においては、図８に示す順序でブロックの各処理を実行し、かつ、各ブロックの処理タイミングを適切に決めることで、規格どおりの演算を高速に実行することができる。図８は、本実施の形態にかかる４×４イントラ予測におけるブロックの処理順序を示す図である。本実施の形態においては、ブロックの処理を、イントラ予測部１６で行なうイントラ予測残留値計算、残留値符号化部１１で行なう残留値符号化、再構成データ生成部１２で行なう再構成データの生成、という３つの処理とし、これらをパイプライン処理するものとする。なお、本実施の形態においては、これら３つの処理をパイプライン処理するものとして説明するが、処理の分類はこれに限るものではない。例えば残留符号化を、直交変換及び量子化の処理と、逆量子化及び逆直交変換の処理とに分け、計４つの処理としこれらをパイプライン処理してもよい。
【００４０】
本実施の形態にかかるブロックの処理順序は、以下の２種類ある。すなわち、第１の順序は、図４のブロック番号を用いて表示すると、
０→１→（２→４）→（３→５）→（６→８）→（７→９）→（１０→１２）→（１１→１３）→１４→１５である。
ここで、括弧内のブロック処理順序は順不同である。
【００４１】
１６×１６マクロブロックを４×４ブロックに分割して処理する場合のブロックを（Ｘ，Ｙ）｛Ｘ，Ｙ＝０，１，２，３｝で表すとき、第１の処理順序は、（０，０）（１，０）（０，１）（２，０）（１，１）（３，０）（２，０）（０，２）（３，１）（１，２）（０，３）（２，２）（１，３）（３，２）（２，３）（３，３）の順序であり、（０，１）及び（２，０）、（１，１）及び（３，０）、（２，０）及び（０，２）、（３，１）及び（１，２）、（０，３）及び（２，２）、並びに（１，３）及び（３，２）の順序はそれぞれ順不同である。
【００４２】
第２の順序は、図４のブロック番号を用いて表示すると、
０→１→２→４→３→５→８→６→９→７→１０→１２→１１→１３→１４→１５
であり、１６×１６マクロブロックを４×４ブロックに分割して処理する場合のブロックを（Ｘ，Ｙ）｛Ｘ，Ｙ＝０，１，２，３｝で表すとき、（０，０）（１，０）（０，１）（２，０）（１，１）（３，０）（０，２）（２，１）（１，２）（３，１）（０，３）（２，２）（１，３）（３，２）（２，３）（３，３）の順序である。
【００４３】
図９は、本実施の形態にかかるブロック処理部の動作を説明する図であって、イントラ４×４モードにおける１マクロブロックの符号化処理のフローチャートである。図９に示すように、先ず、符号化モード判定ステップＳ１にて、当該マクロブロックの符号化モードを判定する。この符号化モード判定ステップＳ１は、当該マクロブロックを規格で定めた各種符号化方法の中から、どのように符号化するかを決定する。符号化モードとしては、イントラ予測符号化とインター予測符号化がある。イントラ予測は、当該マクロブロックの画像信号を、同じフレーム内から予測を行う方法であり、インター予測は、異なるフレームの情報から予測を行う方法である。イントラ予測の場合は、更に、イントラ４×４予測、イントラ１６×１６予測、イントラ８×８予測がある。それぞれの予測方法については、複数の予測モードがあり、上述したように、イントラ４×４では９種類の予測モードがある。
【００４４】
次に、イントラ予測判定ステップＳ２により、符号化モード判定ステップＳ１で選択された符号化モードがイントラ予測符号化か否かを判別する。この場合、例えば、インター予測かイントラ予測かは、予測性能が高い方、例えば残留値が小さい予測方法を選択する。インター予測符号化の場合は、図示されないインター予測符号化処理に進む。イントラ予測符号化の場合は、さらに予測ブロックサイズ判定ステップＳ３により、イントラ４×４モードか否かの判別を行う。イントラ１６×１６またはイントラ８×８の場合は、図示されないそれぞれの予測方法の処理に進む。イントラ４×４モードの場合、マクロブロック内のブロック処理に進む。
【００４５】
ブロック処理では、図２におけるイントラ予測残留値計算、残留値符号化、再構成データの生成を各回路でブロック選択部５１の制御のもと所定のタイミングにて実行する。図１０は、ブロック内の３つのステージ処理（イントラ予測、予測残差符号化、再構成データ生成）を行う処理部へのブロック処理の割り当てを示した図である。図６のブロック間依存関係に従って、処理可能な順序で割り当てる。図１０では、並列処理できる複数のブロックをひとまとめとして処理を割り当てたものである。上述の第１の順序に対応する。ブロック２，４、ブロック３，５、ブロック６，８、ブロック７，９、ブロック１０，１２、ブロック１１，１３はパイプライン処理されている。以下の説明では、図１０の横軸を処理段階ということする。例えば処理段階７では、イントラ予測部１６でブロック４のイントラ予測残留値計算を行い、同じタイミングで残留値符号化部１１でブロック２の残留値符号化処理が行なわれる。これらのブロックは上述したように順不同であり、ブロック２→ブロック４でもよく、ブロック４→ブロック２でもよい。図１０の下段には、このような入れ替え可能な処理の割り当てを併記しており、破線で区切った区間では、上段か下段のいずれかの割り当てを選択してブロック処理を行うことができる。
【００４６】
また、図１０に示すように、例えばブロック１はブロック０の処理結果に依存するため、ブロック０の最後のステージの処理が終了した後に、ブロック１の最初のステージの処理を開始する。一方、上述の特許文献２では、図１８及び図１９のようにブロック間の依存関係によらず、全てのブロックに対して同じタイミングでパイプライン処理を実行しているので、参照したい画素データの計算結果が求まる前に処理が開始されてしまう場合があり、規格通りの処理をできないという問題点がある。
【００４７】
このように、本実施の形態においては、ブロック間の依存関係を考慮し、前ブロックの処理が終了するタイミング以降に次ブロックを選択しながらパラレル処理を行なう。このことにより、処理速度を向上させることができると共に、上述の特許文献２のように参照画素を他の画素値で置き換える等の処理が必要なく、規格に沿った符号化データを得ることができる。
【００４８】
ブロック処理では、先ず、処理段階の処理段数を初期化する（ステップＳ４）。そして、ブロック選択部５１にて予め定めた順序に従って、イントラ予測を行うマクロブロック内のブロックを１つずつ順に選択してイントラ予測部１６、残留値符号化部１１、再構成データ生成部１２に出力する（ステップＳ５、Ｓ８、Ｓ１０）。
【００４９】
次に、イントラ予測部１６においては、ブロック選択の後、イントラ予測ステップＳ６においては、イントラ予測部１６において、符号化モード判定ステップＳ１で選択された予測モードに従って、当該ブロックのイントラ予測を行い、イントラ予測信号を出力する。そして、予測残留値計算ステップＳ７では、減算器４１において、入力データと予測値の差分を計算し、予測残留値として出力する。
【００５０】
次に、残留符号化部１１においては、残留値符号化用のブロックが選択された後、残留値符号化ステップＳ９にて予測残留値を符号化する。符号化処理は、直交変換、量子化、逆量子化、及び逆直交変換を行い、残留値の復号信号を計算する。
【００５１】
次に、再構成データ生成部１２においては、再構成データ生成用のブロックが選択され後、再構成データ生成ステップＳ１１において、加算器３１により、残留値の復号信号とイントラ予測信号を加算し、再構成データを出力する。そして、再構成データ保存ステップＳ１３にて、再構成データ保存部３２において、隣接ブロックの予測に必要な再構成データを保存する。
【００５２】
各処理部での処理が終了したら、処理段数を更新する（ステップＳ１４）。そして、最終処理段数か否かを判定し、最終段まで処理を繰り返す。なお、最終段まで処理が終了したら、ブロック判定によりマクロブロック内の全てのブロックの符号化が終了したか否かを判定する。まだイントラ予測符号化を行うブロックが残っている場合には、次のブロックを選択してステップＳ１からのイントラ予測符号化を行う。
【００５３】
以上説明した通り、本実施の形態においては、画面を複数のマクロブロックに分割し、さらにマクロブロックを複数のブロックに分割し、これらブロックの間の処理順序に依存関係のある画像符号化方式おいて、ブロック符号化処理は、複数の処理段階で構成され、それらをパイプラインで実行する処理を含み、パイプラインの各ステージを実行する各ステージ処理部（イントラ予測部、再構成データ生成部、残留値符号化部）と、各ステージ処理部に対して、処理対象のブロックを指定するブロック選択部から構成され、ブロック選択部は、ブロックの処理順序の依存関係に従い、少なくとも一つのブロックを要素とするブロック集合の処理順序を予め設定し、設定した順序に従って、含まれるブロックをパイプラインの各ステージ処理装置にて処理を行う。
【００５４】
または、ブロック選択部は、ブロックの処理順序の依存関係に従い、先行すべきブロックが存在しない、あるいは、先行すべきブロック処理の最後の処理ステージが全て終わっているブロックを選択し、当該ブロックをパイプラインの各ステージ処理装置にて処理を行う。
【００５５】
ここで、ブロック番号の順番ではブロック間に依存関係により並列度を上げられないが、ブロック間の依存関係を考慮してブロックの処理順序を並べ替えることで、並列処理できるブロックがある。さらに並列処理できる複数のブロック内で、ブロックで実行されるイントラ予測処理、予測残差符号化処理、再構成データ生成処理をパイプライン化して組み合わせて実行することで、同じ処理装置を増やすことなく、異なるステージの処理を同時実行することができる。そして、並列化できるブロックの組み合わせを単位にして処理段階を分けることをせず、予測に使用する参照画素が生成されたブロックから直ちに処理を開始する。
【００５６】
このことにより、ブロックの処理順序を適切に並べ替え、パイプライン化した処理ステージへ割り当てることで、イントラ予測器、予測残差符号化器、再構成データ生成器の稼働率を向上させて、ハードウェアの増加なしに、全体の処理時間を短縮することができる。これにより並列実行できる複数のブロックを組み合わせで処理段階を構成した場合に比べて、処理段階のそれぞれの処理時間の総和よりも、全体の処理時間を短縮できる。
【００５７】
次に、本実施の形態に関し、上述した全体の処理時間を短縮する変形例について説明する。図１１及び図１２は、ブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示す図である。図１０に示すように、上述した第２の順序で処理することで、更に処理を高速化することができる。すなわち、図１０に示す処理の場合は処理段階３５まで必要であったのに対し、本例においては、処理段階３１で１マクロブロックの処理が終了する。この場合もブロック間の依存関係を考慮し、前ブロックの処理が終了するタイミング以降に次ブロックを選択するが、並列処理できる複数のブロックがある場合には、それ以降のブロックの処理ができるだけ早く始められるブロックを選択する。また、図１２に示すようなタイミングとすることも可能である。
【００５８】
実施の形態２．
次に、本発明にかかる実施の形態２について説明する。本実施の形態は、パイプライン処理により処理速度を向上させるのみならず、ハードウェア量を低減した符号化装置である。図１３は、本実施の形態にかかる符号化装置におけるブロック処理部を示す図である。なお、ブロック処理部以外の構成は実施の形態１と同様である。また、実施の形態１と同様の構成要素には同一の符号を付してその詳細な説明は省略する。
【００５９】
本実施の形態においては、図１３に示すように、イントラ予測部と再構成データ生成部が１つの回路を共有する構成となっている。具体的には、イントラ予測・再構成部１９は、セレクタ６１、加減算器６２、再構成データ保存部６３、及びイントラ予測器６４を有する。セレクタ６１により、残留値符号化器２６からの復号残留値か、入力データを選択出力する。イントラ予測を行なう場合は、イントラ予測器により予測画像を生成し、セレクタ６１で入力データを選択させ、加減算器６２により入力データとの差分をとる。再構成データを生成する場合には、セレクタ６１で復号残留値を選択させ、加減算器６２により予測画像と復号残留値とを加算する。
【００６０】
この構成により、加減算器を共有することができる。また、イントラ予測値を一時保存しなくてよくなる。再構成のために使用するイントラ予測値は、残留値計算の際に求めたイントラ予測値を一時保存して再利用するか、あるいは再構成用にイントラ予測器をもう一つ使うことになるが、本実施の形態においては、共通のイントラ予測器を再度使用してイントラ予測値を生成すればよく、イントラ予測値の一時保存やイントラ予測器をもう一つ使用する必要がなくなる。
【００６１】
図１４は、本実施の形態にかかる符号化処理方法を示すフローチャート、図１５は、ブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示す図である。ステップＳ２１〜Ｓ２３は、上述のステップＳ１〜Ｓ３と同様である。ブロック処理では、まず処理段階初期化ステップＳ２４において、ブロック選択部５１において、処理段階を０に初期化する。
【００６２】
次に、イントラ予測・再構成ブロック選択ステップＳ２５、残留値符号化ブロック選択ステップＳ２９に進む。ブロック選択部５１にて、それぞれの処理を行うブロックを選択する（図１５参照）。
【００６３】
次に、イントラ予測機能の判定ステップＳ２６では、イントラ予測・再構成部１９で実行する機能がイントラ予測か再構成かの判定をする。イントラ予測機能を実行する場合は、イントラ予測ステップＳ３１に進む。再構成の場合は、再構成データ生成ステップＳ２７に進む。
【００６４】
イントラ予測ステップＳ３１では、イントラ予測・再構成部１９において、符号化モード判定ステップで選択された予測モードに従って、当該ブロックのイントラ予測を行い、イントラ予測値（予測画像）を出力する。そして、予測残留値計算ステップＳ３２では、セレクタ６１において、入力データを選択し、加減算器６２で入力データと予測値の差分を計算し、予測残留値として出力する。
【００６５】
残留値符号化ステップＳ３０では、残留値符号化器２６において、予測残留値を符号化する。符号化処理は、直交変換、量子化、逆量子化、及び逆直交変換を行い、残留値の復号信号を計算する。
【００６６】
また、再構成データ生成ステップＳ２７では、イントラ予測・再構成部１９において、符号化モード判定ステップで選択された予測モードに従って、当該ブロックのイントラ予測を行い、イントラ予測値を出力する。そして、セレクタ６１において、残留値の復号信号を選択し、加減算器６２において、残留値の復号信号とイントラ予測値を加算し、再構成データを出力する。再構成データ保存ステップ２８では、再構成データ保存部６３により隣接ブロックの予測に必要な再構成データを保存する。
【００６７】
各処理部でのブロックの処理が終了したら次の処理段数更新ステップＳ３３において、ブロック選択部５１で、処理段階をインクリメントする。そして、最終処理段判定ステップＳ３４において、ブロック選択部５１により処理段階が最後の段数を超えたか判定する。まだ最後の処理段数を超えていない場合には、ブロック選択ステップＳ２５、Ｓ２９に戻って処理を継続する。また処理段数を超えた場合はマクロブロックの輝度ブロックの処理を終了し、例えば次の色差ブロックの処理に進む。
【００６８】
本実施の形態においては、ブロック内の処理をパイプラインの複数のステージに分割し、並列に処理できるブロックを組み合わせ、一組だけのパイプライン演算装置で実行するため、ハードウェア量を増加させることなくパイプライン処理により処理速度を向上する。さらに、加減算器を共有することができ、かつイントラ予測値の一時保存やイントラ予測器をもう一つ使用する必要がなくなるため、ハードウェア量をさらに削減することができる。
【００６９】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施の形態１にかかる符号化装置を示す図である。
【図２】同符号化装置におけるブロック処理部を示す図である。
【図３】ブロックを説明する図である。
【図４】４×４イントラ符号化におけるマクロブロックを構成するブロックの番号を示す図である。
【図５】４×４画素の符号化対象ブロックが参照する画素を示す図である。
【図６】１マクロブロックの中のブロック間の依存関係を示す図である。
【図７】ブロックの各処理を直列に行なう場合を示す図である。
【図８】本発明の実施の形態１にかかる４×４イントラ予測におけるブロックの処理順序を示す図である。
【図９】本発明の実施の形態１にかかるブロック処理部の動作を説明する図である。
【図１０】本発明の実施の形態１におけるブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示した図である。
【図１１】本発明の実施の形態１の変形例におけるブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示した図である。
【図１２】同じく、本発明の実施の形態１の変形例におけるブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示した図である。
【図１３】本発明の実施の形態２にかかる符号化装置におけるブロック処理部を示す図である。
【図１４】本発明の実施の形態２にかかる符号化処理方法を示すフローチャートである。
【図１５】本発明の実施の形態２におけるブロック内の３つのステージ処理を行う処理部へのブロック処理の割り当てを示す図である。
【図１６】特許文献１に記載の映像符号化時のイントラ予測装置を示すブロック図である。
【図１７】イントラ予測装置のブロックの処理タイミングを示す図である。
【図１８】特許文献２に記載の処理タイミングを示す図である。
【図１９】同じく、特許文献２に記載の処理タイミングを示す図である。
【図２０】特許文献２における参照画素を説明する図である。
【符号の説明】
【００７１】
１  符号化装置
１１  残留値符号化部
１２  再構成データ生成部
１３  デブロックフィルタ
１４  フレームメモリ
１５  インター予測部
１６  イントラ予測部
１７  予測制御部
１８、６１  セレクタ
１９  イントラ予測・再構成部
２１  直交変換部
２２  量子化部
２３  可変長符号化部
２４  逆量子化部
２５  逆直交変換部
２６  残留値符号化器
３１  加算器
３２  再構成データ保存部
４１  減算器
４２  イントラ予測器
５１  ブロック選択部
６２  加減算器
６３  再構成データ保存部
６４  イントラ予測器
【図１】
2008271127.tif 000003
【図２】
2008271127.tif 000004
【図３】
2008271127.tif 000005
【図４】
2008271127.tif 000006
【図５】
2008271127.tif 000007
【図６】
2008271127.tif 000008
【図７】
2008271127.tif 000009
【図８】
2008271127.tif 000010
【図９】
2008271127.tif 000011
【図１０】
2008271127.tif 000012
【図１１】
2008271127.tif 000013
【図１２】
2008271127.tif 000014
【図１３】
2008271127.tif 000015
【図１４】
2008271127.tif 000016
【図１５】
2008271127.tif 000017
【図１６】
2008271127.tif 000018
【図１７】
2008271127.tif 000019
【図１８】
2008271127.tif 000020
【図１９】
2008271127.tif 000021
【図２０】
2008271127.tif 000022