JP2000236522A5 - - Google Patents

Download PDF

Info

Publication number
JP2000236522A5
JP2000236522A5 JP1999034081A JP3408199A JP2000236522A5 JP 2000236522 A5 JP2000236522 A5 JP 2000236522A5 JP 1999034081 A JP1999034081 A JP 1999034081A JP 3408199 A JP3408199 A JP 3408199A JP 2000236522 A5 JP2000236522 A5 JP 2000236522A5
Authority
JP
Japan
Prior art keywords
macroblock
picture
code
value
code sequence
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.)
Pending
Application number
JP1999034081A
Other languages
English (en)
Other versions
JP2000236522A (ja
Filing date
Publication date
Application filed filed Critical
Priority to JP3408199A priority Critical patent/JP2000236522A/ja
Priority claimed from JP3408199A external-priority patent/JP2000236522A/ja
Publication of JP2000236522A publication Critical patent/JP2000236522A/ja
Publication of JP2000236522A5 publication Critical patent/JP2000236522A5/ja
Pending legal-status Critical Current

Links

Images

Description

MPEGストリームにおけるピクチャ内でのスライスの順、およびスライス内でのマクロブロックの順は、マクロブロックアドレスの小さい順(画面上において、上から下、左から右)でなければならず、スライスの逆行、およびオーバラップ(二重定義)は、MPEGの規格上許されていない。ただし、スライス間のギャップは許容される。
出願人が提案している放送用および業務用機器の規格であるBetacamSX(商標)では、マクロブロックの逆行、オーバラップ、ギャップとも許されていない。
スライスのピクチャ内の垂直位置(MB Row)はスライス層のヘッダ(SSC:Slice Start Code)に記述されており(図12の例では、mb_row=4が記述されており)、スライスの先頭のマクロブロックの水平位置(MB Column)は、スライス層の先頭のマクロブロック層に符号化されている(図12の例では、mb_column=1,3、または9が符号化されている)。画像(ピクチャ)内におけるマクロブロックの絶対位置(マクロブロックアドレス)は、画像の水平方向のマクロブロック数MB Width(シーケンス層のヘッダの画像サイズ(Vertical size,Horizontal size)のHorizontal sizeから計算される)を用いて、次式のように表すことができる。
マクロブロックアドレス=((MB Row)-1)×(MB Width)+(MB Column)
スライス層における先頭から2番目以降のマクロブロック層には、直前に符号化されたマクロブロックとのマクロブロックアドレスの差が記述されている(図12の例では、網かけしたスライス層(mb_row=4の第2番目のスライス層)の3番目のマクロブロック層には差=+2(2番目のマクロブロックがスキップされているので、直前のマクロブロックは先頭のマクロブロックとなり、+2(=5-3)となる)が、4番目のマクロブロック層には差=+1(=6-5)が、それぞれ記述されている)。あるマクロブロックにマクロブロックアドレスの差として2以上が記述されていた場合、それは、直前のマクロブロックとそのマクロブロックとの間のマクロブロックがスキップされたことを意味している。ただし、スライスの先頭および末尾のマクロブロック(図12のmb_column=2のマクロブロックとmb_column=6のマクロブロック)はスキップすることが禁止されており、また、Iピクチャのマクロブロックはスキップされない。
マクロブロックを、図13を参照してさらに詳細に説明すると、マクロブロックの冒頭には、マクロブロックヘッダとして、前述したmb_columnの値、または直前のマクロブロックとのmb_columnの差を表すmacroblock_address_increment、マクロブロックの符号化モードを表すmacroblock_type、フレームまたはフィールドの予測タイプを表すframe/field_motion_type、DCTがフレームモードかフィールドモードかを表すdct_type、マクロブロックの量子化ステップ・サイズを表すquantizer_scale_code、動きベクトルを表すmotion_vector[forward]とmotion_vector[backward]、輝度ブロックと色差ブロックのパターンを表すcoded_block_patternが記述されている。
図17(A)に示すように、GOP層のヘッダにエラーが混入していた場合、図17(B)に示す例では、そのGOP層のスタートコードを除く全てのデータが置換されている。図18(A)に示すように、シーケンス層のヘッダにエラーが混入していた場合、図18(B)に示す例では、そのシーケンス層のスタートコードを除く全てのデータが置換されている。また、図18(C)に示す例では、そのシーケンス層の全てのデータがシーケンスエンドコード(SEC)に置換されている。
可変長復号部61は、入力されたデータストリームを復号し、ヘッダとマクロブロックの単位に分割してメモリ62に出力する。可変長復号部61には、スタートコードを検出し、ヘッダを解読して、RunとLevelにまで復号できる能力が必要であるが、逆量子化を実行してDCT係数の系列まで復号する能力
は必要ない。
マクロブロック係数系列発生部64は、エラーマクロブロックと置換するマクロブロックの係数系列を発生する。例えば、ブラックのマクロブロックに置換する場合、イントラマクロブロックとして、輝度信号ブロックに16、色差信号ブロックに128の係数系列が発生される。また、最も発生符号量が少ないグレーのマクロブロックに置換する場合、イントラマクロブロックとして、輝度信号ブロック、および色差信号ブロックに128の係数系列が発生される
メモリ72は、ヘッダ毎、およびマクロブロック毎に分割された符号系列を記憶する。マクロブロック符号系列発生部74は、置換用マクロブロックの符号系列を発生する。例えば、ブラックやグレイのイントラマクロブロック、「MV=0,Not Coded」のPピクチャ用マクロブロック、または「Fwd,MV=0,Not Coded」,「Interpolated,MV=0,Not Coded」のBピクチャ用マクロブロックが予め記憶されており、可変長復号部61から入力されるパラメータに対応して、これらの置換用マクロブロックの符号系列がスイッチ65に供給される。
マクロブロック(MB)パッキング部76は、スイッチ65から入力される符号系列(メモリ72から供給された符号系列、またはマクロブロック符号系列発生部74から供給された符号系列)をパッキングして(8ビットごとバイトアラインして)出力する。
図20に示した実施の形態の図19に示した実施の形態に対する優位性は、以下の通りである。すなわち、メモリ72(図20)は、復号される前の、圧縮された符号系列を記憶するので、係数系列を記憶するメモリ62よりも、その容量は小さいものでよい。ただし、マクロブロックの符号系列とともに、その符号長を記憶する必要がある。また、マクロブロック単位の符号系列のパッキングを行うだけなので、マクロブロックパッキング部76(図20)は、符号化を行う可変長符号化部66(図19)よりも、その回路の規模が小さい。マクロブロック符号系列発生部74は、「MV=0,Not Coded」のPピクチャ用マクロブロック、または「Fwd,MV=0,Not Coded」,「Interp,MV=0,Not Coded」のBピクチャ用マクロブロックスキップされるマクロブロックを供給できるので、実質上、エラーマクロブロック部分をフリーズさせて補正することできる。
図21乃至図24を参照して、Iピクチャ(progressive_sequence=0,chroma_format=4:2:2)内のマクロブロックを置換する具体例を説明する。図21に示すように、マクロブロックのSlice Headerには、start_codeを示す値"00000000_00000000_00000001"、mb_rowを示す8ビットの値(ここでは、********と記載)、quantizer_scale_codeを示す5ビットの値(ここでは、*****(00000以外)と記載)、およびextra_bit_sliceを示す値"1"が記述されている。
スライスの先頭のマクロブロックには、マクロブロックヘッダとしての、macroblock_address_increment(mb_column)を示す可変長符号(ここでは、"****"と記載)、macroblock_type(=Intra)を示す値"1"、およびdct_typeを示す1ビットの値(ここでは、"*"と記載)が記述される。マクロブロックヘッダ以降には、4つの輝度ブロックのDC成分の値(DCY0乃至DCY3)と、それぞれのEOB(End Of Block)、および2種類の色差ブロックCb,CrそれぞれのDC成分の値(DCB0,DCB1,DCR0,DCR1)と、それぞれのEOB(End Of Block)が記述される。前述したように、AC成分は記述されない。
エラーマクロブロックをブラックに置換する場合、図21のDCY0乃至DCR1には、図23に示す値が設定される。intra_dc_precision=0(8ビット)の場合、図23(A)に示すように、DCY0には、dct_dc_size_luminance=7とdct_dc_differential=-112を示す値”1111_10 0001111”が設定される。DCY1乃至DCR1は、図22における場合と同様の値が設定される。
intra_dc_precision=1(9ビット)の場合、図23(B)に示すように、DCY0には、dct_dc_size_luminance=8と、dct_dc_differential=-224を表す値”1111_110 0001111_1”が設定される。DCY1乃至DCR1は、図22における場合と同一の値が設定される。
intra_dc_precision=2(10ビット)の場合、図23(C)に示すように、DCY0は、dct_dc_size_luminance=9と、dct_dc_differential=-448を表す値”1111_1110 0001111_11”が設定される。DCY1乃至DCR1は、図22における場合と同一の値が設定される。
さらに、intra_dc_precision=3(11ビット)の場合、図23(D)に示すように、DCY0には、dct_dc_size_luminance=10と、dct_dc_differential=-896を表す値”1111_111_0 0001111_111”が設定される。DCY1乃至DCR1は、図22における場合と同一の値が設定される。
すなわち、intra_dc_precision=0(8ビット)の場合、図27(A)に示すように、DCY0に、値”1111_10 000111”が設定され、DCB0,DCR0には、値”00”が設定される。
intra_dc_precision=1(9ビット)の場合、図27(B)に示すように、DCY0に、値”1111_110 0001111_1”が設定され、DCB0,DCR0には、値”00”が設定される。
intra_dc_precision=2(10ビット)の場合、図27(C)に示すように、DCY0に、値”1111_1110 0001111_11”が設定され、DCB0,DCR0には、値”00”が設定される。
intra_dc_precision=3(11ビット)の場合、図27(D)に示すように、DCY0に、値”1111_1111_0 0001111_11”が設定され、DCB0,DCR0には、値”00”が設定される。
Pピクチャ内のマクロブロックの値をホールドする場合には、図29に示すように、macroblock_typeとして「MV,Not Coded」を示す値”001”が設定される。この他、必要に応じてframe/field_motion_type,motion_vertical_field_select[0][0],motion_vector(field0,forward),motion_vertical_field_select[1][0],motion_vector(field1,forward)の値が、motion_vector=(0,0)となるよう所定の値に適宜設定される。
上述したように、この所定のマクロブロックとして、ブラックの(輝度信号が16であり、色差信号が128である)マクロブロック、発生する符号量が最も少ないグレイの(輝度信号、および色差信号が128である)マクロブロック、または平坦な図柄のマクロブロックを利用することができる。
例えば、Iピクチャ内のマクロブロックを置換する場合、図30に示すように、同一ピクチャ内の周辺のブロックから、そのDC成分を推測してマクロブロックを生成することができる。各ブロックでは、DC成分とEOBのみが符号化され、DC成分以外のDCT係数は必要ない。
図30を横方向に具体的に説明すると、図30(A)は、エラーのない直前のマクロブロックを参照する方法を示しており、この方法の場合、参照データとして、直前のマクロブロックのDC成分を記憶しておく必要がある。
図30(B)は、エラーのない直前のマクロブロックと真上のマクロブロックを参照する方法を示しており、この方法の場合、その参照の比率は、ともに1/2づつ、または直前を3/4,真上を1/4などとすることができる。この場合、参照データとして、真上のマクロブロックから直前のマクロブロックまで1列分のDC成分を記憶しておく必要がある。
図30(C)は、エラーのない直前のマクロブロック、真上のマクロブロック、および直下のマクロブロックを参照する方法を示しており、その参照の比率は、図30(B)の場合と同様、種々の比率とすることができる。この場合、参照データとして、真上のマクロブロックから直下のマクロブロックまで2列分のDC成分を記憶しておく必要がある。さらにこの場合、真下のマクロブロックを参照するため、置換マクロブロックを生成するのに、MB Width分の遅延が伴う。
BピクチャとPピクチャ内のマクロブロックを置換する場合、図31に示すように、動画像が時間方向に強い相関性を持っていることを利用して、マクロブロックを作成することができる。Pピクチャ内のエラーマクロブロックは、「MC(動き補償予測),MV(動きベクトル)=0,Not Coded」の符号系列で置換する。この方法で置換すると、図31(A)に示すように、このエラーマクロブロックは、前方直近のIピクチャの同一位置のマクロブロックと同じ図柄に復号される。ここで、動きベクトルがない(MV=0)にも関わらず、「No MC」ではなく、「MC」を使用する(動き補償を行う)のは、「No MC,Not Coded」がMPEGに定義されていないためである。
また、図31(B)に示すように、Pピクチャ内のエラーマクロブロックをスキップするようにしても、図31(A)と同様の効果を得ることができる。Pピクチャにおいてスキップされたマクロブロックは、「MV=0,Not Coded」として、すなわち、実質的に、「No MC,Not Coded」として処理されるからである。
Bピクチャ内のエラーマクロブロックは、「Fwd,MV=0,Not Coded」、または「Interpolated,MV=0,Not Coded」の符号系列で置換される。「Fwd,MV=0,Not Coded」の場合、図31(A)の2枚目の(Pピクチャの左側の)Bピクチャに示すように、直前のIピクチャと同じ図柄(前値ホールド、フリーズ)となり、「Interpolated,MV=0,Not Coded」の場合、図31(A)の1枚目の(Iピクチャの右側の)Bピクチャに示すように、参照画像(前のIピクチャと後のPピクチャ)の平均値の図柄(クロスフェード)となる。
また、Bピクチャ内のエラーマクロブロックをスキップすると、図31(B)に示すように、Bピクチャのスキップされたマクロブロックは、直前のマクロブロックと同じ動き補償(予測方向(Forward、Backward、Interpolated)と動きベクトルが同じ)を行った後、”Not Coded”として処理される。
エラーマクロブロックをスキップすると、総符号長を短く抑えることができる。エラーマクロブロックをスキップして、できる限り少ないデータでエラーマクロブロックを置換し、符号長の不足分をスタッフィングして、もとのデータ長と揃えることが望ましい。ただし、スライスの最終マクロブロックをスキップすることは、MPEG規定により禁じられている。
簡易復号器81は、図1のMPEG変換部11からのMPEG STREAM(入力符号系列)を復号し、ヘッダとマクロブロックの単位まで分割する。簡易復号器81は、抽出したマクロブロック長をメモリ83に出力するとともに、マクロブロックのDC成分を復号して、メモリ84に出力する。また、簡易復号器81は、マクロブロックアドレスとそれぞれのヘッダに含まれる各種のパラメータを抽出し、修正MB選択器85およびMB符号系列発生器86に出力する。
修正MB選択器65は、MPEG STREAM(入力符号系列)中の異常区間を判定し、
その区間に対応する信号を、MB符号系列発生器86に供給する。MB符号系列発生器86は、メモリ84からの過去のDC成分などから最適な置換符号系列とそのマクロブロック長を生成し、スイッチ87とスイッチ89にそれぞれ出力する。スイッチ87,89は、修正MB選択器85からの制御信号に基づき、MB符号系列発生器86からの置換符号系列とそのマクロブロック長を選択し、MBパッキング部88に出力する。MBパッキング部88は、入力された符号系列を、マクロブロック長に応じてパッキングし、シリアルデータ出力部15(図1)に出力する。
JP3408199A 1999-02-12 1999-02-12 画像情報処理装置および方法、並びに提供媒体 Pending JP2000236522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3408199A JP2000236522A (ja) 1999-02-12 1999-02-12 画像情報処理装置および方法、並びに提供媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3408199A JP2000236522A (ja) 1999-02-12 1999-02-12 画像情報処理装置および方法、並びに提供媒体

Publications (2)

Publication Number Publication Date
JP2000236522A JP2000236522A (ja) 2000-08-29
JP2000236522A5 true JP2000236522A5 (ja) 2006-03-16

Family

ID=12404324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3408199A Pending JP2000236522A (ja) 1999-02-12 1999-02-12 画像情報処理装置および方法、並びに提供媒体

Country Status (1)

Country Link
JP (1) JP2000236522A (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1618235A (zh) * 2002-01-22 2005-05-18 微软公司 用于防止起始码模仿和数据填充的方法和系统
JP4507515B2 (ja) * 2003-06-26 2010-07-21 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP2006340205A (ja) * 2005-06-03 2006-12-14 Sharp Corp 誤り訂正装置
JP4523886B2 (ja) 2005-07-08 2010-08-11 富士通株式会社 動画像復号装置、動画像復号方法および動画像復号プログラム
JP4851270B2 (ja) * 2006-08-31 2012-01-11 富士通株式会社 動画像復号装置、および復号方法。
WO2008078807A1 (ja) 2006-12-27 2008-07-03 Panasonic Corporation 動画像復号化装置
JP2009105986A (ja) * 2009-02-16 2009-05-14 Toshiba Corp 復号器
JP5610199B2 (ja) * 2010-06-09 2014-10-22 ソニー株式会社 受信装置、受信方法、及び通信システム
JP2011239464A (ja) * 2011-07-27 2011-11-24 Toshiba Corp 復号器
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention

Similar Documents

Publication Publication Date Title
JP3711571B2 (ja) 画像符号化装置及び画像符号化方法
US7869661B2 (en) Image coding apparatus, image coding method, and image coding program for coding at least one still frame with still frame coding having a higher quality than normal frame coding of other frames
US7349473B2 (en) Method and system for selecting interpolation filter type in video coding
US5400075A (en) Adaptive variable length encoder/decoder
US5592302A (en) Coding method for coding pixel blocks and apparatus therefor
US5796438A (en) Methods and apparatus for interpolating picture information
JP5100015B2 (ja) 画面間又は画面内符号化モードの動画像符号化方法及び装置
US7263126B2 (en) System and method for transcoding with adaptive bit rate control
KR101207144B1 (ko) 소스 화상의 시퀀스를 코딩하기 위한 방법 및 장치
US8396311B2 (en) Image encoding apparatus, image encoding method, and image encoding program
US20060256868A1 (en) Methods and systems for repositioning mpeg image content without recoding
EP1833256B1 (en) Selection of encoded data, setting of encoded data, creation of recoded data, and recoding method and device
EP1452035A2 (en) Spatial scalable compression
JP4532980B2 (ja) 動画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20120027086A1 (en) Predictive coding apparatus, control method thereof, and computer program
JP2000236522A5 (ja)
JP4133346B2 (ja) 予測タイプの選択によるビデオデータブロックのイントラ符号化
US6697430B1 (en) MPEG encoder
US6271774B1 (en) Picture data processor, picture data decoder and picture data encoder, and methods thereof
JP2000236522A (ja) 画像情報処理装置および方法、並びに提供媒体
US7024052B2 (en) Motion image decoding apparatus and method reducing error accumulation and hence image degradation
JP2003189308A (ja) 動画像符号化装置、符号化方法、復号化装置、復号化方法及び動画像符号列伝送方法
JPH07131793A (ja) 映像信号高能率符号化装置
JP3935667B2 (ja) Dct及び予測エラー係数のフィルタリングによるビデオ画像の活動の測定
JP3240737B2 (ja) 画像信号符号化方法、装置、復号化方法及び装置