JP4978575B2 - シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム - Google Patents

シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム Download PDF

Info

Publication number
JP4978575B2
JP4978575B2 JP2008166417A JP2008166417A JP4978575B2 JP 4978575 B2 JP4978575 B2 JP 4978575B2 JP 2008166417 A JP2008166417 A JP 2008166417A JP 2008166417 A JP2008166417 A JP 2008166417A JP 4978575 B2 JP4978575 B2 JP 4978575B2
Authority
JP
Japan
Prior art keywords
term reference
reference frame
buffer
stored
frame
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
JP2008166417A
Other languages
English (en)
Other versions
JP2010010959A (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.)
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 JP2008166417A priority Critical patent/JP4978575B2/ja
Priority to US12/487,913 priority patent/US20090323801A1/en
Publication of JP2010010959A publication Critical patent/JP2010010959A/ja
Application granted granted Critical
Publication of JP4978575B2 publication Critical patent/JP4978575B2/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、シンクライアントシステムにおいてサーバにより生成されたクライアント用のGUI(Graphical User Interface)画面データを符号化する画像符号化方法,及び、コン
ピュータにかかる画像符号化方法を実行させる画像符号化プログラムに、関する。
近年、業務アプリケーションの大規模化・高度化に因る端末資源の負荷及び陳腐化を回避すべく、また、ユーザデータのサーバによる集中管理によって情報漏洩等のネットワークセキュリティの向上を測るべく、シンクライアントシステムの開発が盛に行われている。
かかるシンクライアントシステムにおいては、通常、アプリケーションプログラム及びユーザデータはサーバのディスク装置に格納されている。そして、サーバのCPUが、端末から受信した操作情報(キー入力やマウス操作の情報)に基づいて、当該アプリケーションプログラムを実行することにより、ユーザデータに対する処理を行い、その処理結果を表すGUI画面を表示させるためのGUI画面データを、端末へ応答する。そのため、端末は、コマンド等を入力するためにユーザによって操作された入力装置によって入力された操作情報をサーバへ送信する機能,及び、サーバから応答されたGUI画面データに基づいて
ディスプレイ上に画面を表示する機能を有していれば足りるのである。
かかるシンクライアントシステムにおいて、ユーザに違和感を感じさせることなく効率的に業務を行わしめるためには、サーバにおけるアプリケーションプログラムによる処理実行から端末における処理結果の画面表示までのレスポンスを、可及的に向上させる必要がある。もっとも、通信資源の容量には自ずから制限があるので、サーバにおいて生成された表示画面データを圧縮して端末へ送信すれば良い。
そこで、従来、多くのシンクライアントシステムでは、動画像符号化方式であるH.264
動画像符号化を用いてGUI画面を圧縮して端末へ送信する方法が、採用されている。ここ
に、H.264動画像符号化とは、既存の動画圧縮方法であるMPEG−4等と同様に、フレ
ーム間予測,空間変換,量子化,エントロピー符号化等を採用するものであるが、それらを既存のものから改良することにより、圧縮効率を向上させたものである。
かかる改良の一つがフレーム間予測における複数参照フレームの導入である。即ち、既存の動画圧縮方式においては、フレーム間予測において参照フレームとして指定できるフレームは直前のフレームに固定されていたために、例えばシーンチェンジがあった場合には、圧縮効率を高くすることができなかったが、H.264動画像符号化では、H.264動画像符号化では、Joint Video Team (JVT) of ISO / IEC MPEG & ITU-T VCEG (SIO / IEC JTC1 / SC29 / w11 and ITU-T SG16 Q.6に規定されているように、複数の参照フレームを保持
することができ、しかも、保持数が所定枚数を超えると古いものから順に破棄されるショートタームリファレンス(short term reference)フレームに加えて、永続的に保持可能なロングタームリファレンス(long term reference)フレームをも保持し、且つ、参照
することができるように改良されているので、シーンチェンジ後の画面に近似したフレームをこれら複数フレームの中から捜して、これを参照することにより、高効率に圧縮することが可能となるのである。
図11は、かかるH.264動画像符号化を用いたシンクライアントシステムの概念図であ
る。図11において、シンクライアントプログラムを実行している端末(以下、「シンクライアント端末」という)100は、入力装置から入力された操作情報(キー入力情報,マウス操作情報)を、シンクライアントサービス対応のサーバプログラムを実行しているサーバ装置(以下、単に「サーバ」という)101へ送信し、このサーバ101は、受信した操作情報に基づいてアプリケーションプログラムを実行し、上記サーバプログラムに含まれるGUI操作画面エミュレーションソフト(ないし、ハードウェアであるGUI操作画面エミュレーション装置)102により、その処理結果を表すGUI画面を表示するためのGUI画面データを生成し、同じく上記サーバプログラムに含まれるH.264符号化ソフト(ない
し、ハードウェアエンコーダであるH264.符号化装置)103により、H.264動画像符号化する。
このとき、図12に示すように、H.264符号化ソフト/装置103は、GUI操作画面エミュレーション装置102から受け取ったGUI画面データの各フレームを、順次、ショート
タームリファレンスフレームとして、一時記憶メモリからなるDPB(Decorded Picture
Buffer)104のショートレファレンスフレーム領域に格納する。斯様にしてDPB1
04に格納されたショートタームリファレンスフレームの数が、予め定められた数を超えると、格納された時期が古いものから、順に破棄される。また、H.264符号化ソフト/装
置103は、DPB104に格納されたショートタームリファレンスフレームのうち任意のものを、ロングタームリファレンスフレームとして、DPB104のロングタームリファレンス領域に複写する。斯様にしてDPB104に格納されたロングタームリファレンスフレームは、意図的に破棄が指示されない限り、永続的にDPB104内に保持され続ける。
同時に、H.264符号化ソフト/装置103は、DPB104内に格納している各リファ
レンスフレームへのポインタをリスト構造にて一覧したリファレンスリスト105を一時記憶メモリ上に構築するか、かかるリファレンスリスト105が既に存在していれば、DPB104に新たに格納されたフレームのポインタを登録する。
なお、H.264符号化ソフト/H264.符号化装置103は、何れのショートタームリファレンスフレームをロングタームリファレンスフレームとしてDBP104内に複製したかについての情報、及び、リファレンスリスト105の内容を、シンクライアント端末100の後述するH.264復号化ソフト/装置106へ通知する。
以上の準備をした上で、H.264符号化ソフト/装置103は、リファレンスリスト10
5及びDPB104内のリファレンスフレームを参照して、当該フレームを符号化する。
このようにしてGUI画面の各フレームを順次符号化することによって得られた符号化ス
トリームは、LAN等のネットワークを通じてシンクライアント端末100へ応答される。
シンクライアント端末100では、シンクライアントプログラムを構成するH.264復号
化ソフト/装置106は、後述するようにして復号化したフレームをショートタームリファレンスフレームとして、上記DPB104と同一構成のDPB107におけるショートタームリファレンスフレーム領域に格納するとともに、H.264符号化ソフト/装置103
から指定されたショートタームリファレンスフレームを、当該DPB107におけるロングタームリファレンスフレーム領域に複製し、更に、H.264符号化ソフト/装置103か
ら通知された内容通りのリファレンスリスト108を、一時記憶メモリ上に生成する。このようにしてサーバ101のものと同じ内容を再現されたDPB107及びリファレンスリスト108を参照しつつ、H.264復号化ソフト/装置106は、H.264符号化ソフト/装置103から受信した符号化ストリームに基づいてGUI画面データの各フレームを順次復
号化し、このGUI画面データに基づいてGUI画面の動画像を、ディスプレイ109上に表示する。
特開平6-149527号公報 特許第3428192号公報
ところで、従来、H.264動画像符号化を用いる場合にどのシーンをロングタームリファ
レンスフレームとして指定して登録するかについては、規格上定めがないので、画像処理に基づいて判定せざるを得なかった。
しかしながら、かかる画像処理は、往々にして複雑で処理負荷が大きかった。しかも、どのシーンが再び現れるかを予測することは非常に困難であるので、ロングタームリファレンスフレームを用いることによって現実に符号化効率が向上するかどうかは、不確実であった。
そこで、本発明の課題は、低処理負荷でありながら、符号化効率を高くすることができるロングタームリファレンスフレームを指定して保存できるシンクライアントシステムにおける画像符号化方法を、提供することである。
上記課題を達成するため、サーバは、先ず、端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データのフレームを順次生成し、生成順に、ショートタームリファレンスフレームとして、第1バッファに格納する。この第1バッファにおいて、ショートタームリファレンスフレームの数が所定数を越えると、古いものから廃棄される。一方、サーバは、オペレーティングシステムのGUI管理プログラムのメッセージキューに登録されているメッセージに基づいて、画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出する。このようにしてアクティブ化イベントを検出すると、サーバは、その時点で第1バッファに格納されている最新のショートタームリファレンスフレームを、その時点でアクティブなウィンドウに対応付けて、第2バッファに、ロングタームリファレンスフレームとして格納する。この第2バッファにおいて、ロングタームリファレンスフレームは、第1バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間保持され得る。一方、サーバは、生成された各フレームを、第1バッファに格納されている各ショートタームリファレンスフレーム及び第2バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、端末が復号化可能な符号化ストリームへ符号化し、当該端末へ送信する。
以上の構成によると、サーバは、画像データの各フレームに対して複雑な画像処理を施すことなく、GUI管理プログラムのメッセージキューに登録されているメッセージに基づいて、ロングタームリファレンスの登録をすべきタイミングを容易に決定することができ、その結果、あるウィンドウから別のウィンドウにアクティブウィンドウが切り替えられた後に、当初のウィンドウが再度アクティブに戻された場合であっても、当該ウィンドウが当初アクティブであった期間の最後のフレームがロングタームリファレンスフレームとして第2バッファに保存されており、当該ロングタームリファレンスフレームは符号化対象フレームに近似している可能性が高いので、当該ロングタームリファレンスフレームを参照すれば、高効率に符号化することができる。
上述した符号化のアルゴリズムは、H.264動画符号化であっても良いし、MPEG−4であっても良い。要は、フレーム間の差分を符号化するアルゴリズムであれば良い。また、
第2バッファの容量は、無限である必要はなく、第1バッファの容量よりも小さくすることが可能である。もっとも、第2バッファの容量を小さくした場合には、アクティブウィンドウの切替を繰り返すにつれて、第2バッファが満杯になってしまう可能性もある。そのような場合には、既に第2バッファに格納されているロングタームリファレンスフレームを削除するか、新たに格納しようとするロングタームリファレンスフレームが将来参照される可能性が低いならば、その格納を中止してしまうという対策が、考えられる。前者の対策としては、例えば、古いロングタームリファレンスフレームを削除すること,対応付けられたアクティブウィンドウの面積が最も小さいロングタームリファレンスフレームを削除すること,若しくは、新たに格納しようとするロングタームリファレンスフレーム中のアクティブウィンドウと同じウィンドウに対応付けられた既存のロングタームリファレンスフレームを削除することが、考えられる。後者の対策としては、例えば、新たに格納しようとするロングタームリファレンスフレーム中のアクティブウィンドウの面積が所定閾値よりも小さい場合,アクティブウィンドウのアスペクト比が所定閾値よりも大きい場合,若しくは、アクティブウィンドウの更新頻度が所定閾値よりも大きい場合に、第2バッファへの格納を中止することが考えられる。
なお、符号化のアルゴリズムとしてH.264動画符号化を用いた場合、リファレンスリス
トを作成する必要がある。この場合、リストの先頭側に参照対象フレームのポインタが登録されていれば、そのリスト順を指定する情報を高効率に符号化できる。そこで、例えば、アクティブ化イベントによってアクティブに切り替えられるウィンドウに対応付けて第2バッファに格納されているロングタームリファレンスフレームのポインタを先頭に近い位置に登録したり、対応付けられているアクティブウィンドウの面積が大きいものほどそのポインタを先頭に近い位置に登録したり、最近までアクティブであったウィンドウに対応付けられたものほどそのポインタを先頭に近い位置に登録することが考えられる。
以上のように構成された本発明によると、低処理負荷でありながら、符号化効率を高くすることができるロングタームリファレンスフレームを指定して、保存することが可能となる。
以下、図面に基づいて、本案によるシンクライアントシステムにおける画像符号化方法の実施の形態を、説明する。
<システム構成>
図1は、画像符号化方法が実施されるシンクライアントシステムの概略システム構成図である。図1に示すように、シンクライアントシステムは、LAN等のネットワークNを介して相互に接続されたサーバ装置1と複数台(図1では1台のみ図示)のシンクライアント端末2とから、構成されている。
サーバ装置1は、バスBを介して相互に接続されたCPU10,メモリ11,通信インタフェース12,及び、ハードディスク13を、主要構成としている。
ハードディスク13は、各種プログラム及びユーザデータ22等の各種データを、格納するためのディスク装置である。CPU10は、ハードディスク13に格納されている各種プログラムを実行する中央処理装置である。メモリ11は、CPU10が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信インタフェース12は、ネットワークNを終端して当該ネットワークNを通じた通信を司る装置である。
他方、シンクライアント端末2は、バスBを介して相互に接続されたCPU30,メモリ31,通信インタフェース32,記憶装置33,入力装置35及びディスプレイ36を
、主要構成としている。
記憶装置33は、最小限のオペレーティングシステム及びシンクライアントプログラム25を格納するに足りるディスク装置であり、ハードディスクでも良いが、ROM等のメモリであっても良い。CPU30は、記憶装置33に格納されている各種プログラムを実行する中央処理装置である。メモリ31は、CPU30が上記処理を実行するに際して作業領域が展開される主記憶装置である。通信インタフェース32は、ネットワークNを終端して当該ネットワークNを通じた通信を司る装置である。入力装置35は、キーボード及びマウス等のポインティングデバイスであり、操作者によって操作されると、その操作の内容を示す操作情報(キー入力,マウス操作)を、CPU30に入力する。かくして入力された操作情報は、CPU30がシンクライアントプログラム35を実行することにより、サーバ1へ送信される。ディスプレイ36は、後述するH.264復号化ソフト/装置3
9によって復号化された一連のフレームからなる画面データに基づいて、サーバ1における処理結果を示す画面の動画を表示する。
以下、サーバ1におけるシンクライアントシステムに関連する機能をブロック図化して表示する図2,及び、図2における各ブロック間でのデータの授受を示す流れ図である図3を参照しつつ、サーバ1のハードディスク13に格納されたプログラム(若しくは、その一部に代替されるハードウェア)及びシンクライアント端末2の記憶装置23に格納されたシンクライアントプログラム(若しくは、その一部に代替されるハードウェア)の説明を行う。
上述したサーバのハードディスク13に格納されている各種プログラムには、サーバプログラム14及び多種類のアプリケーションプログラム15が、含まれている。このサーバプログラム14は、当該サーバ装置1を構成するコンピュータをサーバとして機能させるとともに、当該サーバにシンクライアントサービスを提供させるためのオペレーティングシステムプログラム(例えば、Cintrix社のCintrix Presentation Server[商標],サン・マイクロシステムズ社のJava Station[商標],マイクロソフト社のWindows Server
Terminal Service[商標],等)である。従って、このサーバプログラム14には、GUI操作画面エミュレーションソフト及びH.264符号化ソフトが含まれている。
GUI操作画面エミュレーションソフトは、CPU10に対して、シンクライアント端末
2から受信した操作情報(キー入力及びマウス操作に関する情報)に基づいて実行されたサーバプログラム14中のGUI関連モジュール又はアプリケーションプログラム15によ
る処理結果を表すGUI画面のフレームを、所定周期毎に生成させ、その画面データをH.264符号化ソフトに引き渡させる。
また、シンクライアント端末2から受信した操作情報(キー入力及びマウス操作に関する情報)がアクティブウィンドウを切り替える操作を示すものであった場合には、サーバプログラム14中のGUI管理プログラムのメッセージキューにアクティブ化イベントのメ
ッセージ(どのウィンドウIDを有するウィンドウがアクティブになるかの情報を含む)が登録されるので、GUI操作画面エミュレーションソフトは、CPU10に対して、当該
メッセージキューに登録されているアクティブ化イベントを検出させ(アクティブ化イベント検出手段に相当)、アクティブ化イベント発生時点でアクティブであったウィンドウの識別番号(ウィンドウID),そのウィンドウの面積,そのウィンドウの更新回数を示す更新カウントといった情報,即ちウィンドウ情報を、H.264符号化ソフトに引き渡させ
る。
なお、GUI操作画面エミュレーションソフトの機能は、ハードウェアとして構成するこ
とも可能である。そこで、図2及び図3においては、かかるGUI操作画面エミュレーショ
ンソフト又はハードウェアによって実現される機能を、「GUI操作画面エミュレーション
装置16」と記述する。
また、H.264符号化ソフトは、CPU10に対して、GUI操作画面エミュレーションソフトから受け取った画面データを構成する各フレームを、上述したH.264の規格に従った処
理によって符号化させ、かかる符号化によって得られた符号化ストリームを、シンクライアント端末2へ応答させる。
即ち、H.264符号化ソフトは、CPU10に対して、予めメモリ11上に上述したDP
B20及びリファレンスリスト21を構築させ、各フレームを受け取る毎に、そのフレームをDPBにおけるショートタームリファレンス領域(即ち、保持するショートタームリファレンスフレームの数が所定数を超えると古いものから廃棄する第1バッファに相当)に格納させるとともに(即ち、ショートタームリファレンスフレーム登録手段に相当)、そのポインタをリファレンスリスト21に登録させ、更に、後述するロングタームリファレンス制御器18からの指示に応じて、アクティブ化イベント発生時点におけるフレームをロングタームリファレンス領域(即ち、第1バッファにおけるショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第2バッファに相当)へ複製させて(即ち、ロングタームリファレンス登録手段に相当)、複製後のポインタをリファレンスリストに登録させた後に、受け取ったフレームを複数のマクロブロックに分割し、分割した各マクロブロック毎に、リファレンスリスト21によって定義されたリスト番号が若いものから順にDPB20内のリファレンスフレームをサーチさせ、そのマクロブロックに最も近似したリファレンスフレームを指定し、指定したリファレンスフレームを参照して、当該マクロブロックを符号化させる(符号化手段に相当)。
これとともに、H.264符号化ソフトは、CPU10に対して、何れのフレームをロング
タームリファレンスフレームとしてDBP104内に格納したかについての情報、及び、リファレンスリスト105の内容を,更には、符号化によって得られた符号化ストリーム(各フレームの各マクロブロックを、どのリファレンスフレームを参照して符号化したかの情報を含む)を、シンクライアント端末100へ応答させる。
なお、H.264符号化ソフトの機能は、ハードウェアとして構成することも可能である。
そこで、図2においては、かかるH.264符号化ソフト又はハードウェアによって実現され
る機能を、「H.264符号化ソフト/装置17」と記述する。H.264符号化ソフトの機能がハードウェアとして構成される場合には、上述したDPB20は専用のバッファとして構成され、リファレンスリスト21は、当該ハードウェアを構成する書換可能メモリ上に構築される。
更に、H.264符号化ソフト/装置17には、H.264に規格されていない特別な要素として、ロングタームリファレンス制御部19が組み込まれている。このロングタームリファレンス制御部19も、CPU10に実行されるプログラムとして構成して、ハードウェアとして構成しても良い。
このロングタームリファレンス制御部19は、GUI操作画面エミュレーション装置16
から受け取ったウィンドウ情報を参照し、図4に示すような構造のロングタームリファレンス管理情報を生成して、当該ロングタームリファレンス制御部19がプログラムとして構成された場合にはメモリ11に、ハードウェアとして構成された場合には当該ハードウェア中のメモリに、保存する。このロングタームリファレンス管理情報中のウィンドウID,面積,更新カウントは、ウィンドウ情報から引き継いだ情報であり、フレーム番号は、アクティブ化イベント発生時点のフレーム(即ち、アクティブウィンドウが切り替わる
直前のフレーム)の識別番号である。なお、図示は省略したが、このロングタームリファレンス管理情報には、GUI管理プログラムから得られるウィンドウに関する情報(例えば
、アスペクト比)が記載されている。従って、このロングタームリファレンス管理情報により、そのウィンドウIDによって特定されるアクティブなウィンドウが、そのフレーム番号が示すロングタームリファレンスフレームに、対応付けられる。
そして、ロングタームリファレンス制御部19は、アクティブ化イベント発生時には、一時記憶しているロングタームリファレンス管理情報の数を所定の最大枚数以内に抑えつつ、一時記憶しているロングタームリファレンス管理情報に基づいて、DPB20のロングタームリファレンス領域への対象フレームの複製,及び、リファレンスリスト21へ登録すべきことを、H.264符号化ソフト/装置17へ指示する。なお、GUI操作画面エミュレーションソフトの代わりに、ロングタームリファレンス制御部19自身が、GUI管理プロ
グラムのメッセージキューからアクティブ化イベントを取得し、ウィンドウ情報を取得しても良い。
以下、ロングタームリファレンス制御部19を含むH.264符号化ソフト/装置17が実
行する処理の具体的内容を、図5乃至図7のフローチャート(GUI画面データのフレーム
受信時に実行される処理)及び図8のフローチャート(ウィンドウ情報受信時に実行される処理)に基づいて説明する。
先ず、図5のフローチャートに示す処理(以下、「GUI画面復号化処理」という)は、GUI操作画面エミュレーション装置16からのGUI画面データの個々のフレームを受信する
毎に、スタートする。そして、スタート後最初のS001では、H.264符号化ソフト/装
置17は、受信したGUI画面データのフレームを、ショートタームリファレンスフレーム
として、DPB20におけるショートタームリファレンス領域に格納する(ショートタームリファレンスフレーム登録手段に相当)。
次のS002では、H.264符号化ソフト/装置17は、リファレンスリスト21の作成
処理を実行する。具体的には、図6に示すリファレンスリスト作成処理サブルーチンに従った処理を実行する。
このサブルーチンに入って最初のS101では、H.264符号化ソフト/装置17は、図
9に示すように、前回のGUI画面符号化処理におけるS001にて格納したショートター
ムリファレンスフレーム,即ち、処理対象フレームの直前のフレームのポインタを、リファレンスリストの先頭に登録する。
次のS102では、アクティブ化イベントが発生しているかをチェックする。このチェックは、前回のGUI画面符号化処理の開始後今回のGUI画面符号化処理の開始までの間に、上述したロングタームリファレンス管理情報が新たに格納されているか否かに基づいて行われる。そして、アクティブ化イベントが発生していなければ、H.264符号化ソフト/装
置17は、処理をS104へ進める。
これに対して、アクティブ化イベントが発生していれば、H.264符号化ソフト/装置1
7は、S103において、図9に示すように、アクティブ化イベントによってアクティブになるウィンドウが過去にアクティブとなっていた期間の終期においてDPB20に登録されたロングタームリファレンスフレームのポインタを、リファレンスリスト21における2番目の位置に登録する。S103を完了すると、H.264符号化ソフト/装置17は、
処理をS104へ進める。
S104では、H.264符号化ソフト/装置17は、DPB20に登録されている残りの
ロングタームリファレンスフレームのポインタを、その登録(従って、アクティブとされた時)が最近のものから順に整列する。
次のS105では、H.264符号化ソフト/装置17は、S104での整列がなされたロ
ングタームリファレンスフレームのポインタのリファレンスリスト21における並び順を、それらのリファレンスフレーム中のアクティブなウィンドウの面積に基づいて、補正する。具体的には、図7に示すロングタームリファレンス並び補正サブルーチンを実行する。
このサブルーチンでは、H.264符号化ソフト/装置17は、整列のなされた各ロングタ
ームリファレンスフレームのポインタ毎に、S201乃至S204のループ処理を実行する。
このループに入って最初のS201では、H.264符号化ソフト/装置17は、整列され
たロングタームリファレンスフレームの順番を指定するための変数i(初期値はi=1)が
参照値max(S103が実行されたのであれば、ロングタームリファレンスフレーム管理
情報の存在するロングタームリファレンスフレームの総数と同値,S103が実行されていないのであれば、ロングタームリファレンスフレームの総数よりも一つ大きい値)未満であるかどうかをチェックする。そして、“1”以上max未満であれば、H.264符号化ソフト/装置17は、次のS202において、i番目のポインタが示すロングタームリファンレンスフレーム中のアクティブなウィンドウの面積(即ち、当該ロングタームリファンレンスフレームについてのロングタームリファレンス管理情報中の面積)に所定の定数αを乗じた値が、i−1番目のポインタが示すロングタームリファンレンスフレーム中のアクティブなウィンドウの面積未満であるか否かを、チェックする。そして、前者が後者以上であれば、H.264符号化ソフト/装置17は、処理をそのままS204へ進める。なお、
リスト番号i=1の場合には、比較対象が存在していないので、常に、処理をS204へ進
める。
これに対して、前者が後者未満であれば、H.264符号化ソフト/装置17は、S203
において、i番目のポインタとi−1番目のポインタとの順序を、リファレンスリスト21において入れ替える。S203を完了すると、H.264符号化ソフト/装置17は、処理
をS204へ進める。
S204では、H.264符号化ソフト/装置17は、iを一つインクリメントして、処理
をS201に戻す。
以上の処理ループを全てのリスト番号に対して実行した結果、処理対象リスト番号がmaxと合致すると、H.264符号化ソフト/装置17は、このロングタームリファレンス並び補正サブルーチンを終了して、処理を図6のルーチンに戻す。そして、H.264符号化ソフト
/装置17は、処理をS105からS106へ進める。
S106では、H.264符号化ソフト/装置17は、図9に示すように、S104にて整
列をされS105にて並び順を補正された各ロングタームリファレンスフレームのポインタを、その並び順通りに、リファレンスリスト21の末尾に、登録する。S106を完了すると、H.264符号化ソフト/装置17は、このリファレンスリスト作成処理サブルーチ
ンを終了して、処理を図5のメインルーチンに戻す。そして、H.264符号化ソフト/装置
17は、処理をS002からS003へ進める。
S003では、H.264符号化ソフト/装置17は、S002にて作成したリファレンス
リストを、H.264に指定の方法により符号化する。
続いてH.264符号化ソフト/装置17は、今回GUI操作画面エミュレーション装置16から受信したフレーム(以下、「処理対象フレーム」という)を、複数のマクロブロックに分割し、各マクロブロック毎に符号化をすべく、S004乃至S011のループ処理(ブロック処理ループ)を実行する。
このブロック処理ループに入って最初のS004では、H.264符号化ソフト/装置17
は、未処理の分割マクロブロックを一つ特定して、処理対象ブロックとする。続いて、H.264符号化ソフト/装置17は、S004にて特定した処理対象ブロックに対して、S0
05乃至S007のループ処理(リファレンスリストループ)を実行する。
このリファレンスリストループに入って最初のS005では、H.264符号化ソフト/装
置17は、変数ref(初期値は“0”)が定数N未満であるかどうかを、チェックする。
なお、参照対象リファレンスフレームのポインタに対応したリスト番号を示す。即ち、ref=0は、リファレンスリスト21の先頭に登録されているショートタームリファレンスフレーム(即ち、直前のフレーム)のリスト番号を示し、ref=1は、リファレンスリスト21の2番目の位置に登録されているロングタームリファレンスフレーム(即ち、処理時の直前にアクティブ化イベントが発生していた場合には、そのアクティブ化イベントによってアクティブに切り替えられるウィンドウが過去にアクティブであった期間における最後のフレーム)のリスト番号を示し、以下、refの値は、ref+1番目の位置に登録されているロングタームリファレンスフレームのリスト番号を示す。また、定数Nは、ロングタームリファレンスフレームの総数と同値である。
H.264符号化ソフト/装置17は、S005でのチェックの結果として、変数refがN未満であったならば、S006において、変数refの値と同じリスト番号が付与されたポイ
ンタをリファレンスリスト21から読み出し、このポインタが示すDPB20中のフレームメモリから、リファレンスフレームを読み出す。そして、処理対象ブロックに含まれる各画素とリファレンスフレーム中の同位置の画素との差分絶対値の累積値SAD(ref)を求める。
次のS007では、H.264符号化ソフト/装置17は、変数refを一つインクリメントして、処理をS005へ戻す。
以上のリファレンスリストループを、全てのリファレンスフレームについて繰り返した結果、変数refがNに達すると、H.264符号化ソフト/装置17は、リファレンスリストループから抜けて、処理をS008へ進める。
S008では、H.264符号化ソフト/装置17は、S006にて算出したSAD(ref)が最
も小さくなったrefの値を、minRefとして特定する。
次のS009では、H.264符号化ソフト/装置17は、minRefの値と同じリスト番号が
付与されたポインタをリファレンスリスト21から読み出し、このポインタが示すDPB20中のフレームメモリから、リファレンスフレーム(即ち、最も近似したフレーム)を読み出す。そして、H.264符号化ソフト/装置17は、読み出したリファレンスフレーム
を参照して、H.264に従って、処理対象ブロックとの画面間予測を行う。
次のS010では、H.264符号化ソフト/装置17は、S009での画面間予測の結果
に基づいて、H.264に従って、処理対象ブロックの可変長符号化処理を実行して、処理対
象ブロック分の符号化ストリームを得る(符号化手段に相当)。さらに、H.264符号化ソ
フト/装置17は、S008にて特定したminRefを可変長符号化によって符号化する。こ
の時、minRefが0に近い程符合長が短くなるが、上述したS002での処理において、参照される可能性の大きい重要なリファレンスフレームのポインタをリファレンスリスト21の前方に配置してあるので、符号化が有利となっている。そして、H.264符号化ソフト
/装置17は、符号化したminRefを、参照対象リファレンスフレームを特定する情報として、上記符号化ストリームに追加する。
次のS011では、H.264符号化ソフト/装置17は、処理をS004へ戻す。
以上のブロック処理ループを、処理対象フレームの全マクロブロックに対して実行し終わると、H.264符号化ソフト/装置17は、ブロック処理ループを抜けて、処理をS01
2へ進める。
S012では、H.264符号化ソフト/装置17は、S003にて符号化したリファレン
スリスト及びS010にて生成した符号化ストリームを、シンクライアント端末2のH.264符号化ソフト/装置39へ送信する。
以上により、GUI操作画面エミュレーション装置16から受信したGUI画面データの一フレームに対するGUI画面復号化処理が完了する。
次に、図8のフローチャートに示す処理(以下、「アクティブ化イベント処理」という)は、GUI操作画面エミュレーション装置16からウィンドウ情報を受信することにより
、スタートする。そして、スタート後最初のS301では、H.264符号化ソフト/装置1
7は、現在メモリ11又はそのハードウェア中のメモリに格納されているロングタームリファレンス管理情報の数(登録枚数)を一つインクリメントした値が、所定の最大枚数以上であるか否かをチェックする。そして、前者が後者未満であれば、S302へ処理を進め、前者が後者以上であれば、処理をS304へ進める。
S302では、H.264符号化ソフト/装置17は、現在アクティブなウィンドウ(即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ)のウィンドウIDを、新たに受信したウィンドウ情報から取得する。
次のS303では、H.264符号化ソフト/装置17は、S302にて取得したウィンド
ウIDが登録済みであるかどうかをチェックする。即ち、同じウィンドウIDを含むロングタームリファレンス管理情報が、既にメモリ11又はハードウェア中のメモリに格納されているかどうかをチェックする。そして、H.264符号化ソフト/装置17は、かかるロ
ングタームリファレンス管理情報が格納(登録)済みであれば、処理をS306へ進め、未格納(登録)であれば、処理をS307へ進める。
一方、S304では、H.264符号化ソフト/装置17は、既にメモリ11又はハードウ
ェア中のメモリに格納されているロングタームリファレンス管理情報から、「面積(アクティブなウィンドウの面積)」が最も小さなものを、検索する。
次のS305では、H.264符号化ソフト/装置17は、既にメモリ11又はハードウェ
ア中のメモリに格納されているロングタームリファレンス管理情報から、作成時期が最も古いもの,即ち、アクティブだった時期が最も古いアクティブウィンドウを含むロングタームリファレンスフレームについてのロングタームリファレンス管理情報を、検索する。S305の完了後、H.264符号化ソフト/装置17は、処理をS306へ進める。
S306では、H.264符号化ソフト/装置17は、S304にて検出された「面積(ア
クティブなウィンドウの面積)」が最も小さいロングタームリファレンス管理情報及びS
305にて検出された最も古いロングタームリファレンス管理情報,又はS303にて登録済みであると判断されたウィンドウIDを含むロングタームリファレンス管理情報を、メモリ11又はハードウェア中のメモリから消去するとともに、消去したロングタームリファレンス管理情報に対応したロングタームリファレンスフレームを、DPB20のロングタームリファレンスフレーム領域から削除する。S306を完了すると、H.264符号化
ソフト/装置17は、処理をS307へ進める。
S307では、H.264符号化ソフト/装置17は、現在アクティブなウィンドウ(即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ)の面積を、新たに受信したウィンドウ情報から取得し、所定の閾値と比較する。そして、このウィンドウの面積が閾値以下であれば、H.264符号化ソフト/装置17は、ロングタームリファレンスフ
レームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウの面積が閾値を超えていれば、H.264符号化ソフト/装置
17は、処理をS308へ進める。
S308では、H.264符号化ソフト/装置17は、現在アクティブなウィンドウ(即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ)の更新カウントの値を、新たに受信したウィンドウ情報から取得し、所定の閾値と比較する。そして、このウィンドウの更新頻度の値が閾値以下であれば、H.264符号化ソフト/装置17は、このウ
ィンドウが頻繁に更新されているとして、ロングタームリファレンスフレームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウの更新頻度の値が閾値を超えていれば、H.264符号化ソフト/装置17は、
このウィンドウが頻繁に更新されていないとして、処理をS309へ進める。
S309では、H.264符号化ソフト/装置17は、現在アクティブなウィンドウ(即ち
、アクティブ化イベント発生時点でアクティブであったウィンドウ)のアスペクト比を、GUI管理プログラムから取得し、所定の閾値と比較する。そして、このウィンドウのアス
ペクト比が閾値以上であれば、H.264符号化ソフト/装置17は、ロングタームリファレ
ンスフレームの登録を何等行うことなく、直ちに、このアクティブ化イベント処理を終了する。これに対して、このウィンドウのアスペクト比が閾値未満であれば、H.264符号化
ソフト/装置17は、処理をS310へ進める。
S310では、H.264符号化ソフト/装置17は、現在DPB20のショートタームリ
ファレンス領域に登録されている最新のショートタームリファレンスフレームを、ロングタームリファレンス領域に複製させるとともに(ロングタームリファレンスフレーム登録手段に相当)、新たに受信したウィンドウ情報の内容,当該リファレンスフレームのフレーム情報,管理プログラムから得られるウィンドウに関する情報に基づいてロングタームリファレンス管理情報を生成し、メモリ11又はハードウェア中のメモリに格納する。S310を完了すると、H.264符号化ソフト/装置17は、このアクティブ化イベント発生
時にロングタームリファレンスフレームを登録する処理が完了する。
シンクライアント端末2の記憶装置23に記憶されているシンクライアントプログラム34は、例えば、Cintrix社のPresentation Serverクライアント(商標),サン・マイクロシステムズ社のJava Virtuel Machine(商標),マイクロソフト社のRemote Desktop Protocol(商標),等であり、H.264復号化ソフトを含んでいる。このH.264復号化ソフト
は、CPU30に対して、H.264符号化ソフト(H264.符号化装置)17から受信した符号化ストリームを復号化することによって一連のフレームからなるGUI画面の動画データを
生成し、この動画データに基づくGUI画面の動画をディスプレイ36上に表示する。
即ち、H.264復号化ソフトは、CPU30に対して、記憶装置23上に上述したDPB
38及びリファレンスリスト39を構築させるとともに、各フレームについての符号化ストリームをH.264符号化ソフト/装置17から受信する毎に、これらDPB38及びリフ
ァレンスリスト39を参照して、対象フレームがどのリファレンスフレームを参照して符号化されたかを示す情報及び対象フレームの符号化ストリームに基づいて、対象フレームの画像データを復号化させてディスプレイ36上に表示させるとともに、復号化されたフレームをDPB38におけるショートタームリファレンス領域に格納させる。また、H.264復号化ソフトは、H.264符号化ソフト/装置17から、何れのフレームをロングタームリファレンスフレームとしてDBP20内に格納したかについての情報を受信すると、CPU30に対して、当該情報が示すフレームをショートタームリファレンス領域からロングタームリファレンス領域へ複製させる。さらに、H.264復号化ソフトは、H.264符号化ソフト/装置17から、リファレンスリスト21の内容を受信すると、CPU30に対して、その内容通りに、リファレンスリスト37を更新する。このようにしてDPB38に格納されたショートタームリファレンスフレーム又はロングタームリファレンスフレーム及び更新されたリファレンスリストは、次以降のフレームを復号化するために参照され得る。
なお、H.264復号化ソフトの機能は、ハードウェアとして構成することも可能である。
そこで、図2においては、かかるH.264復号化ソフト又はハードウェアによって実現され
る機能を、「H.264復号化ソフト/装置39」と記述する。H.264復号化ソフトの機能がハードウェアとして構成される場合には、上述したDPB38は専用のバッファとして構成され、リファレンスリスト37は、当該ハードウェアを構成する書替可能メモリ上に構築される。
以下、上述したように構成された本実施形態によるシンクライアントシステムによってシンクライアント端末2のディスプレイ38上へ画面表示するまでの流れを、図10の例に応じて説明する。
いま、それまでにシンクライアント端末2の入力装置35に対する操作に基づいて、サーバ1から送信されてきた符号化ストリームにより、図10のAに示すGUI画面が、ディ
スプレイ36上に表示されていたとする。このGUI画面においては、ウィンドウW1がア
クティブとなっており、非アクティブなウィンドウW2に一部重なっているとする。この状態下で、GUI操作画面エミュレーション装置16は、サーバプログラム14及びウィン
ドウW1に対応したアプリケーションプログラムの実行結果及び操作情報が示す操作内容(カーソル等)を表す画面データのフレームを周期的に作成して、H.264符号化ソフト/
装置17に渡すこととなる。このようにして、生成された画像データの各フレームを、H.264符号化ソフト/装置17は、順次DPB20のショートタームリファレンス領域に格
納するとともに、リファレンスリスト21を生成し、当該リファレンスリスト21の先頭にポインタが登録されているショートタームリファレンスフレーム(即ち、一つ前に受信したショートタームリファレンスフレーム)を参照して符号化し、それによって得られた符号化ストリームをシンクライアント端末1へ送信する。シンクライアント端末1中のH.264復号化ソフト/装置39は、受信した一連の符号化ストリームから一連の画面データ
のフレームを復元し、それに基づいて、図10のAに示すGUI画面を動画として表示する
このとき(T=1)、シンクライアント端末2の操作者が、入力装置35に含まれるマウ
スを用いてクリックする等、ウィンドウW2をアクティブに切り替える操作を行ったとする。すると、その操作情報は、サーバ1へ送信され、サーバプログラム14によって処理される。即ち、サーバプログラム14は、GUI管理プログラムのメッセージキューに、ウ
ィンドウW2がアクティブとなるアクティブ化イベントを登録する。
GUI操作画面エミュレーション装置16は、上記メッセージキューからアクティブ化イ
ベントを検出すると、その時点(T=1)で最後に生成した画面データのフレームについて
、そのフレーム中でアクティブとなっているウィンドウW1のウィンドウID,面積,更新カウントからなるウィンドウ情報を取得して、H.264符号化ソフト/装置17へ通知す
る。H.264符号化ソフト/装置17は、このウィンドウ情報を受信すると、その時点で最
後にDPB20に登録していたショートタームリファレンスフレームを、DPB20のロングタームリファレンス領域に、ロングタームリファレンスフレームとして複製する。
その直後に上記所定周期のタイミングになると、GUI操作画面エミュレーション装置1
6は、アクティブに切り替わったウィンドウW2がウィンドウW1に重なったGUI操作画
面を示すフレームを作成して、H.264符号化ソフト/装置17に渡す。すると、H.264符号化ソフト/装置17は、受け取ったフレームを、DPB20のショートタームリファレンス領域に格納するとともに、リファレンスリスト21を生成する。そして、当該リファレンスリスト21に登録されている順に各ポインタが示すDPB20中のリファレンスフレームを参照して、受け取った上記フレームを符号化する。以後、GUI操作画面エミュレー
ション装置16は、サーバプログラム14及びウィンドウW2に対応したアプリケーションプログラムの実行結果及び操作情報が示す操作内容(カーソル等)を表す画面データのフレームを周期的に作成し、H.264符号化ソフト/装置17は、作成したフレームを順次
DPB20のショートタームリファレンス領域に順次格納するとともに、リファレンスリスト21を作成しつつ、当該リファレンスリスト21を参照して各フレームを符号化する。かかる符号化によって得られた符号化ストリームに基づいて、シンクライアント端末1中のH.264復号化ソフト/装置39は、図10のBに示すGUI画面を動画として表示する。以上のようにDPB20のショートタームリファレンスフレーム領域には、順次ショートタームリファレンスフレームが格納され、それとともに古いショートタームリファレンスフレームは上書きによって廃棄されていくので、短時間のうちにT=1のショートタームリ
ファレンスフレームはショートタームリファレンスフレーム領域から消滅することになる。但し、T=1のショートタームリファレンスフレームから複製されたロングタームリファ
レンスフレームは、S306にて消去されない限り、即ち、ショートタームリファレンスフレームの保持期間よりも長期間、保持されることになる。
その後、シンクライアント端末2の操作者が、入力装置35に含まれるマウスを用いてクリックする等、ウィンドウW1をアクティブに切り替える操作を行ったとする。すると、GUI操作画面エミュレーション装置16は、メッセージキューからアクティブ化イベン
トを検出して、上述したのと同様にして、ウィンドウ情報をH.264符号化ソフト/装置1
7へ通知し、H.264符号化ソフト/装置17は、直前(T=n-1)にDPB20に登録していたのショートタームリファレンスフレームを、DPB20のロングタームリファレンス領域に複製する。
その直後に上記所定周期のタイミング(T=n)になると、GUI操作画面エミュレーション装置16は、アクティブに切り替わったウィンドウW1がウィンドウW2に重なったGUI
操作画面を示すフレームを作成し、H.264符号化ソフト/装置17は、当該フレームをD
PB20のショートタームリファレンス領域に格納するとともに、T=n-1のショートター
ムリファレンスフレームのポインタが先頭に登録され、アクティブ化イベントによってアクティブに切り替えられるウィンドウW1が過去にアクティブだった期間の終期(T=1)
においてDPB20のロングタームリファレンスフレーム領域に複製されたロングタームリファレンスフレームのポインタが二番目の位置に登録されたリファレンスリスト21を生成する。そして、当該リファレンスリスト21に登録されている順に各ポインタが示すDPB20中のリファレンスフレームを参照して、受け取った上記フレームを符号化する。このとき、リファレンスリスト21の先頭にポインタが登録されているT=n-1のショー
トタームリファレンスフレームを参照しても、ウィンドウW1がウィンドウW2の上に重なっている部分のブロックを高効率に符号化することはできない。しかしながら、2番目
の位置にポインタが登録されているT=1のロングタームリファレンスフレームでは、ウィ
ンドウW1がウィンドウW2の上に重なっているので、その部分のブロックを参照することにより、T=nのフレームを高効率に符号化することが可能となる。
以上に説明したように、本実施形態のシンクライアントシステムによると、GUIプログ
ラムのメッセージキューに登録されたアクティブ化イベントのメッセージに基づいて、GUI画面中のアクティブなウィンドウの切替が検出され、その直前にDPB20のショート
タームリファレンス領域に格納されたショートタームリファレンスフレームがロングタームリファレンスフレーム領域に複製されるので、ロングタームリファレンスフレームの登録のための複雑な画像処理が不要になる。
また、S303及びS306の処理により、あるウィンドウがアクティブであるフレームをロングタームリファレンスとして登録しようとする場合に、同じウィンドウがアクティブとなっているより古いフレームがロングタームリファレンス領域に格納されている場合には、最早参照する必要がなくなった後者が削除されるので、不要なロングタームリファレンスフレームがDPB20に滞留してしまう弊害を防止することができる。
また、S307の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウの面積が所定閾値以下であった場合には、その登録が省略されるので、マクロブロックの面積に比して狭い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
また、S308の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウが頻繁に更新されていた場合には、その登録が省略されるので、既に内容が古い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
また、S309の処理により、あるフレームをロングタームリファレンスとして登録しようとしたところ、当該フレーム中のアクティブなウィンドウのアスペクト比が所定閾値以上っであった場合には、その登録が省略されるので、マクロブロックの面積に比して狭い為に参照したとしても高効率な符号化の望めないウィンドウについてのフレームが、無駄にロングタームリファレンスフレームとして登録されてしまうことを防止することができる。
また、S301,S304及びS306の処理により、DPB20に格納されているロングタームリファレンスフレームの数が最大枚数を超えている場合に、面積が小さい為に上述したように高効率な符号化を望めないアクティブウィンドウについてのロングタームリファレンスフレームがDPB20から削除されるので、参照される可能性の高い新たなロングタームリファレンスフレームを格納することが可能となる。
また、S301,S305及びS306の処理により、DPB20に格納されているロングタームリファレンスフレームの数が最大枚数を超えている場合に、内容が古い為に高効率な符号化を望めない最も過去にアクティブとなったウィンドウについてのロングタームリファレンスフレームがDPB20から削除されるので、参照される可能性の高い新たなロングタームリファレンスフレームを格納することが可能となる。
また、S103の処理により、アクティブ化イベントによりアクティブに切り替えられるウィンドウが過去にアクティブであった時点におけるロングタームリファレンスフレー
ムが、リファレンスリストの2番目の位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
また、S104の処理により、アクティブであった期間が最近のウィンドウについてのロングタームリファレンスフレームほど、リファレンスリストの先頭に近い位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
また、S105の処理により、面積が小さいアクティブウィンドウについてのロングタームリファレンスフレームほど、リファレンスリストの先頭に近い位置に登録されるので、参照対象となったロングタームリファレンスフレームを特定する情報を、高効率に符号化することができる。
シンクライアントシステムを構成するサーバ装置及びシンクライアント端末のハードウェア構成を示すブロック図 サーバ装置及びシンクライアント端末の内部で実現される機能の相関を示すブロック図 図2に示す各ブロック間での情報の流れを示す流れ図 ロングタームリファレンス管理情報を示す図 GUI画面データのフレーム受信時に実行される処理を示すフローチャート 図5のS002で実行されるリファレンスリスト作成処理サブルーチンを示すフローチャート 図6のS105にて実行されるロングタームリファレンス並び補正サブルーチンを示すフローチャート ウィンドウ情報受信時に実行される処理を示すフローチャート リファレンスリストにおけるリスト構造を概念的に示す図 アクティブ化イベントの発生と各リファレンスフレームの登録との相関を例示する図 従来におけるシンクライアントシステムを示す図 従来におけるDPB及びリファレンスリストを概念的に示す図
符号の説明
1 サーバ装置
2 シンクライアント端末
10 CPU
13 ハードディスク
14 サーバプログラム
16 GUI操作画面エミュレーション装置
17 H.264符号化ソフト/装置
20 DPB
21 レファレンスリスト
39 H.264復号化ソフト/装置

Claims (10)

  1. 端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データをサーバにて生成して、当該画面データを当該端末が復号化可能な符号化ストリームへ符号化し、当該サーバから当該端末へ送信するシンクライアントシステムにおける画像符号化方法であって、
    前記サーバは、
    前記画面データの各フレームを、生成順に、保持するショートタームリファレンスフレームの数が所定数を越えると古いものから廃棄する第1バッファに、前記ショートタームリファレンスフレームとして格納し、
    オペレーティングシステムのGUI管理プログラムのメッセージキューに登録されているメッセージに基づいて、前記画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出し、
    前記アクティブ化イベントを検出した時点で前記第1バッファに格納されている最新のショートタームリファレンスフレームを、当該時点でアクティブなウィンドウに対応付けて、前記第1バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第2バッファに、前記ロングタームリファレンスフレームとして格納し、
    生成された各画面データの各フレームを、前記第1バッファに格納されている各ショートタームリファレンスフレーム及び前記第2バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、符号化する
    ことを特徴とするシンクライアントシステムにおける画像符号化方法。
  2. 前記サーバは、前記画面データの各フレームを、前記第1バッファに格納されている各ショートタームリファレンスフレーム及び前記第2バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照して、H.264動画像符号化によ
    り、符号化する
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  3. 前記サーバは、前記アクティブ化イベントが、前記画面中でアクティブであったウィンドウが閉じられて別のウィンドウがアクティブに切り替えられたことを表す場合に、閉じられたウィンドウに対応付けられたロングタームリファレンスフレームを前記第2バッファから削除する
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  4. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第1バッファに格納されている最新のショートタームリファレンスフレームと同じウィンドウに対応付けられたロングタームリファレンスフレームが前記第2バッファに格納されている場合には、当該ロングタームリファレンスフレームを当該第2バッファから削除する
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  5. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第1バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウの面積が所定値以下であった場合には、当該ショートタームリファレンスフレームを、前記第2バッファに、前記ロングタームリファレンスフレームとして格納しない
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  6. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第1バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウの更新頻度が所定値以上であった場合には、当該ショートタームリファレンスフレームを、前
    記第2バッファに、前記ロングタームリファレンスフレームとして格納しない
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  7. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第1バッファに格納されている最新のショートタームリファレンスフレーム中のアクティブなウィンドウのアスペクト比が所定値以上であった場合には、当該ショートタームリファレンスフレームを、前記第2バッファに、前記ロングタームリファレンスフレームとして格納しない
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  8. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第2バッファに格納されているロングタームリファレンスフレームの数が所定数に達していた場合には、当該第2バッファに格納されているロングタームリファレンスフレームのうち、対応付けられたウィンドウの面積が最も小さいものを、当該第2バッファから削除する
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  9. 前記サーバは、前記アクティブ化イベントを検出した時点で、前記第2バッファに格納されているロングタームリファレンスフレームの数が所定数に達していた場合には、当該第2バッファに格納されているロングタームリファレンスフレームのうち、最も古いものを、当該第2バッファから削除する
    ことを特徴とする請求項1記載のシンクライアントシステムにおける画像符号化方法。
  10. シンクライアント端末からの操作情報に応じた処理の結果を表す画面を表示させるための画面データをサーバにて生成して、当該画面データを当該端末が復号化可能な符号化ストリームへ符号化し、当該端末へ送信するコンピュータを、
    前記画面データの各フレームを、生成順に、保持するショートタームリファレンスフレームの数が所定数を越えると古いものから廃棄する第1バッファに、前記ショートタームリファレンスフレームとして格納するショートタームリファレンスフレーム登録手段,
    オペレーティングシステムのGUI管理プログラムのメッセージキューに登録されているメッセージに基づいて、前記画面中でアクティブなウィンドウが切り替えられたことを表すアクティブ化イベントを検出するアクティブ化イベント検出手段,
    前記アクティブ化イベントを検出した時点で前記第1バッファに格納されている最新のショートタームリファレンスフレームを、当該時点でアクティブなウィンドウに対応付けて、前記第1バッファにおける前記ショートタームリファレンスフレームの保持期間よりも長期間ロングタームリファレンスフレームを保持可能な第2バッファに、前記ロングタームリファレンスフレームとして格納するロングタームリファレンス登録手段,及び、
    生成された各画面データの各フレームを、前記第1バッファに格納されている各ショートタームリファレンスフレーム及び前記第2バッファに格納されている各ロングタームリファレンスフレームのうち最も近似したものを参照することによって、符号化する符号化手段
    として機能させる画像符号化プログラム。
JP2008166417A 2008-06-25 2008-06-25 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム Expired - Fee Related JP4978575B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008166417A JP4978575B2 (ja) 2008-06-25 2008-06-25 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム
US12/487,913 US20090323801A1 (en) 2008-06-25 2009-06-19 Image coding method in thin client system and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008166417A JP4978575B2 (ja) 2008-06-25 2008-06-25 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム

Publications (2)

Publication Number Publication Date
JP2010010959A JP2010010959A (ja) 2010-01-14
JP4978575B2 true JP4978575B2 (ja) 2012-07-18

Family

ID=41447389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008166417A Expired - Fee Related JP4978575B2 (ja) 2008-06-25 2008-06-25 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム

Country Status (2)

Country Link
US (1) US20090323801A1 (ja)
JP (1) JP4978575B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8385404B2 (en) * 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
JP5471668B2 (ja) * 2010-03-19 2014-04-16 日本電気株式会社 画像転送装置、方法及びプログラム
US9002946B2 (en) * 2010-08-25 2015-04-07 Autodesk, Inc. Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server
JP5988252B2 (ja) * 2011-01-12 2016-09-07 サン パテント トラスト 複数の参照ピクチャを用いた、動画像符号化方法、動画像復号方法、動画像符号化装置、及び、動画像復号装置
US10841573B2 (en) 2011-02-08 2020-11-17 Sun Patent Trust Methods and apparatuses for encoding and decoding video using multiple reference pictures
EP3139611A1 (en) * 2011-03-14 2017-03-08 HFI Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
CN102915234A (zh) * 2011-08-04 2013-02-06 ***通信集团公司 一种应用程序中程序界面的实现方法及装置
CN107257481B (zh) * 2011-10-27 2019-12-10 太阳专利托管公司 编码方法、解码方法、编码装置、解码装置
CN107071471B (zh) 2011-10-28 2020-04-07 太阳专利托管公司 图像编码方法及图像编码装置
RU2609083C2 (ru) 2011-10-28 2017-01-30 Сан Пэтент Траст Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений
US10536726B2 (en) * 2012-02-24 2020-01-14 Apple Inc. Pixel patch collection for prediction in video coding system
US9451288B2 (en) 2012-06-08 2016-09-20 Apple Inc. Inferred key frames for fast initiation of video coding sessions
CN103309308B (zh) * 2013-05-17 2016-08-10 华为技术有限公司 一种设备智能化控制方法及装置、***、即插即用设备
CN107113443B (zh) * 2014-12-26 2020-04-28 索尼公司 影像处理设备和影像处理方法
CN106817585B (zh) * 2015-12-02 2020-05-01 掌赢信息科技(上海)有限公司 一种利用长期参考帧的视频编码方法、电子设备和***
US11595652B2 (en) 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
CN105760238B (zh) * 2016-01-29 2018-10-19 腾讯科技(深圳)有限公司 图形指令数据的处理方法和装置及***
CN107295340A (zh) * 2016-03-31 2017-10-24 中兴通讯股份有限公司 一种远程桌面视频编码的方法及装置
EP3918801A4 (en) * 2019-01-28 2022-06-15 OP Solutions, LLC ONLINE AND OFFLINE CHOICE OF EXTENDED LONG-TERM REFERENCE IMAGE STORAGE
EP3941059A1 (en) * 2019-03-12 2022-01-19 Sony Group Corporation Image decoding device, image decoding method, image encoding device, and image encoding method
WO2022271748A1 (en) * 2021-06-21 2022-12-29 Jc Software, Llc Computer based system for configuring target unit equipment and method of use thereof
CN113485780B (zh) * 2021-07-22 2022-04-29 辽宁向日葵教育科技有限公司 一种基于web服务器的桌面传输方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3428192B2 (ja) * 1994-12-27 2003-07-22 富士通株式会社 ウインドウ表示処理装置
JP4821037B2 (ja) * 2000-08-25 2011-11-24 富士通株式会社 ラマン増幅を用いた光増幅器およびラマン励起光源
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
JP4593556B2 (ja) * 2003-01-09 2010-12-08 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア 映像符号化方法及びデバイス
US20060013318A1 (en) * 2004-06-22 2006-01-19 Jennifer Webb Video error detection, recovery, and concealment
US20060159352A1 (en) * 2005-01-18 2006-07-20 Faisal Ishtiaq Method and apparatus for encoding a video sequence
KR20110123291A (ko) * 2006-10-16 2011-11-14 노키아 코포레이션 멀티뷰 비디오 코딩에서 효율적인 디코딩된 버퍼 관리를 구현하기 위한 시스템 및 방법
JP4750688B2 (ja) * 2006-12-27 2011-08-17 富士通株式会社 ラマン増幅器
US8494049B2 (en) * 2007-04-09 2013-07-23 Cisco Technology, Inc. Long term reference frame management with error video feedback for compressed video communication
CN101681233B (zh) * 2007-05-29 2012-07-18 株式会社爱可信 历史记录管理方法及终端装置

Also Published As

Publication number Publication date
JP2010010959A (ja) 2010-01-14
US20090323801A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
JP4978575B2 (ja) シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム
US11849144B2 (en) Signaling of state information for a decoded picture buffer and reference picture lists
JP2015501098A5 (ja)
KR102006044B1 (ko) 메타데이터를 이용한 비디오 디코딩 기법
US9635374B2 (en) Systems and methods for coding video data using switchable encoders and decoders
US20070195880A1 (en) Method and device for generating data representing a degree of importance of data blocks and method and device for transmitting a coded video sequence
WO2007114586A1 (en) Device and method for unified codecs
CN111225277A (zh) 转码方法、转码装置和计算机可读存储介质
KR100969224B1 (ko) 미싱 또는 무효 포워드 레퍼런스 픽쳐들을 갖는 b 픽쳐들의 처리 방법 및 시스템
US20050089232A1 (en) Method of video compression that accommodates scene changes
US10051281B2 (en) Video coding system with efficient processing of zooming transitions in video
JP2024517915A (ja) データ処理方法、装置、コンピュータ機器及びコンピュータプログラム
CN114827669A (zh) 一种视频数据的传输方法、装置、介质及设备
JP5141656B2 (ja) 通信制御装置、通信制御方法、および通信制御プログラム
JP2004180190A (ja) カメラ制御装置及びその制御ステップを実行するプログラム
JP6598376B2 (ja) 符号化装置、及び、符号化方法
JP4415186B2 (ja) 動画像符号化装置、動画像復号化装置、コーデック装置、および、プログラム
JPH07193821A (ja) 動画像符号化装置および方法
JP6708882B2 (ja) 符号化装置、及び、符号化方法
JP3205839B2 (ja) 画像符号化装置
JP2001197493A (ja) 動画像復号化方法,動画像復号化装置及びプログラム記録媒体
JP2006311178A (ja) ディジタル画像通信システムおよびディジタル画像符号化装置ならびにディジタル画像復号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees