JP4228739B2 - 符号化装置および符号化方法、プログラム、並びに記録媒体 - Google Patents
符号化装置および符号化方法、プログラム、並びに記録媒体 Download PDFInfo
- Publication number
- JP4228739B2 JP4228739B2 JP2003081950A JP2003081950A JP4228739B2 JP 4228739 B2 JP4228739 B2 JP 4228739B2 JP 2003081950 A JP2003081950 A JP 2003081950A JP 2003081950 A JP2003081950 A JP 2003081950A JP 4228739 B2 JP4228739 B2 JP 4228739B2
- Authority
- JP
- Japan
- Prior art keywords
- scene change
- picture
- image
- encoding
- quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、符号化装置および符号化方法、プログラム、並びに記録媒体に関し、特に、符号化におけるレート制御を行う場合に用いて好適な、符号化装置および符号化方法、プログラム、並びに記録媒体に関する。
【0002】
【従来の技術】
近年、映像データおよび音声データを圧縮して情報量を減らす方法として、種々の圧縮符号化方法が提案されており、その代表的なものにMPEG2(Moving Picture Experts Group Phase 2)がある。
【0003】
図1を参照して、このMPEG2方式によって映像データを圧縮符号化する場合、および圧縮符号化された画像データを復号する場合の処理について説明する。
【0004】
送信側のエンコーダ1は、ナンバ0乃至11のフレーム画像11を、フレーム内符号化画像(以下、Iピクチャと称する)、フレーム間順方向予測符号化画像(以下、Pピクチャと称する)、もしくは、双方向予測符号化画像(以下、Bピクチャと称する)の3つの画像タイプのうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプ(Iピクチャ、Pピクチャ、もしくは、Bピクチャ)に応じて、フレーム画像を符号化する順番に並び替えるリオーダリングを実行し、その順番で各フレーム画像に対して符号化処理を施して、符号化フレーム12を生成し、デコーダ2に伝送する。
【0005】
受信側のデコーダ2は、エンコーダ1によって符号化されたフレーム画像を復号した後、再度、リオーダリングして、画像フレームを元の順番に戻して、フレーム画像13を復元し、再生画像を表示する。
【0006】
エンコーダ1においては、リオーダリングした後に符号化処理を施すため、ナンバ0のフレーム画像を符号化処理するまでに、ナンバ2のフレーム画像が符号化処理されていなければならず、その分だけ遅延(以下、リオーダリングディレイと称する)が生じる。
【0007】
また、デコーダ2においても、復号した後にリオーダリングするため、ナンバ0のフレーム画像を復号して表示するまでに、ナンバ2のフレーム画像が復号されていなければならず、その分だけリオーダリングディレイが生じてしまう。
【0008】
このように、エンコーダ1およびデコーダ2においては双方でリオーダリングを行っているために、画像データを符号化してから再生画像を表示するまでの間に3フレーム分のリオーダリングディレイが生じてしまう。
【0009】
また、このMPEG2方式によって圧縮符号化された符号化データが伝送される場合、送信側の圧縮符号化装置から伝送された符号化データは、受信側のビデオSTD(System Target Decoder)バッファ(いわゆるVBV(Video Buffer Verifier)バッファ)に、ピクチャごとに格納されていく。
【0010】
図2に示されるように、VBVバッファは、そのバッファサイズ(容量)が決まっており、符号化データは、VBVバッファに、ピクチャごとに順次格納される。この場合、Iピクチャ、Pピクチャ、およびBピクチャの各符号化データは、一定の伝送レートによってVBVバッファにそれぞれ格納され、格納が終了した時点(1フレーム周期)のデコードタイミングで、デコーダに引き抜かれる。Iピクチャは、Bピクチャと比較して符号化データのデータ量が多いので、VBVバッファに格納されるまでにBピクチャよりも多くの時間を必要とする。
【0011】
このとき、データ送信側であるエンコーダ1は、デコーダ2のVBVバッファに符号化データが格納されたとき、および、VBVバッファから符号化データが引き抜かれたときに、VBVバッファにおいてオーバーフローもしくはアンダーフローが発生してしまわないようにするため、VBVバッファのバッファ占有率に基づいて、符号化データの発生符号量を制御(レートコントロール)する必要がある。
【0012】
しかしながら、画面の更新に必要なIピクチャは、発生符号量が多いために、他の種類のピクチャと比較して、画像データの伝送時間長くなってしまい、この時間が遅延となってしまう。
【0013】
テレビ電話やテレビ会議等の画像データなど、リアルタイム性を要求される実時間伝送を行う場合、上述したように、伝送時間に起因する遅延や、リオーダリングディレイが発生してしまうと、送信側から送られてきた符号化データを受信側で受信して再生画像を表示するまでに時間差が生じてしまう。これに対して、MPEG2方式では、このような遅延を少なくするために、遅延時間を150[ms]以下に短縮するローディレイコーディング(Low Delay Coding)と呼ばれる手法が規格によって用意されている。
【0014】
ローディレイコーディングにおいては、リオーダリングディレイの原因となるBピクチャ、および、発生符号量の多いIピクチャを使用せずに、Pピクチャのみを使用し、このPピクチャを、数スライスからなるイントラスライスと、残り全てのスライスからなるインタースライスとに区切ることにより、リオーダリングなしに符号化することができるようになされている。
【0015】
イントラスライスは、スライス部分の画像データがフレーム内符号化される画像部分であり、インタースライスは、スライス部分の画像データと前のフレーム画像における同じ領域の参照画像データとの差分データが符号化される画像部分である。
【0016】
ローディレイコーディングでは、例えば、図3に示されるように、エンコーダ1は、ナンバ0乃至11のフレーム画像11を全てPピクチャとし、例えば、横45マクロブロック、縦24マクロブロの画枠サイズの中で、ナンバ0のフレーム画像の上段から縦2マクロブロック、および横45マクロブロック分の領域を、イントラスライスI0、その他の領域を全てインタースライスP0として設定する。
【0017】
そして、エンコーダ1は、次のナンバ1のフレーム画像においては、ナンバ0のフレーム画像のイントラスライスI0の下方向に続く位置に、同じ面積の領域でイントラスライスI1を設定し、その他は全てインタースライスP1に設定する。以下、同様にイントラスライスとインタースライスがフレーム画像ごとに設定され、最後のナンバ11のフレーム画像についてもイントラスライスI11とインタースライスP11が設定される。
【0018】
エンコーダ1は、各フレーム画像のイントラスライスI0乃至I11を、そのまま伝送データとして符号化し、他のインタースライスP0乃至P11を、前のフレーム画像の同じ領域の参照画像との差分データに基づいて符号化する(ただし、符号化の開始時においては、インタースライスP0の参照画像となる前のフレーム画像は存在しないので、符号化の開始時のみはこの限りでない)。そして、同様の符号化処理を、ナンバ0のフレーム画像からナンバ11のフレーム画像について繰り返し実行することにより、エンコーダ1は、1枚のPピクチャにおける画面全体の画像データを符号化して符号化フレーム21を生成することができる。
【0019】
この場合、各フレーム画像におけるイントラスライスI0乃至I11の画像データサイズは全て均一であり、当然、インタースライスP0乃至P11の画像データサイズも均一であることにより、フレーム画像ごとの発生符号量は、ほぼ一定の固定レートになる。
【0020】
これにより、図4に示すように、Pピクチャの各フレーム画像は全て同じ発生符号量の符号化データとなり、VBVバッファに格納されるとき、および、引き抜かれるときの、VBVバッファにおける符号化データの推移は、全て同じになる。この結果、送信側のエンコーダ1は、デコーダ2のVBVバッファにアンダーフローおよびオーバーフローを生じさせることなく、符号化データの発生符号量を容易に制御することができ、発生符号量の多いIピクチャで生じるような遅延やリオーダリングディレイによる不具合を解消することができ、再生画像を遅延なく表示することができる。
【0021】
ところで、以上説明した構成の圧縮符号化装置においては、イントラスライスI0乃至I11に関してはそのまま伝送データとして符号化し、他のインタースライスP0乃至P11に関しては前のフレーム画像における同じ領域の参照画像との差分データに基づいて符号化するため、イントラスライスI0乃至I11の画像データ部分を圧縮符号化したときの実際の発生符号量は多く、インタースライスP0乃至P11の画像データ部分を圧縮符号化したときの実際の発生符号量は少なくなる。
【0022】
ところが、ピクチャ全体としての発生符号量は規定されているが、イントラスライスI0乃至I11およびインタースライスP0乃至P11ごとに割り当てる発生符号量は規定されていない。すなわち、イントラスライスI0乃至I11のように符号化したときの発生符号量が多くなる画像部分に対しても、またインタースライスP0乃至P11のように符号化したときの発生符号量があまり多くならない画像データ部分に対しても、発生符号量が均等に割り当てられている。
【0023】
従って、データ量の多いイントラスライスI0乃至I11に対して割り当てられる発生符号量が少なく、データ量の少ないインタースライスP0乃至P11に対して割り当てられる発生符号量が多くなることがあり、このような場合にピクチャ全体としての画像に歪みが生じてしまうという課題があった。
【0024】
具体的には、図5に示されるように、画像の符号化難易度が低い画像31に続いて、画像の符号化難易度が高い画像32が存在した場合、符号化難易度が低い画像31は、エンコードに容易な画像であるため、Qスケールが小さくなるが、従来の方法では、それに続く、画像の符号化難易度が高い画像32に対して、小さなQスケールでエンコードを開始してしまうため、画面の途中までに、与えられたビット量を消費してしまい、画面下端に前のピクチャが残ってしまうという現象が発生する。この現象は、イントラスライスが、次に、画面下端の問題発生箇所に現れるまで、影響を及ぼしてしまう。
【0025】
この課題を解決するために、ローディレイモードにおいても、復号器側において高画質な画像を再生できるような符号化データを生成し得る符号化装置および符号化方法が提案されている(例えば、特許文献1参照)。
【0026】
【特許文献1】
特開平11−205803号公報
【0027】
すなわち、通常のフィードバック型の量子化制御を行ってイントラスライスおよびインタースライスごとに最適な量子化ステップサイズを決定して量子化制御を行う場合において、次のピクチャが1つ前のピクチャと絵柄の大きく異なるシーンチェンジが検出されるようにし、シーンチェンジ発生時には、1つ前のピクチャを基に算出された量子化インデックスデータQ(j+1)を用いるのではなく、これから符号化しようとするピクチャのME残差情報に基づいて、仮想バッファの初期バッファ容量d(0)を更新することにより、新たに量子化インデックスデータQ(j+1)が算出し直されるようにする。これにより、シーンチェンジが起きた場合でも、イントラスライスおよびインタースライスごとに最適な量子化ステップサイズが決定されて、量子化制御が行われる。
【0028】
ME残差とは、ピクチャ単位で算出されるものであり、1つ前のピクチャと次のピクチャにおける輝度の差分値の合計値である。従ってME残差情報が大きな値を示すときには、1つ前のピクチャの絵柄と次に符号化処理するピクチャの絵柄が大きく異なっている(いわゆるシーンチェンジ)ことを表している。
【0029】
この符号化方法について、図6のフローチャートを参照して説明する。
【0030】
ステップS1において、例えば、動きベクトルを検出するときに得られるME残差情報が取得される。ここで取得されたME残差情報をME_infoとする。
【0031】
ステップS2において、取得されたME残差情報から、ME残差情報の平均値avgが減算されて、算出された値が、所定の閾値Dよりも大きいか否かが判断される。ME残差情報の平均値avgは、後述するステップS4において更新される値であり、次の式(1)で示される。
【0032】
avg=1/2(avg+ME_info)・・・(1)
【0033】
ステップS2において、算出された値は、所定の閾値Dより小さいと判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップS4に進む。
【0034】
ステップS2において、算出された値は、所定の閾値Dより大きいと判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップS3において、式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)が算出されて、仮想バッファが更新される。
【0035】
ピクチャ単位の画像の難しさGC(Global Complexity)を表すXは、次の式(2)で表される。
X=T×Q・・・(2)
ただし、Tは、ピクチャ単位の発生符号量であり、Qは、ピクチャ単位の量子化ステップサイズの平均値である。
【0036】
そして、ピクチャ単位の画像の難しさXを、ME残差情報ME_infoと等しいとした場合、すなわち、次の式(3)が満たされている場合、ピクチャ全体の量子化インデックスデータQは、式(4)で示される。
【0037】
X=ME_info・・・(3)
Q={d(0)×31}/{2×(br/pr)}・・・(4)
ただし、brは、ビットレートであり、prは、ピクチャレートである。
【0038】
そして、式(4)における仮想バッファの初期バッファ容量d(0)は、次の式(5)で示される。
d(0)=2×{(ME_info×br/pr)/31×T}・・・(5)
【0039】
この仮想バッファの初期バッファ容量d(0)を、再度、式(4)に代入することにより、ピクチャ全体の量子化インデックスデータQが算出される。
【0040】
ステップS2において、算出された値は、所定の閾値Dより小さいと判断された場合、もしくは、ステップS3の処理の終了後、ステップS4において、次に供給されるピクチャに備えて、ME残差情報の平均値avgが、上述した式(1)により計算されて更新され、処理は、ステップS1に戻り、それ以降の処理が繰り返される。
【0041】
図6のフローチャートを用いて説明した処理により、次のピクチャが1つ前のピクチャと絵柄の大きく異なるシーンチェンジが起きた場合には、これから符号化しようとするピクチャのME残差情報ME_infoに基づいて、仮想バッファの初期バッファ容量d(0)が更新され、この値を基に、新たに量子化インデックスデータQ(j+1)が算出されるので、シーンチェンジに対応して、イントラスライスおよびインタースライスごとに最適な量子化ステップサイズが決定される。
【0042】
【発明が解決しようとする課題】
しかしながら、特許文献1に記載の方法を用いた場合、符号化難易度が高い(難しい)画像から、符号化難易度が低い(易しい)画像にシーンが変わる場合などにおいても、同様のエンコード処理をしてしまうため、画質的に悪影響を及ぼしてしまう。
【0043】
具体的には、易しい画像から難しい画像へシーンが変わる場合、および、難しい画像から易しい画像へシーンが変わる場合の双方に対して仮想バッファ調整を行ってしまうため、難しい画像から易しい画像へシーンが変わる場合では、エンコードに余裕があるはずの、符号化難易度が低い画像において、わざわざ画質を悪くしてしまう場合がある。
【0044】
本発明はこのような状況に鑑みてなされたものであり、様々なシーンチェンジに対応して、シーンチェンジ時の画質を向上させることができるようにするものである。
【0045】
【課題を解決するための手段】
本発明の第1の側面の符号化装置は、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定手段と、判定手段により難しい画像から簡単な画像へのシーンチェンジであると判定され、シーンチェンジ前のピクチャに対する符号化難易度とシーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新手段と、更新手段により更新された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、決定手段により決定された量子化インデックスデータを基に、量子化を実行する量子化手段と、量子化手段により量子化された量子化係数データを符号化する符号化手段とを備える。
【0046】
判定手段には、シーンチェンジ前のピクチャに対する符号化難易度がシーンチェンジ後のピクチャに対する符号化難易度よりも大きい場合に、難しい画像から簡単な画像へのシーンチェンジであると判定させるようにすることができる。
【0047】
符号化難易度を算出する難易度算出手段を更に備えさせるようにすることができる。
【0048】
難易度算出手段には、画像の絵柄の難しさおよび符号化後のデータ量と相関性を有する指標量を符号化難易度として算出させるようにすることができる。
【0049】
難易度算出手段には、イントラACを指標量として算出させるようにすることができる。
【0050】
シーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報を取得するシーンチェンジ情報取得手段を更に備えさせるようにすることができ、判定手段には、シーンチェンジ情報取得手段により取得されたシーンチェンジ情報を利用して、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとを検出させるようにすることができる。
【0051】
本発明の第1の側面の符号化方法は、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定ステップと、判定ステップの処理により難しい画像から簡単な画像へのシーンチェンジであると判定され、シーンチェンジ前のピクチャに対する符号化難易度とシーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、更新ステップの処理により更新された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、決定ステップの処理により決定された量子化インデックスデータを基に、量子化を実行する量子化ステップと、量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップとを含む。
【0052】
本発明の第1の側面のプログラムおよび記録媒体に記録されたプログラムは、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定ステップと、判定ステップの処理により難しい画像から簡単な画像へのシーンチェンジであると判定され、シーンチェンジ前のピクチャに対する符号化難易度とシーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、更新ステップの処理により更新された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、決定ステップの処理により決定された量子化インデックスデータを基に、量子化を実行する量子化ステップと、量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップとを含む処理を実行させる。
【0053】
本発明の第2の側面の符号化装置は、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定手段と、判定手段により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新手段と、更新手段により更新された初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、決定手段により決定された量子化インデックスデータを基に、量子化を実行する量子化手段と、量子化手段により量子化された量子化係数データを符号化する符号化手段とを備える。
【0054】
判定手段には、シーンチェンジ後のピクチャに対する符号化難易度がシーンチェンジ前のピクチャに対する符号化難易度よりも大きい場合に、簡単な画像から難しい画像へのシーンチェンジであると判定させるようにすることができる。
【0055】
符号化難易度を算出する難易度算出手段を更に備えさせるようにすることができる。
【0056】
難易度算出手段には、画像の絵柄の難しさおよび符号化後のデータ量と相関性を有する指標量を符号化難易度として算出させるようにすることができる。
【0057】
難易度算出手段には、イントラACを指標量として算出させるようにすることができる。
【0058】
シーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報を取得するシーンチェンジ情報取得手段を更に備えさせるようにすることができ、判定手段には、シーンチェンジ情報取得手段により取得されたシーンチェンジ情報を利用して、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとを検出させるようにすることができる。
【0059】
本発明の第2の側面の符号化方法は、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定ステップと、判定ステップの処理により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、更新ステップの処理により更新された初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、決定ステップの処理により決定された量子化インデックスデータを基に、量子化を実行する量子化ステップと、量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップとを含む。
【0060】
本発明の第2の側面のプログラムおよび記録媒体に記録されたプログラムは、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定ステップと、判定ステップの処理により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、更新ステップの処理により更新された初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、決定ステップの処理により決定された量子化インデックスデータを基に、量子化を実行する量子化ステップと、量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップとを含む処理を実行させる。
【0061】
本発明の第1の側面においては、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかが判定され、難しい画像から簡単な画像へのシーンチェンジであると判定され、シーンチェンジ前のピクチャに対する符号化難易度とシーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値が、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新され、更新された仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータが決定され、量子化インデックスデータを基に、量子化が実行され、量子化された量子化係数データが符号化される。
【0062】
本発明の第2の側面においては、シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかが判定され、簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値が、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新され、更新された初期バッファ容量の値を用いて、量子化インデックスデータが決定され、量子化インデックスデータを基に、量子化が実行され、量子化された量子化係数データが符号化される。
【0065】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【0066】
図7は、ビデオエンコーダ61の構成を示すブロック図である。
【0067】
ビデオエンコーダ61は、全てPピクチャを用いたローディレイコーディング方式によって、画像データを符号化するようにしてもよいし、例えば、15フレームを、フレーム内符号化画像(以下、Iピクチャと称する)、フレーム間順方向予測符号化画像(以下、Pピクチャと称する)、もしくは、双方向予測符号化画像(以下、Bピクチャと称する)の3つの画像タイプのうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプ(Iピクチャ、Pピクチャ、もしくは、Bピクチャ)に応じて、フレーム画像を符号化するようにしてもよいし、マクロブロックごとに予測符号化のタイプ(イントラマクロブロック、または、インターマクロブロック)を指定して符号化処理を行うようにしてもよい。ここでは、ビデオエンコーダ61は、全てPピクチャを用いたローディレイコーディング方式によって、画像データを符号化するものとして説明する。
【0068】
ビデオエンコーダ61に外部から供給された画像データは前処理部71に入力される。前処理部71は、順次入力される画像データの各フレーム画像(この場合全てPピクチャ)を、16画素×16ラインの輝度信号、および輝度信号に対応する色差信号によって構成されるマクロブロックに分割し、これをマクロブロックデータとして、演算部72、動きベクトル検出部73、および、量子化制御部83のイントラAC算出部91に供給する。
【0069】
動きベクトル検出部73は、マクロブロックデータの入力を受け、各マクロブロックの動きベクトルを、マクロブロックデータ、および、フレームメモリ84に記憶されている参照画像データを基に算出し、動きベクトルデータとして、動き補償部81に送出する。
【0070】
演算部72は、前処理部71から供給されたマクロブロックデータについて、各マクロブロックの画像タイプに基づいて、イントラスライスI0乃至I11に対してはイントラモードで、インタースライスP0乃至P11に対しては順方向予測モードで、動き補償を行う。
【0071】
イントラモードとは、符号化対象となるフレーム画像をそのまま伝送データとする方法であり、順方向予測モードとは、符号化対象となるフレーム画像と過去参照画像との予測残差を伝送データとする方法である。以下においては、ビデオエンコーダ61は、Pピクチャのみを使用して、1フレームを、イントラスライスI0乃至I11とインタースライスP0乃至P11に分けて符号化するようになされているものとして説明するが、ビデオエンコーダ61は、例えば、15フレームを、Iピクチャ、Pピクチャ、もしくは、Bピクチャの3つの画像タイプのうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプに応じて、フレーム画像を符号化するようにしてもよいし、マクロブロックごとに予測符号化のタイプを指定して符号化処理を行うようにしてもよい。
【0072】
まず、マクロブロックデータが、イントラスライスI0乃至I11のうちの1つであった場合、マクロブロックデータはイントラモードで処理される。すなわち、演算部72は、入力されたマクロブロックデータのマクロブロックを、そのまま演算データとしてDCT(Discrete Cosine Transform :離散コサイン変換)部74に送出する。DCT部74は、入力された演算データに対しDCT変換処理を行うことによりDCT係数化し、これをDCT係数データとして、量子化部75に送出する。
【0073】
量子化部75は、発生符号量制御部92から供給される量子化インデックスデータQ(j+1)に基づいて、入力されたDCT係数データに対して量子化処理を行い、量子化DCT係数データとして、VLC(Variable Length Code;可変長符号化)部77および逆量子化部78に送出する。量子化部75は、発生符号量制御部92から供給される量子化インデックスデータQ(j+1)に応じて、量子化処理における量子化ステップサイズを調整することにより、発生する符号量を制御することができるようになされている。
【0074】
逆量子化部78に送出された量子化DCT係数データは、量子化部75と同じ量子化ステップサイズによる逆量子化処理を受け、DCT係数データとして、逆DCT部79に送出される。逆DCT部79は、供給されたDCT係数データに逆DCT処理を施し、生成された演算データは、演算部80に送出され、参照画像データとしてフレームメモリ84に記憶される。
【0075】
そして、マクロブロックデータがインタースライスP0乃至P11のうちの1つであった場合、演算部72はマクロブロックデータについて、順方向予測モードによる動き補償処理を行う。
【0076】
動き補償部81は、フレームメモリ84に記憶されている参照画像データを、動きベクトルデータに応じて動き補償し、順方向予測画像データを算出する。演算部72は、マクロブロックデータについて、動き補償部81より供給される順方向予測画像データを用いて減算処理を実行する。
【0077】
すなわち、動き補償部81は、順方向予測モードにおいて、フレームメモリ84の読み出しアドレスを、動きベクトルデータに応じてずらすことによって、参照画像データを読み出し、これを順方向予測画像データとして演算部72および演算部80に供給する。演算部72は、供給されたマクロブロックデータから、順方向予測画像データを減算して、予測残差としての差分データを得る。そして、演算部72は、差分データをDCT部74に送出する。
【0078】
また、演算部80には、動き補償部81より順方向予測画像データが供給されており、演算部80は、逆DCT部から供給された演算データに、順方向予測画像データを加算することにより、参照画像データを局部再生し、フレームメモリ84に出力して記憶させる。
【0079】
かくして、ビデオエンコーダ61に入力された画像データは、動き補償予測処理、DCT処理および量子化処理を受け、量子化DCT係数データとして、VLC部77に供給される。VLC部77は、量子化DCT係数データに対し、所定の変換テーブルに基づく可変長符号化処理を行い、その結果得られる可変長符号化データをバッファ82に送出するとともに、マクロブロックごとの符号化発生ビット数を表す発生符号量データB(j)を、量子化制御部83の発生符号量制御部92、およびGC(Global Complexity)算出部93にそれぞれ送出する。
【0080】
GC算出部93は、発生符号量データB(j)を、マクロブロックごとに順次蓄積し、1ピクチャ分の発生符号量データB(j)が全て蓄積された時点で、全マクロブロック分の発生符号量データB(j)を累積加算することにより、1ピクチャ分の発生符号量を算出する。
【0081】
そしてGC算出部93は、次の式(6)を用いて、1ピクチャのうちの、イントラスライス部分の発生符号量と、イントラスライス部分における量子化ステップサイズの平均値との積を算出することにより、イントラスライス部分の画像の難しさ(以下、これをGCと称する)を表すGCデータXiを求め、これを目標符号量算出部94に供給する。
【0082】
Xi=(Ti/Ni)×Qi・・・(6)
ここで、Tiは、イントラスライスの発生符号量、Niは、イントラスライス数、そして、Qiは、イントラスライスの量子化ステップサイズの平均値である。
【0083】
GC算出部93は、これと同時に、次に示す式(7)を用いて、1ピクチャのうちの、インタースライス部分の発生符号量と、このインタースライス部分における量子化ステップサイズの平均値との積を算出することにより、インタースライス部分におけるGCデータXpを求め、これを目標符号量算出部94に供給する。
【0084】
Xp=(Tp/Np)×Qp・・・(7)
ここで、Tpは、インタースライスの発生符号量、Npは、インタースライス数、Qpは、インタースライスの量子化ステップサイズの平均値である。
【0085】
目標符号量算出部94は、GC算出部93から供給されるGCデータXiを基に、次の式(8)を用いて、次のピクチャにおけるイントラスライス部分の目標発生符号量データTpiを算出するとともに、GC算出部93から供給されるGCデータXpを基に、次の式(9)を基に、次のピクチャにおけるインタースライス部分の目標発生符号量データTppを算出し、算出した目標発生符号量データTpiおよびTppを発生符号量制御部92にそれぞれ送出する。
【0086】
Tpi={(Ni×Xi)/(Np×Xp)+(Np×Xi)}×Xp・・・(8)
【0087】
Tpp={(Np×Xp)/(Np×Xp)+(Ni×Xi)}×Xp・・・(9)
【0088】
ME残差算出部95は、入力されるマクロブロックデータを基に、ME残差情報ME_infoを算出して、発生符号量制御部92に出力する。ここで、ME残差情報ME_infoとは、ピクチャ単位で算出されるものであり、1つ前のピクチャと次のピクチャにおける輝度の差分値の合計値である。従って、ME残差情報ME_infoが大きな値を示すときには、1つ前のピクチャの絵柄と、次に符号化処理するピクチャの絵柄とが大きく異なっている(いわゆるシーンチェンジである)ことを表している。
【0089】
すなわち、1つ前のピクチャの絵柄と次に符号化処理するピクチャの絵柄が異なっているということは、1つ前のピクチャの画像データを用いて算出した目標発生符号量データTpiおよびTppを基に生成した量子化インデックスデータQ(j+1)によって、量子化部75の量子化ステップサイズを決定することは適切ではない。従って、シーンチェンジが起こった場合、目標発生符号量データTpiおよびTppは、新たに算出されなおされるようにしても良い。
【0090】
イントラAC算出部91は、イントラAC(intra AC)を算出し、現在のイントラACの値を示すmad_infoと、1つ前のイントラACの値を示すprev_mad_infoとを、発生符号量制御部92に出力する。
【0091】
イントラACは、MPEG方式におけるDCT処理単位のDCTブロックごとの映像データとの分散値の総和として定義されるパラメータであって、映像の複雑さを指標し、映像の絵柄の難しさおよび圧縮後のデータ量と相関性を有する。すなわち、イントラACとは、DCTブロック単位で、それぞれの画素の画素値から、ブロックごとの画素値の平均値を引いたものの絶対値和の、画面内における総和である。イントラAC(IntraAC)は、次の式(10)で示される。
【0092】
【数1】
【0093】
また、式(10)において、式(11)が成り立つ。
【0094】
【数2】
【0095】
画像の符号化難易度が易しいものから難しいものへのシーンチェンジ、および、難しいものから易しいものへのシーンチェンジの、双方に対して仮想バッファ調整を行ってしまった場合、難しいものから易しいものへのシーンチェンジでは、エンコードに余裕があるはずの易画像においてわざわざ画質を悪くしてしまう結果となる場合がある。また、難しいものから易しいものへのシーンチェンジであっても、その変化の大きさ、もしくは、シーンチェンジ後の画像の難易度によっては、仮想バッファの調整を行うほうがよい場合がある。しかしながら、ME残差情報のみでは、シーンチェンジの有無を判断することはできるが、シーンチェンジの内容が、易しいものから難しいものへのシーンチェンジであるか、もしくは、難しいものから易しいものへのシーンチェンジであるかを判断することができない。
【0096】
そこで、イントラAC算出部91が、イントラACを算出し、現在のイントラACの値を示すmad_infoと、1つ前のイントラACの値を示すprev_mad_infoとを、発生符号量制御部92に出力することにより、発生符号量制御部92は、シーンチェンジの状態を判定して、仮想バッファ調整を行うか否かを判断することができる。
【0097】
発生符号量制御部92は、バッファ82に格納される可変長符号化データの蓄積状態を常時監視しており、蓄積状態を表す占有量情報を基に量子化ステップサイズを決定するようになされている。
【0098】
また、発生符号量制御部92は、イントラスライス部分の目標発生符号量データTpiよりも実際に発生したマクロブロックの発生符号量データB(j)が多い場合、発生符号量を減らすために量子化ステップサイズを大きくし、また目標発生符号量データTpiよりも実際の発生符号量データB(j)が少ない場合、発生符号量を増やすために量子化ステップサイズを小さくするようになされている。
【0099】
更に、発生符号量制御部92は、インタースライス部分の場合も同様に、目標発生符号量データTppよりも実際に発生したマクロブロックの発生符号量データB(j)が多い場合、発生符号量を減らすために量子化ステップサイズを大きくし、また目標発生符号量データTppよりも実際の発生符号量データB(j)が少ない場合、発生符号量を増やすために量子化ステップサイズを小さくするようになされている。
【0100】
すなわち、発生符号量制御部92は、デコーダ側に設けられたVBVバッファに格納された可変長符号化データの蓄積状態の推移を想定することにより、図8に示されるように、j番目のマクロブロックにおける仮想バッファのバッファ占有量d(j)を次の式(12)によって表し、また、j+1番目のマクロブロックにおける仮想バッファのバッファ占有量d(j+1)を次の式(13)によって表し、(12)式から(13)式を減算することにより、j+1番目のマクロブロックにおける仮想バッファのバッファ占有量d(j+1)を次の式(14)として変形することができる。
【0101】
d(j)=d(0)+B(j−1)−{T×(j−1)/MBcnt}・・・(12)
【0102】
ここで、d(0)は初期バッファ容量、B(j)は、j番目のマクロブロックにおける符号化発生ビット数、MBcntは、ピクチャ内のマクロブロック数、そして、Tは、ピクチャ単位の目標発生符号量である。
【0103】
d(j+1)=d(0)+B(i)−(T×j)/MBcnt・・・(13)
【0104】
d(j+1)=d(j)+{B(j)−B(j−1)}−T/MBcnt・・・(14)
【0105】
続いて、発生符号量制御部92は、ピクチャ内のマクロブロックがイントラスライス部分とインタースライス部分とに分かれているため、図9に示されるように、イントラスライス部分のマクロブロックとインタースライス部分の各マクロブロックに割り当てる目標発生符号量TpiおよびTppをそれぞれ個別に設定する。
【0106】
グラフにおいて、マクロブロックのカウント数が0乃至s、および、t乃至endの間にあるとき、次の式(15)に、インタースライスの目標発生符号量Tppを代入することにより、インタースライス部分におけるバッファ占有量d(j+1)を得ることができる。
【0107】
【0108】
また、マクロブロックのカウント数がs乃至tの間にあるときに、次の式(16)に、イントラスライスの目標発生符号量Tpiを代入することにより、イントラスライス部分におけるバッファ占有量d(j+1)を得ることができる。
【0109】
【0110】
従って、発生符号量制御部92は、イントラスライス部分およびインタースライス部分におけるバッファ占有量d(j+1)、および、式(17)に示される定数rを、式(18)に代入することにより、マクロブロック(j+1)の量子化インデックスデータQ(j+1)を算出し、これを量子化部75に供給する。
【0111】
r=(2×br)/pr ・・・(17)
Q(j+1)=d(j+1)×(31/r) ・・・(18)
ここで、brは、ビットレートであり、prは、ピクチャレートである。
【0112】
量子化部75は、量子化インデックスデータQ(j+1)に基づいて、次のマクロブロックにおけるイントラスライスまたはインタースライスに応じた量子化ステップサイズを決定し、量子化ステップサイズによってDCT係数データを量子化する。
【0113】
これにより、量子化部75は、1つ前のピクチャのイントラスライス部分およびインタースライス部分における実際の発生符号量データB(j)に基づいて算出された、次のピクチャのイントラスライス部分およびインタースライス部分における目標発生符号量TppおよびTpiにとって最適な量子化ステップサイズによって、DCT係数データを量子化することができる。
【0114】
かくして、量子化部75では、バッファ82のデータ占有量に応じて、バッファ82がオーバーフローまたはアンダーフローしないように量子化し得るとともに、デコーダ側のVBVバッファがオーバーフロー、またはアンダーフローしないように量子化した量子化DCT係数データを生成することができる。
【0115】
例えば、図6を用いて説明した従来の技術を用いた場合においては、通常のフィードバック型の量子化制御を行いながら、次に符号化処理するピクチャの絵柄が大きく変化する場合には、フィードバック型の量子化制御を止め、ME残差算出部95から供給されるME残差情報に基づいて、仮想バッファの初期バッファ容量d(0)を初期化し、新たな初期バッファ容量d(0)を基に、イントラスライスおよびインタースライスごとに量子化インデックスデータQ(j+1)を新たに算出するようになされている。
【0116】
しかしながら、図6を用いて説明した場合のように、ME残差のみで仮想バッファ調整を行うか否かを判断してしまうと、画像難易度が易しいものから難しいものに変わった場合、および難しいものから簡単なものに変わった場合の双方に対して、仮想バッファ調整を行ってしまう。すなわち、画像難易度が難しいものから簡単なものに変わった場合では、エンコードに余裕があるはずの簡単な画像において、わざわざ画質を悪くしてしまう結果となる。
【0117】
そこで、図7のビデオエンコーダ61においては、例えば、イントラAC算出部91によって算出されるイントラACなどの情報を用いて、画像難易度が易しいものから難しいものに変わるシーンチェンジの時にのみ、仮想バッファ調整を行うようにすることにより、簡単な画像での画質の劣化を防ぐようにすることができる。
【0118】
すなわち、発生符号量制御部92は、通常のフィードバック型の量子化制御を行いながら、次に符号化処理するピクチャの絵柄が大きく変化する場合には、フィードバック型の量子化制御を止め、ME残差算出部95から供給されるME残差情報ME_info、並びに、イントラAC算出部91から供給される、prev_mad_infoおよびmad_infoを基に、仮想バッファの初期バッファ容量d(0)を初期化するか否かを判断し、仮想バッファの初期バッファ容量d(0)を初期化する場合は、ME残差算出部95から供給されるME残差情報ME_infoに基づいて、仮想バッファの初期バッファ容量d(0)を初期化する。仮想バッファの初期バッファ容量d(0)を初期化については、式(2)乃至式(5)を用いて説明した従来における場合と同様である。
【0119】
そして、発生符号量制御部91は、新たな初期バッファ容量d(0)を基に、イントラスライスおよびインタースライスごとに、式(12)乃至式(18)を用いて、量子化インデックスデータQ(j+1)を新たに算出し、量子化部75に供給する。
【0120】
図10のフローチャートを参照して、イントラACなどの画像難易度情報を用いて、シーンチェンジは、簡単な画像から難しい画像への変化であるか否かの判断を導入して仮想バッファの調整を行う、仮想バッファ更新処理1について説明する。
【0121】
ステップS21において、発生符号量制御部92は、ME残差算出部95から、ME残差情報ME_infoを取得する。
【0122】
ステップS22において、発生符号量制御部92は、取得されたME残差情報から、ME残差情報の平均値avgを減算し、ME_info−avg > Dであるか否か、すなわち、算出された値が、所定の閾値Dよりも大きいか否かが判断される。ME残差情報の平均値avgは、後述するステップS25において更新される値であり、上述した式(1)で示される。なお、所定の閾値Dは、画質を検討しながらチューニングされる性質の値である。
【0123】
ステップS22において、算出された値は、所定の閾値Dより小さいと判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップS25に進む。
【0124】
ステップS22において、算出された値は、所定の閾値Dより大きいと判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップS23において、発生符号量制御部92は、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとを比較し、mad_info > prev_mad_infoであるか否かを判断する。
【0125】
ステップS23において、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、処理は、ステップS25に進む。
【0126】
ステップS23において、mad_info > prev_mad_infoであると判断された場合、このシーンチェンジは、簡単な画像から、難しい画像へのシーンチェンジであるので、ステップS24において、発生符号量制御部92は、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新を行う。
【0127】
すなわち、発生符号量制御部92は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0128】
ステップS22において、算出された値は、所定の閾値Dより小さいと判断された場合、ステップS23において、mad_info > prev_mad_infoではないと判断された場合、もしくは、ステップS24の処理の終了後、ステップS25において、発生符号量制御部92は、次に供給されるピクチャに備えて、ME残差情報の平均値avgを、上述した式(1)により更新し、処理は、ステップS21に戻り、それ以降の処理が繰り返される。
【0129】
図10のフローチャートを用いて説明した処理により、イントラACを用いて、画像難易度が易しいものから難しいものに変更されるシーンチェンジの時にのみ仮想バッファ調整が行われるようにしたので、エンコードに余裕があるはずの簡単な画像において、更に画質を悪くしてしまうことを防ぐことができる。
【0130】
しかしながら、図10を用いて説明した処理のように、難しい画像から易しい画像へシーンが変わる場合全てについて、仮想バッファ調整が行われないようにしてしまうと、その変化がある一定レベル以上であり、かつ、変化後の画像(変化前の画像よりも簡単な画像と判断されている画像)の難易度も一定レベル以上の場合、すなわち、非常に難易度の高い画像から、その画像よりは難易度が低いが、ある一定レベル以上に難易度の高い画像へのシーンチェンジが発生した場合、シーンチェンジによる画質劣化の弊害が生じてしまう。
【0131】
これは、簡単な画像と判断される画像が、一定レベル以上の難易度であると、直前の難画像における仮想バッファの振る舞い次第によっては、簡単な画像から難易度の高い画像へシーンチェンジする場合と同様の問題を生じる可能性があるからである。
【0132】
そこで、難しい画像から易しい画像へシーンが変わる場合の変化量が、ある一定レベル以上である場合には、変化後の画像難易度が一定レベル以上であるか否かを判断し、変化後の画像難易度が一定レベル以上である場合には仮想バッファの調整を行うようにすることができる。
【0133】
図11を用いて、難しい画像から易しい画像へシーンが変わる場合の変化がある一定レベル以上であり、かつ、変化後の画像難易度が一定レベル以上である場合にも仮想バッファの調整を行うようにした、仮想バッファ更新処理2について説明する。
【0134】
ステップS41乃至ステップS43において、図10のステップS21乃至ステップS23と同様の処理が実行される。
【0135】
すなわち、ステップS41において、ME残差算出部95から、ME残差情報ME_info が取得され、ステップS42において、取得されたME残差情報から、ME残差情報の平均値avgが減算されて、ME_info−avg > Dであるか否かが判断される。ME_info−avg > Dではないと判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差があまりない、すなわちシーンチェンジがなかったと判断されるので、処理はステップS47に進む。
【0136】
ME_info−avg > Dであると判断された場合、現在のピクチャにおける絵柄と、1つ前のピクチャにおける絵柄との差が大きい、すなわち、シーンチェンジがあったと判断されるので、ステップS43において、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとが比較されて、mad_info > prev_mad_infoであるか否かが判断される。
【0137】
ステップS43において、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、ステップS44において、発生符号量制御部92は、このシーンチェンジの前のイントラACの値であるprev_mad_infoからこのシーンチェンジの後のイントラACの値であるmad_infoを減算した値、すなわち、符号化難易度の変化量を算出し、この値と、所定の閾値D1とを比較し、prev_mad_info − mad_info > D1であるか否かを判断する。
【0138】
ここで、所定の閾値D1とは、シーンチェンジの前後において、符号化難易度の変化量が大きいか小さいかを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0139】
ステップS44において、prev_mad_info − mad_info > D1ではないと判断された場合、シーンチェンジの前後において、符号化難易度の変化量が小さいのであるから、処理は、ステップS47に進む。
【0140】
ステップS44において、prev_mad_info − mad_info > D1であると判断された場合、シーンチェンジの前後において、符号化難易度の変化量が大きいので、ステップS45において、発生符号量制御部92は、このシーンチェンジの後のイントラACの値であるmad_infoと、所定の閾値D2を比較し、mad_info > D2であるか否かを判断する。
【0141】
ここで、所定の閾値D2とは、シーンチェンジの後の画像が、所定のレベル以上の符号化難易度を有するか否かを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0142】
ステップS45において、mad_info > D2ではないと判断された場合、シーンチェンジの後の画像は、所定のレベルより簡単な画像であるので、処理は、ステップS47に進む。一方、ステップS45において、mad_info > D2であると判断された場合、シーンチェンジの後の画像は、所定のレベル以上の符号化難易度を有するものであるので、処理は、ステップS46に進む。
【0143】
ステップS43において、mad_info > prev_mad_infoであると判断された場合、もしくは、ステップS45において、mad_info > D2であると判断された場合、ステップS46において、発生符号量制御部92は、図10のステップS24と同様に、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新を行う。
【0144】
すなわち、発生符号量制御部92は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0145】
ステップS42において、算出された値は、所定の閾値Dより小さいと判断された場合、ステップS44において、prev_mad_info − mad_info > D1ではないと判断された場合、ステップS45において、mad_info > D2ではないと判断された場合、もしくは、ステップS46の処理の終了後、ステップS47において、発生符号量制御部92は、次に供給されるピクチャに備えて、ME残差情報の平均値avgを、上述した式(1)により更新し、処理は、ステップS41に戻り、それ以降の処理が繰り返される。
【0146】
図11を用いて説明した処理により、prev_mad_infoとmad_infoを用いて、難易度の変化(難しい画像からやさしい画像への変化)がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上であるか否かが判断され、難しい画像から易しい画像への変化がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上であると判断された場合は、仮想バッファの調整が行われるようにしたので、シーンチェンジによる画質劣化の弊害の発生を防ぐようにすることができる。
【0147】
ところで、上述した実施の形態においては、ME残差算出部95により算出されたME残差を基に、シーンチェンジを検出するものとして説明したが、例えば、外部の装置により、供給されるフレーム画像のシーンチェンジの個所が検出される場合、ビデオエンコーダは、外部の装置から供給される信号を取得し、それを基に、シーンチェンジが発生するピクチャの位置を知ることができるようにしても良い。更に、供給されるフレーム画像データに、シーンチェンジを示す情報が含まれるようにし、ビデオエンコーダが、フレーム画像データに含まれるシーンチェンジを示す情報を抽出することにより、シーンチェンジが発生するピクチャの位置を知ることができるようにしても良い。
【0148】
図12は、外部の装置から、シーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報を取得し、それを基に、仮想バッファの更新処理を実行するビデオエンコーダ101の構成を示すブロック図である。なお、図7における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0149】
すなわち、図12のビデオエンコーダ101は、量子化制御部83に代わって、量子化制御部111が設けられている以外は、図7のビデオエンコーダ61と基本的に同様の構成を有し、量子化制御部111は、ME残差算出部95に代わって、シーンチェンジ情報取得部121が設けられ、発生符号量制御部92に代わって、発生符号量制御部122が設けられている以外は、図7の量子化制御部83と基本的に同様の構成を有している。
【0150】
ここで、シーンチェンジを検出する図示しない外部の装置と、ビデオエンコーダ101とは、同期が取れている(双方での処理フレーム数が同期している)ものとする。
【0151】
シーンチェンジ情報取得部121は、図示しない外部の装置により供給される、シーンチェンジ情報を取得し、発生符号量制御部122に供給する。発生符号量制御部122は、供給されたシーンチェンジ情報を基に、仮想バッファを更新するか否かを判断する。
【0152】
次に、図13のフローチャートを参照して、外部の装置により供給されるシーンチェンジ情報、および、イントラACなどの画像難易度情報を用いて、シーンチェンジは、簡単な画像から難しい画像への変化であるか否かの判断を導入して仮想バッファの調整を行う、仮想バッファ更新処理3について説明する。
【0153】
ステップS61において、シーンチェンジ情報取得部121は、外部の装置より、シーンチェンジ情報を取得し、発生符号量制御部122に供給する。発生符号量制御部122は、シーンチェンジ情報取得部121から、シーンチェンジ情報を取得する。
【0154】
ステップS62において、発生符号量制御部122は、シーンチェンジ情報取得部121から供給されたシーンチェンジ情報を基に、このフレームにおいてシーンチェンジが発生したか否かを判断する。
【0155】
ステップS62において、シーンチェンジが発生しなかったと判断された場合、処理はステップS61に戻り、それ以降の処理が繰り返される。
【0156】
ステップS62において、シーンチェンジが発生したと判断された場合、ステップS63において、発生符号量制御部122は、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとを比較し、mad_info > prev_mad_infoであるか否かを判断する。
【0157】
ステップS63において、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、処理はステップS61に戻り、それ以降の処理が繰り返される。
【0158】
ステップS63において、mad_info > prev_mad_infoであると判断された場合、このシーンチェンジは、簡単な画像から、難しい画像へのシーンチェンジであるので、ステップS64において、発生符号量制御部122は、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新を行う。
【0159】
すなわち、発生符号量制御部122は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0160】
ステップS64の処理の終了後、処理は、ステップS61に戻り、それ以降の処理が繰り返される。
【0161】
図13のフローチャートを用いて説明した処理により、外部の装置から供給されるシーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報、および、イントラACを用いて、画像難易度が易しいものから難しいものに変更されるシーンチェンジの時にのみ仮想バッファ調整が行われるようにしたので、エンコードに余裕があるはずの簡単な画像において、更に画質を悪くしてしまうことを防ぐことができる。
【0162】
しかしながら、図13を用いて説明した処理のように、難しい画像から易しい画像へシーンが変わる場合全てについて、仮想バッファ調整を行わないようにしてしまうと、上述したように、非常に難易度の高い画像から、それよりは難易度が低いが、所定のレベル以上には難易度の高い画像へのシーンチェンジが発生した場合、直前の難画像における仮想バッファの振る舞い次第によっては、簡単な画像から難易度の高い画像へシーンチェンジする場合と同様の問題を生じる可能性があるため、シーンチェンジによる画質劣化の弊害が生じてしまう。
【0163】
次に、図14を用いて、外部の装置により供給される、シーンチェンジが発生するピクチャの位置を示す信号を基に、難しい画像から易しい画像へシーンが変わる場合の変化がある一定レベル以上であり、かつ、変化後の画像難易度が一定レベル以上である場合に仮想バッファの調整を行うようにした、仮想バッファ更新処理4について説明する。
【0164】
ステップS71およびステップS72において、図13のステップS61およびステップS62と同様の処理が実行される。
【0165】
すなわち、シーンチェンジ情報取得部121に、外部の装置から、シーンチェンジ情報が供給されて、発生符号量制御部122に供給され、このフレームにおいてシーンチェンジが発生したか否かが判断される。シーンチェンジが発生しなかったと判断された場合、処理はステップS71に戻り、それ以降の処理が繰り返される。
【0166】
シーンチェンジが発生したと判断された場合、ステップS73乃至ステップS76において、図11を用いて説明した、ステップS43乃至ステップS46と同様の処理が実行される。
【0167】
すなわち、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとが比較されて、mad_info > prev_mad_infoであるか否かが判断され、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、このシーンチェンジの前のイントラACの値であるprev_mad_infoからこのシーンチェンジの後のイントラACの値であるmad_infoを減算した値、すなわち、符号化難易度の変化量が算出され、この値と、所定の閾値D1とが比較されて、prev_mad_info − mad_info > D1であるか否かが判断される。
【0168】
ここで、所定の閾値D1とは、シーンチェンジの前後において、符号化難易度の変化量が大きいか小さいかを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0169】
prev_mad_info − mad_info > D1ではないと判断された場合、シーンチェンジの前後において、符号化難易度の変化量が小さいので、処理は、ステップS71に戻り、それ以降の処理が繰り返される。
【0170】
prev_mad_info − mad_info > D1であると判断された場合、シーンチェンジの前後において、符号化難易度の変化量が大きいので、このシーンチェンジの後のイントラACの値であるmad_infoと、所定の閾値D2が比較され、mad_info >
D2であるか否かが判断される。
【0171】
ここで、所定の閾値D2とは、シーンチェンジの後の画像が、所定のレベル以上の符号化難易度を有するか否かを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0172】
mad_info > D2ではないと判断された場合、シーンチェンジの後の画像は、所定のレベルより簡単な画像であるので、処理は、ステップS71に戻り、それ以降の処理が繰り返される。一方、mad_info > D2であると判断された場合、シーンチェンジの後の画像は、所定のレベル以上の符号化難易度を有するものであるので、処理は、ステップS76に進む。
【0173】
mad_info > prev_mad_infoであると判断された場合、もしくは、mad_info > D2であると判断された場合、ステップS76において、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新が行われる。
【0174】
すなわち、発生符号量制御部122は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0175】
ステップS76の処理の終了後、処理は、ステップS71に戻り、それ以降の処理が繰り返される。
【0176】
図14を用いて説明した処理により、prev_mad_infoとmad_infoを用いて、難易度の変化(難しい画像からやさしい画像への変化)がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上であるか否かが判断され、難しい画像から易しい画像への変化がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上であると判断された場合、仮想バッファの調整が行われるようにしたので、シーンチェンジによる画質劣化の弊害の発生を、更に押さえることができる。
【0177】
図15は、供給されるフレーム画像データに、そのピクチャにおいてシーンチェンジが発生しているか否かを示すフラグ含ませるようになされている場合、供給されるフレーム画像データのフラグを参照することにより、シーンチェンジの発生個所を認識して、仮想バッファの更新処理を実行することができるビデオエンコーダ131の構成を示すブロック図である。なお、図7における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0178】
すなわち、図15のビデオエンコーダ131は、量子化制御部83に代わって、量子化制御部141が設けられている以外は、図7のビデオエンコーダ61と基本的に同様の構成を有し、量子化制御部141は、ME残差算出部95に代わって、シーンチェンジフラグ読み取り部151が設けられ、発生符号量制御部92に代わって、発生符号量制御部152が設けられている以外は、図7の量子化制御部83と基本的に同様の構成を有している。
【0179】
シーンチェンジフラグ読み取り部151は、前処理部71から出力された、前処理済みのフレーム画像データに含まれているシーンチェンジが発生しているか否かを示すフラグを参照し、シーンチェンジが発生しているピクチャを検出した場合、シーンチェンジが発生しているピクチャを検出したことを示す信号を発生符号量制御部122に供給する。発生符号量制御部122は、シーンチェンジフラグ読み取り部151から供給された信号を基に、仮想バッファを更新するか否かを判断する。
【0180】
次に、図16のフローチャートを参照して、フレーム画像データに含まれているシーンチェンジが発生しているか否かを示すフラグ、および、イントラACなどの画像難易度情報を用いて、シーンチェンジは、簡単な画像から難しい画像への変化であるか否かの判断を導入して仮想バッファの調整を行う、仮想バッファ更新処理5について説明する。
【0181】
ステップS91において、シーンチェンジフラグ読み取り部151は、フレーム画像データに含まれているシーンチェンジが発生しているか否かを示すフラグを参照し、シーンチェンジフラグがアクティブであるか否かを判断する。
【0182】
ステップS91において、シーンチェンジフラグがアクティブではなかったと判断された場合、シーンチェンジフラグがアクティブであると判断されるまで、ステップS91の処理が繰り返される。
【0183】
ステップS91において、シーンチェンジフラグがアクティブであったと判断された場合、ステップS92において、発生符号量制御部152は、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとを比較し、mad_info > prev_mad_infoであるか否かを判断する。
【0184】
ステップS92において、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、処理はステップS91に戻り、それ以降の処理が繰り返される。
【0185】
ステップS92において、mad_info > prev_mad_infoであると判断された場合、このシーンチェンジは、簡単な画像から、難しい画像へのシーンチェンジであるので、ステップS93において、発生符号量制御部152は、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新を行う。
【0186】
すなわち、発生符号量制御部152は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0187】
ステップS93の処理の終了後、処理は、ステップS91に戻り、それ以降の処理が繰り返される。
【0188】
図16のフローチャートを用いて説明した処理により、フレーム画像データに含まれているシーンチェンジが発生したか否かを示すフラグ、および、イントラACを用いて、画像難易度が易しいものから難しいものに変更されるシーンチェンジの時にのみ仮想バッファ調整が行われるようにしたので、エンコードに余裕があるはずの簡単な画像において、更に画質を悪くしてしまうことを防ぐことができる。
【0189】
しかしながら、図16を用いて説明した処理においても、難しい画像から易しい画像へシーンが変わる場合全てについて、仮想バッファ調整を行わないようにしてしまうと、上述したように、直前の難画像における仮想バッファの振る舞い次第によっては、簡単な画像から難易度の高い画像へシーンチェンジする場合と同様の問題を生じる可能性があるため、シーンチェンジによる画質劣化の弊害が生じてしまう。
【0190】
次に、図17を用いて、外部の装置により供給される、シーンチェンジが発生するピクチャの位置を示す信号を基に、難しい画像から易しい画像へシーンが変わる場合の変化がある一定レベル以上であり、かつ、変化後の画像難易度が一定レベル以上である場合に仮想バッファの調整を行うようにした、仮想バッファ更新処理6について説明する。
【0191】
ステップS101において、図16のステップS91と同様の処理が実行される。
【0192】
すなわち、フレーム画像データに含まれているシーンチェンジが発生しているか否かを示すフラグが参照されて、シーンチェンジフラグがアクティブであるか否かが判断される。ステップS101において、シーンチェンジフラグがアクティブではなかったと判断された場合、シーンチェンジフラグがアクティブであると判断されるまで、ステップS101の処理が繰り返される。
【0193】
ステップS101において、シーンチェンジフラグがアクティブであったと判断された場合、ステップS102乃至ステップS105において、図11を用いて説明した、ステップS43乃至ステップS46と同様の処理が実行される。
【0194】
すなわち、イントラAC算出部91から供給される、このシーンチェンジの後のイントラACの値であるmad_infoと、このシーンチェンジの前のイントラACの値であるprev_mad_infoとが比較されて、mad_info > prev_mad_infoであるか否かが判断され、mad_info > prev_mad_infoではないと判断された場合、このシーンチェンジは、難しい画像から、簡単な画像へのシーンチェンジであるので、このシーンチェンジの前のイントラACの値であるprev_mad_infoからこのシーンチェンジの後のイントラACの値であるmad_infoを減算した値、すなわち、符号化難易度の変化量が算出され、この値と、所定の閾値D1とを比較し、prev_mad_info − mad_info > D1であるか否かが判断される。
【0195】
ここで、所定の閾値D1とは、シーンチェンジの前後において、符号化難易度の変化量が大きいか小さいかを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0196】
prev_mad_info − mad_info > D1ではないと判断された場合、シーンチェンジの前後において、符号化難易度の変化量が小さいので、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
【0197】
prev_mad_info − mad_info > D1であると判断された場合、シーンチェンジの前後において、符号化難易度の変化量が大きいので、このシーンチェンジの後のイントラACの値であるmad_infoと、所定の閾値D2が比較され、mad_info >
D2であるか否かが判断される。
【0198】
ここで、所定の閾値D2とは、シーンチェンジの後の画像が、所定のレベル以上の符号化難易度を有するか否かを判断するための数値であり、求める画像の品質により、設定変更可能な数値である。
【0199】
mad_info > D2ではないと判断された場合、シーンチェンジの後の画像は、所定のレベルより簡単な画像であるので、処理は、ステップS101に戻り、それ以降の処理が繰り返される。一方、mad_info > D2であると判断された場合、シーンチェンジの後の画像は、所定のレベル以上の符号化難易度を有するものであるので、処理は、ステップS105に進む。
【0200】
mad_info > prev_mad_infoであると判断された場合、もしくは、mad_info > D2であると判断された場合、従来における場合と同様の処理により、仮想バッファの初期バッファ容量d(0)の更新が行われる。
【0201】
すなわち、発生符号量制御部152は、上述した式(2)、式(3)、式(4)および式(5)に基づいて、仮想バッファの初期バッファ容量d(0)を算出し、仮想バッファを更新する。
【0202】
ステップS105の処理の終了後、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
【0203】
図17を用いて説明した処理により、prev_mad_infoとmad_infoを用いて、難易度の変化(難しい画像からやさしい画像への変化)がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上であるか否かが判断され、難易度の変化がある一定レベル以上であり、かつ、変化後の難易度も一定レベル以上である場合に、仮想バッファの調整が行われるようにしたので、シーンチェンジによる画質劣化の弊害の発生を、更に押さえることができる。
【0204】
図12乃至図17を用いて説明したように、シーンチェンジの発生位置を知るための方法は、ME残差を基に検出する以外のいかなる方法であっても良い。
【0205】
上述の実施の形態においては、ローディレイコーディングとしてナンバ0乃至11の各フレーム画像を全てPピクチャとし、例えば、横45マクロブロック、縦24マクロブロックの画枠サイズの中でフレーム画像の上段から縦2マクロブロックおよび横45マクロブロック分の領域を1つのイントラスライス部分、他を全てインタースライス部分として設定するようにした場合について述べたが、本発明はこれに限らず、例えば、イントラスライス部分を縦1マクロブロック、横45マクロブロック分の領域とするなど、他の種々の大きさの領域で形成するようにしても良い。
【0206】
また、以上の説明においては、主に、ローディレイエンコードを行う場合について説明したが、本発明は、例えば、15フレームを、フレーム内符号化画像(以下、Iピクチャと称する)、フレーム間順方向予測符号化画像(以下、Pピクチャと称する)、もしくは、双方向予測符号化画像(以下、Bピクチャと称する)の3つの画像タイプのうちのいずれの画像タイプとして処理するかを指定し、指定されたフレーム画像の画像タイプ(Iピクチャ、Pピクチャ、もしくは、Bピクチャ)に応じて、フレーム画像を符号化するような場合にも適用可能である。更に、本発明は、マクロブロックごとに予測符号化のタイプ(イントラマクロブロック、または、インターマクロブロック)を指定して符号化処理を行うような場合においても、適用可能である。
【0207】
更に、上述の実施の形態においては、本発明を、MPEG方式によって圧縮符号化する符号化装置としてのビデオエンコーダ61、ビデオエンコーダ101、または、ビデオエンコーダ131に適用する場合について述べたが、本発明はこれに限らず、他の種々の画像圧縮方式による符号化装置に適用するようにしても良い。
【0208】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、ビデオエンコーダ61ビデオエンコーダ181、または、ビデオエンコーダ131は、図18に示されるようなパーソナルコンピュータ181により構成される。
【0209】
図18において、CPU(Central Processing Unit)191は、ROM(Read Only Memory)192に記憶されているプログラム、または記憶部198からRAM(Random Access Memory)193にロードされたプログラムに従って、各種の処理を実行する。RAM193にはまた、CPU191が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0210】
CPU191、ROM192、およびRAM193は、バス194を介して相互に接続されている。このバス194にはまた、入出力インタフェース195も接続されている。
【0211】
入出力インタフェース195には、キーボード、マウスなどよりなる入力部196、ディスプレイやスピーカなどよりなる出力部197、ハードディスクなどより構成される記憶部198、モデム、ターミナルアダプタなどより構成される通信部199が接続されている。通信部199は、インターネットを含むネットワークを介しての通信処理を行う。
【0212】
入出力インタフェース195にはまた、必要に応じてドライブ200が接続され、磁気ディスク211、光ディスク212、光磁気ディスク213、もしくは、半導体メモリ214などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部198にインストールされる。
【0213】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0214】
この記録媒体は、図18に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク211(フロッピディスクを含む)、光ディスク212(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク213(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ214などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM192や、記憶部198に含まれるハードディスクなどで構成される。
【0215】
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的もしくは個別に実行される処理をも含むものである。
【0216】
【発明の効果】
本発明の第1の側面によれば、画像データをエンコードすることができる。また、本発明によれば、特に、難しい画像から簡単な画像へのシーンチェンジが起こった場合、シーンチェンジ前のピクチャに対する符号化難易度とシーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新するようにしたので、シーンチェンジ時に画像が劣化してしまうのを防ぐようにすることができる。
【0217】
また、本発明の第2の側面によれば、画像データをエンコードすることができ、特に、易しい画像から難しい画像へのシーンチェンジが起こった場合、符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新するようにすることができるので、シーンチェンジ時に画像が劣化してしまうのを防ぐようにすることができる。
【図面の簡単な説明】
【図1】MPEG2方式によって映像データを圧縮符号化する場合、および圧縮符号化された画像データを復号する場合の処理について説明する図である。
【図2】VBVバッファについて説明する図である。
【図3】ローディレイコーディングについて説明する図である。
【図4】VBVバッファについて説明する図である。
【図5】シーンチェンジについて説明する図である。
【図6】従来の仮想バッファ更新処理について説明するフローチャートである。
【図7】本発明を適用したビデオエンコーダの構成を示すブロック図である。
【図8】仮想バッファのバッファ占有量について説明する図である。
【図9】イントラスライスおよびインタースライスごとの、仮想バッファのバッファ占有量について説明する図である。
【図10】本発明を適用した仮想バッファ更新処理1について説明するフローチャートである。
【図11】本発明を適用した仮想バッファ更新処理2について説明するフローチャートである。
【図12】本発明を適用したビデオエンコーダの構成を示すブロック図である。
【図13】本発明を適用した仮想バッファ更新処理3について説明するフローチャートである。
【図14】本発明を適用した仮想バッファ更新処理4について説明するフローチャートである。
【図15】本発明を適用したビデオエンコーダの構成を示すブロック図である。
【図16】本発明を適用した仮想バッファ更新処理5について説明するフローチャートである。
【図17】本発明を適用した仮想バッファ更新処理6について説明するフローチャートである。
【図18】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
61 ビデオエンコーダ, 71 前処理部, 72 演算部, 73 動きベクトル検出部, 74 DCT部, 75 量子化部, 77 VLC部, 78 逆量子化部, 79 逆DCT部, 80 演算部, 81 動き補償部, 82 バッファ, 83 量子化制御部, 84 フレームメモリ, 91イントラAC算出部, 92 発生符号量制御部, 93 GC算出部, 94 目標符号量算出部, 95 ME残差算出部, 101 ビデオエンコーダ, 111 量子化制御部, 121 シーンチェンジ情報取得部, 122 発生符号量制御部, 131 ビデオエンコーダ, 141 量子化制御部,151 シーンチェンジフラグ読み取り部, 152 発生符号量制御部
Claims (18)
- 画像を符号化して符号化データを生成する符号化装置において、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定手段と、
前記判定手段により難しい画像から簡単な画像へのシーンチェンジであると判定され、前記シーンチェンジ前のピクチャに対する符号化難易度と前記シーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新手段と、
前記更新手段により更新された前記仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、
前記決定手段により決定された前記量子化インデックスデータを基に、量子化を実行する量子化手段と、
前記量子化手段により量子化された量子化係数データを符号化する符号化手段と
を備える符号化装置。 - 前記判定手段は、前記シーンチェンジ前のピクチャに対する符号化難易度が前記シーンチェンジ後のピクチャに対する符号化難易度よりも大きい場合に、難しい画像から簡単な画像へのシーンチェンジであると判定する
請求項1に記載の符号化装置。 - 前記符号化難易度を算出する難易度算出手段
を更に備える請求項1に記載の符号化装置。 - 前記難易度算出手段は、画像の絵柄の難しさおよび符号化後のデータ量と相関性を有する指標量を前記符号化難易度として算出する
請求項3に記載の符号化装置。 - 前記難易度算出手段は、イントラACを前記指標量として算出する
請求項4に記載の符号化装置。 - シーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報を取得するシーンチェンジ情報取得手段を更に備え、
前記判定手段は、前記シーンチェンジ情報取得手段により取得された前記シーンチェンジ情報を利用して、前記シーンチェンジ前の前記ピクチャとシーンチェンジ後のピクチャとを検出する
請求項1に記載の符号化装置。 - 画像を符号化して符号化データを生成する符号化装置の符号化方法において、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により難しい画像から簡単な画像へのシーンチェンジであると判定され、前記シーンチェンジ前のピクチャに対する符号化難易度と前記シーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む符号化方法。 - 画像を符号化して符号化データを生成する符号化装置用のプログラムであって、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により難しい画像から簡単な画像へのシーンチェンジであると判定され、前記シーンチェンジ前のピクチャに対する符号化難易度と前記シーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む処理を符号化装置に実行させるためのプログラムが記録されている記録媒体。 - 画像を符号化して符号化データを生成する符号化装置を制御するコンピュータが実行可能なプログラムであって、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で難しい画像から簡単な画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により難しい画像から簡単な画像へのシーンチェンジであると判定され、前記シーンチェンジ前のピクチャに対する符号化難易度と前記シーンチェンジ後のピクチャに対する符号化難易度との差分が第1の閾値より大きく、かつ、シーンチェンジ後のピクチャに対する符号化難易度が第2の閾値より大きい場合に、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記仮想バッファの初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む処理をコンピュータに実行させるためのプログラム。 - 画像を符号化して符号化データを生成する符号化装置において、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定手段と、
前記判定手段により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新手段と、
前記更新手段により更新された前記初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定手段と、
前記決定手段により決定された前記量子化インデックスデータを基に、量子化を実行する量子化手段と、
前記量子化手段により量子化された量子化係数データを符号化する符号化手段と
を備える符号化装置。 - 前記判定手段は、前記シーンチェンジ後のピクチャに対する符号化難易度が前記シーンチェンジ前のピクチャに対する符号化難易度よりも大きい場合に、簡単な画像から難しい画像へのシーンチェンジであると判定する
請求項10に記載の符号化装置。 - 前記符号化難易度を算出する難易度算出手段
を更に備える請求項10に記載の符号化装置。 - 前記難易度算出手段は、画像の絵柄の難しさおよび符号化後のデータ量と相関性を有する指標量を前記符号化難易度として算出する
請求項12に記載の符号化装置。 - 前記難易度算出手段は、イントラACを前記指標量として算出す
請求項13に記載の符号化装置。 - シーンチェンジが発生するピクチャの位置を示すシーンチェンジ情報を取得するシーンチェンジ情報取得手段を更に備え、
前記判定手段は、前記シーンチェンジ情報取得手段により取得された前記シーンチェンジ情報を利用して、前記シーンチェンジ前のピクチャと前記シーンチェンジ後のピクチャとを検出する
請求項10に記載の符号化装置。 - 画像を符号化して符号化データを生成する符号化装置の符号化方法において、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む符号化方法。 - 画像を符号化して符号化データを生成する符号化装置用のプログラムであって、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む処理を符号化装置に実行させるためのプログラムが記録されている記録媒体。 - 画像を符号化して符号化データを生成する符号化装置を制御するコンピュータが実行可能なプログラムであって、
シーンチェンジ前のピクチャとシーンチェンジ後のピクチャとの間で簡単な画像から難しい画像へのシーンチェンジであるかを判定する判定ステップと、
前記判定ステップの処理により簡単な画像から難しい画像へのシーンチェンジであると判定された場合のみ、前記符号化データを復号する復号手段の入力バッファに対応する仮想バッファの初期バッファ容量の値を、ビットレートをピクチャレートで除算した除算値とME残差の積をピクチャの発生符号量で除算した除算結果に所定の係数を乗算した値に更新する更新ステップと、
前記更新ステップの処理により更新された前記初期バッファ容量の値を用いて、量子化インデックスデータを決定する決定ステップと、
前記決定ステップの処理により決定された前記量子化インデックスデータを基に、量子化を実行する量子化ステップと、
前記量子化ステップの処理により量子化された量子化係数データを符号化する符号化ステップと
を含む処理をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003081950A JP4228739B2 (ja) | 2002-04-05 | 2003-03-25 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104313 | 2002-04-05 | ||
JP2003081950A JP4228739B2 (ja) | 2002-04-05 | 2003-03-25 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004007498A JP2004007498A (ja) | 2004-01-08 |
JP4228739B2 true JP4228739B2 (ja) | 2009-02-25 |
Family
ID=30446711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003081950A Expired - Fee Related JP4228739B2 (ja) | 2002-04-05 | 2003-03-25 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4228739B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4221655B2 (ja) | 2003-03-06 | 2009-02-12 | ソニー株式会社 | 符号化装置および符号化方法、プログラム、並びに記録媒体 |
JP4243205B2 (ja) * | 2004-02-18 | 2009-03-25 | 日本放送協会 | 動画像符号化装置、その方法及びそのプログラム |
US9131236B2 (en) | 2010-05-12 | 2015-09-08 | Nippon Telegraph And Telephone Corporation | Code amount control method and apparatus |
-
2003
- 2003-03-25 JP JP2003081950A patent/JP4228739B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004007498A (ja) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5180294B2 (ja) | ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御 | |
JP4221655B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
KR100850706B1 (ko) | 적응적 동영상 부호화 및 복호화 방법과 그 장치 | |
JP3960451B2 (ja) | シーン特性検出型動画像符号化装置 | |
JP2001169281A (ja) | 動画像符号化装置、および動画像符号化方法 | |
JP4099682B2 (ja) | 画像処理装置および方法、並びに記録媒体 | |
JP2001510311A (ja) | 符号化方式におけるオブジェクトベースのレート制御装置及びその方法 | |
JP3907875B2 (ja) | 符号化レート制御装置及び情報符号化装置 | |
US20120002724A1 (en) | Encoding device and method and multimedia apparatus including the encoding device | |
JP3508916B2 (ja) | 動画像可変ビットレート符号化方法および装置 | |
US9185420B2 (en) | Moving image coding apparatus and moving image coding method | |
JP4228739B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP4186543B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP2012015603A (ja) | 画像処理装置及び画像映像処理方法 | |
JP4586340B2 (ja) | 符号化装置、および、符号化方法、並びに、プログラム | |
JP4186544B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP4718736B2 (ja) | 動画像符号化装置 | |
JP4264535B2 (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JPH10108197A (ja) | 画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体 | |
JP3779066B2 (ja) | 動画像符号化装置 | |
JP4325536B2 (ja) | 動画像符号化装置及び方法 | |
JP3918208B2 (ja) | 映像データ圧縮装置およびその方法 | |
JPH11205803A (ja) | 符号化装置及び符号化方法 | |
JP4273385B2 (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JPH08186821A (ja) | 動画像符号化装置及び動画像伝送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050927 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070618 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080807 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081007 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20081022 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081111 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081124 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121212 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |