JP2017169001A - 表示画面データの伝送装置、伝送方法及び伝送プログラム - Google Patents

表示画面データの伝送装置、伝送方法及び伝送プログラム Download PDF

Info

Publication number
JP2017169001A
JP2017169001A JP2016051663A JP2016051663A JP2017169001A JP 2017169001 A JP2017169001 A JP 2017169001A JP 2016051663 A JP2016051663 A JP 2016051663A JP 2016051663 A JP2016051663 A JP 2016051663A JP 2017169001 A JP2017169001 A JP 2017169001A
Authority
JP
Japan
Prior art keywords
unit
area
region
update
display screen
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.)
Pending
Application number
JP2016051663A
Other languages
English (en)
Inventor
浩一 山崎
Koichi Yamazaki
浩一 山崎
亮 宮本
Akira Miyamoto
亮 宮本
松井 一樹
Kazuki Matsui
一樹 松井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016051663A priority Critical patent/JP2017169001A/ja
Priority to US15/426,405 priority patent/US20170269709A1/en
Publication of JP2017169001A publication Critical patent/JP2017169001A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of two-dimensional [2D] relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543—Mice or pucks
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842—Selection of displayed objects or displayed text elements
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00—Image analysis
    • G06T7/10—Segmentation; Edge detection
    • G06T7/136—Segmentation; Edge detection involving thresholding
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00—Image analysis
    • G06T7/20—Analysis of motion
    • G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51—Motion estimation or motion compensation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00—Indexing scheme for image analysis or image enhancement
    • G06T2207/10—Image acquisition modality
    • G06T2207/10016—Video; Image sequence
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00—Network arrangements or protocols for supporting network services or applications
    • H04L67/01—Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】動画の圧縮効率が低下するのを抑制すること。【解決手段】サーバ装置10は、クライアント端末30に表示させる表示画面データを記憶するメモリと、クライアント端末30が有する入力装置のポインタの位置を取得する取得部と、メモリに記憶された表示画面データを更新する更新部と、メモリに記憶された表示画面データのフレーム間で更新頻度が閾値以上である領域を識別する識別部と、ポインタの位置の軌跡から更新頻度が閾値以上である領域の移動方向を探索する探索部と、更新頻度が前記閾値以上である領域を分割する境界線を移動方向に沿って設定することにより領域を分割する分割部と、領域が分割された各要素の画像に関する動画圧縮を複数のプロセッサに割り当て並列処理する圧縮部と、各要素の画像に関する動画圧縮データを送信する送信部とを有する。【選択図】図1

Description

本発明は、表示画面データの伝送装置、伝送方法及び伝送プログラムに関する。
シンクライアントシステムというシステムが知られている。シンクライアントシステムでは、クライアントに最低限の機能しか持たせず、サーバでアプリケーションやファイルなどのリソースを管理するようにシステムが構築される。このシンクライアントシステムは、実際にはサーバ装置により実行された処理結果やサーバ装置が保持するデータをクライアント端末に表示させつつも、あたかもクライアント端末が主体となって処理を実行しデータを保持しているかのように振る舞う。
例えば、シンクライアントシステムは、サーバ装置で資料作成やメールなどの業務に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアント端末に表示させる。かかる業務アプリケーションの他にも、CAD(Computer Aided Design)などのように精細な静止画を扱うアプリケーション、さらには、動画を扱うアプリケーションなどがシンクライアントシステムの適用範囲として拡充されつつある。
このように、サーバ装置からクライアント端末へデスクトップ画面のデータが伝送される場合、サーバ装置及びクライアント端末の間を接続するネットワークの帯域幅や伝送データ量などがボトルネックとなり、伝送遅延が発生する場合がある。この伝送遅延によって、サーバ装置からクライアント端末へ伝送されるデスクトップ画面のデータがクライアント端末側で描画されるのが遅れる結果、クライアント端末で行われる操作に対するレスポンスが悪化する。
かかる伝送遅延を抑制する技術の一例として、デスクトップ画面の中で更新が多い領域を動画化し、それ以外のデスクトップ画面上の更新の差分を静止画で送信するハイブリッド方式が提案されている。
国際公開第2014/080440号 特開2012−119945号公報 国際公開第2009/102011号
ところで、2Kや4K等の高解像度のディスプレイの普及に伴って、シンクライアントシステムにおいても、サーバ装置が動画の圧縮符号化を実行する処理量や動画の圧縮符号化後にサーバ装置がクライアント端末へ伝送するデータ量も増加すると考えられる。
このことから、上記のハイブリッド方式において、動画化が行われる領域が分割された複数の小領域ごとに複数のCPU(Central Processing Unit)コアを利用して動画の圧縮符号化を並列して実行することも考えられる。
しかしながら、上記の技術では、デスクトップ画面上で動画化する領域の圧縮効率が低下する場合がある。
すなわち、動画の圧縮符号化では、フレーム間予測により圧縮効率が高められる。かかるフレーム間予測では、動きベクトル探索(ME:Motion Estimation)により動き補償が行われる。ところが、デスクトップ画面上で動画化する領域が分割される場合、当該領域が分割される方向によっては必ずしも動き補償が有効に機能しない場合がある。例えば、デスクトップ画面上で動画化する領域が分割されない場合に検出される動きベクトルとは直交する方向に当該領域が分割される場合、分割が一因となって動きベクトルの検出が不能となり、圧縮効率が低下する場合がある。
1つの側面では、本発明は、動画の圧縮効率が低下するのを抑制できる表示画面データの伝送装置、伝送方法及び伝送プログラムを提供することを目的とする。
一態様では、表示画面データの伝送装置は、端末装置に表示させる表示画面データを記憶するメモリと、前記端末装置が有する入力装置のポインタの位置を取得する取得部と、前記メモリに記憶された表示画面データを更新する更新部と、前記メモリに記憶された表示画面データのフレーム間で更新頻度が閾値以上である領域を識別する識別部と、前記ポインタの位置の軌跡から前記更新頻度が前記閾値以上である領域の移動方向を探索する探索部と、前記更新頻度が前記閾値以上である領域を分割する境界線を前記移動方向に沿って設定することにより前記領域を分割する分割部と、前記領域が分割された各要素の画像に関する動画圧縮を複数のプロセッサに割り当て並列処理する圧縮部と、前記各要素の画像に関する動画圧縮データを送信する送信部とを有する。
1つの側面として、動画の圧縮効率が低下するのを抑制できる。
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。 図2は、デスクトップ画面の一例を示す図である。 図3Aは、移動ベクトルの算出方法の一例を示す図である。 図3Bは、移動ベクトルの算出方法の一例を示す図である。 図3Cは、移動ベクトルの算出方法の一例を示す図である。 図4は、デスクトップ画面の一例を示す図である。 図5は、デスクトップ画面の一例を示す図である。 図6は、デスクトップ画面の一例を示す図である。 図7は、デスクトップ画面の一例を示す図である。 図8は、デスクトップ画面の一例を示す図である。 図9は、実施例1に係る分割処理の手順を示すフローチャート(1)である。 図10は、実施例1に係る分割処理の手順を示すフローチャート(2)である。 図11は、実施例1に係る第1の送信制御処理の手順を示すフローチャートである。 図12は、実施例1に係る第2の送信制御処理の手順を示すフローチャートである。 図13は、実施例1及び実施例2に係る伝送プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る表示画面データの伝送装置、伝送方法及び伝送プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。図1に示すシンクライアントシステム1は、クライアント(client)端末30が表示するデスクトップ画面をリモートでサーバ装置10に制御させるものである。つまり、シンクライアントシステム1は、実際にはサーバ装置10により実行された処理結果や保持するデータをクライアント端末30に表示させつつも、あたかもクライアント端末30が主体となって処理を実行したり、データを保持しているかのように振る舞う。
図1に示すように、シンクライアントシステム1は、サーバ装置10と、クライアント端末30とを有する。ここで、図1には、1つのサーバ装置10につき1つのクライアント端末が接続される場合を例示したが、1つのサーバ装置10に複数のクライアント端末を接続することもできる。すなわち、シンクライアントシステム1は、サーバベース方式、ブレードPC方式及びVDI(Virtual Desktop Infrastructure)方式などの任意の形態で実装することができる。
これらサーバ装置10及びクライアント端末30は、ネットワーク2を介して、相互に通信可能に接続される。かかるネットワーク2には、有線または無線を問わず、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。なお、サーバ装置10及びクライアント端末30間の通信プロトコルには、一例として、VNCにおけるRFB(Remote Frame Buffer)プロトコルを採用する場合を想定する。
サーバ装置10は、クライアント端末30に表示させるデスクトップ画面をリモートで制御するサービスを提供するコンピュータである。このサーバ装置10には、サーバ向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションを「サーバ側リモート画面制御用アプリ」と記載する場合がある。
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。例えば、サーバ側リモート画面制御用アプリは、クライアント端末30における操作情報を取得した上でその操作により要求された処理をサーバ装置10で動作するOSやアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、OSやアプリケーションにより実行された処理結果が更新されたデスクトップ画面を生成した上でそのデスクトップ画面の表示用データをクライアント端末30へ送信する。このとき、サーバ側リモート画面制御用アプリは、必ずしもデスクトップ画面全体の画像をクライアント端末30へ送信するとは限らない。すなわち、サーバ側リモート画面制御用アプリは、今回のデスクトップ画面の更新の前にクライアント端末30で表示されていたビットマップ画像との間で更新があった部分の画素が集まった領域、すなわち更新領域の画像を送信する。なお、以下では、一例として、更新領域の画像が矩形の画像として形成される場合を説明するが、更新領域の画像は必ずしも矩形でなくともよく、矩形以外の形状、例えば多角形や楕円で形成されることとしてもかまわない。
この他、サーバ側リモート画面制御用アプリは、デスクトップ画面を更新するフレーム間で更新の頻度が高い部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント端末30へ送信する機能も有する。例えば、サーバ側リモート画面制御用アプリは、デスクトップ画面がメッシュ状に分割された要素ごとにフレーム間で更新がある頻度を監視する。このとき、サーバ側リモート画面制御用アプリは、更新の頻度が閾値を超える要素、すなわち高頻度更新領域の属性情報をクライアント端末30へ送信する。これと共に、サーバ側リモート画面制御用アプリは、高頻度更新領域のビットマップ画像をMPEG(Moving Picture Experts Group)−2やMPEG−4などのMPEG方式のデータにエンコードした上でクライアント端末30へ送信する。なお、ここでは、MPEG方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えばMotion−JPEG(Joint Photographic Experts Group)などを採用できる。
クライアント端末30は、サーバ装置10によるリモート画面制御サービスの提供を受ける側のコンピュータである。
一実施形態として、クライアント端末30には、パーソナルコンピュータ(Personal Computer)など固定端末の他、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)などの携帯端末装置を採用することができる。このクライアント端末30には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションを「クライアント側リモート画面制御用アプリ」と記載する場合がある。
このクライアント側リモート画面制御用アプリは、マウスやキーボードなどの各種の入力デバイスを介して受け付けた操作情報をサーバ装置10へアップロードする機能を有する。一例として、クライアント側リモート画面制御用アプリは、マウスの左右のクリックを始め、ダブルクリックやドラッグの他、デスクトップ画面上のマウスカーソルの位置などを操作情報として通知する。他の一例として、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。なお、ここでは、一例として、マウスに関する操作情報を例示したが、これ以外の入力デバイス、例えばキーボードに関する操作情報をクライアント端末30にアップロードさせることもできる。
さらに、クライアント側リモート画面制御用アプリは、サーバ装置10により送信された画像を所定の表示部に表示させる機能を有する。一例として、クライアント側リモート画面制御用アプリは、サーバ装置10から更新領域のビットマップ画像を受信した場合、更新領域の画像を前回のビットマップ画像から更新があった位置に合わせて表示する。他の一例として、クライアント側リモート画面制御用アプリは、サーバ装置10により送信された高頻度更新領域の属性情報を受信した場合、当該属性情報に含まれる位置に対応するデスクトップ画面上の領域をビットマップ画像の表示対象外のブランク領域に設定する。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合、そのデータをデコードすることによりブランク領域上で動画を再生する。
[サーバ装置の構成]
次に、本実施例に係るサーバ装置10の構成について説明する。図1に示すように、サーバ装置10は、OS(Operating System)実行部11aと、App(Application program)実行部11bと、グラフィックドライバ12と、フレームバッファ13と、サーバ側リモート画面制御部14とを有する。なお、図1の例では、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば通信制御用のインタフェース、例えばNIC(Network Interface Card)などの機能を有するものとする。
OS実行部11aは、基本ソフトウェアであるOSの実行を制御する処理部である。
一実施形態として、OS実行部11aは、後述の操作情報取得部14aにより取得された操作情報からアプリケーションの起動指示やアプリケーションに対するコマンドを検出する。例えば、OS実行部11aは、マウスカーソルの位置がアプリケーションのアイコン上に存在する状態でダブルクリックが検出された場合、当該アイコンに対応するアプリケーションの起動を後述のApp実行部11bへ指示する。他の一例として、起動中のアプリケーションの操作画面、いわゆるウィンドウ上でコマンドの実行を要求する操作が検出された場合、OS実行部11aは、そのコマンドの実行をApp実行部11bへ指示する。
App実行部11bは、OS実行部11aによる指示にしたがってアプリケーションの実行を制御する処理部である。
一実施形態として、App実行部11bは、OS実行部11aによりアプリケーションの起動が指示された場合や起動中のアプリケーションにコマンドの実行が指示された場合、アプリケーションを動作させる。そして、App実行部11bは、アプリケーションを実行することにより得られた処理結果の表示用イメージをフレームバッファ13に描画する要求を後述のグラフィックドライバ12へ行う。このようにグラフィックドライバ12へ描画要求を行う場合、App実行部11bは、表示用イメージとともに表示用イメージの描画位置をグラフィックドライバ12へ通知する。
なお、App実行部11bが実行するアプリケーションは、プリインストールされたものであってもよく、サーバ装置10の出荷後にインストールされたものであってもかまわない。また、JAVA(登録商標)などのネットワーク環境で動作するアプリケーションであってもよい。
グラフィックドライバ12は、フレームバッファ13に対する描画処理を実行する処理部である。
一実施形態として、グラフィックドライバ12は、App実行部11bからの描画要求を受け付けた場合、アプリケーションの処理結果の表示用イメージをアプリケーションにより指定されたフレームバッファ13上の描画位置へビットマップ形式で描画する。なお、ここでは、アプリケーションにより描画要求を受け付ける場合を例示したが、OS実行部11aからの描画要求を受け付けることもできる。例えば、グラフィックドライバ12は、OS実行部11aからマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをOSにより指定されたフレームバッファ13上の描画位置へビットマップ形式で描画する。
フレームバッファ13は、グラフィックドライバ12により描画されたビットマップデータを記憶する記憶デバイスである。
一実施形態として、フレームバッファ13には、VRAM(Video Random Access Memory)を始めとするRAMやフラッシュメモリなどの半導体メモリ素子を採用することができる。なお、フレームバッファ13には、必ずしも半導体メモリ素子を採用せずともかまわず、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの補助記憶装置を採用することとしてもかまわない。
サーバ側リモート画面制御部14は、サーバ側リモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント端末30へ提供する処理部である。このサーバ側リモート画面制御部14は、図1に示すように、操作情報取得部14aと、画面生成部14bと、更新頻度測定部14cと、高頻度更新領域識別部14dと、エンコーダ14mと、第1の画像送信部14kと、第2の画像送信部14nとを有する。
操作情報取得部14aは、クライアント端末30から操作情報を取得する処理部である。
一実施形態として、操作情報取得部14aは、上記の操作情報の例として、クライアント端末30からマウスに関する操作情報やキーボードに関する操作情報などを取得することができる。例えば、操作情報取得部14aは、マウスに関する操作情報の例として、マウスの左右のクリックを始め、ダブルクリックやドラッグの他、デスクトップ画面上におけるマウスカーソルの位置やマウスホイールの回転量などを取得することができる。また、操作情報取得部14aは、キーボードに関する操作情報の例として、キーボードとして配列される各種のキー、例えばローマ字キー、ファンクションキー、Ctrlキー、Shiftキー、テンキー、または、これらの組合せに関する押下操作を取得することができる。
画面生成部14bは、クライアント端末30の表示部32に表示させるデスクトップ画面の画像を生成する処理部である。
一実施形態として、画面生成部14bは、上記のデスクトップ画面を更新する間隔、例えば30fpsが経過する度に、次のような処理を起動する。以下では、クライアント端末30に表示させるデスクトップ画面を更新する間隔のことを「画面更新間隔」と記載する場合がある。かかる画面更新間隔は、サーバ装置10及びクライアント端末30の間の帯域幅やサーバ装置10及びクライアント端末30の性能などにより任意の間隔を採用することができる。例えば、画面生成部14bは、サーバ装置10からクライアント端末30へ最後に送信された時点におけるデスクトップ画面全体のビットマップデータを保存する内部メモリ(不図示)と、フレームバッファ13とを参照する。そして、画面生成部14bは、上記の内部メモリに保存されたデスクトップ画面のビットマップデータと、フレームバッファ13に記憶されたデスクトップ画面のビットマップデータとの間で画素値に差分がある画素を抽出する。その上で、画面生成部14bは、先に抽出された画素にラベリング処理を実行し、同一のラベルが付与されたブロブを矩形状に形成することにより、上記の更新領域のパケットを生成する。このとき、画面生成部14bは、更新領域ごとに当該更新領域の位置および大きさを特定可能な属性情報、例えば更新領域の左上の頂点の座標と更新領域の幅および高さとを付与する。
更新頻度測定部14cは、デスクトップ画面が分割された要素ごとにフレーム間の更新の頻度を測定する処理部である。
一実施形態として、更新頻度測定部14cは、デスクトップ画面がメッシュ状に分割されたメッシュの要素ごとに当該要素の更新頻度を測定する。かかる更新頻度の測定には、一例として、デスクトップ画面のメッシュに含まれる要素ごとに当該要素の更新回数が対応付けられた更新回数マップが用いられる。ここで言う「更新回数」とは、一例として、過去の所定のフレーム数N(Nは自然数)の間に要素が更新された回数を指す。例えば、更新頻度測定部14cは、上記の画面更新間隔が経過する度に、次のような処理を実行する。すなわち、更新頻度測定部14cは、上記の更新回数マップにおいてNフレーム前に更新回数がインクリメントされた要素の更新回数をデクリメントすることにより、上記の更新回数マップから最古の測定結果を破棄する。その後、更新頻度測定部14cは、画面生成部14bにより生成された更新領域ごとに当該更新領域の属性情報により定義された平面が重なるメッシュの要素を検出する。その上で、更新頻度測定部14cは、上記の更新回数マップに含まれる更新回数のうち、所定数、例えば「1」以上の更新領域が重なるメッシュの要素に対応する更新回数をインクリメントする。
高頻度更新領域識別部14dは、デスクトップ画面のうち高頻度で更新される領域を高頻度更新領域として識別する処理部である。
一実施形態として、高頻度更新領域識別部14dは、上記の画面更新間隔が経過する度に、上記の更新回数マップを用いて高頻度更新領域を識別する。例えば、高頻度更新領域識別部14dは、上記の更新回数マップに含まれるメッシュの要素のうち更新回数が所定の閾値を超える要素を抽出する。その上で、高頻度更新領域識別部14dは、更新回数が閾値を超える要素が存在する場合、先に抽出された要素にラベリング処理を実行し、同一のラベルが付与された要素のブロブを「高頻度更新領域」として識別する。なお、ここでは、要素のブロブを高頻度更新領域として識別する場合を例示したが、当該ブロブを所定の形状、例えば矩形に形成することもできるし、あるいは所定の距離以内にあるブロブ同士を合成してそのバウンディングボックスを高頻度更新領域として識別することもできる。
動画化判定部14eは、動画化の要否を判定する処理部である。
一実施形態として、動画化判定部14eは、所定のフレーム数M(Mは自然数)が経過する度に、高頻度更新領域識別部14dにより高頻度更新領域が識別されたか否かを判定する。このとき、高頻度更新領域が識別された場合、現フレームtが次に挙げる状況にあることを想定できる。例えば、CAD(Computer Aided Design)のモデル、あるいはCAE(Computer Aided Engineering)の解析モデルなどのように、3DCG(three-Dimensional Computer Graphics)によりレンダリングされたモデルがマウスイベント、例えばドラッグ&ドロップにより移動された状況が挙げられる。この他、各種のウィンドウがマウスイベントにより移動された状況、さらには、クライアント端末30で動画が再生されている状況などが挙げられる。このように、デスクトップ画面上に更新頻度が高い領域が存在する場合、動画化が実施される。一方、高頻度更新領域が識別されなかった場合、デスクトップ画面上で更新頻度が高い領域が存在しない可能性が高いと推定することができる。この場合、動画化は実施されない。
ベクトル情報算出部14fは、マウスカーソルに関するベクトル情報を算出する処理部である。
一側面として、ベクトル情報算出部14fは、動画化判定部14eにより動画化の要否が判定されてからMフレームが経過していない場合、あるいは動画化判定部14eにより動画化の要否は判定されたが動画化が実施されない場合、操作情報取得部14aにより取得された現フレームtにおけるマウスカーソルの座標を内部メモリのワークエリアに保存する。このように、現フレームtにおけるマウスカーソルの座標が内部メモリに保存されることにより、動画化の実施が決定されたフレームでその1つ前のフレームにおけるマウスカーソルの座標を参照できる。
他の側面として、ベクトル情報算出部14fは、動画化判定部14eにより動画化の実施が決定された場合、次のような処理を実行する。すなわち、ベクトル情報算出部14fは、内部メモリに保存された1つ前のフレームt−1におけるマウスカーソルの座標を読み出す。その上で、ベクトル情報算出部14fは、内部メモリから読み出された1つ前のフレームt−1におけるマウスカーソルの座標と、操作情報取得部14aにより取得された現フレームtにおけるマウスカーソルの座標とからマウスカーソルの移動方向及び移動量をベクトル情報として算出する。
動画化領域設定部14gは、デスクトップ画面上で動画化を実施する領域を設定する処理部である。
一側面として、動画化領域設定部14gは、動画化判定部14eにより動画化の要否が判定されてからMフレームが経過していない場合、あるいは動画化判定部14eにより動画化の要否は判定されたが動画化が実施されない場合、次のような処理を実行する。すなわち、動画化領域設定部14gは、高頻度更新領域識別部14dにより識別された現フレームtにおける高頻度更新領域の属性情報を内部メモリのワークエリアに保存する。かかる属性情報とは、高頻度更新領域の位置、形状や大きさを定義する情報を指し、例えば高頻度更新領域を形成する各頂点の座標などが挙げられる。このように、現フレームtにおける高頻度更新領域の属性情報が内部メモリに保存されることにより、動画化の実施が決定されたフレームでその1つ前のフレームにおける高頻度更新領域の属性情報を参照できる。なお、ここでは、高頻度更新領域の属性情報の一例として、高頻度更新領域を形成する各頂点の座標を例示したが、高頻度更新領域が矩形に形成される場合、高頻度更新領域の左上の頂点の座標と高頻度更新領域の幅および高さとを属性情報に採用することもできる。
他の側面として、動画化領域設定部14gは、動画化判定部14eにより動画化の実施が決定された場合、次のような処理を実行する。すなわち、動画化領域設定部14gは、内部メモリに保存された1つ前のフレームt−1における高頻度更新領域の属性情報を読み出す。その上で、動画化領域設定部14gは、ベクトル情報算出部14fにより算出されたマウスカーソルのベクトル情報を用いて、内部メモリから読み出された1つ前のフレームt−1における高頻度更新領域と形状が類似する、高頻度更新領域識別部14dにより識別された現フレームtにおける高頻度更新領域を探索する。
ここで、1つ前のフレームt−1及び現フレームtの間で互いの形状が類似する高頻度更新領域の探索に成功した場合、動画化領域設定部14gは、1つ前のフレームt−1から現フレームtまでの移動方向および移動距離をフレーム間の移動ベクトルとして同定する。一方、1つ前のフレームt−1及び現フレームtの間で互いの形状が類似する高頻度更新領域が探索できない場合、動画化領域設定部14gは、フレーム間の移動ベクトルをEmpty、例えば「0」に設定する。
その上で、動画化領域設定部14gは、上記の移動ベクトルを用いて、次のMフレーム後までの期間にわたってデスクトップ画面上で動画化を実施する領域を設定する。以下では、次のMフレーム後までデスクトップ画面上で動画化を実施する領域のことを「動画化領域」と記載する場合がある。このとき、動画化領域設定部14gは、現フレームtにおける高頻度更新領域を起点とし、上記の移動ベクトルにしたがって動画化領域を設定することもできるが、当該高頻度更新領域には、1つ前のフレームt−1からの移動により現フレームtでは更新がなかったメッシュの要素も含まれることになる。よって、動画化領域設定部14gは、現フレームtで画面生成部14bにより生成された更新領域のうち現フレームtにおける高頻度更新領域と重複する面積が最大である更新領域と重なる要素のブロブを動画化領域の設定に用いることもできる。例えば、動画化領域設定部14gは、現フレームtにおける更新領域を起点に設定すると共に移動ベクトルに定められた移動方向を目標に設定し、現フレームtから次に動画化の実施の要否が判定されるMフレーム後までのM回分にわたって現フレームtにおける更新領域を上記の移動ベクトルに定められた移動距離にしたがって移動させる。その上で、動画化領域設定部14gは、現フレームtにおける更新領域、Mフレーム後に位置すると予測される予測更新領域、又は、現フレームtからMフレーム後までの更新領域の移動軌跡のうち少なくともいずれか1つと重なる要素のブロブを動画化領域に設定する。このとき、動画化領域設定部14gは、移動ベクトルが「0」に設定されている場合、現フレームtにおける更新領域と、Mフレーム後に位置すると予測される予測更新領域とが一致するので、現フレームtにおける更新領域を動画化領域に設定する。このようにして設定された動画化領域の属性情報、例えば動画化領域の各頂点の座標が後述の分割部14hへ出力される。
図2は、デスクトップ画面の一例を示す図である。図2の上段には、1つ前のフレームt−1におけるデスクトップ画面200が示されると共に1つ前のフレームt−1における高頻度更新領域201が示されている。また、図2の中段には、現フレームtにおけるデスクトップ画面210が示されると共に、図2の下段には、Mフレーム後の画面(予測)が示されている。さらに、図2の中段には、現フレームtにおける高頻度更新領域211が破線で示されると共に1つ前のフレームt−1における高頻度更新領域201が実線で示されている。また、図2の下段には、現フレームtにおける更新領域212が破線(太線)で示されると共にMフレーム後の予測更新領域213が破線(細線)で示され、デスクトップ画面上で動画化が実施される動画化領域214が太線で示されている。図2に示す符号Cは、マウスカーソルを指す。なお、図2には、一例として、動画化の実施の要否が判定されるフレーム数の間隔が「6」である場合、すなわちM=6である場合が示されている。
図2の中段に示すように、現フレームtで高頻度更新領域211が識別されることにより、動画化の実施が決定される。このように動画化の実施が決定された場合、マウスカーソルの移動方向及び移動距離がベクトル情報v1として算出される。ここでは、一例として、ベクトル情報v1に含まれる移動方向が「右方向」である場合を想定する。かかるベクトル情報v1に含まれる移動方向及び移動距離を参照して、1つ前のフレームt−1における高頻度更新領域201と形状が類似する、現フレームtにおける高頻度更新領域211が探索される。そして、1つ前のフレームt−1から現フレームtまでの高頻度更新領域201の移動方向および移動距離が移動ベクトルV4として算出される。なお、本例では、マウスカーソルの移動方向及び移動距離であるベクトル情報v1と、移動ベクトルV4とは略同一となる。
図3A〜図3Cは、移動ベクトルの算出方法の一例を示す図である。図3Aには、図2に示した高頻度更新領域201が示される一方で、図3Bには、図2に示した高頻度更新領域211が示されている。なお、ここでは、画像の水平方向をX軸とし、画像の垂直方向をY軸とする画像の座標系を想定して以下の説明を行う。
図3Aに示す高頻度更新領域201が持つ水平方向の線分及び図3Bに示す高頻度更新領域211が持つ水平方向の線分が比較される。すなわち、高頻度更新領域201の頂点P1及び頂点P2を結ぶ線分L1と、高頻度更新領域211の頂点P7及び頂点P8を結ぶ線分L7とは、互いのY座標が一致する。さらに、高頻度更新領域201の頂点P3及び頂点P4を結ぶ線分L3と、高頻度更新領域211の頂点P9及び頂点P10を結ぶ線分L9とは、互いのY座標が一致する。さらに、高頻度更新領域201の頂点P5及び頂点P6を結ぶ線分L5と、高頻度更新領域211の頂点P11及び頂点P12を結ぶ線分L11とは、互いのY座標が一致する。
これらのことから、水平方向の線分を垂直方向へシフトせずとも、高頻度更新領域201及び高頻度更新領域211が持つ水平方向の線分の数、及び、水平方向の線分の高さが一致することがわかる。よって、1つ前のフレームt−1及び現フレームtの間で垂直方向への移動がないと推定できる。
図3Aに示す高頻度更新領域201が持つ垂直方向の線分及び図3Bに示す高頻度更新領域211が持つ垂直方向の線分を比較すると、高頻度更新領域201の頂点P1及び頂点P6を結ぶ線分L6と、高頻度更新領域211の頂点P7及び頂点P12を結ぶ線分L12とが一致する。その一方で、高頻度更新領域201の頂点P2及び頂点P3を結ぶ線分L2と、高頻度更新領域211の頂点P8及び頂点P9を結ぶ線分L8とは、互いのY座標が所定の閾値以上の区間にわたって重複するが、互いのX座標が一致しない。さらに、高頻度更新領域201の頂点P4及び頂点P5を結ぶ線分L4と、高頻度更新領域211の頂点P10及び頂点P11を結ぶ線分L11とは、互いのY座標が所定の閾値以上の区間にわたって重複するが、互いのX座標が一致しない。これらのことから、1つ前のフレームt−1及び現フレームtの間で水平方向への移動があると推定できる。
このように水平方向への移動がある場合、1つ前のフレームt−1から現フレームtまでの高頻度更新領域201の水平方向への移動距離を算出するために、互いのY座標が所定の閾値以上の区間にわたって重複する線分同士をペアとし、高頻度更新領域201の垂直方向の線分のX座標が高頻度更新領域211の垂直方向の線分のX座標と一致するまで移動させる。
すなわち、図3Cに示すように、高頻度更新領域201の線分L2をベクトル情報v1の移動方向「右方向」にしたがって所定の画素ずつシフトさせる処理を、高頻度更新領域201の線分L2及び高頻度更新領域211の線分L8のX座標が一致するまで繰り返し実行する。これにより、線分L2の水平移動距離d2が算出される。さらに、高頻度更新領域201の線分L4を所定の画素ずつシフトさせる処理を、高頻度更新領域201の線分L4及び高頻度更新領域211の線分L10のX座標が一致するまで繰り返し実行する。これにより、線分L4の水平移動距離d3が算出される。
このようにして2つの移動ベクトルV2及び移動ベクトルV3が得られる。すなわち、移動ベクトルV2は、垂直移動距離「0」及び水平移動距離「d2」であるので、移動方向が「右方向」であり、移動距離が「d2」と求まる。さらに、移動ベクトルV3は、垂直移動距離「0」及び水平移動距離「d3」であるので、移動方向が「右方向」であり、移動距離が「d3」と求まる。これら移動ベクトルV2及び移動ベクトルV3は、各種の統計処理、例えば平均や中央値の算出処理が実行されることにより、2つの移動ベクトルV2及びV3を代表する移動ベクトルV4を求めることができる。
なお、ここでは、1つ前のフレームt−1及び現フレームtの間で垂直方向への移動がない場合を例示したが、1つ前のフレームt−1及び現フレームtの間で垂直方向への移動がある場合、図3Cを用いて説明した処理を垂直方向へシフトさせる処理へ読み替えることにより垂直移動距離を求めることができる。そして、ベクトル情報v1の移動方向が水平又は垂直でない場合、ベクトル情報v1の移動方向を水平成分および垂直成分に分解して参照することとすればよい。
図2の説明に戻り、移動ベクトルV4が算出されると、図2の下段に示す通り、現フレームtにおける更新領域212を起点に設定すると共に移動ベクトルV4に定められた移動方向「右方向」を目標に設定し、現フレームtから次に動画化の実施の要否が判定される6フレーム後までの6回分にわたって現フレームtにおける更新領域212を上記の移動ベクトルV4に定められた移動距離、例えば(d2+d3)/2にしたがって移動させる。これにより、6フレーム後に位置すると予測される予測更新領域213が導出される。その上で、更新領域212、予測更新領域213、又は、現フレームtからMフレーム後までの更新領域212の移動軌跡のうち少なくともいずれか1つと重なる要素のブロブが動画化領域214として設定される。
このような動画化領域を設定することにより、フレーム間の移動ベクトルにしたがってMフレーム後の将来に亘って更新頻度が高まると予測される範囲を推定できる。このため、現フレームtまでの過去のフレームの更新頻度により定められた高頻度更新領域よりも、1フレームのトータルでサーバ装置10からクライアント端末30へ伝送されるデータ量を低減できる可能性が高まる。
図1の説明に戻り、分割部14hは、動画化領域を分割する処理部である。
一実施形態として、分割部14hは、動画化領域設定部14gより設定された動画化領域の属性情報から動画化領域のサイズ、すなわち面積を算出する。続いて、分割部14hは、後述のエンコーダ14mに実装されるCPUコア数と動画化領域のサイズとから、CPU1コアあたりの処理サイズを決定する。その後、分割部14hは、動画化領域のサイズが所定の閾値、例えばCPU1コアあたりの処理サイズ以下であるか否かを判定する。このとき、動画化領域のサイズが所定の閾値以下である場合、後述のエンコーダ14mに実装されるCPUコアが発揮する性能で動画化領域全体をエンコードできると推定できる。この場合、動画化領域を分割することにより動画の圧縮符号化処理で発生するオーバーヘッドをあえて被らずともよい。したがって、分割部14hは、動画化領域の分割数を「1」に設定することにより、動画化領域の分割により動画の圧縮符号化処理にオーバーヘッドの発生を抑制する。一方、動画化領域のサイズが所定の閾値を超える場合、動画化領域のサイズが後述のエンコーダ14mに実装されるCPUコアが発揮する性能では手に余ると判断できる。この場合、動画化領域の分割が実施される。
すなわち、分割部14hは、動画化領域のサイズ及びCPU1コアあたりの処理サイズに基づいて動画化領域の分割数を決定する。例えば、分割部14hは、分割数の算出式「分割数=(動画化領域のサイズ×平均処理時間)÷CPU1コアあたりの処理サイズ」にしたがって分割数を決定する。かかる分割数の算出式における「平均処理時間」とは、単位面積あたりの動画圧縮にかかる1フレームあたりの平均所要時間を指す。例えば、後述のエンコーダ14mの各CPUコアで動画圧縮処理が実行される場合にその所要時間を計測し、計測された所要時間を各CPUコアにより動画圧縮処理が行われたサイズ及びフレーム数で正規化することにより算出できる。
その上で、分割部14hは、先に決定された動画化領域の分割数と、動画化領域設定部14gにより算出された移動ベクトルとから、動画化領域を分割する形状およびサイズを決定する。ここで、分割部14hは、動画化領域の面積を分割数で除算することにより分割サイズを決定した上で、動画化領域を分割する境界線を上記の移動ベクトルに含まれる移動方向に沿って設定する。このとき、分割部14hは、移動方向と水平方向のズレが所定の範囲内である場合、上記の境界線を水平方向に設定することができる。例えば、分割部14hは、移動ベクトルの算出時に算出された垂直移動距離が所定の閾値、例えば最小分割サイズ/2以下である場合、上記の境界線を水平方向に設定することができる。また、分割部14hは、移動方向と垂直方向のズレが所定の範囲内である場合、上記の境界線を垂直方向に設定することができる。例えば、分割部14hは、移動ベクトルの算出時に算出された水平移動距離が所定の閾値、例えば最小分割サイズ/2以下である場合、上記の境界線を垂直方向に設定することができる。このように分割用の境界線が設定された後、分割部14hは、上記の境界線にしたがって動画化領域を分割する。
[既存技術の限界]
図4及び図5は、デスクトップ画面の一例を示す図である。図4及び図5には、デスクトップ画面300上でCADの3次元モデルなどのオブジェクトOb1がマウスイベントにより右方向へ移動される例が示されている。図4には、デスクトップ画面300が分割される場合が示される一方で、図5には、デスクトップ画面300が4分割される場合が示されている。図4に示すデスクトップ画面300の動画の圧縮符号化が行われる場合、フレーム間予測によりマウスイベントの方向と同一の方向が動きベクトルm1として探索される。このようなデスクトップ画面300において、上記の既存技術では、図5に示すように、境界線b1及び境界線b2により4つの領域に分割される場合がある。この場合、境界線b1により動きベクトルm1とは直交する方向に分割されるので、動きベクトルm1を検出できない。この結果、動き補償が有効に機能せず、圧縮効率が低下する。
[本実施例に係る分割1]
図6は、デスクトップ画面の一例を示す図である。図6にも、デスクトップ画面400上でCADの3次元モデルなどのオブジェクトOb2がマウスイベントにより右方向へ移動される例が示されている。図6の上段には、デスクトップ画面400が分割される前の状態が示される一方で、図6の下段には、デスクトップ画面400が分割された後の状態が示されている。図6に示すデスクトップ画面400で動画化領域設定部14gにより移動ベクトルV5が算出されると共に動画化領域410が設定されたとしたとき、動画化領域410には、移動ベクトルV5の移動方向である右方向に沿って境界線b3、b4及びb5が設定される。これら境界線b3、b4及びb5により動画化領域410が分割される場合、動画化領域410が分割された4つの要素は、動きベクトルと平行な方向に分割されるので、動きベクトルを検出することができる。この結果、動き補償を有効に機能させることができるので、圧縮効率が低下するのを抑制できる。
[本実施例に係る分割2]
図7は、デスクトップ画面の一例を示す図である。図7には、デスクトップ画面500上でCADの3次元モデルなどのオブジェクトOb3がマウスイベントにより下方向へ移動される例が示されている。図7の上段には、デスクトップ画面500が分割される前の状態が示される一方で、図7の下段には、デスクトップ画面500が分割された後の状態が示されている。図7に示すデスクトップ画面500で動画化領域設定部14gにより移動ベクトルV6が算出されると共に動画化領域510が設定されたとしたとき、動画化領域510には、移動ベクトルV6の移動方向である下方向に沿って境界線b6及びb7が設定される。これら境界線b6及びb7により動画化領域510が分割される場合、動画化領域510が分割された3つの要素は、動きベクトルと平行な方向に分割されるので、動画圧縮時に動きベクトルを検出することができる。この結果、動き補償を有効に機能させることができるので、圧縮効率が低下するのを抑制できる。
[本実施例に係る分割3]
図8は、デスクトップ画面の一例を示す図である。図8には、デスクトップ画面600上でCADの3次元モデルなどのオブジェクトOb4がマウスイベントにより右斜め下方向へ移動される例が示されている。図8の上段には、デスクトップ画面600が分割される前の状態が示される一方で、図8の下段には、デスクトップ画面600が分割された後の状態が示されている。図8に示すデスクトップ画面600で動画化領域設定部14gにより移動ベクトルV7が算出されると共に動画化領域610が設定されたとしたとき、動画化領域610の各要素の縦横比が、移動ベクトルV7が分解された垂直成分と水平成分の比「1:3」と同一になるように、境界線b8〜b10が設定される。これら境界線b8〜b10により動画化領域610が分割される場合、動画化領域610が分割された6つの要素は、動きベクトルが最大限含まれる状態で分割されるので、動きベクトルとは直交する方向に分割される場合よりも、動画圧縮時に動きベクトルを検出することができる。この結果、動き補償を有効に機能させることができるので、圧縮効率が低下するのを抑制できる。
図1の説明に戻り、送信制御部14jは、動画および静止画の送信制御を行う処理部である。
一側面として、送信制御部14jは、静止画の送信制御を次のように実行する。すなわち、送信制御部14jは、動画化判定部14eにより動画化の実施が決定されている場合、画面生成部14bにより生成された更新領域のうち更新領域を1つ選択する。そして、送信制御部14jは、先に選択された更新領域が動画化領域設定部14gにより設定された動画化領域内に含まれるか否かを判定する。このとき、送信制御部14jは、更新領域が動画化領域内に含まれる場合、当該更新領域を第1の画像送信部14kに送信させない。一方、送信制御部14jは、更新領域が動画化領域内に含まれない場合、第1の画像送信部14kに当該更新領域をクライアント端末30へ送信させる。その後、送信制御部14jは、画面生成部14bにより生成された全ての更新領域が選択されるまで、上記の送信制御を繰り返し実行する。なお、動画化判定部14eにより動画化の実施が決定されていない場合、画面生成部14bにより生成された各更新領域を第1の画像送信部14kに送信させる。
他の側面として、送信制御部14jは、動画の送信制御を次のように実行する。すなわち、送信制御部14jは、動画化判定部14eにより動画化の実施が決定されている場合、分割部14hにより動画化領域が分割された各要素を後述のエンコーダ14mの各CPUコアへ割り当てて入力する。
エンコーダ14mは、エンコードを行う処理部である。
一実施形態として、エンコーダ14mは、複数のCPU(Central Processing Unit)コアにより実装される。これにより、エンコーダ14mは、動画の圧縮符号化を並列して実行することができる。すなわち、エンコーダ14mは、送信制御部14jによりエンコーダ14mの各CPUコアに割り当てられた動画化領域の各要素を各CPUコアで並列してエンコードする。なお、エンコード方式の一例として、MPEG−2やMPEG−4などのMPEG方式やMotion−JPEG方式などを採用できる。
第1の画像送信部14kは、画面生成部14bにより生成された更新領域の画像および属性情報をクライアント端末30へ送信する処理部である。この更新領域を送信する場合の通信プロトコルには、一例としてVNCにおけるRFBプロトコルが採用される。
第2の画像送信部14nは、エンコーダ14mにより動画化領域の要素ごとにエンコードされたエンコード画像をクライアント端末30へ送信する処理部である。このエンコード画像を送信する場合の通信プロトコルには、一例として、RTP(Real-time Transport Protocol)を採用できる。
なお、OS実行部11a、App実行部11b、グラフィックドライバ12、サーバ側リモート画面制御部14には、次のようにして実装できる。例えば、CPUなどの中央処理装置に、上記の各処理部と同様の機能を発揮するプロセスをメモリ上に展開して実行させることにより実現できる。これらの処理部は、必ずしも中央処理装置で実行されずともよく、MPU(Micro Processing Unit)に実行させることとしてもよい。また、上記の各処理部は、ハードワイヤードロジックによっても実現できる。
[クライアント端末30の構成]
次に、本実施例に係るクライアント端末の構成について説明する。図1に示すように、クライアント端末30は、入力部31と、表示部32と、クライアント側リモート画面制御部33とを有する。なお、図1の例では、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部などの機能を有するものとする。
入力部31は、各種の情報、例えば後述のクライアント側リモート画面制御部33に対する指示入力を受け付ける入力デバイスであり、一例としては、キーボードやマウスなどを適用できる。なお、後述の表示部32も、マウスと協働して、ポインティングデバイス機能を実現する。
表示部32は、各種の情報、例えばサーバ装置10から送信されたデスクトップ画面などを表示する表示デバイスであり、一例としては、モニタ、ディスプレイやタッチパネルなどを適用できる。
クライアント側リモート画面制御部33は、クライアント側リモート画面制御用アプリを通じて、サーバ装置10によるリモート画面制御サービスの提供を受ける処理部である。このクライアント側リモート画面制御部33は、図1に示すように、操作情報通知部33aと、第1の画像受信部33bと、第1の表示制御部33cと、第2の画像受信部33dと、デコーダ33eと、第2の表示制御部33fとを有する。
操作情報通知部33aは、入力部31による操作情報をサーバ装置10へ通知する処理部である。一例として、操作情報通知部33aは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスカーソルのデスクトップ画面上の座標などを操作情報として通知する。他の一例として、操作情報通知部33aは、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
第1の画像受信部33bは、サーバ装置10の第1の画像送信部14kにより送信された更新領域の画像および属性情報を受信する処理部である。また、第1の画像受信部33bは、サーバ装置10の第1の画像送信部14kにより送信された動画化領域の属性情報も受信する。
第1の表示制御部33cは、第1の画像受信部33bにより受信された更新領域の画像を表示部32に表示させる処理部である。一例としては、第1の表示制御部33cは、第1の画像受信部33bにより受信された更新領域の属性情報に含まれる位置および大きさに対応する表示部32の画面領域に更新領域のビットマップ画像を表示させる。また、第1の表示制御部33cは、第1の画像受信部33bにより動画化領域の属性情報が受信された場合、次のような処理を行う。すなわち、第1の表示制御部33cは、動画化領域の属性情報に含まれる動画化領域の位置および大きさに対応する表示部32の画面領域をビットマップ画像の表示対象外のブランク領域とする。
第2の画像受信部33dは、サーバ装置10の第2の画像送信部14nにより送信された動画化領域の各要素のエンコード画像を受信する処理部である。また、第2の画像受信部33dは、サーバ装置10の第2の画像送信部14nにより送信された動画化領域の属性情報も受信する。
デコーダ33eは、第2の画像受信部33dにより受信された動画化領域の各要素のエンコード画像をデコードする処理部である。このデコーダ33eは、複数のCPUコアにより実装することもできる。これにより、デコーダ33eは、動画化領域の各要素のエンコード画像の復号化処理を並列して実行することができる。なお、デコーダ33eには、サーバ装置10に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。
第2の表示制御部33fは、第1の画像受信部33bにより動画化領域の属性情報に基づき、デコーダ33eによりデコードされた動画化領域の各要素のデコード画像を表示部32に表示させる処理部である。一例として、第2の表示制御部33fは、動画化領域の属性情報に含まれる動画化領域の位置および大きさに対応する表示部32の画面領域に動画化領域のデコード画像を表示させる。
なお、クライアント側リモート画面制御部33には、次のようにして実装できる。例えば、CPUなどの中央処理装置に、上記の各処理部と同様の機能を発揮するプロセスをメモリ上に展開して実行させることにより実現できる。これらの処理部は、必ずしも中央処理装置で実行されずともよく、MPUに実行させることとしてもよい。また、上記の各処理部は、ハードワイヤードロジックによっても実現できる。
[処理の流れ]
次に、本実施例に係るシンクライアントシステム1の処理の流れについて説明する。なお、ここでは、サーバ装置10により実行される(1)分割処理、(2)第1の送信制御処理、(3)第2の送信制御処理の順に説明する。
(1)分割処理
図9及び図10は、実施例1に係る分割処理の手順を示すフローチャートである。この処理は、一例として、上記のデスクトップ画面を更新する間隔、例えば30fpsが経過する度に繰り返し実行される。
図9に示すように、画面生成部14bは、上記の内部メモリに保存された1つ前のフレームt−1のデスクトップ画面のビットマップデータと、フレームバッファ13に記憶された現フレームtのデスクトップ画面のビットマップデータとを比較する(ステップS101)。そして、画面生成部14bは、2つのデスクトップ画面の間で画素値に差分がある画素にラベリング処理を実行し、同一のラベルが付与されたブロブを矩形状に形成することにより、上記の更新領域のパケットを生成する(ステップS102)。
続いて、更新頻度測定部14cは、上記の更新回数マップにおいてNフレーム前に更新回数がインクリメントされた要素の更新回数をデクリメントすることにより、上記の更新回数マップから最古の測定結果を破棄する(ステップS103)。その後、更新頻度測定部14cは、上記の更新回数マップに含まれる更新回数のうち、ステップS102で生成された更新領域が所定数以上重なるメッシュの要素に対応する更新回数をインクリメントする(ステップS104)。
そして、高頻度更新領域識別部14dは、上記の更新回数マップに含まれるメッシュの要素のうち更新回数が所定の閾値を超える要素にラベリング処理を実行し、同一のラベルが付与された要素のブロブを高頻度更新領域として識別する(ステップS105)。
その後、前回に動画化の要否が判定されてから所定のフレーム数M(Mは自然数)が経過していない場合(ステップS106No)、ベクトル情報算出部14fは、操作情報取得部14aにより取得された現フレームtにおけるマウスカーソルの座標を内部メモリのワークエリアに保存する(ステップS107)。そして、動画化領域設定部14gは、ステップS105で識別された現フレームtにおける高頻度更新領域の属性情報を内部メモリのワークエリアに保存する(ステップS108)。
一方、前回に動画化の要否が判定されてから所定のフレーム数Mが経過した場合(ステップS106Yes)、動画化判定部14eは、ステップS105で高頻度更新領域が識別されたか否かにより、動画化を実施するか否かを判定する(ステップS109)。
このとき、動画化が実施されない場合(ステップS109No)、ベクトル情報算出部14fは、操作情報取得部14aにより取得された現フレームtにおけるマウスカーソルの座標を内部メモリのワークエリアに保存する(ステップS107)。そして、動画化領域設定部14gは、ステップS105で識別された現フレームtにおける高頻度更新領域の属性情報を内部メモリのワークエリアに保存する(ステップS108)。
一方、動画化が実施される場合(ステップS109Yes)、ベクトル情報算出部14fは、内部メモリに保存された1つ前のフレームt−1におけるマウスカーソルの座標を読み出す(ステップS110)。その上で、ベクトル情報算出部14fは、ステップS110で読み出された1つ前のフレームt−1におけるマウスカーソルの座標と、操作情報取得部14aにより取得された現フレームtにおけるマウスカーソルの座標とからマウスカーソルの移動方向及び移動量をベクトル情報として算出する(ステップS111)。
そして、動画化領域設定部14gは、内部メモリに保存された1つ前のフレームt−1における高頻度更新領域の属性情報を読み出す(ステップS112)。その上で、動画化領域設定部14gは、ステップS111で算出されたマウスカーソルのベクトル情報を用いて、ステップS112で読み出された1つ前のフレームt−1における高頻度更新領域と形状が類似する、高頻度更新領域識別部14dにより識別された現フレームtにおける高頻度更新領域を探索する(ステップS113)。
ここで、図10に示すように、1つ前のフレームt−1及び現フレームtの間で互いの形状が類似する高頻度更新領域の探索に成功した場合(ステップS114Yes)、動画化領域設定部14gは、1つ前のフレームt−1から現フレームtまでの移動方向および移動距離をフレーム間の移動ベクトルとして同定する(ステップS115)。
そして、動画化領域設定部14gは、現フレームtにおける更新領域を起点に設定すると共に移動ベクトルに定められた移動方向を目標に設定し、現フレームtから次に動画化の実施の要否が判定されるMフレーム後までのM回分にわたって現フレームtにおける更新領域を上記の移動ベクトルに定められた移動距離にしたがって移動させることにより、Mフレーム後に位置すると予測される予測更新領域を推定する(ステップS116)。
その上で、動画化領域設定部14gは、現フレームtにおける更新領域、Mフレーム後に位置すると予測される予測更新領域、又は、現フレームtからMフレーム後までの更新領域の移動軌跡のうち少なくともいずれか1つと重なる要素のブロブを動画化領域に設定する(ステップS117)。
一方、1つ前のフレームt−1及び現フレームtの間で互いの形状が類似する高頻度更新領域が探索できない場合(ステップS114No)、動画化領域設定部14gは、フレーム間の移動ベクトルを「0」に設定することにより、現フレームtの更新領域をMフレーム後に位置すると予測される予測更新領域に設定する(ステップS118)。この場合、動画化領域設定部14gは、現フレームtにおける更新領域を動画化領域に設定する(ステップS117)。
続いて、分割部14hは、ステップS118で設定された動画化領域の属性情報から動画化領域のサイズを算出し、動画化領域のサイズと後述のエンコーダ14mに実装されるCPUコア数とから、CPU1コアあたりの処理サイズを決定する(ステップS119)。その後、分割部14hは、動画化領域のサイズが所定の閾値、例えばCPU1コアあたりの処理サイズ以下であるか否かを判定する(ステップS120)。
このとき、動画化領域のサイズが所定の閾値以下である場合(ステップS120Yes)、後述のエンコーダ14mに実装されるCPUコアが発揮する性能で動画化領域全体をエンコードできると推定できる。この場合、動画化領域を分割することにより動画の圧縮符号化処理で発生するオーバーヘッドをあえて被らずともよい。したがって、分割部14hは、動画化領域の分割数を「1」に設定し(ステップS124)、ステップS123の処理へ移行する。
一方、動画化領域のサイズが所定の閾値を超える場合(ステップS120No)、動画化領域のサイズが後述のエンコーダ14mに実装されるCPUコアが発揮する性能では手に余ると判断できる。この場合、動画化領域の分割が実施される。
すなわち、分割部14hは、動画化領域のサイズ及びCPU1コアあたりの処理サイズに基づいて動画化領域の分割数を決定する(ステップS121)。さらに、その上で、分割部14hは、ステップS121で決定された動画化領域の分割数と、ステップS115で算出された移動ベクトルとから、動画化領域を分割する形状およびサイズを決定する(ステップS122)。その後、分割部14hは、ステップS122で決定された分割形状および分割サイズにしたがって動画化領域を分割し(ステップS123)、処理を終了する。
(2)第1の送信制御処理
図11は、実施例1に係る第1の送信制御処理の手順を示すフローチャートである。この処理は、一例として、画面更新間隔が経過する度に繰り返し実行される。図11に示すように、動画化判定部14eにより動画化の実施が決定されている場合(ステップS301Yes)、送信制御部14jは、画面生成部14bにより生成された更新領域のうち更新領域を1つ選択する(ステップS302)。
そして、送信制御部14jは、ステップS302で選択された更新領域が動画化領域設定部14gにより設定された動画化領域内に含まれるか否かを判定する(ステップS303)。このとき、更新領域が動画化領域内に含まれる場合(ステップS303No)、送信制御部14jは、当該更新領域を第1の画像送信部14kに送信させずにステップS305の処理へ移行する。
一方、更新領域が動画化領域内に含まれない場合(ステップS303Yes)、送信制御部14jは、第1の画像送信部14kに当該更新領域をクライアント端末30へ送信させる(ステップS304)。
その後、画面生成部14bにより生成された全ての更新領域が選択されるまで(ステップS305No)、上記のステップS302〜ステップS304の処理が繰り返し実行される。そして、画面生成部14bにより生成された全ての更新領域が選択された場合(ステップS305Yes)、処理を終了する。
なお、動画化判定部14eにより動画化の実施が決定されていない場合(ステップS301No)、送信制御部14jは、画面生成部14bにより生成された各更新領域を第1の画像送信部14kへ順次送信させ(ステップS306)、処理を終了する。
(3)第2の送信制御処理
図12は、実施例1に係る第2の送信制御処理の手順を示すフローチャートである。この処理は、一例として、動画化判定部14eにより動画化の実施が決定されている場合に実行される。図12に示すように、送信制御部14jは、分割部14hにより動画化領域が分割された各要素をエンコーダ14mの各CPUコアへ割り当てて入力する(ステップS501)。
そして、エンコーダ14mは、ステップS501でエンコーダ14mの各CPUコアに割り当てられた動画化領域の各要素を各CPUコアで並列してエンコードする(ステップS502)。
その後、第2の画像送信部14nは、エンコーダ14mにより動画化領域の要素ごとにエンコードされたエンコード画像をクライアント端末30へ送信し(ステップS503)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置10は、サーバがクライアントへ伝送するデスクトップ画面の動画化領域を分割する場合、動画化領域における更新領域の移動方向に沿って動画化領域を分割する境界線を設定して分割する。したがって、本実施例に係るサーバ装置10によれば、デスクトップ画面上で動画化する領域の圧縮効率が低下するのを抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、サーバ側リモート画面制御部14に含まれる処理部の一部をサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、サーバ側リモート画面制御部14に含まれる処理部の一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の伝送装置の機能を実現するようにしてもよい。
[伝送プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、上記の実施例と同様の機能を有する伝送プログラムを実行するコンピュータの一例について説明する。
図13は、実施例1及び実施例2に係る伝送プログラムを実行するコンピュータのハードウェア構成例を示す図である。図13に示すように、コンピュータ100は、操作部110aと、マイク110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図13に示すように、上記の実施例1で示したサーバ側リモート画面制御部14と同様の機能を発揮する伝送プログラム170aが記憶される。この伝送プログラム170aは、図1に示したサーバ側リモート画面制御部14の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から伝送プログラム170aを読み出した上でRAM180へ展開する。この結果、伝送プログラム170aは、図13に示すように、伝送プロセス180aとして機能する。この伝送プロセス180aは、RAM180が有する記憶領域のうち伝送プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、伝送プロセス180aが実行する処理の一例として、図9〜図11に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の伝送プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に伝送プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から伝送プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに伝送プログラム170aを記憶させておき、コンピュータ100がこれらから伝送プログラム170aを取得して実行するようにしてもよい。
1 シンクライアントシステム
10 サーバ装置
11a OS実行部
11b App実行部
12 グラフィックドライバ
13 フレームバッファ
14 サーバ側リモート画面制御部
14a 操作情報取得部
14b 画面生成部
14c 更新頻度測定部
14d 高頻度更新領域識別部
14e 動画化判定部
14f ベクトル情報算出部
14g 動画化領域設定部
14h 分割部
14j 送信制御部
14k 第1の画像送信部
14m エンコーダ
14n 第2の画像送信部
30 クライアント端末
31 入力部
32 表示部
33 クライアント側リモート画面制御部
33a 操作情報通知部
33b 第1の画像受信部
33c 第1の表示制御部
33d 第2の画像受信部
33e デコーダ
33f 第2の表示制御部

Claims (5)

  1. 端末装置に表示させる表示画面データを記憶するメモリと、
    前記端末装置が有する入力装置のポインタの位置を取得する取得部と、
    前記メモリに記憶された表示画面データを更新する更新部と、
    前記メモリに記憶された表示画面データのフレーム間で更新頻度が閾値以上である領域を識別する識別部と、
    前記ポインタの位置の軌跡から前記更新頻度が前記閾値以上である領域の移動方向を探索する探索部と、
    前記更新頻度が前記閾値以上である領域を分割する境界線を前記移動方向に沿って設定することにより前記領域を分割する分割部と、
    前記領域が分割された各要素の画像に関する動画圧縮を複数のプロセッサに割り当て並列処理する圧縮部と、
    前記各要素の画像に関する動画圧縮データを送信する送信部と
    を有することを特徴とする表示画面データの伝送装置。
  2. 前記探索部は、前記ポインタの位置の軌跡から前記更新頻度が前記閾値以上である領域の移動方向及び移動距離を探索し、
    前記分割部は、前記移動方向および前記移動距離に基づいて前記更新頻度が閾値以上である領域が所定のフレーム後までに移動する移動範囲に対応する領域を分割することを特徴とする請求項1に記載の表示画面データの伝送装置。
  3. 前記分割部は、前記移動範囲に対応する領域の面積と、前記複数のプロセッサの個数とに基づいて前記移動範囲に対応する領域を分割する分割数を決定することを特徴とする請求項2に記載の表示画面データの伝送装置。
  4. コンピュータが、
    端末装置が有する入力装置のポインタの位置を取得する処理と、
    前記端末装置に表示させる表示画面データを記憶するメモリに記憶された表示画面のデータを更新する処理と、
    前記メモリに記憶された表示画面データのフレーム間で更新頻度が閾値以上である領域を識別する処理と、
    前記ポインタの位置の軌跡から前記更新頻度が前記閾値以上である領域の移動方向を探索する処理と、
    前記更新頻度が前記閾値以上である領域を分割する境界線を前記移動方向に沿って設定することにより前記領域を分割する処理と、
    前記領域が分割された各要素の画像に関する動画圧縮を複数のプロセッサに割り当て並列処理する処理と、
    前記各要素の画像に関する動画圧縮データを送信する処理と
    を実行することを特徴とする表示画面データの伝送方法。
  5. コンピュータに、
    端末装置が有する入力装置のポインタの位置を取得する処理と、
    前記端末装置に表示させる表示画面データを記憶するメモリに記憶された表示画面データを更新する処理と、
    前記メモリに記憶された表示画面データのフレーム間で更新頻度が閾値以上である領域を識別する処理と、
    前記ポインタの位置の軌跡から前記更新頻度が前記閾値以上である領域の移動方向を探索する処理と、
    前記更新頻度が前記閾値以上である領域を分割する境界線を前記移動方向に沿って設定することにより前記領域を分割する処理と、
    前記領域が分割された各要素の画像に関する動画圧縮を複数のプロセッサに割り当て並列処理する処理と、
    前記各要素の画像に関する動画圧縮データを送信する処理と
    を実行することを特徴とする表示画面データの伝送プログラム。
JP2016051663A 2016-03-15 2016-03-15 表示画面データの伝送装置、伝送方法及び伝送プログラム Pending JP2017169001A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016051663A JP2017169001A (ja) 2016-03-15 2016-03-15 表示画面データの伝送装置、伝送方法及び伝送プログラム
US15/426,405 US20170269709A1 (en) 2016-03-15 2017-02-07 Apparatus, method for image processing, and non-transitory medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016051663A JP2017169001A (ja) 2016-03-15 2016-03-15 表示画面データの伝送装置、伝送方法及び伝送プログラム

Publications (1)

Publication Number Publication Date
JP2017169001A true JP2017169001A (ja) 2017-09-21

Family

ID=59855561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016051663A Pending JP2017169001A (ja) 2016-03-15 2016-03-15 表示画面データの伝送装置、伝送方法及び伝送プログラム

Country Status (2)

Country Link
US (1) US20170269709A1 (ja)
JP (1) JP2017169001A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818159B (zh) * 2017-10-31 2022-02-22 努比亚技术有限公司 一种信息处理方法、终端及计算机可读存储介质
EP3668096B1 (en) 2018-12-11 2025-05-14 Axis AB Method and device for encoding a sequence of image frames using a first and a second encoder
US11044474B2 (en) * 2019-02-18 2021-06-22 Glenfly Technology Co., Ltd. Image compression method and image processing system
CN113542752A (zh) * 2019-02-19 2021-10-22 西安万像电子科技有限公司 视频数据处理方法及装置
EP3713235B1 (en) * 2019-03-19 2023-08-02 Axis AB Methods and devices for encoding a video stream using a first and a second encoder
CN111240621B (zh) * 2020-01-06 2022-01-25 Oppo广东移动通信有限公司 用于控制显示屏的显示频率的方法、装置及电子设备
US20250022179A1 (en) * 2023-07-13 2025-01-16 Sony Group Corporation Mesh segmentation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630565B2 (en) * 2004-11-30 2009-12-08 Lsi Corporation Parallel video encoder with whole picture deblocking and/or whole picture compressed as a single slice
JP5737082B2 (ja) * 2011-08-31 2015-06-17 富士通株式会社 ポインタ位置補正方法、ポインタ位置補正プログラムおよびサーバ装置
JP5899897B2 (ja) * 2011-12-20 2016-04-06 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP5890688B2 (ja) * 2012-01-06 2016-03-22 キヤノン株式会社 情報処理装置、制御方法及びプログラム
US9400801B1 (en) * 2013-02-07 2016-07-26 Parallels IP Holdings GmbH System and method for local file management and editing utilizing remote applications

Also Published As

Publication number Publication date
US20170269709A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
JP5471794B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
US20130155075A1 (en) Information processing device, image transmission method, and recording medium
US8953676B2 (en) Information processing apparatus, computer-readable storage medium storing image transmission program, and computer-readable non transitory storage medium storing image display program
JP5685840B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
CN105224390B (zh) 一种虚拟桌面压缩的方法
JP5664289B2 (ja) 情報処理装置、画像送信プログラムおよび画像表示方法
US20170269709A1 (en) Apparatus, method for image processing, and non-transitory medium storing program
JP5761007B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
US9300818B2 (en) Information processing apparatus and method
US10496357B2 (en) Event latency mitigation and screen selection
US9666166B2 (en) Information processing apparatus, method, and recording medium
JP5899897B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8411972B2 (en) Information processing device, method, and program
JP6003049B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
JP5874257B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
CN116916028A (zh) 使用虚拟分辨率调整的视频流缩放
US20160155429A1 (en) Information processing apparatus and terminal device
JP2016012797A (ja) 描画システム、情報処理装置、端末装置、描画制御プログラム、描画プログラム、及び描画制御方法
WO2014080440A1 (ja) 情報処理装置、制御方法、制御プログラム