(57)【要約】【課題】  演算量が少なく且つ一定の画質を維持できるトランスコーダ及びトランスコーディング方法を提供する。【解決手段】  第１の画像符号を復号して画像の各符号化ブロックの周波数成分を得る復号手段１２２と、各符号化ブロックを再符号化したときに各符号化ブロック当たりの符号量が減少するように、各符号化ブロックの周波数成分の全て又は一部の振幅を減少し又はゼロにする振幅変更手段１２３と、周波数成分の全て又は一部の振幅が減少し又はゼロになった各ブロックの周波数成分を再符号化して第２の画像符号を得る再符号手段１２５と、を備え、振幅変更手段１２３は、各符号化ブロックの周波数成分をスキャンしたときに非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが１段階又は数段階短くなるように該非ゼロの周波数成分の振幅を減少させ又はゼロにする。【選択図】        図６
2006060836.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像符号を復号して画像の各符号化ブロックの周波数成分を得る復号手段と、
各符号化ブロックを再符号化したときに各符号化ブロック当たりの符号量が減少するように、各符号化ブロックの周波数成分の全て又は一部の振幅を減少し又はゼロにする振幅変更手段と、
周波数成分の全て又は一部の振幅が減少し又はゼロになった各ブロックの周波数成分を再符号化して第２の画像符号を得る再符号手段と、
を備える画像符号のトランスコーダにおいて、
前記振幅変更手段は、
各符号化ブロックの周波数成分をスキャンしたときに非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが１段階又は数段階短くなるように該非ゼロの周波数成分の振幅を減少させ又はゼロにすることを特徴とする画像符号のトランスコーダ。
【請求項２】
請求項１に記載の画像符号のトランスコーダにおいて、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅のそのように減少される前の振幅と比べた削減率が所定の割合以下であるものに限ることを特徴とする画像符号のトランスコーダ。
【請求項３】
請求項１に記載の画像符号のトランスコーダにおいて、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅をそのように減少される前の振幅から差し引いた差が所定の値以下であるものに限ることを特徴とする画像符号のトランスコーダ。
【請求項４】
請求項１に記載の画像符号のトランスコーダにおいて、前記振幅変更手段により振幅がゼロになった周波数成分のうちの１つ以上の周波数成分の振幅を非ゼロにする手段を更に備えることを特徴とする画像符号のトランスコーダ。
【請求項５】
請求項１乃至４のいずれか１項に記載の画像符号のトランスコーダにおいて、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する計測手段と、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする周波数成分の数を変化させる制御手段と、
を更に備えることを特徴とする画像符号のトランスコーダ。
【請求項６】
請求項１乃至４のいずれか１項に記載の画像符号のトランスコーダにおいて、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する手段と、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする程度を変化させる制御手段と、
を更に備えることを特徴とする画像符号のトランスコーダ。
【請求項７】
第１の画像符号を復号して画像の各符号化ブロックの周波数成分を得る復号ステップと、
各符号化ブロックを再符号化したときに各符号化ブロック当たりの符号量が減少するように、各符号化ブロックの周波数成分の全て又は一部の振幅を減少し又はゼロにする振幅変更ステップと、
周波数成分の全て又は一部の振幅が減少し又はゼロになった各ブロックの周波数成分を再符号化して第２の画像符号を得る再符号ステップと、
を有する画像符号のトランスコーディング方法において、
前記振幅変更ステップでは、
各符号化ブロックの周波数成分をスキャンしたときに非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが１段階又は数段階短くなるように該非ゼロの周波数成分の振幅を減少させ又はゼロにすることを特徴とする画像符号のトランスコーディング方法。
【請求項８】
請求項７に記載の画像符号のトランスコーディング方法において、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅のそのように減少される前の振幅と比べた削減率が所定の割合以下であるものに限ることを特徴とする画像符号のトランスコーディング方法。
【請求項９】
請求項７に記載の画像符号のトランスコーディング方法において、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅をそのように減少される前の振幅から差し引いた差が所定の値以下であるものに限ることを特徴とする画像符号のトランスコーディング方法。
【請求項１０】
請求項７に記載の画像符号のトランスコーディング方法において、前記振幅変更ステップで振幅がゼロになった周波数成分のうちの１つ以上の周波数成分の振幅を非ゼロにするステップを更に有することを特徴とする画像符号のトランスコーディング方法。
【請求項１１】
請求項７乃至１０のいずれか１項に記載の画像符号のトランスコーディング方法において、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する計測ステップと、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする周波数成分の数を変化させる制御ステップと、
を更に有することを特徴とする画像符号のトランスコーディング方法。
【請求項１２】
請求項７乃至１０のいずれか１項に記載の画像符号のトランスコーディング方法において、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測するステップと、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする程度を変化させる制御ステップと、
を更に有することを特徴とする画像符号のトランスコーディング方法。
【請求項１３】
第１の画像符号を復号して画像の各符号化ブロックの周波数成分を得る復号ステップと、
各符号化ブロックを再符号化したときに各符号化ブロック当たりの符号量が減少するように、各符号化ブロックの周波数成分の全て又は一部の振幅を減少し又はゼロにする振幅変更ステップと、
周波数成分の全て又は一部の振幅が減少し又はゼロになった各ブロックの周波数成分を再符号化して第２の画像符号を得る再符号ステップと、
を有する画像符号のトランスコーディング方法であって、
前記振幅変更ステップでは、
各符号化ブロックの周波数成分をスキャンしたときに非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが１段階又は数段階短くなるように該非ゼロの周波数成分の振幅を減少させ又はゼロにすることを特徴とする画像符号のトランスコーディング方法をコンピュータに実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムにおいて、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅のそのように減少される前の振幅と比べた削減率が所定の割合以下であるものに限ることを特徴とするプログラム。
【請求項１５】
請求項１３に記載の画像符号のプログラムにおいて、
振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅をそのように減少される前の振幅から差し引いた差が所定の値以下であるものに限ることを特徴とするプログラム。
【請求項１６】
請求項１３に記載のプログラムにおいて、前記画像符号のトランスコーディング方法は、前記振幅変更ステップで振幅がゼロになった周波数成分のうちの１つ以上の周波数成分の振幅を非ゼロにするステップを更に有することを特徴とするプログラム。
【請求項１７】
請求項１３乃至１６のいずれか１項に記載のプログラムにおいて、
前記画像符号のトランスコーディング方法は、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する計測ステップと、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする周波数成分の数を変化させる制御ステップと、
を更に有することを特徴とするプログラム。
【請求項１８】
請求項１３乃至１６のいずれか１項に記載のプログラムにおいて、
前記画像符号のトランスコーディング方法は、
前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測するステップと、
計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする程度を変化させる制御ステップと、
を更に有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原画像を符号化して得られた原画像符号を、その原画像符号よりも符号総量が少なく、符号量相応の品質の画像を表す削減画像符号に変換するための画像符号のトランスコーダに関する。
【背景技術】
【０００２】
近年、ＭＰＥＧ(Motion Picture Experts Group)方式は、動画像及び音声を蓄積又は伝送する方式として普及してきており、例えば、ＣＤ−Ｒ(Compact Disc-Recordable)、ＤＶＤ(Digital Versatile Disc)、ハードディスク等のデジタル蓄積メディア(Digital Storage Medium)の記録フォーマットとして使用され、また、デジタルテレビ放送のデータ符号化方式としても使用されている。また、ＭＰＥＧ方式は動画像及び音声のストリーミングのデータ符号化方式としても使用されている。
【０００３】
ＭＰＥＧ信号より成るストリーミングデータによりストリーミングを行うストリーミングクライアントとしては、１０Ｍｂｐｓの伝送ビットレートの光通信によりストリーミングデータを受信するパーソナルコンピュータの外に、数Ｍｂｐｓの伝送ビットレートのＡＤＳＬ(Asymmetric Digital Subscriber Line)によりストリーミングデータを受信するパーソナルコンピュータ及び３８４ｋｂｐｓ〜２Ｍｂｐｓの伝送ビットレートのデータ通信チャネルによりストリーミングデータを受信するＷ−ＣＤＭＡ(Wideband-Code Division Multiple Access)方式の携帯端末等が想定される。一方、ストリーミングサーバには、コンテンツ制作者が制作したＭＰＥＧデータが蓄積されているが、このＭＰＥＧデータは、高画質なオリジナルＭＰＥＧデータである。ＮＴＳＣ方式、ＰＡＬ／ＳＥＣＡＭ方式等のコンベンショナルテレビ方式の信号を基にしたオリジナルＭＰＥＧデータをそのまま伝送するならば、６Ｍｂｐｓ程度のビットレートを必要とする。
【０００４】
従って、種々のストリーミングクライアントにストリーミングデータを送信するためには、トランスコーダにより、オリジナルＭＰＥＧデータをそれよりも必要とする伝送ビットレートが低い２次的なＭＰＥＧデータに変換する必要がある。
【０００５】
従来、トランスコーダによって符号量を削減する方法として、（１）ＭＰＥＧデコーダによりビデオ信号を復号してから、復号されたビデオ信号をＭＰＥＧエンコーダにより符号化する方法、（２）量子化スケールを調整することにより、符号量を削減する方法、（３）Ｐピクチャを間引くことにより、符号量を削減する方法、（４）ＩピクチャをＰピクチャに変換することにより、符号量を削減する方法及び（５）ダウンスケーリングを行うことにより符号量を削減する方法が提案されている。
【０００６】
ＭＰＥＧデコーダによりビデオ信号を復号してから、復号されたビデオ信号をＭＰＥＧエンコーダにより符号化する方法について説明する。
【０００７】
この方法は、最も原始的な方法であり、図２２に示すＭＰＥＧデコーダによりビデオ信号を復号してから、図２３に示すＭＰＥＧエンコーダによりビデオ信号を符号化する。
【０００８】
図２２を参照すると、ＭＰＥＧデコーダは、バッファ７０１、可変長復号器７０２、逆量子化器７０３、逆離散コサイン変換器(ＩＤＣＴ)７０４、加算器７０５、過去画像メモリ７０６、未来画像メモリ７０７、動き補償予測器７０８及びスイッチ７０９を備える。このＭＰＥＧデコーダは、ビデオストリーム７５１を入力し、ビデオ信号７５２を出力する。また、逆量子化器の逆量子化特性は量子化スケール７５３により定められる。量子化特性については後述する。また、ＭＰＥＧデコーダの各部の動作は公知であるので、その説明は省略する。
【０００９】
図２３を参照すると、ＭＰＥＧエンコーダは、スイッチ８０１、離散コサイン変換器（ＤＣＴ）８０２、量子化器８０３、逆量子化器８０４、逆離散コサイン変換器（ＩＤＣＴ）８０４、加算器８０６、過去画像メモリ８０７、未来画像メモリ８０８、動き検出部８０９、動き補償予測器８１０、スイッチ８１１、可変長符号器８１３、バッファ８１４及び制御部８１５を備える。このＭＰＥＧエンコーダはＭＰＥＧデコーダが出力するビデオ信号７５２をビデオ信号８５１として入力し、ビデオストリーム８５２を出力する。量子化器８０３及び逆量子化器の量子化特性は量子化スケール８５３により定められる。ＭＰＥＧエンコーダの各部の動作は公知であるので、その説明は省略する。
【００１０】
このＭＰＥＧデコーダとＭＰＥＧエンコーダを直列接続したトランスコーダにおいて、バッファ８１４からビデオストリームを読み出すビットレートをビデオストリーム７５１のビットレートとは異ならせることにより、トランスコーディングが可能となる。この場合、バッファ８１４からビデオストリームを読み出すビットレートに応じて量子化スケール８５３が変化する。また、ＭＰＥＧエンコーダが決定するＧＯＰ(Group Of Pictures)の構成を変化させることによっても、トランスコーディングが可能となる。
【００１１】
量子化スケールを調整することにより、符号量を削減する方法について説明する。
【００１２】
この方法を実現するためには、例えば、図２４に示すようなトランスコーダを用いる。このトランスコーダは、バッファ９０１、可変長符号器９０２、逆量子化器９０３、量子化器９０４、マルチプレクサ９０５、可変長符号器９０６、バッファ９０７及び制御部９０８を備える。バッファ９０１、可変長復号器９０２及び逆量子化器９０３は、公知のＭＰＥＧデコーダのものと同一であるので、その説明は省略する。量子化器９０４は、逆量子化器９０３が出力するＤＣＴ係数を制御部９０８が出力するトランスコーディド量子化スケール９５４に従って、再量子化する。マルチプレクサ９０５は、量子化器９０４が出力する再量子化されたＤＣＴ係数のレベルを示す数値及びＤＣＴ係数以外のデータをマルチプレクスする。可変長符号器９０６は、マルチプレクサ９０５が出力するデータを可変長符号化する。この可変長符号化には、ＤＣＴ係数の２次元ハフマン符号化が含まれる。バッファ９０７は、可変長符号器９０６が出力する可変長符号の発生頻度のゆらぎを吸収して一定のビットレートでトランスコーディドビデオストリーム９５２を出力する。制御部９０８は、バッファ９０７の占有率及び所定の規則等に従ってトランスコーディド量子化スケール９５４の値を定める。バッファ９０７からトランスコーディドビデオストリーム９５２を読み出すビットレートを原ビデオストリーム９５１のビットストリームと異ならせることにより、トランスコーディド量子化スケール９５４の値を調整することができる。また、このように調整されたトランスコーディド量子化スケール９５４は原量子化スケールとは、一般に異なる。従って、原量子化スケール９５３をトランスコーディド量子化スケール９５４に変換したことになる。
【００１３】
トランスコーディドビデオストリーム９５２を復号するＭＰＥＧデコーダは、図２２に示すＭＰＥＧデコーダと同一であり、このＭＰＥＧデコーダは、トランスコーディド量子化スケール９５４を量子化スケール７５３として用いる。
【００１４】
図２２に示すトランスコーダの量子化器９０４では、マクロブロックがイントラマクロブロックであるか非イントラマクロブロックであるかにかかわらず、各マクロブロック内の各ＤＣＴブロックの８×８個の画素をＤＣＴ変換して得られた８×８個のＤＣＴ係数を量子化する。この量子化の結果得られるのは、量子化後のＤＣＴ係数の振幅を示す数値である。そして、図２２に示すＭＰＥＧデコーダでは、マクロブロックがイントラマクロブロックであるか非イントラマクロブロックであるかにかかわらず、量子化後のＤＣＴ係数の振幅を示す数値より量子化後のＤＣＴ係数を復元し、復元された８×８個のＤＣＴ係数を逆ＤＣＴ変換して８×８個の画素を復元する。
【００１５】
イントラマクロブロック内のＤＣＴブロックのＤＣＴ係数のうちのＡＣ係数Ｆ（ｍ、ｎ）（ｍ、ｎは０以上且つｍ＋ｎ≠０を満たす整数）は、振幅がゼロの付近のデッドゾーンを有しない量子化器により量子化される。この量子化器のステップサイズＳ１は、ＡＣ係数の成分により異なるので、Ｓ１（ｍ、ｎ）と表すことができるが、ステップサイズＳ１（ｍ、ｎ）は、
Ｓ１（ｍ、ｎ）＝２×イントラ量子化マトリックス（ｍ、ｎ）×量子化スケール／３２
と表される。
【００１６】
この量子化器に対応する逆量子化器により得られる量子化後のＤＣＴ係数の振幅Ｆ１（ｍ、ｎ）は、量子化器が出力する量子化後のＤＣＴ係数の振幅Ｆ１（ｍ、ｎ）を示す数値をＱＦ１（ｍ、ｎ）とすれば、
Ｆ１（ｍ、ｎ）
＝２×ＱＦ１（ｍ、ｎ）×イントラ量子化マトリックス（ｍ、ｎ）×量子化スケール／３２
となる。
【００１７】
非イントラマクロブロック内のＤＣＴブロックのＤＣＴ係数Ｆ（ｍ、ｎ）（ｍ、ｎは０以上の整数）は、振幅がゼロの付近のデッドゾーンを有する量子化器により量子化される。この量子化器のステップサイズＳ２は、ＤＣＴ係数の成分により異なるので、Ｓ２（ｍ、ｎ）と表すことができるが、ステップサイズＳ２（ｍ、ｍ）は、
Ｓ２（ｍ、ｎ）＝２×量子化スケール×非イントラ量子化マトリックス（ｍ、ｎ）／３２
と表される。
【００１８】
この量子化器に対応する逆量子化器により得られる量子化後のＤＣＴ係数の振幅Ｆ２（ｍ、ｎ）は、量子化器が出力する量子化後のＤＣＴ係数の振幅Ｆ２（ｍ、ｎ）を示す数値をＱＦ２（ｍ、ｎ）とすれば、
Ｆ２（ｍ、ｎ）
＝（２×ＱＦ２（ｍ、ｎ）＋ｋ）×非イントラ量子化マトリックス（ｍ、ｎ）×量子化スケール／３２
ただし、
ｋ＝ｓｉｇｎ（ＱＦ２（ｍ、ｎ））
となる。
【００１９】
ここで、上２式の量子化スケールは、q＿scale＿typeの値が０であるときには、
量子化スケール＝２×量子化スケールコード
と表され、q＿scale＿typeの値が１であるときには、
量子化スケール＝ｆｕｎｃｔｉｏｎ（量子化スケールコード）
と表される。ここで、ｆｕｎｃｔｉｏｎは非線形特性を示す。図２５に量子化スケールコード対量子化スケールの特性の例を示す。
【００２０】
q＿scale＿typeはピクチャ毎に定めることができ、量子化スケールコードはマクロブロック毎に定めることができる。従って、ピクチャ毎にq＿scale＿typeの値を調整し、且つ、マクロブロック毎に量子化スケールコードの値をこれが大きくなるように調整することにより、マクロブロック毎の量子化スケールを大きくすることができる。そして、量子化スケールを大きくすることにより、量子化されたＤＣＴブロックのＤＣＴ係数を表す数値の値を小さくして、符号量を削減することができる。
【００２１】
Ｐピクチャを間引くことにより、符号量を削減する方法について説明する。
【００２２】
図２６に示すように、ピクチャを間引くことにより間引いたピクチャの分だけ符号量を削減することができる。図２６（ａ）に示すような構造を有するＧＯＰ(Group Of Pictures)が与えられたとする。僅かに符号量を削減する場合には、図２６（ｂ）に示すように、Ｂ２ピクチャ、Ｂ５ピクチャ及びＢ８ピクチャを間引く。この場合には、復号器では、例えば、Ｂ２ピクチャをＩ１ピクチャで補間し、Ｂ５ピクチャをＰ４ピクチャで補間し、Ｂ８ピクチャをＰ７ピクチャで補間すればよいので、トランスコーダは、間引かれていないピクチャを再符号化する必要はない。更に、符号量を削減する場合には、図２６（ｃ）に示すように、Ｂ２ピクチャ、Ｂ３ピクチャ、Ｂ５ピクチャ、Ｂ６ピクチャ、Ｂ８ピクチャ及びＢ９ピクチャを間引く。この場合には、復号器では、例えば、Ｂ２ピクチャ及びＢ３ピクチャをＩ１ピクチャで補間し、Ｂ５ピクチャ及びＢ６ピクチャをＰ４ピクチャで補間し、Ｂ８ピクチャ及びＢ９ピクチャをＰ７ピクチャで補間すればよいので、トランスコーダは、間引かれていないピクチャを再符号化する必要はない。更に、符号量を削減する場合には、図２６（ｄ）に示すように、Ｂ２ピクチャ、Ｂ３ピクチャ、Ｂ５ピクチャ、Ｂ６ピクチャ、Ｂ８ピクチャ及びＢ９ピクチャに加えてＰ４ピクチャを間引く。この場合には、復号器では、例えば、Ｂ２ピクチャ、Ｂ３ピクチャ、Ｐ４ピクチャ及びＢ５ピクチャをＩ１ピクチャで補間し、Ｂ６ピクチャ、Ｂ８ピクチャ及びＢ９ピクチャをＰ７ピクチャで補完する。しかし、Ｐ７ピクチャは、Ｐ４ピクチャから元々動き補償予測されているので、復号器では、Ｐ４ピクチャが間引かれていると、Ｐ７ピクチャを復号することができない。そこで、トランスコーダは、Ｐ７ピクチャをＩ１ピクチャから動き補償予測して、予測誤差を符号化しなければならない。
【００２３】
ＩフレームをＰフレームに変換することにより、符号量を削減する方法について説明する。
【００２４】
ＧＯＰは、Ｉピクチャ、Ｐピクチャ、Ｂピクチャより構成されるが、１ピクチャあたりの符号量は、Ｉピクチャが最も多く、Ｐピクチャ、Ｂピクチャと続く。そこで、図２７に示すように、ＧＯＰ２のＩ１０ピクチャをＰ１０ピクチャに変換することにより、符号量を削減する。このためには、トランスコーダは、Ｐ１０ピクチャをＰ７ピクチャから動き補償予測して、予測誤差を符号化しなければならない。
【００２５】
Ｂピクチャ及びＰピクチャを間引くことにより、符号量を削減する方法とＩフレームをＰフレームに変換することにより、符号量を削減する方法を組み合わせた場合の例を図２８に示すが、この例では、Ｂ２ピクチャ、Ｂ３ピクチャ、Ｐ４ピクチャ、Ｂ５ピクチャ、Ｂ６ピクチャ、Ｐ７ピクチャ、Ｂ８ピクチャ、Ｂ９ピクチャ、Ｂ１１ピクチャ、Ｂ１２ピクチャ、Ｐ１３ピクチャ、Ｂ１４ピクチャ、Ｂ１５ピクチャ、Ｐ１６ピクチャ、Ｂ１７ピクチャ、Ｂ１８ピクチャが間引かれ、Ｉ１０ピクチャがＰ１０ピクチャに変換される。この場合には、Ｐ１０ピクチャは、これに最も近い過去のピクチャであるＩ１ピクチャから動き補償予測されることになる。
【００２６】
ダウンスケーリングを行うことにより符号量を削減する方法について説明する。
【００２７】
画像に含まれる画素数を削減することをダウンスケーリングという。例えば、６４０（水平方向）×４８０（垂直方向）のフレームを３２０（水平方向）×２４０（垂直方向）のフレームに縮小することにより画像に含まれる画素数を削減する。この場合、ダウンスケーリング前のＤＣＴブロックを２（水平方向）×２（垂直方向）個集めたものがダウンスケーリング後の１つのＤＣＴブロックとなる。最も単純なダウンスケーリングは、画像符号を復号して復号画像を得て、復号画像を再符号化するものである。再符号化する際に、画像符号を復号したときに得られた動きベクトルを再利用できる場合もある。
【発明の開示】
【発明が解決しようとする課題】
【００２８】
ところで、ストリーミングは、同時に多数のストリーミングクライアントが行う。従って、ストリーミングサーバは、同時に多数のストリーミングクライアントにストリーミングデータを送信する必要がある。そして、ストリーミングクライアントは上記のように多種あり、それに応じてストリーミングデータのビットレートも多種ある。従って、ストリーミングサーバは、多種のビットレートのストリーミングデータを同時に生成するために、多数のトランスコーディングを同時に行わなければならない。
【００２９】
原始的なトランスコーディングの方法を利用した場合には、全てのデコード処理及び全てのエンコード処理が必要であるので、大量の処理を必要とする。
【００３０】
また、例えば、Ｐピクチャの間引きを行うトランスコーディング、ＩピクチャのＰピクチャへの変換を行うトランスコーディング、ダウンスケーリングを行うトランスコーディングは、動き補償予測を行うために動き予測ベクトルをマクロブロック毎に必要とする。そして、トランスコーディング前の動き予測ベクトルをトランスコーディング後のマクロブロックに再利用できる場合もあるが、できない場合もある。トランスコーディング前の動き予測ベクトルをトランスコーディング後のマクロブロックに再利用できない場合には、動き予測ベクトルの生成は大量の演算を必要とするので、このようなトランスコーディングは演算量が非常に多い。従って、１つのストリーミングサーバでＣＰＵを用いて多数のこれらの種類のトランスコーディングをすることは、現在のＣＰＵ能力を考えると殆ど不可能である。量子化スケールの調整を行うトランスコーディングは、Ｐピクチャの間引きを行うトランスコーディング、ＩピクチャのＰピクチャへの変換を行うトランスコーディング、ダウンスケーリングを行うトランスコーディングに比べて、必要とする演算量が少ないが、このトランスコーディングを用いた場合であっても、１つのストリーミングサーバでＣＰＵを用いて多数のこの種類のトランスコーディングをすることは、現在のＣＰＵ能力を考えると非常に困難である。特に、将来は、同時にストリーミングを行うストリーミングクライアントの数が増大することが予測されるので、この問題が深刻となることが予測される。
【００３１】
また、量子化スケールを調整することにより、符号量を削減するトランスコーディングでは、同一のマクロブロック内の全てのＤＣＴブロックの全てのＤＣＴ係数が一律に粗く量子化されることとなるので、画質が劣化する。Ｐピクチャを間引くことにより、符号量を削減するトランスコーディングでは、フレームレートが落ちるので、動きがぎくしゃくして、画質が劣化する。ＩピクチャをＰピクチャに変換することにより、符号量を削減するトランスコーディングでは、エラー耐性が弱くなるので、僅かなエラーが発生しただけでも、画質が劣化する。ダウンスケーリングを行うことにより符号量を削減するトランスコーディングでは、画面が小さくなるので、解像度が落ちて、画質が劣化する。
【００３２】
本発明は、上記の問題点に鑑みてなされたものであり、演算量が少なく且つ一定の画質を維持できるトランスコーダ及びトランスコーディング方法を提供することを目的とする。
【課題を解決するための手段】
【００３３】
本発明によれば、第１の画像符号を復号して画像の各符号化ブロックの周波数成分を得る復号手段と、各符号化ブロックを再符号化したときに各符号化ブロック当たりの符号量が減少するように、各符号化ブロックの周波数成分の全て又は一部の振幅を減少し又はゼロにする振幅変更手段と、周波数成分の全て又は一部の振幅が減少し又はゼロになった各ブロックの周波数成分を再符号化して第２の画像符号を得る再符号手段と、を備える画像符号のトランスコーダにおいて、前記振幅変更手段は、各符号化ブロックの周波数成分をスキャンしたときに非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが１段階又は数段階短くなるように該非ゼロの周波数成分の振幅を減少させ又はゼロにすることを特徴とする画像符号のトランスコーダが提供される。
【００３４】
上記の画像符号のトランスコーダにおいて、振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅のそのように減少される前の振幅と比べた削減率が所定の割合以下であるものに限るようにしてもよい。
【００３５】
上記の画像符号のトランスコーダにおいて、振幅を減少させ又はゼロにする非ゼロの周波数成分を、該非ゼロの周波数成分と該非ゼロの周波数成分に先行するゼロの数に対応する可変長符号の長さが短くなるように減少された後の振幅をそのように減少される前の振幅から差し引いた差が所定の値以下であるものに限るようにしてもよい。
【００３６】
上記の画像符号のトランスコーダにおいて、前記振幅変更手段により振幅がゼロになった周波数成分のうちの１つ以上の周波数成分の振幅を非ゼロにする手段を更に備えるようにしてもよい。
【００３７】
上記の画像符号のトランスコーダにおいて、前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する計測手段と、計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする周波数成分の数を変化させる制御手段と、を更に備えるようにしてもよい。
【００３８】
上記の画像符号のトランスコーダにおいて、前記第１の画像符号の量から前記第２の画像符号の量への削減率を計測する手段と、計測された前記削減率が目標削減率になるように、振幅を減少し又はゼロにする程度を変化させる制御手段と、を更に備えるようにしてもよい。
【発明の効果】
【００３９】
本発明によれば、各ＤＣＴブロックのＤＣＴ係数の振幅を削減し又はゼロにすることによりトランスコーディングを行うので、トランスコーディングのための演算量を削減することができ、従って、コンピュータが同時に多数のトランスコーディングを行うことが可能となる。
【００４０】
また、本発明によれば、単に各ＤＣＴブロックのＤＣＴ係数のうちの高域成分を無くすような方法を採らずに、ＤＣＴ係数の振幅があまり変動しないようにしているので、トランスコーディングされた画像符号からビットレート相応の復号画像を得ることが可能となる。
【発明を実施するための最良の形態】
【００４１】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００４２】
図１は、本発明の実施形態によるトランスコーダの構成を示す。図２は、本発明の実施形態によるトランスコーダの入出力信号のフォーマットを示す。図１に示すトランスコーダは、図２に示すフォーマットの原プログラムストリーム１５１を入力し、これをトランスコードして、図２に示すフォーマットのトランスコーディドプログラムストリーム１６１を出力する。プログラムストリームは、ＭＰＥＧ２の規格で定められたものである。図２を参照すると明らかなように、トランスコーディドプログラムストリーム１６１は、原プログラムストリーム１５１と比較すると、スライス（スライス１〜６）が短くなっている点が相違し、他の部分は同一である。
【００４３】
図１を参照すると、本発明の実施形態によるトランスコーダは、ビデオＰＥＳ(Packetized Elementary Stream)検出部１０１、ビデオＰＥＳトランスコーダ１０２、トランスコーディドビデオＰＥＳＦＩＦＯ１０３、ＰＥＳカウンタ１０４、原プログラムストリームＦＩＦＯ１０５、Ｄタイプフリップフロップ１０６、減算器１０７、比較器１０８、ラッチ１０９、トランスコーディドビデオＰＥＳカウンタ１１０、比較器１１１、立ち上がり検出回路１１２、ＲＳフリップフロップ１１３、マルチプレクサ１１４を備える。
【００４４】
ビデオＰＥＳ検出部１０１は、主に原プログラムストリーム１５１のうちのビデオＰＥＳの検出を行う。ビデオＰＥＳ検出部１０１は、原プログラムストリーム１５１を入力し、原プログラムストリーム１５１、原プログラムストリーム１５１のうちのビデオＰＥＳを検出した部分でアクティブになるビデオＰＥＳイネーブル信号１７１、原プログラムストリーム１５１からＰＥＳスタートコード検出信号を検出した時にアクティブになるＰＥＳスタートコード検出信号及び原プログラムストリーム１５１のうちのビデオＰＥＳの末部を検出したときにアクティブとなるビデオＰＥＳ末部検出信号１７３を出力する。
【００４５】
ビデオＰＥＳトランスコーダ１０２は、ビデオＰＥＳ内の各スライスに含まれる各ＤＣＴブロック当たりの画像符号の量を削減する。この削減により、各スライスが短くなり、また、各ビデオＰＥＳが短くなる。このように短くされたビデオＰＥＳがトランスコーディドビデオＰＥＳ１５２である。ビデオＰＥＳトランスコーダ１０２は、原プログラムストリーム１５１、ビデオＰＥＳイネーブル信号１７１、ビデオＰＥＳ末部検出信号１７３及び削減率指示信号１７６を入力し、トランスコーディドビデオＰＥＳ１５２、ビデオＰＥＳ末部検出信号１７３及びトランスコーディドビデオＰＥＳイネーブル信号１７４を出力する。トランスコーディドビデオＰＥＳイネーブル信号１７４は、ビデオＰＥＳトランスコーダ１０２が有効なトランスコーディドビデオＰＥＳ１５２を出力しているときにアクティブとなる信号である。ビデオＰＥＳトランスコーダ１０２の入出力信号のタイミング図を図３に示す。ビデオＰＥＳイネーブル信号１７１は、ビデオＰＥＳ（ビデオＰＥＳ１、ビデオＰＥＳ２、ビデオＰＥＳ３）の部分でアクティブとなる。ビデオＰＥＳ末部検出信号１７３は、ビデオＰＥＳ（ビデオＰＥＳ１、ビデオＰＥＳ２、ビデオＰＥＳ３）の末部でアクティブとなる。トランスコーディドビデオＰＥＳ１５２は、原プログラムストリーム中のビデオＰＥＳと比較すると、各スライス（スライス１’、・・・スライス６’）が短くなっている点において相違する。トランスコーディドビデオＰＥＳイネーブル信号１７４は、トランスコーディドビデオＰＥＳの各スライスのうちの有効な画像符号が含まれている部分及びスライス以外の部分（ユーザデータ１、ユーザデータ２、ユーザデータ３）でアクティブとなる。ビデオＰＥＳトランスコーダ１０２の構成及び動作の詳細な説明は後にする。
【００４６】
図１に戻ると、トランスコーディドビデオＰＥＳＦＩＦＯ１０３は、トランスコーディドビデオＰＥＳイネーブル信号１７４をライトイネーブル（ＷＥＮ）として使用することにより、有効なトランスコーディドビデオＰＥＳ及びビデオＰＥＳ末部検出信号１７３のみを一時記憶し、ＲＳフリップフロップ１１３が出力するマルチプレクス制御信号（後述）に従って、これらを出力する。従って、トランスコーディドビデオＰＥＳＦＩＦＯ１０３は、ビデオＰＥＳのうちの画像符号のないスライス末部を除去する機能と、トランスコーディドビデオＰＥＳを可変遅延する機能を有する。
【００４７】
ＰＥＳカウンタ１０４は、ＰＥＳスタートコード検出信号１７２を入力し、これをカウントした値を示すＰＥＳカウント１７５を出力する。
【００４８】
原プログラムストリームＦＩＦＯ１０５は、ビデオＰＥＳイネーブル信号１７１の反転信号をライトイネーブル（ＷＥＮ）信号として入力し、この反転信号に従って、原プログラムストリーム１５１及びＰＥＳカウント１７５を一時記憶する。従って、図４に示すように、原プログラムストリームＦＩＦＯ１０５は、原プログラムストリーム１５１のうちビデオＰＥＳ以外のＰＥＳ（ユーザデータＰＥＳ１、オーディオＰＥＳ１、オーディオＰＥＳ２）及びビデオＰＥＳ以外のＰＥＳに対応したＰＥＳカウント（ｎ、ｎ＋３、ｎ＋４）を一時記憶する。原プログラムストリームＦＩＦＯ１０５は、ＲＳフリップフロップ１１３が出力するマルチプレクス制御信号（後述）に従って、一時記憶したデータを出力する。従って、原プログラムストリームＦＩＦＯ１０５は、原プログラムストリーム１５１のうちのビデオＰＥＳを除去する機能と、ビデオＰＥＳが除去された原プログラムストリーム１５１を可変遅延する機能を有する。
【００４９】
Ｄタイプフリップフロップ１０６、減算器１０７、比較器１０８、ラッチ１０９、トランスコーディドビデオＰＥＳカウンタ１１０、比較器１１１、立ち上がり検出回路１１２及びＲＳフリップフロップ１１３は、前述のマルチプレクス制御信号（マルチプレクサ１１４を制御すると共に、トランスコーディドビデオＰＥＳＦＩＦＯ１０３のリードイネーブル（ＲＥＮ）及び原プログラムストリームＦＩＦＯ１０５のリードイネーブル（ＲＥＮ）を制御する信号）を発生するために用意されている。これらのタイミング図を図５に示す。
【００５０】
まず、原プログラムストリームＦＩＦＯ１０５のＲＥＮがアクティブであるので、原プログラムストリームＦＩＦＯ１０５から値がｎであるＰＥＳカウント及びユーザデータＰＥＳ１が出力される。ユーザデータＰＥＳ１が終了すると、ＰＥＳカウントの値はｎからｎ＋３に変化し、従って、減算器１０７からは３が出力され、比較器１０８の出力はＨＩＧＨとなり、ラッチ１０９には３がラッチされ、トランスコーディドビデオＰＥＳカウンタ１１０には「１」がロードされ、ＲＳフリップフロップ１１３はリセットされる。
【００５１】
ＲＳフリップフロップ１１３がリセットされるので、原プログラムストリームＦＩＦＯ１０５からのユーザデータ１の読出は停止し、トランスコーディドビデオＰＥＳＦＩＦＯ１０３からビデオＰＥＳ１’が読み出される。また、マルチプレクサ１１４の出力は、ユーザデータＰＥＳ１からビデオＰＥＳ１’に切り替わる。ビデオＰＥＳ１’の末部では、トランスコーディドビデオＰＥＳＦＩＦＯ１０３から読み出されるビデオＰＥＳ末部検出信号がＨＩＧＨとなるので、トランスコーディドビデオＰＥＳカウンタ１１０のカウント値が１から２に増加する。続いて、トランスコーディドビデオＰＥＳＦＩＦＯ１０３からビデオＰＥＳ２’が読み出される。ビデオＰＥＳ２’の末部では、トランスコーディドビデオＰＥＳＦＩＦＯから読み出されるビデオ末部検出信号が再度ＨＩＧＨとなるので、トランスコーディドビデオＰＥＳカウンタ１１０のカウント値が２から３に増加する。
【００５２】
トランスコーディドビデオＰＥＳカウンタ１１０のカウント値が３になると、この値とラッチ１０９が保持している値３とが等しくなるので、比較器１１１の出力はアクティブ（ＨＩＧＨ）となる。立ち上がり検出回路１１２は、比較器１１１の出力の変化を検出し、ＲＳフリップフロック１１３のセット信号を発生する。従って、この時にＲＳフリップフロップ１１３はセットされるので、トランスコーディドビデオＰＥＳＦＩＦＯ１０３からのビデオＰＥＳ２’の読出は停止し、原プログラムストリームＦＩＦＯ１０５からオーディオＰＥＳ１が読み出される。また、マルチプレクサ１１４の出力は、ビデオＰＥＳ２’からオーディオＰＥＳ１に切り替わる。
【００５３】
オーディオデータＰＥＳ１が終了すると、ＰＥＳカウントの値はｎ＋３からｎ＋４に変化し、従って、減算器１０７からは１が出力されるが、比較器１０８の出力はＬＯＷのままである。従って、ラッチ１０９は３をラッチしたままであり、トランスコーディドビデオＰＥＳカウンタ１１０のカウントは「３」のままであり、ＲＳフリップフロップ１１３はセットされたままである。従って、次に原プログラムストリームＦＩＦＯ１０５からオーディオＰＥＳ２が読み出される。
【００５４】
これ以降の動作は上記と同様であるので、その説明を省略する。
【００５５】
このような動作により、マルチプレクサ１１４から図２に示すようなフォーマットのトランスコーディドプログラムストリーム１６１が出力される。なお、トランスコーディドビデオＰＥＳＦＩＦＯ１０３及び原プログラムストリームＦＩＦＯ１０５の読出クロックをこれらの書き込みクロックよりも遅くすることにより、ビットレートの低減が可能となる。
【００５６】
次に、ビデオＰＥＳトランスコーダ１０２について詳細に説明する。
【００５７】
図６は、ビデオＰＥＳトランスコーダ１０２の構成の一例を示す。図６を参照すると、ビデオＰＥＳトランスコーダ１０２は、スライス検出部１２１、可変長復号器１２２、ＤＣＴ係数変更部１２３、マルチプレクサ１２４、可変長符号器１２５、論理積ゲート１２６及び符号量制御部１２７を備える。
【００５８】
スライス検出部１２１は、原プログラムストリーム１５１及びビデオＰＥＳイネーブル信号１７１を入力し、ビデオＰＥＳからビデオスタートコード及びスライスを検出し、原プログラムストリーム１５１、ビデオＰＥＳイネーブル信号１７１、ビデオスタートコード検出信号１８０及びスライスイネーブル信号１８９を出力する。ビデオスタートコード検出信号１８０は、スライス検出部１２１が出力する原プログラムストリーム１５１のうちのビデオスタートコードがある部分でアクティブとなる信号である。ビデオスタートコードとは、ピクチャスタートコード（００Ｈ）、スライススタートコード（０１Ｈ〜ＡＦＨ）等の００Ｈ〜Ｂ８Ｈの値をとるスタートコードである。スライスイネーブル信号１８９は、スライス検出部１２１が出力する原プログラムストリーム１５１のうちのスライスの部分でアクティブとなる信号である。
【００５９】
可変長復号器１２２は、原プログラムストリーム１５１、ビデオＰＥＳイネーブル信号１７１、ビデオスタートコード検出信号１８０及びスライスイネーブル信号１８９を入力し、ビデオＰＥＳ内の可変長符号を復号し、各ＤＣＴブロックのＤＣＴ係数を含む変更前復号データ１８１を出力する。
【００６０】
ＤＣＴ係数変更部１２３は、可変長復号データ１８１のうちの各ＤＣＴブロックのＤＣＴ係数を入力し、各ＤＣＴブロックのＤＣＴ係数の全て又は一部については、振幅を減少させ又はゼロにして出力し、振幅を減少させ又はゼロにしないＤＣＴ係数については、そのまま出力する。また、ＤＣＴ係数変更部１２３は、係数変更信号１８８の値により、ＤＣＴ係数を減少させ又はゼロにする程度を変化させる。ＤＣＴ係数変更部１２３が行うＤＣＴ係数の減少化又はゼロ化の方法については、後に詳しく説明する。
【００６１】
マルチプレクサ１２４は、ＤＣＴ係数変更部１２３から各ＤＣＴブロックのＤＣＴ係数を入力し、可変長復号器１２２からＤＣＴ係数以外のデータを入力し、これらの入力したデータをマルチプレクスして、出力する。
【００６２】
可変長符号器１２５は、マルチプレクサ１２４でマルチプレクスされたデータを可変長符号化して、可変長符号をトランスコーディドビデオＰＥＳ１５２として出力する。この可変長符号化は、各ＤＣＴブロックのＤＣＴ係数の可変長符号化も含む。また、可変長符号器１２５は、出力するトランスコーディドビデオＰＥＳ１５２の各バイトが有効であるか否かを示すトランスコーディドビデオＰＥＳイネーブル信号１７４も出力する。図３に示すトランスコーディドビデオＰＥＳイネーブル信号１７４はスライスの始点から途中まで連続してアクティブであるが、これは、可変長符号器１２５がスライス内でスライスの先頭から連続して可変長符号を生成した場合のものである。ＤＣＴ係数変更部１２３で各ＤＣＴブロックのＤＣＴ係数が削減され又はゼロにされているので、スライスの途中から末部までは、可変長符号が生成されず、それに対応して、この部分でトランスコーディドビデオＰＥＳイネーブル信号１７４は非アクティブとなる。なお、可変長符号器１２５が断続的に可変長符号を生成してもよく、この場合には、トランスコーディドビデオＰＥＳイネーブル信号１７４も断続的にアクティブとなる。
【００６３】
論理積ゲート１８６は、画像符号イネーブル信号１８５の反転信号及びビデオＰＥＳイネーブル信号１７１の論理積をとり、この論理積を画像符号ディスエーブル信号１８６として出力する。
【００６４】
図７を参照すると、符号量制御部１２７は、画像符号イネーブル時間計測部２０１、画像符号ディスエーブル時間計測部２０２、削減率計測部２０３及び係数変更信号調整部２０４を備える。画像符号イネーブル時間計測部２０１は、画像符号イネーブル信号１８５を入力し、この信号がアクティブである時間の累積値Ｔ１を計測する。画像符号ディスエーブル時間計測部２０２は、画像符号ディスエーブル信号１８６を入力し、この信号がアクティブである時間の累積値Ｔ２を計測する。削減率計測部２０３は、計測削減率Ｒを、次式、
Ｒ＝Ｔ２／（Ｔ１＋Ｔ２）
により求め、これを示す計測削減率信号２１３を出力する。係数変更信号調整部２０４は、削減率指示信号１７６及び計測削減率信号２１３を入力し、計測削減率信号２１３により示される計測削減率Ｒが削減率指示信号１７６により示され目標削減率になるように、係数変更信号１８８の値を変化させる。
【００６５】
次に、ＤＣＴ係数変更部１２３の行うＤＣＴ係数を削減又はゼロ化する方法に詳細に説明する。
【００６６】
ＤＣＴ係数変更部１２３は、入力した各ＤＣＴブロックのＤＣＴ係数を、再符号化したときにＤＣＴブロック当たりの符号量が少なくなるように、変更する。変更の方法としては、例えば、以下に示す（１）〜（７）の方法を用いる。すなわち、ＤＣＴ係数変更部１２３は、（１）〜（７）のいずれかの方法を用いることにより、入力した非ゼロＤＣＴ係数の全て又は一部の振幅をより小さい振幅に減少させ、又は０にして、これにより各ＤＣＴブロックあたりの符号量を削減する。
【００６７】
（１）各ＤＣＴブロックのＤＣＴ係数に低域通過フィルタをかけて、高域のＤＣＴ係数の振幅を減らし又はゼロにする。
【００６８】
例えば、図８に示すような周波数特性を有する２次元低域通過フィルタを用意する。この２次元低域通過フィルタの周波数特性は、４つの周波数領域（領域Ａ、領域Ｂ、領域Ｃ及び領域Ｄ）に分割されている。各周波数領域のゲインは、１（領域Ａ）、３／４（領域Ｂ）、２／４（領域Ｃ）又は１／４（領域Ｄ）である。２次元低域通過フィルタは、各ＤＣＴ係数にこのゲインを乗じて、整数化のために切り捨てる。この２次元フィルタを例えば図９の左に示すＤＣＴ係数ｆ（ｉ、ｊ）に適用すると、図９の右に示すＤＣＴ係数Ｆ（ｉ、ｊ）が得られる。この２次元低域通過フィルタをかけると、非ゼロＤＣＴ係数ｆ（ｉ、ｊ）のうちのｆ（２、３）＝１はＦ（２、３）＝０に変化するが、他の非ゼロ係数ｆ（ｉ、ｊ）はゼロにはならずに振幅が減少する。
【００６９】
２次元分布するＤＣＴ係数は、図１０に示すようなジグザグスキャンにより１次元のＤＣＴ係数に並べられる。すなわち、ＤＣＴ係数は、ｆ（０、０）、ｆ（０、１）、ｆ（１、０）、ｆ（２、０）、ｆ（１、１）、ｆ（０、２）、．．、．ｆ（７、７）の順に一次元的に並べられる。そしてこれらのＤＣＴ係数は、非ゼロのＤＣＴ係数の振幅(レベル)とこのように並べられたときに非ゼロのＤＣＴ係数に先行するゼロのＤＣＴ係数の連続個数（ゼロランレングス）をペアとして符号化される。レベルとゼロランレングスの各ペアには発生頻度に応じた長さの可変長符号が割り当てられる。各ペアのレベルとゼロランレングスの組み合わせと可変長符号の長さの関係は、図１１及び図１２に示すようになる。図１１は、非イントラブロック及びintra＿vlc＿format=0のイントラブロックについてのものであり、図１２は、intra＿vlc＿format=1のイントラブロックについてのものである。ただし、図１１及び図１２はレベルとゼロランレングスの全ての組み合わせのうち一部についてのみレベルとゼロランレングスの組み合わせと可変長符号の長さの関係を示している。
【００７０】
図９に示すブロックがintra＿vlc＿format=1のイントラブロックであるとした場合、このような符号化を２次元低域通過フィルタをかける前のｆ（ｉ、ｊ）に対して行うと、図９の左側の２次元マトリックスにおいて、例えば、ＤＣＴ係数ｆ（１、１）の振幅(レベル)は１であり、対応するゼロランレングスは図１０のジグザグスキャンによりゼロをカウントすると３であり、対応する符号長は図１２の可変長符号長の表においてレベル１とゼロランレングス３における値である６となる。
【００７１】
他のＤＣＴ係数の振幅に対応するゼロランレングスと符号長も図９の左側の２次元マトリックスの下に示すように求められる。従って、ＥＯＢ（End Of Block）を除いたブロック当たりの符号長は１２３ビットとなる。
【００７２】
一方、図９に示すブロックがintra＿vlc＿format=1のイントラブロックであるとした場合、このような符号化を２次元低域通過フィルタをかけた後のＤＣＴ係数Ｆ（ｉ、ｊ）に対して行うと、図９の右側の２次元マトリックスの下に示すように符号長が求められ、ＥＯＢを除いたブロック当たりの符号長は１０９ビットとなる。
【００７３】
従って、intra＿vlc＿format=1のイントラブロックの場合には、図９に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図１０に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、２次元フィルタをかける前では１２３ビットであるが、２次元フィルタをかけた後では１０９ビットに削減される。
【００７４】
（２）各ＤＣＴブロックのＤＣＴ係数の振幅を１よりも大きい整数で除算し、その商を切り捨てて整数化し、整数化の結果をその整数で乗算する。つまり、切り捨て前の振幅をＡｍｐ１、切り捨て後の振幅をＡｍｐ２としたときに、
Ａｍｐ２＝ｉｎｔ（Ａｍｐ１／ｎ）×ｎ
ただし、ｎは１よりも大きい整数
とする。ｎの値をＤＣＴ係数の周波数毎に変えても良く、例えば、ｎの値をＤＣＴ係数の周波数が高いほど大きくしても良い。また、全てのＤＣＴ係数について上記の方法を行っても良いが、一部のＤＣＴ係数については、このような処理を行わなくても良い。
【００７５】
例えば、図１３に示すように周波数領域を４つの周波数領域（領域Ａ、領域Ｂ、領域Ｃ及び領域Ｄ）に分割する。領域ＡのＤＣＴ係数は２で割ってから、切り捨てて整数化し、それから２をかける。同様に、領域ＢのＤＣＴ係数は４で割ってから、切り捨てて整数化し、それから４をかけ、領域ＣのＤＣＴ係数は８で割ってから、切り捨てて整数化し、それから８をかけ、領域ＤのＤＣＴ係数は１６で割ってから、切り捨てて整数化し、それから１６をかける。この方法を例えば図１４の左に示すＤＣＴ係数ｆ（ｉ、ｊ）に適用すると、図１４の右に示すＤＣＴ係数Ｆ（ｉ、ｊ）が得られる。この方法を適用すると、非ゼロＤＣＴ係数ｆ（ｉ、ｊ）のうちのｆ（１、１）、ｆ（２、１）、ｆ（０、４）ｆ（２、３）及びｆ（６、４）はゼロに変化するが、他の非ゼロ係数ｆ（ｉ、ｊ）は０にはならずに振幅が減少する。intra＿vlc＿format=1のイントラブロックの場合には、図１４に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図１０に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、この方法を行う前では１２３ビットであるが、この方法を行った後では１０１ビットに削減される。
【００７６】
（３）各ＤＣＴブロックの非ゼロＤＣＴ係数の全て又は一部の振幅を、非ゼロＤＣＴ係数とジグザグスキャンしたときにその非ゼロＤＣＴ係数に先行する連続するゼロの組に対応する可変長符号の長さが１段階又は数段階短くなるように、減らし、又は０にする。
【００７７】
非ゼロＤＣＴ係数とそれに先行する連続したゼロの組に対応する２次元ハフマン符号化の長さは、非イントラブロック及びintra＿vlc＿format=0のイントラブロックについては、図１１に示すようになり、intra＿vlc＿format=1のイントラブロックについては、図１２に示すようになる。ただし、図１１及び図１２は、一部の（非ゼロ係数、それに先行する連続したゼロの数）の組についてのみ２次元ハフマン符号の長さを示している。
【００７８】
従って、図１２からわかるように、例えば、intra＿vlc＿format=1のイントラブロックの場合であれば、１つのゼロに先行され振幅が６のＤＣＴ係数の振幅を５に減少させれば、対応するハフマン符号の長さを１４ビットから９ビットに削減できる。すなわち、このようにすれば、対応するハフマン符号の長さを１段階短くすることができる。このような方法を例えば図１５の左に示すイントラブロックのＤＣＴ係数ｆ（ｉ、ｊ）に適用すると、図１５の右に示すＤＣＴ係数Ｆ（ｉ、ｊ）が得られる。図１５の例では、図１２のテーブルを参照して、ハフマン符号の長さが１段階短くなるようにＤＣＴ係数ｆ（ｉ、ｊ）の振幅をＤＣＴ係数Ｆ（ｉ、ｊ）に減少させている。intra＿vlc＿format=1のイントラブロックの場合には、図１５に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図１０に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、この方法を行う前では１２３ビットであるが、この方法を行った後では９０ビットに削減される。
【００７９】
なお、図１５の例では、ハフマン符号の長さが１段階短くなるように各非ゼロＤＣＴ係数の振幅を減少させたが、ハフマン符号の長さが数段階短くなるように各非ゼロＤＣＴ係数の振幅を減少させ又はゼロにしても良い。
【００８０】
（４）（３）において、振幅の減少割合が所定の割合を超えないようにする。すなわち、変更前の振幅をＡｍｐ３、変更後の振幅をＡｍｐ４としたときに、
（Ａｍｐ３−Ａｍｐ４）／Ａｍｐ３＜ｒ
ただし、ｒは０を超え１未満の数
とする。ｒの値は、例えば、０．９、０．８、０．７、０．６、０．５等とする。このように、振幅の減少割合が所定の割合を超えないようにすることにより、画質劣化を抑えることができる。
【００８１】
図１６は、図１５に示す例に、ｒ＝０．５の制限をかけた場合のＤＣＴ係数の振幅変化とＤＣＴブロックあたりの符号量の変化を示す。intra＿vlc＿format=1のイントラブロックの場合には、図１６に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図４に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、イントラブロックの場合には、この方法を行う前では１２３ビットであるが、この方法を行った後では１１０ビットに削減される。
【００８２】
（５）（３）において、振幅の減少値が所定の値を超えないようにする。すなわち、変更前の振幅をＡｍｐ３、変更後の振幅をＡｍｐ４としたときに、
（Ａｍｐ３−Ａｍｐ４）＜ｄｉｆｆ
ただし、ｄｉｆｆは０を超えた整数
とするｄｉｆｆの値は、例えば、１、２、３、・・・等とする。このように、振幅の減少値が所定の値を超えないようにすることにより、画質劣化を抑えることができる。
【００８３】
図１７は、図１５に示す例に、ｄｉｆｆ＝１の制限をかけた場合のＤＣＴ係数の振幅変化とＤＣＴブロックあたりの符号量の変化を示す。intra＿vlc＿format=1のイントラブロックの場合には、図１７に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図４に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、イントラブロックの場合には、この方法を行う前では１２３ビットであるが、この方法を行った後では１１９ビットに削減される。
【００８４】
（６）ＤＣＴ係数をジグザグスキャンしたときの最後の所定個数ｓの非ゼロのＤＣＴ係数の振幅を０にする。
【００８５】
例えば、所定個数ｓの値を２にして図１８の左に示すＤＣＴ係数にこの方法を適用すると、図１８の右に示すようなＤＣＴ係数が得られる。intra＿vlc＿format=1のイントラブロックの場合には、図１８に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図１０に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、この方法を行う前では１２３ビットであるが、この方法を行った後では７５ビットに削減される。
【００８６】
（７）（１）〜（６）の方法を組み合わせる。
【００８７】
例えば、図１４の左に示すＤＣＴ係数に（１）の方法を適用して図１４の右（又は図１９の左）に示すＤＣＴ係数を得た後に、更に、（４）の方法を適用すると、図１９の右に示すＤＣＴ係数が得られる。intra＿vlc＿format=1のイントラブロックの場合には、図１４及び図１９に示すように、各非ゼロＤＣＴ係数とそれに先行するゼロラングレングスを図１０に示すジグザグスキャンに沿って２次元ハフマン符号化したときのＤＣＴブロックあたりの符号量は、この方法を行う前では１２３ビットであるが、この方法を行った後では９０ビットに削減される。
【００８８】
（８）（１）〜（３）又は（７）の方法において、ＤＣＴブロック当たりの総符号量を削減するために、元々非ゼロＤＣＴ係数であったが、（１）〜（３）又は（６）の方法によりゼロとなったＤＣＴ係数の全て又は一部を非ゼロＤＣＴ係数にする。
【００８９】
（１）の方法の図９に示す例では、ｆ（２、３）＝１をＦ（２、３）＝０に変化させているので、ｆ（２、３）とそれに先行するゼロランレングス（＝２）に対応する符号の符号長６とｆ（２、３）の後の非ゼロＤＣＴ係数であるｆ（３、２）（＝７）とそれに先行するゼロランレングス（＝０）に対応する符号の符号長７の和（＝１３）よりも、それに対応する領域の符号（Ｆ（３、２）（＝５）とそれに対応するゼロランレングス（＝３）に対応する符号）の符号長（＝２４）が長くなってしまっている。この問題を解決するために、以下のような対策をとる。
【００９０】
まず、（１）〜（３）又は（７）の方法により、非ゼロＤＣＴ係数の振幅を削減し又はゼロにして、ＤＣＴブロックを符号化し、ＤＣＴブロック当たりの符号量を求める。それから、（１）の方法により非ゼロからゼロに変化したＤＣＴ係数があったならば、その係数を非ゼロにして（例えば、１にする。元の振幅に戻しても良い。）、ＤＣＴブロックを符号化し、ＤＣＴブロック当たりの符号量を求める。そして、後者の符号量の方が少なければ、ゼロに変化したＤＣＴ係数を非ゼロにする。
【００９１】
（１）の方法に（８）の方法を適用すると、図２０の右に示すように、Ｆ（２、３）の振幅は１となる。この場合のＤＣＴブロック当たりの符号量は、９７ビットとなり、図９の右に示す例の符号量１０９ビットよりも少なくなる。
【００９２】
（２）の方法に（８）の方法を適用すると、図２１の右に示すように、Ｆ（２、３）の振幅は１となる。この場合のＤＣＴブロック当たりの符号量は、８９ビットとなり、図１４の右に示す例の符号量１０１ビットよりも少なくなる。
【００９３】
例は示さないが、（３）、（６）の方法に（８）の方法を適用することも可能である。
【００９４】
ＤＣＴ係数変更部１２３は、係数変更信号１８８の値に応じて、ＤＣＴ係数の振幅の削減の割合又は変更するＤＣＴ係数の数を調整し、これによって、各ＤＣＴブロックあたりの符号量の削減の割合を調整する。（１）の方法を用いているときには、低域通過フィルタの周波数特性を変えることにより、ＤＣＴ係数の振幅の変更の割合を調整することができる。（２）の方法を用いているときには、周波数毎にｎの値を変えることにより、ＤＣＴ係数の振幅の変更の割合を調整することができる。（３）の方法を用いているときには、振幅を減らすＤＣＴ係数の数を変えることにより、変更されるＤＣＴ係数の数を調整することができる。また、ハフマン符号の長さの削減の段階の数を変えることにより、ＤＣＴ係数の振幅の割合を調整することができる。（４）の方法を用いているときには、ｒの値を変えることにより、変更されるＤＣＴ係数の数を調整することができる。（５）の方法を用いているときには、所定個数ｓの値を変えることにより変更されるＤＣＴ係数の数を調整することができる。ＤＣＴ係数変更部１２３は、係数変更信号１８８の値に応じて、用いる方法又はこれらの方法の組み合わせを適宜変更することにより、ＤＣＴ係数の振幅の削減の割合及び／又は変更するＤＣＴ係数の数を調整することができる。
【００９５】
なお、図１に示すトランスコーダ、図６に示すビデオＰＥＳトランスコーダ及び図７に示す符号量制御部の構成はあくまでハードウェアにより実現した場合の一例である。また、図１に示すトランスコーダ及び図６に示すビデオＰＥＳトランスコーダでは、数クロック単位の遅延調整のための回路は省略している。トランスコーダは図１に示す構成以外の構成によっても実現することができる。特に、トランスコーダは、コンピュータをトランスコーダとして機能させるためのプログラムをコンピュータが読み取り、実行することによって実現することもできる。従って、トランスコーダの行う方法を記述したプログラムをコンピュータが読み取り実行することにより、コンピュータをトランスコーダとして機能させることができる。
【図面の簡単な説明】
【００９６】
【図１】本発明の実施形態によるトランスコーダの構成を示すブロック図である。
【図２】本発明の実施形態によるトランスコーダの入出力信号のフォーマットを示す図である。
【図３】本発明の実施形態によるトランスコーダのビデオＰＥＳトランスコーダの入出力信号のタイミング図である。
【図４】本発明の実施形態によるトランスコーダの原プログラムストリームＦＩＦＯの入力信号のタイミング図である。
【図５】本発明の実施形態によるトランスコーダのトランスコーディドビデオＰＥＳＦＩＦＯ及び原プログラムストリームＦＩＦＯの出力信号及び関連信号のタイミング図である。
【図６】本発明の実施形態によるトランスコーダのビデオＰＥＳトランスコーダの構成を示すブロック図である。
【図７】本発明の実施形態によるトランスコーダの符号量制御部の構成を示すブロック図である。
【図８】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部が行う第１の方法を説明するための図である。
【図９】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第１の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１０】ＤＣＴ係数を２次元可変長符号化するときに用いるジグザグスキャンの例を示す図である。
【図１１】ＭＰＥＧ規格による２次元可変長符号の符号長を示す第１の図表である。
【図１２】ＭＰＥＧ規格による２次元可変長符号の符号長を示す第２の図表である。
【図１３】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部が行う第２の方法を説明するための図である。
【図１４】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第２の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１５】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第３の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１６】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第４の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１７】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第５の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１８】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第６の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図１９】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第７の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図２０】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第１及び第８の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図２１】本発明の実施形態によるトランスコーダのＤＣＴ係数変更部がＤＣＴ係数に対して第２及び第７の方法を行う前のＤＣＴ係数と行った後のＤＣＴ係数を比較する図である。
【図２２】従来例によるＭＰＥＧデコーダの構成を示すブロック図である。
【図２３】従来例によるＭＰＥＧエンコーダの構成を示すブロック図である。
【図２４】従来例によるトランスコーダの構成を示すブロック図である。
【図２５】ＭＰＥＧ２規格による量子化スケールコード対量子化スケールの特性の例を示すグラフである。
【図２６】Ｐピクチャを間引くことにより、符号量を削減する従来の方法を説明するための図である。
【図２７】ＩフレームをＰフレームに変換することにより、符号量を削減する従来の方法を説明するための図である。
【図２８】Ｉピクチャ及びＰピクチャを間引き、更に、ＩフレームをＰフレームに変換することにより、符号量を削減する従来の方法を説明するための図である。
【符号の説明】
【００９７】
１０１  ビデオＰＥＳ検出部
１０２  ビデオＰＥＳトランスコーダ
１０３  トランスコーディドビデオＰＥＳＦＩＦＯ
１０４  ＰＥＳカウンタ
１０５  原プログラムストリームＦＩＦＯ
１０６  Ｄタイプフリップフロップ
１０７  減算器
１０８  比較器
１０９  ラッチ
１１０  トランスコーディドビデオＰＥＳカウンタ
１１１  比較器
１１２  立ち上がり検出回路
１１３  ＲＳフリップフロップ
１１４  マルチプレクサ
【図１】
2006060836.tif 000003
【図２】
2006060836.tif 000004
【図３】
2006060836.tif 000005
【図４】
2006060836.tif 000006
【図５】
2006060836.tif 000007
【図６】
2006060836.tif 000008
【図７】
2006060836.tif 000009
【図８】
2006060836.tif 000010
【図９】
2006060836.tif 000011
【図１０】
2006060836.tif 000012
【図１１】
2006060836.tif 000013
【図１２】
2006060836.tif 000014
【図１３】
2006060836.tif 000015
【図１４】
2006060836.tif 000016
【図１５】
2006060836.tif 000017
【図１６】
2006060836.tif 000018
【図１７】
2006060836.tif 000019
【図１８】
2006060836.tif 000020
【図１９】
2006060836.tif 000021
【図２０】
2006060836.tif 000022
【図２１】
2006060836.tif 000023
【図２２】
2006060836.tif 000024
【図２３】
2006060836.tif 000025
【図２４】
2006060836.tif 000026
【図２５】
2006060836.tif 000027
【図２６】
2006060836.tif 000028
【図２７】
2006060836.tif 000029
【図２８】
2006060836.tif 000030