JP5720691B2 - 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム - Google Patents

動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム Download PDF

Info

Publication number
JP5720691B2
JP5720691B2 JP2012536233A JP2012536233A JP5720691B2 JP 5720691 B2 JP5720691 B2 JP 5720691B2 JP 2012536233 A JP2012536233 A JP 2012536233A JP 2012536233 A JP2012536233 A JP 2012536233A JP 5720691 B2 JP5720691 B2 JP 5720691B2
Authority
JP
Japan
Prior art keywords
group
block
bit
picture
decoding
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
JP2012536233A
Other languages
English (en)
Other versions
JPWO2012042916A1 (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 JP2012536233A priority Critical patent/JP5720691B2/ja
Publication of JPWO2012042916A1 publication Critical patent/JPWO2012042916A1/ja
Application granted granted Critical
Publication of JP5720691B2 publication Critical patent/JP5720691B2/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/46Embedding additional information in the video signal during the compression process
    • 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
    • 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/124Quantisation

Description

本発明は、例えば、各ピクチャを複数のブロックに分割してブロックごとに符号化する動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラムに関する。
近年の動画像符号化においては、各ピクチャは圧縮効率の異なる符号化のモードの何れかに従って符号化される。例えば、各ピクチャは、ピクチャ内予測のみを用いて符号化される画面内予測ピクチャ(Iピクチャ)と、ピクチャ間予測を用いる片方向予測ピクチャ(P ピクチャ)と、双方向予測ピクチャ(Bピクチャ)の何れかに従って符号化される。ピクチャのタイプまたは画像の複雑さに応じて発生する符号量が異なり、各時刻で発生する符号量に偏りが発生することになる。このため、一定の伝送レートで符号化された動画像を含むデータストリームを伝送するためには、ストリームの送信バッファと、受信バッファが必要となる。このバッファによりバッファ遅延が発生することが、動画像復号装置における表示遅延の1つの要因となっている。バッファのサイズを小さくすれば、ピクチャ間での符号量配分の自由度が減少するため、動画像復号装置は、画質が劣化する傾向にあるもののバッファ遅延を減少させることができる。
従来の動画像符号化の国際標準であるMPEG-2 Video(ISO・IEC 13818-2 / ITU-T H.262、以下MPEG-2とする)またはMPEG-4 AVC / H.264 (ISO・IEC 14496-10 / ITU-T H.264、以下H.264とする)では、それぞれVideo Buffering Verifier(VBV)とCoded Picture Buffer(CPB)と呼ばれる、理想復号装置におけるストリーム受信バッファの動作を規定している。動画像符号化装置は、理想復号装置の受信バッファを、オーバーフロー及びアンダーフローさせないように、符号量を制御しなければならない。理想復号装置は、復号処理に要する時間が0である瞬時復号を行うと規定されている。例えば、特許文献1にVBVに関する動画像符号化装置の制御方法が開示されている。
特開平3−148981号公報
MPEG-2 Test Model 5. April 1993.ISO-IEC/JTC1/SC29/WG11/N0400 ( http://www.mpeg.org/MPEG/MSSG/tm5/ ) JCTVC-A116, "Description of video coding technology proposal by Fraunhofer HHI", Joint Collaborative Team on Video Coding of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, April 2010
動画像符号化装置は、理想復号装置の受信バッファにオーバーフロー及びアンダーフローを起こさせないために、理想復号装置が、あるピクチャを復号する時刻に、そのピクチャのデータが受信バッファに揃っていることを保証するように符号量を制御する。
受信バッファのアンダーフローとは、動画像符号化装置が一定の伝送レートでデータストリームを送信した場合に、各ピクチャの符号量が多く、動画像復号装置が復号・表示するべき時刻までにピクチャを復号するのに必要なデータの伝送が完了せず、復号受信バッファ内に必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことが出来ないため、フレームスキップが発生することとなる。
動画像復号装置は、受信バッファのアンダーフローを起こさずに復号処理できるように、ストリームを受信時刻から所定の時間だけ遅延させてからピクチャを表示する。
上述したように、理想復号装置では、処理時間0で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのi番目ピクチャの入力時刻をt(i)、理想復号装置における、i番目ピクチャの復号時刻をdt(i)とすれば、そのピクチャが表示可能となる時刻は、同様にdt(i)となる。全てのピクチャにおいてピクチャの表示期間{t(i+1)-t(i)}と{dt(i+1)-dt(i)}が等しくなるので、復号時刻dt(i)は、入力時刻t(i)から固定時間dly分だけ遅延させた時刻{dt(i)=t(i)+dly}となる。従って、動画像符号化装置は、時刻dt(i)までに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。
図1を参照しつつ、従来の受信バッファの様子を説明する。図1において横軸は時刻を表し、縦軸は受信バッファのバッファ占有量を表す。そして実線のグラフ100は、各時刻におけるバッファ占有量を表す。
受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから引き抜かれる。i番目ピクチャのデータが、時刻at(i)から受信バッファに入力開始され、i番目ピクチャの最後のデータが時刻ft(i)に入力される。理想復号装置は時刻dt(i)でi番目ピクチャの復号を完了し、その時刻dt(i)においてi番目ピクチャが表示可能となる。
理想復号装置が瞬時復号である一方で、実際の動画像復号装置は所定の復号処理時間を必要とし、一般には1ピクチャの復号処理時間は、ピクチャの表示期間よりも短いが、ピクチャの表示期間に近い時間が必要となる。時刻at(i)からft(i)までi番目ピクチャのデータが受信バッファに入力されるが、各ブロックの復号に必要なデータがat(i)からft(i)内のどの時刻に到着するか保証されない。そのため、実際の動画像復号装置は、時刻ft(i)からi番目ピクチャの復号処理を開始することとなる。従って、1ピクチャの復号処理に必要な最悪の処理時間をctとすれば、実際の動画像復号装置は時刻ft(i)+ctにしか復号処理を完了することが保証できない。
動画像符号化装置が保証しているのは、時刻dt(i)までに、そのピクチャの復号に必要なデータが復号受信バッファに到着していること、すなわち、ft(i)がdt(i)以前となることである。そのため、ft(i)が最も遅くなる場合、ft(i)はdt(i)と等しくなる。このとき、復号処理が完了することが保証される時刻は、dt(i)+ctとなる。表示するピクチャの間隔が一定となるよう、全てのピクチャを表示するには、動画像復号装置は、各ピクチャの表示時刻を理想復号装置よりも少なくともctだけ遅延させなければならない。
そこで本明細書は、復号処理の遅延を低減する動画像符号化装置及び動画像符号化方法を提供することを目的とする。
一つの実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置が提供される。この動画像符号化装置は、複数のグループのうち、各ブロックの属するグループを決定するグループ決定部と、グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、各ブロックの属するグループを表すグループ情報を出力データに付加するグループ情報付加部と、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、復号時刻情報算出部で算出されたそのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御する符号量制御部と、符号量の制御情報に基づいて各ブロックを符号化する符号化処理部とを有する。
また他の実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法が提供される。この動画像符号化方法は、複数のグループのうち、各ブロックの属するグループを決定し、グループ毎に復号時刻を算出し、各ブロックの属するグループを表すグループ情報を出力データに付加し、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御し、符号量の制御情報に基づいて各ブロックを符号化することを含む。
さらに他の実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化用コンピュータプログラムが提供される。この動画像符号化用コンピュータプログラムは、複数のグループのうち、各ブロックの属するグループを決定し、グループ毎に復号時刻を算出し、各ブロックの属するグループを表すグループ情報を出力データに付加し、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御し、符号量の制御情報に基づいて各ブロックを符号化することをコンピュータに実現させる命令を含む。
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
本明細書に開示された動画像符号化装置及び動画像符号化方法は、復号処理の遅延を低減できる。
図1は、従来技術による受信バッファのバッファ占有量の遷移を示す図である。 図2は、一つの実施形態による、動画像符号化装置の概略構成図である。 図3は、一つの実施形態による動画像符号化装置により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。 図4は、最初のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。 図5は、一つの実施形態による動画像符号化処理の動作フローチャートを示す図である。 図6は、第1の実施形態によるブロックの最終ビットの説明図である。 図7は、第2の実施形態によるブロックの最終ビットの説明図である。 図8(A)は、第3の実施形態による一つのブロックの圧縮データの構造を示す図である。図8(B)は、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。 図9(A)は、第3の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(1)である。 図9(B)は、第3の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(2)である。 図9(C)は、第3の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(3)である。 図10は、第4の実施形態による可変長符号化部が有するエントロピー符号化部の概略構成図である。 図11は、第4の実施形態によるブロックの最終ビットの説明図である。 図12は、第4の実施形態による可変長符号化部のビン符号化部及び多重化部の挙動の説明図である。 図13(A)は、第4の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(1)である。 図13(B)は、第4の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(2)である。 図13(C)は、第4の実施形態による可変長符号化部により可変長符号化されたブロックの最終ビット位置を導出するフローチャート(3)である。
以下、図を参照しつつ、一つの実施形態による動画像符号化装置について説明する。
図2は、一つの実施形態による、動画像符号化装置の概略構成図である。動画像符号化装置10は、符号化処理部11と、符号量制御部12と、グループ決定部13と、グループ復号時刻情報算出部14と、グループ情報付加部15と、ビットカウンタ25とを有する。動画像符号化装置10が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置10に実装される。あるいは、動画像符号化装置10が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置10に実装されてもよい。あるいはまた、動画像符号化装置10が有するこれらの各部は、動画像符号化装置10が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。
動画像データに含まれる符号化対象ピクチャは、図示しない制御部によりブロック単位に分割され、ブロックごとに符号化処理部11に入力される。各ブロックは、例えば、16×16画素を有する。
各ブロックは直交変換部21に入力される。そして直交変換部21は、各ブロックに対して、それぞれ、例えば離散コサイン変換(Discrete Cosine Transform、DCT)などの直交変換処理を行って周波数係数の組を算出する。算出された周波数係数の組は量子化部22に入力される。なお、各ブロックに対して、既に符号化されたピクチャを動き補償することなどにより予測画像が生成される場合には、各ブロックと予測画像間の差分演算により求められる予測誤差画像が直交変換部21に入力されてもよい。
なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
また、符号化された動画像は、カラー動画像であってもよく、あるいは、モノクロ動画像であってもよい。
量子化部22は、例えば、符号量制御部12の量子化値算出部24により算出された量子化値に応じて決定される量子化スケールで各周波数係数を除算することにより、各周波数係数を量子化する。この量子化により、各周波数係数の情報が削減される。量子化値が大きくなるほど、量子化の精度が悪くなり、各周波数係数の情報が大きく削減される。
量子化部22により量子化された各周波数係数は、可変長符号化部23に入力される。また量子化された各周波数係数は、以降に符号化されるピクチャまたはブロックに対する予測画像を作成するために逆量子化され、さらに逆直交変換されて図示しない画像メモリに記憶されてもよい。
可変長符号化部23は、ブロックの圧縮データ(量子化された各周波数係数、及び符号化モード等のブロックヘッダ情報を含む)を可変長符号化する。そして可変長符号化部23は、その可変長符号で表されるビット系列を出力データストリームに含める。
また、可変長符号化部23にて発生したビット系列のビット量はブロックごとにビットカウンタ25にて加算され、発生符号量として符号量制御部12のバッファ占有量算出部26に通知される。
可変長符号化部23の実施形態の詳細については後述する。
グループ決定部13は、符号化処理中のブロックの属するグループを、図示しない制御部から受け取ったブロックカウント情報に基づいて所定方法に従って決定する。ブロックカウント情報は、ピクチャに含まれる各ブロックの番号を表す情報であり、例えば、ピクチャの左上端のブロックに対する番号が1に設定され、ラスタスキャン順に従って各ブロックに番号が割り当てられる。そしてピクチャの右下端のブロックに対して、最大の番号が割り当てられる。なお、ブロックカウント情報は、他の順序に従って各ブロックに割り当てられた番号を含んでもよい。
グループ決定部13は、グループごとの復号処理時間を均等化するために、各グループに含まれるブロックの数が出来る限り等しくなるように複数のグループを決定することが好ましい。例えば、グループ決定部13は、ブロックライン単位で各ブロックをグループに分割すれば、任意のピクチャサイズにおいて各グループに含まれるブロックの数を等しくすることができる。例えば、ピクチャサイズが、高精細度テレビジョン放送(High Definition Television、HDTV)相当の1920画素×1088画素であり、ブロックサイズが16画素×16画素であれば、ブロックライン数は68である。したがって、この場合、符号化対象ピクチャに含まれる各ブロックは、68個のグループの何れかに分類される。
なお、グループに含まれるブロックの数は、1から画面全体のブロック数までの間の値にしてもよい。
グループ決定部13は、符号化対象ブロックが属するグループの識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。
以下、符号化対象ピクチャに含まれる水平方向のブロック数をM、垂直方向のブロック数をNとして、全ブロックを1ブロックライン単位でN個のグループに等分割した場合を例に説明する。
グループ復号時刻情報算出部14は、符号化対象ピクチャが符号化順に沿ってi番目のピクチャであるとして、i番目ピクチャの入力時刻t(i)から所定の遅延時間dly分遅延させたそのピクチャの復号時刻dt(i){=t(i)+dly}に基づいて、n番目のグループが復号される時刻を表す復号時刻dgt(i,n)を算出する。または、グループ復号時刻情報算出部14は、復号時刻として、dgt(i,n)の代わりに、dgt(i,n)と等価な{dgt(i,n)-dgt(i,n-1)}を算出してもよい。また、グループ復号時刻情報算出部14は、復号時刻を、適当な単位、例えば、1/90000秒単位の倍数となるように丸めてもよい。
グループ復号時刻情報算出部14は、例えば、各グループの復号時刻を、各グループの復号処理に要する時間を均等とするために、1ピクチャ当たりの復号処理に要する時間をグループ数Nで等分割するように決定する。この場合、n番目(n=1,2,...,N)のグループの復号時刻は、次式に従って算出される。
Figure 0005720691
また、復号処理に要する時間は、グループごとに均等でなくてもよい。特に、グループ復号時刻情報算出部14は、次式のように、最初に符号化・復号されるグループに対応する復号時刻dgt(i,1)のみ、1ピクチャ当たりの復号処理に要する時間を等分割した場合の復号時刻よりも遅らせてもよい。
Figure 0005720691
なお、dt(i)、dt(i-1)は、それぞれ、i番目のピクチャ及び(i-1)番目のピクチャの復号時刻である。
さらにグループ復号時刻情報算出部14は、2番目以降に符号化・復号されるグループの復号時刻dgt(i,n)(n≧2)を、次式のように決定してもよい。
Figure 0005720691
このように復号時刻を決定することで、グループ復号時刻情報算出部14は、バッファ占有量算出部26にて算出されるバッファ占有量を最初のグループの符号化処理開始前に大きくすることができる。その結果、符号量制御における自由度が向上する。
グループ復号時刻情報算出部14は、各グループの復号時刻を含む復号時刻情報を、バッファ占有量算出部26及びグループ情報付加部15へ出力する。
バッファ占有量算出部26は、理想復号装置のストリーム受信バッファのバッファ占有量の推定値を計算する。伝送するビットレートをRとし、バッファ占有量をdで表す。符号化処理中のブロックの可変長符号化処理が完了し、その発生符号量がbであった場合、bがビットカウンタ25からバッファ占有量算出部26へ通知される。そしてバッファ占有量算出部26は、dからbを減算する。
バッファ占有量算出部26は、各グループの最後のブロックの符号化処理が行われた後に、次式に従ってバッファ占有量dを回復させる。
Figure 0005720691
バッファ占有量算出部26は、一つのブロックについての可変長符号化処理が終了する度に、求めたバッファ占有量dを量子化値算出部24へ通知する。
量子化値算出部24は、バッファ占有量に基づいて、各ブロックに対する量子化値を算出する。その際、量子化値算出部24は、グループに含まれる全てのブロックの発生符号量の合計が、そのグループの最初のブロックの符号化処理を開始する直前のバッファ占有量d以下となるように、すなわち、符号化処理中にdが負値とならないように量子化値を制御する。
量子化値算出部24は、例えば、MPEG-2における標準化団体参照ソフトウェアTest Model5(非特許文献1を参照)における量子化値算出方法に従って量子化値を算出する。次に、量子化値算出部24は、バッファ占有量dを所定の閾値DTH1と比較する。量子化値をその取り得る値の範囲のうちの最大値としたときに、各ブロックで発生する最大の符号量をb0、符号化処理中のブロックの属するグループで、まだ符号化処理を行っていないブロックの数をM0とすると、閾値DTH1は、次式で表される。
Figure 0005720691
(5)式におけるoffsetはマージン項である。dと閾値DTH1を比較した結果、dがDTH1よりも小さければ、量子化値算出部24は、量子化値を最大値とする。
またb0として、周波数係数を全て0としたときのブロックの符号量を用いてもよい。このとき、dがDTH1よりも小さければ、量子化値算出部24は、符号化対象ブロックの全ての周波数係数が0に量子化されるように量子化値を決定する。この制御により、グループ内の符号化処理が済んでいない残りブロックの符号量の平均値がb0を超えなければ、仮想的な復号受信バッファはアンダーフローしない。
これにより、符号量制御部12は、動画像符号化装置10からの出力ストリームを実際に所定のレートRに従って動画像復号装置へ伝送すれば、動画像復号装置の受信バッファがアンダーフローしないように動画像データの符号量を制御することが可能となる。
量子化値算出部24は、求めた量子化値を量子化部22へ通知する。
動画像符号化装置10は、動画像復号装置と、各ブロックが属するグループ及びグループごとの復号時刻を共有するために、少なくとも、各グループに属するブロックを表すグループ情報及び各グループの復号時刻を含む復号時刻情報を出力データストリームに付加する。そして動画像符号化装置10は、グループ情報及び復号時刻情報を動画像復号装置へ通知する。
そこで、グループ情報付加部15は、例えば、グループ情報を、各ピクチャ、もしくは所定のピクチャ間隔で、出力データストリームのヘッダ情報に付加する。
ヘッダ情報は、例えば、MPEG-2に規定される、シーケンスヘッダー(Sequence Header)、またはH.264に規定されるシーケンスパラメータセット(Sequence Parameter Set)若しくはSupplemental Enhancement Informationとすることができる。なお、グループごとの復号時刻は、MPEG-2に規定されるピクチャヘッダー(Picture Header)、またはH.264に規定されるスライスヘッダー(Slice Header)など、各ピクチャに必ず付随されるヘッダ情報に付加されてもよい。
各グループに含まれるブロックの数が等しくなるようにグループが決定されている場合、動画像符号化装置10は動画像復号装置へ全ブロックがN個のグループに等分割されたことを通知する。そのために、グループ決定部13からグループ情報付加部15に、グループ情報としてグループ数Nが通知される。グループ情報付加部15は、そのグループ情報を符号化する。MPEG-2及びH.264では、マクロブロックと呼ばれる16x16画素のブロック単位で符号化が行われており、このブロック数は通常20bitで表現可能な範囲を超えない。グループの数Nの最大値は、せいぜいブロック数の最大値と等しいことから、Nの符号化も固定bit長で符号化すればよい。
また、各グループに含まれるブロックの数が等しいと限られない場合、グループ決定部13からグループ情報付加部15に対して、グループ数Nとともに、各グループの先頭ブロックのインデックス情報がグループ情報として通知される。グループ情報付加部15はまず、グループ数Nを符号化し、順次各グループの先頭ブロックのインデックス情報を符号化する。先頭ブロックのインデックス情報に対する符号化方法も、例えば、固定bit長の符号化方式が用いられる。また、グループ情報付加部15は、グループ数N及び各グループの先頭ブロックのインデックス情報を符号化するために、ハフマン符号といった可変長符号化方式など、他の符号化方式を用いてもよい。
また、グループごとの復号時刻が、グループ復号時刻情報算出部14からグループ情報付加部15に通知される。その際、1番目のグループから最後のグループであるN番目のグループまで、復号時刻は、dgt(i,n)-dgt(i,n-1)と差分値の形式にしてグループ復号時刻情報算出部14からグループ情報付加部15に通知される。なお、第1のグループの復号時刻に関して、dgt(i,0)は、直前のピクチャの最後のグループの復号時刻dgt(i-1,N){=dt(i-1)}に設定される。グループ情報付加部15は、各グループの復号時刻を符号化し、その符号化された復号時刻を各ピクチャのデータに付加して、動画像復号装置に通知する。グループ情報付加部15は、各差分値を、適当な精度、例えば、1/90000秒の精度で量子化した後に、32bit程度の固定bit長で符号化すればよい。また、ここでは、固定bit長で符号化する例を説明したが、グループ情報付加部15は、各グループの復号時刻を表す差分値を、任意の可変長符号化方式を用いて符号化してもよい。
動画像復号装置は、通知されたグループ数Nと各グループの復号時刻情報に基づき、表示遅延量を算出する。各グループに含まれるブロック数が等しくなるように各グループが設定されている場合、表示遅延量は、1ピクチャの復号処理に必要な最悪の処理時間をctとして、ct/Nとなる。
上記の実施形態による動画像符号化装置10により、動画像復号装置における動画像の復号の低遅延化が図られることを、図3及び図4を参照しつつ説明する。
図3は、動画像符号化装置10により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。また図4は、第1のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。なお、図3及び図4において、横軸は時間を表し、縦軸はバッファ占有量を表す。また、グループ数N=4であるとする。そして図3におけるグラフ300は、バッファ占有量の時間遷移を表す。また矢印301で表される期間は、各グループの復号に要する最大時間ct/Nを表す。同様に、図4におけるグラフ400は、バッファ占有量の時間遷移を表す。
n番目のグループに含まれるブロックを復号するのに必要なデータが、(1)式で表される時刻dgt(i,n)までに受信バッファに到着するように、動画像符号化装置10は各ブロックの符号量を制御する。1ピクチャの復号処理に必要な最悪の処理時間ctと(i-1)番目のピクチャ及びi番目のピクチャの最後のグループの復号時刻dt(i-1){=dgt(i-1,N)}、dt(i){=dgt(i,N)}の間に次式が成り立つ。
Figure 0005720691
ここで、各グループに含まれるブロック数が等しい場合、図3に示すように次式が成り立つので、i番目のピクチャの最後のグループの復号時刻dgt(i,N)までに、i番目のピクチャの1〜(N-1)番目のグループのブロックについての復号処理が完了している。
Figure 0005720691
N番目グループに含まれるブロックの復号に必要なデータが時刻dgt(i,N)に動画像復号装置の受信バッファに到着したとすると、そこからN番目グループの復号処理を開始したとして、復号処理時間としてct/Nが必要となる。そのため、次式で示される時刻に全ブロックの復号が完了し、表示可能となる。従って、理想復号装置に対する表示可能時刻の遅延が、ctからct/Nに短縮する。
Figure 0005720691
グループ単位で復号時刻を算出する場合、i番目のピクチャの第1のグループの復号時刻dgt(i,1)は、i番目のピクチャの復号時刻dt(i)と比較して、{dt(i)-dt(i-1)}(N-1)/Nだけ、早くなる。そのため、図1および図3の点線302にて示される1ピクチャ単位のバッファ占有量が示すとおり、従来技術と比較して受信バッファの占有量が低下し、そのグループに使用可能な符号量が減少するとともに、グループ間での符号量の配分の自由度が減少する。図1のように受信バッファに各ピクチャのデータが入力されてから、1ピクチャの表示期間程度で、各ピクチャが復号されるような低遅延においては、バッファ占有量が小さくなるので、相対的にバッファ占有量が減少する影響が大きくなる。
このような問題を回避するために、バッファ占有量を回復させることを目的として、(2)式で示すように第1のグループの復号時刻を遅くすることが好ましい。第1のグループの復号時刻を遅らせることで、図4に示すとおり、バッファに伝送可能なビット量が増えて、従って、ピクチャの発生符号量の自由度を向上させることが出来る。このとき、最も遅い復号完了時刻は、次式で算出される値となる。
Figure 0005720691
なお、関数min(x,y)は、変数x、yのうち、小さい方の値を返す関数である。
(9)式を(8)式と比較すると、第1のグループの復号時刻を遅らせても、ctが大きい動画像復号装置については、第1のグループの復号時刻を遅らせない場合に対して遅延が増加するものの、ctが十分短い動画像復号装置においては、遅延は増加しないことがわかる。
図5は、一つの実施形態による動画像符号化装置10により実行される動画像符号化処理の動作フローチャートである。動画像符号化装置10は、ピクチャごとに、以下の動画像符号化処理を実行する。
グループ決定部13は、各ブロックの属するグループを決定する(ステップS101)。そしてグループ決定部13は、ブロックの属するグループを表す識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。
次に、グループ復号時刻情報算出部14は、グループ毎に復号時刻を算出する(ステップS102)。そしてグループ復号時刻情報算出部14は、各グループの復号時刻を表す情報をバッファ占有量算出部26及びグループ情報付加部15へ通知する。
また、グループ情報付加部15は、各ブロックの属するグループを表すグループ情報及び復号時刻情報を符号化し、その符号化されたグループ情報及び復号時刻情報を出力データストリームに付加する(ステップS103)。
一方、バッファ占有量算出部26は、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合における、各グループの復号時刻における受信バッファのバッファ占有量を推定する(ステップS104)。その際、バッファ占有量算出部26は、ビットカウンタ25から受け取った、それまでに符号化されたグループ内のブロックの符号量を参照する。そしてバッファ占有量算出部26は、推定したバッファ占有量を符号量制御部12の量子化値算出部24へ通知する。量子化値算出部24は、各グループの復号時刻までに各グループの全てのデータが動画像復号装置のストリーム受信バッファに到達するように、各グループに属するブロックの符号量を制御する(ステップS105)。そして量子化値算出部24は、その符号量に応じた量子化値を符号量の制御情報として算出し、その量子化値を符号化処理部11の量子化部22へ通知する。
符号化処理部11の直交変換部21は、各ブロックごとに直交変換処理を行って、各ブロックの周波数係数の組を算出する(ステップS106)。そして直交変換部21は、各ブロックの周波数係数の組を量子化部22へ出力する。
量子化部22は、符号量の制御情報である量子化値に基づいて各ブロックの周波数係数の組を量子化する(ステップS107)。そして量子化部22は、量子化された各周波数係数を符号化処理部11の可変長符号化部23へ出力する。可変長符号化部23は、量子化された各周波数係数を可変長符号化する(ステップS108)。そして可変長符号化部23は、得られた可変長符号を出力する。この可変長符号とグループ情報付加部15からの出力されたグループ情報、復号時刻情報などが出力データストリームに格納される。また可変長符号化部23は、ブロックごとの符号量をビットカウンタ25へ出力する。
ステップS108の後、動画像符号化装置10は、動画像符号化処理を終了する。
以下に、四つの可変長符号化部23の実施形態、及び各実施形態における、グループの最終ビットの定義を説明する。グループの最終ビットは、グループ内の最終ブロックの最終ビットと定義される。
第1の実施形態による可変長符号化部23は、MPEG-4 AVC/H.264に規定されるContext-based Adaptive Variable Length Coding(CAVLC)に準拠して、ブロックの圧縮データを可変長符号化する。
図6は、第1の実施形態による可変長符号化部23により生成された出力データストリームにおける、各ブロックの最終ビットの説明図である。図6において、一番上に示された、一つのブロックの圧縮データ1100は、マクロブロックスキップラン(以下、MbSkipRunと表記する)1110と、マクロブロックレイヤー(以下、MacroblockLayerと表記する)1111とを含み得る。
MbSkipRun1110は、直前のブロックと現在のブロックとの間の、スキップされたブロックの数を表す。従って、MbSkipRun1110が0であれば、直前のブロックと現在のブロックとの間の全てのブロックはスキップされない。またMacroblockLayer1111は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer1111が出力データストリームに含まれないことを意味する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipRun1110は常に0となる。そのため、出力データストリームにMbSkipRun1110は含まれない。
まず、MbSkipRun1110が0の場合のブロック(イントラピクチャ内の全てのブロックを含む)がグループ内の最終ブロックとなる場合について説明する。この場合において、出力データストリーム内のビット列1200には、最終ブロックxの圧縮データに関するビット列1202と、最終ブロックx(xは1以上の整数)より前のブロック(〜(x-1))に対応するビット列全体1201が含まれる。
ビット列1202は、最終ブロックxのMbSkipRun(= 0)及びMacroblockLayerを可変長符号化したビット列である。ビット列1202のうち、Code 0はMbSkipRunを可変長符号化したビット列であり、Code M (M = [1, N[x])は、MacroblockLayerの各要素を可変長符号化したビット列である。N[x]は、最終ブロックxのMacroblockLayerの要素数である。
この例では、最終ブロックxの最終ビットは、矢印1210で示される、ビット列Code N[x]の最終ビットとなる。
次に、MbSkipRunが(L-1)(ただし、(L-1)>0)であり、かつ出力データストリームにおいて次のピクチャヘッダ及びスライスヘッダが出現する前に、後続するブロックのMacroblockLayerが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1300には、スキップされるブロックの直前のブロック(x-L)に関するビット列1301と、スキップされるブロックの直後のブロックxに関するビット列1302が含まれる。そしてビット列1301は、ブロック(x-L)のMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。同様に、ビット列1302は、ブロックxのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。ビット列1302に含まれるMbSkipRunに相当するCode 0は、値(L-1)を可変長符号化したビット列である。
この例では、ブロック(x-L)とブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(x-L+1)〜ブロック(x-1)が存在する。従って、ブロック(x-L+1)〜ブロック(x-1)の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1310で示される、MbSkipRun = (L-1)に相当するコードCode 0の最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印1311で示される、ビット列1302に含まれるCode N[x]の最終ビットとなる。
次に、MbSkipRunが(L-1) (ただし、(L-1)>0)であり、かつ出力データストリームにおいて、同一ピクチャに属する次のスライスヘッダが、後続するブロックのMacroblockLayerよりも先に出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1400には、スキップされるブロックの直前のブロックyに関するビット列1401と、スキップされるブロック(y+1)以降のブロックに対応するMbSkipRunを可変長符号化したビット列1402が含まれる。そしてビット列1401は、ブロックyのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。またビット列1402に含まれるCode 0は、値(L-1)を可変長符号化したビット列である。
さらに、ビット列1400には、スライスの終端を表すビット列(以下、RbspTrailingBitsと表記する)1403と、次のスライスの先頭を表すビット列であるスライスヘッダ(以下、SliceHeaderと表記する)1404とが含まれる。RbspTrailingBits1403は、このRbspTrailingBitsが出現する前のスライスのビット列の終端を表す、予め設定された所定の値を持つビット列である。RbspTrailingBits1403は、動画像復号装置が少なくともRbspTrailingBits1403の先頭のビットを参照することにより、スライスの終端であることが分かるように設定される。またスライスヘッダ1404には、スライス先頭のブロックアドレスを意味するパラメータFirstMbInSliceを含む。この例では、パラメータFirstMbInSliceはzであるとする。
この場合、ブロックyと、次スライスの先頭ブロックzとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(y+1)〜ブロック(y+L-1 (= z-1))が存在する。従って、ブロック(y+1)〜ブロック(y+L-1 (= z-1))の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1410で示される、ビット列RbspTrailingBits1403の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits1403内の先頭ビットよりも後のビットに設定されてもよい。
次に、MbSkipRunが(L-1) (ただし、(L-1)>0)であり、かつ出力データストリームにおいて、別ピクチャに属するスライスヘッダ、もしくはピクチャヘッダが後続するブロックのMacroblockLayerよりも先に出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1500には、スキップされるブロックの直前のブロックyに関するビット列1501と、スキップされるブロック(y+1)以降のブロックに対応するMbSkipRunを可変長符号化したビット列1502が含まれる。そしてビット列1501は、ブロックyのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。またビット列1502に含まれるCode 0は、値(L-1)を可変長符号化したビット列である。
さらに、ビット列1500には、スライスの終端を表すRbspTrailingBits1503と、次のピクチャの先頭を表すピクチャヘッダ1504と、次のスライスの先頭を表すビット列であるSliceHeader1505とが含まれる。この場合、次のスライスの先頭のブロックはピクチャの最初のブロックであるため、SliceHeader1505に含まれるパラメータFirstMbInSliceの値は0となる。
この場合、ブロックy以降、ピクチャの最終ブロック(w-1)まで、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(y+1)〜ブロック(y+L-1(=w-1))が存在する。なおwは、ピクチャ内のブロック総数である。従って、ブロック(y+1)〜ブロック(y+L-1(=w-1))の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1510で示される、ビット列RbspTrailingBits1503の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits1503内の先頭ビットよりも後のビットに設定されてもよい。
次に、第2の実施形態による可変長符号化部23について説明する。第2の実施形態による可変長符号化部23も、MPEG-4 AVC/H.264に規定されるCAVLCに準拠してブロックの圧縮データを可変長符号化する。しかし、第1の実施形態と異なり、この実施形態では、ブロックの圧縮データの構造において、スキップされたブロック数を表現するMbSkipRunの代わりに、個々のブロックがスキップされたことを表すマクロブロックスキップフラグが用いられる。さらに、各ブロックの圧縮データには、そのブロックが分割されたか否かを表すスプリットフラグが付加される。
図7は、第2の実施形態による可変長符号化部23により生成された出力データストリームにおける、各ブロックの最終ビットの説明図である。図7において、一つのブロックの圧縮データ2100は、先頭から順に、スプリットフラグ(以下、MbSplitFlagと表記する)2110と、スキップフラグ(以下、MbSkipFlagと表記する)2111と、MacroblockLayer2112とを含み得る。
MbSplitFlag2110は、現在のブロック(例えば、16画素×16画素のマクロブロック)が4個のサブブロック(例えば、8画素×8画素のブロック)に分割されたか否かを表す。例えば、現在のブロックが分割されている場合には、MbSplitFlag2110は'1'となり、一方、現在のブロックが分割されていない、あるいは、現在のブロックがスキップされていれば、MbSplitFlag2110は'0'となる。
MbSkipFlag2111は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag2111は'1'となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag2111は'0'となる。またMacroblockLayer2112は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer2112が出力データストリームに含まれないことを意味する。
なお、現在のブロックが分割されている場合には、MbSkipFlag2111は'0'とみなされるので、出力データストリーム内でMbSkipFlag2111は省略されてもよい。そしてこの場合、出力データストリームには、MbSplitFlag2110に続いて4個のサブブロックそれぞれの圧縮データが格納される。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag2111は常に'0'となる。そのため、出力データストリームにMbSkipFlag2111は含まれない。
まず、MbSkipFlag2111が'0'の場合のブロック(イントラピクチャ内の全てのブロックを含む)がグループ内の最終ブロックとなる場合について説明する。この場合において、出力データストリーム内のビット列2200には、最終ブロックxの圧縮データに関するビット列2202と、最終ブロックx(xは1以上の整数)より前のブロック(〜(x-1))に対応するビット列全体2201が含まれる。またビット列2202の次のCode0は、ブロック(x+1)の圧縮データに関するビット列を表す。
ビット列2202は、最終ブロックxのMbSplitFlag(= 0)、MbSkipFlag(= 0)及びMacroblockLayerを可変長符号化したビット列である。ビット列2202のうち、SpはMbSplitFlagを可変長符号化したビット列であり、SkはMbSkipFlagを可変長符号化したビット列である。またCode M (M = [1, N[x])は、MacroblockLayerの各要素を可変長符号化したビット列である。N[x]は、最終ブロックxのMacroblockLayerの要素数である。
この例では、最終ブロックxの最終ビットは、矢印2210で示される、ビット列Code N[x]の最終ビットとなる。
次に、値が1のMbSkipFlagを持つブロック、すなわちスキップされるブロックが、(L-1)(ただし、(L-1)>0)個連続した後に、値が'0'のMbSkipFlagを持つブロック、すなわちスキップされないブロックが出現する場合における最終ビットについて説明する。出力データストリーム内のビット列2300には、スキップされないブロック(x-L)の圧縮データに関するビット列2301が含まれる。さらに、ビット列2300には、ビット列2301に続いて、スキップされるブロック(x-L+1)〜ブロック(x-1)のMbSplitFlag(=0)、MbSkipFlag(=1)及びその後のブロックxの圧縮データに関するビット列2302が含まれる。またビット列2302の次のCode 0は、ブロック(x+1)の圧縮データに関するビット列を表す。
この例では、ブロック(x-L)とブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(x-L+1)〜ブロック(x-1)が存在する。従って、ブロック(x-L+p) (p = {1, ..., L-1})の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2310で示される、(L-1)個のMbSkipFlag(=1)コードの内、左からp番目のコードの最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印2311で示される、ビット列2302に含まれるCode N[x]の最終ビットとなる。
次に、値が'1'のMbSkipFlagを持つブロックが(L-1)(ただし、(L-1)>0)個連続した後に、同一ピクチャに属する次のスライスヘッダが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列2400には、スキップされるブロックの直前のブロックyの圧縮データに関するビット列2401が含まれる。さらに、ビット列2400には、ビット列2401に続いて、スキップされるブロック(y+1)以降のブロックに対応するMbSplitFlag(= 0)、MbSkipFlag(= 1)を可変長符号化したビット列2402が含まれる。そしてビット列2401は、ブロックyのMbSplitFlag(= 0)、MbSkipFlag(= 0)及びMacroblockLayerを可変長符号化したビット列である。
さらに、ビット列2400には、スライスの終端を表すRbspTrailingBits2403と、次のスライスの先頭を表すSliceHeader2404とが含まれる。RbspTrailingBits2403は、このRbspTrailingBitsが出現する前のスライスのビット列の終端を表す、予め設定された所定の値を持つビット列である。RbspTrailingBits2403は、動画像復号装置が少なくともRbspTrailingBits2403の先頭のビットを参照することにより、スライスの終端であることが分かるように設定される。またスライスヘッダ2404には、スライス先頭のブロックアドレスを意味するパラメータFirstMbInSliceを含む。この例では、パラメータFirstMbInSliceはzであるとする。
この場合、ブロックyと、次スライスの先頭ブロックzとの間には、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(y+1)〜ブロック(y+L-1(=z-1))が存在する。従って、ブロック(y+p)(p={1, ..., L-2})の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2410で示される、(L-2)個のMbSkipFlag(=1)コードの内、左からp番目のコードの最終ビットとなる。またブロック(z-1)が最終ブロックとなる場合、最終ビットは、矢印2411で示される、ビット列RbspTrailingBits2403の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits2403内の先頭ビットよりも後のビットに設定されてもよい。
次に、値が1のMbSkipFlagを持つブロックが(L-1)(ただし、(L-1)>0)個連続した後に、別ピクチャに属するスライスヘッダ、もしくはピクチャヘッダが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列2500には、スキップされるブロックの直前のブロックyの圧縮データに関するビット列2501が含まれる。さらに、ビット列2500には、ビット列2501に続いて、スキップされるブロック(y+1)以降のブロックに対応するMbSplitFlag(= 0)、MbSkipFlag(= 1)を可変長符号化したビット列2502が含まれる。そしてビット列2501は、ブロックyのMbSplitFlag(= 0)、MbSkipFlag(= 0)及びMacroblockLayerを可変長符号化したビット列である。
さらに、ビット列2500には、スライスの終端を表すRbspTrailingBits2503と、次のピクチャの先頭を表すピクチャヘッダ2504と、次のスライスの先頭を表すビット列であるSliceHeader2505とが含まれる。この場合、次のスライスの先頭のブロックはピクチャの最初のブロックであるため、SliceHeader2505に含まれるパラメータFirstMbInSliceの値は0となる。
この場合、ブロックy以降、ピクチャの最終ブロック(w-1)まで、MacroblockLayerが出力データストリームに含まれない、(L-1)個のブロック(y+1)〜ブロック(y+L-1(=w-1))が存在する。なおwは、ピクチャ内のブロック総数である。従って、ブロック(y+p)(p ={1, ...,L-2})の何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2510で示される、(L-2)個のMbSkipFlag(=1)コードの内、左からp番目のコードの最終ビットとなる。またブロック(w-1)が最終ブロックとなる場合、最終ビットは、矢印2511で示される、ビット列RbspTrailingBits2503の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits2503内の先頭ビットよりも後のビットに設定されてもよい。
この第2の実施形態の変形例によれば、MbSplitFlagは省略されてもよい。MbSplitFlagが省略される場合も、最終ブロックの最終ビットは、図7に関して上述したとおりに決定される。
次に、第3の実施形態による可変長符号化部23について説明する。第3の実施形態による可変長符号化部23は、MPEG-4 AVC/H.264に規定されるContent-based Adaptive Binary Arithmetic Coding(CABAC)に準拠してブロックの圧縮データを可変長符号化する。CABACは、算術符号化処理の一例である。
図8(A)及び図8(B)を参照しつつ、出力データのビットストリームにおける、各ブロックの最終ビットについて説明する。図8(A)は、一つのブロックの圧縮データの構造を示す図である。図8(A)に示されるように、一つのブロックの圧縮データ3100は、先頭から順に、MbSkipFlag3110と、MacroblockLayer3111と、スライスエンドフラグ(以下、EndOfSliceFlagと表記する)3112とを含み得る。
MbSkipFlag3110は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag3110は'1'となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag3110は'0'となる。またMacroblockLayer3111は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer3111が出力データストリームに含まれないことを意味する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag3110は常に'0'となる。そのため、出力データストリームにMbSkipFlag3110は含まれない。
EndOfSliceFlag3112は、現在のブロックがスライスの最終ブロックか否かを表す。例えば、現在のブロックが最終ブロックである場合には、EndOfSliceFlag3112は'1'となり、一方、現在のブロックが最終ブロックでなければ、EndOfSliceFlag3112は'0'となる。
図8(B)は、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。CABACはCAVLCと異なり、圧縮データのビット毎に算術符号化を適用する。そのため、変換されたビット列と変換前の圧縮デ−タとの関係が一対一ではない。変換されたビット列内の一つのビットが、圧縮データの複数のビットに対応することがある。
図8(B)に示されるように、出力データストリームのビット列の一例であるビット列3210は12個のビットを含む。この場合において、ドットの集合3211は、ビット列3210に含まれる各ビットに対応する、ビット列3210を算術復号することにより得られる圧縮データに含まれるビンを表す。ビンとは、圧縮データをバイナリ表現したものであり、各符号語に対応する圧縮データ中のビットまたはビット列である。この例では、ビット列3210はビン0〜ビン7に対応する。そして、ビン0〜ビン2はブロック0に含まれ、ビン3〜ビン5はブロック1に含まれ、ビン6はブロック2に含まれ、ビン7はブロック3に含まれる。ドットの集合3211に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列3210に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン0は、0番目のビットと1番目のビットとを用いて復号される。またビン1は、1番目のビットを用いて復号される。またビン5は、3番目のビットから11番目のビットを用いて復号される。
CABACにより符号化されたブロックの最終ビットは、そのブロックの圧縮データに含まれるビンxの復号に用いられるビット列の最後のビットとなる。ただしビンxは、ブロックの圧縮データを順にバイナリ化した時の最後のビットである。図8(B)に示した例では、ブロック0の最終ビットは、矢印3250で示される、ビット列3210の3番目のビットである。また、ブロック1〜ブロック3の最終ビットは、それぞれ、矢印3251で示される、ビット列3210の11番目のビットである。このように、複数のブロックが共通の最終ビットを持つことがある。
CABACによりブロックが符号化される場合、ブロックの圧縮データのバイナリ化データの最終ビットは常にEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。そのため、ピクチャ内のx番目のブロックの最終ビットは、x番目のEndOfSliceFlagの復号に用いられるビット列内の最後のビットとなる。
図9(A)〜図9(C)は、第3の実施形態による、出力データのビットストリーム中のグループの最終ビットを特定する処理のフローチャートである。動画像符号化装置10の可変長符号化部23は、このフローチャートに従って、出力データのビットストリームにおける、i番目のピクチャのj番目のグループG(i,j)に属する最終ブロックの最終ビットの位置BitEnd(i,j)を導出する。動画像符号化装置10は、BitEnd(i,j)の位置のビットが動画像符号化装置10の送信バッファに入力された時に、グループG(i,j)を復号するために必要な全てのビットが動画像符号化装置10の送信バッファに入力されたと判断する。
このフローチャートは、i番目のピクチャのヘッダ(ピクチャヘッダ及びスライスヘッダ)が符号化された直後から開始される。そして先ず、可変長符号化部23は、変数j、m、cを初期化する(ステップS201)。変数j、m、cは、それぞれ、ピクチャ内のグループのインデックス、ピクチャ内のブロックのインデックス、キャリー数を表す。なお、キャリー数cについては後述する。
次に、可変長符号化部23は、インデックスmのブロックの圧縮処理、圧縮データのバイナリ化及びコンテキストモデル化を行うことにより、算術符号化処理(MPEG-4 AVC/H.264に規定されるEncodingDecision()に対応)の対象のビンの配列B[]を取得する(ステップS202)。なお、上記の圧縮処理は、ブロックがスライスの最終ブロックであるか否かを示すEndOfSliceFlagを除外する処理である。ここで、ブロックmの算術符号化処理対象のビンの総数はgetNumBins(m)として表現される。可変長符号化部23は、処理対象のビンのインデックスb0を0に設定し、またブロックmの最終ビンのインデックスb1をgetNumBins(m)に設定する。
可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pを取得する(ステップS203)。そして可変長符号化部23は、b0番目のビンを算術符号化する(ステップS204)。これにより、例えば、0ビットから7ビットの間で、新たな生成ビットがビットストリームの最後に付加される。そして可変長符号化部23は、b0番目のビンの算術符号化処理後のビットストリームの最終ビット位置qを取得する(ステップS205)。
ステップS205の後、可変長符号化部23は、キャリー数cが1以上か否か判定する(ステップS206)。キャリー数cは、あるグループの最後のブロックのEndOfSliceFlagを算術符号化処理した時に、新たなビットがビットストリームに追加されなかった場合に1増加する数である。即ち、キャリー数cが1以上の値を持つ場合、キャリー数cは、グループx(x = j-1, .., j-c)の復号処理に必要な全ビットがビットストリームとして出力されていないことを意味する。
キャリー数cが1以上であれば(ステップS206−Yes)、可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pをb0番目のビンを算術符号化した後のビットストリームの最終ビット位置qと比較する(ステップS207)。
ビット位置pがビット位置qと異なる場合(ステップS207−Yes)、b0番目のビンの算術符号化処理により新たなビットが生成される。この場合には、b0番目のビン、及びそれ以前に算術符号化処理されたものの、ビットストリームとして出力されなかった、グループx (x = j-1, .., j-c)の最後のブロックのEndOfSliceFlagに相当するビットがビットストリームとして出力されている。即ちグループxの復号に必要な全ビットがqの位置で出力されている。可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定する(ステップS208)。なお、ステップS208の処理の詳細については後述する。
この時点で、インデックスがjよりも小さい全てのグループについて、復号処理に必要な全ビットがビットストリームとして出力されている。そこで、可変長符号化部23は、キャリー数cを0にリセットする(ステップS209)。
ステップS209の後、可変長符号化部23は、算術符号化処理対象のビン配列B[]内の全てのビンを処理したかどうか、すなわち、b0がb1と等しいか否か判断する(ステップS210)。b0がb1未満である場合(ステップS210−No)、可変長符号化部23は、b0を1インクリメントした後、ステップS203以降の処理を繰り返す。そして可変長符号化部23は、ビン配列B[]内の残りのビンの処理を行う。一方、b0がb1と等しい場合(ステップS210−Yes)、可変長符号化部23は、b0を1インクリメントした後、ステップS211以降の処理を実行する。なお、b0がb1未満であっても、b1と等しくても、b0は、b1との比較の後で1だけ増加するが、b0がb1と等しい場合は後でステップS202にてb0は0にリセットされる。
また、ステップS206においてキャリー数cが0であれば(ステップS206−No)、可変長符号化部23は、ステップS207〜S209の処理を行わずに、ステップS210の処理を実行する。さらに、ステップS207において、ビット位置pがビット位置qと等しい場合(ステップS207−No)、b0番目のビンを算術符号化することにより新たなビットが生成されていない。この場合も、可変長符号化部23は、ステップS208〜S209の処理を行わずにステップS210の処理を実行する。
図9(B)に示されるように、可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pを取得する(ステップS211)。そして可変長符号化部23は、EndOfSliceFlagを算術符号化し(ステップS212)、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qを取得する(ステップS213)。
可変長符号化部23は、キャリー数cが1以上か否か、かつ、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pとEndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとが異なるか否か判定する(ステップS214)。キャリー数cが1以上、かつ、最終ビット位置pと最終ビット位置qとが異なる場合(ステップS214−Yes)、グループx (x = j-1, ..,j-c)の最後のブロックのEndOfSliceFlagがビットストリームとして出力されている。即ち、グループxを復号するのに必要な全ビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定し(ステップS215)、その後キャリー数cを0にリセットする(ステップS216)。
ステップS216の後、あるいはステップS214にてキャリー数cが0または最終ビット位置pが最終ビット位置qと等しい場合(ステップS214−No)、可変長符号化部23は、現在のブロックmがグループjの最終ブロックか否か判定する(ステップS217)。なお、getLastBlock(j)は、グループjの最後のブロックのインデックスを表す。現在のブロックmがグループjの最終ブロックでない場合(ステップS217−No)、グループj内に未処理のブロックがある。そこで可変長符号化部23は、mを1インクリメントした後、ステップS202以降の処理を繰り返す。
一方、ブロックmがグループjの最終ブロックである場合(ステップS217−Yes)、可変長符号化部23は、mを1インクリメントする。そして可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとを比較する(ステップS218)。
最終ビット位置pが最終ビット位置qと異なる場合(ステップS218−Yes)、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定し(ステップS219)、さらにグループのインデックスjを1インクリメントする(ステップS220)。
一方、最終ビット位置pが最終ビット位置qと等しい場合(ステップS218−No)、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントする(ステップS221)。
ステップS220またはステップS221の処理後に、可変長符号化部23は、現在のブロックmがピクチャ内の最終ブロックであるか否かを判定する(ステップS222)。なお、getNumBlockInPic()は、ピクチャ内の総ブロック数を表す。
現在のブロックmがピクチャ内の最終ブロックでなければ(ステップS222−No)、ピクチャ内に未処理のブロックがあるので、可変長符号化部23は、ステップS202以降の処理を繰り返す。一方、現在のブロックmがピクチャ内の最終ブロックであれば(ステップS222−Yes)、可変長符号化部23は、1ピクチャの全てのブロックの符号化を完了したので、最終ビット特定処理を終了する。
図9(C)を参照しつつ、ステップS208、S215及びS219で行われる最終ビット位置の設定処理のフローを説明する。
可変長符号化部23は、i番目のピクチャの(j-c)番目のグループを復号するのに必要なビット列の最終ビット位置BitEnd(i,(j-c))をqに設定する(ステップS250)。その後、可変長符号化部23は、キャリー数cが0以下か否かを判定する(ステップS251)。キャリー数cが0より大きい場合(ステップS251−No)、最終ビット位置BitEnd()を設定する必要のあるグループがまだ残っている。そこで可変長符号化部23は、キャリー数cを1だけ減算し、その後再度ステップS250の処理を実行する。一方、キャリー数cが0以下である場合(ステップS251−Yes)、最終ビット位置BitEnd()を設定する必要のあるグループは無い。そのため、可変長符号化部23は、最終ビット位置の設定処理を終了する。
次に、第4の実施形態による可変長符号化部23について説明する。第4の実施形態による可変長符号化部23は、非特許文献2に開示された手法に従ってブロックの圧縮データを可変長符号化する。
非特許文献2に開示された手法は、基本的にCABACと同様に算術符号化技術を用いる。しかし、この手法では、バイナリ化された圧縮データを1ビットずつ算術符号化する代わりに、バイナリ化された圧縮データの各ビットの推定確率に基づく複数個の算術符号化部が用いられる。各算術符号化部には、それぞれ別個の推定確率が割り当てられ、バイナリ化された圧縮データの各ビットは、その推定確率に対応する算術符号化部において算術符号化される。
この手法では、各算術符号化部は、固定の推定確率のビット列を処理するため、実際には、算術符号化演算を行う代わりに、入力されるnビットをmビットの出力にマッピングすることで、圧縮データを可変長符号化してもよい。なお、m、nは、それぞれ1以上の整数である。本明細書では、便宜上、出力されるmビットをワードと呼ぶ。可変長符号化された圧縮データは、出力データのビットストリームにワード単位で出力される。
非特許文献2に開示された手法では、CABACと同様に、変換されたビット列と変換前の圧縮デ−タとの関係が一対一ではない。また、先に算術符号化部に入力されたビンに相当するワードが、そのビンよりも後に算術符号化部に入力されたビンに相当するワードよりも後に出力データのビットストリームに出現することもある。
図10は、第4の実施形態による可変長符号化部23が有するエントロピー符号化部700の概略構成図である。エントロピー符号化部700は、入力されたブロックの圧縮データをエントロピー符号化し、その結果得られたストリームを出力する。そのためにエントロピー符号化部700は、バイナリ化部701と、コンテキストモデル化部702と、確率量子化部703と、K個のビン符号化部704−1〜704−k(ただしKは2以上の整数)と、多重化部705とを有する。
バイナリ化部701は、入力されたブロックの圧縮データに含まれる各シンボルをバイナリ化し、各シンボルをビット列で表す。そのために、バイナリ化部701は、例えば、MPEG-4 AVC/H.264に準拠して、各シンボルをバイナリ化する。例えば、I-Slice内のマクロブロック種別mbTypeが4x4イントラ予測、もしくは8x8イントラ予測を表すシンボル"INxN"である場合、そのシンボルは'0'で表される。また、ブロック種別mbTypeがPCM符号化を表すシンボル"IPCM"である場合には、そのシンボルは'11'で表される。バイナリ化部701から出力されたビット列は、コンテキストモデル化部702に入力される。
コンテキストモデル化部702は、バイナリ化部701から入力されたビット列の各ビットに対し、個々にコンテキストを割り当てる。コンテキストは、例えば、周囲ブロックのブロックの圧縮データから決定される。そして、エントロピー符号化しようとするブロックの圧縮データが周囲ブロックの圧縮データと類似している場合とそうでない場合とで、異なるコンテキストが用いられることにより、算術符号化の効率が向上する。コンテキストモデル化部702は、ビット列のビット毎に、その値(0または1)と、決定されたコンテキストのLeast Probable bit(LPB)、及びLPB確率を出力し、出力されたビット、LPB及びLPB確率は確率量子化部703に入力される。LPBは、過去にそのコンテキストとペアとなってコンテキストモデル化部702から出力されたビット列の各ビットにおける、出現頻度の小さい方の値を表す。またLPB確率は、LPBの発生確率を表す。例えば、過去のビット列に含まれる10個のビットが[0,0,0,1,1,1,1,1,1,1]の場合、LPBは0であり、LPB確率は0.3になる。
確率量子化部703は、コンテキストモデル化部702から出力された各ビットのLPB確率をそれぞれ量子化する。例えば、確率量子化部703は、0から1の連続する確率値を、K個の離散的な値に量子化する。例えばLPB確率が0.3で、Kが4である場合、確率量子化部703は、LPB確率の値0.3の量子化値を0.25(=1/4)とする。確率量子化部703から出力されたビットは、K個のビン符号化部704−1〜704−kのうち、そのビットのLPB確率の量子化値に応じたビン符号化部に入力される。
ビン符号化部704−1〜704−kは、それぞれ、互いに異なるLPB確率の量子化値に対応するビットを算術符号化する。例えば、上記のように、LPB確率の量子化値が1/4であれば、そのLPB確率に対応するビットは、ビン符号化部704−1〜704−kのうちの離散的確率1/4に対応するビン符号化部に入力される。そして各ビン符号化部は、多重化部705のバッファ内に格納されているエントリのビット列のうち、ビン符号化部に対応する量子化LPB確率のエントリのビット列にそのビットを追加する。そして各ビン符号化部は、ビット列が変換可能となる度に、そのビット列をワードに変換する。
多重化部705は、例えば、バッファを有し、各ビン符号化部から書き込まれたビット列及びビット列に対応するワードをそのバッファに格納する。多重化部705は、ワードが出力可能となるまで、そのワードをバッファ内に格納する。そして多重化部705は、格納されているワードが出力可能となった時点で、そのワードを出力データのビットストリームとして出力する。
なお、各ビン符号化部に入力されるビット(ビン)は同じLPBを持つと仮定できるので、各ビン符号化部及び多重化部は、算術符号化そのものを行う代わりに、複数の入力ビットを含むビット列を一つのビン列として可変長符号化してもよい。この場合、例えば、ビット列(ビン列)とワードとの関係を表す変換テーブルが各ビン符号化部に記憶される。そして各ビン符号化部は、その変換テーブルを参照してビン列をワードに変換する。例えば、LPBが1でLPB確率が0.15(即ち0の発生確率が0.85)である場合、入力ビン列"0000"は"1"に、入力ビン列"11"は"00001"に変換される。
図11を参照しつつ、出力データのビットストリームにおける、各ブロックの最終ビットについて説明する。図11は、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。なお、ブロックの圧縮データの構造は、図8(A)に示される構造と同一である。
図11に示されるように、出力データストリームのビット列の一例であるビット列4100は15個のビットを含む。この場合において、ドットの集合4101は、ビット列4100に含まれる各ビットに対応する、ビット列4100を算術復号することにより得られる圧縮データに含まれるビンを表す。この例では、ビット列4100はビン0〜ビン10に対応する。そして、ビン0〜ビン2はブロック0に含まれ、ビン3〜ビン5はブロック1に含まれ、ビン6、7はブロック2に含まれ、ビン8〜ビン10はブロック3に含まれる。ドットの集合4101に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列4100に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン0、ビン5及びビン7は、0番目〜3番目のビットを用いて復号される。逆に言うと、ビン0、ビン5及びビン7の3ビットが、ビット列4100中の0番目〜3番目の4ビットに変換される。
ドット集合4101から明らかなように、ブロック1に属する最後のビン5を復号するために必要なビット列(ビット0〜ビット3)は、ブロック1に属する最初のビン3を復号するために必要なビット列(ビット7〜ビット8)よりも先に出力データのビットストリーム4100内に出現する。このように、第4の実施形態では、第3の実施形態と異なり、ブロックの各ビンの順番に対して、出力データのビットストリーム上での対応するワードの順番が逆転することがある。
ブロックの最終ビットは、以下のようになる。
CABACによりブロックが符号化される場合と同様に、ブロックの圧縮データのバイナリ化データの先頭ビット及び最終ビットは、常にMbSkipFlag及びEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データのビットストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。
しかし、この実施形態では、可変長符号化されたブロックxの最終ビットは、ブロックxの圧縮データのバイナリ化データの各ビットを復号するために必要なワードの中で、出力データのビットストリーム中の位置が最も後ろのワードAの最後のビットとなる。図11に示した例では、ブロック0、ブロック1及びブロック2の最終ビットは、それぞれ、矢印4200で示される、ビット列4100の8番目のビットである。また、ブロック3の最終ビットは、矢印4201で示される、ビット列4100の14番目のビットである。
図12は、第4の実施形態による可変長符号化部のビン符号化部及び多重化部の挙動の説明図である。ビン符号化部704−1〜704−kは、入力ビン列から出力ワードへの変換マップ800を参照して、同一の量子化LPB確率を持つビットからなる入力ビン列をワードに変換する。説明の簡略化のため、多重化部705は、各ビン符号化部704−1〜704−kから多重化部705に入力されるビン列に対して同一の変換マップを適用するものとする。例えばビン列"0000"はワード"1"に変換される。
この例において、入力ビット列801の各ビットに対して、量子化LPB確率を表す確率インデックス802が確率量子化部703により付加される。この例では、LPB確率は4個の値の何れかに量子化されるものとし、各量子化LPB確率には、それぞれ、確率インデックス0〜3が割り当てられる。そして入力ビット列801の各ビットは、先頭のビット850から順に、そのビットの確率インデックスに対応するビン符号化部に入力される。例えば、確率インデックスが'0'であるビットは、ビン符号化部704−1に入力され、確率インデックスが'1'であるビットは、ビン符号化部704−2に入力される。
テーブル860〜863は、それぞれ、ビット850〜853が何れかのビン符号化部に入力された時点における、多重化部705が有するバッファに格納されたデータを示す。
テーブル860〜863において、一つの行が、多重化部705のバッファ内に格納された一つのエントリに対応する。そして各テーブル内には、生成された順序に従って、上から順にエントリが表記される。多重化部705は、出力データのビットストリームとして、バッファ内に格納されたエントリのワードを、上から下の順番に沿って出力する。"#"はバッファ内のエントリのインデクスである。"Idx"は対応するビン符号化部のインデクスであり、この例では、理解を容易にするために、ビン符号化部のインデックスは、そのビン符号化部に入力される入力ビットに付加された確率インデックスと同一の値を持つ。「入力」は、入力されたビット列(ビン列)である。「ワード」は入力されたビット列に対応するワードである。もし入力ビット列に対応するワードが存在しない場合(例えば、入力ビット列が"00"の場合)、各テーブルにおいてワードは"N/A"と表記される。
ビン符号化部704−1〜704−kの何れかへビット850が入力される前の状態では、多重化部705のバッファは空であるとする。
多重化部705のバッファが空の状態で、ビットがビン符号化部に入力されると、ビットが入力されたビン符号化部は、多重化部705のバッファに新しいエントリを作成する。この例では、テーブル860に示されるように、確率インデックスが'0'で、かつ値が'0'であるビット850がビン符号化部704−1へ入力されることにより、多重化部705のバッファ内にエントリインデクスが'0'の最初のエントリが作成される。ビット850の確率インデックスが'0'であるため、このエントリの"Idx"は'0'である。またビット850の値が'0'であるため、最初のエントリの入力ビット列は"0"となる。ワードはまだ未完成であるため、このエントリのワードは"N/A"である。
次に、ビン符号化部704−2へ、確率インデックスが'1'で、かつ値が'0'であるビット851が入力される。この場合、このビットの確率インデックスに相当するエントリはまだ多重化部705のバッファ内に存在しないので、テーブル861に示されるように、新しいエントリが生成される。この2番目のエントリの"Idx"は'1'である。またワードはまだ未完成であり、2番目のエントリのワードは"N/A"である。
以降、新たなビットがビン符号化部に入力される度に、ビン符号化部704−1〜704−k及び多重化部705は、以下の1)〜4)の規則に従って、多重化部705のバッファ内のエントリのビン列をワードに変換し、また適宜出力可能となったエントリのワードを出力する。
1)ビン符号化部704−1〜704−kは、入力ビットの確率インデックスに対応するエントリを、多重化部705のバッファ内のエントリインデクスの昇順に探索する。
2)もし入力ビットの確率インデックスに対応する、ワードが"N/A"であるエントリがあれば、ビン符号化部704−1〜704−kは、そのエントリの入力ビット列を更新する。具体的には、ビン符号化部704−1〜704−kは、そのエントリの入力ビット列の後ろに新たな入力ビットを付加する。多重化部705は、更新されたビット列が、変換テーブル800のビン列の何れかと一致するか否かを判定する。もし一致するビン列があれば、ビン符号化部704−1〜704−kは、そのビン列に対応するワードをこのエントリのワードとする。
3)もし入力ビットの確率インデックスに対応する、ワードが"N/A"でないエントリが無ければ、ビン符号化部704−1〜704−kは、その確率インデックスに対応する新たなエントリを作成する。
4)ワードが"N/A"でないエントリはビットストリームとして出力可能であるが、エントリの出力順序は多重化部705のバッファ内のエントリインデクスの降順に従う。これは、動画像復号装置が多重化されたワードを正常に復号する(ワードからビン列への逆変換)ために必要な制限である。もし着目するエントリのエントリインデクスより小さく、かつワードが"N/A"のエントリが多重化部705のバッファに残っている場合には、着目するエントリのワードが"N/A"でなくても、多重化部705は、その着目するエントリを出力することはできない。
多重化部705は、エントリを出力する場合、そのエントリのワードを出力データのビットストリームに追加する。出力されたエントリは、多重化バッファから除かれる。
テーブル862は、ビン符号化部704−1へ、確率インデックスが'0'で、かつ値が'0'であるビット852が入力された時点における、多重化部705のバッファの状態を表す。この場合、エントリインデクスが'1'から'4'のエントリは出力可能な状態である。しかし、エントリインデクスが'0'のエントリのワードが"N/A"のため、多重化部705は、全てのエントリのワードをまだビットストリームとして出力できない。すなわち可変長符号化の遅延が生じる。
テーブル863は、ビン符号化部704−1へ、確率インデックスが'0'で、かつ値が'1'であるビット853が入力された時点における、多重化部705のバッファの状態を表す。この時点において、初めてエントリインデクスが'0'のエントリのワードが"N/A"でなくなる。そのため、多重化部705は、エントリインデクスが'0'から'4'のエントリ全てを出力できる。
エントリインデックスが'0'から'4'のエントリ全てを出力した直後に、新たに追加されるエントリのインデクスは'5'となる。即ち、新規エントリのエントリインデックスは、出力されたエントリを含む全エントリ中の最大インデックスに1を加算した値となる。多重化部705は、ビットストリームとして出力した最後のエントリのエントリインデックスに1を加算した値を、次のビットストリームの出力エントリ先頭インデックスFirstIndexとして記憶する。なおFirstIndexはピクチャ符号化開始時に0にリセットされる。
図13(A)〜図13(C)は、第4の実施形態による、出力データのビットストリーム中のグループの最終ビットを特定する処理のフローチャートである。動画像符号化装置10の可変長符号化部23は、このフローチャートに従って、出力データのビットストリームにおける、i番目のピクチャのj番目のグループG(i,j)に属する最終ブロックの最終ビットの位置BitEnd(i,j)を導出する。動画像符号化装置10は、BitEnd(i,j)の位置のビットが動画像符号化装置10の送信バッファに入力された時に、グループG(i,j)を復号するために必要な全てのビットが動画像符号化装置10の送信バッファに入力されたと判断する。
図13(A)〜図13(C)に示されるフローチャートの各ステップの処理は、以下に述べるステップを除き、図9(A)〜図9(C)に示したフローチャートの対応するステップの処理と同一である。例えば、ステップS301の処理は、ステップS201の処理と同一である。そのため、以下に述べるステップ以外のステップの詳細に関しては、図9(A)〜図9(C)に示したフローチャートに関連する説明を参照されたい。
可変長符号化部23のビン符号化部704−1〜704−kがb0番目のビンを符号化し、b0番目のビン(またb0番目のビンを含むビット列が変換可能な場合には、対応するワード)が多重化部705のバッファに格納される(ステップS304)。その後、可変長符号化部23は、多重化部705がビットストリームとして出力したビット列の最終ビット位置qを取得する(ステップS305)。また、可変長符号化部23は、多重化部705より次のビットストリームの先頭エントリインデックスFirstIndexを取得し、そのインデックスをtとする。
その後、ステップS306にてキャリー数cが1以上であれば、可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pをb0番目のビンを算術符号化した後のビットストリームの最終ビット位置qと比較する。さらに可変長符号化部23は、次のビットストリームの先頭エントリインデックスtがインデックスsよりも大きいか否か判定する(ステップS307)。なお、インデックスsは、既に算術符号化されたもののビットストリームとして出力されていないEndOfSliceFlagに対応するエントリのうち、最も大きいエントリインデックスを表す。
最終ビット位置pが最終ビット位置qと異なり、かつ、インデックスtがインデックスsよりも大きい場合(ステップS307−Yes)、b0番目のビンの算術符号化処理により新たなビットが生成される。この場合には、以前に算術符号化されたものの、ビットストリームとして出力されていなかったグループx(x=j-1,...,j-c)の最後のブロックのEndOfSliceFlagに対応する最後のワードがビットストリームとして出力されている。即ちグループxの復号に必要な全ビットがqの位置で出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定する(ステップS308)。
一方、最終ビット位置pが最終ビット位置qと等しいか、あるいは、インデックスtがインデックスsと等しい場合(ステップS307−No)、新たなビットが生成されていない。そのため、可変長符号化部23は、ステップS308及びS309の処理を行わずにステップS310の処理を行う。
図13(B)に示されるように、可変長符号化部23は、EndOfSliceFlagを算術符号化し(ステップS312)、その後、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qを取得する(ステップS313)。また、可変長符号化部23は、多重化部705より次のビットストリームの先頭エントリインデックスFirstIndexを取得し、そのインデックスをtとする。さらに可変長符号化部23は、多重化部705より、既に算術符号化されたもののビットストリームとして出力されていないEndOfSliceFlagに対応するエントリのうち、最も大きいエントリインデックスを取得し、そのインデックスをsとする。
可変長符号化部23は、キャリー数cが1以上、かつ、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとが異なるか否か判定する。さらに可変長符号化部23は、インデックスtがインデックスsよりも大きいか否か判定する(ステップS314)。キャリー数cが1以上で、pがqと異なり、かつtがsより大きい場合(ステップS314−Yes)、グループx (x = j-1, ..,j-c)の最後のブロックのEndOfSliceFlagがビットストリームとして出力されている。即ち、グループxを復号するのに必要な全ビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定する(ステップS315)。
一方、キャリー数cが0、またはpがqと等しい、若しくはtがsと等しい場合(ステップS314−No)、グループxを復号するのに必要な全ビットが出力されていない。そこで可変長符号化部23は、ステップS315及びS316の処理を行わずに、現在のブロックmがグループjの最終ブロックか否か判定する(ステップS317)。現在のブロックmがグループjの最終ブロックでない場合(ステップS317−No)、グループj内に未処理のブロックがある。そこで可変長符号化部23は、mを1インクリメントした後、ステップS302以降の処理を繰り返す。
一方、ブロックmがグループjの最終ブロックである場合(ステップS317−Yes)、可変長符号化部23は、mを1インクリメントする。そして可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとを比較し、かつ、インデックスtとインデックスsを比較する(ステップS318)。
pがqと異なり、かつtがsより大きい場合(ステップS318−Yes)、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEnd()をビット位置qに設定する(ステップS319)。
一方、pがqと等しいか、あるいはtがsと等しい場合(ステップS318−No)、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントする(ステップS321)。
以上に説明してきたように、この動画像符号化装置は、ピクチャを分割したブロックをグループ単位で分類し、そのグループごとに推定される復号時刻に応じて、グループに含まれるブロックの符号量を調整することで、復号遅延を低減させることができる。
コンピュータ上で実行されることにより、上述した実施形態またはその変形例による動画像符号化装置の各部の機能を実現するコンピュータプログラムは、半導体メモリまたは光記録媒体などの記録媒体に記録されて配布されてもよい。
上述した実施形態またはその変形例による動画像符号化装置は、様々な用途に利用される。例えば、この動画像符号化装置は、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
10 動画像符号化装置
11 符号化処理部
12 符号量制御部
13 グループ決定部
14 グループ復号時刻情報算出部
15 グループ情報付加部
21 直交変換部
22 量子化部
23 可変長符号化部
24 量子化値算出部
25 ビットカウンタ
26 バッファ占有量算出部
700 エントロピー符号化部
701 バイナリ化部
702 コンテキストモデル化部
703 確率量子化部
704−1〜704−k ビン符号化部
705 多重化部

Claims (3)

  1. 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置であって、
    前記ピクチャを任意の大きさの複数のグループに分割した際、各ブロックの属するグループを決定するグループ決定部と、
    符号化対象ピクチャの最初のグループに対応する復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように前記グループ毎の復号時刻を算出するグループ復号時刻情報算出部と、
    前記各ブロックの属するグループを表すグループ情報と、前記グループ情報に対応する前記復号時刻を表す情報を出力データに付加するグループ情報付加部と、
    前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、前記グループ復号時刻情報算出部で算出された当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御する符号量制御部と、
    前記符号量の制御情報に基づいて前記各ブロックを符号化する符号化処理部と、
    を有する動画像符号化装置。
  2. 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法であって、
    前記ピクチャを任意の大きさの複数のグループに分割した際、各ブロックの属するグループを決定し、
    符号化対象ピクチャの最初のグループに対応する復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように前記グループ毎の復号時刻を算出し、
    前記各ブロックの属するグループを表すグループ情報と、前記グループ情報に対応する前記復号時刻を表す情報を出力データに付加し、
    前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、
    前記符号量の制御情報に基づいて前記各ブロックを符号化する、
    ことを含む動画像符号化方法。
  3. 動画像データに含まれる各ピクチャを複数のブロックに分割して符号化することをコンピュータに実行させる動画像符号用コンピュータプログラムであって、
    前記ピクチャを任意の大きさの複数のグループに分割した際、各ブロックの属するグループを決定し、
    符号化対象ピクチャの最初のグループに対応する復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように前記グループ毎の復号時刻を算出し、
    前記各ブロックの属するグループを表すグループ情報と、前記グループ情報に対応する前記復号時刻を表す情報を出力データに付加し、
    前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、
    前記符号量の制御情報に基づいて前記各ブロックを符号化する、
    ことをコンピュータに実行させる動画像符号化用コンピュータプログラム。
JP2012536233A 2010-09-30 2011-01-13 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム Active JP5720691B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012536233A JP5720691B2 (ja) 2010-09-30 2011-01-13 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010222247 2010-09-30
JP2010222247 2010-09-30
PCT/JP2011/050462 WO2012042916A1 (ja) 2010-09-30 2011-01-13 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2012536233A JP5720691B2 (ja) 2010-09-30 2011-01-13 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014220876A Division JP5983704B2 (ja) 2010-09-30 2014-10-29 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Publications (2)

Publication Number Publication Date
JPWO2012042916A1 JPWO2012042916A1 (ja) 2014-02-06
JP5720691B2 true JP5720691B2 (ja) 2015-05-20

Family

ID=45892402

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012536233A Active JP5720691B2 (ja) 2010-09-30 2011-01-13 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2014220876A Active JP5983704B2 (ja) 2010-09-30 2014-10-29 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014220876A Active JP5983704B2 (ja) 2010-09-30 2014-10-29 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Country Status (7)

Country Link
US (1) US9621886B2 (ja)
EP (1) EP2624554B1 (ja)
JP (2) JP5720691B2 (ja)
KR (2) KR101503190B1 (ja)
CN (1) CN103202015B (ja)
ES (1) ES2750328T3 (ja)
WO (1) WO2012042916A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5994367B2 (ja) * 2012-04-27 2016-09-21 富士通株式会社 動画像符号化装置、動画像符号化方法
JP6234660B2 (ja) * 2012-04-27 2017-11-22 富士通株式会社 動画像復号装置
JP6234659B2 (ja) * 2012-04-27 2017-11-22 富士通株式会社 動画像復号装置
US10958989B2 (en) 2016-02-25 2021-03-23 Synamedia Limited Framework for embedding data in encoded video
JP6194973B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
JP6288129B2 (ja) * 2016-03-07 2018-03-07 富士通株式会社 動画像復号装置及び動画像復号方法
JP6146502B2 (ja) * 2016-03-07 2017-06-14 富士通株式会社 動画像符号化復号システム及び動画像符号化復号方法
JP6194974B2 (ja) * 2016-03-07 2017-09-13 富士通株式会社 動画像復号装置及び動画像復号方法
JP6164324B2 (ja) * 2016-03-14 2017-07-19 富士通株式会社 動画像復号方法
JP6249040B2 (ja) * 2016-04-11 2017-12-20 富士通株式会社 動画像復号方法
CN110022481B (zh) * 2018-01-10 2023-05-02 中兴通讯股份有限公司 视频码流的解码、生成方法及装置、存储介质、电子装置
US20210176475A1 (en) * 2019-12-05 2021-06-10 Mediatek Inc. Specifying Layout In Video Pictures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0993537A (ja) * 1995-09-27 1997-04-04 Mitsubishi Electric Corp ディジタル映像信号記録再生装置及びディジタル映像信号符号化方法
JP2003535523A (ja) * 2000-06-01 2003-11-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 映像信号符号化およびバッファ管理

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2787599B2 (ja) 1989-11-06 1998-08-20 富士通株式会社 画像信号符号化制御方式
WO1998032281A1 (en) * 1997-01-21 1998-07-23 Sarnoff Corporation Information stream syntax for indicating the presence of a splice point
JP3299185B2 (ja) 1998-06-10 2002-07-08 日本ビクター株式会社 符号化装置
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
JP2001346201A (ja) 2000-03-27 2001-12-14 Sony Corp 画像符号化装置とその方法、画像復号化装置とその方法、画像記録装置、画像伝送装置
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
US7418007B1 (en) * 2000-09-20 2008-08-26 General Instrument Corporation Method and apparatus for determining a transmission bit rate in a statistical multiplexer
US7532670B2 (en) 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
KR100882076B1 (ko) * 2003-07-11 2009-02-10 파나소닉 주식회사 디스플레이 세트의 병렬처리를 수행할 수 있는 재생장치, 기록매체, 기록방법, 재생방법, 및 컴퓨터 판독가능한 기록매체
EP1638333A1 (en) * 2004-09-17 2006-03-22 Mitsubishi Electric Information Technology Centre Europe B.V. Rate adaptive video coding
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0993537A (ja) * 1995-09-27 1997-04-04 Mitsubishi Electric Corp ディジタル映像信号記録再生装置及びディジタル映像信号符号化方法
JP2003535523A (ja) * 2000-06-01 2003-11-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 映像信号符号化およびバッファ管理

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB199900170001; 映像情報メディア学会 編: 総合マルチメディア選書 MPEG 第1版、第4刷, 19980720, p.82-83, 株式会社オーム社 *
JPN6014030961; 映像情報メディア学会 編: 総合マルチメディア選書 MPEG 第1版、第4刷, 19980720, p.82-83, 株式会社オーム社 *

Also Published As

Publication number Publication date
JP5983704B2 (ja) 2016-09-06
WO2012042916A1 (ja) 2012-04-05
US9621886B2 (en) 2017-04-11
US20130208793A1 (en) 2013-08-15
JP2015057909A (ja) 2015-03-26
ES2750328T3 (es) 2020-03-25
EP2624554A1 (en) 2013-08-07
KR20150028835A (ko) 2015-03-16
EP2624554A4 (en) 2015-01-07
CN103202015A (zh) 2013-07-10
CN103202015B (zh) 2016-08-03
EP2624554B1 (en) 2019-09-18
KR101503190B1 (ko) 2015-03-16
JPWO2012042916A1 (ja) 2014-02-06
KR20130070645A (ko) 2013-06-27
KR101627568B1 (ko) 2016-06-09

Similar Documents

Publication Publication Date Title
JP5983704B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP5447695B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
RU2619891C1 (ru) Устройство кодирования изображений, устройство декодирования изображений, способ кодирования изображений и способ декодирования изображений
JP5421408B2 (ja) αチャンネル映像復号化装置、αチャンネル復号化方法及び記録媒体
KR101479141B1 (ko) 트리 구조를 이용한 부호화/복호화 방법 및 장치
US9014274B2 (en) Video image encoding device, video image encoding method
JP4388771B2 (ja) 動画像復号装置、および動画像復号方法
JP2008289105A (ja) 画像処理装置およびそれを搭載した撮像装置
JP4847423B2 (ja) 動画像符号化装置、および、コンピュータプログラム
JP4924744B2 (ja) 復号装置及びその方法
JP2011101404A (ja) 復号装置及び復号方法
JP4661973B2 (ja) 動画像符号化装置および動画像復号装置
JP2010288070A (ja) 画像符号化装置
JP4661992B2 (ja) 動画像符号化装置および動画像復号装置
JP2022548685A (ja) 画像データの符号化及び復号化
JP5819754B2 (ja) 画像符号化装置
JP4924743B2 (ja) 復号装置及びその方法
JP5500210B2 (ja) 符号化装置、符号化方法及び符号化プログラム
CN117063465A (zh) 视频编码设备、视频解码设备、视频编码方法、视频解码方法和视频系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141029

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150309

R150 Certificate of patent or registration of utility model

Ref document number: 5720691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150