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

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

▶ ▲騰▼▲訊▼科技(深▲セン▼)有限公司の特許一覧

特許7012747ビデオフレーム符号化方法、端末、および記憶媒体
<>
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図1
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図2
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図3
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図4
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図5
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図6
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図7
  • 特許-ビデオフレーム符号化方法、端末、および記憶媒体 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-20
(45)【発行日】2022-01-28
(54)【発明の名称】ビデオフレーム符号化方法、端末、および記憶媒体
(51)【国際特許分類】
   H04N 19/115 20140101AFI20220121BHJP
   H04N 19/126 20140101ALI20220121BHJP
   H04N 19/149 20140101ALI20220121BHJP
   H04N 19/15 20140101ALI20220121BHJP
   H04N 19/159 20140101ALI20220121BHJP
   H04N 19/142 20140101ALI20220121BHJP
   H04N 19/172 20140101ALI20220121BHJP
【FI】
H04N19/115
H04N19/126
H04N19/149
H04N19/15
H04N19/159
H04N19/142
H04N19/172
【請求項の数】 17
(21)【出願番号】P 2019557357
(86)(22)【出願日】2018-07-12
(65)【公表番号】
(43)【公表日】2020-06-18
(86)【国際出願番号】 CN2018095378
(87)【国際公開番号】W WO2019033877
(87)【国際公開日】2019-02-21
【審査請求日】2019-10-21
(31)【優先権主張番号】201710707503.6
(32)【優先日】2017-08-17
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100140534
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】郭 耀耀
(72)【発明者】
【氏名】毛 煦楠
(72)【発明者】
【氏名】谷 ▲沈▼▲沈▼
(72)【発明者】
【氏名】高 欣▲ウェイ▼
(72)【発明者】
【氏名】▲呂▼ 静
【審査官】鉢呂 健
(56)【参考文献】
【文献】特開2011-061534(JP,A)
【文献】特開2004-015351(JP,A)
【文献】特開2000-078588(JP,A)
【文献】特開2005-073245(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
端末に適用されるビデオフレーム符号化方法であって、
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得し、前記i番目のビデオフレームを符号化するための規則である第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行い、符号化された前記i番目のビデオフレームに対応する実際の消費ビット数を統計することと、
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、現在検出されているビデオフレームである前記i番目のビデオフレームがシーン切り替えフレームであるかどうかを判定するための判定条件であるビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することと、
前記i番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記i番目のビデオフレームの量子化パラメータを算出するためのモデルである量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定することと、
前記i+1番目のビデオフレームにビット補償を行うために、補償長さを取得し、前記補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数とを決定することと、
前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する前記第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新し、N番目のビデオフレームの符号化が完了するまで、前記i+1番目のビデオフレームのビデオ符号化プロセスに入ることと、
を含み、
前記i+j番目のビデオフレームに対応する前記第1の補償割り当てビット数は、
【数1】
で示される前記補償モデルにおけるRT_jであり、Rcom_jは、前記i+j番目のビデオフレームに対応する第1の補償ビット基数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートであることを特徴とするビデオフレーム符号化方法。
【請求項2】
前記ビデオフレーム検出規則は、第1のビデオフレーム検出規則を含み、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することは、
前記i番目のビデオフレームのフレームタイプを検出することと、
前記フレームタイプがターゲットフレームタイプである場合、画像グループの残りの平均ビットレートを取得することと、
前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第1のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出することと、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記ビデオフレーム検出規則は、さらに、第2のビデオフレーム検出規則を含み、前記方法は、さらに、
前記フレームタイプが前記ターゲットフレームタイプではない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第2のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出すること、
を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行うことは、
前記i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、前記第2の補償対象ビデオフレームのそれぞれに対応する第2の補償割り当てビット数から、前記i番目のビデオフレームに対応する第2の補償割り当てビット数を取得し、ここで、前記第2の補償対象ビデオフレームが、前記i番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、
前記i番目のビデオフレームに対応する前記第2の補償割り当てビット数に基づいて、前記i番目のビデオフレームの第2の量子化パラメータを算出することと、
第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得し、ここで、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとが、i-1番目のビデオフレームの符号化の後に決定されたものであることと、
前記第2の量子化パラメータと、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとに基づいて、前記i番目のビデオフレームを符号化し、ここで、前記第2の量子化パラメータの上限値が前記第2の最大量子化パラメータであり、下限値が前記第2の最小量子化パラメータであることと、
を含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行うことは、
前記i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記i番目のビデオフレームの第3の量子化パラメータを算出し、ここで、前記ターゲットビット数とは、前記i+1番目のビデオフレームに予め割り当てられたビット数を意味することと、
前記第3の量子化パラメータに基づいて、前記i+1番目のビデオフレームに対してビデオ符号化を行うことと、
を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記実際の消費ビット数Ractualとターゲットビット数Rtargetとが満たす比率条件(i)Ractual>τ×Rtarget、(ii)σ×Rtarget<Ractual≦τ×Rtarget、(iii)その他に応じて、量子化調整モデルに従って、前記第1の初期量子化パラメータQPframeと、前記第1の最大量子化パラメータQPmaxと、前記第1の最小量子化パラメータQPminとに対して、パラメータ調整を行い、第1の調整初期量子化パラメータQPframe’と、第1の調整最大量子化パラメータQPmax’と、第1の調整最小量子化パラメータQPmin’とを得ること、
をさらに含み、
前記量子化調整モデルは、
【数2】
【数3】
【数4】
であり、Δ’QPI、Δ”QPIはQPのオフセット値であることを特徴とする請求項1に記載の方法。
【請求項7】
前記第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新することは、
前記第1の補償割り当てビット数と、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとに基づいて、前記第1の符号化規則を更新すること、
を含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記i番目のビデオフレームが非シーン切替状態にある場合、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入ること、
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項9】
端末であって、
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得する取得手段と、
i番目のビデオフレームを符号化するための規則である第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行う符号化手段と、
符号化された前記i番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段と、
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、現在検出されているビデオフレームである前記i番目のビデオフレームがシーン切り替えフレームであるかどうかを判定するための判定条件であるビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段と、
前記i番目のビデオフレームが前記シーン切り替え状態にある場合、i+1番目のビデオフレームにビット補償を行うために、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記i番目のビデオフレームの量子化パラメータを算出するためのモデルである量子化モデルとに基づいて、前記i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する決定手段と、
前記i+1番目のビデオフレームが第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新する更新手段と、を含み、
前記取得手段は、さらに、補償長さを取得し、
前記決定手段は、さらに、前記補償長さと補償モデルとに基づいて、前記第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する前記第1の補償割り当てビット数とを決定し、
前記符号化手段は、さらに、N番目のビデオフレームの符号化が完了するまで、前記i+1番目のビデオフレームのビデオ符号化プロセスに入り、
前記i+j番目のビデオフレームに対応する前記第1の補償割り当てビット数は、
【数5】
で示される前記補償モデルにおけるRT_jであり、Rcom_jは、前記i+j番目のビデオフレームに対応する第1の補償ビット基数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである
ことを特徴とする端末。
【請求項10】
前記ビデオフレーム検出規則は第1のビデオフレーム検出規則を含み、
前記検出手段は、さらに、前記i番目のビデオフレームのフレームタイプを検出し、
前記取得手段は、さらに、前記フレームタイプがターゲットフレームタイプである場合、画像グループの残りの平均ビットレートを取得し、
前記検出手段は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第1のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する、
ことを特徴とする請求項9に記載の端末。
【請求項11】
前記ビデオフレーム検出規則は、さらに、第2のビデオフレーム検出規則を含み、
前記検出手段は、さらに、前記i番目のビデオフレームの第1のフレームタイプを検出した後、前記フレームタイプが前記ターゲットフレームタイプではない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第2のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する、
ことを特徴とする請求項10に記載の端末。
【請求項12】
前記取得手段は、さらに、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、前記第2の補償対象ビデオフレームに対応する第2の補償割り当てビット数から、前記i番目のビデオフレームに対応する第2の補償割り当てビット数を取得し、ここで、前記第2の補償対象ビデオフレームがi番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記i番目のビデオフレームに対応する第2の補償割り当てビット数に基づいて、前記i番目のビデオフレームの第2の量子化パラメータを算出することと、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得し、ここで、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとが、i-1番目のビデオフレームの符号化の後に決定されたものであることと、を行い、
前記符号化手段は、前記第2の量子化パラメータと、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとに基づいて、前記i番目のビデオフレームを符号化し、ここで、前記第2の量子化パラメータの上限値が前記第2の最大量子化パラメータであり、下限値が前記第2の最小量子化パラメータである、
ことを特徴とする請求項9に記載の端末。
【請求項13】
前記取得手段は、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記i番目のビデオフレームの第3の量子化パラメータを算出し、前記ターゲットビット数とは、前記i+1番目のビデオフレームに予め割り当てられたビット数を意味し、
前記符号化手段は、前記第3の量子化パラメータに基づいて、前記i+1番目のビデオフレームに対してビデオ符号化を行う、
ことを特徴とする請求項9に記載の端末。
【請求項14】
前記端末は、調整手段をさらに含み、
前記調整手段は、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定した後、前記実際の消費ビット数Ractualとターゲットビット数Rtargetとが満たす比率条件(i)Ractual>τ×Rtarget、(ii)σ×Rtarget<Ractual≦τ×Rtarget、(iii)その他に応じて、量子化調整モデルに従って、前記第1の初期量子化パラメータQPframeと、前記第1の最大量子化パラメータQPmaxと、前記第1の最小量子化パラメータQPminとに対して、パラメータ調整を行い、第1の調整初期量子化パラメータQPframe’と、第1の調整最大量子化パラメータQPmax’と、第1の調整最小量子化パラメータQPmin’とを得、
前記量子化調整モデルは、
【数6】
【数7】
【数8】
であり、Δ’QPI、Δ”QPIはQPのオフセット値であり、
前記符号化手段は、さらに、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記i番目のビデオフレームが非シーン切替状態にある場合、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入る、
ことを特徴とする請求項9に記載の端末。
【請求項15】
前記更新手段は、さらに、前記第1の補償割り当てビット数と、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとに基づいて、前記第1の符号化規則を更新する、
ことを特徴とする請求項14に記載の端末。
【請求項16】
不揮発性のコンピュータ読み取り可能な記憶媒体であって、コンピュータ読み取り可能な命令が記憶され、少なくとも1つのプロセッサに、請求項1~8のいずれか一項に記載の方法を実行させることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項17】
メモリと、プロセッサとを含む端末であって、
前記メモリに、コンピュータ読み取り可能な命令が記憶され、請求項1~8のいずれか一項に記載の方法を実行するために、前記プロセッサが前記メモリにおけるコンピュータ読み取り可能な命令を実行することを特徴とする端末。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2017年08月17日に中国特許庁に提出された、出願番号が201710707503.6であり、発明の名称が「ビデオフレーム符号化方法および端末」である中国特許出願の優先権を主張し、その全ての内容は、参照することにより本願に組み込まれる。
【0002】
本願は、マルチメディア分野におけるビデオ処理技術に関し、特に、ビデオフレーム符号化方法、端末、および記憶媒体に関する。
【背景技術】
【0003】
科学技術の絶え間ない発展に伴って、電子技術も急速な発展を遂げ、電子製品の種類もますます多くなり、人々も科学技術の発展による様々な便利さを享受している。今日、人々は、様々な種類の電子機器や端末、端末に搭載されている各種機能のアプリケーションを通じて、科学技術の発展による快適な生活を楽しむことができる。例えば、端末上のソーシャルアプリケーションを利用して遠くの友達とビデオチャットをしたり、撮影アプリケーションを利用してビデオ撮影をしたりすることができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
端末上のソーシャルアプリケーションなどでビデオチャットを使用する間、携帯電話の揺れや撮影シーンの移動、カメラを切り替えることで撮影を行うことなどの現象が時々発生することがある。このようにして、ビデオ符号化では、符号化された現在のフレームと前のフレームのコンテンツが大きく変化するという状況、すなわち、シーン切り替えが発生することがある。シーン切り替え時のビデオフレームの処理は、常に困難な問題であり、その撮影シーンやビデオシーンの変化により、ビデオ符号化プロセスに生成されるビットが多くなり、ネットワークに比較的大きな衝撃を与え、ビデオが一時停止してしまう原因になる。符号化パラメータを調整することにより、シーン切り替え時に現在のビデオフレームによって消費されるビット数を制御することができるが、シーン切り替え時に現在のビデオフレームによって消費されるビット数が少ないため、符号化品質は悪くなりがちであり、より顕著なブロック効果は、シーン切り替えの前後に依然として存在し、また、毎秒ピークビットレートが高すぎるという問題は、発生しやすくなってしまう。
【課題を解決するための手段】
【0005】
本願の実施例は、端末に適用されるビデオフレーム符号化方法を提供している。該ビデオフレーム符号化方法であって、
【0006】
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得し、第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行い、符号化されたi番目のビデオフレームに対応する実際の消費ビット数を統計することと、
【0007】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することと、
【0008】
前記i番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定することと、
【0009】
補償長さを取得し、前記補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数とを決定することと、
【0010】
前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する前記第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新し、N番目のビデオフレームの符号化が完了するまで、前記i+1番目のビデオフレームのビデオ符号化プロセスに入ることと、
を含むことを特徴とするビデオフレーム符号化方法。
【0011】
本願の実施例は、端末を提供している。該端末であって、
【0012】
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得する取得手段と、
【0013】
第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行う符号化手段と、
【0014】
符号化された前記i番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段と、
【0015】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段と、
【0016】
前記i番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する決定手段と、
【0017】
前記i+1番目のビデオフレームが第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新する更新手段と、を含み、
【0018】
前記取得手段は、さらに、補償長さを取得し、
【0019】
前記決定手段は、さらに、前記補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数とを決定し、
【0020】
前記符号化手段は、さらに、N番目のビデオフレームの符号化が完了するまで、前記i+1番目のビデオフレームのビデオ符号化プロセスに入る、
ことを特徴とする端末。
【図面の簡単な説明】
【0021】
図1】本願の実施例に係るビデオフレーム符号化システムにおける各ハードウェアエンティティの概略図である。
図2】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート1である。
図3】本願の実施例によって提供される例示的なIPPPフレーム構造の概略図1である。
図4】本願の実施例によって提供される例示的なIPPPフレーム構造の概略図2である。
図5】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート2である。
図6】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート3である。
図7】本願の実施例によって提供される端末構造の概略図1である。
図8】本願の実施例によって提供される端末構造の概略図2である。
【発明を実施するための形態】
【0022】
以下、本例の実施例における図面を参照しながら、本願の実施例における解決手段を明確かつ完全に説明する。
【0023】
図1は、本願の実施例に係るビデオフレーム符号化システムにおける各ハードウェアエンティティの概略図であり、本願の実施例によって提供されるビデオフレーム符号化方法は、ビデオフレーム符号化システムに基づき実現されるものである。図1には、1つまたは複数のサーバ2と、端末1-1~1-5と、ネットワーク3とが含まれており、ネットワーク3には、ルータ、ゲートウェイなどのネットワークエンティティが含まれており、図中には図示されていない。端末1-1~1-5は、有線ネットワークまたは無線ネットワークを介してサーバと情報やりとりをすることで、端末1-1~1-5から身分識別結果を収集してサーバに伝送する。端末のタイプは、図1に示すように、携帯電話(端末1-3)、タブレットまたはパーソナルデジタルアシスタント(PDA:Personal Digital Assistant)(端末1-5)、デスクトップ(端末1-2)、PC(端末1-4)、一体型パソコン(端末1-1)などのタイプを含む。端末には、娯楽機能を備えたアプリケーション(ビデオアプリケーション、オーディオ再生アプリケーション、ゲームアプリケーション、ソーシャルアプリケーション、読書アプリケーション)や、サービス機能を備えたアプリケーション(地図ナビゲーションアプリケーション、グループ購入アプリケーション、撮影アプリケーション、財務管理アプリケーション、通信アプリケーションなど)のような、ユーザが必要とする各種なアプリケーションがインストールされている。
【0024】
説明すべきところとして、端末にインストールされたアプリケーションへの使用は、サーバとデータやりとりを行うことによって実現される必要があり、本願の実施例によって提供されるビデオフレーム符号化方法は、端末がアプリケーションを使用する際にビデオ撮影やビデオ通信などを行うプロセスにおいて実現されるものである。
【0025】
画像グループは、GOP(Group of Picture)であり、ビデオにおけるビデオフレーム画像グループである。
【0026】
Iフレームは、イントラ(Intra)予測フレームであり、イントラ予測のみが使用されるものである。
【0027】
Pフレームは、インター(Inter)予測フレームであり、インター予測のみが使用されるものである。
【0028】
量子化パラメータは、QP(quantization parameters)であり、ビデオ空間の詳細の圧縮状況が反映されるものである。
IPPP(Intra picture and predicted picture)は、符号化構造であり、画像グループは、このようなフレーム構造に従って符号化され、現在のフレームは、前方のフレームのみを参照することができる。
【0029】
毎秒ピークビットレートは、秒を単位として統計する場合に消費されたビットレートの最大値である。
【0030】
図1に示すビデオフレーム符号化システムに基づいて、本願の実施例は、画像グループにおける各ビデオフレームについて、端末1によって実行されてもよいし、サーバによって実行されてもよい、ビデオフレーム符号化方法を提供している。図2に示すように、この方法は、以下のステップを含む。
【0031】
S101で、画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得し、第1の符号化規則を採用してi番目のビデオフレームに対してビデオ符号化を行い、符号化されたi番目のビデオフレームに対応する実際の消費ビット数を統計する。
【0032】
本願の実施例によって提供されるビデオフレーム符号化方法は、端末がアプリケーションを用いてビデオ通信やビデオ撮影などのビデオ関連機能を行う場合にビデオフレームを符号化するシナリオ、例えば、ビデオ会議、ライブ放送、VOIP(Voice over Internet Protocol)ネットワーク電話などのシナリオ、に適用される。
【0033】
説明すべきところとして、本願の実施例では、ビデオフレームは、画像グループ(GOP)から構成され、各画像グループにおけるビデオフレームの構造は、IPPPフレーム構造であり、図3に示すように、IPPPフレーム構造には、IフレームとPフレームとが含まれるようにしてよい。本願の実施例によって提供されるビデオフレーム符号化方法は、1つの画像グループにおけるビデオフレームに基づいて符号化を行うものであり、各画像グループは、いずれも、本願の実施例によって提供されるビデオフレーム符号化方法によって実現されてもよいし、本願の実施例は限定しない。
【0034】
本願の実施例では、端末による画像グループにおけるビデオフレームへの符号化は、1フレームずつ順次に実行され、画像グループにおけるビデオフレームのフレーム総数は、N(Nは1より大きい正整数である)に設定され、このようにして、端末は、画像グループにおけるi(iは1以上かつN以下である)番目のビデオフレームを取得し、i番目のビデオフレームへの符号化を開始する。具体的には、端末は、第1の符号化規則を採用してi番目のビデオフレームに対してビデオ符号化を行い、また、符号化を行った後に、i番目のビデオフレームの符号化によって消費されたビット数を統計し、符号化されたi番目のビデオフレームに対応する実際の消費ビット数を得る。
【0035】
説明すべきところとして、本願の実施例では、端末によって処理されるi番目のフレームは、補償を行う必要がないビデオフレームであってもよく、補償を行う必要があるビデオフレームであってもよいし、具体的には、i番目のフレームを補償する必要があるかどうかは、i番目のフレームの前のフレームの符号化処理プロセスによって決定されるものであり、そのため、ここで端末は、i番目のビデオフレームを取得する際に、第1の符号化規則を採用してこのi番目のビデオフレームを符号化し、具体的な処理プロセスが、後の実施例で詳細に説明される。
【0036】
本願の実施例では、第1の符号化規則は、i番目のビデオフレームを符号化するための規則であり、具体的な実現について、詳細なプロセスが実施例2の中に説明される。この第1の符号化規則は、ユーザによって事前にカスタマイズされた符号化規則であってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された符号化規則であってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【0037】
S102で、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【0038】
端末は、i番目のビデオフレームが符号化された後の実際の消費ビット数を取得した後、この端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することができ、すなわち、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づき、i番目のフレームがシーン切り替えフレームであるかどうかを判断することができる。
【0039】
本願の実施例では、画像グループの初期平均ビットレートは、符号化の開始時に設定された画像グループの初期平均ビットレートであってもよく、符号化の開始時にリアルタイムに取得された動的画像グループの初期平均ビットレートであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。ビデオフレーム検出規則は、ユーザによって事前にカスタマイズされた検出規則であってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された検出規則であってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【0040】
ここで、ビデオフレーム検出規則は、現在検出されているビデオフレーム(すなわち、i番目のビデオフレーム)がシーン切り替えフレームであるかどうか(シーン切り替え状態にあるかどうか)を判定するための判定条件である。
【0041】
説明すべきところとして、本願の実施例では、i番目のビデオフレームのフレームタイプが異なるため、端末がi番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する方式は、同じではない。
【0042】
ここで、本願の実施例では、ビデオフレームのフレームタイプが異なるため、端末は、i番目のビデオフレームを検出する際に、Pフレームについて、第1のビデオフレーム検出規則を採用して処理を行い、Iフレームについて、第2のビデオフレーム検出規則を採用して処理を行う。つまり、ビデオフレーム検出規則は、第1のビデオフレーム検出規則と第2のビデオフレーム検出規則とを含み、このようにして、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するプロセスは、S1021~S1023を含み、以下の通りである。
【0043】
S1021で、i番目のビデオフレームの第1のフレームタイプを検出する。
【0044】
S1022で、第1のフレームタイプがターゲットフレームタイプを満たす場合、画像グループの残りの平均ビットレートを取得し、実際の消費ビット数と、画像グループの初期平均ビットレートと、画像グループの残りの平均ビットレートと、第1のビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【0045】
一部の実施例では、上記画像グループの残りの平均ビットレートは、上記i番目のビデオフレームに符号化する場合の、上記画像グループ内の残りのビット数と上記画像グループ内の残りのフレーム数の商である。具体的には、上記画像グループを符号化する前に、上記画像グループに対して一定数のビットを割り当ててから、上記画像グループにおけるビデオフレームの符号化を開始する。上記のi番目のビデオフレームに符号化する場合、画像グループの残りのビット数は、最初に割り当てられたビット数から、前のi-1番目のビデオフレームによって消費されたビット数を減算したものであり、画像グループの残りの平均ビットレートは、上記画像グループの残りのビット数をi番目のフレームを含む残りのフレーム数で割ったものである。
【0046】
S1023で、第1のフレームタイプがターゲットフレームタイプを満たさない場合、実際の消費ビット数と、画像グループの初期平均ビットレートと、第2のビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【0047】
本願の実施例では、ターゲットフレームタイプは、Pフレームである。第1のフレームタイプがターゲットフレームタイプを満たす場合、これは、i番目のビデオフレームがPフレームであるということを表し、第1のフレームタイプがターゲットフレームタイプを満たさない場合、これは、i番目のビデオフレームがIフレームであるということを表す。
【0048】
本願の実施例では、第1のビデオフレーム検出規則は、フレームタイプがPフレームであるi番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するための条件または規則であり、この第1のビデオフレーム検出規則は、以下のような不等式(1)および(2)のいずれかであってもよい。
【0049】

【数1】
【0050】

【数2】
【0051】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。Ractual>β×Rave_remainを例にして、第1のビデオフレーム検出規則の原理を説明する。Ractual>β×Rave_remainである場合、これは、i番目のビデオフレームによって実際に消費されたビット数Ractualが画像グループの残りの平均ビットレートの一定の割合βを超えたこと、すなわち、i番目のビデオフレームが過剰なビットレートを消費したことを示し、つまり、i番目のビデオフレームがシーン切り替え状態にあると判定でき、その後ろの補償ウィンドウ内のビデオフレームに対してビット補償を行う必要がある。
【0052】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ1.5、1.7と2.1の値をとることができる。
【0053】
本願の実施例では、第2のビデオフレーム検出規則は、フレームタイプがIフレームであるi番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するための条件または規則であり、この第2のビデオフレーム検出規則は、以下のような不等式(3)、(4)、および(5)のいずれかであってもよい。
【0054】

【数3】
【0055】

【数4】
【0056】

【数5】
【0057】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ2、3、4の値をとることができる。
【0058】
ここで、本願の実施例では、第1のフレームタイプがターゲットフレームタイプを満たす場合、端末が実際の消費ビット数、画像グループの初期平均ビットレート、および画像グループの残りの平均ビットレートが第1のビデオフレーム検出規則を満たすことを検出することは、i番目のビデオフレームがシーン切替状態にあることを示し、逆に、i番目のビデオフレームが非シーン切替状態にあることを示す。第1のフレームタイプがターゲットフレームタイプを満たさない場合、端末が実際の消費ビット数および画像グループの初期平均ビットレートが第2のビデオフレーム検出規則を満たすことを検出することは、i番目のビデオフレームがシーン切り替え状態にあることを示し、逆に、i番目のビデオフレームが非シーン切り替え状態にあることを示す。
【0059】
説明すべきところとして、本願の実施例によって提供されるビデオフレーム符号化方法におけるS1022及びS1023は、S1021以降の2つのオプションのプロセスであり、本願の実施例における端末は、実際の動作状況に応じて、S1021~S1022またはS1021~S1023を実行することができ、本願の実施例は限定しない。
【0060】
S103で、i番目のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する。
【0061】
本願の実施例では、端末は、現在の画像グループのビデオフレームを符号化する場合、この端末は、この現在の画像グループの初期平均ビットレート、すなわち、画像グループの初期平均ビットレートを取得することができ、このようにして、端末は、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出した後、i番目のビデオフレームがシーン切り替え状態にある場合、この端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定することができる。
【0062】
本願の実施例では、量子化モデルは、i番目のビデオフレームの量子化パラメータを算出するためのモデルであり、この量子化モデルは、ユーザによって事前にカスタマイズされた量子化のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された量子化のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【0063】
説明すべきところとして、本願の実施例では、端末は、i番目のビデオフレームの符号化が完了した後、i番目のビデオフレームに対応する関連な符号化パラメータを用いて、i+1番目のビデオフレームの符号化に関連するパラメータを算出し、調整することができる。
【0064】
本願の実施例では、端末によって処理される画像グループにおけるビデオフレームのタイプが、IフレームとPフレームに分けられるため、i番目のビデオフレームのタイプは、2つある可能性がある。端末が実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定するプロセスは、i番目のビデオフレームのタイプに応じて、様々な実装によって行われる。
【0065】
ここで、i番目のビデオフレームがPフレームである場合、端末は、画像グループの残りの平均ビットレートを取得することもでき、したがって、端末は、この画像グループの残りの平均ビットレートと、実際の消費ビット数の総数と、画像グループの初期平均ビットレートと、第1の量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する。ここで、量子化モデルは、第1の量子化モデルと第2の量子化モデルとを含む。
【0066】
本願の実施例では、第1の量子化モデルが、第1の初期量子化モデルと、第1の最大量子化モデルと、第1の最小量子化モデルとに分けられ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第1の初期量子化モデルとに基づいて、第1の初期量子化パラメータを決定することができ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第1の最大量子化モデルとに基づいて、第1の最大量子化パラメータを決定することができ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第1の最小量子化モデルとに基づいて、第1の最小量子化パラメータを決定することができる。
【0067】
例示的には、第1の最大量子化モデルは、数式(6)に示す通りであり、数式(6)は、以下の通りである。
【0068】

【数6】
【0069】
ここで、QPmaxは、第1の最大量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【0070】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ1.5、1.7と2.1の値をとることができ、上式のΔ1、Δ2、Δ3は、それぞれ、QPmaxの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ3、2、1と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0071】
例示的には、第1の最小量子化モデルは、数式(7)に示す通りであり、数式(7)は、以下の通りである。
【0072】

【数7】
【0073】
ここで、QPminは、第1の最小量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【0074】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ1.5、1.7と2.1の値をとることができ、上式のΔ4、Δ5、Δ6は、それぞれ、QPminの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ1、0、-1と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0075】
例示的には、第1の初期量子化モデルは、数式(8)に示す通りであり、数式(8)は、以下の通りである。
【0076】

【数8】
【0077】
ここで、QPframeは、第1の初期量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【0078】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ1.5、1.7と2.1の値をとることができ、上式のΔ7、Δ8、Δ9は、それぞれ、QPframeの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ2、1、0と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0079】
さらに、本願の実施例では、端末は、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを取得した後、実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに応じて、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとに対して、パラメータ調整を行い、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとを得る。ここで、ターゲットビット数とは、i番目のビデオフレームに対して予め割り当てられたビット数をいう。
【0080】
本願の実施例では、量子化調整モデルは、i番目のビデオフレームによって算出された量子化パラメータを調整するためのモデルであり、この量子化調整モデルは、ユーザによって事前にカスタマイズされた量子化調整のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された量子化調整のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【0081】
例示的に、量子化調整モデルは、数式(9-1)、数式(9-2)および数式(9-3)に示す通りであり、数式(9-1)、数式(9-2)および数式(9-3)は、具体的に以下の通りである。
【0082】

【数9-1】
【0083】

【数9-2】
【0084】

【数9-3】
【0085】
ここで、QPmax は、第1の調整最大量子化パラメータであり、QPmaxは、第1の最大量子化パラメータであり、QPmin は、第1の調整最小量子化パラメータであり、QPminは、第1の最小量子化パラメータであり、QPframe は、第1の調整初期量子化パラメータであり、QPframeは、第1の初期量子化パラメータであり、Rtargetは、i番目のフレームの所定のターゲットビット数であり、Ractualは、i番目のフレームの実際の消費ビット数である。
【0086】
説明すべきところとして、上式のσ及びτは、実験中にそれぞれ1.7と2.5であり、上式のΔ QPIとΔ QPIは、それぞれ、異なる段階関数でのQPのオフセット値であり、一部の実施例では、実験中に1と2に設定されている。
【0087】
具体的には、i番目のビデオフレームがIフレームである場合、端末は、実際の消費ビットの総数と、画像グループの初期平均ビットレートと、第2の量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する。
【0088】
本願の実施例では、第2の量子化モデルが、第2の初期量子化モデルと、第2の最大量子化モデルと、第2の最小量子化モデルとに分けられ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第2の初期量子化モデルとに基づいて、第1の初期量子化パラメータを決定することができ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第2の最大量子化モデルとに基づいて、第1の最大量子化パラメータを決定することができ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第2の最小量子化モデルとに基づいて、第1の最小量子化パラメータを決定することができる。
【0089】
例示的には、第2の最大量子化モデルは、数式(10)に示す通りであり、式(10)は、以下の通りである。
【0090】

【数10】
【0091】
ここで、QPmaxは、第1の最大量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【0092】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ2、3と4の値をとることができ、上式のΔ1、Δ2、Δ3は、それぞれ、QPmaxの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ3、5、7と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0093】
例示的には、第2の最小量子化モデルは、数式(11)に示す通りであり、式(11)は、以下の通りである。
【0094】

【数11】
【0095】
ここで、QPminは、第1の最小量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【0096】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ2、3と4の値をとることができ、上式のΔ4、Δ5、Δ6は、それぞれ、QPminの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ1、3、5と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0097】
例示的には、第2の初期量子化モデルは、数式(12)に示す通りであり、式(12)は、以下の通りである。
【0098】

【数12】
【0099】
ここで、QPframeは、第1の初期量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【0100】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ2、3と4の値をとることができ、上式のΔ7、Δ8、Δ9は、それぞれ、QPframeの異なる段階関数でのQPのオフセット値であり、実験中にそれぞれ2、4、6と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【0101】
S104で、補償長さを取得し、補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームと、第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数とを決定する。
【0102】
一部の実施例では、端末は、i番目のビデオフレームが位置するシーン状態を検出した後、i番目のビデオフレームがシーン切り替え状態にあることを検出する場合、この端末は、補償ウィンドウを確立し、補償長さを取得し、この補償長さに基づいて第1の補償対象ビデオフレームを決定し、そして、補償モデルに基づいて第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数を決定する必要があり、前記第1の補償対象ビデオフレームの数が補償長さに等しい。
【0103】
本願の実施例では、補償モデルは、切り替えシーンにあるi番目のビデオフレームが符号化された後に補償長さを計算するためのモデルであり、この補償モデルは、ユーザによって事前にカスタマイズされた補償のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された補償のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【0104】
説明すべきところとして、本願の実施例では、符号化後に、現在のビデオフレーム(すなわち、i番目のビデオフレーム)を検出して、現在のビデオフレームがシーン切り替え時のビデオフレームであると判定された場合、現在のビデオフレームを符号化した後に補償ウィンドウを確立し、補償ウィンドウ内の対応ビデオフレームのターゲットビットを再割り当て、すなわち、現在のビデオフレームの後ろのビデオフレームの符号化に必要なビット数を調整し、または現在のビデオフレームの後ろのビデオフレームの符号化パラメータ(ビットレート制御パラメータ、量子化パラメータなど)を調整することにより、符号化プロセスにおいて現在のビデオフレームの後ろのビデオフレームによって消費されるビット数が制御され、これによって、ビデオフレーム全体の符号化のより良い効果が獲得される。
【0105】
本願の実施例では、補償ウィンドウは、シーン切り替え状態にあるビデオフレームの後ろにビット補償を行う必要があるビデオフレームの長さであり、補償ウィンドウにあるビデオフレームが補償対象ビデオフレームと呼ばれてもよいし、ここでの補償ウィンドウの長さが補償長さと呼ばれてもよい。
【0106】
本願の実施例では、端末がi番目のビデオフレームがシーン切り替え状態にあることを検出し、補償ウィンドウを確立し、補償長さを取得するプロセスは、同様に、i番目のビデオフレームのフレームタイプに関係するものである。端末は、i番目のビデオフレームがシーン切り替え状態にあるPフレームであることを検出した場合、この端末は、第1の補償長さモデルにより補償長さの取得を行うことができる一方、端末は、i番目のビデオフレームがシーン切り替え状態にあるIフレームであることを検出した場合、この端末は、第2の補償長さモデルにより補償長さの取得を行うことができる。
【0107】
例示的には、端末がi番目のビデオフレームがシーン切り替え状態にあるPフレームであることを検出した場合、第1の補償長さモデルは、数式(13)および数式(14)に示す通りであり、数式(13)および数式(14)は、以下の通りである。
【0108】

【数13】
【0109】

【数14】
【0110】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートであり、Lは、中間補償長さであり、Lは、補償長さ(補償ウィンドウ長さ)であり、L1とL2は、所定の補償ウィンドウ長さである。Npは、画像グループにおける残りの符号化されていないPフレームの数を示す。
【0111】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ1.5、1.7と2.1の値をとることができる。上記のL1とL2は、それぞれ、実験中に5と2をとる。
【0112】
本願の実施例では、上式の物理的意味は、実際に消費されたビットRactualが画像グループの残りの平均ビットレートRave_remainの一定割合βを超えた後、i番目のビデオフレームの実際の消費ビット数Ractualに対する画像グループの初期平均ビットレートRaveの比率に基づいて補償ウィンドウLのサイズが決定され、比率が大きいほど、補償を行う必要があるビット数もより多いということを示し、そのため、より長い補償ウィンドウ、すなわち、より長い補償長さが必要になる、ことである。
【0113】
本願の実施例では、数式(14)は、補償長さの最大値が、画像グループにおける残りの符号化されていないPフレームの数である、ということを示し、端末は、画像グループにおけるビデオフレームに対してビデオ符号化を行い、また、端末によって取得された補償長さも、その画像グループにおける符号化されていないビデオフレームの補償のために使用されるものであり、そのため、補償長さの最大値は、Npを超えてはいけない。
【0114】
例示的には、端末がi番目のビデオフレームがシーン切り替え状態にあるIフレームであることを検出した場合、第2の補償長さモデルは、数式(15)、数式(16)および数式(17)に示す通りであり、数式(15)、数式(16)および数式(17)は、以下の通りである。
【0115】

【数15】
【0116】

【数16】
【0117】

【数17】
【0118】
ここで、Lは、補償長さ(補償ウィンドウ長さ)であり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、fpsは、フレームレートを表し、LGOP_Pは、画像グループにおけるPフレームの数を表し、ρ1とρ2は、それぞれ、補償ウィンドウ長さを決定する際の、フレームレートとPフレームの数のそれぞれの付加重みを表し、実験中にρ1とρ2の値が0.4と0.8とすることができる。LN_Iは、fpsとLGOP_Pとに基づいて予測された補償ウィンドウ長さであり、後続に補償ウィンドウのサイズを設定する際の参照とするものであり、補償ウィンドウの最大値が、ζと設定され、実験中に15の値を取る。ω1、ω2とω3は、それぞれ2、3と4であり、L1、L2とL3は、Lの異なる段階での最小値であり,実験中にそれぞれ1、2と5の値をとる。数式(15)は、実際の消費ビット数Ractualと平均ビット数Raveとに基づいて、補償ウィンドウをさらに調整するためのものである。
【0119】
説明すべきところとして、本願の実施例では、シーン切替状態にあるi番目のビデオフレームがIフレームであるかPフレームであるかにかかわらず、端末が補償長さを取得した後、i番目のビデオフレームの後ろの連続L個のビデオフレームは、第1の補償対象ビデオフレームになり、また、端末は、補償長さを取得した後、補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数を決定する。
【0120】
例示的には、図4に示すように、現在の画像グループにおけるビデオフレームは1000個のフレームがあると仮定し、端末は、201番目のビデオフレームの符号化を行う際に、201番目のビデオフレームがシーン切り替え状態にあることを検出し、すなわち、201番目のビデオフレームは、過剰なビットレートを消費する必要があるものであり、その後ろの補償ウィンドウ内のビデオフレームに対してビット補償は行われる必要がある。算出された補償長さが5であると仮定すると、すなわち、201番目のビデオフレームの後ろの補償ウィンドウの長さは5であり、201番目のビデオフレームがPフレームであることを例として説明すると、201番目のビデオフレームの後ろの連続5つのビデオフレーム(すなわち、202番目のビデオフレームから206番目のビデオフレーム)は、補償ウィンドウ内にある、ビット補償を行う必要がある第1の補償ビデオフレームになる。
【0121】
ここで、端末は、補償長さと、実際の消費ビット数と、画像グループの初期平均ビットレートと、所定の補償基数モデルとに基づいて、第1の補償対象ビデオフレームのそれぞれに対応する第1の補償ビット基数を得てから、この第1の補償ビット基数と、画像グループの初期平均ビットレートと、画像グループの残りの平均ビットレートと、所定の補償割り当てビットモデルとに基づいて、第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数を得、ここで、補償モデルは、所定の補償基数モデルと所定の補償割り当てビットモデルとを含むことができる。
【0122】
例示的には、本願の実施例における所定の補償基数モデルは、数式(18)に示す通りであり、式(18)は、以下の通りである。
【0123】

【数18】
【0124】
ここで、Rcom_jは、i+j番目のビデオフレームに対応する第1の補償ビット基数であり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、μjは、補償ウィンドウ内の各第1の補償対象ビデオフレームが占める重みである。
【0125】
説明すべきところとして、本願の実施例では、μjの設定原則として、i番目のビデオフレームから近いほど、第1の補償ビデオフレームに対応する重みμjの値は大きくなる。
【0126】
本願の実施例では、補償モデルは、シーン切り替え時のi番目のビデオフレームの実際の消費ビット数が画像グループの初期平均ビットレートを超えた差に基づいて、補償ウィンドウ内の各第1の補償対象ビデオフレームの補償が必要な重み付け平均ビット数Rcom_jを求めるということ、を表すためのものである。
【0127】
例示的には、本願の実施例における所定の補償割り当てビットモデルは、数式(19)に示す通りであり、式(19)は、以下の通りである。
【0128】

【数19】
【0129】
ここで、RT_jは、i+j番目のビデオフレームに対応する第1の補償割り当てビット数であり、Rcom_jは、i+j番目のビデオフレームに対応する第1の補償ビット基数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【0130】
説明すべきところとして、符号化を行う必要がある現在のビデオフレームが補償ウィンドウ内にある場合、端末によって割り当てられた所定の割り当てビット数は、画像グループの初期平均ビットレートRaveから、現在のビデオフレームに対応する第1の補償ビット基数に対応の重みを乗じたものを引いたものであり、すなわち、ターゲットビット数は、第1の補償割り当てビット数に基づいて算出されたものである。現在のビデオフレームが補償ウィンドウ内にない場合、端末によって割り当てられたターゲットビット数は、画像グループの残りのビットの平均ビットレートRave_remainである。
【0131】
理解すべきところとして、本願の実施例では、i番目のビデオフレームがシーン切り替え状態にあるとき、端末は、i番目のビデオフレームの符号化で過剰に消費されたビット数を、後続のいくつかのフレーム(すなわち、第1の補償対象ビデオフレーム)に滑らかに割り当て、これによって、ビデオ全体の主観的な品質が低下しない前提で、できるだけビットレートを滑らかにする役割が達成される。
【0132】
説明すべきところとして、本願の実施例では、S103及びS104は、いずれも、i番目のビデオフレームがシーン切替状態にある場合に端末が実行するプロセスであり、本願の実施例は、S102の後、S103及びS104の実行順序に限定しなく、すなわち、端末がS102-103-104を実行してもよく、S102-104-103を実行してもよい。
【0133】
S105で、i+1番目のビデオフレームが第1の補償対象ビデオフレームに属する場合、i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとに基づいて、第1の符号化規則を更新し、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入る。
【0134】
一部の実施例では、端末は、第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを取得した後、この端末は、第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとに基づいて、i+1番目のビデオフレームを符号化し、すなわち、端末は、第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとに基づいて、第1の符号化規則を更新してから、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入り、i+1番目のビデオフレームに対して符号化及び符号化後の処理を行う。
【0135】
一部の実施例では、前記第1の符号化規則は、第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとによって決定されるものであり、取得された第1の補償割り当てビット数と、第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとに基づいて、第1の符号化規則が更新されることができる。
【0136】
一部の実施例では、前記i+1番目のビデオフレームに対してビデオ符号化を行う前に、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属するかどうかを決定する必要があり、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属する場合、i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新して、前記i+1番目のビデオフレームに対してビデオ符号化を行い、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて前記i+1番目の第4の量子化パラメータを算出し、前記第4の量子化パラメータに基づいて、前記i+1番目のビデオフレームに対してビデオ符号化を行い、ここで、前記ターゲットビット数とは、前記i+1番目のビデオフレームに予め割り当てられたビット数を意味する。説明すべきところとして、ここで、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属するかどうかを決定することは、後続のステップ202でi番目のフレームが第2の補償対象ビデオフレームであるかどうかを決定することに相当する。
【0137】
本願の実施例では、端末がi+1番目のビデオフレームのビデオ符号化に入るプロセスは、端末がi+1を行った後、S101-105を繰り返し実行するプロセスであり、唯一の相違は、第1の符号化規則が更新されることだけであり、符号化を実現する技術的な方式は、不変である。
【0138】
さらに、上記の説明では、端末が第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを得た後に、さらに調整を行う必要があるというプロセスは存在しているため、このような場合で、端末は、さらに、第1の補償割り当てビット数と、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとに基づいて、第1の符号化規則を更新してから、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入り、i+1番目のビデオフレームの符号化及び符号化後の処理を開始する必要がある。
【0139】
説明すべきところとして、端末が第1の符号化規則を採用して現在のビデオフレームを符号化するプロセスは、後続の実施例で説明される。
【0140】
さらに、S102の後に、図5に示すように、本願の実施例によって提供されるビデオフレーム符号化方法は、さらに、S106を含む。具体的には、以下の通りである。
【0141】
S106で、i番目のビデオフレームが非シーン切替状態にある場合、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入る。
【0142】
端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出した後、この端末は、i番目のビデオフレームが非シーン切替状態にあることも検出でき、そのため、i番目のビデオフレームが非シーン切替状態にあるとき、この端末は、i+1番目のビデオフレームのビデオ符号化プロセスに直接に入ることができ、i+1を行った後、N番目のビデオフレームの符号化が完了するまで、直接にS101~S105を繰り返し実行する。
【0143】
理解すべきところとして、端末は、ビデオフレーム符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ(すなわち補償ウィンドウの長さ)、第1の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【0144】
一部の実施例では、本願の実施例によって提供されるビデオフレーム符号化方法において、S101での第1の符号化規則を採用してi番目のビデオフレームに対してビデオ符号化を行うプロセスは、S201~206を含む。図6に示すように、具体的には、以下の通りである。
【0145】
S201で、i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、第2の補償対象ビデオフレームのそれぞれに対応する第2の補償割り当てビット数から、i番目のビデオフレームの第3の補償割り当てビット数を取得し、第2の補償対象ビデオフレームは、i番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものである。
【0146】
一部の実施例では、上記第2の補償対象ビデオフレームは、上記i番目のビデオフレームの前のシーン切替状態にあるビデオフレームの符号化の後に決定されたものである。上記i番目のビデオフレームの第3の補償割り当てビット数は、第2の補償対象ビデオフレームのそれぞれに対応する第2の補償割り当てビット数から取得された、i番目のビデオフレームに対応する第2の補償割り当てビット数である。
【0147】
S202で、第3の補償割り当てビット数に基づいて、i番目のビデオフレームの第2の量子化パラメータを算出する。
【0148】
一部の実施例では、前記i番目のビデオフレームに対応する第2の補償割り当てビット数に基づいて、前記i番目のビデオフレームの第2の量子化パラメータを算出する。
【0149】
本願の実施例では、端末がi番目のビデオフレームを符号化する際に第1の符号化規則を採用する理由は、i番目のビデオフレームが、前の符号化フレームの補償ウィンドウ内にあってもよいし、補償を行う必要がなくてもよいことである。そのため、この2つの場合について、端末がi番目のビデオフレームを符号化する方式は、同じではない。
【0150】
ここで、i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、これは、i番目のビデオフレームの前のビデオフレームの中にシーン切替状態にあるビデオフレームが存在しているということを表し、そのため、該ビデオフレームが、実施例における符号化プロセスに従って、自身に対応する第2の補償対象ビデオフレームと第2の補償対象ビデオフレームのそれぞれに対応する第2の補償割り当てビット数が既に決定されたものであり、このとき、この端末は、第2の補償割り当てビット数から、i番目のビデオフレームの第3の補償割り当てビット数を取得することができる。そして、端末は、第3の補償割り当てビット数に基づいて、i番目のビデオフレームに対してターゲットビット数を割り当ててから、ターゲットビット数に基づいて、i番目のビデオフレームの第2の量子化パラメータを算出することができる。
【0151】
具体的には、端末は、符号化を行う際に、i番目のビデオフレームをM×M(Mは1より大きい正の整数である)の画素ブロックに分割することができる。端末は、ブロックごとに重み値を設定して、その重み値とターゲットビット数とに基づいて、各画素ブロックにそれぞれの第1のターゲットビット数を割り当てることができる。このようにして、端末は、第1のターゲットビット数に基づいて、画素ブロックごとに対応する第2の量子化パラメータを算出することができる。
【0152】
S203で、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得し、ここで、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとは、i-1番目のビデオフレームの符号化の後に決定されたものである。
【0153】
S204で、第2の量子化パラメータと、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとに基づいて、i番目のビデオフレームを符号化する。
【0154】
端末は、i番目のビデオフレームの第2の量子化パラメータを算出し処理した後、この端末は、i-1番目のビデオフレームのときに、既にi番目のビデオフレームに対応する第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを算出したので、即ち、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとは、i-1番目のビデオフレームの符号化の後に決定されたものであるので、この端末は、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得する。このようにして、端末は、第2の量子化パラメータと、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとに基づいて、i番目のビデオフレームを符号化することができる。
【0155】
具体的には、i番目のビデオフレームにおける第1の画素ブロックに対して、端末は、第2の初期量子化パラメータを採用してビデオ符号化を行い、i番目のビデオフレームにおける第1の画素ブロック以外のほかの任意の画素ブロックに対して、端末は、それぞれに対応する第2の量子化パラメータを採用してビデオ符号化を行い、また、この第2の量子化パラメータが、第2の最大量子化パラメータと第2の最小量子化パラメータによる制限を受け、すなわち、第2の量子化パラメータの上限値が、第2の最大量子化パラメータであり、下限値が、第2の最小量子化パラメータである。第2の量子化パラメータが「第2の最小量子化パラメータ,第2の最大量子化パラメータ」という範囲内にある場合、その第2の量子化パラメータに対応する画素ブロックに対して、端末は、それぞれに対応する第2の量子化パラメータを採用してビデオ符号化を行いし、第2の量子化パラメータが第2の最大量子化パラメータを超える場合、この第2の量子化パラメータに対応する画素ブロックに対して、端末は、第2の最大量子化パラメータを採用してビデオ符号化を行いし、第2の量子化パラメータが第2の最小量子化パラメータより小さい場合、この第2の量子化パラメータに対応する画素ブロックに対して、端末は、第2の最小量子化パラメータを採用してビデオ符号化を行う。
【0156】
理解すべきところとして、端末によるi番目のビデオフレームへの符号化が、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとによる制限を受けるため、i番目のビデオフレームを符号化する際の量子化パラメータは、高すぎたり低すぎたりすることがない。そのため、i-1番目のビデオフレームによって過剰に消費されたビットを補償するとともに、i番目のビデオフレームを符号化する際のビデオ品質を維持するということが保証される。
【0157】
説明すべきところとして、i番目のビデオフレームの符号化が完了した後、端末は、S101~105を実行し、この端末がi+1番目のビデオフレームが第1の補償ビデオフレームに属すると判断した場合の符号化方式は、S201~S204と一致する。
【0158】
例示的には、現在の画像グループのビデオフレームは1000個のフレームがあると仮定すると、端末は、200番目のビデオフレームの符号化を行う際に、200番目のビデオフレームの消費ビット数がビデオフレームの検出規則に適合し、シーンの切り替え状態にあることを検出した場合、この端末は、補償長さ(5と仮定する)や201番目のビデオフレームの第3の補償割り当てビット数、第2の初期量子化パラメータ、第2の最大量子化パラメータ、第2の最小量子化パラメータを算出することができ、このとき、201番目のフレームが補償ウィンドウ200+5内にあるため、端末は、第3の補償割り当てビット数と、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを採用して201番目のビデオフレームを符号化し、符号化が完了した後、端末は、201番目のビデオフレームに対してS101~S105での実現プロセスを開始する。
【0159】
S205で、i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、i番目のビデオフレームの第3の量子化パラメータを算出する。
【0160】
S206で、第3の量子化パラメータに基づいて、i番目のビデオフレームを符号化する。
【0161】
本願の実施例では、端末がi番目のビデオフレームを符号化する際に第1の符号化規則を採用する理由は、i番目のビデオフレームが、前の符号化フレームの補償ウィンドウ内にあってもよいし、補償を行う必要がなくてもよいことである。そのため、この2つの場合について、端末がi番目のビデオフレームを符号化する方式は、同じではない。
【0162】
ここで、i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、端末は、ターゲットビット数に基づいてi番目のビデオフレームの第3の量子化パラメータを算出してから、第3の量子化パラメータに基づいてi番目のビデオフレームを符号化すればよい。
【0163】
説明すべきところとして、本願の実施例によって提供されるビデオフレーム符号化方法におけるS201~S204とS205~S206は、S101における第1の符号化規則を採用してi番目のビデオフレームに対してビデオ符号化を行うプロセスを実現するための2つのオプションのプロセスであり、本願の実施例は、S201~S204とS205~S206の実行順序を限定しなく、端末は、実際の動作状況に応じて、相応なステップまたはプロセスを実行することができ、本願の実施例は限定しない。
【0164】
本願の実施例によって提供されるビデオフレーム符号化方法に基づいて、本願の実施例は、端末1を提供している。図7に示すように、該端末1は、
【0165】
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得する取得手段10と、
【0166】
第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行う符号化手段11と、
【0167】
符号化された前記i番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段12と、
【0168】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段13と、
【0169】
前記i番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像群の初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定する決定手段14と、
【0170】
前記i+1番目のビデオフレームが第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとにより、前記第1の符号化規則を更新する更新手段15と、を含み、
【0171】
前記取得手段10は、さらに、補償長さを取得し、
【0172】
前記決定手段14は、さらに、前記補償長さと補償モデルとに基づいて、前記第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する前記第1の補償割り当てビット数とを決定し、
【0173】
前記符号化手段11は、さらに、N番目のビデオフレームの符号化が完了するまで、前記i+1番目のビデオフレームのビデオ符号化プロセスに入る。
【0174】
一部の実施例では、前記ビデオフレーム検出規則は、第1のビデオフレーム検出規則と第2のビデオフレーム検出規則とを含み、
【0175】
前記検出手段13は、さらに、前記i番目のビデオフレームの第1のフレームタイプを検出し、
【0176】
前記取得手段10は、さらに、前記第1のフレームタイプがターゲットフレームタイプを満たす場合に、画像グループの残りの平均ビットレートを取得し、
【0177】
前記検出手段13は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第1のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【0178】
一部の実施例では、前記検出手段13は、さらに、前記i番目のビデオフレームの第1のフレームタイプを検出した後、前記第1のフレームタイプが前記ターゲットフレームタイプを満たさない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第2のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【0179】
一部の実施例では、前記取得手段10は、さらに、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、前記第2の補償対象ビデオフレームに対応する第2の補償割り当てビット数から、前記i番目のビデオフレームの第3の補償割り当てビット数を取得し、ここで、前記第2の補償対象ビデオフレームが、i番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記第3の補償割り当てビット数に基づいて、前記i番目のビデオフレームの第2の量子化パラメータを算出することと、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得し、ここで、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとが、i-1番目のビデオフレームの符号化の後に決定されたものであることと、を行い、
【0180】
前記符号化手段11は、さらに、前記第2の量子化パラメータと、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとに基づいて、前記i番目のビデオフレームを符号化する。
【0181】
一部の実施例では、前記取得手段10は、さらに、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、i番目のビデオフレームの第3の量子化パラメータを算出し、
【0182】
前記符号化手段11は、さらに、前記第3の量子化パラメータに基づいて、i番目のビデオフレームを符号化する。
【0183】
一部の実施例では、前記端末1は、調整手段16をさらに含み、
【0184】
前記調整手段16は、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定した後、前記実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに従って、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに対して、パラメータ調整を行い、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとを得る。
【0185】
一部の実施例では、前記更新手段15は、さらに、前記第1の補正割り当てビット数と、前記第1の調整初期量子化パラメータと、前記第1の調整最大量子化パラメータと、前記第1の調整最小量子化パラメータとに基づいて、前記第1の符号化規則を更新する。
【0186】
一部の実施例では、前記符号化手段11は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記i番目のビデオフレームが非シーン切替状態にある場合、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入る。
【0187】
理解すべきところとして、端末は、ビデオフレーム符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ(すなわち補償ウィンドウの長さ)、第1の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【0188】
本願の実施例によって提供されるビデオフレーム符号化方法に基づいて、図8に示すように、本願の実施例は、端末を提供している。該端末は、プロセッサ17と、メモリ18と、通信バス19とを含み、前記メモリ18は、前記プロセッサ17と前記通信バス19を介して接続され、前記プロセッサ17は、前記メモリ18に記憶されているビデオフレーム符号化関連プログラムを呼び出して、次のステップを実行する。これらのステップは、
【0189】
画像グループのi(iは1以上かつN以下であり、Nは前記画像グループにおけるビデオフレームのフレーム総数である)番目のビデオフレームを取得し、第1の符号化規則を採用して前記i番目のビデオフレームに対してビデオ符号化を行い、符号化された前記i番目のビデオフレームに対応する実際の消費ビット数を統計するステップと、前記実際の消費ビット数と、画像グループの初期平均符号化率と、ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切替状態にあるかどうかを検出するステップと、前記i番目のビデオフレームが前記シーン切替状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定するステップと、補償長さを取得し、前記補償長さと補償モデルとに基づいて、第1の補償対象ビデオフレームと、前記第1の補償対象ビデオフレームのそれぞれに対応する第1の補償割り当てビット数とを決定するステップと、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属する場合、前記i+1番目のビデオフレームに対応する第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに基づいて、前記第1の符号化規則を更新し、N番目のビデオフレームの符号化が完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入るステップと、を含む。
【0190】
一部の実施例では、前記ビデオフレーム検出規則は、第1のビデオフレーム検出規則と第2のビデオフレーム検出規則とを含み、
【0191】
前記プロセッサ17は、前記i番目のビデオフレームの第1のフレームタイプを検出し、
【0192】
前記第1のフレームタイプがターゲットフレームタイプを満たす場合、画像グループの残りの平均ビットレートを取得し、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第1のビデオフレーム検出規則とに基づいて、i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する。
【0193】
一部の実施例では、前記プロセッサ17は、前記i番目のビデオフレームの第1のフレームタイプを検出した後、前記第1のフレームタイプが前記ターゲットフレームタイプを満たさない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第2のビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する。
【0194】
一部の実施例では、前記プロセッサ17は、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属する場合、前記第2の補償対象ビデオフレームに対応する第2の補償割り当てビット数から、前記i番目のビデオフレームの第3の補償割り当てビット数を取得し、ここで、前記第2の補償対象ビデオフレームが、前記i番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記第3の補償割り当てビット数に基づいて、前記i番目のビデオフレームの第2の量子化パラメータを算出することと、第2の初期量子化パラメータと、第2の最大量子化パラメータと、第2の最小量子化パラメータとを取得し、ここで、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとが、i-1番目のビデオフレームの符号化の後に決定されたものであることと、前記第2の量子化パラメータと、前記第2の初期量子化パラメータと、前記第2の最大量子化パラメータと、前記第2の最小量子化パラメータとに基づいて、前記i番目のビデオフレームを符号化することと、を行う。
【0195】
一部の実施例では、前記プロセッサ17は、前記i番目のビデオフレームが第2の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記i番目のビデオフレームの第3の量子化パラメータを算出することと、前記第3の量子化パラメータに基づいて前記i番目のビデオフレームを符号化することと、を行う。
【0196】
一部の実施例では、前記プロセッサ17は、さらに、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、i+1番目のビデオフレームに対応する第1の初期量子化パラメータと、第1の最大量子化パラメータと、第1の最小量子化パラメータとを決定した後、前記実際の消費ビット数とターゲットビット数が比率条件を満たす場合、量子化調整モデルに従って、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量子化パラメータとに対して、パラメータ調整を行い、第1の調整初期量子化パラメータと、第1の調整最大量子化パラメータと、第1の調整最小量子化パラメータとを得る。
【0197】
一部の実施例では、前記プロセッサ17は、さらに、前記第1の補正割り当てビット数と、前記第1の調整初期量子化パラメータと、前記第1の調整最大量子化パラメータと、前記第1の調整最小量子化パラメータとに基づいて、前記第1の符号化規則を更新する。
【0198】
一部の実施例では、前記プロセッサ17は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記ビデオフレーム検出規則とに基づいて、前記i番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記i番目のビデオフレームが非シーン切替状態にある場合、N番目のビデオフレームが完了するまで、i+1番目のビデオフレームのビデオ符号化プロセスに入る。
【0199】
一部の実施例では、前記プロセッサ17は、さらに、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属するかどうかを決定し、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属する場合、i+1番目のビデオフレームに対応する前記第1の補償割り当てビット数と、前記第1の初期量子化パラメータと、前記第1の最大量子化パラメータと、前記第1の最小量化パラメータとに基づいて、前記第1の符号化規則を更新し、前記i+1番目のビデオフレームに対してビデオ符号化を行い、
【0200】
前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて前記i+1番目のビデオフレームの第4の量子化パラメータを算出し、前記第4の量化パラメータに基づいて、前記i+1番目のビデオフレームに対してビデオ符号化を行い、ここで、前記ターゲットビット数とは、前記i+1番目のビデオフレームに予め割り当てられたビット数を意味する。
【0201】
説明すべきところとして、ここで、前記i+1番目のビデオフレームが前記第1の補償対象ビデオフレームに属するかどうかを決定することは、i番目のフレームが第2の補償対象ビデオフレームであるかどうかを決定することに相当する。理解すべきところとして、端末は、ビデオフレームに対して符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ(すなわち補償ウィンドウの長さ)、第1の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【0202】
実際の応用では、上述のメモリは、例えばランダムアクセスメモリ(RAM:Random-Access Memory)のような揮発性メモリ(volatile memory)であってもよく、例えばリードオンリーメモリ(ROM:Read-Only Memory)、フラッシュメモリ(flash memory)、ハードディスク(HDD:Hard Disk Drive)や固体ハードディスク(SSD:Solid-State Drive)などのような不揮発性メモリ(non-volatile memory)であってもよく、または上記の種類のメモリの組み合わせであってもよいし、また、プロセッサに命令とデータを提供している。
【0203】
上記のプロセッサは、特定用途向け集積回路(ASIC:Appliation Specific Integrated Curcuit)、デジタル信号プロセッサ(DSP:Digital Signal Processor)、デジタル信号処理装置(DSPD:Digital Signal Processing Device)、プログラマブル論理デバイス(PLD:Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Aray)、中央プロセッサ(CPU:Central Processing Unit)、コントローラ、マイクロコントローラ、マイクロプロセッサのうちの少なくとも1つであってもよい。理解すべきところとして、異なる装置については、上記プロセッサの機能を実現するための電子機器は他にもよいが、本願の実施例は特に限定しない。
【0204】
また、本願の実施例は、端末に適用されるコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ読み取り可能な記憶媒体に1つまたは複数のビデオフレーム符号化プログラムが記憶され、前記1つまたは複数のビデオフレーム符号化プログラムは、1つまたは複数のプロセッサによって実行され、実施例1および実施例2の方法を実現することができる。
【0205】
当業者であれば、本願の実施例は、方法、システム、またはコンピュータプログラム製品として提供されてもよいことを理解すべきである。したがって、本願は、ハードウェアの実施例、ソフトウェアの実施例、またはソフトウェアとハードウェアを組み合わせた実施例という形式を採用することができる。さらに、本願は、コンピュータ利用可能なプログラムコードを含む1つ以上のコンピュータ利用可能な記憶媒体(磁気ディスクメモリや光学メモリなどを含むが、これらに限定されない)上で実施されるコンピュータプログラム製品という形式を採用することができる。
【0206】
本願は、本願の実施例による方法、装置(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しながら説明するものである。フローチャートおよび/またはブロック図におけるそれぞれのプロセスおよび/またはブロック、ならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組み合わせは、コンピュータプログラム命令によって実現され得ることが理解されるべきである。これらのコンピュータプログラム命令が、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、または他のプログラマブルデータ処理装置のプロセッサに提供されることで、1つの機器が生成される。これによって、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令は、フローチャートの1つまたは複数のプロセスおよび/またはブロック図の1つまたは複数のブロックに指定された機能を実現するための装置を生成する。
【0207】
これらのコンピュータプログラム命令が、特定の方法で動作するようにコンピュータまたは他のプログラマブルデータ処理装置を導くことができるコンピュータ読み取り可能なメモリに記憶されてもよいし、これによって、このコンピュータ読み取り可能なメモリに記憶されている命令は、命令デバイスを含む製造品を生成し、この命令装置は、フローチャートの1つまたは複数のプロセスおよび/またはブロック図の1つまたは複数のブロックに指定された機能を実現する。
【0208】
これらのコンピュータプログラム命令が、コンピュータまたは他のプログラマブルデータ処理装置にロードされてもよいし、これによって、コンピュータまたは他のプログラマブルデバイス上で一連の動作ステップを実行することで、コンピュータによって実現される処理を生成し、それにより、コンピュータまたは他のプログラマブルデバイス上で実行される命令は、フローチャートの1つまたは複数のプロセスおよび/またはブロック図の1つまたはブロックに指定された機能を実現するためのステップを提供している。
【0209】
上記は、本願の好ましい実施例にすぎず、本願の保護範囲を限定するものではない。
【符号の説明】
【0210】
1 端末
3 ネットワーク
10 取得手段
11 符号化手段
12 統計手段
13 検出手段
14 決定手段
15 更新手段
17 プロセッサ
18 メモリ
図1
図2
図3
図4
図5
図6
図7
図8