KR100935586B1 - Cache method - Google Patents

Cache method Download PDF

Info

Publication number
KR100935586B1
KR100935586B1 KR1020047002829A KR20047002829A KR100935586B1 KR 100935586 B1 KR100935586 B1 KR 100935586B1 KR 1020047002829 A KR1020047002829 A KR 1020047002829A KR 20047002829 A KR20047002829 A KR 20047002829A KR 100935586 B1 KR100935586 B1 KR 100935586B1
Authority
KR
South Korea
Prior art keywords
cached
update
message
display data
key
Prior art date
Application number
KR1020047002829A
Other languages
Korean (ko)
Other versions
KR20040031006A (en
Inventor
첸멩-쳉
호치-판
Original Assignee
코닌클리케 필립스 일렉트로닉스 엔.브이.
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 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20040031006A publication Critical patent/KR20040031006A/en
Application granted granted Critical
Publication of KR100935586B1 publication Critical patent/KR100935586B1/en

Links

Images

Classifications

    • 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
    • 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/643Communication protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/04Partial updating of the display screen
    • 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
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Abstract

씬 서버 장치에서 씬 클라이언트 장치로 갱신-디스플레이 데이터(1)를 전송하는 방법으로서, 전송될 새로운 갱신-디스플레이 데이터(1)를 나타내는 (짧은) 키(6)를 발생하는 단계; 새로이 발생된 키를 이전에 발생된 키 또는 키들과 비교하는 단계; 및 클라이언트 장치에 전송될 메시지를 편집하는 단계를 포함하고, 메시지는 갱신-디스플레이 데이터가 이미 캐시되어 있는지, 캐시할 것인지, 아니면 캐시하지 않을 것인지를 클라이언트 장치에 식별시키는 비교단계의 결과에 따라 설정되는 헤더와, 갱신-디스플레이 데이터를 나타내는 코드 워드들을 포함한다. 바람직하게 DCT 코딩이 사용된다. 이 방법을 사용하는 씬 클라이언트 서버 시스템은 보다 빠르고 보다 효율적이다.CLAIMS 1. A method of transmitting update-display data (1) from a thin server device to a thin client device, comprising: generating a (short) key (6) indicating new update-display data (1) to be transmitted; Comparing the newly generated key with a previously generated key or keys; And editing the message to be sent to the client device, wherein the message is set according to the result of the comparing step of identifying to the client device whether the update-display data is already cached, cached or not cached. A header and code words representing the update-display data. Preferably DCT coding is used. Thin client server systems using this method are faster and more efficient.

씬 서버 장치, 씬 클라이언트, 캐시 명령 필드, 시퀀스 아이덴티티 필드Thin server device, thin client, cache command field, sequence identity field

Description

캐시 방법{Cache method} Cache method             

본 발명은 캐시 방법에 관한 것으로 특히 씬 클라이언트(thin client) 서버 컴퓨터 시스템을 위한 캐시 방법에 관한 것이다.
The present invention relates to a caching method, and more particularly to a caching method for a thin client server computer system.

씬 클라이언트 서버 컴퓨터 시스템은 어플리케이션 프로그램들이 클라이언트 장치가 아니라 서버 장치에 설치된 시스템이다. 씬 클라이언트 디스플레이 프로토콜(원격 프레임 버퍼 기술이라고도 알려져 있음)을 사용하여 클라이언트 장치에 어플리케이션들을 실행시키게 할 수 있다. 씬 클라이언트 디스플레이 프로토콜은 서버 장치에 로딩되는 한 부분과 클라이언트 장치에 로딩되는 또 다른 부분을 포함하는 컴퓨터 프로그램이다. 클라이언트 프로그램은 작은 코드 크기를 갖고 있고 따라서 클라이언트 장치의 비교적 소수의 자원들(메모리 및 처리능력)을 필요로 하기 때문에 이른바 씬(thin) 프로그램이다. 이 시스템에 의해, 훨씬 더 강력한 서버의 서비스에 클라이언트 장치들이 비교적 간단하고 저렴하게 액세스할 수 있게 된다.A thin client server computer system is a system in which application programs are installed on a server device, not on a client device. Thin client display protocols (also known as remote frame buffer technologies) can be used to run applications on client devices. The thin client display protocol is a computer program that includes one portion loaded to the server device and another portion loaded to the client device. Client programs are so-called thin programs because they have a small code size and therefore require relatively few resources (memory and processing power) of the client device. This system allows client devices to access the services of a much more powerful server relatively simply and inexpensively.

하나의 이러한 씬 클라이언트 디스플레이 프로토콜이, 가상 네트워크 컴퓨팅(Virtual Network Computing: VNC)이며, 클라이언트 장치가 코맨드(command)들을 서버 장치에 보내어 서버 장치가 이들 명령들을 처리하여 갱신된 정보, 또는 프레임 버퍼 데이터를 소위 갱신영역에 발생시키도록 서로 간에 통신하는 씬 서버 프로그램 "VNC 서버" 및 씬 클라이언트 프로그램 "VNC 뷰어"를 포함한다. 이것은 클라이언트 장치에서 스크린 갱신하는데 필요한 기본 유닛이다. 이것은 윈도우 형태를 취할 수 있다. 갱신영역은 서버 장치에서 씬 클라이언트 장치로 보내진다. 실제로, 프로토콜의 디스플레이측은 직사각형의 화소 데이터를 클라이언트 스크린 상의 소정의 x, y 위치에 놓도록 클라이언트 장치에 명령을 내린다.One such thin client display protocol is Virtual Network Computing (VNC), where the client device sends commands to the server device so that the server device processes these commands to update updated information, or frame buffer data. And a thin server program " VNC Server " and a thin client program " VNC Viewer " which communicate with each other so as to occur in the so-called update area. This is the basic unit required for screen update on the client device. This may take the form of a window. The update area is sent from the server device to the thin client device. In practice, the display side of the protocol instructs the client device to place the rectangular pixel data at a predetermined x, y position on the client screen.

씬 클라이언트 서버 컴퓨터 시스템들에 있어서의 문제는 서버와 클라이언트 장치들 간에 전달되는 상당량의 데이터가 있어 이에 따라 시스템이, 특히 클라이언트 장치가 서버 장치로부터 데이터를 검색하는(retrieve) 것이 지체될 수 있다는 것이다.The problem with thin client server computer systems is that there is a significant amount of data being passed between the server and the client devices, which may cause the system, especially the client device, to retrieve data from the server device.

씬 서버에서 씬 클라이언트로의 프레임 버퍼 데이터의 보다 효율적인 전송은 서로 다른 데이터 패턴들에 서로 다른 코딩 알고리즘들을 사용함으로써, 그리고 적응형 인터넷 프로토콜 및 1996년 3월 16일, Citrix Systems에 의한 "Independent Computing Architecture Technical Paper"에 기재된 바와 같은 오브젝트 어웨어 캐시(object aware cache)방법들에 의해 달성되었다. 그러나, 이들 방법들은 소프트웨어 플랫폼에 의존하기 때문에 컴퓨터들에서 실행되는 운영체제들에 따라 수정하지 않고는 보편적으로 채택될 수 없다. VNC와 같은 넌-오브젝트 어웨어 프로토콜들이 바람직하다.More efficient transmission of frame buffer data from thin server to thin client is achieved by using different coding algorithms for different data patterns, and by adopting the Adaptive Internet Protocol and March 16, 1996, "Independent Computing Architecture" by Citrix Systems. It was achieved by object aware cache methods as described in "Technical Paper". However, since these methods depend on the software platform, they cannot be universally adopted without modification depending on the operating systems running on the computers. Non-objectware protocols such as VNC are preferred.

인터넷 환경에서 장치들 간에 보다 효율적인 통신을 위해 캐시 방법들이 제안되었지만 인터넷의 특성과 씬 클라이언트 서버 컴퓨터 시스템들의 특성이 완전히 다르기 때문에 이들 캐시 방법들은 씬 클라이언트 서버 시스템들에 쉽게 적용될 수 없다. 예를 들면, 프록시 서버들(proxy servers)에 캐시하는 것은 월드 와이드 웹(World Wide Web)에 액세스하기 위한 인지된 응답 시간을 감소시킨다. 이들은 캐싱하기 위한 문서들의 서브셋들을 선택하지만, 캐시된 문서들의 일관성을 유지하기 위한 별도의 단계들이 취해져야 한다.Although cache methods have been proposed for more efficient communication between devices in the Internet environment, these cache methods cannot be easily applied to thin client server systems because the characteristics of the Internet and the characteristics of thin client server computer systems are completely different. For example, caching on proxy servers reduces the perceived response time for accessing the World Wide Web. They select subsets of documents for caching, but separate steps must be taken to maintain the consistency of cached documents.

본 발명의 목적은 씬 클라이언트 서버 컴퓨터 시스템의 효율을 향상시키며 데이터 전송 속도를 높이는 것이다. 본 발명은 독립 청구항들에서 정의되고 종속 청구항들은 이로운 실시예들을 정의한다.It is an object of the present invention to improve the efficiency of the thin client server computer system and to increase the data transfer rate. The invention is defined in the independent claims and the dependent claims define advantageous embodiments.

바람직하게는, 메시지는 "캐시함", "캐시하지 않음", "캐시되어 있음"의 코맨드들 중 하나에 대응하는 명령을 포함하는 캐시 명령 필드, 및 매치하는 키의 어드레스 또는 적합한 새로운 어드레스 등의 캐시 어드레스를 포함하는 시퀀스 아이덴티티 필드를 포함하는 헤더를 포함한다.Preferably, the message includes a cache command field containing an instruction corresponding to one of the commands "cached", "not cached", "cached", and the address of the matching key or a suitable new address, and the like. A header including a sequence identity field containing a cache address.

키는 압축된 코딩된 갱신-디스플레이 데이터의 코드 워드들의 조합된 길이를 포함한다. 압축 코딩은 공간영역에서 주파수 영역으로 데이터를 전환시키는 이산 코사인 변환(DCT), 특히 2D-DCT에 의하는 것이 바람직하다.The key includes a combined length of code words of compressed coded update-display data. Compression coding is preferably by discrete cosine transform (DCT), in particular 2D-DCT, which transforms data from the spatial domain to the frequency domain.

일 실시예는 예를 들면 JPEG 인코딩(encoding) 및 엔트로피 코딩(entropy encoding)에 의해 데이터를 양자화하는 것을 더 포함한다.One embodiment further includes quantizing the data by, for example, JPEG encoding and entropy encoding.

본 발명의 바람직한 실시예에 따라서, 예를 들면 인코딩된 데이터의 높이 및 폭의 크기가 체크되고 크기가 소정의 레벨 미만이면 캐싱은 행해지지 않는다. 크기는 또한 예비 비교 단계로서 사용될 수도 있다. 키들 간에 상응하는 것이 발견되면 클라이언트 장치 내 캐시된 데이터가 클라이언트 장치에 의해 표시된다. 하나 이상 상응하는 것이 발견되면 코드 워드들이 비교된다. 데이터가 클라이언트 장치로부터 상실되었다면, 재전송 메시지를 다시 서버 장치에 보낼 수도 있다.According to a preferred embodiment of the present invention, caching is not done, for example, if the size of the height and width of the encoded data is checked and the size is below a predetermined level. The size may also be used as a preliminary comparison step. If a match is found between the keys, the cached data in the client device is displayed by the client device. Code words are compared if more than one corresponding is found. If data has been lost from the client device, a retransmission message may be sent back to the server device.

본 발명은, 비교를 서버에서 행하고 계산을 간단하게 위해 각 갱신영역에 대해 프레임내(intra-frame) 코딩을 사용하여, 비-후보 영역들을 필더링해내는, 편리하고 고속의 비교적 비용효율적인 방법을 제공할 수 있다.The present invention provides a convenient, fast and relatively cost-effective method of filtering non-candidate areas using intra-frame coding for each update area to make comparisons at the server and to simplify calculations. Can provide.

본 발명의 이해를 위해서 그리고 본 발명이 어떻게 실행되는가를 보이기 위해서, 첨부한 도면을 참조하도록 할 것이다.
For the purpose of understanding the invention and to show how the invention is practiced, reference will be made to the accompanying drawings.

도 1은 씬 클라이언트 서버 시스템의 클라이언트 및 서버에 적용되는 본 발명의 방법의 흐름도.1 is a flowchart of the method of the present invention applied to a client and a server of a thin client server system.

도 2는 도 1의 방법에서 영역 키를 발생하는 방법을 도시한 흐름도.2 is a flow chart illustrating a method for generating an area key in the method of FIG.

도 3은 도 2의 영역 키의 발생에서 데이터 블록의 압축의 개략적인 예를 보여주는 도면.3 shows a schematic example of the compression of a data block in the generation of the area key of FIG.

도 4는 도 1 내지 도 3의 방법에 사용하기 위한 메시지 포맷을 보여주는 도면.4 shows a message format for use in the method of FIGS. 1-3.

도 5는 제1 경우에 대한 본 발명의 방법의 부분을 보여주는 도면. 5 shows a part of the method of the invention for a first case.                 

도 6은 제2 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.6 shows a part of the method of the invention for a second case.

도 7은 제3 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.7 shows a part of a method of the invention for a third case.

도 8은 본 발명의 방법의 예를 보여주는 도면.8 shows an example of the method of the invention.

도 9는 본 발명의 방법의 또 다른 예를 보여주는 도면.
9 shows another example of the method of the invention.

도 1의 흐름도에서, 씬 서버 프로그램이 실행되고 있다. 이것은 전형적으로 "VNC 서버"이지만 이외 유사한 프로그램들 또한 유효할 것이다. 다음 단계들이 행해진다. 서버(SE)에서:In the flowchart of Fig. 1, the thin server program is running. This is typically a "VNC server" but other similar programs will also be valid. The following steps are done. On the server (SE):

A. 갱신-디스플레이 데이터 또는 갱신영역은 높이 H와 폭 W를 가지며 소스 데이터 1로서 나타낸다.A. The update-display data or update area has a height H and a width W and is represented as source data 1.

B. 도 2 및 도 3을 참조하여 후술하는 바와 같이, 소스 데이터 1을 인코딩하여 코드 워드들을 생성한다.B. As described below with reference to FIGS. 2 and 3, source data 1 is encoded to generate code words.

C. 인코딩된 소스 데이터를 폭 및 높이에 대해서 체크한다.C. Check the encoded source data for width and height.

D. 폭 및 높이가 임계값 미만이면, 메시지 헤더의 캐시 필드를 "캐시하지 않음"으로 설정한다(갱신이 매우 작다면 캐시해 두는 것으로부터 얻어질 잇점이 전혀 없다). D. If the width and height are below the threshold, set the cache field of the message header to "not cached" (if the update is very small, there is no benefit from caching).

이 상황을 후술하는 도 5에 도시하였다.This situation is illustrated in FIG. 5 described later.

E. 시퀀스 아이덴티티(SID)은 널(NULL)로 설정되고 이어서 갱신 메시지가 클라이언트에 보내진다-이하 기술되는 단계 P 참조.E. The sequence identity (SID) is set to null and then an update message is sent to the client-see step P described below.

G. 폭 및 높이가 임계값 이상이면 메시지 헤더의 캐시 필드를 "캐시함"으로 설정한다.G. If the width and height are above the threshold, set the cache field of the message header to "cache".

이 상황을 후술하는 도 6에 도시하였다.This situation is illustrated in FIG. 6 described later.

H. 코드 워드들의 길이를 조합함으로써, 다음에 도 2에 관련하여 기술하는 방법을 사용하여, 데이터/이미지 서명들을 나타내는 영역 키(RKEY)를 생성한다.H. By combining the lengths of the code words, a region key (RKEY) representing the data / image signatures is then generated using the method described in connection with FIG.

I. 이어서 서버는 임의의 갱신영역들이 전에 캐시되어 있는지, 그리고 캐시된 영역들의 폭 및 높이가 갱신영역들과 매치하는지를 체크한다. I. The server then checks if any update areas are previously cached and if the width and height of the cached areas match the update areas.

J. 전에 어떠한 갱신영역도 캐시되어 있지 않으면, 서버는 얻을 수 있는 다음 시퀀스 아이덴티티(SID)을 얻을 것이며, 이에 따라 메시지 헤더 내 SID 필드를 설정하고 메시지 헤더의 캐시 필드를 "캐시함"으로 함으로써, 클라이언트에 보낼 메시지를 포맷할 것이다.J. If no update area has been cached before, the server will get the next sequence identity (SID) it can obtain, thereby setting the SID field in the message header and setting the cache field in the message header to "cache". We will format the message to be sent to the client.

K. 서버는 메시지(압축된 데이터의 SID, RKEY 및 코드 워드들을 포함함)의 복제본을 유지해 두고, 이 메시지를 클라이언트에 전송한다-다음의 단계 P 참조.K. The server maintains a duplicate of the message (including the SID, RKEY and code words of the compressed data) and sends this message to the client-see step P below.

L. 갱신영역이 전에 캐시되어 있다면 서버는 매치하는 캐시된 것에 대해 RKEY를 체크하였을 때 이를 인지할 것이다.L. If the update area is cached before, the server will know when it checks the RKEY for a matching cache.

M. 어떠한 매치하는 영역 키(RKEY)도 식별되지 않으면 단계 J가 반복되고, 갱신영역을 나타내는 압축된 데이터와 함께 새로운 메시지가 클라이언트에 보내진다.M. If no matching area key (RKEY) is identified, step J is repeated and a new message is sent to the client with compressed data representing the update area.

N. 매치하는 것이 단지 하나가 발견되면 캐시 필드는 "캐시되어 있음"으로 설정되고 대응하는 SID가 압축된 데이터의 코드 워드들 없이 클라이언트에 보내진 다. N. If only one match is found, the cache field is set to "cached" and the corresponding SID is sent to the client without code words of compressed data.

이 상황을 후술하는 도 7에 도시하였다.This situation is illustrated in FIG. 7 described later.

O. 하나 이상의 영역 키(RKEY) 매치가 발견되면 압축된 데이터의 새로운 코드 워드들을 로컬 캐시 버퍼 내 코드 워드들과 비교하고 매치하는 코드 워드들이 식별되었을 때 캐시 필드는 "캐시되어 있음"으로 설정되고 압축된 데이터의 코드 워드들 없이 대응하는 SID가 보내진다.O. If more than one RKEY match is found, the new code words of the compressed data are compared with the code words in the local cache buffer and the cache field is set to "cached" when matching code words are identified. The corresponding SID is sent without code words of compressed data.

P. 메시지가 서버로부터 보내진다.P. The message is sent from the server.

클라이언트 CL에서:In the client CL:

Q. 메시지가 클라이언트 의해 수신된다.Q. The message is received by the client.

R. 클라이언트는 먼저 이 갱신영역을 캐시할 것인지를 결정하기 위해 메시지의 캐시 필드를 체크한다.R. The client first checks the cache field of the message to determine whether to cache this update area.

S. 캐시 필드가 "캐시함"으로 설정되어 있다면 클라이언트는 갱신영역의 코드 워드들의 복제본을 유지해두고 코드 워드들을 디코드하고 단계 V로 간다.S. If the cache field is set to "cache", the client keeps a duplicate of the code words in the update area, decodes the code words and goes to step V.

T. 캐시 필드가 "캐시하지 않음"으로 설정되어 있다면 클라이언트는 메시지 내 코드 워드들을 디코드하지만 이를 저장하진 않고 단계 V로 간다.T. If the cache field is set to "don't cache", the client decodes the code words in the message but goes to step V without storing it.

U. 캐시 필드가 "캐시되어 있음"으로 설정되어 있다면 클라이언트는 클라이언트 캐시로부터 캐시된 코드 워드들을 검색하고 이 코드 워드들을 디코드하고 단계 V로 간다.U. If the cache field is set to "cached" then the client retrieves cached code words from the client cache, decodes these code words and goes to step V.

V. 디코드된 갱신영역을 디스플레이한다.V. Display the decoded update area.

코딩을 사용하여, 갱신영역 소스 데이터(1)로부터 영역 키(6)의 생성을 도 2의 상측 부분에 도시하였고 도 2의 하측 부분엔 이에 이은 인코딩된 데이터의 디코딩이 도시되어 있다. 소스 데이터(1), 즉 갱신 영역 서명을 나타내는 데이터 또는 이미지는 순방향 이산 코사인 변환(FDCT)(2)에 의해 압축되고 '3'에서 양자화된다. 이어서 '4'에서 엔트로피 인코딩되고 코드 워드들의 길이를 '5'에서 조합하여 키(6)를 생성한다. 이어서 이것은 서버의 캐시 메모리(7)에 복제되고 시퀀스 아이덴티티 표시자(8)를 1만큼 증분시킨다. 이것을 도 1의 상측 부분에 도시하였다.Using coding, the generation of the area key 6 from the update area source data 1 is shown in the upper part of FIG. 2 and the lower part of FIG. 2 is followed by the decoding of the encoded data. The source data 1, i.e. the data or the image representing the update area signature, is compressed by a forward discrete cosine transform (FDCT) 2 and quantized at '3'. It is then entropy encoded at '4' and the lengths of the code words are combined at '5' to generate the key 6. This is then duplicated in the server's cache memory 7 and increments the sequence identity indicator 8 by one. This is shown in the upper part of FIG.

이어서 데이터는 '9'에서 엔트로피 디코딩에 의해 디코딩되고, '10'에서 역양자화되고, '11'에서 압축해제되어, 디코딩된 데이터(12)를 형성한다. 시퀀스 발생기(13)는 캐시(14)의 다른 위치를 가리키기 위해 매번 증분된다.The data is then decoded by entropy decoding at '9', dequantized at '10' and decompressed at '11' to form decoded data 12. The sequence generator 13 is incremented each time to point to another location in the cache 14.

도 3은 8x8 격자에 64개의 두 자리 수 격자를 포함하는 블록(31)의 그룹으로 된 원 소스 이미지 데이터의 코딩(original source image data)을 도시한 것이다. 이 블록을 64개의 직교(orthogonal) 신호들(DCT 계수들이라 함)로 압축해제하기 위해 순방향 DCT 프로세스를 적용한다. 한 계수는 양 차원 모두에서 제로 주파수를 가지며 이를 DC 계수라 한다. 이외 다른 63개는 AC 계수들이다. 시각적으로 무의미한 정보는 폐기하고 양자화 및 엔트로피 처리 후에 결과는 총 35 비트의 2진 워드들의 스트링을 포함하는 압축된 코드워드(32)이다. 소스 이미지에 대해 8비트 압축을 사용하는 이 예에서 압축율은 약 15:1이다.FIG. 3 shows the coding of original source image data in a group of blocks 31 comprising 64 two digit grids in an 8 × 8 grid. A forward DCT process is applied to decompress this block into 64 orthogonal signals (called DCT coefficients). One coefficient has zero frequency in both dimensions and is called the DC coefficient. The other 63 are AC coefficients. After discarding the visually meaningless information and processing the quantization and entropy, the result is a compressed codeword 32 that contains a string of 35 words of binary words in total. In this example using 8-bit compression for the source image, the compression ratio is about 15: 1.

도 4는 서버에서 클라이언트로의 전송을 위한 메시지의 포맷을 나타낸 것이다. 이것은 캐시 헤드(21)("캐시함", "캐시하지 않음" 또는 "캐시되어 있음")와 시퀀스 아이덴티티 필드(SID)(22)로 형성된 메시지 헤더(20)를 갖는다. 이것은 또한 압축된 메시지의 코드 워드들을 포함하는 메시지 필드(23)를 갖는다.4 shows the format of a message for transmission from a server to a client. It has a message header 20 formed of a cache head 21 (“cached”, “not cached” or “cached”) and a sequence identity field (SID) 22. It also has a message field 23 containing the code words of the compressed message.

도 5는 서버가 "캐시하지 않음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다. 이것은 예를 들면 갱신영역의 크기가 임계값 미만이어서 캐시할 가치가 없을 때 일어날 수 있다. 캐시 필드(21)는 "캐시하지 않음"으로 설정되고 SID 필드(22)는 헤더에서 "널"로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다. FIG. 5 illustrates the configuration of the message of FIG. 4 when the server issues a "no cache" command. This can happen, for example, when the size of the update area is below the threshold and is not worth caching. The cache field 21 is set to "not cached" and the SID field 22 is set to "null" in the header, and the compressed code words are appended to the message field 23.

도 6은 서버가 "캐시함"이라고 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.FIG. 6 illustrates the configuration of the message of FIG. 4 when the server issues a "cache".

이것은 갱신영역의 크기가 임계값 이상일 때 일어난다. 캐시(21) 필드는 "캐시함"으로 설정되고 SID 필드(22)는 헤더에서 "N"으로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다.This occurs when the size of the update area is greater than or equal to the threshold. The cache 21 field is set to "cache" and the SID field 22 is set to "N" in the header and the compressed code words are appended to the message field 23.

도 7은 서버가 "캐시되어 있음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.FIG. 7 illustrates the configuration of the message of FIG. 4 when the server issues a "cached" command.

이 경우 메시지 헤더(20)는 캐시 필드(21)에 명령 "캐시되어 있음"을 SID 필드(22)에 "N"을 포함하고, 압축된 코드 워드들은 이 상황에서 이들이 클라이언트 장치에의 로컬 캐시로부터 검색될 수 있기 때문에 첨부되지 않으므로 서버와 클라이언트 간 전송 대역폭을 절약하여 시스템의 속도 및 효율을 향상시킨다.In this case the message header 20 contains the instruction "cached" in the cache field 21 and "N" in the SID field 22, where the compressed code words are in this situation from the local cache on the client device. It is not attached because it can be retrieved, thus saving the transmission bandwidth between the server and client, improving the speed and efficiency of the system.

도 8은 도 5 내지 도 7에 나타낸 경우들 각각에 대해서 타임 라인(time line)에 따라 시스템이 어떻게 반응하는가를 도시한 것이다.FIG. 8 illustrates how the system reacts according to a time line for each of the cases shown in FIGS.

제1 갱신영역 데이터(1a)가 서버 장치에서 발생되고 ①에서 크기는 임계값 미만이고 서버는 "캐시하지 않음"이라 명령한다. 도 5에 도시한 바와 같은 메시지가 발생되고 컴퓨터 네트워크를 통해 클라이언트 장치에 전송되고 이에 따라 갱신영역이 클라이언트 디스플레이에 디스플레이된다. 이것을 경우 I라고 표시하였다.The first update area data 1a is generated in the server apparatus, and in?, The size is less than the threshold and the server commands " do not cache ". A message as shown in Fig. 5 is generated and transmitted to the client device via the computer network, whereby the update area is displayed on the client display. This is marked as I in this case.

잠시 후에 제2 갱신영역 데이터(1b)가 발생된다. 갱신영역(1b)의 크기는 임계값 이상이고 영역 키(RKEY)가 발생되고 서버의 콘텐츠 캐시 버퍼(도 2의 7 참조)와 비교한다. 이것을 ②로서 나타내었다. ③에서, 전에 캐시되어 있는 것이 없으므로 메시지 "캐시함"이 데이터와 함께 클라이언트로 보내진다. 이를 경우 II로 표시하였다. ④에서 대응하는 키가 캐시(7)에서 발견된다. SID가 검색되고, 적합한 SID와 함께 그러나 데이터 없이 "캐시되어 있음"이라는 메시지가 클라이언트 장치에 전송되어, 전송 공간 및 시간이 절약된다. 이를 경우 III으로 표시하였다.After a while, the second update area data 1b is generated. The size of the update area 1b is greater than or equal to a threshold value and an area key RKEY is generated and compared with the server's content cache buffer (see 7 in FIG. 2). This is shown as ②. In (3), the message "cache" is sent with the data to the client since nothing has been cached before. This is represented by II. The corresponding key at ④ is found in the cache 7. The SID is retrieved and a "cached" message with the appropriate SID but without data is sent to the client device, saving transmission space and time. In this case, it is indicated as III.

SID 숫자들은, 가장 최근의 갱신영역 데이터가 저장되는 것을 보장하면서 메모리 공간을 절약하기 위해 통상 1 내지 999로 순환할 것이다.SID numbers will typically cycle from 1 to 999 to save memory space while ensuring that the most recent update area data is stored.

단지 두 개의 캐시 버퍼들만이 사용이 가능하다면, 도 9의 상황이 적용되고 가장 최근의 2개의 갱신영역들을 캐시하기 위해서 순환 리스트가 유지된다. 예를 들면 메시지 A는 경우 II의 메시지인 "캐시함"(전에 캐시된 것이 전혀 없으므로)이다. 따라서, 캐시 버퍼(14)는 제1 캐시 위치(25)에 A를 저장한다. 이어서 메시지 B가 발생되고 이것은 경우 I의 메시지인 "캐시하지 않음"이므로, B에 저장이 행해지지 않고 제2 캐시 위치(26)는 비어있게 된다. 메시지 C는 또 다른 경우 II의 메시지인, "캐시함"이고, 따라서 이제는 C가 캐시 위치(26)에 저장된다. 메시지 D는 마찬가지로 경우 II이고 그러므로 D는 위치(25) 내 A를 대치한다.If only two cache buffers are available, the situation of FIG. 9 applies and a circular list is maintained to cache the two most recent update regions. For example, message A is the message of case II, "cached" (since nothing was cached before). Thus, cache buffer 14 stores A in first cache location 25. Message B is then generated and this is the "I do not cache" message in case I, so no storage is done in B and the second cache location 26 is empty. Message C is the "cache", which in another case is the message of II, so C is now stored in cache location 26. Message D is likewise case II and therefore D replaces A in position 25.

이어서 메시지 C가 다시 수신되고 이것은 서버가 캐시된 메시지 C와 상응하는 것을 검출하기 때문이 경우 III 메시지인 "캐시되어 있음"이 된다. 따라서 클라이언트 장치로의 메시지는 로컬 캐시(14)로부터 대응하는 데이터를 검색하기 위해 위치(26)에 대한 SID를 포함한다. 마찬가지로 메시지 D가 재전송되었을 때, 상응하는 것이 발견되고 경우 III 메시지로 클라이언트는 위치(25)에서 로컬 캐시 버퍼(14)로부터 데이터를 검색하라는 명령을 받는다.Message C is then received again, which is the III message "cached" because the server detects that it corresponds to cached message C. The message to the client device thus includes the SID for location 26 to retrieve the corresponding data from local cache 14. Similarly, when message D is retransmitted, a corresponding match is found and in case III the client is instructed to retrieve data from local cache buffer 14 at location 25.

전술한 실시예들은 본 발명을 한정하는 것이 아니라 예시하는 것으로 이 기술에 숙련된 자들은 첨부된 청구항들의 범위 내에서 많은 대안이 되는 실시예들을 설계할 수 있을 것임에 유념해야 할 것이다. 청구항들에서, 괄호 내 부기한 어떠한 참조부호든 청구항을 한정하는 것으로 해석되지 않을 것이다. "포함하다"라는 말은 청구항에 열거된 구성요소들 또는 단계들 이외의 것들의 존재를 배제하는 것은 아니다. 단수표시된 구성요소는 복수의 이러한 구성요소들의 존재를 배제하는 것은 아니다. 본 발명은 몇가지 구별되는 구성요소들을 포함하는 하드웨어, 및 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 몇가지 수단을 열거한 장치 청구항에서 이들 수단 몇몇은 한 하드웨어 및 동일 하드웨어 아이템으로 실현될 수 있다. 어떤 대책들이 서로 상이한 종속 청구항들에 인용되었다는 것이, 이들 대책들의 조합이 이롭게 사용될 수 없다는 것을 나타내는 것은 아니다. It should be noted that the foregoing embodiments illustrate rather than limit the invention and those skilled in the art will be able to design many alternative embodiments within the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprises" does not exclude the presence of elements other than components or steps listed in a claim. Singular components are not intended to exclude the presence of a plurality of such components. The invention can be implemented by means of hardware comprising several distinct components, and by a suitably programmed computer. In the device claims enumerating several means, several of these means can be realized with one hardware and the same hardware item. The fact that certain measures are cited in different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims (16)

씬 서버 장치(thin server device)에서 씬 클라이언트 장치로 갱신-디스플레이 데이터를 전송하는 방법에 있어서, In a method for transferring update-display data from a thin server device to a thin client device, 전송될 새로운 갱신-디스플레이 데이터(1)를 나타내는 키(6)를 발생하는 단계;Generating a key 6 representing new update-display data 1 to be transmitted; 새로이 발생된 키를 이전에 발생된 키 또는 키들과 비교하는 단계; Comparing the newly generated key with a previously generated key or keys; 상기 클라이언트 장치에 전송될 메시지를 편집(compile)하는 단계로서, 상기 메시지는 상기 갱신-디스플레이 데이터(1)가 이미 캐시되어 있는지, 캐시할 것인지, 아니면 캐시하지 않을 것인지 여부를 상기 클라이언트 장치에 식별시키도록 상기 비교단계의 결과에 따라 설정되는, 상기 편집하는 단계; 및Compiling a message to be sent to the client device, wherein the message identifies to the client device whether the update-display data 1 is already cached, cached or not cached. The editing step is set according to the result of the comparing step; And 상기 메시지를 상기 클라이언트 장치로 전송하는 단계를 포함하는, 갱신-디스플레이 데이터 전송방법.Transmitting the message to the client device. 제1항에 있어서, 상기 메시지는 캐시 명령 필드(21) 및 시퀀스 아이덴티티 필드(sequence identity field: 22)를 포함하는 헤더(20)를 포함하는, 갱신-디스플레이 데이터 전송방법.The method of claim 1, wherein the message comprises a header (20) comprising a cache instruction field (21) and a sequence identity field (22). 제2항에 있어서, 상기 캐시 명령 필드는 "캐시함", "캐시하지 않음" 및 "캐시되어 있음" 코맨드들 중 하나에 대응하는 명령을 포함하고, 상기 시퀀스 아이덴티티 필드(22)는 캐시 어드레스를 포함하는, 갱신-디스플레이 데이터 전송방법.3. The cache instruction field of claim 2 wherein the cache instruction field includes an instruction corresponding to one of the " cached ", " not cached " and " cached " And updating-display data transmission method. 제3항에 있어서, 상기 캐시 어드레스는 상기 코맨드가 "캐시되어 있음"일 때 상기 새로이 발생된 키와 매칭하는 매칭 키의 어드레스인, 갱신-디스플레이 데이터 전송방법.4. The method of claim 3, wherein the cache address is an address of a matching key that matches the newly generated key when the command is "cached". 제3항에 있어서, 상기 캐시 어드레스는 상기 코맨드가 "캐시함"일 때 새로운 어드레스인, 갱신-디스플레이 데이터 전송방법.4. The method of claim 3, wherein the cache address is a new address when the command is "cached." 제1항에 있어서, 상기 키는 상기 갱신-디스플레이 데이터(1)의 변환 코딩에 의해 발생되는, 갱신-디스플레이 데이터 전송방법.A method according to claim 1, wherein the key is generated by transform coding of the update-display data (1). 제6항에 있어서, 상기 키는 인코딩된 갱신-디스플레이 데이터(1)의 모든 코드 워드들의 조합된 길이를 포함하는, 갱신-디스플레이 데이터 전송방법.7. A method according to claim 6, wherein the key comprises the combined length of all code words of encoded update-display data (1). 제2항에 있어서, 상기 갱신-디스플레이 데이터(1)의 크기를 체크하고, 상기 갱신-디스플레이 데이터(1)의 크기가 소정의 값 미만일 경우에 상기 캐시 명령 필드를 "캐시하지 않음"으로 설정하는 시작 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.The method according to claim 2, wherein the size of the update-display data 1 is checked and the cache command field is set to "not cached" when the size of the update-display data 1 is less than a predetermined value. Further comprising a start-up step. 제1항에 있어서, 상기 비교단계는 먼저, 상기 새로운 갱신-디스플레이 데이터(1)의 크기를 캐시되어 있는 갱신-디스플레이 데이터의 크기와 비교하는 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.The method of claim 1, wherein the comparing step further comprises first comparing the size of the new update-display data (1) with the size of the update-display data being cached. 제8항에 있어서, 상기 갱신-디스플레이 데이터(1)의 크기는 상기 갱신-디스플레이 데이터(1)의 폭 및 높이를 포함하는, 갱신-디스플레이 데이터 전송방법.9. A method according to claim 8, wherein the size of the update-display data (1) comprises a width and a height of the update-display data (1). 제1항에 있어서, 하나 이상의 매칭하는 키가 상기 이전에 발생된 키 또는 키들에서 식별되는 경우 새로운 갱신-디스플레이 데이터(1)의 코드 워드들을 캐시되어 있는 갱신-디스플레이 데이터와 비교하는 단계를 더 포함하는, 갱신-디스플레이 데이터 전송방법.The method of claim 1, further comprising comparing code words of new update-display data 1 with cached update-display data when one or more matching keys are identified in the previously generated key or keys. Update-display data transmission method. 제2항에 있어서, 상기 시퀀스 아이덴티티 필드(22)가 클라이언트 메모리로부터 상실된 데이터를 플래그(flag)하면, 상기 클라이언트 장치는 전송 코드 워드 메시지를 상기 서버에 보내는, 갱신-디스플레이 데이터 전송방법.3. The method of claim 2, wherein if the sequence identity field (22) flags data lost from client memory, the client device sends a transmission code word message to the server. 씬 클라이언트 서버 컴퓨터 시스템에 있어서,In a thin client server computer system, 캐시 메모리;Cache memory; 캐시 메모리 어드레스들을 식별하는 시퀀스 아이덴티티 발생기;A sequence identity generator for identifying cache memory addresses; 소스 데이터 인코더;Source data encoders; 인코딩된 소스 데이터를 나타내는 키를 발생시키기 위한 키 발생기;A key generator for generating a key representing encoded source data; 하나 이상의 캐시되어 있는 키들을 발생된 키와 비교하기 위한 비교기;A comparator for comparing one or more cached keys with a generated key; 상기 비교기에 연결되어, 상기 비교기의 출력에 따라 서로 다른 메시지들을 발생시키기 위한 메시지 발생기;A message generator coupled to the comparator, for generating different messages in accordance with the output of the comparator; 상기 메시지를 클라이언트 장치에 보내기 위한 전송기를 포함하는, 씬 클라이언트 서버 컴퓨터 시스템.And a transmitter for sending the message to a client device. 제1항의 방법을 프로세서가 실행할 수 있게 하는 컴퓨터 소프트웨어가 기록된 컴퓨터 판독가능 매체.A computer readable medium having recorded thereon computer software for causing a processor to execute the method of claim 1. 삭제delete 서버 장치를 포함하는 컴퓨터 시스템에 있어서,A computer system comprising a server device, 상기 서버 장치는,The server device, 캐시 메모리;Cache memory; 캐시 메모리 어드레스들을 식별하는 시퀀스 아이덴티티 발생기;A sequence identity generator for identifying cache memory addresses; 소스 데이터 인코더;Source data encoders; 인코딩된 소스 데이터를 나타내는 키를 발생시키기 위한 키 발생기;A key generator for generating a key representing encoded source data; 하나 이상의 캐시되어 있는 키들을 발생된 키와 비교하기 위한 비교기;A comparator for comparing one or more cached keys with a generated key; 상기 비교기에 연결되어, 상기 비교기의 출력에 따라 서로 다른 메시지들을 발생시키기 위한 메시지 발생기;A message generator coupled to the comparator, for generating different messages in accordance with the output of the comparator; 상기 메시지를 클라이언트 장치에 보내기 위한 전송기를 구비하고,A transmitter for sending said message to a client device, 상기 클라이언트 장치는,The client device, 상기 서버로부터 상기 메시지를 수신하기 위한 수신기;A receiver for receiving the message from the server; 캐시 메모리;Cache memory; 메시지 판독기; 및A message reader; And 디스플레이를 구비하는, 컴퓨터 시스템. A computer system having a display.
KR1020047002829A 2001-08-27 2002-08-16 Cache method KR100935586B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01203234 2001-08-27
EP01203234.8 2001-08-27
PCT/IB2002/003360 WO2003019927A1 (en) 2001-08-27 2002-08-16 Cache method

Publications (2)

Publication Number Publication Date
KR20040031006A KR20040031006A (en) 2004-04-09
KR100935586B1 true KR100935586B1 (en) 2010-01-07

Family

ID=8180842

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047002829A KR100935586B1 (en) 2001-08-27 2002-08-16 Cache method

Country Status (6)

Country Link
US (1) US20030055889A1 (en)
EP (1) EP1423972A1 (en)
JP (1) JP2005501355A (en)
KR (1) KR100935586B1 (en)
CN (1) CN1290027C (en)
WO (1) WO2003019927A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2538340A1 (en) * 2003-09-12 2005-03-31 Citrix Systems, Inc. Method and apparatus for generating graphical and media displays at a thin client
GB0707276D0 (en) * 2007-04-16 2007-05-23 Adventiq Ltd Video data transmission
US20080307412A1 (en) * 2007-06-06 2008-12-11 Sony Computer Entertainment Inc. Cached content consistency management
US8416247B2 (en) 2007-10-09 2013-04-09 Sony Computer Entertaiment America Inc. Increasing the number of advertising impressions in an interactive environment
JP5259683B2 (en) 2010-11-19 2013-08-07 株式会社東芝 Server apparatus and program
US10198462B2 (en) 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
US20150296054A1 (en) * 2012-11-15 2015-10-15 Nec Corporation Server apparatus, terminal, thin client system, screen transmission method and program
JP6169990B2 (en) * 2014-02-25 2017-07-26 Kddi株式会社 Controller proxy program and method in remote automatic operation system
JP2017151609A (en) * 2016-02-23 2017-08-31 株式会社東芝 Storage, and storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11219312A (en) * 1998-02-04 1999-08-10 Hitachi Ltd Data cache method and data access method
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
WO2000060874A1 (en) * 1999-04-06 2000-10-12 Koninklijke Philips Electronics N.V. Motion estimation
WO2001001692A1 (en) * 1999-06-28 2001-01-04 Valtion Teknillinen Tutkimuskeskus Procedure and system for performing motion estimation

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2796329B2 (en) * 1989-02-08 1998-09-10 株式会社日立製作所 Display memory and image processing apparatus having the same
JPH04273351A (en) * 1991-02-27 1992-09-29 Nec Corp Information processor
US5402492A (en) * 1993-06-18 1995-03-28 Ast Research, Inc. Security system for a stand-alone computer
JPH07311710A (en) * 1994-05-17 1995-11-28 Mitsubishi Electric Corp Buffer cache managing method for computer
US6473609B1 (en) * 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
US6205253B1 (en) * 1996-08-19 2001-03-20 Harris Corporation Method and apparatus for transmitting and utilizing analog encoded information
US6138141A (en) * 1996-10-18 2000-10-24 At&T Corp Server to client cache protocol for improved web performance
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US5913033A (en) * 1996-12-20 1999-06-15 International Business Machines Corporation Apparatus and method for retrieving information using standard objects
US5898849A (en) * 1997-04-04 1999-04-27 Advanced Micro Devices, Inc. Microprocessor employing local caches for functional units to store memory operands used by the functional units
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6272257B1 (en) * 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
US5907678A (en) * 1997-05-07 1999-05-25 International Business Machines Corporation Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6105113A (en) * 1997-08-21 2000-08-15 Silicon Graphics, Inc. System and method for maintaining translation look-aside buffer (TLB) consistency
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6112279A (en) * 1998-03-31 2000-08-29 Lucent Technologies, Inc. Virtual web caching system
US6272593B1 (en) * 1998-04-10 2001-08-07 Microsoft Corporation Dynamic network cache directories
US6341311B1 (en) * 1998-05-29 2002-01-22 Microsoft Corporation Directing data object access requests in a distributed cache
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6233606B1 (en) * 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US6453342B1 (en) * 1998-12-03 2002-09-17 International Business Machines Corporation Method and apparatus for selective caching and cleaning of history pages for web browsers
US6959300B1 (en) * 1998-12-10 2005-10-25 At&T Corp. Data compression method and apparatus
US6351767B1 (en) * 1999-01-25 2002-02-26 International Business Machines Corporation Method and system for automatically caching dynamic content based on a cacheability determination
US6408360B1 (en) * 1999-01-25 2002-06-18 International Business Machines Corporation Cache override control in an apparatus for caching dynamic content
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
JP3966636B2 (en) * 1999-02-18 2007-08-29 富士通株式会社 Supervisory control system
US6427172B1 (en) * 1999-07-20 2002-07-30 Cyberstar, L.P. Method and apparatus for internet cache content delivery via a data distribution system
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design
US7127525B2 (en) * 2000-05-26 2006-10-24 Citrix Systems, Inc. Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism
US6864895B1 (en) * 2000-05-30 2005-03-08 Hewlett-Packard Development Company, L.P. Pseudo-linear frame buffer mapping system and method
US6553388B1 (en) * 2000-07-20 2003-04-22 International Business Machines Corporation Database deltas using Cyclic Redundancy Checks
US7035912B2 (en) * 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
US6978021B1 (en) * 2000-09-18 2005-12-20 Navteq North America, Llc Encryption method for distribution of data
US6768942B1 (en) * 2000-09-18 2004-07-27 Navigation Technologies Corp. Navigation system with decryption functions and secure geographic database
US6477622B1 (en) * 2000-09-26 2002-11-05 Sun Microsystems, Inc. Simplified writeback handling
US6976151B1 (en) * 2000-09-28 2005-12-13 Intel Corporation Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination
US6470426B2 (en) * 2000-12-15 2002-10-22 International Business Machines Corporation Method and apparatus for loading a cache with data with a subsequent purge of stale cache information
US7155676B2 (en) * 2000-12-19 2006-12-26 Coolernet System and method for multimedia authoring and playback
US6651143B2 (en) * 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
US20020091819A1 (en) * 2001-01-05 2002-07-11 Daniel Melchione System and method for configuring computer applications and devices using inheritance
US20020095475A1 (en) * 2001-01-17 2002-07-18 Prasad Krothapalli Frame handling for a thin client
US20020129096A1 (en) * 2001-02-14 2002-09-12 Mansour Peter M. Platform-independent distributed user interface client architecture
US7155681B2 (en) * 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
JP2002251313A (en) * 2001-02-23 2002-09-06 Fujitsu Ltd Cache server and distributed cache server system
US6993594B2 (en) * 2001-04-19 2006-01-31 Steven Schneider Method, product, and apparatus for requesting a resource from an identifier having a character image
US6927776B2 (en) * 2001-05-17 2005-08-09 Matsushita Electric Industrial Co., Ltd. Data transfer device and method
US6995771B2 (en) * 2001-12-07 2006-02-07 Intel Corporation Sparse refresh of display
US6888551B2 (en) * 2001-12-07 2005-05-03 Intel Corporation Sparse refresh of display
US7447997B2 (en) * 2002-05-30 2008-11-04 Microsoft Corporation Reducing information transfer in screen capture series
US7302648B1 (en) * 2002-07-10 2007-11-27 Apple Inc. Method and apparatus for resizing buffered windows

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
JPH11219312A (en) * 1998-02-04 1999-08-10 Hitachi Ltd Data cache method and data access method
WO2000060874A1 (en) * 1999-04-06 2000-10-12 Koninklijke Philips Electronics N.V. Motion estimation
WO2001001692A1 (en) * 1999-06-28 2001-01-04 Valtion Teknillinen Tutkimuskeskus Procedure and system for performing motion estimation

Also Published As

Publication number Publication date
KR20040031006A (en) 2004-04-09
JP2005501355A (en) 2005-01-13
WO2003019927A1 (en) 2003-03-06
EP1423972A1 (en) 2004-06-02
CN1290027C (en) 2006-12-13
CN1547851A (en) 2004-11-17
US20030055889A1 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
US8254704B2 (en) Remote computing platforms providing high-fidelity display and interactivity for clients
KR100540495B1 (en) A method and apparatus for compressing a continuous, indistinct data stream
US7986844B2 (en) Optimized video compression using hashing function
US8929402B1 (en) Systems and methods for compressing packet data by predicting subsequent data
US7672005B1 (en) Methods and apparatus for scan block caching
US7343037B1 (en) Dynamic, locally-adaptive, lossless palettization of color and grayscale images
US20080252495A1 (en) System and program for using a reentry data set to decode compressed data
US9866656B2 (en) System and method for single KVM client accommodating multiple different video compression technologies
KR20040104515A (en) Method and apparatus for generating graphical and media displays at a client
CN109040786B (en) Camera data transmission method, device and system and storage medium
JP2009506456A (en) Remote protocol support for large object communication in any format
KR100935586B1 (en) Cache method
US8326061B2 (en) Fast visual degrading of images
CN112035081A (en) Screen projection method and device, computer equipment and storage medium
US8977068B2 (en) Transform space difference compression
US8473428B2 (en) Generation and use of specific probability tables for arithmetic coding in data compression systems
CN110868599B (en) Video compression method of remote desktop
CN105610979B (en) Network resource transmission system and method based on virtualization technology
CN101401431A (en) Information transfer apparatus, information receiving apparatus and computer program
KR100586693B1 (en) Image transcoding apparatus for reducing gif size and it's method
CN116489476A (en) Image transmission method, device, equipment and storage medium
CN117596144A (en) Method and device for acquiring background data
CN116980619A (en) Video processing method, device, equipment and storage medium
CN117435146A (en) Code stream generation method, system and device, electronic equipment and storage medium
CN116366070A (en) Wavelet coefficient coding method, device, system, equipment and medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee