(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】画像処理方法、装置、コンピュータ装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/42 20140101AFI20241106BHJP
G06T 9/00 20060101ALI20241106BHJP
【FI】
H04N19/42
G06T9/00
(21)【出願番号】P 2023538900
(86)(22)【出願日】2022-04-08
(86)【国際出願番号】 CN2022085728
(87)【国際公開番号】W WO2022242358
(87)【国際公開日】2022-11-24
【審査請求日】2023-07-24
(31)【優先権主張番号】202110536966.7
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ユェン,ジージャン
(72)【発明者】
【氏名】ジャオ,シンダー
(72)【発明者】
【氏名】ヤン,イェンドン
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2012/0320067(US,A1)
【文献】Pavel Krajcevski, Srihari Pratapa, and Dinesh Manocha,GST: GPU-decodable Supercompressed Textures,ACM Trans. Graph.,ACM,2016年11月,Vol. 35, No. 6, Article 230,pp.1-10
【文献】Andre Weissenberger, and Bertil Schmidt,Massively Parallel ANS Decoding on GPUs,ICPP 2019,ACM,2019年08月,pp.1-10
【文献】Fan Gong, et al.,Cooperative DVFS for energy-efficient HEVC decoding on embedded CPU-GPU architecture,DAC’ 17,ACM,2017年,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
G06T 9/00 - 9/40
(57)【特許請求の範囲】
【請求項1】
コンピュータ装置により実行される画像処理方法であって、
目標画像の目標圧縮テクスチャリソースを取得するステップであって、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むステップと、
ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てるステップと、
前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得し、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含むステップとを含
み、
前記ビデオカードシェーダは前記コンピュータ装置に設置され、前記コンピュータ装置はさらにレンダリングパイプライン及び復号パイプラインを含み、前記ビデオカードシェーダは前記復号パイプラインに規定されたプロセスに従って動作し、
前記方法はさらに、前記レンダリングパイプラインが前記目標テクスチャデータに基づいて、画像レンダリングを行うことにより、前記目標画像を取得するステップを含み、
前記レンダリングパイプラインは仮想的な第一ビデオカードアドレス空間を有し、前記復号パイプラインは仮想的な第二ビデオカードアドレス空間を有し、
前記第一ビデオカードアドレス空間及び前記第二ビデオカードアドレス空間は、同一のテクスチャ記憶空間とマッピング関係を有する、画像処理方法。
【請求項2】
ワークグループとは前記ビデオカードシェーダにおける復号処理能力を有するサブ処理ユニットであり、各ワークグループの間は互いに独立し、いずれか1つの目標ワークグループは前記目標圧縮テクスチャリソースを復号するためのアルゴリズム命令を採用して、受信された圧縮テクスチャブロックに対して復号処理が行われたものであることを特徴とする請求項1に記載の方法。
【請求項3】
前記方法はさらに、
前記ビデオカードシェーダにおけるいずれか1つの目標ワークグループにより受信された圧縮テクスチャブロックに対して復号処理を行った後、前記第二ビデオカードアドレス空間と前記テクスチャ記憶空間との間のマッピング関係に基づいて、前記いずれか1つの目標ワークグループを復号して得られた復号データを前記テクスチャ記憶空間にキャッシュするステップを含み、
前記レンダリングパイプラインが前記目標テクスチャデータに基づいて画像レンダリングを行うことにより、前記目標画像を取得するステップは、
各圧縮テクスチャブロックに対応する復号データの全てが前記テクスチャ記憶空間に記憶された後、前記第一ビデオカードアドレス空間と前記テクスチャ記憶空間との間のマッピング関係に基づいて、前記レンダリングパイプラインが前記テクスチャ記憶空間において前記目標テクスチャデータに基づいて画像レンダリングを行うことにより、前記目標画像を取得するステップを含むことを特徴とする請求項
1に記載の方法。
【請求項4】
前記方法はさらに、
前記レンダリングパイプラインが前記コンピュータ装置のローカル空間において前記目標画像に前記テクスチャ記憶空間を割り当てるステップと、
前記レンダリングパイプラインが前記第一ビデオカードアドレス空間を前記テクスチャ記憶空間にマッピングし、前記テクスチャ記憶空間の空間識別を前記復号パイプラインに伝送するステップと、
前記復号パイプラインが前記空間識別に基づいて前記第二ビデオカードアドレス空間を前記テクスチャ記憶空間にマッピングするステップとを含むことを特徴とする請求項
1に記載の方法。
【請求項5】
前記目標画像の目標圧縮テクスチャリソースを取得するステップは、前記レンダリングパイプラインが前記コンピュータ装置のローカル空間から前記目標画像の目標圧縮テクスチャリソースをロードすることを含み、
前記方法はさらに、
前記レンダリングパイプラインが前記目標圧縮テクスチャリソースを前記復号パイプラインに割り当てるステップと、
前記復号パイプラインが前記目標圧縮テクスチャリソースを成功的に受信した後、前記復号パイプラインが前記ビデオカードシェーダに復号通知を送信することにより、前記ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるステップを実行するように前記ビデオカードシェーダに通知するステップとを含むことを特徴とする請求項
1に記載の方法。
【請求項6】
前記コンピュータ装置はビデオカード復号モードを有し、前記ビデオカード復号モードとは前記ビデオカードシェーダで復号処理を行うモードであり、
前記方法はさらに、
前記レンダリングパイプラインが前記ビデオカード復号モードのモード状態を検出し、前記モード状態はモードオン状態又はモードオフ状態を含み、
前記モード状態が前記モードオン状態であれば、前記レンダリングパイプラインが前記目標圧縮テクスチャリソースを前記復号パイプラインに割り当てるステップを実行し、
前記モード状態が前記モードオフ状態であれば、前記レンダリングパイプラインがビデオカード駆動中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを得るステップを含むことを特徴とする請求項
5に記載の方法。
【請求項7】
前記目標画像は目標ゲームにおける目標ゲーム画面画像であり、
前記方法はさらに、
前記レンダリングパイプラインが前記目標ゲームのオフライン復号データセットを取得するステップであって、前記オフライン復号データセットには、前記目標ゲームにおける一つのフレーム又は複数のフレームのゲーム画面画像の画像識別、及び各画像識別に関連付けられたテクスチャデータを含み、いずれか1つの画像識別に関連付けられたテクスチャデータは、前記いずれか1つの画像識別に指示されたゲーム画面画像の圧縮テクスチャリソースをオフラインで復号して取得されたものである、ステップと、
前記目標画像の画像識別に基づいて、前記レンダリングパイプラインが前記オフライン復号データセットにおける画像識別に対して識別ヒット処理を行い、成功的にヒットしないと、前記レンダリングパイプラインが前記ビデオカード復号モードのモード状態を検出するステップを実行し、成功的にヒットすると、前記レンダリングパイプラインが前記オフライン復号データセットからヒットされた画像識別に関連付けられたテクスチャデータをロードし、ロードされたテクスチャデータを前記目標画像の目標テクスチャデータとするステップとを含むことを特徴とする請求項
6に記載の方法。
【請求項8】
前記ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるステップは、前記オフライン復号データセットに前記目標画像の画像識別が存在しない場合に実行されるものであり、前記オフライン復号データセットに前記目標画像の画像識別が存在する場合、前記目標画像の目標テクスチャデータは前記オフライン復号データセットからロードされたものであることを特徴とする請求項
7に記載の方法。
【請求項9】
前記方法はさらに、
前記レンダリングパイプラインが前記ビデオカード駆動中央処理装置の前記目標圧縮テクスチャリソースに対する復号能力を検出し、前記ビデオカード駆動中央処理装置が前記復号能力を有すると検出すると、前記レンダリングパイプラインで前記目標ゲームのオフライン復号データセットを取得するステップを実行し、前記ビデオカード駆動中央処理装置が前記復号能力を有しないと検出すると、前記レンダリングパイプラインで前記目標ゲームのゲームエンジン中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するステップを含むことを特徴とする請求項
7に記載の方法。
【請求項10】
前記方法はさらに、
前記目標圧縮テクスチャリソースにおける全部又は一部の圧縮テクスチャブロックが前記ビデオカードシェーダによる復号が失敗すると、ビデオカード駆動中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するステップを含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記ビデオカードシェーダはM個のワークグループを含み、Mは1より大きい整数であり、
前記ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるステップは、
前記複数の圧縮テクスチャブロックをトラバースして現在トラバースされている現在の圧縮テクスチャブロックを決定し、前記ビデオカードシェーダにおけるM個のワークグループのうち割り当てられていない残りのワークグループが存在すると、前記残りのワークグループにおいて前記現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当て、前記M個のワークグループのうちワークグループの全ては圧縮テクスチャブロックが割り当てられると、前記M個のワークグループにおいて前記現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当てるステップを含むことを特徴とする請求項1に記載の方法。
【請求項12】
前記ビデオカードシェーダにより実行される復号プロセスは一つのソフトウェアツールパケットに個別にパッケージされることにより、いずれか1つの画像の圧縮テクスチャリソースを復号する必要がある場合、前記ソフトウェアツールパケットを呼び出すことで復号処理を実行することを特徴とする請求項1に記載の方法。
【請求項13】
コンピュータ装置に配置された画像処理装置であって、
目標画像の目標圧縮テクスチャリソースを取得し、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むために用いられる取得ユニットと、
ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てるために用いられる処理ユニットとを含み、
前記処理ユニットはさらに、前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するために用いられ、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含
み、
前記ビデオカードシェーダは前記コンピュータ装置に設置され、前記コンピュータ装置はさらにレンダリングパイプライン及び復号パイプラインを含み、前記ビデオカードシェーダは前記復号パイプラインに規定されたプロセスに従って動作し、
前記レンダリングパイプラインは、前記目標テクスチャデータに基づいて、画像レンダリングを行うことにより、前記目標画像を取得し、
前記レンダリングパイプラインは仮想的な第一ビデオカードアドレス空間を有し、前記復号パイプラインは仮想的な第二ビデオカードアドレス空間を有し、
前記第一ビデオカードアドレス空間及び前記第二ビデオカードアドレス空間は、同一のテクスチャ記憶空間とマッピング関係を有することを特徴とする画像処理装置。
【請求項14】
コンピュータ装置であって、入力インタフェース及び出力インタフェースを含み、さらにビデオカード及びコンピュータ記憶媒体を含み、前記ビデオカードは少なくともビデオカードシェーダを含み、前記コンピュータ記憶媒体に一つ又は複数の命令が記憶され、かつ前記一つ又は複数の命令は前記ビデオカードによりロードされて、請求項1~
12のいずれか一項に記載の画像処理方法を実行することに適することを特徴とするコンピュータ装置。
【請求項15】
コンピュータプログラムであって、当該コンピュータプログラムが実行される場合、請求項1~
12のいずれか一項に記載の画像処理方法を実行するために用いられるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は2021年5月17日に中国専利局に提出した、出願番号が202110536966.7であり、発明の名称が「画像処理方法、装置、コンピュータ装置及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は援用により本出願に結合される。
【0002】
本出願はインターネット技術分野に関し、具体的には画像処理技術に関する。
【背景技術】
【0003】
現在、画像作成者は画像を作成する過程において、画像の占用するメモリ及び画像を伝送するために必要なネットワークリソースを節約するために、一般的に圧縮テクスチャフォーマットを採用して画像を圧縮符号化し、該画像の圧縮テクスチャリソースを取得し、それにより外部に該圧縮テクスチャリソースを配信する。外部のいずれか1つの装置は該画像の圧縮テクスチャリソースを取得した後、一般的には該圧縮テクスチャリソースに復号処理を行う必要がある。よって、どのように圧縮テクスチャリソースを復号するかは研究の焦点となる。
【発明の概要】
【課題を解決するための手段】
【0004】
本出願の実施例は画像処理方法、装置、コンピュータ装置及び記憶媒体を提供し、目標圧縮テクスチャリソースの復号を実現するとともに、復号効率を効果的に向上させることができる。
【0005】
一方、本出願の実施例はコンピュータ装置により実行される画像処理方法を提供しており、前記方法は、目標画像の目標圧縮テクスチャリソースを取得し、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むステップと、ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てるステップと、前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得し、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含むステップとを含む。
【0006】
一方、本出願の実施例はコンピュータ装置に配置された画像処理装置を提供しており、前記装置は、目標画像の目標圧縮テクスチャリソースを取得し、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むために用いられる取得ユニットと、ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てるために用いられる処理ユニットとを含み、前記処理ユニットはさらに、前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するために用いられ、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含む。
【0007】
一方、本出願の実施例はコンピュータ装置を提供しており、前記コンピュータ装置は、入力インタフェース及び出力インタフェースを含み、さらにビデオカードシェーダ及びコンピュータ記憶媒体を含み、前記コンピュータ記憶媒体に一つ又は複数の命令が記憶され、前記一つ又は複数の命令は前述の方面の画像処理方法を実行することに適する。
【0008】
一方、本出願の実施例はコンピュータ記憶媒体を提供しており、前記コンピュータ記憶媒体に一つ又は複数の命令が記憶され、前記一つ又は複数の命令は前述の方面の画像処理方法を実行することに適するコンピュータ記憶媒体。
【0009】
一方、本出願の実施例はコンピュータプログラムを提供しており、前記コンピュータプログラム製品が実行される場合、前述の方面の画像処理方法を実行するために用いられる。
【0010】
本出願の実施例はビデオカードシェーダを導入し、ビデオカードシェーダに複数の互いに独立したワークグループを予め配置し、圧縮テクスチャフォーマットを採用して目標画像を符号化して得られた目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含み、目標画像の目標圧縮テクスチャリソースを取得した後、ビデオカードシェーダにおいて圧縮テクスチャブロックのそれぞれに復号用の一つの目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てることができる。そして、ビデオカードシェーダにおける各目標ワークグループを並列に呼び出す方式により、圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことができる。このような処理方式により、目標圧縮テクスチャリソースの復号処理を実現するだけでなく、各圧縮テクスチャブロックの並列復号を実現することができ、それにより復号効率を効果的に向上させることができる。また、ビデオカードシェーダにより復号プロセス全体を実現することにより、復号プロセス全体が中央処理装置の関与を必要とせず、このように中央処理装置のリソースを効果的に節約することができ、それにより中央処理装置のリソース占有率を効果的に減少させ、コンピュータ装置の動作効率を向上させる。
【図面の簡単な説明】
【0011】
本発明の実施例における技術案をより明らかに説明するために、以下は実施例の記載にとって必要な図面を簡単に説明し、明らかに、以下の記載における図面は、本発明の実施例のみであり、当業者にとって、進歩性に値する労働をしない前提で、さらに提供された図面に応じて他の図面を取得できる。
【
図1a】本出願の実施例が提供する画像処理方法の復号のプロセスチャートである。
【
図1b】本出願の実施例が提供するビデオカードシェーダの復号のプロセスチャートである。
【
図2】本出願の実施例が提供する画像処理方法のプロセスチャートである。
【
図3a】本出願の実施例が提供するブロックチェーンの構造概略図である。
【
図3b】本出願の実施例が提供する目標テクスチャデータをブロックチェーンに記憶する概略図である。
【
図4】本出願の他の実施例が提供する画像処理方法のプロセスチャートである。
【
図5】本出願の実施例が提供する空間マッピングの概略図である。
【
図6a】本出願の実施例が提供するクラウドゲームサーバの構造概略図である。
【
図6b】本出願の他の実施例が提供する画像処理方法のプロセスチャートである。
【
図7】本出願の実施例が提供するソフトウェアツールパケットの呼び出しの概略図である。
【
図8】本出願の実施例が提供する画像処理装置の構造概略図である。
【
図9】本出願の実施例が提供するコンピュータ装置の構造概略図である。
【発明を実施するための形態】
【0012】
以下は本出願の実施例における図面を参照して、本出願の実施例における技術案を明確で完全に説明する。
【0013】
インターネット技術の発展に伴い、人工知能(Artificial Intelligence、AI)技術もそれに伴ってより良好に発展する。いわゆる人工知能技術とはデジタルコンピュータ又はデジタルコンピュータにより制御された機械シミュレーション、人間のスマートを延伸して拡張し、環境を感知し、知識を取得して知識を使用して最適な結果を取得する理論、方法、技術及び応用システムを指す。換言すれば、人工知能はコンピュータ科学の総合技術であり、主に知能の実質を理解することにより、人間のスマートに類似する方式で反応を行うことができる新たな知能機器を製造し、それにより、知能機器は感知、推理及び決定などの様々な機能を有する。それに対応して、AI技術は統合学科であり、それは主にコンピュータビジョン技術(Computer Vision、CV)、音声処理技術、自然言語処理技術及び機械学習(Machine Learning、ML)/深さ学習等の数方向を含む。
【0014】
ここで、コンピュータビジョン技術はどのように機器に「見せる」ことを研究する科学であり、さらに言えば、カメラとコンピュータで人間の目に代わって目標に対して識別、追跡及び測定などの機械ビジョンを行い、さらにグラフィック処理を行い、コンピュータ処理を人間の目の観察又は機器検出に伝送することにより適する画像にすることを指す。科学学科、コンピュータビジョン研究に関連する理論及び技術として、画像又は多次元データから情報を取得できる人工知能システムを確立しようとする。コンピュータビジョン技術は一般的に画像処理、画像認識、画像語義理解、画像検索、OCR(Optical Character Recognition、光学文字認識)、ビデオ処理、ビデオ語義理解、ビデオコンテンツ/行為識別、三次元物体再構成、3D(三次元)技術、仮想現実、拡張現実、同期位置決めと地図構築等の技術を含み、さらに一般的な顔認識、指紋認識等の生物特徴識別技術を含む。
【0015】
上記言及されたコンピュータビジョン技術における画像処理技術に基づいて、本出願の実施例は画像処理の技術案を提供することにより、いずれかの画像の圧縮テクスチャリソースを復号処理することを実現する。いわゆる圧縮テクスチャリソースとは圧縮テクスチャフォーマットを採用して画像を符号化して得られた符号化結果である。ここで、圧縮テクスチャフォーマットはASTC(Adaptive Scalable Texture Compression)フォーマット、又はETCフォーマット(圧縮テクスチャフォーマット)などであってもよい。ASTCとETCは一般的に圧縮テクスチャブロック(ブロック(block)と略称する)を単位として画素圧縮記憶を行い、異なるblock圧縮の画素数の範囲は4×4から12×12であり、かつblockの間は互いに独立する。すなわち、圧縮テクスチャフォーマットを採用して画像を符号化して得られた圧縮テクスチャリソースは一般的に複数の圧縮テクスチャブロックを含むことができる。説明すべきことは、本出願の実施例に言及された「複数」の意味はいずれも少なくとも二つを指す。
【0016】
具体的な実現において、該画像処理の技術案はコンピュータ装置で実行されてもよく、該コンピュータ装置は端末又はサーバであってもよい。ここで言及された端末はスマートフォン、タブレットコンピュータ、ノートパソコン、デスクトップコンピュータ、スマートウォッチ、スマートテレビ等を含むが、それらに限定されない。端末内で様々なクライアント(application、APP)、例えばゲームクライアント、マルチメディアクライアント、ソーシャルクライアント等を動作させることができる。ここで言及されたサーバは独立した物理サーバであってもよく、複数の物理サーバで構成されたサーバクラスタ又は分散システムであってもよく、さらにクラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、CDN(Content Delivery Network、コンテンツ配信ネットワーク)、及びビッグデータ及び人工知能プラットフォーム等の基礎クラウドコンピューティングサービスを提供するクラウドサーバ等であってもよい。
【0017】
また、該コンピュータ装置はブロックチェーンネットワークの外に位置してもよく、ブロックチェーンネットワーク内に位置してもよく、これを限定しない。いわゆるブロックチェーンネットワークはピアツーピアネットワーク(P2Pネットワーク)及びブロックチェーンで構成されたネットワークであり、ブロックチェーンは分散データ記憶、ピアツーピア伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新規な応用モードを指し、本質的に非集中型データベースであり、暗号学的方法に関連して生成されたデータブロック(又はブロックと呼ばれる)である。コンピュータ装置がブロックチェーンネットワーク内に位置し、又はブロックチェーンネットワークと通信接続が存在する場合、コンピュータ装置は内部データをブロックチェーンネットワークのブロックチェーンにアップロードして記憶することができ、それによりコンピュータ装置の内部データの改ざんを防止し、内部データの安全性を向上させる。
【0018】
可能な実現方式において、該コンピュータ装置は少なくともビデオカードシェーダ(GraphicSProcessing Unit、GPU)、ビデオカードコンピューティングシェーダ(以下にビデオカードシェーダと略称する)及びコンピューティングシェーダ復号パイプライン(後続に復号パイプラインと略称する)等を含むことができる。ここで、(1)ビデオカードとはGPUを中心とし、かつ表示画像を出力する役割を担うためのデバイスである。(2)ビデオカードシェーダとはビデオカードで動作される処理ユニットであり、それはデータ入力のための入力ビデオカードシェーダキャッシュブロック及びデータ出力のための出力ビデオカードシェーダキャッシュブロックに接続される。ビデオカードシェーダには復号処理能力を有するM個のワークグループ(work group)を含むことができ、いわゆるワークグループはビデオカードシェーダにおける復号処理能力を有するサブ処理ユニットであると理解することができ、各ワークグループの間は互いに独立し、Mは1より大きい整数である。(3)復号パイプラインはビデオカードシェーダの復号プロセスを指示するための処理ユニットであり、すなわち本出願の実施例におけるビデオカードシェーダは復号パイプラインに規定されたプロセスに応じて動作する。コンピュータ装置はさらにレンダリングパイプラインを含むことができ、いわゆるレンダリングパイプラインはレンダリングパイプラインと呼ばれてもよく、ビデオカード内部の処理グラフィックス信号が互いに独立した並列処理ユニットである。コンピュータ装置にはレンダリングパイプラインを含むと、画像処理の技術案により復号していずれかの画像のテクスチャデータを取得した後、さらに該レンダリングパイプラインにより復号されたテクスチャデータに基づいて該いずれかの画像のレンダリング表示を実現することができる。
【0019】
本出願の実施例が提供する画像処理の技術案は、主にコンピュータ装置内のビデオカードシェーダでいずれかの画像の圧縮テクスチャリソースを復号することである。
図1aに示すように、該画像処理の技術案の復号プロセスは概略以下のとおりであり、まず、コンピュータ装置における復号パイプラインを初期化し、シェーダ復号ファイル(shader復号ファイル)をロードすることができ、シェーダ復号ファイルを成功的にロードした後、該シェーダ復号ファイルをコンピュータ装置のビデオカードシェーダに伝送することができる。いずれかの画像の圧縮テクスチャリソースと該圧縮テクスチャリソースの相関復号パラメータを、入力シェーダキャッシュブロックを介してコンピュータ装置内のビデオカードシェーダに入力した後、ビデオカードシェーダはそれぞれ該圧縮テクスチャリソースにおける各圧縮テクスチャブロックに一つの目標ワークグループ(すなわち圧縮テクスチャブロックが割り当てられたワークグループ)を割り当てることができる。
【0020】
そして、各圧縮テクスチャブロックをそれぞれ対応する目標ワークグループに割り当てることができ、各目標ワークグループにより並行して相関復号パラメータ及びシェーダ復号ファイルに基づいて受信された圧縮テクスチャブロックに対して復号処理を行い、それによりいずれかの画像に対する圧縮テクスチャリソースの復号処理を実現し、該いずれかの画像のテクスチャデータを取得する。例えば4×4のblock(圧縮テクスチャブロック)を例とし、「B」で各圧縮テクスチャブロックを示し、
図1bに示すように、圧縮テクスチャリソースにおける圧縮テクスチャブロック11をビデオカードシェーダの目標ワークグループ21に割り当てて復号処理を行うことができ、それにより31で識別された復号データを取得する。圧縮テクスチャリソースにおける圧縮テクスチャブロック12をビデオカードシェーダの目標ワークグループ22に割り当てて復号処理を行うことができ、それにより32で識別された復号データを取得し、このように類推する。いずれかの画像のテクスチャデータを取得した後、ビデオカードシェーダは出力シェーダキャッシュブロックにより該いずれかの画像のテクスチャデータを出力することができる。可能な実施形態において、ビデオカードシェーダで圧縮テクスチャリソースを復号する過程において、一つ或いは複数の圧縮テクスチャブロックの復号に失敗した場合が存在すれば、ビデオカードシェーダは出力シェーダキャッシュブロックにより復号プロセスに係るエラーデータを出力することができ、それにより関連技術者は該エラーデータに基づいて復号失敗の原因をタイムリーに分析する。
【0021】
実践により、本出願の実施例が提供する画像処理の技術案は少なくとも以下の有益な効果を有する。(1)ビデオカードシェーダを導入することで復号プロセス全体を実現することにより、復号プロセス全体が中央処理装置の関与を必要とせず、このように中央処理装置のリソースを効果的に節約することができ、それにより中央処理装置のリソース占有を効果的に減少させ、コンピュータ装置の動作効率を向上させる。(2)ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出す方式により、各圧縮テクスチャブロックの並列復号を実現することができ、それにより復号効率を効果的に向上させる。
【0022】
上記説明に基づいて、本出願の実施例は画像処理方法を提供し、該画像処理方法は上記言及されたコンピュータ装置において実行されてもよい。該コンピュータ装置はレンダリングパイプライン、復号パイプライン及びビデオカードシェーダを含むことができ、かつ該ビデオカードシェーダは復号パイプラインに規定されたプロセスに従って動作する。
図2に示すように、該画像処理方法は以下のS201~S204を含むことができる。
【0023】
S201で、目標画像の目標圧縮テクスチャリソースを取得する。
【0024】
ここで、目標画像は目標ゲームにおける目標ゲーム画面画像、いずれかの映画のビデオ画像、いずれかのユーザの自分撮り画像、いずれかの観光スポットの風景画像等のうちのいずれかの画像であってもよい。目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して目標画像を符号化して得られたものであり、該目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含む。説明すべきものとして、目標画像はテクスチャフォーマットのテクスチャデータを含み、ここでのテクスチャフォーマットは例えばRGBAフォーマットであってもよく、ここで、RGBAにおけるRは赤色チャネルを表し、Gは緑色チャネルを表し、Bは青色チャネルを表し、Aは透明チャネルを表す。圧縮テクスチャフォーマットを採用して目標画像を符号化する過程については、目標画像のテクスチャデータをテクスチャフォーマットから圧縮テクスチャフォーマットに変換する過程と理解することができる。それに応じて、目標圧縮テクスチャリソースを復号する本質については、目標圧縮テクスチャリソースを圧縮テクスチャフォーマットからテクスチャフォーマットに変換する処理と理解することができる。
【0025】
可能な実施形態において、コンピュータ装置のローカル空間に該目標画像の目標圧縮テクスチャリソースが予め記憶されないと、S201の実施形態は以下のとおりであり、該目標圧縮テクスチャリソースが記憶された他の装置にリソース取得要求を送信することにより、他の装置に対して該目標圧縮テクスチャリソースを返信するように要求し、そして、コンピュータ装置は該目標圧縮テクスチャリソースを受信することができる。コンピュータ装置のローカル空間に該目標画像の目標圧縮テクスチャリソースが予め記憶されると、コンピュータ装置は内部のレンダリングパイプラインによりローカル空間から該目標圧縮テクスチャリソースをロードすることにより、目標圧縮テクスチャリソースの取得を実現することができ、すなわち、S201の実施形態は以下のとおりであり、レンダリングパイプラインはコンピュータ装置のローカル空間から、該目標画像の目標圧縮テクスチャリソースをロードする。
【0026】
S202で、ビデオカードシェーダにおいて複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てる。
【0027】
前述説明から分かるように、ビデオカードシェーダにはM個のワークグループを含むことができ、各ワークグループはいずれも復号処理能力を有し、かつ各ワークグループは一つの番号識別を有する。具体的な実現において、複数の圧縮テクスチャブロックをトラバースして現在トラバースされている現在の圧縮テクスチャブロックを決定することができる。ビデオカードシェーダにおけるワークグループの数と圧縮テクスチャブロックの数が同じである可能性があり、異なる可能性もあることを考慮し、かつビデオカードシェーダのワークグループの数が圧縮テクスチャブロックの数より少ない場合、現在の圧縮テクスチャブロックに目標ワークグループを割り当てる時に、ビデオカードシェーダに割り当てられていないワークグループが存在しないことをもたらす可能性がある。これに基づいて、現在トラバースされている現在の圧縮テクスチャブロックに目標ワークグループを合理的に割り当てるために、先にビデオカードシェーダにおけるM個のワークグループのうち割り当てられていない残りのワークグループが存在するか否かを検出することができ、それにより検出結果に基づいて異なる割り当てロジックを採用して現在の圧縮テクスチャブロックに目標ワークグループを割り当て、具体的には以下のとおりである。
【0028】
ビデオカードシェーダにおけるM個のワークグループのち割り当てられない残りのワークグループが存在すれば、残りのワークグループにおいて現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当てることができる。ここで、残りのワークグループの数は一つ又は複数であってもよい。一実施形態において、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして残りのワークグループから一つの残りのワークグループをランダムに選択することができる。他の実施形態において、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして、番号識別が小さい順に、残りのワークグループから番号識別が最も小さい残りのワークグループを選択することができる。他の実施形態において、ビデオカードシェーダにおける各ワークグループの復号能力に差異が存在すれば、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして、さらに残りのワークグループの復号能力に基づいて、残りのワークグループから復号能力が最も高い残りのワークグループを選択し、又は復号能力が能力閾値より大きい残りのワークグループを選択することができる。
【0029】
該M個のワークグループのうちの各ワークグループにいずれも圧縮テクスチャブロックが割り当てられば、M個のワークグループにおいて現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当てることができる。一実施形態において、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして、M個のワークグループから一つのワークグループをランダムに選択することができる。他の実施形態において、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして、各ワークグループに割り当てられた圧縮テクスチャブロックのテクスチャブロックの数に基づいて、M個のワークグループからテクスチャブロックの数が最も少ないワークグループを選択することができる。この実施形態により、各ワークグループのテクスチャブロックの数を効果的に等化し、現在の圧縮テクスチャブロックに対する復号を待つ時間長を減少させ、それにより復号効率を向上させることができる。他の実施形態において、ビデオカードシェーダにおける各ワークグループの復号能力に差異が存在すれば、現在の圧縮テクスチャブロックを復号するための目標ワークグループとして、さらに各ワークグループの復号能力に基づいて、M個のワークグループから復号能力が最も高いワークグループを選択し、又は復号能力が能力閾値より大きいワークグループを選択することができる。
【0030】
説明すべきことは以下のとおりである。(1)上記説明から分かるように、一つの目標ワークグループに一つ又は複数の圧縮テクスチャブロックが割り当てられることができる。ここで、ビデオカードシェーダにおけるワークグループの数(即ちM)が目標圧縮テクスチャリソースにおける圧縮テクスチャブロックの数以上である場合、一つの目標ワークグループに一つの圧縮テクスチャブロックが割り当てられることができる。ビデオカードシェーダにおけるワークグループの数(すなわちM)が目標圧縮テクスチャリソースにおける圧縮テクスチャブロックの数より小さい場合、一部又は全ての目標ワークグループに少なくとも二つの圧縮テクスチャブロックが割り当てられることがある。(2)上記説明から分かるように、本出願の実施例は目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックを順次にトラバースし、それにより各圧縮テクスチャブロックに目標ワークグループを順次に割り当てる。しかし、他の具体的な実現において、バッチ割り当ての方式を採用してもよく、同時に各圧縮テクスチャブロックに目標ワークグループを割り当て、このステップを限定する。
【0031】
例えば、目標圧縮テクスチャリソースにおける圧縮テクスチャブロックの数がNであり、Nが1より大きい整数であるとする。M(ビデオカードシェーダにおけるワークグループの数)がN以上である場合に、ビデオカードシェーダのM個のワークグループから復号用のN個の目標ワークグループをバッチで選択し、そして、一つの目標ワークグループが一つの圧縮テクスチャブロックに対応する原則に従って、N個の目標ワークグループをN個の圧縮テクスチャブロックに割り当てることができる。MがNより小さい場合、M個のワークグループをいずれも目標ワークグループとして、目標圧縮テクスチャリソースからM個の圧縮テクスチャブロックをバッチで選択し、そして、一つの目標ワークグループが一つの圧縮テクスチャブロックに対応する原則に従って、M個の目標ワークグループを選択されたM個の圧縮テクスチャブロックに割り当てることができる。N個の圧縮テクスチャブロックにおいて選択されていない圧縮テクスチャブロックの数(すなわちN~M)がMより小さい場合、M個のワークグループからN~M個の目標ワークグループを選択し、そして、一つの目標ワークグループが一つの圧縮テクスチャブロックに対応する原則に従って、N~M個の目標ワークグループを選択されていないN~M個の圧縮テクスチャブロックに割り当てることができる。N~MがM以上である場合、M個のワークグループをいずれも目標ワークグループとして、選択されていないN~M個の圧縮テクスチャブロックからM個の圧縮テクスチャブロックをバッチで選択し、そして、一つの目標ワークグループが一つの圧縮テクスチャブロックに対応する原則に従って、M個の目標ワークグループを選択されたM個の圧縮テクスチャブロックに割り当てることができる。このように類推して、各圧縮テクスチャブロックにいずれも目標ワークグループが割り当てられるまで停止する。
【0032】
S203で、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てる。
【0033】
S204で、ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得し、目標テクスチャデータは各圧縮テクスチャブロックに対応する復号データを含む。
【0034】
可能な実施形態において、いずれかの目標ワークグループが受信された圧縮テクスチャブロックに対して復号処理を行う実施方式は以下のとおりであり、シェーダ復号ファイルを取得し、さらに目標圧縮テクスチャリソースに関する目標復号パラメータを取得する。ここで、該シェーダ復号ファイルは、異なる圧縮テクスチャフォーマットでの圧縮テクスチャリソースを復号することを実現するための複数のアルゴリズム命令を含むことができ、目標圧縮テクスチャリソースの目標復号パラメータは目標画像の採用する圧縮テクスチャフォーマットを指示するために用いられることができる。そして、目標復号パラメータに基づいてシェーダ復号ファイルから目標圧縮テクスチャリソースを復号するためのアルゴリズム命令を取得し、取得されたアルゴリズム命令を用いて対応する圧縮テクスチャブロックに対して復号処理を行い、該対応する圧縮テクスチャブロックに対応する復号データを取得することができる。
【0035】
例えば、シェーダ復号ファイルには、ASTCフォーマットでの圧縮テクスチャリソースを復号することを実現するための第一アルゴリズム命令と、ETCフォーマットでの圧縮テクスチャリソースを復号することを実現するための第二アルゴリズム命令などとを含むことができる。目標圧縮テクスチャリソースの目標復号パラメータは目標画像の採用する圧縮テクスチャフォーマットがASTCフォーマットであることを指示するために用いられると、該目標復号パラメータに基づいてシェーダファイルから第一アルゴリズム命令を取得し、該第一アルゴリズム命令を用いて対応する圧縮テクスチャブロックに対して復号処理を行うことができる。目標圧縮テクスチャリソースの目標復号パラメータは目標画像の採用する圧縮テクスチャフォーマットがETCフォーマットであることを指示するために用いられると、該目標復号パラメータに基づいてシェーダファイルから第二アルゴリズム命令を取得し、該第二アルゴリズム命令を用いて対応する圧縮テクスチャブロックに対して復号処理を行うことができる。
【0036】
復号処理を便利にするために、上記言及された復号処理の具体的なプロセスを一つの復号パイプラインにおける復号インタフェース(glDispatchCompute)にパッケージすることができ、それによりいずれかの目標ワークグループは該復号インタフェースを直接に呼び出して対応する圧縮テクスチャブロックに対して復号処理を行うことができる。
【0037】
可能な実施形態において、コンピュータ装置は目標テクスチャデータを取得した後、さらに該目標テクスチャデータをブロックチェーンにアップロードすることにより、目標テクスチャデータの改ざんを防止することができる。ここで、ブロックチェーンは複数のブロックで構成され、
図3aに示すように、ジェネシスブロックはブロックヘッド及びブロック本体を含み、ブロックヘッドに入力情報特徴値、バージョン番号、タイムスタンプ及び難易度値が記憶され、ブロック本体に入力情報が記憶される。ジェネシスブロックの次のブロックはジェネシスブロックを親ブロックとし、次のブロックに同様にブロックヘッド及びブロック本体を含み、ブロックヘッドに現在のブロックの入力情報特徴値、親ブロックのブロックヘッド特徴値、バージョン番号、タイムスタンプ及び難易度値が記憶され、このように類推することにより、ブロックチェーンにおける各ブロックに記憶されたブロックデータはいずれも親ブロックに記憶されたブロックデータと関連し、ブロックにおける入力情報の安全性を保証する。これに基づいて、目標テクスチャデータをブロックチェーンにアップロードする具体的な実施形態は以下のとおりである。
【0038】
コンピュータ装置がブロックチェーンネットワーク内に位置する場合、先に目標テクスチャデータを目標ブロックのブロック本体に添加し、ブロック本体内の目標テクスチャデータに対してハッシュ演算を行い、マークルハッシュ値を取得することができる。次に、ランダムアルゴリズムを使用して一つの乱数を生成し、計算されたマークルハッシュ値、乱数、バージョン番号、前のブロックハッシュ値、現在のタイムスタンプ及び現在の難易度値を使用して目標ブロックのブロックヘッドを構成し、
図3bに示すとおりである。ここで、バージョン番号とはブロックチェーンにおける関連ブロックプロトコルのバージョン情報であり、前のブロックハッシュ値とは前のブロックのブロックヘッドの特徴値であり、現在のタイムスタンプとはブロックヘッドを構成する時のシステム時間であり、現在の難易度値とは計算の難易度値であり、該難易度値は一定の時間帯内に一定値であり、かつ一定の時間帯を超えた後に再び決定される。そして、特徴値アルゴリズム(例えばSHA256アルゴリズム)を採用してブロックヘッドに含まれるコンテンツに対して一回又は複数回のハッシュ演算を行って、目標ブロックのブロックヘッドの特徴値を得ることができ、ここでのハッシュ演算の回数は計算の難易度に基づいて決定されることができ、計算の難易度が大きいほど、ハッシュ演算の回数が多い。上記ステップに基づいて目標ブロックを取得した後、該目標ブロックをブロックチェーンネットワーク内の各コンセンサスノードにブロードキャストしてコンセンサス処理を行うことができ、コンセンサス処理を行った後、目標ブロックをブロックチェーンに追加する。理解されるように、コンピュータ装置がブロックチェーンネットワーク内に位置しない場合、目標テクスチャデータをブロックチェーンネットワークのうちのいずれかのコンセンサスノードに送信し、該いずれかのコンセンサスノードにより上記ステップを実行することにより、該目標テクスチャデータをブロックチェーンに記憶することができる。
【0039】
可能な実施形態において、コンピュータ装置はさらにクラウド技術を採用して目標テクスチャデータに対してクラウドストレージ処理を行うことができる。ここで、クラウド技術(Cloud technology)はワイドエリアネットワーク又はローカルエリアネットワークにハードウェア、ソフトウェア、ネットワーク等の一連の資源を統一して、データの計算、記憶、処理及び共有を実現するカストディアン技術である。クラウド技術はクラウドコンピューティング商業モードの応用するネットワーク技術、情報技術、統合技術、管理プラットフォーム技術、応用技術等の総称に基づいて、リソースプールを構成することができ、需要に応じて応用され、柔軟で便利である。クラウドコンピューティング技術は重要な支持となる。それに応じて、クラウドストレージ(cloud storage)はクラウドコンピューティング概念に延在して開発された新たな概念であり、分散型クラウドストレージシステム(以下でストレージシステムと略称する)とはクラスタアプリケーション、メッシュ技術及び分散ストレージファイルシステム等の機能により、ネットワーク内の大量の様々な異なるタイプの記憶デバイス(記憶デバイスをストレージノードとも呼ばれる)をアプリケーションソフトウェア又はアプリケーションインタフェースにより統合して協働し、共通で外部にデータ記憶及びサービスアクセス機能を提供する一つの記憶システムである。
【0040】
本出願の実施例はビデオカードシェーダを導入することにより、ビデオカードシェーダに複数の互いに独立したワークグループを予め配置し、圧縮テクスチャフォーマットを採用して目標画像を符号化して得られた目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含み、目標画像の目標圧縮テクスチャリソースを取得した後、ビデオカードシェーダにおいて各圧縮テクスチャブロックのそれぞれに復号用の一つの目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てることができる。そして、ビデオカードシェーダにおける各目標ワークグループを並列に呼び出す方式により、圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことができる。このような処理方式により、目標圧縮テクスチャリソースの復号処理を実現するだけでなく、各圧縮テクスチャブロックの並列復号を実現することができ、それにより復号効率を効果的に向上させることができる。また、ビデオカードシェーダにより復号プロセス全体を実現することにより、復号プロセス全体が中央処理装置の関与を必要とせず、このように中央処理装置のリソースを効果的に節約することができ、それにより中央処理装置のリソース占有率を効果的に減少させ、コンピュータ装置の動作効率を向上させる。
【0041】
図4に示すように、本出願の実施例が提供する他の画像処理方法のフローチャートであり、該画像処理方法は上記言及されたコンピュータ装置において実行されてもよい。該コンピュータ装置はレンダリングパイプライン、復号パイプライン及びビデオカードシェーダを含むことができ、かつ該ビデオカードシェーダは復号パイプラインに規定されたプロセスに従って動作する。
図4に示すように、該画像処理方法は以下のS401~S407を含むことができる。
【0042】
S401で、レンダリングパイプラインがコンピュータ装置のローカル空間から目標画像の目標圧縮テクスチャリソースをロードする。
【0043】
可能な実施形態において、該レンダリングパイプラインはテクスチャリソースロードインタフェース(例えばglTexCompressedImage2D(圧縮テクスチャリソースをロードするインタフェース)を呼び出すことにより、コンピュータ装置のローカル空間から、目標画像の目標圧縮テクスチャリソースをロードすることができる。
【0044】
S402で、レンダリングパイプラインが目標圧縮テクスチャリソースを復号パイプラインに割り当てる。
【0045】
一実施形態において、レンダリングパイプラインは目標圧縮テクスチャリソースに成功的にロードされた後、直接的に目標圧縮テクスチャリソースを復号パイプラインに割り当てることができる。他の実施形態において、コンピュータ装置にビデオカード復号モード(又はビデオカード復号機能と呼ばれる)を設置することができ、いわゆるビデオカード復号モードとはビデオカードシェーダが号処理を行うモードである。ビデオカード復号モードがオン状態にある時に、このときのビデオカードシェーダが復号処理をサポートすることを示し、ビデオカード復号モードがオフ状態にある時に、このときのビデオカードシェーダが復号処理をサポートしないことを示し、この時にビデオカード駆動中央処理装置(ビデオカード駆動CPUと略称する)が復号することができる。このように、該ビデオカード復号モードを設置することにより、ユーザが自身のニーズに応じて該ビデオカード復号モードをオン又はオフにすることを実現することができ、それによりビデオカードシェーダにより復号処理を行う必要があるか否かを柔軟に選択することができる。これに基づいて、コンピュータ装置がビデオカード復号モードを有する場合、レンダリングパイプラインはS402を実行する前に、先にビデオカード復号モードのモード状態を検出することができ、該モード状態はモードオン状態又はモードオフ状態を含む。モード状態がモードオン状態であれば、レンダリングパイプラインが目標圧縮テクスチャリソースを復号パイプラインに割り当てるステップを実行し、すなわちS402を実行する。モード状態がモードオフ状態であれば、レンダリングパイプラインがビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得し、すなわちこの場合に、ビデオカード駆動中央処理装置により目標テクスチャデータを取得した後、レンダリングパイプラインはS407を直接的に実行することができ、すなわちこの場合にS402~S406を実行する必要がない。
【0046】
S403で、復号パイプラインが目標圧縮テクスチャリソースを成功的に受信した後、復号パイプラインでビデオカードシェーダに復号通知を送信することにより、ビデオカードシェーダにS404の実行を通知する。
【0047】
S404で、ビデオカードシェーダでは複数の圧縮テクスチャブロックにおける各圧縮テクスチャブロックに復号用の目標ワークグループを割り当てる。
【0048】
理解されるように、一つの目標ワークグループに一つ又は複数の圧縮テクスチャブロックが割り当てられることができる。
【0049】
S405で、ビデオカードシェーダにより各圧縮テクスチャブロックを該当する目標ワークグループに割り当てる。
【0050】
S406で、ビデオカードシェーダによりビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、対応する圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得し、該目標テクスチャデータは各圧縮テクスチャブロックに対応する復号データを含む。
【0051】
S407で、目標テクスチャデータに基づいて、レンダリングパイプラインが画像レンダリングを行い、目標画像を取得する。
【0052】
前述説明から分かるように、目標テクスチャデータはビデオカードシェーダによりS404~S406で復号されたものであってもよく、レンダリングパイプラインによりビデオカード駆動中央処理装置を呼び出して復号処理されたものであってもよい。目標テクスチャデータはレンダリングパイプラインによりビデオカード駆動中央処理装置を呼び出して復号されたものである場合、S407の一実施形態は以下のとおりであり、レンダリングパイプラインはレンダリングインタフェース(例えばglDraw(画像レンダリングのためのインタフェース)を直接的に呼び出して目標テクスチャデータに基づいて画像レンダリングを行い、目標画像を取得する。目標テクスチャデータはビデオカードシェーダにより復号処理されたものである場合、S407の具体的な実施形態は以下の説明を参照することができる。
【0053】
可能な実施形態において、レンダリングパイプラインは物理的な第一テクスチャビデオメモリ空間を有し、復号パイプラインは物理的な第二テクスチャビデオメモリ空間を有することができる。ここで、第一テクスチャビデオメモリ空間とはレンダリングパイプラインが処理しようとするデータ、又はレンダリングパイプラインにより処理されたデータを記憶するためのビデオメモリ空間であり、第二テクスチャビデオメモリ空間とは復号パイプラインが処理しようとするデータ、又は復号パイプラインにより処理されたデータを記憶するためのビデオメモリ空間であり、いわゆるビデオメモリ空間とはビデオカードに位置する記憶空間である。この場合、ビデオカードシェーダにおけるいずれかの目標ワークグループは受信された圧縮テクスチャブロックに対して復号処理を行った後、復号された復号データを該第二テクスチャビデオメモリ空間にキャッシュすることができ、各圧縮テクスチャブロックに対応する復号データの全てが第二テクスチャビデオメモリ空間にキャッシュされた後、すなわち目標画像の目標テクスチャデータが第二テクスチャビデオメモリ空間にキャッシュされた後、復号パイプラインは中央処理装置(central processing unit、CPU)で該目標画像の目標テクスチャデータを第二テクスチャビデオメモリ空間から第一テクスチャビデオメモリ空間にコピーすることができる。又は、目標画像の目標テクスチャデータが第二テクスチャビデオメモリ空間にキャッシュされた後、復号パイプラインはレンダリングパイプラインに通知することができ、レンダリングパイプラインがCPUで目標画像の目標テクスチャデータを第二テクスチャビデオメモリ空間から第一テクスチャビデオメモリ空間にコピーする。この場合、S407の実施形態は以下のとおりであり、レンダリングパイプラインは第一テクスチャビデオメモリ空間において目標テクスチャデータに基づいて画像レンダリングを行い、目標画像を得る。
【0054】
実践により以下を示し、CPUにより目標テクスチャデータをコピーする場合、1~5msの性能損失を引き起こす可能性があり、復号パイプラインの優位性を十分に発揮し、性能損失を減少させるために、本出願の実施例は復号パイプライン及びレンダリングパイプラインに対して、物理空間が同じであるが仮想空間が異なる共用方式を提出することにより、レンダリングパイプラインは同一の物理的テクスチャ記憶空間を圧縮テクスチャリソース及び他のデータの記憶のために用いられるとともに、復号パイプラインは該テクスチャ記憶空間をビデオカードシェーダによる復号処理により得られた目標テクスチャデータのキャッシュのために用いられ、このようにしてCPUが目標テクスチャデータをコピーすることによる性能損失を回避することができる。これに基づいて、本出願の実施例は他の実現方式を提出し、具体的には以下の説明を参照する。
【0055】
他の実現形態において、レンダリングパイプラインは仮想的な第一ビデオカードアドレス空間を有することができ、復号パイプラインは仮想的な第二ビデオカードアドレス空間を有することができ、ここで、第一ビデオカードアドレス空間及び第二ビデオカードアドレス空間は、同一のテクスチャ記憶空間とマッピング関係を有し、該テクスチャ記憶空間は本質的に物理的記憶空間(すなわち実際に存在する記憶空間)である。この場合、ビデオカードシェーダにおけるいずれかの目標ワークグループは対応する圧縮テクスチャブロックに対して復号処理を行った後、第二ビデオカードアドレス空間とテクスチャ記憶空間との間のマッピング関係に基づいて、いずれかの目標ワークグループによる復号された復号データをテクスチャ記憶空間にキャッシュすることができる。この場合、S407の実施形態は以下のとおりであり、各圧縮テクスチャブロックに対応する復号データがいずれもテクスチャ記憶空間に記憶された後、レンダリングパイプラインは第一ビデオカードアドレス空間とテクスチャ記憶空間との間のマッピング関係に基づいて、テクスチャ記憶空間において目標テクスチャデータに基づいて画像レンダリングを行い、目標画像を取得する。好ましくは、レンダリングパイプラインは画像レンダリングをタイムリーに行うことができるために、ビデオカードシェーダは各圧縮テクスチャブロックに対応する復号データをいずれもテクスチャ記憶空間に記憶した後、復号パイプラインはレンダリングパイプラインに復号終了通知を送信することができ、それによりレンダリングパイプラインにテクスチャ記憶空間においてテクスチャデータに基づいて画像レンダリングを行うように通知する。
【0056】
ここで、第一ビデオカードアドレス空間及び第二ビデオカードアドレス空間を同一の物理的テクスチャ記憶空間にマッピングする具体的な方式は以下のとおりであり、レンダリングパイプラインはコンピュータ装置のローカル空間において、目標画像にテクスチャ記憶空間を割り当て、レンダリングパイプラインは第一ビデオカードアドレス空間をテクスチャ記憶空間にマッピングし、テクスチャ記憶空間の空間識別(例えばテクスチャ記憶空間の空間アドレス、空間シリアルナンバー等)を復号パイプラインに伝送し、復号パイプラインは該空間識別に基づいて、第二ビデオカードアドレス空間をテクスチャ記憶空間にマッピングする。説明すべきものとして、本出願の実施例がレンダリングパイプラインと復号パイプラインに対して空間マッピング操作を実行する時点は限定されない。例えば、レンダリングパイプラインは目標画像の目標圧縮テクスチャリソースをロードする過程において、テクスチャ記憶空間の割り当て及び空間マッピング操作を実行してもよく、目標テクスチャリソースをロードする前又は後に、テクスチャ記憶空間の割り当て及びマッピング操作を実行してもよい。また例えば、復号パイプラインはレンダリングパイプラインから伝送された空間識別を受信した後、直ちに空間マッピング操作を実行してもよく、レンダリングパイプラインによる割り当てられた目標圧縮テクスチャリソースを受信した後、空間マッピング操作を実行してもよく、さらに、空間識別及び目標圧縮テクスチャリソースはレンダリングパイプラインにより同時に復号パイプラインに送信されてもよく、それぞれ復号パイプラインに送信されてもよく、これは限定されない。
【0057】
以下に
図5に示す空間マッピングの概略図を参照し、第一ビデオカードアドレス空間及び第二ビデオカードアドレス空間を同一の物理的テクスチャ記憶空間にマッピングする具体的な方式をさらに概略的に説明する。
図5に示すように、レンダリングパイプラインはglTexCompressedImage2D(圧縮テクスチャリソースをロードするインタフェース)により目標画像の目標圧縮テクスチャリソースをロードする過程において、テクスチャ記憶空間(Physical Pages)を割り当て、該テクスチャ記憶空間とレンダリングパイプラインの第一ビデオカードアドレス空間をマッピングし、さらに復号パイプラインにテクスチャ記憶空間の空間識別を送信することにより、復号パイプラインをトリガして目標圧縮テクスチャリソースを該テクスチャ記憶空間に復号する。復号パイプラインはレンダリングパイプラインにより送信された空間識別を受信し、astc_cs_decode(復号準備インタフェース)により空間識別で指示されたテクスチャ記憶空間と復号パイプラインの第二ビデオカードアドレス空間をマッピングすることができる。
【0058】
可能な実施形態において、目標圧縮テクスチャリソースにおける全部又は一部の圧縮テクスチャブロックがビデオカードシェーダによる復号に失敗した場合、ビデオカード駆動中央処理装置(即ちビデオカード駆動CPU)を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを得ることができる。
【0059】
本出願の実施例はビデオカードシェーダにより復号プロセス全体を実現することにより、復号プロセス全体が中央処理装置の関与を必要とせず、このように中央処理装置のリソースを効果的に節約することができ、それにより中央処理装置のリソース占有率を効果的に減少させ、コンピュータ装置の動作効率を向上させる。さらに、ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出す方式により、対応する圧縮テクスチャブロックに対して復号処理を行うことにより、復号効率を効果的に向上させることができる。また、復号パイプライン及びレンダリングパイプラインにより同一の物理的テクスチャ記憶空間を共用する方式により、CPUがデータをコピーすることによる性能損失を効果的に減少し、かつ画像レンダリングの即時性、及び画像処理プロセス全体の処理効率を向上させることができる。
【0060】
上記
図4に示す方法実施例において、目標画像が目標ゲームにおける目標ゲーム画面画像である場合、目標ゲームは通常にゲームリソースパケットを有し、該ゲームリソースパケットは目標ゲームを動作させる過程に必要な様々なデータリソースを記憶するために用いられ、したがって、ゲーム開発者は圧縮テクスチャフォーマットを採用して目標ゲームにおける各フレームのゲーム画面画像を符号化し、各フレームのゲーム画面画像の圧縮テクスチャリソースを取得した後、目標ゲームにおける一つのフレーム又は複数のフレームのゲーム画面の圧縮テクスチャリソースに対してオフライン復号を予め行うことができ、復号された各テクスチャデータ及び対応するゲーム画面画像の画像識別を採用して目標ゲームのオフライン復号データセットを構築し、該オフライン復号データセットを目標ゲームのゲームリソースパケットに追加する。
【0061】
この場合、レンダリングパイプラインはS402を実行する前に、先に目標ゲームのオフライン復号データセットを取得することができる。可能な実現方式において、目標ゲームのゲームリソースパケットから該目標ゲームのオフライン復号データセットを取得することができ、該オフライン復号データセットには目標ゲームにおける一つのフレーム又は複数のフレームのゲーム画面画像の画像識別、及び各画像識別に関連付けられたテクスチャデータを含み、いずれか1つの画像識別に関連付けられたテクスチャデータは、いずれか1つの画像識別に指示されたゲーム画面画像の圧縮テクスチャリソースをオフラインで復号して取得されたものである。そして、レンダリングパイプラインは目標画像の画像識別を利用してオフライン復号データセットにおける画像識別に対して識別ヒット処理を行い、それにより該オフライン復号データセットが目標ゲーム画面画像の目標テクスチャデータを含むか否かを検出する。成功的にヒットしないと、レンダリングパイプラインによりS402を実行する。成功的にヒットすると、レンダリングパイプラインによりオフライン復号データセットからヒットされた画像識別に関連付けられたテクスチャデータをロードし、ロードされたテクスチャデータを目標画像の目標テクスチャデータとして、このようにして目標テクスチャデータの取得時間を効果的に短縮し、復号効率を向上させることができる。
【0062】
可能な実施形態において、上記S402の関連説明から分かるように、レンダリングパイプラインはS402を実行する前に、先にビデオカード復号モードのモード状態を検出するステップを実行することができる。この場合、レンダリングパイプラインはビデオカード復号モードのモード状態を検出する前又は後に、識別ヒット処理の操作を実行することができる。ビデオカード復号モードのモード状態を検出する前に、識別ヒット処理を実行する操作を例として、レンダリングパイプラインの処理ロジックは以下のとおりであり、レンダリングパイプラインは目標画像の画像識別を利用してオフライン復号データセットにおける画像識別に対して識別ヒット処理を行って、成功的にヒットしないと、レンダリングパイプラインはビデオカード復号モードのモード状態を検出するステップを実行し、成功的にヒットすると、レンダリングパイプラインはオフライン復号データセットからヒットされた画像識別に関連けられたテクスチャデータをロードし、ロードされたテクスチャデータを目標画像の目標テクスチャデータとする。
【0063】
前述説明から分かるように、画像処理過程において、レンダリングパイプラインがビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行う状況が存在する可能性がある。例えば、レンダリングパイプラインはビデオカード復号モードのモード状態がオフ状態であることを検出した後、ビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことができる。また例えば、目標圧縮テクスチャリソースにおける全部又は一部の圧縮テクスチャブロックがビデオカードシェーダによる復号に失敗した場合、レンダリングパイプラインはビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことができる。さらに、ビデオカード駆動中央処理装置は目標圧縮テクスチャリソースを復号する復号能力を有する可能性があり、該復号能力を有しない可能性もあることを考慮し、ビデオカード駆動中央処理装置が該復号能力を有しない場合、ビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースに対して復号処理を行うと、目標圧縮テクスチャリソースの復号に失敗することをもたらす。したがって、ビデオカード駆動中央処理装置が該復号能力を有しない場合、レンダリングパイプラインは目標ゲームのゲームエンジン中央処理装置(即ちゲームエンジンCPU)を直接的に呼び出して目標圧縮テクスチャリソースに対して復号することができる。このような処理方式により、目標圧縮テクスチャリソースが成功的に復号されることを保証することにより、目標画像が成功的にレンダリング表示されることを保証することができ、一方、ビデオカード駆動中央処理装置が無駄な復号処理を実行することによる処理リソースを浪費するという問題を回避することができる。
【0064】
これに基づいて、レンダリングパイプラインはビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行う前に、さらにビデオカード駆動中央処理装置(即ちビデオカード駆動CPU)の目標圧縮テクスチャリソースに対する復号能力を検出することができる。ビデオカード駆動中央処理装置が該復号能力を有すると検出すると、レンダリングパイプラインによりビデオカード駆動中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うステップを実行する。ビデオカード駆動中央処理装置が復号能力を有しないと検出すると、レンダリングパイプラインにより目標ゲームのゲームエンジン中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得する。説明すべきものとして、本出願の実施例はレンダリングパイプラインがビデオカード駆動中央処理装置の目標圧縮テクスチャリソースに対する復号能力の検出を実行する具体的な時間点を限定しない。例えば他の実施例において、レンダリングパイプラインは目標ゲームのオフライン復号データセットを取得する前に、復号能力検出のステップを実行してもよい。この場合、レンダリングパイプラインの処理ロジックは以下のとおりであり、ビデオカード駆動中央処理装置(即ちビデオカード駆動CPU)の目標圧縮テクスチャリソースに対する復号能力を検出し、ビデオカード駆動中央処理装置が該復号能力を有すると検出すると、レンダリングパイプラインは目標ゲームのオフライン復号データセットを取得するステップを実行し、ビデオカード駆動中央処理装置が復号能力を有しないと検出すると、レンダリングパイプラインは目標ゲームのゲームエンジン中央処理装置を呼び出して目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得する。
【0065】
説明すべきものとして、上記言及された目標ゲームは通常ゲーム又はクラウドゲームであってもよい。いわゆる通常ゲームとは、プレイヤのユーザが使用する端末機器内にインストールされたゲームクライアントで直接動作されるゲームである。いわゆるクラウドゲームはゲームオンデマンド(gaming on demand)と呼ばれてもよく、クラウドコンピューティングを基礎とするゲーム方式であり、ここでのクラウドコンピューティングはインターネットに基づくコンピューティング方式である。クラウドゲームシーンでは、ゲームはプレイヤのユーザのゲームクライアントではなく、クラウドゲームサーバで動作される。クラウドゲームサーバはゲームシーンに係るゲーム画面をビデオストリームに符号化し、ネットワークを介してプレイヤのユーザのゲームクライアントに伝送して再生する。ここで、目標ゲームが通常ゲームである場合、上記言及されたコンピュータ装置はプレイヤのユーザが使用する端末装置であり、目標ゲームがクラウドゲームである場合、上記言及されたコンピュータ装置はクラウドゲームを動作させるクラウドゲームサーバである。
【0066】
図6aに示すように、クラウドゲームサーバは機器ハードウェア層、仮想化層(Hypervisor)及び一つ又は複数のコンテナ等を含むことができる。ここで、機器ハードウェア層はCPU(中央処理装置)、ビデオカード、ネットワーク通信モジュール及び記憶ためのローカル空間等を含むことができるが、それらに限定されなく、ビデオカードにはビデオカードシェーダ、復号パイプライン及びレンダリングパイプライン等を含むことができる。仮想化層は主にソフトウェアの方式で、一組の物理ホスト環境と完全に同様な仮想環境を実現するために用いられ、クラウドゲームサーバは該仮想化層により一つ又は複数のコンテナを展開して動作させることができ、いわゆるコンテナとはオペレーティングシステムレベルの仮想化の一つのタイプであり、それはオペレーティングシステムをベアラするために用いられる。各コンテナは一つ又は複数のゲームクライアントに接続され、かつ各コンテナは一つ又は複数のクラウドゲームを動作させるために用いられ、各コンテナはいずれかのクラウドゲームを動作させる過程において、いずれかのクラウドゲームのゲーム画面を接続されたゲームクライアントに送信して表示することができる。
【0067】
上記説明に基づいて、本出願の実施例はさらに
図6bに示す画像処理方法を提出する。本出願の実施例において、主に目標ゲームをクラウドゲームとし、すなわちコンピュータ装置がクラウドゲームサーバであることを例として説明し、すなわち
図6bに示す画像処理方法はクラウドゲームサーバで実行されることができ、具体的にはクラウドゲームサーバにおけるビデオカードで実行されることができる。
図6bに示すように、該画像処理方法の概略プロセスは以下のとおりである。
【0068】
まず、復号パイプラインを初期化(作成)することができ、例えば、目標ゲームの初期化過程において、独立スレッドを作成し、該独立スレッドにより復号パイプラインを初期化することができる。次に、シェーダ復号ファイルをロードすることができ、さらにビデオカードシェーダは復号マネージャを作成し、該復号マネージャは目標画像の目標圧縮テクスチャリソースを待って受信するために用いられる。
【0069】
レンダリングパイプラインは目標圧縮テクスチャリソースにロードされた後、ビデオカード駆動CPUが復号能力を有するか否かを検出することができる。有しない場合、レンダリングパイプラインはゲームエンジンCPUを呼び出して目標圧縮テクスチャリソースに対して復号処理を行い、それにより目標画像の目標テクスチャデータを取得する。有する場合、レンダリングパイプラインはさらに目標画像の画像識別がオフライン復号データセットにヒットするか否かを検出することにより、該オフライン復号データセットが目標ゲーム画面画像の目標テクスチャデータを含むか否かを検出することができる。成功的にヒットすると、レンダリングパイプラインはオフライン復号データセットから目標画像の目標テクスチャーデータをロードし、成功的にヒットしないと、レンダリングパイプラインはビデオカード復号モードのモード状態を検出することにより、ビデオカードシェーダが復号処理をサポートするか否かを検出することができる。ビデオカードシェーダが復号処理をサポートしないと検出すると、レンダリングパイプラインはビデオカード駆動CPUを呼び出して目標圧縮テクスチャリソースに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得し、ビデオカードシェーダが復号処理をサポートしないと検出すると、レンダリングパイプラインは復号パイプラインに目標画像の目標圧縮テクスチャリソースを割り当てる。
【0070】
それに対応して、復号パイプラインはレンダリングパイプラインで割り当てられた目標圧縮テクスチャリソースを受信した後、該目標圧縮テクスチャリソースを復号マネージャによりビデオカードシェーダに送信し、ビデオカードシェーダに該目標圧縮テクスチャリソースに対して復号処理を行うように通知することができる。例えば、ビデオカードシェーダは目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックにそれぞれ復号用の目標ワークグループを割り当て、さらに各圧縮テクスチャブロックを該当する目標ワークグループに割り当てることができ、そして、ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、受信された圧縮テクスチャブロックに対して復号処理を行うことにより、目標画像の目標テクスチャデータを取得する。復号パイプラインはビデオカードシェーダが成功的に復号したか否かをリアルタイムに又は周期的に検出することができ、復号が成功すると、レンダリングパイプラインに目標画像の目標テクスチャデータに基づいて画像レンダリングを行うように通知し、復号が失敗すると、レンダリングパイプラインにビデオカード駆動CPUにより目標圧縮テクスチャリソースに対して復号処理を行うように通知し、復号して目標テクスチャデータを取得した後、目標画像の目標テクスチャデータに基づいて画像レンダリングを行う。
【0071】
上記
図2、
図4及び
図6bに示す方法実施例の関連説明内容に対して、以下の二点を説明する必要がある。
【0072】
1)本出願の実施例はSDK(Software Development Kit、ソフトウェア開発ツールパケット)に個別にパッケージされる方式を採用することができ、上記
図2、
図4及び
図6bに示す方法実施例において言及されたビデオカードシェーダで実行される復号プロセスに対してパッケージ処理を行う。つまり、ビデオカードシェーダで実行される復号プロセスは一つのソフトウェアツールパケット(cs decoder libraryと名付けられる)に個別にパッケージされ、それによりいずれかの画像の圧縮テクスチャリソースを復号する必要がある場合、該ソフトウェアツールパケットを呼び出して復号処理を実行する。ここで、該ソフトウェアツールコーティングの呼び出しの原理概略図は
図7に示すとおりであり、目標ゲームをロードした後、まずsys vulkan library(システムvulkanレンダリングインタフェース)を呼び出し、次に該sys vulkan libraryによりGPU vulkan library(GPU vulkanレンダリングインタフェース)を呼び出し、そして、GPU vulkan libraryによりcs decoder libraryを呼び出すことにより、復号処理を実現することができる。又は、まずsys EGL/GELS libraries(システムEGL/GELSレンダリングインタフェース)を呼び出し、次に該sys EGL/GELS librariesによりGPU EGL/GELS libraries(GPU EGL/GELSレンダリングインタフェース)を呼び出し、そして、GPU EGL/GELS librariesによりcs decoder libraryを呼び出すことにより、復号処理を実現することもできる。
【0073】
ここで、上記言及されたvulkanはクロスプラットフォームの2Dと3D描画アプリケーションインタフェースであり、GELSはOpenGL ES(OpenGL for Embedded Systems)の略称であり、OpenGL(2Dと3Dベクトルグラフィックスをレンダリングするためのクロス言語、クロスプラットフォームのアプリケーションプログラミングインタフェース)の三次元グラフィックスAPIのサブセットであり、EGLはOpenGL ESレンダリングインタフェースとローカルウィンドウシステム(native platform window system)との間の中間インタフェース層である。SDKを個別にパッケージする方式により、以下の有益な効果を有することができる。(1)ビデオカード駆動を過剰に修正することによる潜在的なレンダリングリスクを導入することを回避する。(2)レンダリングパイプラインと独立し、ゲームのレンダリング状態機器(ステートマシン)への破壊を回避する。(3)ビデオカードシェーダでビデオカード駆動中のopenGLESレンダリングインタフェース及びvulkanレンダリングインタフェースをサポートし、重複構築を回避する。
【0074】
2)以上から分かるように、目標画像が目標ゲームにおける目標ゲーム画面画像である場合、本出願の実施例は目標画像の目標圧縮リソースに対して、以下のいくつかの復号方式を提供することができ、(1)ゲームエンジンCPUで復号し、(2)ビデオカード駆動CPUで復号し、(3)ビデオカードシェーダで復号し、(4)オフライン復号データセットで復号し、ここで、復号方式(1)及び復号方式(2)の本質については、いずれもCPUで復号する。本出願の実施例はASTCフォーマットでの異なるサイズの圧縮テクスチャリソースを採用し、CPUによる復号、オフライン復号データセットによる復号およびビデオカードシェーダによる復号の三種類の復号方式に必要な復号時間長をテストし、テスト結果は下記表1に示すとおりである。
【0075】
【0076】
ここで、表1における「ms」はミリ秒を示し、表1から分かるように、オフライン復号データセットによる復号する復号方式に必要な復号時間が最も少なく、その復号性能が最適であり、ビデオカードシェーダによる復号する復号方式に必要な復号時間はCPUによる復号する復号方式に必要な復号時間より遥かに小さく、即ちビデオカードシェーダによる復号の復号方式の復号性能はCPUによる復号する復号方式の復号性能より優れている。
【0077】
本出願の実施例はクラウドゲームサーバにおけるビデオカードの強力浮動小数点演算及び並列計算能力を利用することにより、目標ゲームにおける圧縮テクスチャフォーマットでの目標圧縮テクスチャリソースをリアルタイムに迅速に復号することを実現し、それにより目標画像の迅速なレンダリング表示を実現することができる。このようにしてゲームのスムーズ性を効果的に向上させ、CPUリソースの占有率を減少させ、かつCPUの復号が遅すぎることによるゲームラグ及び低フレームレート問題、及びクラウドゲームサーバは単一パスのゲームの占有したCPUリソースが多すぎることによるゲーム並行回路数が制限された運営コストの問題を解決する。また、クラウドゲームサーバで復号プロセス全体を実行することにより、復号プロセス全体は端末タイプ及びオペレーティングシステムに制限されず、完全に有効化することができ、かつ、本出願の実施例はビデオカードシェーダにより目標圧縮テクスチャリソースに対して復号処理を行うことをサポートするため、クラウドゲームサーバの復号条件に合致するオフライン復号データセットを作成ようにゲーム開発者がクラウドゲームの実現ロジックに対して修正及び適合を特別に行う必要がなく、高い適用性及び互換性を有し、同時に、各ゲーム画面画像の圧縮テクスチャリソースをオフラインで復号することによるクラウドゲームのゲームリソースパッケージのストレージメモリの占有が大きすぎるという問題を解決することができる。
【0078】
上記画像処理方法の実施例の説明に基づいて、本出願の実施例はさらに画像処理装置を開示し、前記画像処理装置はコンピュータ装置に動作された一つのコンピュータプログラム(プログラムコードを含む)であってもよい。この画像処理装置は、
図2、
図4または
図6bに示す方法を実行することができる。
図8に示すように、前記画像処理装置は、目標画像の目標圧縮テクスチャリソースを取得し、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むために用いられる取得ユニット801と、ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てるために用いられる処理ユニット802とを動作させることができ、前記処理ユニット802はさらに、前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するために用いられ、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含む。
【0079】
一実施形態において、ワークグループとは前記ビデオカードシェーダにおける復号処理能力を有するサブ処理ユニットであり、各ワークグループの間は互いに独立し、かついずれか1つの目標ワークグループは前記目標圧縮テクスチャリソースを復号するためのアルゴリズム命令を採用して、受信された圧縮テクスチャブロックに対して復号処理が行われたものである。
【0080】
一実施形態において、前記ビデオカードシェーダはコンピュータ装置に設置され、前記コンピュータ装置はさらにレンダリングパイプライン及び復号パイプラインを含み、前記ビデオカードシェーダは前記復号パイプラインに規定されたプロセスに従って動作し、それに対応して、処理ユニット802はさらに、前記目標テクスチャデータに基づいて、前記レンダリングパイプラインにより画像レンダリングを行い、前記目標画像を取得するために用いられる。
【0081】
他の実施形態において、前記レンダリングパイプラインは仮想的な第一ビデオカードアドレス空間を有し、前記復号パイプラインは仮想的な第二ビデオカードアドレス空間を有し、前記第一ビデオカードアドレス空間及び前記第二ビデオカードアドレス空間は、同一のテクスチャ記憶空間とマッピング関係を有する。
【0082】
他の実施形態において、処理ユニット802はさらに、前記ビデオカードシェーダにおけるいずれか1つの目標ワークグループにより受信された圧縮テクスチャブロックに対して復号処理を行った後、前記第二ビデオカードアドレス空間と前記テクスチャ記憶空間との間のマッピング関係に基づいて、前記いずれか1つの目標ワークグループを復号して得られた復号データを前記テクスチャ記憶空間にキャッシュするために用いられる。
【0083】
それに対応して、処理ユニット802は前記目標テクスチャデータに基づいて、レンダリングパイプラインが画像レンダリングを行い、前記目標画像を取得するために用いられる場合、具体的には、各圧縮テクスチャブロックに対応する復号データの全てが前記テクスチャ記憶空間に記憶された後、前記第一ビデオカードアドレス空間と前記テクスチャ記憶空間との間のマッピング関係に基づいて、前記レンダリングパイプラインで前記テクスチャ記憶空間において前記目標テクスチャデータに基づいて画像レンダリングを行い、前記目標画像を取得するために用いられる。
【0084】
他の実施形態において、処理ユニット802はさらに、前記レンダリングパイプラインにより前記コンピュータ装置のローカル空間において前記目標画像に前記テクスチャ記憶空間を割り当てることと、前記レンダリングパイプラインにより前記第一ビデオカードアドレス空間を前記テクスチャ記憶空間にマッピングし、前記テクスチャ記憶空間の空間識別を前記復号パイプラインに伝送することと、前記空間識別に基づいて、前記復号パイプラインにより前記第二ビデオカードアドレス空間を前記テクスチャ記憶空間にマッピングすることとに用いられる。
【0085】
他の実施形態において、取得ユニット801は目標画像の目標圧縮テクスチャリソースを取得するために用いられる場合、具体的には、前記レンダリングパイプラインで前記コンピュータ装置のローカル空間から前記目標画像の目標圧縮テクスチャリソースをロードするために用いられ、それに対応して、処理ユニット802は、さらに、前記レンダリングパイプラインが前記目標圧縮テクスチャリソースを前記復号パイプラインに割り当てることと、前記復号パイプラインが前記目標圧縮テクスチャリソースを成功的に受信した後、前記復号パイプラインにより前記ビデオカードシェーダに復号通知を送信することにより、前記ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるステップを実行するように前記ビデオカードシェーダに通知することとに用いられる。
【0086】
他の実施形態において、前記コンピュータ装置はビデオカード復号モードを有し、前記ビデオカード復号モードとは前記ビデオカードシェーダで復号処理を行うモードであり、それに対応して、処理ユニット802はさらに、前記レンダリングパイプラインが前記ビデオカード復号モードのモード状態を検出し、前記モード状態はモードオン状態又はモードオフ状態を含み、前記モード状態が前記モードオン状態であれば、前記レンダリングパイプラインが前記目標圧縮テクスチャリソースを前記復号パイプラインに割り当てるステップを実行し、前記モード状態が前記モードオフ状態であれば、前記レンダリングパイプラインがビデオカード駆動中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを得るために用いられる。
【0087】
他の実施形態において、前記目標画像は目標ゲームにおける目標ゲーム画面画像であり、それに対応して、処理ユニット802はさらに、前記レンダリングパイプラインにより前記目標ゲームのオフライン復号データセットを取得し、前記オフライン復号データセットには前記目標ゲームにおける一つのフレーム又は複数のフレームのゲーム画面画像の画像識別、及び各画像識別に関連付けられたテクスチャデータを含み、いずれか1つの画像識別に関連付けられたテクスチャデータは、前記いずれかの画像識別に指示されたゲーム画面画像の圧縮テクスチャリソースをオフラインで復号して取得されたものであり、前記目標画像の画像識別に基づいて、前記レンダリングパイプラインが前記オフライン復号データセットにおける画像識別に対して識別ヒット処理を行って、成功的にヒットしないと、前記レンダリングパイプラインが前記ビデオカード復号モードのモード状態を検出するステップを実行し、成功的にヒットすると、前記レンダリングパイプラインが前記オフライン復号データセットからヒットされた画像識別に関連付けられたテクスチャデータをロードし、ロードされたテクスチャデータを前記目標画像の目標テクスチャデータとするために用いられる。
【0088】
一実施形態において、前記ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるステップは、前記オフライン復号データセットに前記目標画像の画像識別が存在しない場合に実行されるものであり、前記オフライン復号データセットに前記目標画像の画像識別が存在する場合、前記目標画像の目標テクスチャデータは前記オフライン復号データセットからロードされたものである。
【0089】
他の実施形態において、処理ユニット802はさらに、前記レンダリングパイプラインが前記ビデオカード駆動中央処理装置の前記目標圧縮テクスチャリソースに対する復号能力を検出し、前記ビデオカード駆動中央処理装置が前記復号能力を有すると検出すると、前記レンダリングパイプラインで前記目標ゲームのオフライン復号データセットを取得するステップを実行し、前記ビデオカード駆動中央処理装置が前記復号能力を有しないと検出すると、前記レンダリングパイプラインにより前記目標ゲームのゲームエンジン中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するために用いられる。
【0090】
他の実施形態において、処理ユニット802はさらに、前記目標圧縮テクスチャリソースにおける全部又は一部の圧縮テクスチャブロックが前記ビデオカードシェーダによる復号に失敗すると、ビデオカード駆動中央処理装置を呼び出して前記目標圧縮テクスチャリソースにおける各圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得するために用いられる。
【0091】
他の実施形態において、前記ビデオカードシェーダはM個のワークグループを含み、Mは1より大きい整数であり、それに対応して、処理ユニット802はビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当てるために用いられる場合、具体的には、前記複数の圧縮テクスチャブロックをトラバースして現在トラバースされている現在の圧縮テクスチャブロックを決定し、前記ビデオカードシェーダにおけるM個のワークグループのうち割り当てられていない残りのワークグループが存在すると、前記残りのワークグループにおいて前記現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当て、前記M個のワークグループのうち各ワークグループの全ては圧縮テクスチャブロックが割り当てられると、前記M個のワークグループにおいて前記現在の圧縮テクスチャブロックに復号用の一つの目標ワークグループを割り当てるために用いられる。
【0092】
他の実施形態において、前記ビデオカードシェーダにより実行される復号プロセスは一つのソフトウェアツールパケットに個別にパッケージされることにより、いずれかの画像の圧縮テクスチャリソースを復号する必要がある場合、前記ソフトウェアツールパケットを呼び出すことで復号処理を実行する。
【0093】
本出願の他の実施例によれば、
図8に示すような画像処理装置における各ユニットはそれぞれ又は全部が一つ又はいくつかの他のユニットに統合して構成されてもよく、又はそのうちのある(いくつかの)ユニットはさらに機能のより小さい複数のユニットに分割して構成されてもよく、これは同様の操作を実現することができ、本出願の実施例の技術的効果の実現に影響を与えない。上記ユニットはロジック機能に基づいて分割され、実際の応用において、一つのユニットの機能は複数のユニットによって実現されてもよく、又は複数のユニットの機能は一つのユニットによって実現されてもよい。本出願の他の実施例において、画像処理装置が他のユニットを含むことができることに基づいて、実際の応用において、これらの機能は他のユニットにより協働して実現されてもよく、かつ複数のユニットにより協働して実現されてもよい。
【0094】
本出願の他の実施例によれば、中央処理ユニット(CPU)、ランダムアクセス記憶媒体(RAM)、読み取り専用記憶媒体(ROM)等の処理素子と記憶素子とを含む例えばコンピュータの汎用コンピューティングデバイス上で
図2に示すような対応する方法に係る各ステップを実行することができるコンピュータプログラム(プログラムコードを含む)を動作させることにより、
図8に示すような画像処理装置デバイスを構築し、本出願の実施例の画像処理方法を実現することができる。前記コンピュータプログラムは例えばコンピュータ読み取り可能な記録媒体に記載されてもよく、コンピュータ読み取り可能な記録媒体により上記コンピューティングデバイスにロードされ、かつその中で動作される。
【0095】
本出願の実施例はビデオカードシェーダを導入し、ビデオカードシェーダに複数の互いに独立したワークグループを予め配置し、圧縮テクスチャフォーマットを採用して目標画像を符号化して得られた目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含み、目標画像の目標圧縮テクスチャリソースを取得した後、ビデオカードシェーダにおいて各圧縮テクスチャブロックのそれぞれに復号用の一つの目標ワークグループを割り当て、各圧縮テクスチャブロックを該当する目標ワークグループに割り当てることができる。そして、ビデオカードシェーダにおける各目標ワークグループを並列に呼び出す方式により、圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことができる。このような処理方式により、目標圧縮テクスチャリソースの復号処理を実現するだけでなく、各圧縮テクスチャブロックの並列復号を実現することができ、それにより復号効率を効果的に向上させることができる。また、ビデオカードシェーダにより復号プロセス全体を実現することにより、復号プロセス全体が中央処理装置の関与を必要とせず、このように中央処理装置のリソースを効果的に節約することができ、それにより中央処理装置のリソース占有率を効果的に減少させ、コンピュータ装置の動作効率を向上させる。
【0096】
上記方法実施例及び装置実施例の説明に基づいて、本出願の実施例はさらにコンピュータ装置を提供する。
図9に示すように、該コンピュータ装置は少なくともビデオカード901、入力インタフェース902、出力インタフェース903及びコンピュータ記憶媒体904を含み、かつ該コンピュータ装置内のビデオカード901、入力インタフェース902、出力インタフェース903及びコンピュータ記憶媒体904はバス又は他の方式により接続されることができる。ここで、ビデオカード901はさらにグラフィックプロセッサ9011、ビデオカードシェーダ9012、復号パイプライン9013及びレンダリングパイプライン9014を含むことができる。コンピュータ記憶媒体904はコンピュータ装置のメモリに記憶されてもよく、前記コンピュータ記憶媒体904はコンピュータプログラムを記憶するために用いられ、前記コンピュータプログラムはプログラム命令を含み、前記ビデオカード901は前記コンピュータ記憶媒体904に記憶されたプログラム命令を実行するために用いられる。さらに、コンピュータ装置はさらに中央処理装置905(Central Processing Unit、CPU)を含み、該中央処理装置905はコンピュータ装置の計算コア及び制御コアであり、それは一つ又は複数の命令を実現することに適し、具体的には一つ又は複数の命令をロードし実行することにより対応する方法のプロセス又は対応する機能を実現することに適する。
【0097】
一実施例において、本出願の実施例に記載のビデオカード901は一連の画像処理を行うことに用いられ、具体的には、目標画像の目標圧縮テクスチャリソースを取得し、前記目標圧縮テクスチャリソースは圧縮テクスチャフォーマットを採用して前記目標画像を符号化して得られたものであり、前記目標圧縮テクスチャリソースは複数の圧縮テクスチャブロックを含むことと、ビデオカードシェーダにおいて前記複数の圧縮テクスチャブロックに復号用の複数の目標ワークグループを割り当て、さらに各圧縮テクスチャブロックを該当する目標ワークグループに割り当てることと、前記ビデオカードシェーダにおける各目標ワークグループを並列的に呼び出し、前記圧縮テクスチャフォーマットに基づいて受信された圧縮テクスチャブロックに対して復号処理を行うことにより、前記目標画像の目標テクスチャデータを取得し、前記目標テクスチャデータは前記各圧縮テクスチャブロックに対応する復号データを含むこととを含む。
【0098】
本出願の実施例はさらにコンピュータ記憶媒体(Memory)を提供し、前記コンピュータ記憶媒体はコンピュータ装置における記憶装置であり、プログラム及びデータを記憶するために用いられる。理解されるように、ここでのコンピュータ記憶媒体はコンピュータ装置における内蔵記憶媒体を含むことができ、もちろんコンピュータ装置にサポートされる拡張記憶媒体を含むこともできる。コンピュータ記憶媒体は記憶空間を提供し、該記憶空間はコンピュータ装置のオペレーティングシステムを記憶する。かつ、該記憶空間にさらにビデオカード901によりロードされて実行されることに適する一つ又は複数の命令が記憶され、これらの命令は一つ又は一つ以上のコンピュータプログラム(プログラムコードを含む)であってもよい。説明すべきものとして、ここでのコンピュータ記憶媒体は高速RAMメモリであってもよく、不揮発性メモリ(non-volatile memory)であってもよく、例えば少なくとも一つの磁気ディスクメモリであってもよく、好ましくは、前記プロセッサから離れた少なくとも一つのコンピュータ記憶媒体であってもよい。
【0099】
一実施例では、ビデオカード901によりコンピュータ記憶媒体に記憶された一つ又は複数の命令をロードして実行することができ、それにより上記
図2、
図4又は
図6bに示すような画像処理方法の実施例における方法の対応するステップを実現する。具体的な実現において、コンピュータ記憶媒体における一つ又は複数の命令はビデオカード901によりロードされ、かつ本願の実施例の提供する画像処理方法を実行される。
【0100】
説明すべきものとして、本出願の一態様によれば、さらにコンピュータプログラム製品又はコンピュータプログラムを提供し、該コンピュータプログラム製品又はコンピュータプログラムはコンピュータ命令を含み、該コンピュータ命令はコンピュータ可読記憶媒体に記憶される。コンピュータ装置のプロセッサはコンピュータ可読記憶媒体から該コンピュータ命令を読み取り、プロセッサは該コンピュータ命令を実行することにより、該コンピュータ装置は上記
図2、
図4又は
図6bに示すような画像処理方法の実施例の様々な選択可能な方式から提供された方法を実行する。
【0101】
かつ、理解すべきものとして、上記の開示は、本出願の好ましい実施例にすぎず、もちろん、本出願の特許請求の範囲を限定するために使用することはできなく、したがって、本出願の特許請求の範囲に従ってなされる均等な変形は依然として本願の範囲内に属する。