(57)【要約】【課題】単一チップ内に二つのコーデックを搭載すると、回路規模が大きくなり、製造コストがかかる。【解決手段】画像符号化装置２００は、通信路１４０により接続された第１ＬＳＩ１５０ａと第２ＬＳＩ１５０ｂを含む。第１ＬＳＩ１５０ａは、動画像を構成するピクチャを２つの組に分けた場合の第１組のピクチャを符号化し、第２ＬＳＩ１５０ｂは、第２組のピクチャを符号化する。送信処理部１１０は、第１ＬＳＩ１５０ａにより生成される参照画像を通信路１４０を介して送信し、受信処理部１２０は、通信路１４０を介して参照画像を受信する。第２ＬＳＩ１５０ｂは、第１ＬＳＩ１５０ａから受信された参照画像を、第２組のピクチャを符号化する際の参照画像として利用する。【選択図】図１
2011211498.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成するピクチャを２つの組に分けた場合の第１組のピクチャを符号化する第１符号化器と、
第２組のピクチャを符号化する第２符号化器と、
前記第１符号化器により生成される参照画像を通信路を介して送信する送信処理部と、
前記通信路を介して前記参照画像を受信する受信処理部とを含み、
前記第２符号化器は、前記第１符号化器から受信された前記参照画像を、第２組のピクチャを符号化する際の参照画像として利用することを特徴とする画像符号化装置。
【請求項２】
受信した前記参照画像を蓄積するバッファの空き容量にもとづいて、前記第２符号化器によるピクチャのブロックに関する処理に許容される処理時間を算出し、許容される処理時間を超える場合は、当該ブロックに関する処理を打ち切るように制御する打ち切り制御部をさらに含むことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記送信処理部は、前記参照画像を可逆圧縮する圧縮部を含み、
前記受信処理部は、受信された圧縮後の前記参照画像を伸張する伸張部を含み、
前記送信処理部は、前記参照画像の圧縮率に関する情報を前記受信処理部に通知し、
前記打ち切り制御部は、受信した前記参照画像を蓄積するバッファの空き容量と前記参照画像の圧縮率にもとづいて、前記第２符号化器によるピクチャのブロックに関する処理に許容される処理時間を算出し、許容される処理時間を超える場合は、当該ブロックに関する処理を打ち切るように制御することを特徴とする請求項２の記載の画像符号化装置。
【請求項４】
動画像を構成するピクチャを第１組と第２組に分けるステップと、
第１組のピクチャを第１符号化器により符号化するステップと、
第２組のピクチャを第２符号化器により符号化するステップと、
前記第１符号化器により生成される参照画像を通信路を介して前記第２符号化器に転送するステップとを含み、
前記第１符号化器から転送された前記参照画像は、第２組のピクチャを符号化する際の参照画像として利用されることを特徴とする画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する画像符号化装置および画像符号化方法に関する。
【背景技術】
【０００２】
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、ＤＶＤやＢｌｕ-ｒａｙ  Ｄｉｓｋ（登録商標）など大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積したりするために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、ＭＰＥＧ４の規格やＨ．２６４／ＡＶＣ規格がある。また、１つのストリームにおいて高画質のストリームと低画質のストリームを併せもつＳＶＣ（Scalable Video Codec）のような画像圧縮技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５３２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２つのコーデックを搭載して処理性能を２倍にしたデュアルコーデックＬＳＩが開発されている。仮に、２つのコーデックが同一のメモリにアクセスすることができる単一チップの構成を取るとすれば、２つのコーデック間で動画像の符号化の際に利用する参照画像をメモリに格納して共有することは容易である。
【０００５】
しかしながら、単一のチップ内に二つのコーデックを搭載すると、回路規模が大きくなり、製造コストがかかるという問題が生じることを発明者は認識するに至った。
【０００６】
本発明はこうした状況に鑑みてなされたもので、その目的は、処理性能を向上させることのできる動画像の符号化技術を提供することにある。さらに別の目的は、チップの製造コストを抑えることにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の画像符号化装置は、動画像を構成するピクチャを２つの組に分けた場合の第１組のピクチャを符号化する第１符号化器と、第２組のピクチャを符号化する第２符号化器と、前記第１符号化器により生成される参照画像を通信路を介して送信する送信処理部と、前記通信路を介して前記参照画像を受信する受信処理部とを含む。前記第２符号化器は、前記第１符号化器から受信された前記参照画像を、第２組のピクチャを符号化する際の参照画像として利用する。
【０００８】
「ピクチャ」は、フレーム、フィールド、ＶＯＰ（Video Object Plane）などを含む符号化の単位である。
【０００９】
本発明のさらに別の態様は、画像符号化方法である。この方法は、動画像を構成するピクチャを第１組と第２組に分けるステップと、第１組のピクチャを第１符号化器により符号化するステップと、第２組のピクチャを第２符号化器により符号化するステップと、前記第１符号化器により生成される参照画像を通信路を介して前記第２符号化器に転送するステップとを含む。前記第１符号化器から転送された前記参照画像は、第２組のピクチャを符号化する際の参照画像として利用される。
【００１０】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、処理性能を向上させることのできる動画像の符号化技術を提供できる。さらに、チップの製造コストを抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る画像符号化装置の構成図である。
【図２Ａ】図１の偶数フレームエンコーダの構成図である。
【図２Ｂ】図１の奇数フレームエンコーダの構成図である。
【図３】図１の送信処理部と受信処理部の構成を説明する図である。
【図４】動画像のフレームの参照関係を説明する図である。
【図５】図１の画像符号化装置による動画像の符号化処理の手順を説明する図である。
【発明を実施するための形態】
【００１３】
図１は、実施の形態に係る画像符号化装置２００の構成図である。画像符号化装置２００は、第１ＬＳＩ１５０ａ、第２ＬＳＩ１５０ｂ、分離部１６０、合成部１７０、およびメモリ１３０を含む。第１ＬＳＩ１５０ａは、偶数フレームエンコーダ１００ａおよび送信処理部１１０を含む。第２ＬＳＩ１５０ｂは、奇数フレームエンコーダ１００ｂおよび受信処理部１２０を含む。
【００１４】
これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１５】
本実施の形態の画像符号化装置２００は、国際標準化機関であるＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commission）によって標準化されたＭＰＥＧ（Moving Picture Experts Group）シリーズの規格（ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４）、電気通信に関する国際標準機関であるＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standardization Sector）によって標準化されたＨ．２６ｘシリーズの規格（Ｈ．２６１、Ｈ．２６２およびＨ．２６３）、もしくは両方の標準化機関によって合同で標準化された最新の動画像圧縮符号化標準規格であるＨ．２６４／ＡＶＣ（両機関における正式勧告名はそれぞれMPEG-4 Part 10: Advanced Video CodingとH.264）に準拠して動画像の符号化を行う。
【００１６】
ＭＰＥＧシリーズの規格では、フレーム内符号化を行う画像フレームをＩ（Intra）フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをＰ（Predictive）フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをＢフレームという。
【００１７】
一方、Ｈ．２６４／ＡＶＣでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の２枚のフレームを参照画像としてもよく、未来の２枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、３枚以上のフレームを参照画像として用いることもできる。したがって、ＭＰＥＧ−１／２／４では、Ｂフレームは双方向予測（Bi-directional prediction）フレームのことを指していたが、Ｈ．２６４／ＡＶＣでは、Ｂフレームは、参照画像の時間の先後は問わないため、双予測（Bi-predictive prediction）フレームのことを指すことに留意する。
【００１８】
なお、実施の形態では、符号化の単位としてフレームを例に挙げて説明するが、符号化の単位はフィールドであってもよい。また、符号化の単位はＭＰＥＧ−４におけるＶＯＰであってもよい。
【００１９】
分離部１６０は、フレーム単位で動画像の入力を受け取り、偶数フレームと奇数フレームに分けて、偶数フレームを第１ＬＳＩ１５０ａに、奇数フレームを第２ＬＳＩ１５０ｂに供給する。別の実装例として、第１ＬＳＩ１５０ａ、第２ＬＳＩ１５０ｂのいずれか一方に動画像の全フレームをいったん入力した後、通信路１４０を介して偶数フレームまたは奇数フレームを他方のＬＳＩに転送してもよい。
【００２０】
第１ＬＳＩ１５０ａの偶数フレームエンコーダ１００ａは、偶数フレームの符号化を担当し、フレーム内符号化または２つ前の偶数フレームを参照画像とするフレーム間符号化を行う。偶数フレームエンコーダ１００ａにより、Ｉフレーム、Ｐフレームの符号化が行われる。
【００２１】
一方、第２ＬＳＩ１５０ｂの奇数フレームエンコーダ１００ｂは、奇数フレームの符号化を担当し、１つ前の偶数フレームを参照画像とするフレーム間符号化を行う。奇数フレームエンコーダ１００ｂにより、Ｈ．２６４／ＡＶＣでいうＢフレームの符号化が行われる。前述のように、Ｈ．２６４／ＡＶＣでは、Ｂフレームの符号化の際、参照画像とすることのできるフレームは、時間の先後を問わない。奇数フレームエンコーダ１００ｂは、１つ前の偶数フレーム、すなわち、偶数フレームエンコーダ１００ａが符号化するＩフレームまたはＰフレームを参照画像として、奇数フレームをＢフレームとして符号化する。
【００２２】
偶数フレームエンコーダ１００ａは、次の偶数フレームの符号化の際に必要となる参照画像を生成し、第１ＬＳＩ１５０ａに接続されたメモリ１３０に格納する。
【００２３】
第１ＬＳＩ１５０ａの送信処理部１１０は、メモリ１３０に格納された参照画像を圧縮して、または圧縮せずにそのまま、第２ＬＳＩ１５０ｂに通信路１４０経由で転送する。
【００２４】
第２ＬＳＩ１５０ｂの受信処理部１２０は、第１ＬＳＩ１５０ａから受信した圧縮後の参照画像を伸張して奇数フレームエンコーダ１００ｂに供給する。ここでは、受信した参照画像は第２ＬＳＩ１５０ｂに接続されたメモリに蓄えることをせずに、直接奇数フレームエンコーダ１００ｂに供給する構成を図示しているが、受信した参照画像をいったん第２ＬＳＩ１５０ｂがアクセス可能なメモりに一時蓄える構成にしてもよい。
【００２５】
奇数フレームエンコーダ１００ｂは、受信した偶数フレームの参照画像を利用して、奇数フレームのフレーム間符号化を行う。
【００２６】
ここで、フレーム間符号化における動き予測の際、たとえば縦横１６画素の領域をマクロブロックとして、画像の左から右にマクロブロック処理を進め、右端に達すると、１ブロック下のマクロブロックについて同様に左から右にマクロブロック処理を進める。マクロブロックの動き探索では、上下に複数個のマクロブロック分の領域を探索範囲とするため、１ブロック下のマクロブロックの処理において、一度使用した参照データと同じデータを再度使用することになる。そこで、重複して参照されるデータを第１ＬＳＩ１５０ａから第２ＬＳＩ１５０ｂへ再度転送することを避けるために、参照される複数個のマクロブロックの上下方向のサイズを縦方向のサイズとし、画像の水平方向のサイズを横方向のサイズとする記憶領域をもつ大容量ＳＲＡＭをキャッシュとして使用してもよい。
【００２７】
偶数フレームエンコーダ１００ａは符号化された偶数フレームを合成部１７０に供給し、奇数フレームエンコーダ１００ｂは符号化された奇数フレームを合成部１７０に供給する。合成部１７０は、符号化された偶数フレームと奇数フレームのデータを合成して最終的な符号化ストリームを生成して出力する。なお、上記の説明では、合成部１７０で符号化された偶数フレームと符号化された奇数フレームを合成するとしたが、通信路１４０を介して符号化された奇数フレームのデータを第１ＬＳＩ１５０ａに転送し、第１ＬＳＩ１５０ａで偶数フレームと奇数フレームを合成してもよく、または、符号化された偶数フレームのデータを第２ＬＳＩ１５０ｂに転送し、第２ＬＳＩ１５０ｂで偶数フレームと奇数フレームを合成してもよい。
【００２８】
図２Ａは、偶数フレームエンコーダ１００ａの構成図である。偶数フレームエンコーダ１００ａは、動画像の偶数フレームを受け取り、Ｉフレームについてフレーム内符号化し、Ｐフレームについてフレーム間符号化し、生成された符号化データを出力する。
【００２９】
ブロック生成部１０ａは、入力された画像フレームをマクロブロックに分割する。画像フレームの左上から右下方向の順にマクロブロックが形成される。ブロック生成部１０ａは生成したマクロブロックを差分器１２ａと動き補償部６０ａに供給する。
【００３０】
差分器１２ａは、ブロック生成部１０ａから供給される画像フレームがＩフレームであれば、そのままＤＣＴ部２０ａに出力するが、Ｐフレームであれば、動き補償部６０ａから供給される予測画像との差分を計算してＤＣＴ部２０ａに供給する。
【００３１】
動き補償部６０ａは、フレームバッファ８０ａに格納されている過去の画像フレームを参照画像として利用し、ブロック生成部１０ａから入力されたＰフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部６０ａは、生成した動きベクトルを可変長符号化部９０ａに供給し、予測画像を差分器１２ａと加算器１４ａに供給する。
【００３２】
差分器１２ａは、ブロック生成部１０ａから出力される現在の画像と、動き補償部６０ａから出力される予測画像との差分を求め、ＤＣＴ部２０ａに出力する。ＤＣＴ部２０ａは、差分器１２ａから与えられた差分画像を離散コサイン変換（ＤＣＴ）し、ＤＣＴ係数を量子化部３０ａに与える。
【００３３】
量子化部３０ａは、ＤＣＴ係数を量子化し、可変長符号化部９０ａに与える。可変長符号化部９０ａは、動き補償部６０ａから与えられた動きベクトルとともに差分画像の量子化されたＤＣＴ係数を可変長符号化し、符号化ストリームを生成する。可変長符号化部９０ａは、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
【００３４】
可変長符号化部９０ａにより生成された偶数フレームの符号化データは合成部１７０に供給される。
【００３５】
量子化部３０ａは、画像フレームの量子化されたＤＣＴ係数を逆量子化部４０ａに供給する。逆量子化部４０ａは、与えられた量子化データを逆量子化し、逆ＤＣＴ部５０ａに与え、逆ＤＣＴ部５０ａは、与えられた逆量子化データを逆離散コサイン変換する。これにより、符号化された画像フレームが復元される。復元された画像フレームは加算器１４ａに入力される。
【００３６】
加算器１４ａは、逆ＤＣＴ部５０ａから供給される画像フレームがＩフレームであれば、そのままフレームバッファ８０ａに格納する。加算器１４ａは、逆ＤＣＴ部５０ａから供給される画像フレームがＰフレームであれば、それは差分画像であるため、逆ＤＣＴ部５０ａから供給された差分画像と動き補償部６０ａから供給される予測画像とを加算することにより、元の画像フレームを再構成し、フレームバッファ８０ａに格納する。
【００３７】
Ｐフレームの符号化処理の場合は、上述のように動き補償部６０ａが動作するが、Ｉフレームの符号化処理の場合は、動き補償部６０ａは動作せず、ここでは図示しないが、フレーム内予測が行われる。
【００３８】
ここでは、フレームバッファ８０ａを偶数フレームエンコーダ１００ａ内に図示したが、フレームバッファ８０ａは、図１の第１ＬＳＩ１５０ａに接続されたメモリ１３０として実装される。フレームバッファ８０ａに格納された偶数フレームの参照画像は送信処理部１１０により読み出され、圧縮され、第２ＬＳＩ１５０ｂに転送される。なお、上記の説明では、偶数フレームの参照画像をフレームバッファ８０ａに格納してから送信処理部１１０に渡すとしたが、偶数フレームの参照画像をフレームバッファ８０ａに格納するのと並行して、送信処理部１１０に渡してもよい。
【００３９】
図２Ｂは、奇数フレームエンコーダ１００ｂの構成図である。奇数フレームエンコーダ１００ｂは、動画像の奇数フレームを受け取り、偶数フレームエンコーダ１００ａが生成した偶数フレームの参照画像を利用して、Ｂフレームについてフレーム間符号化し、生成された符号化データを出力する。
【００４０】
奇数フレームエンコーダ１００ｂは、Ｂフレームのフレーム間符号化の際、偶数フレームエンコーダ１００ａから供給される偶数フレームを参照画像として利用するが、自身が符号化対象とする奇数フレームは参照画像として利用しない。そのため、奇数フレームエンコーダ１００ｂは、奇数フレームの参照画像を再構成するための逆量子化部４０ｂ、逆ＤＣＴ部５０ｂ、加算器１４ｂの構成を必要としないので、図２Ｂには図示していないことに留意する。
【００４１】
もっとも、Ｈ．２６４／ＡＶＣでは、Ｂフレームのフレーム間符号化の際に、時間の先後を問わず、任意の枚数のフレームを参照画像としてもよく、奇数フレームを参照画像とするように構成を変更してもかまわない。その場合は、図２Ａと同様に、奇数フレームエンコーダ１００ｂに、奇数フレームの参照画像を再構成するための逆量子化部４０ｂ、逆ＤＣＴ部５０ｂ、加算器１４ｂの構成をもたせる。
【００４２】
ブロック生成部１０ｂは、入力された奇数フレームをマクロブロックに分割する。画像フレームの左上から右下方向の順にマクロブロックが形成される。ブロック生成部１０ｂは生成したマクロブロックを差分器１２ｂと動き補償部６０ｂに供給する。
【００４３】
差分器１２ｂは、ブロック生成部１０ｂから供給される画像フレームはＢフレームであるから、動き補償部６０ｂから供給される予測画像との差分を計算してＤＣＴ部２０ｂに供給する。
【００４４】
フレームバッファ８０ｂには、第１ＬＳＩ１５０ａから転送され、受信処理部１２０により受信され、伸張された偶数フレームの参照画像が格納される。
【００４５】
動き補償部６０ｂは、フレームバッファ８０ｂに格納されている過去の画像フレーム（ここでは偶数フレーム）を参照画像として利用し、ブロック生成部１０ｂから入力されたＢフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部６０ｂは、生成した動きベクトルを可変長符号化部９０ｂに供給し、予測画像を差分器１２ｂに供給する。
【００４６】
差分器１２ｂは、ブロック生成部１０ｂから出力される現在の画像と、動き補償部６０ｂから出力される予測画像との差分を求め、ＤＣＴ部２０ｂに出力する。ＤＣＴ部２０ｂは、差分器１２ｂから与えられた差分画像を離散コサイン変換（ＤＣＴ）し、ＤＣＴ係数を量子化部３０ｂに与える。
【００４７】
量子化部３０ｂは、ＤＣＴ係数を量子化し、可変長符号化部９０ｂに与える。可変長符号化部９０ｂは、動き補償部６０ｂから与えられた動きベクトルとともに差分画像の量子化されたＤＣＴ係数を可変長符号化し、符号化ストリームを生成する。可変長符号化部９０ｂは、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
【００４８】
可変長符号化部９０ｂにより生成された奇数フレームの符号化データは合成部１７０に供給される。
【００４９】
図３は、図１の送信処理部１１０と受信処理部１２０の構成を説明する図である。送信処理部１１０は、データ入力部２１０、圧縮前バッファ２１２、可逆圧縮部２１４、圧縮率伝達部２１６、圧縮後バッファ２１８、および送信部２２０を含む。受信処理部１２０は、受信部２３０、伸張前バッファ２３２、打ち切り制御部２３４、可逆伸張部２３６、伸張後バッファ２３８、およびデータ出力部２４０を含む。
【００５０】
送信処理部１１０において、データ入力部２１０は、メモリ１３０から偶数フレームの参照画像を読み出し、圧縮前バッファ２１２に格納する。可逆圧縮部２１４は、圧縮前バッファ２１２から参照画像を取得し、参照画像を可逆圧縮し、圧縮後バッファ２１８に格納する。可逆圧縮部２１４は、参照画像を可逆圧縮する際、圧縮率を圧縮率伝達部２１６に提供する。
【００５１】
送信部２２０は、圧縮後バッファ２１８に格納された圧縮後の参照データを読み出して、通信路１４０を介して受信処理部１２０に送信する。送信部２２０は、圧縮率伝達部２１６から参照データの圧縮率の情報を取得すると、当該参照データの圧縮率の情報を受信処理部１２０に通知する。
【００５２】
受信処理部１２０において、受信部２３０は、送信処理部１１０から圧縮後の参照データを受信し、伸張前バッファ２３２に格納する。受信部２３０は、当該参照データの圧縮率の情報を打ち切り制御部２３４に提供する。
【００５３】
可逆伸張部２３６は、伸張前バッファ２３２から圧縮後の参照データを読み出し、伸張し、復元された参照データを伸張後バッファ２３８に格納する。打ち切り制御部２３４は、伸張前バッファ２３２および伸張後バッファ２３８からそれぞれのバッファの残量の情報を取得する。各バッファの残量の情報は、受信部２３０から送信部２２０に通知される。
【００５４】
送信処理部１１０から受信処理部１２０への参照データの転送の際、バッファ残量の情報にもとづいて、フロー制御が行われる。受信バッファが満たされると送信部２２０から受信部２３０へのデータ転送は中断され、さらに送信バッファが満たされるとデータ入力部２１０への参照画像の入力処理が中断される。
【００５５】
データ出力部２４０は、伸張後バッファ２３８に格納された参照データを読み出し、奇数フレームエンコーダ１００ｂに供給する。
【００５６】
打ち切り制御部２３４は、受信部２３０から通知される参照データの圧縮率、伸張前バッファ２３２および打ち切り制御部２３４から通知されるバッファ残量（空き容量）にもとづいて、奇数フレームエンコーダ１００ｂにおけるマクロブロック処理に許容される処理時間を算出し、許容される処理時間を超える場合は、当該マクロブロック処理の打ち切りを奇数フレームエンコーダ１００ｂに要求する。マクロブロック処理の打ち切りを判断する条件については後に詳しく説明する。
【００５７】
図４および図５を参照して、本実施の形態に係る画像符号化装置２００による動画像の符号化処理の動作を説明する。
【００５８】
図４は、動画像のフレームの参照関係を説明する図である。ここでは、８枚のフレームが図示されている。
【００５９】
Ｉ０フレーム、Ｐ２フレーム、Ｐ４フレーム、Ｉ６フレームは偶数フレームであり、第１ＬＳＩ１５０ａにより符号化される。Ｉ０フレームはフレーム内符号化される。Ｐ２フレームは、２つ前のＩ０フレームを参照画像としてフレーム間符号化される。Ｐ４フレームは、２つ前のＰ２フレームを参照画像としてフレーム間符号化される。Ｉ６フレームはフレーム内符号化される。
【００６０】
Ｂ１フレーム、Ｂ３フレーム、Ｂ５フレーム、Ｂ７フレームは奇数フレームであり、第２ＬＳＩ１５０ｂにより符号化される。Ｂ１フレームは、１つ前のＩ０フレームを参照画像としてフレーム間符号化される。Ｂ３フレームは、１つ前のＰ２フレームを参照画像としてフレーム間符号化される。同様に、Ｂ５フレームは、１つ前のＰ４フレームを参照画像として、Ｂ７フレームは、１つ前のＰ６フレームを参照画像として、それぞれフレーム間符号化される。
【００６１】
図５は、画像符号化装置２００による動画像の符号化処理の手順を説明する図である。
【００６２】
偶数フレームエンコーダ１００ａは偶数フレーム＃０を符号化し、次の偶数フレーム＃２のフレーム間符号化に必要な参照画像＃０を生成し、メモリ１３０に格納する。メモリ１３０に格納された参照画像＃０は、チップ間転送により奇数フレームエンコーダ１００ｂに供給される。奇数フレームエンコーダ１００ｂは、転送された参照画像＃０を利用して、奇数フレーム＃１をフレーム間符号化する。
【００６３】
偶数フレームエンコーダ１００ａは、メモリ１３０に格納された参照画像＃０を利用して、偶数フレーム＃２をフレーム間符号化し、次の偶数フレーム＃４のフレーム間符号化に必要な参照画像＃２を生成し、メモリ１３０に格納する。メモリ１３０に格納された参照画像＃２は、チップ間転送により奇数フレームエンコーダ１００ｂに供給される。奇数フレームエンコーダ１００ｂは、転送された参照画像＃２を利用して、奇数フレーム＃３をフレーム間符号化する。
【００６４】
同様に、偶数フレームエンコーダ１００ａは、メモリ１３０に格納された参照画像＃２を利用して、偶数フレーム＃４をフレーム間符号化し、参照画像＃４を生成し、メモリ１３０に格納する。メモリ１３０に格納された参照画像＃４は、チップ間転送により奇数フレームエンコーダ１００ｂに供給される。奇数フレームエンコーダ１００ｂは、転送された参照画像＃４を利用して、奇数フレーム＃５をフレーム間符号化する。
【００６５】
このように、偶数フレームエンコーダ１００ａは、自分で生成した参照画像のみを使用して偶数フレームのフレーム間符号化を行う。一方、奇数フレームエンコーダ１００ｂは、チップ間転送された偶数フレームの参照画像を使用して奇数フレームのフレーム間符号化を行う。偶数フレームエンコーダ１００ａおよび奇数フレームエンコーダ１００ｂにより生成された偶数フレームおよび奇数フレームの符号化データは統合され、動画像の符号化ストリームが生成される。
【００６６】
奇数フレームエンコーダ１００ｂは、偶数フレームエンコーダ１００ａにより生成される参照画像のチップ間転送を受けて動き予測を行うため、マクロブロックの動き探索は、転送される参照データのリアルタイムの利用可能性に依存する。参照データの転送がマクロブロックの動き探索処理に間に合わなくなる事態を避けるため、マクロブロックの処理に時間がかかり、受信バッファが溢れるようであれば、当該マクロブロックの動き探索処理を打ち切る必要がある。
【００６７】
受信側の奇数フレームエンコーダ１００ｂにおけるマクロブロックの動き探索処理が一定時間内に完了せず、マクロブロック処理に時間を要すると、受信バッファが一杯になり、フロー制御により送信部２２０から受信部２３０へのデータ転送が中断される。現在のマクロブロックの処理が終了し、次のマクロブロックの処理に入ると、受信バッファに空きが生じ、データ転送が再開されるが、データ転送には一定の時間がかかる。その後のマクロブロックの処理時間が短かった場合、参照データの転送が間に合わず、奇数フレームエンコーダ１００ｂによる動き探索処理を待たせる可能性がある。
【００６８】
このように、マクロブロックの処理時間が一定ではなく、ブロックによって変動するため、受信バッファが途中で一杯になり、途中で参照データ転送が中断することが起こる。参照データの転送の中断と再開が頻繁に繰り返されると、参照データの到着が間に合わなくなり、マクロブロック処理に待ち時間が発生し、処理効率が低下する。そこで、送信処理部１１０と受信処理部１２０が連携し、受信処理部１２０の打ち切り制御部２３４が参照データの転送が間に合わなくなると判定した場合は、奇数フレームエンコーダ１００ｂに対して、現在のマクロブロック処理の打ち切りを要求し、動き探索処理を途中でやめさせる。動き探索を途中で打ち切った場合、動き探索範囲が狭くなり、符号量が多くなる可能性があるが、後続のマクロブロック処理を待たせることがなくなるため、処理効率の低下を回避することができる。
【００６９】
マクロブロック処理の打ち切りの判断は、定性的には、以下の基準（１）〜（３）で行われる。
【００７０】
（１）受信バッファの残量（空き容量）がある閾値を下回った場合。
【００７１】
（２）受信バッファの残量とこれから送信する数個のマクロブロック分のデータの圧縮率からなる関係式にもとづいて、データ転送の中断時間がある閾値を超えた場合。送信側はこれから転送するデータの圧縮率を事前に受信側に通知する。圧縮率が大きければ、短時間で必要なデータ転送が完了することから、実質的なデータ転送速度が高くなることを意味する。したがって、転送が中断したとしても、その後、速やかに受信バッファが回復する。このため、受信バッファが一杯になるまで打ち切り処理をしないで待つことができる。また場合によっては、受信バッファが一杯になって転送が中断された後も打ち切り処理をしないで待つことが可能となる。基準（２）では、圧縮率も加味して打ち切り処理をするかどうかを判断する。
【００７２】
（３）あらかじめ１フレーム全体分の送るべき参照データを可逆圧縮し、マクロブロック毎の圧縮率の情報から、（２）と同様の方法で受信側のマクロブロック毎にデータ転送が完了する時間を計算し、処理中のマクロブロックがその時間を越えたら打ち切りを行う。
【００７３】
以下、各基準について定量的に詳しく説明する。
【００７４】
［打ち切り判断基準（１）］
次の変数を定義する。
Ｔｃ：現在のマクロブロックの処理を完了してから、次のマクロブロックの処理に必要な参照データのバッファからの読み出しが完了するまでに要する処理時間
Ｒｂ：伸張前バッファ２３２の残量（空き容量）
Ｒａ：伸張後バッファ２３８の残量（空き容量）
Ｖｎ：チップ間のデータ転送速度
Ｖｔ：圧縮データの伸張速度
Ｃｂ：伸張前バッファ２３２に格納されている圧縮データの圧縮率
【００７５】
まず、簡単のため、伸張後バッファ２３８が一杯である、すなわちＲａ＝０であると仮定する。マクロブロックの処理に時間がかかり、受信バッファが一杯になり、チップ間のデータ転送が中断することを避けるのが目標であるから、伸張前バッファ２３２の残量、マクロブロックの処理時間、およびデータ転送速度の関係から、データ転送が中断する条件をマクロブロック処理の打ち切り条件とすればよい。
【００７６】
すなわち、伸張前バッファ２３２の残量分だけデータが転送されて溜まるのにかかる時間よりもマクロブロック処理にかかる時間Ｔｃが大きくなることが打ち切りの条件であり、これは以下の式で表される。
Ｒｂ／Ｖｎ＜Ｔｃ
したがって、Ｒｂ＜Ｔｃ＊Ｖｎとなった時点、すなわち伸張前バッファ２３２の残量Ｒｂが閾値Ｔｃ＊Ｖｎを下回った場合に、マクロブロック処理を打ち切る。
【００７７】
次に、Ｒａ＞０の場合を考える。伸張後バッファ２３８が一杯になるまでの時間をＴａとすると、
Ｔａ＝Ｒａ／（Ｖｔ／Ｃｂ）
である。時間Ｔａ後の伸張前バッファ２３２の残量Ｒｂ’ は、
Ｒｂ’＝Ｒｂ＋（Ｖｔ−Ｖｎ）＊Ｔａとなる。
【００７８】
時間Ｔａ以降に、伸張前バッファ２３２の残量分だけデータが転送されて溜まるのにかかる時間よりもマクロブロック処理にかかる時間が大きくなることが打ち切りの条件であり、これは以下の式で表される。
Ｒｂ’／Ｖｎ＜Ｔｃ−Ｔａ
これを整理すると、Ｒｂ＜Ｔｃ＊Ｖｎ−Ｒａ*Ｃｂとなる。したがって、伸張前バッファ２３２の残量Ｒｂが閾値（Ｔｃ＊Ｖｎ−Ｒａ＊Ｃｂ）を下回った場合に、マクロブロック処理を打ち切る。
【００７９】
［打ち切り判断基準（２）］
ここでは、簡単のため、Ｒａ＝０とする。Ｒａ＝０の場合を仮定した打ち切り条件でマクロブロック処理を打ち切れば、それよりも余裕のあるＲａ＞０の場合にはフェイルセーフの打ち切り制御になるので問題はない。
【００８０】
打ち切り判断基準（１）で示された伸張前バッファ２３２の残量Ｒｂに関する打ち切り条件に達しても打ち切り処理が行われなかった場合、データ転送が中断してしまう。データが圧縮されていない場合であれば、１マクロブロックの処理時間中に次の１マクロブロック分のデータを転送することができなくなるため、後続のマクロブロック処理が破綻する。しかし、データが圧縮されていれば、転送の中断が解除され、転送が再開した後に転送されるデータ量をデータ圧縮率で割った値、つまり伸張後のデータサイズが１マクロブロック分よりも大きければ、処理すべきデータが不足することはなく、後続のマクロブロック処理に問題は生じない。
【００８１】
次の変数を定義する。
Ｔｓ：１マクロブロック処理に要する最短処理時間
Ｃｓ：最短処理時間Ｔｓ内に転送されるデータの圧縮率
Ｄｍ：１マクロブロック処理で読み出されるデータ量
Ｔｗ：データ転送が中断している時間
【００８２】
まず、１マクロブロック単位で考えると、次の１マクロブロックの処理中のデータ転送が行われている時間（Ｔｓ−Ｔｃ−Ｔｗ）内に１マクロブロック分のデータの転送が完了するなら、問題は発生しない。これは次式で表される。
（Ｔｓ−Ｔｃ−Ｔｗ）＊Ｖｎ／Ｃｓ＞Ｄｍ
これを整理すると、Ｔｗ＜Ｔｓ−Ｔｃ−（Ｄｍ＊Ｃｓ／Ｖｎ）となる。したがってマクロブロック処理の打ち切り条件は、データ転送の中断時間ＴｗがＴｓ−Ｔｃ−（Ｄｍ＊Ｃｓ／Ｖｎ）に達することである。
【００８３】
なお、Ｎマクロブロック分をまとめて考えた場合は、
Ｔｓ’：Ｎマクロブロック処理に要する最短処理時間
Ｃｓ’：最短処理時間Ｔｓ’内に転送されるデータの圧縮率
と定義すると、前述の条件式は、Ｔｗ＜Ｔｓ’−Ｎ＊Ｔｃ−（Ｎ＊Ｄｍ＊Ｃｓ’／Ｖｎ）
となる。マクロブロック処理の打ち切り条件は、データ転送の中断時間ＴｗがＴｓ’−Ｎ＊Ｔｃ−（Ｎ＊Ｄｍ＊Ｃｓ’／Ｖｎ）に達することである。
【００８４】
［打ち切り判断基準（３）］
ここでは、簡単のため受信バッファには伸張前、伸張後を合わせて１マクロブロック分のデータのみを格納可能とする。
【００８５】
次の変数を定義する。
ＣＮ：最後からＮ番目のマクロブロックの圧縮率
ＴＮ：最後からＮ番目のマクロブロックの処理の打ち切り時刻
Ｔｆ：最後のマクロブロックの処理を開始しなければならない時刻
【００８６】
最後のマクロブロックの処理は時刻Ｔｆに開始しなければならず、それまでに最後のマクロブロックのデータの転送が完了しなければならない。最後のマクロブロックの転送にはＤｍ／（Ｖｎ／Ｃ１）だけ時間を要するので、最後のマクロブロック用データの転送開始時刻はＴｆ−Ｄｍ／（Ｖｎ／Ｃ１）となる。バッファには１マクロブロック分しか格納できないので、その前、すなわち最後から１番目のマクロブロックは、Ｔｆ−Ｄｍ／（Ｖｎ／Ｃ１）から切り替えオーバヘッドの時間Ｔｃをさらに引いた時刻Ｔ１＝Ｔｆ−Ｃ１＊Ｄｍ／Ｖｎ−Ｔｃで打ち切る必要がある。同様に最後から２番目のマクロブロックの転送にはＤｍ／（Ｖｎ／Ｃ２）だけ時間を要するので、最後から２番目のマクロブロックの打ち切り時刻Ｔ２は、Ｔ２＝Ｔ１−Ｃ２＊Ｄｍ／Ｖｎ−Ｔｃ＝Ｔｆ−（Ｃ１＋Ｃ２）＊Ｄｍ／Ｖｎ−２＊Ｔｃとなる。これを繰り返すと最後からＮ番目のマクロブロックの打ち切り時刻ＴＮは、ＴＮ＝Ｔｆ−（Ｃ１＋Ｃ２＋．．．ＣＮ）＊Ｄｍ／Ｖｎ−Ｎ＊Ｔｃで表すことができる。
【００８７】
本実施の形態の画像符号化装置２００によれば、第１ＬＳＩ１５０ａと第２ＬＳＩ１５０ｂの２つのＬＳＩチップを同時に用いて動画像を圧縮符号化することができるので、２倍の処理速度で符号化が可能である。一つのチップ内に２つのエンコーダを搭載すると回路規模が大きくなり製造コストがかかるが、本実施の形態では、２つのＬＳＩチップに分けてそれぞれにエンコーダを搭載し、２つのＬＳＩチップを通信路で接続して必要な参照画像のデータの転送を行うことにしたため、回路規模が大きくならず、製造コストを抑えることができる。
【００８８】
画像符号化装置２００の２つのＬＳＩはフレーム単位で役割分担を行う。第１ＬＳＩ１５０ａは、偶数フレームのみを用いてフレーム内符号化とフレーム間符号化を行い、ＩフレームとＰフレームの符号化データを生成する。一方、第２ＬＳＩ１５０ｂは、通信路１４０を経由して第１ＬＳＩ１５０ａにより生成された偶数フレームの参照画像の転送を受けて、奇数フレームをフレーム間符号化してＢフレームの符号化データを生成する。通信路１４０を経由して参照データを転送する際、可逆圧縮伸張を行うことで転送データ量を削減することができる。
【００８９】
また、第２ＬＳＩ１５０ｂでは、参照画像データの転送を受けて蓄積する受信バッファが一杯になってデータ転送が滞るのを防ぐため、受信バッファの空き容量、今後送られてくる参照データの圧縮率等の情報をもとに、Ｂフレームのマクロブロック処理に許容される処理時間を算出する。マクロブロックの処理が許容時間を超える場合には、そのマクロブロックについて動き探索の処理を打ち切り、次のマクロブロックの処理に移る。これにより、受信バッファが一杯になることでデータ転送が中断し、マクロブロック処理に必要な参照データの転送に遅れが生じる事態を未然に防ぐことができる。
【００９０】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９１】
上記の実施の形態では、画像符号化装置２００において、第１ＬＳＩ１５０ａと第２ＬＳＩ１５０ｂが連携して動作し、それぞれが生成する符号化データを統合して符号化ストリームを生成する場合を説明した。別の実施例として、第１ＬＳＩ１５０ａだけが動作し、第２ＬＳＩ１５０ｂは動作せず、第１ＬＳＩ１５０ａが生成する偶数フレームの符号化データをそのまま動画像の符号化ストリームとしてもよい。たとえば、フィールド周波数６０Ｈｚのインターレース映像の符号化ストリームを生成する場合は、第１ＬＳＩ１５０ａだけを動作させ、フレーム周波数６０Ｈｚのプログレッシブ映像の符号化ストリームを生成する場合は、第１ＬＳＩ１５０ａと第２ＬＳＩ１５０ｂの両方を動作させるといった切り替えも可能である。
【００９２】
また、画像サイズが小さい場合や動きが大きくない動画像の場合は、片方のチップだけを使用して符号化し、画像サイズが大きい場合や動きが大きい場合など画質が要求されるときは、２つのチップを組み合わせて符号化するなど、必要に応じて使用するチップを切り替えて柔軟に運用することも可能である。
【００９３】
上記では、本発明の実施の形態を画像符号化装置を例に説明したが、画像復号装置においても、画像符号化装置と同様の参照画像の転送処理の構成を用いて、画像符号化装置により符号化された符号化ストリームを復号して動画像を生成することができる。すなわち、図１において動画像と符号化ストリームを入れ替え、偶数フレームエンコーダを偶数フレームデコーダに、奇数フレームエンコーダを奇数フレームデコーダにそれぞれ置き換えることにより、画像復号装置の構成とすることができる。画像復号装置では、参照画像を二つのデコーダ間で転送しながら、偶数フレームデコーダが偶数フレームを復号し、奇数フレームデコーダが奇数フレームを復号し、復号された偶数フレームと奇数フレームを合成して動画像を再生することができる。
【符号の説明】
【００９４】
１００ａ  偶数フレームエンコーダ、  １００ｂ  奇数フレームエンコーダ、  １１０  送信処理部、  １２０  受信処理部、  １３０  メモリ、  １４０  通信路、  １５０ａ  第１ＬＳＩ、  １５０ｂ  第２ＬＳＩ、  １６０  分離部、  １７０  合成部、  ２００  画像符号化装置、  ２１０  データ入力部、  ２１２  圧縮前バッファ、  ２１４  可逆圧縮部、  ２１６  圧縮率伝達部、  ２１８  圧縮後バッファ、  ２２０  送信部、  ２３０  受信部、  ２３２  伸張前バッファ、  ２３４  打ち切り制御部、  ２３６  可逆伸張部、  ２３８  伸張後バッファ、  ２４０  データ出力部。
【図１】
2011211498.tif 000003
【図２Ａ】
2011211498.tif 000004
【図２Ｂ】
2011211498.tif 000005
【図３】
2011211498.tif 000006
【図４】
2011211498.tif 000007
【図５】
2011211498.tif 000008