JP4490046B2 - 画像符号化装置及び画像符号化方法 - Google Patents

画像符号化装置及び画像符号化方法 Download PDF

Info

Publication number
JP4490046B2
JP4490046B2 JP2003120626A JP2003120626A JP4490046B2 JP 4490046 B2 JP4490046 B2 JP 4490046B2 JP 2003120626 A JP2003120626 A JP 2003120626A JP 2003120626 A JP2003120626 A JP 2003120626A JP 4490046 B2 JP4490046 B2 JP 4490046B2
Authority
JP
Japan
Prior art keywords
frame
bits
frame rate
encoded
frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003120626A
Other languages
English (en)
Other versions
JP2004007619A (ja
Inventor
京子 内林
眞也 角野
孝啓 西
潤 ▲たか▼橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003120626A priority Critical patent/JP4490046B2/ja
Publication of JP2004007619A publication Critical patent/JP2004007619A/ja
Application granted granted Critical
Publication of JP4490046B2 publication Critical patent/JP4490046B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像符号化技術及び画像復号化技術に関し、特に可変ビットレート方式や可変フレームレート方式を用いた画像符号化技術に関する。
【0002】
【従来の技術】
従来、MPEG(Moving Picture Expert Group)規格等の画像符号化技術におけるビットレートを制御する方式の一つに可変ビットレート(Variable Bit Rate)方式がある。これは、主に符号化データを蓄積するバッファメモリの容量等の制約や、記録媒体に記録する際の映像記録時間の制約を守るため、符号化される画像の複雑さに伴う局所的なビットレートの変化を許容しつつ、所定の時間長(例えば、1秒間)における発生ビット数を一定内に抑えるという制御方式である。つまり、符号化が困難なシーンにおいては符号化のためのビットを多く発生させ(ビットレートが高くなり)、符号化が容易なシーンでは発生させるビット数を少なくする(ビットレートが低くなる)ことにより、シーンに応じて割り当てるビット数を制御するものである。即ち、一定時間内の発生ビット数を一定に保ちつつ(即ち、バッフメモリ容量の制約や記録時間の制約の範囲で)、高画質な画像を再現できるように符号化を行なおうとするものである(例えば、特許文献1参照)。
【0003】
上記従来の可変ビットレート方式を用いた画像符号化装置について、図32の画像符号化装置100を用いて説明する。この画像符号化装置100は、直交変換部105、量子化部106、可変長符号化部107、逆量子化部108、逆直交変換部109、フレームメモリ102、動き検出部103、動き補償部104及びビットレート制御部110から構成されている。
【0004】
直交変換部105は、受信した被符号化フレーム信号101(画像信号データ)に対して、マクロブロック単位で離散コサイン変換(DCT:Discrete Cosine Transform)を行ない、DCT係数を生成して量子化部106に出力する。ここで、I(Intra coded)ピクチャのフレームについては、画面内符号化モードでDCT演算が行われる。P(Predictive coded)ピクチャのフレームについては、時間的に過去に位置するIピクチャ又はPピクチャに基づいて前方向予測符号化モードでDCT演算が行なわれる。B(Bidirectionally)ピクチャのフレームについては、時間的に前後に位置するIピクチャ又はPピクチャに基づいて両方向予測符号化モードでDCT演算が行なわれる。
【0005】
量子化部106は、直交変換部105から入力したDCT係数に対し、マクロブロック毎にビットレート制御部110から受信した量子化ステップ(又は量子化パラメータでもよい。)で量子化を行ない、可変長符号化部107及び逆量子化部108に出力する。可変長符号化部107は、量子化部106から入力した量子化されたDCT係数等について可変長符号化及び多重化を行ない、出力バッファ(図示せず)に出力する。
【0006】
逆量子化部108は、量子化部106から受信した量子化されたDCT係数に対して逆量子化演算を行ない、逆直交変換部109に出力する。逆直交変換部109は、逆量子化部108から入力した逆量子化されたDCT係数に基づいて逆直交変換演算を行なって画像信号データを再現し、フレームメモリ102に出力する。
【0007】
フレームメモリ102は、Iピクチャ又はPピクチャの復号化された画像信号データと動き補償部104で生成された動き補償データとを加算して格納する。動き検出部103は、フレームメモリ102に格納されている参照画像から動きベクトルを検出し、この動きベクトルを表すデータを動き補償部104に出力する。
【0008】
動き補償部104は、Pピクチャ又はBピクチャの符号化のためにフレームメモリ102に格納されている参照画像と動き検出部103から入力した動きベクトルを表すデータに基づいて動き補償データ(参照画像データ)を生成する。ビットレート制御部110は、可変長符号化部107から発生ビット数を受信し、この発生ビット数に基づいて、量子化ステップを決定し、この量子化ステップを量子化部106に送信する。
【0009】
全体制御部140は、例えば、ROMやRAM等を備えるマイクロコンピュータ等であり、画像符号化装置100全体の制御を行なう部分である。全体制御部140は、制御信号等に基づいて、それぞれの処理タイミングの制御等を行なう。
【0010】
図33は、従来の画像符号化装置100におけるビットレート制御部110の機能構成を示すブロック図である。図33に示されるように、ビットレート制御部110は、フレーム群目標ビット数導出部111、次フレーム目標ビット数導出部112及び量子化ステップ導出部113から構成される。
【0011】
フレーム群目標ビット数導出部111は、可変長符号化部107から発生ビット数Nn131を受信して内部のメモリ(図示せず)に格納する。この際、フレーム群目標ビット数導出部111は、発生ビット数Nn131を受信した回数(つまり、符号化を行なったフレームのフレーム数)をカウントする。さらに、フレーム群目標ビット数導出部111は、フレーム群単位で未だ符号化されていないフレームに対する割り当て可能なビット数を算出し、次フレーム目標ビット数導出部112に送信すると共に、実際の符号化によって生じた発生ビット数Nn131を用いて、上記の割り当て可能なビット数を順次更新する。ここで、「フレーム群」とは、所定の時間長に符号化され得るフレームの集まりをいう。
【0012】
次フレーム目標ビット数導出部112は、フレーム群目標ビット数導出部111から受信したフレーム群単位で割り当て可能なビット数に基づいて、次のフレームに割り当てるビット数の目標値を導出し、量子化ステップ導出部113に送信する。上記目標値は、その時点のフレーム群単位で割り当て可能なビット数を残りのフレーム数で除することによって算出する。
【0013】
量子化ステップ導出部113は、次フレーム目標ビット数導出部112から受信した次のフレームに割り当てるビット数の目標値に基づいて、量子化ステップ141(量子化パラメータでもよい。)を算出して量子化部106に出力する。
【0014】
図34は、従来の画像符号化装置100の全体制御部140及びビットレート制御部110における処理の流れを示すフローチャートである。
【0015】
最初に、ビットレート制御部110によって発生ビット数Nn131が受信されると(S1401)、全体制御部140は、次の符号化対象のフレームがフレーム群の先頭か否かを判断する(S1402)。この場合、次のフレームがフレーム群の先頭のフレームの場合は(S1402:Yes)、ビットレート制御部110は、割当可能ビット数Na、割当対象期間Ta及び割当対象フレーム数Ntの初期化を行なう(S1405〜1407)。ここで、"NA"は、フレーム群単位に割り当てるビット数の初期値である。"TA"は、フレーム群全体の期間である。"Rf"は、本画像符号化装置100の符号化のフレームレートである。
【0016】
一方、次のフレームがフレーム群の先頭のフレームでない場合は(S1402:No)、ビットレート制御部110は、割当可能ビット数Na及び割当対象期間Taの更新を行なう(S1403〜1404)。
【0017】
次に、ビットレート制御部110は、割当可能ビット数Naと割当対象フレーム数Ntに基づいて割当ビット数Nbを算出し(S1408)、割当対象フレーム数Ntの更新(デクリメント)を行なう(S1409)。
【0018】
この後、ビットレート制御部110は、符号化するフレームについて間引きが必要か否かを判定し、間引きが必要な場合はその旨を全体制御部140に通知し(S1410:Yes)する。一方、間引きをする必要がない場合は(S1410:No)、量子化ステップを算出して量子化部106に出力する(S1411)。
【0019】
全体制御部140及びビットレート制御部110は、以上の処理を符号化処理が終わるまで繰り返す(S1401〜1412)。
【0020】
図35は、従来のビットレート制御部110における割当ビット数Nbの算出方法の具体例を示した図である。なお、この場合は、便宜上、発生ビット数Nn131と割当ビット数Nbとは、一致するものとする。
【0021】
図35の例では、30[fps]で入力される画像信号データ(被符号化フレーム信号101)に対して、15[fps]のフレームレートで符号化が行なわれ、原則として15フレームで構成されるフレーム群が毎秒1つ生成されることとする。この例では、入力される被符号化フレーム信号101を「入力画像フレーム番号1701」で表し、符号化フレーム信号121を「フレーム群フレーム番号1702」で表している。図35において、フレーム群フレーム番号1702及び発生ビット数Nn131の欄が「×」となっているのは、対応する入力画像フレーム番号1701のフレームについては符号化がされず、「間引き」されたことを表す。
【0022】
さらに、図35において、例えば入力画像フレーム番号「9」(すなわち、フレーム群フレーム番号「5」)に対する発生ビット数Nnは、既に4つのフレームに割り当てられたビット数の合計が1180ビットで、残りのフレーム数が「11」であるため、((3600−1180)/11=220ビット)となる。
【0023】
一方、入力画像フレーム番号「13」(すなわち、フレーム群フレーム番号「6」)に対する発生ビット数は、入力画像フレーム番号「11」が「間引き」されているので、既に割り当てられたビット数の合計が1400ビットで、残りのフレーム数が「9」であるため、小数点以下を切り捨てて((3600−1400)/9=244ビット)となる。
【0024】
なお、図35の入力画像フレーム番号「29」に対応するフレーム群フレーム番号1702の欄に記載されている"(14)"は、入力画像フレーム番号1701が「13」の時点における、最後のフレーム群フレーム番号1702の予想値である。
【0025】
以上のように、従来の画像符号化装置100では、次の符号化対象のフレームにビットを割り当てている。
【0026】
【特許文献1】
特開2001−25015号公報
【0027】
【発明が解決しようとする課題】
しかしながら、上記の従来技術における可変ビットレートを用いた画像符号化装置100においては、符号化が困難な(複雑な)フレームが連続する場合、量子化ステップを大きな値に変えても符号化に伴う発生ビット数が多くなる(この場合は、ビットレートの値が大きくなる)。すると、所定の時間長(1つのフレーム群)における発生ビット数を一定に保とうとするために、符号化が困難なフレームが連続した後のフレームについては、割り当てるビット数が少なくなってしまう。このため、後のフレームについては量子化ステップを大きくして符号化しなければならず、それらのフレームの画質が極端に劣化してしまうという第1の問題がある(この場合の現象としては、ビットレートが著しく小さな値となる)。
【0028】
図36は、上記従来技術の第1の問題を説明するための図である。図36では、フレーム1601からフレーム1602までの15枚のフレームをフレーム群と定義し、フレーム群毎に、目標値として(上記図35に示されるように)3600[ビット]を割り当てることとする。この場合、時刻t1から符号化が困難なシーンが連続し、それらのフレームの符号化に多くのビットが割り当てられた場合は、フレーム群の後半に割り当て得るビット数が少なくなるため、量子化ステップを大きくする必要が出てくるが(これに伴ってビットレートが小さくなる)、量子化ステップを大きな値とした場合は、画質が極端に劣化する。図36においては、「t3−t4」間で量子化ステップが特に大きくなっており、これに伴って画質の劣化が生じていると推測できる。
【0029】
さらに、いよいよ割り当て得るビット数が少なくなり、フレーム群の途中でフレームレートを変化させなければ(すなわち、フレームを間引かなければ)ならなくなった場合は、フレームレートが変化したにも拘らず、1つのフレームに割り当てられるビット数は当初のフレームレートに基づいて決定されるので、フレームレートを下げたにも拘らずビット数を多く割り当てることができず、さらにフレームレートを下げるか、量子化ステップを粗くすることが必要となり、さらなる画質の劣化をきたすという第2の問題点がある。
【0030】
図37は、上記従来技術の第2の問題を説明するための図である。図37の例では、符号化が困難なシーンが連続し、それらのフレームの符号化に多くのビットが割り当てられたため、フレームレートを徐々に下げた結果、フレーム間隔が大きく空いてしまい、結局、動きがぎこちない画像となり、画像としての品質が劣化する様子が示されている。
【0031】
そこで、本発明は、上記課題に鑑みてなされたものであり、符号化が困難なシーンが連続した場合であっても、残りのフレームに割り当て得るビット数が極端に不足することによる画質の劣化を防止すると共に、符号化されるフレームのレートの変化をも考慮しながら高画質の画像のための符号化を可能にする画像符号化装置及びその方法を提供することを目的とする。
【0032】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る画像符号化装置は、フレーム単位で順次入力される画像信号について符号化を行なう画像符号化装置であって、画像信号の周波数成分をフレーム毎に量子化し、量子化された結果に基づいて符号化する符号化手段と、複数のフレームから構成されるフレーム群割り当て総ビット数を特定する総ビット数特定手段と、フレームレートと前記フレーム群における既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定手段と、前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出手段と、前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出手段と、前記符号化手段によって符号化された符号化データを保持し、一定量ずつ外部に出力する送信バッファと、前記送信バッファに残留している符号化データのデータ量と前記量子化ステップに基づいて、次に符号化するフレームの周期を示すフレームレートを決定するフレームレート制御手段と、前記フレームレート制御手段で決定されたフレームレートに基づいて、前記符号化手段に入力する画像信号の取捨を制御する入力制御手段とを備え、前記目標ビット数算出手段は、前記総ビット数特定手段によって特定された総ビット数を前記フレームレート制御手段によって決定されたフレームレートから算出されるフレーム群のうち未だ符号化されていないフレーム数で除することによって前記ビット数の目標値を算出する。
【0033】
これにより、フレーム群において一定のビットレートになるように、フレーム群全体に割り当てられた総ビット数と既に割当済みのビット数に基づいて、次の符号化するフレームに割り当てるべきビット数を計算するので、割り当てられるビット数が局所的に偏ってしまう場合を未然に回避して平均化したビット割り当てが可能となり、最終的に極端な画質の劣化を防止することが可能となる。
【0034】
また、上記目的を達成するために、本発明に係る画像符号化装置は、さらに、前記フレーム群における既に符号化されたフレームレートと、それによって発生したビット数とに基づいて、発生ビット数の平均値を算出する平均値算出手段と、前記算出された前記発生ビット数の平均値に対して、所定の係数を乗じて得た新たなビット数の目標値と、前記算出された目標ビット数とを比較して、大きい方を基本目標値とし、あらかじめ設定された下限値と前記基本目標値とを比較して大きい方を新たなビット数の目標値する演算手段とを備え、前記量子化ステップ導出手段は、前記演算手段によって特定されたビット数の目標値を用いて量子化ステップを導出することを特徴とする。
【0035】
これにより、受け付けたフレームレートから算出した未だ符号化されていないフレーム数と、フレーム群における割り当て可能なビット数とに基づいて、次に符号化するフレームに割り当てるべきビット数を決定するので、フレームレートの変化に則した符号化が可能となる。
【0036】
また、上記目的を達成するために、本発明に係る画像符号化装置は、さらに、既に符号化されたが未送信のデータを格納する格納手段と、前記格納手段に格納されているデータ量に基づいて、次に符号化するフレーム係るフレームレートを計算するフレームレート計算手段を備え、前記フレームレート受付手段は、前記計算されたフレームレートを受け付けることを特徴とする。
【0037】
これにより、所定の時間長で観測した場合のビットレートを一定に保ちながら、バッファに十分空きがある場合は低い量子化ステップで符号化することで、従来よりも高画質に符号化することができ、かつ複雑なシーンへ移行した場合のフレームレートの急激な低下(多くのフレームが符号化されずスキップされること)を抑制し、従来よりも動きの滑らかな符号化を行なうことが可能となる。
【0038】
なお、上記目的を達成するために、本発明は、上記画像符号化装置の特徴的な手段をステップとする画像符号化方法として実現したり、これらのステップを含むプログラムとして実現したりすることもできる。そして、そのプログラムは、画像符号化装置が備えるROM等に格納しておくだけでなく、CD−ROM等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることもできる。
【0039】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら詳細に説明する。なお、以下の説明では、従来技術と共通する構成については同一の符号を付し、その説明は省略する。
【0040】
(実施の形態1)
図1は、実施の形態1に係る画像符号化装置10の機能構成を示すブロック図である。この画像符号化装置10は、所定の時間長(例えば、1秒間)で観測した場合におけるビットレートを一定に保ちながら、局所的なビットレートの変動をも抑えることにより、より高品質な画像の再現のための符号化を可能とする。
【0041】
画像符号化装置10は、フレームメモリ102、動き検出部103、動き補償部104、直交変換部105、量子化部106、可変長符号化部107、逆量子化部108、逆直交変換部109、フレーム間引部20、レート制御部30及び全体制御部40から構成されている。
【0042】
フレーム間引部20は、一定の周期で入力される被符号化フレーム信号101に対し、そのフレームの符号化/非符号化を決定すると共に、その時点のフレームレート値Rf21をレート制御部30に通知する。
【0043】
レート制御部30は、可変長符号化部107から受信した発生ビット数とフレーム間引部20から通知を受けたフレームレート値Rf21とに基づいて、次のフレームの符号化における量子化ステップ(又は量子化パラメータ)を決定し、量子化部106に送信する。
【0044】
全体制御部40は、例えば、ROMやRAM等を備えるマイクロコンピュータであり、画像符号化装置10全体の制御を行なう。より詳細には、全体制御部40は、制御信号(図1の全体制御部40における破線は制御信号線を表している)に基づいて、各部の処理タイミングの制御を行なう。さらに、全体制御部40は、一定の周期で入力される被符号化フレーム信号101のピクチャタイプの識別(Iフレーム、Bフレーム及びPフレームの識別)を行ない、その識別結果をレート制御部30に通知する。
【0045】
図2は、図1におけるレート制御部30の詳細な機能構成を示すブロック図である。レート制御部30は、フレーム群目標ビット数導出部31、次フレーム目標ビット数導出部32、平均フレームビット数導出部33、演算部34、量子化ステップ導出部35及び記憶部36から構成される。
【0046】
フレーム群目標ビット数導出部31は、フレーム群単位で、残りの符号化すべき全てのフレームに割り当て可能な総ビット数の目標値を逐次算出し更新する。より詳細に説明すると、フレーム群目標ビット数導出部31は、可変長符号化部107から発生ビット数Nn131を受信して記憶部36に記憶する。さらに、フレーム群目標ビット数導出部31は、次の符号化すべきフレームからフレーム群の最後のフレームまでに割り当て可能な総ビット数を記憶部36から読み出し、この総ビット数から上記の発生ビット数Nn131を減じ、その値を次フレーム目標ビット数導出部32に送信すると共に記憶部36に格納する。
【0047】
次フレーム目標ビット数導出部32は、フレーム間引部20から受信したフレームレート値Rf21及びフレーム群目標ビット数導出部31から受信した割り当て可能な総ビット数に基づいて、残りの符号化すべきフレームのフレーム数を考慮し、次のフレームに割り当てるビット数の目標値を算出する。
【0048】
平均フレームビット数導出部33は、フレーム間引部20から受信したフレームレート値Rf21及び記憶部36に記憶されている過去のフレームに割り当てられたビット数に基づいて、割り当てられたビット数の平均値を算出する。
【0049】
演算部34は、平均フレームビット数導出部33で算出されたビット数に、所定の係数(例えば、0.8)を乗じたビット数を算出し、これと次フレーム目標ビット数導出部32で算出されたビット数の目標値とを比較し、値の大きい方のビット数を選択する。さらに、演算部34は、選択されたビット数と予め設定されている下限値とを比較し、より大きい値のビット数を選択して(すなわち、下限値を下回らないビット数を選択して)量子化ステップ導出部35に送信する。なお、上記の所定の係数は、「0.8」に限定するものではなく、0より大きく1以下の他の値であってもよい。
【0050】
量子化ステップ導出部35は、演算部34から受信したビット数と発生ビット数が等しくなるように量子化ステップの値を導出する。
【0051】
記憶部36は、可変長符号化部107から受信した各フレームを符号化した結果である発生ビット数Nn131を記憶する。さらに、記憶部36は、フレーム群目標ビット数導出部31の制御に従ってフレーム群目標ビット数を更新する。
【0052】
図3は、画像符号化におけるピクチャタイプ別の発生ビット数の一般的な特徴を示す図である。図3に示されるように、通常、画面内符号化(Iピクチャ)のフレーム(Iフレーム210〜250)における発生ビット数Nnより、画面間符号化(Pピクチャ又はBピクチャ)のフレーム(P又はBフレーム)における発生ビット数Nnの方が少なくなる。従って、Iフレームから次のIフレームまでを1つのフレーム群と定義することによって、他の規則に基づいてフレーム群を定義する場合(例えば、ピクチャタイプと無関係に15フレーム毎にフレーム群を構成させる場合)に比べ、各フレーム群における発生ビット数の偏りを少なくすることができる。なお、図3の例では、便宜上、各フレーム群の符号化に要する時間をTAとし、同一の周期とした。
【0053】
なお、フレーム群の最初のフレームが上記のIフレームであったり、フレーム群の最後のフレームがIフレームであったりすることのみでも、各フレーム群におけるビット数の偏りを少なくする効果が得られ得る。
【0054】
図4は、上記図3で定義したフレーム群の具体例を示した図である。図4に示されるように、フレーム群310は、画面内符号化(I)フレーム210から画面内符号化(I)フレーム220の直前のフレームの15枚のフレームで構成されることとする。同様に、フレーム群220やフレーム群230もそれぞれ15枚のフレームで構成されることとする。この場合、1つのフレーム群に割り当て可能な総ビット数の初期値を予め決定しておく(例えば、3600「ビット]等」。なお、フレーム群の定義の仕方は図4に限定するものではない。
【0055】
図5は、上記図3で定義したフレーム群の変形例である。図5に示されるように、上記図4における2つのフレーム群310、320に相当する第1フレームセットと第2フレームセットからなるフレームの集まりを1つのフレーム群410として定義してもよい。この場合、フレーム群410に割り当て可能な総ビット数の初期値を7200[ビット](第1フレームセット及び第2フレームセットにそれぞれ3600[ビット])とする。
【0056】
図6は、上記図5のように2つのフレームセットでフレーム群を構成することによる効果を説明するための図である。図6(a)は、1つのフレーム群の中に符号化が困難なシーンがあった場合でも、次の第2フレームセットにおける割当可能ビット数を含めて次の被符号化フレームの割当ビット数を決定することができるため、よりビットレートの変化を緩和させることが可能となる。例えば、初期値としてフレーム群410全体で1000ビットを割り当て、第1フレームセットに500ビット、第2フレームセットに500ビット暫定的に割り当てることとする。この後、実際の符号化で第1フレームセットにおいて700ビットを使用したとしても、次のフレーム群420では、初期値として全体で800[ビット](前のフレーム群410の残り分300[ビット]+新規の第2フレームセット分500[ビット])を割り当てるように制御する。
【0057】
図6(b)は、さらに符号化が困難のためフレームレートが変更させなければならない場合であっても、上記図6(a)と同様の方法で、ビットレートが急激に小さな値となる(すなわち、量子化ステップが急激に大きくなる)ことを回避することができる。
【0058】
図7は、画像符号化装置10の全体制御部40及びレート制御部30における処理の流れを示すフローチャートである。
【0059】
最初に、レート制御部30は、可変長符号化部107から発生ビット数Nn131を受信し(S701)、フレーム間引部20からフレームレート値Rf21を受信する(S702)。
【0060】
次に、全体制御部40は、次のフレームがIフレームか否かを識別する(S703)。この場合、次のフレームがIフレームの場合は(S704:Yes)、レート制御部30は、割当可能ビット数Na、割当対象期間Ta及び割当対象フレーム数Ntの初期化を行なう(S708〜S710)。
【0061】
一方、次のフレームがIフレームでない場合(S704:No)、レート制御部30は、割当可能ビット数Na及び割当対象フレーム数Ntの更新を行なう(S705、S706)。さらに、レート制御部30は、割当対象フレーム数Ntの小数点以下を切り捨てて、このNtについて整数化を行なう(S707)。
【0062】
この後、レート制御部30は、割当可能ビット数Na及び割当対象フレーム数Ntに基づいて割当ビット数Nbを算出し(S711)、割当対象期間Taの更新を行なう(S712)。この場合、割当対象期間Taは、フレームレート値Rf21の値が同一のフレーム群の途中で変更した場合にも考慮して更新がなされる。
【0063】
これにより、レート制御部30は、割当ビット数Nbに基づいて量子化ステップを導出し、可変長符号化部107に送信する(S713)。
【0064】
全体制御部40及びレート制御部30は、以上の処理を符号化処理が終わるまで繰り返す(S701〜S714)。
【0065】
図8は、画像符号化装置10を用いて符号化を実行した場合のビットレートの変化を示す一例である。図8に示されるビットレートの変化をみてみると、演算部34における係数(例えば、0.8)のために、従来技術の場合(上記図36)に比べ、割り当て可能なビット数が少なく抑えられるため、ビットレートの変化が鈍化する傾向にある。さらに、図8においては、上記演算部34において、下限値を下回らないビット数が選択され、符号化後のビット数がこのビット数になるように量子化ステップが算出される。さらに、算出された量子化ステップに従って符号化が実行され、発生ビットが決定されるため、ビットレートについても下限値以上の値となっている様子が示されている。
【0066】
図9は、上記図5に示したように、2つのフレームセットで1つのフレーム群を構成した場合のビットレートが変動する様子を示した一例である。図9に示されるように、従来技術(上記図36)ではビットレートの値が著しく小さく(すなわち、量子化ステップが著しく大きく)なった「t3−t4」間においては、ビットレートの値が小さくなることを抑え、画質の劣化を抑制することができたが、第1フレームセットで多くのビット数を使用した影響が、第2フレームセットの最初の部分(「t4−t6」間)に出ている(すなわち、量子化ステップを小さくできずビットレートの値が小さいままの)様子が示されている。
【0067】
図10は、2つのフレームセットで1つのフレーム群を構成し、かつ、フレーム群の途中で符号化のフレームレートが変化した場合におけるビットレートの変化の様子を示した一例である。図10では、フレームレートが15[fps]から7.5[fps]に変化しているが、ビットレートの変化の仕方が上記図8のビットレートと同じである(つまり、図10の場合は、1/2の量子化ステップで符号化を行なって2倍のビット数が発生したために、ビットレートとしては同一になったと想定される場合であり、この場合においても「t3−t4」間で画質の劣化が抑制されている)。
【0068】
図11は、上記図2の演算部34におけるビット数の算出方法の具体例を示した図である。図11の例では、30[fps]で入力される被符号化フレーム信号101に対して、15[fps]のフレームレートで符号化が実施されている。この例においても、上記図37と同様に、入力される被符号化フレーム信号101を「入力画像フレーム番号1701」で表し、符号化フレーム信号121を「フレーム群フレーム番号1102」で表している。図11において、フレーム群フレーム番号1102及び発生ビット数Nn131の欄が「×」となっているのは、対応する入力画像フレーム番号1701のフレームについては符号化がされず、「間引き」されたことを表す。
【0069】
さらに、図11において、例えば入力画像フレーム番号「9」(すなわち、フレーム群フレーム番号「5」)に対する発生ビット数の目標値は、既に割り当てられたビット数の合計が1180[ビット]で、残りのフレーム数は「11」であるため、((3600−1180)/11=220[ビット])となる。また、平均フレームビット数導出部33における過去のフレームにおける発生ビット数の平均値(1180/4=295[ビット])を算出し、演算部34において、発生ビット数の平均値に係数(例えば、0.8)を乗じ、これと上記のビット数の目標値とを比較して値の大きい方を選択する。その結果、フレーム群フレーム番号「5」に対する発生ビット数は、236[ビット]となる。
【0070】
一方、入力画像フレーム番号「13」(すなわち、フレーム群フレーム番号「6」)に対する発生ビット数は、入力画像フレーム番号「11」のフレームについては「間引き」されているため(従って、フレームレート値Rf21が7.5[fps]に変更され)、残りのフレーム数(フレームレート値Rf21を7.5[fps]で計算するので)「5」に基づいて計算する。さらに、計算された値に対して小数点以下を切り捨てるので、(3600−1416)/5=436[ビット]となる。また、平均フレームビット数導出部33における過去のフレームにおける発生ビット数の平均値(1416/5=383[ビット])を算出し、演算部34において、発生ビット数の平均値に係数(例えば、0.8)を乗じ、これと上記ビット数の目標値とを比較して値の大きい方を選択する。その結果、入力画像フレーム番号「13」に対する発生ビット数は、436[ビット]となる。
【0071】
図11と上記従来技術の図35におけるフレーム群フレーム番号「5」及び「6」の発生ビット数Nnを比較してみると、何れも本画像符号化装置10(すなわち、上記図11)における発生ビット数の方が大きな値となっており、より多くのビット数の割り当てができるため、従来より高品質な画像のための符号化が可能であることが明らかである。
【0072】
なお、上記図11の入力画像フレーム番号「29」に対応するフレーム群フレーム番号の欄に2つの数字が記載されているが、"(15)"は、入力画像フレーム番号が「9」の時点における、フレームレートが15[fps]の場合のフレーム群フレーム番号1102の予想値であり、"(10)"は、入力画像フレーム番号が「13」の時点における、フレームレートが7.5[fps]の場合のフレーム群フレーム番号1102の予想値である。
【0073】
なお、上記の実施の形態1では、フレーム間引部20を設け、フレーム間引部20から送信されるフレームレート値Rf21に基づいて、ビットレートの制御を行なうように構成したが、フレームレートの値はフレーム間引部以外から入手してもよい。
【0074】
図12は、上記図1におけるフレーム間引部20を設けず、その他の部署からフレームレート値Rf21の値を入手するように構成した画像符号化装置50の機能構成の一部を示したブロック図である。画像符号化装置50が上記図1の画像符号化装置10と異なる点は、フレーム間引部20がない点と全体制御部40に代えて全体制御部60を備えている点のみである。
【0075】
また、上記実施の形態における量子化ステップは、量子化パラメータと一意に対応するものであるため、当該量子化ステップを量子化パラメータに置き換えて用いることとしてもよい。
【0076】
以上のように、本実施の形態に係る画像符号化装置によれば、符号化のフレームレートの変化に対応させながらより割り当てるビット数を決定するので、画像の符号化が困難か否かに関わらず平均的に良好な画質を確保し、極端に動きがぎこちなくなったり画質が劣悪になったりすることを回避することができる。
【0077】
さらに、上記実施の形態1で示した画像符号化装置によって符号化されたビットストリームは、一般的な画像復号化方法によって復号可能である。また、本実施の形態1による符号化を行なったストリームは画像の複雑さに伴って各フレームの量子化ステップが変動するが、その変動は極端なものではなく、画面内符号化フレームから画面内符号化フレームの直前までのフレームで構成されるフレーム群において、発生ビット数をほぼ一定にすることが可能となる。
【0078】
なお、上記の実施の形態1では、各フレーム群の符号化に要する周期を「TA」として同一としたが、同一とする場合に限るものではなく、各フレーム群の符号化に要する時間が異なっていてもよい。
【0079】
また、上記の実施の形態では、平均フレームビット数導出部で算出されたビット数の平均値にのみ所定の係数(例えば、0.8)を乗じ、これと次フレーム目標ビット数導出部で算出されたビット数の目標値とを比較して値の大きい方のビット数を選択するように構成したが、これら両方に所定の係数を乗じて比較するように構成してもよい。
【0080】
(実施の形態2)
図13は、実施の形態2における画像符号化装置2100の機能構成を示すブロック図である。画像符号化装置2100は、上記実施の形態1の図5に示すように従来の2倍の数のフレームから構成される一かたまりのフレーム群を考慮しながら、量子化ステップやフレームの間引きを制御することにより、急激なビットレートやフレームレートの変動を抑制しつつ、高画質な符号化を可能とする。
【0081】
画像符号化装置2100は、フレーム間引部2101、フレームメモリ102、動き検出部103、動き補償部104、直交変換部105、量子化部106、可変長符号化部107、送信バッファ2108、逆量子化部2109、逆直交変換部2110、差分器2111、加算器2112およびフレームレート制御部2113を備える。
【0082】
フレーム間引部2101は、基準となるフレームレート(例えば、30Hz)で入力される画像信号の各フレームに対して、フレームレート制御部2113から入力される間引き情報に従って間引き処理を行ない、間引きされた画像信号を動き検出部103および差分器2111に出力する。例えば、フレームレート制御部2113からフレーム間引部2101に入力される間引き情報の値が「1」のときは、間引きをしないでそのまま符号化を行なう指示を示し、値が「0」のときは、1フレーム間引きを行なって符号化を行なう指示を示すこととする。つまり、フレーム間引部2101は、間引き情報が「1」のときは、画像信号として入力されたフレームをそのまま被符号化フレームとして動き検出部103および差分器2111に出力する。逆に、間引き情報が「0」のときは、入力されたフレームを間引く(例えば、廃棄する)という処理を行なう。
【0083】
フレームメモリ102は、RAM又はハードディスク等によって実現され、フレーム単位で画像データを保持するための記憶装置である。さらに、フレームメモリ102は、次の画面間予測符号化フレームの参照画像となる参照フレームデータを格納する。動き検出部103は、入力された被符号化フレームが画面間予測符号化を行なうフレームの場合、フレームメモリ102に格納された参照フレームデータを用いて、被符号化フレームの動きを検出する。動き補償部104は、動き検出部103によって検出された動きに対応する動き補償データを生成する。この動き補償データは、参照フレームと被符号化フレームとのブロック間の対応を示す動きベクトル、およびその動きベクトルによって示されるブロック間の画像信号の差分を示すデータである。
【0084】
差分器2111は、被符号化フレームが画面間予測符号化を行なうフレームの場合、被符号化フレームの動きベクトルと動き補償部104とによって生成された動き補償データに基づく動きベクトルとの差分を求める。一方、被符号化フレームが、画面内予測符号化を行なうフレームの場合、差分器2111は、入力された画像信号に対して参照フレームとの差分を求める処理を行わず、画面内で予測を行なった後、直交変換部105に画像信号を出力する。
【0085】
直交変換部105は、動き補償部104において生成された動き補償データをDCT(Discrete Cosine Transform)変換などによって周波数成分を表すデータに直交変換し、その変換結果を量子化部106に出力する。量子化部106は、フレームレート制御部2113から入力される量子化ステップを用いて直交変換されたデータを量子化し、その量子化された結果を可変長符号化部107および逆量子化部2109に出力する。可変長符号化部107は、量子化部106による量子化されたデータを、ハフマン符号などを用いて可変長符号化する。可変長符号化部107で可変長符号化されたデータは、送信バッファ2108に格納され、符号化ビットストリームとして出力される。
【0086】
送信バッファ2108は、RAMなどによって実現されるFIFO(First-In First-Out)メモリである。この送信バッファ2108は、例えば、上記実施の形態1の図5に示されるように、複数のフレームから構成されるフレーム群に割り当てられた総ビット数を記憶すると共に、内部のデータ残量または空き容量をモニタしており、可変長符号化されたデータが送信バッファ2108に送信された時点で、即ち1フレーム分の画像信号の符号化が完了した時点で、送信バッファ2108のデータ残量をフレームレート制御部2113に送信する。
【0087】
逆量子化部2109は、予測画像を生成するために量子化部106によって量子化されたデータを逆量子化し、逆直交変換部2110に出力する。逆直交変換部2110は、逆量子化部2109によって逆量子化されたデータを逆直交変換する。加算器2112は、逆直交変換部2110によって逆量子化されたデータと動き補償部104において生成された動き補償データとを加算してフレームメモリ102に出力する。フレームレート制御部2113には、送信バッファ2108から当該送信バッファ2108内のデータ残量が入力される。フレームレート制御部2113は、送信バッファ2108内のデータ残量に応じた量子化ステップを算出して量子化部106に出力すると共に、算出された量子化ステップに応じたフレームレートを計算し、次のフレームを間引くか否かを示す間引き情報を決定してフレーム間引部2101に出力する。ここで、「量子化ステップ」とは、各フレームの周波数成分を量子化する際の基準となる値(幅)であり、例えば「1」から「31」までの自然数(これを「量子化パラメータ」という)によって特定される。この量子化パラメータは、量子化ステップに1対1で対応しており、その数値が大きくなればなるほど、量子化の幅が大きくなるように定義されている。以下では、この量子化パラメータを「量子化ステップ」として説明する。
【0088】
図14は、上記図13におけるフレームレート制御部2113の詳細な機能構成を示すブロック図である。フレームレート制御部2113は、量子化ステップ予測部2201、フレームレート計算部2202、量子化ステップ決定部2203、フレーム数計算部2204および比較器2205を備える。量子化ステップ予測部2201は、送信バッファ2108から入力されたデータ残量に応じて現時点の量子化ステップに対して所定の演算を施し、量子化ステップ予測値を算出してフレームレート計算部2202および量子化ステップ決定部2203に出力する。 量子化ステップ決定部203は、量子化ステップ予測部201から入力された量子化ステップ予測値に最も近い「1」から「31」までの自然数を1つ選択し、選択した自然数を次の量子化ステップに決定する。具体的には、入力された量子化ステップ予測値が小数点以下の値を含む場合には、四捨五入、切捨てまたは切り上げなどの丸め処理を行なう。この場合、その値が「1」未満の場合には「1」を選択し、「31」を超える場合には「31」を選択する。
【0089】
フレームレート計算部2202は、送信バッファ2108から入力されたデータ残量と、量子化ステップ予測部201から入力された量子化ステップ予測値とに基づいて、現在のフレームレートから次の符号化の際における最適フレームレートを計算する。フレーム数計算部204は、比較器205から出力される間引き情報に基づいて、現在のフレームレートを計算する。比較器205は、フレームレート計算部202の出力である最適フレームレートと、フレーム数計算部204の出力である現在のフレームレートとを比較して、最適フレームレートが現在のフレームレートより大きい場合は、間引きしない旨の指示を示す「1」を間引き情報として出力する。一方、最適フレームレートが現在のフレームレートより小さい場合は、間引きを行なう旨の指示を示す「0」を間引き情報として出力する。
【0090】
図15は、上記図14における量子化ステップ予測部201の機能を説明するためのブロック図である。図15(a)は、量子化ステップ予測部201内の量子化ステップ予測方法を図式的に示す図である。図15(b)は、量子化ステップ予測部201に保持されている予測係数テーブル303を示す図である。量子化ステップ予測部201は、図15(a)に示す現在値メモリ2302と、図15(b)に示す予測係数テーブル2303とを保持している。現在値メモリ302は、符号化開始時においては量子化ステップの初期値を保持しており、符号化開始後には量子化ステップ予測部201によって算出された量子化ステップ予測値を保持する。予測係数テーブル303は、送信バッファ2108のデータ残量と予測係数とが対応付けられて格納されており、量子化ステップ予測部201は、送信バッファ2108から入力されるデータ残量に対応する予測係数を現在値メモリ302に保持している現在の量子化ステップ予測値に乗算して、次のフレームの量子化ステップ予測値を算出する。
【0091】
図15(a)および図15(b)に示されるように、予測係数は、送信バッファ2108内のデータ残量が50%以上80%未満では「1.2」に、80%以上90%未満では「1.5」に、90%以上100%以下では「2」というように、送信バッファ2108内の空き容量が少なくなるほど、その値を大きくして符号化されるデータのビット量が低減するように設定される。また、予測係数は、送信バッファ2108のデータ残量が40%以上50%未満では、そのままの量子化ステップを維持するように「1」に設定される。上記とは逆に、予測係数は、送信バッファ2108のデータ残量が30%以上40%未満の場合は「0.8」に、20%以上30%未満の場合は「0.5」に、0%以上20%未満の場合は「0.4」というように設定される。つまり、予測係数は、送信バッファ2108内の空き容量が多くなるほど、符号化されるデータのビット量が大きくなるように(即ち、量子化ステップを小さくして量子化をきめ細かく行ない、画質の品質を高めるように)設定される。
【0092】
例えば、現在値メモリ302内の量子化ステップ予測値が「7.5」で、送信バッファ2108内のデータ残量が75%であったとすると、次のフレームでは、現在値メモリ302内の量子化ステップ予測値「7.5」に予測係数「1.2」が乗算され、そのフレームに対する量子化ステップ予測値は「9」となる。算出された量子化ステップ予測値「9」は、量子化ステップ予測部2201によって現在値メモリ2302に上書きされる。この量子化ステップ予測値「9」は、「1」から「31」までの自然数であるから、量子化ステップ決定部2203によって当該フレームに対する量子化ステップとして決定される。当該フレームが量子化ステップ「9」で量子化された後、さらに次のフレームにおいても送信バッファ2108のデータ残量が70%であった場合は、現在値メモリ2302内の量子化ステップ予測値「9」には予測係数「1.2」が乗算され、次の量子化ステップ予測値は「10.8」となる。量子化ステップ決定部203が小数以下を四捨五入して量子化ステップを決定するとすると、その次のフレームは量子化ステップ「11」で量子化されることになる。このように予測係数を設定することによって、送信バッファ2108内のデータ残量が50%以上になると、量子化ステップが増大するので符号化される画像の画質が徐々に荒くなり、符号化されるデータのビット量を徐々に低減させることができる。一方、送信バッファ2108内のデータ残量が40%未満になると、量子化ステップが減少するのでデータのビット量は徐々に増大するが、符号化される画像の画質を徐々に向上させることができる。
【0093】
図16は、上記図14におけるフレームレート計算部2202の機能を説明するためのブロック図である。フレームレート計算部202は、送信バッファ2108のデータ残量と、量子化ステップ予測値とに基づいて最適フレームレートを計算する部署であり、比較器2401、比較器2402、フレームレートテーブル2403、閾値メモリ2404、閾値メモリ2405および空き容量算出部2406を備える。閾値メモリ2404および閾値メモリ2405は、ラッチ回路またはRAMなどによって実現される。比較器2401には、量子化ステップ予測部2201の出力である量子化ステップ予測値と、閾値メモリ2404に保持されている閾値Bとが入力される。比較器2401は、この2入力を比較し、例えば量子化ステップ予測値が閾値Bを超えると出力D1として「1」を、量子化ステップ予測値が閾値B以下であれば出力D1として「0」を出力する。比較器2402には、空き容量算出部2406において算出された送信バッファ2108の空き容量と、閾値メモリ2405に保持されている閾値Cとが入力される。比較器2402は、この2入力を比較し、例えば送信バッファ2108の空き容量が閾値Cを超えると出力D2として「1」を、空き容量が閾値C以下であれば出力D2として「0」を出力する。フレームレートテーブル2403は、比較器2401の出力D1と、比較器2402の出力D2との組み合わせに対応した最適フレームレートを示すテーブルである。閾値メモリ2404は、予め設定された、量子化ステップ予測値の閾値Bを保持している。閾値メモリ2405は、予め設定された、送信バッファ2108の閾値Cを保持している。空き容量算出部406は、送信バッファ2108の全データ容量と、送信バッファ2108から入力されるデータ残量とに基づいて、送信バッファ2108の現在の空き容量を算出する。
【0094】
具体的には、フレームレート計算部2202は、フレームレートテーブル2403に従って、符号化対象のフレームに対する最適フレームレートを計算する。例えば、送信バッファ2108の空き容量が閾値Cを超え、かつ、量子化ステップ予測値が閾値B以下である場合、すなわち、量子化ステップが小さい値にも拘らず、送信バッファ2108に余裕がある場合、フレームレートが最大になるよう最適フレームレートを(例えば、30Hzに)決定する。逆に、送信バッファ2108の空き容量が閾値C以下で、かつ、量子化ステップ予測値が閾値Bを超える場合、すなわち、量子化ステップが大きくなっているにも拘らず、送信バッファ2108に余裕がない場合、フレームレートが最小になるよう最適フレームレートを、(例えば、10Hz)に決定する。さらに、送信バッファ2108の空き容量と量子化ステップ予測値の何れもが閾値より大きいか、又は何れもが閾値以下の場合、フレームレートが中間の値になるよう、最適フレームレートを決定する。
【0095】
図17は、上記図16におけるフレームレート計算部2202の各入力信号および出力信号の一例を示す図である。図17(a)は、フレームレート計算部2202の出力信号である最適フレームレートを示す図である。図17(b)は、フレームレート計算部202の一方の入力信号である量子化ステップ予測値を示す図である。図17(c)は、フレームレート計算部202の他方の入力信号である送信バッファ2108の空き容量を示す図である。この空き容量は、正確には、入力されたデータ残量から空き容量算出部2406によって算出されたものである。図17(b)の曲線L1は、時間の経過に伴って量子化ステップ予測値が変化する様子を示し、図17(c)の曲線L2は、送信バッファ2108の空き容量の時間変化を示している。図17(b)のように、量子化ステップ予測値が閾値B以下の間、比較器2401は、D1=0を出力し、量子化ステップ予測値が閾値Bを越えると、比較器2401はD1=1を出力する。また、量子化ステップ予測値が再び閾値B以下となると、比較器401はD1=0を出力する。一方、図17(c)のように、送信バッファ2108の空き容量が閾値C以下の間、比較器2402はD2=0を出力し、空き容量が閾値Cを超えると、比較器2402はD2=1を出力する。また、空き容量が再び閾値C以下となると、D2=0を出力する。
【0096】
フレームレート計算部2202が保持するフレームレートテーブル2403には、比較器2401の出力D1の値「0」または「1」と、比較器2402の出力D2の値「0」または「1」との4通りの組み合わせに対応して4種類のフレームレートが記述されている。フレームレート計算部2202は、D1=0(量子化ステップ予測値が小さい)かつD2=0(空き容量が少ない)の間は、図17(a)のように、最適フレームレートとして20Hzを出力する。また、図17(b)および図17(c)に示されるように、曲線L1で示される量子化ステップ予測値の方だけが閾値Bを越えた場合、すなわち、D1=1(量子化ステップ予測値が大きい)かつD2=0(空き容量が少ない)の間は、フレームレート計算部2202は、最適フレームレートとして15Hzを出力する。続いて、量子化ステップ予測値および空き容量の両方ともが閾値を超えると、すなわち、D1=1(量子化ステップ予測値が大きい)かつD2=1(空き容量が多い)の間、フレームレート計算部は、2202は、量子化ステップを小さく制御するために、最適フレームレートとして20Hzを出力する。さらに、量子化ステップ予測値の方だけが閾値B以下となった場合、すなわち、D1=0(量子化ステップ予測値が小さい)かつD2=1(空き容量が多い)の間、フレームレート計算部202は最適フレームレートとして30Hzを出力する。このように、フレームレート計算部202は、量子化ステップ予測値と送信バッファ2108の空き容量とに応じて(ここでは4段階ではあるが)、徐々にフレームレートを増減を行なう。
【0097】
図18は、上記図14に示したフレーム数計算部204の動作を説明するための図である。図18(a)は、比較器2205から出力される間引き情報の一例を示す図である。図18(b)は、フレーム数計算部2204の詳細な構成を示すブロック図である。図18(a)に示すように、フレーム数計算部2204には、比較器2205から出力された間引き情報が30Hzで入力される。この間引き情報は、「0」または「1」の2値信号である。間引き情報の「0」は、当該フレームが間引きされたことを示し、間引き情報の「1」は当該フレームが符号化されたことを示している。図18(b)のフレーム数計算部2204は、比較器2205から出力された間引き情報に基づいて現在のフレームレートを計算し、計算結果を所定の周期(例えば、5Hz)で出力を行なう処理部または回路である。このフレーム数計算部2204は、間引き情報メモリ2601、カウンタ2602および演算器2603を備える。間引き情報メモリ2601は、先入れ先出しで保持するFIFO(first_in first_out)のメモリ装置であり、30Hzで入力される1ビットの間引き情報を現フレームから遡って30フレーム分保持する。カウンタ2602は、所定の周期(例えば、5Hz)で間引き情報メモリ2601内の直近の間引き情報が「1」のフレーム数mと、間引き情報が「0」のフレーム数nとをカウントし、次の周期(例えば、1/5秒後)にmとnの値をリセットする。演算器2603は、上記所定の周期で「m/(m+n)」を計算し、その結果を現フレームレートとして出力する。これにより、フレーム数計算部2204が、例えば1秒間に5回の現フレームレートを計算して出力した場合は、0.2秒毎により適切な量子化ステップを算出することが可能となる。
【0098】
フレームレート制御部2113の比較器2205は、フレーム数計算部2204によって計算された現フレームレートと、フレームレート計算部2202によって計算された最適フレームレートとを比較して、最適フレームレートが現在のフレームレート以上であれば、符号化の指示を示す「1」を間引き情報として出力する。一方、最適フレームレートが現在のフレームレート未満であれば、間引きの指示を示す「0」を間引き情報として出力する。この結果、被符号化フレームのフレームレートは、フレームレート計算部2202によって算出された最適フレームレートに等しくなる。即ち、本画像符号化装置2100は、送信バッファ2108の空き容量に応じて量子化ステップの制御を行なうので、送信バッファ2108の空き容量の時間変化をより緩和して量子化ステップを制御した場合、即ち、量子化ステップ予測値と送信バッファ2108の空き容量とに応じてフレームレートを徐々に増減させて符号化を行なった場合は、急激な画像の劣化を回避することが可能となる。
【0099】
図19は、画像符号化装置2100における入力画像信号と被符号化フレームの概要を説明するための図である。図19(a)は、画像符号化装置2100に入力される画像信号の各フレームを示す図である。図19(a)に示すように、画像符号化装置2100は、上記実施の形態1の図5の場合と同様に、2つのフレームセットで1つのフレーム群2604を構成し、このフレーム群2604を上記量子化ステップやフレームレートを決定する際の1単位とする。図19(b)は、画像符号化装置2100によって符号化された各被符号化フレームを示す図である。
【0100】
図19(a)に示すように、画像符号化装置2100に入力される画像信号には符号化が容易なシーンと符号化が困難なシーンとが含まれており、符号化が容易なシーンでは符号化されたデータの発生ビット量は少なくなる。一方、符号化が困難なシーンでは符号化されたデータの発生ビット量が増加する。例えば、時刻aに符号化が困難なシーンが画像符号化装置2100に入力されたとすると、符号化が困難なシーンの最初のフレームの符号化による発生ビット量が多いために送信バッファ2108の空き容量が少なくなり、量子化ステップ予測部2201ではこの空き容量に応じて量子化ステップ予測値が増大される。例えば、量子化ステップ予測部2201によって予測された量子化ステップ予測値が、直前フレームに対応する量子化ステップ予測値の1.5倍に大きくされる。これにより、次のフレームの符号化による発生ビット量が抑制される。この結果、符号化による発生ビット量は当初の量子化ステップを用いて量子化した場合ほど大きくならず、送信バッファ2108の空き容量も、急激に低下することはない。従って、従来では連続的に大幅なフレーム間引きが必要になる場合であっても、画像符号化装置2100では、より緩やかにフレームレートを低減することができる。
【0101】
それでもなお、上記送信バッファ2108の空き容量が低下して閾値C以下になった場合、フレームレート計算部202は最適フレームレートを1段階低いフレームレートに変更する。例えば、時刻aまで30Hzのフレームレートで符号化していた場合、フレームレート計算部2202は、次のフレームからの最適フレームレートを20Hzに変更する。このように、量子化ステップを大きくし、フレームレートを小さくしても、なおかつ送信バッファ2108の容量に余裕がなく、量子化ステップ予測値がさらに大きくなり、閾値Bを超えた場合、フレームレート計算部2202は、次の最適フレームレートをさらに1段階低いフレームレートに変更する。例えば、時刻bまで20Hzのフレームレートで符号化していた場合、フレームレート計算部2202は次の最適フレームレートを15Hzに変更する。
【0102】
このように、画像符号化装置100は、符号化が困難なシーンが入力された場合でも、符号化による発生ビット量に応じて量子化ステップ予測値を算出すると共に、その量子化ステップ予測値を最適フレームレートに反映することができるので、より穏やかに段階的にフレームレートを低減していくことができる。逆に、入力される画像信号において、例えば、時刻cで、符号化が困難なシーンから符号化が容易なシーンに切り替わった場合にも、まず量子化ステップを小さくすることにより、できるだけ高画質に符号化を行ない、それでもさらに送信バッファに余裕ができた(符号化が容易なシーンである)場合には、フレームレートを1段大きな値に変更するので、より穏やかに段階的にフレームレートを増加することができる。例えば、時刻cにおいて符号化が容易なシーンが入力され、量子化ステップを小さくしてもなお、送信バッファ2108に余裕ができた場合は、時刻dにおいてフレームレートを1段上の20Hzに変更し、時刻eにおいて量子化ステップが十分小さな値になった場合には、フレームレートをもう1段上の30Hzに変更するので、より穏やかにフレームレートを増加することができる。この結果、画像符号化装置100によって符号化された画像信号を復号化装置で復号化した場合、符号化が困難なシーンでも、急激に画像が荒くなったり急激に動きがぎこちなくなったりすることなく動画像を再生することができる。逆に、符号化が容易なシーンに切り替わった場合でも、急激に画像の濃淡が滑らかになったり、急激に動きが滑らかになったりすることなく、人の目に不自然さを感じさせずにより画質の高い画像を再生することができる。
【0103】
以上のように、本実施の形態の画像符号化装置2100によれば、所定の時間長(例えば、1秒間)で観測した場合のビットレートを一定に保ちながら、バッファに十分空きがある場合は低い量子化ステップで符号化することで、従来よりも高画質に符号化することができ、かつ複雑なシーンへ移行した場合のフレームレートの急激な低下(多くのフレームが符号化されずスキップされること)を抑制し、従来よりも動きの滑らかな符号化を行なうことができる。
【0104】
なお、上記の実施の形態において、フレームレート計算部2202は、送信バッファ2108のデータ残量と、量子化ステップ予測部2201の量子化ステップ予測値とを用いて最適フレームレートを計算することとしたが、本発明はこれに限定されず、何れか一方を用いて計算してもよい。また、フレームレート計算部2202は、上記図16に示したフレームレートテーブル2403を用いて、30Hz、20Hz、15Hzおよび10Hzの4段階の最適フレームレートを計算することとしたが、最適フレームレートはこの値に限定されず、また、4段階である必要もない。さらに、このようなフレームレートテーブルを用いて最適フレームレートを計算する必要もなく、例えば、送信バッファの空き容量が閾値C以上である場合は最適フレームレートを現フレームレートの2倍にし、閾値C未満の場合は現フレームレートの1/2倍にするというように計算してもよい。また、もう1つの閾値D(C<D)を設け、送信バッファの空き容量が閾値C以上である場合は最適フレームレートを現フレームレートの2倍にし、閾値D未満の場合は現フレームレートの1/2倍にするというように計算してもよい。このようにすることによって、閾値Cおよび閾値Dのそれぞれの近傍におけるわずかな送信バッファのデータ残量の変化に対して、最適フレームレートがその都度変更されることを防止することができる。また、最適フレームレートは、量子化ステップ予測値の変化に対しても、これと同様の計算を行なって求めてもよい。さらに、最適フレームレートは現フレームレートの1/2倍、2倍といった値に限定されるものではない。以下の実施の形態においても同様である。
【0105】
また、上記の実施の形態においては、量子化ステップ予測部2201は、上記図15に示した予測係数テーブル2303によって量子化ステップ予測値を計算する場合について説明したが、本発明の量子化ステップ予測方法はこれに限定されず、予め定めた関数を用いて計算するとしてもよい。さらに、予測係数テーブル2303内の量子化ステップの予測係数も、「2」「1.5」「1.2」「1」「0.8」「0.5」「0.4」という値に限定されない。以下の実施の形態においても同様である。
【0106】
なお、本実施の形態2のフレーム数計算部2204は、過去1秒間(即ち、30フレーム分)の間引き情報を格納するための間引き情報メモリ2601を備えることとしたが、本発明はこれに限定されない。また、現フレームレートの計算方法も、上記計算方法に限定されず、他の方法を用いてもよい。以下の実施の形態においても同様である。
【0107】
また、上記送信バッファのデータ残量に代えて、平均ビットレートとしてもよい。以下の実施の形態においても同様である。
【0108】
以下では、上記のフレームレート制御部2113の変形例のフレームレート制御部2800、3000及び3400について説明する。なお、以下の変形例では、上記のフレームレート制御部2113同一の構成についてはその説明は省略し、異なる点について重点的に説明することとする。
【0109】
図20は、変形例のフレームレート制御部2800の機能構成を示すブロック図である。フレームレート制御部2800は、量子化ステップ予測部2201、量子化ステップ決定部2203、フレームレート計算部2202、フレーム数計算部2204および比較器2205を備える。フレームレート制御部2800が上記図14に示したフレームレート制御部2113と異なる点は、フレームレート計算部2202に量子化ステップ予測部2201の量子化ステップ予測値が入力される代わりに、量子化ステップ決定部2203によって決定された量子化ステップが入力される点である。
【0110】
図21は、上記図20におけるフレームレート計算部2202の各入力信号および出力信号の一例を示す図である。図21(a)は、フレームレート計算部2202の出力信号である最適フレームレートを示す図である。図21(b)は、フレームレート計算部2202の一方の入力信号である量子化ステップを示す図である。図21(c)は、フレームレート計算部2202の他方の入力信号である送信バッファ2108の空き容量を示す図である。量子化ステップ決定部2203は、量子化ステップ予測部2201において求められた量子化ステップ予測値に基づいて、「1」から「31」までの整数値を決定し、決定した値を量子化ステップとして出力する。従って、図21(b)のように、フレームレート制御部2800に入力される量子化ステップは、量子化ステップ予測値と異なり、最大でも「31」である。
【0111】
このように、フレームレート計算部2202は、量子化ステップ予測値の代わりに、量子化ステップ決定部2203からの出力である量子化ステップに基づいて最適フレームレートを計算することによって、実際の符号化による発生ビット量から大きくかけ離れることなく最適フレームレートを算出することができる。
【0112】
図22は、変形例のフレームレート制御部3000の機能構成を示すブロック図である。フレームレート制御部3000は、量子化ステップ決定部2203で得られた量子化ステップから過去に符号化したフレームの平均量子化ステップを求め、求められた平均量子化ステップからフレームレート計算部2202の最適フレームレートの計算を行ない、量子化ステップ予測部2201、量子化ステップ決定部2203、平均量子化ステップ計算部3001、フレームレート計算部3002、フレーム数計算部2204および比較器2205を備える。平均量子化ステップ計算部3001は、過去1秒間の符号化に用いた量子化ステップの平均値を計算する。フレームレート計算部3002は、平均量子化ステップ計算部3001によって計算された量子化ステップの平均値と、送信バッファ2108の空き容量とから最適フレームレートを計算する。
【0113】
図23は、上記図22における平均量子化ステップ計算部3001の機能を説明するためのブロック図である。平均量子化ステップ計算部3001は、過去に符号化されたフレームについて量子化ステップの平均値の計算を行ない、量子化ステップメモリ3101、間引き情報メモリ3102、加算器3103および除算器3104を備える。量子化ステップメモリ3101は、量子化ステップ決定部2203の出力である量子化ステップの値を現フレームから1秒間遡って30フレーム分、先入れ先出しで保持するFIFOである。間引き情報メモリ3102は、比較器2205から出力される、各フレームに対応する間引き情報(即ち、例えば、1秒間に30フレームある場合は全部で30ビット)を、現フレームから1秒間遡って先入れ先出しで保持するFIFOである。加算器3103は、各フレーム毎に対応する間引き情報と量子化ステップとの乗算した結果を加算して(即ち、過去1秒間に符号化された全てのフレームの量子化ステップを合計し)、除算器3104に出力する。除算器3104は、加算器3103から入力される量子化ステップの合計を、過去1秒間に符号化されたフレームの数で除算して、量子化ステップの平均値を算出する。
【0114】
図24は、上記図22におけるフレームレート計算部3002の機能を説明するためのブロック図である。フレームレート計算部3002は、上記図16に示したフレームレートテーブル2403を保持しており、さらにヒステリシスコンパレータ3201、閾値メモリ3202、ヒステリシスコンパレータ3203、閾値メモリ3204および空き容量算出部2406を備える。ヒステリシスコンパレータ3201は、閾値メモリ3202から閾値α1、β1(β1<α1)が一方の入力端子に入力され、他方の入力端子に入力される平均量子化ステップが閾値α1を超えると、その後、平均量子化ステップが閾値β1以下になるまでD1=1を出力し、平均量子化ステップが閾値β1を超えても閾値α1を超えるまではD1=0を出力する比較器である。閾値メモリ3202は、閾値α1およびβ1を保持するラッチ回路またはメモリである。ヒステリシスコンパレータ3203は、閾値メモリ3204から閾値α2、β2(β2<α2)が一方の入力端子に入力され、他方の入力端子に入力される送信バッファ2108の空き容量がα2を超えるとD2=1を出力し、その後送信バッファ2108の空き容量がβ2以下となるまでD2=1を出力する。閾値メモリ3204は、閾値α2およびβ2を保持するラッチ回路またはメモリである。
【0115】
図25は、上記図22におけるフレームレート計算部3002の各入力信号および出力信号の一例を示す図である。図25(a)は、フレームレート計算部3002の出力信号である最適フレームレートを示す図である。図25(b)は、フレームレート計算部3002の一方の入力信号である平均量子化ステップを示す図である。図25(c)は、フレームレート計算部3002の他方の入力信号である送信バッファ2108の空き容量を示す図である。図25(b)に示すように、平均量子化ステップは「1」から「31」までの値をとるが、必ずしも各フレームの量子化ステップのように自然数ではなく、また、変化の度合いも緩やかで小さくなっている。フレームレート計算部3002が、このように入力されるヒステリシスコンパレータ3201の出力D1およびヒステリシスコンパレータ3203の出力D2の値に基づいて最適フレームレートを計算する方法はすでに説明した通りである。
【0116】
このように、フレームレート制御部3000は、量子化ステップ予測値の代わりに、平均量子化ステップ計算部3001からの出力である平均量子化ステップに基づいてフレームレートを制御することによって、量子化ステップの値が閾値付近で上下した場合に、1フレームごとにフレームレートが変更されてしまうことを防止することができる。
【0117】
なお、上記実施の形態では、平均量子化ステップ計算部3001において、過去1秒間に符号化されたフレームにおける量子化ステップの平均値を計算する実施例について説明したが、本発明はこれに限定されず、過去数秒間または過去数フレーム〜数十フレームについて量子化ステップの平均値を算出することとしてもよい。また、符号化されていないフレームも含めて、一律に過去の量子化ステップの平均値を計算するようにしてもよい。
【0118】
図26は、変形例のフレームレート制御部3400の機能構成を示すブロック図である。フレームレート制御部3400のフレームレート計算部3401は、比較器2401および比較器2402の代わりにヒステリシスコンパレータ3201およびヒステリシスコンパレータ3203を備え、上記実施の形態1におけるフレームレート計算部202と同様に、最適フレームレートを計算するが、さらに、過去1秒間に計算した最適フレームレートの平均値を求め、求めた平均フレームレートを最適フレームレートとする。
フレームレート制御部3400は、量子化ステップ予測部2201、量子化ステップ決定部2203、フレームレート計算部3401、フレームレートメモリ3402、フレーム数計算部2204および比較器2205を備える。フレームレート計算部3401は、ヒステリシスコンパレータ3201の出力D1およびヒステリシスコンパレータ3203の出力D2を入力して、フレームレートテーブル2403の規則(真理値表)に従って最適フレームレートを計算する。さらに、フレームレート計算部3401は、過去の複数の最適フレームレートの計算結果からその平均値を計算する。
【0119】
フレームレートメモリ3402は、フレームレート計算部3401の計算結果である最適フレームレートを、現フレームから1秒間遡った30フレーム分について、先入れ先出しで保持するFIFOである。
【0120】
図27は、上記図26におけるフレームレート計算部3401およびフレームレートメモリ3402の詳細な構成を示すブロック図である。フレームレート計算部3401は、フレームレートテーブル2403を保持しており、さらに、ヒステリシスコンパレータ3201、閾値メモリ3202、ヒステリシスコンパレータ3203、閾値メモリ3204、空き容量算出部2406、加算器3501および除算器3502を備える。フレームレート計算部3401は、入力される画像信号のフレーム毎に、量子化ステップ予測部2201から量子化ステップ予測値が入力されるヒステリシスコンパレータ3201の出力D1と、送信バッファ2108のデータ残量が入力されるヒステリシスコンパレータ3203の出力D2とに基づいて、フレームレートテーブル2403から最適フレームレートを算出し、算出された最適フレームレートを30Hzでフレームレートメモリ3402に出力する。加算器3501は、フレームレートメモリ3402内の各最適フレームレートを加算する。除算器3502は、加算器3501から出力された値を「30」で除算し、フレームレートテーブル2403を参照して、4段階の最適フレームレートの中から除算結果に最も近いフレームレートを平均最適フレームレートとして決定して出力する。この結果、最適フレームレートが、例えば、30Hz→10Hzと変化するような場合にも、平均最適フレームレートは、必ず30Hz→20Hz→15Hz→10Hzのように、中間のフレームレートを経由して順次変化するので、符号化におけるフレームレートの制御を、より滑らかに行なうことができる。
【0121】
図28は、上記図26におけるフレームレート計算部3401の各入力信号および出力信号の一例を示す図である。図28(a)は、フレームレート計算部3401の出力信号である平均最適フレームレートを示す図である。図28(b)は、フレームレート計算部3401の一方の入力信号である量子化ステップ予測値を示す図である。図28(c)は、フレームレート計算部3401の他方の入力信号である送信バッファ2108の空き容量を示す図である。図28(a)に示すように、平均最適フレームレートは、現フレームから1秒間遡って30フレーム分の最適フレームレートが平均化され、その値に最も近い最適フレームレートが選ばれているため、大きなフレームレートの変更が抑制され、その結果、より動きの滑らかな符号化結果を得ることができる。
【0122】
なお、本フレームレート計算部3401は、過去1秒間、30フレーム分の最適フレームレートの平均値を計算すると説明したが、本発明はこれに限定されず、平均値を求める最適フレームレートの範囲は過去何秒間または何フレーム分であってもよい。
【0123】
(実施の形態3)
図29は、実施の形態3における画像符号化装置4100の機能構成を示すブロック図である。画像符号化装置4100は、上記実施の形態1の画像符号化装置10における可変ビットレート方式と上記実施の形態2の画像符号化装置2100における可変フレームレート方式とを用いて、より適切な符号化を実現する。
【0124】
図29に示すように、画像符号化装置4100は、送信バッファ2108、フレームレート制御部4113およびフレーム間引部4116を除いて、上記実施の形態1における画像符号化装置10と同じ機能構成である。なお、以下において、上記実施の形態1又は実施の形態2における機能構成と同じものについては、同一の符番を付し、その説明は省略する。
【0125】
フレームレート制御部4113は、上記実施の形態2の画像符号化装置2100のフレームレート制御部2113の機能のうち、間引き情報を生成する機能のみを有している。
【0126】
フレーム間引部4116は、フレームレート制御部4113から間引き情報を受信してフレームレートを決定し、決定したその時点のフレームレート値をビットレート制御部30に通知する。
【0127】
図30は、上記図29におけるフレームレート制御部4113の詳細な機能構成を示すブロック図である。図30に示すように、フレームレート制御部4113は、上記実施の形態2におけるフレームレート制御部2113(上記図14参照)から量子化ステップ予測部2201および量子化ステップ決定部2203を除いた構成となっている。従って、このフレームレート制御部4113は、送信バッファ2108から入手したデータ残量に基づいて間引き情報のみを生成し、この間引き情報をフレーム間引部4116に送信する。
【0128】
以上のように、本実施の形態に係る画像符号化装置4100により、送信バッファのデータ残量によってフレームレートを制御すると共に、このフレームレートとフレーム群に割り当てられた総ビット数とに基づいて、より好適なビット割り当てを実現することが可能となる。
【0129】
(実施の形態4)
以下の実施の形態では、上記実施の形態1〜3における画像符号化装置の構成を画像符号化プログラムのステップとして実現し、上記画像符号化装置と同等の機能を一般的なコンピュータシステム上で実現するための方策について説明する。
【0130】
図31は、画像符号化プログラムを格納したフレキシブルディスクを用いて、上記実施の形態1〜3の画像符号化装置と同等の機能を一般的なコンピュータシステム上で実現する場合の説明図である。
【0131】
図31(b)は、フレキシブルディスクの正面から見た外観、断面構造及びフレキシブルディスクを示し、図31(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。
【0132】
フレキシブルディスク1301は、ケース1302に内蔵され、当該ディスクの表面には同心円状に外周から内周に向かって複数のトラックが形成され、各トラックは角度方向に16のセクタに分割されている。従って、前記画像符号化プログラムを格納したフレキシブルディスクでは、前記フレキシブルディスク1301上に割り当てられた領域に、前記画像符号化プログラムとしてのデータが記録されている。
【0133】
また、図31(c)は、フレキシブルディスク1301に前記画像符号化プログラムの記録再生を行なうための装置の構成を示す。前記画像符号化プログラムをフレキシブルディスク1301に記録する場合は、コンピュータシステム1304から画像符号化プログラムのデータをフレキシブルディスクドライブ1303を介して書き込む。また、フレキシブルディスク1301内のプログラムにより前記符号化あるいは復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブ1303からプログラムを読み出し、コンピュータシステム1304に転送する。
【0134】
なお、上記の説明ではデータ記録媒体としてフレキシブルディスクを用いて説明を行なったが、光ディスクやICカード、ROMカセット等、プログラムを記録できる媒体を用いることにより、同様に上記画像符号化装置を実現することができる。
【0135】
【発明の効果】
以上のように、本発明に係る画像符号化装置によれば、所定の時間長において一定のビットレートで符号化を行なう場合、フレームの集まりであるフレーム群における発生ビット数の偏りが少なくなるようにフレーム群を構成し、フレーム群における個々のフレームに対して符号化を行なう毎に、次のフレームに割り当てるべきビット数を計算する。さらに、過去のフレームにおける発生ビット数をも参照することで、次のフレームに対して高画質に符号化し得る最適な割当ビット数を導出することができる。つまり、符号化が困難なシーンが連続した場合であっても、その後のシーンに割り当てるビット数が極端に少なくなることを回避し、全体として画像の品質の向上を図ることが可能となる。
【0136】
また、本発明に係る画像符号化装置によれば、符号化されるフレームのレートが変動する(可変フレームレートの)場合においても、符号化を行なう毎にその時点のフレームレートを用いた最適なビット数を導出することが可能となるので、所定の時間長における平均ビットレートを一定に保ちつつ、画質の極端な劣化を回避し得る符号化を可能とする。
【0137】
また、本発明に係る画像符号化装置によって符号化されたビットストリームは一般的な復号化装置で復号が可能であり、特別な処理をまったく行なうことなく、高画質な復号が可能である。
【0138】
さらに、本発明に係る画像符号化装置によれば、現フレームを符号化した結果、発生した符号量に応じて、まず、量子化の幅を調節して各画素の信号解像度を調節することにより次フレームの発生符号量を制御し、量子化幅の調節による発生符号量の制御に応じて、符号化フレームレートを調節することができる。この結果、例えば、量子化幅を大きくすることによって十分、発生符号量が低減したにも拘らずフレーム間引きを発生させ、必要以上に画質を劣化させてしまうという状態の発生を未然に防止して、効率よく符号化による発生符号量を制御することができるという効果がある。
【0139】
また、本発明に係る画像符号化装置は、送信バッファの残留符号量から次符号化フレームの量子化幅を計算することにより、例えば、送信バッファに余裕がある場合(すなわち、符号化が容易なシーン)は量子化幅を小さな値とし、逆に送信バッファに余裕がない場合は量子化幅を大きな値とすることで、十分長い時間でのビットレートを一定に保ち、かつできるだけ高画質な符号化を行なうことができるという効果がある。
【0140】
さらに、本発明に係る画像符号化装置は、計算された量子化幅の予測値が閾値以上の大きな値となった場合(すなわち符号化が困難な複雑なシーンの場合)に符号化フレームレートを小さな値に変更して、フレームの間引き率を増加する。しかし、量子化幅の制御により発生ビット量が抑制されるので、急激なフレームレートの変化が生じない高画質な符号化を行なうことができるという効果がある。
【0141】
また、本発明に係る画像符号化装置によれば、送信バッファの残留符号量によって制御され変動する量子化幅の平均値を用いて符号化フレームレートを制御することによって、現フレームの符号化で極端に符号量が発生し(送信バッファの残留符号量が増加し)次フレームの量子化ステップが大きく制御された場合に、すぐにフレームレートの変更が行われることが抑制され、直後の画像の動きがぎこちなくなることを防止することができる。また同時に、フレームレートの急激な変更が行われることを抑制し、動きの滑らかな符号化を行なうことができるという効果がある。
【図面の簡単な説明】
【図1】実施の形態1における画像符号化装置の機能構成を示すブロック図である。
【図2】図1におけるビットレート制御部の詳細な機能構成を示すブロック図である。
【図3】一般的な画像符号化におけるピクチャタイプ別の発生ビット数の特徴を示す図である。
【図4】図3で定義したフレーム群の具体例である。
【図5】図3で定義したフレーム群の変形例である。
【図6】(a)は、上記図5のように2つのフレームセットでフレーム群を構成することによる効果を説明するための図である。
(b)は、上記図5のように2つのフレームセットでフレーム群を構成し、かつ、符号化のフレームレートが変化した場合における効果を説明するための図である。
【図7】実施の形態1における画像符号化装置の全体制御部及びビットレート制御部における処理の流れを示すフローチャートである。
【図8】(a)は、実施の形態1における画像符号化装置を用いて符号化を実行する場合のフレーム群の構成例を示す図である。
(b)は、実施の形態1における画像符号化装置を用いて符号化を実行する場合のビットレートの変化を示す一例である。
【図9】(a)は、2つのフレームセットで1つのフレーム群を構成させた場合の各フレームの様子を示した一例である。
(b)は、2つのフレームセットで1つのフレーム群を構成させた場合のビットレートの変動の様子を示した一例である。
【図10】(a)は、2つのフレームセットで1つのフレーム群を構成させ、かつ、符号化のフレームレートが変化した場合の各フレームの様子を示した一例である。
(b)は、2つのフレームセットで1つのフレーム群を構成させ、かつ、符号化のフレームレートが変化した場合のビットレートの変動の様子を示した一例である。
【図11】演算部におけるビット数の算出方法の具体例を示した図である。
【図12】図1においてフレーム間引部を設けず、その他の部署からフレームレート値Rfの値を入手するように構成した画像符号化装置の機能構成の一部を示したブロック図である。
【図13】実施の形態2に係る画像符号化装置の機能構成を示すブロック図である。
【図14】図13におけるレート制御部の詳細な機能構成を示すブロック図である。
【図15】図14における量子化ステップ予測部の機能を説明するためのブロック図である。
【図16】図14におけるフレームレート計算部の機能を説明するためのブロック図である。
【図17】図16におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図18】図14におけるフレーム数計算部の動作を説明するための図である。
【図19】画像符号化装置の入力画像信号と被符号化フレームとを示す図である。
【図20】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図21】図20におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図22】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図23】図22における平均量子化ステップ計算部の構成を示すブロック図である。
【図24】図22におけるフレームレート計算部の機能を説明するためのブロック図である。
【図25】図22におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図26】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図27】図26におけるフレームレート計算部およびフレームレートメモリの機能を説明するためのブロック図である。
【図28】図26におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図29】実施の形態3における画像符号化装置の機能構成を示すブロック図である。
【図30】図29の画像符号化装置におけるフレームレート制御部の機能構成を示すブロック図である。
【図31】実施の形態1〜3における画像符号化装置を一般のコンピュータシステムによって実現するためのプログラムを格納し得る記憶媒体を説明するための図である。
【図32】従来の可変ビットレート方式を用いた画像符号化装置の機能構成を示すブロック図である。
【図33】従来の画像符号化装置におけるビットレート制御部の機能構成を示すブロック図である。
【図34】従来の画像符号化装置の全体制御部及びビットレート制御部における処理の流れを示すフローチャートである。
【図35】従来のビットレート制御部における割当ビット数の算出方法の具体例を示した図である。
【図36】(a)は、従来技術の第1の問題を説明するためのフレーム群の構成例である。
(b)は、従来技術の第1の問題を説明するためのビットレートの一例である。
【図37】(a)は、従来技術の第2の問題を説明するためのフレーム群の構成例である。
(b)は、従来技術の第2の問題を説明するためのビットレートの一例である。
【符号の説明】
10 画像符号化装置
20 フレーム間引部
30 レート制御部
31 フレーム群目標ビット数導出部
32 次フレーム目標ビット数導出部
33 平均フレームビット数導出部
34 演算部
35 量子化ステップ導出部
36 記憶部
40 全体制御部
50 画像符号化装置
60 全体制御部
100 画像符号化装置
101 被符号化フレーム信号
102 フレームメモリ
103 検出部
104 補償部
105 直交変換部
106 量子化部
107 可変長符号化部
108 逆量子化部
109 逆直交変換部
110 ビットレート制御部
111 フレーム群目標ビット数導出部
112 次フレーム目標ビット数導出部
113 量子化ステップ導出部
121 符号化フレーム信号
140 全体制御部
141 量子化ステップ
201 量子化ステップ予測部
202 フレームレート計算部
203 量子化ステップ決定部
204 フレーム数計算部
205 比較器
302 現在値メモリ
303 予測係数テーブル
401 比較器
406 容量算出部
1301 フレキシブルディスク
1302 ケース
1303 フレキシブルディスクドライブ
1304 コンピュータシステム
2100 画像符号化装置
2101 フレーム間引部
2108 送信バッファ
2109 逆量子化部
2110 逆直交変換部
2111 差分器
2112 加算器
2113 フレームレート制御部
2201 量子化ステップ予測部
2202 フレームレート計算部
2203 量子化ステップ決定部
2204 フレーム数計算部
2205 比較器
2302 現在値メモリ
2303 予測係数テーブル
2401 比較器
2402 比較器
2403 フレームレートテーブル
2404 閾値メモリ
2405 閾値メモリ
2406 容量算出部
2601 情報メモリ
2602 カウンタ
2603 演算器
2604 フレーム群
2800 フレームレート制御部
3000 フレームレート制御部
3001 平均量子化ステップ計算部
3002 フレームレート計算部
3101 量子化ステップメモリ
3102 情報メモリ
3103 加算器
3104 除算器
3201 ヒステリシスコンパレータ
3202 閾値メモリ
3203 ヒステリシスコンパレータ
3204 閾値メモリ
3400 フレームレート制御部
3401 フレームレート計算部
3402 フレームレートメモリ
3501 加算器
3502 除算器
4100 画像符号化装置
4113 フレームレート制御部
4116 フレーム間引部

Claims (8)

  1. フレーム単位で順次入力される画像信号について符号化を行なう画像符号化装置であって、
    画像信号の周波数成分をフレーム毎に量子化し、量子化された結果に基づいて符号化する符号化手段と、
    複数のフレームから構成されるフレーム群に割り当て総ビット数を特定する総ビット数特定手段と、
    フレームレートと前記フレーム群における既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定手段と、
    前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出手段と、
    前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出手段と、
    前記符号化手段によって符号化された符号化データを保持し、一定量ずつ外部に出力する送信バッファと、
    前記送信バッファに残留している符号化データのデータ量と前記量子化ステップに基づいて、次に符号化するフレームの周期を示すフレームレートを決定するフレームレート制御手段と、
    前記フレームレート制御手段で決定されたフレームレートに基づいて、前記符号化手段に入力する画像信号の取捨を制御する入力制御手段と
    を備え
    前記目標ビット数算出手段は、前記総ビット数特定手段によって特定された総ビット数を前記フレームレート制御手段によって決定されたフレームレートから算出されるフレーム群のうち未だ符号化されていないフレーム数で除することによって前記ビット数の目標値を算出する
    ことを特徴とする画像符号化装置。
  2. 前記画像符号化装置は、さらに、
    前記フレーム群における既に符号化されたフレームレートと、それによって発生したビット数とに基づいて、発生ビット数の平均値を算出する平均値算出手段と、
    前記算出された前記発生ビット数の平均値に対して、所定の係数を乗じて得た新たなビット数の目標値と、前記算出された目標ビット数とを比較して、大きい方を基本目標値とし、あらかじめ設定された下限値と前記基本目標値とを比較して大きい方を新たなビット数の目標値とする演算手段とを備え、
    前記量子化ステップ導出手段は、前記演算手段によって特定されたビット数の目標値を用いて量子化ステップを導出する
    ことを特徴とする請求項1記載の画像符号化装置。
  3. 前記総ビット数特定手段は、
    前記フレーム群の先頭のフレームを画面内符号化されるフレームとしフレーム群全体として割り当て可能なビット数の初期化を行なう総ビット数初期化部と、
    前記全体として割り当て可能なビット数から符号化により実際に発生したビット数を減じて総ビット数を更新する総ビット数更新部とを備える
    ことを特徴とする請求項2記載の画像符号化装置。
  4. 前記フレーム群は、複数のフレームから構成されるフレームセットを2つ以上まとめた構成であり、一のフレームセットに対して符号化を終えると、フレーム群に属する未だ符号化されていないフレームセットに、新たなフレームセットを順次追加して新たなフレーム群を構成し、
    前記総ビット数特定手段は、さらに、
    前記フレーム群に割り当てられた総ビット数から得られる各フレームセットに分配されていビット数と、符号化が終了し実際に発生したビット数が得られたフレームセットのビット数との差分を加味して、前記新たなフレーム群総ビット数と、個々のフレームセットにおける割り当て可能なビット数とを算出する
    ことを特徴とする請求項1記載の画像符号化装置。
  5. 前記フレームレート制御手段は、
    前記送信バッファに残留している符号化データのデータ量からバッファの空き容量を算出し、所定の閾値と比較することで得られる情報と、前記量子化ステップ導出手段で得られた量子化ステップと所定の閾値とを比較することで得られる情報とを用いて、次に符号化するフレームの周期を決定する
    ことを特徴とする請求項1記載の画像符号化装置。
  6. フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化方法であって、
    画像信号の周波数成分をフレーム毎に量子化し、量子化された結果に基づいて符号化する符号化ステップと、
    複数のフレームから構成されるフレーム群に割り当て総ビット数を特定する総ビット数特定ステップと、
    前記受け付けられたフレームレートと前記フレーム群における既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
    前記総ビット数特定ステップで特定された総ビット数とフレーム群のうち未だ符号化されていないフレーム数とに基づいて、次符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
    前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
    前記符号化ステップによって符号化された符号化データを保持し、一定量ずつ外部に出力する送信バッファに残留している符号化データのデータ量と前記量子化ステップに基づいて、次に符号化するフレームの周期を決定するフレームレート制御ステップと、
    前記フレームレート制御ステップで決定されたフレームレートに基づいて、前記符号化ステップに入力する画像信号の取捨を制御する入力制御ステップとを含み、
    前記目標ビット数算出ステップでは、前記総ビット数特定ステップによって特定された総ビット数を前記フレームレート制御ステップによって決定されたフレームレートから算出されるフレーム群のうち未だ符号化されていないフレーム数で除することによって前記ビット数の目標値を算出する
    ことを特徴とする画像符号化方法。
  7. フレーム単位で入力される画像信号に対して符号化を行なう画像符号化装置のためのプログラムであって、
    画像信号の周波数成分をフレーム毎に量子化し、量子化された結果に基づいて符号化する符号化ステップと、
    複数のフレームから構成されるフレーム群に割り当て総ビット数を特定する総ビット数特定ステップと、
    前記受け付けられたフレームレートと前記フレーム群における既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
    前記総ビット数特定ステップで特定された総ビット数とフレーム群のうち未だ符号化されていないフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
    前記算出されたビット数の目標値を用いて、次符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
    前記符号化ステップによって符号化された符号化データを保持し、一定量ずつ外部に出力する送信バッファに残留している符号化データのデータ量と前記量子化ステップに基づいて、次に符号化するフレームの周期を決定するフレームレート制御ステップと、
    前記フレームレート制御ステップで決定されたフレームレートに基づいて、前記符号化ステップに入力する画像信号の取捨を制御する入力制御ステップとを前記画像符号化装置に実行させ、
    前記目標ビット数算出ステップでは、前記総ビット数特定ステップによって特定された総ビット数を前記フレームレート制御ステップによって決定されたフレームレートから算出されるフレーム群のうち未だ符号化されていないフレーム数で除することによって前記ビット数の目標値を算出する
    ことを特徴とするプログラム。
  8. フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化装置のためのプログラムが記録されたコンピュータが読み取り可能な記録媒体であって、
    前記プログラムは、
    画像信号の周波数成分をフレーム毎に量子化し、量子化された結果に基づいて符号化する符号化ステップと、
    複数のフレームから構成されるフレーム群に割り当て総ビット数を特定する総ビット数特定ステップと、
    前記総ビット数特定ステップで特定された総ビット数とフレーム群のうち未だ符号化されていないフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
    前記算出されたビット数の目標値を用いて、次符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
    前記符号化ステップによって符号化された符号化データを保持し、一定量ずつ外部に出力する送信バッファに残留している符号化データのデータ量と前記量子化ステップに基づいて、次に符号化するフレームの周期を決定するフレームレート制御ステップと、
    前記フレームレート制御ステップで決定されたフレームレートに基づいて、前記符号化ステップに入力する画像信号の取捨を制御する入力制御ステップとを前記画像符号化装置に実行させ、
    前記目標ビット数算出ステップでは、前記総ビット数特定ステップによって特定された総ビット数を前記フレームレート制御ステップによって決定されたフレームレートから算出されるフレーム群のうち未だ符号化されていないフレーム数で除することによって前記ビット数の目標値を算出する
    ことを特徴とする記録媒体。
JP2003120626A 2002-04-25 2003-04-24 画像符号化装置及び画像符号化方法 Expired - Fee Related JP4490046B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003120626A JP4490046B2 (ja) 2002-04-25 2003-04-24 画像符号化装置及び画像符号化方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002124750 2002-04-25
JP2002124749 2002-04-25
JP2003120626A JP4490046B2 (ja) 2002-04-25 2003-04-24 画像符号化装置及び画像符号化方法

Publications (2)

Publication Number Publication Date
JP2004007619A JP2004007619A (ja) 2004-01-08
JP4490046B2 true JP4490046B2 (ja) 2010-06-23

Family

ID=30449170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003120626A Expired - Fee Related JP4490046B2 (ja) 2002-04-25 2003-04-24 画像符号化装置及び画像符号化方法

Country Status (1)

Country Link
JP (1) JP4490046B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236333A (ja) * 2007-03-20 2008-10-02 Toshiba Corp 映像符号化装置及び映像符号化方法
JP2009141543A (ja) * 2007-12-05 2009-06-25 Nec Saitama Ltd 携帯電話端末および携帯電話端末制御方法
JP2017168878A (ja) 2016-03-14 2017-09-21 ルネサスエレクトロニクス株式会社 半導体装置、符号化制御方法及びカメラ装置

Also Published As

Publication number Publication date
JP2004007619A (ja) 2004-01-08

Similar Documents

Publication Publication Date Title
US7653129B2 (en) Method and apparatus for providing intra coding frame bit budget
EP1551186B1 (en) Video coding apparatus with resolution converter
KR100569613B1 (ko) 신호부호화방법,신호부호화장치,신호기록매체및신호전송방법
JPH0723422A (ja) ディジタルvtrの映像信号帯域圧縮装置
JP7015183B2 (ja) 画像符号化装置及びその制御方法及びプログラム
JP4632049B2 (ja) 動画像符号化方法及び装置
US7151856B2 (en) Picture coding apparatus and picture coding method
JP3872849B2 (ja) 動画像符号化装置
JP4795223B2 (ja) 画像処理装置
CN104125460A (zh) 用于控制视频比特率的方法和设备
JP2008193410A (ja) 画像符号化装置、録画装置、動画像符号化方法、動画像符号化プログラム
CN101390389A (zh) 用于在双通道编码中选择比特预算调节的方法与设备
JPWO2002080567A1 (ja) 画像信号量子化装置およびその方法
US6647060B1 (en) Video compression device and video compression method
JP4490046B2 (ja) 画像符号化装置及び画像符号化方法
JP3392335B2 (ja) 動画像可変ビットレート符号化装置、動画像可変ビットレート符号化方法、および動画像可変ビットレート符号化プログラム記録媒体
JP2004328150A (ja) 動画像符号化装置及び方法
JP2000261799A (ja) 可変レート動画像符号化装置
JPH11196410A (ja) 動画像符号化方法、動画像符号化装置及び動画像信号記録媒体
JPWO2002080572A1 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
JP2000092489A (ja) 画像符号化装置および画像符号化方法およびプログラムを記録した媒体
JP2009017127A (ja) 符号化装置および符号化方法
JP3307367B2 (ja) 可変転送レート符号化装置
JPH0744686B2 (ja) 可変伝送速度画像符号化装置
KR100678843B1 (ko) 엠펙비디오 인코더의 인트라 프레임 양자화 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100401

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees