JP5750786B2 - Simd命令を用いるrdpビットマップハッシュアクセラレーション - Google Patents

Simd命令を用いるrdpビットマップハッシュアクセラレーション Download PDF

Info

Publication number
JP5750786B2
JP5750786B2 JP2011552058A JP2011552058A JP5750786B2 JP 5750786 B2 JP5750786 B2 JP 5750786B2 JP 2011552058 A JP2011552058 A JP 2011552058A JP 2011552058 A JP2011552058 A JP 2011552058A JP 5750786 B2 JP5750786 B2 JP 5750786B2
Authority
JP
Japan
Prior art keywords
key
image
data
big
bits
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.)
Expired - Fee Related
Application number
JP2011552058A
Other languages
English (en)
Other versions
JP2012519327A5 (ja
JP2012519327A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012519327A publication Critical patent/JP2012519327A/ja
Publication of JP2012519327A5 publication Critical patent/JP2012519327A5/ja
Application granted granted Critical
Publication of JP5750786B2 publication Critical patent/JP5750786B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Processing (AREA)

Description

本発明は、SIMD命令を用いるRDPビットマップハッシュアクセラレーションに関する。
コンピュータはかつては分離され、他のコンピュータとの最小の又は僅かのインターラクション(対話)を行ったけれども、今日のコンピュータはLAN(Local Area Networks)及びWAN(Wide Area Networks)等の通信ネットワークを介して他の広く様々なコンピュータとのインターラクションを行う。インターネットの広く拡がった発展で、コンピュータ間の接続は最も重要となり、また、多くの新しいアプリケーション及び技術をもたらしている。大きいスケールのネットワークの発展、及び低コストのパーソナルコンピュータの広く拡がった利用は、多くの人々が働き、インターラクションを行い、通信し、及びプレイする方法を機能的に変化させた。
ネットワーキングの1つの増加する人気がある形式は一般に仮想コンピューティングシステムと称され、それはRDP(リモートデスクトッププロトコル)、ICA(インディペンデントコンピューティングアーキテクチャ)、更に、デスクトップ及びリモートクライアントを有する他のアプリケーションを共有するその他等のプロトコルを利用する。そのようなコンピューティングシステムは一般にクライアントからサーバへキーボードプレス及びマウスクリック又は選択を送信し、ネットワーク接続(例えば、インターネット)を介して他の方向に画面アップデートを中継する。そのため、実際に、アプリケーションのスクリーンショットがサーバ側で表れるようにクライアント装置がそのスクリーンショットを送られるだけの場合ユーザはそれらのマシーンがLANの一部として動作しているように体験する。
グラフィックデータをクライアントに送る2つの共通の技術は、何かの描写方法をクライアント側でサブルーチンに示すグラフィックプリミティブ及び他の動作を送ることおよび、表示のためにクライアントにビットマップイメージを送ることである。プリミティブのシーケンスが非常に複雑であるときには、より複雑なプリミティブ動作の潜在的に長いシーケンスではなく、もっと簡単に表示することができるビットマップ描画を送ることが更に意味を持つかもしれない。しかしながら、何よりもビットストリーム圧縮器の限定及び限定されたネットワークバンド幅のために画面の完全なビットマップ描画を連続的に送るにはあまりにも高価になる。
それらの問題を軽減するために、クライアントに送信されているフレーム(アプリケーションウインドウ等)はタイルに更に細かく分割することができる。それらのタイルはクライアント側でキャッシュされる。1つのタイルが2つのビットマップ間で繰り返されるとき、そのタイルをクライアントに再送信するよりはむしろ、サーバはクライアントに対して命令を送信してキャッシュしたタイルを表示させる。これはRDPセッションのバンド幅コストを大きく減らすことができ、特にRDPセッションでタイルは頻繁に繰り返される。しかしながら、これを行う場合、処理するリソースをキャッシュするタイルに充てなければならない。
更に、タイリングアルゴリズムはキャッシュヒットの可能性を最大化するように度々実施される。タイルがより小さくする場合にはそれが2回(そのフレーム内又は将来のフレームで)用いられる可能性が高まる。しかも最小の有用タイルサイズがある。なぜならば、タイルがあまりにも小さいと2つのタイル間のキャッシュヒットから受けられる利点は小さいからである。
それらのRDPビットマップキャッシングアルゴリズム及びタイル間の差(「タイル差異」)の検出は、RDP表示ストリームを、LAN、WAN又は無線LAN(wLAN)を介した送信にふさわしいレベルまで減少させるために、非常に重要である。それらのキャッシングアルゴリズムは一般に、ネットワークを介してクライアントに情報を送信するためにサーバに要求されたバンド幅の減少量に代えてサーバの(CPUの頻繁な)処理時間を犠牲にする。
RDPビットマップキャッシングの主要な処理コストの1つはハッシュアルゴリズムを使用することである。ハッシュアルゴリズムは、より大きいイメージデータを、より小さいデータに変換するアルゴリズムである。この小さいデータはアレイ又はツリーのようなソートのデータ構造で、インデックスとして用いられる。いくつかのハッシュアルゴリズムはCBC(暗号ブロック連鎖)アルゴリズム、又はCBCアルゴリズムを実装している。しかしながら、このハッシュアルゴリズムで使用される処理時間はサーバのスケーラビリティを阻止してしまうことがある。サーバのネットワークバンド幅等の他のリソースが使い果たされる前に、全ての利用可能な処理リソースをRDPセッションが使用してしまうからである。また、この処理時間は、イメージフレームを符号化するために必要な時間を増加させる。なお、それらのフレームはこの時間レートで生成され、クライアントに送られる(フレームレート(FPS))。
現在のパラレルプロセッサでハッシングアルゴリズムの速度を増加させることは難しい。なぜならば、CBCハッシュアルゴリズムは、通常、シリアルであり、それはシングル命令のデータ(SIMD)プロセッサのようなパラレル処理に好適でない。
それらのISA(命令セットアーキテクチャ)のSIMD命令を有するベクトルプロセッサとして知られたクラスのプロセッサが存在する。NEHALEM(登録商標)プロセッサのようないくつかのインテル(登録商標)x86 ISAプロセッサにおけるSEE4.2命令等のSSE(Streaming SIMD extensions:ストリーミングSIMD拡張命令)はそれらのSIMD命令の形式である。それらのプロセッサは、一度にデータのかなりの部分を処理することができるので所定のタイプのデータの処理を高速化することができる。例えば、イメージが処理される場合に、1回に1つの画素について処理する代わりに、SIMDプロセッサは1つの命令でパラレルに数画素について処理することができる。命令自身を処理することのパフォーマンスを改善するだけでなく、メモリからデータをフェッチするために費やす時間を減少させることができる。
SIMD命令は、圧縮のためにイメージデータを処理すること等のいくつかの種類の処理のパフォーマンスを改善するための機会を提供するが、一方、その処理を実行するために必要なアルゴリズム及び技術は、非ベクトルプロセッサの場合よりもかなり難しい。パラレルに処理できるように、データの流れに対して、またデータを組織化することに対して特別の注意を払う必要がある。結局のところ、新しい技術はRDPタイルにおけるハッシング動作においてパラレル処理を増加させるという利点がある。
アクセラレーションのための本技術は、シリアルアルゴリズムが動作するほど多数のビットにてハッシュアルゴリズムをパラレルにコンピューティング処理し、それらの別々にコンピューティング処理したハッシュを組み合わせてそのイメージに対するハッシュを決定することによってパラレル処理を利用する。これは、コリジョンヒットレートを増加させることなく処理のために要求される時間をCPUにおいて大きく減少させる。そのレートでハッシュアルゴリズムに対する2つの異なる入力は同一の出力、少量だけを生成する。多くのRDPタイルハッシング状態においてコリジョンヒットレートにおけるこの少ない増加は容認することができる。
本技術は、ハッシング速度における増加からの利点がある一方、コリジョンヒットレートにおける少しの増加を容認することができる限り、RDPタイル分類を越えた状態において有益である。このコリジョンヒットレートの増加は非常に少なく、ほぼ(100/2^192)%である。
本技術は2つの場合にRDPについてかなりの進歩を示す。第一に、ビットマップタイルのハッシュをコンピューティング処理するためにCBCハッシュアルゴリズム又はCBCタイプのハッシュアルゴリズムを用いることができる。そのビットマップタイルが再度出現されるならば、ハッシュ機能は同一のキャッシュキーを生成し、サーバはそのビットマップを再送することを避けることによってバンド幅を節約することができる。
第二に、RDPが全くの画面(スクリーン)スクレイピングを用いて動作している場合に(他のプログラムの表示出力からイメージデータを抽出する)、どのタイルがフレーム間で変化したかの素早い比較を行うために各新しいフレームについてイメージタイルのハッシュをコンピューティング処理するためにこの同じハッシュ機能を用いることができる。
それらの両方の場合は、ハッシュ機能が通常、RDPスタックの最高のCPUコストの1つであり、RDPがいくつかの場合に限定されたCPUであるので、CPUコストを減少させることはRDPの性能を増大させることを可能にすることを意味する。
この分野の当業者にとっては当然のことであるが、開示技術の1以上の様々な態様は本開示の本明細書で言及した態様をもたらす回路及び/又はプログラミングを含んで良いが、それに限定されない。その回路及び/又はプログラミングは実質的には、システムデザイナーの設計的選択に従って本明細書で言及した態様をもたらすように構成されたハードウエア、ソフトウエア、及び/又はファームウエアの組み合わせであることができる。
上記したことは概要であり、当然、単純化、一般化 及び詳細の省略を含む。概要は単に示すだけであり、何らかに限定しているつもりではないことはこの分野の当業者には当然である。
本明細書に応じたハッシュアクセラレーションのためのシステム、方法、及び媒体読み取り可能なコンピュータは次の添付図面を参照して更に詳細に説明される。
本明細書に説明されたハッシュアクセラレーションを実施することができる汎用コンピューティング環境を例示する図である。 ハッシュアクセラレーションの動作処理を例示するブロック図である。 上記したアクセラレーションを施したタイル差分技術を利用するRDP(リモートデスクトッププロトコル)を介して通信するクライアント及びサーバを示す図である。
図1は本明細書に説明された技術を使用することができる汎用コンピューティング装置のブロック図である。コンピューティングシステム環境120は適切なコンピューティング環境の単なる一例であり、ここで開示した構成要件の使用又は機能の範囲について限定を示唆するつもりではない。そのコンピューティング環境120はコンピューティング環境120の例に示されたコンポーネントのいずれか1つ又は組み合わせについて依存関係又は要件を有するように解釈されるべきでない。いくつかの実施形態においては、示された様々なコンピューティング要素が本開示の特定の態様を実施例として説明するために構成された回路を含んでも良い。例えば、本開示に用いられた用語である回路はファームウエア又は複数のスイッチによって機能をなすように構成された専用のハードウエアコンポーネントを含むことができる。他の実施形態の例において、用語の回路は機能をなすために動作可能な論理回路を実施するソフトウエア命令によって構成される汎用処理ユニット、メモリ等を含むことができる。実施形態の例において、回路はハードウエアとソフトウエアとの組み合わせを含む場合に、実施者は論理回路を実施するソースコードを書いても良いし、そのソースコードをその汎用処理ユニットによって処理が可能なマシーン読み取り可能なコードにコンパイルしても良い。この技術分野の当業者には、技術の状態がハードウエア、ソフトウエア、又はハードウエアとソフトウエアとの組み合わせの間に少しの差異があることに展開してしまうことが当然であるので、特定の機能を達成するためにハードウエアとソフトウエアとの間の選択は実施者に残された設計上の選択事項である。特に、この技術分野の当業者には、ソフトウエア処理を同等のハードウエア構成に変換することができ、ハードウエア構成をそれ自身、同等のソフトウエア処理に変換することができることは当然のことである。よって、ハードウエア実施とソフトウエア実施との間の選択は設計上の選択事項であり、実施者に残されている。
コンピュータ141は一般に様々なコンピュータ読み取り可能な媒体を含む。コンピュータ読み取り可能な媒体はコンピュータ141がアクセスすることができる媒体であっても良く、揮発性媒体及び不揮発性媒体、リムーバブル媒体及び非リムーバブル媒体の両方を含む。システムメモリ122はROM(リードオンリメモリ)123及びRAM(ランダムアクセスメモリ)160等の揮発性メモリ及び/又は不揮発性メモリの形でコンピュータ記憶媒体を含む。スタートアップ期間等にコンピュータ141内の要素間の情報を転送する手助けとなる基本ルーチンを含む基本入力/出力システム(BIOS)124は、通常、ROM123に保存される。RAM160は通常、処理ユニット159に直ちにアクセス可能及び/又はそれによって現在動作されているデータ及び/又はプログラムモジュールを含む。例として、限定されないが、図1はオペレーティングシステム125、アプリケーションプログラム126、他のプログラムモジュール127、及びプログラムデータ128を示している。
また、コンピュータ141は他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体を含んでも良い。単なる例として、図1は非リムーバブルの不揮発性磁気媒体について読み取り又は書き込みするハードディスクドライブ138、リムーバブルの不揮発性磁気ディスク154について読み取り又は書き込みする磁気ディスクドライブ139、及びCD−ROM又は他の光媒体等のリムーバブルの不揮発性光ディスク153について読み取り又は書き込みする光ディスクドライブ140を示している。動作環境の例において使用することができる他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体は、限定されないが、磁気テープカセット、フラッシュメモリカード、ディジタルバーサタイルディスク、ディジタルビデオテープ、半導体RAM、半導体ROM等を含む。ハードディスクドライブ138は通常、インターフェース134等の非リムーバブルメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ139は通常、インターフェース135等のリムーバブルメモリインターフェースによってシステムバス121に接続されている。
上記しかつ図1に示したドライブ及びそれらに関連したコンピュータ記憶媒体はコンピュータ読み取り可能な命令、データ構造、プログラムモジュール及びコンピュータ141のための他のデータの記憶を提供する。例えば、図1において、ハードディスクドライブ138は、オペレーティングシステム158、アプリケーションプログラム157、他のプログラムモジュール156、及びプログラムデータ155を記憶するとして示されている。それらのコンポーネントは、オペレーティングシステム125、アプリケーションプログラム126、他のプログラムモジュール127、及びプログラムデータ128と同じ又は異なっても良い。オペレーティングシステム158、アプリケーションプログラム157、他のプログラムモジュール156、及びプログラムデータ155は少なくとも異なるコピーであることを示すためにここでは異なる符号で与えられている。ユーザはキーボード151、一般にマウスと呼ばれるポインティングデバイス152、トラックボール又はタッチパッド等の入力装置を介してコンピュータ141に命令及び情報を入力することができる。他の入力装置(図示せず)としてはマイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナー等を含むことができる。それらの入力装置及び他の入力装置は、システムバスに接続されているユーザ入力インターフェース136を介して処理ユニット159に度々接続されるが、パラレルポート、ゲームポート又はUSB(ユニバーサルシリアルバス)等の他のインターフェース及びバス構造によって接続されても良い。また、モニタ142又は他の種類の表示装置は、ビデオインターフェース132等のインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータはスピーカ144及びプリンタ143等の他の周辺出力装置を含んでも良く、それらは出力周辺インターフェース133を介して接続することができる。
コンピュータ141はリモートコンピュータ146等の1以上のリモートコンピュータに論理結合を用いてネットワーク化された環境で動作することができる。リモートコンピュータ146は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス又は他の共通のネットワークノードであっても良く、図1にはメモリ記憶装置147だけが示されているが、通常、コンピュータ141と関連して上述された多くの要素又は全ての要素を含む。図1に示された論理結合はLAN(ローカルエリアネットワーク)145及びWAN(ワイドエリアネットワーク)149を含むが、他のネットワークを含んでも良い。そのようなネットワーキング環境はオフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットにおいて通常である。
LANネットワーキング環境において使用されるとき、コンピュータ141はネットワークインターフェース又はアダプタ137を介してLAN145に接続される。WANネットワーキング環境において使用されるとき、コンピュータ141は通常、インターネット等のWAN149を介して通信を確立するためにモデム150又は他の手段を含む。内部又は外部に備えることができるモデム150はユーザ入力インターフェース136、又は他の適当な機構を介してシステムバス121に接続されても良い。ネットワーク化された環境において、コンピュータ141に関連して示されたプログラムモジュール、又はその一部はリモートメモリ記憶装置に保存されても良い。例として、限定されないが、図1はメモリ装置147に属するとしてリモートアプリケーションプログラム148を示している。示されたネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段が用いられても良いことは当然である。
図2はハッシュアクセラレーションの動作処理を例示している。シリアルハッシング処理は1度にイメージデータの1つのDWORD(ダブルワード;多くのシステムアーキテクチャでは32ビットである)を取り扱い、そのイメージの前で開始し、その後で動作する。シリアルハッシング処理はそのイメージについての1つのキーを演算し、それは処理されるイメージの新たなDWORD各々に基づいて更新される。それに対して、本動作処理の例は1度に複数のDWORDについて動作する。実施形態において、DWORDが32ビットからなり、プロセッサが同時に128ビットについて動作することができる場合に、データの4つのDWORDであることができる。処理はそのイメージに対して4つの部分キーを保持し、その1つがパラレルに動作される各DWORDに対応し、イメージの全てが最終キーを生成するために処理されると、それらの4つの部分キーを結合する。
オプション動作202は第1のランダム値及び第2のランダム値を選択することを示し、第1のランダム値は第2のランダム値と異なる。
オプション動作204はゼロに等しいチェックサム、データ、第1のキー及び第2のキーの各々を選択することを示している。いずれかの実施形態においては、チェックサム、データ、第1のキー及び第2のキーは、本動作が開始する前ではゼロに等しく、それによりこの点でそれらをゼロにする必要はない。その技術は合計の実行を継続するためにそれらの4つの数を用いる場合に、それらをゼロに設定することによって動作が初期化されても良い。チェックサム及びデータは第1のキー及び第2のキーを決定するために用いられる内部変数として用いることができる。第1のキー及び第2のキーはイメージについてのビッグキーを備えても良い。ビッグキーは、イメージ自身を調べるために、サーバがクライアントにイメージを送ったか否かを調べるように、又はクライアントが既に受け取ったイメージの代わりにビッグキーを受け取るように、イメージ又はそれについての参照を調べるために後で用いられる。それらの2つのコンポーネント、第1のキー及び第2のキーとしてビッグキーを計算し、そして、それらを結合することがモノリシックのビッグキーを計算するよりも速い。
動作206はイメージを少なくとも1つのグループにグループ化することを示し、各グループはビット幅に等しいイメージのビット数からなる。プロセッサは1度にデータの1ビット以上について動作する。例えば、128ビットプロセッサは1度にデータの128ビッドについて動作することができる。このプロセッサは128ビットの「ビット幅」を有する。その128ビットは128ビットの数を表す1つ等の同一のデータ構造である必要はない。むしろ、128ビットは4つに分かれた32ビットの整数、又は8つに分かれた16ビットの整数等の多数のピースデータを備える。そのような状態では、命令は、4つの32ビット整数のグループについて動作が行われるときその動作の結果(倍数、論理シフト等)は128ビットにおいて隣接する整数にオーバフローしない。
実施形態において、イメージは画面スクレイピングを備え、画面スクレイピングは他のプログラムの表示出力からデータを取り出すことを含む。このデータは他のプログラムによって出力装置で表示されるべきものであったので、それを解析することの助けとなるドキュメンテーション又は構造を一般的に欠いている。
実施形態において、イメージはRDP(リモートデスクトッププロトコル)においてタイルを備え、そのタイルはビットマップを含む。タイルはフレームのサブセットを備えても良く、フレームは通常、アプリケーションウインドウを備える。一般的な実施形態において、フレームは複数の長方形のタイルに分割され、変化されたそれらのタイルだけがクライアントに送られることが必要である。
実施形態において、イメージが配列境界に配列されていない場合に、第1のビット境界の前のイメージの最初の数ビットはシリアルCBC(暗号ブロック連鎖)アルゴリズムでハッシュ処理され、事前の第1のキー及び事前の第2のキーを生成する。例えば、本動作がパラレルに128ビットで動作し、イメージが128ビットの境界に配列され、そのイメージの最初の128ビット境界の前に生じているそのイメージの56ビットである場合に、それらの56ビットがシリアルCBCアルゴリズムでハッシュ処理され、その結果の事前の第1のキー及び事前の第2のキーはシリアルCBCアルゴリズムを介して次の動作のその結果の第1のキー及び第2のキーと各々結合される。
動作208はグループ毎に、チェックサムにグループを加算してチェックサムを設定し、第1のランダム数によって掛け算され、更に第2のランダム数と合計されたデータとグループとの合計となるようにデータを設定し、第1のキーをデータによって修正された第1のキーに設定し、第2のキーをデータによって修正された第2のキーに第2のキーを設定することを含むハッシュを実行することを示している。
実施形態において、第1のキーは、第1のキー及びデータについて排他的論理和(exclusive-or)動作を行うことによりデータによって修正され、第2のキーは、第2のキー及びデータについて排他的論理和動作を行うことによりデータによって修正される。排他的論理和はビット単位の動作であり、2つの入力のいずれか一方が1であれば、2つの入力の結果は1である。例えば、ここで、^は排他的論理和を表し、0^0=0,0^1=1,1^0=1,1^1=0である。
イメージは開始位置及び終了位置を有するように考えられても良く、実施形態において、グループ毎に実行される動作は、グループ毎に未だ実行されていない、開始位置に最も近いグループに対して先ず実行される。すなわち、本技術はイメージを通して連続的に処理し、1度に1つのグループのビットを取り扱い、イメージの終了に達するまで、次のグループのビットに対して同じことする前に処理する。
実施形態において、ハッシュはCBC(暗号ブロック連鎖)ハッシュを含む。
オプション動作210は第1のキーのビットの各DWORDサイズに基づいてDWORD第1のキーを設定し、第2のキーのビットの各DWORDサイズに基づいてDWORD第2のキーを設定することを示している。
第1のキー及び第2のキーの各々はプロセッサのビット幅より少ないビットを備える場合に、部分的なキーが計算される。イメージの全てが処理されているとき、それらの部分的なキーは完全な第1のキー及び第2のキーを決定するために用いられる。第1のキー及び第2のキーの各々が32ビットを有し、そのビット幅が128ビットである場合の実施形態を取るとする。この実施形態において、128ビットのイメージは同期して処理され、4つの32ビットの部分的な第1のキー及び4つの32ビットの部分的な第2のキーを生成する。イメージ全体が処理されたときに、それらの4つの部分的なキーの各々はフルキー、すなわちDWORD第1のキー及びDWORD第2のキーを決定するために用いられる。
実施形態において、その4つの部分的な第1のキーはそれら一緒に排他的論理和(XOR)をとることによりDWORD第1のキーを決定するために用いられる。4つの部分的な第1のキーはKey1[0],Key1[1],Key1[2],Key1[3]のように表現される場合に、この動作はKey1[0]^Key1[1]^Key1[2]^Key1[3]のように論理的に表現されることができる。
実施形態において、4つの部分的な第1のキーはシリアルCBCハッシュアルゴリズムを用いてそれらを結合することによりDWORD第1のキーを決定するために用いられる。実施形態において、Key1[0]はKey1[1]とCBCハッシュ処理され、その結果はKey1[2]とCBCハッシュ処理され、その結果はKey1[3]とCBCハッシュ処理される。
オプション動作212は、ビット幅によって分割されたイメージサイズがゼロ以外の残りのビット数を有するとき、シリアルアルゴリズムによってその残りのビット数をハッシュ処理してポスト第1のキー及びポスト第2のキーを生成し、そのポスト第1のキーに基づいて第1のキーを決定し、そのポスト第2のキーに基づいて第2のキーを決定することを示している。イメージがビット幅によって均等に分けることができるビット数を有する場合に、上記した動作説明のように一連のパラレル動作がイメージのビット毎に行われても良い。しかしながら、イメージがビット幅によって均等に分けることができないビット数を有する場合には、上記のパラレルハッシングとは対照的に、それらの最終ビットの従来のシリアルハッシングが行われても良い。結果として生じるポスト第1のキー及びポスト第2のキーは、第1のキー及びポスト第1のキーについてシリアルCBCハッシュ処理の実行結果に第1のキーを設定すること、また、第2のキー及びポスト第2のキーについてシリアルCBCハッシュ処理の実行結果に第2のキーを設定すること等によって、第1のキー及び第2のキーと結合されても良い。
実施形態において、イメージは終了位置を有し、イメージの一部は残りのビット数よりその終了位置に近くない。すなわち、残りのビットはイメージの最終ビットであると考えられ、それらは、全ての処理ビットが一度にビットのビット幅数をパラレル方式で処理された後、シリアル方式で処理される。
実施形態において、このシリアル処理から計算される第1のキー及び第2のキーは、各第1のキーのシリアルCBCハッシュ及び各第2のキーのシリアルCBCハッシュ、各第1のキー及び各第2のキーのXOR動作を介する等の上記したパラレル処理から計算された第1のキー及び第2のキーと結合される。
動作214は、第1のキー及び第2のキーからなるビッグキーをビッグキーストアに保存することを示している。ハッシュ処理されると、イメージをメモリアドレスに、ツリー等のデータ構造で保存することができ、データはそのメモリアドレスの位置でそのイメージをアクセスするために用いられる。例えば、アレイメモリ構造が用いられる場合に、データはそのアレイに対するインデックスとして役目を果たし、イメージはアレイのデータインデックスで保存される。
各キーが32ビットからなる場合に、ビッグキーは64ビットからなり、それによりビッグキーに対して2^64の可能な値が存在する。実施形態において、コリジョンの可能性(2つの異なるイメージタイルが同一のビッグキーに対応する)の一方、それが起きることの可能性は非常に小さいので、コリジョンを検出するために要求される処理リソースは1を検出し、コリジョンが無視されて正しくないイメージが使用されるかもしれない正しいタイルイメージを識別する利益を大きく上回る(いずれか2つのビッグキー間として2^64のうちで約1)。
動作216はイメージを符号化することを示している。実施形態において、これはRLE(ランレングス符号化)を介してイメージを符号化することを含む。実施形態において、これは異なるコードを有するイメージの異なる部分を符号化することを含む。例えば、医師によって用いられる医療のX線のようにイメージの一部が無損失品質で表示されなければならない場合に、無損失コーデックで符号化されても良い。イメージの他の部分は白い背景に黒のテキストでもよく、RLEアルゴリズムでそれを符号化することは最大量(及び無損失)によってその空間を減少させる。この場合に、それらの2つのコーデックをイメージの適当な部分について用いても良い。実施形態において、イメージのカラーチャネルが分けられ、RGBAイメージがその個々の赤(R)、緑(G)、青(B)、アルファ(A)カラーチャネルに分けられ、それらのチャネルの各々が個別に符号化される。
動作218はイメージを通信ネットワークを介してクライアントコンピュータに送信することを示している。これは、イメージがクライアントに既に送信されている場合には必要なく、クライアントは受け取ったイメージをキャッシュ格納する。この場合に、クライアントにはビッグキーを送信しても良い。クライアントは本動作を実行する装置によって維持されたハッシュテーブルと同様の受信したイメージのハッシュテーブルを維持しても良い。この状態において、ビッグキーを受信する場合に、クライアントはそのハッシュ構造に対するインデックスとしてビッグキーを使用し、対応するイメージを受信し、データではなくイメージを受信したようにイメージを処理することができる。
図3は上記したアクセラレーションを施したタイル差分技術を利用するRDP(リモートデスクトッププロトコル)を介して通信するクライアント及びサーバを示している。サーバ302はRDPサーバ304、キーデータベース306、及び少なくとも1つのピットマップイメージ308を備えている。イメージ308は少なくとも1つのタイル310に分割され、各タイルはビットマップを含む。サーバ302は通信ネットワーク312を介してクライアント314と通信する。クライアント314はRDPクライアント316、及びタイルデータベース318を備え、表示装置320に接続されている。
クライアント314とサーバ302との間のRDPセッションにおいては、サーバ302が実行している処理に対応してサーバ302はネットワーク312を介してクライアントにイメージ情報を送信する。例えば、クライアント314はサーバでテキストエディターを実行している場合にRDPセッションを有しても良い。クライアント314は現在の編集位置でテキストエディターに一連の文字を入力する、又は新しいファイルを開くようにサーバ302に命令を送信する。それらの命令はサーバ302で処理され、その結果の表示出力は表示装置320における表示のためにクライアント314に送り戻される。そのような実施形態において、イメージ308は所定の時点でテキストエディターのアプリケーションウインドウを含んでも良い。ユーザがアプリケーションウインドウのボトム近くに新しいテキストを加えるならば、アプリケーションウインドウのトップ位置が近い将来には変更しなくて良い。それで、イメージ308は複数のタイル310に分割されても良く、複数のイメージ308が時間を掛けてクライアント314に送信されるとき、各イメージは複数のタイル310として送信され、先行のタイル310全てとは異なるタイル310だけが送信される必要がある。クライアント314はタイルキャッシュ318で前に受信したタイル310をキャッシュ格納しても良く、タイル310が繰り返される場合に、サーバ302はタイル308自身ではなくそのタイルの指示(インディケーション)をクライアント314に送信しても良い。タイルキャッシュ318で現在キャッシュ格納されている第1のタイルは繰り返しのタイルとして同じ位置にある必要はない。例えば、テキスト編集セッションにおける新しい文書で大部分のタイルは何もなくホワイトスペースであり、そのため1つのピュアなホワイトタイルはそれらの複数のピュアなホワイトタイルの全てのために何回使用されても良い。
サーバ302がイメージ308についての要求を受信する第1の時間は第1のタイル310を取り扱い、ビッグキーを決定するためにそれをハッシュ処理する。サーバ302は図2に示された技術に応じてタイル310をハッシュ処理する場合に、そのキーは第1のキー及び第2のキーを含む。サーバ302はそのタイルを、タイル310が属するイメージのタイルの表示と共にRDPクライアント316に送信するためにRDPサーバ304を使用し、キーデータベース306にそのタイルに対するビッグキーを保存する。キーデータベースはツリー等の、整数を保存するための様々なデータ構造を備えても良い。
連続的なタイル310毎に、サーバ302はそのためのビッグキーを決定し、キーデータベース306に対してこれを照合する。キーデータベース306で一致がない場合に、同一のイメージを表すタイルがクライアント314に以前に送信されていないことを示し、サーバ302はクライアント314にそのタイルを送信し、以前通りにキーデータベース306にそれに対するビッグキーを保存する。クライアントはRDPクライアント316でタイルを受信し、ビッグキーと共にタイルキャッシュ318にそれをキャッシュ格納する。ビッグキーは、ハッシュテーブルのインデックスとして役目を果たすように、タイルキャッシュ318にイメージを格納するためにキーとして用いられても良い。
キーデータベース306においてこのタイルに対する一致がある場合にそれはサーバ302がこのタイルと同じイメージを表すタイルを以前送信したことを意味する。従って、クライアント314にタイル310を送信するのではなく、ネットワークリソースを節約するために、サーバ302は、より少ない量のデータを含む、対応するビッグキーをクライアント314に送信する。第1のキー及び第2のキー各々が32ビットのデータからなる場合に、ビッグキーは64ビットからなる。クライアント314はRDPクライアント316でそのキー及びデータを受信し、RDPクライアント316はタイルキャッシュ320において対応するタイルを格納するためにビッグキーを使用する。
RDPクライアント316はタイル自身を受信するか又は対応するビッグキーを受信してタイルキャッシュ318にそのタイルを捜し出すかのいずれかでタイルを所有する。タイル又はビッグキーと共に、RDPクライアント316はタイル310が含むイメージ308の一部の指示を受信する。RDPクライアント316はクライアント表示装置320でイメージの適当な部分にそのタイル310を表示する。
サンプル命令
次はベクトルプロセッサで実行されたとき図2の詳細な説明と同様に本開示の実施形態のようにイメージについて動作する、高レベルプログラミング言語Cタイプ構文におけるサンプル疑似コードを含む。
Figure 0005750786
Figure 0005750786
Figure 0005750786
むすび
本開示は様々な図に示されたように好ましい態様について説明されたが、他の同様の態様が用いられても良く、又は変更及び追加が本開示から離れることなく本開示の同一の機能を実行するための説明した態様に施されても良いことは理解される。よって、本開示はいずれか1つの態様に限定されるべきではなく、むしろ特許請求の範囲に応じて広さ及び範囲において構成される。例えば、本明細書で説明した様々な処理についてはハードウエア又はソフトウエア、又は両方の組み合わせで実施することができる。よって、開示した実施形態の方法及び装置、又はそれの所定の態様又は所定の部分は、フロッピーディスク、CD−ROM、ハードドライブ、又は他のマシーン読み取り可能な記憶媒体等の有形的表現媒体に具体化されたプログラムコード(すなわち、命令)の形をとっても良い。プログラムコードが、コンピュータ等のマシーンによって読み込まれて実行されるとき、そのマシーンは開示した実施形態を実行するために構成された装置となる。本明細書で明白に説明した特定の実施例に加えて、他の態様及び実施はこの技術分野の当業者には本明細書で開示された記載の事項から明らかである。明細書及び図示した実施例は単なる例として考慮されることを意図したものである。

Claims (10)

  1. パラレル処理システムにおいてイメージを処理する方法であって、前記方法は、第1のランダム数、該第1のランダム数と異なる第2のランダム数、データ、第1のキー及び第2のキーを用い、
    前記イメージを、各グループがビット幅に等しい前記イメージのビット数を含むように少なくとも1つのグループに分割するステップであって、前記ビット幅は、前記パラレル処理システムのプロセッサが一度に操作することが可能なビット数に対応する、ステップと、
    グループ毎に、ハッシュ処理を実行するステップであって、
    前記データの新たな値を、前記グループの値と、前記第1のランダム数によって乗算されかつ前記第2のランダム数と合計された前記データの現在の値との合計に等しく設定するステップと、
    前記第1のキーの新たな値を、前記データによって修正された前記第1のキーの値に等しく設定するステップと、
    前記第2のキーの新たな値を、前記データによって修正された前記第2のキーの値に等しく設定するステップと
    を含む、ハッシュ処理を実行するステップと、
    前記ハッシュを実行した後に、前記第1のキーと前記第2のキーとを備えるビッグキーをビッグキーストアに保存するステップと
    を備える方法。
  2. 前記イメージクライアントコンピュータに送信するステップを更に含む請求項1記載の方法。
  3. 記イメージクライアントコンピュータに送信するステップは、前記ビッグキーが前記ビッグキーストア内の他のいずれのビッグキーにも一致しない判断したときに、前記イメージをクライアントコンピュータに送信することを含む、請求項2記載の方法。
  4. 記ビッグキーが前記ビッグキーストア内の他のいずれかのビッグキーと一致すると判定したとき、前記ビッグキーをクライアントコンピュータに送信するステップを更に含む、請求項3記載の方法。
  5. 前記イメージを前記クライアントコンピュータに送信する前に前記イメージを符号化するステップを更に含む請求項2記載の方法。
  6. 前記第1のキーの新たな値を設定することは、前記第1のキーと前記データに対して排他的論理和操作を実行することによって前記データにより前記第1のキーを修正することを含み
    前記第2のキーの新たな値を設定することは、前記第2のキーと前記データに対して排他的論理和操作を実行することによって前記データにより前記第2のキーを修正することを含む、請求項1記載の方法。
  7. 前記イメージを、各グループが前記ビット幅に等しい前記イメージのビット数を含むように前記少なくとも1つのグループに分割した後、前記ビット幅によって分割されたイメージサイズがゼロ以外の残りのビット数を有するとき、シリアルCBC(暗号ブロック連鎖)アルゴリズムで前記残りのビット数をハッシュ処理してポスト第1のキー及びポスト第2のキーを生成、前記ポスト第1のキーに基づいて前記第1のキーを前記プロセッサにより決定、前記ポスト第2のキーに基づいて前記第2のキーを前記プロセッサにより決定するステップ、を更に含む請求項1記載の方法。
  8. 前記イメージは画面スクレイピングを含む請求項1記載の方法。
  9. 前記イメージはRDP(リモートデスクトッププロトコル)のタイルを含む請求項1記載の方法。
  10. イメージを処理するためのパラレル処理システムであって、当該パラレル処理システムは、第1のランダム数、該第1のランダム数と異なる第2のランダム数、データ、第1のキー及び第2のキーを用い
    プロセッサ
    前記プロセッサ
    前記イメージを、各グループがビット幅に等しい前記イメージのビット数を含むように少なくとも1つのグループに分割するステップであって、前記ビット幅は、当該パラレル処理システムの前記プロセッサが一度に操作することが可能なビット数に対応する、ステップと、
    グループ毎にハッシュ処理を実行するステップであって、
    前記データの新たな値を、前記グループの値と、前記第1のランダム数によって乗算されかつ前記第2のランダム数と合計された前記データの現在の値との合計に等しく設定するステップと、
    前記第1のキーの新たな値を、前記データによって修正された前記第1のキーの値に等しく設定するステップと、
    前記第2のキーの新たな値を、前記データによって修正された前記第2のキーの値に等しく設定するステップと
    を含む、ハッシュ処理を実行するステップと、
    前記ハッシュを実行した後に、前記第1のキーと前記第2のキー備えるビッグキーをビッグキーストアに保存するステップと
    を含む処理を実行させるプログラムを記憶したメモリと
    を備える、システム
JP2011552058A 2009-02-26 2010-02-05 Simd命令を用いるrdpビットマップハッシュアクセラレーション Expired - Fee Related JP5750786B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/393,950 2009-02-26
US12/393,950 US9071843B2 (en) 2009-02-26 2009-02-26 RDP bitmap hash acceleration using SIMD instructions
PCT/US2010/023256 WO2010098959A2 (en) 2009-02-26 2010-02-05 Rdp bitmap hash acceleration using simd instructions

Publications (3)

Publication Number Publication Date
JP2012519327A JP2012519327A (ja) 2012-08-23
JP2012519327A5 JP2012519327A5 (ja) 2013-03-28
JP5750786B2 true JP5750786B2 (ja) 2015-07-22

Family

ID=42631017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011552058A Expired - Fee Related JP5750786B2 (ja) 2009-02-26 2010-02-05 Simd命令を用いるrdpビットマップハッシュアクセラレーション

Country Status (11)

Country Link
US (1) US9071843B2 (ja)
EP (1) EP2401673B1 (ja)
JP (1) JP5750786B2 (ja)
KR (1) KR101651309B1 (ja)
CN (1) CN102334097B (ja)
AU (1) AU2010218303B2 (ja)
BR (1) BRPI1007170A2 (ja)
CA (1) CA2750195C (ja)
RU (1) RU2542935C2 (ja)
SG (2) SG2014008197A (ja)
WO (1) WO2010098959A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110225566A1 (en) * 2010-03-10 2011-09-15 Microsoft Corporation Testing user interfaces in multiple execution environments
GB2481612A (en) 2010-06-30 2012-01-04 Skype Ltd Updating image regions in a shared image system
GB2481613A (en) * 2010-06-30 2012-01-04 Skype Ltd Updating regions of shared images using a server that records image status
KR101451381B1 (ko) 2011-04-12 2014-10-16 어플라이드 사이언스, 인코포레이티드 헌혈을 관리하는 시스템 및 방법
US8737724B2 (en) 2011-06-10 2014-05-27 Microsoft Corporation Image type classifier for improved remote presentation session compression
US9354764B2 (en) 2012-06-29 2016-05-31 Dell Products L.P. Playback of flash content at a client by redirecting execution of a script by a flash redirection plugin at a server to a flash redirection browser at the client
US9626450B2 (en) 2012-06-29 2017-04-18 Dell Products L.P. Flash redirection with browser calls caching
CN103907350B (zh) 2012-09-29 2018-02-23 华为技术有限公司 视频编码及解码方法、装置及系统
US8924478B2 (en) * 2012-12-29 2014-12-30 Futurewei Technologies, Inc. Virtual desktop infrastructure (VDI) login acceleration
US10545758B2 (en) 2014-05-27 2020-01-28 Tsx Inc. Parallel processing of hash functions
KR102594025B1 (ko) 2014-05-30 2023-10-24 어플라이드 사이언스, 인코포레이티드 헌혈을 관리하기 위한 시스템들 및 방법들
CN104881886A (zh) * 2015-05-14 2015-09-02 大连民族学院 用链码编码彩色动画图像的方法
WO2017165454A1 (en) * 2016-03-21 2017-09-28 Deep Space Industries Inc. Method for remote system onboard software updating and protection

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4424841A (en) * 1982-09-30 1984-01-10 Smith J Rudy Modular stacking bag
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
JPH04148372A (ja) 1990-10-11 1992-05-21 Fujitsu Ltd ハッシュ値算出処理方式
US6437803B1 (en) * 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
JPH10301491A (ja) * 1997-04-28 1998-11-13 Ibm Japan Ltd 暗号通信方法とシステム
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US20050160272A1 (en) * 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US7143294B1 (en) * 1999-10-29 2006-11-28 Broadcom Corporation Apparatus and method for secure field upgradability with unpredictable ciphertext
JP2002251373A (ja) 2001-02-23 2002-09-06 Hitachi Ltd ネットワークシステム及びネットワーク端末
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
JP4326186B2 (ja) * 2002-04-15 2009-09-02 ソニー株式会社 情報処理装置および方法
US7353382B2 (en) * 2002-08-08 2008-04-01 Fujitsu Limited Security framework and protocol for universal pervasive transactions
US7606314B2 (en) * 2002-08-29 2009-10-20 Raritan America, Inc. Method and apparatus for caching, compressing and transmitting video signals
US7027143B1 (en) 2002-10-15 2006-04-11 Kla-Tencor Technologies Corp. Methods and systems for inspecting reticles using aerial imaging at off-stepper wavelengths
US7359184B2 (en) * 2002-10-31 2008-04-15 Hotwire Development Llc Notebook computer protection device
US7979707B2 (en) * 2003-07-10 2011-07-12 Emc Corporation Secure seed generation protocol
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
CN1630246B (zh) 2003-12-15 2011-04-27 联想(北京)有限公司 一种远程桌面获取数据的实现方法
FI118309B (fi) * 2003-12-29 2007-09-28 Innoka Oy Menetelmä ja järjestely reaaliaikaiseksi veikkaamiseksi offlinepäätteen avulla
US7353388B1 (en) * 2004-02-09 2008-04-01 Avaya Technology Corp. Key server for securing IP telephony registration, control, and maintenance
US20060005031A1 (en) * 2004-06-15 2006-01-05 Apostolopoulos John G Methods and systems for utilizing a single cryptographic integrity check to generate multiple cryptographic integrity check values for components of transcodable content
US7672005B1 (en) * 2004-06-30 2010-03-02 Teradici Corporation Methods and apparatus for scan block caching
US7293035B2 (en) * 2004-06-30 2007-11-06 International Business Machines Corporation System and method for performing compression/encryption on data such that the number of duplicate blocks in the transformed data is increased
CN1332300C (zh) 2005-04-30 2007-08-15 广东威创日新电子有限公司 一种基于服务器端\客户端结构远程显示处理方法
US7822278B1 (en) * 2005-09-20 2010-10-26 Teradici Corporation Methods and apparatus for encoding a digital video signal
KR100772861B1 (ko) 2005-09-23 2007-11-02 삼성전자주식회사 원격 사용자 인터페이스를 제공하는 장치 및 방법
US8319728B2 (en) * 2005-10-17 2012-11-27 Avocent Huntsville Corporation Input-device movement to cursor movement correlator
US8112513B2 (en) * 2005-11-30 2012-02-07 Microsoft Corporation Multi-user display proxy server
US7434002B1 (en) * 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US20080002894A1 (en) * 2006-06-29 2008-01-03 Winbond Electronics Corporation Signature-based video redirection
US20070201201A1 (en) * 2006-07-12 2007-08-30 Daley Charles A Iii Bag computer
JP4850645B2 (ja) 2006-09-14 2012-01-11 キヤノン株式会社 画像再生装置及び画像再生方法
JP4201037B2 (ja) * 2006-09-14 2008-12-24 ソニー株式会社 レンズ鏡筒回転型撮像装置
CN101014127A (zh) 2007-01-26 2007-08-08 华中科技大学 普适环境下的远程桌面同步方法
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
WO2009029842A1 (en) * 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
WO2009070339A1 (en) * 2007-11-28 2009-06-04 Atrua Technologies, Inc. System for and method of locking and unlocking a secret using a fingerprint

Also Published As

Publication number Publication date
AU2010218303B2 (en) 2014-05-29
WO2010098959A3 (en) 2010-12-09
WO2010098959A2 (en) 2010-09-02
CN102334097B (zh) 2013-07-17
CA2750195A1 (en) 2010-09-02
US20100215280A1 (en) 2010-08-26
SG172840A1 (en) 2011-08-29
EP2401673A2 (en) 2012-01-04
SG2014008197A (en) 2014-04-28
AU2010218303A1 (en) 2011-07-28
EP2401673B1 (en) 2017-01-18
US9071843B2 (en) 2015-06-30
CA2750195C (en) 2016-09-20
KR101651309B1 (ko) 2016-09-05
CN102334097A (zh) 2012-01-25
RU2542935C2 (ru) 2015-02-27
JP2012519327A (ja) 2012-08-23
EP2401673A4 (en) 2016-03-16
RU2011135548A (ru) 2013-02-27
BRPI1007170A2 (pt) 2018-03-13
KR20110129382A (ko) 2011-12-01

Similar Documents

Publication Publication Date Title
JP5750786B2 (ja) Simd命令を用いるrdpビットマップハッシュアクセラレーション
JP4455661B2 (ja) エクスパンダグラフからのハッシュ関数構築
CN102222314B (zh) 用并行处理从源位图标识并提取模式来加速位图远程发送
US9875519B2 (en) Overlap aware reordering of rendering operations for efficiency
US9875552B1 (en) Content independent method of motion determination using sparse matrices
US10931958B2 (en) JPEG accelerator using last-non-zero (LNZ) syntax element
JP2011109361A (ja) データ符号化プログラム、データ復号化プログラムおよび方法
US11188338B2 (en) Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder
WO2022095797A1 (zh) 图像的压缩方法、装置、智能终端及计算机可读存储介质
Yeoh et al. A parallelizable chaos-based true random number generator based on mobile device cameras for the android platform
US8854385B1 (en) Merging rendering operations for graphics processing unit (GPU) performance
US20220116634A1 (en) Multi-pixel caching scheme for lossless encoding
TW201921844A (zh) 基於字典的資料壓縮
CN116915368B (zh) 符合期货交易数据交换协议的数据流的编解码方法和装置
Wang et al. Internet-oriented optimization schemes for joint compression and encryption
US11683243B1 (en) Techniques for quantifying the responsiveness of a remote desktop session
Almanasra Parallel Video Steganographic Method over Multi-core Processors
Guo et al. A fast coding method for distortion-free data hiding in high dynamic range image
CN117808656A (zh) 使用重建信息归属的无载体图像隐写方法、存储介质及电子装置
US20140300628A1 (en) Tile-based compression and decompression for graphic applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130204

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141001

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: 20150331

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150430

R150 Certificate of patent or registration of utility model

Ref document number: 5750786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees