JP5788865B2 - 複数のプロセッサを用いた画像圧縮の加速 - Google Patents

複数のプロセッサを用いた画像圧縮の加速 Download PDF

Info

Publication number
JP5788865B2
JP5788865B2 JP2012503727A JP2012503727A JP5788865B2 JP 5788865 B2 JP5788865 B2 JP 5788865B2 JP 2012503727 A JP2012503727 A JP 2012503727A JP 2012503727 A JP2012503727 A JP 2012503727A JP 5788865 B2 JP5788865 B2 JP 5788865B2
Authority
JP
Japan
Prior art keywords
slice
thread
image
processor
processed
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.)
Active
Application number
JP2012503727A
Other languages
English (en)
Other versions
JP2012523176A5 (ja
JP2012523176A (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 JP2012523176A publication Critical patent/JP2012523176A/ja
Publication of JP2012523176A5 publication Critical patent/JP2012523176A5/ja
Application granted granted Critical
Publication of JP5788865B2 publication Critical patent/JP5788865B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/436Methods 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 using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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
    • H04N19/174Methods 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 the region being a slice, e.g. a line of blocks or a group of blocks

Description

本発明は、複数のプロセッサを用いた画像圧縮の加速に関する。
コンピュータは、かつて分離されて他のコンピュータとの最小限または少しの相互作用しか有さなかったけれども、今日のコンピュータは、LAN(Local Area Network)およびWAN(Wide Area Network)などの通信ネットワークを通じて、多種多様な他のコンピュータと相互作用する。インターネット(INTERNET(登録商標))の幅広い成長とともに、コンピュータ間の接続性は、より重要になり、多くの新しいアプリケーションおよび技術を広げてきた。大規模なネットワークの成長、および低価格のパーソナルコンピュータの幅広い可用性は、根本的に、多くの人々の働き方、相互作用の仕方、通信の仕方、および遊び方を変えてきた。
1つの増加しているポピュラーなネットワークの形式は、一般的に、仮想コンピューティングシステムと呼ばれることがある。仮想コンピューティングシステムは、RDP(Remote Desktop Protocol)等のプロトコル、ICA(Independent Computing Architecture)、およびリモートセッションを介してリモートクライアントとともにデスクトップおよび他のアプリケーションを共有するためのその他のプロトコルを使用することができる。このようなコンピューティングシステムは、典型的に、キーボードの押下およびマウスのクリックまたは選択を、クライアントからサーバへ送信し、画面情報の更新を逆方向にネットワーク接続(例えば、インターネット)を介して送り返す。ゆえに、アプリケーションのスクリーンショットがサーバ側に現れるのと同様に、実際にはユーザ装置にアプリケーションのスクリーンショットを送信するだけで、ユーザは、彼らのマシンがLANの一部として動作しているような経験を有する。
圧縮アルゴリズムは、リモートセッションによって使用される帯域幅を、LAN、無線LAN、およびWANを介して送信するレベルまで減らすことが重要である。これらの圧縮アルゴリズムは、サーバ上の処理時間と引き換えに、セッションのために要求される小さい帯域幅を手に入れる。
長すぎる処理時間は、サーバの拡張性を抑制する上、フレームを符号化するために要求される時間を増加させ、リモートセッションの全てのフレームレート(FPS)を減らす。低いEPSは、否定的にユーザの経験に影響を与える。その理由は、セッションが衝動的に要請し、および無反応の感じがするからである。
現在の符号化システムは、多くの現代のコンピュータに見受けられる複数のプロセッサおよびプロセッシングコアを活用するための方法を欠く。処理リソースの最大化のこの欠如は、圧縮時間を可能な時間よりも長くさせる。
実施形態において、コアごとに物理的なCPU(Central Processing Unit)のスレッドを割り当てるマルチプロセッサ(またはコア)のワークマネージャ(work manager)の使用を通じて、複数のプロセッサのリソースは活用されうる。符号化されるべき画像は、一連のスライス(slice)−画像と同じ幅の長方形の一片−に分けられる。ワークマネージャは、動的に比較しおよびワークを利用可能なコアへ割り当て、完了通知を集めて最後の圧縮された画像スライスがコヒーレント圧縮画像に再組み立てされるようにする。ワークマネージャは、スライスを第1の利用可能なプロセッサにディスパッチするなど、スライスを利用可能なプロセッサにディスパッチする。スライスがディスパッチされるプロセッサは、独立してスライスを圧縮する。ワークマネージャは、各スライスについての完了通知を各個別のコアから受信し、およびこれらの圧縮されたスライスを圧縮された画像に組み立てる。
複数のプロセッサまたはコアを利用することによって、圧縮速度は増大される。キャッシュスラッシングは、画像を分けることおよび画像のスライスを異なるコアに割り当てることによって、減らされる。種々の技術が、動的にスライスの圧縮作業負荷を異なるプロセッサに割り当てるために利用可能である。対応する技術が実施され、圧縮された画像を解凍することができる。
当業者によって、1つまたは複数の種々の開示の態様は、本明細書で言及される本開示の態様をもたらす電気回路および/またはプログラミングを含むことができるが、これらに限定されるわけではないことが理解されうる。電気回路および/またはプログラミングは、実質的には、本明細書で言及される態様をもたらすよう構成されるハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせとすることができ、システム設計者の設計上の選択によって決まる。
前述のものは要約であり、ゆえに当然、単純化、一般化、および詳細の省略を含む。当業者は、要約は単に例示であり決して限定することを意図していないことを理解するであろう。
この明細書に従うシステム、方法、およびコンピュータ可読媒体は、さらに添付の図面に関連して記載される。
本明細書で記載される複数のプロセッサの画像符号化が実行されうる例示的な汎用コンピューティング環境を示す図である。 本開示の態様を実行するためのオペレーション環境を表わす図である。 マルチプロセッサ画像符号化を利用するRDP(Remote Desktop Protocol)を介するクライアントおよびサーバの通信を示す図である。 マルチプロセッサ画像符号化のための例示的なオペレーション処理を示す図である。
図1は、本明細書にて記載される技術が採用される汎用コンピューティング装置のブロック図を示している。コンピューティングシステム環境120は、適切なコンピューティング環境の1つの例にすぎず、本開示事項の使用または機能の範囲に関するいかなる限定も提案することを意図していない。コンピューティング環境120は、例示的なオペレーション環境120において示されるコンポーネントの任意の1つまたは組み合わせに関して、いかなる依存を有するともいかなる要求を有するとも解釈されるべきでない。いくつかの実施形態において、種々の表わされるコンピューティング要素は、本開示の特定の態様を具体化するように構成される電気回路を含むことができる。例えば、この開示において使用される電気回路という用語は、ファームウェアまたはスイッチによって機能を実行するように構成される特殊なハードウェアコンポーネントを含むことができる。他の実施形態において、電気回路という用語は、機能を実行するように動作する論理回路を具体化するソフトウェア命令によって構成される、汎用処理装置、メモリなどを含むことができる。電気回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態において、開発者は論理回路を具体化するソースコードを書き、ソースコードは汎用処理装置によって処理されうる機械が読み取り可能なコードにコンパイルされうる。当業者は技術分野の状態がハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間に違いがほとんど無くなるまで発達したことを理解できるので、特定の機能を達成するためのハードウェア対ソフトウェアの選択は、開発者に任せられる設計上の選択である。さらに具体的にいうと、当業者は、ソフトウェア処理は同等のハードウェア構造に変わりうること、およびハードウェア構造はそれ自体が同等のソフトウェア処理に変わりうることを理解することができる。ゆえに、ハードウェアの実装対ソフトウェアの実装の選択は、設計上の選択の1つであり、開発者に任される。
コンピュータ141は、典型的に種々のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ141によってアクセスされうる任意の利用可能な媒体とすることができ、揮発性の媒体と不揮発性の媒体との両方、着脱可能な媒体と着脱不可能な媒体との両方を含む。システムメモリ122は、ROM(Read Only Memory)123およびRAM(Random Access Memory)160などの揮発性および/または不揮発性のメモリの形でコンピュータ記録媒体を含む。BIOS(Basic Input/Output System)124は、スタートアップ中などに、情報をコンピュータ141内の要素間で転送するのを助ける基本ルーティンを含む。BIOSは、典型的にROM123に格納される。RAM160は、典型的に、直ちにアクセス可能なデータおよび/またはプログラムモジュールを含み、現在処理装置159によって操作されている。例として、限定するわけではなく、図1はオペレーティングシステム125、アプリケーションプログラム126、他のプログラムモジュール127、およびプログラムデータ128を示している。
コンピュータ141は、他の着脱可能/着脱不可能、揮発性/不揮発性のコンピュータ記録媒体を含むこともできる。ほんの一例として、図1は、着脱不可能な不揮発性の磁気媒体の読み込みまたは書き込みをするハードディスクドライブ138、着脱可能な不揮発性の磁気ディスク154の読み込みまたは書き込みをする磁気ディスクドライブ139、およびCD ROMまたは他の光学媒体などの着脱可能な不揮発性の光学ディスク153の読み込みまたは書き込みをする光学ディスクドライブ140を示している。例示的なオペレーション環境に使用されうる他の着脱可能/着脱不可能、揮発性/不揮発性のコンピュータ記録媒体は、限定するわけではなく、磁気テープカセット、フラッシュメモリカード、DVD(Digital Versatile disk)、デジタルビデオテープ、半導体RAM、半導体ROMなどを含む。ハードディスクドライブ138は、典型的に、インタフェース134などの着脱不可能なメモリインタフェースを介してシステムバス121に接続される。磁気ディスクドライブ139および光学ディスクドライブ140は、典型的に、インタフェース135などの着脱可能なメモリインタフェースによってシステムバス121に接続される。
上記で論じられおよび図1において示されているドライブおよびそれらに関連するコンピュータ記録媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ141のための他のデータの記憶域を提供する。図1において、例えば、ハードディスクドライブ138は、オペレーティングシステム158、アプリケーションプログラム157、他のプログラムモジュール156、およびプログラムデータ155を格納するように示されている。これらのコンポーネントは、オペレーティングシステム125、アプリケーションプログラム126、他のプログラムモジュール127、およびプログラムデータ128と同一であるかまたは異なることが可能であることに留意されたい。オペレーティングシステム158、アプリケーションプログラム157、他のプログラムモジュール156、およびプログラムデータ155は、少なくともそれらは異なるコピーであることを示すため、ここでは異なる番号を与えられている。ユーザは、コマンドおよび情報をコンピュータ141に入力装置を介して入力することができる。入力装置は、キーボード151およびポインティング装置152などであり、一般に、マウス、トラックボール、またはタッチパッドと呼ばれる。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、または同様のものを含むことができる。これらおよび他の入力装置は、しばしば、ユーザ入力インタフェース136を介して処理装置159に接続される。ユーザ入力インタフェース136はシステムバスに結合されているが、パラレルポート、ゲームポート、またはUSB(Universal Serial Bus)などの他のインタフェースおよびバス構造によって接続されうる。モニター142または他の種類の表示装置も、ビデオインタフェース132などのインタフェースを介してシステムバス121に接続される。モニターに加えて、コンピュータは、スピーカー144およびプリンター143などの他の周辺出力装置も含むことができ、これらは出力周辺インタフェース133を介して接続されうる。
コンピュータ141は、ネットワーク化された環境において、リモートコンピュータ146などの1つまたは複数のリモートコンピュータへの論理接続を使用して、動作することができる。リモートコンピュータ146は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般的なネットワークノードとすることができる。メモリ記憶装置147のみが図1において示されてきたけれども、リモートコンピュータ146は、典型的に、コンピュータ141に関連して上述された要素の多くまたは全てを含む。図1において表わされている論理接続は、LAN(Local Area Network)145およびWAN(Wide Area Network)149を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、職場、企業規模のコンピュータネットワーク、イントラネット、インターネットにおいて通常である。
LANネットワーク環境において使用されるとき、コンピュータ141はネットワークインタフェースまたはアダプタ137を介してLAN145に接続される。WANネットワーク環境において使用されるとき、コンピュータ141は典型的にモデム150またはインターネットなどのWAN149を介して通信を確立するための他の手段を含む。モデム150は、内蔵または外付けとすることができ、ユーザ入力インタフェース136または他の適切な機構を介してシステムバス121に接続されうる。ネットワーク化された環境において、コンピュータ141に関連して表わされるプログラムモジュール、またはそれらの一部は、リモートメモリ記憶装置にて格納されうる。例として、そして限定ではなく、図1は、リモートアプリケーションプログラム148をメモリ装置147上に存在するように示している。示されるネットワーク接続は例示であり、コンピュータ間の通信リンクを確立するための他の手段が使用されうることが理解されるであろう。
図2を次に参照すると、図2は、本開示の態様が実装されうる環境例を大まかに示している。当業者は、図2によって表わされる要素例が本開示を記載するための動作可能なフレームワークを提供することを理解できる。したがって、いくつかの実施形態において、環境の物理的なレイアウトは異なる実装スキームに応じて異なりうる。ゆえに、動作可能なフレームワーク例は、例示としてのみ扱われるべきであり、特許請求の範囲を全く限定しない。当業者は、以下の議論は導入であり、図2によって表わされる要素はより詳細に図3から図4の動作可能な処理の議論内において記載されることも理解できる。
図2は、大まかに、本開示の態様を含むように構成されうるターミナルサーバ環境の高いレベルの概観を表わしている。図を参照して、サーバ204はターミナルサーバと例えば3つのクライアント例201、202、および203とを実装するように構成される電気回路を含むことができると表わされる(3つのクライアントが表わされているが、実施形態におけるサーバ204はより多くのクライアントまたはより少ないクライアントへサービスを提供することができる)。クライアント例201−203は、ユーザにサーバ204への入力をさせるように、およびサーバ204によって生成されるユーザインタフェース情報を表示するように構成されるハードウェアによって実行されるコンピュータターミナルを含むことができる。他の実施形態において、クライアント201−203は、図1のコンピュータと同様の要素を含むコンピュータとすることができる。これらの実施形態において、クライアント201−203は、オペレーティングシステムを実行するように構成される電気回路、およびターミナルの機能をエミュレートするように構成される電気回路を含むことができる。これらの例において、当業者は、オペレーティングシステムを実行するように構成される電気回路はターミナルをエミュレートするように構成される電気回路を含むこともできることを理解できる。
表わされる例において、サーバ204は、セッション1からNまで(Nは1より大きい整数である)などのクライアント201、202、および203を接続するための1つまたは複数のセッションを生成するよう構成されうる。つまり、本開示の実施形態におけるセッションは、一般的に、複数のサブシステムによって実行されるオペレーション環境を含むことができる。サブシステムは、例えば、ソフトウェアコードであり、実行環境を実行するようにおよびオペレーティングシステム214のカーネル218と相互に作用するように構成される。例えば、セッションはシェルおよびデスクトップなどのユーザインタフェース、デスクトップ内でマウスの動きを追跡するサブシステム、アイコン上のマウスクリックをプログラムのインスタンスを実行するコマンドへ変換するサブシステムなどを含むことができる。別の実施形態において、セッションはアプリケーションを含むことができる。この例においてアプリケーションが表示されているが、デスクトップ環境はいまだに生成され、ユーザから隠されている。この例におけるセッションは、上述のセッションと同様のサブシステムを含むことができる。一般的に、セッションはユーザ基準でユーザ上のサーバ204によって生成されうる。ユーザ基準は、例えば、サーバ204が接続要求をネットワーク接続上でクライアント201などのクライアントから受信するときである。一般的に、接続要求は最初にトランスポート論理210によって操作されうる。トランスポート論理210は、例えば、サーバ204の電気回路によって実行されうる。トランスポート論理210は、いくつかの実施形態において、接続メッセージに従うようにおよび接続メッセージをエンジン212に転送するように構成されうるネットワークアダプタ、ファームウェア、およびソフトウェアを含むことができる。図2によって示されるように、セッションが生成されるとき、トランスポート論理210は各セッションについてプロトコルスタックインスタンスを含むことができる。一般的に、各プロトコルスタックインスタンスは、ユーザインタフェース出力を関連するクライアントへ送るように、および関連するクライアントから受信するユーザ入力を適切なセッションコア244に送るように構成されうる。
図2によって表わされるように、セッションの生成処理の間、エンジン212はセッションについてのライセンスを獲得するように構成されうる。例えば、ある実施形態において、エンジン212はライセンスをクライアント201からセッションの生成処理の間に受信することができる。別の実施形態において、エンジン212はライセンスのコピーをライセンスデータベース222から受信することができる。本開示のいくつかの実施形態において、ライセンスデータベース222は相関的なデータベース管理プログラムを含むことができる。相関的なデータベース管理プログラムは、図1のコンピュータなどのコンピュータのオペレーティングシステム上で実行されうる。ライセンスデータベース222を含む実施形態において、クライアントがセッションをサーバ204から獲得しようと試みるときに調べられうる1つまたは複数のライセンスを格納することができる。別の実施形態において、各ライセンスはそれ自身がアカウント識別子に関連付けられうる。アカウント識別子は、例えば、ユーザ名/パスワードの組み合わせ、スマートカード識別子などである。各ライセンスは、正しいアカウント識別子が表れる場合に調べられるだけである。一般に、サーバ204が生成できる接続数は、サーバ204を制御するエンティティがサーバプロバイダからすでに購入したライセンシーの数によって決まりうる。例えば、エンティティが1ライセンスを購入していた場合、サーバ204は1セッションを許可するのみであるように構成されうる。この例において、ライセンスがアカウント識別子に関連する場合、正しいアカウント識別子を表わすユーザだけがセッションを獲得することができる。
本開示の実施形態において、各ライセンスは使用されうる前にサービスプロバイダ262によって有効にされうる。例えば、サービスプロバイダ262は実施形態において、ライセンスを提供しサーバを有効にする認証局として動作することができる。これらの実施形態において、サービスプロバイダ262は、ライセンスは盗まれないこと、コピーされないこと、または海賊版を作られないことを保証することができる。サービスプロバイダ262は、ライセンスのコピーをデータベースに格納することおよびライセンスをサーバ204と関連付けることによって、ライセンスは購入されるサーバ204によって使用されるのみであることを保証することもできる。
図2によって示されるように、本開示の実施形態における構成マネージャ224は、コンピュータ可読命令を含むことができる。コンピュータ可読命令は、実行されるとき、セッション生成処理の間にライセンスを受信すること、およびセッションマネージャ216などの種々のサブシステムと連動することによって新たにセッションを生成するためのサービスレベルを決定することができる処理を具体化する。実施形態においてセッションマネージャ216は、例えば、セッションスペースについてセッション識別子を生成すること、セッション識別子をテーブルへ加えること、メモリをセッションスペースに割り当てること、システム環境の変数およびセッションスペースに割り当てられるメモリにおけるサブシステム処理のインスタンスを生成することによって、各セッションを初期化および管理するように構成されうる。図2によって示されるように、実施形態においてセッションマネージャ216は、ランタイムサブシステム240などの環境サブシステムをインスタンス化することができる。ランタイムサブシステム240は、セッションコア244などのカーネルモード部分を含むことができる。例えば、実施形態における環境サブシステムは、サービスの一部をアプリケーションプログラムにさらし、オペレーティングシステム214のカーネル218へのアクセスポイントを提供するように構成されうる。図2によって示されるように、いくつかの実施形態において、カーネル218は、セキュリティサブシステム250およびリソースマネージャ256を含むことができる。実施形態において、セキュリティサブシステム250は、例えばランタイムオブジェクトの保護を実行することによって、サーバ204のセキュリティポリシーを強制することができる。これらの実施形態において、実施形態におけるリソースマネージャ256は、ランタイムサブシステム240からの要求に応じて処理およびスレッドを生成および終了することができる。さらに具体的にいうと、実施形態においてランタイムサブシステム240は、スレッドの実行を要求することができ、セッションコア244は要求をカーネル218のエグゼクティブへ送信して、スレッドについてのメモリを割り当ておよびそれらが実行されるべき時間をスケジューリングすることができる。
図2の説明を続けると、実施形態においてセッションコア244はGDI(Graphics Display Interface)246および入力サブシステム252を含むことができる。実施形態において入力サブシステム252は、ユーザ入力をクライアント201から、セッションに関連するプロトコルスタックインスタンスを介して受信し、および入力をセッションコア244へ送信するように構成されうる。ユーザ入力は、いくつかの実施形態において、絶対的なおよび/または相対的なマウスの動きのコマンド、マウスの座標、マウスのクリック、キーボード信号、ジョイスティックの動きの信号などを示す信号を含むことができる。ユーザ入力、例えば、マウスのアイコン上のダブルクリックは、セッションコア244によって受信されうる。入力サブシステム252は、アイコンがダブルクリックに関連する座標に位置するかを決定するように構成されうる。入力サブシステム252は、通知をランタイムサブシステム240へ送信するように構成されうる。ランタイムサブシステム240は、アイコンに関連するアプリケーションについての処理を実行することができる。
入力をクライアント201から受信することに加えて、描画コマンドがアプリケーションおよび/またはデスクトップから受信され、GDI246によって処理されうる。GDI246は、一般に、グラフィックオブジェクトの描画コマンドを生成できる処理を含むことができる。この実施形態のGDI246は、コマンドをリモートディスプレイサブシステム254へ渡すように構成されうる。リモートディスプレイサブシステム254は、セッションについてのディスプレイドライバをインスタンス化することができる。実施形態において、リモートディスプレイサブシステム254は、サーバ204に物理的に取り付けられるディスプレイに関連しないかもしれない仮想ディスプレイドライバを含むように構成されうる。例えば、サーバ204はヘッドレス(headless)で実行されうる。この実施形態における仮想ディスプレイドライバは、描画コマンドを受信し、それらをクライアント201にセッションに関連するスタックインスタンスを介して送信するように構成されうる。
図3は、リモートセッションを介して通信するクライアント316およびサーバ302を示している。サーバは、クライアントへ送信する画像310のマルチプロセッサの圧縮を使用する。
ここで、クライアント316およびサーバ302は、通信ネットワーク314を越えてクライアント316上のリモートクライアント318と通信するサーバ302上のリモートサーバ304によって実行されるリモートセッションを介して通信している。リモートクライアント318は、マウスの動きまたはキーの押下などの入力コマンドを、リモートサーバ304へ送信する。リモートサーバ304は、それらを解釈し、およびクライアント318へ、その入力結果に対応する画像データ310を送信する。例えば、クライアント316は、マウスの動きおよびクリックを発して、映像を開くことができる。サーバ304は、この入力情報を受信し、結果として映像が再生されるべきであると決定し、および結果として生じる画像310と場合によっては音声を送信する。これらの画像と音声は、表示装置320上での表示のためにクライアント318に対して再生される映像に対応する。
サーバ302は、しばしば、帯域幅を節約するために、クライアント316へ送信する画像310を圧縮する。本システムにおいて、サーバ302は各画像310をワークマネージャ306へ送信する。ワークマネージャ306は、サーバ302上に存在する複数のプロセッサ308またはコアの各々を介して、各画像310の圧縮を管理する。ワークマネージャ306は、画像310を受信し、およびそれを1つまたは複数のスライス312へ区切る。典型的なリモートセッションの圧縮アルゴリズムは、タイル(tile(例えば、64×64画素の正方形))上またはストリップ(strip(例えば、1680×2画素の長方形))上で動作することができる一方、スライス312は、典型的に、画像310(例えば、1680×128画素)の非常に大きな部分である。スライス312は、プロセッサ308についてのいずれのキャッシュスラッシング問題をも避けるように、選択されうる。圧縮の過程において、スライス312は、さらにタイルまたはストリップに分けられうる。しかし、スライス312は、プロセッサ308に割り当てられている構成単位であり、そのためスライス312内の全てのタイルまたはストリップはそのコアに割り当てられたままである。
ワークマネージャ306は、画像310を圧縮するために利用する各プロセッサ308に関連するスレッドを保持する。ワークマネージャ306がスライス312を生成するとき、各自をスレッドの1つへディスパッチする。ワークマネージャ306は、多様な技術を使用して、スライス312を第1の利用可能なスレッドに割り当てること、またはスレッド上の複数のスライス312を待ち行列に入れることによってなど、スレッドのディスパッチの効率性を最大にする。このため、スレッドは圧縮するためのスライス312を欠くことがない。
スレッドが対応するプロセッサ308上で実行されるとき、スライス312は圧縮される。実施形態において、スライス312は、RLE(Run-Length Encoding)圧縮スキームを介して圧縮される。いったんスライス312が圧縮されると、ワークマネージャ306は、そのような表示を受信する。ワークマネージャ306が、与えられた画像310内の各スライス312が圧縮されているという表示を受信したとき、圧縮された画像をリモートサーバ304へ提供する。リモートサーバ304は、それをリモートクライアント318へ通信ネットワーク314を越えて送信する。リモートクライアント318は、圧縮された画像を受信し、およびクライアント316に表示装置320上で受信した画像を表示するよう指示する。
スライス312がすでに圧縮されているという表示は、圧縮されたスライス312が存在するメモリ位置へのポインタを含むことができる。この実施形態において、ワークマネージャ306は、最初のポインタが画像の開始を指し、最後のポインタが画像の終了を指すように、これらのポインタを順序付けることができる。中間の任意のポインタはそれに応じて順序付けされている。
スライス312は、任意の順序で完了することができる。ワークマネージャ306は、どんな順序でもこれらのスライス312を受信し、実施形態において、圧縮されたスライス312の圧縮された出力バッファへのポインタの順序一覧を作る。いったん画像についての全てのスライス312が圧縮されると、画像は完全に圧縮されていると見なされる。
実施形態において、ワークマネージャ306は、各圧縮されたスライス312を検索し、および圧縮された画像(これら圧縮されたスライス312から成る)を連続する範囲のメモリ内に格納することができる。
実施形態において、圧縮されたスライス312から圧縮された画像の組み立ては、クライアントによって実行される。サーバは、クライアントへ、各圧縮されたスライス312を、属する画像はどれかおよび画像内でどこに属するのかの両方の表示とともに送信する。クライアントは、この情報から画像を組み立てる。実施形態において、サーバは別の画像を送信する前に1つの画像を送信してから終了する。情報が、スライス312の総数および現在送られるスライス312はどのスライス312であるのか(合計5つのスライス312の2番目、または合計5つのスライス312があるとすでに知らされたクライアントへ単に2番目のスライス312など)を含むことができるためである。実施形態において、サーバは、クライアントへスライス312を、交互に扱われる複数の画像から送信することができる。各スライス312のための表示が、属する画像はどれかおよび画像のどの一部か(例えば、画像15のための合計5つのスライス312の2番目)の両方を含むことができるためである。
実施形態において、リモートサーバは同期式である。リモートサーバは、画像をワークマネージャ306へディスパッチした後、同期して遮断し、画像が圧縮されるのを待ち、圧縮された画像の出力を受信する。
実施形態において、リモートサーバは非同期である。リモートサーバは、画像をワークマネージャ306へディスパッチし、直ちに、受信されたクライアント入力の解析またはワークマネージャ306についての圧縮するための第2の画像の生成などのさらなる処理をする。リモートサーバは、後で、非同期の終了通知をワークマネージャ306から受諾する。終了通知は、画像がすでに圧縮されているという表示または圧縮された画像自身を含む。
図4は、画像をマルチプロセッサシステム上でリモートセッションを介して送信するために圧縮するための例示的なオペレーション処理を示している。マルチプロセッサシステムは、複数のプロセッシングコアまたは複数の個別のプロセッサを有することができる。実施形態において、画像は、アプリケーションウインドウまたはデスクトップ全体などのリモートセッションフレームを含む。デスクトップ全体は、アプリケーションウインドウを含むことができる。実施形態において、画像はビットマップを含む。実施形態において、画像は幅を有し、各タイル表示の幅は画像の幅に等しい。
オペレーション402は、画像を複数のスライスに分けることを表わしている。実施形態において、画像は長方形であり、各スライスも同様に長方形であって、画像と同じ横寸法(すなわち幅)を有する。
オペレーション404は、少なくとも2つのプロセッサの各々について、プロセッサごとにスレッドを関連付けることを表わしている。ワークマネージャは、各プロセッサについてスレッドを保持し、画像の圧縮に利用する。
オペレーション406は、各スライスを関連するスレッドに割り当てることを表わしている。ワークマネージャは、多様な技術を使用して利用可能なプロセッサリソースを最大にする。例えば、実施形態において、スライスを関連するスレッドに割り当てることは、スライスを利用されていない処理リソースを有するプロセッサに対応している関連するスレッドに割り当てることを含む。
オペレーション408は、各スライスについて、スライスがすでに処理されたという表示を受信することを表わしている。実施形態において、スライスがすでに処理されたという表示は、対応する圧縮された出力バッファへのポインタを含む。
オペレーション410は、スライスを第2の画像に組み立てることを表わしてる。第2の画像は、圧縮されている画像に対応している。
オペレーション412は、第2の画像をクライアントにリモートセッションプロトコルに従って送信することを表わしている。実施形態において、リモートセッションプロトコルは、RDP(Remote Desktop Protocol)を含む。実施形態において、画像はリモートセッションスタックから受信され、およびリモートセッションスタックは画像を提供すると同期的に遮断する。オペレーション412は、リモートセッションスタックに画像がすでに圧縮されたという表示を送信することを含む。
(結論)
本開示は種々の図面にて示すように推奨の態様に関連して記載されてきたが、他の類似の態様が使用されることも可能であり、本開示の同じ機能を実行するために本開示から逸脱することなく、記載された態様に修正や追加がなされることが可能であることを理解されたい。それゆえ、本開示は、いずれか1つの態様に限定されるべきでなく、添付された特許請求の範囲に従った広さや範囲において解釈されるべきである。例えば、本明細書において記載される種々の処理は、ハードウェアまたはソフトウェア、または両方の組み合わせを用いて実装されうる。ゆえに、開示する実施形態の方法および装置、またはある態様またはそれらの一部は、有形媒体で実施されるプログラムコード(すなわち命令)の形を取ることができる。有形媒体は、フロッピーディスク、CD−ROM、ハードドライブ、または任意の他のマシン可読記録媒体などである。プログラムコードがコンピュータなどのマシンによって読み込まれ実行されるとき、マシンは開示される実施形態を実行するために構成される装置となる。本明細書で明確に説明される特定の実施に加えて、他の態様および実施は当業者にとってここで開示される明細書の考察から明らかにされるであろう。明細書および示されている実施形態は、例としてのみ見なされることを意図している。

Claims (15)

  1. 複数のプロセッサをともなうシステム上で画像を圧縮するための方法であって、
    前記画像を、それぞれが前記画像の一部分を含む第1のスライス、第2のスライス、および第3のスライスに分けるステップと、
    第1のプロセッサ上においてのみ実行するように第1のスレッドを関連付けるステップと、
    第2のプロセッサ上においてのみ実行するように第2のスレッドを関連付けるステップと、
    前記第1のスライスを前記第1のスレッドに割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップと、
    前記第2のスライスを前記第2のスレッドに割り当て、前記第2のスレッドを前記第2のプロセッサ上で実行するステップであって、前記第2のスライスの割り当ておよび前記第2のスレッドの実行は、前記第1のスライスの割り当ておよび前記第1のスレッドの実行から独立している、ステップと、
    前記第1のスライスがすでに処理されたという表示を受信するステップと、
    前記第1のスライスがすでに処理されたために利用されていない処理リソースを有する状態にある前記第1のプロセッサの前記第1のスレッドに、前記第3のスライスを割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップであって、前記第3のスライスの割り当ておよび前記第1のスレッドの実行は、前記第2のスライスの割り当ておよび前記第2のスレッドの実行から独立している、ステップと、
    前記第2のスライスがすでに処理されたという表示を受信するステップと、
    前記第3のスライスがすでに処理されたという表示を受信するステップと、
    前記第1、第2、及び第3のスライスを、圧縮される前記画像に対応する第2の画像に組み立てるステップと
    を備えることを特徴とする方法。
  2. 前記第2の画像をクライアントへリモートセッションプロトコルに従って送信することをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記画像はリモートセッションフレームを備えることを特徴とする請求項1に記載の方法。
  4. 前記画像は幅を有し、および各タイルの幅は前記画像の前記幅と等しいことを特徴とする請求項1に記載の方法。
  5. 前記第2の画像をクライアントへリモートセッションを介して通信ネットワークを越えて送信することをさらに備えることを特徴とする請求項1に記載の方法。
  6. 前記リモートセッションはRDP(Remote Desktop Protocol)を備えることを特徴とする請求項5に記載の方法。
  7. 前記画像はリモートセッションスタックから受信され、および前記リモートセッションスタックは前記画像を提供するのに同期して遮断し、
    前記リモートセッションスタックに前記画像がすでに圧縮されたという表示を送信することをさらに備えることを特徴とする請求項5に記載の方法。
  8. 前記画像はリモートセッションスタックから受信され、前記リモートセッションスタックは前記画像を提供すると非同期にて遮断し、
    前記リモートセッションスタックに前記画像がすでに圧縮されたという表示を送信することをさらに備えることを特徴とする請求項5に記載の方法。
  9. 前記第1のスライスがすでに処理されたという表示は、第1の圧縮された出力バッファへの第1のポインタを備え、前記第2のスライスがすでに処理されたという表示は、第2の圧縮された出力バッファへの第2のポインタを備え、前記第3のスライスがすでに処理されたという表示は、第3の圧縮された出力バッファへの第3のポインタを備え、
    前記第1、第2、及び第3のポインタを含んだ一覧を、前記画像内における前記スライスの順序に対応するように順序付けることをさらに備える
    ことを特徴とする請求項1に記載の方法。
  10. 前記画像はビットマップを備えたことを特徴とする請求項1に記載の方法。
  11. 画像を圧縮するためのシステムであって、
    複数のプロセッサと、
    コンピュータ可読命令を格納する少なくとも1つのメモリと
    を備え、
    前記コンピュータ可読命令は、前記複数のプロセッサ上で実行されるとき、前記システムに、少なくとも、
    前記複数のプロセッサのうち第1のプロセッサ上においてのみ実行するように第1のスレッドを関連付けるステップと、
    前記複数のプロセッサのうち第2のプロセッサ上においてのみ実行するように第2のスレッドを関連付けるステップと、
    前記画像を、それぞれが前記画像の一部分を含む第1のスライス、第2のスライス、および第3のスライスに分けるステップと、
    前記第1のスライスを前記第1のスレッドに割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップと、
    前記第2のスライスを前記第2のスレッドに割り当て、前記第2のスレッドを前記第2のプロセッサ上で実行するステップであって、前記第2のスライスの割り当ておよび前記第2のスレッドの実行は、前記第1のスライスの割り当ておよび前記第1のスレッドの実行から独立している、ステップと、
    前記第1のスライスがすでに処理されたという表示を受信するステップと、
    前記第1のスライスがすでに処理されたために利用されていない処理リソースを有する状態にある前記第1のプロセッサの前記第1のスレッドに、前記第3のスライスを割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップであって、前記第3のスライスの割り当ておよび前記第1のスレッドの実行は、前記第2のスライスの割り当ておよび前記第2のスレッドの実行から独立している、ステップと、
    前記第2のスライスがすでに処理されたという表示を受信するステップと、
    前記第3のスライスがすでに処理されたという表示を受信するステップと、
    それぞれ処理された第1、第2、及び第3のスライスをクライアントに送信するステップ
    を行わせる
    ことを特徴とするシステム。
  12. 前記命令は、前記複数のプロセッサ上で実行されるとき、前記システムに、少なくとも、各処理されたスライスをクライアントへ送信させ、さらに、前記システムに、少なくとも、スライスが表わすのは前記画像のどの部分であるかの対応表示とともに各スライスを送信させることを特徴とする請求項11に記載のシステム。
  13. 前記命令は、前記複数のプロセッサ上で実行されるとき、前記システムに、少なくとも、各処理されたスライスをクライアントへ送信させ、さらに、前記システムに、少なくとも、各スライスを含む圧縮された画像を前記クライアントへ送信させることを特徴とする請求項11に記載のシステム。
  14. 前記命令は、前記複数のプロセッサ上で実行されるとき、前記システムに、少なくとも、各処理されたスライスをクライアントへ送信させ、さらに、前記システムに、少なくとも、各処理されたスライスを前記クライアントへリモートセッションを介して送信させることを特徴とする請求項11に記載のシステム。
  15. コンピュータ可読命令を格納するコンピュータ可読記憶デバイスであって、前記コンピュータ可読命令は、プロセッサ上で実行されるとき、前記プロセッサに、
    画像を、それぞれが前記画像の一部分を含む第1のスライス、第2のスライス、および第3のスライスに分けるステップと、
    第1のプロセッサ上においてのみ実行するように第1のスレッドを関連付けるステップと、
    第2のプロセッサ上においてのみ実行するように第2のスレッドを関連付けるステップと、
    前記第1のスライスを前記第1のスレッドに割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップと、
    前記第2のスライスを前記第2のスレッドに割り当て、前記第2のスレッドを前記第2のプロセッサ上で実行するステップであって、前記第2のスライスの割り当ておよび前記第2のスレッドの実行は、前記第1のスライスの割り当ておよび前記第1のスレッドの実行から独立している、ステップと、
    前記第1のスライスがすでに処理されたという表示を受信するステップと、
    前記第1のスライスがすでに処理されたために利用されていない処理リソースを有する状態にある前記第1のプロセッサの前記第1のスレッドに、前記第3のスライスを割り当て、前記第1のスレッドを前記第1のプロセッサ上で実行するステップであって、前記第3のスライスの割り当ておよび前記第1のスレッドの実行は、前記第2のスライスの割り当ておよび前記第2のスレッドの実行から独立している、ステップと、
    前記第2のスライスがすでに処理されたという表示を受信するステップと、
    前記第3のスライスがすでに処理されたという表示を受信するステップと、
    前記第1、第2、及び第3の処理されたスライスを、通信ネットワークにわたるリモートセッションを介してクライアントに送信するステップ
    を行わせる
    ことを特徴とするコンピュータ可読記憶デバイス。
JP2012503727A 2009-04-01 2010-04-01 複数のプロセッサを用いた画像圧縮の加速 Active JP5788865B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/416,791 2009-04-01
US12/416,791 US8705879B2 (en) 2009-04-01 2009-04-01 Image compression acceleration using multiple processors
PCT/US2010/029710 WO2010115057A2 (en) 2009-04-01 2010-04-01 Image compression acceleration using multiple processors

Publications (3)

Publication Number Publication Date
JP2012523176A JP2012523176A (ja) 2012-09-27
JP2012523176A5 JP2012523176A5 (ja) 2013-05-16
JP5788865B2 true JP5788865B2 (ja) 2015-10-07

Family

ID=42826231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012503727A Active JP5788865B2 (ja) 2009-04-01 2010-04-01 複数のプロセッサを用いた画像圧縮の加速

Country Status (5)

Country Link
US (1) US8705879B2 (ja)
EP (1) EP2414959A4 (ja)
JP (1) JP5788865B2 (ja)
CN (1) CN102378976B (ja)
WO (1) WO2010115057A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL4033764T3 (pl) * 2012-09-26 2023-12-27 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów, urządzenie do dekodowania obrazów, urządzenie do kodowania obrazów oraz urządzenie do kodowania/dekodowania obrazów
AU2013322008B2 (en) 2012-09-26 2016-10-27 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US9319483B2 (en) * 2012-11-13 2016-04-19 Karl Storz Imaging, Inc. Asynchronous open task for operating room control system
US20140172452A1 (en) * 2012-12-14 2014-06-19 Advanced Medical Imaging Development S.R.L. System for processing medical data
US11228769B2 (en) * 2013-06-03 2022-01-18 Texas Instruments Incorporated Multi-threading in a video hardware engine
US20150049105A1 (en) 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving indication information of pixel data grouping setting via display interface and related data processing method
US10193934B2 (en) * 2015-12-03 2019-01-29 Microsoft Technology Licensing, Llc Data compression for communications signalling
US10073775B2 (en) * 2016-04-01 2018-09-11 Intel Corporation Apparatus and method for triggered prefetching to improve I/O and producer-consumer workload efficiency
US11853394B2 (en) 2018-11-21 2023-12-26 Datalogic Ip Tech S.R.L. Image multiprocessing method for vision systems

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5138447A (en) 1991-02-11 1992-08-11 General Instrument Corporation Method and apparatus for communicating compressed digital video signals using multiple processors
JP2734465B2 (ja) * 1991-04-10 1998-03-30 三菱電機株式会社 ネットワーク用入出力装置
US6148111A (en) * 1998-04-27 2000-11-14 The United States Of America As Represented By The Secretary Of The Navy Parallel digital image compression system for exploiting zerotree redundancies in wavelet coefficients
JP2000295616A (ja) * 1999-04-08 2000-10-20 Matsushita Electric Ind Co Ltd 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及びプログラム記録媒体
US6651252B1 (en) * 1999-10-27 2003-11-18 Diva Systems Corporation Method and apparatus for transmitting video and graphics in a compressed form
US6625671B1 (en) * 1999-05-03 2003-09-23 Computer Network Technology Corporation Compression of buffered data
US20020101932A1 (en) * 2000-11-29 2002-08-01 Montgomery Dennis L. Method and apparatus for encoding information using multiple passes and decoding in a single pass
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US6978466B2 (en) * 2002-01-02 2005-12-20 Intel Corporation Method and system to reduce thrashing in a multi-threaded programming environment
US7365743B1 (en) * 2002-10-08 2008-04-29 Adobe Systems Incorporated Assignments for parallel rasterization
US7636810B2 (en) * 2003-11-26 2009-12-22 Intel Corporation Method, system, and apparatus for memory compression with flexible in-memory cache
US20050235284A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Systems and methods for tracking processing unit usage
US7614075B2 (en) * 2004-08-13 2009-11-03 Microsoft Corporation Dynamically generating video streams for user interfaces
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
JP4384607B2 (ja) * 2005-01-25 2009-12-16 株式会社日立国際電気 画像処理装置
JP2006340183A (ja) * 2005-06-03 2006-12-14 Canon Inc 画像符号化装置及び画像符号化方法
KR100657331B1 (ko) 2005-08-24 2006-12-14 삼성전자주식회사 멀티 프로세서를 채용한 화상형성장치 및 이를 이용한화상형성방법
US7653749B2 (en) * 2005-08-31 2010-01-26 Microsoft Corporation Remote protocol support for communication of large objects in arbitrary format
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US7870551B2 (en) * 2006-05-18 2011-01-11 International Business Machines Corporation Optimization of thread wake up for shared processor partitions
US8107669B2 (en) * 2006-06-14 2012-01-31 Samsung Electronics Co., Ltd. Video watermarking apparatus in compression domain and method using the same
US8000388B2 (en) * 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
US20080267297A1 (en) * 2007-04-26 2008-10-30 Polycom, Inc. De-blocking filter arrangements
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법
US8649615B2 (en) * 2007-06-18 2014-02-11 Canon Kabushiki Kaisha Moving picture compression coding apparatus
US8126262B2 (en) * 2007-06-18 2012-02-28 International Business Machines Corporation Annotating video segments using feature rhythm models
JP5084543B2 (ja) * 2008-02-12 2012-11-28 キヤノン株式会社 画像処理装置及び画像処理方法
CN101282478A (zh) * 2008-04-24 2008-10-08 上海华平信息技术股份有限公司 实现高清视频并行编码的方法及系统
US9258569B2 (en) * 2008-06-26 2016-02-09 Gvbb Holdings S.A.R.L. Moving image processing method, program and apparatus including slice switching

Also Published As

Publication number Publication date
CN102378976B (zh) 2015-08-26
US8705879B2 (en) 2014-04-22
WO2010115057A2 (en) 2010-10-07
JP2012523176A (ja) 2012-09-27
WO2010115057A3 (en) 2011-01-20
US20100254616A1 (en) 2010-10-07
EP2414959A2 (en) 2012-02-08
CN102378976A (zh) 2012-03-14
EP2414959A4 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
JP5788865B2 (ja) 複数のプロセッサを用いた画像圧縮の加速
US11029990B2 (en) Delivering a single end user experience to a client from multiple servers
US9146884B2 (en) Push pull adaptive capture
US8189661B2 (en) Remote desktop protocol (RDP) tile image classification for improving compression efficiency and quality
EP2622461B1 (en) Shared memory between child and parent partitions
US8924507B2 (en) Cross-frame progressive spoiling support for reduced network bandwidth usage
US8837824B2 (en) Classification and encoder selection based on content
US20160371874A1 (en) Command remoting
US9235452B2 (en) Graphics remoting using augmentation data
US20120075346A1 (en) Low Complexity Method For Motion Compensation Of DWT Based Systems
US8760453B2 (en) Adaptive grid generation for improved caching and image classification
US8307103B2 (en) Tear-free remote desktop protocol (RDP) display
US9344528B2 (en) Data compressor using hints

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20121031

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20121102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150519

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150730

R150 Certificate of patent or registration of utility model

Ref document number: 5788865

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250