KR20070120108A - 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치 - Google Patents

분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치 Download PDF

Info

Publication number
KR20070120108A
KR20070120108A KR1020077021111A KR20077021111A KR20070120108A KR 20070120108 A KR20070120108 A KR 20070120108A KR 1020077021111 A KR1020077021111 A KR 1020077021111A KR 20077021111 A KR20077021111 A KR 20077021111A KR 20070120108 A KR20070120108 A KR 20070120108A
Authority
KR
South Korea
Prior art keywords
display
update
display unit
network
video buffer
Prior art date
Application number
KR1020077021111A
Other languages
English (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 KR20070120108A publication Critical patent/KR20070120108A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • 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/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

컴퓨팅 시스템으로부터 원격으로 위치된 디스플레이 유닛을 갱신하는 시스템 및 방법을 개시되어 있다. 상기 방법은 애플리케이션을 실행시키는 컴퓨팅 디바이스의 비디오 버퍼로부터 디스플레이 정보를 복제하여 디스플레이 갱신을 발생시키는 단계, 상기 디스플레이 갱신의 크기를 계산하는 단계, 및 상기 컴퓨팅 디바이스 및 디스플레이 유닛을 연결하는 네트워크의 이용 가능한 대역폭의 양을 결정하는 단계를 포함한다. 상기 방법은 또한 컴퓨팅 디바이스로부터 디스플레이 유닛으로 디스플레이 갱신을 전달하는데 필요로 되는 시간 기간을 계산하는 단계, 상기 디스플레이 갱신을 디스플레이에 전송하는 단계, 및 상기 시간 기간이 경과한 후에 상기 방법을 반복하는 단계를 포함한다.
컴퓨팅 시스템, 디스플레이 유닛, 비디오 버퍼, 네트워크, 디스플레이 갱신.

Description

분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는 방법 및 장치{A METHOD AND APPARATUS FOR UPDATING A GRAPHICAL DISPLAY IN A DISTRIBUTED PROCESSING ENVIRONMENT}
본 발명은 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는 방법 및 장치에 관한 것이다.
분산 컴퓨터 시스템은 애플리케이션 실행을 분산시키는 기술을 사용한다. 특히, 애플리케이션 서버는 애플리케이션 프로그램을 국부적으로 실행시키고 애플리케이션 출력 데이터를 클라이언트들/네트워크 사용자들에게 제공하는데, 이 클라이언트들/네트워크 사용자들은 그 이후에 자신들의 로컬 컴퓨터에 국부적으로-결합되는 디스플레이 스크린 상에 그 결과들을 디스플레이한다. 분산 시스템은 이용 가능한 컴퓨팅 자원들을 가장 양호하게 사용하도록 할 수 있는데, 즉, 더 능력 있는 서버가 계산 및 메모리 집약적인 애플리케이션 프로세싱 기능들을 수행하는 한편, 계산 성능에서는 더 떨어지지만 비디오 성능에서는 잠재적으로 더 양호할 수 있는 클라이언트가 출력을 디스플레이한다. 한 유형의 분산 컴퓨팅 시스템에서, 클라이언트의 사용자는 애플리케이션 프로그램의 실행 동안 로컬 디스플레이 상에서 애플리케이션 출력 데이터를 뷰잉(viewing)하고, 키보드, 마우스 입력들, 또는 다른 디바 이스 입력들을 통하여 애플리케이션 프로그램과 상호작용한다. 사용자의 입력들은 애플리케이션 프로그램의 동작에 영향을 주는 어떤 동작들을 실행시키도록 애플리케이션 서버에 요청하는 것에 대응한다. 애플리케이션 서버는 부가적인 프로세싱을 위해 애플리케이션에 대한 이러한 요청들을 통과시킨다. 애플리케이션 서버는 또한 애플리케이션 프로그램에 의해 발생되고, 전형적으로 애플리케이션의 운영 시스템으로 타겟화된 애플리케이션 출력 데이터를 인터셉트하고, 데이터의 모두 또는 일부를 디스플레이를 위해 클라이언트에 전송한다. 사용자의 관점에서, 애플리케이션 프로그램은 실제로 원격 서버상에서 실행되고 있을지라도 국부적으로 실행되고 국부적으로 디스플레이되는 것처럼 보인다.
상술된 기능을 제공하는 다양한 프로토콜들이 존재한다. 이와 같은 프로토콜의 일례는 워싱턴의 레드몬드 소재의 마이크로소프트사에 의해 분배된 원격 데스크톱 프로토콜("RDP")이다. RDP는 프로토콜들의 ITU T.120 체계에 기초하며, 상기 ITU T.120 체계의 확장부분(extension)이다. RDP는 개별적인 가상 채널들이 애플리케이션 서버로부터 디바이스 통신 및 프리젠테이션 데이터(divice communication and presentation data), 뿐만 아니라, 암호화된 클라이언트 마우스 및 키보드 데이터를 전달하도록 하는 다-채널 가능한 프로토콜이다. RDP는 RDP 프로토콜을 사용하여 렌더링 정보(rendering information)를 네트워크 패킷들로 구성하고 이들을 네트워크를 통하여 클라이언트에 전송함으로써 디스플레이 출력을 렌더링하기 위하여 자신의 비디오 드라이버를 사용한다. 클라이언트 상에서, RDP는 렌더링 데이터를 수신하고 패킷들을 대응하는 Microsoft Win32 그래픽 디바이스 인터페이 스(GUI)) API 호출들로 해석한다. 입력 경로에 대해서, 클라이언트 마우스 및 키보드 이벤트들이 클라이언트로부터 서버로 재지향된다.
유사한 기능을 제공하는 또 다른 프로토콜은 플로리다의 포트 로더데일 소재의 싸이트릭스 시스템즈사에 의해 판매되는 독립적인 컴퓨팅 아키텍처("ICA")이다. ICA는 애플리케이션의 논리의 나머지로부터 개별적인 스크린 갱신들 및 사용자 입력 프로세싱을 가능하게 하는 프로토콜이다. 모든 애플리케이션 논리는 제1 컴퓨팅 시스템상에서 실행되고, 단지 스크린 갱신들, 마우스 이동들, 및 키 스트로크들만이 디스플레이하는 컴퓨팅 시스템 및 제1 컴퓨팅 시스템 사이의 세션 동안 전송된다.
분산 애플리케이션 프로세싱 시스템들은 전형적인 오피스 애플리케이션들에 대해 양호하게 수행된다. 그러나, 그래픽 집약적인 어떤 애플리케이션들은 분산 애플리케이션 프로세싱 시스템의 성능에 악영향을 줄 수 있다. 그래픽 집약적인 애플리케이션의 예들은 컴퓨터 이용 설계("CAD") 애플리케이션들, 비디오 편집 애플리케이션들, 및 컴퓨터 게임들을 포함할 수 있지만, 이에 국한되지 않는다. 이러한 그래픽 집약적인 애플리케이션들에서, 디스플레이 갱신들은 전형적으로 상당한 양의 대역폭을 필요로 하는데, 그 이유는 이들이 큰 비트맵 이미지들이기 때문이다. 이 문제는 CAD/CAM 프로그램이 사용자가 뷰잉하도록 디바이스의 3차원 모델을 회전시킬 때와 같이 실행 애플리케이션 프로그램이 짧은 시간 기간에 다수의 디스플레이 갱신들을 전송할 때 악화된다. 각각의 스크린 갱신들의 크기가 큰 것으로 인해 초래되는 출력에서의 지연은 애플리케이션 프로그램과의 사용자 경험 및 상호작용 에 악영향을 주고, 분산 애플리케이션 프로세싱 환경에서 애플리케이션 프로그램의 사용을 실용적이지 않게 한다.
일 양태에서, 본 발명은 원격 디스플레이 유닛을 갱신하는 방법을 특징으로 한다. 상기 방법은 디스플레이 유닛으로부터 원격으로 위치된 애플리케이션을 실행시키는 컴퓨팅 디바이스의 비디오 버퍼로부터 디스플레이 정보를 복제하여 디스플레이 갱신을 발생시키는 단계, 상기 디스플레이 갱신의 크기를 계산하는 단계, 및 상기 컴퓨팅 디바이스 및 디스플레이 유닛을 연결하는 네트워크의 이용 가능한 대역폭의 양을 결정하는 단계를 포함한다. 상기 방법은 또한 컴퓨팅 디바이스로부터 디스플레이 유닛으로 디스플레이 갱신을 전달하는데 필요로 되는 시간 기간을 계산하는 단계, 상기 디스플레이 갱신을 디스플레이에 전송하는 단계, 및 상기 시간 기간이 경과한 후에 상기 단계들 중 하나 이상을 반복하는 단계를 포함한다.
다양한 실시예들에서, 상기 방법은 상기 단계들 중 적어도 하나 동안 상기 애플리케이션에 의해 비디오 버퍼로 디스플레이 정보를 기록하는 단계를 포함한다. 상기 방법은 또한 디스플레이 갱신의 부분으로서 상기 비디오 버퍼의 변화 영역을 나타내는 적어도 하나의 경계 사각형(bounding rectangle)을 발생시키는 단계, 및 상기 비디오 버퍼에 대한 변화량을 추적하여 고(high) 갱신 기간이 존재하는지를 결정하는 단계를 포함한다.
일 실시예에서, 상기 방법은 고 갱신 기간 동안 디스플레이 갱신에 손실이 있는 알고리즘(lossy algorithm)을 적용하여 손실이 있는 디스플레이 갱신을 생성하는 단계, 상기 손실이 있는 디스플레이 갱신을 디스플레이에 전송하는 단계, 및 무손실의 디스플레이 갱신을 전송하여 상기 고 갱신 기간 이후에 상기 손실이 있는 디스플레이를 교체하는 단계를 포함한다.
또 다른 양태에서, 본 발명은 컴퓨팅 시스템으로부터 원격으로 위치된 디스플레이 유닛을 갱신하는 시스템을 특징으로 한다. 상기 시스템은 비디오 버퍼, 드라이버, 및 쓰레드(thread)를 포함한다. 비디오 버퍼는 컴퓨터 시스템상에서 실행되는 애플리케이션 프로그램의 그래픽 출력을 나타내는 디스플레이 데이터를 저장한다. 드라이버는 컴퓨팅 시스템 및 원격 디스플레이 유닛 사이의 네트워크의 특성을 결정하고 네트워크 가용성에 관한 신호를 전송한다. 쓰레드는 상기 신호를 수신하고 비디오 버퍼에 저장된 데이터에 응답하여 원격 디스플레이로의 통신을 위한 디스플레이 갱신을 생성한다.
다양한 실시예들에서, 네트워크 가용성에 관한 신호는 동적으로 결정되는 시간 기간을 포함한다. 상기 시스템은 또한 쓰레드와 통신하여 동적으로 결정되는 시간 기간을 실행시키고 로컬 비디오 버퍼를 복제하도록 쓰레드에 시그널링하는 타이머 모듈을 가질 수 있다. 상기 시스템은 또한 비디오 버퍼와 통신하여 경계 사각형 정보를 저장하는 갱신 영역을 포함할 수 있다. 비디오 버퍼에 대해 행해진 변화의 양을 추적하는 누산기가 또한 포함될 수 있다. 또한, 상기 시스템은 드라이버와 통신하여, 누산기가 소정의 임계값에 도달할 때 디스플레이 갱신을 원격 디스플레이 유닛에 전송하기 이전에 디스플레이 갱신을 압축하도록 하는 압축기 모듈을 포함할 수 있다.
또 다른 양태에서, 본 발명은 컴퓨팅 시스템으로부터 원격으로 위치된 디스플레이 유닛을 갱신하는 시스템을 특징으로 한다. 상기 시스템은 버퍼링 수단, 구동 수단, 및 쓰레드 수단을 포함한다. 버퍼링 수단은 컴퓨터 시스템상에서 실행되는 애플리케이션 프로그램의 그래픽 출력을 나타내는 디스플레이 데이터를 저장한다. 구동 수단은 네트워크와 통신하여 네트워크의 특성을 결정하고, 네트워크 가용성에 관한 신호를 전송한다. 쓰레드 수단은 상기 신호를 수신하고, 원격 디스플레이 유닛으로 전달되는 디스플레이 갱신을 생성한다.
본 발명은 여러 도면들에서 동일한 번호들이 동일한 구조적인 요소 및 특징들을 나타내는 첨부 도면들과 관련되는 다음의 설명을 참조함으로써 더 양호하게 이해될 수 있다. 도면들은 반드시 원래 크기대로 도시되지는 않지만, 본 발명의 원리들을 설명하기 위해 강조되어 있다.
도 1은 본 발명의 원리들에 따라 구성된 분산 애플리케이션 프로세싱 시스템의 블록도.
도 2는 도 1의 분산 애플리케이션 프로세싱 시스템의 동작 모드를 도시한 흐름도.
도 3은 도 1의 컴퓨팅 유닛 에이전트의 실시예의 블록도.
도 4는 도 3의 생산자 쓰레드의 동작 방법의 흐름도.
도 5는 도 3의 소비자 쓰레드의 동작 방법의 흐름도.
도 6은 본 발명의 원리에 따라 갱신들을 원격 유닛에 제공하는 방법의 실시 예의 흐름도.
본 발명은 원격 디스플레이 유닛의 디스플레이를 갱신하는 시스템들 및 방법들을 특징으로 한다. 일 실시예에서, 본 발명은 네트워크상에 계류 중인 데이터의 양 및 대역폭 속도의 현재의 동적 상태를 사용하여 디스플레이 갱신을 전송할 다음 간격을 식별한다. 상기 간격은 갱신의 크기 및 네트워크의 속도에 의해 결정된다. 디스플레이 드라이버는 애플리케이션이 로컬 비디오 버퍼를 갱신하도록 한다. 버퍼는 디스플레이 스크린의 가장 최신의 표현을 포함한다. 갱신이 발생할 때, 디스플레이 드라이버는 각각의 갱신에 기인하는 영향을 받는 경계 사각형들의 리스트를 유지한다. 네트워크가 준비될 때, 갱신들은 버퍼 및 영향을 받은 사각형들의 리스트로부터 전송될 수 있다. 이중 이미지 버퍼링이 사용될 수 있다. 즉, 영향을 받은 사각형의 리스트는 복제되고, 네트워크를 통한 전송을 위해 드라이버에 제공된다. 영향을 받은 사각형들의 리스트를 복제하는 것은 애플리케이션이 더 많은 갱신들을 버퍼에 발부하도록 하는 반면, 원격 디스플레이에 갱신들을 전송하는 프로세스가 더 느려진다. 손실이 있는 이미지 압축은 빈번한 갱신들의 기간들 동안 원격 디스플레이에 전송되는 갱신들에 대해 사용될 수 있다. 손실이 있는 갱신들의 영향을 받은 영역들은 압축되어 리스트 상에 저장된다. 일단 빈번한 갱신들의 기간이 중단되면, 손실이 있는 압축된 영역들의 리스트는 무손실 경로에서 로컬 비디오 버퍼로부터 재전송될 수 있다.
본 발명의 하나의 장점은 애플리케이션들을 갱신들로부터 원격 위치로 디커 플링하는 것이다. 애플리케이션은 갱신들을 보다 저속의 네트워크 경로로 저하시킴이 없이 스크린에 동수의 갱신들을 행할 수 있다. 원격 위치로 전송되는 갱신들은 네트워크가 갱신들을 핸들링할 수 있을 때에만 발생된다. 이것은 애플리케이션에 의하여 많은 갱신들이 발생되도록 하지만, 또한 단지 가장 최근의 디스플레이 이미지가 네트워크를 통해 전송되도록 한다. 따라서, 최종-사용자로의 디스플레이의 프리젠테이션에서 상호작용성(interactivity)이 증가된다.
도 1을 참조하면, 분산 애플리케이션 프로세싱 시스템(100)은 통신 네트워크(140)를 통하여 하나 이상의 컴퓨팅 디바이스들(150', 150")(이하에서 각각의 컴팅 디바이스 또는 다수의 컴퓨팅 디바이스들은 일반적으로 150으로 칭해진다)과 통신하는 하나 이상의 원격 디스플레이 유닛들(110', 110")(이하에서 각각의 원격 디스플레이 유닛 또는 다수의 원격 디스플레이 유닛들은 일반적으로 110이라 칭해진다)을 포함한다. 네트워크(140)는 근거리 네트워크(LAN), 중간 거리 네트워크(MAN), 또는 인터넷 또는 월드 와이드 웹과 같은 원거리 네트워크(WAN)일 수 있다. 원격 디스플레이 유닛(110)의 사용자들은 표준 전화선들, LAN 또는 WAN 링크들(예를 들어, T1, T3, 56kb, X.25), 광대역 접속들(예를 들어, ISDN, 프레임 릴레이, ATM), 및 무선 접속들(예를 들어, IEEE 802.11)을 포함한 다양한 접속들을 통하여 네트워크(140)에 접속될 수 있다. 상기 접속들은 다양한 통신 프로토콜(예를 들어, TCP/IP, IPX, SPX, NetBIOS, 및 직접적인 비동기 접속들)을 사용하여 설정될 수 있다. 일부의 특정하게 유용한 실시예들에서, 사용되는 프로토콜은 플로리다의 포트 로더데일 소재의 시트릭스 시스템즈사에 의해 제조된 독립적인 컴퓨팅 아키텍 처 프로토콜 또는 워싱턴의 레드몬드 소재의 마이크로소프트사에 의해 제조된 원격 디스플레이 프로토콜일 수 있다.
네트워크(140)의 대역폭은 분산 애플리케이션 프로세싱 시스템(100)의 성능에 영향을 주는 하나의 요인이다. 제2 네트워크에 비하여 더 큰 대역폭을 갖는 네트워크(140)는 전형적으로 더 많은 디스플레이 데이터를 원격 디스플레이 유닛(110)으로 전송하는 것을 지원할 수 있다. 분산 애플리케이션 시스템(100)의 동작 동안에, 네트워크(140)의 대역폭은 변동한다. 데이터가 네트워크(140)를 통해 전송될 때, 네트워크의 이용 가능한 대역폭의 양은 감소된다. 디스플레이 데이터가 원격 디스플레이 유닛(110)에 의해 수신될 때, 부가적인 데이터가 네트워크상에 배치되지 않는다면, 네트워크(140)의 이용 가능한 대역폭은 증가한다. 본 발명의 하나의 양상은 네트워크(140)의 이용 가능한 대역폭을 감시하고, 그 측정치를 사용하여 디스플레이 갱신 프레임을 원격 디스플레이 유닛(110)에 전송하는 시간을 동적으로 결정하는 것이다.
원격 디스플레이 유닛(110)은 프로세서(112), 휘발성 메모리(114)(예를 들어, RAM 캐쉬), 운영 시스템(116), 디스플레이 에이전트(118), 지속성 저장 메모리(120), 네트워크 인터페이스(122)(예를 들어, 네트워크 인터페이스 카드), 디스플레이 애플리케이션 프로그램(123), 키보드(124), 적어도 하나의 입력 디바이스(126)(예를 들어, 마우스, 트랙볼, 스페이스 볼, 라이트 펜 및 태블릿(lignt pen and tablet), 스타일러스(stylus) 및 임의의 다른 입력 디바이스), 및 디스플레이(128)를 포함한다. 운영 시스템(116)은 WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NY 4.0, WINDOWS 2000, WINDOWS CE, MAC/OS, Java, PALM OS, SYMBIAN OS, LINUX, SMARTPHONE OS, 및 UNIX를 포함할 수 있지만, 이에 국한되지 않는다. 디스플레이 이에전트(118)는 컴퓨팅 디바이스(150) 및 원격 디스플레이 유닛(110)의 사용자(도시되지 않음)로부터 명령들 및 데이터를 수신한다. 클라이언트 에이전트(118)는 원격 디스플레이 유닛(110)의 다른 구성요소들과 상호작용할 때(예를 들어, 디스플레이(128)상으로 데이터를 출력하도록 운영 시스템(116)에 지시할 때) 상기 수신된 정보를 사용한다. 디스플레이 에이전트(118)는 또한 컴퓨팅 디바이스에 의해 발부된 명령들 또는 원격 디스플레이 유닛(110)에서의 사용자 동작에 응답하여 컴퓨팅 디바이스(150)에 요청 및 데이터를 전송한다.
원격 디스플레이 유닛(110)은 임의의 퍼스널 컴퓨터(예를 들어, 286, 386, 486, 펜티엄, 펜티엄 II, 매킨토시 컴퓨터), Windows-기반으로 한 단말기, 네트워크 컴퓨터, 무선 디바이스, 정보 기기, RISC 파워 PC, X-디바이스, 워크스테이션, 미니컴퓨터, 메인 프레임 컴퓨터, 셀룰러 전화 또는 운영 시스템 및 디스플레이 애플리케이션 프로그램(123)을 실행시키는데 충분한 메모리를 제공하는 다른 컴퓨팅 디바이스일 수 있다. 디스플레이 애플리케이션 프로그램(123)이 운영 시스템(116)과 일체이거나 자립형 애플리케이션일 수 있다는 것이 이해되어야 한다. 디스플레이 프리젠테이션 프로그램(123)은 컴퓨팅 디바이스(150)에 의하여 네트워크(140)를 통해 자신에게 전송된 명령 및 데이터를 사용하여 디스플레이 유닛의 디스플레이(128)의 사용자에게 그래픽 출력을 렌더링한다.
마찬가지로, 컴퓨팅 디바이스(150)는 프로세서(152), 휘발성 메모리(154), 운영 시스템(156), 애플리케이션 프로그램(158), 컴퓨팅 디바이스 에이전트(160), 지속성 저장 메모리(162), 및 네트워크 인터페이스(164)를 포함할 수 있다. 컴퓨팅 디바이스 에이전트(160)는 디스플레이 에이전트(118) 및 컴퓨팅 디바이스(150)의 다른 구성요소들과 인터페이스하여 애플리케이션 프로그램(158)의 원격 디스플레이 및 운영성(operability)을 지원한다. 분산 애플리케이션 프로세싱 시스템(100)에서, 애플리케이션 프로그램의 실행은 주로 컴퓨팅 디바이스상에서 행해지고, 애플리케이션 실행에 의해 생성된 사용자 인터페이스는 네트워크(140)를 통하여 원격 디스플레이 유닛(110)에 전송된다. 사용자는 네트워크(140)를 통하여 컴퓨팅 디바이스(150)에 전송되는 키 스트로크들 및 마우스 이동들과 같은 입력들을 입력 유닛(110)에서 입력하여 부가적인 태스크들을 수행하도록 애플리케이션 프로그램들에 명령한다.
각각의 컴퓨팅 디바이스(150)는 원격 디스플레이 유닛(110)에 의해 액세스될 수 있는 하나 이상의 애플리케이션 프로그램들(158)에 호스팅한다. 이와 같은 애플리케이션들의 예들은 둘 모두가 워싱턴의 레드몬드 소재의 마이크로소프트사에 의해 제조된 MICROSOFT WORD와 같은 워드 프로세싱 프로그램들 및 MICROSOFT EXCEL과 같은 스프레드시트 프로그램들, 재정 보고 프로그램들, 고객 등록 프로그램들, 기술적인 지원 정보를 제공하는 프로그램들, 고객 데이터베이스 애플리케이션들, 애플리케이션 세트 관리자들, 또 캘리포니아의 산 라파엘 소재의 오토데스크사에 의해 판매되는 AUTOCAD, 프랑스의 쉬렌느 소재의 다설트 시스템즈사에 의해 판매되는 CATIA, 및 매사추세츠의 니덤 소재의 파라메트릭 테크놀로지사에 의해 판매되는 PRO/ENGINEER과 같은 컴퓨터 이용 설계 및 제조 애플리케이션들을 포함한다.
도 2는 도 1에 도시된 분산 애플리케이션 프로세싱 시스템의 동작 개요를 제공한다. 애플리케이션 프로그램(158)은 사용자의 마우스(126) 및 키보드(124) 조작에 응답하여 운영 시스템(156)에 의해 해석되는 출력을 발생시키고 나서(단계 210), 상기 애플리케이션 프로그램(158)의 그래픽 출력을 나타내는 드로잉 명령(drawing command)을 발부한다. 드로잉 명령은 컴퓨팅 디바이스(150)의 버퍼에 기록된다(단계 214). 디스플레이(128)를 갱신하기 위하여 주기적으로 버퍼의 내용들이 원격 디스플레이 유닛(110)으로 전달되고(단계 218), 원격 디스플레이 유닛(110)의 디스플레이 에이전트(118)에 의해 프로세싱된다(단계 222). 컴퓨팅 디바이스(150)는 운송 메커니즘(컴퓨팅 디바이스 에이전트(160)의 부분)을 통하여 원격 디스플레이 유닛(110)과 통신한다. 일 실시예에서, 운송 메커니즘은 다수의 가상 채널들을 제공하고, 가상 채널들 중 하나는 컴퓨팅 디바이스(150)로부터 원격 디스플레이 유닛(110)으로 그래픽 스크린 데이터를 전송하기 위한 프로토콜을 제공한다.
도 2를 여전히 참조하면, 그리고 더 상세하게는, 애플리케이션 프로그램(158)은 출력을 발생시키고(단계 210), 상기 애플리케이션 프로그램(158)의 그래픽 출력을 나타내는 드로잉 명령을 발부한다. 드로잉 명령들의 예들은 래스터 오퍼레이션(raster operation), WINDOWS-기반으로 한 운영 시스템들에 의해 제공된 GDI 명령들, 및 MAC/OS-기반으로 한 운영 시스템들에 의해 제공된 QUICKDRAW 또는 GUARTZ 명령들을 포함할 수 있지만, 이에 국한되지 않는다. 일부 실시예들에서, 애 플리케이션 프로그램에 의해 발부된 드로잉 명령들은 "후킹(hooking)되는데", 즉, 드로잉 명령들은 애플리케이션 프로그램과 관련되지 않은 코드에 의해 인터셉트되고, 후술되는 바와 같이 더 프로세싱된다. 이러한 실시예들에서, 드로잉 명령들은 또한 후술되는 바와 같이 프로세싱되는 것 이외의 프로세싱을 위해 운영 시스템(116)에 제공될 수 있다. 참조를 용이하게 하기 위하여, 드로잉 명령은 명세서의 나머지 전체에 걸쳐 "GDI 명령들"로서 칭해질 것이다.
드로잉 명령들은 컴퓨팅 디바이스(150)에 의해 제공된 버퍼에 기록된다(단계 214). 일부 실시예들에서, 컴퓨팅 디바이스(150)의 그래픽 디스플레이와 관련된 디바이스 드라이버로의 인터페이스 호출들과 같은 하위-레벨 명령들이 버퍼에 기록된다. 또 다른 실시예들에서, 드로잉 명령들 및 하위-레벨 명령들 둘 모두는 컴퓨팅 디바이스(150)에 의해 제공된 버퍼에 저장된다. 드로잉 명령들은 저장된 명령들이 원격 디스플레이 유닛에 의해 제공된 디스플레이를 갱신하기 위하여 원격 디스플레이 유닛으로 전송되는 것과 동시에 버퍼에 저장될 수 있다.
주기적으로, 버퍼의 내용들이 원격 디스플레이 유닛(110)에 전달된다(단계 218). 버퍼의 내용들이 원격 디스플레이 유닛에 얼마나 자주 전달되는가는 이하에 상세히 설명되는 바와 같이, 네트워크상에 현재 계류 중인 데이터 양의 함수이다. 컴퓨팅 디바이스(150)는 운송 메커니즘(컴퓨팅 디바이스 에이전트(160)의 부분)을 통하여 원격 디스플레이 유닛(110)과 통신한다. 일 실시예에서, 운송 메커니즘은 다수의 가상 채널들을 제공하며, 가상 채널들 중 하나는 컴퓨팅 디바이스(150)로부터 원격 디스플레이 유닛(110)으로 그래픽 스크린 데이터를 전송하기 위한 프로토 콜을 제공한다.
원격 디스플레이 유닛(110)의 디스플레이 에이전트(118)는 수신된 버퍼 내용을 프로세싱하여(단계 222) 디스플레이(128)를 갱신한다. 일 실시예에서, 디스플레이 에이전트는 컴퓨팅 디바이스(150)의 애플리케이션 프로그램(158)에 의해 발부된 드로잉 명령들에 대응하는 드로잉 명령들을 원격 디스플레이 유닛(110)의 운영 시스템에 발부한다.
도 3은 컴퓨팅 디바이스 에이전트(160)의 다양한 구성요소들의 개념적인 블록도를 도시한다. 일 실시예에서, 컴퓨팅 디바이스 에이전트(160)는 생산자 쓰레드(300), 버퍼(304), 소비자 쓰레드(308), 및 드라이버(312)를 포함한다. 생산자 쓰레드(300)는 버퍼(304)와 통신한다. 소비자 쓰레드(308)는 버퍼(304) 및 드라이브(312)와 통신한다.
생산자 쓰레드(300)는 그래픽 이미지들로서 프로세싱되고 버퍼(304)에 저장되는 GDI 명령들과 같은 드로잉 명령들을 발부하는 하나 이상의 애플리케이션 쓰레드들(314', 314")(일반적으로 애플리케이션 쓰레드(314)라 칭해짐)을 포함한다. 드로잉 명령들은 전형적으로 그래픽 렌더링 엔진에 발부되고, 상기 그래픽 렌더링 엔진은 그 후에 상기 명령들을 버퍼(304) 내로 렌더링한다. 그래픽 렌더링 엔진의 출력은 복잡한 비트맵 또는 유사한 그래픽 표현일 수 있다. 본질적으로, 버퍼(304)는 원격 디스플레이 유닛(110)으로의 나중의 전송을 위해 디스플레이 이미지를 저장하는 "가상" 디스플레이의 기능을 한다.
생산자 쓰레드(300)는 또한 GDI 명령들을 그래픽 렌더링 엔진에 발부하기 전 에 GDI 명령들을 훅킹함으로써 버퍼에 대한 변화들을 추적한다. 생산자 쓰레드(300)는 GDI 명령들을 조사하고, 버퍼(304)의 비트맵의 변화의 에어리어들을 나타내는 하나 이상의 경계 사각형들을 발생시킨다. 경계 사각형들은 버퍼(304)와 통신하거나 버퍼와 일체인 갱신 어레이(316)에 저장된다. 생산자 쓰레드(300)는 소비자 쓰레드(308)의 동작 동안 버퍼(304) 및 갱신 어레이(316)를 연속적으로 갱신할 수 있다. 또 다른 방식으로서, 생산자 쓰레드(300)는 소비자 쓰레드(308)와 독립적으로 동작한다.
일 실시예에서, 버퍼(304)는 휘발성 메모리(154) 또는 지속성 저장장치의 전용 되고 동적으로 재구성 가능한 섹션이다. 상술된 바와 같이, 버퍼(304)의 일부는 경계 사각형들을 저장하기 위한 갱신 어레이(316)로서 지정된다. 또 다른 실시예에서, 버퍼는 특히 버퍼의 역할을 하도록 제공되는 듀얼-포트 RAM과 같은 특수용 메모리를 포함한다.
경계 사각형들의 수가 증가함에 따라, 단일 갱신 프레임 내의 단일 영역에 대해 다수의 갱신들을 전송하는 것을 방지하도록 중복 변화 영역들을 제거하기 위하여 다수의 알고리즘이 경계 사각형들 상에서 동작한다. 예를 들어, 영역(X)이 버퍼(304)로의 제1 기록 동안 변화하는 경우, 변화 영역의 좌표들을 나타내는 경계 사각형은 갱신 어레이(316)에 저장된다. 버퍼(304)로의 그 다음 기록이 영역(X)을 포함하는 영역에 대한 변화를 발생시키는 경우, 영역(X)과 관련된 경계 사각형은 제거되고, 새로운 경계 사각형 정보로 교체된다.
소비자 쓰레드(308)는 누산기 모듈(320), 복제 모듈(324), 타이머 모 듈(328), 및 압축기 모듈(332)을 포함한다. 누산기 모듈(320)은 버퍼(304)와 통신하며, 버퍼(304)의 디스플레이 이미지에서 변화된 디스플레이 데이터의 양의 누계를 제공한다. 상기 누계는 이하에 더 상세히 설명되는 손실이 있는 압축을 포함하는 동작 모드를 트리거하기 위해 사용된다.
복제 모듈(324)은 버퍼(304)와 통신하며, 원격 디스플레이 유닛(110)으로 전송하기 위한 디스플레이를 생성하기 위하여 버퍼의 디스플레이 이미지 및 갱신 어레이(316)의 경계 사각형들을 복제하도록 버퍼(304)에 액세스할 수 있다.
압축기 모듈(332)은 복제 모듈(324) 및 누산기 모듈(320)과 통신한다. 압축기 모듈(332)은 디스플레이 갱신 프레임 상에서 손실이 있는 압축을 수행하여 손실이 있는 디스플레이 갱신 프레임을 생성하는 수단을 제공한다. 상기 누계는 압축기 모듈을 요구된 바와 같이 활성화시키고 비활성화시키기 위해 사용된다.
타이머 모듈(328)은 드라이버(312) 및 복제 모듈(324)과 통신한다. 타이머 모듈(328)의 기능은 동적으로 결정되는 시간 기간 이후에 버퍼(304)로부터 복제 동작을 트리거하는 것이다. 타이머 모듈(328)의 동적으로 결정되는 시간 기간의 길이는 네트워크(140)의 이용 가능한 대역폭 및 각각의 디스플레이 갱신의 크기에 따른다. 시간 기간을 동적으로 결정함으로써, 본 발명은 원격 디스플레이 유닛(110)에 디스플레이 갱신을 "적시(just-in time)에" 전달한다.
드라이버(312)는 분산 애플리케이션 프로세싱 시스템(100)의 통신 프로토콜에 따라 디스플레이 갱신 프레임을 포맷하는 변환기 모듈(336)을 포함한다. 드라이버(312)는 또한 타이머 모듈(328)에 의해 사용되는 시간 기간을 동적으로 결정한 다. 일 실시예에서, 드라이버 모듈(312)은 디스플레이 갱신 프레임에 대한 왕복 시간을 감시한다. 동적으로 결정되는 시간 기간을 결정하는 다른 방법이 또한 사용될 수 있다. 예를 들어, 애플리케이션 쓰레드(314)에 의해 발부되는 드로잉 동작들의 수가 사용될 수 있다.
이제 도 4를 참조하면, 생산자 쓰레드의 동작이 설명된다. 일반적인 개요로서, 생산자 쓰레드(300)는 드로잉 명령들을 발부하고(단계 400); 버퍼(304)에 디스플레이 이미지를 기록하고(단계 410); 경계 사각형들을 발생시키고(단계 420); 갱신 디스플레이 영역(316)에서 경계 사각형들을 저장하고(단계 430); 경계 사각형을 컨버징(converging)한다(단계 440).
더 상세하게는, 애플리케이션 프로그램 쓰레드들(314)은 그래픽 렌더링 엔진에 GDI 드로잉 명령들을 발부한다(단계 400). 그래픽 렌더링 엔진으로부터의 기록 명령들은 버퍼(304)에 저장되는 디스플레이 이미지를 발생시킨다(단계 410). 버퍼(304)로의 그 다음 기록들은 디스플레이 이미지의 변화들을 발생시킨다.
생산자 쓰레드(300)는 버퍼(304)로의 최종 기록 이래로 변화되는 디스플레이 이미지의 에어리어를 식별하는 하나 이상의 경계 사각형들을 발생시킨다(단계 420). 일 실시예에서, 그래픽 렌더링 엔진에 발부되는 GDI 명령들은 그래픽 렌더링 엔진으로 통과되기 전에 훅킹된다. 그 다음 GDI 명령들은 이미지의 어떤 에어리어들이 변화되었는지를 결정하기 위하여 이전에 발부된 명령들과 비교된다.
갱신 어레이(316)는 경계 사각형들을 저장한다(단계 430). 갱신 어레이(316)에 새로운 경계 사각형을 기록하기 전에, 생산자 쓰레드(300)는 갱신 어레이(316) 내의 기존 사각형들 중 어느 것이 새로운 경계 사각형과 교차하거나 중복되는지를 결정한다. 당업자들에게 공지된 하나의 방법은 직사각형 충돌 검출 알고리즘들을 사용하는 것이다.
교차 또는 중복이 존재하는 경우, 경계 사각형들은 컨버징된다(단계 440). 본원에 사용되는 바와 같은 컨버징은 기존 사각형을 새로운 사각형으로 교체하거나, 기존 사각형을 새로운 사각형과 결합하거나, 기존 사각형을 분할하는 것을 칭한다. 일부 실시예들에서, 새로운 경계 사각형이 기존 경계 사각형과 중복되는 변화 영역을 기술하는 경우, 새로운 경계 사각형은 갱신 영역(316)으로 기록되고, 기존 경계 사각형은 제거된다.
도 5를 참조하면, 소비자 쓰레드(308)의 동작이 설명되어 있다. 일반적으로, 소비자 쓰레드(308)는 디스플레이 버퍼(304) 및 갱신 어레이(316)의 내용들을 복제하고(단계 510); 디스플레이에 대한 변화들을 추출하고(단계 520); 디스플레이에 대한 변화량을 결정하고(단계 530); 디스플레이 갱신 프레임을 생성하고(단계 540); 선택적으로 디스플레이 갱신 프레임을 손실이 많게 압축하고(단계 550); 디스플레이 갱신 프레임의 크기를 계산하고(단계 560); 디스플레이 갱신 프레임을 변환기에 전달하고(단계 570); 갱신들을 원격 디스플레이 유닛(110)에 전송하는데 필요로 되는 시간을 계산하고(단계 580); 소정의 시간 동안 소비자 쓰레드의 동작을 중단시킴으로써(단계 590) 주기적으로 디스플레이 갱신 프레임을 발생시켜서 이를 원격 디스플레이 유닛(110)에 전송한다.
더 상세하게는, 그리고 도 5를 계속해서 참조하면, 복제 모듈(324)은 동적으 로 결정되는 시간 기간의 만료 시에, 버퍼(304) 및 갱신 어레이(316)의 내용들을 복제한다(단계 510). 즉, 소비자 쓰레드(308)는 버퍼(304) 및 갱신 어레이(316)의 "스냅 샷(snap shot)"을 취한다. 일단 스냅 샷이 취해지면, 애플리케이션 프로그래밍 쓰레드들(316)은 소비자 쓰레드(308)의 동작과 관계없이 자신에 대한 부가적인 변화들을 만들기 위하여 버퍼(304) 및 디스플레이 갱신 영역(316)에 지속적으로 기록된다. 그러므로, 버퍼(304)는 가장 최신의 디스플레이 정보를 갖는다.
스냅 샷으로부터, 소비자 쓰레드는 전형적으로 복잡한 비트맵 이미지인 버퍼(304) 내용들로부터 디스플레이의 변화를 추출한다(단계 520). 일 실시예에서, 디스플레이의 어떤 에어리어들이 변화되었는지를 결정하기 위하여 경계 사각형들이 사용된다. 또 다른 실시예에서, 이전의 갱신 디스플레이 프레임이 저장되고, 배타적 논리합(XOR)과 같은 논리 연산을 사용하여 현재의 갱신 디스플레이 프레임과 비교된다.
디스플레이 이미지의 변화량은 당업자들에게 공지되어 있는 임의의 수의 다양한 방법들을 사용하여 결정되고(단계 530), 누계를 갱신하기 위하여 누산기 모듈에 전달된다. 일 실시예에서, 영향을 받은 에어리어의 크기가 계산된다. 일 실시예에서, 변화량 정보는 누계를 갱신하는 누산기 모듈(320)에 전송된다.
일 실시예에서, 고 갱신 기간이 발생하고 있는지를 결정하기 위하여 실행 계수(running count)가 사용된다. 버퍼(304)에 대한 갱신들이 발생하지 않는 경우, 누산기 모듈(326)은 소정량 만큼 실행 계수들을 감소시킨다. 실행 계수가 소정의 임계값을 초과하는 경우, 각각의 디스플레이 갱신 프레임은 원격 디스플레이로의 전송 이전에 손실이 있는 압축 기술을 겪게 된다. 고 갱신 기간의 끝을 결정하는 것은 다양한 방식들로 성취될 수 있다. 일 실시예에서, 버퍼(304) 및 갱신 어레이(316)에 대한 변화들이 소정의 시간 기간(예를 들어, 1초) 동안 발생하지 않는 경우, 소비자 쓰레드(308)는 손실이 있는 압축 모드를 빠져나가서 무손실 압축 디스플레이 프레임 갱신들을 원격 디스플레이 유닛(110)에 전송하는 것으로 복귀한다.
디스플레이의 변화량을 결정한 후에, 소비자 쓰레드(308)는 디스플레이 갱신 프레임을 생성한다(단계 540). 그렇게 하는 것이 필요로 되는 경우에, 소비자 쓰레드는 갱신 디스플레이 프레임에 손실이 있는 압축 기술을 적용하여(단계 550), 원격 디스플레이 유닛(110)으로의 전송을 위한 손실이 있는 디스플레이 프레임을 생성한다. 일 실시예에서, 포토그래픽 코덱(photographic code)(예를 들어, 산술적 인코딩을 사용한 JPEG 압축)이 사용된다. 이 유형의 인코딩은 보다 프로세서 집약적이지만, 다른 코덱들(예를 들어, 최적화된 허프만 인코딩을 사용한 JPEG 압축)에 비하여 30 퍼센트만큼 디스플레이 갱신 프레임의 크기를 감소시킬 수 있다. 손실이 있는 압축 알고리즘을 적용하기 전에, 소비자 쓰레드(308)는 손실이 있는 압축 알고리즘을 적용하기 전의 디스플레이 갱신 프레임들을 캐쉬한다. 일단 고 갱신 기간이 종료되면, 캐쉬된 디스플레이 갱신 프레임들은 그 후에 원격 디스플레이 유닛에 전달된다.
일단 디스플레이 갱신 프레임이 구성되면, 소비자 쓰레드(308)는 디스플레이 갱신 프레임의 크기를 결정한다(단계 560). 디스플레이 갱신 프레임은 드라이 버(312)의 변환기 모듈(336)에 전달된다(단계 570). 일 실시예에서, 변환기 모듈(336)은 분산 애플리케이션 프로세싱 시스템(100)의 전송 프로토콜에 따라 디스플레이 갱신 프레임을 변환한다. 변환의 부분으로서, 디스플레이 갱신 프레임의 크기가 사용되어, 디스플레이 갱신 프레임을 원격 디스플레이 유닛(110)으로 전송하는데 필요로 되는 시간을 결정한다.
일 실시예에서, 드라이버 모듈(312)은 네트워크(140)의 이용 가능한 대역폭으로 디스플레이 갱신 프레임의 크기를 분할함으로써 추정된 전송 시간을 계산한다(단계 580). 이 계산은 소비자 쓰레드(308)의 타이머(328)에 의해 사용되는 동적으로 결정되는 시간 기간을 발생시킨다. 변환된 디스플레이 갱신 프레임은 네트워크 인터페이스(164)에 전송되고, 원격 디스플레이 유닛(110)에 전송된다.
디스플레이 갱신 프레임을 전송한 후에, 소비자 쓰레드는 비활성인 채로 유지되고(단계 590), 동적으로 결정되는 시간 기간의 만료까지 중단된다. 동적으로 결정되는 시간 기간의 만료 후에, 소비자 쓰레드는 버퍼(304) 및 갱신 어레이(316)의 또 다른 스냅 샷을 취하여 동일한 프로세스를 수행한다.
요약하면, 그리고 도 6을 참조하면, 원격 디스플레이 유닛(110)에 스크린 갱신들을 전송하는 방법(600)은 디스플레이 유닛으로부터 원격으로 위치된 애플리케이션을 실행시키는 컴퓨팅 디바이스의 비디오 버퍼로부터 디스플레이 정보를 복제하여 디스플레이 갱신을 발생시키는 단계(단계 610); 상기 디스플레이 갱신의 크기를 계산하는 단계(단계 620); 상기 컴퓨팅 디바이스 및 디스플레이 유닛을 연결하는 네트워크의 이용 가능한 대역폭의 양을 결정하는 단계(단계 630); 상기 디스플 레이 갱신을 상기 컴퓨팅 디바이스로부터 상기 디스플레이 유닛으로 전달하는데 필요로 되는 시간 기간을 계산하는 단계(단계 640); 상기 디스플레이 갱신을 디스플레이에 전송하는 단계(단계 650); 및 상기 계산된 시간 기간이 경과될 때 상기 방법을 반복하는 단계(단계 660)를 포함한다.
본 발명이 특정한 세부사항들과 관련하여 설명되었을지라도, 이와 같은 세부사항들이 첨부된 청구항들에 포함되는 정도까지를 제외하고는 본 발명의 범위를 국한하는 것으로서 해석되지 않아야 한다.

Claims (19)

  1. 원격 디스플레이 유닛을 갱신하는 방법에 있어서:
    (a) 디스플레이 갱신(a display update)을 발생시키기 위해, 상기 디스플레이 유닛으로부터 원격으로 위치된 애플리케이션을 실행시키는 컴퓨팅 디바이스의 비디오 버퍼로부터 디스플레이 정보를 복제하는 단계;
    (b) 상기 디스플레이 갱신의 크기를 계산하는 단계;
    (c) 상기 컴퓨팅 디바이스 및 디스플레이 유닛을 연결하는 네트워크의 이용 가능한 대역폭의 양을 결정하는 단계;
    (d) 상기 컴퓨팅 디바이스로부터 상기 디스플레이 유닛으로 상기 디스플레이 갱신을 통신하는데 필요한 시간 기간을 계산하는 단계;
    (e) 상기 디스플레이 갱신을 상기 디스플레이에 전송하는 단계; 및
    (f) 상기 시간 기간이 경과한 후에 상기 단계들 (a)-(e)을 반복하는 단계를 포함하는 원격 디스플레이 유닛 갱신 방법.
  2. 제1 항에 있어서,
    상기 단계들 (b)-(e) 중 적어도 하나 동안 상기 애플리케이션에 의해 디스플레이 정보를 상기 비디오 버퍼에 기록하는 단계를 더 포함하는 원격 디스플레이 유닛 갱신 방법.
  3. 제1 항에 있어서,
    상기 디스플레이 갱신의 부분으로서 상기 비디오 버퍼의 변화 영역을 나타내는 적어도 하나의 경계 사각형을 발생시키는 단계를 더 포함하는 원격 디스플레이 유닛 갱신 방법.
  4. 제1 항에 있어서,
    고 갱신 기간(high update period)이 존재하는지를 결정하기 위해 상기 비디오 버퍼에 대한 변화량을 추적하는 단계를 더 포함하는 원격 디스플레이 유닛 갱신 방법.
  5. 제1 항에 있어서,
    손실이 있는 디스플레이 갱신(a lossy display update)을 생성하기 위해 고 갱신 기간 동안 상기 디스플레이 갱신에 손실이 있는 압축 알고리즘(a lossy compression algorithm)을 적용하는 단계를 더 포함하는 원격 디스플레이 유닛 갱신 방법.
  6. 제5 항에 있어서,
    상기 전송 단계는 상기 손실이 있는 디스플레이 갱신을 상기 디스플레이에 전송하는 단계를 포함하는 원격 디스플레이 유닛 갱신 방법.
  7. 제6 항에 있어서,
    상기 고 갱신 기간 이후에 상기 손실이 있는 디스플레이 갱신을 교체하기 위해 손실 없는 디스플레이 갱신(a lossless display update)을 전송하는 단계를 더 포함하는 원격 디스플레이 유닛 갱신 방법.
  8. 컴퓨팅 시스템으로부터 원격으로 위치된 디스플레이 유닛을 갱신하는 시스템에 있어서:
    상기 컴퓨터 시스템상에서 실행되는 애플리케이션 프로그램의 그래픽 출력을 나타내는 디스플레이 데이터를 저장하는 비디오 버퍼;
    상기 컴퓨팅 시스템 및 원격 디스플레이 유닛 사이의 네트워크의 특성을 결정하고 네트워크 가용성에 관한 신호를 전송하는 드라이버; 및
    상기 신호를 수신하고 상기 비디오 버퍼에 저장된 데이터에 대응하여 원격 디스플레이로의 통신을 위한 디스플레이 갱신을 생성하는 쓰레드
    를 포함하는 디스플레이 유닛 갱신 시스템.
  9. 제8 항에 있어서,
    상기 네트워크 가용성에 관한 신호는 동적으로 결정되는 시간 기간을 포함하는 디스플레이 유닛 갱신 시스템.
  10. 제8 항에 있어서,
    상기 비디오 버퍼와 통신하고 경계 사각형 정보를 저장하는 갱신 영역을 더 포함하는 디스플레이 유닛 갱신 시스템.
  11. 제8 항에 있어서,
    상기 비디오 버퍼에 대해 행해진 변화의 양을 추적하는 누산기를 더 포함하는 디스플레이 유닛 갱신 시스템.
  12. 제11 항에 있어서,
    상기 드라이버와 통신하여, 상기 누산기가 소정의 임계값에 도달할 때 상기 디스플레이 갱신을 상기 원격 디스플레이 유닛에 전송하기 전에 상기 디스플레이 갱신을 압축하는 압축기를 더 포함하는 디스플레이 유닛 갱신 시스템.
  13. 제8 항에 있어서,
    상기 쓰레드와 통신하여 상기 동적으로 결정되는 시간 기간을 실행시키고 로컬 비디오 버퍼를 복제하도록 상기 쓰레드에 시그널링하는 타이머 모듈을 더 포함하는 디스플레이 유닛 갱신 시스템.
  14. 컴퓨팅 시스템으로부터 원격으로 위치된 디스플레이 유닛을 갱신하는 시스템에 있어서:
    상기 컴퓨터 시스템상에서 실행되는 애플리케이션 프로그램의 그래픽 출력을 나타내는 디스플레이 데이터를 저장하는 버퍼링 수단;
    네트워크와 통신하여 상기 네트워크의 특성을 결정하고, 네트워크 가용성에 관한 신호를 전송하는 구동 수단; 및
    상기 신호를 수신하고, 상기 버퍼링 수단에 저장된 데이터에 대응하여 상기 원격 디스플레이 유닛으로의 통신을 위해 디스플레이 갱신을 생성하는 쓰레드 수단을 포함하는 디스플레이 유닛 갱신 시스템.
  15. 제14 항에 있어서,
    적어도 하나의 경계 사각형을 저장하고 상기 버퍼링 수단과 통신하는 저장 수단을 더 포함하는 디스플레이 유닛 갱신 시스템.
  16. 제14 항에 있어서,
    상기 원격 디스플레이 유닛으로 상기 디스플레이 갱신을 통신하기에 앞서서, 상기 디스플레이 갱신의 크기를 감소시키기 위해 고 갱신 기간 동안 손실이 있는 압축 알고리즘을 적용하기 위한 압축 수단을 더 포함하는 디스플레이 유닛 갱신 시스템.
  17. 제16 항에 있어서,
    상기 손실이 있는 압축 알고리즘의 적용 이전에 상기 디스플레이 유닛을 캐싱하는 캐쉬 수단을 더 포함하는 디스플레이 유닛 갱신 시스템.
  18. 제14 항에 있어서,
    상기 시스템이 고 갱신 기간에 있는지를 결정하기 위해 상기 버퍼링 수단에 대한 갱신의 양을 추적하기 위한 누산 수단을 더 포함하는 디스플레이 유닛 갱신 시스템.
  19. 제14 항에 있어서,
    상기 신호를 수신하는 상기 쓰레드 수단에 대응하여 동적으로 결정되는 시간 기간을 실행시키는 타이밍 수단을 더 포함하는 디스플레이 유닛 갱신 시스템.
KR1020077021111A 2005-03-14 2006-03-14 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치 KR20070120108A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/906,954 2005-03-14
US10/906,954 US8171169B2 (en) 2005-03-14 2005-03-14 Method and apparatus for updating a graphical display in a distributed processing environment

Publications (1)

Publication Number Publication Date
KR20070120108A true KR20070120108A (ko) 2007-12-21

Family

ID=36972457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077021111A KR20070120108A (ko) 2005-03-14 2006-03-14 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치

Country Status (8)

Country Link
US (2) US8171169B2 (ko)
EP (2) EP2267975B1 (ko)
JP (1) JP2008539449A (ko)
KR (1) KR20070120108A (ko)
AU (1) AU2006223048A1 (ko)
CA (1) CA2601036A1 (ko)
IL (1) IL185941A0 (ko)
WO (1) WO2006099442A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
TWI295438B (en) * 2005-05-11 2008-04-01 Newsoft Technology Corp Method, system and receiving apparatus for transmitting screen frame from one to many terminals
US8345768B1 (en) * 2005-07-28 2013-01-01 Teradici Corporation Progressive block encoding using region analysis
US8073941B2 (en) 2006-05-25 2011-12-06 AppToU Technologies Ltd. Method and system for providing remote access to applications
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
CN101216808A (zh) * 2007-01-04 2008-07-09 联想(北京)有限公司 播放系统和方法
US8681811B2 (en) * 2008-02-27 2014-03-25 Ncomputing Inc. System and method for obtaining cross compatibility with a plurality of thin-client platforms
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
CN101645004A (zh) * 2008-08-04 2010-02-10 优诺威讯国际有限公司 视窗显示的方法
US8307086B2 (en) * 2008-08-19 2012-11-06 Facebook, Inc. Resource management of social network applications
US8549093B2 (en) * 2008-09-23 2013-10-01 Strategic Technology Partners, LLC Updating a user session in a mach-derived system environment
US8180905B2 (en) * 2008-12-09 2012-05-15 Microsoft Corporation User-mode based remote desktop protocol (RDP) encoding architecture
US9665383B2 (en) * 2008-12-30 2017-05-30 Sharp Laboratories Of America, Inc. Methods and systems for interacting with an imaging device
JP5353381B2 (ja) * 2009-03-31 2013-11-27 日本電気株式会社 サーバクライアントシステム、サーバ、端末、制御方法、及びプログラム
US8732749B2 (en) 2009-04-16 2014-05-20 Guest Tek Interactive Entertainment Ltd. Virtual desktop services
JP5402415B2 (ja) * 2009-09-02 2014-01-29 カシオ計算機株式会社 画像送信装置及びプログラム
US9229734B2 (en) 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
JP5471794B2 (ja) * 2010-05-10 2014-04-16 富士通株式会社 情報処理装置、画像送信プログラム及び画像表示方法
US9003455B2 (en) 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
JP5259683B2 (ja) * 2010-11-19 2013-08-07 株式会社東芝 サーバ装置及びプログラム
JP5664289B2 (ja) 2011-01-31 2015-02-04 富士通株式会社 情報処理装置、画像送信プログラムおよび画像表示方法
GB2491165A (en) 2011-05-26 2012-11-28 Realvnc Ltd Mobile device having a priority adjusting thread for link wi th remote terminal
JP5899897B2 (ja) * 2011-12-20 2016-04-06 富士通株式会社 情報処理装置、情報処理方法及びプログラム
EP2821920A4 (en) * 2012-03-02 2015-03-25 Fujitsu Ltd IMAGE TRANSMISSION METHOD, PROGRAM, AND DEVICE
CN102984552B (zh) * 2012-10-23 2016-06-22 深圳市深信服电子科技有限公司 基于远程应用的流量控制方法及装置
JP5821927B2 (ja) * 2013-10-25 2015-11-24 カシオ計算機株式会社 画像処理装置及びプログラム
US9842422B1 (en) * 2014-02-18 2017-12-12 Google Inc. Methods, systems, and media for presenting interstitial animations
JP2015191630A (ja) * 2014-03-28 2015-11-02 富士通株式会社 情報処理装置、変更検出方法および変更検出プログラム
US10102664B1 (en) * 2014-12-03 2018-10-16 Charles Schwab & Co., Inc. System and method for causing graphical information to be rendered
US9456181B2 (en) 2015-02-04 2016-09-27 Citrix Systems, Inc. Smart selection of video feeds during an online meeting
US10572460B2 (en) * 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9912957B1 (en) 2017-04-01 2018-03-06 Intel Corporation Lossless compression for multisample render targets alongside fragment compression
US11824785B2 (en) 2018-05-04 2023-11-21 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US11138026B2 (en) * 2018-05-04 2021-10-05 Citrix Systems, Inc. Systems and methods for remote computing session display based upon user input event prioritization
US11017748B2 (en) * 2018-08-20 2021-05-25 Red Hat, Inc. Copy-on-write (COW) rendering of graphical object models
CN109213560B (zh) * 2018-09-12 2020-11-27 南京尚网网络科技有限公司 一种资讯页面展示的方法及设备

Family Cites Families (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3596257A (en) * 1969-09-17 1971-07-27 Burroughs Corp Method and apparatus for allocating small memory spaces to a computer program
US4013828A (en) * 1976-02-20 1977-03-22 Bell Telephone Laboratories, Incorporated Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image
US4410916A (en) 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
DE2939411C2 (de) * 1979-09-28 1982-09-02 Siemens AG, 1000 Berlin und 8000 München Datenverarbeitungsanlage mit virtueller Speicheradressierung
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4562423A (en) 1981-10-15 1985-12-31 Codex Corporation Data compression
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4430712A (en) * 1981-11-27 1984-02-07 Storage Technology Corporation Adaptive domain partitioning of cache memory space
USRE32632E (en) * 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
US4499499A (en) * 1982-12-29 1985-02-12 International Business Machines Corporation Method for identification and compression of facsimile symbols in text processing systems
US4545016A (en) 1983-01-07 1985-10-01 Tandy Corporation Memory management system
EP0124799B1 (en) 1983-04-13 1990-10-31 Nec Corporation Memory access arrangement in a data processing system
JP2785821B2 (ja) 1983-10-07 1998-08-13 ソニー株式会社 デイジタル信号発生回路
US4796003A (en) * 1984-06-28 1989-01-03 American Telephone And Telegraph Company Data compaction
GB2172127B (en) 1985-03-06 1988-10-12 Ferranti Plc Data compression system
JPS62282328A (ja) 1986-02-21 1987-12-08 Hitachi Ltd 多重画面制御方式
US4899149A (en) * 1986-02-28 1990-02-06 Gary Kahan Method of and apparatus for decoding Huffman or variable-length coees
US4862392A (en) 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US4937036A (en) * 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
JP2608400B2 (ja) * 1986-06-16 1997-05-07 富士写真フイルム株式会社 圧縮処理を経た画像データからの画像再構成方法
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4992954A (en) * 1987-08-05 1991-02-12 Hitachi, Ltd. Method of storing character patterns and character pattern utilization system
US4928247A (en) * 1987-08-13 1990-05-22 Digital Equipment Corporation Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures
US4903218A (en) * 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US4870662A (en) 1987-12-01 1989-09-26 Concord Data Systems, Inc. System and method for compressing transmitted or stored data
JPH01246656A (ja) 1988-03-29 1989-10-02 Nec Corp プロセッサ間共有メモリ管理方式
US5103303A (en) * 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
CA1337132C (en) 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
JP2790815B2 (ja) * 1988-08-10 1998-08-27 株式会社リコー 画像データ圧縮方法
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
US5126739A (en) * 1989-01-13 1992-06-30 Stac Electronics Data compression apparatus and method
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
EP0389151A3 (en) * 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
KR930003126B1 (ko) * 1989-04-20 1993-04-19 가부시기가이샤 도시바 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템
US5305440A (en) * 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
DE69032418T2 (de) 1989-09-08 1999-02-25 Digital Equipment Corp Privatspeicher für Fäden in einem multifaden digitalen Datenverarbeitungssystem
JP2805096B2 (ja) 1989-10-31 1998-09-30 ソニー株式会社 ディジタル変調方法及び復調方法
US5119319A (en) * 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5001478A (en) * 1989-12-28 1991-03-19 International Business Machines Corporation Method of encoding compressed data
US5309555A (en) * 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
US5269003A (en) 1990-05-24 1993-12-07 Apple Computer, Inc. Memory architecture for storing twisted pixels
US5049881A (en) 1990-06-18 1991-09-17 Intersecting Concepts, Inc. Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique
EP0463874A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US5051745A (en) 1990-08-21 1991-09-24 Pkware, Inc. String searcher, and compressor using same
JPH0799508B2 (ja) 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5544317A (en) * 1990-11-20 1996-08-06 Berg; David A. Method for continuing transmission of commands for interactive graphics presentation in a computer network
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
US5307456A (en) * 1990-12-04 1994-04-26 Sony Electronics, Inc. Integrated multi-media production and authoring system
US5339411A (en) 1990-12-21 1994-08-16 Pitney Bowes Inc. Method for managing allocation of memory space
EP0493084B1 (en) * 1990-12-26 1997-06-04 Canon Kabushiki Kaisha Multi-media communication apparatus
US5161015A (en) 1990-12-31 1992-11-03 Zenith Electronics Corporation System for peaking a video signal with a control signal representative of the perceptual nature of blocks of video pixels
GB9100732D0 (en) 1991-01-14 1991-02-27 Xerox Corp A data access system
US5317732A (en) * 1991-04-26 1994-05-31 Commodore Electronics Limited System for relocating a multimedia presentation on a different platform by extracting a resource map in order to remap and relocate resources
US5164727A (en) 1991-04-30 1992-11-17 Regents Of The Unversity Of California Optimal decoding method and apparatus for data acquisition applications of sigma delta modulators
US5359712A (en) 1991-05-06 1994-10-25 Apple Computer, Inc. Method and apparatus for transitioning between sequences of digital information
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
US6643656B2 (en) * 1991-07-31 2003-11-04 Richard Esty Peterson Computerized information retrieval system
EP0526064B1 (en) * 1991-08-02 1997-09-10 The Grass Valley Group, Inc. Video editing system operator interface for visualization and interactive control of video material
US5315698A (en) * 1991-08-21 1994-05-24 Digital Equipment Corporation Method and apparatus for varying command length in a computer graphics system
US5321806A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
US5140321A (en) 1991-09-04 1992-08-18 Prime Computer, Inc. Data compression/decompression method and apparatus
CA2083634C (en) * 1991-12-30 1999-01-19 Hung Ping Wong Method and apparatus for mapping page table trees into virtual address space for address translation
GB9205774D0 (en) 1992-03-17 1992-04-29 Int Computers Ltd Computer security system
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
WO1994002898A1 (en) 1992-07-24 1994-02-03 Microsoft Corporation Computer method and system for allocating and freeing memory
US5404316A (en) * 1992-08-03 1995-04-04 Spectra Group Ltd., Inc. Desktop digital video processing system
JPH0659982A (ja) 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
US5406279A (en) * 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
US5537551A (en) * 1992-11-18 1996-07-16 Denenberg; Jeffrey N. Data compression method for use in a computerized informational and transactional network
US5455576A (en) 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
IL104568A (en) * 1993-01-31 1995-12-31 Age Computational Graphics Ltd Method and system for generating amplified output signals
US5850540A (en) * 1993-07-02 1998-12-15 Sony Corporation Method and apparatus for time-sharing CPU system bus in image generation system
US5521597A (en) * 1993-08-02 1996-05-28 Mircosoft Corporation Data compression for network transport
US5432871A (en) * 1993-08-04 1995-07-11 Universal Systems & Technology, Inc. Systems and methods for interactive image data acquisition and compression
WO1995012165A1 (en) 1993-10-22 1995-05-04 Gestalt Technologies, Incorporated Distributed management in a partitioned memory system
US5384568A (en) * 1993-12-02 1995-01-24 Bell Communications Research, Inc. Data compression
US5515508A (en) * 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
US5461711A (en) 1993-12-22 1995-10-24 Interval Research Corporation Method and system for spatial accessing of time-based information
US5550965A (en) 1993-12-27 1996-08-27 Lucent Technologies Inc. Method and system for operating a data processor to index primary data in real time with iconic table of contents
US5473742A (en) 1994-02-22 1995-12-05 Paragraph International Method and apparatus for representing image data using polynomial approximation method and iterative transformation-reparametrization technique
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5754187A (en) 1994-05-16 1998-05-19 Agfa Division, Bayer Corporation Method for data compression of digital data to produce a scaleable font database
US5734388A (en) 1994-05-16 1998-03-31 Agfa Division, Bayer Corporation Method and apparatus for data compression of digital data to produce a scaleable font database
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
US5572206A (en) 1994-07-06 1996-11-05 Microsoft Corporation Data compression method and system
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
US5566288A (en) 1994-09-02 1996-10-15 Caterpillar Inc. System and method for automatically fitting a B-spline curve to a set of data points
US5802281A (en) * 1994-09-07 1998-09-01 Rsi Systems, Inc. Peripheral audio/video communication system that interfaces with a host computer and determines format of coded audio/video signals
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US5574845A (en) 1994-11-29 1996-11-12 Siemens Corporate Research, Inc. Method and apparatus video data management
US5771383A (en) * 1994-12-27 1998-06-23 International Business Machines Corp. Shared memory support method and apparatus for a microkernel data processing system
US5771034A (en) * 1995-01-23 1998-06-23 Microsoft Corporation Font format
EP0734144A3 (de) 1995-03-20 1999-08-18 Siemens Aktiengesellschaft Verfahren und Anordnung zum Ermitteln der Benutzergebühr in einer Teilnehmereinrichtung
US5621660A (en) 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5651136A (en) * 1995-06-06 1997-07-22 International Business Machines Corporation System and method for increasing cache efficiency through optimized data allocation
US5864711A (en) * 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
US5767849A (en) * 1995-08-18 1998-06-16 International Business Machines Corporation Personality neutral window management subsystem
US5835959A (en) 1995-12-01 1998-11-10 Sand Technology Systems International, Inc. Memory management system and method using dual indexing structures
US5850632A (en) 1995-09-08 1998-12-15 Texas Instruments Incorporated Memory access controller utilizing cache memory to store configuration information
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
US5717879A (en) * 1995-11-03 1998-02-10 Xerox Corporation System for the capture and replay of temporal data representing collaborative activities
US6161126A (en) 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
JPH09233467A (ja) 1996-02-21 1997-09-05 Fujitsu Ltd 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法
US5961588A (en) 1996-02-22 1999-10-05 Alcatel Usa Sourcing, L.P. Handling of commands passed between the server and client stations of a telecommunications system
US5740171A (en) * 1996-03-28 1998-04-14 Cisco Systems, Inc. Address translation mechanism for a high-performance network switch
US5923654A (en) * 1996-04-25 1999-07-13 Compaq Computer Corp. Network switch that includes a plurality of shared packet buffers
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US6034689A (en) * 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US6057857A (en) * 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US6014133A (en) * 1996-06-14 2000-01-11 Seiko Epson Corporation Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method
KR100203266B1 (ko) 1996-07-09 1999-06-15 윤종용 윤곽선복호화장치
US5757925A (en) * 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5918019A (en) * 1996-07-29 1999-06-29 Cisco Technology, Inc. Virtual dial-up protocol for network communication
US5761734A (en) * 1996-08-13 1998-06-02 International Business Machines Corporation Token-based serialisation of instructions in a multiprocessor system
US6052120A (en) * 1996-10-01 2000-04-18 Diamond Multimedia Systems, Inc. Method of operating a portable interactive graphics display tablet and communications systems
US5944791A (en) 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US5931904A (en) 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US5913230A (en) * 1997-01-07 1999-06-15 Richardson; John J. Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US5949975A (en) 1997-03-12 1999-09-07 Microsoft Corp. Method and system for negotiating capabilities when sharing an application program with multiple computer systems
GB2323946B (en) 1997-04-04 2002-04-17 Sony Uk Ltd Database accessing method and apparatus
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US5983190A (en) 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US5877757A (en) * 1997-05-23 1999-03-02 International Business Machines Corporation Method and system for providing user help information in network applications
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US5999950A (en) 1997-08-11 1999-12-07 Webtv Networks, Inc. Japanese text input method using a keyboard with only base kana characters
US5999179A (en) 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US6363511B1 (en) * 1998-03-31 2002-03-26 Stmicroelectronics N.V. Device and method for decoding data streams from storage media
US6253212B1 (en) * 1998-06-23 2001-06-26 Oracle Corporation Method and system for maintaining checkpoint values
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6233226B1 (en) * 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
JP4473455B2 (ja) * 1999-01-12 2010-06-02 富士通株式会社 記録媒体へのアクセスを制御するアクセス制御装置および方法
US6822589B1 (en) * 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6483515B1 (en) 1999-04-09 2002-11-19 Sun Microsystems, Inc. Method and apparatus for displaying data patterns in information systems
US6778346B2 (en) * 2000-03-30 2004-08-17 Sony Corporation Recording and reproducing apparatus and file managing method using the same
US7218784B1 (en) 2000-05-01 2007-05-15 Xerox Corporation Method and apparatus for controlling image quality and compression ratios
US7028025B2 (en) * 2000-05-26 2006-04-11 Citrix Sytems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
JP4332770B2 (ja) * 2000-08-02 2009-09-16 ソニー株式会社 画像処理装置および画像処理方法、並びに記録媒体
US7212726B2 (en) * 2000-09-15 2007-05-01 International Business Machines Corporation System and method of processing MPEG streams for file index insertion
US20030051005A1 (en) * 2001-09-13 2003-03-13 Burch Charles Carroll Apparatus for encapsulating data within a self-defining file and method thereof
US7143046B2 (en) * 2001-12-28 2006-11-28 Lucent Technologies Inc. System and method for compressing a data table using models
US6753870B2 (en) * 2002-01-30 2004-06-22 Sun Microsystems, Inc. Graphics system configured to switch between multiple sample buffer contexts
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US6798362B2 (en) * 2002-10-30 2004-09-28 International Business Machines Corporation Polynomial-time, sequential, adaptive system and method for lossy data compression
JP4305055B2 (ja) * 2003-05-22 2009-07-29 株式会社日立製作所 画像記録装置
CN101095127B (zh) * 2003-06-02 2014-04-09 精工爱普生株式会社 通过网络通告图像显示设备的存在的方法
US7251372B2 (en) * 2004-01-14 2007-07-31 Nec Solutions (America) Inc. Method and system for compressing digitized fingerprint images by a uniform degree of compression
US7656561B2 (en) * 2004-05-31 2010-02-02 Phase One A/S Image compression for rapid high-quality imaging
US7283674B2 (en) * 2004-06-25 2007-10-16 Xerox Corporation Using graphic objects in MFD scan-to-export function
US7570819B2 (en) * 2005-01-28 2009-08-04 Chih-Ta Star Sung Method and apparatus for displaying images with compression mechanism
US20060195464A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Dynamic data delivery

Also Published As

Publication number Publication date
EP2267975A3 (en) 2012-01-18
US20060206820A1 (en) 2006-09-14
EP1859601A1 (en) 2007-11-28
US20120191877A1 (en) 2012-07-26
EP2267975B1 (en) 2018-11-14
AU2006223048A1 (en) 2006-09-21
US8171169B2 (en) 2012-05-01
JP2008539449A (ja) 2008-11-13
IL185941A0 (en) 2008-01-06
WO2006099442A1 (en) 2006-09-21
CA2601036A1 (en) 2006-09-21
EP2267975A2 (en) 2010-12-29

Similar Documents

Publication Publication Date Title
KR20070120108A (ko) 분산 프로세싱 환경에서 그래픽 디스플레이를 갱신하는방법 및 장치
US8677022B2 (en) Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8433747B2 (en) Graphics remoting architecture
EP1285517B1 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
CN102378976A (zh) 使用多个处理器的图像压缩加速
EP1326405B1 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
US20150350295A1 (en) System And Method For Loading Assets During Remote Execution
Liu Principle and Practice of Distributing Low and High Resolution Display Content from One Computer to Many Computers in Stand-alone or Display Wall Configurations
AU2006202293B2 (en) Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid