(57)【要約】  本願は、ビデオフレーム符号化方法および端末を開示し、画像グループのｉ番目のビデオフレームを取得し、第１の符号化規則を採用してｉ番目のビデオフレームを符号化し、符号化されたｉ番目のビデオフレームの実際の消費ビット数を統計することと、実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルと、ビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームの状態を検出し、ｉ番目のビデオフレームがシーン切り替え状態にある場合、ｉ＋１番目のビデオフレームの第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定することと、補償長さを取得し、補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームの第１の補償割り当てビット数を決定することと、ｉ＋１番目のビデオフレームが第１の補償対象ビデオフレームに属する場合、ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに基づいて、第１の符号化規則を更新し、ｉ＋１番目のビデオフレームを符号化することと、を含む。
2020518174.tif 000002
【特許請求の範囲】
【請求項１】
端末に適用されるビデオフレーム符号化方法であって、
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得し、第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行い、符号化された前記ｉ番目のビデオフレームに対応する実際の消費ビット数を統計することと、
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することと、
前記ｉ番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定することと、
補償長さを取得し、前記補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数とを決定することと、
前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する前記第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新し、Ｎ番目のビデオフレームの符号化が完了するまで、前記ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入ることと、
を含むことを特徴とするビデオフレーム符号化方法。
【請求項２】
前記ビデオフレーム検出規則は、第１のビデオフレーム検出規則を含み、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することは、
前記ｉ番目のビデオフレームのフレームタイプを検出することと、
前記フレームタイプがターゲットフレームタイプである場合、画像グループの残りの平均ビットレートを取得することと、
前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第１のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出することと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ビデオフレーム検出規則は、さらに、第２のビデオフレーム検出規則を含み、前記方法は、さらに、
前記フレームタイプが前記ターゲットフレームタイプではない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第２のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出すること、
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行うことは、
前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、前記第２の補償対象ビデオフレームのそれぞれに対応する第２の補償割り当てビット数から、前記ｉ番目のビデオフレームに対応する第２の補償割り当てビット数を取得し、ここで、前記第２の補償対象ビデオフレームが、前記ｉ番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、
前記ｉ番目のビデオフレームに対応する前記第２の補償割り当てビット数に基づいて、前記ｉ番目のビデオフレームの第２の量子化パラメータを算出することと、
第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得し、ここで、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとが、ｉ−１番目のビデオフレームの符号化の後に決定されたものであることと、
前記第２の量子化パラメータと、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとに基づいて、前記ｉ番目のビデオフレームを符号化し、ここで、前記第２の量子化パラメータの上限値が前記第２の最大量子化パラメータであり、下限値が前記第２の最小量子化パラメータであることと、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行うことは、
前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記ｉ番目のビデオフレームの第３の量子化パラメータを算出し、ここで、前記ターゲットビット数とは、前記ｉ＋１番目のビデオフレームに予め割り当てられたビット数を意味することと、
前記第３の量子化パラメータに基づいて、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行うことと、
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに従って、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに対して、パラメータ調整を行い、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとを得ること、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新することは、
前記第１の補償割り当てビット数と、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとに基づいて、前記第１の符号化規則を更新すること、
を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記ｉ番目のビデオフレームが非シーン切替状態にある場合、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入ること、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
端末であって、
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得する取得手段と、
第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行う符号化手段と、
符号化された前記ｉ番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段と、
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段と、
前記ｉ番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する決定手段と、
前記ｉ＋１番目のビデオフレームが第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新する更新手段と、を含み、
前記取得手段は、さらに、補償長さを取得し、
前記決定手段は、さらに、前記補償長さと補償モデルとに基づいて、前記第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する前記第１の補償割り当てビット数とを決定し、
前記符号化手段は、さらに、Ｎ番目のビデオフレームの符号化が完了するまで、前記ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る、
ことを特徴とする端末。
【請求項１０】
前記ビデオフレーム検出規則は第１のビデオフレーム検出規則を含み、
前記検出手段は、さらに、前記ｉ番目のビデオフレームのフレームタイプを検出し、
前記取得手段は、さらに、前記フレームタイプがターゲットフレームタイプである場合、画像グループの残りの平均ビットレートを取得し、
前記検出手段は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第１のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する、
ことを特徴とする請求項９に記載の端末。
【請求項１１】
前記ビデオフレーム検出規則は、さらに、第２のビデオフレーム検出規則を含み、
前記検出手段は、さらに、前記ｉ番目のビデオフレームの第１のフレームタイプを検出した後、前記フレームタイプが前記ターゲットフレームタイプではない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第２のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する、
ことを特徴とする請求項１０に記載の端末。
【請求項１２】
前記取得手段は、さらに、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、前記第２の補償対象ビデオフレームに対応する第２の補償割り当てビット数から、前記ｉ番目のビデオフレームに対応する第２の補償割り当てビット数を取得し、ここで、前記第２の補償対象ビデオフレームがｉ番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記ｉ番目のビデオフレームに対応する第２の補償割り当てビット数に基づいて、前記ｉ番目のビデオフレームの第２の量子化パラメータを算出することと、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得し、ここで、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとが、ｉ−１番目のビデオフレームの符号化の後に決定されたものであることと、を行い、
前記符号化手段は、前記第２の量子化パラメータと、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとに基づいて、前記ｉ番目のビデオフレームを符号化し、ここで、前記第２の量子化パラメータの上限値が前記第２の最大量子化パラメータであり、下限値が前記第２の最小量子化パラメータである、
ことを特徴とする請求項９に記載の端末。
【請求項１３】
前記取得手段は、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記ｉ番目のビデオフレームの第３の量子化パラメータを算出し、前記ターゲットビット数とは、前記ｉ＋１番目のビデオフレームに予め割り当てられたビット数を意味し、
前記符号化手段は、前記第３の量子化パラメータに基づいて、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行う、
ことを特徴とする請求項９に記載の端末。
【請求項１４】
前記端末は、調整手段をさらに含み、
前記調整手段は、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定した後、前記実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに従って、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに対して、パラメータ調整を行い、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとを得、
前記符号化手段は、さらに、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記ｉ番目のビデオフレームが非シーン切替状態にある場合、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る、
ことを特徴とする請求項９に記載の端末。
【請求項１５】
前記更新手段は、さらに、前記第１の補償割り当てビット数と、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとに基づいて、前記第１の符号化規則を更新する、
ことを特徴とする請求項１４に記載の端末。
【請求項１６】
不揮発性のコンピュータ読み取り可能な記憶媒体であって、コンピュータ読み取り可能な命令が記憶され、少なくとも1つのプロセッサに、請求項１〜８のいずれか1項に記載の方法を実行させることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１７】
メモリと、プロセッサとを含む端末であって、
前記メモリに、コンピュータ読み取り可能な命令が記憶され、請求項１〜８のいずれか1項に記載の方法を実行するために、前記プロセッサが前記メモリにおけるコンピュータ読み取り可能な命令を実行することを特徴とする端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１７年０８月１７日に中国特許庁に提出された、出願番号が２０１７１０７０７５０３．６であり、発明の名称が「ビデオフレーム符号化方法および端末」である中国特許出願の優先権を主張し、その全ての内容は、参照することにより本願に組み込まれる。
【０００２】
本願は、マルチメディア分野におけるビデオ処理技術に関し、特に、ビデオフレーム符号化方法、端末、および記憶媒体に関する。
【背景技術】
【０００３】
科学技術の絶え間ない発展に伴って、電子技術も急速な発展を遂げ、電子製品の種類もますます多くなり、人々も科学技術の発展による様々な便利さを享受している。今日、人々は、様々な種類の電子機器や端末、端末に搭載されている各種機能のアプリケーションを通じて、科学技術の発展による快適な生活を楽しむことができる。例えば、端末上のソーシャルアプリケーションを利用して遠くの友達とビデオチャットをしたり、撮影アプリケーションを利用してビデオ撮影をしたりすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
端末上のソーシャルアプリケーションなどでビデオチャットを使用する間、携帯電話の揺れや撮影シーンの移動、カメラを切り替えることで撮影を行うことなどの現象が時々発生することがある。このようにして、ビデオ符号化では、符号化された現在のフレームと前のフレームのコンテンツが大きく変化するという状況、すなわち、シーン切り替えが発生することがある。シーン切り替え時のビデオフレームの処理は、常に困難な問題であり、その撮影シーンやビデオシーンの変化により、ビデオ符号化プロセスに生成されるビットが多くなり、ネットワークに比較的大きな衝撃を与え、ビデオが一時停止してしまう原因になる。符号化パラメータを調整することにより、シーン切り替え時に現在のビデオフレームによって消費されるビット数を制御することができるが、シーン切り替え時に現在のビデオフレームによって消費されるビット数が少ないため、符号化品質は悪くなりがちであり、より顕著なブロック効果は、シーン切り替えの前後に依然として存在し、また、毎秒ピークビットレートが高すぎるという問題は、発生しやすくなってしまう。
【課題を解決するための手段】
【０００５】
本願の実施例は、端末に適用されるビデオフレーム符号化方法を提供している。該ビデオフレーム符号化方法であって、
【０００６】
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得し、第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行い、符号化されたｉ番目のビデオフレームに対応する実際の消費ビット数を統計することと、
【０００７】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することと、
【０００８】
前記ｉ番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定することと、
【０００９】
補償長さを取得し、前記補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数とを決定することと、
【００１０】
前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する前記第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新し、Ｎ番目のビデオフレームの符号化が完了するまで、前記ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入ることと、
を含むことを特徴とするビデオフレーム符号化方法。
【００１１】
本願の実施例は、端末を提供している。該端末であって、
【００１２】
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得する取得手段と、
【００１３】
第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行う符号化手段と、
【００１４】
符号化された前記ｉ番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段と、
【００１５】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段と、
【００１６】
前記ｉ番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する決定手段と、
【００１７】
前記ｉ＋１番目のビデオフレームが第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新する更新手段と、を含み、
【００１８】
前記取得手段は、さらに、補償長さを取得し、
【００１９】
前記決定手段は、さらに、前記補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数とを決定し、
【００２０】
前記符号化手段は、さらに、Ｎ番目のビデオフレームの符号化が完了するまで、前記ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る、
ことを特徴とする端末。
【図面の簡単な説明】
【００２１】
【図１】本願の実施例に係るビデオフレーム符号化システムにおける各ハードウェアエンティティの概略図である。
【図２】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート１である。
【図３】本願の実施例によって提供される例示的なＩＰＰＰフレーム構造の概略図１である。
【図４】本願の実施例によって提供される例示的なＩＰＰＰフレーム構造の概略図２である。
【図５】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート２である。
【図６】本願の実施例によって提供されるビデオフレーム符号化方法のフローチャート３である。
【図７】本願の実施例によって提供される端末構造の概略図１である。
【図８】本願の実施例によって提供される端末構造の概略図２である。
【発明を実施するための形態】
【００２２】
以下、本例の実施例における図面を参照しながら、本願の実施例における解決手段を明確かつ完全に説明する。
【００２３】
図１は、本願の実施例に係るビデオフレーム符号化システムにおける各ハードウェアエンティティの概略図であり、本願の実施例によって提供されるビデオフレーム符号化方法は、ビデオフレーム符号化システムに基づき実現されるものである。図１には、１つまたは複数のサーバ２と、端末１−１〜１−５と、ネットワーク３とが含まれており、ネットワーク３には、ルータ、ゲートウェイなどのネットワークエンティティが含まれており、図中には図示されていない。端末１−１〜１−５は、有線ネットワークまたは無線ネットワークを介してサーバと情報やりとりをすることで、端末１−１〜１−５から身分識別結果を収集してサーバに伝送する。端末のタイプは、図１に示すように、携帯電話（端末１−３）、タブレットまたはパーソナルデジタルアシスタント（ＰＤＡ：Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）（端末１−５）、デスクトップ（端末１−２）、ＰＣ（端末１−４）、一体型パソコン（端末１−１）などのタイプを含む。端末には、娯楽機能を備えたアプリケーション（ビデオアプリケーション、オーディオ再生アプリケーション、ゲームアプリケーション、ソーシャルアプリケーション、読書アプリケーション）や、サービス機能を備えたアプリケーション（地図ナビゲーションアプリケーション、グループ購入アプリケーション、撮影アプリケーション、財務管理アプリケーション、通信アプリケーションなど）のような、ユーザが必要とする各種なアプリケーションがインストールされている。
【００２４】
説明すべきところとして、端末にインストールされたアプリケーションへの使用は、サーバとデータやりとりを行うことによって実現される必要があり、本願の実施例によって提供されるビデオフレーム符号化方法は、端末がアプリケーションを使用する際にビデオ撮影やビデオ通信などを行うプロセスにおいて実現されるものである。
【００２５】
画像グループは、ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）であり、ビデオにおけるビデオフレーム画像グループである。
【００２６】
Ｉフレームは、イントラ（Ｉｎｔｒａ）予測フレームであり、イントラ予測のみが使用されるものである。
【００２７】
Ｐフレームは、インター（Ｉｎｔｅｒ）予測フレームであり、インター予測のみが使用されるものである。
【００２８】
量子化パラメータは、ＱＰ（ｑｕａｎｔｉｚａｔｉｏｎ  ｐａｒａｍｅｔｅｒｓ）であり、ビデオ空間の詳細の圧縮状況が反映されるものである。
ＩＰＰＰ（Ｉｎｔｒａ  ｐｉｃｔｕｒｅ  ａｎｄ  ｐｒｅｄｉｃｔｅｄ  ｐｉｃｔｕｒｅ）は、符号化構造であり、画像グループは、このようなフレーム構造に従って符号化され、現在のフレームは、前方のフレームのみを参照することができる。
【００２９】
毎秒ピークビットレートは、秒を単位として統計する場合に消費されたビットレートの最大値である。
【００３０】
図１に示すビデオフレーム符号化システムに基づいて、本願の実施例は、画像グループにおける各ビデオフレームについて、端末１によって実行されてもよいし、サーバによって実行されてもよい、ビデオフレーム符号化方法を提供している。図２に示すように、この方法は、以下のステップを含む。
【００３１】
Ｓ１０１で、画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得し、第１の符号化規則を採用してｉ番目のビデオフレームに対してビデオ符号化を行い、符号化されたｉ番目のビデオフレームに対応する実際の消費ビット数を統計する。
【００３２】
本願の実施例によって提供されるビデオフレーム符号化方法は、端末がアプリケーションを用いてビデオ通信やビデオ撮影などのビデオ関連機能を行う場合にビデオフレームを符号化するシナリオ、例えば、ビデオ会議、ライブ放送、ＶＯＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク電話などのシナリオ、に適用される。
【００３３】
説明すべきところとして、本願の実施例では、ビデオフレームは、画像グループ（ＧＯＰ）から構成され、各画像グループにおけるビデオフレームの構造は、ＩＰＰＰフレーム構造であり、図３に示すように、ＩＰＰＰフレーム構造には、ＩフレームとＰフレームとが含まれるようにしてよい。本願の実施例によって提供されるビデオフレーム符号化方法は、１つの画像グループにおけるビデオフレームに基づいて符号化を行うものであり、各画像グループは、いずれも、本願の実施例によって提供されるビデオフレーム符号化方法によって実現されてもよいし、本願の実施例は限定しない。
【００３４】
本願の実施例では、端末による画像グループにおけるビデオフレームへの符号化は、１フレームずつ順次に実行され、画像グループにおけるビデオフレームのフレーム総数は、Ｎ（Ｎは１より大きい正整数である）に設定され、このようにして、端末は、画像グループにおけるｉ（ｉは１以上かつＮ以下である）番目のビデオフレームを取得し、ｉ番目のビデオフレームへの符号化を開始する。具体的には、端末は、第１の符号化規則を採用してｉ番目のビデオフレームに対してビデオ符号化を行い、また、符号化を行った後に、ｉ番目のビデオフレームの符号化によって消費されたビット数を統計し、符号化されたｉ番目のビデオフレームに対応する実際の消費ビット数を得る。
【００３５】
説明すべきところとして、本願の実施例では、端末によって処理されるｉ番目のフレームは、補償を行う必要がないビデオフレームであってもよく、補償を行う必要があるビデオフレームであってもよいし、具体的には、ｉ番目のフレームを補償する必要があるかどうかは、ｉ番目のフレームの前のフレームの符号化処理プロセスによって決定されるものであり、そのため、ここで端末は、ｉ番目のビデオフレームを取得する際に、第１の符号化規則を採用してこのｉ番目のビデオフレームを符号化し、具体的な処理プロセスが、後の実施例で詳細に説明される。
【００３６】
本願の実施例では、第１の符号化規則は、ｉ番目のビデオフレームを符号化するための規則であり、具体的な実現について、詳細なプロセスが実施例２の中に説明される。この第１の符号化規則は、ユーザによって事前にカスタマイズされた符号化規則であってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された符号化規則であってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【００３７】
Ｓ１０２で、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【００３８】
端末は、ｉ番目のビデオフレームが符号化された後の実際の消費ビット数を取得した後、この端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出することができ、すなわち、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づき、ｉ番目のフレームがシーン切り替えフレームであるかどうかを判断することができる。
【００３９】
本願の実施例では、画像グループの初期平均ビットレートは、符号化の開始時に設定された画像グループの初期平均ビットレートであってもよく、符号化の開始時にリアルタイムに取得された動的画像グループの初期平均ビットレートであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。ビデオフレーム検出規則は、ユーザによって事前にカスタマイズされた検出規則であってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された検出規則であってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【００４０】
ここで、ビデオフレーム検出規則は、現在検出されているビデオフレーム（すなわち、ｉ番目のビデオフレーム）がシーン切り替えフレームであるかどうか（シーン切り替え状態にあるかどうか）を判定するための判定条件である。
【００４１】
説明すべきところとして、本願の実施例では、ｉ番目のビデオフレームのフレームタイプが異なるため、端末がｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する方式は、同じではない。
【００４２】
ここで、本願の実施例では、ビデオフレームのフレームタイプが異なるため、端末は、ｉ番目のビデオフレームを検出する際に、Ｐフレームについて、第１のビデオフレーム検出規則を採用して処理を行い、Ｉフレームについて、第２のビデオフレーム検出規則を採用して処理を行う。つまり、ビデオフレーム検出規則は、第１のビデオフレーム検出規則と第２のビデオフレーム検出規則とを含み、このようにして、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するプロセスは、Ｓ１０２１〜Ｓ１０２３を含み、以下の通りである。
【００４３】
Ｓ１０２１で、ｉ番目のビデオフレームの第１のフレームタイプを検出する。
【００４４】
Ｓ１０２２で、第１のフレームタイプがターゲットフレームタイプを満たす場合、画像グループの残りの平均ビットレートを取得し、実際の消費ビット数と、画像グループの初期平均ビットレートと、画像グループの残りの平均ビットレートと、第１のビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【００４５】
一部の実施例では、上記画像グループの残りの平均ビットレートは、上記ｉ番目のビデオフレームに符号化する場合の、上記画像グループ内の残りのビット数と上記画像グループ内の残りのフレーム数の商である。具体的には、上記画像グループを符号化する前に、上記画像グループに対して一定数のビットを割り当ててから、上記画像グループにおけるビデオフレームの符号化を開始する。上記のｉ番目のビデオフレームに符号化する場合、画像グループの残りのビット数は、最初に割り当てられたビット数から、前のｉ−１番目のビデオフレームによって消費されたビット数を減算したものであり、画像グループの残りの平均ビットレートは、上記画像グループの残りのビット数をｉ番目のフレームを含む残りのフレーム数で割ったものである。
【００４６】
Ｓ１０２３で、第１のフレームタイプがターゲットフレームタイプを満たさない場合、実際の消費ビット数と、画像グループの初期平均ビットレートと、第２のビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【００４７】
本願の実施例では、ターゲットフレームタイプは、Ｐフレームである。第１のフレームタイプがターゲットフレームタイプを満たす場合、これは、ｉ番目のビデオフレームがＰフレームであるということを表し、第１のフレームタイプがターゲットフレームタイプを満たさない場合、これは、ｉ番目のビデオフレームがＩフレームであるということを表す。
【００４８】
本願の実施例では、第１のビデオフレーム検出規則は、フレームタイプがＰフレームであるｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するための条件または規則であり、この第１のビデオフレーム検出規則は、以下のような不等式（１）および（２）のいずれかであってもよい。
【００４９】
【数１】
2020518174.tif 000003
【００５０】
【数２】
2020518174.tif 000004
【００５１】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。Ractual＞β×Rave_remainを例にして、第１のビデオフレーム検出規則の原理を説明する。Ractual＞β×Rave_remainである場合、これは、ｉ番目のビデオフレームによって実際に消費されたビット数Ractualが画像グループの残りの平均ビットレートの一定の割合βを超えたこと、すなわち、ｉ番目のビデオフレームが過剰なビットレートを消費したことを示し、つまり、ｉ番目のビデオフレームがシーン切り替え状態にあると判定でき、その後ろの補償ウィンドウ内のビデオフレームに対してビット補償を行う必要がある。
【００５２】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ１．５、１．７と２．１の値をとることができる。
【００５３】
本願の実施例では、第２のビデオフレーム検出規則は、フレームタイプがＩフレームであるｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出するための条件または規則であり、この第２のビデオフレーム検出規則は、以下のような不等式（３）、（４）、および（５）のいずれかであってもよい。
【００５４】
【数３】
2020518174.tif 000005
【００５５】
【数４】
2020518174.tif 000006
【００５６】
【数５】
2020518174.tif 000007
【００５７】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ２、３、４の値をとることができる。
【００５８】
ここで、本願の実施例では、第１のフレームタイプがターゲットフレームタイプを満たす場合、端末が実際の消費ビット数、画像グループの初期平均ビットレート、および画像グループの残りの平均ビットレートが第１のビデオフレーム検出規則を満たすことを検出することは、ｉ番目のビデオフレームがシーン切替状態にあることを示し、逆に、ｉ番目のビデオフレームが非シーン切替状態にあることを示す。第１のフレームタイプがターゲットフレームタイプを満たさない場合、端末が実際の消費ビット数および画像グループの初期平均ビットレートが第２のビデオフレーム検出規則を満たすことを検出することは、ｉ番目のビデオフレームがシーン切り替え状態にあることを示し、逆に、ｉ番目のビデオフレームが非シーン切り替え状態にあることを示す。
【００５９】
説明すべきところとして、本願の実施例によって提供されるビデオフレーム符号化方法におけるＳ１０２２及びＳ１０２３は、Ｓ１０２１以降の２つのオプションのプロセスであり、本願の実施例における端末は、実際の動作状況に応じて、Ｓ１０２１〜Ｓ１０２２またはＳ１０２１〜Ｓ１０２３を実行することができ、本願の実施例は限定しない。
【００６０】
Ｓ１０３で、ｉ番目のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する。
【００６１】
本願の実施例では、端末は、現在の画像グループのビデオフレームを符号化する場合、この端末は、この現在の画像グループの初期平均ビットレート、すなわち、画像グループの初期平均ビットレートを取得することができ、このようにして、端末は、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出した後、ｉ番目のビデオフレームがシーン切り替え状態にある場合、この端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定することができる。
【００６２】
本願の実施例では、量子化モデルは、ｉ番目のビデオフレームの量子化パラメータを算出するためのモデルであり、この量子化モデルは、ユーザによって事前にカスタマイズされた量子化のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された量子化のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【００６３】
説明すべきところとして、本願の実施例では、端末は、ｉ番目のビデオフレームの符号化が完了した後、ｉ番目のビデオフレームに対応する関連な符号化パラメータを用いて、ｉ＋１番目のビデオフレームの符号化に関連するパラメータを算出し、調整することができる。
【００６４】
本願の実施例では、端末によって処理される画像グループにおけるビデオフレームのタイプが、ＩフレームとＰフレームに分けられるため、ｉ番目のビデオフレームのタイプは、２つある可能性がある。端末が実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定するプロセスは、ｉ番目のビデオフレームのタイプに応じて、様々な実装によって行われる。
【００６５】
ここで、ｉ番目のビデオフレームがＰフレームである場合、端末は、画像グループの残りの平均ビットレートを取得することもでき、したがって、端末は、この画像グループの残りの平均ビットレートと、実際の消費ビット数の総数と、画像グループの初期平均ビットレートと、第１の量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する。ここで、量子化モデルは、第１の量子化モデルと第２の量子化モデルとを含む。
【００６６】
本願の実施例では、第１の量子化モデルが、第１の初期量子化モデルと、第１の最大量子化モデルと、第１の最小量子化モデルとに分けられ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第１の初期量子化モデルとに基づいて、第１の初期量子化パラメータを決定することができ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第１の最大量子化モデルとに基づいて、第１の最大量子化パラメータを決定することができ、端末は、画像グループの残りの平均ビットレートと、実際の消費ビット数と、画像グループの初期平均ビットレートと、第１の最小量子化モデルとに基づいて、第１の最小量子化パラメータを決定することができる。
【００６７】
例示的には、第１の最大量子化モデルは、数式（６）に示す通りであり、数式（６）は、以下の通りである。
【００６８】
【数６】
2020518174.tif 000008
【００６９】
ここで、QPmaxは、第１の最大量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【００７０】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ１．５、１．７と２．１の値をとることができ、上式のΔ1、Δ2、Δ3は、それぞれ、QPmaxの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ３、２、１と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【００７１】
例示的には、第１の最小量子化モデルは、数式（７）に示す通りであり、数式（７）は、以下の通りである。
【００７２】
【数７】
2020518174.tif 000009
【００７３】
ここで、QPminは、第１の最小量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【００７４】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ１．５、１．７と２．１の値をとることができ、上式のΔ4、Δ5、Δ6は、それぞれ、QPminの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ１、０、−１と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【００７５】
例示的には、第１の初期量子化モデルは、数式（８）に示す通りであり、数式（８）は、以下の通りである。
【００７６】
【数８】
2020518174.tif 000010
【００７７】
ここで、QPframeは、第１の初期量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【００７８】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ１．５、１．７と２．１の値をとることができ、上式のΔ7、Δ8、Δ9は、それぞれ、QPframeの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ２、１、０と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【００７９】
さらに、本願の実施例では、端末は、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを取得した後、実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに応じて、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに対して、パラメータ調整を行い、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとを得る。ここで、ターゲットビット数とは、ｉ番目のビデオフレームに対して予め割り当てられたビット数をいう。
【００８０】
本願の実施例では、量子化調整モデルは、ｉ番目のビデオフレームによって算出された量子化パラメータを調整するためのモデルであり、この量子化調整モデルは、ユーザによって事前にカスタマイズされた量子化調整のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された量子化調整のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【００８１】
例示的に、量子化調整モデルは、数式（９−１）、数式（９−２）および数式（９−３）に示す通りであり、数式（９−１）、数式（９−２）および数式（９−３）は、具体的に以下の通りである。
【００８２】
【数９−１】
2020518174.tif 000011
【００８３】
【数９−２】
2020518174.tif 000012
【００８４】
【数９−３】
2020518174.tif 000013
【００８５】
ここで、QPmax’は、第１の調整最大量子化パラメータであり、QPmaxは、第１の最大量子化パラメータであり、QPmin’は、第１の調整最小量子化パラメータであり、QPminは、第１の最小量子化パラメータであり、QPframe’は、第１の調整初期量子化パラメータであり、QPframeは、第１の初期量子化パラメータであり、Rtargetは、ｉ番目のフレームの所定のターゲットビット数であり、Ractualは、ｉ番目のフレームの実際の消費ビット数である。
【００８６】
説明すべきところとして、上式のσ及びτは、実験中にそれぞれ１．７と２．５であり、上式のΔ’QPIとΔ”QPIは、それぞれ、異なる段階関数でのＱＰのオフセット値であり、一部の実施例では、実験中に１と２に設定されている。
【００８７】
具体的には、ｉ番目のビデオフレームがＩフレームである場合、端末は、実際の消費ビットの総数と、画像グループの初期平均ビットレートと、第２の量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する。
【００８８】
本願の実施例では、第２の量子化モデルが、第２の初期量子化モデルと、第２の最大量子化モデルと、第２の最小量子化モデルとに分けられ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第２の初期量子化モデルとに基づいて、第１の初期量子化パラメータを決定することができ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第２の最大量子化モデルとに基づいて、第１の最大量子化パラメータを決定することができ、端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、第２の最小量子化モデルとに基づいて、第１の最小量子化パラメータを決定することができる。
【００８９】
例示的には、第２の最大量子化モデルは、数式（１０）に示す通りであり、式（１０）は、以下の通りである。
【００９０】
【数１０】
2020518174.tif 000014
【００９１】
ここで、QPmaxは、第１の最大量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【００９２】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ２、３と４の値をとることができ、上式のΔ1、Δ2、Δ3は、それぞれ、QPmaxの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ３、５、７と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【００９３】
例示的には、第２の最小量子化モデルは、数式（１１）に示す通りであり、式（１１）は、以下の通りである。
【００９４】
【数１１】
2020518174.tif 000015
【００９５】
ここで、QPminは、第１の最小量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【００９６】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ２、３と４の値をとることができ、上式のΔ4、Δ5、Δ6は、それぞれ、QPminの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ１、３、５と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【００９７】
例示的には、第２の初期量子化モデルは、数式（１２）に示す通りであり、式（１２）は、以下の通りである。
【００９８】
【数１２】
2020518174.tif 000016
【００９９】
ここで、QPframeは、第１の初期量子化パラメータであり、QPavePは、所定の平均量子化パラメータであり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートである。
【０１００】
説明すべきところとして、一部の実施例では、上式のω1、ω2とω3は、それぞれ２、３と４の値をとることができ、上式のΔ7、Δ8、Δ9は、それぞれ、QPframeの異なる段階関数でのＱＰのオフセット値であり、実験中にそれぞれ２、４、６と設定されている。実際の消費ビット数Ractualが所定の初期平均ビットレートRaveを超えるほど、オフセット値は大きくなる。
【０１０１】
Ｓ１０４で、補償長さを取得し、補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームと、第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数とを決定する。
【０１０２】
一部の実施例では、端末は、ｉ番目のビデオフレームが位置するシーン状態を検出した後、ｉ番目のビデオフレームがシーン切り替え状態にあることを検出する場合、この端末は、補償ウィンドウを確立し、補償長さを取得し、この補償長さに基づいて第１の補償対象ビデオフレームを決定し、そして、補償モデルに基づいて第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数を決定する必要があり、前記第１の補償対象ビデオフレームの数が補償長さに等しい。
【０１０３】
本願の実施例では、補償モデルは、切り替えシーンにあるｉ番目のビデオフレームが符号化された後に補償長さを計算するためのモデルであり、この補償モデルは、ユーザによって事前にカスタマイズされた補償のためのモデルであってもよく、符号化プロセスにおいて端末によってリアルタイムに調整して取得された補償のためのモデルであってもよいし、具体的な実現形式が、本願の実施例によって限定されない。
【０１０４】
説明すべきところとして、本願の実施例では、符号化後に、現在のビデオフレーム（すなわち、ｉ番目のビデオフレーム）を検出して、現在のビデオフレームがシーン切り替え時のビデオフレームであると判定された場合、現在のビデオフレームを符号化した後に補償ウィンドウを確立し、補償ウィンドウ内の対応ビデオフレームのターゲットビットを再割り当て、すなわち、現在のビデオフレームの後ろのビデオフレームの符号化に必要なビット数を調整し、または現在のビデオフレームの後ろのビデオフレームの符号化パラメータ（ビットレート制御パラメータ、量子化パラメータなど）を調整することにより、符号化プロセスにおいて現在のビデオフレームの後ろのビデオフレームによって消費されるビット数が制御され、これによって、ビデオフレーム全体の符号化のより良い効果が獲得される。
【０１０５】
本願の実施例では、補償ウィンドウは、シーン切り替え状態にあるビデオフレームの後ろにビット補償を行う必要があるビデオフレームの長さであり、補償ウィンドウにあるビデオフレームが補償対象ビデオフレームと呼ばれてもよいし、ここでの補償ウィンドウの長さが補償長さと呼ばれてもよい。
【０１０６】
本願の実施例では、端末がｉ番目のビデオフレームがシーン切り替え状態にあることを検出し、補償ウィンドウを確立し、補償長さを取得するプロセスは、同様に、ｉ番目のビデオフレームのフレームタイプに関係するものである。端末は、ｉ番目のビデオフレームがシーン切り替え状態にあるＰフレームであることを検出した場合、この端末は、第１の補償長さモデルにより補償長さの取得を行うことができる一方、端末は、ｉ番目のビデオフレームがシーン切り替え状態にあるＩフレームであることを検出した場合、この端末は、第２の補償長さモデルにより補償長さの取得を行うことができる。
【０１０７】
例示的には、端末がｉ番目のビデオフレームがシーン切り替え状態にあるＰフレームであることを検出した場合、第１の補償長さモデルは、数式（１３）および数式（１４）に示す通りであり、数式（１３）および数式（１４）は、以下の通りである。
【０１０８】
【数１３】
2020518174.tif 000017
【０１０９】
【数１４】
2020518174.tif 000018
【０１１０】
ここで、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートであり、L’は、中間補償長さであり、Lは、補償長さ（補償ウィンドウ長さ）であり、L1とL2は、所定の補償ウィンドウ長さである。Npは、画像グループにおける残りの符号化されていないＰフレームの数を示す。
【０１１１】
説明すべきところとして、上式のα、βとγは、経験値であり、一部の実施例では、実験中にそれぞれ１．５、１．７と２．１の値をとることができる。上記のL1とL2は、それぞれ、実験中に５と２をとる。
【０１１２】
本願の実施例では、上式の物理的意味は、実際に消費されたビットRactualが画像グループの残りの平均ビットレートRave_remainの一定割合βを超えた後、ｉ番目のビデオフレームの実際の消費ビット数Ractualに対する画像グループの初期平均ビットレートRaveの比率に基づいて補償ウィンドウL’のサイズが決定され、比率が大きいほど、補償を行う必要があるビット数もより多いということを示し、そのため、より長い補償ウィンドウ、すなわち、より長い補償長さが必要になる、ことである。
【０１１３】
本願の実施例では、数式（１４）は、補償長さの最大値が、画像グループにおける残りの符号化されていないＰフレームの数である、ということを示し、端末は、画像グループにおけるビデオフレームに対してビデオ符号化を行い、また、端末によって取得された補償長さも、その画像グループにおける符号化されていないビデオフレームの補償のために使用されるものであり、そのため、補償長さの最大値は、Npを超えてはいけない。
【０１１４】
例示的には、端末がｉ番目のビデオフレームがシーン切り替え状態にあるＩフレームであることを検出した場合、第２の補償長さモデルは、数式（１５）、数式（１６）および数式（１７）に示す通りであり、数式（１５）、数式（１６）および数式（１７）は、以下の通りである。
【０１１５】
【数１５】
2020518174.tif 000019
【０１１６】
【数１６】
2020518174.tif 000020
【０１１７】
【数１７】
2020518174.tif 000021
【０１１８】
ここで、Lは、補償長さ（補償ウィンドウ長さ）であり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、fpsは、フレームレートを表し、LGOP_Pは、画像グループにおけるＰフレームの数を表し、ρ1とρ2は、それぞれ、補償ウィンドウ長さを決定する際の、フレームレートとＰフレームの数のそれぞれの付加重みを表し、実験中にρ1とρ2の値が０．４と０．８とすることができる。LN_Iは、fpsとLGOP_Pとに基づいて予測された補償ウィンドウ長さであり、後続に補償ウィンドウのサイズを設定する際の参照とするものであり、補償ウィンドウの最大値が、ζと設定され、実験中に１５の値を取る。ω1、ω2とω3は、それぞれ２、３と４であり、L1、L2とL3は、Ｌの異なる段階での最小値であり，実験中にそれぞれ１、２と５の値をとる。数式（１５）は、実際の消費ビット数Ractualと平均ビット数Raveとに基づいて、補償ウィンドウをさらに調整するためのものである。
【０１１９】
説明すべきところとして、本願の実施例では、シーン切替状態にあるｉ番目のビデオフレームがＩフレームであるかＰフレームであるかにかかわらず、端末が補償長さを取得した後、ｉ番目のビデオフレームの後ろの連続Ｌ個のビデオフレームは、第１の補償対象ビデオフレームになり、また、端末は、補償長さを取得した後、補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数を決定する。
【０１２０】
例示的には、図４に示すように、現在の画像グループにおけるビデオフレームは１０００個のフレームがあると仮定し、端末は、２０１番目のビデオフレームの符号化を行う際に、２０１番目のビデオフレームがシーン切り替え状態にあることを検出し、すなわち、２０１番目のビデオフレームは、過剰なビットレートを消費する必要があるものであり、その後ろの補償ウィンドウ内のビデオフレームに対してビット補償は行われる必要がある。算出された補償長さが５であると仮定すると、すなわち、２０１番目のビデオフレームの後ろの補償ウィンドウの長さは５であり、２０１番目のビデオフレームがＰフレームであることを例として説明すると、２０１番目のビデオフレームの後ろの連続５つのビデオフレーム（すなわち、２０２番目のビデオフレームから２０６番目のビデオフレーム）は、補償ウィンドウ内にある、ビット補償を行う必要がある第１の補償ビデオフレームになる。
【０１２１】
ここで、端末は、補償長さと、実際の消費ビット数と、画像グループの初期平均ビットレートと、所定の補償基数モデルとに基づいて、第１の補償対象ビデオフレームのそれぞれに対応する第１の補償ビット基数を得てから、この第１の補償ビット基数と、画像グループの初期平均ビットレートと、画像グループの残りの平均ビットレートと、所定の補償割り当てビットモデルとに基づいて、第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数を得、ここで、補償モデルは、所定の補償基数モデルと所定の補償割り当てビットモデルとを含むことができる。
【０１２２】
例示的には、本願の実施例における所定の補償基数モデルは、数式（１８）に示す通りであり、式（１８）は、以下の通りである。
【０１２３】
【数１８】
2020518174.tif 000022
【０１２４】
ここで、Rcom_jは、ｉ＋ｊ番目のビデオフレームに対応する第１の補償ビット基数であり、Ractualは、実際の消費ビット数であり、Raveは、画像グループの初期平均ビットレートであり、μjは、補償ウィンドウ内の各第１の補償対象ビデオフレームが占める重みである。
【０１２５】
説明すべきところとして、本願の実施例では、μjの設定原則として、ｉ番目のビデオフレームから近いほど、第１の補償ビデオフレームに対応する重みμjの値は大きくなる。
【０１２６】
本願の実施例では、補償モデルは、シーン切り替え時のｉ番目のビデオフレームの実際の消費ビット数が画像グループの初期平均ビットレートを超えた差に基づいて、補償ウィンドウ内の各第１の補償対象ビデオフレームの補償が必要な重み付け平均ビット数Rcom_jを求めるということ、を表すためのものである。
【０１２７】
例示的には、本願の実施例における所定の補償割り当てビットモデルは、数式（１９）に示す通りであり、式（１９）は、以下の通りである。
【０１２８】
【数１９】
2020518174.tif 000023
【０１２９】
ここで、RT_jは、ｉ＋ｊ番目のビデオフレームに対応する第１の補償割り当てビット数であり、Rcom_jは、ｉ＋ｊ番目のビデオフレームに対応する第１の補償ビット基数であり、Raveは、画像グループの初期平均ビットレートであり、Rave_remainは、画像グループの残りの平均ビットレートである。
【０１３０】
説明すべきところとして、符号化を行う必要がある現在のビデオフレームが補償ウィンドウ内にある場合、端末によって割り当てられた所定の割り当てビット数は、画像グループの初期平均ビットレートRaveから、現在のビデオフレームに対応する第１の補償ビット基数に対応の重みを乗じたものを引いたものであり、すなわち、ターゲットビット数は、第１の補償割り当てビット数に基づいて算出されたものである。現在のビデオフレームが補償ウィンドウ内にない場合、端末によって割り当てられたターゲットビット数は、画像グループの残りのビットの平均ビットレートRave_remainである。
【０１３１】
理解すべきところとして、本願の実施例では、ｉ番目のビデオフレームがシーン切り替え状態にあるとき、端末は、ｉ番目のビデオフレームの符号化で過剰に消費されたビット数を、後続のいくつかのフレーム（すなわち、第１の補償対象ビデオフレーム）に滑らかに割り当て、これによって、ビデオ全体の主観的な品質が低下しない前提で、できるだけビットレートを滑らかにする役割が達成される。
【０１３２】
説明すべきところとして、本願の実施例では、Ｓ１０３及びＳ１０４は、いずれも、ｉ番目のビデオフレームがシーン切替状態にある場合に端末が実行するプロセスであり、本願の実施例は、Ｓ１０２の後、Ｓ１０３及びＳ１０４の実行順序に限定しなく、すなわち、端末がＳ１０２−１０３−１０４を実行してもよく、Ｓ１０２−１０４−１０３を実行してもよい。
【０１３３】
Ｓ１０５で、ｉ＋１番目のビデオフレームが第１の補償対象ビデオフレームに属する場合、ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに基づいて、第１の符号化規則を更新し、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る。
【０１３４】
一部の実施例では、端末は、第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを取得した後、この端末は、第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに基づいて、ｉ＋１番目のビデオフレームを符号化し、すなわち、端末は、第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに基づいて、第１の符号化規則を更新してから、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入り、ｉ＋１番目のビデオフレームに対して符号化及び符号化後の処理を行う。
【０１３５】
一部の実施例では、前記第１の符号化規則は、第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとによって決定されるものであり、取得された第１の補償割り当てビット数と、第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとに基づいて、第１の符号化規則が更新されることができる。
【０１３６】
一部の実施例では、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行う前に、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属するかどうかを決定する必要があり、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属する場合、ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新して、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行い、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて前記ｉ＋１番目の第４の量子化パラメータを算出し、前記第４の量子化パラメータに基づいて、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行い、ここで、前記ターゲットビット数とは、前記ｉ＋１番目のビデオフレームに予め割り当てられたビット数を意味する。説明すべきところとして、ここで、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属するかどうかを決定することは、後続のステップ２０２でｉ番目のフレームが第２の補償対象ビデオフレームであるかどうかを決定することに相当する。
【０１３７】
本願の実施例では、端末がｉ＋１番目のビデオフレームのビデオ符号化に入るプロセスは、端末がｉ＋１を行った後、Ｓ１０１−１０５を繰り返し実行するプロセスであり、唯一の相違は、第１の符号化規則が更新されることだけであり、符号化を実現する技術的な方式は、不変である。
【０１３８】
さらに、上記の説明では、端末が第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを得た後に、さらに調整を行う必要があるというプロセスは存在しているため、このような場合で、端末は、さらに、第１の補償割り当てビット数と、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとに基づいて、第１の符号化規則を更新してから、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入り、ｉ＋１番目のビデオフレームの符号化及び符号化後の処理を開始する必要がある。
【０１３９】
説明すべきところとして、端末が第１の符号化規則を採用して現在のビデオフレームを符号化するプロセスは、後続の実施例で説明される。
【０１４０】
さらに、Ｓ１０２の後に、図５に示すように、本願の実施例によって提供されるビデオフレーム符号化方法は、さらに、Ｓ１０６を含む。具体的には、以下の通りである。
【０１４１】
Ｓ１０６で、ｉ番目のビデオフレームが非シーン切替状態にある場合、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る。
【０１４２】
端末は、実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出した後、この端末は、ｉ番目のビデオフレームが非シーン切替状態にあることも検出でき、そのため、ｉ番目のビデオフレームが非シーン切替状態にあるとき、この端末は、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに直接に入ることができ、ｉ＋１を行った後、Ｎ番目のビデオフレームの符号化が完了するまで、直接にＳ１０１〜Ｓ１０５を繰り返し実行する。
【０１４３】
理解すべきところとして、端末は、ビデオフレーム符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ（すなわち補償ウィンドウの長さ）、第１の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【０１４４】
一部の実施例では、本願の実施例によって提供されるビデオフレーム符号化方法において、Ｓ１０１での第１の符号化規則を採用してｉ番目のビデオフレームに対してビデオ符号化を行うプロセスは、Ｓ２０１〜２０６を含む。図６に示すように、具体的には、以下の通りである。
【０１４５】
Ｓ２０１で、ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、第２の補償対象ビデオフレームのそれぞれに対応する第２の補償割り当てビット数から、ｉ番目のビデオフレームの第３の補償割り当てビット数を取得し、第２の補償対象ビデオフレームは、ｉ番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものである。
【０１４６】
一部の実施例では、上記第２の補償対象ビデオフレームは、上記ｉ番目のビデオフレームの前のシーン切替状態にあるビデオフレームの符号化の後に決定されたものである。上記ｉ番目のビデオフレームの第３の補償割り当てビット数は、第２の補償対象ビデオフレームのそれぞれに対応する第２の補償割り当てビット数から取得された、ｉ番目のビデオフレームに対応する第２の補償割り当てビット数である。
【０１４７】
Ｓ２０２で、第３の補償割り当てビット数に基づいて、ｉ番目のビデオフレームの第２の量子化パラメータを算出する。
【０１４８】
一部の実施例では、前記ｉ番目のビデオフレームに対応する第２の補償割り当てビット数に基づいて、前記ｉ番目のビデオフレームの第２の量子化パラメータを算出する。
【０１４９】
本願の実施例では、端末がｉ番目のビデオフレームを符号化する際に第１の符号化規則を採用する理由は、ｉ番目のビデオフレームが、前の符号化フレームの補償ウィンドウ内にあってもよいし、補償を行う必要がなくてもよいことである。そのため、この２つの場合について、端末がｉ番目のビデオフレームを符号化する方式は、同じではない。
【０１５０】
ここで、ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、これは、ｉ番目のビデオフレームの前のビデオフレームの中にシーン切替状態にあるビデオフレームが存在しているということを表し、そのため、該ビデオフレームが、実施例における符号化プロセスに従って、自身に対応する第２の補償対象ビデオフレームと第２の補償対象ビデオフレームのそれぞれに対応する第２の補償割り当てビット数が既に決定されたものであり、このとき、この端末は、第２の補償割り当てビット数から、ｉ番目のビデオフレームの第３の補償割り当てビット数を取得することができる。そして、端末は、第３の補償割り当てビット数に基づいて、ｉ番目のビデオフレームに対してターゲットビット数を割り当ててから、ターゲットビット数に基づいて、ｉ番目のビデオフレームの第２の量子化パラメータを算出することができる。
【０１５１】
具体的には、端末は、符号化を行う際に、ｉ番目のビデオフレームをＭ×Ｍ（Ｍは１より大きい正の整数である）の画素ブロックに分割することができる。端末は、ブロックごとに重み値を設定して、その重み値とターゲットビット数とに基づいて、各画素ブロックにそれぞれの第１のターゲットビット数を割り当てることができる。このようにして、端末は、第１のターゲットビット数に基づいて、画素ブロックごとに対応する第２の量子化パラメータを算出することができる。
【０１５２】
Ｓ２０３で、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得し、ここで、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとは、ｉ−１番目のビデオフレームの符号化の後に決定されたものである。
【０１５３】
Ｓ２０４で、第２の量子化パラメータと、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとに基づいて、ｉ番目のビデオフレームを符号化する。
【０１５４】
端末は、ｉ番目のビデオフレームの第２の量子化パラメータを算出し処理した後、この端末は、ｉ−１番目のビデオフレームのときに、既にｉ番目のビデオフレームに対応する第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを算出したので、即ち、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとは、ｉ−１番目のビデオフレームの符号化の後に決定されたものであるので、この端末は、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得する。このようにして、端末は、第２の量子化パラメータと、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとに基づいて、ｉ番目のビデオフレームを符号化することができる。
【０１５５】
具体的には、ｉ番目のビデオフレームにおける第１の画素ブロックに対して、端末は、第２の初期量子化パラメータを採用してビデオ符号化を行い、ｉ番目のビデオフレームにおける第１の画素ブロック以外のほかの任意の画素ブロックに対して、端末は、それぞれに対応する第２の量子化パラメータを採用してビデオ符号化を行い、また、この第２の量子化パラメータが、第２の最大量子化パラメータと第２の最小量子化パラメータによる制限を受け、すなわち、第２の量子化パラメータの上限値が、第２の最大量子化パラメータであり、下限値が、第２の最小量子化パラメータである。第２の量子化パラメータが「第２の最小量子化パラメータ,第２の最大量子化パラメータ」という範囲内にある場合、その第２の量子化パラメータに対応する画素ブロックに対して、端末は、それぞれに対応する第２の量子化パラメータを採用してビデオ符号化を行いし、第２の量子化パラメータが第２の最大量子化パラメータを超える場合、この第２の量子化パラメータに対応する画素ブロックに対して、端末は、第２の最大量子化パラメータを採用してビデオ符号化を行いし、第２の量子化パラメータが第２の最小量子化パラメータより小さい場合、この第２の量子化パラメータに対応する画素ブロックに対して、端末は、第２の最小量子化パラメータを採用してビデオ符号化を行う。
【０１５６】
理解すべきところとして、端末によるｉ番目のビデオフレームへの符号化が、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとによる制限を受けるため、ｉ番目のビデオフレームを符号化する際の量子化パラメータは、高すぎたり低すぎたりすることがない。そのため、ｉ−１番目のビデオフレームによって過剰に消費されたビットを補償するとともに、ｉ番目のビデオフレームを符号化する際のビデオ品質を維持するということが保証される。
【０１５７】
説明すべきところとして、ｉ番目のビデオフレームの符号化が完了した後、端末は、Ｓ１０１〜１０５を実行し、この端末がｉ＋１番目のビデオフレームが第１の補償ビデオフレームに属すると判断した場合の符号化方式は、Ｓ２０１〜Ｓ２０４と一致する。
【０１５８】
例示的には、現在の画像グループのビデオフレームは１０００個のフレームがあると仮定すると、端末は、２００番目のビデオフレームの符号化を行う際に、２００番目のビデオフレームの消費ビット数がビデオフレームの検出規則に適合し、シーンの切り替え状態にあることを検出した場合、この端末は、補償長さ（５と仮定する）や２０１番目のビデオフレームの第３の補償割り当てビット数、第２の初期量子化パラメータ、第２の最大量子化パラメータ、第２の最小量子化パラメータを算出することができ、このとき、２０１番目のフレームが補償ウィンドウ２００＋５内にあるため、端末は、第３の補償割り当てビット数と、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを採用して２０１番目のビデオフレームを符号化し、符号化が完了した後、端末は、２０１番目のビデオフレームに対してＳ１０１〜Ｓ１０５での実現プロセスを開始する。
【０１５９】
Ｓ２０５で、ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、ｉ番目のビデオフレームの第３の量子化パラメータを算出する。
【０１６０】
Ｓ２０６で、第３の量子化パラメータに基づいて、ｉ番目のビデオフレームを符号化する。
【０１６１】
本願の実施例では、端末がｉ番目のビデオフレームを符号化する際に第１の符号化規則を採用する理由は、ｉ番目のビデオフレームが、前の符号化フレームの補償ウィンドウ内にあってもよいし、補償を行う必要がなくてもよいことである。そのため、この２つの場合について、端末がｉ番目のビデオフレームを符号化する方式は、同じではない。
【０１６２】
ここで、ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、端末は、ターゲットビット数に基づいてｉ番目のビデオフレームの第３の量子化パラメータを算出してから、第３の量子化パラメータに基づいてｉ番目のビデオフレームを符号化すればよい。
【０１６３】
説明すべきところとして、本願の実施例によって提供されるビデオフレーム符号化方法におけるＳ２０１〜Ｓ２０４とＳ２０５〜Ｓ２０６は、Ｓ１０１における第１の符号化規則を採用してｉ番目のビデオフレームに対してビデオ符号化を行うプロセスを実現するための２つのオプションのプロセスであり、本願の実施例は、Ｓ２０１〜Ｓ２０４とＳ２０５〜Ｓ２０６の実行順序を限定しなく、端末は、実際の動作状況に応じて、相応なステップまたはプロセスを実行することができ、本願の実施例は限定しない。
【０１６４】
本願の実施例によって提供されるビデオフレーム符号化方法に基づいて、本願の実施例は、端末１を提供している。図７に示すように、該端末１は、
【０１６５】
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得する取得手段１０と、
【０１６６】
第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行う符号化手段１１と、
【０１６７】
符号化された前記ｉ番目のビデオフレームに対応する実際の消費ビット数を統計する統計手段１２と、
【０１６８】
前記実際の消費ビット数と、画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する検出手段１３と、
【０１６９】
前記ｉ番目のビデオフレームが前記シーン切り替え状態にある場合、前記実際の消費ビット数と、前記画像群の初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定する決定手段１４と、
【０１７０】
前記ｉ＋１番目のビデオフレームが第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとにより、前記第１の符号化規則を更新する更新手段１５と、を含み、
【０１７１】
前記取得手段１０は、さらに、補償長さを取得し、
【０１７２】
前記決定手段１４は、さらに、前記補償長さと補償モデルとに基づいて、前記第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する前記第１の補償割り当てビット数とを決定し、
【０１７３】
前記符号化手段１１は、さらに、Ｎ番目のビデオフレームの符号化が完了するまで、前記ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る。
【０１７４】
一部の実施例では、前記ビデオフレーム検出規則は、第１のビデオフレーム検出規則と第２のビデオフレーム検出規則とを含み、
【０１７５】
前記検出手段１３は、さらに、前記ｉ番目のビデオフレームの第１のフレームタイプを検出し、
【０１７６】
前記取得手段１０は、さらに、前記第１のフレームタイプがターゲットフレームタイプを満たす場合に、画像グループの残りの平均ビットレートを取得し、
【０１７７】
前記検出手段１３は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第１のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【０１７８】
一部の実施例では、前記検出手段１３は、さらに、前記ｉ番目のビデオフレームの第１のフレームタイプを検出した後、前記第１のフレームタイプが前記ターゲットフレームタイプを満たさない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第２のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切り替え状態にあるかどうかを検出する。
【０１７９】
一部の実施例では、前記取得手段１０は、さらに、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、前記第２の補償対象ビデオフレームに対応する第２の補償割り当てビット数から、前記ｉ番目のビデオフレームの第３の補償割り当てビット数を取得し、ここで、前記第２の補償対象ビデオフレームが、ｉ番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記第３の補償割り当てビット数に基づいて、前記ｉ番目のビデオフレームの第２の量子化パラメータを算出することと、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得し、ここで、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとが、ｉ−１番目のビデオフレームの符号化の後に決定されたものであることと、を行い、
【０１８０】
前記符号化手段１１は、さらに、前記第２の量子化パラメータと、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとに基づいて、前記ｉ番目のビデオフレームを符号化する。
【０１８１】
一部の実施例では、前記取得手段１０は、さらに、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、ｉ番目のビデオフレームの第３の量子化パラメータを算出し、
【０１８２】
前記符号化手段１１は、さらに、前記第３の量子化パラメータに基づいて、ｉ番目のビデオフレームを符号化する。
【０１８３】
一部の実施例では、前記端末１は、調整手段１６をさらに含み、
【０１８４】
前記調整手段１６は、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定した後、前記実際の消費ビット数とターゲットビット数とが比率条件を満たす場合、量子化調整モデルに従って、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに対して、パラメータ調整を行い、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとを得る。
【０１８５】
一部の実施例では、前記更新手段１５は、さらに、前記第１の補正割り当てビット数と、前記第１の調整初期量子化パラメータと、前記第１の調整最大量子化パラメータと、前記第１の調整最小量子化パラメータとに基づいて、前記第１の符号化規則を更新する。
【０１８６】
一部の実施例では、前記符号化手段１１は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記ｉ番目のビデオフレームが非シーン切替状態にある場合、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る。
【０１８７】
理解すべきところとして、端末は、ビデオフレーム符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ（すなわち補償ウィンドウの長さ）、第１の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【０１８８】
本願の実施例によって提供されるビデオフレーム符号化方法に基づいて、図８に示すように、本願の実施例は、端末を提供している。該端末は、プロセッサ１７と、メモリ１８と、通信バス１９とを含み、前記メモリ１８は、前記プロセッサ１７と前記通信バス１９を介して接続され、前記プロセッサ１７は、前記メモリ１８に記憶されているビデオフレーム符号化関連プログラムを呼び出して、次のステップを実行する。これらのステップは、
【０１８９】
画像グループのｉ（ｉは１以上かつＮ以下であり、Ｎは前記画像グループにおけるビデオフレームのフレーム総数である）番目のビデオフレームを取得し、第１の符号化規則を採用して前記ｉ番目のビデオフレームに対してビデオ符号化を行い、符号化された前記ｉ番目のビデオフレームに対応する実際の消費ビット数を統計するステップと、前記実際の消費ビット数と、画像グループの初期平均符号化率と、ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切替状態にあるかどうかを検出するステップと、前記ｉ番目のビデオフレームが前記シーン切替状態にある場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定するステップと、補償長さを取得し、前記補償長さと補償モデルとに基づいて、第１の補償対象ビデオフレームと、前記第１の補償対象ビデオフレームのそれぞれに対応する第１の補償割り当てビット数とを決定するステップと、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属する場合、前記ｉ＋１番目のビデオフレームに対応する第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに基づいて、前記第１の符号化規則を更新し、Ｎ番目のビデオフレームの符号化が完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入るステップと、を含む。
【０１９０】
一部の実施例では、前記ビデオフレーム検出規則は、第１のビデオフレーム検出規則と第２のビデオフレーム検出規則とを含み、
【０１９１】
前記プロセッサ１７は、前記ｉ番目のビデオフレームの第１のフレームタイプを検出し、
【０１９２】
前記第１のフレームタイプがターゲットフレームタイプを満たす場合、画像グループの残りの平均ビットレートを取得し、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記画像グループの残りの平均ビットレートと、前記第１のビデオフレーム検出規則とに基づいて、ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する。
【０１９３】
一部の実施例では、前記プロセッサ１７は、前記ｉ番目のビデオフレームの第１のフレームタイプを検出した後、前記第１のフレームタイプが前記ターゲットフレームタイプを満たさない場合、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記第２のビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームが前記シーン切り替え状態にあるかどうかを検出する。
【０１９４】
一部の実施例では、前記プロセッサ１７は、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属する場合、前記第２の補償対象ビデオフレームに対応する第２の補償割り当てビット数から、前記ｉ番目のビデオフレームの第３の補償割り当てビット数を取得し、ここで、前記第２の補償対象ビデオフレームが、前記ｉ番目のビデオフレームの前のビデオフレームの符号化の後に決定されたものであることと、前記第３の補償割り当てビット数に基づいて、前記ｉ番目のビデオフレームの第２の量子化パラメータを算出することと、第２の初期量子化パラメータと、第２の最大量子化パラメータと、第２の最小量子化パラメータとを取得し、ここで、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとが、ｉ−１番目のビデオフレームの符号化の後に決定されたものであることと、前記第２の量子化パラメータと、前記第２の初期量子化パラメータと、前記第２の最大量子化パラメータと、前記第２の最小量子化パラメータとに基づいて、前記ｉ番目のビデオフレームを符号化することと、を行う。
【０１９５】
一部の実施例では、前記プロセッサ１７は、前記ｉ番目のビデオフレームが第２の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて、前記ｉ番目のビデオフレームの第３の量子化パラメータを算出することと、前記第３の量子化パラメータに基づいて前記ｉ番目のビデオフレームを符号化することと、を行う。
【０１９６】
一部の実施例では、前記プロセッサ１７は、さらに、前記実際の消費ビット数と、画像グループの初期平均ビットレートと、量子化モデルとに基づいて、ｉ＋１番目のビデオフレームに対応する第１の初期量子化パラメータと、第１の最大量子化パラメータと、第１の最小量子化パラメータとを決定した後、前記実際の消費ビット数とターゲットビット数が比率条件を満たす場合、量子化調整モデルに従って、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量子化パラメータとに対して、パラメータ調整を行い、第１の調整初期量子化パラメータと、第１の調整最大量子化パラメータと、第１の調整最小量子化パラメータとを得る。
【０１９７】
一部の実施例では、前記プロセッサ１７は、さらに、前記第１の補正割り当てビット数と、前記第１の調整初期量子化パラメータと、前記第１の調整最大量子化パラメータと、前記第１の調整最小量子化パラメータとに基づいて、前記第１の符号化規則を更新する。
【０１９８】
一部の実施例では、前記プロセッサ１７は、さらに、前記実際の消費ビット数と、前記画像グループの初期平均ビットレートと、前記ビデオフレーム検出規則とに基づいて、前記ｉ番目のビデオフレームがシーン切替状態にあるかどうかを検出した後、前記ｉ番目のビデオフレームが非シーン切替状態にある場合、Ｎ番目のビデオフレームが完了するまで、ｉ＋１番目のビデオフレームのビデオ符号化プロセスに入る。
【０１９９】
一部の実施例では、前記プロセッサ１７は、さらに、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属するかどうかを決定し、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属する場合、ｉ＋１番目のビデオフレームに対応する前記第１の補償割り当てビット数と、前記第１の初期量子化パラメータと、前記第１の最大量子化パラメータと、前記第１の最小量化パラメータとに基づいて、前記第１の符号化規則を更新し、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行い、
【０２００】
前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属さない場合、ターゲットビット数に基づいて前記ｉ＋１番目のビデオフレームの第４の量子化パラメータを算出し、前記第４の量化パラメータに基づいて、前記ｉ＋１番目のビデオフレームに対してビデオ符号化を行い、ここで、前記ターゲットビット数とは、前記ｉ＋１番目のビデオフレームに予め割り当てられたビット数を意味する。
【０２０１】
説明すべきところとして、ここで、前記ｉ＋１番目のビデオフレームが前記第１の補償対象ビデオフレームに属するかどうかを決定することは、ｉ番目のフレームが第２の補償対象ビデオフレームであるかどうかを決定することに相当する。理解すべきところとして、端末は、ビデオフレームに対して符号化を行う際に、現在のビデオフレームがシーン切り替え状態にある場合、実際の消費ビット数と、画像グループの初期平均ビットレートなどの要因により、後続のビデオフレームの補償長さ（すなわち補償ウィンドウの長さ）、第１の補償割り当てビット数を適応的に調整しつつ、次のフレームの後続符号化のための初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとを決定することができ、このようにして、この端末は、次のフレームの初期量子化パラメータと、最大量子化パラメータと、最小量子化パラメータとに基づいて、次のフレームを符号化する時に、前のフレームによって過剰に消費されたビットを補償することができ、これによって、ビデオフレームの符号化品質を維持する前提で、毎秒ピークビットレートが低減され、毎秒ピークビットレートの安定が維持されるため、ビデオストリームがスムーズに伝送される。
【０２０２】
実際の応用では、上述のメモリは、例えばランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）であってもよく、例えばリードオンリーメモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や固体ハードディスク（ＳＳＤ：Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｒｉｖｅ）などのような不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）であってもよく、または上記の種類のメモリの組み合わせであってもよいし、また、プロセッサに命令とデータを提供している。
【０２０３】
上記のプロセッサは、特定用途向け集積回路（ＡＳＩＣ：Ａｐｐｌｉａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｕｒｃｕｉｔ）、デジタル信号プロセッサ（ＤＳＰ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、デジタル信号処理装置（ＤＳＰＤ：Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｅｖｉｃｅ）、プログラマブル論理デバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒａｙ）、中央プロセッサ（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、コントローラ、マイクロコントローラ、マイクロプロセッサのうちの少なくとも１つであってもよい。理解すべきところとして、異なる装置については、上記プロセッサの機能を実現するための電子機器は他にもよいが、本願の実施例は特に限定しない。
【０２０４】
また、本願の実施例は、端末に適用されるコンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ読み取り可能な記憶媒体に１つまたは複数のビデオフレーム符号化プログラムが記憶され、前記１つまたは複数のビデオフレーム符号化プログラムは、１つまたは複数のプロセッサによって実行され、実施例１および実施例２の方法を実現することができる。
【０２０５】
当業者であれば、本願の実施例は、方法、システム、またはコンピュータプログラム製品として提供されてもよいことを理解すべきである。したがって、本願は、ハードウェアの実施例、ソフトウェアの実施例、またはソフトウェアとハードウェアを組み合わせた実施例という形式を採用することができる。さらに、本願は、コンピュータ利用可能なプログラムコードを含む１つ以上のコンピュータ利用可能な記憶媒体（磁気ディスクメモリや光学メモリなどを含むが、これらに限定されない）上で実施されるコンピュータプログラム製品という形式を採用することができる。
【０２０６】
本願は、本願の実施例による方法、装置（システム）、およびコンピュータプログラム製品のフローチャートおよび／またはブロック図を参照しながら説明するものである。フローチャートおよび／またはブロック図におけるそれぞれのプロセスおよび／またはブロック、ならびにフローチャートおよび／またはブロック図におけるプロセスおよび／またはブロックの組み合わせは、コンピュータプログラム命令によって実現され得ることが理解されるべきである。これらのコンピュータプログラム命令が、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、または他のプログラマブルデータ処理装置のプロセッサに提供されることで、１つの機器が生成される。これによって、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサによって実行される命令は、フローチャートの１つまたは複数のプロセスおよび／またはブロック図の１つまたは複数のブロックに指定された機能を実現するための装置を生成する。
【０２０７】
これらのコンピュータプログラム命令が、特定の方法で動作するようにコンピュータまたは他のプログラマブルデータ処理装置を導くことができるコンピュータ読み取り可能なメモリに記憶されてもよいし、これによって、このコンピュータ読み取り可能なメモリに記憶されている命令は、命令デバイスを含む製造品を生成し、この命令装置は、フローチャートの１つまたは複数のプロセスおよび／またはブロック図の１つまたは複数のブロックに指定された機能を実現する。
【０２０８】
これらのコンピュータプログラム命令が、コンピュータまたは他のプログラマブルデータ処理装置にロードされてもよいし、これによって、コンピュータまたは他のプログラマブルデバイス上で一連の動作ステップを実行することで、コンピュータによって実現される処理を生成し、それにより、コンピュータまたは他のプログラマブルデバイス上で実行される命令は、フローチャートの１つまたは複数のプロセスおよび／またはブロック図の１つまたはブロックに指定された機能を実現するためのステップを提供している。
【０２０９】
上記は、本願の好ましい実施例にすぎず、本願の保護範囲を限定するものではない。
【符号の説明】
【０２１０】
1  端末
3  ネットワーク
10  取得手段
11  符号化手段
12  統計手段
13  検出手段
14  決定手段
15  更新手段
17  プロセッサ
18  メモリ
【図１】
2020518174.tif 000024
【図２】
2020518174.tif 000025
【図３】
2020518174.tif 000026
【図４】
2020518174.tif 000027
【図５】
2020518174.tif 000028
【図６】
2020518174.tif 000029
【図７】
2020518174.tif 000030
【図８】
2020518174.tif 000031
【国際調査報告】
2020518174.tif 000032
2020518174.tif 000033
2020518174.tif 000034
2020518174.tif 000035
2020518174.tif 000036
2020518174.tif 000037
2020518174.tif 000038