JP2014504815A - コードストリーム情報の再利用によるh264トランスコード方法 - Google Patents
コードストリーム情報の再利用によるh264トランスコード方法 Download PDFInfo
- Publication number
- JP2014504815A JP2014504815A JP2013546546A JP2013546546A JP2014504815A JP 2014504815 A JP2014504815 A JP 2014504815A JP 2013546546 A JP2013546546 A JP 2013546546A JP 2013546546 A JP2013546546 A JP 2013546546A JP 2014504815 A JP2014504815 A JP 2014504815A
- Authority
- JP
- Japan
- Prior art keywords
- macroblock
- slice
- code stream
- frame
- current
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本発明は、コードストリーム情報再利用のH264トランスコード方法を開示しており、デコードする前に、原コードストリームをデコードして得たフレームまたはフィールドの数をカウントし、カウントした数で現在の出力フレームまたはフィールドをマークし、エンコード過程において、エンコーダーが現在フレーム又はフィールドをエンコードするスライス(slice)類型を、原コードストリームと一致させ、マクロブロックのレベルのコードストリーム情報をエンコードする時に、原コードストリームのマクロブロックのレベルの情報を再利用することを特徴とする。本発明は、画質を余りにも多く犠牲にすることなく、符号化のスピードを加速し、符号化の効率を向上させている。
【選択図】図2
【選択図】図2
Description
本発明は、マルチメディア符号化技術分野に関し、特に、コードストリーム情報の再利用によるH264トランスコード方法に関する。
ネットワーク共有及びマルチメディア技術の発展に伴って、ビデオをバックアップし、記憶する需要も増えるようになって来て、これは、トランスコード技術の発展を加速させるが、ビデオエンコードの巨大な計算量により、トランスコード過程のハードウェア・ソフトウェアに対する要求は極めて高くなる。一般的なトランスコードアルゴリズムは、原ビデオストリームをデコードして、再エンコードすることにより行われる方式であり、エンコード・デコードのアルゴリズムの複雑性により、このような方式は、計算量が多すぎて、長い算出時間が必要される。現在のビデオエンコード・デコード規格のいずれも、トランスコード・エンコード及び動き補償の基本的な枠に基づいているので、原コードストリームにおける動きベクトルおよびマクロブロック情報から、関連するビデオストリームの動き度合い及び画像細部などの先行情報(prior information)を取得することができ、エンコードの過程において利用されれば、画面品質をあまり多く犠牲にすることなく、再エンコードのスピードを大幅に向上させることができる。
現在、主流としてのビデオエンコード規格、例えば、VC-1、MPEG2、MPEG4、及びH26Lなどのいずれも、変換符号化、動き推定、エントロピー符号化のハイブリッド符号化の枠に基づいている。現在のH264コードストリームからH264コードストリームへのトランス方法としては、まず、原コードストリームにおける画像をYUV画像序列にデコードし、再生の順に従ってエンコーダーに伝達し、エンコーダーは、画像に対して逐次分析を行って、画像符号化のスライス(slice)型を特定し、その後、sliceにおける各マクロブロックの動き情況、細部の複雑度を分析して、マクロブロック類型、動きベクトルの大きさを特定し、そして、エンコードする。H264基準の複雑性、例えば、多種のマクロブロック類型を備えることや、イントラ(Intra)_16×16が4つの予測方法を有すること、Intra_4×4が8つの予測方法を有すること、Interブロックの動き推定が1/4画素の精度を支持すること、大量の補間演算を必要とすることなどの理由で、多くのモードから現在のマクロブロックに最も適する符号化方式を選択すること及びインター(Inter)マクロブロックに最もマッチングする参考位置を探すことなどは、計算量の負荷が非常に大きかった。
本発明の解決しようとする課題は、画質を過剰に犠牲にすることなく、トランスコードを迅速に、効率よく実現することである。
本発明は、上記の技術課題を解決するために、コードストリーム情報再利用のH264トランスコード方法を提供し、デコードする時に、原コードストリームをデコードして得たフレームまたはフィールドの数をカウントし、カウントした数で現在の出力フレームまたはフィールドをマークし、エンコード過程において、エンコーダーが現在フレームまたはフィールドをエンコードするslice類型を、原コードストリームのフレームまたはフィールドごとと一致させ、マクロブロックのレベルのコードストリーム情報をエンコードする時に、原コードストリームのマクロブロックのレベルの情報を再利用するようにした。
なお、前記エンコーダーが現在フレームまたはフィールドをエンコードするslice類型を原コードストリームと一致させるステップは、
原コードストリームがNALを入力するステップS11と、
NALのnal_unit_typeは5に等しいか否かを判断し、5に等しい場合に、現在フレームまたはフィールドのすべてのsliceをIDR sliceにエンコードし、5に等しくない場合には、ステップS13を実行するステップS12と、
原コードストリームのフレームまたはフィールドのslice類型はI sliceである場合に、現在フレームまたはフィールドのsliceをI sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型はP sliceである場合に、現在フレームまたはフィールドのsliceをP sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型はB sliceである場合に、nal_ref_idcが0に等しいか否かを判断し、0に等しい場合、現在のフレームまたはフィールドのsliceをB sliceにエンコードし、0に等しくない場合、現在のフレームまたはフィールドのsliceをB sliceにエンコードすると共に、現在フレームまたはフィールドを参考フレームとしてエンコーダーの参考フレーム隊列に挿入するステップS13と、
を含む。
原コードストリームがNALを入力するステップS11と、
NALのnal_unit_typeは5に等しいか否かを判断し、5に等しい場合に、現在フレームまたはフィールドのすべてのsliceをIDR sliceにエンコードし、5に等しくない場合には、ステップS13を実行するステップS12と、
原コードストリームのフレームまたはフィールドのslice類型はI sliceである場合に、現在フレームまたはフィールドのsliceをI sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型はP sliceである場合に、現在フレームまたはフィールドのsliceをP sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型はB sliceである場合に、nal_ref_idcが0に等しいか否かを判断し、0に等しい場合、現在のフレームまたはフィールドのsliceをB sliceにエンコードし、0に等しくない場合、現在のフレームまたはフィールドのsliceをB sliceにエンコードすると共に、現在フレームまたはフィールドを参考フレームとしてエンコーダーの参考フレーム隊列に挿入するステップS13と、
を含む。
なお、前記原コードストリームのマクロブロックのレベルのコードストリーム情報を再利用するステップは、
原コードストリームにはエラーが存在するか否かを判断し、エラーが存在する場合、デコーダーによる現在マクロブロックのデコードが失敗し、デコーダーが現在のマクロブロックにエラーをマークし、エンコーダーが元の動き推定及び予測モードによりアルゴリズムを選択してマクロブロックを分析し、エラーが存在しない場合、ステップS22を実行するステップS21と、
現在のマクロブロックは、それがintraマクロブロックである場合、予処理後の原コードストリームに対応する位置マクロブロックの予測方式に従ってエンコードされ、予処理は、現在のマクロブロックがIntra_4×4_DC、Intra_16×16_DCまたはIntra_8×8_DCのDC予測方式である場合、現在のマクロブロックまたはブロックを対応のDC予測方式にエンコードするステップS221と、
現在のマクロブロックが他のフレーム内予測方式である場合、現在のエンコードのマクロブロック及びそのブロックのmbAddrA、mbAddrB、mbAddrCを算出し、この3つのavailability属性が原コードストリーム対応位置と同一であるか否かを判断して、それらが異なっている場合、得ることができない方向の予測を除き、全て得ることができないと、DC予測を使用するS222と、を含むステップS22と、
現在のマクロブロックがinterマクロブロックである場合、マクロブロックのレベルの情報を再利用するステップは、
マクロブロック類型の処理であり、原コードストリームの現在のマクロブロックがP_SKIPであると、デコーダーがその類型をP_L0_16×16としてマークし、動きベクトルはデコーダーによる中央値予測の動きベクトルであり、原コードストリームの現在のマクロブロックがB_SKIPであると、デコーダーがそれをB_DIRECT類型としてマークし、その他のinter類型はそのままエンコーダーに出力されるステップS231と、
デコーダーは、保存した各マクロブロックの8×8ブロックのref_idx_lxに対応する参考フレームのカウント数をエンコーダーに伝達し、エンコーダー端が8×8ブロックの参考フレームのカウント数を取得した後、エンコーダー参考フレーム隊列から、カウント数が相同であるフレームまたはフィールドを探し、それらが存在する場合に、それを参考フレームとしてステップS233を実行し続け、さもなければ、エンコーダーの元の動き推定過程を使用しマクロブロック全体を推定するステップS232と、
Interマクログロックにおける動き情報を再利用するステップS233と、を含むステップS23と、
エンコード後のマクロブロックを出力するステップS24と、
を含む。
原コードストリームにはエラーが存在するか否かを判断し、エラーが存在する場合、デコーダーによる現在マクロブロックのデコードが失敗し、デコーダーが現在のマクロブロックにエラーをマークし、エンコーダーが元の動き推定及び予測モードによりアルゴリズムを選択してマクロブロックを分析し、エラーが存在しない場合、ステップS22を実行するステップS21と、
現在のマクロブロックは、それがintraマクロブロックである場合、予処理後の原コードストリームに対応する位置マクロブロックの予測方式に従ってエンコードされ、予処理は、現在のマクロブロックがIntra_4×4_DC、Intra_16×16_DCまたはIntra_8×8_DCのDC予測方式である場合、現在のマクロブロックまたはブロックを対応のDC予測方式にエンコードするステップS221と、
現在のマクロブロックが他のフレーム内予測方式である場合、現在のエンコードのマクロブロック及びそのブロックのmbAddrA、mbAddrB、mbAddrCを算出し、この3つのavailability属性が原コードストリーム対応位置と同一であるか否かを判断して、それらが異なっている場合、得ることができない方向の予測を除き、全て得ることができないと、DC予測を使用するS222と、を含むステップS22と、
現在のマクロブロックがinterマクロブロックである場合、マクロブロックのレベルの情報を再利用するステップは、
マクロブロック類型の処理であり、原コードストリームの現在のマクロブロックがP_SKIPであると、デコーダーがその類型をP_L0_16×16としてマークし、動きベクトルはデコーダーによる中央値予測の動きベクトルであり、原コードストリームの現在のマクロブロックがB_SKIPであると、デコーダーがそれをB_DIRECT類型としてマークし、その他のinter類型はそのままエンコーダーに出力されるステップS231と、
デコーダーは、保存した各マクロブロックの8×8ブロックのref_idx_lxに対応する参考フレームのカウント数をエンコーダーに伝達し、エンコーダー端が8×8ブロックの参考フレームのカウント数を取得した後、エンコーダー参考フレーム隊列から、カウント数が相同であるフレームまたはフィールドを探し、それらが存在する場合に、それを参考フレームとしてステップS233を実行し続け、さもなければ、エンコーダーの元の動き推定過程を使用しマクロブロック全体を推定するステップS232と、
Interマクログロックにおける動き情報を再利用するステップS233と、を含むステップS23と、
エンコード後のマクロブロックを出力するステップS24と、
を含む。
前記ステップS233 においてinterマクロブロックにおける動き情報を再利用する方式は、以下の通りである。
原コードストリーム対応マクロブロックの動きベクトルを、エンコーダーの初期予測ベクトルの一つとして、中央値予測によって得られた動きベクトル及び他の方式によって得られた動きベクトルと、エンコーダーの元のマッチング準則で比較し、初期捜索点位置を取得する初期捜索点捜索であり、
原コードストリーム対応マクロブロックの動きベクトルの大きさの全画素部分、動きベクトル参考フレーム、マクロブロック類型、ブロック分割モード、参考フレームインデックスを再利用し、エンコーダーが動きベクトル整数の点を初期捜索点としてから、サブ画素、1/4画素の捜索を行い、最終のマッチング位置を取得し、
原コードストリームマクロブロックの動きベクトル、ブロック分割モード、参考フレームインデックス及びマクロブロック類型をそのままに再利用し、残差を算出する。
原コードストリーム対応マクロブロックの動きベクトルの大きさの全画素部分、動きベクトル参考フレーム、マクロブロック類型、ブロック分割モード、参考フレームインデックスを再利用し、エンコーダーが動きベクトル整数の点を初期捜索点としてから、サブ画素、1/4画素の捜索を行い、最終のマッチング位置を取得し、
原コードストリームマクロブロックの動きベクトル、ブロック分割モード、参考フレームインデックス及びマクロブロック類型をそのままに再利用し、残差を算出する。
本発明は、原コードストリームを、フレームまたはフィールドのレベルおよびマクロブロックのレベルで再利用することによって、画質を余り多く犠牲することなく、符号化のスピードを加速し、符号化の効率を向上させている。
以下、図面と実施例とを結合しながら、本発明の具体的な実施形態をより詳しく説明する。以下の実施例は本発明を説明するためのものであるが、本発明の範囲を限定するものではない。
本発明は、変換過程において、トランスコード出力と原コードストリーム画像序列の解像度が変わらない場合、原コードストリームにおけるフレームまたはフィールドのレベル、スライス(slice)のレベル及びマクロブロックのレベルの先行情報を使用して、これらの情報は、ビデオ序列の動き程度、細部の精細度などの画像固有属性に関係し、これらの情報を使用することによって、マクロブロックのレベルの分析時間を減少し、再エンコードの過程を加速し、圧縮効率の損失が多くならないように保持する。説明の簡潔性を考慮して、以下には、フレーム及びフィールドの2種方式がフレームにより代表される。以下、主として、H264からH264へのトランスコードを例として、本発明をさらに説明する。
図1は、H264エンコーダーのエンコードプロセスを示すブロック図である。本発明の方法において、ME(motion estimate,動き推定)、即ち、interマクロブロック情報に対して多重エンコードし、イントラ(intra)予測選択及びフレーム内予測の部分のコードストリーム情報に対して多重(再利用)エンコードするとともに、デコーダーのフレームインデックスに対して処理を行い、その他の各部分のMC(動き補償)、T(DCT)及びQ(量子化)等は、いずれも先行するエンコード方式に従ってエンコードする。
デコードの際に、原コードストリームをデコードして得たフレームの数をカウントし、カウントした数で現在の出力フレームにマークする。エンコード過程において、原コードストリームのマクロブロックのレベル情報を再利用する必要があるため、エンコーダーの各フレーム画像のslice類型を、原コードストリームと一致させなければならず、さもなければ、インター(inter)ブロックの動きベクトル等の情報を再利用することができない。エンコーダーがエンコードした現在のフレームのslice型は原コードストリームと一致し、マクロブロックのレベルのコードストリーム情報に対してエンコードするときに、原コードストリームのマクロブロックのレベルのコードストリーム情報を再利用する。
図2に示すように、エンコーダーがエンコードした現在フレームのslice類型を、原コードストリームと一致させるステップは、
原コードストリームがNALを入力する、ステップS201と、
NALのnal_unit_typeは5に等しいか否かを判断し、5に等しい場合に、ステップS203を実行し、5に等しくない場合には、ステップS204を実行するステップS202と、
現在のフレームのすべてのsliceをIDR sliceにエンコードするステップS203と、
原コードストリームのフレームのslice類型がB sliceであるか否かを判断して、B sliceである場合に、ステップS206を実行し、B sliceではない場合には、ステップS205を実行するステップS204と、
原コードストリームのフレームのslice類型はI sliceであると、現在フレームのsliceをI sliceにエンコードし、原コードストリームのフレームのslice類型がP sliceであると、現在フレームのsliceをP sliceにエンコードするステップS205と、
nal_ref_idcが0に等しいか否かを判断し、0に等しい場合に、ステップS208を実行し、さもなければ、ステップS207を実行するステップS206と、
現在フレームのsliceをB sliceにエンコードし、現在フレームを参考フレームとしてエンコーダーの参考フレーム隊列に挿入するステップS207と、
現在フレームのsliceをB sliceにエンコードするステップS208と、を含む。
原コードストリームがNALを入力する、ステップS201と、
NALのnal_unit_typeは5に等しいか否かを判断し、5に等しい場合に、ステップS203を実行し、5に等しくない場合には、ステップS204を実行するステップS202と、
現在のフレームのすべてのsliceをIDR sliceにエンコードするステップS203と、
原コードストリームのフレームのslice類型がB sliceであるか否かを判断して、B sliceである場合に、ステップS206を実行し、B sliceではない場合には、ステップS205を実行するステップS204と、
原コードストリームのフレームのslice類型はI sliceであると、現在フレームのsliceをI sliceにエンコードし、原コードストリームのフレームのslice類型がP sliceであると、現在フレームのsliceをP sliceにエンコードするステップS205と、
nal_ref_idcが0に等しいか否かを判断し、0に等しい場合に、ステップS208を実行し、さもなければ、ステップS207を実行するステップS206と、
現在フレームのsliceをB sliceにエンコードし、現在フレームを参考フレームとしてエンコーダーの参考フレーム隊列に挿入するステップS207と、
現在フレームのsliceをB sliceにエンコードするステップS208と、を含む。
エンコーダーは、原h264コードストリームにおける、参考フレーム序列の配列順位を調整及び参考フレーム序列の調整方式であるref_pic_list_modification_flag_lx、adaptive_ref_pic_marking_mode_flag、memory_management_control_operation等の相関情報(参考文献:ITU-T H264 Advanced video coding for generic audiovisual services,8.2.5.1)を再利用することができない。Interマクロブロックをエンコードする時に、マクロブロックレベルのコードストリーム情報であるref_idx_lxを簡単に再利用すると、エンコーダーに参考されるフレームは、原コードストリームの相応的なマクロブロックに参考とされたフレームではなく、取得したものは、原ストリームにおける動きベクトルの最適なマッチング位置でないため、原コードストリームをデコードして得た第1のフレームを0からカウントし、現在の出力フレームをカウント数でマークする同時に、マクロブロックのレベルは、参考フレームのインデックスを伝達するときに、相応的な処理を行う必要がある。
図3に示すように、原コードコードストリームのマクロブロックのレベルのコードストリーム情報を再利用するプロセスは、
現在フレームのマクロブロック、即ち、1つのフレームをエンコードする時に、現在エンコードのマクロブロックを入力するステップS301と、
原コードストリームにはエラーが存在するか否かを判断し、エラーが存在すると、デコーダーによる現在マクロブロックのデコードが失敗し、デコーダーが現在のマクロブロックにエラーをマークし、ステップS308を実行し、エラーが存在しないと、ステップS303を実行するステップS302と、
現在のマクロブロックの類型を判断し、それがintraマクロブロックであると、ステップS304を実行し、さもなければ、ステップS305を実行するステップS303と、
現在のマクロブロックを予処理し、予処理後の原コードストリームが位置マクロブロックに相応する予測方式に従って、エンコードし、前記予処理は、
現在のマクロブロックがIntra_4×4_DC、Intra_16×16_DCまたはIntra_8×8_DCのDC予測方式である場合、現在のマクロブロックまたはブロックを対応のDC予測方式にエンコードし、エンコーダーの現在のフレームsliceの区分によって規格(参考文献:ITU-T H264 Advanced video coding for generic audiovisual services, 8.3.2.2.4)の3種類の方式を採用し予測値を算出する必要があることと、
現在のマクロブロックが他のフレーム内予測方式である場合、現在エンコードのマクロブロック及びそのブロックのmbAddrA、mbAddrB、mbAddrCを算出し、3つのavailability属性が原コードストリームの対応位置と同一であるか否かを判断して、それらが異なっている場合、得ることができない(availiable)方向の予測を除き、全て得ることができないと、DC予測を使用することと、
を含むステップS304と、
このとき、マクロブロックがinterマクロブロックであり、interマクロブロック類型を処理し、原コードストリームの現在のマクロブロックは、それがP_SKIPである場合に、デコーダーがその類型をP_L0_16×16としてマークし、動きベクトルは、デコーダーによる中央値予測の動きベクトルであって、原コードストリームの現在のマクロブロックがB_SKIPである場合に、デコーダーがその類型をB_DIRECT類型としてマークし、その他のinter類型をそのままエンコーダーに出力するステップS305と、
デコーダーが、各マクロブロックを保存する8×8ブロックのref_idx_lxに対応する参考フレームのカウント数をエンコーダーに伝達し、エンコーダー端が8×8ブロックの参考フレームのカウント数を取得した後、エンコーダー参考フレーム隊列から、カウント数が相同であるフレームを探し、それらが存在する場合に、それを参考フレームとしてステップS307を実行し続け、それらが存在しない場合に、エンコーダーの元の動き推定過程を使用し、マクロブロック(interマクロブロック)全体を推定し、即ちステップS308を実行するステップS306と、
interマクロブロックにおける動き情報を再利用し、interマクロブロックにおける動き情報の再利用方式は、
原コードストリーム対応マクロブロックの動きベクトルを、エンコーダーの初期予測ベクトルの一つとして、中央値予測によって得られた動きベクトルを他の方式によって得られた動きベクトルにエンコーダーの元のマッチング準則で比較し、初期捜索点位置を取得することが初期捜索点捜索であり、
原コードストリーム対応マクロブロックの動きベクトルの大きさの全画素部分、動きベクトル参考フレーム、マクロブロック類型、ブロック分割モード、参考フレームインデックスを再利用し、エンコーダーが動きベクトル整数の点を初期捜索点として、再びサブ画素、1/4画素捜索を行い、最終のマッチング位置を取得し、
原コードストリームマクロブロックの動きベクトル、ブロック分割モード、参考フレームインデックス及びマクロブロック類型をそのままに再利用し、残差を算出するステップS307と、
エンコーダーが元のアルゴリズムを利用して現在のマクロブロックを分析し、即ち、図1に対する動き推定及び予測モード選択であるステップS308と、
エンコード後のマクロブロックを出力するステップS309とを含む。
現在フレームのマクロブロック、即ち、1つのフレームをエンコードする時に、現在エンコードのマクロブロックを入力するステップS301と、
原コードストリームにはエラーが存在するか否かを判断し、エラーが存在すると、デコーダーによる現在マクロブロックのデコードが失敗し、デコーダーが現在のマクロブロックにエラーをマークし、ステップS308を実行し、エラーが存在しないと、ステップS303を実行するステップS302と、
現在のマクロブロックの類型を判断し、それがintraマクロブロックであると、ステップS304を実行し、さもなければ、ステップS305を実行するステップS303と、
現在のマクロブロックを予処理し、予処理後の原コードストリームが位置マクロブロックに相応する予測方式に従って、エンコードし、前記予処理は、
現在のマクロブロックがIntra_4×4_DC、Intra_16×16_DCまたはIntra_8×8_DCのDC予測方式である場合、現在のマクロブロックまたはブロックを対応のDC予測方式にエンコードし、エンコーダーの現在のフレームsliceの区分によって規格(参考文献:ITU-T H264 Advanced video coding for generic audiovisual services, 8.3.2.2.4)の3種類の方式を採用し予測値を算出する必要があることと、
現在のマクロブロックが他のフレーム内予測方式である場合、現在エンコードのマクロブロック及びそのブロックのmbAddrA、mbAddrB、mbAddrCを算出し、3つのavailability属性が原コードストリームの対応位置と同一であるか否かを判断して、それらが異なっている場合、得ることができない(availiable)方向の予測を除き、全て得ることができないと、DC予測を使用することと、
を含むステップS304と、
このとき、マクロブロックがinterマクロブロックであり、interマクロブロック類型を処理し、原コードストリームの現在のマクロブロックは、それがP_SKIPである場合に、デコーダーがその類型をP_L0_16×16としてマークし、動きベクトルは、デコーダーによる中央値予測の動きベクトルであって、原コードストリームの現在のマクロブロックがB_SKIPである場合に、デコーダーがその類型をB_DIRECT類型としてマークし、その他のinter類型をそのままエンコーダーに出力するステップS305と、
デコーダーが、各マクロブロックを保存する8×8ブロックのref_idx_lxに対応する参考フレームのカウント数をエンコーダーに伝達し、エンコーダー端が8×8ブロックの参考フレームのカウント数を取得した後、エンコーダー参考フレーム隊列から、カウント数が相同であるフレームを探し、それらが存在する場合に、それを参考フレームとしてステップS307を実行し続け、それらが存在しない場合に、エンコーダーの元の動き推定過程を使用し、マクロブロック(interマクロブロック)全体を推定し、即ちステップS308を実行するステップS306と、
interマクロブロックにおける動き情報を再利用し、interマクロブロックにおける動き情報の再利用方式は、
原コードストリーム対応マクロブロックの動きベクトルを、エンコーダーの初期予測ベクトルの一つとして、中央値予測によって得られた動きベクトルを他の方式によって得られた動きベクトルにエンコーダーの元のマッチング準則で比較し、初期捜索点位置を取得することが初期捜索点捜索であり、
原コードストリーム対応マクロブロックの動きベクトルの大きさの全画素部分、動きベクトル参考フレーム、マクロブロック類型、ブロック分割モード、参考フレームインデックスを再利用し、エンコーダーが動きベクトル整数の点を初期捜索点として、再びサブ画素、1/4画素捜索を行い、最終のマッチング位置を取得し、
原コードストリームマクロブロックの動きベクトル、ブロック分割モード、参考フレームインデックス及びマクロブロック類型をそのままに再利用し、残差を算出するステップS307と、
エンコーダーが元のアルゴリズムを利用して現在のマクロブロックを分析し、即ち、図1に対する動き推定及び予測モード選択であるステップS308と、
エンコード後のマクロブロックを出力するステップS309とを含む。
本発明のコードストリーム情報再利用のトランスコード方法は、VC-1、MPEG2及びMPEG4などのエンコードにも適用され、VC-1、MPEG2及びMPEG4などは、H264と同様に、いずれも変換符号化、動き推定のハイブリッド符号化の枠に基づいている。前者は、H264規格と大きい差異が存在し、例えば、DCT変換、マクロブロックモードなどが異なるが、前者のマクロブロックの動きベクトルを、H264動き推定の時の予測ベクトルの一つとして、動き推定の初期捜索点を予測することができる。
以下、本発明のトランスコード方法及び従来のエンコーダー方法について行われたシミュレーションテスト及びテスト結果の比較を述べる。
シミュレーション環境はwindows7 (登録商標),Intel(R) Core(登録商標)2 Duo CPU E8500 @3.16GHz,memory 4GBであり、デコーダーがffmpegを採用し、エンコーダーがx264を採用して、アルゴリズムに対してシミュレーションを行った。テスト1は本発明の方法のテスト結果であり、テスト2は従来の全デコード全エンコードの方法のテスト結果である。テスト1及びテスト2はいずれも相同のffmpegデコーダー、x264パラメータ、及び同じのテスト源を使用している。テスト1は、原コードストリームのフレームのレベルからマクロブロックのレベルまでの先行情報を再利用し、動きベクトルの再利用は方式cを採用し、マクロブロックのエンコードモードの分析及び動き推定を行わなかった。テスト2は、x264によるデフォルトの分析及び推定過程を使用している。表1及び表2は、両者のPSNR(ピーク信号対雑音比)及び消耗時間の比較である。
「表1」本発明のコードストリーム情報再利用のH264トランスコード方法のテスト結果
(表1)
(表1)
「表2」 従来のトランスコード方法のテスト結果
(表2)
(表2)
以上の実施形態は、ただ本発明を説明するためのものであり、本発明を限定するものではない。当業者は、本発明の要旨及び範囲を脱逸しない場合に、各種の変化及び変更を行うことができる。従って、すべての同等な技術案も本発明の範疇に属し、本発明の特許保護の範囲は、特許請求の範囲によって限定される。
本発明は、原コードストリームを、フレームまたはフィールドのレベルおよびマクロブロックのレベルで再利用することにより、画質を過剰に犠牲することなく、符号化のスピードを加速し、符号化の効率を向上させている。
Claims (4)
- デコードする時に、原コードストリームをデコードして得たフレームまたはフィールドの数をカウントし、カウントした数で現在の出力フレームまたはフィールドをマークし、エンコード過程において、エンコーダーが現在フレーム又はフィールドをエンコードするslice類型を、原コードストリームの各フレームまたはフィールドごとのsliceと一致させ、マクロブロックのレベルのコードストリーム情報をエンコードする時に、原コードストリームのマクロブロックのレベルの情報を再利用することを特徴とするコードストリーム情報再利用のH264トランスコード方法。
- 前記エンコーダーが現在フレームまたはフィールドをエンコードするslice類型を原コードストリームと一致させるステップは、
原コードストリームがNALを入力するステップ(S11)と、
NALのnal_unit_typeが5に等しいか否かを判断し、5に等しい場合に、現在フレームまたはフィールドのすべてのsliceをIDR sliceにエンコードし、5に等しくない場合に、ステップ(S13)を実行するステップ(S12)と、
原コードストリームのフレームまたはフィールドのslice類型がI sliceである場合、現在フレームまたはフィールドのsliceをI sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型がP sliceである場合、現在フレームまたはフィールドのsliceをP sliceにエンコードし、原コードストリームのフレームまたはフィールドのslice類型がB sliceである場合、nal_ref_idcが0に等しいか否かを判断し、0に等しいと、現在のフレームまたはフィールドのsliceをB sliceにエンコードし、0に等しくないと、現在のフレームまたはフィールドのsliceをB sliceにエンコードすると共に、現在フレームまたはフィールドを参考フレームとしてエンコーダーの参考フレーム隊列に挿入するステップ(S13)と、
を含むことを特徴とする請求項1に記載のコードストリーム情報再利用のH264トランスコード方法。 - 前記原コードストリームのマクロブロックのレベルのコードストリーム情報を再利用するステップは、
原コードストリームにはエラーが存在するか否かを判断し、エラーが存在する場合、デコーダーによる現在マクロブロックのデコードが失敗し、デコーダーが現在のマクロブロックにエラーをマークし、エンコーダーが元の動き推定及び予測モードによりアルゴリズムを選択してマクロブロックを分析し、エラーが存在しない場合、ステップS22を実行するステップ(S21)と、
現在のマクロブロックは、それがintraマクロブロックである場合、予処理後の原コードストリームに対応する位置マクロブロックの予測方式によって、エンコードされて、前記予処理は、
現在のマクロブロックがIntra_4×4_DC、Intra_16×16_DCまたはIntra_8×8_DCのDC予測方式である場合、現在のマクロブロックまたはブロックを対応のDC予測方式にエンコードするステップ(S221)と、
現在のマクロブロックが他のフレーム内予測方式である場合、現在のエンコードのマクロブロック及びそのブロックのmbAddrA、mbAddrB、mbAddrCを算出し、この3つのavailability属性が原コードストリーム対応位置と同一であるか否かを判断して、それらが異なっている場合、得ることができない方向の予測を除き、全て得ることができないと、DC予測を使用するステップ(S222)と、を含むステップ(S22)と、
現在のマクロブロック、それがinterマクロブロックである場合、マクロブロックのレベルの情報を再利用するステップは、
マクロブロック類型の処理であり、原コードストリームの現在のマクロブロックがP_SKIPであると、デコーダーがその類型をP_L0_16×16としてマークし、動きベクトルはデコーダーによる中央値予測の動きベクトルであり、原コードストリームの現在のマクロブロックがB_SKIPである場合、デコーダーがそれをB_DIRECT類型としてマークし、その他のinter類型がそのままエンコーダーに出力されるステップ(S231)と、
デコーダーが、保存した各マクロブロックの8×8ブロックのref_idx_lxに対応する参考フレームのカウント数をエンコーダーに伝達し、エンコーダー端が8×8ブロックの参考フレームのカウント数を取得した後、エンコーダー参考フレーム隊列から、カウント数が相同であるフレームまたはフィールドを探し、それらが存在する場合に、それを参考フレームとしてステップ(S233)を実行し続け、さもなければ、エンコーダーの元の動き推定過程を使用し、マクロブロック全体を推定するステップ(S232)と、
Interマクロブロックにおける動き情報を再利用するステップ(S233)と、を含むステップ(S23)と、
エンコード後のマクロブロックを出力するステップ(S24)と、
を含むことを特徴とする請求項2に記載のコードストリーム情報再利用のH264トランスコード方法。 - 前記ステップ(S233)においてinterマクロブロックにおける動き情報を再利用する方式は、
原コードストリーム対応マクロブロックの動きベクトルを、エンコーダーの初期予測ベクトルの一つとして、取得し、これを、中央値予測によって得られた動きベクトル及び他の方式によって得られた動きベクトルとエンコーダーの元のマッチング準則を用いて比較して初期捜索点位置を取得し、
原ストリーム対応マクロブロックの動きベクトルの大きさの全画素部分、動きベクトル参考フレーム、マクロブロック類型、ブロック分割モード、参考フレームインデックスを再利用し、エンコーダーが動きベクトル整数の点を初期捜索点としてから、サブ画素、1/4画素の捜索を行い、最終のマッチング位置を取得し、
原コードストリームマクロブロックの動きベクトル、ブロック分割モード、参考フレームインデックス及びマクロブロック類型をそのまま再利用して残差を算出することを含むことを特徴とする請求項3に記載のコードストリーム情報再利用のH264トランスコード方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2010/002244 WO2012088649A1 (zh) | 2010-12-31 | 2010-12-31 | 复用码流信息的h264转码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014504815A true JP2014504815A (ja) | 2014-02-24 |
Family
ID=46382167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013546546A Pending JP2014504815A (ja) | 2010-12-31 | 2010-12-31 | コードストリーム情報の再利用によるh264トランスコード方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130243099A1 (ja) |
EP (1) | EP2661079A1 (ja) |
JP (1) | JP2014504815A (ja) |
CN (1) | CN102696226B (ja) |
CA (1) | CA2817790A1 (ja) |
WO (1) | WO2012088649A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120281761A1 (en) * | 2011-05-02 | 2012-11-08 | Futurewei Technologies, Inc. | System and Method for Macroblock Transcoding |
CN103686204A (zh) * | 2013-12-20 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 基于转码失败的智能重试的方法和系统 |
US20150271491A1 (en) * | 2014-03-24 | 2015-09-24 | Ati Technologies Ulc | Enhanced intra prediction mode selection for use in video transcoding |
US9712828B2 (en) * | 2015-05-27 | 2017-07-18 | Indian Statistical Institute | Foreground motion detection in compressed video data |
US10531095B2 (en) * | 2015-11-17 | 2020-01-07 | Nbcuniversal Media, Llc | System and method for optimal variable bit rate packing |
CN107277534A (zh) * | 2017-06-15 | 2017-10-20 | 深圳市潮流网络技术有限公司 | 一种视频转码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008206151A (ja) * | 2007-02-16 | 2008-09-04 | Thomson Licensing | 再量子化によるビットレート削減法 |
JP2010062871A (ja) * | 2008-09-03 | 2010-03-18 | Panasonic Corp | より高いピクチャレートの圧縮hd映像を、h.264規格を用いるレガシーhd映像デコーダでの復号に対応可能な、より低いピクチャレートの圧縮映像に変換する方法および装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006518127A (ja) * | 2003-02-18 | 2006-08-03 | ノキア コーポレイション | ピクチャ復号化方法 |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
CN100341333C (zh) * | 2005-05-23 | 2007-10-03 | 上海广电(集团)有限公司中央研究院 | 一种增强像素域码流转换方法 |
MX2009007240A (es) * | 2007-01-08 | 2009-08-07 | Nokia Corp | Sistema y procedimiento para proporcionar y usar señalizacion predeterminada de puntos de interoperabilidad para flujos de medios transcodificados. |
JP4935746B2 (ja) * | 2008-04-07 | 2012-05-23 | 富士通株式会社 | 動画像符号化装置、動画像復号化装置及びその符号化、復号化方法 |
CN101621687B (zh) * | 2008-08-18 | 2011-06-08 | 深圳市铁越电气有限公司 | H.264到avs视频码流转换方法及其装置 |
CN101557512B (zh) * | 2009-05-19 | 2011-07-20 | 武汉长江通信产业集团股份有限公司 | 视频终端接收视频数据延时的处理方法 |
CN101600109A (zh) * | 2009-07-13 | 2009-12-09 | 北京工业大学 | 基于纹理和运动特征的h.264降尺寸转码方法 |
-
2010
- 2010-12-31 JP JP2013546546A patent/JP2014504815A/ja active Pending
- 2010-12-31 CN CN201080057348.4A patent/CN102696226B/zh active Active
- 2010-12-31 US US13/988,550 patent/US20130243099A1/en not_active Abandoned
- 2010-12-31 WO PCT/CN2010/002244 patent/WO2012088649A1/zh active Application Filing
- 2010-12-31 EP EP10861264.9A patent/EP2661079A1/en not_active Withdrawn
- 2010-12-31 CA CA2817790A patent/CA2817790A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008206151A (ja) * | 2007-02-16 | 2008-09-04 | Thomson Licensing | 再量子化によるビットレート削減法 |
JP2010062871A (ja) * | 2008-09-03 | 2010-03-18 | Panasonic Corp | より高いピクチャレートの圧縮hd映像を、h.264規格を用いるレガシーhd映像デコーダでの復号に対応可能な、より低いピクチャレートの圧縮映像に変換する方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102696226A (zh) | 2012-09-26 |
CN102696226B (zh) | 2015-12-02 |
CA2817790A1 (en) | 2012-07-05 |
WO2012088649A1 (zh) | 2012-07-05 |
EP2661079A1 (en) | 2013-11-06 |
US20130243099A1 (en) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230133166A1 (en) | Image encoding method using a skip mode, and a device using the method | |
JP5081305B2 (ja) | フレーム間予測符号化の方法および装置 | |
JP2020102855A (ja) | 画像符号化装置、画像符号化方法、画像復号装置および画像復号方法 | |
TWI407798B (zh) | 運動預測方法與視訊編解碼器 | |
CN105359531A (zh) | 针对屏幕内容编码的编码器侧判定 | |
US9332275B2 (en) | Methods, apparatuses, and programs for encoding and decoding picture | |
Shen et al. | Ultra fast H. 264/AVC to HEVC transcoder | |
KR20170128610A (ko) | 오류 내성을 향상시킨 비디오 인코딩 및 디코딩 | |
GB2492778A (en) | Motion compensated image coding by combining motion information predictors | |
JP2014504815A (ja) | コードストリーム情報の再利用によるh264トランスコード方法 | |
US11425402B2 (en) | Cross-codec encoding optimizations for video transcoding | |
CN111543055A (zh) | 视频编码设备、视频解码设备、视频编码方法、视频解码方法、程序和视频系统 | |
CN114786019A (zh) | 图像预测方法、编码器、解码器以及存储介质 | |
JP2004128749A (ja) | 動画像符号化方法及び復号化方法 | |
US20160127731A1 (en) | Macroblock skip mode judgement method for encoder | |
CN110351552B (zh) | 视频编码中一种快速编码方法 | |
CN108401185B (zh) | 参考帧选择方法、视频转码方法、电子设备和存储介质 | |
KR20170114598A (ko) | 적응적 색상 순서에 따른 색상 성분 간 예측을 이용한 동영상 부호화 및 복호화 방법 및 장치 | |
TWI559751B (zh) | 用於評估要轉換成被跳過巨集區塊的巨集區塊候選者的方法、系統和電腦程式產品 | |
KR101668133B1 (ko) | 화상 데이터의 블록을 예측하는 방법, 이 방법을 실행하는 복호 장치 및 부호화 장치 | |
CN103581690A (zh) | 视频译码方法、视频译码器、视频编码方法和视频编码器 | |
JP2009206911A (ja) | 動画像変換装置 | |
RU2808075C1 (ru) | Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы | |
RU2782400C2 (ru) | Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы | |
CN112153385B (zh) | 编码处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140204 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140701 |