JP3573176B2 - Moving image encoding method and apparatus - Google Patents
Moving image encoding method and apparatus Download PDFInfo
- Publication number
- JP3573176B2 JP3573176B2 JP34707395A JP34707395A JP3573176B2 JP 3573176 B2 JP3573176 B2 JP 3573176B2 JP 34707395 A JP34707395 A JP 34707395A JP 34707395 A JP34707395 A JP 34707395A JP 3573176 B2 JP3573176 B2 JP 3573176B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- macroblock
- significant
- frame
- motion
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、動画像信号を動き補償して符号化する動画像符号化方法及び装置に関し、特に、低ビットレートで伝送する場合に有効な動画像符号化方法及び装置に関する。
【0002】
【従来の技術】
ブロックマッチング法を用いる従来の動画像符号化装置においては、符号化対象マクロブロックを有意・非有意に分類し、有意ブロックのみを符号化することによって、情報量の削減が行われる。
【0003】
即ち、現フレームの符号化対象マクロブロックと、前フレームの動き補償を施したマクロブロックとの差分をとり、この差分値がある閾値を下回るマクロブロックは非有意マクロブロックとして取扱い、動きベクトルのみを伝送すると共に非有意でありかつ動きベクトルが零の静止しているマクロブロックに関しては、一切の符号化を行わないという方法が用いられてきた。
【0004】
【発明が解決しようとする課題】
このような従来の方法によると、現フレームの符号化対象マクロブロックと前フレームの動き補償を施したマクロブロックとの差分(歪)ができるだけ小さくなるような前フレームのマクロブロックを従って動きベクトルを検出し、その検出した動きベクトルによって動き補償を行うというブロックマッチング法が用いられているため、次のような問題が生じてしまう。
【0005】
差分値(歪)を最も小さくするように参照画像のマクロブロックを求めて動きベクトルを検出するシステムにおいて上述のようなマクロブロックの有意性の判定を行うと、非有意と判定されるマクロブロックに関して不必要な大きさの動きベクトルが伝送されてしまう恐れがある。即ち、非有意のマクロブロックでは、伝送される情報が動きベクトルのみとなるため、小さな動きベクトルでも十分精度の良い動き補償を行える場合や、動き補償を行わなくても差分値があまり増大しない場合などにも大きな動きベクトルが送られ、その分、無駄な情報が伝送されてしまうこととなる。
【0006】
従って本発明の目的は、画像の品質劣化を防止しつつ、伝送情報量を低減化することができる動画像符号化方法及び装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明は、発生させた動きベクトルを用いて前フレームのマクロブロックに動き補償を施し、動き補償を施したマクロブロックと現フレームの符号化対象マクロブロックとの差分である予測誤差を算出し、算出した予測誤差を閾値と比較することによりこの符号化対象マクロブロックが閾値より小さい非有意マクロブロックであるか大きい有意マクロブロックであるかを判別し、有意マクロブロックである場合は符号化を行う動画像符号化方法に関するものである。特に本発明によれば、閾値を動きベクトルの大きさが大きくなると減少する関数とし、非有意マクロブロックであると判別した場合は、動きベクトルのみを伝送するようにすると共に符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択している。
【0008】
符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択しているので、動きベクトルのみを伝送する場合にその伝送される動きベクトル情報量が少なくなり、伝送情報量の低減化を図ることができる。しかも、非有意マクロブロックであるか大きい有意マクロブロックであるかを判別する閾値を動きベクトルの大きさが大きくなると減少する関数としているので、動きベクトルが小さいと非有意マクロブロックと判定され易くなり、動きベクトルが大きいと非有意マクロブロックと判定され難くなる。
【0009】
動きベクトルを最小の大きさの動きベクトルから順次大きくして発生させ、その発生の都度、発生した動きベクトルを用いて動き補償を施し、予測誤差を算出し、算出した予測誤差を閾値と比較することにより有意及び非有意の判別を行うようにすることが好ましい。
【0010】
閾値を、動きベクトルの大きさが大きくなると減少し、動きベクトルがある値を越えると飽和する関数とすることが好ましい。
【0011】
本発明は、さらに、動きベクトルを発生させる動きベクトル発生手段と、発生させた動きベクトルを用いて前フレームのマクロブロックに動き補償を施す手段と、動き補償を施したマクロブロックと現フレームの符号化対象マクロブロックとの差分である予測誤差を算出する手段と、算出した予測誤差を閾値と比較することによりこの符号化対象マクロブロックが閾値より小さい非有意マクロブロックであるか大きい有意マクロブロックであるかを判別する判別手段と、有意マクロブロックと判別した場合は符号化を行う手段とを備えた動画像符号化装置に関している。特に本発明では、非有意マクロブロックであると判別した場合は動きベクトルのみを伝送する手段をさらに備えており、判別手段の閾値は動きベクトルの大きさが大きくなると減少する関数であり、動きベクトル発生手段は符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択するべく構成されている。
【0012】
符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルが選択されるので、動きベクトルのみを伝送する場合にその伝送される動きベクトル情報量が少なくなり、伝送情報量の低減化を図ることができる。しかも、非有意マクロブロックであるか大きい有意マクロブロックであるかを判別する閾値を動きベクトルの大きさが大きくなると減少する関数としているので、動きベクトルが小さいと非有意マクロブロックと判定され易くなり、動きベクトルが大きいと非有意マクロブロックと判定され難くなる。
【0013】
動きベクトル発生手段は、動きベクトルを最小の大きさの動きベクトルから順次大きくして発生させる手段であり、動き補償手段、算出手段及び判別手段は、動きベクトルが発生した都度、発生した動きベクトルを用いて動き補償を施し、予測誤差を算出し、算出した予測誤差を閾値と比較することにより有意及び非有意の判別を行う手段であることが好ましい。
【0014】
判別手段の閾値が、動きベクトルの大きさが大きくなると減少し、動きベクトルがある値を越えると飽和する関数であることが好ましい。
【0015】
【発明の実施の形態】
以下、図面を参照して本発明を詳細に説明する。図1は本発明の動画像符号化装置の一実施形態の構成を概略的に示すブロック図である。
【0016】
同図において、1は可変フレームレート動画像符号化装置全体の構成を示している。この動画像符号化装置1は、映像信号入力部2と、この映像信号入力部2に接続されており入力された映像信号に対してフレームスキップを行うフレームスキップ部3と、このフレームスキップ部3に接続されておりフレームスキップして入力された少なくとも前フレーム及び現フレームの映像信号を格納しておくフレームメモリ4と、フレームメモリ4から出力される現フレームの符号化対象マクロブロック(注目マクロブロック)の映像信号5が入力される符号化エンジン部6とを含んでいる。
【0017】
フレームメモリ4には、上述の符号化エンジン部6と、動き補償部8と、減算部13とが接続されている。後述するようにスカラ長の小さいものから大きいものへ順次に動きベクトルを発生しその動きベクトル情報9及びスカラ長情報10を出力する動きベクトル発生部11には、動き補償部8と、符号化エンジン部6と、VLC(可変長符号化部)23と、マクロブロック有意/非有意判定部15と、フレームスキップ数決定部20とが接続されている。動き補償部8には、前フレームの各マクロブロックの映像信号7がフレームメモリ4から与えられる。
【0018】
減算部13には、その+入力に接続されたフレームメモリ4から現フレームの注目マクロブロックの映像信号5と、−入力に接続された動き補償部8から動き補償された前フレームのマクロブロックの映像信号12とが入力される。減算部13の出力は有意/非有意判定部15に接続されている。この有意/非有意判定部15には、減算部13からマクロブロック間差分値14が動きベクトル発生部11からスカラ長情報10が入力される。有意/非有意判定部15の出力はフレームスキップ数決定部20に接続されている。
【0019】
このフレームスキップ数決定部20は、さらに、出力バッファメモリ部17及びフレームスキップ部3に接続されており、有意/非有意判定部15から有意マクロブロック割合情報16が動きベクトル発生部11からスカラ長情報10が出力バッファメモリ部17から直前までの発生情報量18がそれぞれ入力されていて、フレームスキップ数情報19を発生してフレームスキップ部3及び符号化エンジン部6へ出力する。
【0020】
可変長符号化部23は、有意/非有意判定部15と、符号化エンジン部6と、動きベクトル発生部11とに接続されており、それぞれからマクロブロック有意情報21、量子化情報22及び動きベクトル情報9を受け取り符号化を行う。この可変長符号化部23はさらに前述の出力バッファメモリ部17の入力に接続されており符号化出力24を出力する。出力バッファメモリ部17の出力は符号出力部25に接続されている。
【0021】
符号化エンジン部6は後述する一部構成を除いて公知の符号化装置構成となっている。即ち、フレーム間予測かフレーム内予測かに応じて切り替えを行うモードスイッチ6a及び6bと、減算部6cと、加算部6dと、有意/非有意判定部15からマクロブロック有意情報21に応じて有意の場合はオン、非有意の場合はオフとなるスイッチ6eと、DCT(離散コサイン変換)回路6fと、Q(量子化回路)6gと、Q−1(逆量子化回路)6hと、IDCT(離散コサイン逆変換)回路6iと、フレームメモリ6jと、動き補償部6kとから主として構成されている。
【0022】
図2は本実施形態における主要動作を説明するフローチャートである。以下、この図を合わせ用いて本実施形態の動作を説明する。
【0023】
映像信号が映像信号入力部2に入力されると(ステップS1)、このフレームが1枚目のフレームかどうか判別される(ステップS2)。1枚目のフレームである場合は、フレームスキップ部3におけるフレームスキップ動作(ステップS3)を行わずに、映像信号はフレームメモリ部4に入力され、現フレームメモリに格納される(ステップS4)。次いで、このフレームが1枚目のフレームかどうか再度判別される(ステップS5)。
【0024】
1枚目のフレームである場合は、フレームスキップ数決定部20から出力されるフレームスキップ数19を初期値N(枚)に設定する(ステップS6)。次いで、映像信号は符号化エンジン部6へと入力されてフレーム内符号化が行われ、可変長符号化部23でビットストリームに変換された後、出力バッファメモリ部17を通じて、符号出力部25から出力される(ステップS7)。その後、フレームメモリ部4の現フレームメモリに格納されている内容を前フレームメモリに移動し(ステップS8)、ステップS2へ戻る。
【0025】
以後は2枚目以降のフレームとなるため、フレームスキップ部3において、フレームスキップ数19に応じた入力映像信号のフレームスキップ動作が行われる(ステップS3)。フレームスキップ部3においてフレームスキップされた映像信号は、フレームメモリ4の現フレームメモリに格納される(ステップS4)。その後、フレームメモリ4の現フレームメモリ及び前フレームメモリに格納されている画像が所定数のマクロブロックに分割される(ステップS9)。
【0026】
次いで、現フレームの全てのマクロブロックについて処理が終了したかどうか判別し(ステップS10)、終了してない場合は、動きベクトル発生部11より、動きベクトルを発生させる(ステップS11)。この動きベクトルは、零ベクトル(0,0)から順番にその大きさが徐々に大きくなるように一定画素ずつ増大させて発生されるものである。
【0027】
図3は動きベクトル発生部の動作の概念図であり、以下同図を参照してこの動きベクトル発生部11の動作を説明する。図3の各格子は、動きベクトルの最小単位を示している。例えば、動きベクトルの増加ステップが4分の1画素単位であれば、各格子は4分の1画素を表している。丸で囲まれた数字は、動きベクトルを発生させる順番である。▲1▼零ベクトル(0,0)を初めとして、この数字の順番に▲2▼(0,1)、▲3▼(1,0)、▲4▼(0,−1)、▲5▼(−1,0)、▲6▼(1,1)、・・・、と動きベクトルをその大きさの小さい順に発生させる。
【0028】
この動きベクトルは、動きベクトル情報9として動き補償部8、符号化エンジン部6及び可変長符号化部23に印加される。またそのスカラ長は動きベクトルスカラ長情報10としてマクロブロック有意性判定部15及びフレームスキップ数決定部20に印加される。
【0029】
次いで、動きベクトル発生部11において全ての種類の動きベクトルを発生したかどうか判別し(ステップS12)、発生していない場合は、そのマクロブロックに関する動き補償処理を動き補償部8で行う(ステップS13)。即ち、フレームメモリ4に蓄えられている、前フレームの注目マクロブロックに対して動きベクトル発生部11から与えられる1つの動きベクトル情報9で動き補償を施したマクロブロックを抽出し、動き補償マクロブロック12として出力する。
【0030】
次いで、現フレームの注目マクロブロック5と動き補償マクロブロック12とを減算部13に入力し、各画素毎の差分絶対値14(歪)を算出してマクロブロック有意性判定部15へと出力する(ステップS14)。マクロブロック有意性判定部15では、この差分絶対値14からそのマクロブロックが有意であるか非有意であるかを判定する(ステップS15)。
【0031】
図4はマクロブロック有意性判定部15の動作の概念図であり、以下同図を参照して、この有意性判定部15の機能を説明する。まず、マクロブロックを縦横半分ずつ4分割し、それぞれの分割ブロックの差分絶対値の総和を求める。その4つの総和値をT1、T2、T3、T4とした場合、T1〜T4の中の最大のものmax(T1,T2,T3,T4)が、閾値Thを上回るマクロブロックを有意マクロブロック、それ以外を非有意マクロブロックと判定する。
【0032】
この判定の閾値Thは、図5にその一例を示すように、動きベクトルスカラ長をパラメータに含む関数によって決定される。この関数は、図5に示す特性曲線に限定されるものではなく、動きベクトルスカラ長が小さい場合は大きく、動きベクトル長が大きくなると減少し、動きベクトルがある値を越えると飽和する特性であればどのような特性曲線(直線)であってもよい。これにより動きベクトルが小さいとき程、非有意マクロブロックと判定される傾向になる。
【0033】
非有意と判定された場合、動きベクトル及びその「非有意」の情報を保存し(ステップS16)、次のマクロブロックに進み(ステップS17)、ステップS10〜S18の処理を繰り返す。有意と判定された場合、ステップS11へ戻って次の大きさの動きベクトルを発生させてステップS12〜S15の同様の処理を行う。
【0034】
ステップS12において、動きベクトル発生部11が全ての種類の動きベクトルを発生したと判別した場合は、そのマクロブロックは最後まで非有意と判定されなかったため、最終的に有意マクロブロックであることとなる。この場合は、フレーム間差分値が最も小さかった動きベクトル及びその差分値を保存し(ステップS18)、次のマクロブロックに進み(ステップS17)、ステップS10〜S18の処理を繰り返す。
【0035】
このように、各マクロブロック毎に、動きベクトル発生部11から得られるそれぞれのベクトルに対し、現フレームの有意性の判定を行う。全てのマクロブロックに対してこの処理が終了した場合(ステップS10)、次フレームまでのスキップ数19がフレームスキップ数決定部20において算出される(ステップS19)。フレームスキップ数決定部20は、入力されるフレーム内に占める有意マクロブロックの割合情報16、有意マクロブロックの動きベクトルのスカラ長情報10、及び/又は符号化直前までの発生情報量18をパラメータとして含む関数によってフレームスキップ数19を決定する。
【0036】
図6は有意マクロブロック割合に対するフレームスキップ数の好ましい特性の一例を表わしている。有意マクロブロック割合が零の場合にフレームスキップ数は零であり、有意マクロブロック割合が大きくなるにつれてフレームスキップ数も大きくなり、有意マクロブロック割合がある値を越えると飽和する特性となっている。なお、同図におけるフレームスキップ数の数値は、単なる一例でありこれに限定されるものではない。このように、現フレームを占めている有意マクロブロックの割合が大きい場合、その現フレームを符号化するのに必要な情報量は大きいと考えられるので、一定の品質を維持できるまで、フレームスキップ数を必要最小限大きくしている。しかし、フレームスキップ数の甚だしい増加は、動き補償による情報量削減の効率が低下してしまうので、有意マクロブロック割合16の増加に対して、フレームスキップ数19は増加させ続けるのではなく、飽和するような傾向とする。
【0037】
図7は動きベクトルのスカラ長に対するフレームスキップ数の好ましい特性の一例を表わしている。動きベクトルスカラ長が大きくなるにつれてフレームスキップ数が減少する特性となっている。なお、同図におけるフレームスキップ数の数値は、単なる一例でありこれに限定されるものではない。このように、有意マクロブロックの持つ動きベクトルスカラ長10が大きい場合、フレームスキップ数19を大きくすると視覚的に動きの不自然な画像となるため、フレームスキップ数19をやや減少させている。
【0038】
図8は直前までの発生情報量(出力バッファメモリ部17の容量に対する情報蓄積量の割合)に対するフレームスキップ数の好ましい特性の一例を表わしている。直前までの発生情報量が大きくなるにつれてフレームスキップ数も大きくなる特性となっている。なお、同図におけるフレームスキップ数の数値は、単なる一例でありこれに限定されるものではない。このように、直前までの発生情報量18が大きいときには、スキップ数を少し増加させ、発生情報量を抑えてバッファ溢れを防いでいる。
【0039】
フレームスキップ数は、上述の有意マクロブロックの割合、有意マクロブロックの動きベクトルスカラ長、及び符号化直前までの発生情報量のいずれか1つをパラメータとする関数であってもよいが、これらを全てパラメータとする関数であってもよい。
【0040】
図9はその場合のフレームスキップ数の好ましい特性を3次元的に表わしている。即ち、有意マクロブロック割合が零の場合にフレームスキップ数は零であり、有意マクロブロック割合が大きくなるにつれてフレームスキップ数も大きくなり、有意マクロブロック割合がある値を越えると飽和し、動きベクトルスカラ長が大きくなるにつれてフレームスキップ数が減少し、直前までの発生情報量が大きくなるにつれてフレームスキップ数も大きくなる特性となっている。
【0041】
一例として、注目フレームにおける有意マクロブロック割合が30%、動きベクトルスカラ長が60、直前までの情報発生量が出力バッファの70%を占めているとすると、図6よりスキップ数は7枚、図7よりスキップ数は+1枚、図8よりスキップ数は−1枚であるので、最終的なフレームスキップ数は、この場合、7+1+(−1)=7枚となる。
【0042】
次フレームまでのフレームスキップ数を決定した後、決定されたフレームスキップ数19、現フレームの注目マクロブロック5、動きベクトル情報9、及びマクロブロックの有意情報21をそれぞれ符号化エンジン部6に入力する(ステップS20)と共に、動きベクトル情報9及びマクロブロックの有意情報21を可変長符号化部23に入力する。
【0043】
符号化エンジン部6において、決定されたフレームスキップ数19は量子化部6gに入力され、量子化器選択のためのパラメータとして用いられる。フレームスキップ数19が大きいときは、伝送路に余裕があるため、やや細かい量子化器を選択する。逆にフレームスキップ数19が小さいときには、やや粗い量子化器を選択するようにする。図10はフレームスキップ数に対する量子化ステップの好ましい特性の一例を表わしている。フレームスキップ数が大きくなるにつれて量子化ステップ数が細かくなる特性となっている。なお、同図におけるフレームスキップ数の数値は、単なる一例でありこれに限定されるものではない。
【0044】
マクロブロックの有意情報21はスイッチ6eに印加され、有意マクロブロックの場合はこのスイッチ6eをオンとしてそのマクロブロックに関する予測誤差を量子化するが、非有意マクロブロックの場合はこのスイッチ6eをオフとしてそのマクロブロックに関する予測誤差を量子化しない。符号化エンジン部6のその他の動作は公知であるため、説明を省略する。
【0045】
符号化エンジン部6で得られたそのフレームの量子化データ22(有意マクロブロックの場合)、動ベクトル情報9、及びマクロブロックの有意情報21は可変長符号化部23で符号化され(ステップS21)、出力バッファメモリ部17を通して、符号出力部25から伝送路上に出力される。次いでステップS2からの同様の動作が次のフレームに関して繰り返される。
【0046】
以上述べたように本実施形態によれば、動きベクトルのみを伝送する非有意マクロブロックに関して、そのマクロブロックが非有意と判定される範囲内で、動きベクトルのスカラ長が小さくなるように選ばれるので、発生する動きベクトル情報量を抑えることができる。
【0047】
また、フレームスキップ数を注目フレームの符号化前に決定することにより、その画像の持つ特徴を十分に生かしたフレームスキップ数を決定することが可能となる。その結果、画像の持つ情報量をあらかじめ予測し、フレームレートの制御をすることが可能になり、品質が一定な可変フレームレート画像符号化が可能となった。また、動きベクトル情報をフレームレートの制御に用いることができるので、視覚的に自然な動きの画像を得ることができる。
【0048】
以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。
【0049】
【発明の効果】
以上詳細に説明したように本発明によれば、非有意マクロブロックであると判別した場合は動きベクトルのみを伝送するようにし、符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択しているので、動きベクトルのみを伝送する場合にその伝送される動きベクトル情報量が少なくなり、伝送情報量の低減化を図ることができる。
【0050】
閾値が動きベクトルの大きさをパラメータに含む関数によって決定され、関数が動きベクトルの大きさが大きくなると減少する関数であるか、又は動きベクトルの大きさが大きくなると減少し、動きベクトルがある値を越えると飽和する関数であるようにすることにより、動きベクトルが小さいほど、非有意マクロブロックと判定され易くなる。
【図面の簡単な説明】
【図1】本発明の動画像符号化装置の一実施形態の構成を概略的に示すブロック図である。
【図2】図1の実施形態における主要動作を説明するフローチャートである。
【図3】動きベクトル発生部の動作の概念図である。
【図4】マクロブロック有意性判定部の動作の概念図である。
【図5】マクロブロック有意性判定閾値の特性図である。
【図6】有意マクロブロック割合に対するフレームスキップ数の好ましい特性の一例を表わす特性図である。
【図7】動きベクトルのスカラ長に対するフレームスキップ数の好ましい特性の一例を表わす特性図である。
【図8】直前までの発生情報量に対するフレームスキップ数の好ましい特性の一例を表わす特性図である。
【図9】フレームスキップ数の好ましい特性を3次元的に表わす特性図である。
【図10】フレームスキップ数に対する量子化ステップの好ましい特性の一例を表わす特性図である。
【符号の説明】
1 可変フレームレート動画像符号化装置
2 映像信号入力部
3 フレームスキップ部
4、6j フレームメモリ
6 符号化エンジン部
6a、6b モードスイッチ
6c、13 減算部
6d 加算部
6e スイッチ
6f DCT(離散コサイン変換)回路
6g Q(量子化回路)
6h Q−1(逆量子化回路)
6i IDCT(離散コサイン逆変換)回路
6k、8 動き補償部
11 動きベクトル発生部
15 マクロブロック有意/非有意判定部
17 出力バッファメモリ部
20 フレームスキップ数決定部
23 VLC(可変長符号化部)
25 符号出力部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a moving picture coding method and apparatus for coding a moving picture signal with motion compensation, and more particularly to a moving picture coding method and apparatus effective when transmitting at a low bit rate.
[0002]
[Prior art]
In a conventional moving picture coding apparatus using a block matching method, the amount of information is reduced by classifying a coding target macroblock as significant or insignificant and coding only significant blocks.
[0003]
That is, the difference between the current macroblock to be coded in the current frame and the motion-compensated macroblock in the previous frame is calculated. Macroblocks with a difference value below a certain threshold are treated as insignificant macroblocks, and only the motion vector is calculated. A method has been used that does not perform any encoding on stationary macroblocks that are transmitted and are insignificant and have zero motion vector.
[0004]
[Problems to be solved by the invention]
According to such a conventional method, the motion vector is determined according to the macroblock of the previous frame such that the difference (distortion) between the current macroblock to be encoded of the current frame and the macroblock subjected to motion compensation of the previous frame is as small as possible. Since the block matching method of detecting and performing motion compensation using the detected motion vector is used, the following problem occurs.
[0005]
When the significance of a macroblock is determined as described above in a system that determines a macroblock of a reference image and detects a motion vector so as to minimize the difference value (distortion), a macroblock determined to be insignificant is determined. Unnecessarily large motion vectors may be transmitted. In other words, in a non-significant macroblock, information to be transmitted is only a motion vector. Therefore, when motion compensation with sufficient accuracy can be performed even with a small motion vector, or when a difference value does not increase so much without motion compensation. Etc., a large motion vector is transmitted, and accordingly, useless information is transmitted.
[0006]
Accordingly, it is an object of the present invention to provide a moving picture coding method and apparatus capable of reducing the amount of transmission information while preventing image quality deterioration.
[0007]
[Means for Solving the Problems]
The present invention performs motion compensation on the macroblock of the previous frame using the generated motion vector, and calculates a prediction error that is a difference between the macroblock subjected to motion compensation and the current macroblock to be coded, By comparing the calculated prediction error with a threshold, it is determined whether the current macroblock is a non-significant macroblock or a significant macroblock larger than the threshold, and if the macroblock is a significant macroblock, coding is performed. The present invention relates to a moving picture coding method. In particular, according to the present invention, the threshold value is set to a function that decreases as the size of the motion vector increases, and when it is determined that the macroblock is insignificant, only the motion vector is transmitted and the encoding target macroblock is The motion vector having the minimum vector scalar length within the range determined to be insignificant is selected.
[0008]
Since the motion vector having the minimum vector scalar length is selected within the range in which the encoding target macroblock is determined to be insignificant, the amount of transmitted motion vector information is reduced when only the motion vector is transmitted, The amount of transmission information can be reduced. In addition, since the threshold for determining whether a macroblock is a non-significant macroblock or a large macroblock is a function that decreases as the size of the motion vector increases, it is easy to determine that the motion vector is small as a nonsignificant macroblock. If the motion vector is large, it is difficult to determine that the block is an insignificant macroblock.
[0009]
A motion vector is generated by sequentially increasing the motion vector from the smallest one, and each time the motion vector is generated, motion compensation is performed using the generated motion vector, a prediction error is calculated, and the calculated prediction error is compared with a threshold value. Thus, it is preferable to make a distinction between significant and insignificant.
[0010]
Preferably, the threshold is a function that decreases as the magnitude of the motion vector increases and saturates when the motion vector exceeds a certain value.
[0011]
The present invention further provides a motion vector generating unit for generating a motion vector, a unit for performing motion compensation on a macroblock of a previous frame using the generated motion vector, a code of a macroblock subjected to motion compensation and a code of a current frame. Means for calculating a prediction error that is a difference from the encoding target macroblock, and comparing the calculated prediction error with a threshold to determine whether the encoding target macroblock is a non-significant macroblock smaller than the threshold or a significant macroblock. The present invention relates to a moving picture coding apparatus provided with a discriminating means for discriminating whether there is a macroblock and a means for coding when a significant macroblock is discriminated. In particular, the present invention further comprises means for transmitting only the motion vector when the motion vector is determined to be a non-significant macroblock, and the threshold value of the determination means is a function that decreases as the size of the motion vector increases. The generating means is configured to select a motion vector having a minimum vector scalar length within a range in which the encoding target macroblock is determined to be insignificant.
[0012]
Since the motion vector having the minimum vector scalar length is selected within the range in which the encoding target macroblock is determined to be insignificant, when only the motion vector is transmitted, the amount of transmitted motion vector information is reduced. The amount of information can be reduced. In addition, since the threshold for determining whether a macroblock is a non-significant macroblock or a large macroblock is a function that decreases as the size of the motion vector increases, it is easy to determine that the motion vector is small as a nonsignificant macroblock. If the motion vector is large, it is difficult to determine that the block is an insignificant macroblock.
[0013]
The motion vector generation means is means for generating a motion vector by sequentially increasing the motion vector from the smallest magnitude motion vector, and the motion compensation means, the calculation means, and the discrimination means generate the motion vector each time a motion vector is generated. It is preferable that the means is a means for performing motion compensation using the data, calculating a prediction error, and comparing the calculated prediction error with a threshold to determine significance or insignificance.
[0014]
It is preferable that the threshold value of the determination means be a function that decreases as the magnitude of the motion vector increases and saturates when the motion vector exceeds a certain value.
[0015]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram schematically showing a configuration of an embodiment of the moving picture coding apparatus according to the present invention.
[0016]
In FIG. 1,
[0017]
The
[0018]
The
[0019]
The frame skip
[0020]
The variable-
[0021]
The
[0022]
FIG. 2 is a flowchart illustrating main operations in the present embodiment. Hereinafter, the operation of this embodiment will be described with reference to FIG.
[0023]
When a video signal is input to the video signal input unit 2 (step S1), it is determined whether or not this frame is the first frame (step S2). If it is the first frame, the video signal is input to the
[0024]
If the frame is the first frame, the
[0025]
Thereafter, since the subsequent frames are the second and subsequent frames, the
[0026]
Next, it is determined whether or not the processing has been completed for all the macroblocks in the current frame (step S10). If the processing has not been completed, a motion vector is generated by the motion vector generation unit 11 (step S11). This motion vector is generated by increasing the size of the motion vector from the zero vector (0, 0) by a certain number of pixels so that the magnitude gradually increases.
[0027]
FIG. 3 is a conceptual diagram of the operation of the motion vector generator. Hereinafter, the operation of the
[0028]
This motion vector is applied as
[0029]
Next, it is determined whether or not all types of motion vectors have been generated in the motion vector generation unit 11 (step S12). If no motion vector has been generated, the
[0030]
Next, the
[0031]
FIG. 4 is a conceptual diagram of the operation of the macroblock
[0032]
The threshold value Th for this determination is determined by a function including a motion vector scalar length as a parameter, as shown in an example in FIG. This function is not limited to the characteristic curve shown in FIG. 5, but is large when the motion vector scalar length is small, decreases when the motion vector length is large, and saturates when the motion vector exceeds a certain value. Any characteristic curve (straight line) may be used. As a result, the smaller the motion vector is, the more likely it is to determine a non-significant macroblock.
[0033]
If it is determined to be insignificant, the motion vector and its "insignificant" information are stored (step S16), the process proceeds to the next macroblock (step S17), and the processing of steps S10 to S18 is repeated. If it is determined to be significant, the process returns to step S11 to generate a motion vector of the next magnitude, and performs the same processing in steps S12 to S15.
[0034]
In step S12, when the motion
[0035]
In this way, for each macroblock, the significance of the current frame is determined for each vector obtained from the motion
[0036]
FIG. 6 shows an example of a preferable characteristic of the frame skip number with respect to the significant macroblock ratio. When the ratio of significant macroblocks is zero, the number of frame skips is zero, and as the ratio of significant macroblocks increases, the number of frame skips also increases. When the ratio of significant macroblocks exceeds a certain value, the characteristic is saturated. It should be noted that the numerical value of the number of frame skips in the figure is merely an example, and the present invention is not limited to this. As described above, when the ratio of significant macroblocks occupying the current frame is large, the amount of information necessary to encode the current frame is considered to be large. Is as large as possible. However, if the number of frame skips is significantly increased, the efficiency of information amount reduction by motion compensation is reduced. Therefore, the
[0037]
FIG. 7 shows an example of a preferable characteristic of the frame skip number with respect to the scalar length of the motion vector. As the motion vector scalar length increases, the number of frame skips decreases. It should be noted that the numerical value of the number of frame skips in the figure is merely an example, and the present invention is not limited to this. As described above, when the motion
[0038]
FIG. 8 shows an example of a preferable characteristic of the number of frame skips with respect to the amount of information generated immediately before (the ratio of the information storage amount to the capacity of the output buffer memory unit 17). As the amount of generated information up to immediately before increases, the number of frame skips also increases. It should be noted that the numerical value of the number of frame skips in the figure is merely an example, and the present invention is not limited to this. As described above, when the amount of generated
[0039]
The number of frame skips may be a function in which any one of the above-described ratio of significant macroblocks, the length of a motion vector scalar of significant macroblocks, and the amount of information generated immediately before encoding is used. Functions with all parameters may be used.
[0040]
FIG. 9 three-dimensionally shows a preferable characteristic of the frame skip number in that case. That is, when the significant macroblock ratio is zero, the number of frame skips is zero, and as the significant macroblock ratio increases, the frame skip number also increases. As the length increases, the number of frame skips decreases, and as the amount of generated information up to immediately before increases, the number of frame skips also increases.
[0041]
As an example, assuming that the significant macroblock ratio in the frame of interest is 30%, the motion vector scalar length is 60, and the information generation amount immediately before occupies 70% of the output buffer, the number of skips is 7 from FIG. Since the skip number is +1 from FIG. 7 and the skip number is −1 from FIG. 8, the final frame skip number is 7 + 1 + (− 1) = 7 in this case.
[0042]
After the number of frame skips up to the next frame is determined, the determined
[0043]
In the
[0044]
The
[0045]
The quantized data 22 (in the case of a significant macroblock) of the frame, the
[0046]
As described above, according to the present embodiment, for a non-significant macroblock that transmits only a motion vector, the scalar length of the motion vector is selected to be small within a range in which the macroblock is determined to be nonsignificant. Therefore, the amount of generated motion vector information can be suppressed.
[0047]
Further, by determining the number of frame skips before encoding the frame of interest, it is possible to determine the number of frame skips that makes full use of the features of the image. As a result, it becomes possible to predict the information amount of the image in advance and control the frame rate, and it becomes possible to perform variable frame rate image coding with constant quality. Also, since the motion vector information can be used for controlling the frame rate, a visually natural motion image can be obtained.
[0048]
The embodiments described above are merely examples of the present invention and are not intended to limit the present invention, and the present invention can be embodied in other various modifications and alterations. Therefore, the scope of the present invention is defined only by the appended claims and their equivalents.
[0049]
【The invention's effect】
As described above in detail, according to the present invention, when it is determined that the macroblock is a non-significant macroblock, only the motion vector is transmitted, and the coding target macroblock has the minimum value within the range determined to be nonsignificant. Since a motion vector having a vector scalar length is selected, when only a motion vector is transmitted, the amount of transmitted motion vector information is reduced, and the amount of transmitted information can be reduced.
[0050]
The threshold is determined by a function that includes the magnitude of the motion vector as a parameter, and the function is a function that decreases as the magnitude of the motion vector increases, or decreases when the magnitude of the motion vector increases, and a value at which the motion vector has a certain value. Is set to be a function that saturates when the motion vector exceeds the threshold value, so that the smaller the motion vector is, the easier it is to determine a non-significant macro block.
[Brief description of the drawings]
FIG. 1 is a block diagram schematically showing a configuration of an embodiment of a video encoding device of the present invention.
FIG. 2 is a flowchart illustrating a main operation in the embodiment of FIG. 1;
FIG. 3 is a conceptual diagram of an operation of a motion vector generation unit.
FIG. 4 is a conceptual diagram illustrating the operation of a macroblock significance determination unit.
FIG. 5 is a characteristic diagram of a macroblock significance determination threshold.
FIG. 6 is a characteristic diagram illustrating an example of a preferable characteristic of a frame skip number with respect to a significant macroblock ratio.
FIG. 7 is a characteristic diagram illustrating an example of a preferable characteristic of a frame skip number with respect to a scalar length of a motion vector.
FIG. 8 is a characteristic diagram illustrating an example of a preferable characteristic of a frame skip number with respect to an amount of generated information up to immediately before;
FIG. 9 is a characteristic diagram three-dimensionally showing preferable characteristics of the frame skip number.
FIG. 10 is a characteristic diagram illustrating an example of preferable characteristics of a quantization step with respect to the number of frame skips.
[Explanation of symbols]
6h Q -1 (Inverse quantization circuit)
6i IDCT (Inverse Discrete Cosine Transform)
25 Code output unit
Claims (6)
前記閾値を動きベクトルの大きさが大きくなると減少する関数とし、非有意マクロブロックであると判別した場合は、前記動きベクトルのみを伝送するようにすると共に前記符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択することを特徴とする動画像符号化方法。Using the generated motion vector, motion compensation is performed on the macroblock of the previous frame, and a prediction error, which is a difference between the motion-compensated macroblock and the current macroblock to be coded, is calculated. By comparing the prediction error with a threshold, it is determined whether the current macroblock is a non-significant macroblock or a significant macroblock larger than the threshold, and if it is determined that the macroblock is a significant macroblock, coding is performed. Moving image encoding method,
When the threshold value is a function that decreases as the size of the motion vector increases, and when it is determined that the macroblock is insignificant, only the motion vector is transmitted and the encoding target macroblock is determined to be insignificant. A moving vector having a minimum vector scalar length within a range to be encoded.
非有意マクロブロックであると判別した場合は前記動きベクトルのみを伝送する手段をさらに備えており、
前記判別手段の前記閾値は動きベクトルの大きさが大きくなると減少する関数であり、
前記動きベクトル発生手段は、前記符号化対象マクロブロックが非有意と判別される範囲内で最小のベクトルスカラ長の動きベクトルを選択する手段であることを特徴とする動画像符号化装置。A motion vector generating means for generating a motion vector, a motion compensating means for performing motion compensation on a macroblock of a previous frame using the generated motion vector, and an encoding target of the macroblock subjected to the motion compensation and a current frame. Calculating means for calculating a prediction error, which is a difference from the macroblock, and comparing the calculated prediction error with a threshold value, whereby the coding target macroblock is a non-significant macroblock smaller or larger than the significant macroblock. A moving image encoding apparatus comprising: a determination unit configured to determine whether the block is a block; and a unit configured to perform coding when determined to be a significant macroblock,
If it is determined that the block is a non-significant macro block, further comprising means for transmitting only the motion vector,
The threshold of the determination means is a function that decreases as the size of the motion vector increases,
The moving picture encoding apparatus, wherein the motion vector generating means is a means for selecting a motion vector having a minimum vector scalar length within a range in which the encoding target macroblock is determined to be insignificant.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34707395A JP3573176B2 (en) | 1995-12-15 | 1995-12-15 | Moving image encoding method and apparatus |
| US08/766,145 US5940131A (en) | 1995-12-15 | 1996-12-12 | Method and apparatus for coding moving pictures |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34707395A JP3573176B2 (en) | 1995-12-15 | 1995-12-15 | Moving image encoding method and apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09168154A JPH09168154A (en) | 1997-06-24 |
| JP3573176B2 true JP3573176B2 (en) | 2004-10-06 |
Family
ID=18387739
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP34707395A Expired - Lifetime JP3573176B2 (en) | 1995-12-15 | 1995-12-15 | Moving image encoding method and apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3573176B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100549926B1 (en) * | 1998-04-28 | 2006-10-19 | 주식회사 팬택앤큐리텔 | Motion vector estimator for each area of image and motion compensation prediction encoding / decoding method for each area of image |
| KR19990081354A (en) * | 1998-04-28 | 1999-11-15 | 김영환 | Motion Estimation Method by Region of Image |
| JP4417918B2 (en) * | 2006-03-30 | 2010-02-17 | 株式会社東芝 | Interpolation frame creation device, motion vector detection device, interpolation frame creation method, motion vector detection method, interpolation frame creation program, and motion vector detection program |
-
1995
- 1995-12-15 JP JP34707395A patent/JP3573176B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH09168154A (en) | 1997-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3043599B2 (en) | Quantization step size controller using neural network | |
| JPH09331533A (en) | Video coding device | |
| JPH07112284B2 (en) | Predictive encoding device and decoding device | |
| JP3206413B2 (en) | Variable frame rate video coding method | |
| US5508745A (en) | Apparatus for controlling a quantization level to be modified by a motion vector | |
| JP3674535B2 (en) | Video coding method and apparatus | |
| JP3573176B2 (en) | Moving image encoding method and apparatus | |
| JPH09298753A (en) | Moving picture coding method and moving picture coding apparatus | |
| JPH07264595A (en) | Image source coding method | |
| JP3173257B2 (en) | Encoding method and encoding device | |
| JPH06268997A (en) | Moving image compression device | |
| KR970004924B1 (en) | Improved motion vector transmission apparatus and method using layered coding | |
| KR100613732B1 (en) | Digital Image Compression System and Method | |
| JP3223043B2 (en) | Video encoding device | |
| JP3507042B2 (en) | Video compression device | |
| KR200309401Y1 (en) | Image Compression System for Digital Video Surveillance | |
| JP2551334B2 (en) | Motion compensation interframe coding method | |
| JPH06217284A (en) | Image encoding device | |
| JPH04175085A (en) | Moving picture encoding system | |
| JPH07154795A (en) | Video coding device | |
| JPH10145793A (en) | Image coding apparatus and method, and image decoding apparatus and method | |
| JP4353928B2 (en) | Data compression method, recording method, and transmission method | |
| JPH11331848A (en) | Moving image signal encoding device and its method | |
| JPH0795582A (en) | Picture data compressor | |
| JP2000059767A5 (en) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20020226 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040622 |
|
| 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: 20100709 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
| EXPY | Cancellation because of completion of term |