KR101499372B1 - 최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들 - Google Patents

최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들 Download PDF

Info

Publication number
KR101499372B1
KR101499372B1 KR1020137007025A KR20137007025A KR101499372B1 KR 101499372 B1 KR101499372 B1 KR 101499372B1 KR 1020137007025 A KR1020137007025 A KR 1020137007025A KR 20137007025 A KR20137007025 A KR 20137007025A KR 101499372 B1 KR101499372 B1 KR 101499372B1
Authority
KR
South Korea
Prior art keywords
animation
rate
rendering
rendering format
processor
Prior art date
Application number
KR1020137007025A
Other languages
English (en)
Other versions
KR20130048257A (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 KR20130048257A publication Critical patent/KR20130048257A/ko
Application granted granted Critical
Publication of KR101499372B1 publication Critical patent/KR101499372B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

본 방법 및 장치들은 프로세싱 리소스 제약 및 렌더링 프로세싱이 상기 최소 프레임 레이트 프리젠테이션을 지원할 수 없는 경우에도 최소 프레임 레이트에서 그래픽 이미지들의 렌더링을 가능하게 한다. 그래픽이 렌더링되는 동안, 컴퓨팅 디바이스의 프로세서는 상기 달성된 프레임 레이트를 모니터링할 수도 있다. 프레임 레이트가 최소 임계값 미만으로 떨어지면, 상기 프로세서는 현재 속도 또는 상기 이미지의 이동 레이트를 주시할 수도 있으며, 계산적으로 덜 복잡한 그래픽 아이템들의 렌더링을 시작할 수도 있다. 계산적으로 덜 복잡한 아이템들의 렌더링은 상기 프로세서가 렌더링된 아이템들의 상기 속도가 상기 주시된 속도 미만이라고 주시할 때까지 계속된다. 이 때, 정규의 그래픽 렌더링이 권장될 수도 있다. 상기 양태들은 하나 보다 많은 유형의 계산적으로 덜 복잡함 아이템 또는 렌더링 포맷에 적용될 수 있다. 상기 여러 양태들은 폭넓은 애니메이션들 및 이동 그래픽들 뿐만 아니라 스크롤 텍스트, 웹페이지 등에도 적용될 수도 있다.

Description

최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들{GRAPHICS RENDERING METHODS FOR SATISFYING MINIMUM FRAME RATE REQUIREMENTS}
본 발명은 일반적으로 컴퓨터 유저 인터페이스 시스템들 및 보다 자세하게는 그래픽 렌더링 방법들에 관한 것이다.
모바일 컴퓨팅 디바이스들 (예를 들어, 셀폰들, PDA들, 및 게임 디바이스들) 은 개인용 서류 정리함의 역할을 하고, 문서들, 사진들, 비디오들 및 음악을 저장할 뿐만 아니라 인터넷 및 전자 메일로의 포털로서의 역할을 하는 것으로서 매우 대중화되어 있다. 문서들 (예를 들어, 음악 파일 및 연락처 목록들) 은 이러한 디바이스들의 소형 디스플레이 내에 맞추기 위하여, 스크롤링 또는 패닝 기능들에 의해 제어될 수 있는 뷰어에 일반적으로 디스플레이된다. 디지털 파일들의 리스트 전반에 걸친 문서 이미지 또는 구문의 전부 또는 일부를 보기 위하여, 소프트웨어 개발자는 일반적으로 모바일 디바이스들 상에서의 이용을 위하여 생성된 스크롤 또는 패닝 기능들을 포함한다.
여러 양태들은 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 단계, 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우 계산적으로 덜 복잡한 아이템들을 렌더링하는 단계로서, 상기 계산적으로 덜 복잡한 아이템들은 정규 아이템들보다 고속으로 렌더링될 수 있는, 상기 렌더링하는 단계, 최소 허용가능 값 미만이라고 판정되는 경우 애니메이션의 속도를 저장하는 단계, 및 애니메이션의 속도가 저장된 속도 미만으로 떨어지는 경우, 정규 아이템들을 입력하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법을 포함한다. 모니터링된 프레임 레이트는 여러 방식들 중 하나로 결정될 수도 있다. 예를 들어, 프레임 레이트는 미리 정의된 이전 간격 동안에 프레임들의 수에 기초할 수도 있다. 다른 실시예에서, 프레임 레이트는 진행중인 평균 레이트 (running average rate) 를 반영하는 프레임 레이트의 계산 또는 실현된 프레임 레이트들의 진행중인 평균에 기초할 수도 있다. 플레이스홀더 아이템들은 애플리케이션의 일부로서 정의될 수도 있다. 계산적으로 덜 복잡함은 보다 낮은 해상도로 되고 렌더링하기에 비용이 드는 그래픽 엘리먼트들을 생략하고 보다 작은 사이즈이고 덜 디테일한 이미지 오브젝트, 및 렌더링하기에 계산적으로 덜 복잡하게 달리 이루어지거나 메모리로부터 리콜될 수 있는 고정 이미지 엘리먼트들을 포함할 수도 있다. 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF (portable document format) 문서의 고속 스크롤 또는 팬, 파워포인트 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나일 수도 있다.
다른 양태는 디스플레이 애니메이션의 개시시에 이미지들을 렌더링하기 위한 제 1 렌더링 포맷을 지정하는 단계, 지정된 렌더링 포맷을 이용하여 이미지들을 렌더링하는 단계, 디스플레이 애니메이션 동안에 렌더링되는 프레임 레이트를 모니터링하는 단계; 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어지는 경우를 판정하는 단계, 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진다고 판정되는 경우 이미지들을 렌더링하기 위한 제 2 렌더링 포맷을 지정하는 단계로서, 상기 제 2 렌더링 포맷은 제 1 렌더링 포맷 보다 적은 프로세싱을 요구하는, 상기 지정하는 단계, 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우, 애니메이션의 제 1 속도를 저장하는 단계, 애니메이션의 속도가 저장된 제 1 속도보다 작은 경우를 판정하는 단계, 및 현재 지정된 렌더링 포맷이 제 2 렌더링 포맷이고 애니메이션의 속도가 저장된 제 1 속도보다 작다고 판정하는 경우 제 1 렌더링 포맷을 지정하는 단계를 포함한, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법을 포함할 수도 있다. 본 방법은 현재 지정된 렌더링 포맷이 제 2 포맷이고, 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진다고 판정되는 경우, 이미지를 렌더링하기 위한 제 3 렌더링 포맷을 지정하고 애니메이션의 제 2 속도를 지정하는 단계, 애니메이션의 속도가 저장된 제 2 속도보다 작은 경우를 판정하는 단계, 및 현재 지정된 렌더링 포맷이 제 3 렌더링 포맷이고 애니메이션의 속도가 저장된 제 2 속도보다 작다고 판정되는 경우 제 2 렌더링 포맷을 지정하는 단계를 더 포함할 수도 있다. 본 방법은 이미지들을 렌더링하기 위한 제 4 렌더링 포맷을 지정하는 단계, 현재 지정된 렌더링 포맷이 제 3 포맷이고 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진다고 판정된 경우 애니메이션의 제 3 속도를 저장하는 단계, 애니메이션의 속도가 저장된 제 3 속도보다 작은 경우를 판정하는 단계, 및 현재 지정된 렌더링 포맷이 제 4 렌더링 포맷이고 애니메이션의 속도가 저장된 제 3 속도보다 작다고 판정되는 경우 제 3 렌더링 포맷을 지정하는 단계를 더 포함할 수도 있다. 제 1, 제 2 및 제 3 렌더링 포맷들은 애플리케이션의 일부로서 정의될 수도 있다. 모니터링된 프레임 레이트는 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초할 수도 있거나 진행중인 평균 프레임 레이트에 기초할 수도 있다. 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 파워포인트 프레젠테이션의 고속 스크롤 및 사전 이미지들의 고속 스크롤 또는 팬 중 하나일 수 있거나 게임 애플리케이션에 의해 생성될 수도 있다.
다른 양태는 프로세서에 직접 커플링된 메모리 및 디스플레이를 포함하고 프로세서가 상술한 방법들의 동작들을 수행하도록 프로세서 실행가능 명령들에 의해 구성된 컴퓨팅 디바이스를 포함한다. 다른 양태는 상술한 방법들의 동작들을 수행하기 위한 수단을 포함하는 컴퓨팅 디바이스를 포함한다. 다른 양태는 컴퓨팅 디바이스의 프로세서로 하여금 상술한 방법들의 동작들을 수행하게 하도록 구성된 프로세서 실행가능 명령들이 저장된 비일시적 프로세서 판독가능 저장 매체를 포함한다.
첨부 도면들은 본원에 통합되고 이 출원서의 일부를 구성하며, 본 발명의 예시적인 양태들을 도시한다. 위에서 주어진 전반적인 설명 및 아래에 주어지는 상세한 설명과 함께 본 발명의 특징들을 설명하는데 기여한다.
도 1 은 터치스크린 디스플레이 상의 리스트 문서를 나타낸 포터블 컴퓨팅 디바이스의 전방 도면을 나타낸다.
도 2 는 컴퓨팅 디바이스에서의 아이템들의 리스트를 렌더링하기 위한 종래 기술의 방법의 프로세스 흐름도이다.
도 3a 및 도 3b 는 고속 스크롤 시퀀스 동안에 시간 함수로서 이동 (스크롤링) 속도를 나타낸 예시적인 리스트 스크롤 프로파일을 나타낸 그래프들이다.
도 4a 및 도 4b 는 Y 축 상에서의 예시적인 리스트 스크롤 애니메이션 프로파일 및 대응하여 렌더링된 Z 축 상에서의 프레임 레이트들 대 X 축 상에서의 프레임 레이트들을 나타내는 3차원 그래프들이다.
도 5a 내지 도 5c 는 렌더링된 아이템들이 여러 양태들에 따라 고속 스크롤 이벤트 동안에 조정될 수도 있는 방법을 나타내는 그래프들이다.
도 6a 는 연락처 목록에서의 아이템들의 예시적인 리스트의 표현이다.
도 6b 및 도 6c 는 도 5a 에 나타낸 예시적인 리스트를 지원하는 여러 양태들에 이용될 수도 있는, 부담이 적고 (lightweight) 계산적으로 덜 복잡한 예시적 아이템들의 표현들이다.
도 7 은 컴퓨팅 디바이스로 하여금 적어도 최소 프레임 레이트로 디스플레이 애니메이션을 렌더링하게 하는 일 양태의 방법의 프로세스 흐름도를 나타낸다.
도 8a 및 도 8b 는 계산적으로 덜 복잡한 아이템의 하나 보다 많은 유형을 구현하는 대안의 양태들을 나타내는 그래프들이다.
도 9 는 컴퓨팅 디바이스로 하여금 하나 보다 많은 유형의 계산적으로 덜 복잡한 아이템 또는 렌더링 포맷을 이용하여 적어도 최소 프레임 레이트로 이미지들을 렌더링하게 하는 일 양태의 방법의 프로세스 흐름도이다.
도 10 은 여러 양태들이 이동하는 그래픽들을 생성하는 임의의 애플리케이션에서 구현될 수도 있는 방법을 나타내는 그래프이다.
도 11 은 여라 양태들에 이용하기에 적합한 예시적인 컴퓨터 포터블 컴퓨팅 디바이스의 컴포넌트 블록도이다.
도 12 는 여러 양태에 이용하기에 적합한 예시적인 퍼스널 컴퓨터의 상호보완 블록도이다.
여러 양태들이 첨부 도면들을 참조하여 상세히 설명될 것이다. 가능한 곳이라면 어디서든, 동일한 참조 번호들이 도면들 전체를 통해서 동일하거나 유사한 부분들을 참조하는데 사용될 것이다. 특정한 예들 및 구현예들에 대한 언급들은 예시의 목적을 위한 것이고, 발명 또는 청구항들의 범위를 제한하려는 의도는 아니다.
단어 "예시적인"은 여기서는 "예, 사례, 또는 예시로서 역할을 한다"는 의미로 사용된다. "예시적인" 것으로서 여기서 설명된 어떤 구현예라도 다른 구현예들보다 바람직하거나 유익하다고 생각할 필요는 없다.
여기에 이용된 용어 "컴퓨팅 디바이스" 및 "모바일 디바이스"는 셀룰러 전화기들, 퍼스널 텔레비젼 수신기들, 개인 휴대 정보 단말기들 (PDA), 팜톱 컴퓨터들, 노트북 컴퓨터들, 퍼스널 컴퓨터들, 무선 전자 메일 수신기들, 및 셀룰러 전화기 수신기들 (예를 들어, BLackberry® 및 Treo® 디바이스들), 멀티미디어 인터넷 실행가능 셀룰러 전화기들 (예를 들어, Blackberry Storm®, 및 프로그래밍가능 프로세서, 메모리 및 디스플레이를 포함하는 유사한 전자 디바이스들 중 어느 하나 또는 전부를 지칭한다. 본 발명의 여러 양태들을 나타내는데 이용되는 예시적인 양태에서, 컴퓨팅 디바이스는 일체형 터치스크린 디스플레이를 포함한 셀룰러 전화기이다. 그러나, 이 양태는 단지 여러 양태의 일 예시적인 구현예로서 제시되며, 이 때문에 청구항들에 언급된 청구물의 가능한 구현들을 배제하는 것으로 의도되지 않는다.
여기에 이용된 용어, "리스트"는 어레이, 링크된 리스트, 더블 링크된 리스트, 또는 순차적인 리스트로서 논리적으로 표현될 수 있는 임의의 유사한 데이터 구조를 포함한 여러 데이터 구조 중 임의의 하나를 지칭할 수도 있으며, 어느 쪽이든 간에 이러한 데이터 구조는 리스트 멤버들이 순차적으로 액세스되게 허용한다.
여러 양태에서, 본 방법 및 장치는 오브젝트들 또는 이미지들을 정규 포맷으로 렌더링하는 동안 프로세싱 리소스들이 최소 프레임 레이트를 충족시킬 수 없는 경우에도 컴퓨팅 디바이스로 하여금 최소 프레임 레이트 요건 (예를 들어, 초당 30 개의 프레임들) 내에서 이동하는 오브젝트들 또는 이미지들의 이미지들을 렌더링하게끔 한다. 여러 양태들에서, 컴퓨팅 디바이스의 프로세서는 이동하는 그래픽들 또는 아이템들의 렌더링 동안에 달성된 프레임 레이트를 모니터링할 수도 있다. 달성된 프레임 레이트가 최소 허용가능 값 (예를 들어, 초당 30개의 프레임들) 미만으로 떨어지는 경우, 프로세서는 렌더링된 오브젝트들 또는 아이템들의 현재 속도를 주시하고, 렌더링된 이미지들 내의 표준 그래픽 오브젝트들 또는 아이템들을 대체하는 "부담이 적고" 계산적으로 덜 복잡한 오브젝트들 또는 아이템들을 렌더링하기 시작할 수도 있다. 플레이스홀더 아이템들은 이들이 보다 고속으로 렌더링되고 보다 고속으로 생성되도록 정의 또는 선택되며, 이는 애니메이션에서 보다 고속의 프레임 레이트들이 달성되게 한다. 계산적으로 덜 복잡한 오브젝트들 또는 아이템들은 보다 낮은 해상도로 이루어지고 렌더링하기에 비용이 드는 그래픽 엘리먼트들을 제거하고 보다 작은 크기 또는 보다 덜 디테일한 이미지 오브젝트들, 및 메모리로부터 리콜될 수 있거나 렌더링하기에 계산적으로 덜 복잡하도록 이루어질 수 있는 고정 이미지 엘리먼트들을 포함할 수도 있다. 참조의 용이를 위하여, 이러한 계산적으로 덜 복잡한 이미지 아이템들을 여기서는 "플레이스홀더" 아이템들이라 지칭한다. 이러한 부담이 적은 플레이스홀더 아이템들의 렌더링은 프로세서는, 그래픽 아이템들의 속도가 프레임 레이트가 최소 허용가능 값 미만으로 떨어진 것과 동일 (또는 미만) 속도로 감소되었다고 결정할 때까지 계속될 수 있다. 이 상태가 검출되는 경우, 프로세서는 정규 (즉, 비-플레이스홀더) 오브젝트 또는 아이템들의 렌더링을 요청하기 시작할 수도 있다. 플레이스홀더 아이템들이 계산적으로 덜 복잡하도록 선택되어 이들이 레더링에 보다 적은 프로세싱을 요구하기 때문에 (이는 이들이 "부담이 적은 것"로서 지칭되는 이유가 된다), 프로세싱 리소스들은 플레이스홀더 아이템들을 최소 프레임 레이트에서 렌더링할 수 있으면서 애니메이션에 의해 요구되는 오브젝트 또는 아이템의 이동 레이트 (즉, 속도) 를 지원할 수 있다. 여기에서의 예시적인 실시예로서 이용된 애플리케이션은 고속 리스트 스크롤 애니메이션으로서, 이는 컴퓨팅 디바이스 터치스크린 디스플레이 상에서 유저의 "플릭 (flick)" 제스쳐에 응답하여 생성될 수도 있다. 여러 양태들은 부담이 적은 플레이스홀더 아이템들 중 하나 이상의 유형으로 구현되어, 렌더링된 그래픽 품질이 최적화되게 하면서 최소 프레임 레이트 요건을 지원하도록 할 수 있다.
여러 양태들이 이미지 아이템들 및 리스트 엘리먼트들 (예를 들어, 고속 리스트 스크롤 애니메이션) 을 참조로 아래 설명되어 있지만, 이 양태들은 또한 디스플레이 상에서 스크롤 또는 패닝되는 임의의 디스플레이된 컨텐츠 또는 이미지들에 적용될 수도 있다. 여러 양태들의 이러한 다른 애플리케이션들의 실시예들은 웹페이지 텍스트 및 이미지들, 워드 프로세싱 문서들, PDF 문서들, 파워포인트 프레젠테이션들, 텍스트 문서들, 사진 이미지들 (예를 들어, JPEG 및/또는 TIFF (tagged image file format) 이미지들), 컴퓨터 게임 그래픽들 등의 스크롤 또는 패닝을 포함한다.
여러 양태들을 설명하는데 유용한 예시적인 구현예들은 리스트의 고속 스크롤을 수반하며, 이는 유저가 모바일 컴퓨팅 디바이스 (예를 들어, 셀룰러 전화기) 상에 디스플레이된 연락처 목록 상의 플릭 제스쳐를 수행할 때 발생할 수도 있다. 연락처들의 리스트, 워드 프로세싱 문서, 또는 픽쳐 이미지들과 같은 문서의 전체 컨텐츠의 이미지가 (모바일 컴퓨팅 디바이스들에 통상적인 바와 같이) 디스플레이 영역 내에 맞추어지지 않을 수도 있기 때문에, 대부분의 그래픽 유저 인터페이스들 (GUI) 은 디바이스 뷰 윈도우 내에서 문서 이미지들을 이동할 수 있게 하는 스크롤 및 패닝 기능을 제공한다. 유저들은 터치스크린 디스플레이를 따라 손가락을 드래그하거나 버튼들을 눌러 GUI 내에서 이러한 스크롤 및 패닝을 실현하게 할 수 있다. 터치스크린 컴퓨팅 디바이스들 상의 GUI 시스템들에서 실행되는 통상의 문서 제어 제스쳐들은 드래그, 패닝, 스크롤 및 "플릭" 제스쳐들을 포함할 수 있다. 드래그, 패닝, 및 스크롤 제스쳐시, 표시된 이미지들이 유저의 손가락의 터치 위치를 따라 비교적 천천히 이동한다. 그러나, 플릭 제스쳐시에, 컴퓨팅 디바이스는 유저의 터치 제스쳐 파라미터들 (예를 들어, 플릭의 측정된 속도) 에 기초하여 결정된 거리에 대해, 표시된 문서를 고속으로 이동시킨다.
연락처 목록 상에서의 플릭 제스쳐를 수신하는 컴퓨팅 디바이스의 실시예는 도 1 에 도시되어 있다. 도 1 에 도시된 모바일 디바이스 (100) 에는 사진들 및 개인의 이름 및 전화번호들로 이루어진 연락처 목록 (104) 이 표현되어 있는 터치스크린 디스플레이 (102) 가 장착되어 있다. 이러한 모바일 디바이스 (100) 상에 구현된 GUI 는 일반적으로 플릭 제스쳐 기능을 지원하고 여기서 사용자는 터치 스크린에 손가락 (108) 을 대고 화살표 106 으로 나타낸 바와 같이, 표면으로부터 멀리 무엇인가를 튕기는 것 처럼, 손가락을 일 방향으로 매우 고속으로 움직이고 제스쳐의 종료시 디스플레이 (102) 로부터 손가락 (108) 을 들어올린다.
플릭 제스쳐가 표준 GUI 기능들이기 때문에, 많은 디바이스들 및 애플리케이션 개발자들은 일관성있는 결과들을 제공하는 제스쳐를 선호한다. 예를 들어, 플릭 제스쳐의 특정 속도에 응답하여 리스트 스크롤은 소정 시간 내에 미리 정해진 수의 아이템들 (즉, 리스트 엔트리들) 에 걸쳐 스크롤하도록 구성될 수도 있다. 이는 디바이스의 프로세싱 능력, 현재의 시스템 부하, 또는 렌더링되고 있는 아이템들의 복잡성과 무관하게, 유저들이 유저들의 컴퓨팅 디바이스의 일관성있는 결과를 경험하는 것 (즉, 동일한 플릭 제스쳐가 동일한 시간에 동일한 거리를 진행하는 리스트를 가져와야 함) 을 보장한다. 추가로, 리스트 (또는 다른 그래픽 애니메이션) 의 이동은 종종 미리 정의된 이동 거동을 시간의 함수로서 나타내도록 설계된다. 예를 들어, 많은 모바일 디바이스 GUI 시스템들 및 연락처 목록 애플리케이션들은 도 3a 에 나타낸 바와 같은 포물선의 속도 프로파일을 나타내도록 구성된다. 많은 프로그램된 애니메이션들에서 통상적인 바와 같이, 화살표 302 로 나타낸 애니메이션의 지속 기간은 애니메이션이 항상 동일한 지속 기간을 나타내도록 하는 미리 정의된 (즉, 일정한) 값이다. 이 방식으로, 리스트는 최종 리스트 위치에 정지하기 전에 일정한 속도 대 시간 궤도 (300) 를 따라 순간적으로 가속한 다음 감속하는 것으로 나타난다. 추가로, (곡선 (300) 아래의 영역인) 애니메이션에서 실현되는 이동량도 또한, 이동하는 오브젝트들 또는 아이템들이 프로세싱 용량 또는 렌더링된 이미지들의 복잡성과 무관하게 시작 위치로부터 동일한 거리에서 정지하도록 고정된다. 이러한 미리 정의된 거동은 애니메이션의 지속 기간 (예를 들어, 플릭 제스쳐가 개시된 이래부터의 시간) 에 의존하는 함수 또는 알고리즘의 형태로 구현될 수도 있다.
도 2 는 미리 정의된 속도 대 시간 거동에 따라 이동하는 디스플레이를 생성하도록 구현될 수도 있는 소프트웨어 동작들 (200) 의 일례이다. 애니메이션이 블록 202 에서 시작하는 경우, 블록 204 에서 애니메이션을 구현하는 프로세서가 타이머를 시작시켜, 애니메이션의 적절한 이동 거동을 결정하는데 이용하기 위한 시간 레퍼런스를 제공한다. 블록 206 에서, 프로세서는 타이머로부터 현재 시간을 이용하여, 표시된 오브젝트들 또는 아이템들이 다음 디스플레이된 프레임 (즉, 디스플레이 상에 표현된 다음 이미지) 에서 얼마나 멀리 이동해야 하는지를 계산할 수도 있다. 예를 들어, 애니메이션이 고속 리스트 스크롤이면, 블록 206 에서, 프로세서는 표시된 리스트에서의 각각의 아이템이 얼마나 멀리 이동해야 하는지 뿐만 아니라 상단 또는 하단에 디스플레이 윈도우에 상단 또는 하단에서 얼마나 많은 아이템들이 입력되고 있는지를 판정할 수도 있다. 블록 208 에서, 프로세서는 계산된 이동량을 이용하여 다음 렌더링될 이미지들 또는 아이템들을 결정할 수도 있다. 예를 들어, 프로세서는 이동량을 이용하여 다음 프레임에 렌더링되어야 하는 리스트 내의 아이템들을 식별할 수도 있다. 블록 210 에서, 프로세서는 오브젝트들이 렌더링될 아이템들임을 렌더링 엔진에 식별시키는 것에 의해서와 같이 다음 프레임의 렌더링 및 디스플레이 영역 내의 이들의 로케이션들을 요청할 수도 있다. 판정 블록 212 에서, 프로세서는 애니메이션이 완료되었는지를 판정할 수도 있고, 그렇지 않다면 (즉, 판정 블록 212 = "아니오"), 블록 206 으로 복귀하여 다음 순간 시간의 함수로서 이동량을 계산한다. 애니메이션이 완료되었다면 (즉, 판정 블록 212 = "예"), 애니메이션 시퀀스는 블록 214 에서 종료한다.
스크롤링하는 아이템들의 리스트와 같은 그래픽 이동이 보다 고속일 수록, 더 많은 아이템들이 단위 시간 당 생성되어 초기화되는 것이 필요하다. 리스트 아이템들의 생성, 초기화 및 렌더링은 시간이 걸린다. 보다 고속의 이동하는 그래픽들 (예를 들어, 리스트 스크롤 애니메이션) 은 초 당 더 많은 아이템들을 디스플레이하는 것을 요구하고 따라서, 단위 시간당 더 많은 새로운 이미지 오브젝트들을 초기화하는 것을 요구한다. 따라서, 보다 고속의 이동하는 그래픽들 (예를 들어, 리스트 스크롤 애니메이션) 에 대한 프레임의 렌더링은 보다 많은 리스트 아이템 생성 및 초기화가 요구되기 때문에 저속의 이동하는 그래픽 보다 시간이 더 오래 걸릴 수도 있다. 결과적으로, 달성된 프레임 레이트는 떨어진다. 몇몇 환경에서, 도 2 에 나타낸 방법에 따른 오브젝트들 및 이미지들의 생성 및 초기화는 최소 프레임 레이트 요건을 충족시킬 정도로 충분히 빠르게 수행되지 않을 수 있다. 이는 셀룰러 전화기들과 같은 모바일 디바이스에서 흔히 있는 일이지만 컴퓨팅 디바이스의 프로세싱 리소스들이 제한될 때 또는 오브젝트들 또는 아이템들이 고속으로 이동 중일 때, 및/또는 생성되고 초기화되고 렌더링될 오브젝트들 또는 아이템들이 계산적으로 어려울 때 (예를 들어, 컬러 사진들) 발생할 수도 있다. 달성된 프레임 레이트가 최소 프레임 레이트 요건 미만으로 떨어지는 경우, 디스플레이는 이미지 프레임들이 드롭되는 것처럼 깜박이는 것으로서 나타날 수도 있으며, 오브젝트들이 렌더링된 프레임들 간을 이동하는 거리는 이들이 불규칙 방식으로 점프 또는 이동하는 것으로 나타날 정도로 충분히 크게 된다. 이는 도 3a 에 나타낸 애니메이션으로 프로그래밍된 디스플레이 거동에 후속하여 오브젝트들의 생성, 초기화 및 렌더링을 시간의 함수로서 설명한 도 3b 에 나타내어 있다. 애니메이션의 시작에서와 같이 오브젝트들 또는 아이템들이 애니메이션에서 비교적 천천히 이동중인 동안, 프로세서는 실선 304 에 나타낸 바와 같이 원하는 최소 프레임 레이트 (예를 들어, 초당 30 개의 프레임들) 를 달성하기에 충분히 빠르게 오브젝트들 또는 아이템들의 생성, 초기화 및 렌더링가능할 수도 있다. 그러나, 이동하는 오브젝트들 또는 아이템들의 속도가 이들이 더 이상 프로세싱 리소스들에 의해 원하는 프레임 레이트 내에서 생성, 초기화 및 렌더링될 수 없는 포인트에 도달하면, 몇몇 프레임이 드롭 (306) 되기 때문에 깜박이는 디스플레이의 결과가 발생할 수 있는 반면, 표현된 프레임 (308) 은 오브젝트들 또는 아이템들이 프레임들 간의 인식가능 거리를 이동하였던 것으로 보여질 수도 있다. 이 열화된 비쥬얼 성능은, 실선 310 으로 나타낸 바와 같이 프로세서가 다시 최소 프레임 레이트를 지원할 수 있는 레벨로 오브젝트들 또는 아이템들의 속도가 감소할 때까지 계속될 수 있다.
이러한 디스플레이 성능 열화는 종종 제한된 컴퓨팅 파워를 갖는 모바일 컴퓨팅 디바이스들에서 발생할 수도 있으며 이에 따라 고속으로 이동중인 리스트 또는 다른 서브젝트의 렌더링에 의해 쉽게 압도될 수도 있다. 이러한 열화된 성능은, 퍼스널 컴퓨터와 같은 보다 큰 능력을 갖는 컴퓨팅 디바이스들이 프로세서-집중 백그라운드 동작들을 동시에 실행중이어서 이용가능 프로세싱 리소스들이 최소 프레임 레이트 요건들을 충족시키면서 요청된 이미지 렌더링 작업들을 유지하기에 충분하지 못한 경우, 이 컴퓨팅 디바이스들에 또한 발생할 수도 있다.
애플리케이션 개발자들은 통상적으로, 초당 30개의 프레임들과 같이 일부 최소 허용가능 값 이상인 프레임 레이트 성능을 보기를 선호한다. 역사적으로, 애플리케이션 개발자들은 애니메이션들의 인스텐시브 프로토타이핑에 의해 드롭되는 프레임들 또는 최소 허용가능 값 미만의 프레임 레이트들의 열화된 비쥬얼 성능을 회피하기 위해 많은 노력을 해왔다. 이러한 시행착오의 애플리케이션 개발은 시간 소모적이고 비용이 들며, 애니메이션 거동 및 이미지 렌더링에 영향을 줄 수도 있는 다양한 컴퓨팅 플랫폼들, 오퍼레이팅 상태들 및 백그라운드 프로세스들을 고려할 수 없다.
여러 양태들은 애플리케이션 개발 프로세스를 간략화하는 방식으로, 프레임 레이트들을 최소 허용가능 값 미만으로 떨어지게 하는 고속 그래픽 이동들의 문제를 해결한다. 여러 양태들에서 컴퓨팅 디바이스는 보다 신속하게 렌더링될 수 있어 (또는 적은 프로세싱을 요구하는 렌더링 포맷들을 구현하여), 이에 의해 디스플레이된 이미지들에서의 열화를 제어하면서 애니메이션이 최소 허용가능 프레임 레이트 요건을 충족하게끔 하는 계산적으로 덜 복잡함 이미지들 또는 오브젝트들 ("플레이스홀더") 을 대신 사용하도록 구성된다. 프로세서가 달성된 프레임 레이트를 모니터링하고 플레이스홀더 오브젝트들 또는 아이템들의 렌더링을 자동으로 구현하기 때문에, 애플리케이션 개발자는 디바이스의 렌더링 성능, 개개의 오브젝트들 또는 아이템들의 렌더링 시간, 또는 타겟 컴퓨팅 디바이스 상에서 실행하는 백그라운드 프로세스들에 주의를 기울일 필요가 없다. 그 대신에, 애플리케이션 개발자는 애플리케이션 소프트웨어 내에서 원하는 최소 프레임 레이트를 특정하고 렌더링 프로세스가 표준 그래픽 또는 아이템들에서의 최소 프레임 레이트를 유지할 수 없을 때 이용될 플레이스홀더 그래픽 아이템들을 특정 또는 제공할 수 있다.
여러 양태들의 동작이 도 4a 및 도 4b 에 나타나 있으며, 도 4a 및 도 4b 는 둘다 미리 프로그램된 오브젝트 이동 대 시간 프로파일 (300) 및 달성된 프레임 레이트들 (400) 을 시간의 함수로서 나타내는 3차원 그래프도들이다. 도 4a 를 참조하면, 플릭 제스쳐에 응답한 고속 리스트 스크롤의 실시예에서, 모바일 디바이스는 라인 (300) 에 나타낸 바와 같이 스크롤 속도 대 시간 프로파일을 추종하도록 구성될 수도 있다. 프로세싱 리소스 제한들로 인하여, 생성되고 개시되고 렌더링될 수 있는 초당 프레임들의 수 (즉, 달성된 프레임 레이트) 는 시간을 따라 리스트 스크롤의 속도가 증가함에 따라 변할 수도 있다. 이는 오브젝트들의 속도가 시간을 따라 증가함에 따라 감소하는 프레임 레이트를 보여주는 라인 (400) 으로 나타난다. 라인 (402) 은 디바이스 제조자 또는 애플리케이션 개발자에 의해 특정될 수 있는 바와 같이 원하는 최소 프레임 레이트에 대응한다. 여러 양태들에서, 라인 (300) 으로 나타낸 이동하는 애니메이션이 실행되고 있는 동안, 프로세서는 달성된 프레임 레이트의 트랙을 유지할 수도 있고, 포인트 404 에 나타낸 바와 같이 프레임 레이트 (400) 가 원하는 최소 프레임 레이트 (402) 미만으로 떨어질 때를 검출할 수도 있다. 이 상태가 검출되는 경우, 프로세서는 포인트 406 에서와 같이 그 순간에 오브젝트들 또는 아이템들의 애니메이션 속도를 주시하고 그 속도 또는 이동 파라미터들 (408) 을 메모리에 저장한다. 프로세서는 또한, 부담이 보다 적어 (즉, 이들 이미지를 생성하는데 적은 프로세싱을 요구하여), 이에 따라 애니메이션에서 정규 아이템들 보다 고속으로 렌더링할 수 있는 플레이스홀더 아이템들 또는 오브젝트들을 렌더링하기 시작한다.
도 4b 를 참조하여 보면, 플레이스홀더 아이템들의 렌더링은 애니메이션 속도가 계속 증가할 때에도 프레임 레이트가 최소 허용가능 프레임 레이트 (402) 를 초과하여 증가하게끔 한다. 이는 프로세서가 플레이스홀더 아이템들을 렌더링하기 시작할 때까지 정규 아이템들을 렌더링하는데 달성된 프레임 레이트가 선분 (410) 에서 감소하는 것을 보여주는 프레임 레이트의 그래프에 나타나 있으며, 이 포인트에서 선분 (412) 으로 나타낸 바와 같이 프레임 레이트가 최소값을 초과하여 증가한다. 그 후, 프로세서는 애니메이션의 속도가 프레임 레이트가 초기에 최소값 (402) 미만으로 떨어지는 속도 (408) 이하라고 결정될 때까지 플레이스홀더 아이템들을 렌더링하는 것을 계속한다. 이는 포인트 414 로서 도시되어 있다. 제 2 상태가 검출되면, 프로세서는 플레이스홀더 아이템들의 렌더링을 중단하고 정규 아이템들을 렌더링하는 것으로 되스위칭된다. 파선 416 으로 나타낸 바와 같이, 이는 달성된 프레임 레이트를 최소 프레임 레이트 (402) 이하의 레이트로 감소시키는 결과를 가져올 수도 있다. 애니메이션이 종점을 향하여 감속할 때, 선분 418 로 나타내어지는 달성된 프레임 레이트는 증가할 수도 있다. 도 4b 에 나타낸 바와 같이, 여러 양태들은 (가능할 경우 잠시동안을 제외하면) 달성된 프레임 레이트가 최소 프레임 레이트 (402) 를 초과하여 유지되는 결과를 가져올 수도 있다. 이러한 일관성있는 프레임 레이트 거동은 프로세서에 쉽게 이용가능한 값들에 대한 두개의 단순 비교, 즉, (프로세서에 이미 알려져 있을 수도 있는 값인) 달성된 프레임 레이트를 최소 임계값에 대해 비교하고 애니메이션 속도를 메모리에 저장된 값에 대해 비교하는 것을 수행함으로써 실현된다.
고속 리스트 스크롤 애니메이션 (300) 의 실시예에서의 여러 양태들의 동작은 도 5a 내지 도 5c 에 추가로 설명되어 있다. 도 5a 를 참조하여 보면, 리스트 스크롤 애니메이션의 시작시, 렌더링된 리스트 아이템들의 달성된 프레임 레이트는 리스트 아이템들 속도 (즉, 초당 오브젝트 거리) 가 증가할 때 최소 임계값을 초과하여 유지되어, 정규 리스트 아이템들이 라인 (502) 으로 나타난 바와 같이 렌더링된다. 도 5b 를 참조하여 보면, 달성된 프레임 레이트가 최소값 이하라고 프로세서가 판정할 때 (이는 포인트 504 에서 판정됨), 프로세서는 현재 리스트 아이템 속도 (506) 를 저장하고 파선 508 로 나타낸 바와 같이 플레이스홀더 아이템들을 렌더링하기 시작한다. 프로세서는 포인트 510 으로 나타낸 바와 같이, 리스트 아이템 속도가 다시 한번, 저장된 리스트 아이템 속도 (506) 이하에 있을 때까지 플레이스홀더 아이템들을 렌더링하는 것을 계속한다 (라인 508). 그 후, 프로세서는 도 5c 에 도시된 라인 512 로 나타낸 바와 같이 정규 아이템들을 렌더링하는 것으로 복귀한다.
폭넓은 플레이스홀더 아이템들은 즐기는 유저의 비쥬얼 경험을 가능하게 하는 여러 양태들로 구현될 수도 있다. 플레이스홀더 아이템들의 특성은 애니메이션 중인 문서의 유형 뿐만 아니라 애니메이션의 유형에 의존할 수도 있다. 또한, 도 10 을 참조로 아래 설명된 바와 같이, 여러 양태들이 플레이스홀더 아이템이 특성상 매우 일반적일 수도 있고 애플리케이션 개발자에 의해 정의될 수도 있는 일반 컴퓨터 그래픽 애니메이션들에 적용될 수도 있다. 리스트 애플리케이션에 적합한 플레이스홀더 아이템들의 예들이 도 6a 내지 도 6d 에 나타나 있다.
도 6a 를 참조하여 보면, 셀룰러 전화기용 콘택트 애플리케이션과 같은 많은 데이터 레코드들을 포함한 애플리케이션은 리스트 (600) 의 형태로 데이터를 조직화할 수 있으며 리스트는 사진들 (602) 및 텍스트 데이터 (604) 와 같은 다양한 데이터 엘리먼트들을 포함할 수도 있다. 이러한 리스트 전반을 스크롤하기 위하여, 유저들은 키들을 누를 수도 있거나 터치스크린 디스플레이 (예를 들어, 도 1 에 나타낸 바와 같이) 터치스크린 디스플레이 상의 터치 제스쳐를 실행하여, 리스트가 스크롤하게끔 할 수도 있다. 리스트가 스크롤할 때, 애플리케이션은 604 에서 이미지들 (602) 각각 및 텍스트 데이터 모두를 포함하는 리스트 (600) 의 가시적인 부분 내에서 이미지들 모두를 렌더링하도록 프로세서에 요청할 수 있다.
도 6b 를 참조하여 보면, 여러 양태들에 이용될 수도 있는 플레이스홀더 아이템들 (610) 의 일 형태는 개개인의 이미지들 (602) 을 표준의 (즉, 변화하지 않는) 단순 그래픽 (612) 으로 대체하는 것을 포함한다. 이러한 표준의 단순 그래픽 (612) 은 사진 (602) 보다 렌더링하기에 훨씬 쉬울 수도 있어, 리스트가 고속으로 스크롤하는 경우에도 텍스트 데이터 (604) 를 포함하는 플레이스홀더 아이템들이 최소 프레임 레이트에서 렌더링되게끔 한다. 단순 그래픽 (612) 이 다양한 상이한 사진들 (602) 을 렌더링하는 것보다 적은 프로세싱을 요구하기 때문에, 도 6b 에 나타낸 플레이스홀더 아이템들은 도 6a 에 도시된 정규 아이템들 보다 "부담이 적다".
훨씬 부담이 적은 예시적인 플레이스홀더 아이템이 도 6c 에 도시되어 있으며, 여기서 사진들 (602) 은 블랭크 공간 (622) 으로 대체된다. 여기서는 단순 그래픽 (612) 조차도 렌더링할 필요가 없기 때문에, 도 6c 에 도시된 플레이스홀더 아이템들 (620) 은 고속 스크롤 이동 동안에 여전히 최소 프레임 레이트를 달성하면서 리스트 텍스트 데이터 (604) 가 렌더링된 이미지들 내에 포함되게끔 할 수도 있다.
최소 프레임 레이트 미만으로 떨어짐이 없이 심지어 텍스트 데이터 (604) 가 애니메이션에서 렌더링될 수 없는 포인트까지 고속 스크롤 애니메이션 속도가 증가하면, 도 6d 에 나타낸 바와 같이, 훨씬 더 부담이 적은 플레이스홀더 아이템이 이용될 수도 있다. 이 플레이스홀더 아이템 (630) 에서는, 텍스트 데이터가 표준 그래픽 (632) 으로 대체되어, 개개인의 테스트 데이터가 렌더링될 필요가 없다. 리스트 아이템 데이터에 대해 표준 그래픽 (632) 을 이용하는 것은 프로세서로 하여금 (버퍼에 저장될 수도 있는) 동일한 그래픽 이미지를 디스플레이 상의 상이한 위치들에 위치시켜 특정 아이템들을 렌더링할 필요없이 이동 착시를 생성함으로써 이미지들을 간단히 렌더링하게끔 할 수도 있다.
도 6b 내지 도 6d 에 나타낸 실시예들은 유저에게 상당히 적은 데이터를 표현하는 것으로 나타나 있지만, 이들 플레이스홀더 아이템들의 표현은 고속 애니메이션 동안에만 발생한다. 따라서, 유저는 실제 사진들 (602) 이 도 6b 에 나타낸 바와 같이 표준 그래픽 (612) 으로 대체되었다는 것을 알지 못할 수도 있다. 훨씬 더 높은 속도에서는, 유저는 사진들이 디스플레이되지 않았다는 것을 알지 못할 수도 있거나 또는 도 6c 에 나타낸 바와 같이 사진들이 표현되지 않음을 신경쓰지 못할 수도 있다. 훨씬 더 높은 속도에서, 유저는 텍스트 형태 그래픽으로부터 이동중인 텍스트를 구별할 수 없을 수도 있고 그에 따라 텍스트가 고속으로 이동하고 있었던 것처럼 나타나도록 구성된 그래픽 플레이스홀더 아이템 (632) 으로 텍스트 데이터 (604) 가 대체되었다는 것을 알지 못할 수도 있다.
여러 상이한 종류의 플레이스홀더 아이템들이 애플리케이션 개발자들에 의해 정의될 수도 있는 바와 같이 구현될 수도 있다. 예를 들어, 리스트 애플리케이션 (예를 들어, 연락처 목록 또는 폰북 애플리케이션) 에서, 렌더링된 이미지들로부터 데이터 일부를 드롭시킴으로써, 부담이 적은 플레이스홀더 아이템들이 제공될 수도 있다. 예를 들어, 연락처 목록 스크롤 애니메이션에서, 연락처 주소 및 전화번호 데이터가 렌더링된 아이템들로부터 드롭될 수도 있고 단지 개개인의 이름들만이 플레이스홀더 아이템들에 나타나게 할 수도 있다. 몇몇 구현예들에서, 정보의 카테고리들을 드롭시키는 것은 리스트가 고속으로 스크롤하고 있는 동안에는 소정 높이의 각각의 리스트 아이템을 가져올 수 있고, 스크롤 속도가 감소할 때에는 카테고리가 확장하거나 또는 카테고리들에 대한 플레이스홀더 엔티티들이 채워지게 된다. 따라서, 플레이스홀더의 이용은 스크롤링 리스트에서의 아이템들의 높이에 영향을 줄 수도 있다. 다른 예로서, 쉐이딩, 그룹 식별자들 및 다른 리스트 아이템 이미지 인핸스먼트들이 애니메이션 이미지들로부터 드롭되어, 부담이 적은 플레이스홀더 아이템들이 제공될 수도 있다. 다른 예로서, 플레이스홀더들은 리스트의 현재 위치의 인덱스 문자의 표시 (예를 들어, A, B, C 등) 와 같은 리스트 내의 헤딩부들 또는 세그먼트 헤더들로 축소될 수도 있다.
도 7 은 여러 양태들에 따라 컴퓨팅 디바이스 내에서 구현될 수도 있는 예시적인 방법 700 을 나타낸다. 애니메이션 (202)(예를 들어, 고속 리스트 스크롤 애니메이션) 의 시작시, 블록 204 에서, 컴퓨팅 디바이스는 애니메이션과 연관된 타이머를 시작시킬 수도 있다. 블록 206 에서, 컴퓨팅 디바이스는 오브젝트들 또는 아이템들 (예를 들어, 리스트 아이템들) 의 이동량을 현재 시간의 함수로서 계산할 수도 있고 블록 208 에서 이 계산에 기초하여 다음 프레임에서 렌더링될 오브젝트들 또는 아이템들을 결정할 수도 있다. 블록 210 에서, 컴퓨팅 디바이스는 렌더링 엔진에 의한 렌더링을 요청함에 의한 것과 같이, 결정된 오브젝트들 또는 아이템들의 렌더링을 개시한다. 블록 702 에서, 컴퓨팅 디바이스는 현재의 프레임 레이트가 렌더링 프로세스에서 달성되고 있음을 판정 또는 주시할 수도 있다. 달성된 현재의 프레임 레이트의 판정은 순시값 (예를 들어, 마지막 프레임의 렌더링 유지 기간), 진행중인 평균값 또는 통계적으로 결정된 값에 기초하여 미리 정의된 이전 시간 간격 (예를 들어, 이전 1/10 초) 내에서 렌더링되었던 프레임들의 수에 기초하여 계산될 수도 있다.
판정 블록 704 에서, 컴퓨팅 디바이스는 블록 702 에서 판정된 현재의 프레임 레이트가 최소 임계값보다 작은지 여부를 판정할 수도 있다. 프레임 레이트가 최소 레이트 이상인 경우 (즉, 판정 블록 704 = "아니오"), 컴퓨팅 디바이스는 판정 블록 212 에서 애니메이션이 완료되었는지 여부를 판정할 수도 있다. 애니메이션이 완료되지 않았다면 (즉, 판정 블록 212 = "아니오"), 애니메이션은 컴퓨팅 디바이스에 의해 블록 206 으로 복귀하는 것으로 진행하여 다음 이동량을 계산할 수도 있다. 애니메이션이 완료되었다면 (즉, 판정 블록 212 = "예"), 애니메이션은 블록 214 에서 종결된다.
애니메이션 동안에, 현재 달성된 프레임 레이트가 최소 임계값보다 작다고 컴퓨팅 디바이스가 판정하면 (즉, 판정 블록 704 = "예"), 블록 706 에서, 컴퓨팅 디바이스는 블록 206 에서 계산된 이동량 또는 현재의 애니메이션 속도를 메모리에 저장할 수도 있다. 블록 708 에서, 컴퓨팅 디바이스는 도 2 에서의 블록 206 을 참조로 위에서 설명된 것과 유사한 방식으로 현재 시간의 함수로서 다음 프레임에서의 이미지들 또는 아이템들의 이동량을 계산할 수도 있다. 선택 블록 710 에서, 컴퓨팅 디바이스는 블록 208 을 참조로 위에서 설명된 것과 유사한 방식으로 다음 프레임에서 렌더링될 다음 이미지들 또는 아이템들을 결정할 수도 있다. 몇몇 플레이스홀더 아이템들이 (예를 들어, 이들이 표준 그래픽 플레이스홀더들인 경우) 스크롤 중인 문서로부터 얻어지는 데이터의 렌더링을 수반하지 않을 수도 있기 때문에 이 결정은 선택적인데, 이 경우에, 렌더링을 위한 아이템들을 식별할 필요가 없다. 블록 712 에서, 컴퓨팅 디바이스는 (예를 들어, 렌더링을 완성하도록 렌더링 엔진에 요청함으로써) 플레이스홀더 아이템들을 렌더링할 수도 있다. 판정 블록 714 에서, 컴퓨팅 디바이스는 블록 708 에서 계산된 현재의 애니메이션 속도가 저장된 속도 값 (즉, 블록 706 에서 저장된 속도 값) 이하인지 여부를 판정할 수도 있다. 현재의 속도가 저장된 속도 값보다 크다면 (즉, 판정 블록 714 = "아니오"), 컴퓨팅 디바이스는 블록 708 로 복귀하여 다음 이동량을 현재 시간의 함수로서 계산하고 애니메이션을 진행한다.
현재의 애니메이션 속도가 저장된 속도 값 이하라고 컴퓨팅 디바이스가 판정하면 (즉, 판정 블록 714 = "예"), 컴퓨팅 디바이스는 판정 블록 212 으로 복귀하여, 애니메이션이 완료되었는지를 판정할 수도 있다. 애니메이션이 완료되지 않았다면, 컴퓨팅 디바이스는 위에 설명된 바와 같이 블록 206 으로 복귀함으로써 정규 아이템들을 렌더링하는 애니메이션으로 진행할 수도 있다.
추가의 양태에서는, 하나보다 많은 유형의 플레이스홀더 아이템이 구현되어 컴퓨팅 디바이스로 하여금 애니메이션 속도들의 범위에 걸쳐 허용가능한 그래픽 표현들과 함께 최소 프레임 레이트를 유지하게끔 할 수도 있다. 예를 들어, 도 8a 에 나타낸 바와 같이, 애플리케이션은 2개의 플레이스홀더 아이템들, 즉 중간 해상도 플레이스홀더 (또는 플레이스홀더 포맷) 과 낮은 해상도 플레이스홀더 (또는 플레이스홀더 포맷) 로 구성될 수도 있다. 이 예시적인 실시예에서, 정규 아이템들은 포인트 802 로 나타낸 바와 같이, 달성된 프레임 레이트가 최소값 미만으로 떨어질 때까지 (라인 502 로 나타낸 바와 같이) 렌더링될 수도 있다. 이 상태가 발생되면, 컴퓨팅 디바이스 프로세서는 현재의 애니메이션 속도를 저장하고 (804), 라인 806 으로 나타낸 바와 같이 중간 해상도 플레이스홀더 아이템들을 렌더링하기 시작한다. 중간 해상도 플레이스홀더 아이템들의 렌더링 (806) 은, 포인트 808 에서 나타낸 바와 같이, 달성된 프레임 레이트가 다시 최소값 미만이라고 프로세서가 판정할 때까지 계속된다. 두번째로 최소값 미만으로 떨어지는 프레임 레이트의 이 상태가 검출되는 경우, 컴퓨팅 디바이스는 메모리에 현재의 애니메이션 속도를 저장하고 (810), 낮은 해상도 플레이스홀더 아이템들을 렌더링하기 시작한다 (812). 낮은 해상도 플레이스홀더 아이템들의 렌더링 (812) 은 애니메이션 속도가 저장된 값 (810) 미만으로 떨어질 때까지 계속되고, 그 후, 컴퓨팅 디바이스는 중간 해상도 플레이스홀더 아이템들의 렌더링 (806) 을 시작한다. 중간 해상도 플레이스홀더 아이템들의 렌더링 (806) 은 애니메이션이 804 에서 저장된 값 미만을 떨어질 때까지 계속되며, 그 후, 컴퓨팅 디바이스는 정규 해상도 아이템들을 렌더링하기 시작한다 (502).
구현될 수도 있는 상이한 유형들의 해상도 플레이스홀더들 (플레이스홀더 포맷들) 의 수는 제한되지 않는다. 예를 들어, 도 8b 는 3 개의 상이한 플레이스홀더들이 구현되는 양태를 나타낸다. 이 실시예에서, 중간 및 낮은 해상도 플레이스홀더들의 구현은 도 8a 를 참조로 위에 설명된 바와 같이 진행할 수도 있다. 그러나, 프로세싱 리소스들이 포인트 820 에 나타낸 바와 같이, 중간 해상도 아이템들을 렌더링할 때 조차도 최소 프레임 레이트를 충족시킬 수 없는 경우, 컴퓨팅 디바이스는 라인 824 로 나타낸 바와 같이, 단순 쉐이딩 밴드, 단순 그래픽들 또는 플레이스홀더 텍스트와 같은 최소의 플레이스홀더들을 렌더링함으로서 최소 프레임 레이트를 유지할 수도 있다. 세번째로 최소값 미만으로 떨어지는 프레임 레이트의 상태를 검출한 경우, 컴퓨팅 디바이스는 현재의 애니메이션 속도를 메모리에 저장하고 (822) 최소 해상도 플레이스홀더 아이템들을 렌더링하기 시작한다 (824). 최소 해상도 플레이스홀더 아이템들 (844) 의 렌더링은 애니메이션 속도가 저장된 값 미만으로 떨어질 때까지 계속되며 (822), 그 후, 컴퓨팅 디바이스는 낮은 해상도 플레이스홀더 아이템들 (812) 을 렌더링하기 시작한다.
도 9 는 최소 프레임 레이트를 유지하기 위하여, 임의의 수의 상이한 유형의 플레이스홀더들 (또는 플레이스홀더 포맷들) 을 실행시키기 위한 일 양태들에 따라 컴퓨팅 디바이스에서 구현될 수도 있는 예시적인 방법 900 을 나타낸다. 방법 900 에 있어서, 블록 902 에서는, 애니메이션이 시작하고 이는 블록 904 에서 타이머를 시작시키는 것을 수반할 수 있다. 블록 906 에서, 컴퓨팅 디바이스는 렌더링 포맷을 정규 또는 표준 (F0) 으로서 지정함으로써 그리고 인덱스가 속도 기준 및 렌더링 포맷의 트랙을 유지하는데 이용되는 경우, 인덱스 i 를 초기화 (즉, i = 0 으로 설정) 함으로써 애니메이션을 초기화할 수도 있다. 이 동작은 애니메이션의 시작시, 정규 오브젝트들 또는 아이템들이 렌더링되어야 함을 나타내거나 또는 아이템들이 정규 포맷으로 렌더링되어야 함을 나타낸다. 블록 908 에서, 컴퓨팅 디바이스는 현재 시간의 함수로서 애니케이션의 속도 또는 이동 파라미터를 계산할 수도 있다. 블록 910 에서, 컴퓨팅 디바이스는 렌더링되어야 하는 다음 이미지 로케이션 또는 아이템들을 결정할 수도 있고 블록 912 에서, 현재 지정된 포맷을 이용하여 이들 이미지들 또는 아이템들의 렌더링을 요청할 수도 있다. 현재 지정된 포맷 (Fi) 은 블록 906 에서 또는 블록 924 또는 928 중 하나에서 지정된 포맷이다. 이 동작에서, 컴퓨팅 디바이스는 이용될 렌더링 포맷 뿐만 아니라 렌더링될 오브젝트들 또는 이미지들을 렌더링 엔진에 특정할 수도 있다. 블록 914 에서, 컴퓨팅 디바이스는 도 7 을 참조로 위에 설명된 것과 유사한 방식으로 현재 프레임 레이트를 주시 또는 결정한다. 판정 블록 916 에서, 컴퓨팅 디바이스는 프레임 레이트가 최소 임계값 미만인지 여부를 판정한다.
프레임 레이트가 최소 임계값 미만으로 떨어졌다고 컴퓨팅 디바이스가 판정하면 (즉, 판정 블록 916 = "예"), 속도 기준 및 렌더링 포맷의 트랙을 유지하는데 이용되는 경우, 블록 921 에서 인덱스 i 를 증분시키고, 현재 속도 또는 이동 파라미터를 스택에서와 같은 메모리에 또는 인덱스된 변수로서 (예를 들어, Si 로서) 저장하고, 렌더링 포맷을 다음으로 부담이 적은 플레이스홀더 포맷 (예를 들어, Fi) 으로서 지정할 수도 있다. 그 후, 컴퓨팅 디바이스는 판정 블록 920 에서 애니메이션이 완료되었는지 여부를 판정할 수도 있다. 애니메이션이 완료되었다면 (즉, 판정 블록 920 = "아니오"), 컴퓨팅 디바이스는 블록 908 으로 복귀하여 다음 이동 파라미터 또는 거리를 시간의 함수로서 계산함으로써 애니메이션을 계속 진행할 수도 있다. 블록 912 에서, 컴퓨팅 디바이스는 블록 924 에서 지정되었던 현재 지정된 포맷 (Fi) 을 이용하여 다음 이미지 또는 아이템들을 렌더링한다. 적은 프로세싱을 필요로 하는 (즉, "부담이 적은") 포맷을 지정함으로써, 컴퓨팅 디바이스는 특정된 애니메이션 속도와 매칭하면서 최소 프레임 레이트를 유지할 수 있다.
프레임 레이트가 최소 허용가능 프레임 레이트 미만이 아니라고 컴퓨팅 디바이스가 판정하면 (즉, 판정 블록 916 = "아니오"), 컴퓨팅 디바이스는 현재 애니메이션 속도 또는 이동 파라미터가 블록 922 에서 저장되었던 현재 저장된 속도 (Si) 이하인지 여부를 판정할 수도 있다. 현재의 속도가 현재 저장된 속도 Si 보다 크다면 (즉, 판정 블록 918 = "아니오"), 컴퓨팅 디바이스는 애니메이션이 판정 블록 920 에서 완료되었는지 여부를 판정할 수도 있다. 애니메이션이 완료되지 않았다면 (즉, 판정 블록 920 = "아니오"), 컴퓨팅 디바이스는 블록 908 으로 복귀하여 다음 이동 파라미터 또는 거리를 시간의 함수로서 계산함으로써 애니메이션을 계속 진행할 수도 있다.
블록들 908 내지 920 에서의 동작들은 애니메이션 동안에, 원하는 최소 프레임 레이트를 유지하기 위하여, 블록 924 에서 지정된 훨씬 부담이 적은 렌더링 포맷들 (Fi) 을 이용하여 진행할 수도 있다. 부담이 적은 포맷이 지정될 때마다, 컴퓨팅 디바이스는 인덱스 i 를 증분할 수도 있고 (블록 921), 또한 대응하는 애니메이션 속도 Si 를 저장할 수도 있다 (블록 922). 예를 들어, 플레이스홀더 포맷들이 쉐도우들을 제거하고 후속하여 다른 조명 효과들을 제거하고 후속하여 몇몇 이미지 엘리먼트들에 대한 카툰들을 대체시키고 후속하여 몇몇 이미지 엘리먼트들을 드롭시키는 것에 의한 것과 같이, 렌더링 복잡도를 순차적으로 감소시킬 수도 있다. 따라서, 임의의 수의 플레이스홀더 아이템들 (또는 플레이스홀더 포맷들) 은 플리커링 재현을 억제하기 위해 최소 프레임 레이트를 달성하면서 디스플레이된 이미지들이 증가 속도에 있어서 일관성있는 양을 유지하게끔 특정될 수도 있다.
현재 렌더링 포맷과 연관된 현재 속도 또는 이동 파라미터들이 저장된 속도 Si 미만이라고 컴퓨팅 디바이스가 판정하면 (즉, 판정 블록 918 = "예"), 컴퓨팅 디바이스는 블록 925 에서 인덱스 i 를 감분시키고, 블록 926 에서 이전 렌더링 포맷과 연관된 이전에 저장된 애니메이션 속도 (즉, 인덱스 i 가 감분된 후의 Si) 를 리콜하고, 블록 928 에서 다음으로 부담이 많은 렌더링 포맷 (즉, 인덱스 i 가 감분된 후의 Fi) 을 렌더링 포맷으로서 지정한다. 그 후, 컴퓨팅 디바이스는 애니메이션이 판정 블록 920 에서 완료되었는지 여부를 판정할 수도 있다. 애니메이션이 완료되었다면 (즉, 판정 블록 920 = "아니오"), 컴퓨팅 디바이스는 다음 이동 파라미터 또는 거리를 시간의 함수로서 계산함으로써 애니메이션을 계속 진행할 수도 있다. 블록 912 에서, 컴퓨팅 디바이스는 블록 924 에서 지정되었던 현재 지정된 포맷 Fi 를 이용함으로써 다음 이미지 또는 아이템들을 렌더링한다. 더 많은 프로세싱을 요구하는 렌더링 포맷을 지정함으로써, 컴퓨팅 디바이스는 지정된 애니메이션 속도에서 최소 프레임 레이트를 유지하면서 더 높은 해상도 또는 더 정규의 재현 이미지를 생성할 수 있다.
블록들 916, 922, 및 924 에서의 동작들은 최소 프레임 레이트를 유지하기 위하여 증가하는 애니메이션 요구들에 응답하여 훨씬 부담이 적은 렌더링 포맷들을 순차적으로 구현하는 것을 가능하게 하는 한편, 블록 918, 926, 및 928 에서의 동작들은 애니메이션 요구가 감소함에 따라 부담이 증가하는 렌더링 포맷을 구현하도록 이 프로세스를 순차적으로 되돌리게 한다. 따라서, 방법 900 은 컴퓨팅 디바이스로 하여금 원하는 최소 프레임 레이트를 유지시키기 위하여 플레이스홀더들 또는 렌더링 포맷들을 애플리케이션 개발자 사양에 일관되게 조정하게끔 한다.
상술한 예들은 리스트 애플리케이션 및 고속 리스트 스크롤 애니메이션을 지칭하고 있지만, 양태들 및 청구범위는 이러한 애플리케이션으로 제한되지 않으며, 임의의 애니메이션 루틴으로 구현될 수도 있다. 도 9 를 참조로 위에서 설명된 일반 방법은 예를 들어, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 파워포인트 프레젠테이션의 고속 스크롤 및 사진 이미지들 (예를 들어, JPEG 및/또는 TIFF 포맷 이미지들) 의 고속 스크롤 또는 팬을 포함하는, 고속으로 이동하는 이미지들 및 문서 아이템들을 렌더링하는 임의의 컴퓨팅 디바이스에서 구현될 수도 있다. 이러한 이미지 이동들은 (예를 들어, GUI 구현에서) 위에 설명된 바와 같이, 유저 입력들에 대한 응답일 수도 있지만, 컴퓨팅 디바이스 상에서 실행하는 게임 애플리케이션과 같은 애플리케이션의 정규 기능의 일부일 수도 있다.
또한, 애니메이션들은 도 5a 내지 도 5c, 도 8a 및 도 8b 에 나타낸 바와 같이 포물선형 또는 대칭형 시간 프로파일들을 따를 필요는 없다. 도 9 에 나타낸 방법 900 과 유사한 방법들을 구현하는 여러 양태들이 도 10 에 나타낸 바와 같은 비일관적 방식으로 프로세싱 요구에 따라 변하는 애니메이션들에 대해 구현될 수 있다. 예를 들어, 여러 양태들이 컴퓨터 게임에서 또는 컴퓨팅 디바이스의 실행 게임 애플리케이션에서 구현될 수도 있다.
도 10 은 도 9 에 나타낸 방법과 유사한 양태의 방법을 구현하는 컴퓨팅 디바이스가, 랜덤하게 변하는 오브젝트 속도를 나타내는 애플리케이션에 대한 시간의 함수로서 오브젝트 속도 또는 이동 파라미터들에 응답하여 렌더링 포맷을 어떻게 조정할 수 있는지를 나타내는 그래프이다. 컴퓨팅 디바이스가 최소 프레임 레이트에서 오브젝트들 또는 이미지들을 렌더링할 수 있는 한은, 렌더링은 라인 952 으로 나타낸 바와 같이 표준 또는 정규 렌더링 포맷을 이용하여 실현될 수도 있다. 애니메이션 및/또는 백그라인드 프로세스 결과의 요구들이, 포인트 954 에서 나타낸 최소 값 미만으로 떨어진 달성 프레임 레이트를 발생시키면, 컴퓨팅 디바이스는 현재의 오브젝트 속도 또는 이동 파라미터를 제 1 속도 값 (S1)(값 958) 으로서 저장할 수 있고, 라인 956 으로 나타낸 바와 같이, 오브젝트들 및 이미지들을 제 1 (예를 들어, 중간 해상도) 렌더링 포맷 (F1) 으로 렌더링하기 시작할 수도 있다. 현재 오브젝트 속도 또는 이동 파라미터들의 요구가 포인트 960 에 나타낸 바와 같이, 저장된 값 (958) 미만으로 떨어지는 경우, 컴퓨팅 디바이스는 표준 또는 정규 렌더링 포맷을 이용하여 오브젝트들 및 이미지들을 렌더링하는 것으로 복귀할 수도 있다. 애니메이션 및/또는 백그라운드 프로세스의 요구가 포인트 962 에 나타낸 바와 같이 다시 최소값 미만으로 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 그 오브젝트 속도 또는 이동 파라미터 값 (S1)(958) 을 다시 저장할 수도 있고, 제 1 렌더링 포맷 (F1) 을 이용하여 오브젝트들 및 이미지들을 렌더링하는 것으로 복귀한다. 컴퓨팅 디바이스는 애니메이션 및/또는 백그라운드 프로세스들의 요구가 포인트 964 에 나타낸 바와 같이 다시 최소값 미만으로 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 그 오브젝트 속도 또는 이동 파라미터 값 (S2)(968) 을 저장할 수 있고, 제 2 (예를 들어, 낮은 해상도) 렌더링 포맷 (F2) 을 이용하여 오브젝트들 및 이미지들을 렌더링하기 시작할 수도 있다. 현재 오브젝트 속도 또는 이동 파라미터들의 요구가 970 에 나타낸 바와 같이 저장된 값 (S2)(968) 미만으로 떨어지는 경우, 컴퓨팅 디바이스는 다음으로 부담이 많은 제 1 렌더링 포맷 (F1) 을 이용하여 오브젝트들 및 이미지들을 렌더링하는 것으로 복귀할 수도 있다. 애니메이션 및/또는 백그라운드 프로세스의 요구가 포인트 972 에 나타낸 바와 같이, 최소 값 미만으로 다시 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 다시 그 오브젝트 속도 또는 이동 파라미터 값 (S2)(968) 을 저장할 수 있고 제 2 렌더링 포맷 (F2) 을 이용하여 오브젝트들 및 이미지들을 렌더링하기 시작할 수도 있다. 애니메이션 및/또는 백그라운드 프로세스들의 요구가 포인트 964 에 나타낸 바와 같이 다시 최소 값 미만으로 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 그 오브젝트 속도 또는 이동 파라미터 값 (S2)(968) 을 저장할 수 있고 제 2 렌더링 포맷 (F2) 을 이용하여 오브젝트들 및 이미지들을 렌더링하기 시작할 수도 있다. 애니메이션 및/또는 백그라운드 프로세스들의 요구가 포인트 974 에 나타낸 바와 같이 다시 최소 값 미만으로 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 그 오브젝트 속도 또는 이동 파라미터 값 (S3)(978) 을 저장할 수 있고 제 3 (예를 들어, 그레디언트) 렌더링 포맷 (F3) 을 이용하여 오브젝트들 및 이미지들을 렌더링하기 시작할 수도 있다. 애니메이션 및/또는 백그라운드 프로세스의 요구가 포인트 980, 982, 및 984 에 각각 나타낸 저장된 속도 값 (S3, S2 및 S1) 미만으로 떨어지는 달성 프레임 레이트를 발생시키는 경우, 컴퓨팅 디바이스는 그에 따라 제 2 렌더링 포맷 (F2), 제 1 렌더링 포맷 (F1), 및 표준 또는 정규 렌더링 포맷으로 회귀할 수도 있다.
달성된 프레임 레이트에서의 변동들은 그래픽 애니메이션의 프로세싱 요구들 뿐만 아니라 오브젝트들 및 아이템들을 렌더링하는데 이용가능한 프로세싱 리소스들의 크기를 감소시키는 백그라운드 프로세스들에 부분적으로 기인할 수도 있음을 알아야 한다. 이러한 백그라운드 프로세스들은 애플리케이션 개발자들이 고려하기에 매우 어려울 수도 있다. 따라서, 본 양태들은, 백그라운드 프로세스가 컴퓨팅 디바이스의 이미지 렌더링 능력을 제한하는 경우에도, 컴퓨팅 디바이스로 하여금 애니메이션을 위하여 일관성있는 프레임 레이트 성능을 전달하는 것을 계속하게끔 한다. 렌더링 프로세스를 위한 플레이스홀더가 구현되었던 시간에 구현되었던 애니메이션 속도 또는 이동 파라미터들만의 트랙을 유지함으로써 여러 양태들은 백그라운드 프로세스들을 모니터링하거나 예측할 필요 없이, 애니메이션 및 백그라운드 프로세싱 요구들에서의 변동들만을 수용하는 단순 메카니즘을 제공한다. 소정의 플레이스홀더 구현과 연관된 애니메이션 속도 또는 이동 파라미터는 플레이스홀더 렌더링이 리세트될 때마다 (예를 들어, 다음으로 부담이 많은 렌더링 또는 정규 렌더링으로 복귀할 때마다) 리세트될 수도 있기 때문에, 본 양태는 복잡한 알고리즘 또는 디바이스 특정 구현들을 요구하거나 또는 이미지 렌더링을 불필요하게 축소시키지 않고 백그라운드 프로세스들에서의 동적 변동들을 수용할 수 있다.
추가의 양태에서, 컴퓨팅 디바이스는 애니메이션 그래픽들의 근최적의 렌더링을 가능하게 하면서 최소 프레임 레이트를 지원하는 플레이스홀더 또는 렌더링 포맷을 선택하도록 구성될 수도 있다. 이 양태에서, 컴퓨팅 디바이스는 이미지 품질에서의 최소한의 감소와 함께 최소 프레임 레이트를 충족시키게 하는 렌더링 포맷의 추측 또는 추정을 행할 수도 있다. 이러한 추측 또는 추정은 애니메이션의 현재 속도 또는 프로세싱 요구, 현재 프레임 레이트 성능 및/또는 백그라운드 프로세스 요구들에 기초할 수도 있다. 추측 또는 추정된 렌더링 포맷이 구현되면, 컴퓨팅 디바이스는 달성된 프레임 레이트를 모니터링하여, 프레임 레이트가 최소 프레임 레이트 초과인지 또는 미만인지 여부를 판정할 수도 있다. 달성된 프레임 레이트가 여전히 최소 임계값 미만이면, 컴퓨팅 디바이스는 부담이 적은 렌더링 포맷 (즉, 적은 프로세싱을 요구하는 렌더링 포맷) 을 구현할 수도 있고 달성된 프레임 레이트를 모니터링하는 것을 계속 진행할 수도 있다. 달성된 프레임 레이트가 임계 크기 만큼과 같이 최소값을 초과하면, 컴퓨팅 디바이스는 부담이 보다 많은 렌더링 포맷 (즉, 보다 많은 프로세싱을 요구하는 렌더링 포맷) 을 구현할 수도 있고, 달성된 프레임 레이트를 모니터링하는 것을 계속 진행할 수도 있다. 이 방식으로, 컴퓨팅 디바이스는 근최적 렌더링을 실현하도록 최소 프레임 레이트와 일관되어지는 렌더링 포맷을 지속적으로 조정할 수 있다. 이 양태에서, 애플리케이션 개발자들은 단지 최소의 원하는 프레임 레이트를 특정하고 여러 플레이스홀더들 또는 렌더링 포맷들을 식별 또는 특징화하는 것만 필요하다.
위에 설명된 바와 같이, 텍스트 및 이미지 오브젝트들의 리스트들에 대한 양태들의 상술한 예시적인 애플리케이션들은 예를 들기 위한 목적으로만 제공된다. 양태들은 또한, 웹페이지 텍스트 및 이미지들, 워드 프로세싱 문서들, PDF 문서들, 파워포인트 프레젠테이션, 텍스트 문서들, 사진 이미지들 (예를 들어, JPEG 및/또는 TIFF 이미지들) 등의 스크롤 또는 패닝과 같이, 디스플레이 상에서 스크롤되거나 패닝되는 임의의 디스플레이된 컨텐츠 또는 이미지들에 적용될 수도 있다.
상술한 양태들은 도 11 에 나타낸 모바일 디바이스 및 도 12 에 나타낸 노트북 컴퓨터들과 같은 다양한 컴퓨팅 디바이스들 중의 임의의 것 상에 구현될 수도 있다. 통상의 모바일 디바이스 (1100) 는 도 11 에 나타낸 컴포넌트들을 일반적으로 갖는다. 예를 들어, 컴퓨팅 디바이스 (1100) 는 내부 메모리 (1192) 및 터치 표면 입력 디바이스 (1104) 또는 디스플레이 (1102) 에 커플링된 프로세서 (1191) 를 포함할 수도 있다. 터치 표면 입력 디바이스 (1104) 는 저항식 감지 터치 스크린, 용량식 감지 터치스크린, 적외 감지 터치스크린, 음향/압전식 감지 터치스크린 등과 같은 임의의 유형의 터치스크린 디스플레이 (1101) 일 수 있다. 여러 양태들은 터치스크린 디스플레이 (1101) 또는 터치패드 기술의 임의의 특정 유형으로 제한되지 않는다. 추가로, 컴퓨팅 디바이스 (1100) 는 무선 데이터 링크에 접속된 전자기 방사를 송수신하기 위한 안테나 (1194) 및/또는 프로세서 (1191) 에 커플링된 셀룰러 전화기 트랜시버 (1195) 를 가질 수도 있다. 터치스크린 입력 디바이스 (1104) 를 포함하지 않는 (이에 따라 디스플레이 (1102) 를 통상적으로 갖는 않는) 컴퓨팅 디바이스들 (1100) 은 포인팅 디바이스로서 역할을 하는 키패드 (1196) 또는 미니에이쳐 키보드 및 메뉴 선택 키들 또는 로커 스위치들 (1197) 을 통상 포함한다. 프로세서 (1191) 는 여러 양태들이 적용될 수도 있는 외부 터치패드 또는 터치 표면에 프로세서 (1191) 를 접속시키기 위한 USB (universal serial bus) 또는 FireWire® 커넥터 소켓과 같은 유선 네트워크 인터페이스 (1198) 에 추가로 접속될 수도 있다.
몇몇 구현예들에서, 터치 표면은 터치스크린 디스플레이 (1104) 또는 디스플레이 (1102) 외부의 전자 디바이스 (1100) 영역들에 제공될 수 있다. 예를 들어, 키패드 (1196) 는 용량식 터치 센서들이 매립된 터치 표면을 포함할 수 있다. 다른 구현예들에서, 터치스크린 디스플레이 (1104) 가 완전한 GUI 를 제공하도록 키패드 (1196) 가 제거될 수 있다. 또 다른 구현예들에서, 터치 표면은 케이블 커넥터 (1198) 에 대한 케이블을 이용하여, 또는 프로세서 (1191) 에 커플링된 무선 트랜시버 (예를 들어, 트랜시버 (1195)) 에 의해 컴퓨팅 디바이스 (1100) 에 접속될 수 있는 외부 터치패드일 수도 있다.
위에 설명된 양태들은 도 12 에 나타낸 랩톱 컴퓨터 (1200) 와 같은 여러 컴퓨팅 디바이스들 내에서 구현될 수도 있다. 많은 랩톱 컴퓨터들은 컴퓨터들의 포인팅 디바이스로서 역할을 하는 터치 패드 터치 표면을 포함하며, 이에 따라 터치스크린 디스플레이가 탑재된 모바일 디바이스 상에서 구현되는 것과 유사하게 드래그, 스크롤 및 플릭 제스쳐를 수신할 수도 있다. 랩톱 컴퓨터 (1200) 는 디스크 드라이브 (1203) 와 같은 대용량 비휘발성 메모리 및 휘발성 메모리 (1202) 에 커플링된 프로세서 (1201) 를 통상적으로 포함한다. 랩톱 컴퓨터 (1200) 는 또한 프로세서 (1201) 에 커플링된 플로피 디스크 드라이브 (1204) 및 CD (compact disc) 드라이브 (1205) 를 포함한다. 컴퓨터 디바이스 (1200) 는 또한 프로세서 (1201) 에 커플링되어, USB 또는 FireWire® 커넥터 소켓 또는 프로세서 (1201) 를 네트워크에 커플링하기 위한 다른 네트워크 접속 회로 (1206) 와 같이 데이터 접속들을 확립하거나 외부 메모리 디바이스들을 수용하기 위한 복수의 커넥터 포트들을 포함할 수도 있다. 노트북 구성에서는, 컴퓨터 하우징이 터치패드 (1207), 키보드 (1208) 및 디스플레이 (1209) 를 포함하며 이들 모두 프로세서 (1201) 에 커플링된다. 컴퓨팅 디바이스의 다른 구성들은 잘 알려진 바와 같이, 프로세서 (예를 들어, USB 입력을 통하여) 프로세서에 커플링된 컴퓨터 마우스 또는 트랙볼을 포함할 수도 있다.
컴퓨팅 디바이스 프로세서 (1191, 1201) 는 상술한 여러 양태들의 기능을 포함한 여러 기능들을 수행하도록 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 멀티플 프로세서 칩 또는 칩들일 수도 있다. 몇몇 포터블 컴퓨팅 디바이스들 (1100) 에서, 한 프로세서가 무선 통신 기능에 전용되고 한 프로세서가 다른 애플리케이션을 구동하는데 전용되는 멀티플 프로세서들 (1191) 이 제공될 수도 있다. 프로세서는 또한, 통신 칩셋의 일부로서 포함될 수도 있다.
앞서의 방법 설명들 및 프로세스 흐름도들은 구체적인 예들로서만 제공되고 갖가지 양태들의 단계들이 제시된 순서로 반드시 수행되어야 함을 요구하거나 의미하도록 의도된 것은 아니다. 이 기술분야의 숙련된 자에 의해 이해될 바와 같이 앞서의 양태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. 단어들 이를테면 "그 후", "그 다음", "다음에" 등은 단계들의 순서를 제한하려는 의도는 아니고; 이들 단어들은 단지 방법들의 기재를 통하여 독자에게 설명하는데 사용된다. 게다가, 단수형으로, 예를 들어, 관사 "a", "an" 또는 "the"의 사용에 해당하는 것으로 여겨질 수 있는 청구항 요소들에 대한 어떤 언급이라도, 그 요소를 단수형으로 제한하는 것으로 해석되지는 않는다.
본원에서 개시된 양태들에 관련하여 설명되는 각종 구체적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 이것 둘의 조합들로 구현될 수도 있다. 하드웨어 및 소프트웨어의 이러한 상호 교환 가능성을 명백하게 예증하기 위하여, 전술된 다양하고 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 일반적으로 그것들의 기능의 관점에서 설명되어 있다. 이러한 기능이 하드웨어 또는 소프트웨어 중 어느 것으로 구현되는지는 전체 시스템에 부가되는 특정 애플리케이션 및 디자인 제약들에 의존한다. 당업자들은 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나도록 하는 것으로 해석되지 않아야 한다.
여기에 개시된 양태들에 관련하여 설명된 갖가지 실례의 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하는데 사용되는 하드웨어는 여기에 설명된 기능들을 수행하도록 고안된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA) 또는 여타 프로그램가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그것들의 어떤 결합물로 구현되거나 실시될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적인 예에서, 이 프로세서는 어떤 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어 DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 협력하는 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수도 있다. 다르게는, 일부 단계들 또는 방법들이 주어진 기능에 특정된 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 어떤 조합으로도 구현될 수 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 송신될 수도 있다. 본원에서 개시된 방법 또는 알고리즘의 단계들은 컴퓨터 판독가능 매체 또는 프로세서 판독가능 매체 상에 상주할 수도 있는 실행되는 프로세서 실행가능 소프트웨어 모듈로 실시될 수도 있다. 비 일시적 컴퓨터 판독가능 및 프로세서 판독가능 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 이용가능한 매체일 수도 있다. 비제한적인 예로, 이러한 컴퓨터 판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기적 저장 디바이스들, 또는 소망의 프로그램 코드를 컴퓨터에 의해 액세스될 수도 있는 명령들 또는 데이터 구조들의 형태로 운반하거나 저장하는데 사용될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 디스크 (Disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, disk들은 보통 데이터를 자기적으로 재생하지만, disc들은 레이저들로써 광학적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. 덧붙여, 방법 또는 알고리즘의 동작들은 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 컴퓨터 프로그램 제품에 통합될 수도 있는 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상에 존재할 수 있다.
개시된 양태들의 전술한 설명은 이 기술분야의 숙련된 임의의 사람이 본 발명을 제작하고 사용할 수 있게끔 제공된다. 이들 양태들에 대한 다양한 변형예들은 이 기술분야의 숙련된 자들에게 쉽사리 명확하게 될 것이고, 본원에서 정의된 일반 원리들은 본 발명의 범위로부터 벗어남 없이 다른 양태들에 적용될 수도 있다. 그래서, 본 발명은 여기에 보인 양태들로 한정할 의도는 아니며 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 부여하는 것을 의도한다.

Claims (52)

  1. 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법으로서,
    상기 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 단계;
    애니메이션의 속도를 판정하는 단계로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 단계;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우, 계산적으로 덜 복잡한 아이템들을 렌더링하는 단계로서, 상기 계산적으로 덜 복잡한 아이템들은 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들이고, 상기 고정된 이미지 엘리먼트들은 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출되고 상기 정규 아이템들보다 고속으로 렌더링될 수 있는, 상기 계산적으로 덜 복잡한 아이템들을 렌더링하는 단계;
    상기 애니메이션의 제 1 속도를 저장하는 단계로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 상기 제 1 속도를 저장하는 단계; 및
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 속도 미만으로 떨어지는 경우, 상기 정규 아이템들을 렌더링하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  2. 제 1 항에 있어서,
    상기 모니터링된 프레임 레이트는 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  3. 제 1 항에 있어서,
    상기 모니터링된 프레임 레이트는 진행중인 평균 프레임 레이트에 기초하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  4. 제 1 항에 있어서,
    상기 계산적으로 덜 복잡한 아이템들은 애플리케이션의 일부로서 정의된, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  5. 제 1 항에 있어서,
    상기 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF (portable document format) 문서의 고속 스크롤 또는 팬, 슬라이드 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나인, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  6. 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법으로서,
    상기 디스플레이 애니메이션의 개시시에 이미지들을 렌더링하기 위한 제 1 렌더링 포맷을 지정하는 단계;
    상기 지정된 제 1 렌더링 포맷을 이용하여 이미지들을 렌더링하는 단계;
    상기 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 단계;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진 경우를 판정하는 단계;
    상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에, 이미지들을 렌더링하기 위한 제 2 렌더링 포맷을 지정하는 단계로서, 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출되는고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들을 사용하는 것에 의해, 상기 제 2 렌더링 포맷은 상기 제 1 렌더링 포맷 보다 적은 프로세싱을 요구하는, 상기 제 2 렌더링 포맷을 지정하는 단계;
    애니메이션의 속도를 판정하는 단계로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 단계;
    상기 애니메이션의 제 1 속도를 저장하는 단계로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정된 것으로 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 제 1 속도를 저장하는 단계;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작은 경우를 판정하는 단계; 및
    현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작다고 판정하는 경우 상기 제 1 렌더링 포맷을 지정하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  7. 제 6 항에 있어서,
    이미지들을 렌더링하기 위한 제 3 렌더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 단계로서, 상기 애니메이션의 상기 제 2 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 3 랜더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 단계;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작은 경우를 판정하는 단계; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작다고 판정되는 경우에, 상기 제 2 렌더링 포맷을 지정하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  8. 제 7 항에 있어서,
    이미지들을 렌더링하기 위한 제 4 렌더링 포맷을 지정하고, 상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에, 상기 애니메이션의 제 3 속도를 저장하는 단계;
    상기 애니메이션의 속도가 상기 저장된 제 3 속도보다 작은 경우를 판정하는 단계; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 4 렌더링 포맷이고 상기 애니메이션의 속도가 상기 저장된 제 3 속도보다 작다고 판정되는 경우에, 상기 제 3 렌더링 포맷을 지정하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  9. 제 8 항에 있어서,
    상기 제 1 렌더링 포맷, 상기 제 2 렌더링 포맷 및 상기 제 3 렌더링 포맷은 애플리케이션의 일부로서 정의된, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  10. 제 6 항에 있어서,
    상기 모니터링된 프레임 레이트는 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  11. 제 6 항에 있어서,
    상기 모니터링된 프레임 레이트는 진행중인 평균 프레임 레이트에 기초하는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  12. 제 6 항에 있어서,
    상기 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션인, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  13. 제 6 항에 있어서,
    상기 디스플레이 애니메이션은 게임 애플리케이션에 의해 생성되는, 컴퓨팅 디바이스 상에서 디스플레이 애니메이션을 구현하는 방법.
  14. 컴퓨팅 디바이스로서,
    프로세서;
    상기 프로세서에 커플링된 디스플레이; 및
    상기 프로세서에 커플링된 메모리를 포함하며,
    상기 프로세서는 프로세서-실행가능 명령들에 의해,
    디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 것;
    애니메이션의 속도를 판정하는 것으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 것;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우, 계산적으로 덜 복잡한 아이템들을 렌더링하는 것으로서, 상기 계산적으로 덜 복잡한 아이템들은 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들이고, 상기 고정된 이미지 엘리먼트들은 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출되고 상기 정규 아이템들보다 고속으로 렌더링될 수 있는, 상기 계산적으로 덜 복잡한 아이템들을 렌더링하는 것;
    상기 애니메이션의 제 1 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 제 1 속도를 저장하는 것; 및
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 속도 미만으로 떨어지는 경우, 상기 정규 아이템들을 렌더링하는 것을 포함하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  15. 제 14 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 모니터링된 프레임 레이트가 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  16. 제 14 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 모니터링된 프레임 레이트가 진행중인 평균 프레임 레이트에 기초하도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  17. 제 14 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 계산적으로 덜 복잡한 아이템들이 애플리케이션의 일부로서 정의되도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  18. 제 14 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 디스플레이 애니메이션이 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 슬라이드 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나이도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  19. 컴퓨팅 디바이스로서,
    프로세서;
    상기 프로세서에 커플링된 디스플레이; 및
    상기 프로세서에 커플링된 메모리를 포함하며,
    상기 프로세서는 프로세서-실행가능 명령들에 의해,
    디스플레이 애니메이션의 개시시에 이미지들을 렌더링하기 위한 제 1 렌더링 포맷을 지정하는 것;
    상기 지정된 제 1 렌더링 포맷을 이용하여 이미지들을 렌더링하는 것;
    상기 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 것;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진 경우를 판정하는 것;
    상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에, 이미지들을 렌더링하기 위한 제 2 렌더링 포맷을 지정하는 것으로서, 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출된 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들을 사용하는 것에 의해, 상기 제 2 렌더링 포맷은 상기 제 1 렌더링 포맷 보다 적은 프로세싱을 요구하는, 상기 제 2 렌더링 포맷을 지정하는 것;
    애니메이션의 속도를 판정하는 것으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 것;
    상기 애니메이션의 제 1 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정된 것으로 판정되는 경우에 판정되는 상기 애니메이션의 속도인, 상기 애니메이션의 상기 제 1 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작은 경우를 판정하는 것; 및
    현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작다고 판정하는 경우 상기 제 1 렌더링 포맷을 지정하는 것을 포함하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  20. 제 19 항에 있어서,
    이미지들을 렌더링하기 위한 제 3 렌더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 2 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 3 랜더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작은 경우를 판정하는 것; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작다고 판정되는 경우에, 상기 제 2 렌더링 포맷을 지정하는 것을 더 포함하는 동작들을 수행하는 프로세서-실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  21. 제 20 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해,
    이미지들을 렌더링하기 위한 제 4 렌더링 포맷을 지정하고 상기 애니메이션의 제 3 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 3 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 4 랜더링 포맷을 지정하고 상기 애니메이션의 제 3 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작은 경우를 판정하는 것; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 4 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작다고 판정되는 경우에, 상기 제 3 렌더링 포맷을 지정하는 것을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  22. 제 21 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 제 1 렌더링 포맷, 상기 제 2 렌더링 포맷 및 상기 제 3 렌더링 포맷이 애플리케이션의 일부로서 정의되도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  23. 제 19 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 모니터링된 프레임 레이트가 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  24. 제 19 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 모니터링된 프레임 레이트가 진행중인 평균 프레임 레이트에 기초하도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  25. 제 19 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 디스플레이 애니메이션이 고속 리스트 스크롤 애니메이션 웹페이지이도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  26. 제 19 항에 있어서,
    상기 프로세서는 프로세서-실행가능 명령들에 의해 상기 디스플레이 애니메이션이 게임 애플리케이션에 의해 생성되도록 하는 동작들을 수행하도록 구성되는, 컴퓨팅 디바이스.
  27. 컴퓨팅 디바이스로서,
    디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 수단;
    애니메이션의 속도를 판정하는 수단으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 수단;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우, 계산적으로 덜 복잡한 아이템들을 렌더링하는 수단으로서, 상기 계산적으로 덜 복잡한 아이템들은 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들이고, 상기 고정된 이미지 엘리먼트들은 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출되고 상기 정규 아이템들보다 고속으로 렌더링될 수 있는, 상기 계산적으로 덜 복잡한 아이템들을 렌더링하는 수단;
    상기 애니메이션의 제 1 속도를 저장하는 수단으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 속도를 저장하는 수단; 및
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 속도 미만으로 떨어지는 경우, 상기 정규 아이템들을 렌더링하는 수단을 포함하는, 컴퓨팅 디바이스.
  28. 제 27 항에 있어서,
    상기 렌더링된 프레임 레이트를 모니터링하는 수단은 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하여 렌더링된 프레임 레이트를 모니터링하는 수단을 포함하는, 컴퓨팅 디바이스.
  29. 제 27 항에 있어서,
    상기 렌더링된 프레임 레이트를 모니터링하는 수단은 진행중인 평균 프레임 레이트에 기초하여 렌더링된 프레임 레이트를 모니터링하는 수단을 포함하는, 컴퓨팅 디바이스.
  30. 제 27 항에 있어서,
    상기 계산적으로 덜 복잡한 아이템들은 애플리케이션의 일부로서 정의된, 컴퓨팅 디바이스.
  31. 제 27 항에 있어서,
    상기 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 슬라이드 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나인, 컴퓨팅 디바이스.
  32. 컴퓨팅 디바이스로서,
    디스플레이 애니메이션의 개시시에 이미지들을 렌더링하기 위한 제 1 렌더링 포맷을 지정하는 수단;
    상기 지정된 제 1 렌더링 포맷을 이용하여 이미지들을 렌더링하는 수단;
    상기 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 수단;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진 경우를 판정하는 수단;
    상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에, 이미지들을 렌더링하기 위한 제 2 렌더링 포맷을 지정하는 수단으로서, 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출된 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들을 사용하는 것에 의해, 상기 제 2 렌더링 포맷은 상기 제 1 렌더링 포맷 보다 적은 프로세싱을 요구하는, 상기 제 2 렌더링 포맷을 지정하는 수단;
    애니메이션의 속도를 판정하는 수단으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 수단;
    상기 애니메이션의 제 1 속도를 저장하는 수단으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정된 것으로 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 제 1 속도를 저장하는 수단;
    상기 애니메이션의 속도가 상기 저장된 제 1 속도보다 작은 경우를 판정하는 수단; 및
    현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 애니메이션의 속도가 상기 저장된 제 1 속도보다 작다고 판정하는 경우 상기 제 1 렌더링 포맷을 지정하는 수단을 포함하는, 컴퓨팅 디바이스.
  33. 제 32 항에 있어서,
    이미지들을 렌더링하기 위한 제 3 렌더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 수단으로서, 상기 애니메이션의 상기 제 2 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 3 랜더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 수단;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작은 경우를 판정하는 수단; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작다고 판정되는 경우에, 상기 제 2 렌더링 포맷을 지정하는 수단을 더 포함하는, 컴퓨팅 디바이스.
  34. 제 33 항에 있어서,
    이미지들을 렌더링하기 위한 제 4 렌더링 포맷을 지정하고 상기 애니메이션의 제 3 속도를 저장하는 수단으로서, 상기 애니메이션의 상기 제 3 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 제 3 속도를 저장하는 수단;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작은 경우를 판정하는 수단; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 4 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작다고 판정되는 경우에, 상기 제 3 렌더링 포맷을 지정하는 수단을 더 포함하는, 컴퓨팅 디바이스.
  35. 제 34 항에 있어서,
    상기 제 1 렌더링 포맷, 상기 제 2 렌더링 포맷 및 상기 제 3 렌더링 포맷은 애플리케이션의 일부로서 정의된, 컴퓨팅 디바이스.
  36. 제 33 항에 있어서,
    상기 렌더링된 프레임 레이트를 모니터링하는 수단은 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하여 렌더링된 프레임 레이트를 모니터링하는 수단을 포함하는, 컴퓨팅 디바이스.
  37. 제 33 항에 있어서,
    상기 렌더링된 프레임 레이트를 모니터링하는 수단은 진행중인 평균 프레임 레이트에 기초하여 렌더링된 프레임 레이트를 모니터링하는 수단을 포함하는, 컴퓨팅 디바이스.
  38. 제 33 항에 있어서,
    상기 디스플레이 애니메이션은 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 슬라이드 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나인, 컴퓨팅 디바이스.
  39. 제 33 항에 있어서,
    상기 디스플레이 애니메이션은 게임 애플리케이션에 의해 생성되는, 컴퓨팅 디바이스.
  40. 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체로서,
    상기 저장된 프로세서 실행가능 명령은 컴퓨팅 디바이스의 프로세서로 하여금,
    디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 것;
    애니메이션의 속도를 판정하는 것으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 것;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만이라고 판정되는 경우, 계산적으로 덜 복잡한 아이템들을 렌더링하는 것으로서, 상기 계산적으로 덜 복잡한 아이템들은 고정된 이미지 엘리먼드들을 포함하는 표준 그래픽 아이템들이고, 상기 고정된 이미지 엘리먼트들은 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출되고 상기 정규 아이템들보다 고속으로 렌더링될 수 있는, 상기 계산적으로 덜 복잡한 아이템들을 렌더링하는 것;
    상기 애니메이션의 제 1 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 상기 제 1 속도를 저장하는 것; 및
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 속도 미만으로 떨어지는 경우, 상기 정규 아이템들을 렌더링하는 것을 포함하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  41. 제 40 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 모니터링된 프레임 레이트가 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  42. 제 40 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 모니터링된 프레임 레이트가 진행중인 평균 프레임 레이트에 기초하도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  43. 제 40 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 계산적으로 덜 복잡한 아이템들이 애플리케이션의 일부로서 정의되도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  44. 제 40 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 디스플레이 애니메이션이 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 파워포인트 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나이도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  45. 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체로서,
    상기 저장된 프로세서 실행가능 명령은 컴퓨팅 디바이스의 프로세서로 하여금,
    디스플레이 애니메이션의 개시시에 이미지들을 렌더링하기 위한 제 1 렌더링 포맷을 지정하는 것;
    상기 지정된 제 1 렌더링 포맷을 이용하여 이미지들을 렌더링하는 것;
    상기 디스플레이 애니메이션 동안에 렌더링된 프레임 레이트를 모니터링하는 것;
    상기 모니터링된 프레임 레이트가 최소 허용가능 값 미만으로 떨어진 경우를 판정하는 것;
    상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에, 이미지들을 렌더링하기 위한 제 2 렌더링 포맷을 지정하는 것으로서, 정규 아이템들을 나타내며 상기 컴퓨팅 디바이스의 메모리로부터 호출된 고정된 이미지 엘리먼트들을 포함하는 표준 그래픽 아이템들을 사용하는 것에 의해, 상기 제 2 렌더링 포맷은 상기 제 1 렌더링 포맷 보다 적은 프로세싱을 요구하는, 상기 제 2 렌더링 포맷을 지정하는 것;
    애니메이션의 속도를 판정하는 것으로서, 상기 애니메이션의 속도는 상기 애니메이션에서 디스플레이되는 오브젝트가 이동하는 레이트를 나타내는, 상기 애니메이션의 속도를 판정하는 것;
    상기 애니메이션의 제 1 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 1 속도는 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만이라고 판정된 것으로 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 애니메이션의 상기 제 1 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작은 경우를 판정하는 것; 및
    현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 1 속도보다 작다고 판정하는 경우 상기 제 1 렌더링 포맷을 지정하는 것을 포함하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  46. 제 45 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금,
    이미지들을 렌더링하기 위한 제 3 렌더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 2 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 2 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 3 랜더링 포맷을 지정하고 상기 애니메이션의 제 2 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작은 경우를 판정하는 것; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 2 속도보다 작다고 판정되는 경우에, 상기 제 2 렌더링 포맷을 지정하는 것을 더 포함하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  47. 제 46 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금,
    이미지들을 렌더링하기 위한 제 4 렌더링 포맷을 지정하고 상기 애니메이션의 제 3 속도를 저장하는 것으로서, 상기 애니메이션의 상기 제 3 속도는 상기 현재 지정된 렌더링 포맷이 상기 제 3 렌더링 포맷이고 상기 모니터링된 프레임 레이트가 상기 최소 허용가능 값 미만으로 떨어졌다고 판정되는 경우에 판정된 상기 애니메이션의 속도인, 상기 제 4 랜더링 포맷을 지정하고 상기 애니메이션의 제 3 속도를 저장하는 것;
    상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작은 경우를 판정하는 것; 및
    상기 현재 지정된 렌더링 포맷이 상기 제 4 렌더링 포맷이고 상기 애니메이션의 상기 판정된 속도가 상기 저장된 제 3 속도보다 작다고 판정되는 경우에, 상기 제 3 렌더링 포맷을 지정하는 것을 더 포함하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  48. 제 47 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 제 1 렌더링 포맷, 상기 제 2 렌더링 포맷 및 상기 제 3 렌더링 포맷이 애플리케이션의 일부로서 정의되도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  49. 제 45 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 모니터링된 프레임 레이트가 미리 정의된 이전 간격 동안에 렌더링된 프레임들의 수에 기초하도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  50. 제 45 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 모니터링된 프레임 레이트가 진행중인 평균 프레임 레이트에 기초하도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  51. 제 45 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금,
    상기 디스플레이 애니메이션이 고속 리스트 스크롤 애니메이션, 웹페이지의 고속 스크롤 또는 팬, 텍스트 문서의 고속 스크롤, PDF 문서의 고속 스크롤 또는 팬, 파워포인트 프레젠테이션의 고속 스크롤 및 사진 이미지들의 고속 스크롤 또는 팬 중 하나이도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
  52. 제 45 항에 있어서,
    상기 저장된 프로세서 실행가능 명령은 상기 컴퓨팅 디바이스의 프로세서로 하여금, 상기 디스플레이 애니메이션이 게임 애플리케이션에 의해 생성되도록 하는 동작들을 수행하도록 구성되는, 프로세서 실행가능 명령이 저장된 비일시적 프로세서 판독가능 저장 매체.
KR1020137007025A 2010-08-20 2011-04-27 최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들 KR101499372B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/859,938 US8766984B2 (en) 2010-08-20 2010-08-20 Graphics rendering methods for satisfying minimum frame rate requirements
US12/859,938 2010-08-20
PCT/US2011/034112 WO2012024003A1 (en) 2010-08-20 2011-04-27 Graphics rendering methods for satisfying minimum frame rate requirements

Publications (2)

Publication Number Publication Date
KR20130048257A KR20130048257A (ko) 2013-05-09
KR101499372B1 true KR101499372B1 (ko) 2015-03-11

Family

ID=44121067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137007025A KR101499372B1 (ko) 2010-08-20 2011-04-27 최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들

Country Status (6)

Country Link
US (1) US8766984B2 (ko)
EP (1) EP2606471A1 (ko)
JP (1) JP5662577B2 (ko)
KR (1) KR101499372B1 (ko)
CN (1) CN103069458B (ko)
WO (1) WO2012024003A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101731843B1 (ko) * 2010-09-02 2017-05-02 삼성전자 주식회사 아이템 디스플레이하는 방법 및 장치
US9015639B2 (en) 2011-02-11 2015-04-21 Linkedin Corporation Methods and systems for navigating a list with gestures
JP5451684B2 (ja) * 2011-05-31 2014-03-26 楽天株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US8640047B2 (en) * 2011-06-01 2014-01-28 Micorsoft Corporation Asynchronous handling of a user interface manipulation
KR101794000B1 (ko) * 2011-06-13 2017-11-06 삼성전자주식회사 터치 스크린을 구비하는 기기에서 스크롤 장치 및 방법
CA2792685C (en) * 2011-10-18 2017-08-22 Research In Motion Limited Method of modifying rendered attributes of list elements in a user interface
CA2792900C (en) * 2011-10-18 2017-09-05 Research In Motion Limited Method of rendering a user interface
EP2584462B1 (en) * 2011-10-18 2019-03-27 BlackBerry Limited Method of rendering a user interface
CA2792895C (en) * 2011-10-18 2020-04-28 Research In Motion Limited Method of rendering a user interface
US20140204101A1 (en) * 2011-11-30 2014-07-24 Murali Ramadoss Adaptive frame rate control for a graphics subsystem
US9213479B2 (en) * 2012-02-16 2015-12-15 Samsung Medison Co., Ltd. Method and apparatus for displaying image
TWI476706B (zh) * 2012-04-30 2015-03-11 Pixart Imaging Inc 偵測物件移動輸出命令的方法及其系統
US9214005B2 (en) 2012-12-18 2015-12-15 Google Technology Holdings LLC Methods and systems for overriding graphics commands
US9137320B2 (en) 2012-12-18 2015-09-15 Google Technology Holdings LLC Methods and systems for overriding graphics commands
US8982137B2 (en) * 2012-12-18 2015-03-17 Google Technology Holdings LLC Methods and systems for overriding graphics commands
JP2014139776A (ja) * 2012-12-19 2014-07-31 Canon Inc 表示制御装置、表示制御方法、及びプログラム
US9811938B2 (en) * 2013-03-14 2017-11-07 Business Objects Software Ltd. Methods, apparatus and system for analytics replay utilizing random sampling
US10592278B2 (en) * 2013-03-15 2020-03-17 Facebook, Inc. Defer heavy operations while scrolling
US20140372916A1 (en) * 2013-06-12 2014-12-18 Microsoft Corporation Fixed header control for grouped grid panel
US10068508B2 (en) * 2013-08-30 2018-09-04 Google Llc Measuring user interface performance consistency
KR102095702B1 (ko) * 2013-09-27 2020-04-14 에스케이플래닛 주식회사 이동 단말을 위한 애니메이션 재생 장치 및 방법
US20150170315A1 (en) * 2013-12-17 2015-06-18 Eric C. Samson Controlling Frame Display Rate
US9327199B2 (en) * 2014-03-07 2016-05-03 Microsoft Technology Licensing, Llc Multi-tenancy for cloud gaming servers
CN103823546B (zh) * 2014-03-10 2017-07-28 联想(北京)有限公司 信息控制方法和电子设备
JP2015195005A (ja) * 2014-03-18 2015-11-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び記憶媒体
US20150286691A1 (en) * 2014-04-02 2015-10-08 Microsoft Corporation Data view exposure mechanisms
KR101646051B1 (ko) * 2014-05-08 2016-08-08 네이버 주식회사 단말 장치 및 이에 의한 웹 페이지 디스플레이 방법,및 웹 서버 및 이에 의한 웹 페이지 제공 방법
JP6507496B2 (ja) * 2014-06-18 2019-05-08 カシオ計算機株式会社 画像表示装置、画像表示方法及びプログラム
JP6435659B2 (ja) * 2014-06-25 2018-12-12 カシオ計算機株式会社 画像処理装置、アニメーション生成方法及びプログラム
CN115756154A (zh) 2014-09-02 2023-03-07 苹果公司 用于可变触觉输出的语义框架
US10692531B2 (en) * 2014-10-25 2020-06-23 Yieldmo, Inc. Methods for serving interactive content to a user
JP6063431B2 (ja) * 2014-11-28 2017-01-18 京セラドキュメントソリューションズ株式会社 表示装置及び表示プログラム
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US9959658B2 (en) 2015-02-26 2018-05-01 Rovi Guides, Inc. Methods and systems for generating holographic animations
JP6655880B2 (ja) * 2015-03-17 2020-03-04 三菱電機株式会社 表示制御装置、表示制御方法及びプログラム
GB2527672B (en) * 2015-05-22 2016-06-01 Gamesys Ltd Measuring device analysis
JP6696737B2 (ja) * 2015-06-26 2020-05-20 シャープ株式会社 コンテンツ表示装置及びプログラム
CN105049914B (zh) * 2015-07-07 2019-02-26 深圳Tcl数字技术有限公司 图片帧播放方法和装置
CN105549957A (zh) * 2015-09-25 2016-05-04 深圳市美贝壳科技有限公司 自定义滚动条指示器的方法
US10706821B2 (en) 2016-02-18 2020-07-07 Northrop Grumman Systems Corporation Mission monitoring system
DK179823B1 (en) 2016-06-12 2019-07-12 Apple Inc. DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR PROVIDING HAPTIC FEEDBACK
DK201670737A1 (en) * 2016-06-12 2018-01-22 Apple Inc Devices, Methods, and Graphical User Interfaces for Providing Haptic Feedback
EP3264267A1 (de) * 2016-06-30 2018-01-03 Siemens Aktiengesellschaft Verfahren und anordnung zur darstellung oder aktualisierung einer graphischen benutzeroberfläche eines industriellen bedien- und beobachtungssystems
DK201670720A1 (en) 2016-09-06 2018-03-26 Apple Inc Devices, Methods, and Graphical User Interfaces for Generating Tactile Outputs
DK201770372A1 (en) 2017-05-16 2019-01-08 Apple Inc. TACTILE FEEDBACK FOR LOCKED DEVICE USER INTERFACES
US20190114819A1 (en) * 2017-10-13 2019-04-18 Microsoft Technology Licensing, Llc Dimensional content surface rendering
US20190230416A1 (en) * 2018-01-21 2019-07-25 Guangwei Yuan Face Expression Bookmark
CN108646938B (zh) * 2018-03-13 2020-04-17 Oppo广东移动通信有限公司 触摸屏的配置方法、装置、终端及存储介质
US11169683B2 (en) * 2018-07-17 2021-11-09 Qualcomm Incorporated System and method for efficient scrolling
CN112001988A (zh) * 2019-05-27 2020-11-27 珠海金山办公软件有限公司 一种动画效果生成方法及装置
WO2021232328A1 (en) * 2020-05-21 2021-11-25 Qualcomm Incorporated Methods and apparatus for tickless pre-rendering
CN113421321B (zh) * 2021-07-09 2024-03-19 北京七维视觉传媒科技有限公司 用于动画的渲染方法、装置、电子设备及介质
US20230083932A1 (en) * 2021-09-13 2023-03-16 Apple Inc. Rendering for electronic devices
CN114330230A (zh) * 2021-11-17 2022-04-12 芯华章科技股份有限公司 显示逻辑系统设计的文档的方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086508A (ja) * 2002-08-26 2004-03-18 Alpine Electronics Inc 3次元形状データに基づく動画の表示制御方法及びナビゲーション装置
JP2009139452A (ja) * 2007-12-04 2009-06-25 Sharp Corp 表示制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6072498A (en) * 1997-07-31 2000-06-06 Autodesk, Inc. User selectable adaptive degradation for interactive computer rendering system
US6906708B1 (en) 1999-03-26 2005-06-14 Canon Kabushiki Kaisha Image processing method and apparatus, and storage medium
US7059261B2 (en) * 2004-01-21 2006-06-13 Ncl Corporation Wastewater ballast system and method
JP4288994B2 (ja) * 2003-04-10 2009-07-01 株式会社日立製作所 端末装置、配信サーバ、映像データの受信方法及び映像データの送信方法
US8237712B2 (en) * 2004-03-18 2012-08-07 Apple Inc. Manipulation of image content using various image representations
CN1873602A (zh) * 2005-05-31 2006-12-06 皮克塞(研究)有限公司 用于导航所显示内容的系统和方法
CN101308439B (zh) * 2007-05-15 2012-06-20 宏达国际电子股份有限公司 信息卷动方法及其相关电子装置
US20100060629A1 (en) * 2008-09-09 2010-03-11 Jim Rasmusson Graphics-Processing Architecture Based on Approximate Rendering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086508A (ja) * 2002-08-26 2004-03-18 Alpine Electronics Inc 3次元形状データに基づく動画の表示制御方法及びナビゲーション装置
JP2009139452A (ja) * 2007-12-04 2009-06-25 Sharp Corp 表示制御装置

Also Published As

Publication number Publication date
JP5662577B2 (ja) 2015-02-04
KR20130048257A (ko) 2013-05-09
JP2013541073A (ja) 2013-11-07
CN103069458A (zh) 2013-04-24
US8766984B2 (en) 2014-07-01
EP2606471A1 (en) 2013-06-26
CN103069458B (zh) 2015-12-16
WO2012024003A1 (en) 2012-02-23
US20120044251A1 (en) 2012-02-23

Similar Documents

Publication Publication Date Title
KR101499372B1 (ko) 최소 프레임 레이트 요건들을 충족시키는 그래픽 렌더링 방법들
US9182897B2 (en) Method and apparatus for intuitive wrapping of lists in a user interface
US9898180B2 (en) Flexible touch-based scrolling
EP2721807B1 (en) Method and apparatus for providing a notification mechanism
US8624925B2 (en) Content boundary signaling techniques
US9442649B2 (en) Optimal display and zoom of objects and text in a document
US20160357364A1 (en) Graphical User Interface for a Document Viewing Application
EP2278447A1 (en) Mobil terminal for displaying menu information on a trace according to a touch input signal
EP2521020A1 (en) Systems and methods for interface management
US20120064946A1 (en) Resizable filmstrip view of images
CN102763067A (zh) 响应于用户施加的压力来调整在显示项目中的导航速度及其倾角
CN111615682B (zh) 用于基于视角来选择呈现模式的方法和装置
EP2521019A1 (en) Systems and methods for interface management
CN113076154B (zh) 多应用下进行分屏的方法、装置以及电子设备
KR20230025744A (ko) 자동 스크롤 기능 구현을 위한 방법 및 시스템
JP6093667B2 (ja) 通信端末、文字表示方法、プログラム
US20140372916A1 (en) Fixed header control for grouped grid panel

Legal Events

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

Payment date: 20171228

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee