JP2009060536A - 画像符号化装置、画像符号化方法 - Google Patents
画像符号化装置、画像符号化方法 Download PDFInfo
- Publication number
- JP2009060536A JP2009060536A JP2007228278A JP2007228278A JP2009060536A JP 2009060536 A JP2009060536 A JP 2009060536A JP 2007228278 A JP2007228278 A JP 2007228278A JP 2007228278 A JP2007228278 A JP 2007228278A JP 2009060536 A JP2009060536 A JP 2009060536A
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- image
- unit
- processing
- elapsed time
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理技術を提供すること。
【解決手段】 処理時間計数部213は、符号化対象フレームの符号化を開始してからの経過時間を計時する。処理MB計数部212は、符号化対象フレームについて符号化したマクロブロックの個数をカウントする。閾値生成部214、215は、処理MB計数部212がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、処理時間計数部213から経過時間を取得する。そして、探索回数決定部218は、経過時間と、第1の閾値、第2の閾値との比較結果に応じて、動き探索方法を決定する。
【選択図】 図2
【解決手段】 処理時間計数部213は、符号化対象フレームの符号化を開始してからの経過時間を計時する。処理MB計数部212は、符号化対象フレームについて符号化したマクロブロックの個数をカウントする。閾値生成部214、215は、処理MB計数部212がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、処理時間計数部213から経過時間を取得する。そして、探索回数決定部218は、経過時間と、第1の閾値、第2の閾値との比較結果に応じて、動き探索方法を決定する。
【選択図】 図2
Description
本発明は、フレーム間動き補償を用いた符号化技術に関するものである。
従来、CD−ROMやハードディスク等の蓄積媒体に静止画像を保存したり、表示装置の画面に表示するための符号化方式としてISO(国際標準化機構)により標準化されたJPEG方式が広く用いられている。また、動画像と音声を同様の蓄積媒体に保存したり、表示装置の画面に表示したり、通信路を介して放送、または双方向通信したりするための符号化方式としてISOにより標準化されたMPEG方式が広く用いられている。
動画像と音声の符号化方式であるMPEG方式は、符号化効率の向上を目的として年々その符号化方式が改良されている。1992年にMPEG−1、1994年にMPEG−2、1999年にはMPEG−4、2003年にはMPEG−4AVC/H.264がそれぞれ国際標準として規定されている。
MPEG−4においては、符号化効率の向上はもちろんのこと、符号誤り訂正機能の強化や、符号化対象毎に最適な符号化を施すオブジェクト符号化の導入なども実現されている。さらには、MEPG−4シンタックス上のビジュアル層とオーディオ層を包含するファイル形式などを規定するシステム層においては、利用者が要求する任意の時刻の動画像または音声データに対して、容易にアクセスできる仕組みを提供している。
また、MPEG−4AVC/H.264では、MPEG−4に対して更なる符号化効率向上を目指してフレーム間予測、フレーム内予測、エントロピー符号化などにおいて多種多様な新規符号化ツールが採用されている。
上述した動画符号化方式すべてにおいて動き補償フレーム間予測が行われており、処理対象マクロブロックの参照フレームに対する動き量を高精度に予測する方法が高能率符号化を行う上で重要な技術となっている。一方、主に目標符号量と過去の発生符号量に応じて量子化処理を更新する符号量制御の方法も、高画質な動画符号化を行う上で重要な技術である。
図3は、デジタルカメラやビデオカメラに代表される撮像システムの一般的なハードウェア構成図である。同図において、1はシステム全体を制御するCPU部、2はCPUが使用するプログラムを格納したり処理された画像データを蓄積したりする主記憶部、3はメモリコントローラ部である。4は光学系から入力されるアナログ信号をデジタル信号に変換する撮像部、5は撮像部4が出力するデジタル信号に所望の画像処理を行う画像処理部、6は画像処理部5が自律的に主記憶部2にアクセスするためのDMAコントローラ部である。7は画像処理が施された画像データを圧縮したり伸張したりする画像圧縮伸張部、8は画像圧縮伸張部7が自律的に主記憶部2にアクセスするためのDMAコントローラ部、9は圧縮された画像データを蓄積するためのメモリカードである。10はメモリカード制御部、11は表示部、12は表示コントローラ部、13は上述した各機能ブロックが接続されるシステムバスである。
図11は、図3に示される一般的な撮像システムにおける処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。図11では、マクロブロック数N6が1フレームを構成するマクロブロックの総数であり、処理時間T_MAXがフレームレートから導出される、1フレームを処理し終えなければならない上限値である。画像圧縮伸張部7は、N6とT_MAXの交点と原点とを結ぶ点線を超えないために十分な1マクロブロックあたりの処理性能を有する必要がある。原点を始点として単調増加する実線が実際の処理時間の推移を表しており、処理上限時間T_MAXに対して十分に余裕を持って1フレームの処理が完了している。
図12は、図3に示される一般的な撮像システムにおける処理済みマクロブロック数と、発生符号量との関係を示す図である。図12では、マクロブロック数N6が1フレームを構成するマクロブロックの総数であり、発生符号量R_TARGETが撮像システムが達成すべき目標符号量である。画像圧縮伸張部7は、N6とR_TARGETとの交点と原点を結ぶ点線から極力乖離しないように自らの発生符号量をマクロブロック単位に制御することにより一定ビットレートによる圧縮符号化処理を実現する。原点を始点として単調増加する実線が実際の発生符号量の推移を表しており、1フレームの処理を通してほぼ一定のビットレートで圧縮符号化処理が行われている。
特登録2644811号
図3に示される一般的な撮像システムにおいては、すべての機能ブロックが共有されたシステムバス13を介して主記憶部2へアクセスしたり、お互いにデータを交換したりする。係る構成において、同時に多くのアクセス要求がシステムバス13へ発行された場合、アクセス許可が遅延する機能ブロックが存在し得る。このようなシステムバス13へのアクセス要求発生パターンは、撮影対象やユーザ操作によって変化するので、前もって予測することが非常に困難である。
図13は、図3に示される一般的な撮像システムにおいて、システムバス13へ同時に多くのアクセス要求が発行された場合の処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。処理済マクロブロック数N1を過ぎた時点からシステムバス13へ同時に多くのアクセス要求が発行されたている。このため、画像圧縮伸張部7による主記憶部2中のフレームバッファから動き補償フレーム間予測を行うための参照マクロブロックデータ読み出しの遅延が増加し、結果的に要した処理時間も増加している。N2の時点では、N6とT_MAXとの交点と原点を結ぶ点線を上回ってしまい、その後はN6に至るまでシステムバス13が再び混雑することはなかったが、処理上限時間T_MAXを超過して処理を完了している。
CPU部1は、画像圧縮伸張部7が処理上限時間T_MAXまでに処理を完了していないことを検出し、該当するフレームの処理を中断させてコマ落ちさせるなどの例外処理を行うことになるが、これにより動画としての画質が劣化してしまう。
本発明は以上の問題に鑑みてなされたものであり、システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の画像符号化装置は以下の構成を備える。
即ち、フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時手段と、
前記符号化手段が前記符号化対象の画像の符号化したブロックの個数をカウントするカウント手段と、
前記カウント手段がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時手段から経過時間を取得する取得手段と、
前記取得手段が取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御手段と
を備えることを特徴とする。
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時手段と、
前記符号化手段が前記符号化対象の画像の符号化したブロックの個数をカウントするカウント手段と、
前記カウント手段がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時手段から経過時間を取得する取得手段と、
前記取得手段が取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御手段と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の画像符号化方法は以下の構成を備える。
即ち、フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置が行う画像符号化方法であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時工程と、
前記符号化手段が前記符号化対象の画像について符号化したブロックの個数をカウントするカウント工程と、
前記カウント工程でカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時工程から経過時間を取得する取得工程と、
前記取得工程で取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御工程と
を備えることを特徴とする。
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時工程と、
前記符号化手段が前記符号化対象の画像について符号化したブロックの個数をカウントするカウント工程と、
前記カウント工程でカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時工程から経過時間を取得する取得工程と、
前記取得工程で取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御工程と
を備えることを特徴とする。
本発明の構成により、システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理を行うことができる。
以下添付図面を参照して、本発明をその好適な実施形態にしたがって詳細に説明する。
[第1の実施形態]
本実施形態では、フレーム間動き補償による符号化処理技術として、MPEG−4AVC/H.264符号化方式を用いて説明する。
本実施形態では、フレーム間動き補償による符号化処理技術として、MPEG−4AVC/H.264符号化方式を用いて説明する。
図2は、本実施形態に係る画像符号化装置の機能構成を示すブロック図である。同図において、101はフレーム内予測部、102は予測方式選択部、103は直交変換部、104は量子化部、105はエントロピー符号化部、106はエントロピー復号化部、107は逆量子化部、108は逆直交変換部、109は符号量計数部である。110はループフィルタ部、111は動き補償部、112はフレーム間動き予測部、113はフレーム間動き予測において使用される参照フレームを記憶する参照フレーム記憶部である。114はフレーム内予測において使用される参照画素を記憶する参照画素記憶部、115はフレーム間動き予測部112を制御するフレーム間動き予測制御部、116は符号化歪み量算出部、117は符号量制御部である。
係る構成は、フレーム間動き補償による符号化処理を行うための一般的な構成であるが、本実施形態は、フレーム間動き予測制御部115、符号量制御部117の構成、及び動作に特徴を有する。図1は、フレーム間動き予測制御部115の機能構成を示すブロック図である。
同図において211は計数制御部で、後段の処理MB(マクロブロック)計数部212と処理時間計数部213の動作制御を行う。
212は処理MB計数部で、1フレームを構成する各MBのうち符号化処理が施されたMBの個数を計数する。
213は処理時間計数部で、1フレームに対する符号化処理を開始してからの経過時間を、例えばクロックサイクル数でもって計時する。
214は閾値生成部である。閾値生成部214は先ず、処理MB計数部212から送出される「符号化処理済みMBの個数」と、画像サイズ記憶部219に格納されている「1フレームの画像サイズ」と、フレームレート記憶部220に格納されているフレームレートとを取得する。そして閾値生成部214は取得したこれらを用いて、符号化処理済みのMBを符号化した際に、本来使用可能であった処理時間の上限を閾値1(第1の閾値)として求める。例えば、符号化処理済みMBの個数をN、1フレームの水平画像サイズをH、垂直画像サイズをV、1秒当りのフレームレートをFとした場合、閾値1は、(1÷F)×(N÷(H×V÷(16×16)))、で求められる。
215は閾値生成部である。閾値生成部215は先ず、処理MB計数部212から送出される「符号化処理済みMBの個数」と、画像サイズ記憶部219に格納されている「1フレームの画像サイズ」と、フレームレート記憶部220に格納されているフレームレートとを取得する。そして閾値生成部214は取得したこれらを用いて、符号化処理済みのMBを符号化した際に、本来使用可能であった処理時間の下限を閾値2(第2の閾値)として求める。例えば、符号化処理済みMBの個数をN、1フレームの水平画像サイズをH、垂直画像サイズをV、1秒当りのフレームレートをF、処理時間の上限である閾値1との時間間隔をTとする。この場合、閾値2は、(1÷F)×(N÷(H×V÷(16×16))÷N)−T、で求められる。
216は比較部で、処理時間計数部213が計数した経過時間と、閾値生成部214が求めた上限処理時間との大小比較を行う。
217は比較部で、処理時間計数部213が計数した経過時間と、閾値生成部215が求めた下限処理時間との大小比較を行う。
218はブロックマッチングによる動き探索回数決定部で、比較部216,217による比較結果に基づいて、以降の動き探索回数を決定し、フレーム間動き予測部112に対してセットする。フレーム間動き予測部112は、予め設定された動き探索回数、若しくは探索回数決定部218によってセットされた動き探索回数を用いて、未だ符号化していないMBに対するフレーム間動き補償による符号化処理を行う。
219は画像サイズ記憶部で、符号化対象のフレームの画像サイズを記憶する。ここでの画像サイズとは、垂直方向における画素数と、水平方向における画素数とで表される。 220はフレームレート記憶部で、動画像のフレームレートを記憶する。
以降では、1フレームに対する動き補償による符号化処理を行う際に、動き予測制御部115が、動き探索回数を動的に決定する為の処理について、同処理のフローチャートを示す図4を用いて以下説明する。
先ずステップS101では、1フレームに対する符号化処理を開始する前に、処理MB計数部212による計数カウント値を0に初期化すると共に、処理時間計数部213による計数カウント値を0に初期化する。
そして1フレームの画像データがフレーム内予測部101に入力されると、ステップS102では、処理MB計数部212、処理時間計数部213が、それぞれの動作を開始する。即ち、処理MB計数部212は、符号化処理済みのMBの個数のカウント処理を開始するし、処理時間計数部213は計時処理を開始する。
次に、ステップS103、S105,S107の処理と、ステップS104、S106、S108の処理は並行して行う。
先ず、ステップS103、S105,S107の処理について説明する。
ステップS103では閾値生成部214が対応する。閾値生成部214は、処理MB計数部212が計数した個数が予め定められた複数の基準個数の何れかを越える毎に、画像サイズ記憶部219に格納されている画像サイズ、フレームレート記憶部220に格納されているフレームレートを取得する。
以下の説明では、1フレームを構成するMBの個数はN6とし、基準個数はN1、N2、N3、N4、N5、N6とする。したがってステップS103では、処理MB計数部212が計数する個数がN1〜N6の何れかに達する毎に、画像サイズ記憶部219に格納されている画像サイズ、フレームレート記憶部220に格納されているフレームレートを取得する。
そしてステップS103では更に、閾値生成部214は、現在達した基準個数、取得した画像サイズ、フレームレートを用いて、「現在達した基準個数のMBの符号化処理を行うための処理時間の上限値」を閾値1として求める。
次にステップS105では、比較部216は、処理MB計数部212が計数する個数がN1〜N6の何れかに達する毎に、処理時間計数部213から経過時間(処理時間)を取得する。そしてこの取得した経過時間と、上記閾値1との大小比較を行う。
ここで、処理MB計数部212が計数する個数がN1となった時に処理時間計数部213が計時している経過時間をT1とする。同様に、処理MB計数部212が計数する個数がN2となった時に処理時間計数部213が計時している経過時間をT2とする。同様に、処理MB計数部212が計数する個数がN3となった時に処理時間計数部213が計時している経過時間をT3とする。同様に、処理MB計数部212が計数する個数がN4となった時に処理時間計数部213が計時している経過時間をT4とする。同様に、処理MB計数部212が計数する個数がN5となった時に処理時間計数部213が計時している経過時間をT5とする。同様に、処理MB計数部212が計数する個数がN6となった時に処理時間計数部213が計時している経過時間をT6とする。
したがって、ステップS105では、比較部216は、処理MB計数部212が計数する個数がNjに達する毎に、処理時間計数部213から経過時間Tjを取得する。そしてこの取得した経過時間と、上記閾値1との大小比較を行う。
係る大小比較の結果は、探索回数決定部218に通知される。探索回数決定部218は、処理時間≦閾値1である場合、何も処理しないので、処理はステップS105からステップS110に進む。
一方、処理時間>閾値1である場合には処理はステップS107に進み、探索回数決定部218は、動き探索回数を減少させる(第1の制御)。例えば、動き探索回数を1回減少させることで減少する処理時間をΔt、(経過時間−閾値1)=Dとすると、D/Δtを整数化(小数点以下を任意に切り上げたり切り捨てたりする)した結果を、現在の動き探索回数から減じる。
次に、ステップS104、S106、S108の処理について説明する。
ステップS104では、閾値生成部215は閾値生成部214と同様に動作する。閾値生成部215は、処理MB計数部212が計数した個数が予め定められた複数の基準個数の何れかを越える毎に、画像サイズ記憶部219に格納されている画像サイズ、フレームレート記憶部220に格納されているフレームレートを取得する。
そしてステップS104では更に、閾値生成部215は閾値生成部214と同様に、現在達した基準個数、取得した画像サイズ、フレームレートを用いて、「現在達した基準個数のMBの符号化処理を行うための処理時間の下限値」を閾値2として求める。
次にステップS106では、比較部217は比較部216と同様に、処理MB計数部212が計数する個数がN1〜N6の何れかに達する毎に、処理時間計数部213から経過時間(処理時間)を取得する。そしてこの取得した経過時間と、上記閾値2との大小比較を行う。
したがって、ステップS106では、比較部217は、処理MB計数部212が計数する個数がNjに達する毎に、処理時間計数部213から経過時間Tjを取得する。そしてこの取得した経過時間と、上記閾値2との大小比較を行う。
係る大小比較の結果は、探索回数決定部218に通知される。探索回数決定部218は、処理時間≧閾値2である場合、何も処理しないので、処理はステップS106からステップS110に進む。
一方、処理時間<閾値2である場合には処理はステップS108に進み、探索回数決定部218は、動き探索回数を増加させる(第2の制御)。例えば、動き探索回数を1回増加させることで増加する処理時間をΔp、(閾値2−経過時間)=Fとすると、F/Δpを整数化(小数点以下を任意に切り上げたり切り捨てたりする)した結果を、現在の動き探索回数に加算する。
ステップS109では、探索回数決定部218は、動き探索回数を変更した場合には、変更した動き探索回数をフレーム間動き予測部112に対してセットする。これにより、以降のMBについては、この変更した動き探索回数が適用されることになる。
次に、1フレーム分のMB、即ち、N6個分のMBに対する(ブロック毎の)符号化処理が完了した場合には処理はステップS110からステップS111に進み、完了していない場合には処理をステップS110からステップS103,S104の前に戻す。
ステップS111において、動画像を構成する全てのフレームについて符号化処理が完了した場合には本処理を終了し、未処理のフレームが未だある場合には、処理をステップS101に戻し、未処理のフレームについて以降の処理を行う。
次に図4のフローチャートにしたがって、図6を用いた、より具体的な例における処理について説明する。図6は、符号化処理済みMBの個数と、経過時間との関係を示す図である。
先ず、処理MB計数部212が計数するMBの個数がN1に達したとする。この場合、ステップS103では、閾値生成部214は、個数N1のMBを符号化処理するために許容可能な処理時間の上限値を閾値1として求める。係る処理には、画像サイズ、フレームレート、個数N1を用いる。一方、ステップS104では、閾値生成部215は、個数N1のMBを符号化処理するために許容可能な処理時間の下限値を閾値2として求める。係る処理には、画像サイズ、フレームレート、個数N1を用いる。
次に、ステップS105では、比較部216は、処理MB計数部212が計数する個数がN1に達したときに処理時間計数部213が計時している経過時間T1を取得し、取得した経過時間T1と、上記閾値1との大小比較を行う。一方、ステップS106では、比較部217は、処理MB計数部212が計数する個数がN1に達したときに処理時間計数部213が計時している経過時間T1を取得し、取得した経過時間T1と、上記閾値2との大小比較を行う。
ここで、図6では、経過時間T1は、上限閾値と下限閾値との間におさまっているので、ステップS105,S106の何れからも処理をステップS110に進めることになる。即ち、探索回数決定部218は、動き探索回数の更新は行わないし、フレーム間動き予測部112は現在設定されている動き探索回数を用いて、以降のMBに対するフレーム間動き補償による符号化処理を行う。
そしてステップS110では、符号化処理済みのMBの個数が未だN1であり、1フレームを構成する全てのMBについて符号化処理は行っていないので、処理をステップS103,S104に戻す。
次に、処理MB計数部212が計数するMBの個数がN2に達したとする。この場合、ステップS103では、閾値生成部214は、個数N2のMBを符号化処理するために許容可能な処理時間の上限値を閾値1として求める。係る処理には、画像サイズ、フレームレート、個数N2を用いる。一方、ステップS104では、閾値生成部215は、個数N2のMBを符号化処理するために許容可能な処理時間の下限値を閾値2として求める。係る処理には、画像サイズ、フレームレート、個数N2を用いる。
次に、ステップS105では、比較部216は、処理MB計数部212が計数する個数がN2に達したときに処理時間計数部213が計時している経過時間T2を取得し、取得した経過時間T2と、上記閾値1との大小比較を行う。一方、ステップS106では、比較部217は、処理MB計数部212が計数する個数がN2に達したときに処理時間計数部213が計時している経過時間T2を取得し、取得した経過時間T2と、上記閾値2との大小比較を行う。
ここで、図6では、経過時間T2は、上限閾値を越えているので、ステップS106からはステップS110に進むものの、ステップS105からはステップS107に処理が進む。ステップS107では、探索回数決定部218は、経過時間T2と上限閾値との差分に応じて、現時点で設定されている動き探索回数を減少させる。これにより、フレーム間動き予測部112は、この決定された動き探索回数を用いて、以降のMBに対するフレーム間動き補償による符号化処理を行う。
動き探索回数を減少させたことにより、1マクロブロックの符号化処理に要する時間が短縮されるので、結果として図6に示す如く、N2以降では処理時間の実曲線は上限閾値直線に接近しており、N3とN4の区間において上限閾値を下回っている。
更に符号化処理を進め、処理MB計数部212が計数するMBの個数がN4に達したとする。この場合、ステップS103では、閾値生成部214は、個数N4のMBを符号化処理するために許容可能な処理時間の上限値を閾値1として求める。係る処理には、画像サイズ、フレームレート、個数N4を用いる。一方、ステップS104では、閾値生成部215は、個数N4のMBを符号化処理するために許容可能な処理時間の下限値を閾値2として求める。係る処理には、画像サイズ、フレームレート、個数N4を用いる。
次に、ステップS105では、比較部216は、処理MB計数部212が計数する個数がN4に達したときに処理時間計数部213が計時している経過時間T4を取得し、取得した経過時間T4と、上記閾値1との大小比較を行う。一方、ステップS106では、比較部217は、処理MB計数部212が計数する個数がN4に達したときに処理時間計数部213が計時している経過時間T4を取得し、取得した経過時間T4と、上記閾値2との大小比較を行う。
ここで、図6では、経過時間T4は、下限閾値を下回っているので、ステップS105からはステップS110に進むものの、ステップS106からはステップS108に処理が進む。ステップS108では、探索回数決定部218は、経過時間T4と下限閾値との差分に応じて、現時点で設定されている動き探索回数を増加させる。これにより、フレーム間動き予測部112は、この決定された動き探索回数を用いて、以降のMBに対するフレーム間動き補償による符号化処理を行う。
動き探索回数を増加させたことにより、1マクロブロックの符号化処理に要する時間も増加するので、結果としてN4以降では処理時間の実曲線が下限閾値直線に接近しており、N5とN6の区間において下限閾値を上回っている。
以上説明したように、フレーム間動き予測制御部115は、図6に点線で示される上限閾値と下限閾値との間に所定数のマクロブロックを処理するのに要した処理時間が納まっている場合は、動き探索回数の更新は行わない。また、この処理時間が上限閾値を越える、若しくは下限閾値を下回る場合には、以降の処理時間が上限閾値と下限閾値との間に収まるように、適切に動き探索回数を更新する。この制御により、1フレームの符号化処理に要する時間が処理上限時間T_MAXを超えないことを保証する。
次に、フレーム間動き予測制御部115による一連の動作制御が発生符号量と画質に与える影響について、図7、図8を用いて説明する。
既に図12を用いて説明したように、符号量制御部117は、1フレームに対する目標符号量R_TARGETと1フレームの総マクロブロック数N6との交点と原点とを結ぶ点線から極力乖離しないように制御する。即ち、符号量計数部109により計数される自らの発生符号量をマクロブロック単位に制御する。そしてこれにより、一定ビットレートによる圧縮符号化処理を実現している。
図7は、符号化処理済みMBの個数と、発生符号量との関係を示す図である。
図7では、N2からN3の期間において、フレーム間動き予測制御部115による一連の動作制御により動き探索回数が減少されたために、予測残差が増加して結果として発生符号量も増加している。しかし、符号量制御部117による通常の符号量制御により遅延はあるもののやはり発生符号量は一定ビットレートを表す点曲線に近接してくる。
図8は、符号化処理済みMBの個数と、符号化歪み量との関係を示す図である。より詳しくは、図8は、符号量制御部117により上述した符号量制御が行われた場合に生成される符号化データが有する符号化歪みを示している。N3以降から動き探索回数の減少に起因した予測残差の増加を量子化ステップを大きくすることにより発生符号量の増加を低減させたために符号化歪みの度合いが大きくなっている。これにより、このフレームの後半領域において画質劣化が顕著となる可能性がある。
上述した発生しうる画質劣化を防ぎながら所定の処理時間内に1フレームの符号化処理を完了させるためには、フレーム間動き予測制御部115よる制御と符号量制御部117による制御を連携して動作させる必要がある。以下では両者の連携動作に関して説明する。
図5は、符号量制御部117が行う目標符号量の更新決定処理のフローチャートである。以下では、符号量制御部117が行う処理について同図のフローチャートを用いて説明するが、係る処理過程で生じる発生符号量、符号化歪み量はそれぞれ図9,10に示したような推移を示すものとして説明する。なお、図5のフローチャートは、係る推移に限定した処理を示すものではない。図9は、符号化処理済みMBの個数と、発生符号量との関係を示す図である。図10は、符号化処理済みMBの個数と、符号化歪み量との関係を示す図である。
先ずステップS201では、符号量制御部117は通常の符号量制御を行うと共に、現在の符号化対象フレームに対してフレーム間動き予測制御部115が上述の動き探索回数の更新を行ったか否かをチェックする。係るチェックの結果、未だ1度も行っていない場合には処理をステップS201に戻すのであるが、1度でも行った場合には処理をステップS202に進める。図9に示す如く、処理MB計数部212が計数する個数がN2に達した際に、動き探索回数が更新されている。したがって、N2以降のマクロブロックについては、ステップS202以降の処理を行うことになる。
ステップS202では、現在の符号化歪み量と、予め設けられた閾値D_MAXとの大小比較を行う。係る比較の結果、現在の符号化歪み量>閾値D_MAXであれば処理をステップS203に進め、符号化歪み量≦閾値D_MAXであれば処理をステップS204に進める。
ステップS203では、符号量制御部117は現在符号化対象としている1フレームの目標符号量を増加させる修正処理を行う。図10では、符号化歪み量は、N3において閾値D_MAXを超えているので、符号量制御部117はN3以降のマクロブロックに対する符号化処理における目標符号量を増加させる。増加符号量は、例えば、予め符号化歪み量と増加符号量との関係をテーブルで作成しておき、得られた現在の符号化歪み量によってそのテーブルを参照することで決定する。
次に、1フレーム分のMB、即ち、N6個分のMBに対する符号化処理が完了した場合には処理はステップS204からステップS205に進み、完了していない場合には処理をステップS204からステップS201に戻す。
ステップS205において、動画像を構成する全てのフレームについて符号化処理が完了した場合には本処理を終了し、未処理のフレームが未だある場合には、処理をステップS201に戻し、未処理のフレームについて以降の処理を行う。
以上説明したフレーム間動き予測制御部115と符号量制御部117との連携動作により、以下のような効果が得られる。即ち、図10において図8でも見られたように、N2からN3の期間では、動き探索回数の減少に起因して量子化ステップを増加させたことにより、符号化歪みの度合いが大きくなっている。しかし、N4以降では符号量制御部117によって1フレームあたりの目標符号量が修正されたために、発生符号量が増加することが許容され、結果的に符号化歪みが小さく抑えられている。
以上の説明により、本実施形態によれば、システムバスの状態に応じた適切な動き探索による動き補償フレーム間予測符号化処理を行うことができる。係る技術によれば、所定時間内での符号化処理の完了を保証しつつ、歪みの少ない高画質な符号化データを生成することができる。
なお、本実施形態では、フレーム間動き予測制御部115が1マクロブロックあたりの符号化処理時間を減少または増加させるために行う動き探索方法の変更方法として、ブロックマッチングによる動き探索回数を増減させた。しかし、これ以外の方法を用いて同様の目的を達成しても良い。例えば、複数存在する探索ポイントの中心点を決定する方法や、その周囲へ探索ポイントを配置する方法、さらには動き探索の階層化方法などの動き探索アルゴリズムそのものを変更するフレーム間動き予測制御においても同様に適用することができる。また、マクロブロック毎のイントラ予測/インター予測の選択を強制的にイントラ予測に決定することで、動き探索を全く行わない符号化制御においても同様に適用することができる。また、上記説明ではマクロブロックで説明したが、この限りでは無く、予め定められた単位であれば良くブロックでも良い。
また、本実施形態では、動画符号化方式としてMPEG−4AVC/H.264符号化方式を用いた。しかし本実施形態はこれに限定するものではなく、H.261、MPEG−1、MPEG−2、MPEG−4など他の国際標準動画符号化方式や、国際標準以外の動画符号化方式においても同様に適用可能である。
また、図2に示したハードウェアは、デジタルカメラやデジタルビデオカメラなど、与えられた動画像の各フレームに対してフレーム間動き補償による符号化処理を行う装置に搭載することが好ましい。
[第2の実施形態]
図2に示した各部の一部若しくは全部をソフトウェアでもって実現し、残りをハードウェアでもって実現しても良い。この場合、例えば、このハードウェアをパーソナルコンピュータに挿入可能な機能拡張カードとして実現し、この機能拡張カードをパーソナルコンピュータに挿入する。また、このソフトウェアは、このパーソナルコンピュータが有するメモリ上に格納する。係る構成によれば、パーソナルコンピュータが有するCPUがこのソフトウェアを実行すると共に、この機能拡張カードの動作制御をも行うことにより、第1の実施形態で説明した処理(図4,5のフローチャートに従った処理)と同様の処理を行うことができる。
図2に示した各部の一部若しくは全部をソフトウェアでもって実現し、残りをハードウェアでもって実現しても良い。この場合、例えば、このハードウェアをパーソナルコンピュータに挿入可能な機能拡張カードとして実現し、この機能拡張カードをパーソナルコンピュータに挿入する。また、このソフトウェアは、このパーソナルコンピュータが有するメモリ上に格納する。係る構成によれば、パーソナルコンピュータが有するCPUがこのソフトウェアを実行すると共に、この機能拡張カードの動作制御をも行うことにより、第1の実施形態で説明した処理(図4,5のフローチャートに従った処理)と同様の処理を行うことができる。
図14は、このコンピュータのハードウェア構成を示すブロック図である。
1401はCPUで、RAM1402やROM1403に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行う。
1402はRAMで、外部記憶装置1406からロードされたプログラムやデータ、I/F(インターフェース)1407を介して外部から受信したプログラムやデータを一時的に記憶するためのエリアを有する。更には、CPU1401が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1402は各種のエリアを適宜提供することができる。
1403はROMで、本コンピュータの設定データやブートプログラムなどを格納する。
1404は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をCPU1401に対して入力することができる。
1405は表示部で、CRTや液晶画面などにより構成されており、CPU1401による処理結果を画像や文字などでもって表示することができる。
1406は外部記憶装置で、ハードディスクなどに代表される大容量情報記憶装置であって、ここにはOS(オペレーティングシステム)や、本コンピュータが行う各種の処理をCPU1401に実行させるためのプログラムやデータ等が保存される。このプログラムやデータには、上記ソフトウェアや、機能拡張カード1408の動作制御プログラムなども含まれる。また、外部記憶装置1406には、符号化対象の1以上の動画像ファイルや、I/F1407を介して外部から受信したプログラムやデータも保存される。
外部記憶装置1406に保存されている各種の情報はCPU1401による制御にしたがって適宜RAM1402にロードされる。そしてCPU1401がこのロードされたプログラムやデータを用いて処理を実行することにより、本コンピュータは第1の実施形態で説明したフレーム間動き補償による符号化処理を実行することができる。
1407はI/Fで、本コンピュータをLANやインターネット等のネットワークに接続するためのものである。例えば、このネットワークに、動画像ファイルを保持する装置が接続されている場合には、本コンピュータはこのI/F1407を介してこの装置から動画像ファイルを取得することができる。
1408は機能拡張カードで、例えば、取得した動画像ファイルに対してフレーム間動き補償による符号化処理の一部若しくは全部を行う処理ボードである。
1409は上述の各部を繋ぐバスである。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体(コンピュータ読み取り可能な記憶媒体)は本発明を構成することになる。
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体(コンピュータ読み取り可能な記憶媒体)は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
Claims (8)
- フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時手段と、
前記符号化手段が前記符号化対象の画像の符号化したブロックの個数をカウントするカウント手段と、
前記カウント手段がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時手段から経過時間を取得する取得手段と、
前記取得手段が取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御手段と
を備えることを特徴とする画像符号化装置。 - 前記第2の閾値は前記第1の閾値よりも小さな値を有し、
前記制御手段は、
前記取得手段が取得した経過時間が第1の閾値よりも大きい場合には、前記符号化手段による動き探索回数を減少させる第1の制御手段と、
前記取得手段が取得した経過時間が第2の閾値よりも小さい場合には、前記符号化手段による動き探索回数を増加させる第2の制御手段と
を備えることを特徴とする請求項1に記載の画像符号化装置。 - 前記第1の制御手段は、前記取得手段が取得した経過時間と前記第1の閾値との差分に応じて、前記符号化手段による動き探索回数を減少させることを特徴とする請求項2に記載の画像符号化装置。
- 前記第2の制御手段は、前記取得手段が取得した経過時間と前記第2の閾値との差分に応じて、前記符号化手段による動き探索回数を増加させることを特徴とする請求項2に記載の画像符号化装置。
- 前記第1の閾値、前記第2の閾値は、前記符号化対象の画像において既に前記符号化手段が符号化したブロックの個数と、前記符号化対象の画像の画像サイズと、フレームレートと、に基づいて決まることを特徴とする請求項1に記載の画像符号化装置。
- フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置が行う画像符号化方法であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時工程と、
前記符号化手段が前記符号化対象の画像について符号化したブロックの個数をカウントするカウント工程と、
前記カウント工程でカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時工程から経過時間を取得する取得工程と、
前記取得工程で取得した経過時間と、予め定められた第1の閾値、第2の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御工程と
を備えることを特徴とする画像符号化方法。 - コンピュータに請求項6に記載の画像符号化方法を実行させるためのプログラム。
- 請求項7に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007228278A JP2009060536A (ja) | 2007-09-03 | 2007-09-03 | 画像符号化装置、画像符号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007228278A JP2009060536A (ja) | 2007-09-03 | 2007-09-03 | 画像符号化装置、画像符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009060536A true JP2009060536A (ja) | 2009-03-19 |
Family
ID=40555831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007228278A Withdrawn JP2009060536A (ja) | 2007-09-03 | 2007-09-03 | 画像符号化装置、画像符号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009060536A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015030226A1 (ja) * | 2013-09-02 | 2015-03-05 | 三菱電機株式会社 | 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム |
JP2015142233A (ja) * | 2014-01-28 | 2015-08-03 | 富士通株式会社 | 動画像符号化装置 |
-
2007
- 2007-09-03 JP JP2007228278A patent/JP2009060536A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015030226A1 (ja) * | 2013-09-02 | 2015-03-05 | 三菱電機株式会社 | 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム |
JP2015142233A (ja) * | 2014-01-28 | 2015-08-03 | 富士通株式会社 | 動画像符号化装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10057590B2 (en) | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding | |
CN110139035B (zh) | 用于热管理和功率管理的方法和电子装置 | |
US9967577B2 (en) | Acceleration interface for video decoding | |
JP6286718B2 (ja) | 高効率な次世代ビデオコーディングのためのフレーム階層応答型量子化を使用する、コンテンツ適応ビットレートおよび品質管理 | |
US10291925B2 (en) | Techniques for hardware video encoding | |
US8395634B2 (en) | Method and apparatus for processing information | |
KR101158345B1 (ko) | 디블록킹 필터링을 수행하는 방법 및 시스템 | |
JP4641892B2 (ja) | 動画像符号化装置、方法、及びプログラム | |
US7916785B2 (en) | Image processing apparatus and method | |
JPH08251595A (ja) | 画像伸張装置 | |
CN110740318A (zh) | 用于视频处理和视频译码的自动自适应长期参考帧选择 | |
JP2011130410A (ja) | 符号化方法、復号化方法及び装置 | |
US8665955B2 (en) | Method of storing pictures in a memory using compression coding and cost function including power consumption | |
US20110096833A1 (en) | Software video decoder display buffer underflow prediction and recovery | |
US9319682B2 (en) | Moving image encoding apparatus, control method therefor, and non-transitory computer readable storage medium | |
US20030118239A1 (en) | Apparatus for prediction coding or decoding image signal and method therefor | |
KR20170007665A (ko) | 스킵 모드 정보를 이용한 레이트 조절 인코딩 방법 및 그에 따른 인코딩 장치 | |
EP3266203A1 (en) | Content-adaptive b-picture pattern video encoding | |
US8111753B2 (en) | Video encoding method and video encoder for improving performance | |
US7764845B2 (en) | Signal processing method and device and video system | |
JP2009060536A (ja) | 画像符号化装置、画像符号化方法 | |
JP2007325119A (ja) | 画像処理装置及び画像処理方法 | |
US20110051815A1 (en) | Method and apparatus for encoding data and method and apparatus for decoding data | |
JP2011055023A (ja) | 画像符号化装置及び画像復号化装置 | |
WO2008079330A1 (en) | Video compression with complexity throttling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101207 |