JP5897218B2 - 映像符号化方法、およびこの方法を用いる映像符号化装置 - Google Patents

映像符号化方法、およびこの方法を用いる映像符号化装置 Download PDF

Info

Publication number
JP5897218B2
JP5897218B2 JP2015527763A JP2015527763A JP5897218B2 JP 5897218 B2 JP5897218 B2 JP 5897218B2 JP 2015527763 A JP2015527763 A JP 2015527763A JP 2015527763 A JP2015527763 A JP 2015527763A JP 5897218 B2 JP5897218 B2 JP 5897218B2
Authority
JP
Japan
Prior art keywords
frame
video
mode
current
prediction mode
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.)
Active
Application number
JP2015527763A
Other languages
English (en)
Other versions
JP2015530035A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2015530035A publication Critical patent/JP2015530035A/ja
Application granted granted Critical
Publication of JP5897218B2 publication Critical patent/JP5897218B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、名称を「映像ストリーム符号化方法および装置」とする、2012年8月21日に出願された中国特許出願第201210298932.Xに対する優先権を主張し、この出願明細書の全内容が、ここに参考文献として援用される。
本明細書に開示の各実施態様は、概して、映像符号化の技術分野に関し、詳しくは、映像符号化方法および映像符号化装置に関する。
H.264/AVCは、ITU−TおよびISO/IECにより共同開発された、最新の映像符号化国際標準である。以前の映像符号化基準と比較して、H.264/AVCは、最高水準の符号化効率と最強のネットワーク適応性を有する最新の符号化標準であると、JVTの指定を受けている。同じビットレートでは、H.264/AVCでは、符号化効率が向上し、最高画質を達成することができる。特に、MPEG−4と比較すると、低ビットレートでのH.264/AVCの符号化性能は大幅に向上し、主に、低帯域幅の高品質ネットワーク映像の用途に適用可能である。符号化効率を向上させるために、H.264/AVCでは、多種多様な新技術を採用し、従来の映像符号化標準と較べて、計算複雑性がより高くなっている。このように、ハードウェアやソフトウェアにおけるリアルタイムの符号化はますます難度が高くなっている。移動型プラットフォームに関して言うと、計算能力やネットワーク帯域幅が限られているため、移動型プラットフォーム上では、リアルタイムの映像通信はかなり速度が遅い。したがって、移動型プラットフォーム上で映像をリアルタイムで送信・圧縮するためには、計算複雑性の軽減と符号化効率の向上が非常に重要である。
映像の符号化では、映像シーケンスを、連続するピクチャー群(グループ・オブ・ピクチャー:GOP)によって形成する。1つのGOPは、一群の連続するピクチャーであり、通常、1つのIフレーム(イントラ符号化フレーム)で始まり、このIフレームの後に、Bフレーム(双方向符号化フレーム)が複数介挿された複数のPフレーム(予測符号化フレーム)が続く。GOP長は、各種符号化方法にしたがって設定される。一般的な映像符号化技術では、まず、予測符号化を映像シーケンスに行い、画像ピクセルとその予測値との間の差分信号を送信する。空間的相関関係や時間的相関関係を排除することで、画像圧縮を行うことができる。予測符号化には、イントラフレーム(フレーム内)予測符号化と、インターフレーム(フレーム間)予測符号化がある。イントラフレーム予測符号化は、1つのフレームのピクセル値を用いて予測し、インターフレーム予測符号化は、隣接するフレームのピクセル値を用いて予測する。
H.264/AVCの標準符号化処理では、その時点での入力画像を符号化の単位として、マクロブロック(例えば、16×16ピクセル)を用いて、符号化する。イントラフレーム符号化を適用する場合、イントラフレーム予測を行うため対応するイントラフレーム予測符号化モードを選択し、実際のピクセル値と予測ピクセル値との間の差分に対して、変換と量子化とエントロピー符号化とを行う。その後、エントロピー符号化したビットストリームを通信チャネルへ送信する。一方、符号化ビットストリームに対しては、逆量子化と逆変換とを行い、残差画像を再構築する。その後、残差画像は予測ピクセル値に加えられる。その結果は、非ブロック化フィルタを介して、平滑化処理を行った後、フレームメモリへ送信され、次のフレーム符号化用の参照画像として用いられる。インターフレーム符号化を適用する場合、まず、入力画像の参照フレームに対する動きを推定し、動きベクトルを取得する。その後、整数変換と量子化とエントロピー符号化とを行った後、動きベクトルとともに、動き補償残差画像を通信チャネルへ送信する。その一方、他方のビットストリームが、同様に、非ブロック化フィルタを介して再構築された後、フレームメモリへ送信され、次のフレーム符号化用の参照画像として用いられる。インターフレーム符号化モードでは、参照対象は、前回の符号化フレームから再構築した1つ以上のフレームである。
H.264/AVC標準による入力画像は、例えば、Iフレーム、Pフレーム、Bフレームに分類される。一般的には、IフレームとPフレームは、参照フレームとして用いられる。符号化処理の間、Pフレームは順方向予測モードのみを有し、一方、Bフレームは順方向予測モードと、逆方向予測モードと、双方向予測モードとを有している。Iフレームの予測モードはすべて、イントラフレーム予測符号化モードである。PフレームとBフレームの予測モードには、イントラフレーム予測符号化モードとインターフレーム予測符号化モードとが含まれ、これら予測符号化モードの内、その大多数をインターフレーム予測符号化モードが占める。
インターフレーム予測は、動き補償に基づいて、符号化および再構築された映像フレームを用いて行う予測モードである。その時点での符号化ピクセルがある画像フレームは、現在のフレームと呼ばれ、予測に用いる画像フレームは、参照フレームと呼ばれる。16×16ピクセル符号化マクロブロックは、別々のサブブロックに分割可能であり、異なる分割モードで7つのサブブロックサイズ(16×16、16×8、8×16、8×8、8×4、4×8、4×4)が形成される。各分割領域に、1つの独立した動きベクトルが付与される。各動きベクトルとマクロブロックの分割モードは、符号化してから送信しなければならない。サイズが大きいサブブロックを有する分割モードが選択されると、例えば、より少ないビットで、動きベクトルとマクロブロックとの分割モードを表すことができるが、画像の詳細領域では、大きなサブブロックサイズを用いた動き補償後の残差画像は、そのエネルギーが大きくなる(すなわち、エラー)。サイズが小さいサブブロックを有する分割モードが選択されると、画像をより正確に予測することが可能になり、小さなサブブロックサイズを用いた動き補償後の残差画像は、そのエネルギーが小さくなる。しかし、動きベクトルとマクロブロックの分割モードを表すのに、より多くのビットが必要になる。
H.264/AVC符号化標準では、Bフレームでダイレクト予測モードを適用し、符号化情報から取得した予測動きベクトルを、現在のマクロブロックの動きベクトルとして直接用いるため、マクロブロックの動きベクトルを符号化する必要はない。Bフレームは双方向予測が可能なため、ダイレクトモードでは、例えば、異なる参照フレームを指し示す2つの予測動きベクトルが得られる。時間領域ダイレクトモードにおける順方向予測動きベクトルと逆方向予測動きベクトルは、それぞれ、時間順に位置付けた対応するフレームの動きベクトルを介して計算される。空間領域ダイレクトモードにおける順方向予測動きベクトルと逆方向予測動きベクトルは、それぞれ、空間順に位置付けた対応する順方向参照フレームと逆方向参照フレームの動きベクトルを介して計算される。
従来の映像符号化方法では、GOPにおける1番目のフレームは、通常、Iフレームとして符号化される。2番目(1+1)のフレームから(1+n)番目のフレームまではBフレームとして設定され、n個のBフレームがキャッシュされる。(n+2)番目のフレームはPフレームとして設定され、符号化される。最後に、2番目のフレームから(1+n)番目のフレームまでのBフレームは、順次符号化され、各GOPの最後のフレームはPフレームとして符号化される。従来技術における、GOP長が7とn=1の符号化シーケンスの一例を図8に示す。この例では、参照方向を矢印で示す。
特定の画像フレームがBフレームと判断されると、符号化処理中、マクロブロックごとに、最適ブロック符号化モードを判断する必要がある。詳しくは、まず、現在のマクロブロックの予測動きベクトルにしたがって、現在のマクロブロックがダイレクトモードの条件を満たすか否かを判断する必要がある。上記判断が肯定の場合、さらに、現在のマクロブロックがスキップモードの条件を満たすか否かを判断する。上記判断が肯定の場合、スキップモードを最適符号化モードとして選択する。スキップモードとは、予測動きベクトルにしたがって、参照フレームの対応ピクセルを直接コピーすることであり、この場合、動きベクトル差とピクセル残差はビットストリームには書き込まれない。現在のマクロブロックがダイレクトモードの条件は満たすが、スキップモードの条件は満たさない場合、このマクロブロックをダイレクト16×16モードで符号化する場合のコストを計算する。マクロブロックがダイレクトモードの条件を満たさない場合、ダイレクト16×16モードのコスト計算は行わない。さらに、現在のマクロブロックの各マクロブロック分割モードに対して動き推定を行うが、これには、マクロブロック分割モードにおけるインターフレーム予測符号化のコスト計算と、マクロブロック分割モードにおける、異なる予測方向に対するイントラフレーム予測符号化のコスト計算が含まれる。これらモードすべてのコストを比較し、最少コストのモードを、最適ブロック符号化モードとして選択する。
上述したように、従来の映像符号化モードでは、Bフレームを符号化するためにあるモードを選択すると、現在のマクロブロックの最適ブロック符号化モードでは、動き推定を通じて、インターフレームモードの動きベクトルを取得し、各モードのコスト値を、異なる予測方向のイントラフレーム予測符号化を通じて計算することが必要である。各モードのコスト値を比較することで、最少コスト値のモードを最適符号化モードとして選択する。最後に、動きベクトル残差と、ピクセル値残差と、モードビット(現在のマクロブロックの符号化モードを示すフラッグビット)は、同時に1つのビットストリームへと符号化される。したがって、従来の映像符号化モードでは、Bフレームの符号化におけるモード選択の計算は非常に複雑である。符号化処理全体では、モード選択は手間のかかる処理であることが多く、符号化処理全体において、計算複雑性が非常に高く、計算量が大きくなる結果となり、映像符号化の効率が低下する。
本発明は、従来技術の上記問題を解決するために、計算の複雑性と計算量を軽減することで、映像符号化の効率を向上させる映像符号化方法を提供する。
この映像符号化方法は、
映像シーケンスにおける複数の映像フレームに対してフレームタイプを設定するステップと、
Bフレームとして設定した映像フレームを取得するステップと、
前記映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、前記現在のマクロブロックが前記ダイレクト予測モードを満たす場合、さらに、前記現在のマクロブロックがスキップ予測モードを満たすか否か判断するステップと、
前記現在のマクロブロックが前記ダイレクト予測モードを満たさない、または、前記現在のマクロブロックが前記スキップ予測モードを満たさない場合、前記ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した順方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストとを含む、複数のモードコストのうちの少なくとも1つを計算するステップと、
前記複数のモードコストにおける最少コストのモードを、最適予測方向として選択し、前記現在のマクロブロックを符号化するステップと、
を含む。
さらに、計算の複雑性と計算量を軽減することで、映像符号化の効率を向上させる映像符号化装置が提供される。
上記映像符号化装置は、映像シーケンスにおける複数の映像フレームに対してフレームタイプを設定するよう構成されるフレームタイプ設定モジュールと、Bフレーム符号化モジュールとを備え、
前記Bフレーム符号化モードは、
Bフレームとして設定した映像フレームを取得するよう構成されるBフレーム取得モジュールと、
前記映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、前記現在のマクロブロックが前記ダイレクト予測モードを満たす場合、さらに、前記現在のマクロブロックがスキップ予測モードを満たすか否か判断するよう構成される判断モジュールと、
前記現在のマクロブロックが前記ダイレクト予測モードを満たさない、または、前記現在のマクロブロックが前記スキップ予測モードを満たさない場合、複数のモードコストのうちの少なくとも1つ、すなわち、前記ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した順方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストとのうちの少なくとも1つを計算するよう構成され、かつ、前記モードコストにおける最少コストのモードを、最適予測方向として選択するよう構成されるモード選択モジュールと、
選択した前記最適予測方向にしたがって、前記現在のマクロブロックを符号化するよう構成される符号化モジュールと、
を備える。
以上説明した映像符号化方法と映像符号化装置では、Bフレームを符号化する場合、異なる方向の予測動きベクトルを用いて現在のマクロブロックに動き補償を行った後、モードコストを計算することで、最少コストのモードを最適予測モードとして選択して、現在のマクロブロックを符号化する。モード選択中は、各インターフレームの動きベクトルと各モードのコスト値とを、動き推定を介して計算する必要はなく、スキップ予測モードとダイレクト予測モードとのみを維持する。モード選択中は、異なる予測動きベクトルを用いて現在のマクロブロックに対する動き補償を行った後のモードコストの計算が必要なだけである。したがって、計算の複雑性と計算量が軽減し、映像符号化の効率を向上させることができる。
上記の本発明の実施態様は、他の実施態様とともに、以下に記載する本発明の各局面の詳細な説明および添付図面の参照により、さらに明確に理解されるであろう。同様の符号は、図面の一部における同一の構成部を指す。
図1は、本発明のいくつかの実施態様における、映像符号化方法を示す概略フローチャートである。 図2は、本発明のいくつかの実施態様における、映像シーケンス(この映像シーケンスでは、連続して出現するダイレクトBフレーム数は1つである)の符号化を示す概略フローチャートである。 図3は、本発明のいくつかの実施態様における、GOP長が7の符号化シーケンスの例示である。 図4は、本発明のいくつかの実施態様における、最適予測方向における現在のマクロブロックの符号化を示す概略フローチャートである。 図5は、本発明のいくつかの実施態様における、映像符号化装置の概略構造図である。 図6は、本発明の別の実施態様における、映像符号化装置の概略構造図である。 図7は、本発明のいくつかの実施態様における、符号化モジュールの概略構造図である。 図8は、従来技術における、GOP長が7の符号化シーケンスの例示である。 図9は、本発明のいくつかの実施態様による映像化符号化方法を実行する、好適なコンピュータを示すブロック図である。
本発明では、Bフレームを符号化する場合、スキップモードとダイレクトモードとのみを維持するため、従来のダイレクト予測モードの向上が図れる。異なる方向の予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストを計算することで、最少コストのモードを、最適予測方向として選択し、その最適予測方向で予測動きベクトルにしたがって符号化を行う。従来の映像符号化方法と比較して、Bフレームを符号化する場合、モード選択中に必要な計算量と計算複雑性とが軽減され、映像符号化の効率を向上させることができる。
図1に示すように、本発明のいくつかの実施態様では、映像符号化方法が提供される。この方法は以下のステップを含む。
ステップS102:映像シーケンスにおける複数の映像フレームに対するフレームタイプを設定する。
詳しくは、ステップS102では、映像シーケンスにおける各フレームに対するフレームタイプを判断する。映像シーケンスの1番目のフレームは、Iフレームとして符号化され、他のフレームに関しては、各フレームをPフレームとして符号化するのか、または、Bフレームとして符号化するのかを判断することが必要となる。ステップS104では、Bフレームとして設定したBフレームを取得する。
ステップS104:映像フレームをBフレームとして取得する。
ステップS106:映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、上記判断が肯定の場合、ステップS108へ進み、そうではない場合、ステップS112へ進む。
いくつかの実施態様では、映像フレームの現在のマクロブロックの2つの双方向予測動きベクトルを、ダイレクト予測モードを介して取得してもよい。さらに、取得した双方向予測動きベクトルの各々が事前に設定した閾値範囲内にある場合、現在のマクロブロックはダイレクト予測モードを満たし、そうではない場合、現在のマクロブロックはダイレクト予測モードを満たさない。
ステップS108:さらに、現在のマクロブロックがスキップ予測モードを満たすか否か判断し、上記判断が肯定の場合、ステップS110へ進み、そうではない場合、ステップS112へ進む。
いくつかの実施態様では、取得した2つの双方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行うことで、予測ピクセル値を生成する。この予測ピクセル値を元のピクセル値から減算することで、ピクセル残差を取得する。ピクセル残差を変換および量子化した後、残留システムエネルギー(例えば、マクロブロックにおいて1より大きい残差係数の数、または、1つのマクロブロックでその位置にしたがって重みづけした残差係数)が、事前に設定した閾値より大きい場合、スキップ予測モードの条件を満たさず、そうではない場合、スキップ予測モードを満たしている。
ステップS110:スキップモードを最適モードとして選択し、現在のマクロブロックを符号化する。
従来のスキップ予測モードを適用して現在のマクロブロックを符号化してもよいが、ここでは、説明を省略する。
ステップS112:ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストと、ダイレクト予測モードで取得した順方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストと、ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストを含む、複数のモードコストの少なくとも1つを計算する。
いくつかの実施態様では、元のマクロブロックのピクセル値から、動き補償後の現在のマクロブロックのピクセル値を減算することでピクセル差分を生成し、このピクセル差分の絶対値を合計して、モードコストを取得してもよい。
ステップS114では、モードコストにおける最少コストのモードを、最適予測方向として選択し、現在のマクロブロックを符号化する。
ステップS114では、モードコストにおける最少コストのモードを選択し、このモードの予測動きベクトルを適用して、現在のマクロブロックに動き補償を行い、このマクロブロックに対するピクセル残差を取得する。さらに、取得したピクセル残差をビットストリームに書き込む。いくつかの実施態様では、選択した最少コストのモードが、ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードである場合、2つの双方向予測動きベクトルを用いた動き補償後のピクセル残差を、変換、量子化、およびエントロピー符号化し、ビットストリームに書き込む。
モード選択中、モーション推定を介して、各インターフレームモードの動きベクトルと各モードのコスト値を計算する必要はなく、スキップ予測モードとダイレクト予測モードのみを維持する。モード選択中、異なる予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストの計算が必要なだけであるため、計算複雑性と計算量は軽減し、映像符号化の効率を向上させることができる。
いくつかの実施態様では、選択したモードには、時間領域ダイレクト予測モードと、空間領域ダイレクト予測モードとのうちの少なくとも1つが含まれる。いくつかの実施態様では、時間領域ダイレクト予測モードを採用する。ダイレクトモードの分割化には、16×16分割化と8×8分割化とのうちの少なくとも1つが含まれる。いくつかの実施態様では、16×16分割のダイレクトモードを用いる。複雑性が増しても構わない用途では、異なる分割体のイントラフレーム予測モードのコスト計算をステップS112に加え、その結果を他のインターフレームモードのコストと比較し、最少コストのモードを選択してもよい。
各映像シーケンスは、連続する複数のGOPによって形成されるため、各映像シーケンスにシーケンス符号化を行い、映像フレームタイプを符号化処理で設定する必要がある。いくつかの実施態様では、複数の映像シーケンスのフレームタイプを設定する工程には、以下の処理が含まれる:映像シーケンスを取得する;取得した映像シーケンスの1番目の映像フレームをIフレームとして符号化する;取得した映像シーケンスの2番目の映像フレームをPフレームとして符号化する;取得した映像シーケンスの3番目の映像フレームを現在のフレームとして用いる;現在のフレームをi番目のフレームとして設定する;および、現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断するステップと、上記判断が肯定の場合、i番目の映像フレームから(i+n−1)番目の映像フレームまでをBフレームとして設定し、Bフレームをキャッシュし、(i+n)番目の映像フレームをPフレームとして符号化し、(i+n+1)番目の映像フレームを現在のフレームとして用いるステップと、上記判断が肯定ではない場合、i番目の映像フレームをPフレームとして符号化し、(i+1)番目の映像フレームを現在のフレームとして用い、映像シーケンスの最後の映像フレームをPフレームとして符号化するステップを、現在のフレームが映像シーケンスの最後のフレームとなるまで、現在のフレームに対して繰り返し実行することが含まれる。この場合、iは3以上の整数であり、nは1以上の整数である。
いくつかの実施態様では、映像シーケンスに連続して出現するBフレームの数(本発明では、BフレームがダイレクトBフレームである)を、前もって設定してもよい。ダイレクトBフレームとして設定した映像フレームについては、この映像フレームの後続のPフレームを符号化した後、該映像フレームをキャッシュから読み出し、ステップS104〜ステップS114を実行することで、ダイレクトBフレームとして符号化する。
例えば、n=1である本発明の映像符号化処理が図示されている(連続して出現するダイレクトBフレームの数は1)。図2を参照して、映像シーケンスを符号化する処理を、以下に説明する。
ステップS202:映像シーケンスを取得する。
映像シーケンスを取得すると、この映像シーケンスのピクチャー群(GOP)を取得する。
ステップS204:GOPにおける1番目のフレームをIフレームとして符号化し、2番目のフレームをPフレームとして符号化し、3番目のフレームを現在のフレームとして用いる。
ステップS206:現在のフレームがGOPの最後のフレームか否か判断し、上記判断が肯定の場合、ステップS216へ進み、上記判断が肯定ではない場合、ステップS208へ進む。
ステップS208:現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断し、上記判断が肯定の場合、ステップS210へ進み、そうではない場合、ステップS214へ進む。
Iフレームは、イントラフレーム予測のみが可能であるため、動き条件は得られない。そのため、映像シーケンスのBフレームに対しては、再生順で直近の先行Pフレームの動き条件を参照する必要がある。上述したように、モード選択中は、ダイレクトBフレームに対して動き推定を行わない。したがって、激しい動きの場面では、動きベクトルの予測は正確ではなく、残留データ量が大きくなる。そのため、同じビットレートでは、画像符号化の質が低下する。したがって、ステップS208では、現在のフレームが現在のGOPに属し、ダイレクトBフレームの符号化条件を満たすか否か(すなわち、現在のフレームに直近の先行Pフレームの動き情報が設定した閾値以下であるか否か)を判断する必要があり、ダイレクトBフレームを挿入するか否かを、符号化処理中に動的に決定する。
現在のフレームに直近の先行Pフレームの動き情報が事前に設定した閾値以下である場合、符号化Pフレームの動きは激しい動きではないことを示し、現在のフレームをBフレームとして符号化する。そうではない場合、符号化Pフレームの動きは激しい動きであることを示し、現在のフレームをPフレームとして符号化する。
ステップS120:現在のフレームをBフレームとして設定し、Bフレームをキャッシュし、現在のフレームの次のフレームをPフレームとして設定し、この次のフレームのさらに次のフレームを現在のフレームとして用いる。
ステップS212:Bフレームをキャッシュから取得し、ステップS104〜ステップS114にしたがって符号化を行い、ステップS206へ戻る。
ステップS214:現在のフレームをPフレームとして符号化し、現在のフレームの次のフレームを現在のフレームとして用い、ステップS206へ戻る。
ステップS216:映像シーケンスの最後のフレームをPフレームとして符号化する。
図3は、GOP長が7の符号化シーケンスの一例を示す。この例では、連続して出現するBフレームの数が1であり、映像シーケンスの1番目のフレームがIフレームとして符号化され、2番目のフレームがPフレームとして符号化され、3番目のフレームがBフレームの符号化条件を満たすため、3番目のフレームをBフレームとして符号化する。4番目のフレームはPフレームとして符号化し、5番目のフレームはBフレームの条件を満たさないため、5番目のフレームをPフレームとして符号化する。6番目のフレームはBフレームの符号化条件を満たすため、6番目のフレームをBフレームとして符号化する。7番目のフレームは最後のフレームであり、Pフレームとして符号化される。この例では、連続して出現するBフレームの数は1(すなわち、n=1)である。
現在のフレームがBフレームであるか否かを、直近の符号化Pフレームの動き条件に基づき判断するため、符号化Pフレームの動きが激しい動きであると判断された場合、現在のフレームをPフレームとして符号化する。激しい動きではない場合、現在のフレームをBフレームとして符号化する。映像フレームを自己適応的にBフレームとして設定することで、激しい動きを伴う場面でBフレームを符号化することで起こる質の劣化を、効果的に回避することができる。
いくつかの実施態様では、動き情報は、現在のフレームに直近の先行Pフレームにおけるマクロブロックの平均動きベクトル残差を含む。この平均動きベクトル残差とは、すなわち、Pフレームにおける全マクロブロックの動きベクトル残差の合計を、マクロブロックの総数で除算した結果である。いくつかの実施態様では、閾値はビットレート制御の下で、例えば、
Figure 0005897218
に設定され、式中の「bitrate」は、ビットレート制御の下で設定したビットレート(kbpsを単位として用いる)である。ビットレート制御を行わない場合、閾値は、例えば、
Figure 0005897218
に設定され、式中の「QP」は、映像フレームの符号化のために設定した量子化値である。
いくつかの実施態様では、図4に示すように、各モードコストの内、最少コストのモードを最適予測方向として選択し、現在のマクロブロックを符号化するステップは、以下のステップを含む。
ステップS402:最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定する。
いくつかの実施態様では、スキップ予測モードに対して、連続するスキップマクロブロックの数のみを記録することが必要となる。ダイレクト予測モードに対しては、元来、ビットストリームにおけるダイレクト予測モードの特定用のフラッグビットを変更してもよく、この場合、最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定する。例えば、
DIRECT_L0(2), DIRECT_L0(1), and DIRECT_L0(0)を用いて、現在のマクロブロックで採用する、順方向ダイレクト予測モード、逆方向ダイレクト予測モード、双方向ダイレクト予測モードをそれぞれ特定してもよい。Bフレームの符号化処理では、スキップ予測モードとダイレクト予測モードのみが含まれ、イントラフレーム予測モードとインターフレーム予測モードは存在しない。そのため、ビットレートを向上することができる。
ステップS404:最少コストのモードで取得したピクセル残差に変換と量子化を行い、エントロピー符号化したピクセル残差とフラッグビットを、ビットストリームに書き込む。
いくつかの実施態様では、最少コストのモードを選択後、選択したモードの下で、予測動きベクトルを用いて現在のマクロブロックに動き補償を行った後のピクセル残差を取得してもよい。
図5は、本発明のいくつかの実施態様による、映像符号化装置を示す。この装置には、フレームタイプ設定モジュール10と、Bフレーム符号化モジュール20が設けられている。フレームタイプ設定モジュール10は、映像シーケンスに対するフレームタイプを設定するよう構成されている。Bフレーム符号化モジュール20は、Bフレーム取得モジュール210と、判断モジュール220と、モード選択モジュール230と、符号化モジュール240を備えている。
いくつかの実施態様では、Bフレーム取得モジュール210は、映像フレームをBフレームとして取得するよう構成される。また、判断モジュール220は、映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、さらに、現在のマクロブロックがダイレクト予測モードを満たす場合、現在のマクロブロックがスキップ予測モードを満たすか否かをさらに判断するよう構成される。
いくつかの実施態様では、映像フレームの現在のマクロブロックの2つの双方向予測動きベクトルを、ダイレクト予測モードを介して取得してもよい。さらに、取得した2つの双方向予測動きベクトルの各々が、事前に設定した閾値の範囲内にある場合、判断モジュール220は、現在のマクロブロックがダイレクト予測モードを満たすと判断し、そうではない場合、判断モジュール220は、現在のマクロブロックがダイレクト予測モードを満たさないと判断する。
さらに、取得した双方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行うことで、予測ピクセル値を生成する。この予測ピクセル値を元のピクセル値から減算して、ピクセル残差を得る。判断モジュール220は、ピクセル残差を変換および量子化した後のピクセル残差の残留システムエネルギー(一般的に、1つのマクロブロックにおける1より大きい残差係数の数を用いる、または、各残差係数を、そのそれぞれの位置にしたがって重みづけする)が、事前に設定した閾値より大きいか否かを判断するよう構成されている。上記判断が肯定の場合、スキップ予測モードの条件を満たしておらず、そうではない場合、スキップ予測モードを満たしている。
モード選択モジュール230は、ダイレクト予測モードで取得した双方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストと、ダイレクト予測モードで取得した順方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストと、ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて、現在のマクロブロックに動き補償を行った後のモードコストを含む、複数のモードコストの少なくとも1つを計算し、上記モードコストにおける最少コストのモードを、最適予測方向として選択するよう構成されている。
符号化モジュール240は、モード選択モジュール230が選択した最適予測方向にしたがって、現在のマクロブロックを符号化するよう構成されている。
いくつかの実施態様では、選択したモードには、時間領域ダイレクト予測モードと、空間領域ダイレクト予測モードの少なくとも1つが含まれる。いくつかの実施態様では、時間領域ダイレクト予測モードを用いる。ダイレクトモードの分割化には、16×16分割と、8×8分割の少なくとも1つが含まれる。いくつかの実施態様では、16×16分割のダイレクトモードを用いる。複雑性が増しても構わない用途では、モード選択モジュール230は、さらに、異なる分割体のイントラフレーム予測モードのコストを計算し、イントラフレーム予測モードのコストを他のインターフレームモードのコストと比較し、最少コストのモードを選択する。
各映像シーケンスを連続するGOPで形成するため、各映像シーケンスに対してシーケンスの符号化を行い、映像フレームタイプを符号化処理で設定する必要がある。図6に示すいくつかの実施態様では、映像符号化装置は、さらに、映像シーケンス取得モジュール30と、Iフレーム符号化モジュール40と、Pフレーム符号化モジュール50を備える。映像シーケンス取得モジュール30は、映像シーケンスを取得するよう構成されている。Iフレーム符号化モジュール40は、映像シーケンスの1番目のフレームをIフレームとして符号化するよう構成されている。Pフレーム符号化モジュール50は、映像シーケンスの2番目のフレームをPフレームとして符号化するよう構成されている。
いくつかの実施態様では、フレームタイプ設定モジュール10は、映像シーケンスの3番目のフレームを現在のフレームとして用い、現在のフレームをi番目のフレームとして設定し、さらに、現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断するするステップと、上記判断が肯定の場合、i番目の映像フレームから(i+n−1)番目の映像フレームまでをBフレームとして設定し、Bフレームをキャッシュし、Pフレーム符号化モジュール50に、(i+n)番目の映像フレームをPフレームとして符号化するよう通知し、(i+n+1)番目の映像フレームを現在のフレームとして用いるステップと、上記判断が肯定ではない場合、Pフレーム符号化モジュール50に、i番目の映像フレームをPフレームとして符号化するよう通知し、(i+1)番目の映像フレームを現在のフレームとして用いるステップを、現在のフレームが映像シーケンスの最後のフレームとなるまで、現在のフレームに対して繰り返し実行するよう構成される。この場合、iは3以上の整数であり、nは1以上の整数である。
いくつかの実施態様では、Pフレーム符号化モジュール40は、さらに、現在のフレームに直近の先行Pフレームの動き情報が設定閾値より大きい場合、現在のフレームをPフレームとして符号化し、フレームタイプ設定モジュール10に、現在のフレームの次のフレームを現在のフレームとして用いることを通知するよう構成される。Pフレーム符号化モジュール40は、さらに、映像シーケンスの最後のフレームをPフレームとして符号化するよう構成される。
Iフレームは、イントラフレーム予測のみが可能であるため、動き条件を得ることが出来ない。そのため、映像シーケンスのBフレームに対しては、再生順で先行するPフレームの動き条件を参照する必要がある。上述したように、モード選択中は、ダイレクトBフレームに対して動き推定を行わない。したがって、激しい動きの場面では、動きベクトルの予測は正確ではなく、残留データ量が大きくなる。そのため、同じビットレートでは、画像符号の質が低下する。したがって、フレームタイプ設定モジュ−ル10は、現在のフレームが現在のGOPに属し、ダイレクトBフレームの符号化条件を満たすか否か(すなわち、現在のフレームに直近の先行Pフレームの動き情報が設定した閾値以下であるか否か)を判断し、また、ダイレクトBフレームを挿入するか否かを、符号化中に動的に決定する必要がある。
いくつかの実施態様では、フレームタイプ設定モジュール10は、現在のフレームに直近の先行Pフレームの動き情報を取得し、取得した動き情報を設定閾値と比較する。Pフレームの動き情報が設定閾値以下である場合、符号化Pフレームの動きは激しい動きではないことを示しており、フレームタイプ設定モジュール10は、現在のフレームをBフレームとして設定する。Pフレームの動き情報が設定閾値より大きい場合、符号化Pフレームの動きは激しい動きであることを示しており、Pフレーム符号化モジュール50は、現在のフレームをPフレームとして符号化する。
いくつかの実施態様では、動き情報には、現在のフレームに直近の先行Pフレームにおけるマクロブロックの平均動きベクトル残差が含まれる。この平均動きベクトル残差とは、すなわち、全マクロブロックの動きベクトル残差の合計を、マクロブロックの総数で除算した結果である。いくつかの実施態様では、閾値はビットレート制御の下で、例えば、
Figure 0005897218
に設定され、式中の「bitrate」は、ビットレート制御の下で設定したビットレート(kbpsを単位として用いる)である。ビットレート制御を行わない場合、閾値は、例えば、
Figure 0005897218
に設定され、式中の「QP」は、フレームの符号化のために設定した量子化値である。
フレームタイプ設定モジュール10が、現在のフレームをBフレームとして設定した後、Bフレームをキャッシュする。これにより、Bフレーム符号化モジュール20は、Bフレームをキャッシュから取得し、Bフレームの符号化を完了する。
図7に示すいくつかの実施態様では、符号化モジュール24は、フラグビット設定モジュール242と、ビットストリーム書込みモジュール244を備える。
いくつかの実施態様では、フラグビット設定モジュール242は、フラグビットを設定し、最少コストのモードに対応する予測方向を特定するよう構成される。
いくつかの実施態様では、スキップ予測モードに対して、連続するスキップマクロブロックの数のみを記録することが必要となる。ダイレクト予測モードに対しては、ビットストリームにおけるダイレクト予測モードを特定するために本来用いるフラッグビットを変更してもよく、この場合、最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定する。例えば、フラグビット設定モジュール242は、DIRECT_L0(2), DIRECT_L0(1), and DIRECT_L0(0)を用いて、現在のマクロブロックで採用する、順方向ダイレクト予測モード、逆方向ダイレクト予測モード、双方向ダイレクト予測モードをそれぞれ特定してもよい。Bフレームの符号化処理では、スキップ予測モードとダイレクト予測モードのみが含まれ、イントラフレーム予測モードとインターフレーム予測モードは存在しない。そのため、ビットレートを向上することができる。
ビットストリーム書込みモジュール244は、最少コストのモードで取得したピクセル残差に変換と量子化を行い、エントロピー符号化したピクセル残差とフラッグビットをビットストリームに書き込むよう構成されている。
図9は、本発明のいくつかの実施態様による映像化符号化方法を実行する、好適なコンピュータ900を示すブロック図である。コンピュータ900は、例えば、デスクトップパソコン、ノートパソコン、スマートホン、または、タブレット等である。コンピュータ900は、1つ以上の処理装置(CPU)902(以降、プロセッサと呼ぶ)と、1つ以上のネットワークインターフェース904と、1つ以上の入力デバイス905と、ディスプレイ903と、メモリ906と、これらの構成部を相互接続する1つ以上の通信バス908を備える。いくつかの実施態様では、上記1つ以上の入力デバイス905は、キーボード、マウス、トラックパッド、およびタッチスクリーンを含む。通信バス908は、システム構成部を相互接続し、構成部間の通信を制御する回路を備えてもよい。
メモリ906は、一般的に、DRAM、SRAM、または他のランダムアクセス固体メモリ装置等の、高速ランダムアクセスメモリを含む。メモリ906は、さらに、1つ以上の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリデバイス、または他の不揮発性固体記憶装置等の、不揮発性メモリを含んでもよい。メモリ906は、CPU902から離間した1つ以上の記憶装置を含んでもよい。メモリ906、または、メモリ906内の不揮発性記憶装置は、コンピュータ読取り可能な非一時型記憶媒体を含む。いくつかの実施態様では、メモリ906、または、コンピュータ読取り可能な非一時型記憶媒体は、以下のプログラム、各モジュールおよびデータ構造、またはそのサブセットを記憶する:
・ 各種基本システムサービスを操作し、ハードウェア依存タスクを実行する手順を含むオペレーティングシステム910;
・ 1つ以上のネットワークインターフェース904(有線または無線)と通信ネットワーク(例えば、インターネット)を介して、コンピュータ900を他のデバイス(例えば、遠隔サーバまたはクライアント機器)に接続するためのネットワーク通信モジュール(または指示)912;
・ ユーザ入力によるデータや画像とともに、異なるユーザインタフェース制御(例えば、テキストボックス、ドロップダウンリスト、または、プッシュボタン)を表示するためのユーザインタフェースモジュール914;
・ 図1、2、および4を参照して上述した、フレームタイプ設定モジュール918と、Bフレーム符号化モジュール920と、映像シーケンス取得モジュール922と、Iフレーム符号化モジュール924と、Pフレーム符号化モジュール926と、フラッグビット設定モジュール928と、ビットストリーム書込みモジュール930等をさらに含む、映像符号化モジュール916;
・ メモリ906に記憶され、映像シーケンスにおける元の映像フレーム952と、元のビデオ画像のピクセル値954と、残差ビデオ画像のピクセル値956と、フラッグビット958等をさらに含み、各々メモリ906内の所定領域を占めるデータ950。
当業者であれば、各実施態様による方法の各ステップのすべてまたは一部を、関連ハードウェアに指示を与えるコンピュータプログラムによって、実行できることは理解できるであろう。該プログラムは、コンピュータ読取り可能な非一時型記憶媒体に記憶させてもよい。プログラムを作動させると、各実施態様による方法の各ステップが実行される。記憶媒体は、例えば、磁気ディスク、光学ディスク、読取り専用メモリ(ROM)、または、ランダムアクセスメモリ(RAM)である。
以上説明した各実施態様は、本発明の態様例のいくつかを示すのみであり、具体的かつ詳細に説明されているが、本発明の範囲を限定するものと解釈されるべきではない。当業者であれば、本発明の精神を逸脱することなく、各種変更や改良を加えることは可能であり、これらの変更や改良もすべて、本発明の保護範囲に属する。したがって、本発明の保護範囲は、添付した請求項の保護範囲に準ずる。
具体的な実施態様をこれまで説明したが、本発明をこれら実施態様に限定することを意図するものではない。それに反して、本発明には、添付の請求項の精神と範囲内における代替物、変更、均等物が含まれる。本明細書に提示した主題が完全に理解されるように、数々の具体的かつ詳細な説明を記載したが、これら詳述がなくとも、本発明の主題を実施可能であることは、当業者には明らかである。他の例では、周知技術の方法、手順、構成部、回路構成についてはあえて詳細に説明せず、不必要に本実施態様の各局面が不明確とならないようにしている。
本明細書では、1番目、2番目といった記載を構成部の説明に用いているが、これにより構成部を限定するものではなく、各構成部を互いから区別することが目的である。例えば、序列の1番目を2番目としてもよく、同様に、序列の2番目を1番目としてもよい。どちらの場合も、本発明の範囲を逸脱することはない。1番目と2番目はともに序列基準であるが、別々のものである。
本発明の説明に用いた術語は、各実施態様の説明を目的としたものであり、本発明の限定を意図したものではない。本発明の明細書と添付請求項に用いた単数表現の記載は、文脈上別途の指摘がある場合以外は、複数の形態を含むものである。また、本明細書に用いた「および/または」は、列記した1つ以上の関連事項の可能な組合せをすべて指し、また、これらを包含することは言うまでもない。本明細書では、「含む」と「備える」に関わる記載は、記載した特徴、動作、要素、および/または構成部を設けたことを明記するものであるが、1つ以上の他の特徴、動作、要素、および/または構成部を設けることや付け加えることを排除するものではない。
本明細書で用いた、「〜場合(if)」は、文脈により、既述の条件が確かにそうであると「判断される時」「判断すると同時に」「判断に応じて」「判断にしたがって」「検知に応じて」のいずれにも解釈することができる。同様に、「既述の条件が確かにそうであることが判断された場合」、または、「既述の条件が確かにそうである場合」は、文脈により、既述の条件が確かにそうであると「判断すると同時に」「判断に応じて」「判断にしたがって」「検知すると同時に」「検知に応じて」のいずれにも解釈することができる。
各図面のいくつかには、多数の論理段階を特定の順序に示しているが、各論理段階は順序に依存するものではなく、順序を入れ替えたり、他の論理段階を組み合わせたり、切り離してもよい。いくつかの順序入れ替えやグループ化は詳述したが、これら以外は当業者にとっては自明であり、他の選択肢をすべて網羅した一覧は示さない。さらに、各論理段階は、ハードウェア、ファームウェア、ソフトウェアのいずれで実行してもよく、また、これらを任意に組み合わせたもので実行してもよい。
以上、本発明を特定の実施態様を参照して説明したが、上述した内容は、本発明を包括することを意図しておらず、また、開示事項に限定することを意図したものでもない。上記教示内容に鑑みて、様々な変更や変形例が可能である。上述の各実施態様によって、本発明の原則とその実用性を最もわかりやすく説明した。これにより、当業者が本発明とその実施態様を、好適な各改変例とともに、意図した用途に最大限に利用することができる。実施態様には、添付請求項の精神と範囲内における別の選択肢、変更、均等物が含まれる。本明細書に提示した主題が完全に理解されるように、数々の具体的かつ詳細な説明を記載したが、これら詳述がなくとも、本発明の主題を実施可能であることは、当業者には明らかである。他の例では、周知技術の方法、手順、構成部、回路構成についてはあえて詳細に説明せず、不必要に本実施態様の各局面が不明確とならないようにしている。
10 フレームタイプ設定モジュール
20 Bフレーム符号化モジュール
30 映像シーケンス取得モジュール
40 Iフレーム符号化モジュール
50 Pフレーム符号化モジュール
210 Bフレーム取得モジュール
220 判断モジュール
230 モード選択モジュール
240 符号化モジュール
242 フラグビット設定モジュール
246 ビットストリーム書込みモジュール
900 コンピュータ
903 ディスプレイ
904 ネットワークインターフェース
905 入力デバイス
906 メモリ
910 オペレーティングシステム
912 ネットワーク通信モジュール
904 ユーザインタフェースモジュール
916 映像符号化モジュール
918 フレームタイプ設定モジュール
920 Bフレーム符号化モジュール
922 映像シーケンス取得モジュール
924 Iフレーム符号化モジュール
926 Pフレーム符号化モジュール
928 フラッグビット設定モジュール
930 ビットストリーム書込みモジュール
950 データ
952 映像シーケンスの元の映像フレーム
954 元のビデオ画像のピクセル値
956 残差ビデオ画像のピクセル値
958 フラッグビット

Claims (9)

  1. メモリと1つ以上のプロセッサとを有する映像符号化装置に対して、
    映像シーケンスにおける複数の映像フレームに対してフレームタイプを設定することと、
    前記複数の映像フレームから、映像フレームをBフレームとして取得することと、
    前記映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、前記現在のマクロブロックが前記ダイレクト予測モードを満たす場合、さらに、前記現在のマクロブロックがスキップ予測モードを満たすか否か判断することと、
    前記現在のマクロブロックが前記ダイレクト予測モードを満たさない、または、前記現在のマクロブロックが前記スキップ予測モードを満たさない場合、複数のモードコストのうちの少なくとも1つを計算することと、
    前記複数のモードコストにおける最少コストのモードを、最適予測方向として選択し、前記現在のマクロブロックを符号化することと、
    を含み、
    前記複数のモードコストは、
    前記ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、
    前記ダイレクト予測モードで取得した順方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、
    前記ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、
    を含み、
    映像シーケンスにおける複数の映像フレームに対するフレームタイプを設定することは、
    映像シーケンスを取得することと、
    前記映像シーケンスの1番目の映像フレームをIフレームとして符号化することと、
    前記映像シーケンスの2番目の映像フレームをPフレームとして符号化することと、
    前記映像シーケンスの3番目の映像フレームを現在のフレームとして設定することと、
    前記現在のフレームをi番目のフレームとして設定し、さらに前記現在のフレームが前記映像シーケンスの最後の映像フレームになるまで、次のステップ、すなわち、前記現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断するステップと、iを3以上の整数、nを1以上の整数として、前記判断が肯定の場合、前記i番目の映像フレームから(i+n−1)番目までの映像フレームをBフレームとして設定し、前記Bフレームをキャッシュし、(i+n)番目の映像フレームをPフレームとして符号化し、(i+n+1)番目の映像フレームを前記現在のフレームとして設定するステップと、前記判断が否定の場合、前記i番目の映像フレームをPフレームとして符号化し、(i+1)番目の映像フレームを前記現在のフレームとして設定し、前記映像シーケンスの最後の映像フレームをPフレームとして符号化するステップとを、前記現在のフレームに繰り返し実行することと、
    を含み、
    前記動き情報には、前記現在のフレームに直近の先行Pフレームにおけるマクロブロックの平均動きベクトル残差が含まれ、
    前記動き情報が設定した閾値は、
    Figure 0005897218
    または
    Figure 0005897218
    であり、
    前記bitrateは、ビットレート制御の下で設定したビットレートであり、前記QPは、映像フレームの符号化のために設定した量子化値である、
    映像符号化方法。
  2. 請求項1の映像符号化方法であって、
    前記選択したモードには、時間領域ダイレクト予測モードと、空間領域ダイレクト予測モードとの少なくとも1つが含まれ、前記時間領域ダイレクト予測モードまたは前記空間領域ダイレクト予測モードの分割化は、16×16分割化と8×8分割化とのうちの少なくとも1つを含む、
    映像符号化方法。
  3. 請求項1の映像符号化方法であって、
    前記複数のモードコストにおける最少コストのモードを最適予測方向として選択して、前記現在のマクロブロックを符号化することは、
    前記最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定することと、
    前記最少コストのモードで取得したピクセル残差に変換と量子化を行うことと、
    エントロピー符号化した前記ピクセル残差と前記フラッグビットをビットストリームに書き込むことと、
    を含む、
    映像符号化方法。
  4. メモリと1つ以上のプロセッサとを有する映像符号化装置であって、
    映像シーケンスにおける複数の映像フレームに対してフレームタイプを設定するよう構成されるフレームタイプ設定モジュールと、
    Bフレーム符号化モジュールと、
    を備え、
    前記Bフレーム符号化モジュールは、さらに、
    Bフレームとして設定した映像フレームを、前記複数の映像フレームから取得するよう構成されるBフレーム取得モジュールと、
    前記映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、前記現在のマクロブロックが前記ダイレクト予測モードを満たす場合、さらに、前記現在のマクロブロックがスキップ予測モードを満たすか否か判断するよう構成される判断モジュールと、
    前記現在のマクロブロックが前記ダイレクト予測モードを満たさない、または、前記現在のマクロブロックが前記スキップ予測モードを満たさない場合、前記ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した順方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、を含む複数のモードコストのうちの少なくとも1つを計算するよう構成され、さらに、前記複数のモードコストにおける最少コストのモードを、最適予測方向として選択するよう構成されるモード選択モジュールと、
    選択した前記最適予測方向にしたがって、前記現在のマクロブロックを符号化するよう構成される符号化モジュールと、
    を備える映像符号化装置であって、
    その映像符号化装置は、さらに、
    映像シーケンスを取得するよう構成される映像シーケンス取得モジュールと、
    前記映像シーケンスの1番目の映像フレームをIフレームとして符号化するよう構成されるIフレーム符号化モジュールと、
    前記映像シーケンスの2番目のフレームをPフレームとして符号化するよう構成されるPフレーム符号化モジュールと、
    を備え、
    前記フレームタイプ設定モジュールは、
    前記映像シーケンスの3番目のフレームを現在のフレームとして設定し、前記現在のフレームをi番目のフレームとして設定し、さらに前記現在のフレームが前記映像シーケンスの最後のフレームとなるまで次のステップ、すなわち、
    前記現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断するステップと、
    iを3以上の整数、nを1以上の整数として、前記判断が肯定の場合、前記i番目の映像フレームから(i+n−1)番目の映像フレームまでをBフレームとして設定し、前記Bフレームをキャッシュし、前記Pフレーム符号化モジュールに、(i+n)番目の映像フレームをPフレームとして符号化するよう通知し、(i+n+1)番目の映像フレームを現在のフレームとして設定するステップと、
    前記判断が否定の場合、前記Pフレーム符号化モジュールに、前記i番目の映像フレームをPフレームとして符号化するよう通知し、(i+1)番目の映像フレームを前記現在のフレームとして設定するステップとを、
    前記現在のフレームに繰り返し実行し、
    前記Pフレーム符号化モジュールは、さらに、前記映像シーケンスの最後の映像フレームをPフレームとして符号化するよう構成され、
    前記動き情報には、前記現在のフレームに直近の先行Pフレームにおけるマクロブロックの平均動きベクトル残差が含まれ、
    前記閾値は
    Figure 0005897218
    または
    Figure 0005897218
    であり、
    前記bitrateは、ビットレート制御の下で設定したビットレートであり、前記QPは、映像フレームの符号化のために設定した量子化値である、
    映像符号化装置。
  5. 請求項の映像符号化装置であって、
    前記選択したモードには、時間領域ダイレクト予測モードと、空間領域ダイレクト予測モードとの少なくとも1つが含まれ、前記時間領域ダイレクト予測モードまたは前記空間領域ダイレクト予測モードの分割化は、16×16分割化と8×8分割化とのうちの少なくとも1つを含む、
    映像符号化装置。
  6. 請求項の映像符号化装置であって、
    前記符号化モジュールは、さらに、
    前記最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定するよう構成されるフラッグビット設定モジュールと、
    前記最少コストのモードで取得したピクセル残差に変換と量子化を行い、エントロピー符号化した前記ピクセル残差と前記フラッグビットをビットストリームに書き込むよう構成されるビットストリーム書込みモジュールと、
    を備える、
    映像符号化装置。
  7. 映像符号化装置と併用される、コンピュータ読取り可能な非一時型記憶媒体であって、
    映像シーケンスにおける複数の映像フレームに対するフレームタイプを設定する指示と、
    前記複数の映像フレームから、Bフレームとして設定した映像フレームを取得する指示と、
    前記映像フレームの現在のマクロブロックがダイレクト予測モードを満たすか否か判断し、前記現在のマクロブロックが前記ダイレクト予測モードを満たす場合、さらに、前記現在のマクロブロックがスキップ予測モードを満たすか否か判断する指示と、
    前記現在のマクロブロックが前記ダイレクト予測モードを満たさない、または、前記スキップ予測モードを満たさない場合、前記ダイレクト予測モードで取得した2つの双方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した順方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、前記ダイレクト予測モードで取得した逆方向予測動きベクトルを用いて前記現在のマクロブロックに動き補償を行った後のモードコストと、を含む複数のモードコストのうちの少なくとも1つを計算する指示と、
    前記複数のモードコストにおける最少コストのモードを、最適予測方向として選択し、前記現在のマクロブロックを符号化する指示と、
    を含み、
    前記映像シーケンスにおける複数の映像フレームに対するフレームタイプを設定することは、
    映像シーケンスを取得する指示と、
    前記映像シーケンスの1番目の映像フレームをIフレームとして符号化する指示と、
    前記映像シーケンスの2番目の映像フレームをPフレームとして符号化する指示と、
    前記映像シーケンスの3番目の映像フレームを現在のフレームとして設定する指示と、
    前記現在のフレームをi番目のフレームとして設定する指示と、
    iを3以上の整数、nを1以上の整数として、前記現在のフレームに直近の先行Pフレームの動き情報が、事前に設定した閾値以下であるか否かを判断し、前記判断が肯定の場合、前記i番目の映像フレームから(i+n−1)番目の映像フレームまでをBフレームとして設定し、前記Bフレームをキャッシュし、(i+n)番目の映像フレームをPフレームとして符号化し、(i+n+1)番目の映像フレームを前記現在のフレームとして用い、前記判断が否定の場合、前記i番目の映像フレームをPフレームとして符号化し、(i+1)番目の映像フレームを前記現在のフレームとして用い、前記映像シーケンスの最後の映像フレームをPフレームとして符号化することを、前記現在のフレームが前記映像シーケンスの最後の映像フレームになるまで、前記現在のフレームに繰り返し実行する指示と、
    をさらに含み、
    前記動き情報には、前記現在のフレームに直近の先行Pフレームにおけるマクロブロックの平均動きベクトル残差が含まれ、
    前記閾値は
    Figure 0005897218
    または
    Figure 0005897218
    であり、
    前記bitrateは、ビットレート制御の下で設定したビットレートであり、前記QPは、映像フレームの符号化のために設定した量子化値である、
    コンピュータ読取り可能な非一時型記憶媒体。
  8. 請求項のコンピュータ読取り可能な非一時型記憶媒体であって、
    前記選択したモードには、時間領域ダイレクト予測モードと、空間領域ダイレクト予測モードの少なくとも1つが含まれ、前記時間領域ダイレクト予測モードまたは前記空間領域ダイレクト予測モードの分割化は、16×16分割化と8×8分割化とのうちの少なくとも1つを含む、
    コンピュータ読取り可能な非一時型記憶媒体。
  9. 請求項のコンピュータ読取り可能な非一時型記憶媒体であって、
    前記複数のモードコストにおける最少コストのモードを最適予測方向として選択して、前記現在のマクロブロックを符号化することは、
    前記最少コストのモードに対応する予測方向の特定に用いるフラッグビットを設定することと、
    前記最少コストのモードで取得したピクセル残差に変換と量子化を行い、エントロピー符号化した前記ピクセル残差と前記フラッグビットをビットストリームに書き込むことと、
    を含む、
    コンピュータ読取り可能な非一時型記憶媒体。
JP2015527763A 2012-08-21 2013-05-27 映像符号化方法、およびこの方法を用いる映像符号化装置 Active JP5897218B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210298932.XA CN103634606B (zh) 2012-08-21 2012-08-21 视频编码方法和装置
CN201210298932.X 2012-08-21
PCT/CN2013/076256 WO2014029222A1 (en) 2012-08-21 2013-05-27 A video encoding method and a video encoding apparatus using the same

Publications (2)

Publication Number Publication Date
JP2015530035A JP2015530035A (ja) 2015-10-08
JP5897218B2 true JP5897218B2 (ja) 2016-03-30

Family

ID=50147975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015527763A Active JP5897218B2 (ja) 2012-08-21 2013-05-27 映像符号化方法、およびこの方法を用いる映像符号化装置

Country Status (6)

Country Link
US (1) US9307241B2 (ja)
EP (1) EP2888873A4 (ja)
JP (1) JP5897218B2 (ja)
CN (1) CN103634606B (ja)
CA (1) CA2883133C (ja)
WO (1) WO2014029222A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
US9571468B2 (en) * 2014-01-05 2017-02-14 Whovoo, Inc. Encoding data using a variable number of pixels and bits based on entropy
CN103905843B (zh) * 2014-04-23 2017-05-03 无锡天脉聚源传媒科技有限公司 一种规避连续i帧的分布式音视频处理装置和处理方法
CN104918047B (zh) * 2015-05-29 2018-08-03 北京奇艺世纪科技有限公司 一种双向运动估计的排除方法和装置
WO2016203114A1 (en) * 2015-06-19 2016-12-22 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN107920254B (zh) * 2016-10-11 2019-08-30 北京金山云网络技术有限公司 一种针对b帧的运动估计方法、装置及视频编码器
CN108206950B (zh) * 2016-12-19 2021-11-12 北京君正集成电路股份有限公司 一种码流长度计算方法及设备
CN108810531B (zh) * 2017-05-03 2019-11-19 腾讯科技(深圳)有限公司 视频编码处理方法、装置及电子设备
CN107659822B (zh) * 2017-09-29 2019-07-09 武汉斗鱼网络科技有限公司 一种判断视频帧的帧类型的方法及装置
US11140407B2 (en) * 2018-02-08 2021-10-05 Apple Inc. Frame boundary artifacts removal
WO2020075862A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN111050166B (zh) * 2019-12-02 2023-08-15 咪咕视讯科技有限公司 预测模式确定方法、设备及计算机可读存储介质
CN113573066A (zh) * 2021-07-07 2021-10-29 网宿科技股份有限公司 一种视频编码的方法及装置
CN116074517B (zh) * 2023-02-07 2023-09-22 瀚博创芯科技(深圳)有限公司 基于运动向量的目标检测方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3531532B2 (ja) * 1999-05-18 2004-05-31 日本電気株式会社 動画像符号化装置、及び方法
JP3866624B2 (ja) * 2002-06-26 2007-01-10 日本電信電話株式会社 動画像符号化方法,動画像復号方法,動画像符号化装置および動画像復号装置
AT505099B1 (de) 2003-07-17 2009-03-15 Innova Patent Gmbh Seilbahnanlage
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
JP2005236710A (ja) * 2004-02-20 2005-09-02 Victor Co Of Japan Ltd 動画像符号化装置
JP4403549B2 (ja) * 2004-09-15 2010-01-27 日本ビクター株式会社 動画像符号化装置及び動画像符号化用プログラム
KR100746006B1 (ko) * 2005-07-19 2007-08-06 삼성전자주식회사 계층적 구조에 적합하게 시간적 다이렉트 모드로인코딩하며, 디코딩하는 방법 및 장치
EP1993292B1 (en) * 2006-03-09 2013-05-15 NEC Corporation Dynamic image encoding method and device and program using the same
JP4527677B2 (ja) * 2006-03-15 2010-08-18 富士通株式会社 動画像符号化方法、動画像符号化装置、動画像符号化プログラム
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
KR101505195B1 (ko) * 2008-02-20 2015-03-24 삼성전자주식회사 직접 모드 부호화 및 복호화 방법
US20090238268A1 (en) * 2008-03-20 2009-09-24 Mediatek Inc. Method for video coding
JP5325638B2 (ja) * 2008-11-26 2013-10-23 日立コンシューマエレクトロニクス株式会社 画像復号化方法
JP2010268199A (ja) * 2009-05-14 2010-11-25 Renesas Electronics Corp 動画像符号化方法、動画像符号化装置、及び、画像符号化プログラム
CN101572817B (zh) * 2009-05-26 2011-01-05 北京邮电大学 一种用于空间可分级视频编码的编码模式选择方法
CN101621692B (zh) * 2009-07-27 2011-04-20 宁波大学 一种基于预测模式的h.264/avc视频信息隐藏方法
WO2011075096A1 (en) * 2009-12-15 2011-06-23 Thomson Licensing Method and apparatus for bi-directional prediction within p-slices
CN101860747B (zh) * 2010-03-31 2012-05-23 北京大学 亚像素运动估计系统及方法
CN102447902B (zh) * 2011-09-30 2014-04-16 广州柯维新数码科技有限公司 选择参考场及获取时域运动矢量的方法
US9661329B2 (en) * 2014-04-30 2017-05-23 Intel Corporation Constant quality video coding

Also Published As

Publication number Publication date
JP2015530035A (ja) 2015-10-08
EP2888873A4 (en) 2015-09-09
CA2883133C (en) 2017-02-28
CN103634606B (zh) 2015-04-08
CA2883133A1 (en) 2014-02-27
EP2888873A1 (en) 2015-07-01
US20140056353A1 (en) 2014-02-27
WO2014029222A1 (en) 2014-02-27
US9307241B2 (en) 2016-04-05
CN103634606A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
JP5897218B2 (ja) 映像符号化方法、およびこの方法を用いる映像符号化装置
CA2891275C (en) A hybrid-resolution encoding and decoding method and a video apparatus using the same
JP4752631B2 (ja) 画像符号化装置、及び画像符号化方法
KR101431545B1 (ko) 영상의 부호화, 복호화 방법 및 장치
JP5061179B2 (ja) 照明変化補償動き予測符号化および復号化方法とその装置
KR100723507B1 (ko) I-프레임 움직임 예측을 이용한 동영상 압축 장치의 적응양자화 제어기 및 적응 양자화 제어 방법
KR101210578B1 (ko) 스케일러블 비디오 코딩에서의 비트율-왜곡값을 이용한 상위 계층의 빠른 부호화 방법 및 그 부호화 장치
JP2007503776A (ja) インター符号化に使われる参照画像数を最小化するための方法および装置
KR20200002036A (ko) 비디오 코딩에서 모션 보상 예측을 위한 광흐름 추정
MXPA06010360A (es) Metodos y aparato para tomar decisiones en modo rapido en codecs de video.
US20070171970A1 (en) Method and apparatus for video encoding/decoding based on orthogonal transform and vector quantization
KR20070064598A (ko) 인터프레임에 대한 고속 모드 결정 방법 및 장치
KR20090095012A (ko) 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치
TW200952499A (en) Apparatus and method for computationally efficient intra prediction in a video coder
KR20090095317A (ko) 영상 부호화 및 복호화 방법 및 장치
TW200942045A (en) Method for video coding
KR20080009608A (ko) 움직임 예측장치 및 방법과 이를 채용하는 영상 부호화장치및 방법
KR20090087767A (ko) 영상의 인트라 예측 부호화 방법
CN108989818B (zh) 一种图像编码参数调整方法及装置
JP2004215275A (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
JP2005348008A (ja) 動画像符号化方法、動画像符号化装置、動画像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
KR100657277B1 (ko) 매크로블록 타입 결정 방법
JP2013098638A (ja) 動画像再符号化装置、動画像再符号化方法及び動画像再符号化用コンピュータプログラム
US20160156905A1 (en) Method and system for determining intra mode decision in h.264 video coding
KR101379189B1 (ko) 움직임 보상 프레임의 필터링을 이용한 영상 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20150914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160125

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: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160301

R150 Certificate of patent or registration of utility model

Ref document number: 5897218

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250