JP2020507146A - 映像表示方法、装置、電子機器及びコンピュータプログラム製品 - Google Patents

映像表示方法、装置、電子機器及びコンピュータプログラム製品 Download PDF

Info

Publication number
JP2020507146A
JP2020507146A JP2019532731A JP2019532731A JP2020507146A JP 2020507146 A JP2020507146 A JP 2020507146A JP 2019532731 A JP2019532731 A JP 2019532731A JP 2019532731 A JP2019532731 A JP 2019532731A JP 2020507146 A JP2020507146 A JP 2020507146A
Authority
JP
Japan
Prior art keywords
operating system
guest operating
pcm sub
host operating
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019532731A
Other languages
English (en)
Other versions
JP7058658B2 (ja
Inventor
孔祥暁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Shenzhen Robotics Systems Co Ltd
Original Assignee
Cloudminds Shenzhen Robotics Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloudminds Shenzhen Robotics Systems Co Ltd filed Critical Cloudminds Shenzhen Robotics Systems Co Ltd
Publication of JP2020507146A publication Critical patent/JP2020507146A/ja
Application granted granted Critical
Publication of JP7058658B2 publication Critical patent/JP7058658B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本願は、映像表示方法、装置、電子機器及びコンピュータプログラム製品を提供し、前記方法は、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムがホストオペレーティングシステムにPCMサブ領域を申請し、そして前記PCMサブ領域の記述子をハードウェアコーデック設計に割り当て、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示する。前記方法は、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムがPCMサブ領域をホストオペレーティングシステムに申請し、且つ前記PCMサブ領域の記述子をハードウェアコーデック設計に割り当て、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示することにより、共有メモリによる映像表示を実現する。【選択図】なし

Description

本発明は、仮想化技術分野に関し、特に映像表示方法、装置、電子機器及びコンピュータプログラム製品に関する。
Gralloc(Graphic Memory Allocator)は、アンドロイド(Android)表示システム用にグーグル(Google)によって開発された共有メモリ管理モジュールである。前記共有メモリとは、物理アドレスが連続し、DMA(Direct Memory Access ダイレクトメモリアクセス)機器の直接アクセスをサポートするメモリ領域であり、GPU(Graphics Processing Unit グラフィックプロセッシングユニット)、VPU(Visual Processing Unit ビジュアルプロセッシングユニット)、カメラ(Camera)などのハードウェアデバイスが直接アクセスすることができ、さらに、OpenGL(Open Graphics Library オープングラフィックスライブラリ)としてのテクスチャ(texture)レンダリングもサポートする。
Grallocにより異なるモジュール間でメモリを共有することができ、且つ前記共有メモリは、CPU(Central Processing Unit セントラルプロセッシングユニット)のコピーと処理を介さず、DMA機器が直接アクセスすることをサポートするため、CPUの負荷率を大幅に低下させ、CPUの使用率と並列処理能力を大幅に向上させる。
仮想化技術の急速な発展に伴い、仮想化技術分野において、このような共有メモリにより映像を表示することは、解決すべき課題になっている。
本願の実施例は、主に共有メモリにより映像を表示するための映像表示方法、装置、電子機器及びコンピュータプログラム製品を提供する。
第1の態様では、本願の実施例に係る映像表示方法は、
ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てるステップと、
ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するステップと、
ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するための前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却するステップと、
ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信するステップと、
ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示するステップとを含む。
第2の態様では、本願の実施例に係る映像表示装置は、
ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てるための第1の割当モジュールと、
ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するための申請モジュールと、
ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するための前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却するための第2の割当モジュールと、
ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信するための処理モジュールと、
ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示するための表示モジュールとを含む。
第3の態様では、本願の実施例に係る電子機器は、
メモリと、1つ又は複数のプロセッサとを含み、メモリは通信バスを介してプロセッサに接続され、プロセッサはメモリ内の命令を実行するように構成され、記憶媒体には、第1の態様の方法における各ステップを実行するための命令が記憶されている。
第3の態様では、本願の実施例に係る電子機器と組み合わせて使用するコンピュータプログラム製品は、コンピュータ可読記憶媒体に組み込まれた、第1の態様の方法における各ステップを電子機器に実行させるための命令を含むコンピュータプログラムを含む。
本願の実施例によれば、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、対応するPCMサブ領域をホストオペレーティングシステムに申請し、ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当てて、前記PCMサブ領域の記述子を返却し、ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信し、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示することにより、共有メモリにより映像表示を実現する。
以下、図面を参照しながら、本願の具体的な実施例について説明する。
本願の実施例における映像表示方法を適用するシステムの構造を示す模式図である。 本願の実施例における映像表示方法のプロセスを示す模式図である。 本願の実施例における別の映像表示方法のプロセスを示す模式図である。 本願の実施例における映像表示装置の構造を示す模式図である。 本願の実施例における電子機器の構造を示す模式図である。
本願の技術的解決手段と利点をより明確にするため、以下、添付図面を参照しながら、本願の実施例についてさらに詳しく説明するが、当然ながら、ここで説明される実施例は、本願の一部の実施例にすぎず、全ての実施例を網羅したものではない。また、矛盾がない限り、本願の実施例及び実施例の特徴を互いに結合することができる。
発明者が発明の過程で気付いたことは以下のとおりである。
Grallocにより、1つのメモリに異なるモジュールが同時にアクセスすることができるだけでなく、CPUのコピーを介さず、DMAデバイスの前記メモリへの直接アクセスもサポートされるため、CPUの負荷率を大幅に低下させ、CPUの使用率と並列処理能力を大幅に向上させる。しかし、現在のところ、仮想オペレーティングシステムに対して、Granclocを仮想化するための現実的な解決策がなく、共有メモリにより映像を表示することが可能な現実的な解決策はさらにない。
上記に鑑み、本願は、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、対応するPCMサブ領域をホストオペレーティングシステムに申請し、ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当てて、前記PCMサブ領域の記述子を返却し、ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信し、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示する、映像表示方法を提供する。
本願にて提供される映像表示方法は、図1に示されるシステムに適用され、前記システムは、複数のゲストオペレーティングシステム101と1つのホストオペレーティングシステム102とを含む。各ゲストオペレーティングシステム101は、いずれも1つのvGraloccとフロントエンドドライバ1011とを含み、ホストオペレーティングシステム102は、バックエンドドライバ1021と、1つのGraloc1022と、1つのGralocサーバ1023とを含む。
図1に示されるシステムのいずれかのゲストオペレーティングシステム101が全てのゲストオペレーティングシステム101とホストオペレーティングシステム102が共有するPCM(Physical Contiguous Memory 連続物理メモリ)にアクセスする場合、図2に示すように、以下のプロセスに従って実施することができる。
201.ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てる。
202.ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、新しく作成されたウィンドウに対応するPCMサブ領域をホストオペレーティングシステムに申請する。
ここで、ハードウェアコーデック設計は、映像コーデック及び/又はカメラを含む。
具体的には、ゲストオペレーティングシステムで、ホストオペレーティングシステムへ共有メモリの申請を送信する。例えば、いずれかのゲストオペレーティングシステム101は、それに含まれているフロントエンドドライバ1011とバックエンドドライバ1021との間の通信により、Gralocサーバ1023にPCMサブ領域を申請する。
203.ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却する。
ここで、記述子は、対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するために用いられる。
具体的には、ホストオペレーティングシステムで、Grallocにより、ゲストオペレーティングシステムに1つの共有メモリサブ領域を割り当てる。例えば、ホストオペレーティングシステム102がGraloc1022を呼び出して、いずれかのゲストオペレーティングシステム1021にPCMサブ領域を割り当てるようにGralocサーバ1023に要求する。ホストオペレーティングシステム102は、フロントエンドドライバ1011とバックエンドドライバ1021との間の通信により、前記ゲストオペレーティングシステムにPCMサブ領域に対応する記述子を返却する。
ステップ201からステップ203を経て、いずれかのゲストオペレーティングシステム101にPCMサブ領域を割り当てると、Gralloc1022の仮想化が実現される。
204.ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信する。
本ステップを具体的に実施する際に、さらに、ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、ホストオペレーティングシステムにメモリ記述子を伝達することができる。
また、本ステップを具体的に実施する際に、さらに、ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、PCMサブ領域内のデータをテクスチャに変換することができる。
205.ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示する。
本ステップを具体的に実施する際に、ゲストオペレーティングシステムから伝達されたメモリ記述子に基づいてPCMサブ領域を決定し、そして決定されたPCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることができる。
本ステップを具体的に実施する際に、さらに、PCMサブ領域内のテクスチャに基づいて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることができる。
例えば、図3に示されるCamera Preview(カメラプレビュー)シナリオにおいて、いずれかのゲストオペレーティングシステム101はGuest(ゲスト)であり、ホストオペレーティングシステム102はHost(ホスト)である。Guestは、GuestのフロントエンドドライバとHostのバックエンドドライバとの間の通信により、HostのGrallocサーバにPCMサブ領域を要求する。Hostは、PCMサブ領域に対応する記述子をGuestに送信する。Guestは記述子をCameraに送信し、Cameraは記述子に基づいてプレビューデータをPCMサブ領域に書き込む。Guestは記述子をDisplay(ディスプレイ)に送信し、Displayは記述子に基づいてPCMサブ領域からCameraによって書き込まれたデータを読み取り、そして前記データをレンダリングして表示する。
本実施例に係る映像表示方法は、さらに、YUV映像フォーマットに対するサポートも追加でき、それにより映像再生、カメラプレビューなどのアプリケーションシナリオをサポートすることもできる。各Guest側の表示フレームレートと切り替え速度を明らかに向上させることができ、映像再生やカメラプレビューなどのアプリケーションシナリオに対するサポートも製品のマルチメディア機能を大幅に向上させ、ユーザはより良好なインタラクティブな体験ができる。
例えば、映像表示のプロセスは、
1)Guest側が映像画面を表示するためのWindowを申請し、それに応じてPCMサブ領域を申請し、そして前記PCMサブ領域の記述子をGuest側に返却し、
2)Guest側が前記PCMサブ領域の記述子をハードウェアデコーダに送信し、ハードウェアデコーダは前記PCMサブ領域のアドレスを見つけてDMAを介してデコードされたデータをPCMサブ領域(プロセス全体にわたって、CPUを介する必要がなく、大量のCPUリソースを節約する)に直接書き込み、1つのフレームを書き込んでからOpenGL ESの拡張テクスチャインタフェースを用いてPCMサブ領域内のデータをTextureに直接変換し、
3)マルチウィンドウを重ねてレンダリングして表示するとき、Host側は、各Windowの映像に対応する各フレームデータ全てをGuest側に対応するNative Windowに重ねてレンダリングし、ある1つのNative Windowが最前面に止められるとき、Host側の表示システムは前記Native Windowを表示し、
ここまですると、1回の映像表示が完了する。
ここから分かるように、本実施例に係る映像表示方法において、物理アドレスが連続するメモリへのサポートと共有を実現したため、CPUによるデータ移行の面倒を省き、データのコピー速度が上がり、まだ、YUVデータに対する直接レンダリングをサポートすることにより、フォーマット変換とコピーのオーバーヘッドがなくなり、映像再生の表示効果も大幅に向上する。
また、Guest側の表示システムにYUVフォーマットに対するレンダリングへのサポートを追加するとともに、物理メモリのデータをテクスチャとして直接レンダリングして表示することをサポートして、不必要なレンダリングの回数を減らすことができ、それにより表示効率を向上させることができる。
その有益な効果は、以下のとおりである
本願の実施例によれば、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、対応するPCMサブ領域をホストオペレーティングシステムに申請し、ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当てて、前記PCMサブ領域の記述子を返却し、ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信し、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示することにより、共有メモリにより映像表示を実現する。
同じ発明構想に基づき、本実施例は映像表示装置を提供し、前記映像表示装置の問題を解決する原理は図2に示される映像表示方法と類似するため、ここでは重複な説明を省略し、前記映像表示装置の実施方法は、図2に示される映像表示方法の実施方法を参照してください。
図4に示すように、前記映像表示装置は、
ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てるための第1の割当モジュール401と、
ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するための申請モジュール402と、
ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するための前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却するための第2の割当モジュール403と、
ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信するための処理モジュール404と、
ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示するための表示モジュール405とを含む。
必要に応じて、申請モジュール402は、
ゲストオペレーティングシステムで、ホストオペレーティングシステムへ共有メモリの申請を送信するために用いられ、
第2の割当モジュール403は、ホストオペレーティングシステムで、共有メモリ管理モジュールGrallocによりゲストオペレーティングシステムにPCMサブ領域を割り当てるために用いられる。
必要に応じて、前記装置は、さらに、
ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、メモリ記述子をホストオペレーティングシステムに伝達するための伝達モジュールと、
ゲストオペレーティングシステムから伝達されたメモリ記述子に基づいてPCMサブ領域を決定し、そして決定されたPCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするための表示モジュール405とを含む。
必要に応じて、前記装置は、さらに、
ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、PCMサブ領域内のデータをテクスチャに変換するための変換モジュールと、
PCMサブ領域内のテクスチャに基づいて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするための表示モジュール405とを含む。
必要に応じて、ハードウェアコーデック設計は、映像コーデック及び/又はカメラを含む。
その有益な効果は、以下のとおりである。
本願の実施例によれば、ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当て、ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、対応するPCMサブ領域をホストオペレーティングシステムに申請し、ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当てて、前記PCMサブ領域の記述子を返却し、ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信し、ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示することにより、共有メモリにより映像表示を実現する。
他の一形態では、本願の実施例は、電子機器をさらに提供し、図5に示すように、前記電子機器は、
メモリ501と、1つ又は複数のプロセッサ502とを含み、メモリは通信バスを介してプロセッサに接続され、プロセッサはメモリ内の命令を実行するように構成され、前記記憶媒体には、上記のいずれか1項に記載の映像表示方法における各ステップを実行するための命令が記憶されている。
他の一形態では、本願の実施例は、電子機器と組み合わせて使用するコンピュータプログラム製品を提供し、前記コンピュータプログラム製品は、コンピュータ可読記憶媒体に組み込まれた、上記のいずれか1項に記載の映像表示方法における各ステップを電子機器に実行させるための命令を含むコンピュータプログラムを含む。
当業者であれば、本願の実施形態は、方法、システム、又はコンピュータプログラム製品として提供できるということが理解できるだろう。従って、本願は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態、又はソフトウェアとハードウェアとを組み合わせた実施形態の形を用いることができる。また、本願は、コンピュータ使用可能なプログラムコードを含む1つ又は複数のコンピュータ使用可能な記憶媒体(ディスク記憶装置、CD−ROM、光記憶装置などを含むが、これらに限定されるものではない)に具現化されるコンピュータプログラム製品の形を用いるものである。
本願は、本願の実施形態に係る方法、機器(システム)、コンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明する。コンピュータプログラム命令により、フローチャート及び/又はブロック図における各々プロセス及び/又はブロック、及びフローチャート及び/又はブロック図におけるプロセス及び/又はブロックの組み合わせが実現できることが理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又は他のプログラマブルデータ処理機器のプロセッサに記憶されて1つの機器になり、コンピュータ又は他のプログラマブルデータ処理機器のプロセッサにより実行される命令でフローチャートの1つ又は複数のプロセス及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現するための装置が作られる。
また、コンピュータ又は他のプログラマブルデータ処理機器を特定の方法で動作するように導くことができるコンピュータ可読メモリに、これらのコンピュータプログラム命令を記憶することもでき、それにより前記コンピュータ可読メモリに記憶された命令で命令装置を含む製品が作られ、前記命令装置は、フローチャートの1つ又は複数のプロセス及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実施する。
また、コンピュータ又は他のプログラム可能なデータ処理装置に、これらのコンピュータプログラム命令をロードして、コンピュータ又は他のプログラマブルデータ処理機器上で一連の操作ステップを実行することでコンピュータにより実施できる処理を生成し、それによりコンピュータ又は他のプログラマブルデータ処理機器で実行される命令により、フローチャートの1つ又は複数のプロセス及び/又はブロック図の1つ又は複数のブロックにおいて指定される機能を実現するためのステップが提供される。
本願の好適な実施形態を説明したが、当業者が基本的な発明概念を知っている限り、これらの実施形態に対してさらなる変更及び修正を行えることは明らかである。従って、添付の特許請求の範囲は、好適な実施形態及び本願の範囲に含まれるすべての変更及び修正を含むと解釈されることを意図している。

Claims (12)

  1. ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てるステップと、
    ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するステップと、
    ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するための前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却するステップと、
    ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信するステップと、
    ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示するステップとを含む、
    ことを特徴とする映像表示方法。
  2. ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するステップは、
    ゲストオペレーティングシステムで、ホストオペレーティングシステムへ共有メモリの申請を送信することを含み、
    ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当てるステップは、
    ホストオペレーティングシステムで、共有メモリ管理モジュールGrallocによりゲストオペレーティングシステムにPCMサブ領域を割り当てることを含む、ことを特徴とする請求項1に記載の映像表示方法。
  3. さらに、ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、メモリ記述子をホストオペレーティングシステムに伝達することを含み、
    ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするステップは、
    ゲストオペレーティングシステムから伝達されたメモリ記述子に基づいてPCMサブ領域を決定し、そして決定されたPCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることを含む、ことを特徴とする請求項1に記載の映像表示方法。
  4. さらに、ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、PCMサブ領域内のデータをテクスチャに変換することを含み、
    ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするステップは、
    PCMサブ領域内のテクスチャに基づいて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングすることを含む、ことを特徴とする請求項1に記載の映像表示方法。
  5. ハードウェアコーデック設計は、映像コーデック及び/又はカメラを含むことを特徴とする請求項1に記載の映像表示方法。
  6. ホストオペレーティングシステムで、各ゲストオペレーティングシステムに1つのネイティブウィンドウを割り当てるための第1の割当モジュールと、
    ゲストオペレーティングシステムで、ハードウェアコーデック設計に共有メモリが必要である場合、ホストオペレーティングシステムに新しく作成されたウィンドウに対応する連続物理メモリPCMサブ領域を申請するための申請モジュールと、
    ホストオペレーティングシステムで、ゲストオペレーティングシステムにPCMサブ領域を割り当て、そして対応するハードウェアコーデック設計に表示データをPCMサブ領域に書き込むように指示するための前記PCMサブ領域の記述子をゲストオペレーティングシステムに返却するための第2の割当モジュールと、
    ゲストオペレーティングシステムで、対応するハードウェアコーデック設計に前記PCMサブ領域の記述子を割り当て、ハードウェアコーデック設計から送信された表示要求が検出されると、表示要求をホストオペレーティングシステムに送信するための処理モジュールと、
    ホストオペレーティングシステムで、PCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングし、そして前記ネイティブウィンドウを表示するための表示モジュールとを含む、
    ことを特徴とする映像表示装置。
  7. 申請モジュールは、ゲストオペレーティングシステムで、ホストオペレーティングシステムへ共有メモリの申請を送信するために用いられ、
    第2の割当モジュールは、ホストオペレーティングシステムで、共有メモリ管理モジュールGrallocによりゲストオペレーティングシステムにPCMサブ領域を割り当てるために用いられる、ことを特徴とする請求項6に記載の装置。
  8. さらに、
    ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、メモリ記述子をホストオペレーティングシステムに伝達するための伝達モジュールと、
    ゲストオペレーティングシステムから伝達されたメモリ記述子に基づいてPCMサブ領域を決定し、そして決定されたPCMサブ領域内のデータに基づいてゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするための表示モジュールとを含む、ことを特徴とする請求項6に記載の装置。
  9. さらに、
    ゲストオペレーティングシステムで、ハードウェアコーデック設計から送信された表示要求が検出されると、PCMサブ領域内のデータをテクスチャに変換するための変換モジュールと、
    PCMサブ領域内のテクスチャに基づいて、ゲストオペレーティングシステムに対応するネイティブウィンドウをレンダリングするための表示モジュールとを含む、ことを特徴とする請求項6に記載の装置。
  10. ハードウェアコーデック設計は、映像コーデック及び/又はカメラを含むことを特徴とする請求項6に記載の装置。
  11. メモリと、1つ又は複数のプロセッサとを含み、メモリは通信バスを介してプロセッサに接続され、プロセッサはメモリ内の命令を実行するように構成され、記憶媒体には、請求項1から5のいずれか1項に記載の方法における各ステップを実行するための命令が記憶されていることを特徴とする電子機器。
  12. コンピュータ可読記憶媒体に組み込まれた、請求項1から5のいずれか1項に記載の方法における各ステップを電子機器に実行させるための命令を含むコンピュータプログラムを含む、電子機器と組み合わせて使用するコンピュータプログラム製品。
JP2019532731A 2016-12-27 2016-12-27 映像表示方法、装置、電子機器及びコンピュータプログラム製品 Active JP7058658B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/112497 WO2018119712A1 (zh) 2016-12-27 2016-12-27 视频显示方法、装置、电子设备和计算机程序产品

Publications (2)

Publication Number Publication Date
JP2020507146A true JP2020507146A (ja) 2020-03-05
JP7058658B2 JP7058658B2 (ja) 2022-04-22

Family

ID=58952962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019532731A Active JP7058658B2 (ja) 2016-12-27 2016-12-27 映像表示方法、装置、電子機器及びコンピュータプログラム製品

Country Status (4)

Country Link
US (1) US10929079B2 (ja)
JP (1) JP7058658B2 (ja)
CN (1) CN106796535B (ja)
WO (1) WO2018119712A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976686B (zh) * 2017-12-28 2023-03-14 浙江宇视科技有限公司 分布式显示系统及方法
CN108881916A (zh) * 2018-06-21 2018-11-23 深圳市斯迈龙科技有限公司 远程桌面的视频优化处理方法及装置
CN114567784B (zh) * 2022-04-24 2022-08-16 银河麒麟软件(长沙)有限公司 一种用于飞腾显卡的vpu视频解码输出方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190281A (ja) * 2004-12-30 2006-07-20 Microsoft Corp グラフィックサブシステムを仮想化するシステムおよび方法
JP2008527508A (ja) * 2004-12-29 2008-07-24 インテル・コーポレーション 仮想化グラフィックスアドレスのワンステップアドレス変換
JP2009145932A (ja) * 2007-12-11 2009-07-02 Toshiba Corp 画像情報の更新を検出するプログラム、方法および画像処理装置
US20120278803A1 (en) * 2011-04-28 2012-11-01 Microsoft Corporation Hardware Assisted Inter Hypervisor Partition Data Transfers
JP2016059053A (ja) * 2015-11-12 2016-04-21 インテル・コーポレーション 非圧縮ビデオ相互接続で伝送される画像データの知覚的な損失のない圧縮
JP2016212874A (ja) * 2015-05-08 2016-12-15 飛捜股▲ふん▼有限公司 アプリケーションプログラムとバーチャルマシンとの間のコミュニケーションのシステムと方法
JP2016220208A (ja) * 2015-05-20 2016-12-22 株式会社アクセル 静止画情報処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070052715A1 (en) * 2005-09-07 2007-03-08 Konstantin Levit-Gurevich Device, system and method of graphics processing
US7926067B2 (en) * 2006-11-28 2011-04-12 Broadcom Corporation Method and system for protocol offload in paravirtualized systems
CN101477510B (zh) 2008-01-02 2011-07-27 联想(北京)有限公司 在多操作系统中共享显示卡的方法和计算机系统
CN101794237B (zh) * 2009-02-02 2014-12-31 联想(北京)有限公司 一种实现通用显示的计算机和方法
US9104544B1 (en) * 2010-05-28 2015-08-11 Bromium, Inc. Mitigating eviction by maintaining mapping tables
US9372737B2 (en) * 2012-02-08 2016-06-21 Vmware, Inc. Video stream management for remote graphical user interfaces
US20150193904A1 (en) * 2012-10-24 2015-07-09 OpenMobile World Wide, Inc. Graphics acceleration for applications executing on mobile devices with multi-operating system environment
US9342859B2 (en) * 2013-10-22 2016-05-17 American Megatrends, Inc. GPU based parallel image processing at thin client
CN105183551B (zh) * 2015-09-10 2019-12-10 电子科技大学 基于Linux容器技术的多Android系统之间切换方法
CN105427236A (zh) * 2015-12-18 2016-03-23 魅族科技(中国)有限公司 一种图像渲染方法及装置
KR102507114B1 (ko) * 2016-06-08 2023-03-07 삼성전자주식회사 복수의 운영체제들의 화면을 통합하여 표시하는 방법 및 그 전자 장치
US10109099B2 (en) * 2016-09-29 2018-10-23 Intel Corporation Method and apparatus for efficient use of graphics processing resources in a virtualized execution enviornment
US10771566B2 (en) * 2016-10-13 2020-09-08 Sierraware, Llc Device and system for cloud based mobile application virtualization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008527508A (ja) * 2004-12-29 2008-07-24 インテル・コーポレーション 仮想化グラフィックスアドレスのワンステップアドレス変換
JP2006190281A (ja) * 2004-12-30 2006-07-20 Microsoft Corp グラフィックサブシステムを仮想化するシステムおよび方法
JP2009145932A (ja) * 2007-12-11 2009-07-02 Toshiba Corp 画像情報の更新を検出するプログラム、方法および画像処理装置
US20120278803A1 (en) * 2011-04-28 2012-11-01 Microsoft Corporation Hardware Assisted Inter Hypervisor Partition Data Transfers
JP2016212874A (ja) * 2015-05-08 2016-12-15 飛捜股▲ふん▼有限公司 アプリケーションプログラムとバーチャルマシンとの間のコミュニケーションのシステムと方法
JP2016220208A (ja) * 2015-05-20 2016-12-22 株式会社アクセル 静止画情報処理方法
JP2016059053A (ja) * 2015-11-12 2016-04-21 インテル・コーポレーション 非圧縮ビデオ相互接続で伝送される画像データの知覚的な損失のない圧縮

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宮内 大 他: "仮想計算機上での|/○デバイス仮想化方式", 第75回(平成25年)全国大会講演論文集(1), JPN6021050484, 6 March 2013 (2013-03-06), pages 1 - 81, ISSN: 0004667024 *
片岡 啓明: "LinuxのGUIシステムとAndroid採用のメリット", FPGAマガジン NO.5, JPN6020033430, 1 May 2014 (2014-05-01), JP, pages 6 - 15, ISSN: 0004482964 *

Also Published As

Publication number Publication date
WO2018119712A1 (zh) 2018-07-05
US20190317716A1 (en) 2019-10-17
CN106796535A (zh) 2017-05-31
US10929079B2 (en) 2021-02-23
JP7058658B2 (ja) 2022-04-22
CN106796535B (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US10127628B2 (en) Method and system to virtualize graphic processing services
US11204790B2 (en) Display method for use in multi-operating systems and electronic device
JP6009675B2 (ja) 物理メモリの動的パーティショニング技術
WO2017143718A1 (zh) 一种云渲染系统、服务器及方法
CN107003892B (zh) Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
US8629878B2 (en) Extension to a hypervisor that utilizes graphics hardware on a host
TWI696952B (zh) 資源處理方法及裝置
US20190317795A1 (en) Memory access method for use in multi-operating systems and electronic device
US10929079B2 (en) Video display method, electronic device and computer program product
JP2006190281A5 (ja)
CN107077376B (zh) 帧缓存实现方法、装置、电子设备和计算机程序产品
CN106683035B (zh) Gpu加速方法和装置
CN101211270A (zh) 显卡、应用该显卡的虚拟机系统及显示处理方法
CN114741044A (zh) 一种基于异构渲染的跨运行环境显示输出共享方法
CN109766179B (zh) 一种显存分配方法以及装置
CN113886019B (zh) 虚拟机创建方法、装置、系统、介质和设备
US9864638B2 (en) Techniques for accessing a graphical processing unit memory by an application
WO2015154226A1 (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
JP2022541059A (ja) ヘテロジニアスコンピューティングのための統合カーネル仮想アドレス空間
CN112801856B (zh) 数据处理方法和装置
CN117135361A (zh) 视频编码方法、设备、系统及存储介质
JP2022179415A (ja) グラフィックレンダリングのシステム、方法および装置のためのラインベースのレンダリング
CN112801856A (zh) 数据处理方法和装置
KR20220032736A (ko) 복수의 그래픽 처리 유닛 기반의 분산 렌더링 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220412

R150 Certificate of patent or registration of utility model

Ref document number: 7058658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150