(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】画像処理方法、装置、電子機器及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/132 20140101AFI20240415BHJP
H04N 19/172 20140101ALI20240415BHJP
H04N 19/46 20140101ALI20240415BHJP
【FI】
H04N19/132
H04N19/172
H04N19/46
(21)【出願番号】P 2022552630
(86)(22)【出願日】2021-05-21
(86)【国際出願番号】 CN2021095054
(87)【国際公開番号】W WO2022001469
(87)【国際公開日】2022-01-06
【審査請求日】2022-09-01
(31)【優先権主張番号】202010626281.7
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】李 ▲瀟▼
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2016-059015(JP,A)
【文献】国際公開第2018/195405(WO,A1)
【文献】国際公開第2002/071639(WO,A1)
【文献】米国特許出願公開第2010/0278268(US,A1)
【文献】米国特許出願公開第2005/0152457(US,A1)
【文献】中国特許出願公開第111901666(CN,A)
【文献】中国特許出願公開第103780908(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像処理方法であって、
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信するステップであって、前記充填フレーム情報は前記サーバによって前記画像フレームセットに基づき生成される、ステップと、
前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、前記バッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定するステップ
であって、前記バッファキューは画像フレームを先入れ先出しの順序に応じてバッファすることに用いられる、ステップと、
前記充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップであって、
前記ターゲット画像フレームに続いて、前記バッファキューの最大バッファ数に達するまでターゲット充填フレームを挿入する、ステップと、
前記バッファキューの最大バッファ数に達するまでターゲット充填フレームが挿入されたことに応答して前記ターゲット画像フレームの復号が開始され、前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、前記画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行するステップと、
復号後の画像フレームを処理し、処理結果を表示するステップと、を含む画像処理方法。
【請求項2】
前記充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する前記ステップは、
前記充填フレーム情報から前記サーバによって前記画像フレームセットに基づき生成された充填フレームセットを抽出するステップと、
前記充填フレームセット中の前記ターゲット画像フレームと対応する充填フレームを選択して、ターゲット充填フレームを得るステップと、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入するステップと、を含む請求項1に記載の方法。
【請求項3】
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入する前記ステップは、
前記バッファキューに対応する最大バッファ数を検出するステップと、
前記ターゲット画像フレーム及び最大バッファ数に基づき、充填数を生成するステップと、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に、充填数と対応する数のターゲット充填フレームを挿入するステップと、を含む請求項2に記載の方法。
【請求項4】
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に、充填数と対応する数のターゲット充填フレームを挿入する前記ステップの後、
前記ターゲット画像フレームのフレーム番号を抽出するステップと、
フレーム番号及び前記バッファキューでの充填フレームの位置に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てるステップと、をさらに含む請求項3に記載の方法。
【請求項5】
フレーム番号及び前記バッファキューでの充填フレームの位置に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てる前記ステップは、
前記充填フレーム情報から前記バッファキューでの充填フレームに対応するオフセット量を抽出するステップと、
フレーム番号、前記バッファキューでの充填フレームの位置及び前記バッファキューでの充填フレームに対応するオフセット量に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てるステップと、を含む請求項4に記載の方法。
【請求項6】
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、全ての画像フレームの復号がいずれも終わるまで、
前記充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する前記ステップは、
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップと、
前記現在の処理オブジェクトのタイプを検出するステップと、
検出結果として前記現在の処理オブジェクトがキーフレームであることが示されたとき、前記現在の処理オブジェクトのフレーム番号を基準として、
前記充填フレーム情報に基づいて前記現在の処理オブジェクトと前記現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入するステップと、
前記現在の処理オブジェクトがキーフレームではないことが検出されたとき、前記現在の処理オブジェクトの前のフレームに対応するフレーム番号に基づき、前記現在の処理オブジェクトのフレーム番号を調整し、
前記充填フレーム情報に基づいて前記現在の処理オブジェクトと前記現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入するステップと、
全ての画像フレームの復号がいずれも終わるまで、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップを実行するステップと、を含む請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、前記バッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する前記ステップは、
現在レンダリングされている前記処理対象の画像シーケンスのキーフレームを取得して、ターゲットキーフレームを得るステップと、
前記画像フレームセットで前記ターゲットキーフレームの次のフレームの画像フレームがターゲット画像フレームであることを決定するステップと、
前記ターゲット画像フレームをバッファキューの一番目に保存するステップと、を含む請求項1~5のいずれか1項に記載の方法。
【請求項8】
画像処理装置であって、
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信することに用いられる受信モジュールであって、前記充填フレーム情報は前記サーバによって前記画像フレームセットに基づき生成される、受信モジュールと、
前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、バッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定することに用いられる決定モジュール
であって、であって、前記バッファキューは画像フレームを先入れ先出しの順序に応じてバッファすることに用いられる、決定モジュールと、
前記充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することに用いられる挿入モジュールであって、
前記ターゲット画像フレームに続いて、前記バッファキューの最大バッファ数に達するまでターゲット充填フレームを挿入する、挿入モジュールと、
前記バッファキューの最大バッファ数に達するまでターゲット充填フレームが挿入されたことに応答して前記ターゲット画像フレームの復号が開始され、前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、前記画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、
前記充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行することに用いられる検出モジュールと、
復号後の画像フレームを処理し、処理結果を表示することに用いられる処理モジュールと、を含む画像処理装置。
【請求項9】
前記挿入モジュールは、
前記充填フレーム情報からサーバによって前記画像フレームセットに基づき生成された充填フレームセットを抽出することに用いられる第1抽出ユニットと、
前記充填フレームセット中の前記ターゲット画像フレームと対応する充填フレームを選択して、ターゲット充填フレームを得ることに用いられる選択ユニットと、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入することに用いられる挿入ユニットと、を含む請求項8に記載の画像処理装置。
【請求項10】
前記挿入ユニットはさらに、
前記バッファキューに対応する最大バッファ数を検出し、前記ターゲット画像フレーム及び前記最大バッファ数に基づき、充填数を生成し、前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入することに用いられる請求項9に記載の画像処理装置。
【請求項11】
値割り当てモジュールをさらに含み、
前記値割り当てモジュールは、
前記ターゲット画像フレームのフレーム番号を抽出することに用いられる第2抽出ユニットと、
フレーム番号及び前記バッファキューでの充填フレームの位置に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てることに用いられる値割り当てユニットと、を含む請求項10に記載の画像処理装置。
【請求項12】
前記値割り当てユニットはさらに、
前記充填フレーム情報から前記バッファキューでの充填フレームに対応するオフセット量を抽出し、フレーム番号、前記バッファキューでの充填フレームの位置及び前記バッファキューでの充填フレームに対応するオフセット量に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てることに用いられる請求項11に記載の画像処理装置。
【請求項13】
前記検出モジュールはさらに、
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得ることと、
前記現在の処理オブジェクトのタイプを検出することと、
検出結果として前記現在の処理オブジェクトがキーフレームであることが示されたとき、前記現在の処理オブジェクトのフレーム番号を基準として、
前記充填フレーム情報に基づいて前記現在の処理オブジェクトと前記現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入することと、
前記現在の処理オブジェクトがキーフレームではないことが検出されたとき、前記現在の処理オブジェクトの前のフレームに対応するフレーム番号に基づき、前記現在の処理オブジェクトのフレーム番号を調整し、
前記充填フレーム情報に基づいて前記現在の処理オブジェクトと前記現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入することと、
全ての画像フレームの復号がいずれも終わるまで、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップを実行することと、に用いられる請求項8~12のいずれか1項に記載の画像処理装置。
【請求項14】
電子機器であって、メモリと、プロセッサと、メモリに記憶され、プロセッサで動作し得るコンピュータプログラムと、を含み、前記プロセッサは前記コンピュータプログラムを実行したとき、請求項1~7のいずれか1項に記載の画像処理方法を実施する電子機器。
【請求項15】
コンピュータプログラムであって、プロセッサにより実行されたとき、請求項1~7のいずれか1項に記載の画像処理方法を実施するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願はコンピュータの技術分野に関し、具体的に、画像処理方法、装置、電子機器及び記憶媒体に関する。
【0002】
本願は、2020年7月1日に中国特許庁に提出された、出願番号が第2020106262817号、発明の名称が「画像処理方法、装置、電子機器及び記憶媒体」の中国特許出願の優先権を主張し、その全内容は引用により本願に組み込まれている。
【背景技術】
【0003】
ますます多くのユーザーが、携帯電話、タブレットコンピュータ及びパソコンなどの端末を介してオンラインでビデオを視聴し始めている。そして、移動端末及びネットワーク技術の発展に伴って、ゲームもビデオ再生の方式で相応なコンテンツをユーザーに表示することができるようになっている。クラウドゲームを例とすると、クラウドゲームのシーンでは、ゲームはプレーヤーのゲーム端末ではなく、クラウドサーバで動作し、且つクラウドサーバによってゲームシーンをビデオオーディオストリームとしてレンダリングし、ネットワークを介してプレーヤーの端末に伝送する。プレーヤーの端末は強力なグラフィック演算及びデータ処理能力を有する必要がなく、基本的なストリームメディア再生能力及びプレーヤーの入力命令を取得し、且つクラウドサーバに送信する能力のみを有すればよい。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願の実施例は、画像処理方法、装置、電子機器及び記憶媒体を提供し、画像シーケンスを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させることができる。
【0005】
本願の実施例は画像処理方法を提供し、
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信するステップであって、前記充填フレーム情報は前記サーバによって前記画像フレームセットに基づき生成される、ステップと、
前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、バッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定するステップと、
充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップであって、前記バッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが前記充填フレームであるようにする、ステップと、
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、前記画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行するステップと、
復号後の画像フレームを処理し、処理結果を表示するステップと、を含む。
【0006】
相応に、本願の実施例は画像処理装置をさらに提供し、
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信することに用いられる受信モジュールであって、前記充填フレーム情報は前記サーバによって前記画像フレームセットに基づき生成される、受信モジュールと、
前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、バッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定することに用いられる決定モジュールと、
充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することに用いられる挿入モジュールであって、前記バッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが前記充填フレームであるようにする、挿入モジュールと、
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、前記画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行することに用いられる検出モジュールと、
復号後の画像フレームを処理し、処理結果を表示することに用いられる処理モジュールと、を含む。
【0007】
本願のいくつかの実施例において、前記挿入モジュールは、
前記充填フレーム情報から前記サーバによって前記画像フレームセットに基づき生成された充填フレームセットを抽出することに用いられる第1抽出ユニットと、
前記充填フレームセット中の前記ターゲット画像フレームと対応する充填フレームを選択して、ターゲット充填フレームを得ることに用いられる選択ユニットと、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入することに用いられる挿入ユニットと、を含む。
【0008】
本願のいくつかの実施例において、前記挿入ユニットは具体的に、
前記バッファキューに対応する最大バッファ数を検出することと、
前記ターゲット画像フレーム及び最大バッファ数に基づき、充填数を生成することと、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入することと、に用いられる。
【0009】
本願のいくつかの実施例において、値割り当てモジュールをさらに含み、前記値割り当てモジュールは、
前記ターゲット画像フレームのフレーム番号を抽出することに用いられる第2抽出ユニットと、
フレーム番号及び前記バッファキューでの充填フレームの位置に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てることに用いられる値割り当てユニットと、を含む。
【0010】
本願のいくつかの実施例において、前記値割り当てユニットは具体的に、
前記充填フレーム情報から前記バッファキューでの充填フレームに対応するオフセット量を抽出することと、
フレーム番号、前記バッファキューでの充填フレームの位置及び前記バッファキューでの充填フレームに対応するオフセット量に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てることと、に用いられる。
【0011】
本願のいくつかの実施例において、前記検出モジュールは具体的に、
前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得ることと、
前記現在の処理オブジェクトのタイプを検出することと、
検出結果として前記現在の処理オブジェクトがキーフレームであることが示されたとき、前記現在の処理オブジェクトのフレーム番号を基準として、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することと、
前記ターゲット画像フレームのフレームタイプがキーフレームではないことが検出されたとき、前記現在の処理オブジェクトの前のフレームに対応するフレーム番号に基づき、前記現在の処理オブジェクトのフレーム番号を調整し、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することと、
全ての画像フレームの復号がいずれも終わるまで、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップを実行することと、に用いられる。
【0012】
本願のいくつかの実施例において、前記決定モジュールは具体的に、
現在レンダリングされている前記処理対象の画像シーケンスのキーフレームを取得して、ターゲットキーフレームを得ることと、
前記画像フレームセットで前記ターゲットキーフレームの次のフレームの画像フレームがターゲット画像フレームであることを決定することと、
前記ターゲット画像フレームをバッファキューの一番目に保存することと、に用いられる。
【0013】
本願の実施例は電子機器をさらに提供し、メモリと、プロセッサと、メモリに記憶され、プロセッサで動作し得るコンピュータプログラムと、を含み、前記プロセッサは前記プログラムを実行したとき、前記画像処理方法のステップを実現する。
【0014】
本願の実施例はコンピュータ可読記憶媒体をさらに提供し、それにコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサにより実行されたとき、前記画像処理方法のステップを実現する。
【0015】
本願の技術的手段をより明確に説明するために、以下、実施例の記述で使用される必要がある図面を簡単に紹介し、明らかなように、以下の記述における図面は本発明のいくつかの実施例に過ぎず、当業者にとっては、創造的な労働を要しない前提で、さらにこれらの図面に基づき他の図面を取得することができる。
【図面の簡単な説明】
【0016】
【
図1a】本願の実施例が提供する画像処理方法のシーン模式図である。
【
図1b】本願の実施例が提供する画像処理方法の模式的なフローチャートである。
【
図2a】本願の実施例が提供する画像処理方法の別の模式的なフローチャートである。
【
図2b】本願の実施例が提供する画像処理システムの模式図である。
【
図2c】本願の実施例が提供する画像処理方法における充填フレームを生成する模式的なフローチャートである。
【
図2d】本願の実施例が提供する画像処理方法で画像フレームセットを処理する模式的なフローチャートである。
【
図3a】本願の実施例が提供する画像処理装置の構造模式図である。
【
図3b】本願の実施例が提供する画像処理装置の別の構造模式図である。
【
図4】本願の実施例が提供する電子機器の構造模式図である。
【
図5】本願の実施例が提供する分散型システム100がブロックチェーンシステムに応用される1つの構造模式図である。
【
図6】本願の実施例が提供するブロック構造(Block Structure)の1つの模式図である。
【発明を実施するための形態】
【0017】
以下、本願の図面を併せて本願の技術的手段を明確かつ完全に記述する。明らかなように、記述された実施例は単に本発明の実施例の一部であり、全部の実施例ではない。本発明の実施例に基づき、当業者が創造的な労働を要しない前提で取得した全ての他の実施例は、いずれも本発明の保護範囲に属するものとなる。
【0018】
いくつかのクラウドゲームシーンにおいて、プレーヤーの端末の復号能力が制限される。復号手段において、ビデオハードウェア復号フレームバッファは全体的な遅延に大きく影響するため、最終的に再生するビデオが動かなくなる現象が存在する可能性がある。
【0019】
本願の実施例は、画像処理方法、装置、電子機器及び記憶媒体を提供し、画像シーケンスを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させることができる。
【0020】
本願の実施例は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信するステップであって、前記充填フレーム情報は前記サーバによって前記画像フレームセットに基づき生成される、ステップの後、前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。続いて、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それにより前記バッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが前記充填フレームであるようにする。前記ターゲット画像フレームの復号が完了したことが検出されたとき、前記ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいて前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行し、最終的に、復号後の画像フレームを処理し、且つ処理結果を表示する。従って、該手段は、ビデオを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させることができる。
【0021】
ここで、該画像処理装置は具体的に端末に集積されてもよく、端末はスマートフォン、タブレットコンピュータ、ノートパソコン、デスクトップコンピュータ、スマートスピーカー、スマートウォッチなどであってもよいが、これらに限定されない。端末及びサーバは、有線又は無線通信方式で直接又は間接的に接続され得るが、本願はここで限定しない。
【0022】
たとえば、
図1aに参照されるように、該画像処理装置は端末に集積され、端末はサーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信することができる。ここで、充填フレーム情報は前記サーバによって画像フレームセットに基づき生成され、サーバはクラウドサーバであり、クラウドゲームシーンでは、クラウドサーバによってゲームシーンをビデオオーディオストリーム(すなわちビデオストリームデータ)としてレンダリングし、ネットワークを介してユーザーの端末に伝送する。次に、端末は画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。続いて、端末は、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。続いて、端末は、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行し、最終的に、端末は、復号後の画像フレームをレンダリングして、前記処理対象の画像シーケンスを再生する。
【0023】
本願が提供する画像処理方法では、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりターゲット画像フレームがバッファキューにあるとき、バッファキューの一番目にあり、そして、バッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにすることで、端末が画像フレームを復号する速度を向上させ、ビデオを復号することによる時間遅延を低減させ、さらに画像処理の効率を向上させる。
【0024】
以下、それぞれ詳細に説明する。説明する必要があるように、以下の実施例の記述順序は実施例の優先順序を限定するものではない。
【0025】
画像処理方法は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信し、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定し、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行し、復号後の画像フレームを処理し、且つ処理結果を表示することを含む。
【0026】
図1bに参照されるように、
図1bは本願が提供する画像処理方法の模式的なフローチャートである。該画像処理方法は端末によって実行されてもよく、具体的なプロセスは以下のとおりであってもよい。
【0027】
101:サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信する。
【0028】
ここで、充填フレーム情報はサーバによって画像フレームセットに基づき生成され、端末は、有線ネットワーク又は無線ネットワークを介してサーバから送信されたビデオストリームデータを受信することができる。該ビデオストリームデータは充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを運び、サーバから送信されたビデオストリームデータを受信した後、該ビデオストリームデータを解析し、それにより処理対象の画像シーケンスの画像フレームセット及びサーバが画像フレームセットに基づき生成した充填フレーム情報を得る。ビデオデータソースのフォーマットは、AVC(Advanced Video Coding、すなわちH.264符号化標準)であってもよく、HEVC(High Efficiency Video Coding、すなわちH.265符号化標準)であってもよい。
【0029】
まず、以下のビデオ符号化の概念を紹介する。いわゆるビデオ符号化方式とは、圧縮技術により、元のビデオ画像を順に予測、変化、量子化、再構成及びエントロピー符号化してバイナリバイトストリームに圧縮することを指し、ここで、符号化方式は、コンテキストに基づく適応型可変長符号化(Context-Adaptive Varialbe-Length Coding、CAVLC)及びコンテキストに基づく適応型バイナリ算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)を含む。サーバは、処理対象の画像シーケンスの画像シーケンスヘッダ情報を取得した後、画像シーケンスヘッダ情報を解析して、処理対象の画像シーケンスの画質レベル、参照フレーム数、双方向予測フレームの有無及び画像フレームシーケンスに対応する長さなどの情報を得て、且つ解析して得られた情報に基づいて、充填フレームを生成できるか否かを判断する。サーバは、充填フレームを生成したとき、生成した充填フレーム、充填フレームに対応する番号及びオフセット量を、充填フレーム情報としてパッケージングし、且つ画像シーケンスヘッダ情報内に書き込み、その後、充填フレーム情報を含む画像シーケンスヘッダ情報を端末に送信する。
【0030】
102:画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。
【0031】
ビデオコンテンツの記憶及び伝送を容易にするために、通常、ビデオコンテンツの体積を減少させる必要があり、つまり元のビデオ画像を圧縮する必要があり、圧縮アルゴリズムは符号化フォーマットとも略称する。たとえば、サーバは、H.264符号化フォーマットを採用してビデオ画像を圧縮することができ、サーバから送信された圧縮後のビデオコンテンツを受信すると、圧縮後のビデオコンテンツを復号とも呼ばれる圧縮解除する必要がある。ビデオ画像符号化及び復号については、エンコーダは、複数枚の画像を符号化した後にセグメント化された画像グループ(Group of Pictures、GOP)を生成し、デコーダは、再生時にセグメント化されたGOPを読み取って復号した後に、画面を読み取り、さらにレンダリングしてディスプレイする。GOP(Group of Pictures)は1グループの連続した画面であり、1つのキーフレーム及び複数の非キーフレームからなり、ここで、キーフレームはGOPの基本フレーム(第1フレーム)であり、1グループには1つのみのキーフレームがあり、非キーフレームは順方向参照フレーム及び双方向参照フレームを含む。ここで、キーフレームは1つの完全な画面であり、順方向参照フレーム及び双方向参照フレームが記録するのはキーフレームに対する変化である。従って、キーフレームは独立して復号できるが、順方向参照フレームは前のフレームの画像に依存して復号する必要があり、双方向参照フレームの復号は前のフレームの画像に依存する必要があるだけでなく、次のフレームの画像にも依存する必要がある。すなわち、ビデオを再生する必要があるとき、まず、1つのキーフレームの位置を位置決めする必要があり、それによりビデオの再生を実現できる。すなわち、いくつかの実施例において、「画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する」というステップは具体的に、
現在レンダリングされている処理対象の画像シーケンスのキーフレームを取得して、ターゲットキーフレームを得るステップ(11)と、
画像フレームセットでターゲットキーフレームの次のフレームの画像フレームがターゲット画像フレームであることを決定するステップ(12)と、
ターゲット画像フレームをバッファキューの一番目に保存するステップ(13)と、を含んでもよい。
【0032】
現在、ユーザーの端末は、サーバとの間でバッファキューを介してビデオデータ(すなわち画像フレームセット)のバッファを行うことができ、すなわち、バッファキューは画像処理過程における各々の復号対象の画像フレームを先入れ先出しの順序に応じてバッファすることに用いられる。そして、バッファキューにおける全てのバッファ空間にいずれも画像フレームがバッファされたときにのみ、端末は、バッファキューの一番目にある画像フレームを復号する。
【0033】
103:充填フレーム情報に基づいてターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する。
【0034】
ここで、ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。クラウドゲームを例とすると、クラウドゲーム(Cloud gaming)はゲームオンデマンド(gaming on demand)とも呼ばれてもよく、クラウドコンピューティング技術を基礎とする一種のオンラインゲーム技術である。そして、クラウドゲームでは、サーバから送信された画像フレームセットには一般的にキーフレーム及び順方向参照フレームのみが含まれ、双方向参照フレームが記録するのは本フレームと前後フレームとの違いである。つまり双方向参照フレームを復号するには、双方向参照フレームの前のバッファ画面を取得する必要があるだけでなく、双方向参照フレームの後の画面を復号する必要があり、前後画面と本フレームのデータとの重ね合わせにより最終的な画面を取得する。双方向参照フレームを復号する必要があるとき、さらに双方向参照フレームの次のフレームのデータを取得する必要があり、このとき、双方向参照フレームの次のフレームはまだバッファキューにある。従って、双方向参照フレームを復号することができず、それにより画面が動かなくなるなどの現象が発生する。
【0035】
充填フレーム情報は画像フレームセットにおける各画像フレームと対応する充填フレームを含む。従って、充填フレーム情報に基づきターゲット画像フレームと対応する充填フレームを決定でき、且つ決定された充填フレームをターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に挿入する。それによりターゲット画像フレームがバッファキューの一番目にあり、且つバッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。すなわち、いくつかの実施例において、「充填フレーム情報に基づいてターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する」というステップは具体的に、
充填フレーム情報からサーバによって前記画像フレームセットに基づき生成された充填フレームセットを抽出するステップ(21)と、
充填フレームセット中のターゲット画像フレームと対応する充填フレームを選択して、ターゲット充填フレームを得るステップ(22)と、
ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入するステップ(23)と、を含んでもよい。
【0036】
説明する必要があるように、該充填フレームは順方向予測フレームである。そして、該充填フレームのフレームモードはスキップモードであり、P-Skipマクロブロックは一種の特別なPマクロブロックである。一般的なPマクロブロックについては、画素残差及び動きベクトル残差の両方はコードストリームに書き込まれ、符号化側から復号側に伝送されるが、P-Skipマクロブロックの特別なところは、画素残差を伝送しないだけでなく、動きベクトル残差も伝送しないことである。符号化側は該マクロブロックがPSkipマクロブロックであることを識別するいくつかの少量のバイトを伝送する以外に、該マクロブロックに関する他の情報を伝送する必要がなく、動きベクトル残差は動きベクトルと予測された動きベクトルとの差に等しいため、符号化側での動きベクトル残差がゼロであり、復号時に予測された動きベクトルを得ることができ、つまり、復号時に、動きベクトルを得ることもできる。復号側には参照フレームのマクロブロックに対応する再構成画素があり、この再構成画素及び動きベクトルに基づき、本フレームの本マクロブロックの画素値を復元することができる。これはいわゆるP-skipマクロブロック原理であり、文字通りに理解されるように、このマクロブロックがスキップされることであり、このマクロブロックが符号化されないことに相当する。復号側で近似代替の復元方法が採用され、本フレームの1つのマクロブロックと参照フレームの1つのマクロブロックの画素(2つのマクロブロックが同一位置にあることが要求されない)がほぼ完全に一致した場合、明らかに、現在のフレームのマクロブロックを符号化する必要がなく、復号側では、近似代替方法を直接用いて本フレームの本マクロブロックの画素値を復元することができる。たとえば、第1フレームに卓球があり、第2フレームにも卓球があり、この第2フレームにおける卓球のこのマクロブロックは、PSkipマクロブロックとしてコンパイルされる可能性がある。本願において、符号化前の観点から、バッファキューに挿入された充填フレームはターゲット画像フレームと完全に同じである。
【0037】
さらに、画像フレーム復号の効率を向上させるために、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューがいっぱいになり(バッファキューの最大バッファ数に達する)、バッファキューの最大バッファ数及びターゲット画像フレームに基づき、充填数を生成することができる。次に、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入する。すなわち、いくつかの実施例において、「ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入する」というステップは、具体的に、
前記バッファキューに対応する最大バッファ数を検出するステップ(31)と、
前記ターゲット画像フレーム及び最大バッファ数に基づき、充填数を生成するステップ(32)と、
前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入するステップ(33)と、を含んでもよい。
【0038】
バッファキューに充填フレームを挿入した後の処理対象の画像シーケンスの画面の連続性を確保するために、バッファキューにおける充填フレームのフレーム番号に値を割り当てる必要がある。すなわち、いくつかの実施例において、「前記ターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入する」というステップは、具体的に、
ターゲット画像フレームのフレーム番号を抽出するステップ(41)と、
フレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てるステップ(42)と、をさらに含む。
【0039】
たとえば、ターゲット画像フレームのフレーム番号は5であり、バッファキューに4つの充填フレームが挿入され、それぞれ充填フレームA、充填フレームB、充填フレームC及び充填フレームDであり、且つ充填フレーム間の位置は充填フレームA-充填フレームB-充填フレームC-充填フレームDである。順に逓増する順序に応じて充填フレームA、充填フレームB、充填フレームC及び充填フレームDに相応なフレーム番号を順に付与し、このとき、充填フレームAのフレーム番号は6であり、充填フレームBのフレーム番号は7であり、充填フレームCのフレーム番号は8であり、充填フレームDのフレーム番号は9である。
【0040】
実際の応用では、たとえば、H.264符号化フォーマットにおいて、H.264バンドとは、特定のバンドグループ内部でラスタースキャン順序に応じて配列された整数個のマクロブロック又はマクロブロックペアを指すが、これらのマクロブロック又はマクロブロックペアは画像の内部で必ずしもラスタースキャン順序に応じて連続的に配列されるとは限らず、上記マクロブロックのアドレスはバンドの1番目のマクロブロックのアドレス(バンドヘッダに記述する)及びマクロブロックのバンドグループへのマッピングにより得られる。H.264バンドヘッダとは、符号化バンドの一部を指し、該バンドにおける1番目又は全部のマクロブロックに関するデータ要素を含み、つまり、充填フレーム情報からバッファキューでの充填フレームに対応するオフセット量を抽出することができる。該オフセット量とは、充填フレームのバンドヘッダでのオフセット量を指し、次に、フレーム番号、バッファキューでの充填フレームの位置及びバッファキューでの充填フレームに対応するオフセット量に基づいて、前記バッファキューにおける充填フレームのフレーム番号に値を割り当てる。すなわち、いくつかの実施例において、「フレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当て、それによりバッファキューにおける最後フレームの充填フレームのフレーム番号が第2フレーム番号であるようにする」というステップは、具体的に、
充填フレーム情報からバッファキューでの充填フレームに対応するオフセット量を抽出するステップ(51)と、
フレーム番号、バッファキューでの充填フレームの位置及びバッファキューでの充填フレームに対応するオフセット量に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てるステップ(52)と、を含んでもよい。
【0041】
具体的に、充填フレーム情報からサーバによって生成された充填フレームのフレーム番号を抽出し、且つフレーム番号、バッファキューでの充填フレームの位置及びバッファキューでの充填フレームに対応するオフセット量に基づき、バッファキューにおける充填フレームのフレーム番号を相応なフレーム番号に更新することで、バッファキューに充填フレームを挿入した後、処理対象の画像シーケンスの画面の連続性を確保する。
【0042】
104:ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。
【0043】
たとえば、具体的に、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとする。すなわち、ターゲット画像フレームの次のフレームの画像フレームを現在処理されている画像フレームとし、次に、現在処理されている画像フレームと現在処理されている画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する。すなわち、画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。
【0044】
説明する必要があるように、異なるキーフレームで表される画像は完全に異なり、従って、充填フレームを挿入したとき、さらに現在処理されている画像フレームがキーフレームであるか否かを検出する必要がある。すなわち、いくつかの実施例において、「ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する」というステップは、具体的に、
ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップ(61)と、
現在の処理オブジェクトのタイプを検出するステップ(62)と、
検出結果として現在の処理オブジェクトがキーフレームであることが示されたとき、現在の処理オブジェクトのフレーム番号を基準として、充填フレーム情報に基づいて現在の処理オブジェクトと現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入するステップ(63)と、
現在の処理オブジェクトがキーフレームではないことが検出されたとき、現在の処理オブジェクトの前のフレームに対応するフレーム番号に基づき、現在の処理オブジェクトのフレーム番号を調整し、且つ充填フレーム情報に基づいて現在の処理オブジェクトと現在の処理オブジェクトの次のフレームの画像フレームとの間に充填フレームを挿入するステップ(64)と、
全ての画像フレームの復号がいずれも終わるまで、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップを実行する(65)と、を含んでもよい。
【0045】
たとえば、具体的に、現在の処理オブジェクトがキーフレームであるとき、現在の処理オブジェクトのフレーム番号が開始番号であることを決定し、現在の処理オブジェクトのフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。現在の処理オブジェクトがキーフレームではないとき、現在の処理オブジェクトの前のフレームに対応するフレーム番号を取得する。ここで、現在の処理オブジェクトの前のフレームは充填フレームであり、すなわち、前のフレームの充填フレームのフレーム番号に基づき現在の処理オブジェクトのフレーム番号を調整し、且つ現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。説明する必要があるように、現在の処理オブジェクトがキーフレームではないとき、現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てた後、さらに値を割り当てられた後の充填フレームに対応するフレーム番号が所定閾値よりも大きいか否かを検出する必要があり、イエスであれば、所定閾値よりも大きいフレーム番号のゼロ復帰処理を行う。
【0046】
105:復号後の画像フレームを処理し、且つ処理結果を表示する。
【0047】
ここで、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生することができる。本願において、充填フレームがP-skipフレームであるため、P-skipフレームをレンダリングせずに復号するだけでよいが、画像フレームセットにおける各フレームのビデオを復号、レンダリング及び再生し、最終的にビデオを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させるという目的を達成する。
【0048】
本願は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信した後、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。次に、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。最終的に、復号後の画像フレームを処理し、且つ処理結果を表示する。本願が提供する画像処理方法は、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりターゲット画像フレームがバッファキューにあるとき、バッファキューの一番目にある。そして、バッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにすることで、端末が画像フレームを復号する速度を向上させ、ビデオを復号することによる時間遅延を低減させ、さらに画像処理の効率を向上させる。
【0049】
実施例に記載の方法に基づき、以下、例を挙げてさらに詳細に説明する。
【0050】
本実施例において、該画像処理装置が具体的に端末に集積されることを例として説明する。
【0051】
図2aに参照されるように、画像処理方法について、具体的なプロセスは以下のとおりであってもよい。
【0052】
201:端末は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信する。
【0053】
202:端末は、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。
【0054】
端末はサーバから送信された圧縮後のビデオコンテンツを受信し、端末は、圧縮後のビデオコンテンツを圧縮解除する必要がある。すなわち、端末は、ビデオを再生する必要があるとき、まず1つのキーフレームの位置を位置決めする必要があり、それでビデオの再生を実現することができる。
【0055】
203:端末は、充填フレーム情報に基づいてターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する。
【0056】
充填フレーム情報は画像フレームセットにおける各画像フレームと対応する充填フレームを含む。従って、充填フレーム情報に基づきターゲット画像フレームと対応する充填フレームを決定することができ、且つ決定された充填フレームをターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に挿入し、それによりターゲット画像フレームがバッファキューの一番目にあり、且つバッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。
【0057】
204:端末は、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。
【0058】
たとえば、具体的に、現在の処理オブジェクトがキーフレームであるとき、現在の処理オブジェクトのフレーム番号が開始番号であることを決定し、端末は、現在の処理オブジェクトのフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。現在の処理オブジェクトがキーフレームではないとき、端末は、現在の処理オブジェクトの前のフレームに対応するフレーム番号を取得し、ここで、現在の処理オブジェクトの前のフレームは充填フレームである。すなわち、端末は、前のフレームの充填フレームのフレーム番号に基づき現在の処理オブジェクトのフレーム番号を調整し、且つ現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。説明する必要があるように、現在の処理オブジェクトがキーフレームではないとき、端末は、現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てた後、さらに値を割り当てられた後の充填フレームに対応するフレーム番号が所定閾値よりも大きいか否かを検出する必要があり、イエスであれば、端末は所定閾値よりも大きいフレーム番号のゼロ復帰処理を行う。
【0059】
205:端末は、復号後の画像フレームを処理し、且つ処理結果を表示する。
【0060】
たとえば、具体的に、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生する。本願において、充填フレームはP-skipフレームであるため、P-skipフレームをレンダリングせずに復号するだけでよいが、画像フレームセットにおける各フレームのビデオを復号、レンダリング及び再生し、最終的にビデオを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させるという目的を達成する。
【0061】
本願の端末は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信した後、端末は、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。次に、端末は、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。端末は、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。最終的に、端末は、復号後の画像フレームを処理し、且つ処理結果を表示する。本願が提供する端末は、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりターゲット画像フレームがバッファキューにあるとき、バッファキューの一番目にある。そして、バッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにすることで、端末が画像フレームを復号する速度を向上させ、ビデオを復号することによる時間遅延を低減させ、さらに画像処理の効率を向上させる。
【0062】
本願の画像処理手段のさらなる理解を容易にするために、
図2bに参照されるように、本願は画像処理システム(以下、処理システムと略称する)を提供し、該処理システムは、第1端末10、第2端末20及びサーバ30を含み、端末10は、処理対象の画像シーケンスを収集して符号化してH.264ビデオストリームを生成した後、再生対象のビデオの画像シーケンスヘッダ情報をサーバ30に送信する。ここで、画像シーケンスヘッダ情報は、再生対象のビデオのシーケンスパラメータ集合及び画像パラメータ集合を含み、シーケンスパラメータ集合に1グループの符号化ビデオシーケンスのグローバルパラメータが保存される。いわゆる符号化ビデオシーケンスとは元のビデオの画素データをフレームごとに符号化した後の構造からなるシーケンスであり、各フレームの符号化後のデータが依存するパラメータは画像パラメータ集合に保存される。次に、サーバ30は、画像シーケンスヘッダ情報を受信した後、画像シーケンスヘッダ情報を解析して、処理対象の画像シーケンスの基本フォーマット情報を得て、参照フレームの個数、ビデオレベル、最大フレームシーケンス、フレーム番号の対応するバンドでのオフセット量及び双方向参照フレームの画像フレームの数を含み、且つ解析結果に基づいて該処理対象の画像シーケンスが充填フレームを生成できるか否かを判断する。具体的に、
図2cと併せて参照されるように、処理対象の画像シーケンスに双方向参照フレームが存在せず且つ最大参照フレームの数が1であるとき、処理対象の画像シーケンスが充填フレームを生成できることを決定し、さもなければ、プロセスが終了する。さらに、処理対象の画像シーケンスが充填フレームを生成できることが決定されたとき、解析結果に基づき相応な充填フレーム生成モジュールを決定する。たとえば、エントロピー符号化モードがCAVLCモードであれば、CAVLCモードに対応する充填フレーム生成モジュールを選択し、エントロピー符号化モードがCABACモードであれば、CABACモードに対応する充填フレーム生成モジュールを選択する。次に、選択された充填フレーム生成モジュールに基づいて順方向参照フレームを生成するようにエンコーダを指定し、いかなる動きベクトル推定を行わず、全てのマクロブロック予測モードは強制的にP-skipモード(スキップモード)となり、エントロピー符号化モード(CAVLC/CABAC)を指定することにより相応な充填フレームを生成する。最終的に、充填フレーム情報パッケージングモジュールは生成された充填フレーム、解析結果におけるフレーム番号及びフレーム番号の対応するバンドでのオフセット量をカプセル化して、充填フレーム情報を得て、サーバ30は、画像シーケンスヘッダ情報及び充填フレーム情報を第2端末20に送信する。
【0063】
図2dに参照されるように、且つ
図2bと併せて参照されるように、第2端末20は、サーバ30から送信された画像シーケンスヘッダ情報及び充填フレーム情報を受信する。第2端末20は、画像シーケンスヘッダ情報を解析して、処理対象の画像シーケンスの画像フレームセットを得る。次に、第2端末20は、画像フレームセットをフレームごとに第2端末20の復号モジュールに挿入し、復号時にバッファキューが存在すると、第2端末20は充填フレーム情報からサーバ30によって生成された充填フレームを抽出する。続いて、第2端末20は、画像フレームセットに基づきバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定し、且つ充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入する。その後、第2端末20は、充填フレーム情報におけるオフセット量に基づきそれぞれバッファキューにおける充填フレーム及びターゲット画像フレームのフレーム番号を更新することで、処理対象の画像シーケンスの画面の連続性を確保する。具体的に上記実施例を参照すればよいため、ここで繰り返し説明しない。また、復号時にバッファキューが存在しないと、サーバ30における充填フレーム生成モジュールは、画像シーケンスヘッダ情報をリレープロキシサーバに送信することで、第2端末20は、リレープロキシサーバから送信された画像シーケンスヘッダ情報を受信して処理対象の画像シーケンスを表示する。そして、復号されたビデオフレームが充填フレームであれば、充填フレームをレンダリングせず、且つ復号ステップを実行して、再生対象のビデオを再生する。
【0064】
本願の画像処理方法をより良好に実施することを容易にするために、本願は上記方法に基づく画像処理装置をさらに提供する。ここで、名詞の意味は上記画像処理方法におけるものと同じであり、具体的な実現詳細は方法実施例における説明を参照することができる。
【0065】
図3aに参照されるように、
図3aは本願が提供する画像処理装置の構造模式図であり、ここで、該画像処理装置は受信モジュール301、決定モジュール302、挿入モジュール303、検出モジュール304及びレンダリングモジュール305を含んでもよく、具体的に以下のとおりであってもよい。
【0066】
受信モジュール301は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信することに用いられる。
【0067】
ここで、充填フレーム情報はサーバによって画像フレームセットに基づき生成され、受信モジュール301は、有線ネットワーク又は無線ネットワークを介してサーバから送信されたビデオストリームデータを受信することができる。該ビデオストリームデータは充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを運び、サーバから送信されたビデオストリームデータを受信した後、該ビデオストリームデータを解析し、それにより処理対象の画像シーケンスの画像フレームセット及びサーバによって画像フレームセットに基づき生成された充填フレーム情報を得る。ビデオデータソースのフォーマットは、AVC(Advanced Video Coding、すなわちH.264符号化標準)であってもよく、HEVC(High Efficiency Video Coding、すなわちH.265符号化標準)であってもよい。
【0068】
決定モジュール302は、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定することに用いられる。
【0069】
ビデオコンテンツの記憶及び伝送を容易にするために、通常、ビデオコンテンツの体積を減少させる必要があり、つまり元のビデオ画像を圧縮する必要があり、圧縮アルゴリズムは符号化フォーマットとも略称する。たとえば、H.264符号化フォーマットを採用してビデオ画像を圧縮することができ、決定モジュール302は、サーバから送信された圧縮後のビデオコンテンツを受信し、端末は、圧縮後のビデオコンテンツを圧縮解除する必要がある。すなわち、決定モジュール302は、ビデオを再生する必要があるとき、まず1つのキーフレームの位置を位置決めする必要があり、それでビデオの再生を実現することができる。
【0070】
いくつかの実施例において、決定モジュール302は具体的に、現在レンダリングされている処理対象の画像シーケンスのキーフレームを取得して、ターゲットキーフレームを得て、画像フレームセットでターゲットキーフレームの次のフレームの画像フレームがターゲット画像フレームであることを決定し、ターゲット画像フレームをバッファキューの一番目に保存することに用いられてもよい。
【0071】
挿入モジュール303は、充填フレーム情報に基づいてターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することに用いられる。
【0072】
充填フレーム情報は画像フレームセットにおける各画像フレームと対応する充填フレームを含む。従って、挿入モジュール303は、充填フレーム情報に基づきターゲット画像フレームと対応する充填フレームを決定することができ、且つ決定された充填フレームをターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に挿入し、それによりターゲット画像フレームがバッファキューの一番目にあって、且つバッファキューにおける前記ターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。
【0073】
いくつかの実施例において、挿入モジュール303は具体的に、
充填フレーム情報からサーバによって画像フレームセットに基づき生成された充填フレームセットを抽出することに用いられる第1抽出ユニットと、
充填フレームセット中のターゲット画像フレームと対応する充填フレームを選択して、ターゲット充填フレームを得ることに用いられる選択ユニットと、
ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に所定数のターゲット充填フレームを挿入することに用いられる挿入ユニットと、を含んでもよい。
【0074】
いくつかの実施例において、挿入ユニットは具体的に、バッファキューに対応する最大バッファ数を検出し、ターゲット画像フレーム及び最大バッファ数に基づき、充填数を生成し、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填数と対応する数のターゲット充填フレームを挿入することに用いられてもよい。
【0075】
いくつかの実施例において、
図3bに参照されるように、該画像処理装置は値割り当てモジュール306をさらに含んでもよく、値割り当てモジュール306は、
ターゲット画像フレームのフレーム番号を抽出することに用いられる第2抽出ユニットと、
フレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てることに用いられる値割り当てユニットと、を含む。
【0076】
いくつかの実施例において、値割り当てユニットは具体的に、充填フレーム情報からバッファキューでの充填フレームに対応するオフセット量を抽出し、フレーム番号、バッファキューでの充填フレームの位置及びバッファキューでの充填フレームに対応するオフセット量に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てることに用いられてもよい。
【0077】
検出モジュール304は、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行することに用いられてもよい。
【0078】
たとえば、具体的に、現在の処理オブジェクトがキーフレームであるとき、現在の処理オブジェクトのフレーム番号が開始番号であることを決定し、検出モジュール304は、現在の処理オブジェクトのフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。現在の処理オブジェクトがキーフレームではないとき、端末は、現在の処理オブジェクトの前のフレームに対応するフレーム番号を取得する。ここで、現在の処理オブジェクトの前のフレームは充填フレームであり、すなわち、検出モジュール304は、前のフレームの充填フレームのフレーム番号に基づき現在の処理オブジェクトのフレーム番号を調整し、且つ現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てる。説明する必要があるように、現在の処理オブジェクトがキーフレームではないとき、検出モジュール304は、現在の処理オブジェクトの調整後のフレーム番号及びバッファキューでの充填フレームの位置に基づいて、バッファキューにおける充填フレームのフレーム番号に値を割り当てた後、さらに値を割り当てられた後の充填フレームに対応するフレーム番号が所定閾値よりも大きいか否かを検出する必要があり、イエスであれば、端末は、所定閾値よりも大きいフレーム番号のゼロ復帰処理を行う。
【0079】
いくつかの実施例において、検出モジュール304は具体的に、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得て、現在の処理オブジェクトのタイプを検出する。検出結果として現在の処理オブジェクトがキーフレームであることが示されたとき、現在の処理オブジェクトのフレーム番号を基準として、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することと、ターゲット画像フレームのフレームタイプがキーフレームではないことが検出されたとき、現在の処理オブジェクトの前のフレームに対応するフレーム番号に基づき、現在の処理オブジェクトのフレーム番号を調整し、且つ充填フレーム情報に基づいてターゲット画像フレームと前記ターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入することと、画像フレームセットにおける全ての画像フレームの復号がいずれも終わるまで、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとして、現在の処理オブジェクトを得るステップを実行することと、に用いられてもよい。
【0080】
レンダリングモジュール305は、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生することに用いられる。
【0081】
本願において、充填フレームがP-skipフレームであるため、レンダリングモジュール305は、P-skipフレームをレンダリングせずに復号するだけでよいが、画像フレームセットにおける各フレームのビデオを復号、レンダリング及び再生し、最終的にビデオを復号することによる時間遅延を低減させ、画像処理の滑らかさを向上させるという目的を達成する。
【0082】
本願の受信モジュール301は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信した後、決定モジュール302は、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。次に、挿入モジュール303は、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。検出モジュール304は、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。最終的に、レンダリングモジュール305は、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生する。本願が提供する画像処理装置は、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりターゲット画像フレームがバッファキューにあるとき、バッファキューの一番目にあり、バッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにすることで、端末が画像フレームを復号する速度を向上させ、ビデオを復号することによる時間遅延を低減させ、さらに画像処理の効率を向上させる。
【0083】
また、本願は電子機器をさらに提供し、
図4に示すように、それは本願に係る電子機器の構造模式図を示し、具体的に言えば以下のとおりである。
【0084】
該電子機器は、1つ又は1つ以上の処理コアのプロセッサ401、1つ又は1つ以上のコンピュータ可読記憶媒体のメモリ402、電源403及び入力ユニット404などの部材を含んでもよい。当業者であれば理解できるように、
図4に示された電子機器の構造は電子機器を限定するものではなく、図示されるものより多い又はより少ない部材を含んでもよいか、又は何らかの部材を組み合わせてもよいか、又は異なる部材を配置してもよい。
【0085】
プロセッサ401は、該電子機器の制御センタであり、各種のインタフェース及び回線を利用して電子機器全体の各部分を接続し、メモリ402内に記憶されたソフトウェアプログラム及び/又はモジュールを動作させ又は実行し、メモリ402内に記憶されたデータを呼び出すことで、電子機器の各種の機能を実行し及びデータを処理し、それにより電子機器を全体的に監視する。プロセッサ401は、1つ又は複数の処理コアを含んでもよく、プロセッサ401は、アプリケーションプロセッサ及びモデムプロセッサを集積してもよい。ここで、アプリケーションプロセッサは主にオペレーティングシステム、ユーザーインタフェース及びアプリケーションプログラムなどを処理し、モデムプロセッサは主に無線通信を処理する。理解できるように、上記モデムプロセッサはプロセッサ401に集積されなくてもよい。
【0086】
メモリ402は、ソフトウェアプログラム及びモジュールを記憶することに用いられてもよく、プロセッサ401は、メモリ402に記憶されたソフトウェアプログラム及びモジュールを動作させることにより、各種の機能アプリケーション及びデータ処理を実行する。メモリ402は主にプログラム記憶領域及びデータ記憶領域を含んでもよく、ここで、プログラム記憶領域はオペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラム(たとえば、音声再生機能、画像再生機能など)などを記憶することができ、データ記憶領域は、電子機器の使用に基づき作成されたデータなどを記憶することができる。また、メモリ402は、高速ランダムアクセスメモリを含んでもよく、さらに、たとえば少なくとも1つの磁気ディスク記憶デバイス、フラッシュデバイス、又は他の揮発性固体記憶デバイスなどの不揮発性メモリを含んでもよい。相応に、メモリ402はさらに、プロセッサ401のメモリ402へのアクセスを提供するためのメモリコントローラを含んでもよい。
【0087】
電子機器は各部材に給電する電源403をさらに含み、電源403は、電源管理システムを介してプロセッサ401に論理的に連結され、それにより電源管理システムを介して充電、放電の管理、及び消費電力の管理などの機能を実現することができる。電源403は、1つ又は1つ以上の直流又は交流電源、再充電システム、電源故障検出回路、電源変換器又はインバータ、電源状態インジケータなどの任意の構成要素をさらに含んでもよい。
【0088】
該電子機器は入力ユニット404をさらに含んでもよく、該入力ユニット404は、入力された数字又は文字情報を受信し、及びユーザー設定及び機能制御に関するキーボード、マウス、ジョイスティック、光学又はトラックボールの信号入力を発生させることに用いられてもよい。
【0089】
図示されていないが、電子機器はディスプレイユニットなどをさらに含んでもよく、ここでは繰り返し説明しない。具体的に、本実施例において、電子機器におけるプロセッサ401は、以下のような命令に応じて、1つ又は1つ以上のアプリケーションプログラムのプロセスに対応する実行可能ファイルをメモリ402にロードし、且つプロセッサ401によってメモリ402に記憶されたアプリケーションプログラムを動作させ、それにより以下のとおり各種の機能を実現する。
【0090】
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信し、前記画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行し、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生する。
【0091】
以上の各操作の具体的な実施は上記実施例を参照することができるため、ここでは繰り返し説明しない。
【0092】
本願は、サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信した後、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定する。次に、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりバッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにする。ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行する。最終的に、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生する。本願が提供する画像処理方法は、ターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、それによりターゲット画像フレームがバッファキューにあるとき、バッファキューの一番目にあり、そして、バッファキューにおけるターゲット画像フレームを除いて、残りのフレームが充填フレームであるようにすることで、端末が画像フレームを復号する速度を向上させ、ビデオを復号することによる時間遅延を低減させ、さらに画像処理の効率を向上させる。
【0093】
当業者であれば理解できるように、上記実施例の各種の方法における全部又は一部のステップは命令により完了することができ、又は命令により関連するハードウェアを制御して完了することができ、該命令は、1つのコンピュータ可読記憶媒体に記憶され、且つプロセッサによってロード及び実行され得る。
【0094】
このため、本願は不揮発性コンピュータ可読記憶媒体を提供し、ここで複数の命令が記憶され、該命令はプロセッサによってロードされて、本願が提供するいずれか一種の画像処理方法のステップを実行することができる。たとえば、該命令は以下のステップを実行することができる。
【0095】
サーバから送信された充填フレーム情報及び処理対象の画像シーケンスの画像フレームセットを受信し、画像フレームセットをフレームごとにデコーダのバッファキューに入力し、且つバッファキューの一番目にある現在の画像フレームがターゲット画像フレームであることを決定し、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入し、ターゲット画像フレームの復号が完了したことが検出されたとき、ターゲット画像フレームの次のフレームの画像フレームを新たなターゲット画像フレームとし、且つ全ての画像フレームの復号がいずれも終わるまで、充填フレーム情報に基づいてターゲット画像フレームとターゲット画像フレームの次のフレームの画像フレームとの間に充填フレームを挿入するステップを実行し、復号後の画像フレームをレンダリングして、処理対象の画像シーケンスを再生する。
【0096】
以上の各操作の具体的な実施は上記実施例を参照することができ、ここで繰り返し説明しない。
【0097】
ここで、該記憶媒体は、読み出し専用メモリ(ROM、Read Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク又は光ディスクなどを含んでもよい。
【0098】
該記憶媒体に記憶された命令は、本願が提供するいずれか一種の画像処理方法のステップを実行することができるため、本願が提供するいずれか一種の画像処理方法が実現できる有益な効果を実現することができ、詳細については上記実施例を参照し、ここで繰り返し説明しない。
【0099】
本願に係るシステムは、クライアント端末、複数のノード(ネットワークにアクセスする任意の形態の計算機器、たとえばサーバ、ユーザー端末)をネットワーク通信の形式で接続して形成された分散型システムであってもよい。
【0100】
分散型システムがブロックチェーンシステムであることを例として、
図5に参照されるように、
図5は本願が提供する分散型システム100がブロックチェーンシステムに応用される1つの構造模式図であり、複数のノード(ネットワークにアクセスする任意の形態の計算機器、たとえばサーバ、ユーザー端末)及びクライアント端末によって形成され、ノードの間は構成されたピアツーピア(P2P、Peer To Peer)ネットワークを形成し、P2Pプロトコルは伝送制御プロトコル(TCP、Transmission Control Protocol )プロトコル上で動作する1つのアプリケーション層プロトコルである。分散型システムでは、サーバ、端末などの任意の機械は加入してノードになることができ、ノードはハードウェア層、中間層、オペレーティングシステム層及びアプリケーション層を含む。
【0101】
図5に示されたブロックチェーンシステムにおける各ノードの機能に参照されるように、係る機能は以下を含む。
【0102】
1)ルーティングは、ノードが有する基本機能であり、ノード間の通信をサポートすることに用いられる。
【0103】
ノードはルーティング機能を有する以外に、さらに以下の機能を有してもよい。
【0104】
2)アプリケーションは、ブロックチェーンに配置することに用いられ、実際のサービスニーズに基づき特定のサービスを実現し、機能の実現に関連するデータを記録して記録データを形成し、記録データにタスクデータのソースを表すためのデジタル署名が運ばれ、記録データをブロックチェーンシステムにおける他のノードに送信して、他のノードによる記録データのソース及び整合性の認証が成功したとき、記録データを一時ブロックに追加する。
【0105】
たとえば、アプリケーションによって実現されるサービスは、発生した前後時間順序に応じて相互につながる一連のブロック(Block)を含むブロックチェーンを含んでもよく、一旦新たなブロックがブロックチェーンに追加されると削除されなくなり、ブロックにはブロックチェーンシステムにおけるノードが提出した記録データが記録される。
【0106】
図6に参照されるように、
図6は本願が提供するブロック構造(Block Structure)の1つの模式図であり、各ブロックには本ブロックに記憶されたトランザクションレコードのハッシュ値(本ブロックのハッシュ値)、及び前のブロックのハッシュ値が含まれ、各ブロックは、ハッシュ値を介して接続されてブロックチェーンを形成する。また、ブロックにはブロックを生成したときのタイムスタンプなどの情報がさらに含まれてもよい。ブロックチェーン(Blockchain)は、本質的にディセントラリゼーション化された1つのデータベースであり、暗号学的方法を使用して関連付けて生成した一連のデータブロックであり、各々のデータブロックに関連情報が含まれ、その情報の有効性(偽造防止)を認証し及び次のブロックを生成することに用いられる。
【0107】
以上、本願が提供する画像処理方法、装置、電子機器及び記憶媒体を詳細に紹介し、本明細書において具体的な例を応用して本発明の原理及び実施形態を述べた。以上の実施例の説明は、本発明の方法及びその中心思想を理解するのを助けることのみに用いられ、同時に、当業者にとっては、本発明の思想をもとに、具体的な実施形態及び応用範囲をいずれも変更することができる。以上のように、本明細書のコンテンツは本発明を限定するものではないと理解されるべきである。
【符号の説明】
【0108】
10 第1端末
20 第2端末
30 サーバ
100 分散型システム
301 受信モジュール
302 決定モジュール
303 挿入モジュール
304 検出モジュール
305 レンダリングモジュール
306 モジュール
401 プロセッサ
402 メモリ
403 電源
404 入力ユニット