JP5521940B2 - 符号化方法、復号化方法、符号化装置及び復号化装置 - Google Patents

符号化方法、復号化方法、符号化装置及び復号化装置 Download PDF

Info

Publication number
JP5521940B2
JP5521940B2 JP2010212822A JP2010212822A JP5521940B2 JP 5521940 B2 JP5521940 B2 JP 5521940B2 JP 2010212822 A JP2010212822 A JP 2010212822A JP 2010212822 A JP2010212822 A JP 2010212822A JP 5521940 B2 JP5521940 B2 JP 5521940B2
Authority
JP
Japan
Prior art keywords
decoding
picture
buffer
encoding
moving image
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
JP2010212822A
Other languages
English (en)
Other versions
JP2012070190A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010212822A priority Critical patent/JP5521940B2/ja
Priority to US13/232,762 priority patent/US8798162B2/en
Publication of JP2012070190A publication Critical patent/JP2012070190A/ja
Application granted granted Critical
Publication of JP5521940B2 publication Critical patent/JP5521940B2/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/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/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/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Description

本発明は、符号化方法、復号化方法、符号化装置及び復号化装置に関する。
符号化装置から復号化装置へ動画像の符号化データを伝送する際には、受信側の復号化装置が符号化データを蓄積する受信バッファ(buffer)でアンダーフロー(underflow)やオーバーフロー(overflow)が発生するのを防止する必要がある。このため、符号化装置は、復号化装置の受信バッファを仮想的にモデル化した仮想バッファを用いて、復号化装置が一定のビットレート(bit rate)で動画像を再生できるように、動画像の符号化により発生させる情報量を制御する。なお、上記の仮想バッファは、VBV(video buffering verifier)バッファとも呼ばれる。
例えば、映像の動きが激しい状態から映像の場面が切り替わった場合には、場面が切り替わるまでの区間で発生する符号化データの情報量が高いレベルで推移する上、場面が切り替わった時点で発生する符号化データの情報量はさらに大きくなる。この結果、復号化装置の受信バッファが枯渇する事態、すなわちバッファアンダーフローが発生する場合がある。
図16は、バッファアンダーフローの発生を説明するための図である。図16に示す例では、理想的なデコーダ(decoder)に搭載されるVBVバッファを想定し、復号化が終了したピクチャ(picture)の符号化データは瞬時にVBVバッファから除去されるものとして説明を行う。図16に示すグラフの横軸は時間を表す。図16に示す横軸を刻むDTS(Decoding Time Stamp)は、VBVバッファで符号化データが復号化される復号時刻、言い換えればVBVバッファから符号化データを除去する除去時刻を指し、同一のピクチャの符号化データには同一の時刻が割り当てられる。また、図16に示すグラフの縦軸は、VBVバッファを占有する符号化データの情報量、すなわちバッファ占有量を表す。図16に示すグラフの傾きは、VBVバッファへ入力される符号化データのビットレートを表す。
図16に示すように、DTS0、DTS1及びDTS2の区間では、VBVバッファに蓄積されたピクチャがそれぞれ復号された上で除去される。これらDTS0、DTS1及びDTS2の区間では、フレーム間で動きの激しい動画像が符号化されるので、バッファ占有量が枯渇気味に遷移する。そして、DTS3に至った段階では、映像の場面が切り替わるシーンチェンジ(scene change)が発生することにより、VBVバッファへの入力ビットレートでは入力しきれないデータ量の符号化データが発生する。この結果、DTS3の時点で復号されるべきピクチャの符号化データのバッファリングが完了せず、バッファアンダーフローが発生する。
かかるバッファアンダーフローの発生を防止するための技術として、次のような技術がある。一例として、VBVバッファのアンダーフローが検知された場合に、マクロブロック(macro block)の符号化をスキップ(skip)する技術が挙げられる。このようにマクロブロックの符号化をスキップすることにより、符号化データの情報量を低減させる。なお、ここで言う「マクロブロック」とは、符号化前の動画像データが所定のサイズ、例えば16画素×16画素や8画素×8画素などに分割されたデータを指す。また、「スキップ」とは、符号化しようとするマクロブロックを既に符号化したピクチャのマクロブロックと同定することを指す。
また、映像の動きがない状態から映像の場面が切り替わった場合には、場面が切り替わるまでの区間で発生する符号化データの情報量は低いレベルで推移するのに対し、場面が切り替わった時点で発生する符号化データの情報量は急激に大きくなる。この結果、復号化装置の受信バッファが溢れる事態、すなわちバッファオーバーフローが発生する場合がある。
図17は、バッファオーバーフローの発生を説明するための図である。図17に示す例では、図16と同様、理想的なデコーダに搭載されるVBVバッファを想定し、復号化が終了したピクチャの符号化データは瞬時にVBVバッファから除去されるものとする。なお、図17のグラフ表記は、図16で説明したものと同様である。
図17に示すように、DTS0、DTS1及びDTS2の区間では、VBVバッファに蓄積されたピクチャがそれぞれ復号された上で除去される。これらDTS0、DTS1及びDTS2の区間では、フレーム間で動きのない動画像が符号化されるので、バッファ占有量が溢れ気味に遷移する。そして、DTS3に至った段階では、映像の場面が切り替わるシーンチェンジが発生することにより、VBVバッファの容量に収まらないデータ量の符号化データが発生する。この結果、DTS3の時点で復号されるべきピクチャの符号化データを全てバッファリングできず、バッファオーバーフローが発生する。
かかるバッファオーバーフローの発生を防止するための技術として、次のような技術がある。一例として、VBVバッファのオーバーフローが検知された場合に、復号時には無効なデータとして扱われるスタッフィングビット(stuffing bit)を符号化データへ挿入する技術が挙げられる。このようにスタッフィングにより、復号化装置におけるバッファ占有率を低減させる。
特開2001−169281号公報 特開平9−139912号公報
しかしながら、上記の従来技術は、いずれも符号化データの情報量をピクチャ単位で調節するものに過ぎず、動画像の画質が不均一になってしまうという問題がある。
すなわち、上記の従来技術は、VBVバッファでアンダーフローが発生する場合には、マクロブロックの符号化をスキップすることにより符号化データの情報量を低減させる。また、上記の従来技術は、VBVバッファでオーバーフローが発生する場合には、動画像の画質に寄与しないスタッフィングビットを符号化データに水増しする。かかる符号化データの情報量の増減は、VBVバッファの占有量を最優先になされる制御である。したがって、VBVバッファの占有量に応じて符号化データの情報量の増減を制御した場合には、符号化される動画像の画質を度外視せざるを得ず、バッファのアンダーフローやオーバーフローの回避と引き換えに動画像の画質を不安定にしてしまう。
開示の技術は、上記に鑑みてなされたものであって、動画像の画質を均一化できる符号化方法、復号化方法、符号化装置及び復号化装置を提供することを目的とする。
本願の開示する符号化方法は、符号化装置に用いる符号化方法において、前記符号化装置が、動画像データを符号化する処理を実行する。前記符号化装置が、符号化された動画像データの情報量が、符号化された動画像データの送信先である復号化装置の受信バッファが仮想的にモデル化された仮想バッファの制御をピクチャ単位で満足するか否かを判定する処理を実行する。前記符号化装置が、前記仮想バッファの制御が前記ピクチャ単位で満足しないと判定された場合に、符号化された動画像データを構成する1枚のピクチャを分割し、分割されたピクチャ単位に前記復号化装置で復号化処理を実行させる時刻を設定する処理を実行する。
本願の開示する符号化方法の一つの態様によれば、動画像の画質を均一化できるという効果を奏する。
図1は、実施例1に係る伝送システムに含まれる各装置の構成を示す図である。 図2は、復号順序と表示順序の関係を説明するための図である。 図3は、図2に示した各ピクチャの復号時刻及び表示時刻とVBVバッファの占有量との関係を示す図である。 図4は、バッファアンダーフローの発生の一態様を示す図である。 図5は、バッファアンダーフローの回避例を示す図である。 図6は、バッファオーバーフローの発生の一態様を示す図である。 図7は、バッファオーバーフローの回避例を示す図である。 図8は、VBV管理部の処理内容を説明するための図である。 図9は、付加データの一例を示す図である。 図10は、VBV管理部の処理内容を説明するための図である。 図11は、実施例1に係る符号化処理の手順を示すフローチャートである。 図12は、実施例1に係る符号化処理の手順を示すフローチャートである。 図13は、実施例1に係る符号化処理の手順を示すフローチャートである。 図14は、実施例1に係る復号化処理の手順を示すフローチャートである。 図15は、応用例を説明するための説明図である。 図16は、バッファアンダーフローの発生を説明するための図である。 図17は、バッファオーバーフローの発生を説明するための図である。
以下に、本願の開示する符号化方法、復号化方法、符号化装置及び復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係る伝送システムに含まれる各装置の構成を示す図である。図1に示す伝送システム1は、符号化装置10と、復号化装置30とを有し、符号化装置10及び復号化装置30の間で動画像の符号化データを伝送するものである。なお、図1の例では、符号化装置10および復号化装置30の間で符号化データがリアルタイムで伝送される場合を想定して以下の説明を行うが、符号化データを遅延させて伝送する場合にも同様に適用できる。
符号化装置10は、入力される動画像を符号化するエンコーダ(encoder)である。この符号化装置10は、復号化装置30で符号化データが蓄積されるバッファを仮想的にモデル化した仮想バッファを用いて、復号化装置30が一定のビットレート(bit rate)で動画像を再生できるように、動画像の符号化により発生させる情報量を制御する。ここでは、H.264を始めとするMPEG(Moving Picture Experts Group)の規格にしたがって仮想バッファ、いわゆるVBV(video buffering verifier)バッファを動作させる場合を想定するが、他の圧縮符号化方式にも同様に適用できる。なお、符号化装置10のエンコード機能は、ソフトウェア(software)によって実現してもよいし、また、LSI(Large Scale Integration)等の集積回路によって実現することとしてもよい。
復号化装置30は、入力される動画像の符号化データを復号化するデコーダ(decoder)である。この復号化装置30は、符号化装置10から受信した動画像の符号化データを後述の符号化データバッファ32aに蓄積した上で、符号化データに付与されたタイムスタンプにしたがって符号化データを符号化データバッファ32aから取り出して復号化する。なお、復号化装置30のデコード機能は、ソフトウェアによって実現してもよいし、また、LSI等の集積回路によって実現することとしてもよい。
[VBVバッファの破綻回避方法]
続いて、本実施例に係る符号化装置によるVBVバッファの不具合回避方法について説明する。本実施例に係る符号化装置10は、自装置が符号化したピクチャが復号化装置30によって復号される復号順序と復号化後に表示される表示順序とが異なる点を利用する。すなわち、符号化装置10は、復号時刻が表示時刻よりも早いピクチャの符号化データを分割した上で、各々が異なる復号時刻を分割後の符号化データそれぞれに付与する。これによって、VBVバッファの破綻、すなわちアンダーフロー及びオーバーフローを回避する。
図2を用いて、復号順序と表示順序の関係について説明する。図2は、復号順序と表示順序の関係を説明するための図である。図2の例では、動画像が入力される入力順序、符号化装置10によって符号化される符号化順序、復号化装置30によって復号化される復号化順序、さらには、復号後に表示される表示順序に各ピクチャが左側から右側に整列した場合を示す。図2に示す矩形は、動画像の1フレームを指す。図2に示す矩形中の符号Iは、GOP(Group of picture)のうちIピクチャ(Intra-Picture)を指す。図2に示す矩形中の符号Pは、Pピクチャ(Predictive-Picture)を指す。図2に示す矩形中の符号Bは、Bピクチャ(Bidirectionally Picture)を指す。なお、図2に示す符号I、PまたはBの右側に付した数字は、動画像が入力される入力順序、すなわち表示順序を指す。
図2に示すように、符号化装置10には、フレームB0、フレームB1、フレームI2、フレームB3、フレームB4、フレームP5の順に動画像が入力される。このとき、符号化装置10は、Bピクチャの符号化時に参照されるIピクチャ又はPピクチャのフレームを先に符号化するために、Iピクチャ又はPピクチャへ符号化するフレームをBピクチャへ符号化するフレームよりも符号化順序が先になるように並べ替える。図2の例では、符号化装置10は、フレームI2、フレームB0、フレームB1、フレームP5、フレームB3、フレームB4の順に並べ替える。
その上で、符号化装置10は、並べ替えたフレームI2、フレームB0、フレームB1、フレームP5、フレームB3、フレームB4の順に各フレームを符号化する。これによって、IピクチャであるピクチャI2、PピクチャであるピクチャP5、BピクチャであるピクチャB0、ピクチャB1、ピクチャB3及びピクチャB4が生成される。これらピクチャI2、ピクチャB0、ピクチャB1、ピクチャP5、ピクチャB3、ピクチャB4の符号化データは、符号化装置10から復号化装置30へストリームデータとして伝送される。
一方、復号化装置30は、符号化装置10から受信した符号化データをピクチャI2、ピクチャB0、ピクチャB1、ピクチャP5、ピクチャB3、ピクチャB4の順に復号化する。これによって、フレームI2、フレームB0、フレームB1、フレームP5、フレームB3、フレームB4が生成される。そして、復号化装置30は、このようにして復号化した各フレームをフレームB0、フレームB1、フレームI2、フレームB3、フレームB4、フレームP5の表示順序に再び並べ替えた上で所定の表示部に表示させる。
図3は、図2に示した各ピクチャの復号時刻及び表示時刻とVBVバッファの占有量との関係を示す図である。図3に示す例では、理想的なデコーダに搭載されるVBVバッファを想定し、復号化が終了したピクチャの符号化データは瞬時にVBVバッファから除去されるものとして説明を行う。図3に示すグラフの横軸は、時間を指す、右に進むほど時間が経過することを表す。図3に示す横軸を刻むDTS(Decoding Time Stamp)は、VBVバッファで符号化データが復号化される復号時刻、言い換えればVBVバッファから符号化データを除去する除去時刻を指す。図3に示す横軸を刻むPTS(Presentation Time Stamp)は、復号化後のフレームが表示される表示時刻を指す。また、図3に示すグラフの縦軸は、VBVバッファを占有する符号化データの情報量、すなわちバッファ占有量の大きさを表す。図3に示すグラフの傾きは、VBVバッファへ入力される符号化データのビットレートを表す。
図3に示すように、ピクチャI2は、DTS[2]の時点で復号化された上でPTS[2](=DTS[5])の時点で表示される。また、ピクチャB0は、DTS[0]の時点で復号化された上でPTS[0]の時点で表示される。また、ピクチャB1は、DTS[1]の時点で復号化された上でPTS[1]の時点で表示される。また、ピクチャP5は、DTS[5]の時点で復号化された上でPTS[5](=DTS[8])の時点で表示される。また、ピクチャB3は、DTS[3]の時点で復号化された上でPTS[3]の時点で表示される。また、ピクチャB4は、DTS[4]の時点で復号化された上でPTS[4]の時点で表示される。このようにして、図示しない後続のピクチャの復号化、さらには表示が同様にして実行される。
このように、Bピクチャの復号化時に参照されるIピクチャ及びPピクチャのDTSとPTSとは同一ではない。すなわち、Iピクチャ及びPピクチャのPTSは、Iピクチャ又はPピクチャが復号化されてからそのフレームを復号化に使用したBピクチャが表示されるまで遅延させた時刻がそのPTSとなる。例えば、ピクチャP5は、DTS[5]の時点で復号化されるが、実際に表示されるのは、入力順序で先行するピクチャB3及びピクチャB4が復号化及び表示された後のPTS[5](=DTS[8])のタイミングである。このため、復号化装置30でピクチャP5を正常に表示させるには、必ずしもDTS[5]の時点でピクチャ内の全てのデータが復号されている必要はない。すなわち、ピクチャP5の復号化は、ピクチャB3及びピクチャB4から復号化時に参照画として使用される前までに完了していればよい。
このようなDTSとPTSの時間差を利用して、符号化装置10は、伝送ビットレートでは復号化装置30へ伝送しきれない、あるいはVBVバッファの容量に収まりきらないIピクチャ又はPピクチャを分割する。その上で、符号化装置10は、Iピクチャ又はPピクチャを分割した分割データのうち一部または全部の復号時刻を、その復号化データを復号化に使用するBピクチャが復号化される前となる範囲内で元の復号時刻よりも早めたり、あるいは遅めたりする。これによって、バッファアンダーフロー及びバッファオーバーフローを回避する。なお、本実施例では、Iピクチャ又はPピクチャを対象に分割および復号時刻の設定を行う場合を説明するが、符号化装置10が符号化データを復号化装置30へ遅延させて伝送する場合にはBピクチャを対象にして分割および復号時刻の設定を行うこともできる。
まず、図4及び図5を用いて、バッファアンダーフローの回避方法について説明する。図4は、バッファアンダーフローの発生の一態様を示す図であり、また、図5は、バッファアンダーフローの回避例を示す図である。なお、図4及び図5の例は、いずれも図2に示した各ピクチャを対象に符号化、復号化及び表示が実行される場合を想定している。
図4に示すように、符号化装置10によって符号化されたピクチャP5の情報量は、図1に示した符号化装置10及び復号化装置30の間で規定されたビットレートに比べて大きい。このため、符号化装置10は、DTS[5](=PTS[2])までにピクチャP5の全てを復号化装置30へ伝送しきれない。それゆえ、DTS[5](=PTS[2])の時点でVBVバッファのアンダーフローが発生する。
このようなアンダーフローの発生を回避するために、符号化装置10は、一例として、次のような処理を実行する。すなわち、符号化装置10は、アンダーフローのボトルネックとなっているピクチャP5の符号化データを前段部分及び後段部分の2つに分割する。ここで言う「前段部分」とは、図4及び図5に示す太線部分を指し、また、「後段部分」とは、図4及び図5に示す太い点線部分を指す。その上で、符号化装置10は、図5に示すように、ピクチャP5を分割した分割データのうち後段部分のデータをDTS[5]には復号させずに、ピクチャP5の次に復号するピクチャB3のDTS[3]に復号させるように後段部分のデータの復号時刻を設定する。つまり、符号化装置10は、ピクチャP5を分割した分割データのうち前段部分のデータの復号時刻をDTS[5]と設定するとともに、後段部分のデータの復号時刻をDTS[3]と設定する。
このように、本実施例に係る符号化装置10は、復号化装置30に1ピクチャの符号化データを一度に復号させずに前段部分および後段部分のデータをDTS[5]及びDTS[3]の二度に分けて復号させる。このとき、本実施例に係る符号化装置10は、ピクチャB3やピクチャB4の復号化が開始されるまでには、ピクチャP5の復号化が開始されるように各分割データの復号時刻を設定する。このため、後段部分のデータの復号化を後回しすることによって、ピクチャP5を参照して復号されるピクチャB3やピクチャB4が復号できなくなることもない。よって、本実施例に係る符号化装置10では、ピクチャP5のトータルの情報量を削減せずともバッファアンダーフローを回避できる。それゆえ、DTS[5]のタイミングで復号化装置30にピクチャP5を復号化させるために、ピクチャP5の符号化データをDTS[5]までにピクチャP5を伝送できる情報量に削減する必要はない。したがって、本実施例に係る符号化装置10によれば、動画像のフレーム間で画質を均一化できる。
次に、図6及び図7を用いて、バッファオーバーフローの回避方法について説明する。図6は、バッファオーバーフローの発生の一態様を示す図であり、また、図7は、バッファオーバーフローの回避例を示す図である。なお、図6及び図7の例は、いずれも図2に示した各ピクチャを対象に符号化、復号化及び表示が実行される場合を想定している。
図6に示すように、符号化装置10によって符号化されたピクチャP5の情報量は、VBVバッファの容量を超える。このため、DTS[5](=PTS[2])の時点でVBVバッファのオーバーフローが発生する。
このようなオーバーフローの発生を回避するために、符号化装置10は、一例として、次のような処理を実行する。すなわち、符号化装置10は、オーバーフローのボトルネックとなっているピクチャP5の符号化データを前段部分及び後段部分の2つに分割する。ここで言う「前段部分」とは、図6及び図7に示す太線部分を指し、また、「後段部分」とは、図6及び図7に示す太い点線部分を指す。その上で、符号化装置10は、図7に示すように、ピクチャP5を分割した分割データのうち前段部分のデータをDTS[5]には復号させずに、ピクチャP5の前に復号するピクチャB1のDTS[1]に復号させるように前段部分のデータの復号時刻を設定する。つまり、符号化装置10は、ピクチャP5を分割した分割データのうち前段部分のデータの復号時刻をDTS[1]と設定するとともに、後段部分のデータの復号時刻をDTS[5]と設定する。
このように、本実施例に係る符号化装置10は、復号化装置30に1ピクチャの符号化データを一度に復号させずに前段部分および後段部分のデータをDTS[1]及びDTS[5]の二度に分けて復号させる。このとき、本実施例に係る符号化装置10は、ピクチャB3やピクチャB4の復号化が開始されるまでには、ピクチャP5の復号化が開始されるように各分割データの復号時刻を設定する。このため、前段部分のデータの符号化を前倒しすることによって、ピクチャP5を参照して復号されるピクチャB3やピクチャB4が復号できなくなることもない。よって、本実施例に係る符号化装置10では、スタッフィングビットのように動画像の画質に寄与しない無駄なデータを水増しせずに、ピクチャP5の符号化によって発生する符号化データを前倒して伝送できる分、画質を向上させることができる。したがって、本実施例に係る符号化装置10によれば、動画像のフレーム間で画質を均一化できる。
上述してきたように、本実施例に係る符号化装置10は、ピクチャよりも細かい単位に分割して上でその一部を後回しまたは前倒しで復号化装置30に復号させる。これによって、本実施例に係る符号化装置10では、復号化装置30にピクチャ単位で復号化させた場合にアンダーフロー又はオーバーフローが発生するからといって、符号化データの情報量を増減させる必要がない。それゆえ、本実施例に係る符号化装置10によれば、動画像のフレーム間で画質を均一化できる。一例として、映像の動きが激しい状態から映像の場面が切り替わる場合にバッファアンダーフローの回避方法を好適に適用できる。他の一例として、映像の動きがない状態から映像の場面が切り替わる場合にバッファオーバーフローの回避方法を好適に適用できる。
[符号化装置の構成]
次に、本実施例に係る符号化装置の構成について説明する。図1に示す符号化装置10は、動画像入力部11と、フレームメモリ12と、符号化データバッファ13aと、符号化部13と、データ送信部14と、VBV管理部15とを有する。
このうち、動画像入力部11は、自装置に動画像を入力する処理部である。一例としては、動画像入力部11は、所定の撮像装置から撮画像を受信することにより動画像を入力することができる。他の一例としては、動画像入力部11は、ネットワークを介して接続される外部装置からダウンロードすることにより動画像を入力することもできる。更なる一例としては、動画像入力部11は、CD−ROM(Compact Disc Read Only Memory)やDVD(Digital Versatile Disc)などの可搬記録媒体からの読出し処理を実行することにより動画像を入力することもできる。また、動画像入力部11は、図示しない記憶部からの読出し処理を実行することにより動画像を入力することもできる。このように、動画像入力部11は、撮像装置、読取装置または通信インタフェースなどの手段を任意に選択して実現できる。
フレームメモリ12は、動画像のフレームデータを記憶するメモリである。一例としては、フレームメモリ12には、動画像入力部11によって入力される動画像のフレームが格納される。なお、ここでは、フレームメモリ12に記憶されるフレームデータが動画像入力部11によって入力される場合を例示したが、動画像入力部11を介することなく、予めフレームデータを記憶しておくようにしてもかまわない。
符号化データバッファ13aは、符号化データを蓄積するバッファである。一例としては、後述する符号化部13によって符号化された符号化データが蓄積される。このようにして符号化データバッファ13aに蓄積された符号化データは、後述するデータ送信部14によって復号化装置30へ送信された後に消去される。なお、符号化データバッファ13aの符号化データは、一定時間にわたって蓄積された後にタイマーにより自動的に消去されるようにしてもよい。
符号化部13は、フレームメモリ12に記憶されたフレームを符号化する処理部である。これを説明すると、符号化部13は、フレームメモリ12に記憶されたフレームのうち、Iピクチャ又はPピクチャへ符号化するフレームをBピクチャへ符号化するフレームよりも符号化順序が先になるように並べ替えて取り出す。その上で、符号化部13は、並び替えを行ったフレームに順次符号化することにより得た符号化データを符号化データバッファ13aへ格納する。このフレームデータの符号化中に、符号化部13は、マクロブロックの符号化によって発生した情報量、以下「発生情報量」と記載を後述のVBV管理部15へ出力する。なお、「マクロブロック」とは、符号化前の動画像データが所定のサイズ、例えば16画素×16画素や8画素×8画素などに分割されたデータを指す。
データ送信部14は、符号化データバッファ13aに蓄積された符号化データを復号化装置30へ送信する処理部である。このデータ送信部14は、後述のVBV管理部15によって入力される付加データを符号化データバッファ13aから取り出したピクチャの符号化データの中でピクチャが分割される部分に挿入して復号化装置30へ送信する。なお、付加データは、復号化装置30側でピクチャの分割を認識させるためにVBV管理部15によって付加される情報である。
VBV管理部15は、符号化部13による符号化に伴って発生した情報量に基づいて、VBVバッファの管理を行う処理部である。一例としては、VBV管理部15は、符号化部13によってフレームメモリ12からフレームデータが取り出される度に、復号化装置30にピクチャ単位で復号化させた場合にアンダーフローが発生するか否かを判定する。このとき、アンダーフローが発生する場合には、VBV管理部15は、現在入力中のピクチャの符号化データを分割した上で前段部分のデータの後に後段部分のデータのDTSを復号化装置30に認識させるための付加データを挿入する。このようにアンダーフローが発生する場合には、ピクチャの符号化データが分割されるので、分割した後段部分のデータがVBVバッファの容量に近い情報量を持つ稀なケース以外はオーバーフローが発生しない。よって、VBV管理部15は、オーバーフローを回避するための分割は実行しない。また、アンダーフローが発生せずにピクチャの符号化が終了した場合には、VBV管理部15は、1ピクチャのDTS分の時間が経過した場合にオーバーフローが発生するか否かを判定する。このとき、オーバーフローが発生する場合には、VBV管理部15は、本来次のDTSが付与されるピクチャの符号化を開始し、オーバーフローが検出されなくなった段階でピクチャの符号化データを分割する。その上で、VBV管理部15は、ピクチャの分割データのうち前段部分のデータの後に後段部分のデータのDTSを復号化装置30に認識させるための付加データを挿入する。
ここで、VBV管理部15によって使用されるパラメータについて説明する。かかるパラメータの一例としては、「MAX_MB_NUM」、「mbnum」、「B(mbnum)」、「MAX_DIV_NUM」、「div_num」、「MB_div[divnum]」、「Bitrete」、「VBVBOC_ini」、「SumB」、「SumB_TH[divnum]」などが挙げられる。さらに、「VBVBOC_divnum」、「DTS_ini」、「DTS[divnum]」、「DTS_1pic」なども挙げられる。
このうち、「MAX_MB_NUM」は、ピクチャ内の総MB(Macro Block)数を示す。「mbnum」は、マクロブロックの番号を指し、例えば、0〜MAX_NUM−1の番号までインクリメントされる。「B(mbnum)」は、各々のMB番号におけるマクロブロックの発生情報量を指す。「MAX_DIV_NUM」は、最大分割数を示す。「div_num」は、分割番号を指し、例えば、0〜MAX_DIV_NUM−1までインクリメントされる。「MB_div[divnum]」は、分割番号の領域に含まれる終端MB番号を指す。「Bitrete」は、符号化装置10及び復号化装置30の間のビットレートを指す。「VBVBOC_ini」は、復号化装置30にピクチャ単位で復号させる場合のピクチャ先頭のVBVバッファの占有量を指す。「SumB」は、発生情報量の累積加算値を指す。「SumB_TH[divnum]」は、データの分割条件とする分割番号別の発生情報量閾値を指す。「VBVBOC_divnum」は、最新の分割番号におけるVBVバッファの占有量、以下「分割VBVバッファ占有量」と記載を指す。「DTS_ini」は、復号化装置30にピクチャ単位で復号させる場合に付与される初期の復号時刻を指す。「DTS[divnum]」は、最新の分割番号の符号化データに付与される復号時刻、以下「分割復号時刻」と記載を指す。「DTS_1pic」は、1ピクチャ分のDTS加算値を指す。
これを具体的に説明すると、VBV管理部15は、ピクチャの先頭のマクロブロックの符号化が開始されると各パラメータを初期化する。一例として、VBV管理部15は、分割番号「div_num」を0に初期化する。さらに、VBV管理部15は、終端MB番号「MB_div[0]〜MB_div[MAX_DIV_NUM-1]」を0に初期化する。さらに、VBV管理部15は、分割復号時刻「DTS[0]〜DTS[MAX_DIV_NUM-1]」をDTS_iniに初期化する。さらに、VBV管理部15は、分割VBVバッファ占有量「VBVBOC_divnum[MAX_DIV_NUM-1]」をVBVBOC_iniに初期化する。
そして、VBV管理部15は、復号化装置30にピクチャ単位で復号させる場合に付与される初期の復号時刻、すなわち分割復号時刻「DTS[0]」における最大発生情報量閾値「SumB_TH[0]」を決定する。かかる最大発生情報量閾値の決定方法の一例としては、次のような方法が挙げられる。例えば、図8に示すように、VBV管理部15は、分割VBVバッファ占有量「VBVBOC_divnum[0]」から、アンダーフローを防止するために予め規定されたバッファ枯渇防止閾値「VBV_TH」を減算することにより、最大発生情報量閾値「SumB_TH[0]」を決定する。なお、図8は、VBV管理部の処理内容を説明するための図である。
続いて、VBV管理部15は、現在のMB番号「mbnum」に対応するマクロブロックを符号化部13に符号化させる。そして、VBV管理部15は、マクロブロックの発生情報量「B(mbnum)」を取得する。その上で、VBV管理部15は、先に取得した発生情報量「B(mbnum)」をそれまでに累積されてきた現在の分割番号「div_num」の加算値へ累積加算する計算、つまりSumB=ΣB(i)(MB_div[divnum-1〜mbnum])の計算を実行する。なお、発生情報量の累積加算値は、分割データ内の累積加算値であり、ピクチャの分割が発生する場合には0にリセットされる。ピクチャの分割が発生しない場合には、ピクチャの発生情報量の累積加算値に等しくなる。
ここで、VBV管理部15は、現在の分割番号「div_num」の発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[divnum]」を超過するか否かを判定する。この閾値判定によって、VBV管理部15は、ピクチャの分割の要否を判定する。なお、発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[divnum]」以下である場合には、MB番号を1つインクリメントした上で上記の処理を繰り返し実行する。図8の例で言えば、MB番号「X-1」の発生情報量「B(X-1)」が累積加算された値「SumB」は、最大発生情報量閾値「SumB_TH[0]」よりも小さい。このため、MB番号「X-1」が符号化された段階では、当ピクチャの分割は不要と判定される。一方、MB番号「X」の発生情報量「B(X)」が累積加算された値「SumB」は、最大発生情報量閾値「SumB_TH[0]よりも大きい。この場合には、当ピクチャの分割が好ましいと判定される。
このとき、発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[divnum]」を超過する場合には、VBV管理部15は、1つ前のMB番号「mbnum」を分割切れ目の終端MB番号「MB_div[divnum]」と定める。図8の例で言えば、MB番号「X」の発生情報量「B(X)」が累積加算された値「SumB」で最大発生情報量閾値「SumB_TH[0]」を超えるので、MB番号「X-1」が終端MB番号「MB_div[divnum]」と決定される。これによって、VBV管理部15は、MB番号「X-1」までのマクロブロックの符号化データをDTS[0]で復号させる符号化データとして扱う。
そして、VBV管理部15は、分割復号時刻「DTS[divnum]」の分割VBVバッファ占有量「VBVBOC_divnum」を確定させる。図8の例で言えば、VBV管理部15は、分割復号時刻「DTS[0]」で符号化データが復号されてVBVバッファから除去された際のVBVバッファの占有量を算出する。すなわち、MB番号「X-1」が符号化された段階での分割VBVバッファ占有量「VBVBOC_divnum[0]」は、ピクチャ先頭の「VBVBOC_divnum[0]」からMB番号「X-1」の発生情報量「B(X-1)」が累積加算された値「SumB」を減算することにより計算される。
続いて、VBV管理部15は、分割復号時刻「DTS[divnum]」に1ピクチャ分のDTS加算値「DTS_1pic」を加えることにより、DTSを1ピクチャ分進める。そして、VBV管理部15は、分割復号時刻「DTS[divnum]」の分割VBVバッファ占有量「VBVBOC_divnum」に1ピクチャ分のDTS加算値「DTS_1pic」×ビットレート「Bitrare」を乗算することにより、VBVバッファの占有量を1DTS分進める。その上で、VBV管理部15は、分割番号「div_num」をインクリメントする。図8の例で言えば、VBV管理部15は、分割復号時刻「DTS[0]」に1ピクチャ分のDTS加算値「DTS_1pic」を加えることにより、分割されたMB番号「X」以降の分割復号時刻を「DTS[1]」と決定する。その後、VBV管理部15は、「VBVBOC_divnum[0]」に1ピクチャ分のDTS加算値「DTS_1pic」×ビットレート「Bitrare」を乗算する。このようにして、分割復号時刻「DTS[1]」の分割VBVバッファ占有量「VBVBOC_divnum[1]」を計算する。これによって、復号化装置30にピクチャ単位で復号させる場合には、復号化装置30にDTS[0]で復号化させるMB番号「X」以降の符号化データが、図8に示す円囲いの点線で示すように、復号化装置30に次のDTS[1]で復号化させることになる。そして、VBV管理部15は、分割番号「0」を1つインクリメントすることにより、分割番号を「1」とする。
そして、VBV管理部15は、先にインクリメントした分割番号「divnum+1」の分割復号時刻「DTS[divnum+1]」における最大発生情報量閾値「SumB_TH[divnum]」を決定する。図8に示す例では、分割復号時刻「DTS[1]」における最大発生情報量閾値「SumB_TH[divnum]」が決定される。一例としては、VBV管理部15は、VBVバッファの容量に対する所定の割合、例えば70%などを分割後の最大発生情報量閾値として採用する。
続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する。図9は、付加データの一例を示す図である。図9に示す例では、PicNo.1のピクチャの符号化データに付加データを挿入する場合を例示している。図9に示すように、付加データには、スタートコード、終端MB番号及び分割復号時刻が含まれる。このうち、スタートコードは、ストリームデータの中から付加データを識別するためのコードであり、例えば、MPEG等で使用される0×000001**などの同期コードが使用される。終端MB番号は、本付加データ以前までに含まれるべき、ピクチャ内のMB番号を示す。また、分割復号時刻は、次以降のMB番号の符号化データが復号化装置30で復号化されてVBVバッファから除去されると推定される時刻を指す。なお、図8の例で言えば、DTS[0]に復号させるべき終端MB番号には「MB_div[X-1]」が付加されるとともに、次以降のMB番号「X」の符号化データを符号化させる分割復号時刻には「DTS[1]」が付加される。
そして、VBV管理部15は、終端MB番号「MB_div[divnum]」までの符号化データをデータ送信部14に送信させるとともに、終端MB番号「MB_div[divnum]」の後に付加データを挿入する。
このようにして、VBV管理部15は、MB番号が「MAX_MB_NUM」に到達するまで、上記の処理を繰り返し行う。その後、MB番号が「MAX_MB_NUM」に到達し、1ピクチャの符号化が完了すると、VBV管理部15は、次のように未送信のストリームをデータ送信部14に送信させる。例えば、VBV管理部15は、分割が発生していない場合には、符号化データバッファ13aに蓄積されたピクチャの符号化データをデータ送信部14に送信させる。また、分割が発生していない場合には、VBV管理部15は、終端MB番号「MB_div[divnum]」までの符号化データをデータ送信部14に送信させるとともに、終端MB番号「MB_div[divnum]」の後に付加データを挿入する。
続いて、バッファアンダーフローを回避していなかった場合には、VBV管理部15は、次のような処理を実行する。すなわち、VBV管理部15は、ピクチャ先頭のVBVバッファの占有量「VBVBOC_ini」から、MB番号「MAX_MB_NUM」までの発生情報量の累積加算値「SumB=ΣB(0〜MAX_MB_NUM-1)」を減算することにより、現在のピクチャのバッファ占有量「VBVBOC」を算出する。
そして、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」を算出する。図10に示す例で言えば、VBV管理部15は、現在のピクチャのバッファ占有量「VBVBOC」に1ピクチャ分のDTS加算値「DTS_1pic」×ビットレート「Bitrare」を乗算することにより、1DTS分進めたVBVバッファの占有量「VBVBOC_next」を算出する。なお、図10は、VBV管理部の処理内容を説明するための図である。
ここで、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」がVBVバッファの容量「VBVBufferSize」を超えるか否か、すなわちバッファオーバーフローするか否かを判定する。図10に示す例で言えば、1DTS分進めたVBVバッファの占有量「VBVBOC_next」がVBVバッファの容量「VBVBufferSize」を超えるので、VBV管理部15によってバッファオーバーフローすると判定される。
このとき、バッファオーバーフローが発生しない場合には、VBV管理部15は、次のピクチャが前倒しで復号されないように、次のピクチャについて復号化装置30にピクチャ単位で復号させる場合と同様のタイミングで復号化する旨を決定する。
一方、バッファオーバーフローが発生する場合には、VBV管理部15は、VBVバッファを超過するサイズ「Overbit」を算出する。図10に示す例で言えば、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」からVBVバッファの容量「VBVBufferSize」を減算することにより、VBVバッファを超過するサイズ「Overbit」を算出する。
続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する。そして、VBV管理部15は、復号化装置30にピクチャ単位で復号させる場合には次のDTSで符号化されるピクチャの符号化を開始する。なお、この時、発生情報量の累積加算値「SumB」は、ゼロにリセットされるとともに、最大発生情報量閾値「SumB_TH[divnum]」は、VBVバッファを超過するサイズ「Overbit」に設定される。図10の例で言えば、本来であれば復号化装置30にDTS[1]で復号化させるピクチャをDTS[0]で前倒して符号化させる。
その後、VBV管理部15は、次のDTSで符号化されるピクチャの符号化を符号化部13へ指示する。続いて、VBV管理部15は、符号化部13から取得した発生情報量「B(mbnum)」をそれまでに累積されてきた加算値「SumB」へ累積加算する。
ここで、VBV管理部15は、現在の分割番号「div_num」の発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[Overbit]」以上であるか否かを判定する。このとき、現在の分割番号の発生情報量の累積加算値が最大発生情報量閾値未満である場合には、次のMB番号に対応するマクロブロックを符号化部13に符号化させる。
一方、現在の分割番号の発生情報量の累積加算値が最大発生情報量閾値以上である場合には、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、先に求めたVBVバッファの占有量「VBVBOC」から発生情報量の累積加算値「SumB」を減算して現在のVBVバッファの占有量「VBVBOC」を再計算する。
そして、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」を算出する。続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する。図10の例で言えば、MB番号「X」で「Overbit」を超えた場合には、本来であれば復号化装置30にDTS[1]で復号化させるピクチャのうち、MB番号「0〜X」までの符号化データがDTS[0]で前倒して符号化される。そして、MB番号「X+1」以降のマクロブロックは本来の復号時刻であるDTS[1]のデータとして符号化が実行される。
その後、VBV管理部15は、「Overbit」を超えたMB番号までの符号化データをデータ送信部14に送信させるとともに、終端MB番号「MB_div[divnum]」の後に付加データを挿入する。そして、VBV管理部15は、「Overbit」を超えたMB番号の次のMB番号、すなわち符号化されずに残ったMB番号から復号化装置30にピクチャ単位で復号させる場合と同様のタイミングで復号化する旨を決定する。
[復号化装置の構成]
次に、本実施例に係る復号化装置の構成について説明する。図1に示す復号化装置30は、データ受信部31と、符号化データバッファ32aと、復号化部32と、バッファ管理部32と、フレームメモリ34と、表示部35を有する。
データ受信部31は、符号化装置10によって送信された符号化データを受信する処理部である。データ受信部31は、このようにして受信した符号化データを後述の符号化データバッファ32aへ格納する。
符号化データバッファ32aは、符号化データを蓄積するバッファである。一例としては、データ受信部31によって受信された符号化データが蓄積される。このようにして符号化データバッファ32aに蓄積された符号化データは、後述する復号化部33によって復号化されるとともに除去される。
復号化部33は、符号化データバッファ32aに記憶された符号化データを復号化する処理部である。一例としては、復号化部33は、後述のバッファ管理部32からの指示にしたがって、符号化データバッファ32aから符号化データを取り出して復号化する。
フレームメモリ34は、動画像のフレームデータを記憶するメモリである。一例としては、フレームメモリ34には、復号化部33によって復号化された動画像のフレームが格納される。また、表示部35は、各種の情報、例えばフレームメモリ34から読み出した画像を表示する表示デバイスであり、例えば、モニタ、ディスプレイやタッチパネルなどである。なお、表示部35は、フレームメモリ34に蓄積されたフレームのうち、先にIピクチャ又はPピクチャのフレームとして復号化されたものよりもそれを参照して復号化されたBピクチャのフレームを先に表示する。
バッファ管理部32は、符号化データバッファ32aを管理する処理部である。一例としては、バッファ管理部32は、符号化データバッファ32aに蓄積された動画像データに対してピクチャ単位ではなくピクチャの分割単位で復号時刻が設定されている場合に、復号時刻に応じて符号化データをピクチャ単位で復号化部33に復号化させる。
[各種処理の流れ]
次に、本実施例に係る伝送システムの処理の流れを説明する。なお、ここでは、符号化装置10によって実行される(1)符号化処理を説明した後に、復号化装置30によって実行される(2)復号化処理を説明する。
(1)符号化処理
図11〜図13は、実施例1に係る符号化処理の手順を示すフローチャートである。この符号化処理は、動画像入力部11によって動画像のフレームが受け付けられた場合に起動する処理である。図11に示すように、フレームが受け付けられると(ステップS101肯定)、動画像入力部11は、動画像のフレームをフレームメモリ12へ書き込む(ステップS102)。
そして、フレームメモリ12に書き込まれたフレームに並び替えが不要である場合、すなわちIピクチャやPピクチャであった場合(ステップS103否定)には、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、今回書き込んだピクチャを符号化部13へ入力する(ステップS104)。
また、フレームメモリ12に書き込まれたフレームに並び替えが必要である場合、すなわちBピクチャであった場合(ステップS103肯定)には、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、既にフレームメモリ12に蓄積されているピクチャを符号化部13へ入力する(ステップS105)。
続いて、VBV管理部15は、ピクチャの先頭のマクロブロックの符号化が開始されると各パラメータを初期化する(ステップS106)。そして、VBV管理部15は、復号化装置30にピクチャ単位で復号させる場合に付与される初期の復号時刻、すなわち分割復号時刻「DTS[0]」における最大発生情報量閾値「SumB_TH[0]」を決定する(ステップS107)。
続いて、VBV管理部15は、現在のMB番号「mbnum」に対応するマクロブロックを符号化部13に符号化させる(ステップS108)。そして、VBV管理部15は、マクロブロックの発生情報量「B(mbnum)」を取得する(ステップS109)。その上で、VBV管理部15は、先に取得した発生情報量「B(mbnum)」をそれまでに累積されてきた現在の分割番号「div_num」の加算値へ累積加算する計算、つまりSumB=ΣB(i)(MB_div[divnum-1〜mbnum])の計算を実行する(ステップS110)。
ここで、VBV管理部15は、現在の分割番号「div_num」の発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[divnum]」を超過するか否かを判定する(ステップS111)。なお、発生情報量の累積加算値が最大発生情報量閾値以下である場合(ステップS111否定)には、ステップS120の処理に移行する。
このとき、発生情報量の累積加算値が最大発生情報量閾値を超過する場合(ステップS111肯定)には、VBV管理部15は、1つ前のMB番号「mbnum」を分割切れ目の終端MB番号「MB_div[divnum]」と定める(ステップS112)。そして、VBV管理部15は、分割復号時刻「DTS[divnum]」の分割VBVバッファ占有量「VBVBOC_divnum」を確定させる(ステップS113)。
続いて、VBV管理部15は、分割復号時刻「DTS[divnum]」に1ピクチャ分のDTS加算値「DTS_1pic」を加えることにより、DTSを1ピクチャ分進める(ステップS114)。そして、VBV管理部15は、VBVバッファの占有量を1DTS分進める(ステップS115)。その上で、VBV管理部15は、分割番号「div_num」をインクリメントする(ステップS116)。
そして、VBV管理部15は、先にインクリメントした分割番号「divnum+1」の分割復号時刻「DTS[divnum+1]」における最大発生情報量閾値「SumB_TH[divnum]」を決定する(ステップS117)。続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する(ステップS118)。
その後、VBV管理部15は、終端MB番号「MB_div[divnum]」までの符号化データをデータ送信部14に送信させるとともに、終端MB番号「MB_div[divnum]」の後に付加データを挿入する(ステップS119)。
そして、VBV管理部15は、MB番号が「MAX_MB_NUM」に到達するまで(ステップS120否定)、上記のステップS108〜S119までの処理を繰り返し行う。その後、MB番号が「MAX_MB_NUM」に到達し、1ピクチャの符号化が完了すると(ステップS120肯定)、VBV管理部15は、次のように未送信のストリームをデータ送信部14に送信させる(ステップS121)。
続いて、バッファアンダーフローを回避していなかった場合(ステップS122否定)には、VBV管理部15は、現在のピクチャのバッファ占有量「VBVBOC」を算出する(ステップS123)。そして、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」を算出する(ステップS124)。なお、バッファアンダーフローを回避していた場合(ステップS122肯定)には、上記のステップS101の処理に戻る。
ここで、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」がVBVバッファの容量「VBVBufferSize」を超えるか否か、すなわちバッファオーバーフローするか否かを判定する(ステップS125)。
このとき、バッファオーバーフローが発生しない場合(ステップS125否定)には、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、次のピクチャが前倒しで復号されないように、次のピクチャについて復号化装置30にピクチャ単位で復号させる場合と同様のタイミングで復号化する旨を決定し(ステップS126)、上記のステップS101の処理に戻る。
また、バッファオーバーフローが発生する場合(ステップS125肯定)には、VBV管理部15は、VBVバッファを超過するサイズ「Overbit」を算出する(ステップS127)。続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する(ステップS128)。そして、VBV管理部15は、復号化装置30にピクチャ単位で復号させる場合には次のDTSで符号化されるピクチャの符号化を開始する(ステップS129)。
その後、VBV管理部15は、次のDTSで符号化されるピクチャの符号化を符号化部13へ指示する(ステップS130)。続いて、VBV管理部15は、符号化部13から取得した発生情報量「B(mbnum)」をそれまでに累積されてきた加算値「SumB」へ累積加算する(ステップS131)。
ここで、VBV管理部15は、現在の分割番号「div_num」の発生情報量の累積加算値「SumB」が最大発生情報量閾値「SumB_TH[Overbit]」以上であるか否かを判定する(ステップS132)。このとき、現在の分割番号の発生情報量の累積加算値が最大発生情報量閾値未満である場合(ステップS132否定)には、全てのMB番号のマクロブロックについて処理が終了するまで(ステップS138否定)、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、上記のステップS130〜S132までの処理を繰り返し行う。
一方、現在の分割番号の発生情報量の累積加算値が最大発生情報量閾値以上である場合(ステップS132肯定)には、VBV管理部15は、次のような処理を行う。すなわち、VBV管理部15は、先に求めたVBVバッファの占有量「VBVBOC」から発生情報量の累積加算値「SumB」を減算して現在のVBVバッファの占有量「VBVBOC」を再計算する(ステップS133)。
そして、VBV管理部15は、1DTS分進めたVBVバッファの占有量「VBVBOC_next」を算出する(ステップS134)。続いて、VBV管理部15は、スタートコード「startcode」、分割終端MB番号「MB_div[divnum]」及び分割復号時刻「DTS[divnum]」を含む付加データを生成する(ステップS135)。
その後、VBV管理部15は、「Overbit」を超えたMB番号までの符号化データをデータ送信部14に送信させるとともに、終端MB番号「MB_div[divnum]」の後に付加データを挿入する(ステップS136)。
そして、VBV管理部15は、「Overbit」を超えたMB番号の次のMB番号、すなわち符号化されずに残ったMB番号から復号化装置30にピクチャ単位で復号させる場合と同様のタイミングで復号化する旨を決定する(ステップS137)。その後、VBV管理部15は、上記のステップS101の処理に戻る。
(2)復号化処理
図14は、実施例1に係る復号化処理の手順を示すフローチャートである。この復号化処理は、データ受信部31によって復号対象とする符号化データが受信された場合に処理が起動する。図14に示すように、復号対象とする符号化データが受信された場合(ステップS301肯定)には、バッファ管理部32は、次のような処理を行う。すなわち、バッファ管理部32は、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダなどのマクロブロックよりも上位のヘッダの復号処理を復号化部33に実行させる(ステップS302)。続いて、バッファ管理部32は、マクロブロックの復号処理を復号化部33に実行させる(ステップS303)。
そして、マクロブロックの復号データから付加データのスタートコード「Startcode」が検出された場合(ステップS304肯定)には、バッファ管理部32は、次のような処理を行う。すなわち、バッファ管理部32は、復号が完了したマクロブロックのMB番号と付加データに含まれる終端MB番号とが等しいか否かをさらに判定する(ステップS305)。
このとき、復号が完了したマクロブロックのMB番号と付加データに含まれる終端MB番号とが等しい場合(ステップS305肯定)には、バッファ管理部32は、次のような処理を行う。すなわち、バッファ管理部32は、ピクチャの符号化データが分割されていることを認識し、次の復号時刻を取得し(ステップS306)、上記のステップS301の処理に戻る。
一方、復号が完了したマクロブロックのMB番号と付加データに含まれる終端MB番号とが等しくない場合(ステップS305否定)には、バッファ管理部32は、次のような処理を行う。すなわち、バッファ管理部32は、符号化装置10により付加データとして書き込まれた分割位置のMB番号と、実際に復号できたMB番号とが違うので、エラー処理を行う(ステップS307)。
また、マクロブロックの復号データから付加データのスタートコード「Startcode」が検出されなかった場合(ステップS304否定)には、バッファ管理部32は、次のような処理を行う。すなわち、バッファ管理部32は、今回復号したマクロブロックのMB番号がピクチャ内の終端MBであるか否かを判定する(ステップS308)。
そして、今回復号したマクロブロックのMB番号がピクチャ内の終端MBである場合(ステップS308肯定)には、バッファ管理部32は、復号したマクロブロックの復号化データをフレームメモリ32へ格納する(ステップS309)。その後、バッファ管理部32は、上記のステップS301の処理に戻る。一方、今回復号したマクロブロックのMB番号がピクチャ内の終端MBである場合(ステップS308否定)には、上記のステップS303の処理に戻る。
[実施例1の効果]
上述してきたように、本実施例に係る符号化装置10は、VBVバッファでアンダーフロー又はオーバーフローが検知された場合にピクチャの符号化データを分割した上で分割後のデータ毎に復号時刻を設定する。これによって、本実施例に係る符号化装置10では、復号化装置30にピクチャ単位で復号化させた場合にアンダーフロー又はオーバーフローが発生するからといって、符号化データの情報量を増減させる必要がない。それゆえ、本実施例に係る符号化装置10によれば、動画像のフレーム間で画質を均一化できる。
また、本実施例に係る符号化装置10は、符号化データの情報量に基づいてVBVバッファでアンダーフローが発生するか否かを判定する。そして、本実施例に係る符号化装置10は、VBVバッファでアンダーフローが発生すると判定された場合に、符号化データを分割し、分割された符号化データのうち前段の符号化データには第1の復号時刻を設定する。さらに、本実施例に係る符号化装置10は、後段の符号化データには第1の復号時刻よりも遅い第2の復号時刻を設定する。このため、本実施例に係る符号化装置10では、符号化データのトータルの情報量を削減せずともバッファアンダーフローを回避できる。
さらに、本実施例に係る符号化装置10は、符号化データの情報量に基づいてVBVバッファでオーバーフローが発生するか否かを判定する。そして、本実施例に係る符号化装置10は、VBVバッファでオーバーフローが発生すると判定された場合に、今回に符号化データには第1の復号時刻を設定する。さらに、本実施例に係る符号化装置10は、次回に符号化される動画像データを分割し、分割された符号化データのうち前段の符号化データには第1の復号時刻を設定する。また、本実施例に係る符号化装置10は、後段の符号化データには第1の復号時刻よりも遅い第2の復号時刻を設定する。よって、本実施例に係る符号化装置10では、スタッフィングビットのように動画像の画質に寄与しない無駄なデータを水増しせずに、動画像の符号化によって発生する符号化データを前倒して伝送できる分、画質を向上させることができる。
また、本実施例に係る復号化装置30は、符号化された動画像データを受信し、符号化データバッファ32aに格納する。そして、本実施例に係る復号化装置30は、符号化データバッファ32aに蓄積された符号化データに対してピクチャ単位ではなくピクチャの分割単位で復号時刻が設定されている場合に、復号時刻に応じて符号化データをピクチャ単位で復号化する。さらに、本実施例に係る復号化装置30は、復号化された動画像データを並べ替えて復号化された動画像データを表示時間順に出力する。このため、本実施例に係る復号化装置30によれば、VBVバッファの破綻を防止しつつ、動画像のフレーム間で均質な画質で出力できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
さて、上記の実施例1では、1つのピクチャを2つに分割する場合について例示したが、開示の装置はこれに限定されない。すなわち、開示の装置は、1つのピクチャを3つ以上に分割する場合についても同様に適用することができる。図15は、応用例を説明するための図である。図15に示すように、DTS[0]の時点でバッファアンダーフローが発生する場合に、分割したデータをDTS[1]の時点で復号させるように後回し、さらに、分割したデータをDTS[2]の時点で復号させるように後回しすることもできる。なお、バッファアンダーフローのみならず、バッファオーバーフローについても同様に3つ以上に分割することができる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、VBV管理部15が実行する処理を分割処理と復号時刻設定処理とに分散してもよい。
また、上記の実施例で説明した各種の処理は、予め用意された符号化プログラム及び復号化プログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することもできる。これら符号化プログラム及び復号化プログラムについては、必ずしも最初からコンピュータのHDD(Hard Disk Drive)やROMに記憶させておく必要はない。例えば、コンピュータに挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータがこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータに接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータがこれらから各プログラムを取得して実行するようにしてもよい。
1 伝送システム
10 符号化装置
11 動画像入力部
12 フレームメモリ
13a 符号化データバッファ
13 符号化部
14 データ送信部
15 VBV管理部
30 復号化装置
31 データ受信部
32a 符号化データバッファ
32 バッファ管理部
33 復号化部
34 フレームメモリ
35 表示部

Claims (6)

  1. 符号化装置に用いる符号化方法において、
    前記符号化装置が、
    動画像データを符号化し、
    符号化された動画像データの情報量が、符号化された動画像データの送信先である復号化装置の受信バッファが仮想的にモデル化された仮想バッファの制御をピクチャ単位で満足するか否かを判定し、
    前記仮想バッファの制御が前記ピクチャ単位で満足しないと判定された場合に、符号化された動画像データを構成する1枚のピクチャを分割し、分割された分割ピクチャ毎に前記復号化装置で復号化処理を実行させる復号時刻を設定する
    処理を実行することを特徴とする符号化方法。
  2. 前記仮想バッファの制御をピクチャ単位で満足するか否かを判定する処理として、符号化された動画像データの情報量に基づいて前記仮想バッファでアンダーフローが発生するか否かを判定し、
    前記復号時刻を設定する処理として、前記仮想バッファでアンダーフローが発生すると判定された場合に、符号化された動画像データを構成する1枚のピクチャを分割し、分割された分割ピクチャのうち前段の第1分割ピクチャには第1の復号時刻を設定し、後段の第2分割ピクチャには前記第1の復号時刻よりも遅い第2の復号時刻を設定する
    処理を実行することを特徴とする請求項1に記載の符号化方法。
  3. 前記仮想バッファの制御をピクチャ単位で満足するか否かを判定する処理として、符号化された動画像データの情報量に基づいて前記仮想バッファでオーバーフローが発生するか否かを判定し、
    前記復号時刻を設定する処理として、前記仮想バッファでオーバーフローが発生すると判定された場合に、今回に符号化された動画像データには第1の復号時刻を設定し、次回に符号化される動画像データを構成するピクチャを分割し、分割された分割ピクチャのうち前段の第1分割ピクチャには前記第1の復号時刻を設定し、後段の第2分割ピクチャには前記第1の復号時刻よりも遅い第2の復号時刻を設定する
    処理を実行することを特徴とする請求項1に記載の符号化方法。
  4. 復号化装置に用いる復号化方法において、
    前記復号化装置が、
    符号化された動画像データを受信し、バッファに格納し、
    前記バッファに蓄積された動画像データに対してピクチャ単位ではなくピクチャの分割単位で自装置が復号化処理を実行する復号時刻が設定されている場合に、前記復号時刻に応じて、符号化された動画像データをピクチャ単位で復号化し、
    復号化された動画像データを構成するピクチャを並べ替えて復号化された動画像データを表示時間順に出力する
    処理を実行することを特徴とする復号化方法。
  5. 符号化装置において、
    動画像データを符号化する符号化部と、
    前記符号化部にて符号化された動画像データの情報量が、符号化された動画像データの送信先である復号化装置の受信バッファが仮想的にモデル化された仮想バッファの制御をピクチャ単位で満足するか否かを判定する判定部と、
    前記判定部にて前記仮想バッファの制御が前記ピクチャ単位で満足しないと判定された場合に、符号化された動画像データを構成する1枚のピクチャを分割し、分割された分割ピクチャ毎に前記復号化装置で復号化処理を実行させる復号時刻を設定する設定部と
    を有することを特徴とする符号化装置。
  6. 復号化装置において、
    符号化された動画像データを蓄積するバッファと、
    前記バッファに蓄積された動画像データに対してピクチャ単位ではなくピクチャの分割単位で自装置が復号化処理を実行する復号時刻が設定されている場合に、前記復号時刻に応じて符号化された動画像データをピクチャ単位で復号化する復号化部と、
    前記復号化部にて復号化された動画像データを構成するピクチャを並べ替えて復号化された動画像データを表示時間順に出力する出力制御部と
    を有することを特徴とする復号化装置。
JP2010212822A 2010-09-22 2010-09-22 符号化方法、復号化方法、符号化装置及び復号化装置 Active JP5521940B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010212822A JP5521940B2 (ja) 2010-09-22 2010-09-22 符号化方法、復号化方法、符号化装置及び復号化装置
US13/232,762 US8798162B2 (en) 2010-09-22 2011-09-14 Encoding method, decoding method, encoder, and decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010212822A JP5521940B2 (ja) 2010-09-22 2010-09-22 符号化方法、復号化方法、符号化装置及び復号化装置

Publications (2)

Publication Number Publication Date
JP2012070190A JP2012070190A (ja) 2012-04-05
JP5521940B2 true JP5521940B2 (ja) 2014-06-18

Family

ID=45817748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010212822A Active JP5521940B2 (ja) 2010-09-22 2010-09-22 符号化方法、復号化方法、符号化装置及び復号化装置

Country Status (2)

Country Link
US (1) US8798162B2 (ja)
JP (1) JP5521940B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6234659B2 (ja) * 2012-04-27 2017-11-22 富士通株式会社 動画像復号装置
JP5994367B2 (ja) * 2012-04-27 2016-09-21 富士通株式会社 動画像符号化装置、動画像符号化方法
CN104519368B (zh) * 2013-09-30 2017-12-01 华为技术有限公司 图像编码、解码重构处理方法及装置
JP6146502B2 (ja) * 2016-03-07 2017-06-14 富士通株式会社 動画像符号化復号システム及び動画像符号化復号方法
JP6194973B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
JP6288129B2 (ja) * 2016-03-07 2018-03-07 富士通株式会社 動画像復号装置及び動画像復号方法
JP6194974B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
JP6249040B2 (ja) * 2016-04-11 2017-12-20 富士通株式会社 動画像復号方法
US10796660B2 (en) * 2018-10-12 2020-10-06 Samsung Display Co., Ltd. Content adaptive display interface

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3182329B2 (ja) 1995-11-15 2001-07-03 株式会社東芝 符号化データ編集装置とデータ復号装置
JP2001169281A (ja) 1999-12-13 2001-06-22 Matsushita Electric Ind Co Ltd 動画像符号化装置、および動画像符号化方法
US6819714B2 (en) * 2000-04-20 2004-11-16 Matsushita Electric Industrial Co., Ltd. Video encoding apparatus that adjusts code amount by skipping encoding of image data

Also Published As

Publication number Publication date
US8798162B2 (en) 2014-08-05
US20120069909A1 (en) 2012-03-22
JP2012070190A (ja) 2012-04-05

Similar Documents

Publication Publication Date Title
JP5521940B2 (ja) 符号化方法、復号化方法、符号化装置及び復号化装置
JP4221676B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4223567B2 (ja) 符号化ビデオシーケンスの切り替え方法及び装置
CN1162007C (zh) 从mpeg-2比特流中去除填充比特的可编程滤波器
JP4402219B2 (ja) ビデオ・データ中のフラッシュ・フレームの検出および符号化
US20060239563A1 (en) Method and device for compressed domain video editing
JP2009524328A (ja) ビデオストリーム信号におけるフレームデータの置換
JP2008109637A (ja) 動画像符号化装置及びその方法
US20070098072A1 (en) Command packet system and method supporting improved trick mode performance in video decoding systems
KR20140005089A (ko) 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 방법 및 동화상 복호 방법
JP2015171114A (ja) 動画像符号化装置
JP2006203910A (ja) 同期化イーサネット(登録商標)システムにおいてジッターなしにデータを伝送する方法
US7333711B2 (en) Data distribution apparatus and method, and data distribution system
US8904426B2 (en) Preconditioning ad content for digital program insertion
JP2008167061A (ja) 符号化装置及び符号化方法
JP2009296286A (ja) ビットレート変換装置及び変換方法
US20050078756A1 (en) Encoding apparatus and encoding method
KR20220070268A (ko) 네트워크 전송 중 타겟 프레임 속도를 제공하기 위한 비디오 프레임의 선택적 다중 인스턴스 인코딩
US8503805B2 (en) Method and apparatus for encoding and decoding image adaptive to buffer status
JP6872538B2 (ja) メディア伝送システムにおけるビデオビットストリームのランダムアクセス及び再生方法
CN115460458B (zh) 视频丢帧方法和设备
JPH10304311A (ja) 映像符号化装置及び映像復号化装置
JP4723486B2 (ja) グループオブピクチャへのランダム・アクセスを提供するためのグループオブピクチャの再構造化方法
JP5678807B2 (ja) 映像・音声データ処理装置およびデータ多重化方法
JP2008067179A (ja) 受信装置および符号化データ再生方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521940

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150