IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7026112ビデオ符号化処理方法、装置、及び記憶媒体
<>
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図1A
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図1B
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図2
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図3
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図4
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図5
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図6
  • 特許-ビデオ符号化処理方法、装置、及び記憶媒体 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-16
(45)【発行日】2022-02-25
(54)【発明の名称】ビデオ符号化処理方法、装置、及び記憶媒体
(51)【国際特許分類】
   H04N 19/107 20140101AFI20220217BHJP
   H04N 19/14 20140101ALI20220217BHJP
   H04N 19/149 20140101ALI20220217BHJP
   H04N 19/176 20140101ALI20220217BHJP
【FI】
H04N19/107
H04N19/14
H04N19/149
H04N19/176
【請求項の数】 21
(21)【出願番号】P 2019524914
(86)(22)【出願日】2018-04-26
(65)【公表番号】
(43)【公表日】2019-12-26
(86)【国際出願番号】 CN2018084563
(87)【国際公開番号】W WO2018201954
(87)【国際公開日】2018-11-08
【審査請求日】2019-05-13
(31)【優先権主張番号】201710305306.1
(32)【優先日】2017-05-03
(33)【優先権主張国・地域又は機関】CN
【前置審査】
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マオ,シュナン
【審査官】鉢呂 健
(56)【参考文献】
【文献】特開2007-243337(JP,A)
【文献】特開2002-034041(JP,A)
【文献】特表2007-524279(JP,A)
【文献】中国特許出願公開第104902271(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00ー19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオ符号化処理方法であって、電子機器に適用され、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが、符号化済みのビデオフレームと前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームにおける符号化済みのマクロブロックと前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果と前記符号化待ちマクロブロックのK(Kは正の整数)個の隣接符号化済みのマクロブロックの符号化方式とに基づいて、フレーム内予測符号化の可能性とフレーム間予測符号化の可能性とを取得し、
前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性及びフレーム間予測符号化を行う可能性と符号化方式との間の所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに応じて、前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式はフレーム内予測符号化又はフレーム間予測符号化を含み、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、ことを含むビデオ符号化処理方法。
【請求項2】
記比較結果と前記符号化待ちマクロブロックの(Kは正の整数)個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性と前記フレーム間予測符号化の可能性とを取得することは、
前記比較結果が、前記フレーム内符号化コストがA(Aが第1の値よりも大きい係数)に前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム間予測符号化の可能性を第1のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定し、
前記比較結果が、前記フレーム間符号化コストがB(Bが第2の値よりも大きい係数)に前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム内予測符号化の可能性を第2のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定する、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項3】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム内予測符号化の可能性を第3のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値よりも小さい場合に、前記フレーム内予測符号化の可能性を第4のプリセット値に設置する、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項4】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第3の値以上である場合に、前記フレーム内予測符号化の可能性を前記第2のプリセット値に設置することをさらに含む請求項に記載のビデオ符号化処理方法。
【請求項5】
前記符号化方式は、フレーム内予測符号化及びフレーム間予測符号化を同時に実行すること、或いは、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することをさらに含み、
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに応じて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム内予測符号化の可能性が前記第3のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することとして確定し、
前記フレーム内予測符号化の可能性が前記第4のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化として確定し、
前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定する、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項6】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム間予測符号化の可能性を第5のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第4の値以上である場合に、前記フレーム間予測符号化の可能性を第6のプリセット値に設置する、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項7】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第4の値よりも小さい場合に、前記フレーム間予測符号化の可能性を前記第1のプリセット値に設置する、ことをさらに含む請求項に記載のビデオ符号化処理方法。
【請求項8】
前記符号化方式は、フレーム内予測符号化及びフレーム間予測符号化を同時に実行すること、或いは、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することをさらに含み、
前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに応じて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム間予測符号化の可能性が前記第5のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することとして確定し、
前記フレーム間予測符号化の可能性が前記第6のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定し、
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定する、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項9】
前記符号化待ちビデオフレームから符号化待ちマクロブロックを確定することは、
符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得し、
前記プリコーディングビデオフレームを複数のマクロブロックに分割し、
複数のマクロブロックの各々を符号化待ちマクロブロックとして確定する、ことを含む請求項1に記載のビデオ符号化処理方法。
【請求項10】
記符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得することは、
前記符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、ターゲットビデオフレームを取得し、
前記ターゲットビデオフレームを調整することで、調整後の前記プリコーディングビデオフレームを取得し、前記プリコーディングビデオフレームの長さが前記符号化待ちマクロブロックの長さの整数倍になるようにし、前記プリコーディングビデオフレームの幅が前記符号化待ちマクロブロックの幅の整数倍になるようにする、ことを含む請求項に記載のビデオ符号化処理方法。
【請求項11】
ビデオ符号化処理装置であって、
プロセッサーと、前記プロセッサーに接続されているメモリとを含み、前記メモリに前記プロセッサーが実行可能な機械読み取り可能な命令が記憶され、前記プロセッサーは前記機械読み取り可能な命令を実行することで以下の操作を完成し、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより、前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが、符号化済みのビデオフレーム及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、

少なくとも1種類のフレーム内符号化モードにより、前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームにおける符号化済みのマクロブロック及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果と前記符号化待ちマクロブロックのK(Kは正の整数)個の隣接符号化済みのマクロブロックの符号化方式とに基づいて、フレーム内予測符号化の可能性とフレーム間予測符号化の可能性とを取得し、
前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性及びフレーム間予測符号化を行う可能性と符号化方式との間の所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と、取得した前記フレーム間予測符号化の可能性とに基づいて、前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式はフレーム内予測符号化又はフレーム間予測符号化を含み、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、ことを含むビデオ符号化処理装置。
【請求項12】
記比較結果と前記符号化待ちマクロブロックの(Kは正の整数)個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性と前記フレーム間予測符号化の可能性とを取得することは、
前記比較結果が、前記フレーム内符号化コストがA(Aが第1の値よりも大きい係数)に前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム間予測符号化の可能性を第1のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定し、
前記比較結果が、前記フレーム間符号化コストがB(Bが第2の値よりも大きい係数)に前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム内予測符号化の可能性を第2のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定する、ことを含む請求項11に記載のビデオ符号化処理装置。
【請求項13】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム内予測符号化の可能性を第3のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値よりも小さい場合に、前記フレーム内予測符号化の可能性を第4のプリセット値に設置する、ことを含む請求項12に記載のビデオ符号化処理装置。
【請求項14】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第3の値以上である場合に、前記フレーム内予測符号化の可能性を前記第2のプリセット値に設置することをさらに含む請求項13に記載のビデオ符号化処理装置。
【請求項15】
前記符号化方式は、フレーム内予測符号化及びフレーム間予測符号化を同時に実行すること、或いは、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することをさらに含み、
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに応じて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム内予測符号化の可能性が前記第3のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することとして確定し、
前記フレーム内予測符号化の可能性が前記第4のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化として確定し、
前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定する、ことを含む請求項14に記載のビデオ符号化処理装置。
【請求項16】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム間予測符号化の可能性を第5のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第4の値以上である場合に、前記フレーム間予測符号化の可能性を第6のプリセット値に設置する、ことを含む請求項12に記載のビデオ符号化処理装置。
【請求項17】
記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置がエッジであるか否か、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定することは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第4の値よりも小さい場合に、前記フレーム間予測符号化の可能性を前記第1のプリセット値に設置することをさらに含む請求項16に記載のビデオ符号化処理装置。
【請求項18】
前記符号化方式は、フレーム内予測符号化及びフレーム間予測符号化を同時に実行すること、或いは、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することをさらに含み、

前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに応じて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム間予測符号化の可能性が前記第5のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することとして確定し、
前記フレーム間予測符号化の可能性が前記第6のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定し、
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定する、ことを含む請求項17に記載のビデオ符号化処理装置。
【請求項19】
前記符号化待ちビデオフレームから符号化待ちマクロブロックを確定することは、
符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得し、
前記プリコーディングビデオフレームを複数のマクロブロックに分割し、
複数のマクロブロックの各々を符号化待ちマクロブロックとして確定する、ことを含む請求項11に記載のビデオ符号化処理装置。
【請求項20】
前記符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得することは、
前記符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、ターゲットビデオフレームを取得し、
前記ターゲットビデオフレームを調整することで、調整後の前記プリコーディングビデオフレームを取得し、前記プリコーディングビデオフレームの長さは、前記符号化待ちマクロブロックの長さの整数倍になるようにし、前記プリコーディングビデオフレームの幅は前記符号化待ちマクロブロックの幅の整数倍になるようにする、ことを含む請求項19に記載のビデオ符号化処理装置。
【請求項21】
不揮発性コンピュータ読み取り可能な記憶媒体であって、前記記憶媒体に機械読み取り可能な命令が記憶され、前記機械読み取り可能な命令は、プロセッサーによって実行されて、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが符号化済みのビデオフレーム、及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さく、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが前記符号化待ちビデオフレームにおける符号化済みのマクロブロック及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果と前記符号化待ちマクロブロックのK(Kは正の整数)個の隣接符号化済みのマクロブロックの符号化方式とに基づいて、フレーム内予測符号化の可能性とフレーム間予測符号化の可能性とを取得し、
前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性及びフレーム間予測符号化を行う可能性と符号化方式との間の所定の対応関係を利用して、取得した前記フレーム内予測符号化の可能性と取得した前記フレーム間予測符号化の可能性とに基づいて、前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式はフレーム内予測符号化又はフレーム間予測符号化を含み、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、操作を完成させる不揮発性コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
<関連出願>
本願は、2017年5月3日に中国専利局に提出した、出願番号が201710305306.1であって、発明の名称が「ビデオ符号化処理方法、装置及電気機器」である中国特許出願の優先権を主張し、本願で、その全ての内容を援用するものとする。
<技術分野>
【0002】
本願は、ビデオ符号化の技術分野に関し、より具体的に、ビデオ符号化処理方法、装置、及び記憶媒体に関する。
<背景技術>
【0003】
ビデオデータが徐々に増加していき、ビデオ圧縮技術は、ビデオデータの伝送及び記憶を最適化するためのキーとなっている。
【0004】
ビデオ圧縮技術(例えば、H.26xシリーズなどのようなビデオ圧縮技術)は、主に、ビデオ信号における冗長を消去することでビデオの圧縮を実現し、その中、予測符号化技術がよく使用されている。予測符号化を行うプロセスにおいて、各フレームのビデオを複数のマクロブロック(MB,Macro block)に分割する必要があり、次に、それぞれ各マクロブロックに対して予測符号化を行い、係る符号化方式は、主に、フレーム内予測符号化とフレーム間予測符号化に分ける。
【発明の概要】
【0005】
本願の実施例は、ビデオ符号化処理方法を提供し、電子機器に適用され、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが、符号化済みのビデオフレームと前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームにおける符号化済みのマクロブロックと、前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果に基づいて、フレーム内予測符号化又はフレーム間予測符号化を含む前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、ことを含んでいる。
【0006】
本願の実施例はビデオ符号化処理装置を提供し、
プロセッサーと、前記プロセッサーに接続されているメモリとを含み、前記メモリに前記プロセッサーが実行可能な機械読み取り可能な命令が記憶され、前記プロセッサーは前記機械読み取り可能な命令を実行することで以下の操作を完成し、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより、前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが、符号化済みのビデオフレーム及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、

少なくとも1種類のフレーム内符号化モードにより、前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームのうち符号化済みのマクロブロック、及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果に基づいて、フレーム内予測符号化又はフレーム間予測符号化を含む前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、ことを含んでいる。
【0007】
本願の実施例は、不揮発性コンピュータ読み取り可能な記憶媒体を提供し、
前記記憶媒体に機械読み取り可能な命令を記憶し、前記機械読み取り可能な命令は、プロセッサーによって実行され、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが符号化済みのビデオフレーム、及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが前記符号化待ちビデオフレームのうち符号化済みのマクロブロック及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
比較結果に基づいて、フレーム内予測符号化又はフレーム間予測符号化を含む前記符号化待ちマクロブロックの符号化方式を確定し、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、操作を完成させる。
【図面の簡単な説明】
【0008】
本願の実施例における技術案をより明確に説明するために、以下で実施例の記述において使用する必要がある図面を簡単に紹介し、もちろん、以下に記述の図面が本願の実施例に過ぎず、当業者にとって、創造的な労力をしない前提で、これらの図面に応じて他の図面を得ることもできる。
図1A】本願の実施例で提供されるビデオ符号化処理方法の実施環境の概略図である。
図1B】本願の実施例で提供されるビデオ符号化処理方法のフローチャートである。
図2】本願の実施例で提供される符号化待ちビデオフレームの概略図である。
図3】本願の実施例で提供される異なる場合における符号化待ちマクロブロックの符号化プロセスの概略図である。
図4】本願の実施例で提供される異なる場合における符号化待ちマクロブロックの符号化プロセスの概略図である。
図5】本願の実施例で提供される符号化待ちビデオフレームから符号化待ちマクロブロックを確定する方法のフローチャートである。
図6】本願の実施例で提供されるビデオ符号化処理装置の構成図である。
図7】本願の実施例で提供される電子機器の構成図である。
【発明を実施するための形態】
【0009】
以下に、本願実施例における図面と結び付けて、本願の実施例における技術案を明確かつ十分に記述するが、明らかに、記述する実施例は本願の一部の実施例に過ぎず、実施例の全てではない。本願における実施例に基づいて、当業者が創造的な労力をしない前提で得られる全ての他の実施例は、本願の保護する範囲に属する。
【0010】
予測符号化技術は、離散信号の間に一定の関連性が存在するという特性に応じて、一つ又は複数の過去の信号を用いて次の信号を予測した後、実際値と予測値との差 (予測誤差)を符号化する。現在、符号化待ちマクロブロックに対して予測符号化を行うプロセスにおいて、フレーム内予測符号化及びフレーム間予測符号化を行う必要がある。フレーム内予測符号化は、同一のフレームにおける画素値を利用して予測し、そして、予測誤差に対して量子化及び符号化を行う。フレーム間予測符号化は、隣接フレームにおける画素値を利用して予測し、そして、予測誤差に対して量子化及び符号化を行う。
【0011】
フレーム間予測符号化は、異なるサイズのマクロブロックの分割及びサブ分割方法を採用してもよく、異なるサイズのマクロブロックのフレーム間符号化モードをサポートし、例えば、各マクロブロックは、16×16、16×8、8×16、8×8に従って分割してもよく、8×8マクロブロックを選択すると、8×4、4×8、4×4に従ってサブマクロブロックのサブ分割を行ってもよい。分割方式が異なるマクロブロックに対応するフレーム間符号化モードは異なる。フレーム間予測符号化の実行中において、各種のフレーム間符号化モードの符号化コストを算出する必要がある。符号化コストが大きいほど、同じビデオ品質を達成するために必要なビットレート(データ伝送で単位時間当たりに伝送されるデータのビット数)は高くなる。
【0012】
フレーム内予測符号化は、異なるサイズのマクロブロック分割及びサブ分割方法を採用してもよく、様々な異なるサイズのマクロブロックのフレーム内符号化モードをサポートし、各分割方式は、1種類又は多種類のフレーム内符号化モードに対応する。フレーム内予測符号化の実行において、各種のフレーム内符号化モードの符号化コストを算出する必要がある。
【0013】
最終的に、各フレーム間符号化モードに対応する符号化コスト、及び各フレーム内符号化モードに対応する符号化コストから、最小の符号化コストに対応する符号化モードを確定し、当該符号化モードを、当該マクロブロックの最適符号化モードとして確定する。
【0014】
以上のように、現在、ビデオ圧縮を行う場合に、各フレーム間符号化モード及び各フレーム内符号化モードの両方を算出する必要があり、符号化における処理量が増加してしまう。如何に符号化における処理量を減らすかは、当業者によって解決される必要がある問題となっている。
【0015】
本願の実施例で提供されるビデオ符号化処理方法は、処理量がフレーム間予測符号化及びフレーム内予測符号化よりも小さい、またははるかに小さい方式を利用して、フレーム間符号化コスト及びフレーム内符号化コストを取得し、次に、フレーム間符号化コストとフレーム内符号化コストとの比較結果に基づいて、符号化待ちマクロブロックの符号化方式、即ちフレーム内予測符号化やフレーム間予測符号化を確定することにより、符号化待ちマクロブロックは、符号化処理でフレーム内予測符号化またはフレーム間予測符号化のみで符号化を完成でき、符号化プロセスに係る処理量を削減し、処理速度と処理性能を向上させる。
【0016】
本願の実施例で提供されるビデオ符号化処理方法は、ビデオ圧縮技術を採用する必要がある応用シナリオ、例えば、端末の間でビデオチャットを行う応用シナリオ(具体的に、例えば、Wechat、QQなどの通信ソフトウェアを使用してビデオチャットを行う)、端末やサーバに大量のビデオを記憶する必要がある応用シナリオ(例えば、監視ビデオ)などに応用されてもよく、本願の実施例で提供されるビデオ符号化処理方法を使用することにより、ビデオの圧縮速度を大幅に速めることができる。
【0017】
図1Aは、本願の実施例で提供されるビデオ符号化処理方法の実施環境の概略図である。その中、本願のいずれかの実施例で提供されるビデオ符号化処理装置は、電子機器10に組み込まれ、本願のいずれかの実施例で提供されるビデオ符号化処理方法を実現するために用いられる。当該電子機器10は、ネットワーク30を介してサーバ20に接続され、前記ネットワーク30は、有線ネットワークでも無線ネットワークでもよい。
【0018】
以下、本願の実施例で提供されるビデオ符号化処理方法について詳細に説明する。
【0019】
図1Bに示すように、本願の実施例で提供されるビデオ符号化処理方法のフローチャートであり、当該方法は上記の電子機器に応用される。当該方法は以下のステップを含む。
【0020】
ステップS101において、符号化待ちビデオフレームから符号化待ちマクロブロックを確定する。
【0021】
図2に示すように、本願の実施例で提供される符号化待ちビデオフレームの概略図である。
【0022】
図2に示すように、符号化待ちビデオフレームは、マクロブロック1、マクロブロック2、マクロブロック3、マクロブロック4、マクロブロック5、マクロブロック6、マクロブロック7、マクロブロック8、及びマクロブロック9の9つのマクロブロックに分割されていると仮定する。
【0023】
本願の実施例において、符号化待ちビデオフレームをトラバースする方式は、上から下へ、そして、左から右へ、順に符号化待ちビデオフレームにおける各符号化マクロブロックを、符号化待ちマクロブロックとして確定する。既にマクロブロック1、マクロブロック2、マクロブロック3、及びマクロブロック4について、それぞれ本願の実施例で提供されるビデオ符号化処理方法により符号化し、現在の符号化待ちマクロブロックはマクロブロック5であると仮定する。
【0024】
ステップS102において、少なくとも1種類のフレーム間符号化モードにより、前記符号化待ちマクロブロックのフレーム間符号化コストを取得する。
【0025】
「少なくとも1種類のフレーム間符号化モード
」は、以下の場合を含んでいる。
【0026】
第1の場合:前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さい。
【0027】
フレーム間符号化モードの総数をM(Mは正の整数)とし、少なくとも1種類のフレーム間符号化モードの数をNとすると、N<Mとなる。
【0028】
ステップS102において、N(N<M)種類のフレーム間符号化モードの符号化コストを取得し、最小の符号化コストをフレーム間符号化コストとすることができる。
【0029】
N種類のフレーム間符号化モードの符号化コストを取得するプロセスにおいて、符号化コスト算式を用いる必要がある。ステップS102はN種類のフレーム間符号化モードの符号化コストを取得するプロセスで、未簡略化の符号化コスト算式を使用してもよいし、簡略化の符号化コスト算式を使用してもよい。未簡略化の符号化コスト算式に係る処理量は簡略化の符号化コスト算式に係る処理量よりも大きい、又ははるかに大きい。
【0030】
簡略化の符号化コスト算式、及び未簡略化の符号化コスト算式に係る処理量をさらに説明するために、本願の実施例は、以下に示す符号化コスト算式costを提供するが、これに限定されない。
cost=D+λ×R
その中、Dは、符号化済みのビデオフレームと前記符号化待ちビデオフレームを利用して得られる符号化待ちマクロブロックの予測値と、符号化待ちマクロブロックの実際値との誤差であり、平均二乗誤差で示してもよく、λは、ラグランジュ乗数であり、Rは符号化待ちマクロブロックがエントロピー符号化されたビット数である。
【0031】
簡略化の符号化コスト算式はcost=Dであってもよい。
【0032】
Dの算出プロセスは比較的複雑であり、まず、符号化済みのビデオフレームと前記符号化待ちビデオフレームを利用して符号化待ちマクロブロックの予測値と、符号化待ちマクロブロックの実際値との絶対誤差和SADを取得し、そして、SADに基づいてDを算出する。
【0033】
本願の実施例において簡略化の符号化コスト算式は、cost=SAD+λ×R、或いは、cost=SADであってもよい。
【0034】
本願の実施例において、DとSADとを、符号化済みのビデオフレーム及び前記符号化待ちビデオフレームを利用して得られる誤差情報と総称する。
【0035】
以上のように、N<Mであるので、N種類のフレーム間符号化モードの符号化コストを取得するプロセスにおいて、簡略化の符号化コスト算式を採用するか否かにかかわらず、係る処理量はフレーム間予測符号化に係る処理量よりも小さい。
【0036】
第2の場合:前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストは、符号化済みのビデオフレームと、前記符号化待ちビデオフレームを利用して得られる誤差情報である。
【0037】
第2の場合において、少なくとも1種類のフレーム間符号化モードの量は制限しないので、前記少なくとも1種類のフレーム間符号化モードの数N≦フレーム間符号化モード総数Mである。「少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得する」ことに係る処理量を削減するために、N種類のフレーム間符号化モードの符号化コストを算出するプロセスにおいて、少なくとも1種類のフレーム間符号化モードの符号化コストが簡略化の符号化コスト算式を採用する必要がある。
【0038】
第1の場合及び第2の場合から、本願の一実施例において、前記少なくとも1種類のフレーム間符号化モードの数N<フレーム間符号化モードの総数M、且つN種類のフレーム間符号化モードの符号化コストを算出するプロセスにおいて簡略化の符号化コスト算式を採用することが分かる。
【0039】
ステップS103において、少なくとも1種類のフレーム内符号化モードにより、前記符号化待ちマクロブロックのフレーム内符号化コストを取得する。
【0040】
「少なくとも1種類のフレーム内符号化モード」は以下の場合を含んでいる。
【0041】
第1の場合:前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さい。
【0042】
フレーム内符号化モードの総数がL(Lが正の整数) であり、前記少なくとも1種類のフレーム内符号化モードの数がPであると仮定すると、P<Lとなる。
【0043】
例えば、フレーム内予測符号化において16×16マクロブロックに対応する5種類のフレーム内符号化モード、及び4×4マクロブロックに対応する9種類のフレーム内符号化モードから、4種類の4×4マクロブロックに対応するフレーム内符号化モードのみを選択してもよく、このようなシナリオにおいて、P=4、L=14である。
【0044】
ステップS103において、P種類のフレーム内符号化モードの符号化コストを取得し、最小の符号化コストをフレーム内符号化コストとしてもよい。
【0045】
P種類のフレーム内符号化モードの符号化コストを取得するプロセスにおいて、符号化コスト算式を利用する必要がある。ステップS103におけるP種類のフレーム内符号化モードの符号化コストを取得するプロセスでは、未簡略化の符号化コスト算式を使用してもよいし、簡略化の符号化コスト算式を使用してもよい。未簡略化の符号化コスト算式に係る処理量は、簡略化の符号化コスト算式に係る処理量よりも大きい又ははるかに大きい。
【0046】
簡略化の符号化コスト算式、及び未簡略化の符号化コスト算式に係る処理量をさらに説明するために、本願の実施例は、以下に示す符号化コスト算式costを提供するが、これに限定されない。
cost=D+λ×R
その中、Dは前記符号化待ちビデオフレームのうち符号化済みのマクロブロック及び前記符号化待ちビデオフレームを利用して得られる符号化待ちマクロブロックの予測値と、符号化待ちマクロブロックの実際値との誤差であり、平均二乗誤差で示されてもよく、λはラグランジュ乗数であり、Rは符号化待ちマクロブロックがエントロピー符号化されたビット数である。
【0047】
簡略化の符号化コスト算式はcost=Dであってもよい。
【0048】
Dの算出プロセスは比較的複雑であり、まず、前記符号化待ちビデオフレームのうち符号化済みのマクロブロック、及び前記符号化待ちビデオフレームとを利用して、符号化待ちマクロブロックの予測値と、符号化待ちマクロブロックの実際値との絶対誤差和SADを取得し、そして、SADに基づいてDを算出する。
【0049】
]
本願の実施例において、簡略化の符号化コスト算式はcost=SAD+λ×R、或いは、cost=SADであってもよい。
【0050】
本願の実施例において、DとSADを、前記符号化待ちビデオフレームのうち符号化済みのマクロブロック及び前記符号化待ちビデオフレームとを利用して得られる誤差情報と総称する。
【0051】
以上のように、P<Lであるので、P種類のフレーム内符号化モードの符号化コストを取得するプロセスにおいて、簡略化の符号化コスト算式を採用するか否かにかかわらず、係る処理量は、フレーム内予測符号化に係る処理量よりも小さい。
【0052】
第2の場合:前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストは、前記符号化待ちビデオフレームのうち符号化済みのマクロブロック及び前記符号化待ちビデオフレームを利用して得られる誤差情報である。
【0053】
第2の場合において、少なくとも1種類のフレーム内符号化モードの数を限定せず、前記少なくとも1種類のフレーム内符号化モードの数P≦フレーム間符号化モードの総数Lである。「少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得する」ことに係る処理量を削減するために、P種類のフレーム内符号化モードの符号化コストを算出するプロセスにおいて、少なくとも1種類のフレーム内符号化モードの符号化コストが簡略化の符号化コスト算式を採用する必要がある。
【0054】
第1の場合及び第2の場合から、本願の一実施例において、前記少なくとも1種類のフレーム内符号化モードの数P<フレーム内符号化モードの総数Lであり、且つP種類のフレーム内符号化モードの符号化コストを算出するプロセスにおいて簡略化の符号化コスト算式を採用することが分かる。
【0055】
ステップS102とステップS103は、優先関係は存在せず、同時に実行してもよいし、まず、ステップS102を実行し、次にステップS103を実行してもよいし、まず、ステップS103を実行し、次にステップS102を実行してもよい。
【0056】
ステップS104において、前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得する。
【0057】
ステップS105において、前記比較結果に基づいて、フレーム内予測符号化又はフレーム間予測符号化を含む前記符号化待ちマクロブロックの符号化方式を確定する。
【0058】
本願の実施例において、前記比較結果は、前記フレーム内符号化コストがAに前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、即ち、前記フレーム内符号化コスト>(A×前記フレーム間符号化コスト)である場合に、前記符号化待ちマクロブロックの符号化方式をフレーム間予測符号化として確定し、その中、Aは第1の値よりも大きい係数である。
【0059】
前記比較結果は、前記フレーム間符号化コストがBに前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、即ち、前記フレーム間符号化コスト>(B×前記フレーム内符号化コスト)である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定し、その中、Bは第2の値よりも大きい係数である。
【0060】
第1の値は、1以上であり、Aは1よりも大きい任意の正数、例えば、2、3などであってもよい。
【0061】
第2の値は、1以上であり、Bは、1よりも大きい任意の正数、例えば、1.2、1.5、2などであってもよく。
【0062】
ステップS102、ステップS103は、一部のフレーム間符号化モードを採用してフレーム間符号化コストを取得し、一部のフレーム内符号化モードを採用してフレーム内符号化コストを取得し、又は、簡略化の符号化コスト算式を採用してフレーム内符号化コスト及びフレーム間符号化コストを取得する可能性があるので、フレーム間符号化コストとフレーム内符号化コストとの比較結果に基づいて、フレーム内予測符号化を用いるかフレーム間予測符号化を用いるかは、概略的にしか決定できず、具体的にどの符号化モードを採用するかは、さらに判断する必要がある。
【0063】
ステップS106において、前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する。
【0064】
符号化方式がフレーム内予測符号化であると、ステップS106において、フレーム内予測符号化のうち各フレーム内符号化モードの符号化コストを算出する必要があり、最小の符号化コストに対応する符号化モードを符号化待ちマクロブロックの最適符号化モードとして確定し、最適符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0065】
符号化方式がフレーム間予測符号化であると、ステップS106において、フレーム間予測符号化のうち各フレーム間符号化モードの符号化コストを算出する必要があり、最小の符号化コストに対応する符号化モードを符号化待ちマクロブロックの最適符号化モードとして確定し、最適符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0066】
当業者に本願の実施形態による有益な効果をよりよく理解させるために、以下一つの具体的例を挙げて説明する。ステップS102における「少なくとも1種類のフレーム間符号化モード」の数が1であり、ステップS103における「少なくとも1種類のフレーム内符号化モード」の数は1であり、ステップS105にて確定された符号化方式がフレーム内予測符号化であると仮定すると、ステップS106においてフレーム内予測符号化に係る各フレーム内符号化モードの符号化コストを算出する必要があり、フレーム内符号化モードの総数がLであると仮定すると、本願の実施例において、マクロブロックを符号化するプロセスに係る処理量は2+Lとなり、従来の技術におけるマクロブロックを符号化するプロセスに係る処理量はL+M(フレーム間符号化モードの総数)であり、一般的に、Mは10よりも大きいので、本願の実施例で提供される方法を採用することで、符号化のプロセスに係る処理量は削減できる。
【0067】
本願の実施例で提供されるビデオ符号化処理方法は、処理量がフレーム間予測符号化及びフレーム内予測符号化よりも小さい、又ははるかに小さい方式を利用して、フレーム間符号化コストとフレーム内符号化コストを取得し、次に、フレーム間符号化コストとフレーム内符号化コストとの比較結果に基づいて、符号化待ちマクロブロックの符号化方式、即ち、フレーム内予測符号化又はフレーム間予測符号化を確定することにより、符号化待ちマクロブロックは、符号化を行うプロセスにおいてフレーム内予測符号化又はフレーム間予測符号化のみで符号化を完成でき、符号化のプロセスに係る処理量を削減し、処理速度及び処理性能を向上させる。
【0068】
さらに、本願の実施例では、符号化待ちマクロブロックの符号化方式を確定するプロセスにおいて、フレーム間符号化コストとフレーム内符号化コストとの比較結果に基づいて取得し、フレーム間符号化コストとフレーム内符号化コストのどうらも、符号化待ちマクロブロックに基づいて得られ、即ち、符号化待ちビデオフレーム自分の特徴、例えば、テクスチャや、細部、エッジなどを組合せるので、符号化方式の確定はより正確になるようにする。
【0069】
フレーム間符号化コスト又はフレーム内符号化コストを固定値と比較すると、固定値は符号化待ちマクロブロックの内容と関係しないので、フレーム間符号化コストと固定値とを比較した結果、又はフレーム内符号化コストと固定値とを比較した結果に基づいて、符号化方式を確定すると、得られる符号化方式は不正確となり、例えば、符号化待ちビデオフレームは多くの細部を有し、当該符号化待ちビデオフレームのうち符号化待ちマクロブロックは、フレーム間符号化コストであってもフレーム内符号化コストであっても、相応する固定値よりも大きい可能性がある。従って、フレーム間符号化コストが固定値よりも大きいだけで、符号化方式をフレーム内予測符号化として確定するプロセスは不正確であり、本願の実施例は、そのようなことが完全に回避される。
【0070】
上記実施例において、「前記比較結果に基づいて、前記符号化待ちマクロブロックの符号化方式を確定する」ことは複数種類があり、本願の実施例は、以下の方法を提供するが、これらに限定されない。
前記比較結果に基づいて、前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性と、フレーム間予測符号化を行う可能性を取得する。
前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性に基づいて、前記符号化待ちマクロブロックの符号化方式を確定する。
【0071】
可能性は、確率イベントであってもよく、可能性が大きいほど、この方式を採用して符号化を行うことが最適である可能性は大きくなる。
【0072】
本願の実施例において、「前記比較結果に基づいて、前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性と、フレーム間予測符号化を行う可能性を取得する」方法は複数があり、本願の実施例は以下のいくつかを提供するが、これらに限定されない。
【0073】
第1の方法:
前記比較結果が、前記フレーム内符号化コストがAに前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、フレーム内予測符号化の可能性がフレーム間予測符号化の可能性よりも小さいと確定する。
【0074】
本願の実施例において、さらに、前記符号化待ちマクロブロックの符号化方式がフレーム間予測符号化であると確定し、Aは第1の値よりも大きい係数である。
前記比較結果が、前記フレーム間符号化コストがBに前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、フレーム間予測符号化の可能性がフレーム内予測符号化の可能性よりも小さいと確定する。
【0075】
本願の実施例において、さらに、前記符号化待ちマクロブロックの符号化方式がフレーム内予測符号化である確定し、Bは第2の値よりも大きい係数である。
【0076】
第2の方法:
前記符号化待ちマクロブロックのK(Kが正の整数)個の隣接符号化済みのマクロブロックの符号化方式を取得する。
前記比較結果に基づいて、K個の隣接符号化済みのマクロブロックの符号化方式に基づき、前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性とを取得する。
【0077】
符号化待ちマクロブロックの符号化待ちビデオフレームにおける位置が異なり、Kの具体的値が異なり、依然として、図2を例にとって、マクロブロック1が符号化待ちマクロブロックであると、Kがゼロであり、マクロブロック2が符号化待ちマクロブロックであると、Kが1であり、マクロブロック2に隣接する符号化済みのマクロブロックがマクロブロック1であり、マクロブロック3が符号化待ちマクロブロックであると、Kが1であり、マクロブロック3に隣接する符号化済みのマクロブロックがマクロブロック2であり、マクロブロック4が符号化待ちマクロブロックであると、Kが2であり、マクロブロック4に隣接する符号化済みのマクロブロックがマクロブロック1とマクロブロック2であり、マクロブロック5が符号化待ちマクロブロックであると、Kが4であり、且つマクロブロック5に隣接する符号化済みのマクロブロックがマクロブロック1、マクロブロック2、マクロブロック3、マクロブロック4であり、こうように類推し、ここで再び説明しない。
【0078】
以上のように、本願の実施例において定義される「隣接する」とは、符号化待ちマクロブロック(マクロブロック5であるとする)の左側マクロブロック(例えば、マクロブロック4)、右側のマクロブロック(例えば、マクロブロック6)、左上のマクロブロック(例えば、マクロブロック1)、真上のマクロブロック(例えば、マクロブロック2)、右上のマクロブロック(例えば、マクロブロック3)、左下のマクロブロック(例えば、マクロブロック7)、真下のマクロブロック(例えば、マクロブロック8)、及び右下のマクロブロック(例えば、マクロブロック9)である。
【0079】
符号化待ちビデオフレームをトラバースする方式は異なり、Kの値は異なり、例えば、上から下へ、左から右へという方式を採用し、Kの値は0、1、2、4であってもよく、他のトラバース方式を採用すると、Kの値も対応して変わる。
【0080】
第2の方法は、符号化待ちマクロブロックの符号化タイプが、符号化待ちマクロブロックに隣接する符号化済みのマクロブロックの符号化方式と同じである確率が高いという原則に基づくものである。
【0081】
ステップS102とステップS103とは、一部のフレーム間符号化モードを採用してフレーム間符号化コストを取得し、一部のフレーム内符号化モードを採用してフレーム内符号化コストを取得する、あるいは、簡略化される符号化コスト算式を採用してフレーム内符号化コスト及びフレーム間符号化コストを取得する可能性あるので、フレーム間符号化コストとフレーム内符号化コストに基づくと一定の誤差を有する。そして、ビデオフレームのエッジに位置するマクロブロックは、ビデオフレームの非エッジに位置するマクロブロックよりも少ない細部を有する可能性があり、ビデオフレームのエッジに位置するマクロブロックが有するエッジ特性は、ビデオフレームの非エッジに位置するマクロブロックよりも多い。従って、ビデオフレームのエッジに位置するマクロブロックの符号化方式は、隣接符号化済みのマクロブロックの符号化方式と異なる確率が高く、ビデオフレームの非エッジに位置するマクロブロックの符号化方式は、隣接符号化済みのマクロブロックの符号化方式と同じである確率が高い。
【0082】
従って、比較結果、K個の隣接符号化済みのマクロブロックの符号化方式、及び符号化待ちマクロブロックの符号化待ちビデオフレームにおける位置を組み合わせることにより、フレーム内予測符号化の可能性と、フレーム間予測符号化の可能性をより正確に確定することができる。
【0083】
本願の実施例で提供される「前記比較結果に基づいて、K個の隣接符号化済みのマクロブロックの符号化方式に基づき、前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性とを取得する」実現方法は複数あり、本願の実施例は、以下の方法を提供するが、これに限定されない。
前記比較結果が前記フレーム内符号化コストがAに前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム間予測符号化の可能性を第1のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定し、Aが第1の値よりも大きい係数である。
前記比較結果が前記フレーム間符号化コストがBに前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム内予測符号化の可能性を第2のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定し、Bが第2の値よりも大きい係数である。
【0084】
本願の実施例において、符号化方式がフレーム間予測符号化又はフレーム内予測符号化である場合に、ビデオ符号化処理方法全体に係る処理量は、従来の技術におけるフレーム間予測符号化及びフレーム内予測符号化に係る処理量の和よりも小さい。
【0085】
本願の実施例において、符号化待ちマクロブロックが以下の特性を有する場合に、符号化方式はフレーム間予測符号化であり、「前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定する」ことは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム内予測符号化の可能性を第3のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値よりも小さい場合に、前記フレーム内予測符号化の可能性を第4のプリセット値に設置する、ことを含んでいる。
【0086】
第3の値は1以上の正の整数であってもよい。
【0087】
それに対応して、前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記した前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性とに基づいて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム内予測符号化の可能性が前記第3のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を確定することは、フレーム間予測符号化を優先して実行し、且つフレーム間予測符号化の結果に基づいて、フレーム内予測符号化を行う必要がないと確定することを含み、
前記フレーム内予測符号化の可能性が前記第4のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化として確定する、ことを含んでいる。
【0088】
上記二つの場合に係る処理量はいずれも従来技術におけるフレーム間予測符号化及びフレーム内予測符号化に係る処理量の和よりも小さい。
【0089】
本願の実施例において、符号化待ちマクロブロックが以下の特性を有する場合に、符号化方式はフレーム内予測符号化であり、「前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定する」ことは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム間予測符号化の可能性を第5のプリセット値に設置し、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第4の値以上である場合に、前記フレーム間予測符号化の可能性を第6のプリセット値に設置する、ことを含んでいる。
【0090】
第4の値は1以上の正の整数であってもよい。
【0091】
それに対応して、前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記した前記フレーム内予測符号化の可能性と前記フレーム間予測符号化の可能性に基づいて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム間予測符号化の可能性が前記第5のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいて、フレーム間予測符号化を行う必要がないと確定し、
前記フレーム間予測符号化の可能性が前記第6のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定する、ことを含んでいる。
【0092】
符号化方式が、フレーム内予測符号化を優先して実行し、且つフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要がないと確定することと、フレーム内予測符号化のみを実行することである場合に、本願の実施例で提供されるビデオ符号化処理方法に係る処理量は、従来技術におけるフレーム間予測符号化及びフレーム内予測符号化に係る処理量の和よりも小さい。
【0093】
ステップS102で得られたフレーム間符号化コストとステップS103で得られたフレーム内符号化コストとは、一定の誤差を有するので、符号化方式がフレーム内予測符号化のみまたはフレーム間予測符号化のみである場合に、最適な符号化方式を見逃す可能性がある。技術案をより完全にするために、本願の実施例で提供される符号化方式は、フレーム間予測符号化とフレーム内予測符号化を同時に実行すること、又は、フレーム間予測符号化を優先して実行し且つフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があると確定すること、又は、フレーム内予測符号化を優先して実行し且つフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があると確定することをさらに含んでもよい。
【0094】
完全な技術案において、符号化方式は、以上の5種類の異なる方式を含んでもよく、本願の実施例は、フレーム間予測符号化を優先して実行し、且つフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があると確定すること、及びフレーム間予測符号化を優先して実行し且つフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要がないと確定することを、1種類の符号化方式、即ち、フレーム間予測符号化を優先して実行し、フレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することと総称する。フレーム内予測符号化を優先して実行し、フレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があると確定すること、及びフレーム内予測符号化を優先して実行し且つフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要がないと確定することを、1種類の符号化方式、即ち、フレーム内予測符号化を優先して実行し、フレーム内予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することと総称する。
【0095】
ある符号化方式に係る処理量がフレーム間予測符号化とフレーム内予測符号化に係る処理量よりも大きい場合があるが、大量のマクロブロックに対して符号化を行う応用シナリオにおいて、本願の実施例で提供されるビデオ符号化処理方法を採用して大量のマクロブロックを符号化するプロセスに係る処理量の総数は、従来技術におけるフレーム間予測符号化及びフレーム内予測符号化に係る処理量の総数よりも小さい、またははるかに小さい。
【0096】
以上のように、本願の実施例で提供されるビデオ符号化処理方法は、符号化プロセスに係る処理量を削減するようになる。
【0097】
上記の5種類の異なる符号化方式について五つの場合を設置し、具体的には、以下の通りである。
比較結果が、前記フレーム内符号化コストがAに前記フレーム間符号化コストを掛けたものよりも大きいことを表し、フレーム間予測符号化の可能性が第1のプリセット値である場合に、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定することは、以下の三つの場合を含むことが可能となり、具体的には、以下の場合を含んでいる。
【0098】
場合一:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム内予測符号化の可能性を第3のプリセット値に設置する。
【0099】
符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置すると、エッジは色や明るさなどが急変するという特性を有する可能性があるので、単純に、K個の隣接符号化済みのマクロブロックの符号化方式に基づいてフレーム内予測符号化の可能性を確定することができない。
【0100】
場合一において、フレーム内予測符号化を行う可能性が存在する。従って、フレーム内予測符号化の可能性を第3のプリセット値に設置する。
【0101】
場合二:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値以上である場合に、前記フレーム内予測符号化の可能性を前記第2のプリセット値に設置する。
【0102】
第3の値は1以上の正の整数であってもよい。
【0103】
K個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値以上である場合に、符号化待ちマクロブロックがフレーム内予測符号化を採用する可能性が高いことを示す。従って、フレーム内予測符号化の可能性を第2のプリセット値に設置する。
【0104】
場合三:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第3の値よりも小さい場合に、前記フレーム内予測符号化の可能性を第4のプリセット値に設置する。
【0105】
K個の隣接符号化済みマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値よりも小さい場合に、符号化待ちマクロブロックがフレーム内予測符号化を採用するはずがないことを示す。従ってフレーム内予測符号化の可能性を第4のプリセット値に設置する。
【0106】
上記第1のプリセット値、第2のプリセット値、第3のプリセット値、及び第4のプリセット値は、任意の数値、または記号であってよく、且つ大きさの関係を有していなくてもよい。
【0107】
本願の実施例において、第1のプリセット値は第2のプリセット値と等しく、第1のプリセット値は第3のプリセット値よりも大きく、第3のプリセット値は第4のプリセット値よりも大きい。
【0108】
当業者に第1プリセット値、第2プリセット値、第3プリセット値、および第4プリセット値の間の関係をよりよく理解させるために、以下、一つの具体例を挙げて、本願の実施例は、以下の具体例を提供する、これに限定されない。
【0109】
符号化待ちマクロブロックのフレーム内符号化コストをIntracostとし、フレーム間符号化コストをIntercostとし、符号化待ちビデオフレームにおける各マクロブロックをトラバースする方式は上から下へ、左から右へという方式であると仮定すると、Kの最大値は4であり、K個の隣接符号化済みのマクロブロックがフレーム内予測符号化の数はNumintraである。
【0110】
本願の実施例において、最初に、フレーム内予測符号化の可能性Probintra=2 (第2のプリセット値)、フレーム間予測符号化の可能性Probinter=2(第1のプリセット値) として設置し、Intracost>A*Intercostであると、フレーム内予測符号化の可能性Probintra=0(第4のプリセット値)として設置する。
【0111】
場合一:K<4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置する)、且つフレーム内予測符号化の可能性Probintra=0(第4のプリセット値)であると、フレーム内予測符号化の可能性Probintra=1(第3のプリセット値) として新たに設置する。
【0112】
場合二:K=4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置しない)、且つNumintra≧1(第3の値)であると、フレーム内予測符号化の可能性Probintra=2(第2のプリセット値)として設置する。
【0113】
場合三:K=4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置しない)、且つNumintra<1(第3の値)であると、フレーム内予測符号化の可能性Probintra=0(第4のプリセット値)として設置する。
【0114】
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記した前記フレーム内予測符号化の可能性と前記フレーム間予測符号化の可能性に基づいて、前記符号化待ちマクロブロックの符号化方式を確定することは以下の場合を含んでいる。
【0115】
前記フレーム内予測符号化の可能性が前記第3のプリセット値である(即ち、場合一である)場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することとして確定する。
【0116】
前記フレーム内予測符号化の可能性が前記第2のプリセット値である(即ち、場合二である)場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定する。
【0117】
前記フレーム内予測符号化の可能性が前記第4のプリセット値である(即ち、場合三である)場合に、前記符号化待ちマクロブロックの符号化方式をフレーム間予測符号化として確定する。
【0118】
図3に示すように、本願の実施例で提供される異なる場合における符号化待ちマクロブロックの符号化プロセスの概略図である。
【0119】
場合一:「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」ことは、以下のステップを含んでいる。
【0120】
ステップS301において、フレーム間予測符号化を実行し、フレーム間予測符号化の実行プロセスは、フレーム間予測符号化における各フレーム間符号化モードの符号化コストを算出することを含むことができる。
【0121】
ステップS302において、フレーム内予測符号化を行うかどうかを判断し、具体的プロセスは、
各フレーム間符号化モードの符号化コストのうち最小の符号化コストに対応する第1の符号化モードの予測誤差及びビットレートを取得することを含むことができる。
【0122】
第1の符号化モードの予測誤差が第1のプリセット誤差値よりも小さく、且つビットレートが第1のプリセットビットレート値よりも小さい場合に、第1の符号化モードを、符号化待ちマクロブロックの最適符号化モードとして確定し、第1の符号化モードに基づいて、符号化待ちマクロブロックを符号化し、さもなければ、ステップS303に進む。
【0123】
ビットレートとは、サンプリングレートのことをいう。単位時間当たりのサンプリングレートが高いほど、得られるビデオは元のビデオに近い。同一のビデオフレームについて、ビットレートが大きいほど、データ量が大きくなる。
【0124】
ステップS303において、フレーム内予測符号化を実行し、フレーム内予測符号化の実行プロセスは、
フレーム内予測符号化における各フレーム内符号化モードの符号化コストを算出することを含むことができる。
【0125】
ステップS304において、各フレーム間符号化モードの符号化コスト、及び各フレーム内符号化モードの符号化コストから、最小の符号化コストに対応する第2の符号化モードを確定し、第2の符号化モードを、符号化待ちマクロブロックの最適符号化モードとして確定する。第2の符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0126】
場合二:「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」ことは、以下のステップを含んでいる。
【0127】
ステップS305において、フレーム間予測符号化及びフレーム内予測符号化を実行し、具体的実行プロセスは、
各フレーム間符号化モードの符号化コスト、及び各フレーム間モードの符号化コストを算出することを含むことができる。
【0128】
ステップS306において、各フレーム間符号化モード、及び各フレーム内符号化モードのうち最小の符号化コストに対応する第3の符号化モードを、最適符号化モードとして確定する。第3の符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0129】
場合三:「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」ことは、
ステップS307において、フレーム間予測符号化を実行することを含んでいる。
【0130】
ステップS308において、各フレーム間符号化モードのうち最小の符号化コストに対応する第4の符号化モードを、最適符号化モードとして確定し、第4の符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0131】
同一の符号化待ちマクロブロックついては、上記場合の一つのみに対応する。従って、場合一、場合二及び場合三の間に優先関係がない。
【0132】
比較結果が、前記フレーム間符号化コストがBに前記フレーム内符号化コストを掛けたものよりも大きいことを示し、前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定する場合は、以下の場合がある。
【0133】
場合四:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム間予測符号化の可能性を第5のプリセット値に設置する。
【0134】
場合五:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第4の値以上である場合に、前記フレーム間予測符号化の可能性を第6のプリセット値に設置する。
【0135】
場合六:前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第4の値よりも小さい場合に、前記フレーム間予測符号化の可能性を前記第1のプリセット値に設置する。
【0136】
場合六と場合二において得られたフレーム間予測符号化の可能性の値とフレーム内予測符号化の可能性の値とは同じであるので、場合六と場合二を場合二と総称する。
【0137】
上記第1のプリセット値、第2のプリセット値、第3のプリセット値、第4のプリセット値、第5のプリセット値、及び第6のプリセット値は任意の数値又は記号であってもよく、大きさに関係がなくてもよい。
【0138】
当業者に第1のプリセット値、第2のプリセット値、第5のプリセット値及び第6のプリセット値の間の関係をよりよく理解させるために、具体例を以下に挙げて、本願の実施例は、以下の具体例を提供するが、これに限定されない。
【0139】
符号化待ちマクロブロックのフレーム内符号化コストをIntracostとし、フレーム間符号化コストをIntercostとし、符号化待ちビデオフレームにおける各マクロブロックをトラバースする方式が上から下へ、左から右へという方式であると仮定すると、Kの最大値は4であり、K個の隣接符号化済みのマクロブロックがフレーム内予測符号化を採用する数はNumintraである。
【0140】
本願の実施例において、最初に、フレーム内予測符号化の可能性Probintra=2(第2のプリセット値)として設置し、フレーム間予測符号化の可能性Probinter=2(第1のプリセット値) として設置し、Intercost>B*Intracostであると、フレーム間予測符号化の可能性Probinter=0(第6のプリセット値)として設置する。
【0141】
場合四:K<4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置する)、且つフレーム間予測符号化の可能性Probinter=0(第6のプリセット値)であると、フレーム間予測符号化の可能性Probinter=1(第5のプリセット値)として新たに設置する。
【0142】
場合五:
K=4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置しない)、且つNumintra≧1(第4の値)であると、フレーム間予測符号化の可能性Probinter=0(第6のプリセット値)として設置する。
【0143】
場合二:K=4(即ち、符号化待ちマクロブロックが符号化待ちビデオフレームのエッジに位置しない)、且つNumintra<1(第4の値)であると、フレーム間予測符号化の可能性Probinter=2(第1のプリセット値)として設置する。
【0144】
それに対応して、前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記した前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性とに基づいて、前記符号化待ちマクロブロックの符号化方式を確定することは、
前記フレーム間予測符号化の可能性が前記第1のプリセット値(即ち、場合二)である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化及びフレーム間予測符号化を同時に実行することとして確定し、
前記フレーム間予測符号化の可能性が前記第5のプリセット値(即ち、場合四)である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することとして確定し、
前記フレーム間予測符号化の可能性が前記第6のプリセット値(即ち、場合五)である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定する、ことを含んでいる。
【0145】
図4に示すように、本願の実施例で提供される異なる場合における符号化待ちマクロブロックの符号化プロセスの概略図である。
【0146】
場合四において、「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」ことは以下ステップを含んでいる。
【0147】
ステップS401において、フレーム内予測符号化を実行し、フレーム内予測符号化の実行プロセスは、
フレーム内予測符号化における各フレーム内符号化モードの符号化コストを算出することを含むことができる。
【0148】
ステップS402において、フレーム間予測符号化を行うかどうかを判断することは、具体的プロセスは、
各フレーム内符号化モードの符号化コストのうち最小の符号化コストに対応する第5の符号化モードの予測誤差、及びビットレートを取得することを含んでいる。
【0149】
第5の符号化モードの予測誤差が第2のプリセット誤差値よりも小さく、且つビットレートが第2のプリセットビットレート値よりも小さい場合に、第5の符号化モードを、符号化待ちマクロブロックの最適符号化モードとして確定し、第5の符号化モードに基づいて符号化待ちマクロブロックを符号化し、さもなければ、ステップS403に進む。
【0150】
ステップS403において、フレーム間予測符号化を実行し、フレーム間予測符号化の実行プロセスは、
フレーム間予測符号化における各フレーム間符号化モードの符号化コストを算出することを含むことができる。
【0151】
ステップS404において、各フレーム間符号化モードの符号化コスト、及び各フレーム内符号化モードの符号化コストから、最小の符号化コストに対応する第6の符号化モードを確定し、第6の符号化モードを、符号化待ちマクロブロック最適符号化モードとして確定し、第6の符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0152】
場合五において、「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」ことは、以下のステップを含んでいる。
【0153】
ステップS405において、フレーム内予測符号化を実行する。
【0154】
ステップS406において、各フレーム内符号化モードのうち最小の符号化コストに対応する第7の符号化モードを、最適符号化モードとして確定し、第7の符号化モードに基づいて符号化待ちマクロブロックを符号化する。
【0155】
場合六において、「前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する」方法は、場合二と同じであるので、ここで再び説明しない。
【0156】
以上のように、上記の五つの場合において、フレーム内予測符号化の可能性及びフレーム間予測符号化の可能性の値と、符号化方式との対応関係は、表1に示される。
表1 フレーム内予測符号化の可能性及びフレーム間予測符号化の可能性の値と、符号化方式との対応関係
【表1】
【0157】
さらに処理量を削減するために、符号化待ちビデオフレームに対してダウンサンプリングを行ってもよい。ダウンサンプリングとは、一つのサンプルシーケンスに対して数サンプル間隔でサンプリングすることを意味し、このように得られた新しいシーケンスは元のシーケンスのダウンサンプリングである。図5に示すように、本願の実施例で提供される符号化待ちビデオフレームから符号化待ちマクロブロックを確定する方法フローチャートであり、当該方法は、
ステップS501において、符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得することを含んでいる。
【0158】
プリセット比は、2:1、3:1、4:1などであってもよく、ダウンサンプリング後のプリコーディングビデオフレームの細部と符号化待ちビデオフレームとが大きく異なることを避けるために、好ましくは、プリセット比は2:1である。
【0159】
符号化待ちビデオフレームの長さをa、幅をbとすると、プリセット比が2:1であるダウンサンプリングを行うと仮定すると、プリコーディングビデオフレームの長さはa/2であり、幅はb/2である。
【0160】
プリコーディングビデオフレームを分割する必要があるので、複数のマクロブロックに分割できることを確保するために、ダウンサンプリング後のビデオフレームの長さと幅を調整する必要があり、具体的に「符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得する」ことは、
前記符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、ターゲットビデオフレームを取得し、
前記ターゲットビデオフレームを調整することで、調整後の前記プリコーディングビデオフレームを取得し、前記プリコーディングビデオフレームの長さは前記符号化待ちマクロブロックの長さの整数倍になるようにし、前記プリコーディングビデオフレームの幅は前記符号化待ちマクロブロックの幅の整数倍になるようにする、ことを含んでいる。
【0161】
ターゲットビデオフレームの長さが符号化待ちマクロブロックの長さの整数倍となり、ターゲットビデオフレームの幅が符号化待ちマクロブロックの幅の整数倍となると、調整する必要はない。
【0162】
符号化待ちマクロブロックが8×8のマクロブロックであると仮定すると、プリコーディングビデオフレームの長さは8の整数倍になるようにし、プリコーディングビデオフレームの幅は8の整数倍になるようにする必要がある。符号化待ちマクロブロックが8×4のマクロブロックであると、プリコーディングビデオフレームの長さは8の整数倍になるようにし、プリコーディングビデオフレームの幅は4の整数倍になるようにする必要がある。
【0163】
符号化待ちマクロブロックが8×8のマクロブロックであると、それに対応する元のマクロブロックは16×16のマクロブロックである。ダウンサンプリングを行った後のマクロブロックに含まれる画素数量はダウンサンプリングを行わないマクロブロックに含まれる画素数量よりも小さいので、係る処理量は少ない。
【0164】
ステップS502において、前記プリコーディングビデオフレームを複数のマクロブロックに分割する。
【0165】
ステップS503において、複数のマクロブロックの各々を、符号化待ちマクロブロックとして確定する。
【0166】
本願の実施例は、ビデオ符号化処理方法に対応するビデオ符号化処理装置をさらに提供し、以下、ビデオ符号化処理装置について説明し、ビデオ符号化処理装置とビデオ符号化処理方法とは、互いに参照すればよく、ここで再び説明しない。
【0167】
図6に示すように、本願の実施例で提供されるビデオ符号化処理装置の構成図であり、当該装置は、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定するための第1の確定モジュール61と、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得するために用いられ、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さく、或いは、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが、符号化済みのビデオフレーム及び前記符号化待ちビデオフレームを利用して得られる誤差情報である第1の取得モジュール62と、
少なくとも1種類のフレーム内符号化モードにより、前記符号化待ちマクロブロックのフレーム内符号化コストを取得するために用いられ、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さい、或いは、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームのうち符号化済みのマクロブロックと前記符号化待ちビデオフレーム利用して得られる誤差情報である第2の取得モジュール63と、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得するための第3の取得モジュール64と、
前記比較結果に基づいて、前記符号化待ちマクロブロックのフレーム内予測符号化またはフレーム間予測符号化を含む符号化方式を確定するための第2の確定モジュール65と、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化するための符号化モジュール66とを含んでいる。
【0168】
本願の実施例において、第2の確定モジュール65は、
前記比較結果が、前記フレーム内符号化コストがA(Aが第1の値よりも大きい係数)に前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化として確定するための第3の確定ユニットと、
前記比較結果が、前記フレーム間符号化コストがB(Bが第2の値よりも大きい係数)に前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定するための第4の確定ユニットとを含んでいる。
【0169】
本願の実施例において、第2の確定モジュール65は、
比較結果に基づいて、前記符号化待ちマクロブロックがフレーム内予測符号化を行う可能性と、フレーム間予測符号化を行う可能性とを取得するための第1の取得ユニットと、
前記フレーム内予測符号化の可能性と前記フレーム間予測符号化の可能性とに基づいて、前記符号化待ちマクロブロックの符号化方式を確定するための第1の確定ユニットとを含んでいる。
【0170】
本願の実施例において、第1の取得ユニットは、
前記符号化待ちマクロブロックのK(Kが正の整数)個の隣接符号化済みのマクロブロックの符号化方式を取得するための第1の取得サブユニットと、
前記比較結果に基づいて、K個の隣接符号化済みのマクロブロックの符号化方式に基づき、前記フレーム内予測符号化の可能性と、前記フレーム間予測符号化の可能性とを取得するための第2の取得サブユニットとを含んでいる。
【0171】
本願の実施例において、第2の取得サブユニットは、
前記比較結果が、前記フレーム内符号化コストがA(Aが第1の値よりも大きい係数)に前記フレーム間符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム間予測符号化の可能性を第1のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム内予測符号化の可能性を確定するための第1の設置サブユニットと、
前記比較結果が、前記フレーム間符号化コストがB(Bが第2の値よりも大きい係数)に前記フレーム内符号化コストを掛けたものよりも大きいことを示す場合に、前記フレーム内予測符号化の可能性を第2のプリセット値に設置し、前記符号化待ちマクロブロックの前記符号化待ちビデオフレームにおける位置、及びK個の隣接符号化済みのマクロブロックの符号化方式に基づいて、前記フレーム間予測符号化の可能性を確定するための第2の設置サブユニットとを含んでいる。
【0172】
本願の実施例において、第1の設置サブユニットは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置する場合に、前記フレーム内予測符号化の可能性を第3のプリセット値に設置するための第1の設置サブモジュールと、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第3の値以上である場合に、前記フレーム内予測符号化の可能性を前記第2のプリセット値に設置するための第2の設置サブモジュールと、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第3の値よりも小さい場合に、前記フレーム内予測符号化の可能性を第4のプリセット値に設置するための第3の設置サブモジュールとを含んでいる。
【0173】
本願の実施例において、前記符号化方式は、フレーム内予測符号化、及びフレーム間予測符号化を同時に実行すること、或いは、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することをさらに含む。
【0174】
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、第1の確定ユニットは、
前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化、及びフレーム間予測符号化を同時に実行することとして確定するための第1の確定サブユニットと、
前記フレーム内予測符号化の可能性が前記第4のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化として確定するための第2の確定サブユニットと、
前記フレーム内予測符号化の可能性が前記第3のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム間予測符号化を優先して実行しフレーム間予測符号化の結果に基づいてフレーム内予測符号化を行う必要があるかどうかを判断することとして確定するための第3の確定サブユニットとを含んでいる。
【0175】
本願の実施例において、第2の設置サブユニットは、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームに位置する場合に、前記フレーム間予測符号化の可能性を第5のプリセット値に設置するための第4の設置サブモジュールと、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が第4の値以上である場合に、前記フレーム間予測符号化の可能性を第6のプリセット値に設置するための第5の設置サブモジュールと、
前記符号化待ちマクロブロックが前記符号化待ちビデオフレームのエッジに位置せず、且つK個の隣接符号化済みのマクロブロックの符号化方式のうちフレーム内予測符号化である数が前記第4の値よりも小さい場合に、前記フレーム間予測符号化の可能性を前記第1のプリセット値に設置するための第6の設置サブモジュールとを含んでいる。
【0176】
本願の実施例において、前記符号化方式は、フレーム内予測符号化及びフレーム間予測符号化を同時に実行すること、或いは、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することをさらに含み、前記フレーム内予測符号化の可能性が前記第2のプリセット値である場合に、第1の確定ユニットは、
前記フレーム間予測符号化の可能性が前記第1のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化、及びフレーム間予測符号化を同時に実行することとして確定する第4の確定サブユニットと、
前記フレーム間予測符号化の可能性が前記第6のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化として確定するための第5の確定サブユニットと、
前記フレーム間予測符号化の可能性が前記第5のプリセット値である場合に、前記符号化待ちマクロブロックの符号化方式を、フレーム内予測符号化を優先して実行しフレーム内予測符号化の結果に基づいてフレーム間予測符号化を行う必要があるかどうかを判断することとして確定するための第6の確定サブユニットとを含んでいる。
【0177】
本願の実施例において、上記第1の確定モジュール61は、
符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得するための第2の取得ユニットと、
前記プリコーディングビデオフレームを複数のマクロブロックに分割するための分割ユニットと、
複数のマクロブロックの各々を符号化待ちマクロブロックとして確定するための第2の確定ユニットとを含んでいる。
【0178】
本願の実施例において、第2の取得ユニットは、
符号化待ちビデオフレームに対してプリセット比のダウンサンプリングを行うことで、プリコーディングビデオフレームを取得するための第3の取得サブユニットと、
前記プリコーディングビデオフレームを、複数のマクロブロックに分割するための分割サブユニットと、
複数のマクロブロックの各々を符号化待ちマクロブロックとして確定するための第7の確定サブユニットとを含んでいる。
【0179】
本願の実施例で提供されるビデオ符号化処理方法と装置は、電子機器(例えば、端末やサーバ)に応用されることが可能となり、図7に示すように、本願の実施例で提供される電子機器の構成図であり、当該電子機器は、
プログラムを記憶するためのメモリ71と、
前記プログラムを実行するためのプロセッサー72とを含み、
プログラムはプログラムコードを含むことができ、前記プログラムコードがコンピュータ操作命令、即ち、機械読み取り可能な命令、例えば、前記したビデオ符号化処理方法を実現するためのビデオ符号化処理プログラムを含む。
【0180】
メモリ71は、高速RAMメモリを含むことが可能であり、不揮発性メモリ(non-volatile memory)、例えば、少なくとも一つの磁気ディスクメモリをさらに含むことも可能である。
【0181】
プロセッサー72は、中央処理装置(CPU)または特定用途向け集積回路(ASIC)とすることができ、あるいは本願の実施例を実施するように構成された一つまたは複数の集積回路とすることができる。
【0182】
なお、前記プロセッサー72は、メモリ71に記憶されている前記機械読み取り可能な命令を実行することで、
符号化待ちビデオフレームから符号化待ちマクロブロックを確定し、
少なくとも1種類のフレーム間符号化モードにより前記符号化待ちマクロブロックのフレーム間符号化コストを取得し、前記少なくとも1種類のフレーム間符号化モードの数がフレーム間符号化モードの総数よりも小さく、或いは、前記少なくとも1種類のフレーム間符号化モードに相応する符号化コストが符号化済みのビデオフレーム、及び前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
少なくとも1種類のフレーム内符号化モードにより前記符号化待ちマクロブロックのフレーム内符号化コストを取得し、前記少なくとも1種類のフレーム内符号化モードの数がフレーム内符号化モードの総数よりも小さく、或いは、前記少なくとも1種類のフレーム内符号化モードに相応する符号化コストが、前記符号化待ちビデオフレームのうち符号化済みのマクロブロックと前記符号化待ちビデオフレームを利用して得られる誤差情報であり、
前記フレーム間符号化コストと前記フレーム内符号化コストとを比較し、比較結果を取得し、
前記比較結果に基づいて、前記符号化待ちマクロブロックのフレーム内予測符号化またはフレーム間予測符号化を含む符号化方式を確定し、
前記符号化方式に応じて前記符号化待ちマクロブロックを符号化する、操作を完成する。
【0183】
本願の実施例において、電子機器は、通信バス73、及び通信インタフェース74をさらに含むことができ、メモリ71、プロセッサー72、及び通信インタフェース74は通信バス73を介して互いに通信する。
【0184】
本願の実施例において、通信インタフェース74は、通信モジュールのインタフェース、例えば、GSM(登録商標)モジュールのインタフェースである。
【0185】
本願の実施例において、上記電子機器の具体的機能は、前記のビデオ符号化処理方法と装置を参照すればよく、ここで再び説明しない。
【0186】
最後に、本文において、第1および第2のような関係の用語は、一つのエンティティまたはオペレーションを他のエンティティまたはオペレーションと区別するために用いられるものに過ぎず、それらエンティティまたはオペレーションが実際にこの関係または順序を有することを要求または示唆するものではないことに更に留意されたい。さらに、用語「含む」、「包含」、またはそれらの他の変形は、非排他的な包含を含意することを意図するものである。よって、一連の要素を含むプロセス、方法、製品または装置は、それら要素を含むのみならず、明示的に挙げられていない他の要素をも含む、または当該プロセス、方法、製品または装置の固有の要素を更に含む。別途何らかの限定のない場合、「…を一つ含む」により限定される要素は、その要素を含むプロセス、方法、物品または装置が他に同一の要素を更に有することを除外するものではない。
【0187】
本明細書における各実施例は、漸進的に記載されており、各実施例で重点に説明されたものは他の実施例との相違点であり、各実施例の間の同じ又は類似の部分について、互いに参照すればよい。
【0188】
開示された実施例の上記説明は、当業者が本発明を実現又は使用することを可能にさせる。これらの実施例に対する様々な変更は、当業者にとって自明であり、本明細書で定義される一般的な原理は、本発明の精神又は範囲から逸脱することなく、他の実施例において実現される。従って、本願は、本明細書に示される実施例に限定されず、本明細書に開示される原理及び新規な特徴と一致する最も広い範囲に適合すべきである。
図1A
図1B
図2
図3
図4
図5
図6
図7