KR20130093007A - 적응성 화상 렌더링 및 임포스터의 사용 - Google Patents

적응성 화상 렌더링 및 임포스터의 사용 Download PDF

Info

Publication number
KR20130093007A
KR20130093007A KR1020127032287A KR20127032287A KR20130093007A KR 20130093007 A KR20130093007 A KR 20130093007A KR 1020127032287 A KR1020127032287 A KR 1020127032287A KR 20127032287 A KR20127032287 A KR 20127032287A KR 20130093007 A KR20130093007 A KR 20130093007A
Authority
KR
South Korea
Prior art keywords
image
picture
resolution
rendering
rendered
Prior art date
Application number
KR1020127032287A
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 KR20130093007A publication Critical patent/KR20130093007A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

화상 및/또는 화상의 집합은 주위 환경에 적응하고, 경험의 품질에 대한 사용자의 인식을 강화할 수 있는 방식으로 렌더링(rendered)될 수 있다. 화상이 디스플레이되도록 요청될 때, 화상의 렌더링된 버전이 존재하는지 여부에 대해 결정한다. 화상의 렌더링된 버전이 존재하지 않는다면, 임포스터 화상(imposter image)이 디스플레이된다. 임포스터 화상은 임의적인 색상 및/또는 패턴을 포함할 수 있다. 화상의 적절한 렌더링된 버전이 존재한다면, 임포스터 버전 대신에 렌더링된 버전이 디스플레이될 수 있다. 임포스터 또는 렌더링된 화상이 디스플레이되는 동안에, 화상은 검색될 수 있고, 다른 해상도(예를 들면, 연속적으로 더 높은 해상도)로 렌더링될 수 있다. 해상도의 선택은 이용 가능한 전송 대역폭, 디스플레이 속도 또는 다른 고려 사항에 따라 적응될 수 있다.

Description

적응성 화상 렌더링 및 임포스터의 사용{ADAPTIVE IMAGE RENDERING AND USE OF IMPOSTER}
화상은 기반 컨텐츠 소스로부터 렌더링(rendered)된다. 많은 컨텐츠 소스는 화상이 다양한 종류의 해상도 또는 임의로 높은 해상도로 렌더링될 수 있게 한다. 그러나 스크린 상에 화상을 배치하는 것은 긴 시간이 소요될 수 있는데 이는 왜냐하면 화상의 렌더링이 계산 집약적이기 때문이거나, 입/출력(I/O) 응답 시간에 기인하여 네트워크 또는 느린 속도의 지역 저장 장치로부터 화상을 다운로딩하는 데 긴 시간이 소요될 수 있기 때문이다. 그러므로 렌더링은 상당한 양의 시간을 소모할 수 있다. 많은 경우에, 디스플레이될 화상 컨텐츠는 실질적으로 화상의 집합(예를 들면, 화상 검색에 응답하는 많은 화상의 집합)이다. 집합 내의 각각의 화상은 별도로 렌더링되어야 하는 자신의 소스를 갖기 때문에, 화상의 집합을 렌더링하는 데 소요되는 시간은 단일 화상의 렌더링에 비해서 몇 배나 된다.
고품질의 사용자 경험을 제공한다는 관점에서, 일반적으로 화상을 렌더링하는 데 소요되는 시간에 대처하기 위한 두 가지 방법이 존재한다. 한 가지 방법은 화상이 요청되기 전에 그 화상을 사전 렌더링(pre-render)하는 것이다. 이 접근법은 어떤 화상이 요청될 것인지, 어떤 해상도로 요청될 것인지 예측하는 것을 포함한다. 이것은 또한 많은 개수의 사전-렌더링된 화상을 저장하는 것과, 미래의 어느 시점에서 요청되거나 요청되지 않을 렌더링 화상에 대해 계산 리소스를 할애하는 것을 포함한다. 더욱이 사전 렌더링된 화상이 높은 해상도를 갖는다면, -화상을 렌더링하는 데 필요한 지연이 회피된다고 해도- 높은 해상도의 화상을 송신하는 데 소요되는 기간에 의해 지연이 초래될 수 있다. 높은 해상도의 화상 집합이 포함될 때, 또한 이 지연은 몇 배나 증가될 수 있다.
화상을 렌더링하는 데 소요되는 시간을 해결하는 다른 방법은 주문 시(on demand) 화상을 렌더링하는 것과, 화상이 렌더링되는 동안에 사용자에게 대기해야 한다고 알리는 것이다. 이 기법이 사용될 때, 사용자에게 화상이 렌더링되는 동안 대기해야 한다고 알리는 메시지가 제시되거나 화상이 렌더링되는 동안에 기호 또는 애니메이션(예를 들면, 모래 시계에서 모래가 떨어지고 있는 것, 시계에서 시계 바늘이 움직이는 것 등)이 제시될 수 있다. 이 기법은 일반적으로 낮은 품질의 사용자 경험을 초래한다.
몇몇 시스템은 한정된 형태의 사전 렌더링을 이용한다. 예를 들면, 화상은 2가지 형태, 즉 많은 양의 데이터를 포함하는 높은 해상도의 화상 및 매우 낮은 해상도를 갖는 작은 썸네일(thumbnail) 화상으로 저장될 수 있다. 이 접근법의 단점은, 디스플레이 시스템이 낮은 해상도의 썸네일을 제시할 것인지 아니면 높은 해상도의 화상을 제시할 것인지 결정하는 데 시간을 소요하도록 강제함으로써 그것을 전송하거나 디스플레이 상에 드로잉(draw)하는 데 있어서 긴 시간이 소요되게 할 수 있다는 것이다.
기존의 사전 렌더링된 화상의 이용 가능성 및 화상이 송신 및/또는 드로잉될 수 있는 속도를 고려하고, 사전 렌더링된 화상이 이용 불가능한 경우에도 사용자 경험을 향상시키는 방식으로 화상을 렌더링할 수 있다.
화상이 디스플레이될 때, 화상 렌더링 시스템은 렌더링을 실행하고 있는 머신에서 사전 렌더링된 화상이 국부적으로 이용 가능한지 여부를 결정하도록 시도한다. 만약 이용 가능하다면, 그 화상이 표시될 수 있다. 적절한 사전 렌더링된 화상이 이용 불가능하다면, 시스템은 "임포스터(imposter)"로 지칭되는 플레이스홀더(placeholder) 화상을 드로잉한다. 임포스터는 예를 들면, 희미한 색상들일 수 있다. 임포스터의 형상은 그 임포스터가 점점 더 높은 해상도로 명확하게 나타날 화상의 제 1 반복인 것으로 사용자에게 제시될 수 있다. 그러나 임포스터는 기반이 되는 화상으로부터의 임의의 실제적 정보에 기초하지 않을 수 있다. 그러므로 그 임포스터가 더 높은 해상도의 화상을 드로잉하는 데 있어서 초기 단계를 나타낸다는 추측은 단지 착각에 불과하지만, 이것은 사용자 경험을 향상시킨다. 화상의 집합(예를 들면, 화상 검색에 응답된 화상의 집합)이 렌더링될 때, 사전 렌더링된 형태로 이용 불가능한 각각의 화상은 임포스터 화상으로서 표시될 수 있다.
화상을 위해 지정된 위치에 어떤 것이 드로잉되면(드로잉된 항목이 임포스터 또는 낮은 해상도 버전의 실제 화상인지 무관하게), 실제 화상 또는 더 높은 해상도 버전의 화상을 획득하는 프로세스가 진행될 수 있다. 적절한 사전 렌더링된 화상이 국부적으로 이용 불가능하다고 가정하면, 화상 소스(즉, JPEG 파일 등과 같이 렌더링될 화상의 기반 모델을 포함하는 데이터)가 검색될 수 있다. 다음에 화상은 더 높은 해상도로 렌더링될 수 있다. 적용 가능한 경우에, 몇몇 화상이 집합 내에 포함되도록 렌더링될 수 있는데, 이 경우에 집합의 부분이 되는 개별 화상을 검색하고 렌더링하는 프로세스가 동시에 발생할 수 있다. 낮은 해상도의 화상 또는 임포스터를 대체하기 위해 더 높은 해상도의 화상을 렌더링하는 계획의 한 가지 변형은 연속적으로 더 높은 해상도 화상을 렌더링하고 드로잉함으로써, 화상을 더 높은 초점으로 보이게 하는 프로세스를 애니메이션화(animating)하는 것이다. 임포스터 화상이 사용될 때, 임포스터 데이터 내에서 실제 화상 데이터의 양을 증가시키면서 연속적으로 화상을 혼합할 수 있다.
화상을 렌더링하고 드로잉하는 방법은 다양한 리소스의 이용 가능성과 능력을 고려하여 적응할 수 있다. 예를 들면, 몇몇 화상 포맷의 본질은 소정의 해상도로 렌더링하는 빠른 경로를 제공하므로(예를 들면, 화상은 JPEG로부터 256 또는 512화소의 해상도로 빠르게 렌더링될 수 있음), 특정한 포맷에서 화상의 이용 가능성은 특정 해상도를 선택하기 위한 기반으로 사용될 수 있다. 더욱이 화상이 드로잉 및/또는 송신될 수 있는 속도는 화상의 얼마나 많은 상이한 해상도가 드로잉될 수 있는지를 선택하기 위한 기반으로 사용될 수 있다. 예를 들면, 예를 들면, 1초가 경과하는 동안에 30개의 연속적으로 더 높은 해상도를 나타내는 것에 의해 화상에 초점이 잡히게 하는 애니메이션을 원할 수 있다. 그러나 환경의 물리적 능력으로는 화상이 초당 30프레임이 드로잉 및/또는 송신되는 것을 감당할 수 없다면, 시스템은 화상을 렌더링하게 될 해상도에 관한 다른 선택을 할 수 있을 것이다. 반대로, 그 환경이 높은 속도로 화상이 드로잉 및/또는 송신되는 것을 감당할 수 있다고 해도, 이러한 화상의 렌더링은 느릴 것이다. 다시 말해서, 어떤 화상이 렌더링될 것인지 결정할 때에는 드로잉 프로세스(drawing process)의 속도 저하 및 렌더링 프로세스의 속도 저하에 관한 고려 사항이 별개로 고려될 수 있을 것이다.
이 요약은 이하의 상세한 설명에서 추가적으로 설명될 개념의 선택을 단순화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구 대상의 주요 특징 또는 필수적 특징을 식별하도록 의도된 것이 아니고, 청구 대상의 범주를 한정하기 위해 사용되도록 의도된 것도 아니다.
본 발명에 따르면 기존의 사전 렌더링된 화상의 이용 가능성 및 화상이 송신 및/또는 드로잉될 수 있는 속도를 고려하고, 사전 렌더링된 화상이 이용 불가능한 경우에도 사용자 경험을 향상시키는 방식으로 화상을 렌더링할 수 있다.
도 1 및 도 2는 화상이 연속적으로 더 높은 해상도로 렌더링될 수 있는 방법에 관한 예시를 도시하는 블록도.
도 3은 예시적인 화상 집합을 도시하는 블록도.
도 4는 컨텐츠를 렌더링하는 데 사용될 수 있는 예시적인 구성 요소를 도시하는 블록도.
도 5는 화상을 제공하는 예시적인 프로세스를 도시하는 흐름도.
도 6은 본 명세서의 청구 대상에 의해 실행될 수 있는 몇몇 예시적인 적응을 도시하는 블록도.
도 7은 본 명세서에 설명된 청구 대상의 구현과 관련하여 사용될 수 있는 예시적인 구성 요소를 도시하는 블록도.
근래에 화상 컨텐츠는 컴퓨팅에 있어서 훨씬 더 보편화되고 있다. 컴퓨팅의 초기 시대에는, 인간과 컴퓨터 사이의 대화는 일반적으로 텍스트 통신의 형태로 이루어졌다. 현재, 사용자는 화상의 형태로 된 컨텐츠를 기대하게 되었고, 화상의 품질 및 이러한 화상의 전달에 있어서 경험의 품질 모두에 대하여 점차적으로 더 높은 기대치를 갖게 되었다. 전자 우편, 검색 결과, 웹 페이지 등은 일반적으로 화상을 포함하고 사용자는 다양한 종류의 유선 또는 무선 접속을 통해서 또한 데스크탑 컴퓨터로부터 무선 전화기에 이르기까지 많은 종류의 장치에서 이러한 화상이 전달될 것으로 기대한다.
많은 경우에, 화상은 직접적으로 디스플레이될 수 없는 몇몇 종류의 모델로 저장된다. 오히려, 화상은 몇몇 해상도에서 화소로 렌더링되어, 화소들이 디스플레이 장치에 디스플레이될 수 있다. 화상을 렌더링하는 프로세스, 특히 높은 해상도의 화상으로 렌더링하는 프로세스는 화상을 생성하는 데 소요되는 계산의 양 또는 화상의 I/O 동작을 실행하는 데 소요되는 시간의 양에 있어서 비용이 많이 든다고 할 수 있을 것이다. 이러한 화상을 처리하는 데 소요되는 시간의 양은 이러한 화상을 수신하는 사용자 경험을 저하시킨다. 많은 경우에, 렌더링될 화상은 집합(예를 들면, 화상 검색의 검색 결과를 구성하는 화상의 집합)의 부분이므로, 집합을 렌더링하는 데 소요되는 비용은 단일 화상을 렌더링하는 데 소요되는 비용에 비해 몇 배나 더 높아질 것이다.
고품질의 사용자 경험을 제공하는 것에 관해서라면, 렌더링된 화상을 제공하는 것의 문제점을 해결할 많은 방법이 존재한다. 그 중 한 가지 방법은 화상을 사전 렌더링하여, 사용자 요구에 응답하여 화상이 디스플레이될 준비가 되어 있는 것이 있다. 그러나 화상을 사전 렌더링하는 것은, 요청되거나 아예 요청되지 않을 수 있는 화상을 생성하기 위해 많은 양의 계산 리소스 및 저장 용량을 소모한다는 것을 포함하기 때문에 비용 소모가 있다고 할 수 있다. 화상은 다양한 해상도로 요청될 수 있고, 이것은 화상의 사전 렌더링이 어느 화상이 요청될 것인지 예측하는 것뿐만 아니라, 어떤 해상도로 이러한 화상이 요청될 것인지를 예측하는 것을 포함할 수 있다는 것을 의미한다. 더욱이 이용 가능한 화상의 집합은 지속적으로 변경되기 때문에, 화상의 사전 렌더링은 요청될 수 있는 각각의 새로운 화상에 대해 실행되어야 하는 진행 중인 프로세스라고 할 것이다.
추가하여, 사전 렌더링이 화상이 요청된 후 화상을 렌더링하는 데 대기해야 하는 시간의 양이 (사실상 영(zero)까지) 감소한다고 해도, 사전 렌더링은 다른 종류의 시간 비용을 부여할 수 있다. 적은 개수의 상이한 해상도(예를 들면, 저해상도, 중해상도, 고해상도)로만 화상을 렌더링하는 것이 적당할 수 있으므로, 사전 렌더링된 고품질의 화상은 이용 가능한 전송 대역폭의 양 또는 화상이 디스플레이될 장치의 드로잉하는 속도에 부합되지 않을 수 있다. 예를 들어, 화상이 중해상도 및 고해상도로 이용 가능하다면, (응답 시간과 품질의 절충에 있어서) 사용자 경험을 최적화하기 위해 중해상도와 고해상도 사이의 해상도로 화상을 나타내는 것이 이치에 맞을 수 있다. 그러나 이러한 화상이 존재하지 않는다면, 시스템은 중해상도의 화상을 제공하는 것과 고해상도의 화상을 제공하는 것 사이에서 선택해야 할 것이다. 중해상도의 화상을 제공하는 선택은 더 낮은 시각적 품질을 제공함으로써 사용자 경험을 저하시킬 수 있는 반면, 고해상도의 화상을 제공하는 것은 사용자의 장치로 화상을 송신하는 데 소요되는 시간의 양 또는 디스플레이에 그 화상을 드로잉하는 데 소요되는 시간의 양에 있어서 사용자 경험을 저하시킬 것이다. 본 발명의 청구 대상은 단일 화상이 렌더링될 경우 및 화상의 집합이 렌더링될 경우 모두에 적용되기는 하지만, 고품질의 화상을 빠른 속도로 렌더링하는 것에 관련된 문제점은 단일 화상의 경우에 비해서 화상의 집합을 렌더링할 때 몇 배나 증가한다는 점을 유의해야 할 것이다.
본 명세서에 설명된 청구 대상은 고품질의 전체적인 사용자 경험을 제공하기 위해 화상의 제공에 대한 다양한 제한 사항에 적응하는 방식으로 화상이 렌더링될 수 있도록 허용한다. 화상을 제공하는 능력에 대해 존재할 수 있는 제한 사항에 대한 몇몇 예시는, 사전 렌더링된 화상의 이용 가능성(또는 결핍)과, 다른 것에 비해 소정 해상도에서 화상을 렌더링하는 것의 상대적 용이성과, 렌더러로부터 그 화상이 디스플레이될 장치로 화상을 송신하기 위한 대역폭의 이용 가능성과, 디스플레이 장치가 연속적인 화상을 드로잉할 수 있는 속도를 포함한다. 더욱이 임포스터 화상의 사용을 통해서, 본 명세서의 청구 대상은 사전 렌더링된 화상이 즉시 이용 불가능할 때(저해상도의 화상조차도 이용 불가능할 때)에도 화상을 수신하는 경험에 대한 사용자의 인식을 향상시킬 수 있다.
하나 이상의 화상에 대한 요청이 이루어질 때, 본 명세서의 청구 대상에 따라 설계된 시스템은 빠르게 무엇을 제공할 수 있는지 결정하도록 시도한다. 화상에 대한 요청은 직접 사용자 요청의 형태를 취할 수 있다. 또는 다른 예로서, 검색 엔진은 화상 검색 요청에 대해 응답하는 프로세스의 부분으로서 화상을 요청할 수 있다. 또는 다른 예로서, 화상은 웹 페이지에서 참조될 수 있고, 웹 브라우저는 웹 페이지를 처리하는 것의 부분으로서 화상을 요청할 수 있다. 본 명세서의 청구 대상은 화상에 대한 요청이 발생하는 것에 있어서 어떠한 특정한 방식으로도 한정되지 않는다. 저해상도의 사전 렌더링된 화상이 이용 가능한 경우에는, 그 화상이 제공될 수 있다. 저해상도의 화상은 빠르게 송신 및 드로잉될 수 있으므로, 저해상도의 화상을 이용하는 것은 요청에 대한 응답이 매우 빠른 것처럼 보이게 할 수 있다. 그러나 저해상도의 화상이 이용 불가능하다면, 시스템은 임포스터 화상을 제공할 수 있다. 임포스터 화상은 점차 높은 해상도로 화상을 드로잉하는 프로세스의 매우 초기 단계인 것처럼 사용자에게 제시될 수 있는 화상이다. 그러나 임포스터 화상은 단지 화상의 크기와 종횡비에만 기초한 것에 불과할 것이다. 예를 들면, 임포스터 화상은 단지 나중에 렌더링될 도면의 형상 및 크기로 표시된 색상 및 패턴의 얼룩 같은 형상일 것이다. 그러나 임포스터 화상이 도면에 대한 적은 정보에 기초하거나 그 정보에 기초하지 않을 수 있기 때문에, 그것은 매우 빠르게 제공될 수 있으므로 화상 요청에 응답하기 위해 사용될 수 있는 몇몇 컨텐츠를 제공한다. 이러한 빠른 응답은 그 경험에 대한 사용자의 인식을 향상시킬 수 있다.
사용자가 임포스터 화상 또는 저해상도의 화상을 보고 있는 동안에, 시스템은 다른 해상도에서 화상을 획득하는 작업을 할 수 있다. 이러한 화상을 생성하는 데 포함될 수 있는 다양한 작업이 존재한다. 첫 번째로, 기반이 되는 렌더링되지 않은 화상이 지역 또는 원격 소스로부터 배치되어야 할 것이다. 이러한 화상이 배치되면, 어떻게 화상을 렌더링할 것인지에 관한 다양한 결정이 이루어질 수 있다. 예를 들면, 시스템은 연속적으로 더 높은 해상도로 렌더링된 화상을 보여주는 것에 의해 더 높은 해상도로 화상을 드로잉하는 프로세스를 애니메이션화하도록 원할 수 있다. 이 애니메이션이 이루어지는 속도는 화상이 송신될 수 있는 속도, 화상이 스크린 상에 드로잉될 수 있는 속도, 단위 시간 당 이루어질 수 있는 화상의 서로 다른 렌더링의 개수 및 -화상 집합의 경우에- 집합 내에 포함되는 화상의 개수에 의존할 수 있다. 그러므로 시스템은 연속적인 화상에 대하여 해상도를 2배가 되게 하는 것에 의해 화상에 초점이 잡히게 하는 프로세스를 애니메이션화 하도록 원할 수 있다. 그러나 각각의 연속적인 2제곱이 되는 각각의 해상도로 새로운 화상을 렌더링하는 것이 주어진 단위 시간 내에 시스템이 처리할 수 있는 계산 리소스보다 더 많은 화상을 렌더링하는 것 또는 단위 시간 당 통신 및/또는 디스플레이 기술이 처리할 수 있는 것보다 더 많은 화상의 전송 및/또는 리드로잉(redrawing)하는 것을 포함한다면, 그 시스템은 각각의 화상이 이전 화상의 해상도에 대해 4배의 해상도를 갖도록 연속적인 화상을 렌더링하는 것을 선택할 수 있다. 또는 소정의 화상 포맷(예를 들면, JPEG)에서는, 몇몇 해상도가 다른 해상도에 비해 더 빠르게 렌더링될 수 있으므로, -다른 모든 것들이 동일하다면- 시스템이 상이한 해상도로 선택된다고 해도 시스템은 빠르게 렌더링될 수 있는 해상도로 화상을 렌더링하도록 선택할 수 있다.
일반적으로, 본 명세서에 설명된 청구 대상은 단일 화상을 포함하는 임의의 개수의 화상을 표시하는 데 이용될 수 있다. 그러나 일실시예에서, 시스템은 화상 검색 질의에 응답하여 사용자에게 제공되는 복수의 화상 등과 같은 화상의 집합을 렌더링하는 데 이용될 수 있다.
다음으로 도면을 참조하면, 도 1 및 도 2는 화상을 연속적으로 더 높은 해상도로 렌더링할 수 있는 방법에 대한 예시를 나타낸다. 도 1에서, 화상(102)이 요청된다. 화상(102)은 JPEG(Joint Photographic Experts Group) 파일, TIFF(Tagged Image File Format) 파일, 형상을 기하학적으로 표현하는 포맷(예를 들면, VISIO 드로잉 프로그램에 의해 생성된 파일) 등과 같은 몇몇 포맷으로 형성되거나, 임의의 다른 종류의 화상이 될 수 있다. 화상(102)에 대한 요청은 임의의 방식으로 발생될 수 있다. 예를 들면, 사용자가 화상(102)에 대해 명확히 요청하거나, 브라우저가 로딩하도록 시도하는 웹 페이지 내에 화상(102)이 참조되거나, 화상(102)이 검색 질의에 대한 응답으로서 검색 엔진에 의해 리턴(returned)될 수 있다. 상술된 내용은 화상에 대한 요청이 발생될 수 있는 방법에 대한 몇몇 예시에 불과하고, 화상(102)에 대한 요청은 임의의 방식으로 발생할 수 있다.
도 1 및 도 2의 예시에서, 화상(102)의 사전 렌더링된 버전이 이용 불가능한 경우가 존재할 수 있다. 그러므로 임포스터 화상(104)이 표시될 수 있다. 도 1의 예시에서는, 임포스터 화상(104)이 색상을 가질 수 있음에도 불구하고, 다양한 패턴으로 된 사선으로 이루어진 흑백의 얼룩으로 도시되어 있다. 이 예시에서 임포스터 화상(104)은 화상(102)과 동일한 종횡비를 갖는 직사각형이다. 화상(102)의 렌더링된 버전이 이용 불가능하다고 해도, 화상(102)의 메타데이터로부터 화상의 종횡비 또는 형상을 결정할 수 있기 때문에 화상(102)의 종횡비(또는 보다 일반적으로, 화상(102)의 형상)를 탐지하는 것은 가능할 수 있다. 사실상 화상(102)이 즉시 이용 가능하지 않다고 해도, 그 메타데이터는 별도의 위치에서 이용 가능할 수 있다. 그러므로 임포스터 화상(104)이 실제로 화상(102)을 드로잉하는 초기 단계인 것처럼 보이게 하기 위해서, 임포스터 화상(104)은 화상(102)의 종횡비 및 화상(102)이 드로잉될 크기로 렌더링될 수 있다. 화상(102)이 직사각형이 아닌 경우에, 메타데이터는 화상의 형상을 나타낼 수 있고, 이 경우에 임포스터 화상(104)이 화상(102)의 형상 내에 드로잉될 수 있다. (일반적으로, 종횡비는 형상에 대한 특정 종류의 묘사로서, 이것은 직사각형 형상에 적용됨) 극단적인 경우에, 화상(102)의 메타데이터를 획득하는 것도 불가능할 수 있다. 그 경우에, 임포스터 화상(104)은 몇몇 임의적인 종횡비(또는 몇몇 다른 형상)로 드로잉될 수 있다. 몇몇 시스템은 화상을 렌더링하는 동안에, 화상을 수신하는 데 있어서 지연이 있다는 것을 나타내는 몇몇 종류의 메시지를 제공하거나(예를 들면, "요청하신 화상을 검색하는 동안 기다려 주십시오"), 대기 시간 또는 시간의 경과를 나타내는 몇몇 종류의 기호(예를 들면, 모래 시계를 통해 모래가 떨어지는 모양, 회전하는 원형, 시계 모양 등)를 제공한다는 것을 언급하고자 한다. 그러나 임포스터 화상은 이러한 메시지 또는 기호를 포함하지 않을 수 있으므로, 임포스터는 다른 접근법을 실현할 수 있다. 임포스터 화상은 지연에 대해 설명하거나 통지하기보다는 사용자에게 자신이 화상을 수신하기 시작한 것 같은 느낌을 주도록 설계될 수 있다.
임포스터 화상(104)이 드로잉된 후, 사용자는 시스템이 요청된 화상을 드로잉하는 작업을 한다는 것에 만족할 것이다. 그러므로 화상을 획득하고, 화상을 렌더링할 해상도를 결정하고, 그 해상도에서 화상을 렌더링하는 프로세스가 실행될 수 있다. 이러한 프로세스가 실행되는 방법에 대한 예시는 도 4 내지 도 6을 참조하여 이하에 설명되어 있다. 그러나 도 1 및 도 2에 있어서, 하나 이상의 렌더링된 화상이 몇몇 방식으로 획득되는 것으로 가정한다.
이러한 화상 중 첫 번째 것은 렌더링(106)이다. 렌더링(106)은 저해상도에서 화상(102)의 렌더링이다. 설명을 위해서, 실제적으로 저해상도의 화상은 화상이 단지 비교적 적은 개수의 화소로 표현되어 있는 것이긴 하지만, 도 1에서 화상의 저해상도 특징은 화상의 다양한 성분이 점선으로 나타나도록 표시되어 있다. 도 2에서, 렌더링(108)은 더 높은 해상도(화상(106)의 점선보다 더 높은 밀도로 보이는 점선으로 표시됨)에서의 화상(102)을 나타낸다. 연속적으로 더 높은 해상도 버전의 화상(102)이 드로잉될 수 있다. 결국, 연속적인 렌더링은 렌더링(110)처럼 보일 것이고, 이것은 비교적 높은 해상도의 화상(102)(예를 들면, 렌더링이 표시될 디스플레이 장치만큼의 높은 해상도를 가진 화상)으로 보인다. 도 1 및 도 2에서 임포스터 화상(104)으로부터 렌더링(106, 108, 110)으로의 렌더링의 진행은, 화상이 더 높은 해상도 및/또는 더 큰 선명도가 되게 하는 프로세스를 애니메이션화하는 예시라는 것을 유의하라.
도 1 및 도 2는 단일 화상이 임포스터로부터 고해상도의 화상까지 진행되는 것으로서 도시되어 있으나, 렌더링될 화상은 도 3에 도시된 집합(300) 등과 같은 집합의 부분일 수 있다는 것을 유의하라. 집합(300)은 도 3의 예시에서 9개의 렌더링(302, 304, 306, 308, 310, 312, 314, 316, 318)을 포함하는 몇 개의 화상의 집합이다. 확인할 수 있는 바와 같이, 집합(300) 내의 다양한 화상은 상이한 렌더링 단계 및/또는 상이한 이용 가능성을 갖는다. 예를 들면, 렌더링(302)은 중해상도로 표시된다. (다른 화상의) 렌더링(304)은 저해상도로 표시된다. (또 다른 화상의) 렌더링(306)은 고해상도로 표시된다. 렌더링(308-318)은 임포스터 화상을 나타내고, 이것은 대응하는 화상의 렌더링이 이용 불가능하다는 것을 의미한다. 집합(300)은 다양한 방식으로 디스플레이될 수 있다. 일 예시에서, 집합 내의 모든 화상(또는 화상이 이용 불가능하다면 임포스터)은 단일 비트맵(bitmap)으로 렌더링되고, 비트맵이 디스플레이될 수 있다. 예를 들면, 웹 서버는 화상의 집합을 포함하는 단일 페이지를 구성할 수 있고, 사용자의 머신으로 해당 페이지의 비트맵을 전송하여 사용자의 브라우저에 의해 렌더링되게 할 수 있다. 추가적인 화상(또는 더 높은 해상도 버전의 기존 화상)이 이용 가능하게 되면, 브라우저에 의해 현재 표시되고 있는 비트맵을 대체하기 위해서 비트맵이 업데이트되고 브라우저로 재송신될 수 있다. 또는 다른 예로서, 집합 내의 각각의 화상이 별도로 렌더링될 수 있다. 예를 들면, 웹 페이지는 화상에 대한 링크를 포함할 수 있으므로, 브라우저는 그 각각의 URL(Uniform Resource Locators)로부터 1대1로 화상을 획득하고, 페이지 상의 적절한 위치에 각각의 화상을 디스플레이한다. 화상에 대한 링크가 요청될 때, 서버는 어떤 렌더링된 화상이 이용 가능한지에 따라서 임포스터 화상, 저해상도 화상 또는 고해상도 화상을 제공할 수 있다. 개별 화상은 그러한 화상이 이용 가능하게 될 때 더 높은 해상도의 화상으로 업데이트될 수 있다.
도 4는 컨텐츠를 렌더링하는 데 이용될 수 있는 예시적인 시스템(400)의 구성 요소를 도시한다. 시스템(400)은 하나 이상의 화상에 대한 요청(402)을 처리하고, 화상을 획득하고 렌더링하는 프로세스를 관리한다.
요청(402)은 집합 시스템(collection system)에 의해 수신될 수 있다. 집합 시스템(404)은 화상을 인출(fetching)하는 프로세스를 관리하고, 또한 (집합이 디스플레이될 경우에) 복수의 화상을 단일 화상으로 합성하는 프로세스를 관리할 수 있다.
화상 인출 프로세스를 관리하는 집합 시스템(404)의 역할에 있어서, 집합 시스템(404)이 어떤 화상이 제공될 것인지 결정할 때, 집합 시스템(404)은 화상 인출기(image fetcher)(406)를 호출하여 이러한 화상을 획득할 수 있다. 화상 인출기(406)는 원격 화상 소스(408) 및/또는 지역 화상 소스(410)를 포함하는 다양한 소스로부터 화상을 획득할 수 있다. 원격 화상 소스(408)는 화상 인출기(406)가 작동하는 머신 이외의 다른 곳에 위치된 소스이다. 지역 화상 소스(410)는 화상 인출기(406)가 작동하고 있는 머신에 위치된 소스이다. "화상 인출기(406)가 작동하고 있는 머신"을 구성하는 것에 대해서는 다양한 시나리오가 존재한다는 것을 언급하고자 한다. 일 예시로서, 화상 인출기(406)는 화상이 디스플레이되는 머신과 동일한 머신(예를 들면, 사용자의 컴퓨터, 사용자의 스마트폰 등)에서 작동하고, 이 경우에 지역 화상 소스(410)는 해당 컴퓨터, 스마트폰 등에서의 저장 영역일 수 있다. 다른 예시로서, 화상 인출기(406)는 해당 서버에서 디스플레이되지 않을 것이지만, 사용자의 머신에서 디스플레이하기 위해서 사용자의 머신에 있는 브라우저에 원격으로 전달될 화상을 렌더링하는 서버에서 동작한다. 후자의 예시에서, 지역 소스(410)는 화상이 디스플레이될 머신에 위치된 소스라기보다는 화상을 렌더링하는 서버에 있는 소스이다.
지역 및 원격 소스로부터 화상을 검색하는 것에 추가하여, 집합 시스템(404)은 화상 캐시(412)로부터 사전 렌더링된 화상을 검색할 수 있다. 지역 및 원격 화상 소스(408, 410)와 화상 캐시(412) 사이의 차이점은, 화상 캐시(412)가 화상의 렌더링된 버전을 저장하는 반면, 지역 및 원격 화상 소스(408, 410)가 다음에 렌더링되는 화상의 표시를 저장할 수 있다는 것이다. 1회 이상 동일한 화상이 요청될 수 있으므로, 화상 캐시(412)는 몇몇의 이전 요청에 응대하는 것의 부분으로서 렌더링되었을 화상을 저장한다. 그러므로 화상 캐시(412)는 이러한 화상이 다시 사용될 수 있게 함으로써, 화상을 렌더링하는 작업이 이전에 실행되었었다면 그 작업을 회피할 수 있게 한다.
시스템(400)은 또한 화상을 렌더링하는 실제 작업을 실행할 수 있는 렌더러(414)를 포함할 수 있다. 다시 말해서, 소스 화상이 검색되었을 때, 렌더러(414)는 디스플레이될 실제 화소를 생성하기 위해 소스 화상을 이용할 수 있다. 렌더러(414)가 화상을 렌더링하였을 때, 그 화상은 디스플레이(416)로 송신될 수 있다. 추가하여, 화상이 렌더링되었을 때, 렌더러(414)는 화상 캐시(412) 내에 화상을 예치하여, 현재 렌더링된 화상이 나중에 다시 요청될 경우에 그 동일 화상을 나중의 사용을 위해 이용 가능하게 할 수 있다.
화상을 인출하는 프로세스는 복수의 스레드를 이용하여 동시에 발생할 수 있다는 것을 언급하고자 한다. 예를 들어, 집합이 말하자면 20개의 화상을 포함한다면, 집합 시스템(404)은 화상 인출기(406)가 작동하는 20개의 별도의 스레드를 생성하여 그 화상이 동시에 검색될 수 있게 할 수 있다.
도 5는 화상을 제공하는 예시적인 프로세스를 도시한다. 도 5에 관한 설명을 시작하기 전에, 이러한 프로세스가 임의의 시스템에서 실행될 수 있고, 도 1 내지 도 4에 도시된 시나리오로 한정되지 않기는 하지만, 도 5에 포함된 흐름도는 예시로서 도 1 내지 도 4에 도시된 구성 요소를 참조하여 설명된 것임을 언급하고자 한다. 추가하여, 도 5 내의 흐름도는 프로세스의 단계가 블록을 연결하는 선으로 표시된 바와 같이 특정한 순서로 실행되는 예시를 도시하고 있으나, 이러한 도면 내에 도시된 다양한 단계는 임의의 순서 또는 임의의 조합 또는 하부 조합으로 실행될 수 있다.
단계(502)에서, 화상이 요청될 수 있다. 앞서 언급된 바와 같이, 요청은 예를 들면, 직접 사용자 요청을 통한 것, 화상이 검색에 응답하기 때문에 엔진이 화상을 요청하는 경우에 검색 엔진을 통한 것 등과 같은 임의의 방식으로 발생할 수 있다. 단계(504)에서, 요청은 요청을 처리할 구성 요소에 의해 수신될 수 있다. 단계(506)에서, 화상 캐시 내에서 화상의 사전 렌더링된 버전이 이용 가능한지 여부를 결정할 수 있다. 화상이 이용 가능하다면(및/또는 화상이 적절한 해상도로 캐시 내에서 이용 가능한 것으로 확인된다면), 단계(514)에서 렌더링된 화상이 디스플레이될 수 있다. 화상이 이용 불가능하다면, 프로세스는 렌더링된 화상없이 진행된다.
렌더링된 화상없이 진행하기 위해서, 단계(508)에서 임포스터 화상이 디스플레이될 수 있다. 상술된 바와 같이, 임포스터 화상은 기반 화상으로부터 도출되지 않는 색상 및/또는 패턴을 포함하지 않는 화상일 수 있지만, 그 임포스터가 연속적으로 더 높은 해상도로 화상을 렌더링하는 매우 초기 단계라는 인상을 사용자에게 줄 수 있다. 일 예시에서, 임포스터 화상은 기반 화상의 종횡비 및/또는 형상 및 실제 화상이 최종적으로 렌더링될 크기로 드로잉될 수 있다. 그러나 본 발명의 청구 대상은 또한 임포스터 화상이 기반 화상에 관한 정보에 전혀 기초하지 않는(그 종횡비 및/또는 형상에 관한 정보에도 기초하지 않는) 상황을 포함한다.
임포스터 화상이 디스플레이되었을 때, 단계(510)에서 프로세스는 소스로부터 화상을 획득하도록 진행될 수 있다. 예를 들면, 도 4와 관련하여 상술된 바와 같이, 화상 인출기(406)는 원격 화상 소스(408) 및/또는 지역 화상 소스(410)로부터 화상을 획득하기 위해 사용될 수 있다. 또한 상술된 바와 같이, 집합의 부분으로서 렌더링될 몇 개의 화상이 존재할 수 있고, 그에 따라 -예를 들면, 몇 개의 동시적인 스레드에서 화상 인출기를 실행하는 것에 의해서- 이러한 화상을 획득하는 프로세스가 병렬로 실행될 수 있다. 더욱이, 집합 내의 몇몇 화상은 다른 화상이 이용 불가능한 동안에 이용 가능할 수 있다는 것을 언급하고자 한다. 그러므로 도 5의 프로세스에서, 집합 내의 몇몇 화상은 처음에 임포스터로서 디스플레이되는 한편, 다른 화상은 처음에 기반 화상의 렌더링으로서 디스플레이되는 것도 가능하다.
화상이 검색되면, 단계(512)에서 화상은 적절한 해상도로 렌더링될 수 있다. 그 적절성을 이루는 것은 관련 상황에 의존할 수 있다. 시스템이 적절성을 획득할 수 있게 하는 다양한 방식은 본 명세서에 설명된 청구 대상의 적응성 특징을 나타낸다. 예를 들면, 상술된 바와 같이, 화상이 렌더링될 수 있는 속도, 화상이 드로잉될 수 있는 속도, 화상이 그 렌더링 위치로부터 그 디스플레이 위치로 송신될 수 있는 속도 또는 다른 고려 사항에 관한 관심사가 존재할 것이다. 이러한 고려 사항 중 몇몇은 도 6에 도시되어 있고, 그에 관해서 이하에 설명한다.
일반적으로, 적응의 한 가지 종류로는 화상 디스플레이가 실행되는 환경에 대한 적응이 있다(블록(602)). 이러한 환경의 예시는 렌더링되는 화상의 개수(예를 들면, 단일 화상 또는 화상의 집합), 이용 가능한 전송 대역폭, 디스플레이 시스템의 드로잉 속도를 포함한다. 이러한 관심사는 화상을 렌더링할 적절한 해상도를 구성하는 것을 정의할 수 있다. 예를 들면, 상술된 바와 같이, 연속적으로 화상을 드로잉하는 해상도를 각각 2배가 되게 하여 점점 더 높은 해상도로 화상이 나오게 하는 프로세스를 애니메이션화하기를 원할 수 있다. 그러나 충분한 전송 대역폭 또는 드로잉 속도, 또는 충분한 렌더링 대역폭이 존재하지 않는다면, 연속적인 화상이 그 해상도에 있어 단지 2배가 되는 때에도 화상의 해상도 증가를 애니메이션화하는 데 있어서 너무 오랜 시간이 소요될 수 있다. 그러므로 연속적인 화상들 사이에서 그 해상도가 4배 차이가 있도록 선택할 수 있다.
다른 종류의 적응으로는 컨텐츠의 특징에 대한 적응이 있다(블록(604)). 예를 들면, 상술된 바와 같이, 소정 종류의 컨텐츠는 다른 것에 비해서 몇몇 해상도에서 렌더링하는 것이 더 용이할 수 있다-예를 들면, JPEG의 특질은 다른 해상도보다는 256 또는 512화소에서 렌더링하는 것이 더 용이하게 할 수 있음-. 그러므로 특정 해상도에서 컨텐츠 렌더링의 용이성(및/또는 컨텐츠의 다른 특징)은 컨텐츠를 렌더링할 해상도의 선택을 알려줄 수 있다. 화상을 렌더링할 해상도를 선택할 때, 시스템은 어느 해상도가 빠르게 드로잉될 수 있는지에 관한 관심사가 존재하지 않는다면 특정 해상도(예를 들면, 해상도 A)를 선택할 수 있다는 것을 언급하고자 한다. 그러나 특정 해상도에 대한 빠른 경로의 존재는 시스템이 별개의 해상도(예를 들면, 해상도 B)를 선택하게 할 수 있고, 이것은 그 시스템이 다른 경우에 선택하였을 해상도와는 다른 것이다. 다시 말해서 이러한 예시에서, 시스템은 해상도 B를 선택하는데 이것은 그 해상도가 시스템이 달성하고자 시도하는 형상에 기초하여 그 시스템이 선택하였을 해상도이기 때문이 아니라, 시스템은 구체적으로 빠른 경로의 이용 가능성에 기인하여 해상도 A와는 대조되는 해상도 B를 선택하게 되는 것이다.
다른 형태의 적응으로는 화상 인출 및/또는 렌더링 프로세스를 멀티-스레드화하는 능력이 있다(블록(606)). 상술된 바와 같이, 화상은 집합의 부분일 수 있고, 집합 내의 다양한 화상을 동시에 검색하는 것이 가능할 것이다. 마찬가지로, 검색되었던 화상에서와 같이 렌더링 프로세스를 멀티-스레드화함으로써, 검색된 화상이 동시에 렌더링될 수 있게 하는 것이 가능하다.
도 5로 되돌아가서, (단계(506)에서 결정된 바와 같이 렌더링된 화상이 이미 이용 가능하기 때문에 또는 화상이 요청된 후 화상이 검색 및 렌더링되었기 때문에) 화상이 렌더링되면, 단계(514)에서 렌더링된 화상이 디스플레이될 수 있다. 화상을 디스플레이하는 동작은 스크린 또는 다른 장치 상에 화상의 물리적 디스플레이를 포함할 수 있다. 아니면 화상을 디스플레이하는 동작은 화상의 디스플레이가 다른 장치에서 발생하도록 지시하는 것을 포함할 수 있다(예를 들어, 서버가 화상을 디스플레이하도록 클라이언트 명령어를 전달하면, 이 동작은 서버에 의해 실행되는 디스플레이 단계로서 이해될 수 있음).
단계(516)에서, 렌더링될 추가적인 해상도가 존재하는지 여부를 결정할 수 있다. 상술된 바와 같이, 점차적으로 더 높은 해상도로 화상을 디스플레이하는 프로세스를 애니메이션화하기를 원할 수 있고, 그에 따라 동일 화상에 대한 몇 개의 렌더링이 실행될 수 있다. 이 애니메이션 프로세스를 위해 선택될 수 있는 특정 해상도는 상술된 적절성 고려 사항에 기초하여 선택될 수 있다. 그러나 렌더링할 해상도에 대한 선택이 몇몇 방식으로 이루어졌다고 가정하면(이 경우 렌더링 및 인출 프로세스가 진행되는 동안에 이 선택 그 자체는 변경될 수 있음), 단계(516)에서 렌더링할 화상의 추가적인 해상도가 존재하는지 여부를 결정한다. 그러한 추가 해상도가 존재한다면, 이 프로세스는 단계(512)로 되돌아가서 추가적인 해상도로 화상을 렌더링할 수 있다. 존재하지 않는다면, 화상은 그 최종 해상도로 렌더링된 것이고, 프로세스는 종료될 수 있다.
도 7은 본 명세서에 설명된 청구 대상의 측면을 적용할 수 있는 예시적인 환경을 도시한다.
컴퓨터(700)는 하나 이상의 프로세서(702) 및 하나 이상의 데이터 기억 소자(704)를 포함한다. 프로세서(702)는 전형적으로 개인용 데스크탑 또는 랩탑 컴퓨터, 서버, 휴대형 컴퓨터 또는 다른 종류의 컴퓨팅 장치에서 발견되는 것 등과 같은 마이크로프로세서이다. 데이터 기억 소자(704)는 단기간 또는 장기간동안 데이터를 저장할 수 있는 소자이다. 데이터 기억 소자(704)의 예시는 하드 디스크, 탈착 가능 디스크(광학 및 자기 디스크를 포함함), 휘발성 및 비휘발성 RAM(random-access memory), ROM(read-only memory), 플래시 메모리, 자기 테이프 등을 포함한다. 데이터 기억 소자는 컴퓨터 판독 가능 저장 매체의 예시이다. 컴퓨터(700)는 디스플레이(712)를 포함하거나 연결될 수 있는데, 이 디스플레이는 CRT(cathode ray tube) 모니터, LCD(liquid crystal display) 모니터 또는 임의의 다른 종류의 모니터일 수 있다.
소프트웨어는 데이터 기억 소자(704) 내에 저장될 수 있고, 하나 이상의 프로세서(702)에서 실행될 수 있다. 이러한 소프트웨어의 예시로는 적응성 화상 렌더링 소프트웨어(706)가 있는데, 임의의 종류의 소프트웨어가 사용될 수 있기는 하지만 이 소프트웨어는 도 1 내지 도 6과 관련하여 상술된 몇몇 기능 또는 전체의 기능을 구현할 수 있다. 소프트웨어(706)는 예를 들면, 분산형 시스템, 별도의 파일, 별도의 기능, 별도의 객체, 별도의 코드 라인 내의 소자일 수 있는 하나 이상의 소자를 통해서 구현될 수 있다. 본 명세서에 설명된 청구 대상은 이러한 예시로 한정되지는 않지만, 프로그램이 하드 디스크에 저장되고, RAM으로 로딩되며, 컴퓨터의 프로세서에서 실행되는 컴퓨터(예를 들면, 퍼스널 컴퓨터, 서버 컴퓨터, 휴대형 컴퓨터, 스마트폰, 등)는 도 7에 도시된 시나리오의 예시를 제공한다.
본 명세서에 설명된 청구 대상은 하나 이상의 데이터 기억 소자(704)에 저장되고, 하나 이상의 프로세서(702)에서 실행되는 소프트웨어로 구현될 수 있다. 다른 예로서, 청구 대상은 하나 이상의 컴퓨터 판독 가능 저장 매체에 저장된 명령어로서 구현될 수 있다. 광학 디스크 또는 자기 디스크 등과 같은 실체적 매체는 저장 매체의 예시이다. 명령어는 비 일시적(non-transitory) 매체 상에 존재할 수 있다. 이러한 명령어는 컴퓨터 또는 다른 머신에 의해 실행될 때, 컴퓨터 또는 다른 머신이 방법의 하나 이상의 동작을 실행하게 할 수 있다. 동작을 실행하기 위한 명령어는 하나의 매체에 저장되거나, 복수의 매체에 걸쳐 분산되어, 모든 명령어가 동일한 매체 상에서 발생하게 되는지 여부에 무관하게 그 명령어가 하나 이상의 컴퓨터 판독 가능 저장 매체에서 집합적으로 나타나게 할 수 있다.
추가하여, (도면 내에 도시되었는지 여부에 무관하게) 본 명세서에 설명된 임의의 단계는 방법의 부분으로서 프로세서(예를 들면, 하나 이상의 프로세서(702))에 의해 실행될 수 있다. 그러므로 동작 A, B 및 C가 본 명세서에 설명되었다면, 동작 A, B 및 C를 포함하는 방법이 실행될 수 있다. 더욱이, A, B 및 C의 동작이 본 명세서에 설명되었다면, A, B 및 C의 동작을 실행하는 프로세서를 이용하는 것을 포함하는 방법이 실행될 수 있다.
하나의 예시적인 환경에서, 컴퓨터(700)는 네트워크(708)를 통해 하나 이상의 다른 장치에 대해 통신 가능하게 접속될 수 있다. 컴퓨터(700)와 유사한 구조를 가질 수 있는 컴퓨터(710)는, 다른 종류의 장치도 그와 같이 접속될 수 있기는 하지만, 컴퓨터(700)에 접속될 수 있는 장치의 예시이다.
청구 대상은 구조적 특징 및/또는 방법 단계를 지정하는 내용으로 설명되어 있으나, 첨부된 청구항에 정의된 청구 대상이 상술된 특정 특징 또는 단계로 반드시 한정되지는 않는다는 것을 이해할 것이다. 오히려, 상술된 특정한 특징 및 단계는 청구항을 구현하는 예시적인 형태로서 제시되어 있다.

Claims (15)

  1. 화상을 렌더링하는 방법으로서,
    화상을 렌더링하는 요청을 수신하는 단계와,
    상기 화상을 포함하는 화상 집합의 부분으로서 상기 화상의 렌더링된 버전 또는 임포스터 화상(imposter image)을 제공하는 단계와,
    점차 더 높은 해상도로 상기 화상을 표시하는 프로세스를 애니메이션화(animate)하도록 상기 화상을 렌더링할 복수의 해상도를 결정하는 단계-상기 복수의 해상도는 전송 대역폭, 드로잉 속도(drawing speed) 또는 화상 포맷에 기초하여 결정됨-
    복수의 렌더링된 화상을 생성하기 위해 상기 복수의 해상도로 상기 화상을 렌더링하는 단계와,
    상기 복수의 해상도의 상기 복수의 렌더링된 화상을 제공하는 단계를 포함하는
    화상 렌더링 방법.
  2. 제 1 항에 있어서,
    상기 화상은 형상(shape)을 갖고,
    상기 방법은
    상기 형상을 포함하는 데이터를 검색하는 단계와,
    상기 형상 내에 상기 임포스터 화상을 생성하는 단계를 더 포함하는
    화상 렌더링 방법.
  3. 제 1 항에 있어서,
    상기 복수의 해상도는 상기 화상을 송신하는 데 이용 가능한 전송 대역폭의 양에 기초하여 결정되는
    화상 렌더링 방법.
  4. 제 1 항에 있어서,
    상기 복수의 해상도는 상기 화상이 디스플레이될 장치의 드로잉 속도에 기초하여 결정되는
    화상 렌더링 방법.
  5. 제 1 항에 있어서,
    상기 복수의 해상도는 상기 화상이 저장되는 포맷에 기초하여 결정되는
    화상 렌더링 방법.
  6. 제 5 항에 있어서,
    상기 포맷은 제 1 해상도로 상기 화상을 렌더링할 빠른 경로를 제공하고,
    상기 결정 단계는 이용 가능한 전송 대역폭 또는 드로잉 속도에 기초하여, 상기 제 1 해상도와는 별개의 제 2 해상도를 선택한 다음, 상기 빠른 경로의 이용 가능성에 기초하여 상기 제 2 해상도 대신에 상기 제 1 해상도에서 상기 화상을 렌더링하도록 결정하는
    화상 렌더링 방법.
  7. 제 1 항에 있어서,
    별도의 인출 스레드(fetch threads)를 이용하여 상기 집합 내의 화상을 동시에 인출하는 단계를 더 포함하는
    화상 렌더링 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 상기 방법을 실행하는 컴퓨터 실행 가능 명령어를 구비한 컴퓨터 판독 가능 매체.
  9. 화상을 렌더링하는 시스템으로서,
    프로세서와,
    데이터 기억 소자와,
    상기 데이터 기억 소자 내에 저장된 화상 캐시와,
    상기 시스템에 가까운 지역 소스 및 상기 시스템에 먼 원격 소스로부터 화상을 검색하는 화상 인출기(image fetcher)와,
    상기 프로세서에서 실행되어 화상을 렌더링하려는 요청을 수신하고, 상기 화상 캐시 내에서 상기 화상의 렌더링된 버전이 이용 가능한지 여부를 결정하며, 상기 화상 인출기가 상기 화상을 검색하도록 지시하는 집합 소자-상기 시스템은 상기 화상의 상기 렌더링된 버전이 상기 화상 캐시 내에 존재하지 않을 때 임포스터 화상을 디스플레이하도록 지시함-와,
    상기 화상 인출기에 의해 검색된 상기 화상을 렌더링하고, 상기 화상이 상기 시스템에 의해 디스플레이되게 하거나 상기 화상이 디스플레이될 장치에 제공되게 하는 렌더러(renderer)를 포함하는
    화상 렌더링 시스템.
  10. 제 9 항에 있어서,
    상기 집합 소자는 상기 임포스터 화상이 디스플레이되도록 지시하고,
    상기 화상은 형상을 갖고,
    상기 시스템은 상기 형상대로 상기 임포스터 화상을 생성하는
    화상 렌더링 시스템.
  11. 제 10 항에 있어서,
    상기 형상은 직사각형을 포함하고,
    상기 임포스터 화상은 상기 직사각형의 종횡비를 갖는 직사각형 형상으로 생성되는
    화상 렌더링 시스템.
  12. 제 9 항에 있어서,
    상기 화상의 해상도가 증가하는 것을 애니메이션화하고, 상기 화상을 송신하는 데 이용 가능한 대역폭의 양에 기초하여 상기 화상을 렌더링할 해상도를 선택하는
    화상 렌더링 시스템.
  13. 제 9 항에 있어서,
    상기 화상의 해상도가 증가하는 것을 애니메이션화하고, 상기 장치의 드로잉 속도에 기초하여 상기 화상을 렌더링할 해상도를 선택하는
    화상 렌더링 시스템.
  14. 제 9 항에 있어서,
    상기 화상의 해상도가 증가하는 것을 애니메이션화하고, 상기 화상의 포맷에 기초하여 상기 화상을 렌더링할 해상도를 선택하는
    화상 렌더링 시스템.
  15. 제 14 항에 있어서,
    상기 포맷은 제 1 해상도로 상기 화상을 렌더링하는 경로를 제공하고, 상기 경로는 상기 제 1 해상도와는 별개의 제 2 해상도로 상기 화상을 렌더링하는 경로보다 더 빠르며,
    상기 시스템은 상기 경로의 존재에 기인하여 상기 제 2 해상도 대신에 상기 제 1 해상도를 선택하는
    화상 렌더링 시스템.
KR1020127032287A 2010-06-11 2011-05-25 적응성 화상 렌더링 및 임포스터의 사용 KR20130093007A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/814,418 2010-06-11
US12/814,418 US8446411B2 (en) 2010-06-11 2010-06-11 Adaptive image rendering and use of imposter
PCT/US2011/038008 WO2011156138A2 (en) 2010-06-11 2011-05-25 Adaptive image rendering and use of imposter

Publications (1)

Publication Number Publication Date
KR20130093007A true KR20130093007A (ko) 2013-08-21

Family

ID=45095892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127032287A KR20130093007A (ko) 2010-06-11 2011-05-25 적응성 화상 렌더링 및 임포스터의 사용

Country Status (8)

Country Link
US (1) US8446411B2 (ko)
EP (1) EP2580655A4 (ko)
JP (1) JP2013533540A (ko)
KR (1) KR20130093007A (ko)
CN (1) CN102918492B (ko)
AU (1) AU2011264509B2 (ko)
RU (1) RU2583730C2 (ko)
WO (1) WO2011156138A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100377B2 (en) 2010-12-09 2015-08-04 Fujifilm North America Corporation System and method for providing caching and pre-fetch of assets/media
WO2012101585A1 (en) * 2011-01-28 2012-08-02 Strangeloop Networks, Inc. Prioritized image rendering based on position within a web page
US9897805B2 (en) 2013-06-07 2018-02-20 Sony Interactive Entertainment Inc. Image rendering responsive to user actions in head mounted display
US20150331836A9 (en) * 2011-10-17 2015-11-19 Opera Software Asa Graceful degradation of level-of-detail in document rendering
US8959431B2 (en) * 2012-01-16 2015-02-17 Microsoft Corporation Low resolution placeholder content for document navigation
US20140160148A1 (en) * 2012-12-10 2014-06-12 Andrew J. Barkett Context-Based Image Customization
US10391387B2 (en) * 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9716749B2 (en) 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
JP5750133B2 (ja) * 2013-04-01 2015-07-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、描画処理システム、および描画処理方法
US9934610B2 (en) * 2013-05-31 2018-04-03 Facebook, Inc. Techniques for rendering and caching graphics assets
CN104090709B (zh) * 2014-06-11 2017-11-21 小米科技有限责任公司 图片切换方法和装置
RU2665920C2 (ru) 2014-06-26 2018-09-04 Гугл Инк. Оптимизированный процесс визуализации в браузере
KR102133486B1 (ko) 2014-06-26 2020-07-13 구글 엘엘씨 최적화된 브라우저 렌더링 프로세스
RU2659481C1 (ru) 2014-06-26 2018-07-02 Гугл Инк. Оптимизированная для пакетной обработки архитектура визуализации и выборки
US9832342B2 (en) * 2014-08-22 2017-11-28 Xiaomi Inc. Method and device for transmitting image
US10007840B2 (en) * 2014-12-31 2018-06-26 Alcohol Countermeasure Systems (International) Inc. System for video based face recognition using an adaptive dictionary
CN106445970B (zh) * 2015-08-11 2020-08-21 腾讯科技(深圳)有限公司 一种占位图的加载处理方法和装置
US20180121213A1 (en) * 2016-10-31 2018-05-03 Anthony WL Koo Method apparatus for dynamically reducing application render-to-on screen time in a desktop environment
EP3427664A1 (en) * 2017-07-13 2019-01-16 Koninklijke Philips N.V. A device for scatter correction in an x-ray image and a method for scatter correction in an xray image
US10846042B2 (en) 2018-10-31 2020-11-24 Hewlett Packard Enterprise Development Lp Adaptive rendering for untethered multi-user virtual reality
US11051206B2 (en) 2018-10-31 2021-06-29 Hewlett Packard Enterprise Development Lp Wi-fi optimization for untethered multi-user virtual reality
US11321737B2 (en) * 2019-12-13 2022-05-03 Ebay Inc. Techniques of prefetching operation cost based digital content and digital content with emphasis

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764524A (ja) * 1993-08-26 1995-03-10 Hitachi Eng Co Ltd 画像表示装置
KR20010113670A (ko) 1999-02-17 2001-12-28 케네쓰 올센 다른 속도에서 샘플을 샘플버퍼로 렌더링하고 저장샘플에응답하여 픽셀을 생성하는 그래픽 시스템
JP2001136371A (ja) * 1999-11-05 2001-05-18 Hitachi Kokusai Electric Inc 静止画像通信方法及び静止画像通信システム
US6850235B2 (en) 2000-12-27 2005-02-01 Fly Over Technologies Inc. Efficient image parcel texture rendering with T-junction crack elimination
CA2335385A1 (en) 2001-02-09 2002-08-09 Opengraphics Corporation System and method for optimizing the storage and processing of digital images on a distributed computer network
US20040047519A1 (en) 2002-09-05 2004-03-11 Axs Technologies Dynamic image repurposing apparatus and method
KR100680191B1 (ko) * 2003-09-05 2007-02-08 삼성전자주식회사 감정 있는 에이전트를 갖는 사전 행동적 사용자 인터페이스 시스템
US7616220B2 (en) 2003-12-23 2009-11-10 Intel Corporation Spatio-temporal generation of motion blur
JP4640942B2 (ja) * 2005-03-09 2011-03-02 株式会社リコー サーバ装置
US7725837B2 (en) 2005-03-31 2010-05-25 Microsoft Corporation Digital image browser
US7554539B2 (en) 2005-07-27 2009-06-30 Balfour Technologies Llc System for viewing a collection of oblique imagery in a three or four dimensional virtual scene
JP4714614B2 (ja) * 2006-03-23 2011-06-29 株式会社リコー 画像形成装置、画像表示装置、画像形成方法、画像表示方法、画像表示システム、画像形成プログラム、画像表示プログラム、及び、情報記録媒体
US8224122B2 (en) 2006-12-15 2012-07-17 Microsoft Corporation Dynamic viewing of wide angle images
US7983502B2 (en) 2007-08-06 2011-07-19 Microsoft Corporation Viewing wide angle images using dynamic tone mapping
JP5061306B2 (ja) * 2008-03-31 2012-10-31 Kddi株式会社 クライアント装置、サーバ装置およびボリュームデータ伝送システム
KR101509254B1 (ko) 2008-11-10 2015-04-08 삼성전자주식회사 고해상도 영상 재구성 방법
US8499118B2 (en) * 2009-02-26 2013-07-30 Research In Motion Limited Method, apparatus and system for optimizing image rendering on an electronic device

Also Published As

Publication number Publication date
WO2011156138A2 (en) 2011-12-15
US8446411B2 (en) 2013-05-21
AU2011264509A1 (en) 2012-12-20
EP2580655A4 (en) 2017-11-22
US20110304625A1 (en) 2011-12-15
CN102918492A (zh) 2013-02-06
JP2013533540A (ja) 2013-08-22
RU2583730C2 (ru) 2016-05-10
EP2580655A2 (en) 2013-04-17
WO2011156138A3 (en) 2012-02-16
AU2011264509B2 (en) 2014-04-03
CN102918492B (zh) 2015-09-16
RU2012153243A (ru) 2014-06-20

Similar Documents

Publication Publication Date Title
KR20130093007A (ko) 적응성 화상 렌더링 및 임포스터의 사용
KR102366752B1 (ko) 지도 인터페이스들의 지연시간 단축
US20150142884A1 (en) Image Sharing for Online Collaborations
KR20020007945A (ko) 데이터 통신망을 통한 디지털 확대 이미지 제공방법,디지털 확대 이미지 제공장치
US9699299B1 (en) Messaging including custom characters with embedded content
WO2016066147A2 (zh) 一种用于处理图像的方法与设备
US8994748B2 (en) Anchors for displaying image sprites, sub-regions and 3D images
CN110675465A (zh) 用于生成图像的方法和装置
US20180309817A1 (en) Selective consumption of web page data over a data-limited connection
CN110597773A (zh) 在计算机设备和虚拟现实设备之间共享文件的方法和装置
KR20150106846A (ko) 표시 장치에서의 그래픽 렌더링 및 그와 관련된 개선
CN111381749A (zh) 一种图像显示和处理方法、装置、设备和存储介质
CN111951356A (zh) 基于json数据格式的动画渲染方法
KR101984825B1 (ko) Api 정보를 이용한 클라우드 디스플레이 화면의 부호화 방법 및 그 장치
KR101751807B1 (ko) 이미지 처리 방법 및 그 시스템
CN117201883A (zh) 用于图像编辑的方法、装置、设备和存储介质
Richter et al. Service-based processing and provisioning of image-abstraction techniques
CN109672931B (zh) 用于处理视频帧的方法和装置
CN113282852A (zh) 编辑网页的方法和装置
US9483237B2 (en) Method and system for providing an image effects interface
US11227026B2 (en) Information processing apparatus, web application program non-transitory computer readable recording medium that records, and information processing system
CN112445394B (zh) 一种截图方法和装置
Fregien et al. Service-based Processing of Gigapixel Images
KR20240037555A (ko) 저용량의 더 부드러운 스티커 생성 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
CN114339247A (zh) 视频预览方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee