KR20100119584A - 웹 기반 컨텐츠의 렌더링 가속 - Google Patents

웹 기반 컨텐츠의 렌더링 가속 Download PDF

Info

Publication number
KR20100119584A
KR20100119584A KR1020107022016A KR20107022016A KR20100119584A KR 20100119584 A KR20100119584 A KR 20100119584A KR 1020107022016 A KR1020107022016 A KR 1020107022016A KR 20107022016 A KR20107022016 A KR 20107022016A KR 20100119584 A KR20100119584 A KR 20100119584A
Authority
KR
South Korea
Prior art keywords
content
rendering
page
rendered
determining
Prior art date
Application number
KR1020107022016A
Other languages
English (en)
Other versions
KR101298370B1 (ko
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 KR20100119584A publication Critical patent/KR20100119584A/ko
Application granted granted Critical
Publication of KR101298370B1 publication Critical patent/KR101298370B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents

Abstract

모바일 컴퓨팅 장치에 의한 웹 페이지의 하드웨어 가속된 프레젠테이션을 위한 시스템 및 방법이 제시된다. 복수개 웹 페이지가 레이아웃 엔진, 하드웨어 가속된 그래픽 API(application programming interfaces)를 사용해 웹 페이지를 처리하고 디스플레이할 수 있는 컴퓨팅 장치에 의해 수신될 수 있다. 웹 페이지의 수신시에, 웹 페이지는, 웹 페이지의 스타일시트에 기초해, 복수개 렌더링 계층으로 분리될 수 있다. 알고리즘은 렌더링시에 하드웨어 가속을 이용하기 위해 합성 계층을 수신할 수 있는 복수개 계층을 선택하기 위해 렌더링 계층을 워크스루한다. 웹 페이지는 사실상 나머지 렌더링 계층 및 합성 계층을 사용해 모바일 컴퓨팅 장치의 디스플레이에 제시될 수 있다. 이런 식으로, 웹 컨텐츠의 시각적 표현은, 원래는 레이아웃 엔진을 사용해 설계될 수 없었던 컨텐츠가 디스플레이될 수 있는 경우라 하더라도, 손상되지 않은 상태를 유지한다.

Description

웹 기반 컨텐츠의 렌더링 가속{ACCELERATION OF RENDERING OF WEB-BASED CONTENT}
본 출원은, 그 전체가 여기에 참고로 포함되어 있는, 2008년 3월 4일에 출원된 계류 중인 미국 가출원 제61/033,760호에 대한 우선권을 주장한다.
본 명세서는 웹 기반 컨텐츠의 디스플레이에 관한 것이다.
정보 및 엔터테인먼트와 같은 컨텐츠를 전달하기 위한 컴퓨터의 사용이 증가함에 따라, 그러한 컨텐츠를 디스플레이하도록 설계되는 웹 페이지는, 텍스트 뿐만 아니라 애니메이션 및 비디오를 포함하면서, 시간이 지남에 따라 점점 더 복잡해져 왔다. 웹 개발자의 목적은 이 컨텐츠를 시각적으로 호소력있고 시기적절한 방식으로 표현하는 것일 수 있다. 따라서, 개발자는 웹 페이지를 설계할 때 그러한 컨텐츠의 디스플레이를 어떻게 생성하고 관리할지를 고려할 수 있다.
웹 브라우저의 CSS(Cascading Style Sheets)에 대한 지원이 개선됨에 따라, 웹 개발자는 CSS를 HTML(hypertext markup language)로 기재된 문서의 프레젠테이션을 제어하는데 그것의 컨텐츠와 무관하게 이용할 수 있게 되었다. 웹 페이지 내의 컨텐츠 구성 요소(content element) 각각에는 그 구성 요소의 프레젠테이션을 결정하는 스타일 규칙의 집합(a set of stylistic rules)이 할당될 수 있다. 이런 식으로, 마크업 페이지가 상이한 스타일로 제시될 수 있다.
더 나아가, CSS는 둘 이상의 규칙이 특정 컨텐츠 구성 요소와 정합하는 경우 어떤 스타일 규칙이 적용되는지를 판정하는 우선 순위 방식(priority schemes)을 제공한다. 이 거동을 캐스케이드라고 할 수 있고, 계산되어 규칙에 할당되는 가중치를 이용해 예측 결과(predictable outcomes)를 제공한다. CSS 스타일은 별도 문서로 제공될 수 있거나 마크업 문서에 임베딩될 수 있다. 스타일 시트는 임포트될 수 있고 사용자 선택을 위해 대체 스타일 시트가 지정될 수 있다.
CSS는 웹 페이지에서의 단일 구성 요소의 외관, 예를 들어, 그들의 사이즈와 배경 색상 및 페이지의 다양하고 상이한 구성 요소가 서로에 대해 시각적으로 제시될 수 있는 방법의 양자를 제어하기 위한 다양한 기능을 제공한다. 예를 들어, 상이한 구성 요소의 전향 순서(back-to-front ordering)를 그리고 구성 요소가 그것의 내부에 구성 요소를 클리핑하는지의 여부를 제어하는 특성이 제공될 수 있다. 이들 렌더링 거동은 CSS 명세 사항에 의해 설명될 수 있다.
웹 페이지는 전통적으로 텍스트와 이미지의 정적인 집합(static collections)이었다. 그러나, 컴퓨팅 성능이 증가하였고 브라우저 기술이 개선되었으므로, 웹 페이지 설계자는, JavaScript를 통해서나 플러그-인을 사용하는 것에 의해, 애니메이션된 컨텐츠를 웹 페이지에 빈번하게 사용하고 있다. 그러나, 애니메이션 성능은, 애니메이션이 실행됨에 따라, 웹 페이지의, 위치를 재산정하고 모든 구성 요소를 리드로잉(redrawing)하는 것과 연관된 오버헤드 때문에 여전히 제한적이다. 이것은, 제한된 컴퓨팅 능력을 가진 모바일 컴퓨팅 장치에서 실행될 때 특히 사실일 수 있다.
따라서, 웹 브라우저는 애니메이션된 웹 페이지 컨텐츠의 프레젠테이션에 하드웨어 가속을 사용할 것을 선택할 수 있고, 그에 의해 웹 페이지의 소정 컨텐츠 구성 요소는 하드웨어 텍스처로 렌더링된 다음 모바일 컴퓨팅 장치의 그래픽 처리 유닛을 통해 이동되고 합성될 수 있다. 그러나, 하드웨어를 통해 소정 페이지 구성 요소를 렌더링하는 것은 반드시 페이지의 시각적 프레젠테이션을 변경해야 할 수 있고; 그들 구성 요소는 비(non) 하드웨어 렌더링된 컨텐츠의 상단에 제시될 수 있으므로 레이아웃 엔진이 CSS 명세 사항에서 설명되는 프레젠테이션 규칙을 위반하게 할 수 있다.
발명의 예시적 실시예가 다음 설명에서 좀더 상세하게 설명될 수 있고 다음 도면에서 예시된다.
도 1은 웹 페이지의 하드웨어 가속된 디스플레이를 수행할 수 있는 모바일 컴퓨팅 장치의 일 실시예를 나타낸 도면.
도 2는 렌더링 아티팩트의 디스플레이를 사실상 방지하는 렌더링 프로세스의 일 실시예를 나타낸 도면.
도 3a 내지 도 3c는 웹 페이지, 및 웹 페이지의 스타일시트를 사용한 문서 프레젠테이션 및 컨텐츠로의 해체를 나타낸 도면.
도 4는 도 1의 모바일 컴퓨팅 장치에 의해 수신되는 웹 페이지를 위한 렌더링 계층의 일 실시예를 나타낸 도면.
도 5a는 모바일 장치의 예시적 실시예를 나타낸 도면.
도 5b는 모바일 장치의 구성 가능한 최상위 레벨 그래픽 사용자 인터페이스의 예시적 실시예를 나타낸 도면.
도 6은 모바일 장치의 예시적 구현에 대한 블록도.
지금 개시되는 실시예는 모바일 컴퓨팅 장치에 의한 웹 페이지의 하드웨어 가속된 렌더링을 위한 시스템 및 방법에 관한 것일 수 있다. 복수개 웹 페이지가, 하드웨어 가속된 그래픽 API(application programming interfaces)를 사용해 웹 페이지를 처리하고 디스플레이할 수 있는 모바일 컴퓨팅 장치에 의해 수신될 수 있다. 웹 페이지의 수신시에, 장치는 웹 컨텐츠를 복수개 렌더링 계층으로 분리한다. 렌더링 계층은 웹 페이지의 실제 디스플레이를 판정하는데 이용될 수 있는데, 웹 페이지의 실제 디스플레이는 웹 페이지의 스타일시트에 기초한 그들의 의도된 디스플레이와 비교될 수 있다. 실제 디스플레이와 의도된 디스플레이 사이의 상당한 편차가 판정될 수 있고 이들 편차를 사실상 최소화하기 위한 알고리즘이 이용될 수 있다. 일 실시예에서, 알고리즘은 하드웨어-지원 계층을 수신하기 위한 복수개 렌더링 계층의 일부를 선택하여, 선택된 계층이 렌더링시에 하드웨어-가속되게 한다. 이런 식으로, 페이지 구성 요소의 하위 집합은 하드웨어로 애니메이션될 수 있는 한편, 웹 페이지의 시각적 표현은 계속해서 명세 사항을 준수할 수 있다.
바람직스럽게도, 알고리즘은 웹 페이지 컨텐츠 뿐만 아니라 웹 페이지를 렌더링하는 시점의 모바일 컴퓨팅 장치의 상태에도 적응될 수 있다. 알고리즘의 선택은 웹 페이지 컨텐츠의 상대적 배치, 웹 페이지 컨텐츠의 원하는 렌더링 순서, 웹 페이지 구성 요소가 서로 중첩하는 여부, 웹 페이지 컨텐츠에 의해 표현되는 요청된 애니메이션 효과, 이용 가능한 프로세싱 리소스, 및 메모리를 포함하지만, 그것으로 제한되는 것은 아닌, 팩터에 기초할 수 있다. 이들 및 다른 이점은 다음에서 상세하게 논의된다.
여기에서 제시되는 프로세스는 순차적 동작의 관점으로 설명될 수 있지만; 일부 동작은 상이한 순서로 수행될 수 있다는 것을 알 수 있을 것이다. 더 나아가, 일부 동작은, 순차적으로가 아니라, 병렬로 수행될 수 있다. 더 나아가, 일부 동작은, 필요에 따라, 누락될 수 있다.
실시예는, 유사한 숫자가 전체에 걸쳐 유사한 구성 요소를 의미하는 첨부 도면을 참조하여 설명될 수 있다. 여기에서 제시되는 설명에 사용되는 용어는 결코 제한적이거나 한정적인 방식으로 해석되어서는 안되는데, 단순히 그것이 소정 실시예의 상세한 설명과 관련하여 이용될 수 있기 때문이다. 더 나아가, 개시된 실시예는 몇가지 신규한 특성을 포함할 수 있는데, 그것 중 어떤 하나도 단독으로는 그것의 바람직한 속성을 전적으로 책임지거나 여기에서 개시되는 발명을 실시하는데 필수적일 수 없다.
도 1은 웹 페이지(106)를 수신하고 디스플레이하도록 구성되는 모바일 컴퓨팅 장치(100)의 일 실시예를 예시한다. 장치(100)는 웹 페이지(106)를 분석하고 웹 페이지(106)를 렌더링하기 위한 명령어를 발생시키도록 구성되는 복수개의 소프트웨어 애플리케이션(102)을 포함할 수 있다. 장치(100)는 발생된 명령어를 실행하고 장치(100)의 사용자에게 웹 페이지(106)를 디스플레이하기 위한 하드웨어(104)를 더 포함할 수 있다. 모바일 컴퓨팅 장치(100)는 웹 컨텐츠를 렌더링하고 디스플레이할 수 있는, 컴퓨터, 모바일 장치, PDA 등과 같은, 임의의 장치일 수 있다.
모바일 컴퓨팅 장치(100)는 모바일 컴퓨팅 장치(100)에 복수개의 웹 페이지(106)를 전달하는 네트워크(112)와 통신 중일 수 있다. 네트워크(112)는 LAN(Local Area Networks), WAN(Wide Area Networks), 인트라넷, 익스트라넷, 및 인터넷을 포함할 수 있다. 네트워크(112)는 추가적으로 유선 통신 메커니즘, 무선 통신 메커니즘, 및 그것에 관한 조합을 사용해 구현될 수 있다. 소정 실시예에서, 모바일 컴퓨팅 장치(100)는 Apple iPhonesTM일 수 있거나 이를 포함할 수 있다.
모바일 컴퓨팅 장치(100)에 의해 수신될 때, 웹 페이지(106)는 웹 브라우저를 위한 레이아웃 엔진(116)에 제공될 수 있다. 레이아웃 엔진(116)은 웹 페이지(106)를 구성 요소로 파싱하고 스타일을 고려하여 그들 구성 요소의 시각적 프레젠테이션을 계산하기 위한 그리고 그들 구성 요소를 모바일 컴퓨팅 장치(100)에 렌더링하기 위한 복수개의 장비를 포함할 수 있다. 렌더링은 하드웨어(104)에 의해 2차원 및 3차원 컴퓨터 그래픽을 디스플레이하는데 사용될 수 있는 명령어를 발생시키는 복수개의 그래픽 API를 통해 수행될 수 있다. 일 실시예에서, 하나 이상의 그래픽 API는 OpenGL(122)일 수 있다. 그래픽 API는 추가적으로, Core AnimationTM(Apple Inc.)(120)과 같은, 하드웨어 가속을 가능하게 할 수 있는 그래픽 API로부터 선택될 수 있다. OpenGL은 실시예에서 하드웨어 가속을 가능하게 하는데도 사용될 수 있다.
레이아웃 엔진(116)은, OS(124)를 통해, 하드웨어(104)에 통신 가능하게 결합될 수 있다. 하드웨어(104)는 복수개 프로세서(126, 130), 복수개 메모리(132, 134), 적어도 하나의 컨트롤러(136), 및 적어도 하나의 디스플레이(140)를 포함할 수 있지만, 그것으로 제한되는 것은 아니다. OS(124)는 하드웨어(104)와 소프트웨어(102) 사이의 통신을 용이하게 하는, 도시되지 않은, 복수개 드라이버를 더 포함할 수 있다.
프로세서(126, 130)는, 예를 들어, CPU(central processing unit;126)와 같은, 범용 프로세서 및, GPU(graphics processing unit;130)와 같은, 전문 프로세서를 포함할 수 있다. GPU(130)는, 상이한 유형의 그래픽 데이터를 처리하는 2차원(2D) 및/또는 3차원(3D) 코어와 같은, 복수개의 코어를 구비할 수 있고 상이한 종류의 그래픽 리소스를 사용할 수 있다. GPU(130)의 출력은 디스플레이(140)에서의 디스플레이를 위해 디스플레이 컨트롤러(136)에 의해 인출될 수 있는 그래픽 메모리(134)에 저장될 수 있다. 예를 들어, GPU(130)는 그래픽의 처리에 사용되는 정보를 저장하는데 전용되는 그래픽 메모리(134)를 이용할 수 있는 한편, CPU(126)는 CPU(126)와 장치(100)의 다른 컴포넌트에 의해 공유되는 메모리(132)를 이용할 수 있다.
도 2는 렌더링 아티팩트(rendering artifacts)의 디스플레이를 사실상 방지하기 위해 웹 페이지의 렌더링을 분석하고 변경하는 프로세스(200)의 일 실시예를 예시한다. 소정 실시예에서, 프로세스(200)는 레이아웃 엔진(116)에 의해 구현될 수 있다. 일반적으로, 레이아웃 엔진(116)은 네트워크(112)로부터 HTML/XHTML 파일을 다운로드하고; 이들은 페이지 컨텐츠를 그리고, HTML 태그에 대한 속성을 통해서 그리고 기존의 HTML 레이아웃 규칙에 의해서 어느 정도까지 프레젠테이션을 기술한다. 그 다음, 레이아웃 엔진(116)은 HTML을, 노드의 유형 및 그들의 관계가 DOM(Document Object Model) 명세 사항에 의해 설명되는 문서 노드의 트리로 파싱한다. 다음으로, 레이아웃 엔진(116)은 웹 페이지(106)에 의해, 직접적으로 또는 간접적으로, 참조될 수 있는 모든 CSS 파일을 다운로드할 수 있고 웹 페이지(106)와 조화될 수 있는 CSS 규칙을 찾는다. 또한, 레이아웃 엔진(116)은 웹 페이지(106)에 의해, 직접적으로 또는 간접적으로, 참조될 수 있는 JavaScript 파일을 다운로드할 수 있다. JavaScript 코드 또한 구성 요소에 적용되는 스타일을 변경할 수 있다.
레이아웃 엔진(116)은, 다양한 유형의 구성 요소에 대한 표준 렌더링된 외관에 의해 판정될 수 있는, 페이지의 구성 요소에 대한 시각적 프레젠테이션을 그리고 그 다음에는 다양한 구성 요소의 외관이 CSS 스타일 규칙에 의해 변경될 수 있는 방법을 계산할 수 있다. 또한, 레이아웃 엔진(116)은, 스타일 규칙 및 구성 요소 사이의 상호 작용에 기초해, 페이지에서의 위치 및 구성 요소 각각의 디스플레이 순서를 계산할 수 있다.
구성 요소 위치와 디스플레이 순서를 계산하는 단계의 일부로서, 레이아웃 엔진(116)은 구성 요소의 소정 하위 집합에 대한 렌더링을 제어하는 오브젝트의 계층 구조를 구축할 수 있는데, 이를 렌더링 계층이라고 할 수 있다.
레이아웃 엔진(116)은 렌더링 계층의 소정 하위 집합이 하드웨어 가속/합성되어야 하는지를 판정하기 위해 스타일을 그리고 어쩌면 다른 것을 찾을 수 있다는 것에 주목해야 한다. 그 다음, 레이아웃 엔진(116)은 렌더링 계층의 계층 구조를 분석하여 웹 페이지(106)의 시각적 외관을 보존하기 위해 다른 어떤 렌더링 계층이 하드웨어 합성을 요구할 수 있는지를 판정할 수 있다.
일 실시예에서, 레이아웃 엔진(116)은 웹 페이지(106)의 의도된 디스플레이(206)를 식별한다. 예를 들어, 의도된 디스플레이(206)는 웹 페이지(106)의 복수개 스타일시트에 대한 워크스루(202;walk through)의 프로세스에 의해 식별될 수 있다. 소정 실시예에서, 스타일시트는 CSS 언어로 제공될 수 있다.
도 3a 내지 도 3c에서 예시되는 바와 같이, 웹 페이지(106;도 3a)는 컨텐츠(도 3c) 및, CSS로 기재될 수 있는, 문서 프레젠테이션(도 3b)으로 분리될 수 있다. 컨텐츠의 실례로는, 예를 들어, 텍스트(302A, 302B), 정적 이미지(304), 하드웨어 가속된 렌더링을 이용하도록 설계된 애니메이션(310), 및 비가속된 애니메이션(306)을 들 수 있다. 애니메이션(306)은 기존 컨텐츠를 변경하는 동작을 표현할 수 있고, 폰트 페이스 또는 색상같은, 다른 CSS 특성처럼 취급될 수 있다.
복수개 문서 프레젠테이션 규칙이 웹 페이지 컨텐츠에 적용될 수 있다. 규칙은, 예를 들어, 2차원에서의 정지 및 동적 위치 결정 방식(314), 컨텐츠 가시성(312), 및 폰트(320)를 포함할 수 있다. 예를 들어, 규칙은 스태킹 인덱스(316;stacking index)에 관한 전향 순서(z-인덱스)를 특정할 수 있다. CSS는 추가적으로, 컨텐츠의 조각에 여러 규칙이 이용될 수 있는 경우 어떤 스타일 규칙이 적용될 수 있는지를 판정하는 웹 페이지 컨텐츠에 대한 우선 순위 방식을 특정할 수 있다. 위치 결정 방식을 사용해, 컨텐츠는 웹 페이지(106) 내의 임의의 원하는 위치에 배치될 수 있다. 오버플로우를 사용해, 그에 대한 컨텐츠가 그들의 상자 밖으로 누설되는 구성 요소의 거동이 제어될 수 있다. 더 나아가, 가시성이 컨텐츠의 조각을 나타내거나 숨길 수 있다.
인덱스(316)는 페이지의 구성 요소가 중첩하는 경우 컨텐츠가 어떤 순서로 드로잉될 수 있는지를 특정하는데 사용될 수 있다. 폰트 파라미터는 디스플레이되는 텍스트의 유형, 사이즈, 및 스타일을 변경하는데 사용될 수 있다. 예를 들어, 시간에 따른 컨텐츠의 위치, 컨텐츠 가시성, 및 복수개 이미지의 프레젠테이션을 포함할 수 있는 컨텐츠 포매팅을 조정하는 것에 의해 간단한 애니메이션이 발생될 수 있다.
이와 같이, 웹 페이지(106)에 대한 CSS 내의 포매팅 명령어를 워크스루하는 것에 의해, 웹 페이지(106)의 의도된 디스플레이(206)가 판정될 수 있다.
추가 실시예에서는, 레이아웃 엔진(116)에 의해 웹 페이지(106)의 렌더링된 디스플레이(210)를 판정하기 위한 복수개 렌더링 계층(204)이 발생될 수 있다. 렌더링 계층(204)은, 각각이 페이지의 컨텐츠에 대한 관련된 하위 집합을 렌더링할 수 있는 오브젝트의 계층 구조를 구비한다. 이 계층 구조의 렌더링 계층(204)은 웹 페이지(106)의 시각적 표현을 발생시키기 위해 그들의 컨텐츠를 소정 순서로 각각 페인팅한다. 웹 페이지(106)로부터 유도되는 예시적 렌더링 계층(400A-400D)이 도 4에서 예시된다.
또한, 프로세스(200)는 어떤 렌더링 계층(204)이, 그들의 스타일에 의해서, 하드웨어 백킹(hardware backing)을 또는 다른 입력 소스를 요구할 수 있는지를 판정할 수 있는데, 이는 이들 계층이 애니메이션의 대상이 될 수 있거나 3D API를 통해 렌더링되는 경우에만 가능할 수 있는 프레젠테이션을 가질 수 있다는 것을 지시한다. 예를 들어, 구성 요소가, 투시도법에 의한 관통 회전 변환(through rotation transform)과 같은, 비선형 변환(non-affine transforms)을 가진다면, 이들 동작은 하드웨어 백킹이 좀더 적합할 수 있다.
프로세스(200)에서는, 어떤 다른 렌더링 계층(204)이, 페이지의 시각적 표현을 유지하기 위해, 하드웨어 백킹을 요구할 수 있는지도 판정될 수 있다. 예를 들어, 선행 단계에서 하드웨어 합성 계층을 수신했던 무언가의 상단에 정상적으로 렌더링할 수 있는 페이지 구성 요소는 그들 자체가 하드웨어 계층을 취해야 할 수 있고, 그렇게 그들은 계속해서 상단에 렌더링될 수 있다. 렌더링된 계층(204)은 프로세스(200)에 의해, 렌더링된 디스플레이(210)를 판정하는데 사용될 수 있다. 렌더링된 디스플레이(210)는 편차(212)를 판정하기 위해 의도된 디스플레이(206)와 비교될 수 있다.
이 분석으로부터, 알고리즘(214)은, 여기에서 합성 계층(216)이라고 하는, 렌더링 계층(204)의 일부를 선택하고 선택된 계층을 변경함으로써, 합성 계층(216)이 그래픽 API와 함께 하드웨어 가속된 렌더링에 작용할 수 있게 한다. 일 실시예에서는, 선택된 렌더링 계층(204)이 해당 계층쪽으로 페인팅되어 합성 계층(216)을 획득한다. 이런 식으로, 나머지 렌더링 계층(204)과 합성 계층(216)의 조합으로부터 디스플레이된 웹 페이지(218)가 발생된다. 디스플레이된 웹 페이지(218)는 의도된 디스플레이(206)와 사실상 동일하다. 이 프로세스는, 필요에 따라, 이 결과를 실현하도록 반복될 수 있다는 것을 알 수 있을 것이다.
알고리즘(214)의 실시예는 합성 계층(216)을 발생시키는데 사용되는 렌더링 계층(204)을 복수개의 팩터에 기초해 선택할 수 있다. 팩터는, 예를 들어, 웹 페이지 컨텐츠의 상대적 배치, 웹 페이지 컨텐츠의 원하는 렌더링 순서, 웹 페이지 컨텐츠가 서로 중첩하는지의 여부, 및 웹 페이지 컨텐츠에 의해 표현되는 요청된 애니메이션 효과를 포함할 수 있다. 알고리즘(214)은 그것의 선택을 이용 가능한 프로세싱 리소스, 메모리, 및 유사한 관심사에 추가적으로 기초할 수 있다.
알고리즘(214)에서, 레이아웃 엔진(116)은 웹 페이지(106)의 컨텐츠를 정확한 전향 순서로 페인팅하기 위해 렌더링 계층의 계층 구조를 구성한다. 렌더링 계층의 계층 구조는 웹의 구조에 기초할 수 있다.
레이아웃 엔진(116)은, 이러한 제1 계층 구조로부터, 페이지 구성 요소의 전후 순서(즉, z-인덱스)에 영향을 미치는 스타일, 및 구성 요소가 "스태킹 정황(stacking context)"이 되게 하는 스타일을 고려하는 것에 의해 렌더링 계층의 새로운 계층 구조를 계산할 수 있다. 스태킹 정황 내에서, 차일드 구성 요소(child elements)는 그들의 z-순서에 따라 정렬될 수 있지만, 상이한 스태킹 정황 내의 구성 요소는 상호 정렬하지 않을 수 있다.
다음으로는, 각각의 렌더링 계층을 위한 구성 요소와 연관된 스타일이 검사될 수 있고, 레이아웃 엔진(116)은 현재의 렌더링 계층이 하드웨어 합성 지원을 요구하는지의 여부에 관해 판정할 수 있다. 이 판정을 내리는데 사용되는 기준으로는: 이 계층을 위한 구성 요소에 적용되는 스타일 규칙이, 불투명과 같은, 소정 특성에서, 과도 전환(transient transitions)을 포함하는 애니메이션 또는 디스플레이 변환을 할당하는지의 여부; 이 계층을 위한 구성 요소에 적용되는 스타일 규칙이, 비선형 변환과 같은, 이용 가능한 2D 드로잉 API로는 어려울 수 있는 디스플레이 변환을 설명하는지의 여부; 및 렌더링 계층(204)과 연관된 구성 요소가 하드웨어 합성으로부터 혜택을 누릴 것인지의 여부(예를 들어, 비디오를 디스플레이하는 구성 요소는, 그들이 하드웨어 합성된 목적지쪽으로 렌더링될 수 있다면, 훨씬 더 효율적으로 디스플레이할 수 있음)를 들 수 있지만, 그것으로 제한되는 것은 아니다.
레이아웃 엔진(116)은 렌더링 계층의 계층 구조에 대한 두번째 전달을 그들의 시각적 프레젠테이션(전향) 순서로 수행할 수 있고, 추가적인 렌더링 계층이, 다음의 기준을 포함하지만 그것으로 제한되는 것은, 부차적인 원인을 위해 하드웨어 합성 계층에 할당될 수 있다.
예를 들어, 레이아웃 엔진(116)은 페이지의 시각적 프레젠테이션을 보존하기 위해 렌더링 계층(204)이 하드웨어 합성된 다른 렌더링 계층의 앞쪽에 드로잉되어야 하는지의 여부를 고려할 수 있다. 알고리즘(214)은 렌더링 계층의 스크린에서의 위치를 고려할 수 있고, 중첩이 검출되는 경우에만 하드웨어 합성된 계층을 할당할 수 있지만, 이 경우, 알고리즘(214)은, 애니메이션을 포함하는, 페이지 디스플레이의 변화가 그러한 중첩에 영향을 미칠 수 있는 경우를 검출하여 추가적인 하드웨어 합성 계층을 할당할 수 있다.
또한, 레이아웃 엔진(116)은 렌더링 계층(204)이 그들로 하여금 그들의 차일드 구성 요소를 클리핑하게 하는 스타일(즉, "오버플로우" 스타일)을 갖는지 그리고 그들의 차일드 구성 요소 중 하나 이상이 하드웨어 합성된 렌더링 계층쪽으로 렌더링될 수 있는지의 여부를 고려할 수 있다. 이들 하드웨어 합성 계층은, 그들 하드웨어 합성된 차일드 구성 요소가 소프트웨어 렌더링 코드 경로에 사용되는 표준 클리핑 메커니즘에 의해 클리핑되지 않을 수 있으므로 이용될 수 있는데, 그들이 하드웨어 가속될 수 있기 때문일 뿐만 아니라 렌더링 계층(204)의 컨텐츠가 하드웨어 가속된 애니메이션을 경험할 수 있으므로 클리핑 자체가 하드웨어 가속으로써 구현될 수 있기 때문이다.
레이아웃 엔진(116)은 선행 단계 중 하나에서 합성 계층이 할당되었던 렌더링 계층을 추가 검사할 수 있고, 하드웨어 합성된 계층이 할당될 수 있었던 단일 렌더링 계층이 둘 이상의 하드웨어 합성 계층을 생성하고 유지해야 할 수 있는 상황을 식별한다. 이들 상황은: 렌더링 계층이 스태킹 정황일 수 있고 그들이 z-인덱스가 음인 하드웨어 합성된 차일드를 가질 수 있다면, 그 렌더링 계층의 구성 요소에 대한 컨텐츠를 위해 추가 계층이 생성될 수 있는 상황을 포함할 수 있지만, 그것으로 제한되는 것은 아니다. 이것은, 음의 z-인덱스 차일드를 이용해, 그것의 컨텐츠 뒤쪽이 아닌, 그 구성 요소의 배경 앞쪽에 렌더링하는 시각적 표현을 보존하는데 유용할 수 있다.
또한, 렌더링 계층(204)이 그들로 하여금 그들의 차일드를 클리핑하게 할 수 있는 "오버플로우" 스타일을 갖고, 그 렌더링 계층이 스태킹 정황이 아니며 그것의 차일드 중 하나 이상이 하드웨어 합성된 계층과 연관된다면, 추가적인 하드웨어 합성 계층이 그들 차일드의 클리핑을 수행하는데 유용할 수 있다. 이것이 유용할 수 있는데, "오버플로우" 스타일의 구성 요소가 자동적으로 스태킹 정황이 될 수는 없으므로 반드시 렌더링 계층 구조에서 그것의 클리핑된 차일드 계층의 페어런츠로서 동작할 필요는 없을 수도 있기 때문이다.
구성 요소가 그 구성 요소(예를 들어, 비디오)의 디스플레이를 최적화하기 위해 렌더링 계층에 할당될 수 있었지만, 그 스타일이, 경계선과 같은, 그 구성 요소에 대한 추가적인 상자 장식을 지시한다면, 추가적인 하드웨어 합성 계층이 생성되어 그들 상자 장식을 렌더링함으로써, 그 구성 요소의 디스플레이에 대한 효율성을 보존할 수 있다.
하드웨어 합성 계층은, 그들의 연관된 데이터 구조 및 (필요한 경우) 백킹 저장(backing store)을 위해 요구되는 메모리의 관점에서 그리고 그들의 생성 및 유지 보수를 위한 연산 요구 사항의 관점에서, 처리 비용을 가질 수 있다. 일부 실시예에서, 레이아웃 엔진(116)은 수개 기술: 스태킹 정황일 수 있는 그리고 하드웨어 합성을 요구할 수 있는 차일드 구성 요소를 갖지 않을 수 있는 렌더링 계층(204)은 항상 그것과 연관된 하드웨어 합성 계층 또는 소정 페어런츠 렌더링 계층쪽으로 렌더링될 수 있다는 기술; 하드웨어 합성 계층을 가진 구성 요소 뒤쪽에 드로잉하는 구성 요소는 소정 페어런츠 렌더링 계층과 연관된 하드웨어 계층쪽으로 또는 페이지의 비-하드웨어-가속된 구성 요소의 드로잉 목적지쪽으로 렌더링될 수 있다는 기술; 렌더링 계층(204) 및 그들의 가속되지 않은 차일드를 위해 생성되는 하드웨어 합성 계층은, 윤곽 및 음영과 같은 어떠한 상자 장식을 포함하여, 그들 구성 요소를 포함하기에 충분할 정도로 크기만 하면 되고 더 크지 않을 수 있다는 기술을 통해, 생성될 수 있는 하드웨어 합성 계층의 수와 사이즈를 최소화하도록 구성될 수 있다
페이지 컨텐츠와 페이지의 구성 요소에 적용되는 스타일 양자는, 사용자 활동에 응답하여 또는 직접적으로나 간접적으로 JavaScript를 통해, 페이지가 로딩된 후 달라질 수 있다. 페이지의 구성 요소에 대한 시각적 프레젠테이션에 영향을 주는 변화가 검출되는 경우, 레이아웃 엔진(116)은 렌더링 계층(204)의 계층 구조 전부 또는 일부에 대해 자신의 알고리즘(214)을 실행하여, 하드웨어 합성 렌더링 계층의 집합이 페이지의 그러한 시각적 프레젠테이션을 보존하기 위해 업데이트될 수 있다는 것을 보장할 수 있다.
많은 경우, 알고리즘(214)에 의해 생성되는 하드웨어 합성 계층과 연관된 구성 요소는 시스템 제공 드로잉(system-provided drawing) API를 통해 그들 하드웨어 합성 계층쪽으로 렌더링될 수 있다. 이는 텍스트, 이미지, 경계선 등의 혼합물을 제시하는 구성 요소를 위한 것일 수 있다. 또한, 이것은 그러한 하드웨어 합성 계층이, 렌더링된 프레젠테이션을 보존하기 위해 메모리 버퍼 또는 백킹 저장을 요구한다는 것을 지시할 수 있는데, 이 메모리 버퍼는 그 하드웨어에 의한 디스플레이에서의 합성을 위해 그래픽 처리 하드웨어쪽으로 업로드될 수 있다.
하드웨어 합성 계층을 위해 메모리 버퍼를 할당하는 것은 시스템 리소스를 사용할 수 있지만 다양한 실시예에서 최소화될 수 있다. 이를 실현하기 위해, 알고리즘(204)은 렌더링 계층 내에서, 백킹 저장의 할당없이, 이용 가능한 하드웨어-가속된 그래픽 API에 의해 제시될 수 있는 구성 요소의 소정 구성을 검출하도록 변경될 수 있다. 이들 구성은 가시적 컨텐츠를 갖지 않고 단지 그들의 차일드 렌더링 계층을 위한 컨테이너로서 동작하는 구성 요소와 연관된 렌더링 계층을 포함할 수 있지만 이것으로 제한되는 것은 아니다. 이 경우, 하드웨어-가속된 계층이 그들 렌더링 계층에 할당될 수 있지만, 그들 하드웨어-가속된 계층은 단순히 차일드를 위한 기하 구조 계산(geometry calculations)에만 참여하면서 그들만의 드로잉은 전혀 수행하지 않을 수 있다.
렌더링 계층은 단색 배경(solid background colors)을 갖지만 그와 동일한 렌더링 계층쪽으로 렌더링될 수 있는 다른 컨텐츠는 갖지 않을 수 있는 구성 요소와 연관될 수 있다. 이 경우, 단색 배경을 드로잉하기 위한 명령어는 하드웨어-가속된 그래픽 API를 통해 아래쪽의 그래픽 프로세서쪽으로 전달될 수 있는데, 이는 소프트웨어-기반의 드로잉 API를 통해 가능할 수 있는 것보다 훨씬 더 효율적으로 스크린 면적을 단색으로 채울 수 있다. 또한, 렌더링 계층은 이미지를 디스플레이하는 구성 요소와 연관될 수 있다. 이 경우, 그래픽 텍스처로서 사용될 이미지의 디코딩된 픽셀은, 소프트웨어-기반의 드로잉 API를 통해 그들을 렌더링할 필요없이, 하드웨어-가속된 그래픽 API쪽으로 전달될 수 있다. 이와 같이, 페이지 컨텐츠 또는 스타일이 달라질 때, 알고리즘은 페이지 구성 요소를 재점검하고, 그것이 이들 구성 중 어떤 것이든 검출하면, 그것은 하드웨어-가속된 렌더링 계층의 집합을 재구성하여 그들을 이용할 수 있다.
도 5a는 예시적인 모바일 장치(2500)를 예시한다. 모바일 장치(2500)는, 예를 들어, 핸드헬드 컴퓨터, PDA, 셀룰러폰, 네트워크 어플라이언스, 카메라, 스마트폰, EGPRS(enhanced general packet radio service) 모바일폰, 네트워크 기지국, 미디어 플레이어, 네비게이션 장치, 이메일 장치, 게임 콘솔, 또는 이들 데이터 처리 장치 또는 다른 데이터 처리 장치 중 어떠한 2 이상의 조합일 수 있다.
모바일 장치 개요
일부 구현에서, 모바일 장치(2500)는 터치-감지 디스플레이(2502)를 포함한다. 터치-감지 디스플레이(2502)는 LCD(liquid crystal display) 기술, LPD(light emitting polymer display) 기술, 또는 다른 어떤 디스플레이 기술로써 구현될 수 있다. 터치-감지 디스플레이(2502)는 사용자와의 햅틱(haptic) 및/또는 택틸(tactile) 접촉에 민감할 수 있다.
일부 구현에서, 터치-감지 디스플레이(2502)는 멀티-터치-감지 디스플레이(2502)를 포함할 수 있다. 멀티-터치-감지 디스플레이(2502)는, 예를 들어, 각 터치 포인트의 압력, 온도, 및/또는 위치에 관련된 데이터를 처리하는 것을 포함해, 동시에 여러 개의 터치 포인트를 처리할 수 있다. 그러한 처리는 여러 손가락에 의한 제스처 및 상호 작용, 코딩(chording), 및 다른 상호 작용을 용이하게 한다. 또한, 예를 들어, 접촉이 스틸러스 또는 다른 포인팅 장치를 사용해 이루어지는 디스플레이와 같은 다른 터치-감지 디스플레이 기술이 사용될 수 있다. 그 전체가 여기에 참고 문헌으로써 포함되어 있는 미국특허 제6,323,846호, 제6,570,557호, 제6,677,932호, 및 제6,888,536호에서 멀티-터치-감지 디스플레이 기술의 일부 실례가 설명된다.
일부 구현에서, 모바일 장치(2500)는 다양한 시스템 오브젝트로의 사용자 액세스를 제공하기 위해 그리고 사용자에게 정보를 전달하기 위해 터치-감지 디스플레이(2502)에 하나 이상의 그래픽 사용자 인터페이스를 디스플레이할 수 있다. 일부 구현에서, 그래픽 사용자 인터페이스는 하나 이상의 디스플레이 오브젝트(2504, 2506)를 포함할 수 있다. 표시된 실례에서, 디스플레이 오브젝트(2504, 2506)는 시스템 오브젝트의 그래픽 표현이다. 시스템 오브젝트의 일부 실례는 장치 기능, 애플리케이션, 창, 파일, 경보, 이벤트, 또는 식별 가능한 다른 시스템 오브젝트를 포함한다.
예시적인 모바일 장치 기능
일부 구현에서, 모바일 장치(2500)는, 폰 오브젝트(2510)에 의해 지시되는 바와 같은 전화 장치; 메일 오브젝트(2512)에 의해 지시되는 바와 같은 이-메일 장치; 맵 오브젝트(2514)에 의해 지시되는 바와 같은 맵 장치; (표시되지 않은) 와이파이(Wi-Fi) 기지국 장치; 및 웹 비디오 오브젝트(2516)에 의해 지시되는 바와 같은 네트워크 비디오 전송 및 디스플레이 장치와 같은, 여러 장치 기능을 구현할 수 있다. 일부 구현에서, 특정 디스플레이 오브젝트(2504), 예를 들어, 폰 오브젝트(2510), 메일 오브젝트(2512), 맵 오브젝트(2514), 및 웹 비디오 오브젝트(2516)는 메뉴 바(2518)에 디스플레이될 수 있다. 일부 구현에서, 장치 기능은, 도 5a에서 예시되는 그래픽 사용자 인터페이스와 같은, 최상위 레벨 그래픽 사용자 인터페이스로부터 액세스될 수 있다. 오브젝트(2510, 2512, 2514, 또는 2516) 중 하나를 터치하는 것은, 예를 들어, 해당 기능을 호출할 수 있다.
일부 구현에서, 모바일 장치(2500)는 네트워크 분산 기능을 구현할 수 있다. 예를 들어, 이 기능은 사용자가 여행하는 동안 모바일 장치(2500)를 취해 그것의 연관된 네트워크에 액세스하는 것을 가능하게 할 수 있다. 특히, 모바일 장치(2500)는 인근의 다른 무선 장치쪽으로 인터넷 액세스(예를 들어, Wi-Fi)를 확장할 수 있다. 예를 들어, 모바일 장치(2500)는 하나 이상의 장치를 위한 기지국으로서 구성될 수 있다. 이와 같이, 모바일 장치(2500)는 다른 무선 장치로의 네트워크 액세스를 허가하거나 거부할 수 있다.
일부 구현에서는, 장치 기능의 호출시에, 해당 장치 기능과 연관된 특정 기능으로의 사용자 액세스를 용이하게 하기 위해, 모바일 장치(2500)의 그래픽 사용자 인터페이스가 달라지거나, 확대되거나, 다른 사용자 인터페이스 또는 사용자 인터페이스 구성 요소로써 교체된다. 예를 들어, 사용자가 폰 오브젝트(2510)를 터치하는 것에 응답하여, 터치-감지 디스플레이(2502)의 그래픽 사용자 인터페이스는 다양한 폰 기능에 관련된 디스플레이 오브젝트를 제시할 수 있고; 마찬가지로, 메일 오브젝트(2512)의 터치는 그래픽 사용자 인터페이스가 다양한 이-메일 기능에 관련된 디스플레이 오브젝트를 제시하게 할 수 있으며; 맵 오브젝트(2514)를 터치하는 것은 그래픽 사용자 인터페이스가 다양한 맵 기능에 관련된 디스플레이 오브젝트를 제시하게 할 수 있고; 웹 비디오 오브젝트(2516)를 터치하는 것은 그래픽 사용자 인터페이스가 다양한 웹 비디오 기능에 관련된 디스플레이 오브젝트를 제시하게 할 수 있다.
일부 구현에서는, 모바일 장치(2500)의 하단 부근에 배치된 버튼(2520)을 누르는 것에 의해 도 5a의 최상위 레벨 그래픽 사용자 인터페이스 환경 또는 상태가 복구될 수 있다. 일부 구현에서, 각각의 해당 장치 기능은 터치-감지 디스플레이(2502)에 디스플레이되는 해당 "홈" 디스플레이 오브젝트를 가질 수 있고, 도 5a의 그래픽 사용자 인터페이스 환경은 "홈" 디스플레이 오브젝트를 누르는 것에 의해 복구될 수 있다.
일부 구현에서, 최상위 레벨 그래픽 사용자 인터페이스는, SMS(short messaging service) 오브젝트(2530), 달력 오브젝트(2532), 사진 오브젝트(2534), 카메라 오브젝트(2536), 계산기 오브젝트(2538), 주식 오브젝트(2540), 주소록 오브젝트(2542), 미디어 오브젝트(2544), 웹 오브젝트(2546), 비디오 오브젝트(2548), 설정 오브젝트(2550), 및 (표시되지 않은) 메모 오브젝트와 같은, 추가적인 디스플레이 오브젝트(2506)를 포함할 수 있다. SMS 디스플레이 오브젝트(2530)를 터치하는 것은, 예를 들어, SMS 메시징 환경 및 지원 기능을 호출할 수 있고; 마찬가지로, 디스플레이 오브젝트(2532, 2534, 2536, 2538, 2540, 2542, 2544, 2546, 2548, 및 2550)의 선택 각각은 해당 오브젝트 환경과 기능을 호출할 수 있다.
또한, 추가적인 그리고/또는 상이한 디스플레이 오브젝트가 도 5a의 그래픽 사용자 인터페이스에 디스플레이될 수 있다. 예를 들어, 장치(2500)가 다른 장치를 위한 기지국으로서 기능 중이라면, 그래픽 사용자 인터페이스에는 접속을 지시하기 위한 하나 이상의 "접속" 오브젝트가 표시될 수 있다. 일부 구현에서는, 디스플레이 오브젝트(2506)가 사용자에 의해 구성될 수 있는데, 예를 들어, 사용자가 어떤 디스플레이 오브젝트(2506)가 디스플레이되는지를 특정할 수 있고 그리고/또는 다른 기능 및 해당 디스플레이 오브젝트를 제공하는 추가적인 애플리케이션 또는 다른 소프트웨어를 다운로드할 수 있다.
일부 구현에서, 모바일 장치(2500)는 하나 이상의 I/O(input/output) 장치 및/또는 센서 장치를 포함할 수 있다. 예를 들어, 스피커(2560) 및 마이크로폰(2562)이 포함되어, 폰 및 음성 메일 기능과 같은, 음성 실행(voice-enabled) 기능을 용이하게 할 수 있다. 일부 구현에서는, 스피커(2560) 및 마이크로폰(2562)의 볼륨 제어를 위한 업/다운 버튼(2584)이 포함될 수 있다. 또한, 모바일 장치(2500)는 인커밍 폰 콜(incoming phone calls)의 링 지시자를 위한 온/오프 버튼(2582)를 포함할 수 있다. 일부 구현에서는, 확성기(2564)가 포함되어, 스피커 폰 기능과 같은, 핸즈프리 음성 기능을 용이하게 할 수 있다. 헤드폰 및/또는 마이크로폰의 사용을 위해 오디오 잭(2566)도 포함될 수 있다.
일부 구현에서는, 사용자가 모바일 장치(2500)를 사용자의 귀에 가깝게 배치하는 것의 검출을 용이하게 하고, 그에 응답하여, 터치-감지 디스플레이(2502)의 접속을 풀어 우연한 기능 호출을 방지하는 것을 용이하게 하기 위해 근접 센서(2568)가 포함될 수 있다. 일부 구현에서는, 모바일 장치(2500)가 사용자의 귀에 가깝게 위치하는 경우, 터치-감지 디스플레이(2502)는 추가적인 전력 절감을 위해 턴오프될 수 있다.
다른 센서도 사용될 수 있다. 예를 들어, 일부 구현에서는, 주변광 센서(2570)가 터치-감지 디스플레이(2502)의 밝기 조정을 용이하게 하는데 이용될 수 있다. 일부 구현에서는, 가속도계(2572)가, 방향 화살표(2574)에 의해 지시되는 바와 같은, 모바일 장치(2500)의 움직임을 검출하는데 이용될 수 있다. 따라서, 디스플레이 오브젝트 및/또는 미디어가 검출된 방향에 따라, 예를 들어, 세로 또는 가로로 제시될 수 있다. 일부 구현에서, 모바일 장치(2500)는, GPS(global positioning system) 또는 다른 위치 결정 시스템(예를 들어, Wi-Fi 액세스 포인트, TV 신호, 셀룰러 그리드, URL(Uniform Resource Locators)을 사용하는 시스템)에 의해 제공되는 것과 같은, 위치 판정 기능을 지원하기 위한 회로 및 센서를 포함할 수 있다. 일부 구현에서는, 위치 결정 시스템(예를 들어, GPS 수신기)이 모바일 장치(2500)에 통합될 수 있거나 위치-기반 서비스로의 액세스를 제공하기 위해 인터페이스(예를 들어, 포트 장치(2590))를 통해 모바일 장치(2500)에 결합될 수 있는 별도 장치로서 제공될 수 있다.
일부 구현에서, 포트 장치(2590), 예를 들어, USB(Universal Serial Bus) 포트나 도킹 포트, 또는 다른 어떤 유선 포트 접속이 포함될 수 있다. 포트 장치(2590)는, 예를 들어, 다른 통신 장치(2500), 네트워크 액세스 장치, 퍼스널 컴퓨터, 프린터, 디스플레이 스크린, 또는 데이터를 수신 및/또는 전송할 수 있는 다른 처리 장치와 같은, 다른 컴퓨팅 장치로의 유선 접속을 확립하는데 이용될 수 있다. 일부 구현에서, 포트 장치(2590)는 모바일 장치(2500)가, 예를 들어, TCP/IP, HTTP, UDP, 및 임의의 다른 공지 프로토콜과 같은, 하나 이상의 프로토콜을 사용해 호스트 장치와 동기화할 수 있게 한다.
또한, 모바일 장치(2500)는 카메라 렌즈와 센서(2580)를 포함할 수 있다. 일부 구현에서, 카메라 렌즈와 센서(2580)는 모바일 장치(2500)의 뒷면에 배치될 수 있다. 카메라는 스틸 이미지 및/또는 비디오를 캡처할 수 있다.
또한, 모바일 장치(2500)는, 802.11b/g 통신 장치(2586) 및/또는 BluetoothTM 통신 장치(2588)와 같은, 하나 이상의 무선 통신 서브시스템을 포함할 수 있다. 다른 802.x 통신 프로토콜(예를 들어, WiMax, Wi-Fi, 3G), CDMA(code division multiple access), GSM(global system for mobile communications), EDGE(Enhanced Data GSM Environment) 등을 포함하는, 다른 통신 프로토콜도 지원될 수 있다.
예시적인 구성 가능한 최상위 레벨 그래픽 사용자 인터페이스
도 5b는 장치(2500)의 구성 가능한 최상위 레벨 그래픽 사용자 인터페이스의 다른 실례를 예시한다. 장치(2500)는 디스플레이 오브젝트의 상이한 집합을 디스플레이하도록 구성될 수 있다.
일부 구현에서, 장치(2500)에 대한 하나 이상의 시스템 오브젝트 각각은 그것과 연관된 시스템 오브젝트 속성의 집합을 갖고; 속성 중 하나는 시스템 오브젝트를 위한 디스플레이 오브젝트가 최상위 레벨 그래픽 사용자 인터페이스에 렌더링될 것인지의 여부를 판정한다. 이 속성은 시스템에 의해 자동적으로 또는 다음에서 설명되는 바와 같이 소정 프로그램 또는 시스템 기능을 통해 사용자에 의해 설정될 수 있다. 도 5b는 (예를 들어, Notes 시스템 오브젝트 및 Web Video 시스템 오브젝트의 속성이 변경되는 경우와 같이) (도 5a에 표시되지 않은) Notes 오브젝트(2552)가 장치(2500)의 최상위 그래픽 사용자 인터페이스에 추가되고 장치(2500)의 최상위 그래픽 사용자 인터페이스로부터 Web Video 오브젝트(2516)가 삭제되는 방법의 실례를 나타낸다.
예시적인 모바일 장치 아키텍처
도 6은 모바일 장치(예를 들어, 모바일 장치(2500))에 대한 예시적 구현의 블록도(3000)이다. 모바일 장치는 메모리 인터페이스(3002), 하나 이상의 데이터 프로세서, 이미지 프로세서 및/또는 중앙 처리 유닛(3004), 그리고 주변 장치 인터페이스(3006)를 포함할 수 있다. 메모리 인터페이스(3002), 하나 이상의 프로세서(3004), 및/또는 주변 장치 인터페이스(3006)는 별도 컴포넌트일 수 있거나 하나 이상의 집적 회로로 통합될 수 있다. 모바일 장치의 다양한 컴포넌트는 하나 이상의 통신 버스 또는 신호선에 의해 결합될 수 있다.
센서, 장치, 및 서브시스템은 주변 장치 인터페이스(3006)에 결합되어 여러 기능을 용이하게 할 수 있다. 예를 들어, 모션 센서(3010), 광 센서(3012), 및 근접 센서(3014)가 주변 장치 인터페이스(3006)에 결합되어 도 5a와 관련하여 설명된 배향(orientation), 조명, 및 근접 기능을 용이하게 할 수 있다. 또한, 위치 결정 시스템(예를 들어, GPS 수신기), 온도 센서, 생체 인식 센서, 또는 다른 감지 장치와 같은, 다른 센서(3016)가 주변 장치 인터페이스(3006)에 결합되어 관련 기능을 용이하게 할 수 있다.
카메라 서브시스템(3020) 및 광학 센서(3022), 예를 들어, CCD(charged coupled device) 또는 CMOS(complementary metal-oxide semiconductor) 광학 센서가, 사진 및 비디오 클립을 기록하는 것과 같은, 카메라 기능을 용이하게 하는데 이용될 수 있다.
무선 주파수 수신기와 송신기 그리고/또는 광학(예를 들어, 적외선) 수신기와 송신기를 포함할 수 있는 하나 이상의 무선 통신 서브시스템(3024)을 통해 통신 기능이 용이해질 수 있다. 통신 서브시스템(3024)의 특정 설계와 구현은 그를 통해 모바일 장치가 동작하도록 의도되는 통신 네트워크(들)에 의존할 수 있다. 예를 들어, 모바일 장치는 GSM 네트워크, GPRS 네트워크, EDGE 네트워크, Wi-Fi 또는 WiMax 네트워크, 및 BluetoothTM 네트워크를 통해 동작하도록 설계된 통신 서브시스템(3024)을 포함할 수 있다. 특히, 무선 통신 서브시스템(3024)은 호스팅 프로토콜을 포함할 수 있고, 그에 따라 모바일 장치는 다른 무선 장치를 위한 기지국으로서 구성될 수 있다.
오디오 서브시스템(3026)이 스피커(3028) 및 마이크로폰(3030)에 결합되어, 음성 인식, 음성 복제, 디지털 레코딩, 및 전화 기능과 같은, 음성 실행 기능을 용이하게 할 수 있다.
I/O 서브시스템(3040)은 터치 스크린 컨트롤러(3042) 및/또는 다른 입력 컨트롤러(들)(3044)를 포함할 수 있다. 터치 스크린 컨트롤러(3042)는 터치 스크린(3046)에 결합될 수 있다. 터치 스크린(3046) 및 터치 스크린 컨트롤러(3042)는 용량성, 저항성, 적외선, 및 SAW(surface acoustic wave) 기술 뿐만 아니라 터치 스크린(3046)과의 하나 이상의 접촉점을 판정하기 위한 다른 근접 센서 어레이 또는 다른 구성 요소를 포함하지만, 그것으로 제한되는 것은 아닌, 복수개의 터치 감지 기술 중 어느 하나를 사용해, 예를 들어, 접촉 및 움직임 또는 그것에 관한 중단을 검출할 수 있다.
다른 입력 컨트롤러(들)(3044)가, 하나 이상의 버튼, 로커 스위치(rocker switches), 썸휠(thumb-wheel), 적외선 포트, USB 포트, 및/또는 스틸러스 같은 포인터 장치와 같은, 다른 입력/제어 장치(3048)에 결합될 수 있다. (표시되지 않은) 하나 이상의 버튼은 스피커(3028) 및/또는 마이크로폰(3030)의 볼륨 제어를 위한 업/다운 버튼을 포함할 수 있다.
일 구현에서, 제1 구간 동안의 버튼 누름은 터치 스크린(3046)의 록을 해제할 수 있고; 제1 구간보다 긴 제2 구간 동안의 버튼 누름은 모바일 장치에 대한 파워를 온 또는 오프할 수 있다. 사용자가 버튼 중 하나 이상의 가능을 사용자 정의할 수 있다. 또한, 터치 스크린(3046)은, 예를 들어, 가상 또는 소프트 버튼 및/또는 키보드를 구현하는데 사용될 수 있다.
일부 구현에서, 모바일 장치는, MP3, AAC, 및 MPEG 파일과 같은, 레코딩된 오디오 및/또는 비디오 파일을 제시할 수 있다. 일부 구현에서, 모바일 장치는, iPodTM과 같은, MP3 플레이어의 기능을 포함할 수 있다. 따라서, 모바일 장치는 iPodTM과 호환 가능한 32-핀 커넥터를 포함할 수 있다. 다른 입/출력 및 제어 장치도 사용될 수 있다.
메모리 인터페이스(3002)가 메모리(3050)에 결합될 수 있다. 메모리(3050)는, 하나 이상의 자기 디스크 저장 장치, 하나 이상의 광학 저장 장치, 및/또는 플래시 메모리(예를 들어, NAND, NOR)와 같은, 고속 RAM 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(3050)는, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, 또는 VxWorks 같은 임베디드 OS와 같은, OS(3052)를 저장할 수 있다. OS(3052)는 기본적인 시스템 서비스를 핸들링하고 하드웨어 종속 작업을 수행하기 위한 명령어를 포함할 수 있다. 일부 구현에서, OS(3052)는 커널(예를 들어, UNIX 커널)일 수 있다.
또한, 메모리(3050)는 하나 이상의 추가 장치, 하나 이상의 컴퓨터, 및/또는 하나 이상의 서버와의 통신을 용이하게 하기 위한 통신 명령어(3054)를 저장할 수 있다. 메모리(3050)는 그래픽 사용자 인터페이스 처리를 용이하게 하기 위한 그래픽 사용자 인터페이스 명령어(3056); 센서 관련 처리와 기능을 용이하게 하기 위한 센서 처리 명령어(3058); 폰 관련 처리와 기능을 용이하게 하기 위한 폰 명령어(3060); 전자 메시징 관련 처리와 기능을 용이하게 하기 위한 전자 메시징 명령어(3062); 웹 브라우징 관련 처리와 기능을 용이하게 하기 위한 웹 브라우징 명령어(3064); 미디어 처리 관련 처리와 기능을 용이하게 하기 위한 미디어 처리 명령어(3066); GPS 및 네비게이션 관련 처리와 기능을 용이하게 하기 위한 GPS/네비게이션 명령어(3068); 카메라 관련 처리와 기능을 용이하게 하기 위한 카메라 명령어(3070); 및/또는 다른 처리와 기능을 용이하게 하기 위한 다른 소프트웨어 명령어(3072)를 포함할 수 있다. 또한, 메모리(3050)는, 웹 비디오 관련 처리와 기능을 용이하게 하기 위한 웹 비디오 명령어; 및/또는 웹 쇼핑 관련 처리와 기능을 용이하게 하기 위한 웹 쇼핑 명령어와 같은, (표시되지 않은) 다른 소프트웨어 명령어를 저장할 수 있다. 일부 구현에서, 미디어 처리 명령어(3066)는, 각각, 오디오 처리 관련 처리와 기능 및 비디오 처리 관련 처리와 기능을 용이하게 하기 위한 오디오 처리 명령어 및 비디오 처리 명령어로 분리된다. 또한, 활성 레코드 및 IMEI(International Mobile Equipment Identity)(3074) 또는 유사한 하드웨어 식별자가 메모리(3050)에 저장될 수 있다.
상기 설명은 본 교시의 기본적인 신규 사양을 나타내고, 설명하고, 지적하였지만, 당업자에 의해, 본 교시의 범위를 벗어나지 않으면서, 예시된 바와 같은 장치 형태의 세부 사항 뿐만 아니라 그것에 관한 용도의 다양한 누락, 교체, 및 변경이 이루어질 수 있다는 것을 이해할 수 있을 것이다. 따라서, 본 교시의 범위가 상기 논의로 제한되어서는 안된다.

Claims (18)

  1. 컴퓨터에 의해, 컨텐츠의 페이지를 위해 디스플레이될 구성 요소들의 관계들을 설명하는 노드들의 트리를 판정하는 단계;
    상기 구성 요소들을 위한 표준 렌더링된 외관(standard rendered appearance)에 기초해, 상기 페이지를 위한 시각적 표현을 판정하는 단계;
    상기 컨텐츠의 페이지가 가리키는 스타일 설명에서의 스타일 규칙에 기초해, 상기 표준 렌더링된 외관에 대한 변화를 판정하는 단계;
    하드웨어 합성 지원을 사용해 렌더링 계층을 위한 렌더링된 컨텐츠를 발생시키는 단계;
    상위 계층이 상기 렌더링 계층의 상단에 렌더링하는 것을 판정하는 단계; 및
    렌더링된 상위 계층을 위한 렌더링된 컨텐츠를 상기 하드웨어 합성 지원을 사용해 발생시키는 단계 - 상기 렌더링된 상위 계층을 위한 상기 렌더링된 컨텐츠는 상기 상위 계층의 컨텐츠를 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 페이지 구성 요소들의 전후 순서(front-to-back ordering)에 영향을 미치는 상기 스타일 설명에서 지정된 스타일들에 기초해 렌더링 계층들의 계층 구조를 판정하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    적어도 하나의 렌더링 계층을 위해, 그 계층이 상기 하드웨어 합성 지원을 사용하는지의 여부를 판정하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 컨텐츠의 페이지를 설명하는 파일들을 다운로드하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 컨텐츠의 페이지가 가리키는 상기 스타일 설명을 다운로드하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    하드웨어 합성 지원을 사용해 발생되는 하드웨어 합성 계층들의 수와 사이즈를 최소화하는 단계를 더 포함하는 방법.
  7. 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금,
    컴퓨터에 의해, 컨텐츠의 페이지를 위해 디스플레이될 구성 요소들의 관계들을 설명하는 노드들의 트리를 판정하는 동작;
    상기 구성 요소들을 위한 표준 렌더링된 외관에 기초해, 상기 페이지를 위한 시각적 표현을 판정하는 동작;
    상기 컨텐츠의 페이지가 가리키는 스타일 설명에서의 스타일 규칙들에 기초해, 상기 표준 렌더링된 외관에 대한 변화를 판정하는 동작;
    하드웨어 합성 지원을 사용해 렌더링 계층을 위한 렌더링된 컨텐츠를 발생시키는 동작;
    상위 계층이 상기 렌더링 계층의 상단에 렌더링하는 것을 판정하는 동작; 및
    렌더링된 상위 계층을 위한 렌더링된 컨텐츠를 상기 하드웨어 합성 지원을 사용해 발생시키는 동작 - 상기 렌더링된 상위 계층을 위한 상기 렌더링된 컨텐츠는 상기 상위 계층의 컨텐츠를 포함함 -
    을 포함하는 동작들을 실행하게 하는 실행 가능 명령어들을 저장한 머신 판독 가능 저장 매체.
  8. 제7항에 있어서,
    상기 동작들은 상기 페이지 구성 요소들의 전후 순서에 영향을 미치는 상기 스타일 설명에서 지정된 스타일들에 기초해 렌더링 계층들의 계층 구조를 판정하는 동작을 더 포함하는 머신 판독 가능 저장 매체.
  9. 제7항에 있어서,
    상기 동작들은, 적어도 하나의 렌더링 계층을 위해, 그 계층이 하드웨어 합성 지원을 사용하는지의 여부를 판정하는 동작을 더 포함하는 머신 판독 가능 저장 매체.
  10. 제7항에 있어서,
    상기 동작들은 상기 컨텐츠의 페이지를 설명하는 파일을 다운로드하는 동작을 더 포함하는 머신 판독 가능 저장 매체.
  11. 제7항에 있어서,
    상기 동작들은 상기 컨텐츠의 페이지가 가리키는 상기 스타일 설명을 다운로드하는 동작을 더 포함하는 머신 판독 가능 저장 매체.
  12. 제7항에 있어서,
    상기 동작들은 하드웨어 합성 지원을 사용해 발생되는 하드웨어 합성 계층들의 수와 사이즈를 최소화하는 동작을 더 포함하는 머신 판독 가능 저장 매체.
  13. 데이터 처리 시스템으로서,
    컴퓨터에 의해, 컨텐츠의 페이지를 위해 디스플레이될 구성 요소들의 관계들을 설명하는 노드들의 트리를 판정하기 위한 수단;
    상기 구성 요소들을 위한 표준 렌더링된 외관에 기초해, 상기 페이지를 위한 시각적 표현을 판정하기 위한 수단;
    상기 컨텐츠의 페이지가 가리키는 스타일 설명에서의 스타일 규칙들에 기초해, 상기 표준 렌더링된 외관에 대한 변화를 판정하기 위한 수단;
    하드웨어 합성 지원을 사용해 렌더링 계층을 위한 렌더링된 컨텐츠를 발생시키기 위한 수단;
    상위 계층이 상기 렌더링 계층의 상단에 렌더링하는 것을 판정하기 위한 수단; 및
    렌더링된 상위 계층을 위한 렌더링된 컨텐츠를 상기 하드웨어 합성 지원을 사용해 발생시키기 위한 수단 - 상기 렌더링된 상위 계층을 위한 상기 렌더링된 컨텐츠는 상기 상위 계층의 컨텐츠를 포함함 -
    을 포함하는 데이터 처리 시스템.
  14. 제13항에 있어서,
    상기 페이지 구성 요소들의 전후 순서에 영향을 미치는 상기 스타일 설명에서 지정된 스타일들에 기초해 렌더링 계층들의 계층 구조를 판정하기 위한 수단을 더 포함하는 데이터 처리 시스템.
  15. 제13항에 있어서,
    적어도 하나의 렌더링 계층을 위해, 그 계층이 상기 하드웨어 합성 지원을 사용하는지의 여부를 판정하기 위한 수단을 더 포함하는 데이터 처리 시스템.
  16. 제13항에 있어서,
    상기 컨텐츠의 페이지를 설명하는 파일들을 다운로드하는 수단을 더 포함하는 데이터 처리 시스템.
  17. 제13항에 있어서,
    상기 컨텐츠의 페이지가 가리키는 상기 스타일 설명을 다운로드하기 위한 수단을 더 포함하는 데이터 처리 시스템.
  18. 제13항에 있어서,
    하드웨어 합성 지원을 사용해 발생되는 하드웨어 합성 계층들의 수와 사이즈를 최소화하기 위한 수단을 더 포함하는 데이터 처리 시스템.
KR1020107022016A 2008-03-04 2009-03-04 웹 기반 컨텐츠의 렌더링 가속 KR101298370B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3376008P 2008-03-04 2008-03-04
US61/033,760 2008-03-04
US12/397,327 2009-03-03
US12/397,327 US9418171B2 (en) 2008-03-04 2009-03-03 Acceleration of rendering of web-based content
PCT/US2009/001426 WO2009111051A1 (en) 2008-03-04 2009-03-04 Acceleration of rendering of web-based content

Publications (2)

Publication Number Publication Date
KR20100119584A true KR20100119584A (ko) 2010-11-09
KR101298370B1 KR101298370B1 (ko) 2013-08-20

Family

ID=41054876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022016A KR101298370B1 (ko) 2008-03-04 2009-03-04 웹 기반 컨텐츠의 렌더링 가속

Country Status (5)

Country Link
US (1) US9418171B2 (ko)
EP (1) EP2252947B1 (ko)
JP (1) JP5171968B2 (ko)
KR (1) KR101298370B1 (ko)
WO (1) WO2009111051A1 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5440004B2 (ja) 2008-10-20 2014-03-12 セイコーエプソン株式会社 情報配信システム、情報配信システムのサービス実現方法およびそのプログラム
JP5293086B2 (ja) 2008-10-28 2013-09-18 セイコーエプソン株式会社 情報配信システム、情報配信システムのサービス実現方法およびそのプログラム
KR101476200B1 (ko) * 2008-10-30 2014-12-24 엘지전자 주식회사 이동단말기 및 그 제어 방법
US8589790B2 (en) * 2008-11-02 2013-11-19 Observepoint Llc Rule-based validation of websites
US8487941B2 (en) * 2008-12-15 2013-07-16 Leonovus Usa Inc. Media action script acceleration apparatus
US20100149215A1 (en) * 2008-12-15 2010-06-17 Personal Web Systems, Inc. Media Action Script Acceleration Apparatus, System and Method
US8295224B1 (en) * 2010-03-16 2012-10-23 Deshong Rick L Wireless signal transceiver system
US8977955B2 (en) * 2010-03-25 2015-03-10 Microsoft Technology Licensing, Llc Sequential layout builder architecture
US8949711B2 (en) * 2010-03-25 2015-02-03 Microsoft Corporation Sequential layout builder
US20130100139A1 (en) * 2010-07-05 2013-04-25 Cognitive Media Innovations (Israel) Ltd. System and method of serial visual content presentation
US9218680B2 (en) * 2010-09-01 2015-12-22 K-Nfb Reading Technology, Inc. Systems and methods for rendering graphical content and glyphs
US8732571B2 (en) * 2011-03-31 2014-05-20 Google Inc. Methods and systems for generating and displaying a preview image of a content area
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
CA2739677C (en) 2011-05-17 2012-05-22 Microsoft Corporation Surface caching
US8724029B2 (en) 2011-05-26 2014-05-13 Adobe Systems Incorporated Accelerating video from an arbitrary graphical layer
US20130069981A1 (en) * 2011-09-15 2013-03-21 Research In Motion Limited System and Methods for Managing Composition of Surfaces
US8881002B2 (en) 2011-09-15 2014-11-04 Microsoft Corporation Trial based multi-column balancing
US9171098B2 (en) 2011-09-30 2015-10-27 Microsoft Technology Licensing, Llc Decomposing markup language elements for animation
US8884971B2 (en) 2011-09-30 2014-11-11 Microsoft Corporation Animation engine decoupled from animation catalog
US8468449B1 (en) * 2011-12-08 2013-06-18 Microsoft Corporation Generating CSS shorthand properties
US9733819B2 (en) * 2011-12-14 2017-08-15 Facebook, Inc. Smooth scrolling of a structured document presented in a graphical user interface with bounded memory consumption
WO2013097163A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Selective hardware acceleration in video playback systems
US9235317B2 (en) 2012-02-01 2016-01-12 Facebook, Inc. Summary and navigation of hierarchical levels
US9645724B2 (en) 2012-02-01 2017-05-09 Facebook, Inc. Timeline based content organization
US9557876B2 (en) 2012-02-01 2017-01-31 Facebook, Inc. Hierarchical user interface
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US10803232B2 (en) * 2013-06-06 2020-10-13 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US9800517B1 (en) * 2013-10-31 2017-10-24 Neil Anderson Secure distributed computing using containers
CN103678631B (zh) * 2013-12-19 2016-10-05 华为技术有限公司 页面渲染方法及装置
CN105022616B (zh) * 2014-04-23 2019-12-03 腾讯科技(北京)有限公司 一种生成网页页面的方法及装置
US10042521B1 (en) 2014-05-22 2018-08-07 Amazon Technologies, Inc. Emulation of control resources for use with converted content pages
US9563929B1 (en) 2014-05-22 2017-02-07 Amazon Technologies, Inc. Caching of content page layers
US9922007B1 (en) * 2014-05-22 2018-03-20 Amazon Technologies, Inc. Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
US9563928B1 (en) 2014-05-22 2017-02-07 Amazon Technlogies, Inc. Bandwidth reduction through delivery of hardware-independent graphics commands for portions of content pages
US9720888B1 (en) 2014-05-22 2017-08-01 Amazon Technologies, Inc. Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US9569862B2 (en) * 2014-08-15 2017-02-14 Qualcomm Incorporated Bandwidth reduction using texture lookup by adaptive shading
US10002115B1 (en) * 2014-09-29 2018-06-19 Amazon Technologies, Inc. Hybrid rendering of a web page
US20180143747A1 (en) * 2015-05-19 2018-05-24 Mitsubishi Electric Corporation User interface device and method for displaying screen of user interface device
US10033656B2 (en) * 2015-05-21 2018-07-24 Sap Portals Israel Ltd Critical rendering path optimization
US9965451B2 (en) * 2015-06-09 2018-05-08 International Business Machines Corporation Optimization for rendering web pages
EP3341854B1 (en) 2015-09-14 2018-12-19 ViaSat, Inc. Machine-driven crowd-disambiguation of data resources
CN116610884A (zh) 2015-10-20 2023-08-18 维尔塞特公司 使用自动浏览群集更新提示模型
US11870836B2 (en) 2015-12-04 2024-01-09 Viasat, Inc. Accelerating connections to a host server
US10825129B2 (en) * 2016-06-12 2020-11-03 Apple Inc. Eliminating off screen passes using memoryless render target
US10452748B2 (en) 2016-06-20 2019-10-22 Microsoft Technology Licensing, Llc Deconstructing and rendering of web page into native application experience
US10496735B2 (en) * 2016-10-03 2019-12-03 Adobe Inc. Object interaction preservation from design to digital publication
CN106383686A (zh) * 2016-10-09 2017-02-08 广州视睿电子科技有限公司 一种html图片显示方法及装置
US20180260389A1 (en) * 2017-03-08 2018-09-13 Fujitsu Limited Electronic document segmentation and relation discovery between elements for natural language processing
US10666528B1 (en) 2018-11-28 2020-05-26 Sap Portals Israel Ltd. Decoupling platform as a service providers using a service management platform
CN111724453A (zh) * 2019-03-22 2020-09-29 阿里巴巴集团控股有限公司 富文本渲染方法、装置、终端设备及计算机存储介质
AU2020427596A1 (en) * 2020-02-06 2022-09-15 Canva Pty Ltd System and method for rendering a design including a dynamic design element
CN112861057B (zh) * 2021-02-10 2024-03-01 北京百度网讯科技有限公司 基于小程序的页面渲染方法、装置、设备及存储介质
CN113918258B (zh) * 2021-09-30 2023-12-19 北京达佳互联信息技术有限公司 页面滚动处理方法、装置、终端以及存储介质
US11836212B2 (en) * 2021-12-03 2023-12-05 Atlassian Pty Ltd. Systems and methods for rendering interactive web pages
US20230186014A1 (en) * 2021-12-09 2023-06-15 Salesforce.Com, Inc. Methods for web-to-print multiple overflow pagination
CN114924815A (zh) * 2022-03-31 2022-08-19 北京达佳互联信息技术有限公司 页面渲染方法、装置、电子设备及存储介质

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
WO1998050852A1 (en) * 1997-05-08 1998-11-12 Iready Corporation Hardware accelerator for an object-oriented programming language
JPH11195132A (ja) * 1997-10-31 1999-07-21 Hewlett Packard Co <Hp> テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体
KR100595917B1 (ko) * 1998-01-26 2006-07-05 웨인 웨스터만 수동 입력 통합 방법 및 장치
US6300947B1 (en) * 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
AU2001231259A1 (en) * 2000-02-04 2001-08-14 America Online Incorporated System and process for delivering and rendering scalable web pages
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
EP1346294A2 (en) * 2000-12-18 2003-09-24 Kargo, Inc. A system and method for delivering content to mobile devices
US6677932B1 (en) * 2001-01-28 2004-01-13 Finger Works, Inc. System and method for recognizing touch typing under limited tactile feedback conditions
CA2436542A1 (en) * 2001-01-31 2002-08-08 Computer Associates Think, Inc. System and method for defining and presenting a composite web page
US6570557B1 (en) * 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
US6809745B1 (en) * 2001-10-01 2004-10-26 Adobe Systems Incorporated Compositing two-dimensional and 3-dimensional images
EP1351477A1 (en) 2002-04-03 2003-10-08 BRITISH TELECOMMUNICATIONS public limited company An engine and a method for building a representation of structured information for use with a voice interface
US7441047B2 (en) * 2002-06-17 2008-10-21 Microsoft Corporation Device specific pagination of dynamically rendered data
US20040227767A1 (en) * 2002-06-20 2004-11-18 Alberto Baroncelli Vector graphics circuit accelerator for display systems
US7065707B2 (en) * 2002-06-24 2006-06-20 Microsoft Corporation Segmenting and indexing web pages using function-based object models
US20040012627A1 (en) * 2002-07-17 2004-01-22 Sany Zakharia Configurable browser for adapting content to diverse display types
US7673304B2 (en) 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7362311B2 (en) * 2003-04-07 2008-04-22 Microsoft Corporation Single column layout for content pages
US8291009B2 (en) * 2003-04-30 2012-10-16 Silicon Graphics International Corp. System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
JP3982454B2 (ja) * 2003-05-27 2007-09-26 ソニー株式会社 携帯型電子機器、ウェブページ処理方法およびプログラム
US7197702B2 (en) * 2003-06-13 2007-03-27 Microsoft Corporation Web page rendering mechanism using external programmatic themes
US20050012751A1 (en) * 2003-07-18 2005-01-20 Karlov Donald David Systems and methods for efficiently updating complex graphics in a computer system by by-passing the graphical processing unit and rendering graphics in main memory
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US8063916B2 (en) * 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
US20050154982A1 (en) * 2004-01-13 2005-07-14 International Business Machines Corporation Apparatus, system and method of importing cascading style sheets to macromedia flash
US20070192818A1 (en) * 2004-10-12 2007-08-16 Mikael Bourges-Sevenier System and method for creating, distributing, and executing rich multimedia applications
WO2006046523A1 (ja) * 2004-10-25 2006-05-04 Nec Corporation 文書解析システム、及び文書適応システム
US7586492B2 (en) 2004-12-20 2009-09-08 Nvidia Corporation Real-time display post-processing using programmable hardware
US7499051B1 (en) * 2005-04-29 2009-03-03 Adobe Systems Incorporated GPU assisted 3D compositing
US7663635B2 (en) 2005-05-27 2010-02-16 Ati Technologies, Inc. Multiple video processor unit (VPU) memory mapping
US7681200B2 (en) * 2005-07-22 2010-03-16 Microsoft Corporation Secure hardware desktop buffer composition
US20070169066A1 (en) * 2005-11-17 2007-07-19 Nielsen Spencer J System and method for an extensible 3D interface programming framework
US7911467B2 (en) * 2005-12-30 2011-03-22 Hooked Wireless, Inc. Method and system for displaying animation with an embedded system graphics API
US7882380B2 (en) 2006-04-20 2011-02-01 Nvidia Corporation Work based clock management for display sub-system
US20070294646A1 (en) * 2006-06-14 2007-12-20 Sybase, Inc. System and Method for Delivering Mobile RSS Content
US9019300B2 (en) * 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8130226B2 (en) 2006-08-04 2012-03-06 Apple Inc. Framework for graphics animation and compositing operations
CN100583022C (zh) * 2006-09-27 2010-01-20 联想(北京)有限公司 获取计算机屏幕图像的方法
US8612847B2 (en) * 2006-10-03 2013-12-17 Adobe Systems Incorporated Embedding rendering interface
US8234392B2 (en) * 2006-11-17 2012-07-31 Apple Inc. Methods and apparatuses for providing a hardware accelerated web engine
JP4230528B1 (ja) * 2008-02-20 2009-02-25 シャープ株式会社 表示処理装置、表示処理装置を備えた携帯電話機、表示処理方法、制御プログラム、および、記録媒体
US8477143B2 (en) * 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration

Also Published As

Publication number Publication date
WO2009111051A1 (en) 2009-09-11
US20090228782A1 (en) 2009-09-10
EP2252947A1 (en) 2010-11-24
JP2011513855A (ja) 2011-04-28
KR101298370B1 (ko) 2013-08-20
EP2252947B1 (en) 2019-04-24
US9418171B2 (en) 2016-08-16
JP5171968B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
KR101298370B1 (ko) 웹 기반 컨텐츠의 렌더링 가속
US11159922B2 (en) Layers in messaging applications
US8234564B2 (en) Transforms and animations of web-based content
KR102307163B1 (ko) 크로스 플랫폼 렌더링 엔진
US10207190B2 (en) Technologies for native game experience in web rendering engine
US9311426B2 (en) Orientation-dependent processing of input files by an electronic device
EP3255909A1 (en) Messaging application interacting with one or more extension applications
US20090276730A1 (en) Techniques for navigation of hierarchically-presented data
EP3944641A1 (en) Message extension app store
EP2245589B1 (en) Multi-context graphics processing
US20090228779A1 (en) Use of remote services by a local wireless electronic device
US20090235189A1 (en) Native support for manipulation of data content by an application
JP6440828B2 (ja) デジタルコンテンツの可視性の検出
KR102310654B1 (ko) 디스플레이 콘텐츠의 리사이징 기법
US20190012821A1 (en) Displaying images associated with apps based on app processing task progress statuses
KR102350540B1 (ko) 디지털 컴포넌트 배경 렌더링
TW201435713A (zh) 在修改期間保留內容區域之佈局
US20140229823A1 (en) Display apparatus and control method thereof
WO2018226989A1 (en) Displaying images associated with apps based on app processing task progress statuses
CN107943805B (zh) 一种动画渲染及发布方法、装置
US20110154225A1 (en) Method and device to modify an electronic document from a mobile environment with server assistance
CN114995929B (zh) 一种弹窗的显示方法及装置
US20090228906A1 (en) Native support for manipulation of multimedia content by an application
US20230342018A1 (en) Dynamic element control method, electronic device, and computer readable storage medium
US10417327B2 (en) Interactive and dynamically animated 3D fonts

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 6