JP2007318617A - 画像符号化装置、及び画像符号化プログラム - Google Patents
画像符号化装置、及び画像符号化プログラム Download PDFInfo
- Publication number
- JP2007318617A JP2007318617A JP2006148030A JP2006148030A JP2007318617A JP 2007318617 A JP2007318617 A JP 2007318617A JP 2006148030 A JP2006148030 A JP 2006148030A JP 2006148030 A JP2006148030 A JP 2006148030A JP 2007318617 A JP2007318617 A JP 2007318617A
- Authority
- JP
- Japan
- Prior art keywords
- picture
- encoded
- code amount
- image
- image 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
【課題】量子化ステップ決定する量子化制御において、画質を実質的保持しつつ、符号化ピクチャ以降の原画像データを先読みすることなく符号化する。
【解決手段】画像符号化装置は、符号化するピクチャがI、P、Bピクチャのいずれであるかを検出するピクチャ判定部とそのピクチャ判定部にてピクチャがIピクチャと判定された場合には、過去に符号化されたIピクチャの発生符号量に基づいて目標符号量を決定し、PまたはBピクチャと判定された場合には、符号化済みピクチャの予測誤差情報から、符号化ピクチャの目標符号量を決定する目標符号量決定部を備える。そして、画面内ブロックの絵柄の複雑さを検出するアクティビティ演算部を備え、上記決定された目標符号量とアクティビティ情報からピクチャ内の量子化パラメータを決定する量子化制御部を備える。
【選択図】図2
【解決手段】画像符号化装置は、符号化するピクチャがI、P、Bピクチャのいずれであるかを検出するピクチャ判定部とそのピクチャ判定部にてピクチャがIピクチャと判定された場合には、過去に符号化されたIピクチャの発生符号量に基づいて目標符号量を決定し、PまたはBピクチャと判定された場合には、符号化済みピクチャの予測誤差情報から、符号化ピクチャの目標符号量を決定する目標符号量決定部を備える。そして、画面内ブロックの絵柄の複雑さを検出するアクティビティ演算部を備え、上記決定された目標符号量とアクティビティ情報からピクチャ内の量子化パラメータを決定する量子化制御部を備える。
【選択図】図2
Description
本発明は、画像データを効率的に符号化するための画像符号化装置、及び画像符号化プログラムに関する。
従来、画像データを効率的に符号化するための画像符号化の技術としては、MPEG(Moving Picture Experts Group)に代表される符号化方式がある。図1に一般的なMPEG規格における画像符号化装置の構成を示す。
図1に示す量子化制御部では、符号化されたデータを所定のデータ量で伝送するため、各ピクチャに対する割り当てデータ量(目標符号量)を制御する。例えば、MPEG符号化方式では、性質の異なる3種類のピクチャ(I、P、Bピクチャ)が存在するため、各ピクチャの種類によって目標符号量を決定する。即ちIまたはPピクチャをPまたはBピクチャの参照ピクチャとして用いる場合は、I、Pピクチャの目標符号量をBピクチャよりも多く割り当てる。
上記のような量子化制御方式としては、例えば特許文献1のように、符号化ピクチャの量子化パラメータを決定する際に、符号化ピクチャを含めた1GOP分の原画像データを先読みして、イントラ予測処理とインター予測誤処理を実施し、イントラ予測処理とインター予測誤処理によって得られる予測誤差の大きさに応じて各ピクチャへ符号量を割り当てる量子化制御方式が知られている。また、非特許文献2のように、符号化ピクチャの予測誤差情報と発生符号量の相関関係に着目し、符号化ピクチャの目標符号量を決定する量子化制御方式が知られている。
以下、MPEG-2規格にて用いられているMPEG-2 Test Model 5方式を例に量子化制御部での動作を簡単に説明する。なお、詳細な動作説明は、後述する。
MPEG-2 Test Model 5では、各ピクチャへの符号量割り当てを行うステップ1、仮想バッファを用いて、ピクチャ内の各ブロックへの量子化パラメータを決定するステップ2、ピクチャ内の視覚特性を考慮して各ブロックの量子化パラメータに重み付けを行うステップ3の3ステップの処理が行われている(非特許文献1参照)。
ところで、上記MPEG-2 Test Model 5方式では、上記ステップ2の処理とステップ3の処理が相反して動作する場合がある。例えばステップ2において、符号化マクロブロックの符号量が多く発生した場合には、次に符号化するマクロブロックにおいて発生符号量を抑えようと量子化ステップが大きくなる方向に働く。そのとき、次に符号化するマクロブロックのアクティビティが小さい場合には、量子化ステップが小さくなる方向に働き、ステップ2とステップ3の制御が相殺されてしまうといった問題があった。
また、特許文献1の方式では、符号化ピクチャを含めて1GOP分の画像データを先読みして、イントラ予測またはインター予測誤処理を実施する必要があるため、処理時間が大幅にかかる。特に、HD(High Definition:高品位)画像などのサイズの大きい動画像データを符号化する際には、実時間で符号化処理を行うことが困難であるといった問題があった。
また、非特許文献2の方式においても、符号化ピクチャの画像データを先読みして、符号化ピクチャ内の全マクロブロックの予測誤差を算出した後に、符号化ピクチャの目標符号量を決定するため、マクロブロックごとに符号化処理を行うパイプライン処理には不適であるといった問題があった。
従って、本発明の目的は、かかる問題を解消し、画質を実質的に保持しながら、符号化ピクチャ以降の原画像データを先読みすることなく量子化制御を実施することを可能とした画像符号化装置および符号化方法を提供することである。
上記課題を解決するために、本発明の画像符号化装置は、符号化するピクチャがI、P、Bピクチャのいずれであるかを検出するピクチャ判定部とそのピクチャ判定部にてピクチャがIピクチャと判定された場合には、過去に符号化されたIピクチャの発生符号量に基づいて目標符号量を決定し、PまたはBピクチャと判定された場合には、符号化済みピクチャの予測誤差情報から、符号化ピクチャの目標符号量を決定する目標符号量決定部を備える。そして、画面内ブロックの絵柄の複雑さを検出するアクティビティ演算部を備え、上記決定された目標符号量とアクティビティ情報からピクチャ内の量子化パラメータを決定する量子化制御部を備える。
本発明の画像符号化方法は、シーンチェンジなどの符号化ピクチャと符号化済みピクチャとの相関が低い場合には、符号化済みピクチャの予測誤差情報と符号化ピクチャの発生符号量を推定する関係式を補正するように制御することが好ましい。
本発明によれば、MPEG規格をはじめとする動画像符号化方式における量子化ステップ決定する量子化制御において、画質を実質的保持しつつ、符号化ピクチャ以降の原画像データを先読みすることなくて符号化することが可能となる。
図1に一般的なMPEG規格における画像符号化装置の構成を示す。同図において、101は入力された画像を記憶する原画像メモリである。102は、原画像データと過去に符号化されたデータから生成された予測画像データの差分を取る加算器である。103は加算器102で演算された差分データを周波数領域に変換する直交変換処理部であり、104は、103で直交変換されたデータを量子化する量子化部である。
また、105は、104で量子化されたデータを符号化する符号化部である。106は、105で符号化されたデータを伝送するために、蓄積されるバッファであり、107は104で量子化されたデータを逆量子化する逆量子化部である。108は107で逆量子化されたデータを逆変換する逆直交変換部である。109は、108にて逆直交変換されたデータに、フレームメモリに格納されている過去のピクチャデータを加算する加算器である。
また、110は、加算器109で演算された後の復号画像データを記憶するフレームメモリであり、111は、原画像データと復号画像データの近似している部分を検出し、その動き検出によって生成された動きベクトルに基づき、フレームメモリから原画像データに最も近い復号画像データを読み出して予測画像を生成する動き検出・動き補償部である。113は、原画像をある領域にブロック分割し、そのブロックの特徴量を決定するアクティビティ演算を行うアクティビティ演算部である。112は、量子化ステップを制御し、目標符号量および符号化画質の品質を決定する量子化制御部である。114は符号化ブロックの周囲の画素から予測画像を生成するイントラ予測部である。
次に、MPEG-2 Test Model 5における各ステップの処理を説明する。
ステップ1では、まず、符号化ピクチャの発生符号量と画面の複雑さを示すパラメータXi、Xp、Xbを次式により求める。
ここで、Si、Sp、Sbはそれぞれ、I、P、Bピクチャ符号化時の発生符号量、Qi、Qp、QbはそれぞれI、P、Bピクチャの量子化パラメータの平均値である。また、パラメータXi、Xp、Xbの初期値は、次式で示される値が用いられる。
ここで、bit_rateは目標ビットレートである。
次に、Iピクチャの量子化パラメータとP、Bピクチャの各量子化パラメータとの比率Kp、Kbを決定し、各ピクチャの目標符号量を決定する。Kp、Kbの値はそれぞれ次式に示す値が用いられる。
GOP(Group of Picture)内の各I、P、Bピクチャに対する目標符号量をTi、Tp、Tbとすると、それぞれ次式で表される。
ここで、Np、NbはGOP内でまだ符号化されていないP、Bピクチャの枚数であり、frame_rateはフレームレートである。また、Rは、GOP内に対して割り当てられる符号量であり、次式で更新される。
また、GOP内の最初のピクチャを符号化する際には、次式が用いられる。
NはGOP内のピクチャ数である。またシーケンスの最初でのRの初期値は0である。
ステップ2では、上記ステップ1で求められた各ピクチャに対する目標符号量と発生符号量とを一致させるため、ピクチャタイプごとに独立に設定した3種類の仮想バッファ容量に基づき、マクロブロック(MB: ピクチャ内を16×16画素単位で分割したブロック)ごとの量子化パラメータを決定する。I、P、Bピクチャの仮想バッファ占有量は、次式により求められる。
ここで、Bjはピクチャ先頭からj番目のマクロブロックまでの発生符号量、 はピクチャ内のマクロブロック数である。j番目のマクロブロックの量子化パラメータを次式により計算する。
ここで、rはフィードバックの応答速度を制御するパラメータであり次式で与えられる。
なお、仮想バッファ占有量の初期値は、次式で与えられる。
ステップ3では、平坦部では歪が目立ちやすく、絵柄の複雑な部分では目立ちにくいという人間の視覚特性を利用し、その判別のために、アクティビティと呼ばれる分散値を用いる。そして、アクティビティに基づいて量子化ステップを変更している。具体的な処理としては、マクロブロックを4分割し、8×8画素ブロック単位で輝度信号の分散値を計算する。分散値は、数式11の計算式で求める。ここで、変数nはマクロブロック内の8×8ブロックの位置であり、左上の8×8ブロックを1右上の8×8ブロックを2、左下の8×8ブロックを3、右下の8×8ブロックを4とする。また、Pn(x,y)は、ピクチャ内の(x,y)位置の輝度信号を示している。
アクティビティは、数式12に示す式で算出する。
ここで、最小値をとるのは、マクロブロック内の一部だけでも平坦部のある場合には量子化を細かくするためである。さらに量子化ステップの重み付け係数Nactを、下記の式で算出する。
ここで、avg_actは、直前に符号化したピクチャのアクティビティの平均値である。
続いて、ステップ2で算出された量子化パラメータQPjに重み付け係数Nact を乗算符号化ブロックの量子化パラメータQPを算出する。
続いて、ステップ2で算出された量子化パラメータQPjに重み付け係数Nact を乗算符号化ブロックの量子化パラメータQPを算出する。
このような方法により、視覚的劣化の目立ちにくい絵柄の複雑な部分では、荒く量子化を行い、また視覚的劣化の目立ちやすい平坦な領域においては細かく量子化して、発生符号量を制御する。
以下に、図を用いて、本発明の実施例を詳細に述べる。
<実施例1>
図2は、本発明による画像符号化装置の一実施例の構成を示すブロック構成図である。同図に示すように、本画像符号化装置は、従来の画像符号化装置のように、原画像メモリ101、加算器102、直交変換部103、量子化部104、符号化部105、バッファ106、逆量子化部107、逆直交変換部108、フレームメモリ110、動き検出・動き補償部111、量子化制御部112、アクティビティ演算部113、イントラ予測部114、シーンチェンジ検出部201、ピクチャタイプ判定部202、予測誤差情報算出部203、目標符号量決定部204から構成される。
<実施例1>
図2は、本発明による画像符号化装置の一実施例の構成を示すブロック構成図である。同図に示すように、本画像符号化装置は、従来の画像符号化装置のように、原画像メモリ101、加算器102、直交変換部103、量子化部104、符号化部105、バッファ106、逆量子化部107、逆直交変換部108、フレームメモリ110、動き検出・動き補償部111、量子化制御部112、アクティビティ演算部113、イントラ予測部114、シーンチェンジ検出部201、ピクチャタイプ判定部202、予測誤差情報算出部203、目標符号量決定部204から構成される。
上記構成において、シーンチェンジを検出するシーンチェンジ検出部201、符号化ピクチャの種類を判定するピクチャタイプ判定部202、イントラ予測または、インター予測処理によって選択された予測モードに基づいて生成された予測画像と原画像の差分平均値を更新する予測誤差情報更新部203、ピクチャごとの目標符号量を決定する目標符号量決定部204を除いては、従来知られている画像符号化装置と実質的に同じである。そこで、従来知られている処理部においては、図1と同じ番号を付し、説明を省略する。
以下、図3、図4、図5、図6を参照して本発明の主要部であるシーンチェンジ検出部201、ピクチャ判定部202、予測誤差情報算出部203、目標符号量決定部204における処理を中心に本実施例を説明する。図3は、本実施例における符号化処理の流れを示すフローチャート図である。
まず、ステップS301にて、符号化ピクチャと符号化ピクチャの直前に符号化されたピクチャとの相関をチェックし、シーンチェンジが起こったかどうかを判定する。シーンチェンジの判定においては、例えば符号化ピクチャと符号化ピクチャの直前に符号化されたピクチャとの輝度差分値を算出し、この輝度差分値がある閾値よりも大きい場合は、シーンチェンジが起こったものと判定する。ステップS301にてシーンチェンジが検出されなかった場合には、符号化ピクチャの目標符号量決定するステップS302に移る。以下、符号化ピクチャの目標符号量を決定する方法について説明する。
動画像符号化では、予測誤差が大きくなると予測誤差を符号化するのに必要な情報量が増加するため、発生符号量が増える。また、量子化ステップ幅が小さいほど、細かく量子化されることになり発生符号量が増える。以下、この量子化幅を決定するパラメータを量子化パラメータQPと呼ぶことにする。一例として、量子化パラメータQP1、QP2、QP3の関係が、QP1<QP2<QP3となっているとき、予測誤差と発生符号量の関係は図4のように近似できる。
このような画像符号化処理の特性に基づき、符号化ピクチャの前に符号化されたピクチャの予測誤差と発生符号量の関係を、予め統計的に求め、次式のように定式化しておく。
ここで、Tは予測される符号化ピクチャの発生符号量、SADは過去に符号化されたピクチャ予測誤差平均値、a、bは量子化パラメータによって決まる変数である。各量子化パラメータに対応する変数a、bは、図15に示すような対応表を作成し、目標符号量決定部内のメモリに記憶しておく。なお、数式15は1次式で表したが、2次式以上の多項式で表しても良い。その際、係数は次数に比例して増えることになる。そして、数式15を用いて算出される値をピクチャごとの目標符号量とする。
ここで、予測誤差情報を用いる過去の符号化ピクチャと符号化ピクチャが異なるピクチャタイプの場合、過去に符号化されたピクチャの予測誤差平均値と符号化ピクチャにおいて発生する符号量との相関が低くなるため、数式15を用いて目標符号量を決定することが難しくなる場合がある。そこで、例えば、図5に示すように、符号化ピクチャがIピクチャ(I1)であるとき、目標符号量をTiとすると、既に符号化済みのIピクチャ(I0)の発生符号量とQPの平均値を乗算した値Xiから目標符号量Tiを次式のように求める。
ここで、ave(QP)は、符号化するIピクチャ(I1)の直前に符号化されたピクチャ(P1)の量子化パラメータの平均値である。また、aはIピクチャの発生符号量を補正する重み付け係数である。
一方、符号化ピクチャがPピクチャ(P2)のとき、Pピクチャ(P2)符号化前に符号化されたピクチャがIピクチャ(I1)であるため、この場合は、Iピクチャ(I1)符号化前に符号化されたピクチャ(P1)の予測誤差平均値を用いて、数式15により目標符号量を決定する。同様に符号化するピクチャがBピクチャ(B2)のときは、Bピクチャ(B2)符号化前に符号化されたBピクチャ(B1)の予測誤差平均値を用いて、数式15により目標符号量を決定する。上記目標符号量は、次GOP全体の目標符号量決定に用いることもできる。例えば、過去に符号化されたピクチャの目標符号量をピクチャタイプ毎にメモリに格納しておく。そして、次GOP内のピクチャタイプの構成(I,B,B,P,B,B,P・・・)により、各ピクチャの枚数を計算し、上記目標符号量を加算することで、次GOP全体の目標符号量を決定することができる。
なお、上記予測誤差は、H.264符号化方式のように複数の予測モードが使用されている場合、イントラ予測またはインター予測処理によって選択された予測モードの中で、最も符号化効率が良くなる予測モードで生成された予測画像と原画像の差分絶対値和を用いる。なお、予測誤差は前記差分絶対値和に重み付けを行った値を用いても良い。また、上記、予測誤差は予測画像と原画像の差分絶対値和に代えて例えば予測誤差の二乗和を適用する場合等、必要に応じて種々のパラメータを広く適用することができる。また上記予測誤差平均値は、ピクチャ内の全マクロブロックの予測誤差平均ではなく、1マクロブロック置きに算出した予測誤差の平均値を用いても良い。また、上記予測誤差平均値は、イントラ予測画像を生成する際に用いるイントラ予測画像の予測誤差平均値とインター予測処理によって生成される予測誤差平均値をそれぞれ求め、状況に応じて切り替えても良い。
上記の方法により、符号化ピクチャの目標符号量を決定した後、次に、アクティビティ演算部113にて符号化マクロブロックのアクティビティを算出する(S303)。アクティビティの算出方法としては、例えば、数式11、12を用いて求める。なお、アクティビティは輝度値の分散値ではなく、輝度値の絶対差分和を用いても良い。
次に、ステップS302にて決定された目標符号量とステップS303にて算出されたアクティビティ情報に基づき、マクロブロックごとの量子化パラメータを決定する(S304)。マクロブロックごとの量子化パラメータの決定では、まず、ステップ302にて決定された目標符号量から、符号化ピクチャの量子化パラメータの基準値QPinitを求める。この量子化パラメータの基準値Qpinitの算出方法を述べる。
まず、図6に示すようにステップS302にて決定された目標符号量(BIT)と、符号化ピクチャを符号化前に符号化されたピクチャの予測誤差平均値(AVG_SAD)との交点Tを求める。次に、量子化パラメータとa、bの関係を記憶した対応表から、数式15示される直線を求め、交点Tをはさむ2直線に対応する量子化パラメータQP1、QP2を探索する。この量子化パラメータQP1とQP2をTの位置で内分した値を、量子化パラメータ基準値QPinitの値とする。ここで、図6に示す変数Dは、量子化パラメータと係数a、bの対応付けを行う対応表における記憶する量子化パラメータの間隔であり、記憶する量子化パラメータの値が5の場合はD=5となる。このように量子化パラメータ基準値Qpinitを決定した後、ステップS303にて算出されたアクティビティ情報に基づき、マクロブロックごとの量子化パラメータを決定する。具体的には、数式13および数式14により、量子化パラメータの重み付け係数Nactを算出し、量子化パラメータ基準値Qpinitに対してNactの重み付けをおこない、符号化マクロブロックの量子化パラメータを決定する。
次に、ステップS304にて符号化マクロブロックの量子化パラメータが決定した後、その量子化パラメータを用いて、従来の符号化装置と同様に、イントラ予測部114にてイントラ予測処理を、動き検出・動き補償部111にてインター予測処理を行い、予測誤差を直交変換部103にて直交変換、量子化部104にて量子化、符号化部105にて符号化を行うといった一連の符号化処理を行う(S305)。
次に、予測誤差情報更新部203にてピクチャの先頭マクロブロックから符号化マクロブロックまでの予測誤差の平均値を算出する(S306)。S303〜S306の処理をピクチャ内の全てのマクロブロックが終了するまで繰り返す。そして、ピクチャ内の全てのマクロブロックにおいて上記処理が終了した後、ステップS301に戻る。
次に、ステップ301にてシーンチェンジが検出された場合について説明する。シーンチェンジが検出された場合には、符号化ピクチャと過去の符号化ピクチャとの相関が低くなることが予想される。そのため、符号化ピクチャがPまたはBピクチャの場合には、イントラ予測モードが多く選択されることになる。そこで、このような場合には、数式16を用いて目標符号量を決定することにする。そして、シーンチェンジ後の符号化ピクチャにて目標符号量と実際の発生符号量との差が閾値THを超えたピクチャが続く場合には、図15に示す係数a、bの値を目標符号量と実際の発生符号量との差が小さくなるように変更して、数式15の関係式を補正する(S309)。S301〜S309の処理をピクチャ内の全てのマクロブロックが終了するまで繰り返す。
本実施例では、符号化ピクチャの過去に符号化されたピクチャの予測誤差平均値を使用しているため、符号化ピクチャの画像データを先読みせずに、目標符号量と量子化パラメータを決定することができる。また、各ピクチャの目標符号量を決定した後に、アクティビティの大きさに応じたマクロブロックごとの量子化パラメータ決定処理に移るため、MPEG-2 Test Model 5方式のように、ステップ2とステップ3の制御が相殺されるということは起こらない。
<実施例2>
本実施例では、ピクチャごとに発生する符号量の上限値と下限値を設定することにより、バッファ破綻を回避して安定して符号化することが可能な画像符号化装置について述べる。本実施例の画像符号化装置は図2と同様の構成である。
<実施例2>
本実施例では、ピクチャごとに発生する符号量の上限値と下限値を設定することにより、バッファ破綻を回避して安定して符号化することが可能な画像符号化装置について述べる。本実施例の画像符号化装置は図2と同様の構成である。
量子化制御処理では、デコーダのバッファ状態を仮想的にモデル化したものを破綻(オーバーフローまたはアンダーフロー)しないように符号化データを生成する必要がある。図7にバッファの概念図を示す。横軸は経過時間、縦軸はバッファ占有量であり、この仮想バッファを破綻しないように量子化パラメータを決定する必要がある。
図8は、本実施例における符号化処理の流れを示すフローチャート図である。まずステップS801にて、符号化直前のバッファ占有量の状況を確認する。一般にバッファ占有量は、情報量の多いIフレームにおいてバッファレベルが下がり、その後のPまたはBフレームにおいてバッファレベルを回復するように制御することが望ましい。そこで、例えば図7に示すようにバッファ占有量がオーバーフローリミット(Overflow Limit)とアンダーフローリミット(Underflow Limit)の間で推移するように量子化パラメータを決定する。
次にステップS802、S804にて符号化ピクチャの目標符号量と許容する発生符号量の上限値、下限値を決定する。以下、目標符号量および許容する発生符号量の上限値、下限値の決定方法について述べる。
Iピクチャ符号化時には、Iピクチャ符号化後のバッファ残量が、最小バッファレベルをなるべく下回らないように、目標符号量と許容する発生符号量の上限値と下限値を決定する。
Iピクチャ符号化時には、Iピクチャ符号化後のバッファ残量が、最小バッファレベルをなるべく下回らないように、目標符号量と許容する発生符号量の上限値と下限値を決定する。
図9にIピクチャの目標符号量、許容する発生符号量の上限値と下限値の決定方法を示す。Bは、Iピクチャの符号化直前のバッファ占有量である。Iピクチャでの目標符号量Tiは、実施例1と同様に過去に符号化されたIピクチャの発生符号量とQPの平均値を乗算した値Xiから数式16を用いて算出する。次に、ステップS801にて確認したバッファ占有量が最小バッファレベル(MinLevel)付近に位置する場合には、以下のように目標符号量を決定する。まず、B-Tiが最小バッファレベル(MinLevel)を下回らない場合(図9中(a))には、目標符号量Tiは変更せずに、許容する発生符号量の上限値をa×Ti、許容する発生符号量の下限値をb×Tiとする。ここで、係数a、bはa>1、0<b<1の値をとる。一方、B-Tiが最小バッファレベルを下回る場合(図9中(b))は、B-MinLevelを許容する発生符号量の上限値とし、c×(B-MinLevel)を目標符号量、d×(B-MinLevel)を許容する発生符号量の下限値とする。ここで、係数c、dは、1>c>d>0である。
次にP、Bピクチャ符号化時の目標符号量および、許容する発生符号量の上限値、下限値の決定法について説明する。
P、Bピクチャ符号化時には、P、Bピクチャの発生符号量が、アンダーフローリミットを下回らないようにP、Bピクチャの目標符号量および許容する発生符号量の上限値、許容する発生符号量の下限値を決定する。
P、Bピクチャ符号化時には、P、Bピクチャの発生符号量が、アンダーフローリミットを下回らないようにP、Bピクチャの目標符号量および許容する発生符号量の上限値、許容する発生符号量の下限値を決定する。
図10にP、Bピクチャの目標符号量、許容する発生符号量の上限値、許容する発生符号量の下限値の決定方法を示す。Bは、P、Bピクチャの符号化直前のバッファ占有量である。P、Bピクチャでは、符号化ピクチャを符号化する前に符号化されたピクチャの予測誤差平均値と符号化ピクチャの発生符号量の相関が高いため、数式15を用いて算出された値を目標符号量Tとする。
次に、ステップS801にて確認したバッファ占有量がアンダーフローリミット境界付近に位置する場合には、以下のように目標符号量を決定する。まず、B-Tがバッファのアンダーフローリミット(UFL)を下回らない場合(図10中(a))には、目標Tは変更せずに、許容する発生符号量の上限値をa×T、許容する発生符号量の下限値をb×Tとする。ここで、係数a、bはa>1、0<b<1の値をとる。一方、B-Tがバッファのアンダーフローリミット(UFL)を下回る場合(図10中(b))には、(B-UFL)を許容する発生符号量の上限値とし、c×(B-UFL)を目標符号量、d×(B-UFL)を許容する発生符号量の下限値とする。ここで、係数c、dは、1>c>d>0の値をとる。
次に、ステップS801にて確認したバッファ占有量Bが、オーバーフローリミット付近に位置する場合の処理について説明する。図11にオーバーフローリミット付近での各ピクチャの目標符号量および許容する発生符号量の上限値、下限値の決定方法を示す。各ピクチャの目標符号量Tは、数式15または数式16を用いて算出された値を用いる。そして、B-Tがオーバーフローリミット(OFL)を上回らない場合は、目標符号量Tは変更せずに、許容する発生符号量の上限値をa×T、許容する発生符号量の下限値をb×T (図11中(a))。ここで、係数a、bはa>1、0<b<1である。一方、B-Tがオーバーフローリミット(OFL)を上回る場合(図11中(b))は、B-OFLを許容する発生符号量の下限値とし、e×(B-UFL)を目標符号量、f×(B-UFL)を許容する発生符号量の上限値とする。ここで、係数e、fは、1<e<fである。
上述した方法により、符号化ピクチャの目標符号量および許容する符号量の上限値、下限値を決定した後、目標符号量から符号化ピクチャの量子化パラメータの基準値を決定し(S803)、許容する発生符号量の上限値、下限値から符号化ピクチャの量子化パラメータの最小値、最大値をそれぞれ決定する(S805)。符号化ピクチャの量子化パラメータの基準値、最大値、最小値を決定方法は、実施例1で述べた目標符号量から基準値QPinitを求める方法と同様の処理により求めることができる。
以上のようにして決定されたピクチャ内の量子化パラメータの基準値、最大値、最小値に基づき、マクロブロックごとの量子化パラメータを決定する。(S806)
マクロブロックごとの量子化パラメータの決定では、実施例1と同様に量子化パラメータの基準値QPinitに対して、アクティビティの大きさに応じて重み付けを行い、マクロブロックごとのQPを決定する。即ち、数式11〜数式14の処理を適用してマクロブロックごとの量子化パラメータを算出する。このとき、算出されたマクロブロックの量子化パラメータQPがステップS805によって求められたピクチャ内の量子化パラメータの最大値QPmaxを超える場合は、QP=QPmaxとし、ピクチャ内の最小値QPminを下回る場合は、QP=QPminとする。本実施例により、バッファ破綻を回避して安定した量子化制御を行うことが可能となる。
<実施例3>
本実施例では、各マクロブロックの量子化パラメータを決定する方法について述べる。本実施例は、上記実施例にて述べた符号化装置と同様の構成である。まず、実施例2のステップS802、S804にて述べた方法により、目標符号量および、許容する発生符号量の上限値、下限値を求める(S1201)。次に、ステップS803、S805と同様の処理を実施することにより、符号化ピクチャの量子化パラメータ 基準値Qpinitおよび最大値QPmax、最小値QPminを求める。次にアクティビティ演算部113にて算出されるアクティビティ情報に基づき、アクティビティと量子化パラメータとの特性を決定する(S1202)。
マクロブロックごとの量子化パラメータの決定では、実施例1と同様に量子化パラメータの基準値QPinitに対して、アクティビティの大きさに応じて重み付けを行い、マクロブロックごとのQPを決定する。即ち、数式11〜数式14の処理を適用してマクロブロックごとの量子化パラメータを算出する。このとき、算出されたマクロブロックの量子化パラメータQPがステップS805によって求められたピクチャ内の量子化パラメータの最大値QPmaxを超える場合は、QP=QPmaxとし、ピクチャ内の最小値QPminを下回る場合は、QP=QPminとする。本実施例により、バッファ破綻を回避して安定した量子化制御を行うことが可能となる。
<実施例3>
本実施例では、各マクロブロックの量子化パラメータを決定する方法について述べる。本実施例は、上記実施例にて述べた符号化装置と同様の構成である。まず、実施例2のステップS802、S804にて述べた方法により、目標符号量および、許容する発生符号量の上限値、下限値を求める(S1201)。次に、ステップS803、S805と同様の処理を実施することにより、符号化ピクチャの量子化パラメータ 基準値Qpinitおよび最大値QPmax、最小値QPminを求める。次にアクティビティ演算部113にて算出されるアクティビティ情報に基づき、アクティビティと量子化パラメータとの特性を決定する(S1202)。
具体的には、図13に示すように量子化パラメータの最大値Qpmaxに対して符号化ピクチャを符号化する前に符号化されたピクチャのアクティビティの最大値Act_maxを、量子化パラメータの最小値QPminに対して符号化ピクチャを符号化する前に符号化されたピクチャのアクティビティの最小値Act_minを対応付ける。次にアクティビティ演算部113にて算出される符号化マクロブロックのアクティビティの大きさに応じて、量子化パラメータQPを決定する(S1203)。即ち、図13に示すように、アクティビティの値ACTが領域Aにある場合は、QP=QPmin、領域Cにある場合には、QP=QPmaxとし、領域Bにある場合には、次式を用いて求める。
量子化パラメータQPを決定した後、アクティビティ演算部113にて算出されるアクティビティの最大値、およびアクティビティの最小値を更新する(S1205)。上記ステップS1202〜S1205の処理をピクチャ内のすべてのマクロブロックに対して実施する。なお、アクティビティの最大値、最小値は、アクティビティの値にフィルタをかけた後の値を用いてもよい。
上記ステップ1202において決定するアクティビティとQP特性は、図14に示すような特性にしても良い。即ち、符号化ピクチャの量子化パラメータ 基準値QPinit、最大値QPmax、最小値QPminにおいて、量子化パラメータの基準値Qpinitに対して符号化ピクチャを符号化する前のピクチャのアクティビティ平均値Act_avgを、最大値QPmaxに対して、符号化ピクチャを符号化する前のピクチャのアクティビティ最大値ACT_maxを、最小値QPminに対して符号化ピクチャを符号化する前のピクチャのアクティビティ最小値ACT_minを対応付ける。
そして、アクティビティ演算部113にて算出される符号化マクロブロックのアクティビティの大きさに応じて、量子化パラメータQPを決定する。即ち図14に示すように、アクティビティの値ACTが領域Aにある場合は、QP=QPmin、領域Dにある場合には、QP=QPmaxとし、領域Bにある場合には、次式を用いて求める。
また、領域Cにある場合には、次式を用いて求める。
大抵の自然画像におけるアクティビティの分布の特徴としては、大抵のアクティビティ値は低い領域に集中する。本実施例により、アクティビティの高い領域と低い領域とで、アクティビティ値の変動に対する量子化パラメータの感度を変えることで、全ての領域のアクティビティ値に対して、アクティビティの差を反映した量子化パラメータの設定を行うことが可能となる。また、図14中の点Qの位置を調整することで、ピクチャごとの発生符号量の増減が可能となる。即ち、Qが左上に移動するほど全体的にQPが高くなり発生符号量が抑制される。従って、ピクチャごとに目標符号量と発生符号量の差をフィードバックさせて符号量の調整を行うことができ、発生符号量の目標ビットレートへの追従性を向上させることが可能となる。
<実施例4>
本実施例においては、上記実施例における符号化処理を実行するステップ手順を記録したプログラムを作成することによりコンピュータで動作させることができる。なお、このような符号化処理を実行するプログラムを、インターネット等のネットワークを介してユーザがダウンロードして使用することができる。また記録媒体に記録して使用することができる。また、このような記録媒体としては、光ディスク、光磁気ディスク等の記録媒体に広く適用することができる。
<実施例4>
本実施例においては、上記実施例における符号化処理を実行するステップ手順を記録したプログラムを作成することによりコンピュータで動作させることができる。なお、このような符号化処理を実行するプログラムを、インターネット等のネットワークを介してユーザがダウンロードして使用することができる。また記録媒体に記録して使用することができる。また、このような記録媒体としては、光ディスク、光磁気ディスク等の記録媒体に広く適用することができる。
また、上記実施例では、入力画像の単位をピクチャとして説明してきたが、ピクチャ内を複数の分割したスライス単位で符号化する場合にも適用できる。また、インタレース画像を入力データとして符号化する場合、フィールドとして符号化する場合においても適用できる。また、上記実施例においては、マクロブロック(16×16画素)単位で処理を行う場合について説明したが、32×32画素や8×8画素など、任意の大きさのブロックで処理を行う場合にも適用できる。本発明はH.264符号化方式をはじめとして、各種の画像データ、符号化方式において、広く適用することができる。
101…原画像メモリ、
102、109…加算器、
103…直行変換部、
104…量子化部、
105…符号化部、
106…バッファ、
107…逆量子化部、
108…逆直行変換部、
110…フレームメモリ、
111…動き検出・動き補償部、
112…量子化制御部、
113…アクティビティ演算部、
114…イントラ予測部、
201…シーンチェンジ検出部、
202…ピクチャタイプ判定部、
203…予測誤差情報更新部、
204…目標符号量決定部。
102、109…加算器、
103…直行変換部、
104…量子化部、
105…符号化部、
106…バッファ、
107…逆量子化部、
108…逆直行変換部、
110…フレームメモリ、
111…動き検出・動き補償部、
112…量子化制御部、
113…アクティビティ演算部、
114…イントラ予測部、
201…シーンチェンジ検出部、
202…ピクチャタイプ判定部、
203…予測誤差情報更新部、
204…目標符号量決定部。
Claims (17)
- 一連のピクチャからなる動画像情報を符号化する画像符号化装置であって、
外部より入力されたピクチャの原画像を記憶する原画像記憶手段と、
前記原画像に基づいて、画面内予測を行うイントラ予測手段および画面間予測を行うインター予測手段と、
符号化する前記ピクチャの特徴量を算出する特徴量演算手段と、を備え、
前記イントラ予測手段または前記インター予測手段により生成された予測画像と前記原画像との差分に基づき、予測誤差情報を更新する予測誤差情報更新手段と、
前記更新された予測誤差情報および符号化を行ったピクチャの発生符号量に応じて、前記符号化するピクチャごとの目標符号量を決定する目標符号量決定手段と、
複数のブロックに分割された前記符号化するピクチャにおいて、前記特徴量および前記目標符号量に基づき、符号化する前記複数のブロック各々の量子化幅を決定する量子化制御手段とを有することを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記発生符号量を記憶するバッファを有し、
前記バッファが有する記憶容量の状態と予測誤差情報に基づいて、前記目標符号量が決定されることを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記予測誤差情報は、前記符号化するピクチャよりも以前に符号化された過去のピクチャに基づいて算出された値であることを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記過去のピクチャの発生符号量と前記ピクチャ内の量子化幅の平均値との乗算値を行う手段を有し、
前記符号化するピクチャが、画面内予測のときには、前記乗算値に基づいて目標符号量を決定することを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記過去のピクチャの予測誤差と前記符号化するピクチャの発生符号量との関係を定式化する手段を有し、
前記符号化するピクチャが、画面間予測のときには、前記関係式に基づいて目標符号量を決定することを特徴とする画像符号化装置。 - 請求項1乃至5記載の画像符号化装置のいずれか一つにおいて、
前記符号化するピクチャが有する属性と前記符号化するピクチャの直前に符号化されたピクチャが有する属性との差分値を検出し、シーンチェンジの有無を検出するシーンチェンジ検出手段を備え、
前記差分値が所定の閾値より小さいと判定したときには、前記過去のピクチャの予測誤差情報と前記符号化するピクチャの発生符号量との関係式に基づいて目標符号量を決定することを特徴とする画像符号化装置。 - 請求項6記載の画像符号化装置において、
前記シーンチェンジが検出された場合には、前記過去のピクチャの予測誤差情報と前記符号化するピクチャの発生符号量との関係式を更新することを特徴とする画像符号化装置。 - 請求項6記載の画像符号化装置において、
前記符号化するピクチャの種類を判定するピクチャタイプ判定手段を有することを特徴とする画像符号化装置。 - 請求項2記載の画像符号化装置において、
前記符号化するピクチャの直前に符号化されたピクチャの予測誤差と発生符号量の関係に基づき予め準備された関係式により前記目標符号量が決定されることを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記符号化するピクチャの発生符号量の許容範囲を設け、
前記許容範囲に基づき、前記量子化幅の上限値、および下限値を決定することを特徴とする画像符号化装置。 - 請求項10記載の画像符号化装置において、
前記ピクチャごとの発生符号量状況を検出する手段を有し、
前記発生符号量状況に基づいて、前記許容範囲が決定されることを特徴とする画像符号化装置。 - 請求項1記載の画像符号化装置において、
前記特徴量の最大値、最小値、および平均値をピクチャ単位で算出することを特徴とする画像符号化装置。 - 請求項12記載の画像符号化装置において、
前記特徴量の最大値、および最小値に対して、前記量子化幅の最大値、および最小値をそれぞれ対応付けることにより、前記符号化するブロックの量子化幅を決定することを特徴とする画像符号化装置。 - 請求項12記載の画像符号化装置において、
前記特徴量の最大値、最小値、および平均値に対して、前記量子化幅の最大値、最小値、および基準値をそれぞれ対応付けることにより、前記符号化するブロックの量子化幅を決定することを特徴とする画像符号化装置。 - 一連のピクチャからなる動画像情報を符号化するステップ有する動画像符号化プログラムであって、
外部より入力されたピクチャの原画像を記憶する原画像記憶手段を有し、
前記原画像に基づいて、画面ピクチャ内予測を行うイントラ予測ステップおよび画面予測を行うインター予測ステップと、
符号化する前記ピクチャの特徴量を算出する特徴量演算するステップと、を備え、
前記イントラ予測ステップまたは前記インター予測ステップにより生成された予測画像と前記原画像との差分に基づき、予測誤差情報を更新する予測誤差情報更新するステップと、
前記更新された予測誤差情報および符号化を行ったピクチャの発生符号量に応じて、前記符号化するピクチャごとの目標符号量を決定する目標符号量決定するステップと、
複数のブロックに分割された前記符号化するピクチャにおいて、前記特徴量および前記目標符号量に基づき、符号化する前記複数のブロック各々の量子化幅を制御するステップをコンピュータに実行させるための動画像符号化プログラム。 - 請求項15記載の動画像符号化プログラムにおいて、
前記符号化するピクチャの種類を判定するピクチャタイプ判定ステップを有することを特徴とする動画像符号化プログラム。 - 請求項16記載の動画像符号化プログラムにおいて、
前記符号化するピクチャが有する属性と前記符号化するピクチャの直前に符号化されたピクチャが有する属性との差分値を検出し、シーンチェンジの有無を検出するステップを備え、
前記差分値が所定の閾値より大きいと判定したときには、前記過去のピクチャの予測誤差情報と前記符号化するピクチャの発生符号量との関係式に基づいて目標符号量を決定するステップを有することを特徴とする動画像符号化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006148030A JP2007318617A (ja) | 2006-05-29 | 2006-05-29 | 画像符号化装置、及び画像符号化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006148030A JP2007318617A (ja) | 2006-05-29 | 2006-05-29 | 画像符号化装置、及び画像符号化プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007318617A true JP2007318617A (ja) | 2007-12-06 |
Family
ID=38852049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006148030A Pending JP2007318617A (ja) | 2006-05-29 | 2006-05-29 | 画像符号化装置、及び画像符号化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007318617A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010166275A (ja) * | 2009-01-15 | 2010-07-29 | Canon Inc | 画像符号化装置 |
WO2011142236A1 (ja) * | 2010-05-12 | 2011-11-17 | 日本電信電話株式会社 | 符号量制御方法および装置 |
JP2012160973A (ja) * | 2011-02-01 | 2012-08-23 | Canon Inc | 画像処理装置 |
WO2012117955A1 (ja) * | 2011-02-28 | 2012-09-07 | 株式会社メガチップス | 画像符号化装置 |
JP2014135720A (ja) * | 2012-12-11 | 2014-07-24 | Mega Chips Corp | 動画像符号化装置、符号化量制御方法およびプログラム |
JP2015192403A (ja) * | 2014-03-28 | 2015-11-02 | キヤノン株式会社 | 符号化装置及び符号化方法 |
US10694178B2 (en) | 2016-11-11 | 2020-06-23 | Samsung Electronics Co., Ltd. | Video processing device for encoding frames constituting hierarchical structure |
-
2006
- 2006-05-29 JP JP2006148030A patent/JP2007318617A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010166275A (ja) * | 2009-01-15 | 2010-07-29 | Canon Inc | 画像符号化装置 |
JP5580887B2 (ja) * | 2010-05-12 | 2014-08-27 | 日本電信電話株式会社 | 符号量制御方法および装置 |
WO2011142236A1 (ja) * | 2010-05-12 | 2011-11-17 | 日本電信電話株式会社 | 符号量制御方法および装置 |
JPWO2011142236A1 (ja) * | 2010-05-12 | 2013-07-22 | 日本電信電話株式会社 | 符号量制御方法および装置 |
KR101391397B1 (ko) | 2010-05-12 | 2014-05-07 | 니폰덴신뎅와 가부시키가이샤 | 부호량 제어 방법 및 장치 |
US9131236B2 (en) | 2010-05-12 | 2015-09-08 | Nippon Telegraph And Telephone Corporation | Code amount control method and apparatus |
JP2012160973A (ja) * | 2011-02-01 | 2012-08-23 | Canon Inc | 画像処理装置 |
WO2012117955A1 (ja) * | 2011-02-28 | 2012-09-07 | 株式会社メガチップス | 画像符号化装置 |
US9031341B2 (en) | 2011-02-28 | 2015-05-12 | Megachips Corporation | Image coding apparatus |
US9407919B2 (en) | 2011-02-28 | 2016-08-02 | Megachips Corporation | Image coding apparatus |
JP6062356B2 (ja) * | 2011-02-28 | 2017-01-18 | 株式会社メガチップス | 画像符号化装置 |
JP2014135720A (ja) * | 2012-12-11 | 2014-07-24 | Mega Chips Corp | 動画像符号化装置、符号化量制御方法およびプログラム |
JP2015192403A (ja) * | 2014-03-28 | 2015-11-02 | キヤノン株式会社 | 符号化装置及び符号化方法 |
US10694178B2 (en) | 2016-11-11 | 2020-06-23 | Samsung Electronics Co., Ltd. | Video processing device for encoding frames constituting hierarchical structure |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6286718B2 (ja) | 高効率な次世代ビデオコーディングのためのフレーム階層応答型量子化を使用する、コンテンツ適応ビットレートおよび品質管理 | |
JP5068265B2 (ja) | 動きベクトルの選択 | |
JP5267655B2 (ja) | 画像符号化装置、画像符号化制御方法および画像符号化プログラム | |
JP2002010259A (ja) | 画像符号化装置及び画像符号化方法及び画像符号化プログラムを記録した記録媒体 | |
JP2007318617A (ja) | 画像符号化装置、及び画像符号化プログラム | |
JP4901450B2 (ja) | 動画像符号化装置 | |
JP2013115583A (ja) | 動画像符号化装置及びその制御方法並びにプログラム | |
JP3508916B2 (ja) | 動画像可変ビットレート符号化方法および装置 | |
JP2009094646A (ja) | 動画像符号化装置及びその制御方法 | |
JP4179917B2 (ja) | 動画像符号化装置及び方法 | |
JP2007228519A (ja) | 画像符号化装置及び画像符号化方法 | |
JP2011091772A (ja) | 画像符号化装置 | |
WO2016116984A1 (ja) | 動画像符号化装置、動画像符号化方法および動画像符号化プログラム | |
JP2008252225A (ja) | 動画像符号化装置及び方法 | |
JP2005045736A (ja) | 画像信号符号化方法及び装置、符号化制御装置並びにプログラム | |
JP7001159B2 (ja) | 動画像符号化装置、動画像符号化方法、プログラム | |
JP5871602B2 (ja) | 符号化装置 | |
JP5937926B2 (ja) | 画像符号化装置、画像復号装置、画像符号化プログラム及び画像復号プログラム | |
JP4857243B2 (ja) | 画像符号化装置及びその制御方法、コンピュータプログラム | |
WO2008079330A1 (en) | Video compression with complexity throttling | |
JP6239838B2 (ja) | 動画像符号化装置、その制御方法、及び撮像装置 | |
JP2010166275A (ja) | 画像符号化装置 | |
JP5419560B2 (ja) | 撮像装置 | |
JP2008153802A (ja) | 動画像符号化装置及び動画像符号化プログラム | |
JP2009118096A (ja) | 画像符号化装置及びその制御方法、コンピュータプログラム |