JP2011061534A - 動画像符号化装置及び動画像符号化方法 - Google Patents
動画像符号化装置及び動画像符号化方法 Download PDFInfo
- Publication number
- JP2011061534A JP2011061534A JP2009209378A JP2009209378A JP2011061534A JP 2011061534 A JP2011061534 A JP 2011061534A JP 2009209378 A JP2009209378 A JP 2009209378A JP 2009209378 A JP2009209378 A JP 2009209378A JP 2011061534 A JP2011061534 A JP 2011061534A
- Authority
- JP
- Japan
- Prior art keywords
- code amount
- scene change
- unit
- compression
- encoding
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】符号化処理と全く異なる前処理を実施することによる演算量の増大を招くことなく、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができるようにする。
【解決手段】シーンチェンジ検出部12によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ検出部12により推定された符号量と目標符号量決定部11により決定されたピクチャ目標符号量の大小関係に応じてQPを更新し、シーンチェンジ検出部12によりシーンチェンジが有る旨の判定がなされた場合、そのQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新する。
【選択図】図1
【解決手段】シーンチェンジ検出部12によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ検出部12により推定された符号量と目標符号量決定部11により決定されたピクチャ目標符号量の大小関係に応じてQPを更新し、シーンチェンジ検出部12によりシーンチェンジが有る旨の判定がなされた場合、そのQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新する。
【選択図】図1
Description
この発明は、動画像信号における各ピクチャを圧縮符号化し、その圧縮符号化結果を示す圧縮符号化データを出力する動画像符号化装置及び動画像符号化方法に関するものである。
「MPEG」や「ITU−T H.26x」等の国際標準映像符号化方式では、映像信号の各フレームを圧縮符号化する際、そのフレームを構成する輝度信号16×16画素と、その輝度信号16×16画素に対応する色差信号8×8画素分とをまとめたブロックデータ(以下、「マクロブロック」と称する)を一単位として、動き探索処理/動き補償処理や、直交変換処理/変換係数量子化処理を実施することで圧縮符号化し、圧縮符号化結果をビットストリームとして出力する方法が採用されている。
そのビットストリームを復号する場合でも、マクロブロック単位に復号処理を実施して、最終的に1画像全部のマクロブロックを復号することで、復号画像を出力する。
そのビットストリームを復号する場合でも、マクロブロック単位に復号処理を実施して、最終的に1画像全部のマクロブロックを復号することで、復号画像を出力する。
ここで、動画像符号化装置がリアルタイムの動画像をネットワーク経由で遠隔地に伝送する場合、リアルタイムの動画像を「MPEG」や「ITU−T H.26x」等の国際標準映像符号化方式で一旦圧縮してから、ネットワーク経由で遠隔地に伝送するが、ネットワークの帯域が限られている場合、そのネットワークの帯域に合わせた符号化を行う必要がある。
しかし、動画像の圧縮符号化の性質として、同一画質の圧縮をかけても、その動画像の中身に依存して、圧縮効率が変化する性質があることが知られている。
しかし、動画像の圧縮符号化の性質として、同一画質の圧縮をかけても、その動画像の中身に依存して、圧縮効率が変化する性質があることが知られている。
即ち、動画像はリアルタイムに入力されるものであるため、動画像における連続する2枚の画像の相関が高いか低いかは事前に把握することができないが、動画像における連続する2枚の画像の相関が高ければ(2枚の画像が似ている場合)、効率よく動画像を圧縮することができる。一方、例えば、シーンチェンジのように、2枚の画像の相関が低ければ(2枚の画像が全く異なる場合)、動画像の圧縮効率が著しく低下する。
このため、特に相関が低い画像が入力された場合には、ネットワークの帯域に合わせた符号化を行う必要性が高い。
このため、特に相関が低い画像が入力された場合には、ネットワークの帯域に合わせた符号化を行う必要性が高い。
相関が低い画像が入力された場合に、ネットワークの帯域に合わせた符号化を行う方法として、例えば、以下の特許文献1に開示されているフレームスキップを用いる方法が知られている。
ここで、「フレームスキップ」は、本来、符号化すべき動画像のコマを飛ばすことを意味しており、フレームスキップを用いる方法は、動画像の圧縮効率が低い場合に、フレームスキップを発生させることで、ネットワークの帯域に合わせるものである。
このように、フレームスキップを用いれば、容易にネットワークの帯域に合う符号化が可能になるが、動画像の滑らかさが失われて、シーンチェンジの度に一時的に動画像が止まって見える現象が発生する。このため、動画像が本来有している動きの滑らかさが失われることが問題となる。
ここで、「フレームスキップ」は、本来、符号化すべき動画像のコマを飛ばすことを意味しており、フレームスキップを用いる方法は、動画像の圧縮効率が低い場合に、フレームスキップを発生させることで、ネットワークの帯域に合わせるものである。
このように、フレームスキップを用いれば、容易にネットワークの帯域に合う符号化が可能になるが、動画像の滑らかさが失われて、シーンチェンジの度に一時的に動画像が止まって見える現象が発生する。このため、動画像が本来有している動きの滑らかさが失われることが問題となる。
また、ネットワークの帯域に合わせた符号化を行う方法として、例えば、以下の特許文献2に開示されているシーンチェンジを予め検出する方法が知られている。
特許文献2に開示されている方法は、符号化処理と全く異なる前処理として、予めシーンチェンジを検出する処理を実施し、シーンチェンジが検出された場合には、予め画質を落として圧縮することで、ネットワークの帯域に合わせるものである。
人間の視覚解像度の時間応答特性を勘案すると、シーンチェンジ直後の画像だけが多少荒い画質であっても、それほど目立たないとされるため、シーンチェンジ直後の画像の画質を落とすこと自体は実用上悪くない方法である。
しかし、この方法では、動画像の滑らかさも失われないが、符号化処理と全く異なる前処理として、シーンチェンジを検出する処理を実施する必要があるため、極めて演算量が多くなり、リアルタイムの動画像の符号化には向いていない。
特許文献2に開示されている方法は、符号化処理と全く異なる前処理として、予めシーンチェンジを検出する処理を実施し、シーンチェンジが検出された場合には、予め画質を落として圧縮することで、ネットワークの帯域に合わせるものである。
人間の視覚解像度の時間応答特性を勘案すると、シーンチェンジ直後の画像だけが多少荒い画質であっても、それほど目立たないとされるため、シーンチェンジ直後の画像の画質を落とすこと自体は実用上悪くない方法である。
しかし、この方法では、動画像の滑らかさも失われないが、符号化処理と全く異なる前処理として、シーンチェンジを検出する処理を実施する必要があるため、極めて演算量が多くなり、リアルタイムの動画像の符号化には向いていない。
従来の動画像符号化装置は以上のように構成されているので、フレームスキップを用いれば、容易にネットワークの帯域に合う符号化が可能になるが、動画像が本来有している動きの滑らかさが失われてしまう課題があった。
符号化処理と全く異なる前処理として、予めシーンチェンジを検出する処理を実施して、シーンチェンジ直後の画像の画質だけを落とせば、動画像の滑らかさが失われることなく、ネットワークの帯域に合う符号化が可能になるが、符号化処理と全く異なる別の前処理を行う必要があるため、極めて演算量が多くなり、リアルタイムの動画像の符号化が困難である課題があった。
符号化処理と全く異なる前処理として、予めシーンチェンジを検出する処理を実施して、シーンチェンジ直後の画像の画質だけを落とせば、動画像の滑らかさが失われることなく、ネットワークの帯域に合う符号化が可能になるが、符号化処理と全く異なる別の前処理を行う必要があるため、極めて演算量が多くなり、リアルタイムの動画像の符号化が困難である課題があった。
この発明は上記のような課題を解決するためになされたもので、符号化処理と全く異なる前処理を実施することによる演算量の増大を招くことなく、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができる動画像符号化装置及び動画像符号化方法を得ることを目的とする。
この発明に係る動画像符号化装置は、圧縮符号化手段によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、同じ量子化パラメータを用いて、そのスライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、その推定の符号量と目標符号量決定手段により決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定手段を設け、量子化パラメータ更新手段が、シーンチェンジ判定手段によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ判定手段により推定された符号量と目標符号量決定手段により決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、シーンチェンジ判定手段によりシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新するようにしたものである。
この発明によれば、圧縮符号化手段によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、同じ量子化パラメータを用いて、そのスライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、その推定の符号量と目標符号量決定手段により決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定手段を設け、量子化パラメータ更新手段が、シーンチェンジ判定手段によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ判定手段により推定された符号量と目標符号量決定手段により決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、シーンチェンジ判定手段によりシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新するように構成したので、符号化処理と全く異なる前処理を実施することによる演算量の増大を招くことなく、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができる効果がある。
実施の形態1.
図1はこの発明の実施の形態1による動画像符号化装置を示す構成図である。
この実施の形態1では、符号化方式が「H.264/AVC」である例を説明する。
したがって、図1の動画像符号化装置は、動画像信号と目標ビットレートを入力し、ビットストリームのビットレートが目標ビットレートと一致するように、H.264/AVC符号化方式で動画像信号を圧縮符号化し、その圧縮符号化結果であるビットストリーム(動画像圧縮符号化データ)を出力する。
図1はこの発明の実施の形態1による動画像符号化装置を示す構成図である。
この実施の形態1では、符号化方式が「H.264/AVC」である例を説明する。
したがって、図1の動画像符号化装置は、動画像信号と目標ビットレートを入力し、ビットストリームのビットレートが目標ビットレートと一致するように、H.264/AVC符号化方式で動画像信号を圧縮符号化し、その圧縮符号化結果であるビットストリーム(動画像圧縮符号化データ)を出力する。
図1において、画質制御部1は目標符号量決定部11、シーンチェンジ検出部12及びQP決定部13から構成されており、スライスエンコード部2により動画像信号が圧縮符号化される際に用いられるQP(量子化パラメータ)を調整することで、動画像の画質を制御する処理を実施する。
スライスエンコード部2はスライスヘッダエンコード部21及びマクロブロックエンコード部22から構成されており、動画像信号における各ピクチャを複数のスライスに分割して、そのスライスに含まれているマクロブロック(単位領域)毎に、画質制御部1のQP決定部13により決定されたQPを用いて圧縮符号化し、そのスライスの圧縮符号化結果を示す動画像圧縮符号化データを出力する処理を実施する。なお、スライスエンコード部2は圧縮符号化手段を構成している。
スライスエンコード部2はスライスヘッダエンコード部21及びマクロブロックエンコード部22から構成されており、動画像信号における各ピクチャを複数のスライスに分割して、そのスライスに含まれているマクロブロック(単位領域)毎に、画質制御部1のQP決定部13により決定されたQPを用いて圧縮符号化し、そのスライスの圧縮符号化結果を示す動画像圧縮符号化データを出力する処理を実施する。なお、スライスエンコード部2は圧縮符号化手段を構成している。
画質制御部1の目標符号量決定部11は目標ビットレートを入力すると、その目標ビットレートからピクチャの目標符号量(Target_Codes:以降、「T_Codes」略す)を決定する処理を実施する。なお、目標符号量決定部11は目標符号量決定手段を構成している。
シーンチェンジ検出部12はスライスエンコード部2によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、そのスライスの圧縮符号化に用いられたQPと同じQPを用いて、そのスライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量(Estimated_Codes:以降、「E_Codes」と略す)を推定し、その推定の符号量(E_Codes)と目標符号量決定部11により決定された目標符号量(T_Codes)からシーンチェンジの有無を判定して、シーンチェンジが有れば、検出フラグをQP決定部13に出力する処理を実施する。なお、シーンチェンジ検出部12はシーンチェンジ判定手段を構成している。
シーンチェンジ検出部12はスライスエンコード部2によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、そのスライスの圧縮符号化に用いられたQPと同じQPを用いて、そのスライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量(Estimated_Codes:以降、「E_Codes」と略す)を推定し、その推定の符号量(E_Codes)と目標符号量決定部11により決定された目標符号量(T_Codes)からシーンチェンジの有無を判定して、シーンチェンジが有れば、検出フラグをQP決定部13に出力する処理を実施する。なお、シーンチェンジ検出部12はシーンチェンジ判定手段を構成している。
QP決定部13はシーンチェンジ検出部12から検出フラグが出力されない場合(シーンチェンジが無い旨の判定がなされた場合)、シーンチェンジ検出部12により推定された符号量(E_Codes)と目標符号量決定部11により決定された目標符号量(T_Codes)の大小関係に応じて、スライスエンコード部2に出力するQPを更新し、シーンチェンジ検出部12から検出フラグが出力された場合(シーンチェンジが有る旨の判定がなされた場合)、スライスエンコード部2に出力するQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新する処理を実施する。なお、QP決定部13は量子化パラメータ更新手段を構成している。
スライスエンコード部2のスライスヘッダエンコード部21はQP決定部13により決定されたQPを含むスライスヘッダを符号化し、そのスライスヘッダの符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
マクロブロックエンコード部22は動画像信号における各ピクチャを複数のスライスに分割する処理を実施する。
また、マクロブロックエンコード部22はスライスエンコード部21によるスライスヘッダの符号化が完了すると、スライスに含まれているマクロブロック毎に、画質制御部1のQP決定部13により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
マクロブロックエンコード部22は動画像信号における各ピクチャを複数のスライスに分割する処理を実施する。
また、マクロブロックエンコード部22はスライスエンコード部21によるスライスヘッダの符号化が完了すると、スライスに含まれているマクロブロック毎に、画質制御部1のQP決定部13により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
なお、スライスエンコード部2は、スライス単位の圧縮符号化が完了する毎に、マクロブロックエンコード部22により今回圧縮符号化が行われたスライスに含まれているマクロブロックの個数P_MBs(Previous_MBs)を画質制御部1に出力するとともに、スライスヘッダエンコード部21から出力されたビットストリームの符号量(Header_Codes:以降、「H_Codes」と略す)と、マクロブロックエンコード部22から出力されたビットストリームの符号量の累積値(Macroblock_Codes:以降、「M_Codes」と略す)とを合計し、合計の符号量(H_Codes+M_Codes)を画質制御部1に出力する。
図1では、動画像符号化装置の構成要素である目標符号量決定部11、シーンチェンジ検出部12、QP決定部13、スライスヘッダエンコード部21及びマクロブロックエンコード部22がそれぞれ専用のハードウェア(例えば、CPUが実装されている半導体集積回路や、ワンチップマイコン)で構成されているものを想定しているが、動画像符号化装置がコンピュータで構成される場合、目標符号量決定部11、シーンチェンジ検出部12、QP決定部13、スライスヘッダエンコード部21及びマクロブロックエンコード部22の処理内容が記述されているプログラムを当該コンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図2は動画像信号における各ピクチャを複数のスライスに分割する様子を示す説明図である。
図2の例では、1つのフレームを5つのスライスに分割している様子を示している。
符号化は、マクロブロック単位にラスタースキャン順に行われ、一般に1つのマクロブロックの符号量は、少なければ1ビットであり、算術符号が用いられる場合は、それ以下となる場合もある。一方、多ければ100バイト以上であることもある。
図2の例では、1つのフレームを5つのスライスに分割している様子を示している。
符号化は、マクロブロック単位にラスタースキャン順に行われ、一般に1つのマクロブロックの符号量は、少なければ1ビットであり、算術符号が用いられる場合は、それ以下となる場合もある。一方、多ければ100バイト以上であることもある。
この実施の形態1では、動画像符号化装置がスライスを画質の調整単位とするものについて説明する。
図3はこの発明の実施の形態1による動画像符号化装置のシーンチェンジ検出部12の処理内容を示すフローチャートである。
また、図4はこの発明の実施の形態1による動画像符号化装置のQP決定部13の処理内容を示すフローチャートである。
図3はこの発明の実施の形態1による動画像符号化装置のシーンチェンジ検出部12の処理内容を示すフローチャートである。
また、図4はこの発明の実施の形態1による動画像符号化装置のQP決定部13の処理内容を示すフローチャートである。
次に動作について説明する。
画質制御部1の目標符号量決定部11は、目標ビットレートを入力すると、その目標ビットレートからピクチャ目標符号量(T_Codes)を決定し、そのピクチャ目標符号量(T_Codes)をシーンチェンジ検出部12及びQP決定部13に出力する。
ピクチャ目標符号量(T_Codes)は動画像信号のピクチャ毎に決定されるが、ピクチャ目標符号量(T_Codes)の決定方法として、例えば、この実施の形態1においては、MPEG−2に開示されている「TM−5のSTEP1」の方法を用い、目標ビットレートから計算する。
画質制御部1の目標符号量決定部11は、目標ビットレートを入力すると、その目標ビットレートからピクチャ目標符号量(T_Codes)を決定し、そのピクチャ目標符号量(T_Codes)をシーンチェンジ検出部12及びQP決定部13に出力する。
ピクチャ目標符号量(T_Codes)は動画像信号のピクチャ毎に決定されるが、ピクチャ目標符号量(T_Codes)の決定方法として、例えば、この実施の形態1においては、MPEG−2に開示されている「TM−5のSTEP1」の方法を用い、目標ビットレートから計算する。
QP決定部13は、スライスエンコード部2に出力するQP(量子化パラメータ)を決定する。
QP決定部13によるQPの決定方法の詳細は後述するが、動画像信号における先頭のピクチャの符号化を開始する際には、予め設定されているQPの初期値をスライスエンコード部2に出力する。例えば、この実施の形態1においては、符号化方式が「H.264/AVC」であるため、QPの初期値として“QP=30”を用いることとする。このQPは、中庸な画質を想定している量子化パラメータである。
また、先頭ピクチャ以外のピクチャ(2番目〜最後のピクチャ)の符号化を開始する際には、前ピクチャの最終処理で決定したQPを、現ピクチャの先頭スライス(先頭スライスに含まれているマクロブロック)の圧縮符号化に用いるQPとしてスライスエンコード部2に出力する。
なお、QP決定部13は、詳細は後述するが、各ピクチャのスライス(先頭スライスを除く)に含まれているマクロブロックの圧縮符号化に用いるQPをスライス単位で更新する。
QP決定部13によるQPの決定方法の詳細は後述するが、動画像信号における先頭のピクチャの符号化を開始する際には、予め設定されているQPの初期値をスライスエンコード部2に出力する。例えば、この実施の形態1においては、符号化方式が「H.264/AVC」であるため、QPの初期値として“QP=30”を用いることとする。このQPは、中庸な画質を想定している量子化パラメータである。
また、先頭ピクチャ以外のピクチャ(2番目〜最後のピクチャ)の符号化を開始する際には、前ピクチャの最終処理で決定したQPを、現ピクチャの先頭スライス(先頭スライスに含まれているマクロブロック)の圧縮符号化に用いるQPとしてスライスエンコード部2に出力する。
なお、QP決定部13は、詳細は後述するが、各ピクチャのスライス(先頭スライスを除く)に含まれているマクロブロックの圧縮符号化に用いるQPをスライス単位で更新する。
スライスエンコード部2のスライスヘッダエンコード部21は、QP決定部13がQPを決定すると、そのQPを含むスライスヘッダを符号化し、そのスライスヘッダの符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する。
このとき、スライスエンコード部2は、スライスヘッダエンコード部21から出力されたビットストリームの符号量(H_Codes)を記憶する。
このとき、スライスエンコード部2は、スライスヘッダエンコード部21から出力されたビットストリームの符号量(H_Codes)を記憶する。
マクロブロックエンコード部22は、動画像信号を入力すると、図2に示すように、その動画像信号における各ピクチャを複数のスライスに分割する。図2では、5つのスライスに分割している例を示している。
マクロブロックエンコード部22は、スライスエンコード部21によるスライスヘッダの符号化が完了すると、スライスに含まれているマクロブロック毎に、QP決定部13により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する。ただし、ビットストリームを出力する際、ストリームを単位としてまとめて出力する。
マクロブロックエンコード部22は、スライスエンコード部21によるスライスヘッダの符号化が完了すると、スライスに含まれているマクロブロック毎に、QP決定部13により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する。ただし、ビットストリームを出力する際、ストリームを単位としてまとめて出力する。
このとき、スライスエンコード部2は、マクロブロックエンコード部22から出力されたビットストリームの符号量の累積値(M_Codes)を記憶し、1つのスライスの圧縮符号化が終了すると、スライスヘッダエンコード部21から出力されたビットストリームの符号量(H_Codes)と、マクロブロックエンコード部22から出力されたビットストリームの符号量の累積値(M_Codes)とを合計し、合計の符号量(H_Codes+M_Codes)を画質制御部1に出力する。
また、スライスエンコード部2は、マクロブロックエンコード部22により今回圧縮符号化が行われたスライスに含まれているマクロブロックの個数P_MBsを画質制御部1に出力する。
また、スライスエンコード部2は、マクロブロックエンコード部22により今回圧縮符号化が行われたスライスに含まれているマクロブロックの個数P_MBsを画質制御部1に出力する。
なお、1つのスライスの圧縮符号化を終了させるトリガーとして様々な方法があり、一般に知られている方法として、「スライスの符号量が一定値を超えたらスライスの符号化を終了する方法」や「スライスに含まれているマクロブロックの数が一定値を超えたらスライスの符号化を終了する方法」などがある。
この実施の形態1では、例えば、「スライスの符号量が一定値を超えたらスライスの符号化を終了する方法」を使用するものとする。即ち、H_Codes+M_Codesの合計値が、ある固定の閾値(例えば、1000バイト)を超えたら、スライスの符号化を終了するものとする。
この実施の形態1では、例えば、「スライスの符号量が一定値を超えたらスライスの符号化を終了する方法」を使用するものとする。即ち、H_Codes+M_Codesの合計値が、ある固定の閾値(例えば、1000バイト)を超えたら、スライスの符号化を終了するものとする。
画質制御部1のシーンチェンジ検出部12は、スライスエンコード部2によるスライス単位の圧縮符号化が完了する毎に、シーンチェンジの有無を判定する。
QP決定部13は、シーンチェンジ検出部12によるシーンチェンジの検出結果に応じて、スライスエンコード部2に出力するQPをスライス単位に更新する。
以下、シーンチェンジ検出部12及びQP決定部13の処理内容を具体的に説明する。
QP決定部13は、シーンチェンジ検出部12によるシーンチェンジの検出結果に応じて、スライスエンコード部2に出力するQPをスライス単位に更新する。
以下、シーンチェンジ検出部12及びQP決定部13の処理内容を具体的に説明する。
一般に、画質とQPと符号量は密接な関係があり、その依存の程度は、動画像によって差があるが、符号化方式が「H.264/AVC」の場合、画質とQPは反比例し、画質と符号量は比例の関係にあるため、QPと符号量は反比例の関係にある。
したがって、スライスエンコード部2から出力されるビットストリームの符号量の合計値(H_Codes+M_Codes)がピクチャ目標符号量(T_Codes)と一致するように画質を制御するには、図5に示すように、1つのスライスに含まれている全てのマクロブロックの圧縮符号化が終了したとき、その時点での目標符号量(符号化途中時点の目標符号量)とビットストリームの符号量の合計値(H_Codes+M_Codes)を比較し、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を上回っていれば、QPを上げるように更新し、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を下回っていれば、QPを下げるように更新すればよいことが知られている。
したがって、スライスエンコード部2から出力されるビットストリームの符号量の合計値(H_Codes+M_Codes)がピクチャ目標符号量(T_Codes)と一致するように画質を制御するには、図5に示すように、1つのスライスに含まれている全てのマクロブロックの圧縮符号化が終了したとき、その時点での目標符号量(符号化途中時点の目標符号量)とビットストリームの符号量の合計値(H_Codes+M_Codes)を比較し、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を上回っていれば、QPを上げるように更新し、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を下回っていれば、QPを下げるように更新すればよいことが知られている。
図5の例では、A,Cの符号化終了時点のとき、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を上回っているため、QPをやや上げて、次のスライスに含まれているマクロブロックの圧縮符号化における符号量を抑制している。
また、Bの符号化終了時点のとき、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を下回っているため、QPをやや下げて、次のスライスに含まれているマクロブロックの圧縮符号化における符号量を多くしている。
また、Bの符号化終了時点のとき、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を下回っているため、QPをやや下げて、次のスライスに含まれているマクロブロックの圧縮符号化における符号量を多くしている。
シーンチェンジが無い場合(隣接画像間の相関が高い場合)、図5に示す方法でQPを決定すれば、ビットストリームの符号量の合計値(H_Codes+M_Codes)が概ねピクチャ目標符号量(T_Codes)と一致するように画質を制御することができる。
しかし、シーンチェンジが有る場合(隣接画像間の相関が低い場合)、図5に示す方法でQPを決定すると、図6に示すように、QPをやや上げるぐらいでは、符号量を抑制することができなくなり、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を大幅に上回ってしまう状況が発生する。
しかし、シーンチェンジが有る場合(隣接画像間の相関が低い場合)、図5に示す方法でQPを決定すると、図6に示すように、QPをやや上げるぐらいでは、符号量を抑制することができなくなり、ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を大幅に上回ってしまう状況が発生する。
ビットストリームの符号量の合計値(H_Codes+M_Codes)が目標符号量を大幅に上回ってしまうと、上記の特許文献1に開示されている「フレームスキップを用いる方法」を使用しなければ、ネットワークの帯域に合わせた符号化を行うことができなくなる。
この実施の形態1では、図6に示すような状況の発生を防止するために、シーンチェンジ検出部12がシーンチェンジを検出すると、QP決定部13が、シーンチェンジが有る場合に適するQPに更新するようにしている。
この実施の形態1では、図6に示すような状況の発生を防止するために、シーンチェンジ検出部12がシーンチェンジを検出すると、QP決定部13が、シーンチェンジが有る場合に適するQPに更新するようにしている。
シーンチェンジが有る場合、例えば、図7に示すように、最初のスライスに含まれているマクロブロックの全ての圧縮符号化が行われた段階で、最初のスライスに含まれているマクロブロックの個数P_MBsと、それらのマクロブロックのビットストリームの符号量の合計値(H_Codes+M_Codes)から、それらのマクロブロックの圧縮符号化に用いられたQPと同じQPを用いて、残りのスライスに含まれているマクロブロックの圧縮符号化が継続された場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定することが可能である。
そこで、シーンチェンジ検出部12は、1つスライスに含まれている全てのマクロブロックの圧縮符号化が終了して、スライスエンコード部2からビットストリームの符号量の合計値(H_Codes+M_Codes)と、そのスライスに含まれているマクロブロックの個数P_MBsを受けると(図3のステップST1)、マクロブロックの個数P_MBsに対する符号量の合計値(H_Codes+M_Codes)を表す直線(傾きが(H_Codes+M_Codes)/P_MBsの直線)を用いて、当該ピクチャ(5つのスライス)に含まれている全てのマクロブロックが圧縮符号化された場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定する(ステップST2)。
次に、シーンチェンジ検出部12は、シーンチェンジの有無を判定する際に用いる閾値として、シーンチェンジ検出ポイントを算出する(ステップST3)。
例えば、目標符号量決定部11により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出する。
次に、シーンチェンジ検出部12は、推定符号量(E_Codes)とシーンチェンジ検出ポイント(T_Codes×N)を比較し(ステップST4)、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きければ、シーンチェンジが有ると判定し(ステップST5)、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きくなければ、シーンチェンジが無いと判定する(ステップST6)。
なお、シーンチェンジ検出部12は、シーンチェンジが有ると判定すると、シーンチェンジが有る旨を示す検出フラグをQP決定部13に出力する。
例えば、目標符号量決定部11により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出する。
次に、シーンチェンジ検出部12は、推定符号量(E_Codes)とシーンチェンジ検出ポイント(T_Codes×N)を比較し(ステップST4)、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きければ、シーンチェンジが有ると判定し(ステップST5)、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きくなければ、シーンチェンジが無いと判定する(ステップST6)。
なお、シーンチェンジ検出部12は、シーンチェンジが有ると判定すると、シーンチェンジが有る旨を示す検出フラグをQP決定部13に出力する。
図7では、最初のスライスの圧縮符号化が終了した時点で、シーンチェンジの有無を判定する例を示しているが、図8に示すように、最初のスライスではない途中のスライスの圧縮符号化が終了した時点(図8では、4番目のスライスの圧縮符号化が終了した時点)で、シーンチェンジの有無を判定するようにしてもよい。
図8の例では、1番目〜4番目のスライスに含まれているマクロブロックの個数に対する符号量の合計値を表す直線(直線の傾きは、4番目のスライスに含まれているマクロブロックの個数P_MBsに対する4番目のスライスに含まれているマクロブロックの符号量の合計値(H_Codes+M_Codes)で表されている)を用いて、当該ピクチャ(5つのスライス)に含まれている全てのマクロブロックが圧縮符号化された場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定する。
図8の例では、1番目〜4番目のスライスに含まれているマクロブロックの個数に対する符号量の合計値を表す直線(直線の傾きは、4番目のスライスに含まれているマクロブロックの個数P_MBsに対する4番目のスライスに含まれているマクロブロックの符号量の合計値(H_Codes+M_Codes)で表されている)を用いて、当該ピクチャ(5つのスライス)に含まれている全てのマクロブロックが圧縮符号化された場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定する。
ここで、シーンチェンジ検出部12の処理内容を式で表すと以下のようになる。
・マクロブロック数関連変数
S_MBs(Sum_MBs):符号化済マクロブロック累積合計数
P_MBs:直前スライス符号化MB数
・符号量関連変数
T_Codes:ピクチャ目標符号量
S_Codes(Sum_Codes):符号化済累積符号量
P_Codes(Previous_Codes):直前スライス符号量
(H_Codes+M_Codesに相当)
E_Codes:推定符号量
・定数
T_MBs(Total_MBs):ピクチャのトータルのマクロブロック数
N=3.0
・マクロブロック数関連変数
S_MBs(Sum_MBs):符号化済マクロブロック累積合計数
P_MBs:直前スライス符号化MB数
・符号量関連変数
T_Codes:ピクチャ目標符号量
S_Codes(Sum_Codes):符号化済累積符号量
P_Codes(Previous_Codes):直前スライス符号量
(H_Codes+M_Codesに相当)
E_Codes:推定符号量
・定数
T_MBs(Total_MBs):ピクチャのトータルのマクロブロック数
N=3.0
STEP(1) ピクチャ符号化開始時に初期化
T_Codes:目標符号量決定部11から出力される
S_MBs=0
S_Codes=0
STEP(2) 各スライスエンコード終了後のシーンチェンジ検出
P_MBs :スライスエンコード部2から出力される
P_Codes:スライスエンコード部2から出力される
式(1)が成立する場合に、シーンチェンジが有ると判定する
STEP(3) 次のスライスの検出処理に備える累積値の更新
S_MBs=S_MBs+P_MBs
S_Codes=S_Codes+P_Codes
ピクチャの符号化が終了であれば、STEP(1)に戻り、ピクチャの符号化が終了でなければ、STEP(2)に戻る。
T_Codes:目標符号量決定部11から出力される
S_MBs=0
S_Codes=0
STEP(2) 各スライスエンコード終了後のシーンチェンジ検出
P_MBs :スライスエンコード部2から出力される
P_Codes:スライスエンコード部2から出力される
式(1)が成立する場合に、シーンチェンジが有ると判定する
STEP(3) 次のスライスの検出処理に備える累積値の更新
S_MBs=S_MBs+P_MBs
S_Codes=S_Codes+P_Codes
ピクチャの符号化が終了であれば、STEP(1)に戻り、ピクチャの符号化が終了でなければ、STEP(2)に戻る。
QP決定部13は、シーンチェンジ検出部12によるシーンチェンジの検出処理が終了するまで待機し(図4のステップST11)、シーンチェンジ検出部12から推定符号量(E_Codes)と検出フラグが出力されると、シーンチェンジが有るものと認識し、シーンチェンジ検出部12から推定符号量(E_Codes)だけが出力されて、検出フラグが出力されなければ、シーンチェンジが無いものと認識する(ステップST12)。
QP決定部13は、シーンチェンジが無いものと認識すると、目標符号量決定部11により決定されたピクチャ目標符号量(T_Codes)に定数Th1(例えば、Th1=0.95)を乗算するとともに、そのピクチャ目標符号量(T_Codes)に定数Th2(例えば、Th2=1.05)を乗算する。
QP決定部13は、その推定符号量(E_Codes)とT_Codes×Th1を比較するとともに(ステップST13)、その推定符号量(E_Codes)とT_Codes×Th2を比較する(ステップST14)。
QP決定部13は、その推定符号量(E_Codes)とT_Codes×Th1を比較するとともに(ステップST13)、その推定符号量(E_Codes)とT_Codes×Th2を比較する(ステップST14)。
QP決定部13は、その推定符号量(E_Codes)がT_Codes×Th1より小さければ、次のスライスに含まれているマクロブロックの圧縮符号化における符号量をやや多くするため、次のスライスに含まれているマクロブロックの圧縮符号化に用いるQPであるN_QPをやや下げる(N_QP=N_QP−1)ように更新する(ステップST15)
このQPの更新処理は、図5におけるBの符号化終了時点の更新処理に相当する。
このQPの更新処理は、図5におけるBの符号化終了時点の更新処理に相当する。
QP決定部13は、その推定符号量(E_Codes)がT_Codes×Th2より大きければ、次のスライスに含まれているマクロブロックの圧縮符号化における符号量をやや抑えるため、次のスライスに含まれているマクロブロックの圧縮符号化に用いるQPであるN_QPをやや上げる(N_QP=N_QP+1)ように更新する(ステップST16)
このQPの更新処理は、図5におけるA,Cの符号化終了時点の更新処理に相当する。
このQPの更新処理は、図5におけるA,Cの符号化終了時点の更新処理に相当する。
QP決定部13は、その推定符号量(E_Codes)がT_Codes×Th1より大きく、かつ、その推定符号量(E_Codes)がT_Codes×Th2より小さい場合、現スライスに含まれているマクロブロックに用いられたQPを、引き続き、次のスライスに含まれているマクロブロックの圧縮符号化に用いても、ネットワークの帯域に合う符号化が可能であるため、そのQPの更新処理を実施しない。
QP決定部13は、シーンチェンジが有るものと認識すると、次のスライスに含まれているマクロブロックの圧縮符号化に用いるQPであるN_QPを、動画像の画質を最低保証の画質まで落とす量子化パラメータであるMAX_QP(例えば、MAX_QP=51)に更新する(ステップST17)。
H.264では、規格の定める最大QP値が“51”であるため、単純にMAX_QP=51としてもよいが、QP=51で符号化した場合は一般に画質が低下し過ぎるため、例えば、MAX_QP=40などとして、最低画質を保証することも可能である。
このQPの更新処理は、図7及び図8に示されている符号化終了時点の更新処理に相当する。
H.264では、規格の定める最大QP値が“51”であるため、単純にMAX_QP=51としてもよいが、QP=51で符号化した場合は一般に画質が低下し過ぎるため、例えば、MAX_QP=40などとして、最低画質を保証することも可能である。
このQPの更新処理は、図7及び図8に示されている符号化終了時点の更新処理に相当する。
QP決定部13は、次のスライスに含まれているマクロブロックの圧縮符号化に用いるN_QPを決定すると、そのN_QPをスライスエンコード部2に出力する(ステップST18)。
QP決定部13におけるステップST11〜ST18の処理は、ピクチャの最終スライスに係るQPの決定が完了するまで繰り返し実施する(ステップST19)。
QP決定部13におけるステップST11〜ST18の処理は、ピクチャの最終スライスに係るQPの決定が完了するまで繰り返し実施する(ステップST19)。
このように、シーンチェンジが有る場合、急激にQPを上昇されることで、以降のマクロブロックの符号量を抑えられるため、トータルのピクチャ目標符号量(T_Codes)を遵守することが可能となる。
この際、QPを急激に上昇させることで画質が低下するが、一般に人間の視覚解像度の時間応答特性の観点から、シーンチェンジ直後の画像だけが多少荒い画質であっても、それほど目立たないとされる。このため、シーンチェンジ直後の画像の画質を落とすこと自体は問題がない。
この際、QPを急激に上昇させることで画質が低下するが、一般に人間の視覚解像度の時間応答特性の観点から、シーンチェンジ直後の画像だけが多少荒い画質であっても、それほど目立たないとされる。このため、シーンチェンジ直後の画像の画質を落とすこと自体は問題がない。
以上で明らかなように、この実施の形態1によれば、スライスエンコード部2によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれているマクロブロックの個数及び上記スライスの圧縮符号化データの符号量から、同じQPを用いて、そのスライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、その推定の符号量と目標符号量決定部11により決定されたピクチャ目標符号量から、シーンチェンジの有無を判定するシーンチェンジ検出部12を設け、QP決定部13が、シーンチェンジ検出部12によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ検出部12により推定された符号量と目標符号量決定部11により決定されたピクチャ目標符号量の大小関係に応じてQPを更新し、シーンチェンジ検出部12によりシーンチェンジが有る旨の判定がなされた場合、そのQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新するように構成したので、符号化処理と全く異なる前処理を実施することによる演算量の増大を招くことなく、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができる効果を奏する。
なお、この実施の形態1では、符号化方式が「H.264/AVC」である例を説明したが、これはあくまでも一例であり、例えば、H.264/AVCと類似の符号化方式(例えば、MPEG−2、MPEG−4 Visual、SMPTE VC−1)についても、同様の効果が得られることは言うまでもない。
実施の形態2.
図9はこの発明の実施の形態2による動画像符号化装置を示す構成図である。
この実施の形態2でも、上記実施の形態1と同様に、符号化方式が「H.264/AVC」である例を説明する。
したがって、図9の動画像符号化装置は、動画像信号と目標ビットレートを入力し、ビットストリームのビットレートが目標ビットレートと一致するように、H.264/AVC符号化方式で動画像信号を圧縮符号化し、その圧縮符号化結果であるビットストリーム(動画像圧縮符号化データ)を出力する。
図9はこの発明の実施の形態2による動画像符号化装置を示す構成図である。
この実施の形態2でも、上記実施の形態1と同様に、符号化方式が「H.264/AVC」である例を説明する。
したがって、図9の動画像符号化装置は、動画像信号と目標ビットレートを入力し、ビットストリームのビットレートが目標ビットレートと一致するように、H.264/AVC符号化方式で動画像信号を圧縮符号化し、その圧縮符号化結果であるビットストリーム(動画像圧縮符号化データ)を出力する。
図9において、画質制御部3は目標符号量決定部31、シーンチェンジ検出部32及びQP決定部33から構成されており、スライスエンコード部4により動画像信号が圧縮符号化される際に用いられるQP(量子化パラメータ)を調整することで、動画像の画質を制御する処理を実施する。
スライスエンコード部4はスライスヘッダエンコード部41及びマクロブロックエンコード部42から構成されており、動画像信号における各ピクチャを複数のマクロブロック(単位領域)に分割して、そのマクロブロック毎に、画質制御部3のQP決定部33により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果を示す動画像圧縮符号化データを出力する処理を実施する。なお、スライスエンコード部4は圧縮符号化手段を構成している。
スライスエンコード部4はスライスヘッダエンコード部41及びマクロブロックエンコード部42から構成されており、動画像信号における各ピクチャを複数のマクロブロック(単位領域)に分割して、そのマクロブロック毎に、画質制御部3のQP決定部33により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果を示す動画像圧縮符号化データを出力する処理を実施する。なお、スライスエンコード部4は圧縮符号化手段を構成している。
画質制御部3の目標符号量決定部31は図1の目標符号量決定部11と同様に、目標ビットレートを入力すると、その目標ビットレートからピクチャ目標符号量(T_Codes)を決定する処理を実施する。なお、目標符号量決定部31は目標符号量決定手段を構成している。
シーンチェンジ検出部32はスライスエンコード部4によるマクロブロック単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたマクロブロックの圧縮符号化データの符号量から、そのマクロブロックの圧縮符号化に用いられたQPと同じQPを用いて、そのマクロブロック以降のマクロブロックの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定し、その推定の符号量(E_Codes)と目標符号量決定部31により決定された目標符号量(T_Codes)からシーンチェンジの有無を判定して、シーンチェンジが有れば、検出フラグをQP決定部33に出力する処理を実施する。なお、シーンチェンジ検出部32はシーンチェンジ判定手段を構成している。
シーンチェンジ検出部32はスライスエンコード部4によるマクロブロック単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたマクロブロックの圧縮符号化データの符号量から、そのマクロブロックの圧縮符号化に用いられたQPと同じQPを用いて、そのマクロブロック以降のマクロブロックの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定し、その推定の符号量(E_Codes)と目標符号量決定部31により決定された目標符号量(T_Codes)からシーンチェンジの有無を判定して、シーンチェンジが有れば、検出フラグをQP決定部33に出力する処理を実施する。なお、シーンチェンジ検出部32はシーンチェンジ判定手段を構成している。
QP決定部33はシーンチェンジ検出部32から検出フラグが出力されない場合(シーンチェンジが無い旨の判定がなされた場合)、シーンチェンジ検出部32により推定された符号量(E_Codes)と目標符号量決定部31により決定された目標符号量(T_Codes)の大小関係に応じて、スライスエンコード部4に出力するQPを更新し、シーンチェンジ検出部32から検出フラグが出力された場合(シーンチェンジが有る旨の判定がなされた場合)、スライスエンコード部4に出力するQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新する処理を実施する。なお、QP決定部33は量子化パラメータ更新手段を構成している。
スライスエンコード部4のスライスヘッダエンコード部41はQP決定部33により決定されたQPを含むスライスヘッダを符号化し、そのスライスヘッダの符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
マクロブロックエンコード部42は動画像信号における各ピクチャを複数のマクロブロックに分割する処理を実施する。
また、マクロブロックエンコード部42はスライスヘッダエンコード部41によるスライスヘッダの符号化が完了すると、マクロブロック毎に、画質制御部3のQP決定部33により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
マクロブロックエンコード部42は動画像信号における各ピクチャを複数のマクロブロックに分割する処理を実施する。
また、マクロブロックエンコード部42はスライスヘッダエンコード部41によるスライスヘッダの符号化が完了すると、マクロブロック毎に、画質制御部3のQP決定部33により決定されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリーム(動画像圧縮符号化データ)として出力する処理を実施する。
なお、スライスエンコード部4は、マクロブロック単位の圧縮符号化が完了する毎に、マクロブロックエンコード部42により圧縮符号化が行われたマクロブロックの個数P_MBs(この実施の形態2では、常に、P_MBs=1となる)を画質制御部3に出力するとともに、スライスヘッダエンコード部41から出力されたビットストリームの符号量(H_Codes)と、マクロブロックエンコード部42から出力されたビットストリームの符号量(M_Codes)とを合計し、合計の符号量(H_Codes+M_Codes)を画質制御部3に出力する。
図9では、動画像符号化装置の構成要素である目標符号量決定部31、シーンチェンジ検出部32、QP決定部33、スライスヘッダエンコード部41及びマクロブロックエンコード部42がそれぞれ専用のハードウェア(例えば、CPUが実装されている半導体集積回路や、ワンチップマイコン)で構成されているものを想定しているが、動画像符号化装置がコンピュータで構成される場合、目標符号量決定部31、シーンチェンジ検出部32、QP決定部33、スライスヘッダエンコード部41及びマクロブロックエンコード部42の処理内容が記述されているプログラムを当該コンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図10はこの発明の実施の形態2による動画像符号化装置のQP決定部33の処理内容を示すフローチャートである。
図10はこの発明の実施の形態2による動画像符号化装置のQP決定部33の処理内容を示すフローチャートである。
上記実施の形態1では、動画像符号化装置がスライスを画質の調整単位とするものについて説明したが、この実施の形態2では、マクロブロックを画質の調整単位とするものについて説明する。
マクロブロック単位で画質を調整することにより、より細かな画質の制御が可能となる。
マクロブロック単位で画質を調整することにより、より細かな画質の制御が可能となる。
次に動作について説明する。
画質制御部3の目標符号量決定部31は、目標ビットレートを入力すると、図1の目標符号量決定部11と同様に、その目標ビットレートからピクチャ目標符号量(T_Codes)を決定し、そのピクチャ目標符号量(T_Codes)をシーンチェンジ検出部32及びQP決定部33に出力する。
ピクチャ目標符号量(T_Codes)は動画像信号のピクチャ毎に決定されるが、ピクチャ目標符号量(T_Codes)の決定方法として、例えば、この実施の形態2においては、MPEG−2に開示されている「TM−5のSTEP1」の方法を用い、目標ビットレートから計算する。
画質制御部3の目標符号量決定部31は、目標ビットレートを入力すると、図1の目標符号量決定部11と同様に、その目標ビットレートからピクチャ目標符号量(T_Codes)を決定し、そのピクチャ目標符号量(T_Codes)をシーンチェンジ検出部32及びQP決定部33に出力する。
ピクチャ目標符号量(T_Codes)は動画像信号のピクチャ毎に決定されるが、ピクチャ目標符号量(T_Codes)の決定方法として、例えば、この実施の形態2においては、MPEG−2に開示されている「TM−5のSTEP1」の方法を用い、目標ビットレートから計算する。
QP決定部33は、スライスエンコード部4に出力するQPを決定する。
QP決定部33によるQPの決定方法の詳細は後述するが、動画像信号における先頭のピクチャの符号化を開始する際には、予め設定されているQPの初期値をスライスエンコード部4に出力する。例えば、この実施の形態2においては、符号化方式が「H.264/AVC」であるため、QPの初期値として“QP=30”を用いることとする。
また、先頭ピクチャ以外のピクチャ(2番目〜最後のピクチャ)の符号化を開始する際には、前ピクチャの最終処理で決定したQPを、現ピクチャの先頭マクロブロックの圧縮符号化に用いるQPとしてスライスエンコード部4に出力する。
なお、QP決定部33は、詳細は後述するが、各ピクチャに含まれているマクロブロックの圧縮符号化に用いるQPをマクロブロック単位で更新する。
QP決定部33によるQPの決定方法の詳細は後述するが、動画像信号における先頭のピクチャの符号化を開始する際には、予め設定されているQPの初期値をスライスエンコード部4に出力する。例えば、この実施の形態2においては、符号化方式が「H.264/AVC」であるため、QPの初期値として“QP=30”を用いることとする。
また、先頭ピクチャ以外のピクチャ(2番目〜最後のピクチャ)の符号化を開始する際には、前ピクチャの最終処理で決定したQPを、現ピクチャの先頭マクロブロックの圧縮符号化に用いるQPとしてスライスエンコード部4に出力する。
なお、QP決定部33は、詳細は後述するが、各ピクチャに含まれているマクロブロックの圧縮符号化に用いるQPをマクロブロック単位で更新する。
スライスエンコード部4は、動画像信号における各ピクチャを複数のマクロブロックに分割し、マクロブロック毎に、QP決定部33から出力されたQPを用いて圧縮符号化し、そのマクロブロックの圧縮符号化結果を示すビットストリームを出力する。
ただし、スライスエンコード部4におけるマクロブロックの圧縮符号化の処理は、スライスにおける先頭のマクロブロックを符号化する場合と、先頭以外のマクロブロックを符号化する場合とで異なる。
ただし、スライスエンコード部4におけるマクロブロックの圧縮符号化の処理は、スライスにおける先頭のマクロブロックを符号化する場合と、先頭以外のマクロブロックを符号化する場合とで異なる。
(1)スライスにおける先頭のマクロブロックを符号化する場合の処理内容
スライスエンコード部4のスライスヘッダエンコード部41は、QP決定部33がQPを決定すると、そのQPを含むスライスヘッダを符号化し、そのスライスヘッダの符号化結果をビットストリームとして出力する。
このとき、スライスエンコード部4は、スライスヘッダエンコード部41から出力されたビットストリームの符号量(H_Codes)を記憶する。
スライスエンコード部4のスライスヘッダエンコード部41は、QP決定部33がQPを決定すると、そのQPを含むスライスヘッダを符号化し、そのスライスヘッダの符号化結果をビットストリームとして出力する。
このとき、スライスエンコード部4は、スライスヘッダエンコード部41から出力されたビットストリームの符号量(H_Codes)を記憶する。
マクロブロックエンコード部42は、動画像信号を入力すると、その動画像信号における各ピクチャを複数のマクロブロックに分割する。
マクロブロックエンコード部42は、スライスエンコード部4によるスライスヘッダの符号化が完了すると、QP決定部13により決定されたQPを用いて、スライスにおける先頭のマクロブロックを圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリームとして出力する。
マクロブロックエンコード部42は、スライスエンコード部4によるスライスヘッダの符号化が完了すると、QP決定部13により決定されたQPを用いて、スライスにおける先頭のマクロブロックを圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリームとして出力する。
このとき、スライスエンコード部4は、マクロブロックエンコード部42から出力されたビットストリームの符号量(M_Codes)を記憶し、先頭のマクロブロックの圧縮符号化が終了すると、スライスヘッダエンコード部41から出力されたビットストリームの符号量(H_Codes)と、マクロブロックエンコード部42から出力されたビットストリームの符号量(M_Codes)とを合計し、合計の符号量(H_Codes+M_Codes)を画質制御部3に出力する。
また、スライスエンコード部4は、マクロブロックエンコード部42により圧縮符号化が行われたマクロブロックの個数P_MBs(この実施の形態2では、常に、P_MBs=1となる)を画質制御部3に出力する。
また、スライスエンコード部4は、マクロブロックエンコード部42により圧縮符号化が行われたマクロブロックの個数P_MBs(この実施の形態2では、常に、P_MBs=1となる)を画質制御部3に出力する。
(2)スライスにおける先頭以外のマクロブロックを符号化する場合の処理内容
スライスエンコード部4は、スライスヘッダのビットストリームに含まれる符号量(H_Codes)を“0”として、マクロブロックのエンコードを行う。
マクロブロックエンコード部42は、QP決定部13により決定されたQPを用いて、スライスにおける先頭以外の1つのマクロブロックを圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリームとして出力する。
スライスエンコード部4は、スライスヘッダのビットストリームに含まれる符号量(H_Codes)を“0”として、マクロブロックのエンコードを行う。
マクロブロックエンコード部42は、QP決定部13により決定されたQPを用いて、スライスにおける先頭以外の1つのマクロブロックを圧縮符号化し、そのマクロブロックの圧縮符号化結果をビットストリームとして出力する。
このとき、スライスエンコード部4は、マクロブロックエンコード部42から出力されたビットストリームの符号量(M_Codes)を記憶し、先頭以外の1つのマクロブロックの圧縮符号化が終了すると、スライスヘッダエンコード部41から出力されたビットストリームの符号量(H_Codes)=0と、マクロブロックエンコード部42から出力されたビットストリームの符号量(M_Codes)とを合計し、合計の符号量(H_Codes+M_Codes)を画質制御部3に出力する。
また、スライスエンコード部4は、マクロブロックエンコード部42により圧縮符号化が行われたマクロブロックの個数P_MBs(この実施の形態2では、常に、P_MBs=1となる)を画質制御部3に出力する。
また、スライスエンコード部4は、マクロブロックエンコード部42により圧縮符号化が行われたマクロブロックの個数P_MBs(この実施の形態2では、常に、P_MBs=1となる)を画質制御部3に出力する。
画質制御部3のシーンチェンジ検出部32は、スライスエンコード部4によるマクロブロック単位の圧縮符号化が完了する毎に、シーンチェンジの有無を判定する。
QP決定部33は、シーンチェンジ検出部32によるシーンチェンジの検出結果に応じて、スライスエンコード部4に出力するQPをマクロブロック単位に更新する。
以下、シーンチェンジ検出部32及びQP決定部33の処理内容を具体的に説明する。
QP決定部33は、シーンチェンジ検出部32によるシーンチェンジの検出結果に応じて、スライスエンコード部4に出力するQPをマクロブロック単位に更新する。
以下、シーンチェンジ検出部32及びQP決定部33の処理内容を具体的に説明する。
シーンチェンジ検出部32は、スライスエンコード部4によるマクロブロック単位の圧縮符号化が終了する毎に、スライスエンコード部4からビットストリームの符号量の合計値(H_Codes+M_Codes)と、圧縮符号化が行われたマクロブロックの個数P_MBs=1を受けると、マクロブロックの個数P_MBsに対する符号量の合計値(H_Codes+M_Codes)を表す直線(傾きが(H_Codes+M_Codes)/P_MBsの直線)を用いて、当該ピクチャに含まれている全てのマクロブロックが圧縮符号化された場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定する。
ここでは、単一のマクロブロックで直線の傾き((H_Codes+M_Codes)/P_MBs)を計算しているが、単一のマクロブロックで直線の傾きを計算すると、局所性依存度が高くなり過ぎてしまうため、直線の傾きを計算する場合、複数のマクロブロックを用いることが望ましい。
この実施の形態2では、シーンチェンジ検出部32の処理内容を式で表すが(詳細は後述する)、処理内容を示す式では、直線の傾きを計算するための複数のマクロブロックを「マクロブロックユニット」と称し、そのマクロブロックユニットに含まれるマクロブロックの個数をU_MBs(Unit_MBs)とする。ただし、U_MBsは所定の定数である。
また、マクロブロックユニットに含まれる符号量をU_Codes(Unit_Codes)とする。実際は、マクロブロックユニットに含まれる個々のマクロブロックの符号量を管理しながら、マクロブロックユニットに含まれる符号量U_Codesを更新する必要がある。
この実施の形態2では、シーンチェンジ検出部32の処理内容を式で表すが(詳細は後述する)、処理内容を示す式では、直線の傾きを計算するための複数のマクロブロックを「マクロブロックユニット」と称し、そのマクロブロックユニットに含まれるマクロブロックの個数をU_MBs(Unit_MBs)とする。ただし、U_MBsは所定の定数である。
また、マクロブロックユニットに含まれる符号量をU_Codes(Unit_Codes)とする。実際は、マクロブロックユニットに含まれる個々のマクロブロックの符号量を管理しながら、マクロブロックユニットに含まれる符号量U_Codesを更新する必要がある。
次に、シーンチェンジ検出部32は、図1のシーンチェンジ検出部12と同様に、シーンチェンジの有無を判定する際に用いる閾値として、シーンチェンジ検出ポイントを算出する。
例えば、目標符号量決定部31により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出する。
例えば、目標符号量決定部31により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出する。
次に、シーンチェンジ検出部32は、図1のシーンチェンジ検出部12と同様に、推定符号量(E_Codes)とシーンチェンジ検出ポイント(T_Codes×N)を比較し、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きければ、シーンチェンジが有ると判定し、その推定符号量(E_Codes)がシーンチェンジ検出ポイント(T_Codes×N)より大きくなければ、シーンチェンジが無いと判定する。
なお、シーンチェンジ検出部32は、シーンチェンジが有ると判定すると、シーンチェンジが有る旨を示す検出フラグをQP決定部33に出力する。
なお、シーンチェンジ検出部32は、シーンチェンジが有ると判定すると、シーンチェンジが有る旨を示す検出フラグをQP決定部33に出力する。
ここで、シーンチェンジ検出部32の処理内容を式で表すと以下のようになる。
・マクロブロック数関連変数
S_MBs:符号化済マクロブロック累積合計数
P_MBs:直前符号化済マクロブロック数(実施の形態2では必ず1となる)
・符号量関連変数
T_Codes:ピクチャ目標符号量
S_Codes:符号化済累積符号量
P_Codes:直前マクロブロック符号量
U_Codes:マクロブロックユニット符号量
E_Codes:推定符号量
・定数
T_MBs:ピクチャのトータルのマクロブロック数
U_MBs:マクロブロックユニットに含まれるマクロブロック数(例えば10個)
N=3.0
・マクロブロック数関連変数
S_MBs:符号化済マクロブロック累積合計数
P_MBs:直前符号化済マクロブロック数(実施の形態2では必ず1となる)
・符号量関連変数
T_Codes:ピクチャ目標符号量
S_Codes:符号化済累積符号量
P_Codes:直前マクロブロック符号量
U_Codes:マクロブロックユニット符号量
E_Codes:推定符号量
・定数
T_MBs:ピクチャのトータルのマクロブロック数
U_MBs:マクロブロックユニットに含まれるマクロブロック数(例えば10個)
N=3.0
STEP(1) ピクチャ符号化開始時に初期化
T_Codes:目標符号量決定部31から出力される
S_MBs=0
S_Codes=0
STEP(2) 各マクロブロックエンコード終了後のシーンチェンジ検出
P_Codes:スライスエンコード部4から出力される
U_Codesの更新
式(2)が成立する場合に、シーンチェンジが有ると判定する
T_Codes:目標符号量決定部31から出力される
S_MBs=0
S_Codes=0
STEP(2) 各マクロブロックエンコード終了後のシーンチェンジ検出
P_Codes:スライスエンコード部4から出力される
U_Codesの更新
式(2)が成立する場合に、シーンチェンジが有ると判定する
ピクチャの符号化が終了であれば、STEP(1)に戻り、ピクチャの符号化が終了でなければ、スライスエンコード部4からビットストリームの符号量の合計値(H_Codes+M_Codes)と、圧縮符号化が行われたマクロブロックの個数P_MBs=1とを受ける毎に、STEP(2)の処理を繰り返し実施する。
QP決定部33は、シーンチェンジ検出部32がマクロブロック単位でシーンチェンジの有無を判定する毎に、その判定結果に応じて、スライスエンコード部4に出力するQPを更新する。
QP決定部33は、マクロブロック単位でQPを更新する点で、スライス単位でQPを更新する図1のQP決定部13と相違している。
QP決定部33は、マクロブロック単位でQPを更新する点で、スライス単位でQPを更新する図1のQP決定部13と相違している。
QP決定部33は、シーンチェンジ検出部32によるマクロブロック単位のシーンチェンジの検出処理が終了するまで待機し(ステップST21)、シーンチェンジ検出部32から推定符号量(E_Codes)と検出フラグが出力されると、シーンチェンジが有るものと認識し、シーンチェンジ検出部32から推定符号量(E_Codes)だけが出力されて、検出フラグが出力されなければ、シーンチェンジが無いものと認識する(ステップST22)。
QP決定部33は、シーンチェンジが無いものと認識すると、目標符号量決定部31により決定されたピクチャ目標符号量(T_Codes)に定数Th1(例えば、Th1=0.95)を乗算するとともに、そのピクチャ目標符号量(T_Codes)に定数Th2(例えば、Th2=1.05)を乗算する。
QP決定部33は、その推定符号量(E_Codes)とT_Codes×Th1を比較するとともに(ステップST23)、その推定符号量(E_Codes)とT_Codes×Th2を比較する(ステップST24)。
QP決定部33は、その推定符号量(E_Codes)とT_Codes×Th1を比較するとともに(ステップST23)、その推定符号量(E_Codes)とT_Codes×Th2を比較する(ステップST24)。
QP決定部33は、その推定符号量(E_Codes)がT_Codes×Th1より小さければ、次のマクロブロックの圧縮符号化における符号量をやや多くするため、次のマクロブロックの圧縮符号化に用いるQPであるN_QPをやや下げる(N=N_QP−1)ように更新する(ステップST25)
このQPの更新処理は、図5におけるBの符号化終了時点の更新処理に相当する。
このQPの更新処理は、図5におけるBの符号化終了時点の更新処理に相当する。
QP決定部33は、その推定符号量(E_Codes)がT_Codes×Th2より大きければ、次のマクロブロックの圧縮符号化における符号量をやや抑えるため、次のマクロブロックの圧縮符号化に用いるQPであるN_QPをやや上げる(N_QP=N_QP+1)ように更新する(ステップST26)
このQPの更新処理は、図5におけるA,Cの符号化終了時点の更新処理に相当する。
このQPの更新処理は、図5におけるA,Cの符号化終了時点の更新処理に相当する。
QP決定部33は、その推定符号量(E_Codes)がT_Codes×Th1より大きく、かつ、その推定符号量(E_Codes)がT_Codes×Th2より小さい場合、現マクロブロックに用いられたQPを、引き続き、次のマクロブロックの圧縮符号化に用いても、ネットワークの帯域に合う符号化が可能であるため、そのQPの更新処理を実施しない。
QP決定部33は、シーンチェンジが有るものと認識すると、次のマクロブロックの圧縮符号化に用いるQPであるN_QPを、動画像の画質を最低保証の画質まで落とす量子化パラメータであるMAX_QP(例えば、MAX_QP=51)に更新する(ステップST27)。
H.264では、規格の定める最大QP値が“51”であるため、単純にMAX_QP=51としてもよいが、QP=51で符号化した場合は一般に画質が低下し過ぎるため、例えば、MAX_QP=40などとして、最低画質を保証することも可能である。
このQPの更新処理は、図7及び図8に示されている符号化終了時点の更新処理に相当する。
H.264では、規格の定める最大QP値が“51”であるため、単純にMAX_QP=51としてもよいが、QP=51で符号化した場合は一般に画質が低下し過ぎるため、例えば、MAX_QP=40などとして、最低画質を保証することも可能である。
このQPの更新処理は、図7及び図8に示されている符号化終了時点の更新処理に相当する。
QP決定部33は、次のマクロブロックの圧縮符号化に用いるN_QPを決定すると、そのN_QPをスライスエンコード部4に出力する(ステップST28)。
QP決定部33におけるステップST21〜ST28の処理は、ピクチャの最終マクロブロックに係るQPの決定が完了するまで繰り返し実施する(ステップST29)。
QP決定部33におけるステップST21〜ST28の処理は、ピクチャの最終マクロブロックに係るQPの決定が完了するまで繰り返し実施する(ステップST29)。
以上で明らかなように、この実施の形態2によれば、スライスエンコード部4によるマクロブロック単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたマクロブロックの圧縮符号化データの符号量から、そのマクロブロックの圧縮符号化に用いられたQPと同じQPを用いて、そのマクロブロック以降のマクロブロックの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量(E_Codes)を推定し、その推定の符号量(E_Codes)と目標符号量決定部31により決定された目標符号量(T_Codes)からシーンチェンジの有無を判定するシーンチェンジ検出部32を設け、QP決定部33が、シーンチェンジ検出部32によりシーンチェンジが無い旨の判定がなされた場合、シーンチェンジ検出部32により推定された符号量(E_Codes)と目標符号量決定部31により決定された目標符号量(T_Codes)の大小関係に応じて、スライスエンコード部4に出力するQPを更新し、シーンチェンジ検出部32によりシーンチェンジが有る旨の判定がなされた場合、スライスエンコード部4に出力するQPを動画像の画質を最低保証の画質まで落とす量子化パラメータに更新するように構成したので、符号化処理と全く異なる前処理を実施することによる演算量の増大を招くことなく、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができる効果を奏する。
また、この実施の形態2によれば、マクロブロック単位でQPを調整しているので、上記実施の形態1よりも、早い段階でシーンチェンジを検出することが可能となり、より細かな画質制御を行うことができる効果を奏する。
なお、この実施の形態2では、符号化方式が「H.264/AVC」である例を説明したが、これはあくまでも一例であり、例えば、H.264/AVCと類似の符号化方式(例えば、MPEG−2、MPEG−4 Visual、SMPTE VC−1)についても、同様の効果が得られることは言うまでもない。
実施の形態3.
上記実施の形態1,2では、シーンチェンジ検出部12,32が、シーンチェンジの有無を判定する際に用いる閾値として、シーンチェンジ検出ポイントを算出する際、目標符号量決定部11,31により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出しているものについて示したが、定数倍を固定値とせずに、定数倍を適宜変更することで、符号化済みのマクロブロックの個数に連動して、
シーンチェンジ検出ポイント(T_Codes×N)を変動させるようにしてもよい。
即ち、スライスエンコード部2,4による圧縮符号化済みのマクロブロックの個数が増えて、未だ圧縮符号化が行われていないマクロブロックの個数が減ってくると、定数倍の値(Nの値)を小さくすることで(Nを変数化する)、シーンチェンジ検出ポイント(T_Codes×N)を下げるようにしてもよい。
上記実施の形態1,2では、シーンチェンジ検出部12,32が、シーンチェンジの有無を判定する際に用いる閾値として、シーンチェンジ検出ポイントを算出する際、目標符号量決定部11,31により決定されたピクチャ目標符号量(T_Codes)を定数倍することで(図7の例では、N=3.0として、N倍している)、シーンチェンジ検出ポイント(T_Codes×N)を算出しているものについて示したが、定数倍を固定値とせずに、定数倍を適宜変更することで、符号化済みのマクロブロックの個数に連動して、
シーンチェンジ検出ポイント(T_Codes×N)を変動させるようにしてもよい。
即ち、スライスエンコード部2,4による圧縮符号化済みのマクロブロックの個数が増えて、未だ圧縮符号化が行われていないマクロブロックの個数が減ってくると、定数倍の値(Nの値)を小さくすることで(Nを変数化する)、シーンチェンジ検出ポイント(T_Codes×N)を下げるようにしてもよい。
具体的には、シーンチェンジ検出部12,32がシーンチェンジ検出ポイントを算出する際、例えば、符号化済みのマクロブロックの個数が、ピクチャ全体のマクロブロックの個数の半分より少ない段階では、定数倍を示すNの値として“3”を使用し、符号化済みのマクロブロックの個数が、ピクチャ全体のマクロブロックの個数の半分に到達すると、定数倍を示すNの値として“2”を使用するものとする。
図11はシーンチェンジが有る場合のQPの更新方法の一例を示す説明図である。
図11の例では、符号化済みのマクロブロックの個数が、ピクチャ全体のマクロブロックの個数の半分に到達しているので、シーンチェンジ検出部12,32が、目標符号量決定部11,31により決定されたピクチャ目標符号量(T_Codes)を2倍することで、シーンチェンジ検出ポイント(T_Codes×2)を算出している。
このため、この実施の形態3におけるシーンチェンジ検出ポイント(T_Codes×2)が、上記実施の形態1,2におけるシーンチェンジ検出ポイント(T_Codes×3)より小さな値になるため、上記実施の形態1,2よりシーンチェンジが有ると判定される可能性が高くなる。
図11の例では、符号化済みのマクロブロックの個数が、ピクチャ全体のマクロブロックの個数の半分に到達しているので、シーンチェンジ検出部12,32が、目標符号量決定部11,31により決定されたピクチャ目標符号量(T_Codes)を2倍することで、シーンチェンジ検出ポイント(T_Codes×2)を算出している。
このため、この実施の形態3におけるシーンチェンジ検出ポイント(T_Codes×2)が、上記実施の形態1,2におけるシーンチェンジ検出ポイント(T_Codes×3)より小さな値になるため、上記実施の形態1,2よりシーンチェンジが有ると判定される可能性が高くなる。
ピクチャの先頭付近では、画質調整で符号量を調整することが可能なマクロブロック(未だ圧縮符号化が行われていないマクロブロックの個数)が数多く残っているため、シーンチェンジ検出ポイントを大きくして、シーンチェンジが検出されなくてもかまわないが、圧縮符号化済みのマクロブロックの個数が増えて、画質調整で符号量を調整することが可能なマクロブロックの個数が減ってくると、仮に、推定符号量(E_Codes)が大きなシーンチェンジ(T_Codes×N)を超えることで、シーンチェンジを検出して、符号量の調整を行っても、その符号量の調整が間に合わず、符号量がオーバーする可能性がある。
そこで、この実施の形態3では、圧縮符号化済みのマクロブロックの個数が増えて、画質調整で符号量を調整することが可能なマクロブロックの個数(未だ圧縮符号化が行われていないマクロブロックの個数)が減ってきたら、なるべく早い段階からシーンチェンジを検出して、符号量の調整を行うことができるようにするために、シーンチェンジ検出ポイントを下げるようにしている。
以下、シーンチェンジ検出部12,32によるシーンチェンジ検出ポイントの算出に用いるNの計算方法を説明する。
Nの計算方法は下記の式(3)で示される。
式(3)では、Nは、ピクチャ全体のマクロブロックの個数に対する未だ圧縮符号化が行われていないマクロブロックの個数の割合に依存しており、最大値NMAX(例えば、3.0)から最小値NMIN(例えば、1.2)まで順次減少する。
Nの計算方法は下記の式(3)で示される。
式(3)では、Nは、ピクチャ全体のマクロブロックの個数に対する未だ圧縮符号化が行われていないマクロブロックの個数の割合に依存しており、最大値NMAX(例えば、3.0)から最小値NMIN(例えば、1.2)まで順次減少する。
以上で明らかなように、この実施の形態3によれば、スライスエンコード部2,4による圧縮符号化済みのマクロブロックの個数が増えて、未だ圧縮符号化が行われていないマクロブロックの個数が減ってくると、定数倍の値(Nの値)を小さくすることで(Nを変数化する)、シーンチェンジ検出ポイント(T_Codes×N)を下げるように構成したので、なるべく早い段階からシーンチェンジを検出して、符号量の調整を行うことができるようになり、符号量がオーバーする可能性を低減することができる。ひいては、動画像の滑らかさを保持したままネットワークの帯域に合う符号化を行うことができる効果を奏する。
実施の形態4.
図12はこの発明の実施の形態4による動画像符号化装置を示す構成図であり、図において、図1と同一符号は同一又は相当部分を示すので説明を省略する。
図12では、上記実施の形態1における図1の動画像符号化装置に適用する例を示しているが、上記実施の形態2における図9の動画像符号化装置に適用するようにしてもよい。
シーンチェンジ検出部51は図1のシーンチェンジ検出部12又は図9のシーンチェンジ検出部32と同様にして、シーンチェンジの有無を判定する処理を実施する。
ただし、シーンチェンジ検出部51は画像内容の更新頻度が高いマクロブロックを示す更新高頻度領域情報である映像内容更新頻度高領域マップを入力して、更新頻度が高いマクロブロックを認識すると、そのマクロブロックにおけるシーンチェンジの判定処理(または、更新頻度が高いマクロブロックを含むスライスにおけるシーンチェンジの判定処理)を実施しない旨をQP決定部52に通知する処理も実施する。なお、シーンチェンジ検出部51はシーンチェンジ判定手段を構成している。
図12はこの発明の実施の形態4による動画像符号化装置を示す構成図であり、図において、図1と同一符号は同一又は相当部分を示すので説明を省略する。
図12では、上記実施の形態1における図1の動画像符号化装置に適用する例を示しているが、上記実施の形態2における図9の動画像符号化装置に適用するようにしてもよい。
シーンチェンジ検出部51は図1のシーンチェンジ検出部12又は図9のシーンチェンジ検出部32と同様にして、シーンチェンジの有無を判定する処理を実施する。
ただし、シーンチェンジ検出部51は画像内容の更新頻度が高いマクロブロックを示す更新高頻度領域情報である映像内容更新頻度高領域マップを入力して、更新頻度が高いマクロブロックを認識すると、そのマクロブロックにおけるシーンチェンジの判定処理(または、更新頻度が高いマクロブロックを含むスライスにおけるシーンチェンジの判定処理)を実施しない旨をQP決定部52に通知する処理も実施する。なお、シーンチェンジ検出部51はシーンチェンジ判定手段を構成している。
QP決定部52は図1のQP決定部13又は図9のQP決定部33と同様にして、QPを決定する処理を実施する。
ただし、QP決定部52はシーンチェンジ検出部51からシーンチェンジの判定処理を実施しない旨の通知を受けると、シーンチェンジの判定処理が行われないマクロブロックの圧縮符号化データの符号量が抑えられるQPをスライスエンコード部2に出力する処理も実施する。なお、QP決定部52は量子化パラメータ更新手段を構成している。
図13は映像内容更新頻度高領域マップを示す説明図である。
ただし、QP決定部52はシーンチェンジ検出部51からシーンチェンジの判定処理を実施しない旨の通知を受けると、シーンチェンジの判定処理が行われないマクロブロックの圧縮符号化データの符号量が抑えられるQPをスライスエンコード部2に出力する処理も実施する。なお、QP決定部52は量子化パラメータ更新手段を構成している。
図13は映像内容更新頻度高領域マップを示す説明図である。
上記実施の形態1では、シーンチェンジ検出部12がスライス単位でシーンチェンジの有無を判定し、上記実施の形態2では、シーンチェンジ検出部32がマクロブロック単位でシーンチェンジの有無を判定するものについて示したが、この実施の形態4では、更新頻度が高いマクロブロックについては、シーンチェンジの有無を判定しないものについて説明する。
即ち、この実施の形態4では、システムとして動画像の内容がある程度既知である場合、特に更新頻度が高い画像内の領域が既知である場合、その領域についてはシーンチェンジの有無を判定しないで、上記実施の形態1〜3よりも、高度な画質制御を行うものについて説明する。
具体的には、以下の通りである。
即ち、この実施の形態4では、システムとして動画像の内容がある程度既知である場合、特に更新頻度が高い画像内の領域が既知である場合、その領域についてはシーンチェンジの有無を判定しないで、上記実施の形態1〜3よりも、高度な画質制御を行うものについて説明する。
具体的には、以下の通りである。
シーンチェンジ検出部51は、画像内容の更新頻度が高いマクロブロックを示す映像内容更新頻度高領域マップを入力する。
映像内容更新頻度高領域マップは、ピクチャにおいて、更新頻度が高いマクロブロックを示す情報であり、図13の例では、ピクチャの左上の領域が、更新頻度が高いマクロブロックであることを示している。
更新頻度が高いマクロブロックは、符号量が多くなるため、事前に早い段階から画質の調整を図る必要性がある領域である。
画像内容の更新頻度が高いものとして、例えば、字幕スーパーや、激しく動くマスコットキャラクターなどが考えられ、これらはシステムとして、動画像のどの位置にあるかが事前に分かり得るものが多い。
映像内容更新頻度高領域マップは、ピクチャにおいて、更新頻度が高いマクロブロックを示す情報であり、図13の例では、ピクチャの左上の領域が、更新頻度が高いマクロブロックであることを示している。
更新頻度が高いマクロブロックは、符号量が多くなるため、事前に早い段階から画質の調整を図る必要性がある領域である。
画像内容の更新頻度が高いものとして、例えば、字幕スーパーや、激しく動くマスコットキャラクターなどが考えられ、これらはシステムとして、動画像のどの位置にあるかが事前に分かり得るものが多い。
シーンチェンジ検出部51は、映像内容更新頻度高領域マップを入力すると、その映像内容更新頻度高領域マップを参照して、画像内容の更新頻度が高いマクロブロックを認識し、そのマクロブロックにおけるシーンチェンジの判定処理(または、更新頻度が高いマクロブロックを含むスライスにおけるシーンチェンジの判定処理)を実施しない旨をQP決定部52に通知する。
なお、画像内容の更新頻度が高いマクロブロックを除くマクロブロックについては、上記実施の形態1〜3と同様にして、シーンチェンジの有無を判定する。
なお、画像内容の更新頻度が高いマクロブロックを除くマクロブロックについては、上記実施の形態1〜3と同様にして、シーンチェンジの有無を判定する。
QP決定部52は、シーンチェンジ検出部51によりシーンチェンジの有無が判定されたマクロブロック(または、シーンチェンジの有無が判定されたマクロブロックのみを含むスライス)の圧縮符号化に用いるQPについては、上記実施の形態1〜3と同様にして決定する。
QP決定部52は、シーンチェンジ検出部51からシーンチェンジの判定処理を実施しない旨の通知を受けたマクロブロック(または、シーンチェンジの判定処理を実施しない旨の通知を受けたマクロブロックを含むスライス)の圧縮符号化に用いるQPについては、そのマクロブロックでシーンチェンジが無いものとして、そのマクロブロックの圧縮符号化データの符号量が抑えられるQPを決定する。
即ち、QP決定部52は、更新頻度が高いマクロブロックの圧縮符号化に用いるQPを決定するに際して、図4又は図10のフローチャートにおける定数Th1,Th2を変数として、Th1,Th2を算出し、図4又は図10のフローチャートにおいて、その算出したTh1,Th2を用いることでQPを決定する。
即ち、QP決定部52は、更新頻度が高いマクロブロックの圧縮符号化に用いるQPを決定するに際して、図4又は図10のフローチャートにおける定数Th1,Th2を変数として、Th1,Th2を算出し、図4又は図10のフローチャートにおいて、その算出したTh1,Th2を用いることでQPを決定する。
QP決定部52は、以下のようにして、図4又は図10のフローチャートに適用するTh1,Th2を算出する。
・定数
ThMAX:例えば、1.0
ThMIN:例えば、0.7
F_MBs:1ピクチャに含まれている更新頻度が高いマクロブロックの個数
・マクロブロック数関連変数
R_MBs:未符号化の更新頻度が高いマクロブロックの個数
・QP更新のための閾値変数
Th1:QPを減少させるための閾値
Th2:QPを増加させるための閾値
Th:Th1,Th2を算出するための中間変数
Th1=Th−0.05
Th2=Th+0.05
・定数
ThMAX:例えば、1.0
ThMIN:例えば、0.7
F_MBs:1ピクチャに含まれている更新頻度が高いマクロブロックの個数
・マクロブロック数関連変数
R_MBs:未符号化の更新頻度が高いマクロブロックの個数
・QP更新のための閾値変数
Th1:QPを減少させるための閾値
Th2:QPを増加させるための閾値
Th:Th1,Th2を算出するための中間変数
Th1=Th−0.05
Th2=Th+0.05
このように,Th1,Th2を変数化して、図4又は図10のフローチャートを適用することにより、予め更新頻度の高いマクロブロックに符号量を多めに割り当てることを可能にして、事前に早い段階から画質の調整を図ることが可能となる。このため、目標符号量を守れる可能性を高めて、動画像の滑らかさも失われないようにすることを可能にしている。
よって、この実施の形態4によれば、上記実施の形態1〜3よりも更に細かな画質制御を行うことができる。
よって、この実施の形態4によれば、上記実施の形態1〜3よりも更に細かな画質制御を行うことができる。
1 画質制御部、2 スライスエンコード部(圧縮符号化手段)、3 画質制御部、4 スライスエンコード部(圧縮符号化手段)、11 目標符号量決定部(目標符号量決定手段)、12 シーンチェンジ検出部(シーンチェンジ判定手段)、13 QP決定部(量子化パラメータ更新手段)、21 スライスヘッダエンコード部、22 マクロブロックエンコード部、31 目標符号量決定部(目標符号量決定手段)、32 シーンチェンジ検出部(シーンチェンジ判定手段)、33 QP決定部(量子化パラメータ更新手段)、41 スライスヘッダエンコード部、42 マクロブロックエンコード部、51 シーンチェンジ検出部(シーンチェンジ判定手段)、52 QP決定部(量子化パラメータ更新手段)。
Claims (7)
- 動画像信号における各ピクチャを複数のスライスに分割して、上記スライスに含まれている単位領域毎に量子化パラメータを用いて圧縮符号化し、上記スライスの圧縮符号化結果を示す圧縮符号化データを出力する圧縮符号化手段と、目標のビットレートからピクチャの目標符号量を決定する目標符号量決定手段と、上記圧縮符号化手段によるスライス単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、上記量子化パラメータと同じ量子化パラメータを用いて、上記スライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、上記推定の符号量と上記目標符号量決定手段により決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定手段と、上記シーンチェンジ判定手段によりシーンチェンジが無い旨の判定がなされた場合、上記シーンチェンジ判定手段により推定された符号量と上記目標符号量決定手段により決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、上記シーンチェンジ判定手段によりシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新する量子化パラメータ更新手段とを備えた動画像符号化装置。
- 動画像信号における各ピクチャを複数の単位領域に分割して、上記単位領域毎に量子化パラメータを用いて圧縮符号化し、上記単位領域の圧縮符号化結果を示す圧縮符号化データを出力する圧縮符号化手段と、目標のビットレートからピクチャの目標符号量を決定する目標符号量決定手段と、上記圧縮符号化手段による単位領域単位の圧縮符号化が完了する毎に、今回圧縮符号化が行われた単位領域の圧縮符号化データの符号量から、上記量子化パラメータと同じ量子化パラメータを用いて、上記単位領域以降の単位領域の圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、上記推定の符号量と上記目標符号量決定手段により決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定手段と、上記シーンチェンジ判定手段によりシーンチェンジが無い旨の判定がなされた場合、上記シーンチェンジ判定手段により推定された符号量と上記目標符号量決定手段により決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、上記シーンチェンジ判定手段によりシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新する量子化パラメータ更新手段とを備えた動画像符号化装置。
- シーンチェンジ判定手段は、目標符号量決定手段により決定された目標符号量を定数倍して、推定の符号量が定数倍後の目標符号量より大きければ、シーンチェンジが有ると判定し、推定の符号量が定数倍後の目標符号量より大きくなければ、シーンチェンジが無いと判定することを特徴とする請求項1または請求項2記載の動画像符号化装置。
- シーンチェンジ判定手段は、目標符号量決定手段により決定された目標符号量を定数倍して、推定の符号量が定数倍後の目標符号量より大きければ、シーンチェンジが有ると判定し、推定の符号量が定数倍後の目標符号量より大きくなければ、シーンチェンジが無いと判定するものであって、
圧縮符号化手段による圧縮符号化済みの単位領域の個数が増えて、未だ圧縮符号化が行われていない単位領域の個数が減ってくると、上記定数倍の値を小さくすることを特徴とする請求項1または請求項2記載の動画像符号化装置。 - シーンチェンジ判定手段は、画像内容の更新頻度が高い単位領域を示す更新高頻度領域情報を入力して、更新頻度が高い単位領域を認識し、上記単位領域におけるシーンチェンジの判定処理を実施しない旨を量子化パラメータ更新手段に通知し、
上記量子化パラメータ更新手段は、上記シーンチェンジ判定手段からシーンチェンジの判定処理を実施しない旨の通知を受けると、上記単位領域の圧縮符号化データの符号量が抑えられる量子化パラメータを圧縮符号化手段に出力することを特徴とする請求項1または請求項2記載の動画像符号化装置。 - 圧縮符号化手段が動画像信号における各ピクチャを複数のスライスに分割して、上記スライスに含まれている単位領域毎に量子化パラメータを用いて圧縮符号化し、上記スライスの圧縮符号化結果を示す圧縮符号化データを出力する圧縮符号化処理ステップと、目標符号量決定手段が目標のビットレートからピクチャの目標符号量を決定する目標符号量決定処理ステップと、上記圧縮符号化処理ステップによるスライス単位の圧縮符号化が完了する毎に、シーンチェンジ判定手段が、今回圧縮符号化が行われたスライスに含まれている単位領域の個数及び上記スライスの圧縮符号化データの符号量から、上記量子化パラメータと同じ量子化パラメータを用いて、上記スライス以降のスライスの圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、上記推定の符号量と上記目標符号量決定処理ステップで決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定処理ステップと、量子化パラメータ更新手段が上記シーンチェンジ判定処理ステップでシーンチェンジが無い旨の判定がなされた場合、上記シーンチェンジ判定処理ステップで推定された符号量と上記目標符号量決定処理ステップで決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、上記シーンチェンジ判定処理ステップでシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新する量子化パラメータ更新処理ステップとを備えた動画像符号化方法。
- 圧縮符号化手段が動画像信号における各ピクチャを複数の単位領域に分割して、上記単位領域毎に量子化パラメータを用いて圧縮符号化し、上記単位領域の圧縮符号化結果を示す圧縮符号化データを出力する圧縮符号化処理ステップと、目標符号量決定手段が目標のビットレートからピクチャの目標符号量を決定する目標符号量決定処理ステップと、上記圧縮符号化処理ステップによる単位領域単位の圧縮符号化が完了する毎に、シーンチェンジ判定手段が、今回圧縮符号化が行われた単位領域の圧縮符号化データの符号量から、上記量子化パラメータと同じ量子化パラメータを用いて、上記単位領域以降の単位領域の圧縮符号化が行われた場合の当該ピクチャの圧縮符号化データの符号量を推定し、上記推定の符号量と上記目標符号量決定処理ステップで決定された目標符号量から、シーンチェンジの有無を判定するシーンチェンジ判定処理ステップと、量子化パラメータ更新手段が上記シーンチェンジ判定処理ステップでシーンチェンジが無い旨の判定がなされた場合、上記シーンチェンジ判定処理ステップで推定された符号量と上記目標符号量決定処理ステップで決定された目標符号量の大小関係に応じて上記量子化パラメータを更新し、上記シーンチェンジ判定処理ステップでシーンチェンジが有る旨の判定がなされた場合、上記量子化パラメータを動画像の画質を最低保証の画質まで落とすパラメータに更新する量子化パラメータ更新処理ステップとを備えた動画像符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009209378A JP2011061534A (ja) | 2009-09-10 | 2009-09-10 | 動画像符号化装置及び動画像符号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009209378A JP2011061534A (ja) | 2009-09-10 | 2009-09-10 | 動画像符号化装置及び動画像符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011061534A true JP2011061534A (ja) | 2011-03-24 |
Family
ID=43948661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009209378A Pending JP2011061534A (ja) | 2009-09-10 | 2009-09-10 | 動画像符号化装置及び動画像符号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011061534A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413427A (zh) * | 2017-08-17 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 一种视频帧编码方法及终端 |
US11012698B2 (en) | 2018-02-13 | 2021-05-18 | Canon Kabushiki Kaisha | Image encoding apparatus and method for controlling the same |
-
2009
- 2009-09-10 JP JP2009209378A patent/JP2011061534A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413427A (zh) * | 2017-08-17 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 一种视频帧编码方法及终端 |
KR20190122830A (ko) * | 2017-08-17 | 2019-10-30 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 비디오 프레임 코딩 방법, 단말기 및 저장 매체 |
EP3606050A4 (en) * | 2017-08-17 | 2020-05-20 | Tencent Technology (Shenzhen) Company Limited | VIDEO SINGLE IMAGE CODING METHOD, TERMINAL AND STORAGE MEDIUM |
JP2020518174A (ja) * | 2017-08-17 | 2020-06-18 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | ビデオフレーム符号化方法、端末、および記憶媒体 |
KR102198020B1 (ko) * | 2017-08-17 | 2021-01-05 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 비디오 프레임 코딩 방법, 단말기 및 저장 매체 |
US11089305B2 (en) | 2017-08-17 | 2021-08-10 | Tencent Technology (Shenzhen) Company Limited | Video frame coding method during scene change, terminal and storage medium |
JP7012747B2 (ja) | 2017-08-17 | 2022-01-28 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | ビデオフレーム符号化方法、端末、および記憶媒体 |
US11012698B2 (en) | 2018-02-13 | 2021-05-18 | Canon Kabushiki Kaisha | Image encoding apparatus and method for controlling the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9426475B2 (en) | Scene change detection using sum of variance and estimated picture encoding cost | |
US9565440B2 (en) | Quantization parameter adjustment based on sum of variance and estimated picture encoding cost | |
JP4901772B2 (ja) | 動画像符号化方法及び動画像符号化装置 | |
JP3748717B2 (ja) | 動画像符号化装置 | |
JPH08181992A (ja) | 動画像符号化装置および領域抽出装置 | |
US7936824B2 (en) | Method for coding and decoding moving picture | |
JP5133290B2 (ja) | 動画像符号化装置および復号装置 | |
US7430329B1 (en) | Human visual system (HVS)-based pre-filtering of video data | |
KR20000023276A (ko) | 프레임 레벨 속도 제어 방법 | |
JP2003199102A (ja) | 映像符号化装置 | |
JP2007281949A (ja) | 画像符号化装置、画像符号化復号システム、画像符号化方法、および画像符号化復号方法 | |
JP4485996B2 (ja) | 画像符号化装置及び画像符号化プログラム | |
JP2004241869A (ja) | 透かし埋め込み及び画像圧縮部 | |
JP2011061534A (ja) | 動画像符号化装置及び動画像符号化方法 | |
JP4736619B2 (ja) | 画像処理装置および画像処理方法 | |
KR101490686B1 (ko) | 비디오 인코딩 장치 및 방법 | |
JP3889013B2 (ja) | 動画像符号化装置及び動画像符号化方法 | |
JP5295089B2 (ja) | 画像符号化装置 | |
JP4224662B2 (ja) | 画像符号化装置および方法、画像復号装置および方法、ならびに画像処理装置 | |
JP4942208B2 (ja) | 符号化装置 | |
JP2005341601A (ja) | 動画像符号化装置 | |
WO2019167546A1 (ja) | 映像符号化装置及び映像符号化方法 | |
JP2009246489A (ja) | 映像信号切替装置 | |
JPH09200769A (ja) | 動き補償フレーム間符号化方式 | |
JP4325536B2 (ja) | 動画像符号化装置及び方法 |