(57)【要約】  ＭＰＥＧ２の符号化レートを再量子化により変換する際に、マクロブロックの符号化ブロックがすべて削除されることによる規格違反の恐れを、レート変換の効率よく、容易に回避できる、符号化レート変換装置は、第１の量子化ステップで量子化された第１の符号化データを逆量子化し、第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、第２の符号化データにレート変換する符号化レート変換装置であって、第１の符号化データの、非０係数を有し、符号化対象である符号化ブロックから１つの符号化ブロックを特定するブロック特定手段と、特定された１つの符号化ブロックをレート変換するときに、特定された１つの符号化ブロック中で最初の非０係数を、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備える。
2008117541.tif 000002
【特許請求の範囲】
【請求項１】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換する符号化レート変換装置であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備える
ことを特徴とする符号化レート変換装置。
【請求項２】
さらに、前記第１の符号化データにおける複数のブロックがそれぞれ符号化順にレートを変換される毎に、レート変換された当該ブロックが非０係数を有するブロックであるか否かを判定する非０判定手段を備え、
前記ブロック特定手段は、前記判定に基づいて、前記複数のブロックの中で、所定のブロックの前にレート変換されたすべてのブロックが非０係数を有さない場合に、前記所定のブロックを前記対象ブロックとして特定する
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項３】
逆量子化された前記第１の符号化データを、当該第１の符号化データに含まれるブロックの係数毎に、前記第２の量子化ステップで再量子化することでレート変換をするレート変換手段を備え、
前記非０化手段は、前記特定された符号化ブロックの中で、変換順で最初の非０係数の次の係数を前記係数レート変換手段によりレート変換される前に、前記最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項４】
前記非０化手段は、前記最初の非０係数のみに非０化処理を行う
ことを特徴とする請求項３に記載の符号化レート変換装置。
【請求項５】
前記ブロック特定手段は、前記第１の符号化データの符号化単位に含まれる複数のブロックの中から、前記対象ブロックを特定する
ことを特徴とする請求項４に記載の符号化レート変換装置。
【請求項６】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する１つまたは複数のブロックの中から、符号化順で最後のブロックを前記対象ブロックとして特定し、
前記非０化手段は、前記非０判定手段により、符号化順で最後の１つ前までのすべてのブロックが非０係数を有さないブロックであると判定された場合、前記最後の符号化ブロックの最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項２に記載の符号化レート変換装置。
【請求項７】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する輝度成分のブロックの中から、符号化順で最後のブロックを前記対象ブロックとして特定し、
前記非０化手段は、前記非０判定手段により、輝度成分のブロックの符号化順で最後の1つ前のブロックまでがすべて０係数を有するブロックであると判定された場合、前記最後の符号化ブロックの最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項２に記載の符号化レート変換装置。
【請求項８】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する複数のブロックの中から、符号化順が最初のブロックを、前記対象ブロックとして特定する
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項９】
前記非０化手段は、前記ブロック特定手段により特定された前記対象ブロックの最初の非０係数の符号に応じてレート変換後の非０係数を変更する非０化処理を行う
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項１０】
前記非０化手段は、前記ブロック特定手段により特定された前記対象ブロックの最初の非０係数の符号がプラスであれば、レート変換後の非０係数をプラス１とし、当該最初の非０係数の符号がマイナスであれば、レート変換後の非０係数をマイナス１とする非０化処理を行う
ことを特徴とする請求項９に記載の符号化レート変換装置。
【請求項１１】
前記符号化データの非０係数は、０でない値を有するＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数である
ことを特徴とする請求項５に記載の符号化レート変換装置。
【請求項１２】
前記第１の符号化データの符号化方式は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式である
ことを特徴とする請求項１１に記載の符号化レート変換装置。
【請求項１３】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換をする符号化レート変換方法であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定ステップと、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化ステップとを含む
ことを特徴とする符号化レート変換方法。
【請求項１４】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換をする集積回路であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備える
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化レート変換装置および符号化レート変換方法に関し、特に、符号化データの情報量をさらに削減するために符号化レートを変換する符号化レート変換装置および符号化レート変換方法に関する。より具体的には、符号化レート変換に伴う処理を効率化し、符号化レート変換を行った後も符号化規格に準拠する符号化レート変換装置および符号化レート変換方法に関する。
【背景技術】
【０００２】
近年、高圧縮を実現するＭＰＥＧ２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２）が画像符号化技術として採用されている。この画像符号化技術は、デジタル放送やＤＶＤなどの記録媒体に用いられる。この画像符号化技術では、用途に合わせて、ビットレートを一定の範囲内で選択できるようになっている。【０００３】
また、高画質のデジタル放送を記録媒体に記録する場合、高画質のデジタル放送のデータをそのまま記録媒体に記録するのではなく、そのデータの情報量を削減するためにビットレートを小さくする符号化レートで、そのデータをさらに変換する。それにより多くのデータを記録媒体に記録することができるようになる。また、記録媒体に画像符号化されたデータを記録する際に、記録媒体の容量を有効利用するために符号化レートを変換し画像符号化したデータを記録媒体に記録する高速ダビングなどのニーズも高まっている。【０００４】
このような符号化レート変換方法には、例えばＯｐｅｎ−ｌｏｏｐ型の変換方法がある。この方法では、入力ビットストリーム（以下、符号化ストリームと記載。）を画素レベルまで復号して符号化レート変換するのではなく、符号化ストリームを逆量子化した後のＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数を、異なる量子化ステップで再量子化して符号化レート変換する。その方法により符号化ストリームのデータ量を所望のデータ量に変換する。【０００５】
ここで、ＭＰＥＧ２のＤＣＴ係数に関する詳細な説明を行う。【０００６】
図１は、ＭＰＥＧ２のスライス、マクロブロック、ブロック、ＣＢＰおよびＤＣＴ係数の関係を示す図である。図２は、ＭＰＥＧ２のＤＣＴ係数の符号化順（スキャン順）を示す図である。【０００７】
図１に示す通り、ＭＰＥＧ２では、１つのピクチャは１つ以上のスライスから構成される。１つのスライスは１つ以上のマクロブロック（ＭＢ：Ｍａｃｒｏ  Ｂｌｏｃｋ）から構成される。【０００８】
また、１つのマクロブロックは、標準（４：２：０）で、輝度のブロックが４つ、色差のブロックが２つの合計６つのブロックから構成される。輝度と色差でブロックの数が異なるのは、人が色差より輝度に敏感である視覚特性に基づいて決定されているからである。【０００９】
ＭＰＥＧ２では、６つのブロックを、輝度Ｙ（左上）、輝度Ｙ（右上）、輝度Ｙ（左下）、輝度Ｙ（右下）、色差Ｃｂ（青成分）および色差Ｃｒ（赤成分）の順番に符号化する。【００１０】
このとき、０でないＤＣＴ係数（非０のＤＣＴ係数）を持たないブロック、すなわち０のＤＣＴ係数のみを持つブロックの符号化は省略し、非０のＤＣＴ係数を持つブロックだけを符号化する。各ブロックが非０のＤＣＴ係数を持つかどうかは、ＣＢＰ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ）により示される。【００１１】
ＣＢＰでは、非０のＤＣＴ係数を持つブロック（符号化ブロック）を１、非０のＤＣＴ係数を持たないブロック（係数０ブロック）を０とし、各ブロックが非０のＤＣＴ係数を持つかどうかをブロックの符号化順に並べて示す。【００１２】
例えば、図１で、輝度Ｙ（右上）、輝度Ｙ（左下）および色差Ｃｒ（赤成分）だけが非０のＤＣＴ係数を持つ（符号化ブロック）場合、ＣＢＰは２進数で０１１００１となる。【００１３】
次に、符号化ブロックのＤＣＴ係数はまず量子化を行い、量子化ＤＣＴ係数を得る。その後に図２に示すジグザグスキャンとオルタネートスキャンのいずれかの順番で、非０の量子化ＤＣＴ係数（以下、非０係数と記載。）だけを符号化する。【００１４】
ここで、ジグザグスキャンはプログレッシブ画像の符号化に適し、オルタネートスキャンはインターレース画像の符号化に適する。以降、ジグザグスキャンの場合について説明を行うが、オルタネートスキャンでも同様の議論が成り立つ。【００１５】
非０係数の符号化は、符号化対象の非０係数の一つ前の非０係数からの項目数ｒｕｎ、すなわちジグザグスキャン順に先行して連続する０係数の個数であるｒｕｎおよび非０の量子化ＤＣＴ係数値であるｌｅｖｅｌとしてまとめられ符号化される。また、非０係数の符号化では、非０係数の最後を表す符号として最後の非０係数の次にＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）が付加され符号化される。それ以降の０係数は省略される。【００１６】
例えば、図１で示される符号化ブロックの量子化ＤＣＴ係数では、低周波成分から７、３、０、０、１、以降すべて０、の順で符号化され、量子化ＤＣＴ係数が存在するブロックでは、（ｒｕｎ、ｌｅｖｅｌ）＝（０、７）、（０、３）、（２、１）、ＥＯＢの順番で符号化される。【００１７】
次に、ＭＰＥＧ２のマクロブロック（ＭＢ）の符号化ストリーム構成に関して詳細に説明する。【００１８】
図３は、ＭＰＥＧ２のマクロブロック全体の符号化情報の構文フローを示す図である。【００１９】
ＭＢの符号化情報は、Ｓ３０１でＭＢヘッダ部、Ｓ３０２でブロック部の順に構成される。【００２０】
ＭＰＥＧ２のマクロブロック（ＭＢ）がスキップされるスキップＭＢの場合、これらＭＢヘッダ部（Ｓ３０１）およびブロック部（Ｓ３０２）の情報は符号化されない。次のスキップでないＭＢのＭＢヘッダ部に含まれるＭＢアドレス増分を参照することで、スキップＭＢの有無が判断できる。【００２１】
なお、ＭＢヘッダ部は、スキップＭＢを除けば、必ず存在する。ブロック部は、ＭＢヘッダ部に含まれるＭＢタイプが“Ｉｎｔｒａ”もしくは“Ｃｏｄｅｄ”の場合のみ存在する。また、ブロック部は、ＭＢヘッダ部に含まれるＣＢＰの示す符号化ブロックの個数分だけ繰り返し存在する。【００２２】
図４は、ＭＰＥＧ２のマクロブロックヘッダ部の符号化情報の構文フローを示す図である。【００２３】
ＭＢヘッダの符号化情報は、Ｓ４０１でＭＢアドレス増分（ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔ）、Ｓ４０２でＭＢタイプ（ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ）、Ｓ４０３で動き補償タイプ（ｍｏｔｉｏｎ＿ｔｙｐｅ）、Ｓ４０４でＤＣＴタイプ（ｄｃｔ＿ｔｙｐｅ）、Ｓ４０５で量子化スケールコード（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ＿ｃｏｄｅ）、Ｓ４０６で前方向動きベクトル（ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓ（０））、Ｓ４０７で後方向動きベクトル（ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓ（１））、Ｓ４０８でＣＢＰ（ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ）の順に構成される。【００２４】
なお、ＭＢアドレス増分およびＭＢタイプは必ず存在するが、それ以外の情報が存在するかどうかは、ＭＢ以外のヘッダ情報やＭＢタイプから決定される。【００２５】
図５は、ＭＰＥＧ２のブロック部の符号化情報の構文フローを示す図である。【００２６】
ブロック部の符号化情報は、動き補償を行わないＩｎｔｒａＭＢか、動き補償を行うＩｎｔｅｒＭＢかどうかで構成が異なる。そのＭＢがどちらに属するかはＭＢタイプから決定される。【００２７】
ＩｎｔｒａＭＢの場合は、Ｓ５０１で最初に１つだけ必ずＤＣＴ係数のＤＣ成分（ｄｃｔ＿ｄｃ＿ｓｉｚｅ、ｄｃｔ＿ｄｃ＿ｄｉｆｆ）が符号化される。ＤＣ係数は、量子化ステップが固定化されており、ＭＢヘッダに含まれる量子化スケールコードの値に影響されない。ＤＣ成分以外の係数は、ＡＣ成分（ｒｕｎ、ｌｅｖｅｌ）であり、Ｓ５０２で非０の量子化ＤＣＴ係数の個数分だけ符号化される。【００２８】
なお、ＩｎｔｒａＭＢのＤＣＴ係数の値のＡＣ成分の量は、ＭＢヘッダの量子化スケールコードの値によって影響を受ける。【００２９】
また、ＡＣ成分に非０係数が存在しない場合には、符号化されない。【００３０】
また、例えばブロックサイズが、図１で示すように８×８＝６４である場合、ＤＣ成分が１個存在するため、ＡＣ成分は最大６３個まで符号化される可能性がある。【００３１】
ブロックの最後には、Ｓ５０３でＥＯＢが符号化される。【００３２】
ＩｎｔｅｒＭＢの場合、ＭＢタイプが“Ｃｏｄｅｄ”であれば、Ｓ５０２で必ず１つ以上のＡＣ成分（ｒｕｎ、ｌｅｖｅｌ）が符号化される。例えばブロックサイズが図１で示すように８×８＝６４である場合、ＩｎｔｅｒＭＢではＤＣ成分が存在しないので、ＤＣ成分は最大６４個まで符号化される可能性がある。【００３３】
ブロックの最後には、ＩｎｔｒａＭＢの場合と同様に、Ｓ５０３でＥＯＢが符号化される。【００３４】
図６は、ＭＰＥＧ２での量子化スケールコードと量子化ステップの関係を示す図である。【００３５】
ＡＣ係数の量子化に利用する量子化ステップは、ＭＢヘッダに含まれる量子化スケールコードから図６の表に基づいて導出する。【００３６】
次に、Ｏｐｅｎ−ｌｏｏｐ型のレート変換方法を、一般的なＭＰＥＧ復号化装置やＭＰＥＧ符号化装置と比較しながら、詳細に説明する。【００３７】
図７は、ＭＰＥＧ復号化装置７００の構成を示す図である。【００３８】
ＭＰＥＧ復号化装置７００は、可変長復号部７０１と、逆量子化部７０２と、逆ＤＣＴ変換部７０３と、参照フレーム格納部７０４と、動き補償部７０５と、画像復元部７０６とを備える。【００３９】
可変長復号部７０１は、ＭＰＥＧ２の符号化ストリームを復号し、ブロック情報として量子化ＤＣＴ係数を逆量子化部７０２に通知する。【００４０】
まず、ＩｎｔｒａＭＢの場合を説明する。【００４１】
逆量子化部７０２は、通知された量子化ＤＣＴ係数を逆量子化してＤＣＴ係数に戻し、戻したＤＣＴ係数を逆ＤＣＴ変換部７０３に通知する。【００４２】
逆ＤＣＴ変換部７０３は、通知されたＤＣＴ係数に逆ＤＣＴ変換を行い、画素情報に戻す。戻された画素情報は画像復元部７０６を通じて出力される。【００４３】
また、画素情報は次のピクチャ以降で参照される可能性があるため、戻された画素情報は参照フレーム格納部７０４に格納される。【００４４】
次に、ＩｎｔｅｒＭＢの場合を説明する。【００４５】
逆量子化部７０２は、通知された量子化ＤＣＴ係数を逆量子化してＤＣＴ係数に戻し、戻したＤＣＴ係数を逆ＤＣＴ変換部７０３に通知する。【００４６】
逆ＤＣＴ変換部７０３は、通知されたＤＣＴ係数に逆ＤＣＴ変換を行い、画素情報に戻す。戻された画素情報は画像復元部７０６を通じて出力される。【００４７】
また、逆ＤＣＴ変換により得られた画素情報は、差分値であるため、画像復元部７０６に出力後もさらに処理が必要である。【００４８】
動き補償部７０５は、可変長復号部７０１で復号した動きベクトルより指定された参照画像を参照フレーム格納部７０４から取得して、画像復元部７０６に通知する。【００４９】
画像復元部７０６は、参照画像と画素情報との差分を加算して画素情報を求め、出力する。復元した画素情報はＩｎｔｒａＭＢと同様に参照フレーム格納部７０４に格納される。【００５０】
図８は、ＭＰＥＧ符号化装置８００の構成を示す図である。基本的にＭＰＥＧ復号化装置７００の逆の構成となっている。【００５１】
ＭＰＥＧ符号化装置８００は、ＤＣＴ変換部８０１と、量子化部８０２と、可変長符号部８０３と、逆量子化部８０４と、逆ＤＣＴ変換部８０５と、参照フレーム格納部８０６と、動き補償部８０８と、画素減算部８０９と、画素加算部８１０と、レート制御部８１１とを備える。【００５２】
まず、ＩｎｔｒａＭＢの場合を説明する。【００５３】
ＤＣＴ変換部８０１は、画素減算部８０９を介して入力された画素情報をＤＣＴ変換し、量子化部８０２に通知する。【００５４】
レート制御部８１１は、目標の符号化レートを、可変長符号部８０３から得た実際の符号化ビット量の実績で補正しながら、量子化ステップを求めて、量子化部８０２に通知する。【００５５】
量子化部８０２は、レート制御部８１１で算出された量子化ステップで、ＤＣＴ変換された画素情報のＤＣＴ係数を量子化し、可変長符号部８０３に通知する。同時に量子化部８０２は、量子化ＤＣＴ係数を参照画像として利用するため、逆量子化部８０４に通知する。【００５６】
可変長符号部８０３は、通知された量子化ＤＣＴ係数を符号化ストリームとして符号化する。【００５７】
ここで、量子化ＤＣＴ係数は、次以降のピクチャで参照画像として利用するために、ＭＰＥＧ復号化装置７００の場合と同様に、逆量子化部８０４および逆ＤＣＴ変換部８０５により、画像情報まで復号されて、参照フレーム格納部８０６に格納される。【００５８】
次に、ＩｎｔｅｒＭＢの場合を説明する。【００５９】
動き検出部８０７は、参照画像を用いて入力画像の画像情報量の削減を行う。【００６０】
動き検出部８０７は、参照フレーム格納部８０６から入力画像と一致度の高い画像（参照画像）を検出して、動きベクトルを算出する。算出した動きベクトルは、動き補償部８０８に通知されるとともに、可変長符号部８０３に通知される。可変長符号部８０３では、通知された動きベクトルを符号化ストリームのＭＢヘッダ情報として符号化する。【００６１】
動き補償部８０８は、動きベクトルを元に、参照フレーム格納部８０６から参照画像を取得する。動き補償部８０８は、画素減算部８０９で、取得した参照画像と入力画像との差分を求めることで、情報量を削減する。【００６２】
以降、ＤＣＴ変換部８０１、量子化部８０２、可変長符号部８０３、逆量子化部８０４、逆ＤＣＴ変換部８０５、参照フレーム格納部８０６およびレート制御部８１１において、ＩｎｔｒａＭＢの場合と同じであるので説明を省略する。【００６３】
また、次以降のピクチャで参照画像として利用するために、逆量子化部８０４、逆ＤＣＴ変換部８０５を通して量子化ＤＣＴ係数から求めた画像情報の差分に、動き補償部８０８で求めた参照画像を画素加算部８１０にて加えると、画像情報に復号できる。復号された画像情報は、参照フレーム格納部８０６に格納される。【００６４】
ここで、ＭＰＥＧ２では、ＭＢヘッダ部のビット量は、ほぼ決まった範囲のビット量を取り、さらに符号化ストリーム全体のビット量に占める割合はわずかである。逆に、ブロック部のビット量は、ＭＢごとのばらつきが大きく、さらに符号化ストリームのビット量の大部分を占める。【００６５】
したがって、符号化ストリームのビット量を低減するために符号化レートを低減するには、ＭＢの量子化ステップを大きくして、ブロック部の量子化ＤＣＴ係数（ｌｅｖｅｌ）を低減する手法が有効である。これは、小さなｌｅｖｅｌは短い符号化ビットで表現可能であるためであり、さらにｌｅｖｅｌが０になれば、ｌｅｖｅｌの符号化自体が不要になるためである。【００６６】
図９は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００の一例を示す構成図である。Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００は、上記の再量子化の性質を利用した変換装置である。図９に示すＯｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００は、ＭＰＥＧ復号化装置７００とＭＰＥＧ符号化装置８００を結合して、不要な構成を省いた構成となっている。この符号化レート変換装置９００は、符号化ストリームを画像レベルまで復号せずに、逆量子化した後のＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数を、異なる量子化ステップで再量子化するだけで符号化レートを変換するため、ＤＣＴ変換や動き補償を行う必要がない。【００６７】
符号化レート変換装置９００は、可変長復号部９０１と、可変長符号部９０２と、レート制御部９０３と、Ｑ値変換部９０４と、ヘッダ格納部９０５と、逆量子化部９０６と、量子化部９０７とを備える。【００６８】
可変長復号部９０１は、入力されたＭＰＥＧ２の符号化ストリームを復号する。可変長復号部９０１は、復号した符号化ストリームのＭＢヘッダ部のパラメータをヘッダ格納部９０５に通知する。同時に、可変長復号部９０１は、復号した符号化ストリームにおけるＭＢヘッダ中の量子化スケールコードを量子化ステップに変換し、変換した量子化ステップをＱ値変換部９０４に通知する。【００６９】
また、可変長復号部９０１は、例えば量子化ＤＣＴ係数など、復号した符号化ストリームのブロック部のパラメータを逆量子化部９０６に通知する。【００７０】
レート制御部９０３は、目標変換レートにしたがって、目標量子化ステップを算出する。レート制御部９０３は、算出した目標量子化ステップをＱ値変換部９０４に通知する。【００７１】
Ｑ値変換部９０４は、入力時の量子化ステップと、レート制御部９０３から入力された目標量子化ステップとから、出力時の新しい量子化ステップを決定する。つまり、Ｑ値変換部９０４は、可変長復号部９０１で復号された符号化ストリームの量子化ステップと、レート制御部９０３から通知された目標量子化ステップとから、可変長符号部９０２で再度符号化されて出力されるストリームの新しい量子化ステップを決定する。【００７２】
Ｑ値変換部９０４は、決定した新しい量子化ステップを量子化部９０７に通知すると同時に、量子化ステップをヘッダ格納部９０５に通知する。【００７３】
ヘッダ格納部９０５は、Ｑ値変換部９０４から通知された量子化ステップを量子化スケールコードに変換し、可変長復号部９０１から通知されたストリームのＭＢヘッダ部のパラメータを新しい値に書き換える。【００７４】
また、ヘッダ格納部９０５は、ＭＢヘッダ部に該当するパラメータを可変長符号部９０２に通知する。それにより、可変長符号部９０２は、ＭＢヘッダ部のストリームを得る。【００７５】
また、量子化部９０７は、Ｑ値変換部９０４で決定された新しい量子化ステップにしたがって、量子化を行う。量子化部９０７は、その結果得られる量子化ＤＣＴ係数を可変長符号部９０２に通知する。それにより、可変長符号部９０２は、ブロック部のストリームを得る。【００７６】
レート制御部９０３は、随時、可変長復号部９０１から復号したビット量と、可変長符号部９０２から可変長符号部９０２で符号化したビット量とを得て、目標レートの補正を行う。【００７７】
次に、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換の具体例を説明する。【００７８】
図１０、図１１および図１２は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００での変換の一例を示す図である。【００７９】
図１０のように、非０の量子化ＤＣＴ係数（ｌｅｖｅｌ）が７、−３、２、１、４、１、−１、１の合計８個すべてＡＣ成分から構成されるブロックが存在するとする。ここで、入力時の量子化ステップが４であり、出力時に量子化ステップが８に変換されるとする。【００８０】
量子化ＤＣＴ係数（ｌｅｖｅｌ）は、それぞれ３、−１、１、０、２、０、０、０となり（ここでは小数点以下は切り捨てる）、ｌｅｖｅｌの値が減少するとともに、非０係数（非０量子化ＤＣＴ係数）自体が変換前の８個から変換後は４個に減少する。また、０係数がより多く連続することになるので、ｒｕｎが増加する。【００８１】
例えば、入力時の４番目の係数はもともとｒｕｎが３であったが、ｌｅｖｅｌが０になったことにより、入力時の５番目の係数が出力時には４番目に繰り上がり、ｒｕｎが４になる。【００８２】
これを符号化すると、入力時５０ｂｉｔだった符号量が、２５ｂｉｔに減少する。したがって、Ｏｐｅｎ−ｌｏｏｐ型による符号化レート変換の効果があることがわかる。【００８３】
しかし、図１１のように、非０係数（ｌｅｖｅｌ）が１、−１、１の合計３個（すべてＡＣ成分）から構成されるブロックが存在する場合に、量子化ステップが４から８に変換されたとすると、量子化ＤＣＴ係数（ｌｅｖｅｌ）はすべて０となる（小数点以下は切り捨てる）。これは、ＩｎｔｅｒＭＢのみで発生する可能性がある。なぜなら、ＩｎｔｒａＭＢではＤＣ成分が必ず存在し、ＤＣ成分は量子化ステップの変更によっても変化しないためである。【００８４】
ＭＰＥＧ２規格では、非０のＤＣＴ係数が存在しないブロックでは、該当するＣＢＰのフラグを必ず０（係数０ブロック）にしなければならない、すなわちＤＣＴ係数が１つも存在せずにＥＯＢに到達することは規格違反である。そのため、この場合、入力時のＣＢＰを書き換える必要がある。【００８５】
しかし、図１２のように、もともとＭＢに符号化ブロックが４つ存在する場合、かつ、ＤＣＴ係数がすべて０に変換された場合には、符号化ブロックが１つも存在しなくなる。【００８６】
しかし、ＭＰＥＧ２規格では、ＣＢＰ＝０を符号化することが禁止されている。そのため、ＭＢヘッダ部に存在するＭＢタイプを“Ｃｏｄｅｄ”から“Ｎｏｔ  Ｃｏｄｅｄ”に変更しなければならない。【００８７】
ここで、ＭＰＥＧ２のＭＢタイプの種類について説明する。【００８８】
図１３は、ＭＰＥＧ２のマクロブロックタイプの種類を示す図である。【００８９】
ＩｎｔｒａＭＢは、常にＤＣＴ係数のＤＣ成分が存在するため、“Ｃｏｄｅｄ”、“Ｎｏｔ  Ｃｏｄｅｄ”の区別は存在しない。一方、ＩｎｔｅｒＭＢは、ＤＣＴ係数のコードをもたないＭＢも存在し得るので、“Ｃｏｄｅｄ”、“Ｎｏｔ  Ｃｏｄｅｄ”の区別が存在する。【００９０】
レート変換後に符号化ブロックが１つも存在しなくなった場合、例えば、入力時のＭＢタイプがＢピクチャの“Ｉｎｔｅｒｐ，Ｃｏｄｅｄ”であれば、出力時のＭＢタイプは“Ｉｎｔｅｒｐ，Ｎｏｔ  Ｃｏｄｅｄ”に変換すればよい。【００９１】
しかし、レート変換後に符号化ブロックが１つも存在しなくなった場合、かつ、入力時のＭＢタイプがＰピクチャの“Ｎｏ  ＭＣ，Ｃｏｄｅｄ”（動きベクトルなし、符号化ブロックあり）であった場合、ＭＢタイプを“Ｎｏ  ＭＣ，Ｎｏｔ  Ｃｏｄｅｄ”（動きベクトルなし、符号化ブロックなし）に変換したいが、図１３の通り、ＭＰＥＧ２に該当するＭＢタイプは存在しない。そのため、ＭＰＥＧ２に準拠したストリームを生成できないことになる。【００９２】
また、この場合、該当マクロブロックをスキップＭＢにすることで、“Ｎｏ  ＭＣ、Ｎｏｔ  Ｃｏｄｅｄ”と同等の効果（動きベクトルなし、符号化ブロックなし）を得ることができる。しかし、スキップＭＢは、次のＭＢのＭＢヘッダ部（ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔ）で表現するため、図９のＯｐｅｎ−Ｌｏｏｐ型レート変換装置９００では対応できない。この場合、次のＭＢのＭＢヘッダを書き換えるような複雑な機構が必要になる。【００９３】
また、ＭＰＥＧ２規格では、スライスの先頭および最終のＭＢがスキップＭＢであることが禁止されている。したがって、そのような機構が存在していたとしても、ＭＰＥＧ２に準拠したストリームを生成できない場合がある。【００９４】
そのため、符号化レートを変換する際、変換後のデータもＭＰＥＧ２規格に準拠するよう何らかの対策を講じる必要がある。【００９５】
その対策の１つには符号化レートを変換してもＣＢＰが変化しないようにする画像符号化レート変換装置が特許３７７０４６６号公報（特許文献１）に開示されている。具体的には、符号化レートを変換した後、符号化ブロック内の量子化ＤＣＴ係数がすべて０になっていないかどうかを判断し、すべて０になっていれば変換前の量子化ＤＣＴ係数を残すよう指示を出すことで、変換前の符号化ブロックについて、変換後に量子化ＤＣＴ係数がすべて０になることがないようにしている。【００９６】
図１４は、従来の符号化レート変換装置１４００を示す構成図である。図１４では、特許３７７０４６６号と同等の方法を実現する構成が示されている。【００９７】
符号化レート変換装置１４００は、可変長復号部９０１と、可変長符号部９０２と、レート制御部９０３と、Ｑ値変換部９０４と、ヘッダ格納部９０５と、逆量子化部９０６と、量子化部９０７と、係数０ブロック検出部１４１３と、ブロック係数格納部１４１５とを備える。【００９８】
可変長復号部９０１、可変長符号部９０２、レート制御部９０３、Ｑ値変換部９０４、ヘッダ格納部９０５、逆量子化部９０６および量子化部９０７は、図９と同一の符号を付しており、同様の構成のため、説明を省略する。【００９９】
ブロック係数格納部１４１５は、量子化部９０７で量子化された量子化ＤＣＴ係数を１ブロック分蓄積する。【０１００】
係数０ブロック検出部１４１３では、量子化部９０７で量子化された量子化ＤＣＴ係数が１ブロック分すべて０であるかどうかを検出する。すでに述べた通り、量子化ＤＣＴ係数が１ブロック分すべて０である場合に、ＭＰＥＧ２ではＣＢＰを変化させなければならない。それを避けるために、係数０ブロック検出部１４１３は、量子化ＤＣＴ係数が１ブロック分すべて０であるブロックを検出すると、ブロック係数格納部１４１５に対して、入力時に存在する量子化ＤＣＴ係数のいずれかを“１”または“−１”として残すように指示し、１ブロック分すべて０になることを防止する。
【特許文献１】特許第３７７０４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０１０１】
しかしながら、前記特許文献１の構成では、符号化レートを変換した後の量子化ＤＣＴ係数は規格に準拠するようになるが、その際２つの課題が発生する。【０１０２】
１つ目の課題は、処理の後戻りである。【０１０３】
図１５は、従来の符号化レート変換装置での変換の一例を示す図である。図１４および図１５を用いて処理の後戻りを説明する。【０１０４】
図１４における量子化部９０７で、量子化ＤＣＴ係数を０に変換した場合、ブロック係数格納部１４１５に値“０”を格納する。しかし、あとで量子化ＤＣＴ係数を“１”または“−１”に変更する可能性があるので、この時点では変換後の量子化ＤＣＴ係数値が確定できない。【０１０５】
ＭＰＥＧ２では、すでに述べた通り、ブロックのすべての量子化ＤＣＴ係数は、ＥＯＢの検出により確定する。【０１０６】
ＥＯＢ検出時点で、当該ブロックの非０量子化ＤＣＴ係数が存在しなかった場合には、すでに変換が完了し、ブロック係数格納部１４１５に蓄積されていた量子化ＤＣＴ係数の中から、特定の量子化ＤＣＴ係数だけを選択して“１”または“−１”に復活させるといった後戻り処理が必要になる。この後戻り処理は、ＭＰＥＧ２の場合、最大で６４個のＤＣＴ係数の中から、特定の量子化ＤＣＴ係数を復活させる複雑な処理となる。【０１０７】
もし、非０の量子化ＤＣＴ係数の個数があらかじめ判明する符号化方式であれば、最後の非０量子化ＤＣＴ係数の量子化時点で、量子化ＤＣＴ係数が０になることが確定する。そして、その最後の非０の量子化ＤＣＴ係数に対して０に変換しないような処理を行うことで、処理の後戻りなく、非０の量子化ＤＣＴ係数を復活させることが可能となる。しかし、ＭＰＥＧ２では、実際にＥＯＢを検出するまで、どの時点でブロック最後の非０の量子化ＤＣＴ係数であるかがわからない。したがって、前記の処理を行うことができない。【０１０８】
２つ目の課題は、符号化効率の低下である。【０１０９】
図１６は、従来の符号化レート変換装置での変換の一例を示す図である。図１６では、符号化効率の低下の例を示している。【０１１０】
図１６（ａ）は、図１４に示す、前記特許文献１の構成においてレート変換された例を示している。図１４に示す特許文献１の構成では、上述したように、１ブロック分すべて０になることを防止する。図１６（ａ）に示すように、レート変換された６ブロックすべてにおいて量子化ＤＣＴ係数のいずれかが“１”として残されている。したがって、特許文献１の構成では、ＣＢＰを変更しないでよい。しかしながら、特許文献１の構成では、ＭＢヘッダ部のＣＢＰを書き換える構成が不要というメリットがある反面、必ず各符号化ブロックに対して、１つ以上の量子化ＤＣＴ係数が残ることになる。図１６に示すように、例えば、入力時の６ブロックのすべてが符号化ブロックで、その非０量子化ＤＣＴ係数の数が少ない場合、高倍率のレート変換を行うと、図１６（ｂ）に示すようになる。すなわちＣＢＰ＝１１１１１１が高倍率のレート変換でＣＢＰ＝１０００００となる。しかし特許文献１の構成では、ＣＢＰ＝１１１１１１が高倍率のレート変換でＣＢＰ＝１１１１１１のままである。すなわち、特許文献１の構成では、高倍率のレート変換を行っても、全ブロックに対して必ず１つ以上の非０量子化ＤＣＴ係数が残るので、符号化効率の低下が無視できなくなる。【０１１１】
そこで、本発明は、上記課題点に鑑みてなされたものであり、ＭＰＥＧ２の符号化レートを変換する際のＭＰＥＧ２規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を実現することを目的とする。
【課題を解決するための手段】
【０１１２】
上記目的を達成するために、本発明における符号化レート変換装置は、第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換する符号化レート変換装置であって、前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備えることを特徴とする。【０１１３】
それにより、符号化対象のすべてのブロックの係数が０であることが判明してから、非０化するという処理を後戻りする必要がない。さらに、特定の符号化ブロックの中で最初の係数のみを非０化（０でない値）するので、例えば、特定の符号化ブロック以外のブロックに非０の係数が存在し、特定の符号化ブロックが非０化の係数を持つ必要がないとしても、特定の符号化ブロックの最初の係数を非０化したにすぎず、符号化効率を低下させないで符号化レート変換をすることができる。【０１１４】
本発明は、ブロック特定手段により、特定した符号化ブロックの最初の非０係数を非０化する構成とすることにより、符号化レートを変換している際にＣＢＰが０に変更になりそうなことを予測し、ＣＢＰが０にならないよう符号化レート変換処理を行うことで、符号化レート変換後のストリームが規格に準拠し、さらに符号化レート変換時の規格準拠処理での処理効率を向上させることができる。【０１１５】
また、上記目的を達成するために、第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレートを変換するプログラムであって、前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定ステップと、特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化ステップとをコンピュータに実行させるためのプログラムであってもよい。【０１１６】
なお、本発明は、装置として実現するだけでなく、このような装置が備える処理手段を備える集積回路として実現したり、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の通信媒体を介して配信してもよい。
【発明の効果】
【０１１７】
本発明により、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を提供することができる。
【図面の簡単な説明】
【０１１８】
【図１】図１は、ＭＰＥＧ２のスライス、マクロブロック、ブロック、ＣＢＰ、ＤＣＴ係数の関係を示す図である。
【図２】図２（ａ）（ｂ）は、ＭＰＥＧ２のＤＣＴ係数の符号化順（スキャン順）を示す図である。
【図３】図３は、ＭＰＥＧ２のマクロブロック全体の符号化情報の構文フローを示す図である。
【図４】図４は、ＭＰＥＧ２のマクロブロックヘッダ部の符号化情報の構文フローを示す図である。
【図５】図５は、ＭＰＥＧ２のブロック部の符号化情報の構文フローを示す図である。
【図６】図６は、ＭＰＥＧ２での量子化スケールコードと量子化ステップの関係を示す図である。
【図７】図７は、ＭＰＥＧ２の復号化装置の構成を示す図である。
【図８】図８は、ＭＰＥＧ２の符号化装置の構成を示す図である。
【図９】図９は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置の一例を示す構成図である。
【図１０】図１０は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１１】図１１は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１２】図１２は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１３】図１３（ａ）（ｂ）（ｃ）は、ＭＰＥＧ２のマクロブロックタイプの種類を示す図である。
【図１４】図１４は、従来の符号化レート変換装置を示す構成図である。
【図１５】図１５は、従来の符号化レート変換装置での変換の一例を示す図である。
【図１６】図１６（ａ）（ｂ）は、従来の符号化レート変換装置での変換の一例を示す図である。
【図１７】図１７は、本発明の実施の形態１の符号化レート変換装置の構成を示す図である。
【図１８】図１８は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図１９】図１９は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図２０】図２０は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図２１】図２１は、本発明の実施の形態１の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図２２】図２２は、本発明の実施の形態１の符号化レート変換装置の最終符号化ブロック判定処理を示すフロー図である。
【図２３】図２３は、本発明の実施の形態１の符号化レート変換装置の非０係数検出処理を示すフロー図である。
【図２４】図２４は、本発明の実施の形態１の符号化レート変換装置の係数０ブロック検出処理を示すフロー図である。
【図２５】図２５（ａ）（ｂ）は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２６】図２６は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２７】図２７は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２８】図２８は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２９】図２９は、本発明の実施の形態２の符号化レート変換装置の構成図である。
【図３０】図３０は、本発明の実施の形態２の符号化レート変換装置の輝度最終符号化ブロック判定処理を示すフロー図である。
【図３１】図３１は、本発明の実施の形態２の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３２】図３２（ａ）（ｂ）は、本発明の実施の形態２の符号化レート変換装置での変換の一例を示す図である。
【図３３】図３３は、本発明の実施の形態３の符号化レート変換装置の構成図である。
【図３４】図３４は、本発明の実施の形態３の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３５】図３５は、本発明の実施の形態３の符号化レート変換装置の第１符号化ブロック判定処理を示すフロー図である。
【図３６】図３６は、本発明の実施の形態３の符号化レート変換装置での変換の一例を示す図である。
【図３７】図３７は、本発明の実施の形態４の符号化レート変換装置の構成図である。
【図３８】図３８は、本発明の実施の形態４の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３９】図３９は、本発明の実施の形態４の符号化レート変換装置での変換の一例を示す図である。
【図４０】図４０は、本発明の実施の形態５のストリーム記録装置を示す構成図である。
【図４１】図４１は、本発明の実施の形態６のネットワーク配信システムを示す構成図である。
【符号の説明】
【０１１９】
７００    ＭＰＥＧ復号化装置
７０１、９０１、１７０１    可変長復号部
７０２、８０４、９０６、１８０６    逆量子化部
７０３、８０５    逆ＤＣＴ変換部
７０４、８０６    参照フレーム格納部
７０５、８０８    動き補償部
７０６    画像復元部
８００    ＭＰＥＧ符号化装置
８０１    ＤＣＴ変換部
８０２、９０７、１８０７    量子化部
８０３、９０２、１７０２    可変長符号部
８０７    動き検出部
８０９    画素減算部
８１０    画素加算部
８１１、９０３、１７０３    レート制御部
９００、１４００、１７００、１８００、１９００、２０００、２９００、３３００、３７００    符号化レート変換装置
９０４、１７０４    Ｑ値変換部
９０５、１７０５    ヘッダ格納部
１４１３、１７１３    係数０ブロック検出部
１４１５、１７１５、２０１６、２０１７    ブロック係数格納部
１７０７    係数変換部
１７０８    最終符号化ブロック検出部
１７０９    非０係数検出部
１７１０    非０化判定部
１７１１、３７１１    非０化部
１７１２    ｒｕｎ制御部
１７１４    ＥＯＢ削除部
１９０７    非０化係数変換部
２９０８    輝度最終符号化ブロック検出部
３３０８    第１符号化ブロック検出部
３７１６    符号判定部
４０００    ストリーム記録装置
４００１、４１０１    符号化レート変換部
４００２    デジタル放送波
４００３    放送受信部
４００４、４１０４    ＡＶ多重分離部
４００５、４１０５    ＡＶ多重部
４００６、４１０３    ＨＤＤ制御部
４００７、４１０２    ＨＤＤ
４１００    ネットワーク配信システム
４１０６、４１０７    ネットワーク制御部
４１０８    ＡＶ再生部
４１０９    ネットワーク
４１１０    ストリーム送信装置
４１１１    ストリーム受信装置
【発明を実施するための最良の形態】
【０１２０】
以下、本発明の実施の形態について、図面を参照しながら説明する。【０１２１】
（実施の形態１）
図１７は、本発明の実施の形態１における符号化レート変換装置１７００の構成図である。【０１２２】
図１７の符号化レート変換装置１７００は、可変長復号部１７０１と、可変長符号部１７０２と、レート制御部１７０３と、Ｑ値変換部１７０４と、ヘッダ格納部１７０５と、係数変換部１７０７と、最終符号化ブロック検出部１７０８と、非０係数検出部１７０９と、非０化判定部１７１０と、非０化部１７１１と、ｒｕｎ制御部１７１２と、係数０ブロック検出部１７１３と、ＥＯＢ削除部１７１４と、ブロック係数格納部１７１５とから構成される。【０１２３】
可変長復号部１７０１は、ＭＰＥＧ２の符号化ストリームを復号する。可変長復号部１７０１は、復号した符号化ストリームのＭＢヘッダに該当するパラメータをヘッダ格納部１７０５に通知する。同時に、可変長復号部１７０１は、復号した符号化ストリームのＭＢヘッダ中の量子化スケールコードを量子化ステップに変換し、変換した量子化ステップをＱ値変換部１７０４に通知する。【０１２４】
また、可変長復号部１７０１は、例えば量子化ＤＣＴ係数など、復号した符号化ストリームのブロック部に該当するパラメータを、ＥＯＢも含めて１係数単位（ｒｕｎ、ｌｅｖｅｌの組）で係数変換部１７０７に通知する。【０１２５】
また、可変長復号部１７０１は、符号化ストリームのＭＢの復号完了後に、復号した符号化ストリームのＭＢのビット量を、レート制御部１７０３に通知する。【０１２６】
レート制御部１７０３は、係数変換部１７０７で復号した符号化ストリームのＭＢが係数変換される前に、可変長復号部１７０１から得られた今までのＭＢの復号化ビット量と可変長符号部１７０２から得られた今までのＭＢの符号化ビット量とから、実績符号化レートを求める。レート制御部１７０３は、求めた実績符号化レートと目標符号化レートと比較する。【０１２７】
レート制御部１７０３は、求めた実績符号化レートが目標符号化レートより高ければ符号化レートを下げるように目標量子化ステップを算出して、算出した目標量子化ステップをＱ値変換部１７０４に通知する。レート制御部１７０３は、実績符号化レートが目標符号化レートより低ければ符号化レートを上げるように、目標量子化ステップを算出して、算出した目標量子化ステップをＱ値変換部１７０４に通知する。【０１２８】
Ｑ値変換部１７０４は、係数変換部１７０７で復号した符号化ストリームのＭＢが係数変換される前に、入力時の量子化ステップとレート制御部１７０３から入力された目標量子化ステップとから出力時の新しい量子化ステップを算出する。つまり、Ｑ値変換部１７０４は、可変長復号部１７０１で復号された符号化ストリームの量子化ステップと、レート制御部１７０３から通知された目標量子化ステップとから、可変長符号部１７０２で再度符号化されて出力されるストリームの新しい量子化ステップを決定する。【０１２９】
Ｑ値変換部１７０４は、算出した新しい量子化ステップを、係数変換部１７０７とヘッダ格納部１７０５とに通知する。【０１３０】
ヘッダ格納部１７０５では、Ｑ値変換部１７０４から通知された量子化ステップを量子化スケールコードに変換し、可変長復号部１７０１から通知されたストリームのＭＢヘッダ部のパラメータを新しい値に書き換える。【０１３１】
係数変換部１７０７は、可変長復号部１７０１から入力時の符号化ストリームの量子化ステップおよび量子化ＤＣＴ係数を取得し、Ｑ値変換部１７０４から目標の量子化ステップを取得する。【０１３２】
係数変換部１７０７は、取得した量子化ステップおよび目標の量子化ステップとから量子化ＤＣＴ係数を逆量子化および量子化する。この逆量子化および量子化は、一度に実施される。【０１３３】
係数変換部１７０７は、再度量子化した量子化ＤＣＴ係数を非０化部１７１１に出力する。【０１３４】
ここで、係数変換部１７０７は、簡単な数式を利用して、逆量子化と量子化を一度に実施する。簡単な数式とはＦＱｏ＝ＦＱｉ×（Ｑｉ／Ｑｏ）である。【０１３５】
逆量子化時に得られるＤＣＴ係数ＦはＦ＝α×Ｗ×Ｑｉ×ＦＱｉ（α：定数、Ｗ：量子化マトリクス、Ｑｉ：入力時の量子化ステップ、ＦＱｉ：入力時の量子化ＤＣＴ係数）の式で求めることができる。同様に量子化時に得られる量子化ＤＣＴ係数ＦＱｏは、ＦＱｏ＝Ｆ／（α×Ｗ×Ｑｏ）（Ｑｏ：出力時の量子化ステップ）の式で求めることができる。【０１３６】
これらの式を統合すると逆量子化および量子化を一度に実施する上記の簡単な数式が得られる。この簡単な数式を用いて一度に係数変換をすることで、逆量子化と量子化とを別々に行うより計算を簡略化できる。【０１３７】
ｒｕｎ制御部１７１２は、係数変換部１７０７で０に係数変換された量子化ＤＣＴ係数が入力された場合、この０に変換された量子化ＤＣＴ係数自身は削除し、ブロック係数格納部１７１５に通知しない。ｒｕｎ制御部１７１２に、次の非０量子化ＤＣＴ係数が到達した場合、０に変換された量子化ＤＣＴ係数の削除した数だけｒｕｎを追加して、追加した結果のｒｕｎをブロック係数格納部１７１５に通知する。【０１３８】
係数０ブロック検出部１７１３は、係数変換部１７０７で再度量子化された量子化ＤＣＴ係数が非０化部１７１１を介して通知される。係数０ブロック検出部１７１３は、通知された量子化ＤＣＴ係数から、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したかどうかを検出する。【０１３９】
係数０ブロック検出部１７１３は、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したと検出した場合、ＭＰＥＧ２ではＥＯＢだけのブロックは規格違反であるためＥＯＢを削除するようＥＯＢ削除部１７１４に通知する。ＥＯＢ削除部１７１４は、係数０ブロック検出部１７１３からの通知に基づいて、そのブロックのＥＯＢを削除する。【０１４０】
また、同時に、係数０ブロック検出部１７１３は、そのブロック中のＭＢヘッダ部のＣＢＰを変更するようヘッダ格納部１７０５に通知する。ヘッダ格納部１７０５は、係数０ブロック検出部１７１３からの通知に基づいて、ＭＢヘッダ部のＣＢＰを変更する処理を行う。【０１４１】
最終符号化ブロック検出部１７０８は、可変長復号部１７０１から、ＣＢＰとブロック情報を受け取る。最終符号化ブロック検出部１７０８は、受け取ったＣＢＰとブロック情報とから、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後のブロック、かつ、その最後のブロックの量子化ＤＣＴ係数の中で最初の量子化ＤＣＴ係数かどうかを検出する。【０１４２】
最終符号化ブロック検出部１７０８は、その検出結果を、非０化判定部１７１０に通知する。【０１４３】
非０係数検出部１７０９は、可変長復号部１７０１から出力され、係数変換部１７０７でレート変換されたＭＢの複数のブロックそれぞれにおいて、ブロック中の再量子化された量子化ＤＣＴ係数に少なくとも１つ非０があるかどうかを検出する。【０１４４】
非０係数検出部１７０９は、ＭＢの複数のブロックそれぞれにおいて、非０係数を検出すれば、その旨を非０化判定部１７１０に通知する。【０１４５】
非０化判定部１７１０は、非０係数検出部１７０９からの通知で、非０量子化ＤＣＴ係数を有するＭＢの複数の符号化ブロックの中で最後となる符号化ブロックの第１係数であり、かつ、非０係数検出部１７０９により非０係数が検出されていなければ、非０化部１７１１に０化を禁止するよう通知する。【０１４６】
非０化部１７１１は、係数変換部１７０７で再度量子化され量子化ＤＣＴ係数が入力される。【０１４７】
非０化部１７１１は、ＭＢの複数の符号化ブロックの中で最後となる符号化ブロックの第１係数の、係数変換部１７０７で変換された量子化ＤＣＴ係数が０であり、かつ、０化の禁止が非０化判定部１７１０により指示された場合に限り、その量子化ＤＣＴ係数を“１”などの非０値に置換する。【０１４８】
ヘッダ格納部１７０５は、１ＭＢ全体の変換が終わった時点で、ＭＢヘッダ部のパラメータを可変長符号部１７０２に通知する。可変長符号部１７０２は、ＭＢヘッダ部のストリームを得る。【０１４９】
また、ブロック係数格納部１７１５は、ブロック部の係数を可変長符号部１７０２に通知する。可変長符号部１７０２は、ブロック部のストリームを得る。【０１５０】
それにより、可変長符号部１７０２は、ＭＰＥＧ２のストリームを得る。【０１５１】
ここで、図１７の符号化レート変換装置１７００における構成以外の構成について説明する。【０１５２】
図１８、図１９および図２０は、本発明の実施の形態１における符号化レート変換装置１７００の別の一例を示す構成図である。図１７と同様の要素には同一の符号を付しており、詳細な説明は省略する。【０１５３】
図１８に示す符号化レート変換装置１８００は、図１７に示す符号化レート変換装置１７００の構成における係数変換部１７０７を逆量子化部１８０６および量子化部１８０７に置き換えた構成である。【０１５４】
図１８に示すように、図１７の係数変換部１７０７を逆量子化部１８０６および量子化部１８０７と別々に構成しても本発明と同様の効果を奏することができる。【０１５５】
図１９に示す符号化レート変換装置１９００は、図１７の符号化レート変換装置１７００の構成における係数変換部１７０７および非０化部１７１１を、非０化係数変換部１９０７に置き換えた構成である。【０１５６】
図１７に示す符号化レート変換装置１７００では、係数変換部１７０７で量子化ＤＣＴ係数が０に変換することを許容した上で、非０化部１７１１で独立に非０化を行う。一方、図１９に示す符号化レート変換装置１９００では、この両方の機能を一度に非０化係数変換部１９０７で行わせる。【０１５７】
非０化係数変換部１９０７は、非０化判定部１７１０により非０化処理を適用しないと判定されたときには、ＦＱｏ＝ＦＱｉ×（Ｑｉ／Ｑｏ）の式で動作する。【０１５８】
非０化係数変換部１９０７は、非０化判定部１７１０により非０化処理を適用すると判定されたときには、ＦＱｏ＝ｍｉｎ｛ＦＱｉ×（Ｑｉ／Ｑｏ），１｝として動作する。【０１５９】
図１９の構成は、図１の構成とほぼ同等であり、わずかに構成が簡略化できるという効果を奏する。【０１６０】
図２０に示す符号化レート変換装置２０００は、図１８における符号化レート変換装置１８００の構成の可変長復号部１７０１と逆量子化部１８０６との間にブロック係数格納部２０１６が、逆量子化部１８０６と量子化部１８０７との間にブロック係数格納部２０１７が、量子化部１８０７と非０化部１７１１との間にブロック係数格納部２０１６が挿入された構成である。【０１６１】
なお、図１７、図１８および図１９に示す符号化レート変換装置１７００、１８００および１９００は、非０の量子化ＤＣＴ係数のレート変換を１つずつの単位で処理を行う。一方、図２０に示す符号化レート変換装置２０００は非０の量子化ＤＣＴ係数のレート変換をブロック単位で処理を行う。【０１６２】
また、一般的な画像復号化装置および画像符号化装置はブロック単位で処理を行うため、図２０に示す符号化レート変換装置２０００の構成ではこれらの逆量子化部１８０６や量子化部１８０７などの流用が可能である点で有効である。【０１６３】
また、本発明は図１７、図１８、図１９および図２０に示すいずれの構成でも、実現可能であるが、図１７に示す符号化レート変換装置１７００が処理効率と実現容易性とのバランスがよく好ましい。よって、以降は、図１７の符号化レート変換装置１７００の構成を用いて符号化レート変換装置の動作を説明する。【０１６４】
次に、本発明の実施の形態における符号化レート変換装置１７００の動作について説明する。【０１６５】
図２１は、本発明の実施の形態１の符号化レート変換装置１７００のＭＢ全体処理を示すフロー図である。【０１６６】
まず、可変長復号部１７０１は、ＭＰＥＧ２の符号化ストリームのＭＢヘッダを復号し、復号結果をヘッダ格納部１７０５に通知する。ヘッダ格納部１７０５は、その復号結果を格納する（Ｓ２１０１）。【０１６７】
可変長復号部１７０１は、また、符号化ストリームのＭＢの復号完了後に、復号した符号化ストリームのＭＢのビット量を、レート制御部１７０３に通知する。【０１６８】
次に、レート制御部１７０３は、当該マクロブロック以前の復号ビット量や符号化ビット量に基づいて、内部のレート制御バッファを更新し、目標量子化ステップを算出する（Ｓ２１０２）。すなわち、レート制御部１７０３は、可変長復号部１７０１から得られた今までのＭＢの復号化ビット量と可変長符号部１７０２から得られた今までのＭＢの符号化ビット量とから算出した実績符号化レートに基づいて、目標量子化ステップを算出する。そして、レート制御部１７０３は、算出した目標量子化ステップをＱ値変換部１７０４に通知する。【０１６９】
ここで、符号化装置の場合は、この目標量子化ステップの値をそのまま出力時の量子化ステップとして用いればよいが、レート変換装置の場合は必ずしもそれは得策ではない。例えば、入力時に大きな量子化ステップが指定されたＭＢに対して、小さな量子化ステップを割り当てても、入力したストリームの画質以上に出力するストリームの画質がよくなることはないことは自明である。【０１７０】
したがって、レート変換装置では、目標量子化ステップをそのまま出力時の量子化ステップとして利用するのではなく、入力時の量子化ステップも参照して、出力時の量子化ステップの算出を行う。【０１７１】
次に、Ｑ値変換部１７０４は、入力時の量子化ステップとレート制御部１７０３から入力された目標量子化ステップとから出力時の量子化ステップの算出を行う。Ｑ値変換部１７０４は、算出した新しい量子化ステップを、係数変換部１７０７とヘッダ格納部１７０５とに通知する。その通知にしたがって、ヘッダ格納部１７０５は、格納する量子化スケールコードの書き換えを行う（Ｓ２１０３）。【０１７２】
次に、可変長復号部１７０１は、Ｓ２１０１で復号したＭＢヘッダ部のＣＢＰを参照し、復号ブロック数を確認する（Ｓ２１０４）。【０１７３】
ここで、ＣＢＰを参照した結果、ＭＢタイプが“Ｎｏｔ  Ｃｏｄｅｄ”の場合は（Ｓ２１０４のＮの場合）、量子化ＤＣＴ係数が存在しないので、当該ＭＢのレート変換処理は終了し、ＭＢヘッダの再符号化を行い（Ｓ２１１９）、ＭＢの処理を終了する。すなわち、可変長復号部１７０１は、ＭＢタイプが“Ｎｏｔ  Ｃｏｄｅｄ”の場合は、復号した符号化ストリームのＭＢブロック部のパラメータを、係数変換部１７０７、非０化部１７１１、ｒｕｎ制御部１７１２、ＥＯＢ削除部１７１４およびブロック係数格納部１７１５を介して（素通りさせて）、可変長符号部１７０２に通知する。可変長符号部１７０２は、ヘッダ格納部１７０５からのＭＢヘッダ部のパラメータと可変長復号部１７０１からのＭＢブロック部のパラメータを再符号化する。【０１７４】
ＣＢＰを参照した結果、ＭＢタイプが“Ｃｏｄｅｄ”もしくは“Ｉｎｔｒａ”の場合は、少なくとも１つ以上の符号化ブロックが存在するため、次のステップに進む。【０１７５】
次に、可変長復号部１７０１は、量子化ＤＣＴ係数を１つずつ復号する（Ｓ２１０５）。【０１７６】
量子化ＤＣＴ係数が“ＩｎｔｒａＤＣ”もしくは“ＥＯＢ”の場合は（Ｓ２１０６のＹの場合）、復号したその量子化ＤＣＴ係数は、係数変換部１７０７での係数変換の対象にならない。その場合、Ｓ２１０４のＮの場合と同様に、当該ＭＢのレート変換処理を終了し、ＭＢヘッダの再符号化を行い（Ｓ２１１９）、ＭＢの処理を終了する。【０１７７】
それ以外、すなわち量子化ＤＣＴ係数が“ＩｎｔｒａＤＣ”もしくは“ＥＯＢ”でない場合（Ｓ２１０６のＮ）、係数変換部１０７は、量子化ステップの変更に伴う量子化ＤＣＴ係数の係数変換を行う（Ｓ２１０７）。【０１７８】
ここで、係数変換された量子化ＤＣＴ係数の非０化処理が必要かどうかを判定する。具体的には、まず、最終符号化ブロック検出部１７０８は、可変長復号部１７０１で復号されたＭＢヘッダ部のＣＢＰを参照して、現在変換処理の対象となっているブロックが、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後の符号化ブロックであるかどうかを判定する（Ｓ２１０８）。【０１７９】
次に、非０係数検出部１７０９は、現在変換処理の対象となっているＭＢの係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれていたかどうかを判定する（Ｓ２１０９）。【０１８０】
非０化部１７１１は、非０化判定部１７１０が、Ｓ２１０８が真で、かつ、Ｓ２１０９が偽であると判定した場合は、係数変換後の値が０の場合に限り、“１”などの非０値に変換する（Ｓ２１１１）。ここで、この処理は、変換処理の対象となっているＭＢの量子化ＤＣＴ係数がすべて０に変換されてしまうＭＰＥＧ２規格違反の恐れを、処理の後戻りなく回避するための処理である。【０１８１】
次に、ｒｕｎ制御部１７１２は、係数変換部１７０７で係数変換され、非０化部１７１１を介して入力された量子化ＤＣＴ係数が入力される。【０１８２】
ｒｕｎ制御部１７１２では、入力された量子化ＤＣＴ係数が０である場合は、可変長符号部１７０２で独立とした１つの量子化ＤＣＴ係数として符号化されないように、次の量子化ＤＣＴ係数のｒｕｎとして表現する。【０１８３】
ｒｕｎ制御部１７１２は、入力された係数変換後の量子化ＤＣＴ係数が０である場合は（Ｓ２１１３の０の場合）、次の量子化ＤＣＴ係数で反映するためにｒｕｎを蓄積する処理を行い（Ｓ２１１４）、可変長符号部１７０２で符号化対象としないようにする。【０１８４】
また、ｒｕｎ制御部１７１２は、入力された係数変換後の量子化ＤＣＴ係数が０以外の値である場合は（Ｓ２１１３の！０の場合）、そのままの値を符号化対象とする。このとき、ｒｕｎ制御部１７１２は、Ｓ２１１４でｒｕｎが蓄積されていた場合はそれを反映するｒｕｎ加算の処理を行う（Ｓ２１１５）。【０１８５】
そして、ｒｕｎ制御部１７１２は、次の非０量子化ＤＣＴ係数が入力された場合に、０に変換された量子化ＤＣＴ係数の削除した数だけ追加したｒｕｎをブロック係数格納部１７１５に通知する。ブロック係数格納部１７１５は、通知されたｒｕｎを係数バッファに格納する（Ｓ２１１８）。【０１８６】
また、係数０ブロック検出部１７１３は、ｒｕｎ制御部１７１２に入力された量子化ＤＣＴ係数が係数変換された後の量子化ＤＣＴ係数から、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したかどうかを検出する。【０１８７】
係数０ブロック検出部１７１３は、当該ブロックの量子化ＤＣＴ係数がすべて０を検出した場合、すなわち再符号化対象のＭＢにおけるブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したと検出した場合（Ｓ２１１３のＥＯＢの場合）、ＥＯＢを削除するようＥＯＢ削除部１７１４に通知する。また、同時に係数０ブロック検出部１７１３は、そのブロック中のＭＢヘッダ部のＣＢＰを変更するようヘッダ格納部１７０５に通知する。【０１８８】
係数０ブロック検出部１７１３からの通知に基づいて、ヘッダ格納部１７０５は、ＭＢヘッダ部のＣＢＰを変更し、ＥＯＢ削除部１７１４は、そのブロック終端であるＥＯＢを削除する（Ｓ２１１７）。【０１８９】
ここで、この処理は、変換処理の対象となっているＭＢの符号化ブロックの量子化ＤＣＴ係数がすべて０で変換されてしまいＭＰＥＧ２規格違反してしまう恐れを、処理の後戻りなく回避するための処理である。この処理により、係数変換後すべての量子化ＤＣＴ係数が０になるブロックを符号化対象から外し、ＣＢＰの変更をすることでＭＰＥＧ２規格に準拠させる。【０１９０】
次に、ブロック係数格納部１７１５は、ＥＯＢ削除部１７１４を介して通知されたｒｕｎを、可変長符号部１７０２で符号化対象となる量子化ＤＣＴ係数として係数バッファに格納し（Ｓ２１１８）、次の係数の処理に移行する（Ｓ２１０４）。【０１９１】
上述したＳ２１０４〜Ｓ２１１８の処理を繰り返し、可変長符号部１７０２で符号化対象ブロックとなるすべてのブロックの復号が完了すれば（Ｓ２１０４のＮの場合）、ＭＢヘッダ中のＣＢＰの値は確定される。確定されたＣＢＰの値に基づいて、ヘッダ格納部１７０５の内容を可変長符号部１７０２にて符号化する（Ｓ２１１９）。【０１９２】
最後に、ブロック係数格納部１７１５に格納されている１マクロブロック分の量子化ＤＣＴ係数の内容を、可変長符号部１７０２にて符号化する（Ｓ２１２０）。【０１９３】
それにより、可変長符号部１７０２は、ＭＢヘッダ部およびブロック部のストリームを得る。【０１９４】
以上のようにして、符号化レート変換装置１７００は、ＭＢ全体処理を行う。【０１９５】
図２２は、本発明の実施の形態１の符号化レート変換装置１７００の最終符号化ブロック判定処理を示すフロー図である。図２２では、符号化レート変換装置１７００の最終符号化ブロック検出部１７０８における最終符号化ブロック判定（Ｓ２１０８）を詳細に説明する。【０１９６】
まず、最終符号化ブロック検出部１７０８は、可変長復号部１７０１から入力されるＭＢの先頭で、復号ブロック数を０に初期化する（Ｓ２２０１）。【０１９７】
次に、最終符号化ブロック検出部１７０８は、可変長復号部１７０１から入力されるＭＢから取得した量子化ＤＣＴ係数を１つ読み込む（Ｓ２２０２）。【０１９８】
次に、最終符号化ブロック検出部１７０８は、係数変換部１７０７で係数変換対象となる可変長復号部１７０１で復号された復号ブロック数の数と、ＣＢＰで示されるＭＢの符号化ブロック数（総数）とを比較する。最終符号化ブロック検出部１７０８は、可変長復号部１７０１で復号された現在の復号ブロック数の数がＭＢの符号化ブロック総数より１小さければ（Ｓ２２０３のＹの場合）、現在復号され、係数変換部１７０７で係数変換対象となる量子化ＤＣＴ係数が、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックのものであると判定する。【０１９９】
ここでは、最終符号化ブロック検出部１７０８は、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックであるかどうかを、その最終の符号化ブロックとなり得るブロック中の最初の係数（第１係数）を最終符号化ブロックとして判定する。【０２００】
次に、最終符号化ブロック検出部１７０８は、非０量子化ＤＣＴ係数を有する最終の符号化ブロックをすでに判定済みかどうかを判断する（Ｓ２２０４）。【０２０１】
最終符号化ブロック検出部１７０８がまだ判定済みでない場合（Ｓ２２０４のＮの場合）、最終の符号化ブロックとなり得るブロック中の最初の係数（第１係数）を検出し、検出した最初の係数（第１係数）を最終符号化ブロックとして判定する（Ｓ２２０５）。ここで、最終符号化ブロックと判定されたブロック中の２番目以降の量子化ＤＣＴ係数では、Ｓ２２０５ですでに判定済みのため、判定されない。すなわち２番目以降の量子化ＤＣＴ係数に対する判定はスキップされる。【０２０２】
次に、最終符号化ブロック検出部１７０８は、現在復号され、最終符号化ブロック検出部１７０８に入力された量子化ＤＣＴ係数が“ＥＯＢ”であるかどうかを判定する（Ｓ２２０６）。【０２０３】
最終符号化ブロック検出部１７０８は、その量子化ＤＣＴ係数が“ＥＯＢ”でないと判定すれば（Ｓ２２０６のＮの場合）、まだブロックが継続しているので、次の量子化ＤＣＴ係数の復号に戻り、Ｓ２２０２からの処理を繰り返す。【０２０４】
最終符号化ブロック検出部１７０８は、その量子化ＤＣＴ係数が“ＥＯＢ”であると判定すれば（Ｓ２２０６のＹの場合）、現在の復号ブロック数を１増加させ（Ｓ２２０６）、１増加させた復号ブロック数の数と、ＣＢＰで示されるＭＢの符号化ブロック数（総数）とを比較する（Ｓ２２０８）。【０２０５】
最終符号化ブロック検出部１７０８は、１増加させた復号ブロック数と符号化ブロック数とが一致すれば（Ｓ２２０８のＹの場合）、ＭＢのすべての符号化ブロックの復号が完了したので、処理を終了する。【０２０６】
最終符号化ブロック検出部１７０８は、１増加させた復号ブロック数と符号化ブロック数が一致しなければ（Ｓ２２０８のＮの場合）、まだ復号すべき符号化ブロックが存在するため、次の量子化ＤＣＴ係数の復号に戻り、Ｓ２２０２からの処理を繰り返す。【０２０７】
以上のようにして、最終符号化ブロック検出部１７０８は最終符号化ブロック判定を行う。【０２０８】
図２３は、本発明の実施の形態１の符号化レート変換装置１７００の非０係数検出処理を示すフロー図である。図２３では、符号化レート変換装置１７００の非０係数検出部１７０９における非０係数検出（Ｓ２１０９）を詳細に説明する。【０２０９】
まず、非０係数検出部１７０９は、非０化部１７１１から出力されるＭＢの先頭で、現ＭＢ変換後係数０フラグをＯＮに初期化する（Ｓ２３０１）。【０２１０】
次に、非０係数検出部１７０９は、可変長復号部１７０１から入力され、係数変換部１７０７でレート変換された後の量子化ＤＣＴ係数を１つ読み込む（Ｓ２３０２）。【０２１１】
非０係数検出部１７０９は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”であれば（Ｓ２３０３のＹの場合）、ＭＢのすべての符号化ブロックの処理が完了したかどうかを検出する（Ｓ２３０６）。【０２１２】
ＭＢのすべての符号化ブロックの処理が完了していなければ（Ｓ２３０６のＮの場合）、処理を継続し、完了していれば（Ｓ２３０６のＹの場合）、ＭＢの処理が完了する。なお、符号化ブロックの終了判定は図２２の処理フローと同等のため、詳細は省略する。【０２１３】
また、非０係数検出部１７０９は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”でなければ（Ｓ２３０３のＮの場合）、非０係数検出部１７０９は、レート変換後の量子化ＤＣＴ係数が０であるかどうかを判定する（Ｓ２３０４）。【０２１４】
非０係数検出部１７０９は、レート変換後の量子化ＤＣＴ係数が０でなければ（Ｓ２３０４のＮの場合）、現在のＭＢで非０化処理を行う必要がないため、現ＭＢ変換後係数０フラグをＯＦＦに落とす（Ｓ２３０５）。【０２１５】
ただし、ＭＢ内で一度も０でない係数が発生していなければ、依然として非０化処理が必要な可能性があるので、フラグをＯＮのまま保つ。【０２１６】
以上のようにして、非０係数検出部１７０９は、非０係数検出を行う。【０２１７】
図２４は、本発明の実施の形態１の符号化レート変換装置１７００の係数０ブロック検出処理を示すフロー図である。図２４では、符号化レート変換装置１７００においてＣＢＰの変更が必要かどうかの判定に必要となる、係数０ブロック検出部１７１３での係数０ブロック検出（Ｓ２３１６）を詳細に説明する。【０２１８】
まず、係数０ブロック検出部１７１３は、非０化部１７１１から出力されるＭＢのブロックの先頭で、現ブロック変換後係数０フラグをＯＮに初期化する（Ｓ２４０１）。【０２１９】
次に、係数０ブロック検出部１７１３は、可変長復号部１７０１から入力され、係数変換部１７０７でレート変換された後の量子化ＤＣＴ係数を１つ読み込む（Ｓ２４０２）。【０２２０】
係数０ブロック検出部１７１３は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”であれば（Ｓ２４０３のＹの場合）、現在の符号化ブロックの処理は終了する。【０２２１】
このとき、現ブロック変換後係数０フラグがＯＦＦであれば、少なくとも１つ以上の量子化ＤＣＴ係数が非０係数であるので、ヘッダ格納部１７０５でＣＢＰは変更されない。現ブロック変換後係数０フラグがＯＮであれば、非０係数は１つも存在しないので、ヘッダ格納部１７０５で、ＣＢＰの該当ブロックの値が１（符号化ブロック）から０（係数０ブロック）に変更される。その後、フラグの初期化に戻り、Ｓ２４０１、Ｓ２４０２およびＳ２４０３の処理を行う。Ｓ２４０３において、すべての符号化ブロックの処理が完了していれば（Ｓ２４０６）、ＭＢ全体の処理が終了する。【０２２２】
また、係数０ブロック検出部１７１３は、Ｓ２４０４において、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”でなければ（Ｓ２４０３のＮの場合）、レート変換された後の量子化ＤＣＴ係数が０であるかを確認する（Ｓ２４０４）。【０２２３】
係数０ブロック検出部１７１３は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が０でなければ（Ｓ２４０４のＮの場合）、ＣＢＰは変更される必要がないので、現ブロック変換後に係数０フラグをＯＦＦに落とす（Ｓ２４０５）。そして、Ｓ２４０２の処理へと戻る。【０２２４】
ただし、係数０ブロック検出部１７１３は、Ｓ２４０５において、ＭＢのブロック内で一度も０でない係数が発生していなければ、依然としてＣＢＰの変更が必要である可能性があるので、フラグをＯＮのまま保つ。【０２２５】
以上のようにして、係数０ブロック検出部１７１３は、係数０ブロック検出を行う。【０２２６】
なお、図２２の処理フローでは、最終符号化ブロック検出部１７０８での判定に、第１係数の判定も含めている。これは、第１係数の判定までを行うことで、第２係数以降の量子化ＤＣＴ係数が非０化するように判定されるのを防止するためである。ただし、ここで第１係数の判定を含めなかったとしても、第１係数が非０化され、非０係数検出部１７０９での判定が変化するので、第２係数以降が非０化されることはない。したがって、この処理フローの中では、第１係数の判定まで含めても、含めなくてもよい。【０２２７】
次に、本発明の符号化レート変換装置１７００の具体的な動作を、図を用いて以下説明する。【０２２８】
図２５、図２６、図２７および図２８は、本発明の実施の形態１の符号化レート変換装置１７００での変換の一例を示す図である。【０２２９】
図２５では、最終符号化ブロックの非０化処理が不要の場合（図２５（ａ））と必要な場合（図２５（ｂ））の例を示している。【０２３０】
図２５に示すように、レート変換対象のＭＢのＣＢＰは０１１１１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂとなる。【０２３１】
なお、最終符号化ブロックより以前のブロックでは、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００と同様に動作するので説明を省略する。【０２３２】
本発明の符号化レート変換装置１７００では、最終符号化ブロック以前のブロック変換後（すなわち最終符号化ブロック変換直前）の状態によって、最終符号化ブロックの変換方法が異なる。【０２３３】
図２５（ａ）では、すでに４番目の輝度（右下）が符号化ブロックとして確定している。５番目の色差（青）Ｃｂの最終符号化ブロックは、係数０ブロックに変換されたとしても４番目のブロックのＣＢＰが１であるので（ＣＢＰ＝０００１Ｘ０）、ＣＢＰが０になることがない。したがって、非０化処理を行わなくてよい。【０２３４】
ここで、非０化処理を行わない場合の結果は、ＣＢＰは０００１００となり、ＣＢＰが０にはなっていない。【０２３５】
図２５（ｂ）では、最終符号化ブロック以前のブロックがすべて係数０ブロックに変換されている（ＣＢＰ＝００００Ｘ０）。したがって、５番目の色差（青）Ｃｂの最終符号化ブロックが係数０ブロックに変換すると不都合（ＣＢＰ＝００００００）が生じるため、非０化処理を行う。【０２３６】
ここで、非０化処理を行う場合の結果は、ＣＢＰは００００１０となり、ＣＢＰが０にならない。【０２３７】
次に、本発明の符号化レート変換装置１７００における、非０化処理を伴わない場合のブロック係数変換処理について、図２６を用いて説明する。【０２３８】
図２６では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。また図２６の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。【０２３９】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数を変換する。最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）は（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換される。【０２４０】
ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０の場合は、量子化ＤＣＴ係数を符号化しないようにするため、この量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝０）を削除する（ブロック係数格納部１７１５に通知しない）と同時に、次の量子化ＤＣＴ係数で加算反映するためにｒｕｎを蓄積する。【０２４１】
図２６の例では、削除対象となる量子化ＤＣＴ係数のｒｕｎは１であり、削除対象となる量子化ＤＣＴ係数が加算されてｒｕｎが１増加する。そのため、蓄積すべきｒｕｎは１＋１＝２となる。【０２４２】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝２）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝２）を（ｒｕｎ＝５、ｌｅｖｅｌ＝１）に変換する。【０２４３】
ｒｕｎ制御部１７１２は、蓄積していたｒｕｎを量子化ＤＣＴ係数に反映させて、ｒｕｎ＝５＋２＝７に変換する（ｒｕｎ＝７、ｌｅｖｅｌ＝１）。また、ｒｕｎ制御部１７１２は、変換した量子化ＤＣＴ係数（ｒｕｎ＝７、ｌｅｖｅｌ＝１）をブロック係数格納部１７１５に通知し、さらには蓄積していたｒｕｎを０に（クリア）する。【０２４４】
最後に、係数変換部１７０７は、ブロックの３番目の係数（ＥＯＢ）を読み込む。この場合、ＥＯＢはそのままブロック係数格納部１７１５に格納させる。【０２４５】
次に、本発明の符号化レート変換装置１７００の非０化処理を伴わない場合の係数変換処理について、別の例である図２７を用いて説明する。【０２４６】
図２７では、図２６と同様に、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。また図２７の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。【０２４７】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。【０２４８】
ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０のため、ｒｕｎ＝１＋１＝２を蓄積するとともに、量子化ＤＣＴ係数を削除する。【０２４９】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝０）に変換する。【０２５０】
ｒｕｎ制御部１７１２は、すでに蓄積されている２に加え、削除対象の量子化ＤＣＴ係数のｒｕｎ＝５と、削除対象となる量子化ＤＣＴ係数自身によるｒｕｎの増加分１を加える。すなわち、ｒｕｎ制御部１７１２は、蓄積すべきｒｕｎを２＋５＋１＝８とするとともに量子化ＤＣＴ係数を削除する。【０２５１】
最後に、係数変換部１７０７は、ブロックの３番目の係数（ＥＯＢ）を読み込む。【０２５２】
ここで、係数０ブロック検出部１７１３は、１番目の変換後係数のｌｅｖｅｌが０であり、２番目の変換後係数のｌｅｖｅｌも０であるため、係数０ブロックとして検出する。【０２５３】
なお、係数０ブロックへの変換時には、ヘッダ格納部１７０５でＣＢＰを変更するとともに、ＥＯＢ削除部１７１４で、ＥＯＢも削除する。【０２５４】
したがって、図２７の例の符号化ブロックでは、ブロック係数格納部１７１５には、係数が１つも格納されないことになる。【０２５５】
図２７の例では、非０化処理を伴わなかったので、係数０ブロックへの変換を行った。非０化処理を伴う場合は、係数０ブロックへの変換を防止する処理を行う。【０２５６】
次に、本発明の符号化レート変換装置１７００の非０化処理を伴う場合の係数変換処理について、図２８を用いて説明する。【０２５７】
図２８では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。図２８では、非０化処理が適用される。また、図２８の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。【０２５８】
まず、係数変換部１７０７は、符号化ブロックの量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、最初の量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝１）から（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。【０２５９】
非０化部１７１１は、非０化処理を伴う場合、符号化ブロックの最初の量子化ＤＣＴ係数がｌｅｖｅｌ＝０であった場合、非０値に変更する（この場合は１に変更）処理を行う。すなわち、非０化部１７１１は、変換後の最初の量子化ＤＣＴ係数の（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を、（ｒｕｎ＝１、ｌｅｖｅｌ＝１）に非０化処理する。そして、非０化部１７１１は、非０化処理した旨をブロック係数格納部１７１５に通知する。【０２６０】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を読み込み、量子化ＤＣＴ係数を（ｒｕｎ＝５、ｌｅｖｅｌ＝０）に変換する。ここで、次の量子化ＤＣＴ係数は、符号化ブロックの最初の係数ではないので、非０化部１７１１では非０化処理は行われない。【０２６１】
したがって、ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０のために、ｒｕｎ＝５＋１を蓄積するとともに、量子化ＤＣＴ係数を削除する。【０２６２】
最後に、ブロックの最後の係数（ＥＯＢ）を読み込む。【０２６３】
ここまで、係数０ブロック検出部１７１３は、第１係数が非０化処理により、係数０ブロックを検出しない。そのため、ＥＯＢはそのまま、ブロック係数格納部１７１５に格納される。また、ｒｕｎ制御部１７１２は、ＥＯＢを検出すると蓄積するｒｕｎを０に（クリア）する。【０２６４】
以上の図２６〜図２８で示したように、非０化処理を伴わない係数変換処理、非０化処理を伴う係数変換処理が実現できる。そのため、ＭＰＥＧ２の符号化レートを変換する際のＭＰＥＧ２規格違反の恐れを回避できる符号化レート変換が実現できる。【０２６５】
かかる構成によれば、符号化ブロックが係数０ブロックに変換されることを検出してから量子化ＤＣＴ係数を非０化するのではなく、あらかじめ符号化ブロックが係数０ブロックに変換されることを予測して、量子化ＤＣＴ係数を非０化するため、後戻り処理が発生しない。【０２６６】
また、かかる構成によれば、すべての符号化ブロックが係数０ブロックに変更されることがなくなるので、必ず規格に準拠した変換を行うことができる。【０２６７】
また、かかる構成によれば、すべての符号化ブロックを符号化ブロックのまま残すのではなく、必要最低限の符号化ブロックだけを残すので、効率よくレート変換を行うことができる。【０２６８】
なお、本例はＭＰＥＧ２を前提として記載しているが、ＭＰＥＧ１でも同様の議論が成立する。また、ＭＰＥＧ１／２以外の画像コーデックにおいても、ＣＢＰを０以外から０に変更する場合に、複雑な処理が発生するのであれば、同様の議論が成立する。【０２６９】
また、本例はＤＣＴ変換を利用する画像コーデックを前提として記載しているが、ＤＣＴ変換以外の直交変換を利用していても、同様の議論が成立する。【０２７０】
また、本例は８×８サイズのブロックを用いる画像コーデックを前提として記載しているが、それ以外のサイズでも同様の議論が成立する。【０２７１】
また、本例は４：２：０（輝度、色差、色差）の６ブロック構成を用いる画像コーデックを前提として記載しているが、４：２：２などその他のブロック構成を用いる画像コーデックでも同様の議論が成立する。【０２７２】
また、本例は係数変換時に小数点以下を切り捨てることを前提として記載しているが、小数点以下は四捨五入であっても、その他の方法で整数化していても、同様の議論が成立する。【０２７３】
（実施の形態２）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行う場合、本来は０に変換させるべき量子化ＤＣＴ係数を０以外に変換する。このとき、本来０への変換が非０化により妨げられることにより、符号化レート変換時の誤差が増大することになる。【０２７４】
実施の形態１の方法において、誤差が発生するのは、最後に符号化されたブロックである。ＭＰＥＧ２では輝度および色差の順でブロックが符号化されるので、色差に誤差が発生する可能性が高くなる。人間の視覚的な性質から輝度は色差より敏感であるため、輝度に比べて、色差に誤差が発生する可能性が高いこと自体は問題ない。しかし、ＭＰＥＧ２では、前記の視覚的な性質を利用して、標準で４：２：０（色差の情報を輝度の情報量の１／４で６ブロック構成）で符号化するため、色差ではすでに情報が落ちている。すでに情報量が落ちた色差に対してさらに誤差を重畳することになる。【０２７５】
したがって、情報量の多い輝度に比べて、色差では影響が大きく発生する場合が考えられるが、非０化による誤差の発生をできるだけ輝度だけにとどめたい。そこで、本発明の実施の形態２では、非０化による誤差の発生をできるだけ輝度だけにとどめたいという要求に対応するための符号化レート変換装置２９００について、以下に説明する。【０２７６】
図２９は、本発明の実施の形態２における符号化レート変換装置２９００の構成図である。【０２７７】
図２９の符号化レート変換装置２９００は、図１７の符号化レート変換装置１７００と比較して、最終符号化ブロック検出部１７０８が、輝度最終符号化ブロック検出部２９０８に置き換わった構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。【０２７８】
輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１から、ＣＢＰとブロック情報を受け取る。【０２７９】
輝度最終符号化ブロック検出部２９０８は、受け取ったＣＢＰとブロック情報とから、符号化されたブロック（ＣＢＰ）の輝度に属するブロックの中で非０量子化ＤＣＴ係数を有する最後のブロック、かつ、その最後のブロックの量子化ＤＣＴ係数の中での最初の量子化ＤＣＴ係数かどうかを検出する。【０２８０】
輝度最終符号化ブロック検出部２９０８は、その検出結果を、非０化判定部１７１０に通知する。【０２８１】
図３０は、本発明の実施の形態２における符号化レート変換装置２９００の最終符号化ブロック判定処理を示すフロー図である。図２２の処理フローと同様の処理には同一の符号を付している。【０２８２】
本発明の実施の形態１における図２２の処理フローと比較して、Ｓ３００３とＳ３３０４の処理が追加され、Ｓ３００５が図２２のＳ２２０５と置き換えられている。【０２８３】
Ｓ３００３において、輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがあるかどうかを判定する。【０２８４】
輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがあれば（Ｓ３００３のＹの場合）、輝度の符号化ブロック数と復号ブロック数を比較して、最終の輝度符号化ブロックかどうかを判定する（Ｓ３００４）。【０２８５】
具体的には、輝度最終符号化ブロック検出部２９０８は、係数変換部１７０７で係数変換対象となる可変長復号部１７０１で復号された復号ブロック数の数と、ＣＢＰで示される輝度の符号化ブロック数とを比較する。輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１で復号された現在の復号ブロック数が輝度の符号化ブロック総数より１小さければ（Ｓ３００４のＹの場合）、現在復号され、係数変換部１７０７で係数変換対象となる量子化ＤＣＴ係数が、符号化される輝度のブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックのものであると判定する。【０２８６】
また、Ｓ３００３において、輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがなければ、Ｓ２２０３に進み、実施の形態１と同様の判定を行う。【０２８７】
その他の処理フローは図２２と同じであるため、詳細な説明は省略する。【０２８８】
なお、Ｓ３００５において、輝度最終符号化ブロック検出部２９０８は、最終の輝度の符号化ブロックとなり得る輝度のブロック中の最初の係数（第１係数）を検出し、検出した最初の係数（第１係数）を最終輝度符号化ブロックとして判定する。【０２８９】
本発明の実施の形態２における符号化レート変換装置２９００の非０係数検出判定フローは、実施の形態１における図２３のＳ２３０１〜Ｓ２３０６と同様であるため、図示および詳細な説明は省略する。【０２９０】
また、本発明の実施の形態２における符号化レート変換装置２９００の係数０ブロック検出フローは、実施の形態１における図２４のＳ２４０１〜Ｓ２４０６と同様であるため、図示および詳細な説明は省略する。【０２９１】
図３１は、本発明の実施の形態２の符号化レート変換装置２９００のＭＢ全体処理を示すフロー図である。図２１の処理フローと同様の処理には同一の符号を付している。【０２９２】
図３１は、本発明の実施の形態１における図２１の処理フローと比較して、Ｓ３１０８が図２１のＳ２１０８と置き換えられている。【０２９３】
Ｓ３１０８において、輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１で復号されたＭＢヘッダ部のＣＢＰを参照して、符号化ブロックに輝度ブロックがあれば、現在変換処理の対象となっている輝度ブロック輝度が、符号化される輝度ブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後の輝度ブロックであるかどうかを判定する（Ｓ３１０８）。【０２９４】
その他の処理フローは図２１と同じであるため、詳細な説明は省略する。【０２９５】
次に、本発明の実施の形態２における符号化レート変換装置２９００の具体的な動作について図を用いて説明する。【０２９６】
図３２は、本発明の実施の形態２の符号化レート変換装置２９００での変換の一例を示す図である。【０２９７】
図３２では、最終輝度符号化ブロックの非０化処理が不要の場合（図３２（ａ））と必要な場合（図３２（ｂ））の例を示している。【０２９８】
図３２に示すように、レート変換対象のＭＢのＣＢＰは０１１０１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂであるが、輝度の最終符号化ブロックは３番目の輝度（左下）となる。【０２９９】
なお、輝度最終符号化ブロックより以前のブロック（１番目〜２番目のブロック）では、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００と同様に動作するので説明を省略する。【０３００】
符号化レート変換装置２９００では、輝度最終符号化ブロック以前のブロック変換後（すなわち輝度最終符号化ブロック変換直前）の状態によって、最終符号化ブロックの変換方法が異なる。【０３０１】
図３２（ａ）では、すでに２番目の輝度（右上）が符号化ブロックとして確定している。【０３０２】
すなわち、図３２（ａ）において、最終輝度符号化ブロック以外の変換時点でＣＢＰ（Ｙ）＝０１Ｘ０である。そのため、輝度最終符号化ブロックが係数０ブロックに変換されたとしても、２番目のブロックのＣＢＰが１であるので（ＣＢＰ＝０１Ｘ０Ｘ０）、ＣＢＰが０になることがない。したがって、非０化処理を行わなくてよい。【０３０３】
ここで、非０化処理を行わない場合の結果は、ＣＢＰ＝０１００００となり、ＣＢＰが０にはなっていない。【０３０４】
図３２（ｂ）では、輝度最終符号化ブロック以前のブロック（符号化ブロックの１番目および２番目のブロック）がすべて係数０ブロックに変換されている（ＣＢＰ（Ｙ）＝００Ｘ０）。したがって、３番目の輝度最終符号化ブロックを係数０ブロックに変換すると、規格違反が発生する可能性があるため、非０化処理が必要になる。ここでは、３番目の輝度最終符号化ブロックに対して非０化処理を行う（ＣＢＰ（Ｙ）＝００１０）。【０３０５】
この場合、輝度ブロックで非０の量子化ＤＣＴ係数をもつ符号化ブロックが存在することが確定するので、色差の符号化ブロックは、非０化処理は不要である。【０３０６】
なお、ここで図示していないが、レート変換対象のＭＢのＣＢＰが００００１０（２進数）など、輝度ブロックが１つも存在していない場合には、実施の形態１と同様に、最終符号化ブロックを非０化対象として、係数変換を行う。【０３０７】
また、非０化処理を伴わない、および非０化処理を伴う係数変換処理に関しては、実施の形態１と同じであるため、説明を省略する。【０３０８】
かかる構成によれば、非０化処理が輝度ブロックだけに発生するので、色差ブロックの非０化誤差による画質低下を防止することができる。【０３０９】
（実施の形態３）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行うかどうかを判定するのに、特定の符号化ブロック検出や非０係数検出（変換後の係数に非０の量子化ＤＣＴ係数が含まれている）といった複雑な処理を行っている。【０３１０】
そこで、本発明の実施の形態３では、より簡易的な処理が可能な検出方法に対応するための符号化レート変換装置３３００について以下に説明する。【０３１１】
図３３は、本発明の実施の形態３における符号化レート変換装置３３００の構成図である。【０３１２】
図３３の符号化レート変換装置３３００は、図１７の符号化レート変換装置１７００と比較して、最終符号化ブロック検出部１７０８が、第１符号化ブロック検出部３３０８に置き換わり、非０係数検出部１７０９が削除された構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。【０３１３】
第１符号化ブロック検出部３３０８は、可変長復号部１７０１から、ＣＢＰとブロック情報とを受け取る。第１符号化ブロック検出部３３０８は、受け取ったＣＢＰとブロック情報から、符号化されるマクロブロックの最初の量子化ＤＣＴ係数を検出して、非０化判定部１７１０を通じて、非０化部１７１１に通知する。【０３１４】
図３４は、本発明の実施の形態３における符号化レート変換装置３３００のＭＢ全体処理を示すフロー図である。図２１のＭＢ全体処理フローと同様の処理には同一の符号を付している。【０３１５】
本発明の実施の形態１における図２１のＭＢ全体処理フローと比較して、図２１のＳ２１０８における最終符号化ブロックの第１係数の判定が、Ｓ３４０８における第１符号化ブロックの最初の係数の判定に置き換わり、Ｓ２１０９における“現ＭＢの変換後係数の１つ以上が非０”の判定が不要になっている。【０３１６】
その他の処理フローは図２１と同じであるため、説明は省略する。【０３１７】
図３５は、本発明の実施の形態３の符号化レート変換装置３３００の第１符号化ブロック判定処理を示すフロー図である。図２２の処理フローと同様の処理には同一の符号を付している。【０３１８】
本発明の実施の形態１における図２２の処理フローと比較して、図２２のＳ２２０３が削除され、Ｓ３５０５が図２２のＳ２２０５と置き換えられている。【０３１９】
図３５では、図２２のＳ２２０３の復号ブロック数＝符号化ブロック数−１の判定が不要になっている点が異なる。【０３２０】
Ｓ３５０５において、第１符号化ブロック検出部３３０８が検出する第１符号化ブロックの第１係数は、ＭＢ開始後の最初の係数である。そのため、図２２のＳ２２０３での量子化ＤＣＴ係数位置の判定が不要である。【０３２１】
その他の処理フローは、図２２と同じであるため、詳細な説明を省略する。【０３２２】
本発明の実施の形態３における符号化レート変換装置３３００の非０係数検出判定フローは、実施の形態１における図２３のＳ２３０１〜Ｓ２３０６と同様であるため、図示および詳細な説明は省略する。【０３２３】
本発明の実施の形態３における符号化レート変換装置３３００の係数０ブロック検出フローは、実施の形態１における図２４のＳ２４０１〜Ｓ２４０６と同様であるため、図示および詳細な説明は省略する。【０３２４】
次に、本発明の実施の形態３における符号化レート変換装置３３００の具体的な動作について図を用いて説明する。【０３２５】
図３６は、本発明の実施の形態３の符号化レート変換装置３３００での変換の一例を示す図である。【０３２６】
図３６では、第１符号化ブロックの非０化処理が必要な場合の例を示している。【０３２７】
図３６に示すように、レート変換対象のＭＢのＣＢＰは０１１０１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂであるが、第１符号化ブロックは２番目の輝度Ｙ（右上）となる。【０３２８】
図３６において、符号化レート変換装置３３００は、第１符号化ブロック（図３６中２番目のブロック）に対して、非０化処理を行う。【０３２９】
図３６に示す例では、第１符号化ブロック以前のブロック（図３６中１番目のブロック）は係数０ブロックである。この段階では、ＣＢＰ＝０ＸＸ０ＸのＸ部分が係数０ブロックに変換され、規格違反が発生する可能性がある。図３６の例では、第１符号化ブロックを常に非０化処理することにより、ＣＢＰ＝０１００００が保証されるので、規格違反の恐れは回避できる。【０３３０】
ここで、第２符号化ブロック以降は、すでに第１符号化ブロックが符号化ブロックとして確定している。そのため、その他のすべてのブロックが係数０ブロックになったとしても、ＣＢＰが０になることがないため、第２符号化ブロック以降に対して非０化処理を行う必要がない。【０３３１】
また、非０化処理を伴わない、および非０化処理を伴う係数変換処理に関しては、実施の形態１と同じであるため、説明を省略する。【０３３２】
かかる構成によれば、非０化処理を行う対象の符号化ブロックを第１符号化ブロックに固定することで対象ブロックの判定処理が簡略化できる。さらに、変換後の量子化ＤＣＴ係数が非０であるかどうかの検出も不要になるため、実施の形態１の符号化レート変換装置１７００と比較して、簡易的な構成とすることができる。【０３３３】
（実施の形態４）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行う際に、非０化の係数を１と固定としていた。そのため、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数が負数であった場合、非０化の際に発生する誤差が大きくなることが考えられる。【０３３４】
そこで、本発明の実施の形態４では、係数変換前の量子化ＤＣＴ係数の値を考慮することで非０化時の誤差を削減することに対応するための符号化レート変換装置３７００について以下に説明する。【０３３５】
図３７は、本発明の実施の形態４における符号化レート変換装置３７００の構成図である。【０３３６】
図３７の符号化レート変換装置３７００は、図１７の符号化レート変換装置１７００と比較して、符号判定部３７１６が追加され、図１７非０化部１７１１が非０化部３７１１に置き換わった構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。【０３３７】
符号判定部３７１６は、可変長復号部１７０１から入力され係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号を検出し、非０化部３７１１に通知する。【０３３８】
ここで、非０化部３７１１が非０化処理を行う量子化ＤＣＴ係数のみ符号判定をすることで、処理を軽減させることができる。【０３３９】
非０化部３７１１は、係数変換部１７０７で再度量子化され量子化ＤＣＴ係数が入力される。【０３４０】
非０化部３７１１は、入力された量子化ＤＣＴ係数に非０化処理を行う。非０化部３７１１は、入力された量子化ＤＣＴ係数を、符号判定部３７１６で検出された符号が＋の場合は＋１に置換する。非０化部３７１１は、入力された量子化ＤＣＴ係数を、符号判定部３７１６で検出された符号が−の場合は−１に置換する。【０３４１】
図３８は、本発明の実施の形態４における符号化レート変換装置３７００のＭＢ全体処理を示すフロー図である。図２１の処理フローと同様の処理には同一の符号を付している。【０３４２】
図３８では、本発明の実施の形態１における図２１のＭＢ全体処理フローと比較して、図２１のＳ１２１１の“係数の非０化”が、Ｓ３８１０、Ｓ３８１１およびＳ３８１２に置き換わっている。【０３４３】
Ｓ２１０９において、非０係数検出部１７０９は、現在変換処理の対象となっているＭＢの係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれていたかどうかを判定する。【０３４４】
Ｓ２１０９において、係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれ、量子化ＤＣＴ係数の非０化が決定された後、符号判定部３７１６は、可変長復号部１７０１から入力された係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号を検出する（Ｓ３８１０）。【０３４５】
非０化部３７１１は、符号判定部３７１６で検出された符号が＋であれば（Ｓ３８１０のＹの場合）、係数を＋１などの正数に置き換える（Ｓ３８１１）。【０３４６】
非０化部３７１１は、符号判定部３７１６で検出された符号が−であれば（Ｓ３８１０のＮの場合）、係数を−１などの負数に置き換える（Ｓ３８１２）。【０３４７】
その他の処理フローは図２１と同じであるため、説明は省略する。【０３４８】
本発明の実施の形態４における符号化レート変換装置３７００の最終符号化ブロック判定の処理フローは、実施の形態１の図２２と同様であるため、図示および詳細な説明は省略する。【０３４９】
本発明の実施の形態４における符号化レート変換装置３７００の非０係数検出判定フローは、実施の形態１の図２３と同様であるため、図示および詳細な説明は省略する。【０３５０】
本発明の実施の形態４における符号化レート変換装置３７００の係数０ブロック検出フローは、実施の形態１の図２４と同様であるため、図示および詳細な説明は省略する。【０３５１】
次に、本発明の実施の形態４における符号化レート変換装置３７００の具体的な動作を、図を用いて以下説明する。なお、符号化レート変換装置３７００の具体的な動作は、非０化処理を伴うブロック係数変換処理を除いて、実施の形態１での動作と同様であるため、説明を省略する。【０３５２】
図３９は、本発明の実施の形態４の符号化レート変換装置３７００での変換の一例を示す図である。本発明の符号化レート変換装置３７００の非０化処理を伴う係数変換処理について、図３９中（ａ）を用いて説明する。【０３５３】
図３９では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×４＝１６で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。図３９では、非０化処理が適用される。また、図３９の例では、ｌｅｖｅｌの値の小数点以下を切り捨てる。【０３５４】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝−２）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝１６：ここではＱ値を４から１６に変換する。）に基づくと、最初の量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝１）から（ｒｕｎ＝１、ｌｅｖｅｌ＝−２／４＝−０．５）に変換することになる。しかし、ｌｅｖｅｌは整数であるので、実際は（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。【０３５５】
非０化部３７１１は、非０化処理を伴う場合、符号化ブロックの最初の量子化ＤＣＴ係数がｌｅｖｅｌ＝０であった場合に非０の値に変更する処理を行う。【０３５６】
まず、符号判定部３７１６は、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数ｌｅｖｅｌを参照して、検出したその符号を非０化部３７１１に通知する。ここでは、符号判定部３７１６は、−符号を非０化部３７１１に通知する。【０３５７】
次に、非０化部３７１１は、非０の値として−１を利用する。したがって、この場合、発生する誤差は｜−１−（−０．５）｜＝０．５になる。【０３５８】
一方、実施の形態１のように、非０の値を１固定とすると、発生する誤差は｜１−（−０．５）｜＝１．５となる。両者を比べると誤差が小さくなっているのがわかる。【０３５９】
次に、非０化部３７１１は、変換された量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝−１）として、ブロック係数格納部１７１５に格納する。【０３６０】
次に、係数変換部１７０７は、符号化ブロックの最後の量子化ＤＣＴ係数（ＥＯＢ）を読み込む。この時点で、係数０ブロック検出部１７１３は、第１係数が非０化処理により、係数０ブロックを検出しない。そのため、ＥＯＢはそのまま、ブロック係数格納部１７１５に格納される。【０３６１】
なお、本発明の実施の形態４では、符号判定部３７１６が、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数から符号を検出していた。しかし、係数変換部１７０７が量子化ＤＣＴ係数を０に変換する際にも、変換前の符号を残すことで、符号判定部３７１６は、変換後の量子化ＤＣＴ係数から符号を検出することができる。このときの動作を図３９（ｂ）に示した例を用いて説明する。【０３６２】
まず、係数変換部１７０７は、図３９（ｂ）の場合において、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝−２）を、（ｒｕｎ＝１、ｌｅｖｅｌ＝−０）に変換する。【０３６３】
ここで、符号判定部３７１６は、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数ｌｅｖｅｌの符号を参照して、検出したその符号を非０化部３７１１に通知する。ここでは、符号判定部３７１６は、−符号を非０化部３７１１に通知する。【０３６４】
次に、非０化部３７１１は、符号判定部３７１６により通知された符号を配慮して、ｌｅｖｅｌ＝−１として非０化する。【０３６５】
なお、上記の例では、係数変換部１７０７が０に符号を付与し、符号判定部３７１６が０の符号を参照して、非０化部３７１１に通知するとしている。しかし、係数変換部１７０７が０に符号を付与する場合は、係数変換部１７０７が存在しなくてもよく、非０化部３７１１が絶対値だけを非０化し、符号は変更しない構成としても、同様の効果が得られる。【０３６６】
また、非０化時に置換される数として、正の場合は＋１、負の場合は−１を取り上げたが、絶対値が必ずしも１である必要はなく、符号が変換前と同じであれば、その他の整数であってもよい。【０３６７】
かかる構成によれば、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号に合わせて、非０化を行うことで、非０化時に発生する誤差が少なくなる。それにより、符号化レート変換時の画質の向上を見込むことができる。【０３６８】
（実施の形態５）
本実施の形態では、実施の形態１〜４で示した符号化レート変換装置の応用例またはそれを用いたシステムについて説明する。【０３６９】
図４０は、本発明の実施の形態５のストリーム記録装置４０００を示す構成図である。図４０では、符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００および３７００を用いた放送ストリーム記録装置の一例とそのシステム構成が示されている。【０３７０】
放送ストリーム記録装置４０００は、符号化レート変換部４００１、放送受信部４００３、ＡＶ多重分離部４００４、ＡＶ多重部４００５、ＨＤＤ制御部４００６およびＨＤＤ４００７から構成される。【０３７１】
放送ストリーム記録装置４０００は、デジタル放送波４００２を受けて動作し、放送波から受信したデジタルデータの符号化レートを変換して変換された符号化レートのデジタルデータをＨＤＤ４００７に記録する。【０３７２】
デジタル放送波４００２は、ＭＰＥＧ２で符号化された映像データと、ＡＡＣで符号化された音声データ、字幕情報やデータ放送などのシステムデータが多重化され１つのプログラムを構成している。デジタル放送波４００２では、さらに、複数のプログラムが多重化され、変調された状態で搬送波にのせられて伝送される。【０３７３】
放送受信部４００３は、デジタル放送波４００２を復調し、さらに複数プログラムの中から、所望の１つのプログラムを分離して、ＡＶ多重分離部４００４に通知する。【０３７４】
ＡＶ多重分離部４００４は、映像データ、音声データおよびシステムデータが多重化されたストリームから、映像データだけを抽出して、符号化レート変換部４００１に通知する。ＡＶ多重分離部４００４は、映像データ以外のストリームのデータを、ＡＶデータ多重部４００５に通知する。【０３７５】
符号化レート変換部４００１は、入力された映像データを所望の符号化レートに変換し、符号化レートを変換した映像データをＡＶ多重部４００５に通知する。ここで、符号化レート変換部４００１は、実施の形態１〜４で示した符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００に相当する。【０３７６】
ＡＶ多重部４００５は、符号化レート変換部４００１で符号化レートが変換された映像データと、元の音声データおよびシステムデータとを多重化して、１つのプログラムとして再構成する。ＡＶ多重部４００５は、再構成したそのプログラムを、ＨＤＤ制御部４００６に通知する。【０３７７】
ＨＤＤ制御部４００６は、ＡＶ多重部４００５により通知されたプログラムをＨＤＤ４００７に記録する。【０３７８】
ところで、日本のＢＳデジタル放送では、１つのプログラムあたり、２４Ｍｂｐｓの符号化レートであるため、ＨＤＤに１時間番組をそのまま記録すると、１０Ｇｂｙｔｅ以上の容量が必要になる。ＨＤＤに２５０Ｇｂｙｔｅの容量を用意しても、２０時間程度しか記録することができない。そのため、ＨＤＤにもっと長時間の番組を記録したいという要求が存在する。【０３７９】
本実施の形態５における放送ストリーム記録装置４０００では、プログラムの中で映像データが約９割を占めることを利用して、符号化レート変換部４００１で映像データの符号化レートを例えば１／２に変換することで、上記の要求に答えることができる。【０３８０】
なお、本実施の形態５では、放送ストリーム記録装置４０００の入力を、デジタル放送波４００２としているが、符号化レート変換なしでＨＤＤ４００７に記録されているストリームや、ネットワークを通じて配信されたストリームを放送ストリーム記録装置４０００の入力としてもよい。【０３８１】
また、本実施の形態５では、放送ストリーム記録装置４０００の記録先をＨＤＤ４００７としたが、ＤＶＤなどの光ディスクやメモリーカードなど、他の記録媒体としてもよい。【０３８２】
（実施の形態６）
本実施の形態６では、実施の形態１〜４で示した符号化レート変換装置の応用例またはそれを用いたシステムについて説明する。【０３８３】
図４１は、本発明の実施の形態６のネットワーク配信システム４１００を示す構成図である。図４１では、符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００を用いたネットワーク配信システム一例の構成を示す図である。【０３８４】
ネットワーク配信システム４１００は、符号化ストリームを送信するストリーム送信装置４１１０と、符号化ストリームを受信するストリーム受信装置４１１１と、符号化ストリームを伝送するネットワーク４１０９から構成される。【０３８５】
ネットワーク配信システム４１００は、ストリーム送信装置４１１０のＨＤＤ４１０２に記録されたＡＶストリームを、ネットワーク４１０９を通じて配信し、ストリーム受信装置４１１１で再生するシステムである。【０３８６】
ストリーム送信装置４１１０は、符号化レート変換部４１０１、ＨＤＤ４１０２、ＨＤＤ制御部４１０３、ＡＶ多重分離部４１０４、ＡＶ多重部４１０５およびネットワーク制御部４１０６から構成される。ＨＤＤ４１０２には映像ストリーム、音声ストリームおよびシステムストリームからなるＡＶストリームが１つのプログラムとして多重化されて、格納されている。【０３８７】
ＨＤＤ制御部４１０３は、ＨＤＤ４１０２からＡＶストリームを読み出し、ＡＶ多重分離部４１０４に通知する。【０３８８】
ＡＶ多重分離部４１０４は、実施の形態５と同様、映像ストリームだけを分離して、符号化レート変換部４１０１に通知する。ＡＶ多重分離部４１０４は、映像ストリーム以外のストリームを、ＡＶ多重部４１０５に通知する。【０３８９】
符号化レート変換部４１０１は、入力された映像ストリームの符号化レートを変換して、符号化レートを変換した映像ストリームをＡＶ多重部４１０５に通知する。ここで、符号化レート変換部４１０１は、実施の形態１〜４で示した符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００に相当する。【０３９０】
ＡＶ多重部４１０５は、符号化レート変換部４１０１で符号化レートが変換された映像ストリームと、音声およびシステムストリームとを再多重化し、再構成したＡＶストリームをネットワーク制御部４１０６に通知する。【０３９１】
ネットワーク制御部４１０６は、ＡＶ多重部４１０５から入力されたＡＶストリームを、ネットワーク４１０９を介してネットワーク制御部４１０７に送信する。【０３９２】
また、ネットワーク制御部４１０６は、ネットワーク４１０９で送信可能なＡＶストリームの符号化レートを検出し、その符号化レートを符号化レート変換部４１０１に通知する。【０３９３】
ストリーム受信装置４１１１は、ネットワーク制御部４１０７およびＡＶ再生部４１０８から構成される。【０３９４】
ネットワーク制御部４１０７は、ネットワーク４１０９を介してネットワーク制御部４１０６からのＡＶストリームを受信する。ネットワーク制御部４１０７は、受信したＡＶストリームをＡＶ再生部４１０８に通知する。【０３９５】
ＡＶ再生部４１０８は、ネットワーク制御部４１０７から通知されたＡＶストリームのＡＶ多重分離や復号を行い、映像（データ放送や字幕も含む）および音声を再生する。【０３９６】
なお、ＡＶ再生部４１０８は符号化レート変換に直接関係ないので、詳細な構成は省略する。【０３９７】
ところで、例えば、日本のＢＳデジタル放送では、１つのプログラムあたりの符号化レートが２４Ｍｂｐｓである。しかし、ネットワークではＡＶストリーム以外のデータも同時に伝送されているので、２４Ｍｂｐｓの帯域が保証できないことが多い。また、ネットワークが無線の場合は、電波状態によって伝送可能な帯域が随時変化するため、やはり２４Ｍｂｐｓの帯域を保証することができないことが多い。したがって、伝送可能な帯域が保証できない場合、ＡＶストリームのデータが抜け落ちてしまい、ストリームの復号が頻繁にエラーになり、ＡＶ再生がほとんどできないことになる。【０３９８】
ストリーム送信装置４１１０は、ネットワーク制御部４１０６が、ネットワーク４１０９の状態を検知し、ネットワーク４１０９で伝送可能な帯域を符号化レート変換部４１０１に通知する。それにより、符号化レート変換部４１０１は、ＡＶストリームをネットワーク４１０９で伝送可能な符号化レートに変換することができる。これにより、ネットワーク４１０９上でデータが抜け落ちることがなくなるので、ストリーム受信装置４１１１では正常にＡＶ再生ができるようになる。【０３９９】
なお、本実施の形態では、ストリーム送信装置４１１０でＡＶストリームが送信される元となる装置をＨＤＤ４１０２としているが、デジタル放送波そのものや、他の記録媒体としてもよい。【０４００】
以上のように、本発明によれば、符号化対象のＭＢの複数のブロックの中で、特定の符号化ブロック中の、スキャン順で最初の量子化ＤＣＴ係数を０でない値（非０）に保証する。それにより、特定の符号化ブロック以外のブロックでは、量子化ＤＣＴ係数がすべて０になるのを許容できる。したがって、符号化対象のＭＢにおけるすべてのブロックの量子化ＤＣＴ係数が０であることが判明してから、非０化するという処理を後戻りする必要がない。さらに、符号化対象のＭＢの複数のブロックの中で、特定の符号化ブロックの中のスキャン順で最初の量子化ＤＣＴ係数のみを非０化（０でない値）するので、例えば、特定の符号化ブロック以外のブロックに非０の量子化ＤＣＴ係数が存在し、特定の符号化ブロックは不要な非０化の量子化ＤＣＴ係数を持つとしても、１つの量子化ＤＣＴ係数のみの影響に抑制されているので、符号化効率を低下させないで符号化レート変換をすることができる。【０４０１】
以上、本発明によれば、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を実現することが可能となる。【０４０２】
なお、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れは以下である。【０４０３】
１）ＭＢのブロックを構成するすべての量子化ＤＣＴ係数が符号化レート変換後に０になる場合
・非０の量子化ＤＣＴ係数を持たない符号化ブロックは規格違反である。
・その場合、規格違反を回避するために、非０の量子化ＤＣＴ係数を持たないブロックを符号化から外し、ＣＢＰの変更が必要である。【０４０４】
２）符号化レート変換後に、ＭＢのすべてのブロックが符号化対象から外れた場合（ＣＢＰ＝Ｏ）
・ＣＢＰ＝０として符号化することは規格違反である。
・その場合、規格違反を回避するために、マクロブロックタイプをＮｏｔ  Ｃｏｄｅｄに変更が必要である。【０４０５】
３）マクロブロックタイプがＮｏＭＣの場合
・符号化レート変換後に、マクロブロックタイプがＮｏＭＣでかつＮｏｔＣｏｄｅｄであることは規格違反である。
・その場合、規格違反を回避するために、スキップＭＢへの変更が必要である。【０４０６】
４）ＭＢがスライスの先頭・最終ＭＢである場合
・符号化レート変換後に、スキップＭＢとなるのは規格違反である。【０４０７】
なお、本実施の形態において、符号化レート変換装置を構成する各機能ブロックは、典型的には、ＣＰＵやメモリを要した情報機器上で動作するプログラムとして実現されるが、その機能の一部または全部を集積回路であるＬＳＩとして実現してもよい。これらのＬＳＩは、個別に１チップ化されても良いし、一部またはすべてを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。【０４０８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（ＦＩＥＬＤ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＧＡＴＥ  ＡＲＲＡＹ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。【０４０９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０４１０】
本発明は、符号化レート変換装置および符号化レート変換方法に利用でき、特に放送ストリーム記録装置やネットワークへのストリーム送信装置等において、映像ストリームの符号化レートを低減する符号化レート変換装置および符号化レート変換方法に利用できる。
【図１】
2008117541.tif 000003
【図２】
2008117541.tif 000004
【図３】
2008117541.tif 000005
【図４】
2008117541.tif 000006
【図５】
2008117541.tif 000007
【図６】
2008117541.tif 000008
【図７】
2008117541.tif 000009
【図８】
2008117541.tif 000010
【図９】
2008117541.tif 000011
【図１０】
2008117541.tif 000012
【図１１】
2008117541.tif 000013
【図１２】
2008117541.tif 000014
【図１３】
2008117541.tif 000015
【図１４】
2008117541.tif 000016
【図１５】
2008117541.tif 000017
【図１６】
2008117541.tif 000018
【図１７】
2008117541.tif 000019
【図１８】
2008117541.tif 000020
【図１９】
2008117541.tif 000021
【図２０】
2008117541.tif 000022
【図２１】
2008117541.tif 000023
【図２２】
2008117541.tif 000024
【図２３】
2008117541.tif 000025
【図２４】
2008117541.tif 000026
【図２５】
2008117541.tif 000027
【図２６】
2008117541.tif 000028
【図２７】
2008117541.tif 000029
【図２８】
2008117541.tif 000030
【図２９】
2008117541.tif 000031
【図３０】
2008117541.tif 000032
【図３１】
2008117541.tif 000033
【図３２】
2008117541.tif 000034
【図３３】
2008117541.tif 000035
【図３４】
2008117541.tif 000036
【図３５】
2008117541.tif 000037
【図３６】
2008117541.tif 000038
【図３７】
2008117541.tif 000039
【図３８】
2008117541.tif 000040
【図３９】
2008117541.tif 000041
【図４０】
2008117541.tif 000042
【図４１】
2008117541.tif 000043
【手続補正書】
【提出日】平成21年1月21日(2009.1.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化レート変換装置および符号化レート変換方法に関し、特に、符号化データの情報量をさらに削減するために符号化レートを変換する符号化レート変換装置および符号化レート変換方法に関する。より具体的には、符号化レート変換に伴う処理を効率化し、符号化レート変換を行った後も符号化規格に準拠する符号化レート変換装置および符号化レート変換方法に関する。
【背景技術】
【０００２】
近年、高圧縮を実現するＭＰＥＧ２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ２）が画像符号化技術として採用されている。この画像符号化技術は、デジタル放送やＤＶＤなどの記録媒体に用いられる。この画像符号化技術では、用途に合わせて、ビットレートを一定の範囲内で選択できるようになっている。
【０００３】
また、高画質のデジタル放送を記録媒体に記録する場合、高画質のデジタル放送のデータをそのまま記録媒体に記録するのではなく、そのデータの情報量を削減するためにビットレートを小さくする符号化レートで、そのデータをさらに変換する。それにより多くのデータを記録媒体に記録することができるようになる。また、記録媒体に画像符号化されたデータを記録する際に、記録媒体の容量を有効利用するために符号化レートを変換し画像符号化したデータを記録媒体に記録する高速ダビングなどのニーズも高まっている。
【０００４】
このような符号化レート変換方法には、例えばＯｐｅｎ−ｌｏｏｐ型の変換方法がある。この方法では、入力ビットストリーム（以下、符号化ストリームと記載。）を画素レベルまで復号して符号化レート変換するのではなく、符号化ストリームを逆量子化した後のＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数を、異なる量子化ステップで再量子化して符号化レート変換する。その方法により符号化ストリームのデータ量を所望のデータ量に変換する。
【０００５】
ここで、ＭＰＥＧ２のＤＣＴ係数に関する詳細な説明を行う。
【０００６】
図１は、ＭＰＥＧ２のスライス、マクロブロック、ブロック、ＣＢＰおよびＤＣＴ係数の関係を示す図である。図２は、ＭＰＥＧ２のＤＣＴ係数の符号化順（スキャン順）を示す図である。
【０００７】
図１に示す通り、ＭＰＥＧ２では、１つのピクチャは１つ以上のスライスから構成される。１つのスライスは１つ以上のマクロブロック（ＭＢ：Ｍａｃｒｏ  Ｂｌｏｃｋ）から構成される。
【０００８】
また、１つのマクロブロックは、標準（４：２：０）で、輝度のブロックが４つ、色差のブロックが２つの合計６つのブロックから構成される。輝度と色差でブロックの数が異なるのは、人が色差より輝度に敏感である視覚特性に基づいて決定されているからである。
【０００９】
ＭＰＥＧ２では、６つのブロックを、輝度Ｙ（左上）、輝度Ｙ（右上）、輝度Ｙ（左下）、輝度Ｙ（右下）、色差Ｃｂ（青成分）および色差Ｃｒ（赤成分）の順番に符号化する。
【００１０】
このとき、０でないＤＣＴ係数（非０のＤＣＴ係数）を持たないブロック、すなわち０のＤＣＴ係数のみを持つブロックの符号化は省略し、非０のＤＣＴ係数を持つブロックだけを符号化する。各ブロックが非０のＤＣＴ係数を持つかどうかは、ＣＢＰ（Ｃｏｄｅｄ  Ｂｌｏｃｋ  Ｐａｔｔｅｒｎ）により示される。
【００１１】
ＣＢＰでは、非０のＤＣＴ係数を持つブロック（符号化ブロック）を１、非０のＤＣＴ係数を持たないブロック（係数０ブロック）を０とし、各ブロックが非０のＤＣＴ係数を持つかどうかをブロックの符号化順に並べて示す。
【００１２】
例えば、図１で、輝度Ｙ（右上）、輝度Ｙ（左下）および色差Ｃｒ（赤成分）だけが非０のＤＣＴ係数を持つ（符号化ブロック）場合、ＣＢＰは２進数で０１１００１となる。
【００１３】
次に、符号化ブロックのＤＣＴ係数はまず量子化を行い、量子化ＤＣＴ係数を得る。その後に図２に示すジグザグスキャンとオルタネートスキャンのいずれかの順番で、非０の量子化ＤＣＴ係数（以下、非０係数と記載。）だけを符号化する。
【００１４】
ここで、ジグザグスキャンはプログレッシブ画像の符号化に適し、オルタネートスキャンはインターレース画像の符号化に適する。以降、ジグザグスキャンの場合について説明を行うが、オルタネートスキャンでも同様の議論が成り立つ。
【００１５】
非０係数の符号化は、符号化対象の非０係数の一つ前の非０係数からの項目数ｒｕｎ、すなわちジグザグスキャン順に先行して連続する０係数の個数であるｒｕｎおよび非０の量子化ＤＣＴ係数値であるｌｅｖｅｌとしてまとめられ符号化される。また、非０係数の符号化では、非０係数の最後を表す符号として最後の非０係数の次にＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）が付加され符号化される。それ以降の０係数は省略される。
【００１６】
例えば、図１で示される符号化ブロックの量子化ＤＣＴ係数では、低周波成分から７、３、０、０、１、以降すべて０、の順で符号化され、量子化ＤＣＴ係数が存在するブロックでは、（ｒｕｎ、ｌｅｖｅｌ）＝（０、７）、（０、３）、（２、１）、ＥＯＢの順番で符号化される。
【００１７】
次に、ＭＰＥＧ２のマクロブロック（ＭＢ）の符号化ストリーム構成に関して詳細に説明する。
【００１８】
図３は、ＭＰＥＧ２のマクロブロック全体の符号化情報の構文フローを示す図である。
【００１９】
ＭＢの符号化情報は、Ｓ３０１でＭＢヘッダ部、Ｓ３０２でブロック部の順に構成される。
【００２０】
ＭＰＥＧ２のマクロブロック（ＭＢ）がスキップされるスキップＭＢの場合、これらＭＢヘッダ部（Ｓ３０１）およびブロック部（Ｓ３０２）の情報は符号化されない。次のスキップでないＭＢのＭＢヘッダ部に含まれるＭＢアドレス増分を参照することで、スキップＭＢの有無が判断できる。
【００２１】
なお、ＭＢヘッダ部は、スキップＭＢを除けば、必ず存在する。ブロック部は、ＭＢヘッダ部に含まれるＭＢタイプが“Ｉｎｔｒａ”もしくは“Ｃｏｄｅｄ”の場合のみ存在する。また、ブロック部は、ＭＢヘッダ部に含まれるＣＢＰの示す符号化ブロックの個数分だけ繰り返し存在する。
【００２２】
図４は、ＭＰＥＧ２のマクロブロックヘッダ部の符号化情報の構文フローを示す図である。
【００２３】
ＭＢヘッダの符号化情報は、Ｓ４０１でＭＢアドレス増分（ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔ）、Ｓ４０２でＭＢタイプ（ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ）、Ｓ４０３で動き補償タイプ（ｍｏｔｉｏｎ＿ｔｙｐｅ）、Ｓ４０４でＤＣＴタイプ（ｄｃｔ＿ｔｙｐｅ）、Ｓ４０５で量子化スケールコード（ｑｕａｎｔｉｓｅｒ＿ｓｃａｌｅ＿ｃｏｄｅ）、Ｓ４０６で前方向動きベクトル（ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓ（０））、Ｓ４０７で後方向動きベクトル（ｍｏｔｉｏｎ＿ｖｅｃｔｏｒｓ（１））、Ｓ４０８でＣＢＰ（ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ）の順に構成される。
【００２４】
なお、ＭＢアドレス増分およびＭＢタイプは必ず存在するが、それ以外の情報が存在するかどうかは、ＭＢ以外のヘッダ情報やＭＢタイプから決定される。
【００２５】
図５は、ＭＰＥＧ２のブロック部の符号化情報の構文フローを示す図である。
【００２６】
ブロック部の符号化情報は、動き補償を行わないＩｎｔｒａＭＢか、動き補償を行うＩｎｔｅｒＭＢかどうかで構成が異なる。そのＭＢがどちらに属するかはＭＢタイプから決定される。
【００２７】
ＩｎｔｒａＭＢの場合は、Ｓ５０１で最初に１つだけ必ずＤＣＴ係数のＤＣ成分（ｄｃｔ＿ｄｃ＿ｓｉｚｅ、ｄｃｔ＿ｄｃ＿ｄｉｆｆ）が符号化される。ＤＣ係数は、量子化ステップが固定化されており、ＭＢヘッダに含まれる量子化スケールコードの値に影響されない。ＤＣ成分以外の係数は、ＡＣ成分（ｒｕｎ、ｌｅｖｅｌ）であり、Ｓ５０２で非０の量子化ＤＣＴ係数の個数分だけ符号化される。
【００２８】
なお、ＩｎｔｒａＭＢのＤＣＴ係数の値のＡＣ成分の量は、ＭＢヘッダの量子化スケールコードの値によって影響を受ける。
【００２９】
また、ＡＣ成分に非０係数が存在しない場合には、符号化されない。
【００３０】
また、例えばブロックサイズが、図１で示すように８×８＝６４である場合、ＤＣ成分が１個存在するため、ＡＣ成分は最大６３個まで符号化される可能性がある。
【００３１】
ブロックの最後には、Ｓ５０３でＥＯＢが符号化される。
【００３２】
ＩｎｔｅｒＭＢの場合、ＭＢタイプが“Ｃｏｄｅｄ”であれば、Ｓ５０２で必ず１つ以上のＡＣ成分（ｒｕｎ、ｌｅｖｅｌ）が符号化される。例えばブロックサイズが図１で示すように８×８＝６４である場合、ＩｎｔｅｒＭＢではＤＣ成分が存在しないので、ＤＣ成分は最大６４個まで符号化される可能性がある。
【００３３】
ブロックの最後には、ＩｎｔｒａＭＢの場合と同様に、Ｓ５０３でＥＯＢが符号化される。
【００３４】
図６は、ＭＰＥＧ２での量子化スケールコードと量子化ステップの関係を示す図である。
【００３５】
ＡＣ係数の量子化に利用する量子化ステップは、ＭＢヘッダに含まれる量子化スケールコードから図６の表に基づいて導出する。
【００３６】
次に、Ｏｐｅｎ−ｌｏｏｐ型のレート変換方法を、一般的なＭＰＥＧ復号化装置やＭＰＥＧ符号化装置と比較しながら、詳細に説明する。
【００３７】
図７は、ＭＰＥＧ復号化装置７００の構成を示す図である。
【００３８】
ＭＰＥＧ復号化装置７００は、可変長復号部７０１と、逆量子化部７０２と、逆ＤＣＴ変換部７０３と、参照フレーム格納部７０４と、動き補償部７０５と、画像復元部７０６とを備える。
【００３９】
可変長復号部７０１は、ＭＰＥＧ２の符号化ストリームを復号し、ブロック情報として量子化ＤＣＴ係数を逆量子化部７０２に通知する。
【００４０】
まず、ＩｎｔｒａＭＢの場合を説明する。
【００４１】
逆量子化部７０２は、通知された量子化ＤＣＴ係数を逆量子化してＤＣＴ係数に戻し、戻したＤＣＴ係数を逆ＤＣＴ変換部７０３に通知する。
【００４２】
逆ＤＣＴ変換部７０３は、通知されたＤＣＴ係数に逆ＤＣＴ変換を行い、画素情報に戻す。戻された画素情報は画像復元部７０６を通じて出力される。
【００４３】
また、画素情報は次のピクチャ以降で参照される可能性があるため、戻された画素情報は参照フレーム格納部７０４に格納される。
【００４４】
次に、ＩｎｔｅｒＭＢの場合を説明する。
【００４５】
逆量子化部７０２は、通知された量子化ＤＣＴ係数を逆量子化してＤＣＴ係数に戻し、戻したＤＣＴ係数を逆ＤＣＴ変換部７０３に通知する。
【００４６】
逆ＤＣＴ変換部７０３は、通知されたＤＣＴ係数に逆ＤＣＴ変換を行い、画素情報に戻す。戻された画素情報は画像復元部７０６を通じて出力される。
【００４７】
また、逆ＤＣＴ変換により得られた画素情報は、差分値であるため、画像復元部７０６に出力後もさらに処理が必要である。
【００４８】
動き補償部７０５は、可変長復号部７０１で復号した動きベクトルより指定された参照画像を参照フレーム格納部７０４から取得して、画像復元部７０６に通知する。
【００４９】
画像復元部７０６は、参照画像と画素情報との差分を加算して画素情報を求め、出力する。復元した画素情報はＩｎｔｒａＭＢと同様に参照フレーム格納部７０４に格納される。
【００５０】
図８は、ＭＰＥＧ符号化装置８００の構成を示す図である。基本的にＭＰＥＧ復号化装置７００の逆の構成となっている。
【００５１】
ＭＰＥＧ符号化装置８００は、ＤＣＴ変換部８０１と、量子化部８０２と、可変長符号部８０３と、逆量子化部８０４と、逆ＤＣＴ変換部８０５と、参照フレーム格納部８０６と、動き補償部８０８と、画素減算部８０９と、画素加算部８１０と、レート制御部８１１とを備える。
【００５２】
まず、ＩｎｔｒａＭＢの場合を説明する。
【００５３】
ＤＣＴ変換部８０１は、画素減算部８０９を介して入力された画素情報をＤＣＴ変換し、量子化部８０２に通知する。
【００５４】
レート制御部８１１は、目標の符号化レートを、可変長符号部８０３から得た実際の符号化ビット量の実績で補正しながら、量子化ステップを求めて、量子化部８０２に通知する。
【００５５】
量子化部８０２は、レート制御部８１１で算出された量子化ステップで、ＤＣＴ変換された画素情報のＤＣＴ係数を量子化し、可変長符号部８０３に通知する。同時に量子化部８０２は、量子化ＤＣＴ係数を参照画像として利用するため、逆量子化部８０４に通知する。
【００５６】
可変長符号部８０３は、通知された量子化ＤＣＴ係数を符号化ストリームとして符号化する。
【００５７】
ここで、量子化ＤＣＴ係数は、次以降のピクチャで参照画像として利用するために、ＭＰＥＧ復号化装置７００の場合と同様に、逆量子化部８０４および逆ＤＣＴ変換部８０５により、画像情報まで復号されて、参照フレーム格納部８０６に格納される。
【００５８】
次に、ＩｎｔｅｒＭＢの場合を説明する。
【００５９】
動き検出部８０７は、参照画像を用いて入力画像の画像情報量の削減を行う。
【００６０】
動き検出部８０７は、参照フレーム格納部８０６から入力画像と一致度の高い画像（参照画像）を検出して、動きベクトルを算出する。算出した動きベクトルは、動き補償部８０８に通知されるとともに、可変長符号部８０３に通知される。可変長符号部８０３では、通知された動きベクトルを符号化ストリームのＭＢヘッダ情報として符号化する。
【００６１】
動き補償部８０８は、動きベクトルを元に、参照フレーム格納部８０６から参照画像を取得する。動き補償部８０８は、画素減算部８０９で、取得した参照画像と入力画像との差分を求めることで、情報量を削減する。
【００６２】
以降、ＤＣＴ変換部８０１、量子化部８０２、可変長符号部８０３、逆量子化部８０４、逆ＤＣＴ変換部８０５、参照フレーム格納部８０６およびレート制御部８１１において、ＩｎｔｒａＭＢの場合と同じであるので説明を省略する。
【００６３】
また、次以降のピクチャで参照画像として利用するために、逆量子化部８０４、逆ＤＣＴ変換部８０５を通して量子化ＤＣＴ係数から求めた画像情報の差分に、動き補償部８０８で求めた参照画像を画素加算部８１０にて加えると、画像情報に復号できる。復号された画像情報は、参照フレーム格納部８０６に格納される。
【００６４】
ここで、ＭＰＥＧ２では、ＭＢヘッダ部のビット量は、ほぼ決まった範囲のビット量を取り、さらに符号化ストリーム全体のビット量に占める割合はわずかである。逆に、ブロック部のビット量は、ＭＢごとのばらつきが大きく、さらに符号化ストリームのビット量の大部分を占める。
【００６５】
したがって、符号化ストリームのビット量を低減するために符号化レートを低減するには、ＭＢの量子化ステップを大きくして、ブロック部の量子化ＤＣＴ係数（ｌｅｖｅｌ）を低減する手法が有効である。これは、小さなｌｅｖｅｌは短い符号化ビットで表現可能であるためであり、さらにｌｅｖｅｌが０になれば、ｌｅｖｅｌの符号化自体が不要になるためである。
【００６６】
図９は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００の一例を示す構成図である。Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００は、上記の再量子化の性質を利用した変換装置である。図９に示すＯｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００は、ＭＰＥＧ復号化装置７００とＭＰＥＧ符号化装置８００を結合して、不要な構成を省いた構成となっている。この符号化レート変換装置９００は、符号化ストリームを画像レベルまで復号せずに、逆量子化した後のＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数を、異なる量子化ステップで再量子化するだけで符号化レートを変換するため、ＤＣＴ変換や動き補償を行う必要がない。
【００６７】
符号化レート変換装置９００は、可変長復号部９０１と、可変長符号部９０２と、レート制御部９０３と、Ｑ値変換部９０４と、ヘッダ格納部９０５と、逆量子化部９０６と、量子化部９０７とを備える。
【００６８】
可変長復号部９０１は、入力されたＭＰＥＧ２の符号化ストリームを復号する。可変長復号部９０１は、復号した符号化ストリームのＭＢヘッダ部のパラメータをヘッダ格納部９０５に通知する。同時に、可変長復号部９０１は、復号した符号化ストリームにおけるＭＢヘッダ中の量子化スケールコードを量子化ステップに変換し、変換した量子化ステップをＱ値変換部９０４に通知する。
【００６９】
また、可変長復号部９０１は、例えば量子化ＤＣＴ係数など、復号した符号化ストリームのブロック部のパラメータを逆量子化部９０６に通知する。
【００７０】
レート制御部９０３は、目標変換レートにしたがって、目標量子化ステップを算出する。レート制御部９０３は、算出した目標量子化ステップをＱ値変換部９０４に通知する。
【００７１】
Ｑ値変換部９０４は、入力時の量子化ステップと、レート制御部９０３から入力された目標量子化ステップとから、出力時の新しい量子化ステップを決定する。つまり、Ｑ値変換部９０４は、可変長復号部９０１で復号された符号化ストリームの量子化ステップと、レート制御部９０３から通知された目標量子化ステップとから、可変長符号部９０２で再度符号化されて出力されるストリームの新しい量子化ステップを決定する。
【００７２】
Ｑ値変換部９０４は、決定した新しい量子化ステップを量子化部９０７に通知すると同時に、量子化ステップをヘッダ格納部９０５に通知する。
【００７３】
ヘッダ格納部９０５は、Ｑ値変換部９０４から通知された量子化ステップを量子化スケールコードに変換し、可変長復号部９０１から通知されたストリームのＭＢヘッダ部のパラメータを新しい値に書き換える。
【００７４】
また、ヘッダ格納部９０５は、ＭＢヘッダ部に該当するパラメータを可変長符号部９０２に通知する。それにより、可変長符号部９０２は、ＭＢヘッダ部のストリームを得る。
【００７５】
また、量子化部９０７は、Ｑ値変換部９０４で決定された新しい量子化ステップにしたがって、量子化を行う。量子化部９０７は、その結果得られる量子化ＤＣＴ係数を可変長符号部９０２に通知する。それにより、可変長符号部９０２は、ブロック部のストリームを得る。
【００７６】
レート制御部９０３は、随時、可変長復号部９０１から復号したビット量と、可変長符号部９０２から可変長符号部９０２で符号化したビット量とを得て、目標レートの補正を行う。
【００７７】
次に、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換の具体例を説明する。
【００７８】
図１０、図１１および図１２は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置９００での変換の一例を示す図である。
【００７９】
図１０のように、非０の量子化ＤＣＴ係数（ｌｅｖｅｌ）が７、−３、２、１、４、１、−１、１の合計８個すべてＡＣ成分から構成されるブロックが存在するとする。ここで、入力時の量子化ステップが４であり、出力時に量子化ステップが８に変換されるとする。
【００８０】
量子化ＤＣＴ係数（ｌｅｖｅｌ）は、それぞれ３、−１、１、０、２、０、０、０となり（ここでは小数点以下は切り捨てる）、ｌｅｖｅｌの値が減少するとともに、非０係数（非０量子化ＤＣＴ係数）自体が変換前の８個から変換後は４個に減少する。また、０係数がより多く連続することになるので、ｒｕｎが増加する。
【００８１】
例えば、入力時の４番目の係数はもともとｒｕｎが３であったが、ｌｅｖｅｌが０になったことにより、入力時の５番目の係数が出力時には４番目に繰り上がり、ｒｕｎが４になる。
【００８２】
これを符号化すると、入力時５０ｂｉｔだった符号量が、２５ｂｉｔに減少する。したがって、Ｏｐｅｎ−ｌｏｏｐ型による符号化レート変換の効果があることがわかる。
【００８３】
しかし、図１１のように、非０係数（ｌｅｖｅｌ）が１、−１、１の合計３個（すべてＡＣ成分）から構成されるブロックが存在する場合に、量子化ステップが４から８に変換されたとすると、量子化ＤＣＴ係数（ｌｅｖｅｌ）はすべて０となる（小数点以下は切り捨てる）。これは、ＩｎｔｅｒＭＢのみで発生する可能性がある。なぜなら、ＩｎｔｒａＭＢではＤＣ成分が必ず存在し、ＤＣ成分は量子化ステップの変更によっても変化しないためである。
【００８４】
ＭＰＥＧ２規格では、非０のＤＣＴ係数が存在しないブロックでは、該当するＣＢＰのフラグを必ず０（係数０ブロック）にしなければならない。すなわちＤＣＴ係数が１つも存在せずにＥＯＢに到達することは規格違反である。そのため、この場合、入力時のＣＢＰを書き換える必要がある。
【００８５】
しかし、図１２のように、もともとＭＢに符号化ブロックが４つ存在する場合、かつ、ＤＣＴ係数がすべて０に変換された場合には、符号化ブロックが１つも存在しなくなる。
【００８６】
しかし、ＭＰＥＧ２規格では、ＣＢＰ＝０を符号化することが禁止されている。そのため、ＭＢヘッダ部に存在するＭＢタイプを“Ｃｏｄｅｄ”から“Ｎｏｔ  Ｃｏｄｅｄ”に変更しなければならない。
【００８７】
ここで、ＭＰＥＧ２のＭＢタイプの種類について説明する。
【００８８】
図１３は、ＭＰＥＧ２のマクロブロックタイプの種類を示す図である。
【００８９】
ＩｎｔｒａＭＢは、常にＤＣＴ係数のＤＣ成分が存在するため、“Ｃｏｄｅｄ”、“Ｎｏｔ  Ｃｏｄｅｄ”の区別は存在しない。一方、ＩｎｔｅｒＭＢは、ＤＣＴ係数のコードをもたないＭＢも存在し得るので、“Ｃｏｄｅｄ”、“Ｎｏｔ  Ｃｏｄｅｄ”の区別が存在する。
【００９０】
レート変換後に符号化ブロックが１つも存在しなくなった場合、例えば、入力時のＭＢタイプがＢピクチャの“Ｉｎｔｅｒｐ，Ｃｏｄｅｄ”であれば、出力時のＭＢタイプは“Ｉｎｔｅｒｐ，Ｎｏｔ  Ｃｏｄｅｄ”に変換すればよい。
【００９１】
しかし、レート変換後に符号化ブロックが１つも存在しなくなった場合、かつ、入力時のＭＢタイプがＰピクチャの“Ｎｏ  ＭＣ，Ｃｏｄｅｄ”（動きベクトルなし、符号化ブロックあり）であった場合、ＭＢタイプを“Ｎｏ  ＭＣ，Ｎｏｔ  Ｃｏｄｅｄ”（動きベクトルなし、符号化ブロックなし）に変換したいが、図１３の通り、ＭＰＥＧ２に該当するＭＢタイプは存在しない。そのため、ＭＰＥＧ２に準拠したストリームを生成できないことになる。
【００９２】
また、この場合、該当マクロブロックをスキップＭＢにすることで、“Ｎｏ  ＭＣ、Ｎｏｔ  Ｃｏｄｅｄ”と同等の効果（動きベクトルなし、符号化ブロックなし）を得ることができる。しかし、スキップＭＢは、次のＭＢのＭＢヘッダ部（ｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔ）で表現するため、図９のＯｐｅｎ−Ｌｏｏｐ型レート変換装置９００では対応できない。この場合、次のＭＢのＭＢヘッダを書き換えるような複雑な機構が必要になる。
【００９３】
また、ＭＰＥＧ２規格では、スライスの先頭および最終のＭＢがスキップＭＢであることが禁止されている。したがって、そのような機構が存在していたとしても、ＭＰＥＧ２に準拠したストリームを生成できない場合がある。
【００９４】
そのため、符号化レートを変換する際、変換後のデータもＭＰＥＧ２規格に準拠するよう何らかの対策を講じる必要がある。
【００９５】
その対策の１つには符号化レートを変換してもＣＢＰが変化しないようにする画像符号化レート変換装置が特許第３７７０４６６号公報（特許文献１）に開示されている。具体的には、符号化レートを変換した後、符号化ブロック内の量子化ＤＣＴ係数がすべて０になっていないかどうかを判断し、すべて０になっていれば変換前の量子化ＤＣＴ係数を残すよう指示を出すことで、変換前の符号化ブロックについて、変換後に量子化ＤＣＴ係数がすべて０になることがないようにしている。
【００９６】
図１４は、従来の符号化レート変換装置１４００を示す構成図である。図１４では、特許３７７０４６６号と同等の方法を実現する構成が示されている。
【００９７】
符号化レート変換装置１４００は、可変長復号部９０１と、可変長符号部９０２と、レート制御部９０３と、Ｑ値変換部９０４と、ヘッダ格納部９０５と、逆量子化部９０６と、量子化部９０７と、係数０ブロック検出部１４１３と、ブロック係数格納部１４１５とを備える。
【００９８】
可変長復号部９０１、可変長符号部９０２、レート制御部９０３、Ｑ値変換部９０４、ヘッダ格納部９０５、逆量子化部９０６および量子化部９０７は、図９と同一の符号を付しており、同様の構成のため、説明を省略する。
【００９９】
ブロック係数格納部１４１５は、量子化部９０７で量子化された量子化ＤＣＴ係数を１ブロック分蓄積する。
【０１００】
係数０ブロック検出部１４１３では、量子化部９０７で量子化された量子化ＤＣＴ係数が１ブロック分すべて０であるかどうかを検出する。すでに述べた通り、量子化ＤＣＴ係数が１ブロック分すべて０である場合に、ＭＰＥＧ２ではＣＢＰを変化させなければならない。それを避けるために、係数０ブロック検出部１４１３は、量子化ＤＣＴ係数が１ブロック分すべて０であるブロックを検出すると、ブロック係数格納部１４１５に対して、入力時に存在する量子化ＤＣＴ係数のいずれかを“１”または“−１”として残すように指示し、１ブロック分すべて０になることを防止する。
【特許文献１】特許第３７７０４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０１０１】
しかしながら、前記特許文献１の構成では、符号化レートを変換した後の量子化ＤＣＴ係数は規格に準拠するようになるが、その際２つの課題が発生する。
【０１０２】
１つ目の課題は、処理の後戻りである。
【０１０３】
図１５は、従来の符号化レート変換装置での変換の一例を示す図である。図１４および図１５を用いて処理の後戻りを説明する。
【０１０４】
図１４における量子化部９０７で、量子化ＤＣＴ係数を０に変換した場合、ブロック係数格納部１４１５に値“０”を格納する。しかし、あとで量子化ＤＣＴ係数を“１”または“−１”に変更する可能性があるので、この時点では変換後の量子化ＤＣＴ係数値が確定できない。
【０１０５】
ＭＰＥＧ２では、すでに述べた通り、ブロックのすべての量子化ＤＣＴ係数は、ＥＯＢの検出により確定する。
【０１０６】
ＥＯＢ検出時点で、当該ブロックの非０量子化ＤＣＴ係数が存在しなかった場合には、すでに変換が完了し、ブロック係数格納部１４１５に蓄積されていた量子化ＤＣＴ係数の中から、特定の量子化ＤＣＴ係数だけを選択して“１”または“−１”に復活させるといった後戻り処理が必要になる。この後戻り処理は、ＭＰＥＧ２の場合、最大で６４個のＤＣＴ係数の中から、特定の量子化ＤＣＴ係数を復活させる複雑な処理となる。
【０１０７】
もし、非０の量子化ＤＣＴ係数の個数があらかじめ判明する符号化方式であれば、最後の非０量子化ＤＣＴ係数の量子化時点で、量子化ＤＣＴ係数が０になることが確定する。そして、その最後の非０の量子化ＤＣＴ係数に対して０に変換しないような処理を行うことで、処理の後戻りなく、非０の量子化ＤＣＴ係数を復活させることが可能となる。しかし、ＭＰＥＧ２では、実際にＥＯＢを検出するまで、どの時点でブロック最後の非０の量子化ＤＣＴ係数であるかがわからない。したがって、前記の処理を行うことができない。
【０１０８】
２つ目の課題は、符号化効率の低下である。
【０１０９】
図１６は、従来の符号化レート変換装置での変換の一例を示す図である。図１６では、符号化効率の低下の例を示している。
【０１１０】
図１６（ａ）は、図１４に示す、前記特許文献１の構成においてレート変換された例を示している。図１４に示す特許文献１の構成では、上述したように、１ブロック分すべて０になることを防止する。図１６（ａ）に示すように、レート変換された６ブロックすべてにおいて量子化ＤＣＴ係数のいずれかが“１”として残されている。したがって、特許文献１の構成では、ＣＢＰを変更しないでよい。しかしながら、特許文献１の構成では、ＭＢヘッダ部のＣＢＰを書き換える構成が不要というメリットがある反面、必ず各符号化ブロックに対して、１つ以上の量子化ＤＣＴ係数が残ることになる。図１６に示すように、例えば、入力時の６ブロックのすべてが符号化ブロックで、その非０量子化ＤＣＴ係数の数が少ない場合、高倍率のレート変換を行うと、図１６（ｂ）に示すようになる。すなわちＣＢＰ＝１１１１１１が高倍率のレート変換でＣＢＰ＝１０００００となる。しかし特許文献１の構成では、ＣＢＰ＝１１１１１１が高倍率のレート変換でＣＢＰ＝１１１１１１のままである。すなわち、特許文献１の構成では、高倍率のレート変換を行っても、全ブロックに対して必ず１つ以上の非０量子化ＤＣＴ係数が残るので、符号化効率の低下が無視できなくなる。
【０１１１】
そこで、本発明は、上記課題点に鑑みてなされたものであり、ＭＰＥＧ２の符号化レートを変換する際のＭＰＥＧ２規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を実現することを目的とする。
【課題を解決するための手段】
【０１１２】
上記目的を達成するために、本発明における符号化レート変換装置は、第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換する符号化レート変換装置であって、前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備えることを特徴とする。
【０１１３】
それにより、符号化対象のすべてのブロックの係数が０であることが判明してから、非０化するという処理を後戻りする必要がない。さらに、特定の符号化ブロックの中で最初の係数のみを非０化（０でない値）するので、例えば、特定の符号化ブロック以外のブロックに非０の係数が存在し、特定の符号化ブロックが非０化の係数を持つ必要がないとしても、特定の符号化ブロックの最初の係数を非０化したにすぎず、符号化効率を低下させないで符号化レート変換をすることができる。
【０１１４】
本発明は、ブロック特定手段により、特定した符号化ブロックの最初の非０係数を非０化する構成とすることにより、符号化レートを変換している際にＣＢＰが０に変更になりそうなことを予測し、ＣＢＰが０にならないよう符号化レート変換処理を行うことで、符号化レート変換後のストリームが規格に準拠し、さらに符号化レート変換時の規格準拠処理での処理効率を向上させることができる。
【０１１５】
また、上記目的を達成するために、第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレートを変換するプログラムであって、前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定ステップと、特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化ステップとをコンピュータに実行させるためのプログラムであってもよい。
【０１１６】
なお、本発明は、装置として実現するだけでなく、このような装置が備える処理手段を備える集積回路として実現したり、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の通信媒体を介して配信してもよい。
【発明の効果】
【０１１７】
本発明により、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を提供することができる。
【発明を実施するための最良の形態】
【０１１８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【０１１９】
（実施の形態１）
図１７は、本発明の実施の形態１における符号化レート変換装置１７００の構成図である。
【０１２０】
図１７の符号化レート変換装置１７００は、可変長復号部１７０１と、可変長符号部１７０２と、レート制御部１７０３と、Ｑ値変換部１７０４と、ヘッダ格納部１７０５と、係数変換部１７０７と、最終符号化ブロック検出部１７０８と、非０係数検出部１７０９と、非０化判定部１７１０と、非０化部１７１１と、ｒｕｎ制御部１７１２と、係数０ブロック検出部１７１３と、ＥＯＢ削除部１７１４と、ブロック係数格納部１７１５とから構成される。
【０１２１】
可変長復号部１７０１は、ＭＰＥＧ２の符号化ストリームを復号する。可変長復号部１７０１は、復号した符号化ストリームのＭＢヘッダに該当するパラメータをヘッダ格納部１７０５に通知する。同時に、可変長復号部１７０１は、復号した符号化ストリームのＭＢヘッダ中の量子化スケールコードを量子化ステップに変換し、変換した量子化ステップをＱ値変換部１７０４に通知する。
【０１２２】
また、可変長復号部１７０１は、例えば量子化ＤＣＴ係数など、復号した符号化ストリームのブロック部に該当するパラメータを、ＥＯＢも含めて１係数単位（ｒｕｎ、ｌｅｖｅｌの組）で係数変換部１７０７に通知する。
【０１２３】
また、可変長復号部１７０１は、符号化ストリームのＭＢの復号完了後に、復号した符号化ストリームのＭＢのビット量を、レート制御部１７０３に通知する。
【０１２４】
レート制御部１７０３は、係数変換部１７０７で復号した符号化ストリームのＭＢが係数変換される前に、可変長復号部１７０１から得られた今までのＭＢの復号化ビット量と可変長符号部１７０２から得られた今までのＭＢの符号化ビット量とから、実績符号化レートを求める。レート制御部１７０３は、求めた実績符号化レートと目標符号化レートと比較する。
【０１２５】
レート制御部１７０３は、求めた実績符号化レートが目標符号化レートより高ければ符号化レートを下げるように目標量子化ステップを算出して、算出した目標量子化ステップをＱ値変換部１７０４に通知する。レート制御部１７０３は、実績符号化レートが目標符号化レートより低ければ符号化レートを上げるように、目標量子化ステップを算出して、算出した目標量子化ステップをＱ値変換部１７０４に通知する。
【０１２６】
Ｑ値変換部１７０４は、係数変換部１７０７で復号した符号化ストリームのＭＢが係数変換される前に、入力時の量子化ステップとレート制御部１７０３から入力された目標量子化ステップとから出力時の新しい量子化ステップを算出する。つまり、Ｑ値変換部１７０４は、可変長復号部１７０１で復号された符号化ストリームの量子化ステップと、レート制御部１７０３から通知された目標量子化ステップとから、可変長符号部１７０２で再度符号化されて出力されるストリームの新しい量子化ステップを決定する。
【０１２７】
Ｑ値変換部１７０４は、算出した新しい量子化ステップを、係数変換部１７０７とヘッダ格納部１７０５とに通知する。
【０１２８】
ヘッダ格納部１７０５では、Ｑ値変換部１７０４から通知された量子化ステップを量子化スケールコードに変換し、可変長復号部１７０１から通知されたストリームのＭＢヘッダ部のパラメータを新しい値に書き換える。
【０１２９】
係数変換部１７０７は、可変長復号部１７０１から入力時の符号化ストリームの量子化ステップおよび量子化ＤＣＴ係数を取得し、Ｑ値変換部１７０４から目標の量子化ステップを取得する。
【０１３０】
係数変換部１７０７は、取得した量子化ステップおよび目標の量子化ステップとから量子化ＤＣＴ係数を逆量子化および量子化する。この逆量子化および量子化は、一度に実施される。
【０１３１】
係数変換部１７０７は、再度量子化した量子化ＤＣＴ係数を非０化部１７１１に出力する。
【０１３２】
ここで、係数変換部１７０７は、簡単な数式を利用して、逆量子化と量子化を一度に実施する。簡単な数式とはＦＱｏ＝ＦＱｉ×（Ｑｉ／Ｑｏ）である。
【０１３３】
逆量子化時に得られるＤＣＴ係数ＦはＦ＝α×Ｗ×Ｑｉ×ＦＱｉ（α：定数、Ｗ：量子化マトリクス、Ｑｉ：入力時の量子化ステップ、ＦＱｉ：入力時の量子化ＤＣＴ係数）の式で求めることができる。同様に量子化時に得られる量子化ＤＣＴ係数ＦＱｏは、ＦＱｏ＝Ｆ／（α×Ｗ×Ｑｏ）（Ｑｏ：出力時の量子化ステップ）の式で求めることができる。
【０１３４】
これらの式を統合すると逆量子化および量子化を一度に実施する上記の簡単な数式が得られる。この簡単な数式を用いて一度に係数変換をすることで、逆量子化と量子化とを別々に行うより計算を簡略化できる。
【０１３５】
ｒｕｎ制御部１７１２は、係数変換部１７０７で０に係数変換された量子化ＤＣＴ係数が入力された場合、この０に変換された量子化ＤＣＴ係数自身は削除し、ブロック係数格納部１７１５に通知しない。ｒｕｎ制御部１７１２に、次の非０量子化ＤＣＴ係数が到達した場合、０に変換された量子化ＤＣＴ係数の削除した数だけｒｕｎを追加して、追加した結果のｒｕｎをブロック係数格納部１７１５に通知する。
【０１３６】
係数０ブロック検出部１７１３は、係数変換部１７０７で再度量子化された量子化ＤＣＴ係数が非０化部１７１１を介して通知される。係数０ブロック検出部１７１３は、通知された量子化ＤＣＴ係数から、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したかどうかを検出する。
【０１３７】
係数０ブロック検出部１７１３は、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したと検出した場合、ＭＰＥＧ２ではＥＯＢだけのブロックは規格違反であるためＥＯＢを削除するようＥＯＢ削除部１７１４に通知する。ＥＯＢ削除部１７１４は、係数０ブロック検出部１７１３からの通知に基づいて、そのブロックのＥＯＢを削除する。
【０１３８】
また、同時に、係数０ブロック検出部１７１３は、そのブロック中のＭＢヘッダ部のＣＢＰを変更するようヘッダ格納部１７０５に通知する。ヘッダ格納部１７０５は、係数０ブロック検出部１７１３からの通知に基づいて、ＭＢヘッダ部のＣＢＰを変更する処理を行う。
【０１３９】
最終符号化ブロック検出部１７０８は、可変長復号部１７０１から、ＣＢＰとブロック情報を受け取る。最終符号化ブロック検出部１７０８は、受け取ったＣＢＰとブロック情報とから、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後のブロック、かつ、その最後のブロックの量子化ＤＣＴ係数の中で最初の量子化ＤＣＴ係数かどうかを検出する。
【０１４０】
最終符号化ブロック検出部１７０８は、その検出結果を、非０化判定部１７１０に通知する。
【０１４１】
非０係数検出部１７０９は、可変長復号部１７０１から出力され、係数変換部１７０７でレート変換されたＭＢの複数のブロックそれぞれにおいて、ブロック中の再量子化された量子化ＤＣＴ係数に少なくとも１つ非０があるかどうかを検出する。
【０１４２】
非０係数検出部１７０９は、ＭＢの複数のブロックそれぞれにおいて、非０係数を検出すれば、その旨を非０化判定部１７１０に通知する。
【０１４３】
非０化判定部１７１０は、非０係数検出部１７０９からの通知で、非０量子化ＤＣＴ係数を有するＭＢの複数の符号化ブロックの中で最後となる符号化ブロックの第１係数であり、かつ、非０係数検出部１７０９により非０係数が検出されていなければ、非０化部１７１１に０化を禁止するよう通知する。
【０１４４】
非０化部１７１１は、係数変換部１７０７で再度量子化され量子化ＤＣＴ係数が入力される。
【０１４５】
非０化部１７１１は、ＭＢの複数の符号化ブロックの中で最後となる符号化ブロックの第１係数の、係数変換部１７０７で変換された量子化ＤＣＴ係数が０であり、かつ、０化の禁止が非０化判定部１７１０により指示された場合に限り、その量子化ＤＣＴ係数を“１”などの非０値に置換する。
【０１４６】
ヘッダ格納部１７０５は、１ＭＢ全体の変換が終わった時点で、ＭＢヘッダ部のパラメータを可変長符号部１７０２に通知する。可変長符号部１７０２は、ＭＢヘッダ部のストリームを得る。
【０１４７】
また、ブロック係数格納部１７１５は、ブロック部の係数を可変長符号部１７０２に通知する。可変長符号部１７０２は、ブロック部のストリームを得る。
【０１４８】
それにより、可変長符号部１７０２は、ＭＰＥＧ２のストリームを得る。
【０１４９】
ここで、図１７の符号化レート変換装置１７００における構成以外の構成について説明する。
【０１５０】
図１８、図１９および図２０は、本発明の実施の形態１における符号化レート変換装置１７００の別の一例を示す構成図である。図１７と同様の要素には同一の符号を付しており、詳細な説明は省略する。
【０１５１】
図１８に示す符号化レート変換装置１８００は、図１７に示す符号化レート変換装置１７００の構成における係数変換部１７０７を逆量子化部１８０６および量子化部１８０７に置き換えた構成である。
【０１５２】
図１８に示すように、図１７の係数変換部１７０７を逆量子化部１８０６および量子化部１８０７と別々に構成しても本発明と同様の効果を奏することができる。
【０１５３】
図１９に示す符号化レート変換装置１９００は、図１７の符号化レート変換装置１７００の構成における係数変換部１７０７および非０化部１７１１を、非０化係数変換部１９０７に置き換えた構成である。
【０１５４】
図１７に示す符号化レート変換装置１７００では、係数変換部１７０７で量子化ＤＣＴ係数が０に変換することを許容した上で、非０化部１７１１で独立に非０化を行う。一方、図１９に示す符号化レート変換装置１９００では、この両方の機能を一度に非０化係数変換部１９０７で行わせる。
【０１５５】
非０化係数変換部１９０７は、非０化判定部１７１０により非０化処理を適用しないと判定されたときには、ＦＱｏ＝ＦＱｉ×（Ｑｉ／Ｑｏ）の式で動作する。
【０１５６】
非０化係数変換部１９０７は、非０化判定部１７１０により非０化処理を適用すると判定されたときには、ＦＱｏ＝ｍｉｎ｛ＦＱｉ×（Ｑｉ／Ｑｏ），１｝として動作する。
【０１５７】
図１９の構成は、図１の構成とほぼ同等であり、わずかに構成が簡略化できるという効果を奏する。
【０１５８】
図２０に示す符号化レート変換装置２０００は、図１８における符号化レート変換装置１８００の構成の可変長復号部１７０１と逆量子化部１８０６との間にブロック係数格納部２０１６が、逆量子化部１８０６と量子化部１８０７との間にブロック係数格納部２０１７が、量子化部１８０７と非０化部１７１１との間にブロック係数格納部２０１６が挿入された構成である。
【０１５９】
なお、図１７、図１８および図１９に示す符号化レート変換装置１７００、１８００および１９００は、非０の量子化ＤＣＴ係数のレート変換を１つずつの単位で処理を行う。一方、図２０に示す符号化レート変換装置２０００は非０の量子化ＤＣＴ係数のレート変換をブロック単位で処理を行う。
【０１６０】
また、一般的な画像復号化装置および画像符号化装置はブロック単位で処理を行うため、図２０に示す符号化レート変換装置２０００の構成ではこれらの逆量子化部１８０６や量子化部１８０７などの流用が可能である点で有効である。
【０１６１】
また、本発明は図１７、図１８、図１９および図２０に示すいずれの構成でも、実現可能であるが、図１７に示す符号化レート変換装置１７００が処理効率と実現容易性とのバランスがよく好ましい。よって、以降は、図１７の符号化レート変換装置１７００の構成を用いて符号化レート変換装置の動作を説明する。
【０１６２】
次に、本発明の実施の形態における符号化レート変換装置１７００の動作について説明する。
【０１６３】
図２１は、本発明の実施の形態１の符号化レート変換装置１７００のＭＢ全体処理を示すフロー図である。
【０１６４】
まず、可変長復号部１７０１は、ＭＰＥＧ２の符号化ストリームのＭＢヘッダを復号し、復号結果をヘッダ格納部１７０５に通知する。ヘッダ格納部１７０５は、その復号結果を格納する（Ｓ２１０１）。
【０１６５】
可変長復号部１７０１は、また、符号化ストリームのＭＢの復号完了後に、復号した符号化ストリームのＭＢのビット量を、レート制御部１７０３に通知する。
【０１６６】
次に、レート制御部１７０３は、当該マクロブロック以前の復号ビット量や符号化ビット量に基づいて、内部のレート制御バッファを更新し、目標量子化ステップを算出する（Ｓ２１０２）。すなわち、レート制御部１７０３は、可変長復号部１７０１から得られた今までのＭＢの復号化ビット量と可変長符号部１７０２から得られた今までのＭＢの符号化ビット量とから算出した実績符号化レートに基づいて、目標量子化ステップを算出する。そして、レート制御部１７０３は、算出した目標量子化ステップをＱ値変換部１７０４に通知する。
【０１６７】
ここで、符号化装置の場合は、この目標量子化ステップの値をそのまま出力時の量子化ステップとして用いればよいが、レート変換装置の場合は必ずしもそれは得策ではない。例えば、入力時に大きな量子化ステップが指定されたＭＢに対して、小さな量子化ステップを割り当てても、入力したストリームの画質以上に出力するストリームの画質がよくなることはないことは自明である。
【０１６８】
したがって、レート変換装置では、目標量子化ステップをそのまま出力時の量子化ステップとして利用するのではなく、入力時の量子化ステップも参照して、出力時の量子化ステップの算出を行う。
【０１６９】
次に、Ｑ値変換部１７０４は、入力時の量子化ステップとレート制御部１７０３から入力された目標量子化ステップとから出力時の量子化ステップの算出を行う。Ｑ値変換部１７０４は、算出した新しい量子化ステップを、係数変換部１７０７とヘッダ格納部１７０５とに通知する。その通知にしたがって、ヘッダ格納部１７０５は、格納する量子化スケールコードの書き換えを行う（Ｓ２１０３）。
【０１７０】
次に、可変長復号部１７０１は、Ｓ２１０１で復号したＭＢヘッダ部のＣＢＰを参照し、復号ブロック数を確認する（Ｓ２１０４）。
【０１７１】
ここで、ＣＢＰを参照した結果、ＭＢタイプが“Ｎｏｔ  Ｃｏｄｅｄ”の場合は（Ｓ２１０４のＮの場合）、量子化ＤＣＴ係数が存在しないので、当該ＭＢのレート変換処理は終了し、ＭＢヘッダの再符号化を行い（Ｓ２１１９）、ＭＢの処理を終了する。すなわち、可変長復号部１７０１は、ＭＢタイプが“Ｎｏｔ  Ｃｏｄｅｄ”の場合は、復号した符号化ストリームのＭＢブロック部のパラメータを、係数変換部１７０７、非０化部１７１１、ｒｕｎ制御部１７１２、ＥＯＢ削除部１７１４およびブロック係数格納部１７１５を介して（素通りさせて）、可変長符号部１７０２に通知する。可変長符号部１７０２は、ヘッダ格納部１７０５からのＭＢヘッダ部のパラメータと可変長復号部１７０１からのＭＢブロック部のパラメータを再符号化する。
【０１７２】
ＣＢＰを参照した結果、ＭＢタイプが“Ｃｏｄｅｄ”もしくは“Ｉｎｔｒａ”の場合は、少なくとも１つ以上の符号化ブロックが存在するため、次のステップに進む。
【０１７３】
次に、可変長復号部１７０１は、量子化ＤＣＴ係数を１つずつ復号する（Ｓ２１０５）。
【０１７４】
量子化ＤＣＴ係数が“ＩｎｔｒａＤＣ”もしくは“ＥＯＢ”の場合は（Ｓ２１０６のＹの場合）、復号したその量子化ＤＣＴ係数は、係数変換部１７０７での係数変換の対象にならない。その場合、Ｓ２１０４のＮの場合と同様に、当該ＭＢのレート変換処理を終了し、ＭＢヘッダの再符号化を行い（Ｓ２１１９）、ＭＢの処理を終了する。
【０１７５】
それ以外、すなわち量子化ＤＣＴ係数が“ＩｎｔｒａＤＣ”もしくは“ＥＯＢ”でない場合（Ｓ２１０６のＮ）、係数変換部１０７は、量子化ステップの変更に伴う量子化ＤＣＴ係数の係数変換を行う（Ｓ２１０７）。
【０１７６】
ここで、係数変換された量子化ＤＣＴ係数の非０化処理が必要かどうかを判定する。具体的には、まず、最終符号化ブロック検出部１７０８は、可変長復号部１７０１で復号されたＭＢヘッダ部のＣＢＰを参照して、現在変換処理の対象となっているブロックが、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後の符号化ブロックであるかどうかを判定する（Ｓ２１０８）。
【０１７７】
次に、非０係数検出部１７０９は、現在変換処理の対象となっているＭＢの係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれていたかどうかを判定する（Ｓ２１０９）。
【０１７８】
非０化部１７１１は、非０化判定部１７１０が、Ｓ２１０８が真で、かつ、Ｓ２１０９が偽であると判定した場合は、係数変換後の値が０の場合に限り、“１”などの非０値に変換する（Ｓ２１１１）。ここで、この処理は、変換処理の対象となっているＭＢの量子化ＤＣＴ係数がすべて０に変換されてしまうＭＰＥＧ２規格違反の恐れを、処理の後戻りなく回避するための処理である。
【０１７９】
次に、ｒｕｎ制御部１７１２は、係数変換部１７０７で係数変換され、非０化部１７１１を介して入力された量子化ＤＣＴ係数が入力される。
【０１８０】
ｒｕｎ制御部１７１２では、入力された量子化ＤＣＴ係数が０である場合は、可変長符号部１７０２で独立とした１つの量子化ＤＣＴ係数として符号化されないように、次の量子化ＤＣＴ係数のｒｕｎとして表現する。
【０１８１】
ｒｕｎ制御部１７１２は、入力された係数変換後の量子化ＤＣＴ係数が０である場合は（Ｓ２１１３の０の場合）、次の量子化ＤＣＴ係数で反映するためにｒｕｎを蓄積する処理を行い（Ｓ２１１４）、可変長符号部１７０２で符号化対象としないようにする。
【０１８２】
また、ｒｕｎ制御部１７１２は、入力された係数変換後の量子化ＤＣＴ係数が０以外の値である場合は（Ｓ２１１３の！０の場合）、そのままの値を符号化対象とする。このとき、ｒｕｎ制御部１７１２は、Ｓ２１１４でｒｕｎが蓄積されていた場合はそれを反映するｒｕｎ加算の処理を行う（Ｓ２１１５）。
【０１８３】
そして、ｒｕｎ制御部１７１２は、次の非０量子化ＤＣＴ係数が入力された場合に、０に変換された量子化ＤＣＴ係数の削除した数だけ追加したｒｕｎをブロック係数格納部１７１５に通知する。ブロック係数格納部１７１５は、通知されたｒｕｎを係数バッファに格納する（Ｓ２１１８）。
【０１８４】
また、係数０ブロック検出部１７１３は、ｒｕｎ制御部１７１２に入力された量子化ＤＣＴ係数が係数変換された後の量子化ＤＣＴ係数から、ブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したかどうかを検出する。
【０１８５】
係数０ブロック検出部１７１３は、当該ブロックの量子化ＤＣＴ係数がすべて０を検出した場合、すなわち再符号化対象のＭＢにおけるブロック中に非０量子化ＤＣＴ係数が含まれないままでＥＯＢに到達したと検出した場合（Ｓ２１１３のＥＯＢの場合）、ＥＯＢを削除するようＥＯＢ削除部１７１４に通知する。また、同時に係数０ブロック検出部１７１３は、そのブロック中のＭＢヘッダ部のＣＢＰを変更するようヘッダ格納部１７０５に通知する。
【０１８６】
係数０ブロック検出部１７１３からの通知に基づいて、ヘッダ格納部１７０５は、ＭＢヘッダ部のＣＢＰを変更し、ＥＯＢ削除部１７１４は、そのブロック終端であるＥＯＢを削除する（Ｓ２１１７）。
【０１８７】
ここで、この処理は、変換処理の対象となっているＭＢの符号化ブロックの量子化ＤＣＴ係数がすべて０で変換されてしまいＭＰＥＧ２規格違反してしまう恐れを、処理の後戻りなく回避するための処理である。この処理により、係数変換後すべての量子化ＤＣＴ係数が０になるブロックを符号化対象から外し、ＣＢＰの変更をすることでＭＰＥＧ２規格に準拠させる。
【０１８８】
次に、ブロック係数格納部１７１５は、ＥＯＢ削除部１７１４を介して通知されたｒｕｎを、可変長符号部１７０２で符号化対象となる量子化ＤＣＴ係数として係数バッファに格納し（Ｓ２１１８）、次の係数の処理に移行する（Ｓ２１０４）。
【０１８９】
上述したＳ２１０４〜Ｓ２１１８の処理を繰り返し、可変長符号部１７０２で符号化対象ブロックとなるすべてのブロックの復号が完了すれば（Ｓ２１０４のＮの場合）、ＭＢヘッダ中のＣＢＰの値は確定される。確定されたＣＢＰの値に基づいて、ヘッダ格納部１７０５の内容を可変長符号部１７０２にて符号化する（Ｓ２１１９）。
【０１９０】
最後に、ブロック係数格納部１７１５に格納されている１マクロブロック分の量子化ＤＣＴ係数の内容を、可変長符号部１７０２にて符号化する（Ｓ２１２０）。
【０１９１】
それにより、可変長符号部１７０２は、ＭＢヘッダ部およびブロック部のストリームを得る。
【０１９２】
以上のようにして、符号化レート変換装置１７００は、ＭＢ全体処理を行う。
【０１９３】
図２２は、本発明の実施の形態１の符号化レート変換装置１７００の最終符号化ブロック判定処理を示すフロー図である。図２２では、符号化レート変換装置１７００の最終符号化ブロック検出部１７０８における最終符号化ブロック判定（Ｓ２１０８）を詳細に説明する。
【０１９４】
まず、最終符号化ブロック検出部１７０８は、可変長復号部１７０１から入力されるＭＢの先頭で、復号ブロック数を０に初期化する（Ｓ２２０１）。
【０１９５】
次に、最終符号化ブロック検出部１７０８は、可変長復号部１７０１から入力されるＭＢから取得した量子化ＤＣＴ係数を１つ読み込む（Ｓ２２０２）。
【０１９６】
次に、最終符号化ブロック検出部１７０８は、係数変換部１７０７で係数変換対象となる可変長復号部１７０１で復号された復号ブロック数の数と、ＣＢＰで示されるＭＢの符号化ブロック数（総数）とを比較する。最終符号化ブロック検出部１７０８は、可変長復号部１７０１で復号された現在の復号ブロック数の数がＭＢの符号化ブロック総数より１小さければ（Ｓ２２０３のＹの場合）、現在復号され、係数変換部１７０７で係数変換対象となる量子化ＤＣＴ係数が、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックのものであると判定する。
【０１９７】
ここでは、最終符号化ブロック検出部１７０８は、符号化されるブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックであるかどうかを、その最終の符号化ブロックとなり得るブロック中の最初の係数（第１係数）を最終符号化ブロックとして判定する。
【０１９８】
次に、最終符号化ブロック検出部１７０８は、非０量子化ＤＣＴ係数を有する最終の符号化ブロックをすでに判定済みかどうかを判断する（Ｓ２２０４）。
【０１９９】
最終符号化ブロック検出部１７０８がまだ判定済みでない場合（Ｓ２２０４のＮの場合）、最終の符号化ブロックとなり得るブロック中の最初の係数（第１係数）を検出し、検出した最初の係数（第１係数）を最終符号化ブロックとして判定する（Ｓ２２０５）。ここで、最終符号化ブロックと判定されたブロック中の２番目以降の量子化ＤＣＴ係数では、Ｓ２２０５ですでに判定済みのため、判定されない。すなわち２番目以降の量子化ＤＣＴ係数に対する判定はスキップされる。
【０２００】
次に、最終符号化ブロック検出部１７０８は、現在復号され、最終符号化ブロック検出部１７０８に入力された量子化ＤＣＴ係数が“ＥＯＢ”であるかどうかを判定する（Ｓ２２０６）。
【０２０１】
最終符号化ブロック検出部１７０８は、その量子化ＤＣＴ係数が“ＥＯＢ”でないと判定すれば（Ｓ２２０６のＮの場合）、まだブロックが継続しているので、次の量子化ＤＣＴ係数の復号に戻り、Ｓ２２０２からの処理を繰り返す。
【０２０２】
最終符号化ブロック検出部１７０８は、その量子化ＤＣＴ係数が“ＥＯＢ”であると判定すれば（Ｓ２２０６のＹの場合）、現在の復号ブロック数を１増加させ（Ｓ２２０６）、１増加させた復号ブロック数の数と、ＣＢＰで示されるＭＢの符号化ブロック数（総数）とを比較する（Ｓ２２０８）。
【０２０３】
最終符号化ブロック検出部１７０８は、１増加させた復号ブロック数と符号化ブロック数とが一致すれば（Ｓ２２０８のＹの場合）、ＭＢのすべての符号化ブロックの復号が完了したので、処理を終了する。
【０２０４】
最終符号化ブロック検出部１７０８は、１増加させた復号ブロック数と符号化ブロック数が一致しなければ（Ｓ２２０８のＮの場合）、まだ復号すべき符号化ブロックが存在するため、次の量子化ＤＣＴ係数の復号に戻り、Ｓ２２０２からの処理を繰り返す。
【０２０５】
以上のようにして、最終符号化ブロック検出部１７０８は最終符号化ブロック判定を行う。
【０２０６】
図２３は、本発明の実施の形態１の符号化レート変換装置１７００の非０係数検出処理を示すフロー図である。図２３では、符号化レート変換装置１７００の非０係数検出部１７０９における非０係数検出（Ｓ２１０９）を詳細に説明する。
【０２０７】
まず、非０係数検出部１７０９は、非０化部１７１１から出力されるＭＢの先頭で、現ＭＢ変換後係数０フラグをＯＮに初期化する（Ｓ２３０１）。
【０２０８】
次に、非０係数検出部１７０９は、可変長復号部１７０１から入力され、係数変換部１７０７でレート変換された後の量子化ＤＣＴ係数を１つ読み込む（Ｓ２３０２）。
【０２０９】
非０係数検出部１７０９は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”であれば（Ｓ２３０３のＹの場合）、ＭＢのすべての符号化ブロックの処理が完了したかどうかを検出する（Ｓ２３０６）。
【０２１０】
ＭＢのすべての符号化ブロックの処理が完了していなければ（Ｓ２３０６のＮの場合）、処理を継続し、完了していれば（Ｓ２３０６のＹの場合）、ＭＢの処理が完了する。なお、符号化ブロックの終了判定は図２２の処理フローと同等のため、詳細は省略する。
【０２１１】
また、非０係数検出部１７０９は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”でなければ（Ｓ２３０３のＮの場合）、非０係数検出部１７０９は、レート変換後の量子化ＤＣＴ係数が０であるかどうかを判定する（Ｓ２３０４）。
【０２１２】
非０係数検出部１７０９は、レート変換後の量子化ＤＣＴ係数が０でなければ（Ｓ２３０４のＮの場合）、現在のＭＢで非０化処理を行う必要がないため、現ＭＢ変換後係数０フラグをＯＦＦに落とす（Ｓ２３０５）。
【０２１３】
ただし、ＭＢ内で一度も０でない係数が発生していなければ、依然として非０化処理が必要な可能性があるので、フラグをＯＮのまま保つ。
【０２１４】
以上のようにして、非０係数検出部１７０９は、非０係数検出を行う。
【０２１５】
図２４は、本発明の実施の形態１の符号化レート変換装置１７００の係数０ブロック検出処理を示すフロー図である。図２４では、符号化レート変換装置１７００においてＣＢＰの変更が必要かどうかの判定に必要となる、係数０ブロック検出部１７１３での係数０ブロック検出（Ｓ２３１６）を詳細に説明する。
【０２１６】
まず、係数０ブロック検出部１７１３は、非０化部１７１１から出力されるＭＢのブロックの先頭で、現ブロック変換後係数０フラグをＯＮに初期化する（Ｓ２４０１）。
【０２１７】
次に、係数０ブロック検出部１７１３は、可変長復号部１７０１から入力され、係数変換部１７０７でレート変換された後の量子化ＤＣＴ係数を１つ読み込む（Ｓ２４０２）。
【０２１８】
係数０ブロック検出部１７１３は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”であれば（Ｓ２４０３のＹの場合）、現在の符号化ブロックの処理は終了する。
【０２１９】
このとき、現ブロック変換後係数０フラグがＯＦＦであれば、少なくとも１つ以上の量子化ＤＣＴ係数が非０係数であるので、ヘッダ格納部１７０５でＣＢＰは変更されない。現ブロック変換後係数０フラグがＯＮであれば、非０係数は１つも存在しないので、ヘッダ格納部１７０５で、ＣＢＰの該当ブロックの値が１（符号化ブロック）から０（係数０ブロック）に変更される。その後、フラグの初期化に戻り、Ｓ２４０１、Ｓ２４０２およびＳ２４０３の処理を行う。Ｓ２４０３において、すべての符号化ブロックの処理が完了していれば（Ｓ２４０６）、ＭＢ全体の処理が終了する。
【０２２０】
また、係数０ブロック検出部１７１３は、Ｓ２４０４において、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が“ＥＯＢ”でなければ（Ｓ２４０３のＮの場合）、レート変換された後の量子化ＤＣＴ係数が０であるかを確認する（Ｓ２４０４）。
【０２２１】
係数０ブロック検出部１７１３は、Ｓ２３０２で読み込んだその量子化ＤＣＴ係数が０でなければ（Ｓ２４０４のＮの場合）、ＣＢＰは変更される必要がないので、現ブロック変換後に係数０フラグをＯＦＦに落とす（Ｓ２４０５）。そして、Ｓ２４０２の処理へと戻る。
【０２２２】
ただし、係数０ブロック検出部１７１３は、Ｓ２４０５において、ＭＢのブロック内で一度も０でない係数が発生していなければ、依然としてＣＢＰの変更が必要である可能性があるので、フラグをＯＮのまま保つ。
【０２２３】
以上のようにして、係数０ブロック検出部１７１３は、係数０ブロック検出を行う。
【０２２４】
なお、図２２の処理フローでは、最終符号化ブロック検出部１７０８での判定に、第１係数の判定も含めている。これは、第１係数の判定までを行うことで、第２係数以降の量子化ＤＣＴ係数が非０化するように判定されるのを防止するためである。ただし、ここで第１係数の判定を含めなかったとしても、第１係数が非０化され、非０係数検出部１７０９での判定が変化するので、第２係数以降が非０化されることはない。したがって、この処理フローの中では、第１係数の判定まで含めても、含めなくてもよい。
【０２２５】
次に、本発明の符号化レート変換装置１７００の具体的な動作を、図を用いて以下説明する。
【０２２６】
図２５、図２６、図２７および図２８は、本発明の実施の形態１の符号化レート変換装置１７００での変換の一例を示す図である。
【０２２７】
図２５では、最終符号化ブロックの非０化処理が不要の場合（図２５（ａ））と必要な場合（図２５（ｂ））の例を示している。
【０２２８】
図２５に示すように、レート変換対象のＭＢのＣＢＰは０１１１１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂとなる。
【０２２９】
なお、最終符号化ブロックより以前のブロックでは、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００と同様に動作するので説明を省略する。
【０２３０】
本発明の符号化レート変換装置１７００では、最終符号化ブロック以前のブロック変換後（すなわち最終符号化ブロック変換直前）の状態によって、最終符号化ブロックの変換方法が異なる。
【０２３１】
図２５（ａ）では、すでに４番目の輝度（右下）が符号化ブロックとして確定している。５番目の色差（青）Ｃｂの最終符号化ブロックは、係数０ブロックに変換されたとしても４番目のブロックのＣＢＰが１であるので（ＣＢＰ＝０００１Ｘ０）、ＣＢＰが０になることがない。したがって、非０化処理を行わなくてよい。
【０２３２】
ここで、非０化処理を行わない場合の結果は、ＣＢＰは０００１００となり、ＣＢＰが０にはなっていない。
【０２３３】
図２５（ｂ）では、最終符号化ブロック以前のブロックがすべて係数０ブロックに変換されている（ＣＢＰ＝００００Ｘ０）。したがって、５番目の色差（青）Ｃｂの最終符号化ブロックが係数０ブロックに変換すると不都合（ＣＢＰ＝００００００）が生じるため、非０化処理を行う。
【０２３４】
ここで、非０化処理を行う場合の結果は、ＣＢＰは００００１０となり、ＣＢＰが０にならない。
【０２３５】
次に、本発明の符号化レート変換装置１７００における、非０化処理を伴わない場合のブロック係数変換処理について、図２６を用いて説明する。
【０２３６】
図２６では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。また図２６の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。
【０２３７】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数を変換する。最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）は（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換される。
【０２３８】
ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０の場合は、量子化ＤＣＴ係数を符号化しないようにするため、この量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝０）を削除する（ブロック係数格納部１７１５に通知しない）と同時に、次の量子化ＤＣＴ係数で加算反映するためにｒｕｎを蓄積する。
【０２３９】
図２６の例では、削除対象となる量子化ＤＣＴ係数のｒｕｎは１であり、削除対象となる量子化ＤＣＴ係数が加算されてｒｕｎが１増加する。そのため、蓄積すべきｒｕｎは１＋１＝２となる。
【０２４０】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝２）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝２）を（ｒｕｎ＝５、ｌｅｖｅｌ＝１）に変換する。
【０２４１】
ｒｕｎ制御部１７１２は、蓄積していたｒｕｎを量子化ＤＣＴ係数に反映させて、ｒｕｎ＝５＋２＝７に変換する（ｒｕｎ＝７、ｌｅｖｅｌ＝１）。また、ｒｕｎ制御部１７１２は、変換した量子化ＤＣＴ係数（ｒｕｎ＝７、ｌｅｖｅｌ＝１）をブロック係数格納部１７１５に通知し、さらには蓄積していたｒｕｎを０に（クリア）する。
【０２４２】
最後に、係数変換部１７０７は、ブロックの３番目の係数（ＥＯＢ）を読み込む。この場合、ＥＯＢはそのままブロック係数格納部１７１５に格納させる。
【０２４３】
次に、本発明の符号化レート変換装置１７００の非０化処理を伴わない場合の係数変換処理について、別の例である図２７を用いて説明する。
【０２４４】
図２７では、図２６と同様に、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。また図２７の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。
【０２４５】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。
【０２４６】
ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０のため、ｒｕｎ＝１＋１＝２を蓄積するとともに、量子化ＤＣＴ係数を削除する。
【０２４７】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝０）に変換する。
【０２４８】
ｒｕｎ制御部１７１２は、すでに蓄積されている２に加え、削除対象の量子化ＤＣＴ係数のｒｕｎ＝５と、削除対象となる量子化ＤＣＴ係数自身によるｒｕｎの増加分１を加える。すなわち、ｒｕｎ制御部１７１２は、蓄積すべきｒｕｎを２＋５＋１＝８とするとともに量子化ＤＣＴ係数を削除する。
【０２４９】
最後に、係数変換部１７０７は、ブロックの３番目の係数（ＥＯＢ）を読み込む。
【０２５０】
ここで、係数０ブロック検出部１７１３は、１番目の変換後係数のｌｅｖｅｌが０であり、２番目の変換後係数のｌｅｖｅｌも０であるため、係数０ブロックとして検出する。
【０２５１】
なお、係数０ブロックへの変換時には、ヘッダ格納部１７０５でＣＢＰを変更するとともに、ＥＯＢ削除部１７１４で、ＥＯＢも削除する。
【０２５２】
したがって、図２７の例の符号化ブロックでは、ブロック係数格納部１７１５には、係数が１つも格納されないことになる。
【０２５３】
図２７の例では、非０化処理を伴わなかったので、係数０ブロックへの変換を行った。非０化処理を伴う場合は、係数０ブロックへの変換を防止する処理を行う。
【０２５４】
次に、本発明の符号化レート変換装置１７００の非０化処理を伴う場合の係数変換処理について、図２８を用いて説明する。
【０２５５】
図２８では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×２＝８で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。図２８では、非０化処理が適用される。また、図２８の例では、ｌｅｖｅｌの値の小数点以下を切り捨てるとする。
【０２５６】
まず、係数変換部１７０７は、符号化ブロックの量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝８）に基づき、最初の量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝１）から（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。
【０２５７】
非０化部１７１１は、非０化処理を伴う場合、符号化ブロックの最初の量子化ＤＣＴ係数がｌｅｖｅｌ＝０であった場合、非０値に変更する（この場合は１に変更）処理を行う。すなわち、非０化部１７１１は、変換後の最初の量子化ＤＣＴ係数の（ｒｕｎ＝１、ｌｅｖｅｌ＝１）を、（ｒｕｎ＝１、ｌｅｖｅｌ＝１）に非０化処理する。そして、非０化部１７１１は、非０化処理した旨をブロック係数格納部１７１５に通知する。
【０２５８】
次に、係数変換部１７０７は、符号化ブロックの次の量子化ＤＣＴ係数（ｒｕｎ＝５、ｌｅｖｅｌ＝−１）を読み込み、量子化ＤＣＴ係数を（ｒｕｎ＝５、ｌｅｖｅｌ＝０）に変換する。ここで、次の量子化ＤＣＴ係数は、符号化ブロックの最初の係数ではないので、非０化部１７１１では非０化処理は行われない。
【０２５９】
したがって、ｒｕｎ制御部１７１２は、ｌｅｖｅｌ＝０のために、ｒｕｎ＝５＋１を蓄積するとともに、量子化ＤＣＴ係数を削除する。
【０２６０】
最後に、ブロックの最後の係数（ＥＯＢ）を読み込む。
【０２６１】
ここまで、係数０ブロック検出部１７１３は、第１係数が非０化処理により、係数０ブロックを検出しない。そのため、ＥＯＢはそのまま、ブロック係数格納部１７１５に格納される。また、ｒｕｎ制御部１７１２は、ＥＯＢを検出すると蓄積するｒｕｎを０に（クリア）する。
【０２６２】
以上の図２６〜図２８で示したように、非０化処理を伴わない係数変換処理、非０化処理を伴う係数変換処理が実現できる。そのため、ＭＰＥＧ２の符号化レートを変換する際のＭＰＥＧ２規格違反の恐れを回避できる符号化レート変換が実現できる。
【０２６３】
かかる構成によれば、符号化ブロックが係数０ブロックに変換されることを検出してから量子化ＤＣＴ係数を非０化するのではなく、あらかじめ符号化ブロックが係数０ブロックに変換されることを予測して、量子化ＤＣＴ係数を非０化するため、後戻り処理が発生しない。
【０２６４】
また、かかる構成によれば、すべての符号化ブロックが係数０ブロックに変更されることがなくなるので、必ず規格に準拠した変換を行うことができる。
【０２６５】
また、かかる構成によれば、すべての符号化ブロックを符号化ブロックのまま残すのではなく、必要最低限の符号化ブロックだけを残すので、効率よくレート変換を行うことができる。
【０２６６】
なお、本例はＭＰＥＧ２を前提として記載しているが、ＭＰＥＧ１でも同様の議論が成立する。また、ＭＰＥＧ１／２以外の画像コーデックにおいても、ＣＢＰを０以外から０に変更する場合に、複雑な処理が発生するのであれば、同様の議論が成立する。
【０２６７】
また、本例はＤＣＴ変換を利用する画像コーデックを前提として記載しているが、ＤＣＴ変換以外の直交変換を利用していても、同様の議論が成立する。
【０２６８】
また、本例は８×８サイズのブロックを用いる画像コーデックを前提として記載しているが、それ以外のサイズでも同様の議論が成立する。
【０２６９】
また、本例は４：２：０（輝度、色差、色差）の６ブロック構成を用いる画像コーデックを前提として記載しているが、４：２：２などその他のブロック構成を用いる画像コーデックでも同様の議論が成立する。
【０２７０】
また、本例は係数変換時に小数点以下を切り捨てることを前提として記載しているが、小数点以下は四捨五入であっても、その他の方法で整数化していても、同様の議論が成立する。
【０２７１】
（実施の形態２）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行う場合、本来は０に変換させるべき量子化ＤＣＴ係数を０以外に変換する。このとき、本来０への変換が非０化により妨げられることにより、符号化レート変換時の誤差が増大することになる。
【０２７２】
実施の形態１の方法において、誤差が発生するのは、最後に符号化されたブロックである。ＭＰＥＧ２では輝度および色差の順でブロックが符号化されるので、色差に誤差が発生する可能性が高くなる。人間の視覚的な性質から輝度は色差より敏感であるため、輝度に比べて、色差に誤差が発生する可能性が高いこと自体は問題ない。しかし、ＭＰＥＧ２では、前記の視覚的な性質を利用して、標準で４：２：０（色差の情報を輝度の情報量の１／４で６ブロック構成）で符号化するため、色差ではすでに情報が落ちている。すでに情報量が落ちた色差に対してさらに誤差を重畳することになる。
【０２７３】
したがって、情報量の多い輝度に比べて、色差では影響が大きく発生する場合が考えられるが、非０化による誤差の発生をできるだけ輝度だけにとどめたい。そこで、本発明の実施の形態２では、非０化による誤差の発生をできるだけ輝度だけにとどめたいという要求に対応するための符号化レート変換装置２９００について、以下に説明する。
【０２７４】
図２９は、本発明の実施の形態２における符号化レート変換装置２９００の構成図である。
【０２７５】
図２９の符号化レート変換装置２９００は、図１７の符号化レート変換装置１７００と比較して、最終符号化ブロック検出部１７０８が、輝度最終符号化ブロック検出部２９０８に置き換わった構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。
【０２７６】
輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１から、ＣＢＰとブロック情報を受け取る。
【０２７７】
輝度最終符号化ブロック検出部２９０８は、受け取ったＣＢＰとブロック情報とから、符号化されたブロック（ＣＢＰ）の輝度に属するブロックの中で非０量子化ＤＣＴ係数を有する最後のブロック、かつ、その最後のブロックの量子化ＤＣＴ係数の中での最初の量子化ＤＣＴ係数かどうかを検出する。
【０２７８】
輝度最終符号化ブロック検出部２９０８は、その検出結果を、非０化判定部１７１０に通知する。
【０２７９】
図３０は、本発明の実施の形態２における符号化レート変換装置２９００の最終符号化ブロック判定処理を示すフロー図である。図２２の処理フローと同様の処理には同一の符号を付している。
【０２８０】
本発明の実施の形態１における図２２の処理フローと比較して、Ｓ３００３とＳ３３０４の処理が追加され、Ｓ３００５が図２２のＳ２２０５と置き換えられている。
【０２８１】
Ｓ３００３において、輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがあるかどうかを判定する。
【０２８２】
輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがあれば（Ｓ３００３のＹの場合）、輝度の符号化ブロック数と復号ブロック数を比較して、最終の輝度符号化ブロックかどうかを判定する（Ｓ３００４）。
【０２８３】
具体的には、輝度最終符号化ブロック検出部２９０８は、係数変換部１７０７で係数変換対象となる可変長復号部１７０１で復号された復号ブロック数の数と、ＣＢＰで示される輝度の符号化ブロック数とを比較する。輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１で復号された現在の復号ブロック数が輝度の符号化ブロック総数より１小さければ（Ｓ３００４のＹの場合）、現在復号され、係数変換部１７０７で係数変換対象となる量子化ＤＣＴ係数が、符号化される輝度のブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最終の符号化ブロックのものであると判定する。
【０２８４】
また、Ｓ３００３において、輝度最終符号化ブロック検出部２９０８は、符号化ブロックに輝度ブロックがなければ、Ｓ２２０３に進み、実施の形態１と同様の判定を行う。
【０２８５】
その他の処理フローは図２２と同じであるため、詳細な説明は省略する。
【０２８６】
なお、Ｓ３００５において、輝度最終符号化ブロック検出部２９０８は、最終の輝度の符号化ブロックとなり得る輝度のブロック中の最初の係数（第１係数）を検出し、検出した最初の係数（第１係数）を最終輝度符号化ブロックとして判定する。
【０２８７】
本発明の実施の形態２における符号化レート変換装置２９００の非０係数検出判定フローは、実施の形態１における図２３のＳ２３０１〜Ｓ２３０６と同様であるため、図示および詳細な説明は省略する。
【０２８８】
また、本発明の実施の形態２における符号化レート変換装置２９００の係数０ブロック検出フローは、実施の形態１における図２４のＳ２４０１〜Ｓ２４０６と同様であるため、図示および詳細な説明は省略する。
【０２８９】
図３１は、本発明の実施の形態２の符号化レート変換装置２９００のＭＢ全体処理を示すフロー図である。図２１の処理フローと同様の処理には同一の符号を付している。
【０２９０】
図３１は、本発明の実施の形態１における図２１の処理フローと比較して、Ｓ３１０８が図２１のＳ２１０８と置き換えられている。
【０２９１】
Ｓ３１０８において、輝度最終符号化ブロック検出部２９０８は、可変長復号部１７０１で復号されたＭＢヘッダ部のＣＢＰを参照して、符号化ブロックに輝度ブロックがあれば、現在変換処理の対象となっている輝度ブロック輝度が、符号化される輝度ブロック（ＣＢＰ）の中で非０量子化ＤＣＴ係数を有する最後の輝度ブロックであるかどうかを判定する（Ｓ３１０８）。
【０２９２】
その他の処理フローは図２１と同じであるため、詳細な説明は省略する。
【０２９３】
次に、本発明の実施の形態２における符号化レート変換装置２９００の具体的な動作について図を用いて説明する。
【０２９４】
図３２は、本発明の実施の形態２の符号化レート変換装置２９００での変換の一例を示す図である。
【０２９５】
図３２では、最終輝度符号化ブロックの非０化処理が不要の場合（図３２（ａ））と必要な場合（図３２（ｂ））の例を示している。
【０２９６】
図３２に示すように、レート変換対象のＭＢのＣＢＰは０１１０１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂであるが、輝度の最終符号化ブロックは３番目の輝度（左下）となる。
【０２９７】
なお、輝度最終符号化ブロックより以前のブロック（１番目〜２番目のブロック）では、Ｏｐｅｎ−ｌｏｏｐ型の符号化レート変換装置９００と同様に動作するので説明を省略する。
【０２９８】
符号化レート変換装置２９００では、輝度最終符号化ブロック以前のブロック変換後（すなわち輝度最終符号化ブロック変換直前）の状態によって、最終符号化ブロックの変換方法が異なる。
【０２９９】
図３２（ａ）では、すでに２番目の輝度（右上）が符号化ブロックとして確定している。
【０３００】
すなわち、図３２（ａ）において、最終輝度符号化ブロック以外の変換時点でＣＢＰ（Ｙ）＝０１Ｘ０である。そのため、輝度最終符号化ブロックが係数０ブロックに変換されたとしても、２番目のブロックのＣＢＰが１であるので（ＣＢＰ＝０１Ｘ０Ｘ０）、ＣＢＰが０になることがない。したがって、非０化処理を行わなくてよい。
【０３０１】
ここで、非０化処理を行わない場合の結果は、ＣＢＰ＝０１００００となり、ＣＢＰが０にはなっていない。
【０３０２】
図３２（ｂ）では、輝度最終符号化ブロック以前のブロック（符号化ブロックの１番目および２番目のブロック）がすべて係数０ブロックに変換されている（ＣＢＰ（Ｙ）＝００Ｘ０）。したがって、３番目の輝度最終符号化ブロックを係数０ブロックに変換すると、規格違反が発生する可能性があるため、非０化処理が必要になる。ここでは、３番目の輝度最終符号化ブロックに対して非０化処理を行う（ＣＢＰ（Ｙ）＝００１０）。
【０３０３】
この場合、輝度ブロックで非０の量子化ＤＣＴ係数をもつ符号化ブロックが存在することが確定するので、色差の符号化ブロックは、非０化処理は不要である。
【０３０４】
なお、ここで図示していないが、レート変換対象のＭＢのＣＢＰが００００１０（２進数）など、輝度ブロックが１つも存在していない場合には、実施の形態１と同様に、最終符号化ブロックを非０化対象として、係数変換を行う。
【０３０５】
また、非０化処理を伴わない、および非０化処理を伴う係数変換処理に関しては、実施の形態１と同じであるため、説明を省略する。
【０３０６】
かかる構成によれば、非０化処理が輝度ブロックだけに発生するので、色差ブロックの非０化誤差による画質低下を防止することができる。
【０３０７】
（実施の形態３）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行うかどうかを判定するのに、特定の符号化ブロック検出や非０係数検出（変換後の係数に非０の量子化ＤＣＴ係数が含まれている）といった複雑な処理を行っている。
【０３０８】
そこで、本発明の実施の形態３では、より簡易的な処理が可能な検出方法に対応するための符号化レート変換装置３３００について以下に説明する。
【０３０９】
図３３は、本発明の実施の形態３における符号化レート変換装置３３００の構成図である。
【０３１０】
図３３の符号化レート変換装置３３００は、図１７の符号化レート変換装置１７００と比較して、最終符号化ブロック検出部１７０８が、第１符号化ブロック検出部３３０８に置き換わり、非０係数検出部１７０９が削除された構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。
【０３１１】
第１符号化ブロック検出部３３０８は、可変長復号部１７０１から、ＣＢＰとブロック情報とを受け取る。第１符号化ブロック検出部３３０８は、受け取ったＣＢＰとブロック情報から、符号化されるマクロブロックの最初の量子化ＤＣＴ係数を検出して、非０化判定部１７１０を通じて、非０化部１７１１に通知する。
【０３１２】
図３４は、本発明の実施の形態３における符号化レート変換装置３３００のＭＢ全体処理を示すフロー図である。図２１のＭＢ全体処理フローと同様の処理には同一の符号を付している。
【０３１３】
本発明の実施の形態１における図２１のＭＢ全体処理フローと比較して、図２１のＳ２１０８における最終符号化ブロックの第１係数の判定が、Ｓ３４０８における第１符号化ブロックの最初の係数の判定に置き換わり、Ｓ２１０９における“現ＭＢの変換後係数の１つ以上が非０”の判定が不要になっている。
【０３１４】
その他の処理フローは図２１と同じであるため、説明は省略する。
【０３１５】
図３５は、本発明の実施の形態３の符号化レート変換装置３３００の第１符号化ブロック判定処理を示すフロー図である。図２２の処理フローと同様の処理には同一の符号を付している。
【０３１６】
本発明の実施の形態１における図２２の処理フローと比較して、図２２のＳ２２０３が削除され、Ｓ３５０５が図２２のＳ２２０５と置き換えられている。
【０３１７】
図３５では、図２２のＳ２２０３の復号ブロック数＝符号化ブロック数−１の判定が不要になっている点が異なる。
【０３１８】
Ｓ３５０５において、第１符号化ブロック検出部３３０８が検出する第１符号化ブロックの第１係数は、ＭＢ開始後の最初の係数である。そのため、図２２のＳ２２０３での量子化ＤＣＴ係数位置の判定が不要である。
【０３１９】
その他の処理フローは、図２２と同じであるため、詳細な説明を省略する。
【０３２０】
本発明の実施の形態３における符号化レート変換装置３３００の非０係数検出判定フローは、実施の形態１における図２３のＳ２３０１〜Ｓ２３０６と同様であるため、図示および詳細な説明は省略する。
【０３２１】
本発明の実施の形態３における符号化レート変換装置３３００の係数０ブロック検出フローは、実施の形態１における図２４のＳ２４０１〜Ｓ２４０６と同様であるため、図示および詳細な説明は省略する。
【０３２２】
次に、本発明の実施の形態３における符号化レート変換装置３３００の具体的な動作について図を用いて説明する。
【０３２３】
図３６は、本発明の実施の形態３の符号化レート変換装置３３００での変換の一例を示す図である。
【０３２４】
図３６では、第１符号化ブロックの非０化処理が必要な場合の例を示している。
【０３２５】
図３６に示すように、レート変換対象のＭＢのＣＢＰは０１１０１０（２進数）としている。この場合、最終符号化ブロックは５番目の色差（青）Ｃｂであるが、第１符号化ブロックは２番目の輝度Ｙ（右上）となる。
【０３２６】
図３６において、符号化レート変換装置３３００は、第１符号化ブロック（図３６中２番目のブロック）に対して、非０化処理を行う。
【０３２７】
図３６に示す例では、第１符号化ブロック以前のブロック（図３６中１番目のブロック）は係数０ブロックである。この段階では、ＣＢＰ＝０ＸＸ０ＸのＸ部分が係数０ブロックに変換され、規格違反が発生する可能性がある。図３６の例では、第１符号化ブロックを常に非０化処理することにより、ＣＢＰ＝０１００００が保証されるので、規格違反の恐れは回避できる。
【０３２８】
ここで、第２符号化ブロック以降は、すでに第１符号化ブロックが符号化ブロックとして確定している。そのため、その他のすべてのブロックが係数０ブロックになったとしても、ＣＢＰが０になることがないため、第２符号化ブロック以降に対して非０化処理を行う必要がない。
【０３２９】
また、非０化処理を伴わない、および非０化処理を伴う係数変換処理に関しては、実施の形態１と同じであるため、説明を省略する。
【０３３０】
かかる構成によれば、非０化処理を行う対象の符号化ブロックを第１符号化ブロックに固定することで対象ブロックの判定処理が簡略化できる。さらに、変換後の量子化ＤＣＴ係数が非０であるかどうかの検出も不要になるため、実施の形態１の符号化レート変換装置１７００と比較して、簡易的な構成とすることができる。
【０３３１】
（実施の形態４）
実施の形態１の符号化レート変換装置１７００では、非０化処理を行う際に、非０化の係数を１と固定としていた。そのため、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数が負数であった場合、非０化の際に発生する誤差が大きくなることが考えられる。
【０３３２】
そこで、本発明の実施の形態４では、係数変換前の量子化ＤＣＴ係数の値を考慮することで非０化時の誤差を削減することに対応するための符号化レート変換装置３７００について以下に説明する。
【０３３３】
図３７は、本発明の実施の形態４における符号化レート変換装置３７００の構成図である。
【０３３４】
図３７の符号化レート変換装置３７００は、図１７の符号化レート変換装置１７００と比較して、符号判定部３７１６が追加され、図１７非０化部１７１１が非０化部３７１１に置き換わった構成となっている。ただし、図１７と同様の要素には同一の符号を付しており、図１７と共通の構成に関する説明は省略する。
【０３３５】
符号判定部３７１６は、可変長復号部１７０１から入力され係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号を検出し、非０化部３７１１に通知する。
【０３３６】
ここで、非０化部３７１１が非０化処理を行う量子化ＤＣＴ係数のみ符号判定をすることで、処理を軽減させることができる。
【０３３７】
非０化部３７１１は、係数変換部１７０７で再度量子化され量子化ＤＣＴ係数が入力される。
【０３３８】
非０化部３７１１は、入力された量子化ＤＣＴ係数に非０化処理を行う。非０化部３７１１は、入力された量子化ＤＣＴ係数を、符号判定部３７１６で検出された符号が＋の場合は＋１に置換する。非０化部３７１１は、入力された量子化ＤＣＴ係数を、符号判定部３７１６で検出された符号が−の場合は−１に置換する。
【０３３９】
図３８は、本発明の実施の形態４における符号化レート変換装置３７００のＭＢ全体処理を示すフロー図である。図２１の処理フローと同様の処理には同一の符号を付している。
【０３４０】
図３８では、本発明の実施の形態１における図２１のＭＢ全体処理フローと比較して、図２１のＳ１２１１の“係数の非０化”が、Ｓ３８１０、Ｓ３８１１およびＳ３８１２に置き換わっている。
【０３４１】
Ｓ２１０９において、非０係数検出部１７０９は、現在変換処理の対象となっているＭＢの係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれていたかどうかを判定する。
【０３４２】
Ｓ２１０９において、係数変換後の量子化ＤＣＴ係数に少なくとも１つ以上の非０係数が含まれ、量子化ＤＣＴ係数の非０化が決定された後、符号判定部３７１６は、可変長復号部１７０１から入力された係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号を検出する（Ｓ３８１０）。
【０３４３】
非０化部３７１１は、符号判定部３７１６で検出された符号が＋であれば（Ｓ３８１０のＹの場合）、係数を＋１などの正数に置き換える（Ｓ３８１１）。
【０３４４】
非０化部３７１１は、符号判定部３７１６で検出された符号が−であれば（Ｓ３８１０のＮの場合）、係数を−１などの負数に置き換える（Ｓ３８１２）。
【０３４５】
その他の処理フローは図２１と同じであるため、説明は省略する。
【０３４６】
本発明の実施の形態４における符号化レート変換装置３７００の最終符号化ブロック判定の処理フローは、実施の形態１の図２２と同様であるため、図示および詳細な説明は省略する。
【０３４７】
本発明の実施の形態４における符号化レート変換装置３７００の非０係数検出判定フローは、実施の形態１の図２３と同様であるため、図示および詳細な説明は省略する。
【０３４８】
本発明の実施の形態４における符号化レート変換装置３７００の係数０ブロック検出フローは、実施の形態１の図２４と同様であるため、図示および詳細な説明は省略する。
【０３４９】
次に、本発明の実施の形態４における符号化レート変換装置３７００の具体的な動作を、図を用いて以下説明する。なお、符号化レート変換装置３７００の具体的な動作は、非０化処理を伴うブロック係数変換処理を除いて、実施の形態１での動作と同様であるため、説明を省略する。
【０３５０】
図３９は、本発明の実施の形態４の符号化レート変換装置３７００での変換の一例を示す図である。本発明の符号化レート変換装置３７００の非０化処理を伴う係数変換処理について、図３９中（ａ）を用いて説明する。
【０３５１】
図３９では、Ｑ値＝４で変換された量子化ＤＣＴ係数を逆量子化し、Ｑ値＝最初のＱ値×４＝１６で再量子化する場合の、量子化ＤＣＴ係数の値の変化とそれを示すｒｕｎおよびｌｅｖｅｌを示している。図３９では、非０化処理が適用される。また、図３９の例では、ｌｅｖｅｌの値の小数点以下を切り捨てる。
【０３５２】
まず、係数変換部１７０７は、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝−２）を読み込み、Ｑ値変換部１７０４より通知された量子化ステップ（Ｑ値＝１６：ここではＱ値を４から１６に変換する。）に基づくと、最初の量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝１）から（ｒｕｎ＝１、ｌｅｖｅｌ＝−２／４＝−０．５）に変換することになる。しかし、ｌｅｖｅｌは整数であるので、実際は（ｒｕｎ＝１、ｌｅｖｅｌ＝０）に変換する。
【０３５３】
非０化部３７１１は、非０化処理を伴う場合、符号化ブロックの最初の量子化ＤＣＴ係数がｌｅｖｅｌ＝０であった場合に非０の値に変更する処理を行う。
【０３５４】
まず、符号判定部３７１６は、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数ｌｅｖｅｌを参照して、検出したその符号を非０化部３７１１に通知する。ここでは、符号判定部３７１６は、−符号を非０化部３７１１に通知する。
【０３５５】
次に、非０化部３７１１は、非０の値として−１を利用する。したがって、この場合、発生する誤差は｜−１−（−０．５）｜＝０．５になる。
【０３５６】
一方、実施の形態１のように、非０の値を１固定とすると、発生する誤差は｜１−（−０．５）｜＝１．５となる。両者を比べると誤差が小さくなっているのがわかる。
【０３５７】
次に、非０化部３７１１は、変換された量子化ＤＣＴ係数を（ｒｕｎ＝１、ｌｅｖｅｌ＝−１）として、ブロック係数格納部１７１５に格納する。
【０３５８】
次に、係数変換部１７０７は、符号化ブロックの最後の量子化ＤＣＴ係数（ＥＯＢ）を読み込む。この時点で、係数０ブロック検出部１７１３は、第１係数が非０化処理により、係数０ブロックを検出しない。そのため、ＥＯＢはそのまま、ブロック係数格納部１７１５に格納される。
【０３５９】
なお、本発明の実施の形態４では、符号判定部３７１６が、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数から符号を検出していた。しかし、係数変換部１７０７が量子化ＤＣＴ係数を０に変換する際にも、変換前の符号を残すことで、符号判定部３７１６は、変換後の量子化ＤＣＴ係数から符号を検出することができる。このときの動作を図３９（ｂ）に示した例を用いて説明する。
【０３６０】
まず、係数変換部１７０７は、図３９（ｂ）の場合において、符号化ブロックの最初の量子化ＤＣＴ係数（ｒｕｎ＝１、ｌｅｖｅｌ＝−２）を、（ｒｕｎ＝１、ｌｅｖｅｌ＝−０）に変換する。
【０３６１】
ここで、符号判定部３７１６は、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数ｌｅｖｅｌの符号を参照して、検出したその符号を非０化部３７１１に通知する。ここでは、符号判定部３７１６は、−符号を非０化部３７１１に通知する。
【０３６２】
次に、非０化部３７１１は、符号判定部３７１６により通知された符号を配慮して、ｌｅｖｅｌ＝−１として非０化する。
【０３６３】
なお、上記の例では、係数変換部１７０７が０に符号を付与し、符号判定部３７１６が０の符号を参照して、非０化部３７１１に通知するとしている。しかし、係数変換部１７０７が０に符号を付与する場合は、係数変換部１７０７が存在しなくてもよく、非０化部３７１１が絶対値だけを非０化し、符号は変更しない構成としても、同様の効果が得られる。
【０３６４】
また、非０化時に置換される数として、正の場合は＋１、負の場合は−１を取り上げたが、絶対値が必ずしも１である必要はなく、符号が変換前と同じであれば、その他の整数であってもよい。
【０３６５】
かかる構成によれば、係数変換部１７０７で係数変換前の量子化ＤＣＴ係数の符号に合わせて、非０化を行うことで、非０化時に発生する誤差が少なくなる。それにより、符号化レート変換時の画質の向上を見込むことができる。
【０３６６】
（実施の形態５）
本実施の形態では、実施の形態１〜４で示した符号化レート変換装置の応用例またはそれを用いたシステムについて説明する。
【０３６７】
図４０は、本発明の実施の形態５のストリーム記録装置４０００を示す構成図である。図４０では、符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００および３７００を用いた放送ストリーム記録装置の一例とそのシステム構成が示されている。
【０３６８】
放送ストリーム記録装置４０００は、符号化レート変換部４００１、放送受信部４００３、ＡＶ多重分離部４００４、ＡＶ多重部４００５、ＨＤＤ制御部４００６およびＨＤＤ４００７から構成される。
【０３６９】
放送ストリーム記録装置４０００は、デジタル放送波４００２を受けて動作し、放送波から受信したデジタルデータの符号化レートを変換して変換された符号化レートのデジタルデータをＨＤＤ４００７に記録する。
【０３７０】
デジタル放送波４００２は、ＭＰＥＧ２で符号化された映像データと、ＡＡＣで符号化された音声データ、字幕情報やデータ放送などのシステムデータが多重化され１つのプログラムを構成している。デジタル放送波４００２では、さらに、複数のプログラムが多重化され、変調された状態で搬送波にのせられて伝送される。
【０３７１】
放送受信部４００３は、デジタル放送波４００２を復調し、さらに複数プログラムの中から、所望の１つのプログラムを分離して、ＡＶ多重分離部４００４に通知する。
【０３７２】
ＡＶ多重分離部４００４は、映像データ、音声データおよびシステムデータが多重化されたストリームから、映像データだけを抽出して、符号化レート変換部４００１に通知する。ＡＶ多重分離部４００４は、映像データ以外のストリームのデータを、ＡＶデータ多重部４００５に通知する。
【０３７３】
符号化レート変換部４００１は、入力された映像データを所望の符号化レートに変換し、符号化レートを変換した映像データをＡＶ多重部４００５に通知する。ここで、符号化レート変換部４００１は、実施の形態１〜４で示した符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００に相当する。
【０３７４】
ＡＶ多重部４００５は、符号化レート変換部４００１で符号化レートが変換された映像データと、元の音声データおよびシステムデータとを多重化して、１つのプログラムとして再構成する。ＡＶ多重部４００５は、再構成したそのプログラムを、ＨＤＤ制御部４００６に通知する。
【０３７５】
ＨＤＤ制御部４００６は、ＡＶ多重部４００５により通知されたプログラムをＨＤＤ４００７に記録する。
【０３７６】
ところで、日本のＢＳデジタル放送では、１つのプログラムあたり、２４Ｍｂｐｓの符号化レートであるため、ＨＤＤに１時間番組をそのまま記録すると、１０Ｇｂｙｔｅ以上の容量が必要になる。ＨＤＤに２５０Ｇｂｙｔｅの容量を用意しても、２０時間程度しか記録することができない。そのため、ＨＤＤにもっと長時間の番組を記録したいという要求が存在する。
【０３７７】
本実施の形態５における放送ストリーム記録装置４０００では、プログラムの中で映像データが約９割を占めることを利用して、符号化レート変換部４００１で映像データの符号化レートを例えば１／２に変換することで、上記の要求に応えることができる。
【０３７８】
なお、本実施の形態５では、放送ストリーム記録装置４０００の入力を、デジタル放送波４００２としているが、符号化レート変換なしでＨＤＤ４００７に記録されているストリームや、ネットワークを通じて配信されたストリームを放送ストリーム記録装置４０００の入力としてもよい。
【０３７９】
また、本実施の形態５では、放送ストリーム記録装置４０００の記録先をＨＤＤ４００７としたが、ＤＶＤなどの光ディスクやメモリーカードなど、他の記録媒体としてもよい。
【０３８０】
（実施の形態６）
本実施の形態６では、実施の形態１〜４で示した符号化レート変換装置の応用例またはそれを用いたシステムについて説明する。
【０３８１】
図４１は、本発明の実施の形態６のネットワーク配信システム４１００を示す構成図である。図４１では、符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００を用いたネットワーク配信システム一例の構成を示す図である。
【０３８２】
ネットワーク配信システム４１００は、符号化ストリームを送信するストリーム送信装置４１１０と、符号化ストリームを受信するストリーム受信装置４１１１と、符号化ストリームを伝送するネットワーク４１０９から構成される。
【０３８３】
ネットワーク配信システム４１００は、ストリーム送信装置４１１０のＨＤＤ４１０２に記録されたＡＶストリームを、ネットワーク４１０９を通じて配信し、ストリーム受信装置４１１１で再生するシステムである。
【０３８４】
ストリーム送信装置４１１０は、符号化レート変換部４１０１、ＨＤＤ４１０２、ＨＤＤ制御部４１０３、ＡＶ多重分離部４１０４、ＡＶ多重部４１０５およびネットワーク制御部４１０６から構成される。ＨＤＤ４１０２には映像ストリーム、音声ストリームおよびシステムストリームからなるＡＶストリームが１つのプログラムとして多重化されて、格納されている。
【０３８５】
ＨＤＤ制御部４１０３は、ＨＤＤ４１０２からＡＶストリームを読み出し、ＡＶ多重分離部４１０４に通知する。
【０３８６】
ＡＶ多重分離部４１０４は、実施の形態５と同様、映像ストリームだけを分離して、符号化レート変換部４１０１に通知する。ＡＶ多重分離部４１０４は、映像ストリーム以外のストリームを、ＡＶ多重部４１０５に通知する。
【０３８７】
符号化レート変換部４１０１は、入力された映像ストリームの符号化レートを変換して、符号化レートを変換した映像ストリームをＡＶ多重部４１０５に通知する。ここで、符号化レート変換部４１０１は、実施の形態１〜４で示した符号化レート変換装置１７００、１８００、１９００、２０００、２９００、３３００または３７００に相当する。
【０３８８】
ＡＶ多重部４１０５は、符号化レート変換部４１０１で符号化レートが変換された映像ストリームと、音声およびシステムストリームとを再多重化し、再構成したＡＶストリームをネットワーク制御部４１０６に通知する。
【０３８９】
ネットワーク制御部４１０６は、ＡＶ多重部４１０５から入力されたＡＶストリームを、ネットワーク４１０９を介してネットワーク制御部４１０７に送信する。
【０３９０】
また、ネットワーク制御部４１０６は、ネットワーク４１０９で送信可能なＡＶストリームの符号化レートを検出し、その符号化レートを符号化レート変換部４１０１に通知する。
【０３９１】
ストリーム受信装置４１１１は、ネットワーク制御部４１０７およびＡＶ再生部４１０８から構成される。
【０３９２】
ネットワーク制御部４１０７は、ネットワーク４１０９を介してネットワーク制御部４１０６からのＡＶストリームを受信する。ネットワーク制御部４１０７は、受信したＡＶストリームをＡＶ再生部４１０８に通知する。
【０３９３】
ＡＶ再生部４１０８は、ネットワーク制御部４１０７から通知されたＡＶストリームのＡＶ多重分離や復号を行い、映像（データ放送や字幕も含む）および音声を再生する。
【０３９４】
なお、ＡＶ再生部４１０８は符号化レート変換に直接関係ないので、詳細な構成は省略する。
【０３９５】
ところで、例えば、日本のＢＳデジタル放送では、１つのプログラムあたりの符号化レートが２４Ｍｂｐｓである。しかし、ネットワークではＡＶストリーム以外のデータも同時に伝送されているので、２４Ｍｂｐｓの帯域が保証できないことが多い。また、ネットワークが無線の場合は、電波状態によって伝送可能な帯域が随時変化するため、やはり２４Ｍｂｐｓの帯域を保証することができないことが多い。したがって、伝送可能な帯域が保証できない場合、ＡＶストリームのデータが抜け落ちてしまい、ストリームの復号が頻繁にエラーになり、ＡＶ再生がほとんどできないことになる。
【０３９６】
ストリーム送信装置４１１０は、ネットワーク制御部４１０６が、ネットワーク４１０９の状態を検知し、ネットワーク４１０９で伝送可能な帯域を符号化レート変換部４１０１に通知する。それにより、符号化レート変換部４１０１は、ＡＶストリームをネットワーク４１０９で伝送可能な符号化レートに変換することができる。これにより、ネットワーク４１０９上でデータが抜け落ちることがなくなるので、ストリーム受信装置４１１１では正常にＡＶ再生ができるようになる。
【０３９７】
なお、本実施の形態では、ストリーム送信装置４１１０でＡＶストリームが送信される元となる装置をＨＤＤ４１０２としているが、デジタル放送波そのものや、他の記録媒体としてもよい。
【０３９８】
以上のように、本発明によれば、符号化対象のＭＢの複数のブロックの中で、特定の符号化ブロック中の、スキャン順で最初の量子化ＤＣＴ係数を０でない値（非０）に保証する。それにより、特定の符号化ブロック以外のブロックでは、量子化ＤＣＴ係数がすべて０になるのを許容できる。したがって、符号化対象のＭＢにおけるすべてのブロックの量子化ＤＣＴ係数が０であることが判明してから、非０化するという処理を後戻りする必要がない。さらに、符号化対象のＭＢの複数のブロックの中で、特定の符号化ブロックの中のスキャン順で最初の量子化ＤＣＴ係数のみを非０化（０でない値）するので、例えば、特定の符号化ブロック以外のブロックに非０の量子化ＤＣＴ係数が存在し、特定の符号化ブロックは不要な非０化の量子化ＤＣＴ係数を持つとしても、１つの量子化ＤＣＴ係数のみの影響に抑制されているので、符号化効率を低下させないで符号化レート変換をすることができる。
【０３９９】
以上、本発明によれば、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れを、処理の後戻りなく符号化効率を低下させずに回避する符号化レート変換装置および符号化レート変換方法を実現することが可能となる。
【０４００】
なお、符号化ストリームの符号化レートを変換する際における符号化規格違反の恐れは以下である。
【０４０１】
１）ＭＢのブロックを構成するすべての量子化ＤＣＴ係数が符号化レート変換後に０になる場合
・非０の量子化ＤＣＴ係数を持たない符号化ブロックは規格違反である。
・その場合、規格違反を回避するために、非０の量子化ＤＣＴ係数を持たないブロックを符号化から外し、ＣＢＰの変更が必要である。
【０４０２】
２）符号化レート変換後に、ＭＢのすべてのブロックが符号化対象から外れた場合（ＣＢＰ＝Ｏ）
・ＣＢＰ＝０として符号化することは規格違反である。
・その場合、規格違反を回避するために、マクロブロックタイプをＮｏｔ  Ｃｏｄｅｄに変更が必要である。
【０４０３】
３）マクロブロックタイプがＮｏＭＣの場合
・符号化レート変換後に、マクロブロックタイプがＮｏＭＣでかつＮｏｔＣｏｄｅｄであることは規格違反である。
・その場合、規格違反を回避するために、スキップＭＢへの変更が必要である。
【０４０４】
４）ＭＢがスライスの先頭・最終ＭＢである場合
・符号化レート変換後に、スキップＭＢとなるのは規格違反である。
【０４０５】
なお、本実施の形態において、符号化レート変換装置を構成する各機能ブロックは、典型的には、ＣＰＵやメモリを要した情報機器上で動作するプログラムとして実現されるが、その機能の一部または全部を集積回路であるＬＳＩとして実現してもよい。これらのＬＳＩは、個別に１チップ化されても良いし、一部またはすべてを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０４０６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（ＦＩＥＬＤ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＧＡＴＥ  ＡＲＲＡＹ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０４０７】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０４０８】
本発明は、符号化レート変換装置および符号化レート変換方法に利用でき、特に放送ストリーム記録装置やネットワークへのストリーム送信装置等において、映像ストリームの符号化レートを低減する符号化レート変換装置および符号化レート変換方法に利用できる。
【図面の簡単な説明】
【０４０９】
【図１】図１は、ＭＰＥＧ２のスライス、マクロブロック、ブロック、ＣＢＰ、ＤＣＴ係数の関係を示す図である。
【図２】図２（ａ）（ｂ）は、ＭＰＥＧ２のＤＣＴ係数の符号化順（スキャン順）を示す図である。
【図３】図３は、ＭＰＥＧ２のマクロブロック全体の符号化情報の構文フローを示す図である。
【図４】図４は、ＭＰＥＧ２のマクロブロックヘッダ部の符号化情報の構文フローを示す図である。
【図５】図５は、ＭＰＥＧ２のブロック部の符号化情報の構文フローを示す図である。
【図６】図６は、ＭＰＥＧ２での量子化スケールコードと量子化ステップの関係を示す図である。
【図７】図７は、ＭＰＥＧ２の復号化装置の構成を示す図である。
【図８】図８は、ＭＰＥＧ２の符号化装置の構成を示す図である。
【図９】図９は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置の一例を示す構成図である。
【図１０】図１０は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１１】図１１は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１２】図１２は、Ｏｐｅｎ−Ｌｏｏｐ型の符号化レート変換装置での変換の一例を示す図である。
【図１３】図１３（ａ）（ｂ）（ｃ）は、ＭＰＥＧ２のマクロブロックタイプの種類を示す図である。
【図１４】図１４は、従来の符号化レート変換装置を示す構成図である。
【図１５】図１５は、従来の符号化レート変換装置での変換の一例を示す図である。
【図１６】図１６（ａ）（ｂ）は、従来の符号化レート変換装置での変換の一例を示す図である。
【図１７】図１７は、本発明の実施の形態１の符号化レート変換装置の構成を示す図である。
【図１８】図１８は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図１９】図１９は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図２０】図２０は、本発明の実施の形態１の符号化レート変換装置の一例を示す構成図である。
【図２１】図２１は、本発明の実施の形態１の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図２２】図２２は、本発明の実施の形態１の符号化レート変換装置の最終符号化ブロック判定処理を示すフロー図である。
【図２３】図２３は、本発明の実施の形態１の符号化レート変換装置の非０係数検出処理を示すフロー図である。
【図２４】図２４は、本発明の実施の形態１の符号化レート変換装置の係数０ブロック検出処理を示すフロー図である。
【図２５】図２５（ａ）（ｂ）は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２６】図２６は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２７】図２７は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２８】図２８は、本発明の実施の形態１の符号化レート変換装置での変換の一例を示す図である。
【図２９】図２９は、本発明の実施の形態２の符号化レート変換装置の構成図である。
【図３０】図３０は、本発明の実施の形態２の符号化レート変換装置の輝度最終符号化ブロック判定処理を示すフロー図である。
【図３１】図３１は、本発明の実施の形態２の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３２】図３２（ａ）（ｂ）は、本発明の実施の形態２の符号化レート変換装置での変換の一例を示す図である。
【図３３】図３３は、本発明の実施の形態３の符号化レート変換装置の構成図である。
【図３４】図３４は、本発明の実施の形態３の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３５】図３５は、本発明の実施の形態３の符号化レート変換装置の第１符号化ブロック判定処理を示すフロー図である。
【図３６】図３６は、本発明の実施の形態３の符号化レート変換装置での変換の一例を示す図である。
【図３７】図３７は、本発明の実施の形態４の符号化レート変換装置の構成図である。
【図３８】図３８は、本発明の実施の形態４の符号化レート変換装置のＭＢ全体処理を示すフロー図である。
【図３９】図３９は、本発明の実施の形態４の符号化レート変換装置での変換の一例を示す図である。
【図４０】図４０は、本発明の実施の形態５のストリーム記録装置を示す構成図である。
【図４１】図４１は、本発明の実施の形態６のネットワーク配信システムを示す構成図である。
【符号の説明】
【０４１０】
７００    ＭＰＥＧ復号化装置
７０１、９０１、１７０１    可変長復号部
７０２、８０４、９０６、１８０６    逆量子化部
７０３、８０５    逆ＤＣＴ変換部
７０４、８０６    参照フレーム格納部
７０５、８０８    動き補償部
７０６    画像復元部
８００    ＭＰＥＧ符号化装置
８０１    ＤＣＴ変換部
８０２、９０７、１８０７    量子化部
８０３、９０２、１７０２    可変長符号部
８０７    動き検出部
８０９    画素減算部
８１０    画素加算部
８１１、９０３、１７０３    レート制御部
９００、１４００、１７００、１８００、１９００、２０００、２９００、３３００、３７００    符号化レート変換装置
９０４、１７０４    Ｑ値変換部
９０５、１７０５    ヘッダ格納部
１４１３、１７１３    係数０ブロック検出部
１４１５、１７１５、２０１６、２０１７    ブロック係数格納部
１７０７    係数変換部
１７０８    最終符号化ブロック検出部
１７０９    非０係数検出部
１７１０    非０化判定部
１７１１、３７１１    非０化部
１７１２    ｒｕｎ制御部
１７１４    ＥＯＢ削除部
１９０７    非０化係数変換部
２９０８    輝度最終符号化ブロック検出部
３３０８    第１符号化ブロック検出部
３７１６    符号判定部
４０００    ストリーム記録装置
４００１、４１０１    符号化レート変換部
４００２    デジタル放送波
４００３    放送受信部
４００４、４１０４    ＡＶ多重分離部
４００５、４１０５    ＡＶ多重部
４００６、４１０３    ＨＤＤ制御部
４００７、４１０２    ＨＤＤ
４１００    ネットワーク配信システム
４１０６、４１０７    ネットワーク制御部
４１０８    ＡＶ再生部
４１０９    ネットワーク
４１１０    ストリーム送信装置
４１１１    ストリーム受信装置
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換する符号化レート変換装置であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備える
ことを特徴とする符号化レート変換装置。
【請求項２】
さらに、前記第１の符号化データにおける複数のブロックがそれぞれ符号化順にレートを変換される毎に、レート変換された当該ブロックが非０係数を有するブロックであるか否かを判定する非０判定手段を備え、
前記ブロック特定手段は、前記判定に基づいて、前記複数のブロックの中で、所定のブロックの前にレート変換されたすべてのブロックが非０係数を有さない場合に、前記所定のブロックを前記対象ブロックとして特定する
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項３】
逆量子化された前記第１の符号化データを、当該第１の符号化データに含まれるブロックの係数毎に、前記第２の量子化ステップで再量子化することでレート変換をするレート変換手段を備え、
前記非０化手段は、前記特定された符号化ブロックの中で、変換順で最初の非０係数の次の係数を前記係数レート変換手段によりレート変換される前に、前記最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項４】
前記非０化手段は、前記最初の非０係数のみに非０化処理を行う
ことを特徴とする請求項３に記載の符号化レート変換装置。
【請求項５】
前記ブロック特定手段は、前記第１の符号化データの符号化単位に含まれる複数のブロックの中から、前記対象ブロックを特定する
ことを特徴とする請求項４に記載の符号化レート変換装置。
【請求項６】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する１つまたは複数のブロックの中から、符号化順で最後のブロックを前記対象ブロックとして特定し、
前記非０化手段は、前記非０判定手段により、符号化順で最後の１つ前までのすべてのブロックが非０係数を有さないブロックであると判定された場合、前記最後の符号化ブロックの最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項２に記載の符号化レート変換装置。
【請求項７】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する輝度成分のブロックの中から、符号化順で最後のブロックを前記対象ブロックとして特定し、
前記非０化手段は、前記非０判定手段により、輝度成分のブロックの符号化順で最後の１つ前のブロックまでがすべて０係数を有するブロックであると判定された場合、前記最後の符号化ブロックの最初の非０係数に対して非０化処理を行う
ことを特徴とする請求項２に記載の符号化レート変換装置。
【請求項８】
前記ブロック特定手段は、符号化単位に含まれ非０係数を有する複数のブロックの中から、符号化順が最初のブロックを、前記対象ブロックとして特定する
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項９】
前記非０化手段は、前記ブロック特定手段により特定された前記対象ブロックの最初の非０係数の符号に応じてレート変換後の非０係数を変更する非０化処理を行う
ことを特徴とする請求項１に記載の符号化レート変換装置。
【請求項１０】
前記非０化手段は、前記ブロック特定手段により特定された前記対象ブロックの最初の非０係数の符号がプラスであれば、レート変換後の非０係数をプラス１とし、当該最初の非０係数の符号がマイナスであれば、レート変換後の非０係数をマイナス１とする非０化処理を行う
ことを特徴とする請求項９に記載の符号化レート変換装置。
【請求項１１】
前記符号化データの非０係数は、０でない値を有するＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）係数である
ことを特徴とする請求項５に記載の符号化レート変換装置。
【請求項１２】
前記第１の符号化データの符号化方式は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式である
ことを特徴とする請求項１１に記載の符号化レート変換装置。
【請求項１３】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換をする符号化レート変換方法であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定ステップと、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化ステップとを含む
ことを特徴とする符号化レート変換方法。
【請求項１４】
第１の量子化ステップで量子化された第１の符号化データを逆量子化し、前記第１の量子化ステップよりもステップ幅の広い第２の量子化ステップで再量子化することにより、前記第１の符号化データのレート変換をする集積回路であって、
前記第１の符号化データに含まれる複数のブロックから、非０係数を有する１つの対象ブロックを特定するブロック特定手段と、
特定された前記対象ブロックをレート変換するときに、特定された前記対象ブロック中の最初の非０係数を、前記第２の量子化ステップにかかわらず、レート変換後にも非０係数にする非０化処理を行う非０化手段とを備える
ことを特徴とする集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008117541.tif 000044
【図２】
2008117541.tif 000045
【図３】
2008117541.tif 000046
【図４】
2008117541.tif 000047
【図５】
2008117541.tif 000048
【図６】
2008117541.tif 000049
【図７】
2008117541.tif 000050
【図８】
2008117541.tif 000051
【図９】
2008117541.tif 000052
【図１０】
2008117541.tif 000053
【図１１】
2008117541.tif 000054
【図１２】
2008117541.tif 000055
【図１３】
2008117541.tif 000056
【図１４】
2008117541.tif 000057
【図１５】
2008117541.tif 000058
【図１６】
2008117541.tif 000059
【図１７】
2008117541.tif 000060
【図１８】
2008117541.tif 000061
【図１９】
2008117541.tif 000062
【図２０】
2008117541.tif 000063
【図２１】
2008117541.tif 000064
【図２２】
2008117541.tif 000065
【図２３】
2008117541.tif 000066
【図２４】
2008117541.tif 000067
【図２５】
2008117541.tif 000068
【図２６】
2008117541.tif 000069
【図２７】
2008117541.tif 000070
【図２８】
2008117541.tif 000071
【図２９】
2008117541.tif 000072
【図３０】
2008117541.tif 000073
【図３１】
2008117541.tif 000074
【図３２】
2008117541.tif 000075
【図３３】
2008117541.tif 000076
【図３４】
2008117541.tif 000077
【図３５】
2008117541.tif 000078
【図３６】
2008117541.tif 000079
【図３７】
2008117541.tif 000080
【図３８】
2008117541.tif 000081
【図３９】
2008117541.tif 000082
【図４０】
2008117541.tif 000083
【図４１】
2008117541.tif 000084
【国際調査報告】
2008117541.tif 000085
2008117541.tif 000086
2008117541.tif 000087
2008117541.tif 000088