KR20070093084A - 사용자 인터페이스를 위한 분산형 소프트웨어 구조 - Google Patents
사용자 인터페이스를 위한 분산형 소프트웨어 구조 Download PDFInfo
- Publication number
- KR20070093084A KR20070093084A KR1020077015384A KR20077015384A KR20070093084A KR 20070093084 A KR20070093084 A KR 20070093084A KR 1020077015384 A KR1020077015384 A KR 1020077015384A KR 20077015384 A KR20077015384 A KR 20077015384A KR 20070093084 A KR20070093084 A KR 20070093084A
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- user
- level
- node
- gui
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
본 발명에 따른 시스템 및 방법은 줌이 가능한 사용자 인터페이스를 생성하는 데에 이용될 수 있는 소프트웨어 구조(브리크)를 제공한다. 그래픽 디스플레이의 매개변수화된 변형을 제공하는 브리크는 재사용가능하고 사용자 인터페이스에서의 서로 다른 장면들을 통하여 단계적으로 행해진다.
줌, 그래픽 사용자 인터페이스, 리모트 컨트롤, 멀티미디어
Description
<관련 출원>
본 발명은, 그 개시물이 본원에 참조로서 포함되는, 2005년 1월 5일에 출원되고, 발명의 명칭이 "Distributed Software Construction with Bricks"인 미국 가특허 출원 번호 제60/641,406에 관련되고, 그 우선권을 주장한다.
본 발명은 미디어 아이템을 조직하고, 선택하고, 런칭(launching)하기 위한 프레임워크를 기술한다. 이 프레임워크의 일부는 포인트, 클릭, 스크롤, 호버링(hover) 및 줌(zoom)의 기본 빌딩 블록을 갖는 그래픽 사용자 인터페이스, 보다 구체적으로는, 자유-공간 포인팅 리모트(remote)를 통해 이용될 수 있는 미디어 아이템과 관련된 그래픽 사용자 인터페이스의 동작 및 설계를 포함한다.
정보 통신과 관련된 기술은 지난 몇십 년 동안 빠르게 진화하여 왔다. 텔레비전, 셀룰러폰, 인터넷 및 광 통신 기술(단지 몇 가지를 예로 든 것임)이 결합되어 소비자들에게 이용가능한 정보 및 엔터테인먼트 옵션들을 풍부하게 제공한다. 텔레비전을 예로서 들자면, 지난 30년 동안에는 케이블 텔레비전 서비스, 위성 텔레비전 서비스, 유료 시청제(pay-per-view) 및 주문형 비디오(video-on-demand)의 도입이 있어 왔다. 1960년대의 텔레비전 시청자들은 통상적으로 이들의 텔레비전 세트에 아마도 4~5개의 공중파 TV 채널을 수신할 수 있었던 반면, 오늘날의 TV 시청자들은 수백의, 가능하다면 수천의 쇼 및 정보 채널을 선택하는 기회를 가진다. 현재 주로 호텔 등에서 이용되고 있는 주문형 비디오 기술은 수천 개의 영화 제목들 중에 가정용 엔터테인먼트(in-home entertainment)를 선택할 수 있게 해주는 가능성을 제공한다. 미국 캘리포니아주 95002, 알비소, 골드 스트리트 2160 소재의 TiVo 사가 제공한 것과 같은 디지털 비디오 레코딩(DVR) 장비는 이용가능한 선택 범위를 더욱 확장시켜 준다.
말단 사용자에게 상당히 많은 정보 및 컨텐츠를 제공하는 기술적인 능력은 시스템 설계자 및 서비스 제공자에게 기회 및 도전 과제 양쪽 모두를 제공한다. 하나의 도전 과제는, 말단 사용자는 통상적으로 많은 선택의 여지를 가지는 것을 선호하는 한편, 이러한 선호는 선택 프로세스가 빠르고 간단하게 되기를 원하는 이들의 바램과 대치된다. 불행히도, 말단 사용자가 미디어 아이템을 액세스하는 데에 이용되는 인터페이스 및 시스템의 개발로 인해 선택 프로세스는 빠르지도 않고 간단하지도 않게 되었다. 다시 텔레비전 프로그램의 예를 고려해보자. 텔레비전의 초창기 때에는, 시청할 프로그램을 결정하는 것은 본질적으로 선택의 폭이 적었기 때문에 비교적 간단한 절차였다. 어떤 이는, 예를 들어, (1) 근처의 텔레비전 채널, (2) 이들 채널들에 전송되고 있는 프로그램, 및 (3) 날짜 및 시각 간의 상응 관계를 보여주었던 일련의 행과 열로 구성된 인쇄된 가이드를 참고한다. 튜너 손잡이를 조정함으로써 텔레비전이 원하는 채널로 튜닝(tune)되었고 시청자는 이 선 택된 프로그램을 시청하였다. 그 후, 리모트 컨트롤(remote control) 장치가 도입되어 시청자들이 멀리서 텔레비전을 튜닝할 수 있게 되었다. 이러한 사용자-텔레비전 인터페이스의 추가는 사용자가 복수의 채널 상에 방송되고 있는 짧은 단편들을 빠르게 볼 수 있게 해주어서 임의의 소정 시점에서 어떤 프로그램을 이용할 수 있는지를 빠르게 알게 되는 "채널 서핑"이라 알려진 현상을 발생시켰다.
채널의 개수 및 시청 가능한 컨텐츠의 양이 급격하게 증가하고 있다는 사실에도 불구하고, 텔레비전에 대하여 일반적으로 이용가능한 사용자 인터페이스 및 제어 장치 옵션들과 프레임워크는 지난 30년 동안 그다지 변하지 않았다. 인쇄된 가이드가 아직도 프로그래밍 정보를 전달하기 위한 가장 일반적인 메카니즘이다. 간단한 위/아래 방향 화살표를 가지는 복수의 버튼으로 된 리모트 컨트롤이 아직도 가장 일반적인 채널/컨텐츠 선택 메카니즘이다. 이용가능한 미디어 컨텐츠를 증가시키기 위해 TV 사용자 인터페이스를 구현하고 설계하는 사람들은 기존의 선택 절차 및 인터페이스 객체를 그대로 확장시키는 것으로 반응하였다. 그러므로, 보다 많은 채널을 수용하기 위하여 인쇄된 가이드의 행과 열의 개수가 증가하였다. 예를 들어, 도 1에 도시된 바와 같이, 보다 많은 기능 및 컨텐츠 취급을 지원하기 위해 리모트 컨트롤 장치의 버튼의 개수가 증가하였다. 그러나, 이러한 접근방식은 시청자가 이용가능한 정보를 검토하는 데에 필요한 시간 및 선택을 구현하는 데에 필요한 액션의 복잡도를 모두 현저히 증가시켰다. 틀림없이, 기존의 인터페이스가 갖는 이러한 귀찮은 특징은, 예를 들어, 주문형 비디오와 같은 몇몇의 서비스들을 상업적으로 구현하는 것을 방해하였는데, 그 이유는 소비자들이 이미 너무 느리고 복잡하다고 여기고 있는 인터페이스를 더 복잡하게 할 새로운 서비스에 대해 거부감을 느낄 것이기 때문이다.
대역폭 및 컨텐츠의 증가 이외에도, 기술이 통합화됨에 따라 사용자 인터페이스 병목현상 문제가 악화되고 있다. 소비자는 복수의 개별적인 컴포넌트보다는 통합된 시스템을 사는 옵션을 가지는 것에 더 긍정적으로 반응한다. 이러한 성향의 좋은 예는 이전에는 독립되었던 3개의 컴포넌트가 오늘날에는 통합된 유닛으로 빈번하게 팔리고 있는 텔레비전/VCR/DVD 조합이다. 이러한 성향은, 가정 내에서 현재 볼 수 있는 모든 통신 장치는 아니더라도 대부분의 통신 장치가, 예를 들어, 텔레비전/VCR/DVD/인터넷 액세스/라디오/스테레오 유닛과 같은 통합형 유닛으로 패키징된다고 하는 최종 결과로 이어질 잠재성이 있다. 개별적인 컴포넌트들을 사는 사용자들마저 이들 컴포넌트의 고른 제어 및 이들 간의 상호 작업을 원한다. 이로 인해 증가된 통합체는 사용자 인터페이스를 보다 복잡하게 할 가능성을 가진다. 예를 들어, TV 리모트 유닛 및 VCR 리모트 유닛의 기능을 결합한 소위 "유니버설" 리모트 유닛이 도입되었을 때, 이들 유니버설 리모트 유닛의 버튼 개수는 통상적으로 개별적인 TV 리모트 유닛의 버튼 또는 VCR 리모트 유닛의 버튼 중 하나의 개수보다 더 많아졌다. 이러한 버튼 및 기능의 개수를 추가했다는 것은 리모트의 아주 적절한 버튼을 수색하지 않고는 TV 또는 VCR의 가장 간단한 양태를 제외한 모든 제어를 매우 어렵게 한다. 빈번하게, 이들 유니버설 리모트는 특정 TV에 고유한 다양한 레벨의 특징 또는 제어에 액세스하기에 충분한 버튼을 제공하지는 않는다. 이들 경우, 본래의 장치의 리모트 유닛이 여전히 필요하고, 통합체가 복잡하기 때 문에 일어나는 사용자 인터페이스 이슈에 기인하여 복수의 리모트들을 취급해야 하는 본질적인 혼란이 남게 된다. 몇몇의 리모트 유닛은 전문가 명령으로 프로그래밍될 수 있는 "소프트" 버튼을 추가함으로서 이러한 문제를 해결하였다. 이들 소프트 버튼은 때때로 이들의 액션을 표시하기 위해 LCD 디스플레이가 수반된다. 이들은 또한 TV로부터 눈길을 돌려 리모트 컨트롤을 보지 않고는 이용하기 어렵다는 단점을 가진다. 이들 리모트 컨트롤 유닛의 또 다른 단점은 버튼의 개수를 줄이고자 하는 모드를 사용하는 것이다. 이러한 "모드로된" 유니버설 리모트 유닛에는, 리모트가 TV, DVD 플레이어, 케이블 셋-톱 박스, VCR, 등 중 어느 것과 통신해야 하는지를 선택하기 위한 특수한 버튼이 존재한다. 이는 잘못된 장치에 명령을 전송하는 것, 사용자가 리모트가 올바른 모드에 있는지 확인하기 위해 반드시 리모트를 봐야하는 것을 포함하는 여러 사용상의 문제를 야기시키며, 복수의 장치 통합체에 어떠한 단순함도 제공하지 않는다. 이들 유니버설 리모트 유닛 중 가장 발전된 형태의 유니버설 리모트 유닛은 사용자가 복수의 장치에 대한 일련의 명령을 리모트에 프로그래밍할 수 있게 해주는 소정의 통합을 제공한다. 이는 다수의 사용자가 이들의 유니버설 리모트 유닛을 프로그래밍하기 위하여 전문적인 설치자들을 고용해야 하는 어려운 태스크이다.
또한 말단 사용자와 미디어 시스템 간의 화면 인터페이스를 현대화하기 위한 몇몇의 시도들이 이루어졌다. 전술한 미디어 가이드를 대신할 전자 프로그램 가이드(EPG)가 개발되고 구현되었다. 초기 EPG는 본질적으로 프린트된 미디어 가이드의 전자 복제물을 제공하였다. 예를 들면, 케이블 서비스 기사는 아날로그 EPG를 제공하였는데 이 EPG에서는 전용 채널이, 예를 들어, 다음 2시간과 같은, 특정 시간 범위에 따라 천천히 스크롤링되는 격자의 채널 및 그 관련 프로그램을 디스플레이한다. 이런식으로 100개의 채널까지도 스크롤링하는 것은 지루할 수 있고, 예를 들어, 주문형 비디오와 같은 눈에 띄는 추가적인 컨텐츠 배포를 포함하도록 융통성있게 확장될 수 없다. 보다 정교한 디지털 EPG도 개발되었다. 디지털 EPG에서, 프로그램 스케줄 정보, 및 선택적인 애플리케이션/시스템 소프트웨어가, 예를 들면, 디지털 셋-톱 박스(STB)와 같은 전용 EPG 장비에 전송된다. 디지털 EPG는 국부 상호활동을 제공하고 사용자와 시청될 미디어 아이템의 선택 사이에 하나 이상의 인터페이스 계층을 개입시키는 능력 때문에 미디어 시스템을 위한 사용자 인터페이스를 설계하는 것을 보다 유연하게 한다. 이러한 인터페이스의 예는 그 개시물이 본원에 참조로서 포함되고 카멘 등이 저술한 미국 특허 제6,421,067에서 볼 수 있다. 도 2는 이 '067 특허에 기술된 GUI를 도시한다. 그 특허 문헌에서, 카멘 등에 따르면, 제1 열(190)은 프로그램 채널을 나열하고, 제2 열(191)은 현재 재생되고 있는 프로그램을 도시하고, 열(192)은 30분 이후에 재생하고 있는 프로그램을 도시하고, 제4 열(193)은 그 다음 30분 이후에 재생하고 있는 프로그램을 도시한다. 야구 방망이 아이콘(121)은 열(191)과 열(192)에 걸쳐 있으므로, 야구 게임은 열(192)에 대응하는 타임 슬롯으로 계속될 것이라고 예상됨을 나타낸다. 그러나, 텍스트 블록(111)은 열(192)까지 확장되어 있지 않다. 이는 축구 게임이 열(192)에 대응하는 타임 슬롯으로 확장된다고 예상되지 않음을 나타낸다. 도시된 바와 같이, 그림문자(194)가 축구 게임 이후에, ABC가 경마 경기를 상영할 것임을 알려준다. 도 2에 도시된 아이콘은, 예를 들어, 선택된 프로그래밍과 관련된 정보를 다운로드하기와 같은 다양한 특징을 구현하기 위해, 도시되지 않은, 커서를 이용하여 작동될 수 있다. 다른 디지털 EPG 및 관련 인터페이스는, 예를 들면, 미국 특허 제6,314,575, 제6,412,110, 및 제6,577,350에 기술되며 이들은 마찬가지로 그 개시물들이 본원에 참조로서 포함된다.
그러나, 상술한 인터페이스는, 다른 단점들 중에서도 특히, 미디어 아이템의 대형 콜렉션과 미디어 아이템의 소형 콜렉션 간에 스케일링(scale)을 용이하게 할 수 없는 불편함을 겪는다. 예를 들면, 아이템들의 리스트에 의존하는 인터페이스들은 미디어 아이템의 소형 콜렉션에서 잘 동작할 수 있지만, 미디어 아이템의 대형 콜렉션에서의 브라우징은 귀찮은 일이다. 계층구조 네비게이션(예를 들면, 트리 구조)에 의존하는 인터페이스는 미디어 아이템의 대형 콜렉션에서 리스트 인터페이스보다 트레버싱(traverse) 속도가 훨씬 빠르지만, 미디어 아이템의 소형 콜렉션에서는 용이하게 적응될 수 없다. 또한, 사용자는 이 사용자가 트리 구조에서 3개 이상의 계층을 거쳐 가야하는 선택 과정에서 흥미를 잃는 경향이 있다. 모든 이러한 경우에서, 현재의 리모트 유닛은 사용자에게 리스트 또는 계층구조를 항해하기 위하여 위로 버튼 및 아래로 버튼을 반복적으로 누르는 것을 강요함으로써 이 선택 프로세서를 보다 귀찮게 한다. 페이지 업 및 페이지 다운과 같은 선택 생략 제어가 이용가능한 경우, 사용자는 일반적으로 이들 특수한 버튼을 찾기 위해 리모트를 살펴봐야 하거나 이들이 존재하는 것조차 알기 위해서 가르침을 받아야 한다.
사용자와 미디어 시스템 간의 화면 인터페이스 및 제어를 간단하게 하고 선 택 과정을 가속화하는 프레임워크, 기술 및 시스템을 조직하는 것이 2004년 1월 30일에 출원되고, 발명의 명칭이 "A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items"인, 미국 특허 출원 제10/768,432에 기술되며, 이 개시물은 본원에 참조로서 포함되고 이하 "432 출원"이라 칭한다. 이러한 프레임워크는 다수의 미디어 아이템 및 새로운 서비스를 말단 사용자에게 제공하는 것을 용이하게 함으로써 서비스 제공자가 이 말단 사용자 장비로의 이용가능 대역폭의 증가를 이용할 수 있게 한다.
통상적으로 사용자 인터페이스에 관련된 소프트웨어 개발 및, 예를 들면, 셋-톱 박스 및 TV 시스템과 관련된 애플리케이션 작성은 2가지 극단적인 상황 중에서의 선택을 포함한다. 한가지 접근 방식은 하나의 통합된 애플리케이션으로서 모든 소프트웨어를 개발하는 것이다. 이 접근 방식은 사용자와 사용자 인터페이스 간의 상호동작이 완전히 캡슐화되고 그 성능이 완전히 제어된다는 이점을 가진다. 이 접근 방식의 단점은 어떤 것이 변경될 때마다 모든 애플리케이션이 영향받기 때문에 사용자 인터페이스의 새로운 특징의 개발이 느리다는 것이다. 스펙트럼의 한쪽 끝에서는, 웹 브라우저와 매우 유사한 사용자 인터페이스를 설계하는 접근법이 있다. 이 접근법을 이용하면, HTML 코드를 해석하여 사용자 인터페이스 화면을 작성하는 작은 머신(machine)이 작성된다. 이 두 번째 접근 방식의 한가지 이점은 애플리케이션의 개발이 매우 빠르다는 점이다. 이 접근 방식의 단점은 상호동작이 완전히 캡슐화되지 않으며 대역폭 성능 이슈도 완전히 제어되지 않는다는 것이다. 좋은 사용자 인터페이스 설계를 위해서는 지속적인 사용자 상호동작이 중요하기 때 문에, TV 사용자 인터페이스 설계에서는 특히, 전자의 문제점이 중요하다. 또한, 예를 들어, 종종 셋-톱 박스가 심각한 대역폭 제한을 극복해야하기 때문에, 후자의 문제점 또한 걱정이 될 수 있다.
따라서, 이들 난점을 극복하는 사용자 인터페이스, 방법 및 소프트웨어 설계 구조를 제공하는 것이 바람직할 것이다.
본 발명에 따른 시스템 및 방법은 복수의 제어 구성요소를 이용하여 화면 상에 디스플레이된 사용자 인터페이스를 제공함으로써 이들 요구 및 다른 요구를 해결하는데, 이 복수의 제어 구성요소 중 적어도 일부는 적어도 하나의 알파벳 숫자형 캐릭터가 이 화면 상에 디스플레이되도록 한다. 알파벳-숫자형 캐릭터를 디스플레이하기 위한 텍스트 상자는 복수의 제어 구성 요소 및 복수의 디스플레이된 아이템 그룹을 이용하여 입력된다. 사용자 인터페이스 상의 복수의 그룹의 레이아웃은 디스플레이된 제1 개수의 그룹에 기초하며, 여기서 그룹 내에 디스플레이된 아이템의 레이아웃은 그 그룹 내에 디스플레이된 제2 개수의 아이템에 기초한다.
본 발명의 예시적인 실시예에 따르면, 메타데이터 처리 시스템과 관련된 분산형 소프트웨어 구조를 위한 방법은 각각의, 상위 레벨, 메타데이터 범주와의 사용자 대화를 각각이 정의하는 복수의 제1 유형의 시스템-범위 소프트웨어 구조를 제공하는 단계, 및 적어도 하나의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조를 제공하는 단계를 포함하고, 복수의 제1 유형의 시스템-범위 소프트웨어 구조 각각은 하나 이상의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조로 이루어진다.
본 발명의 다른 예시적인 실시예에 따르면, 분산형 소프트웨어 구조를 포함하는 메타데이터 처리 시스템으로서, 메타데이터 처리 시스템에 다양한 유형의 메타데이터를 공급하기 위한 메타데이터 공급 소스, 각각의, 상위 레벨, 메타데이터 범주와의 사용자 대화를 각각이 정의하는 복수의 제1 유형의 시스템-범위 소프트웨어 구조, 및 적어도 하나의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조를 포함하고, 복수의 제1 유형의 시스템-범위 소프트웨어 구조 각각은 하나 이상의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조로 이루어진다.
도 1은 엔터테인먼트 시스템을 위한 종래의 리모트 컨트롤 유닛을 도시.
도 2는 엔터테인먼트 시스템을 위한 종래의 그래픽 사용자 인터페이스를 도시.
도 3은 본 발명의 예시적인 실시예(디스플레이 및 리모트 컨트롤 모두)가 구현될 수 있는 예시적인 미디어 시스템을 도시.
도 4는 도 3의 시스템 컨트롤러를 보다 상세히 도시.
도 5 내지 8은 본 발명의 예시적인 실시예에 따른 미디어 시스템용 그래픽 사용자 인터페이스를 도시.
도 9는 본 발명의 예시적인 실시예에 따른 예시적인 데이터 구조를 도시.
도 10a 및 10b는 본 발명의 예시적인 실시예에 따른 도 9의 데이터 구조를 이용하여 생성된 예시적인 GUI의 일부의 줌 아웃(zoom out)된 버전 및 줌 인(zoom in)된 버전을 도시.
도 11은 본 발명의 예시적인 실시예에 따른 생성된 GUI 디스플레이에 이용되는 순서가 정렬된 이중 연결 리스트를 도시.
도 12a 및 12b는 본 발명의 예시적인 실시예에 따른 노드 관측 알고리즘의 동작을 예시하는데 이용되는 다른 예시적인 GUI의 일부의 줌 아웃된 버전 및 줌 인된 버전을 도시.
도 13a 및 13b는 본 발명의 예시적인 실시예에 따른, GUI가 도 12a의 뷰로부터 12b의 뷰로 전이된, 노드 관측자 알고리즘의 동작을 예시하는 데에 이용되는 예시적인 데이터 구조를 도시.
도 14는 해상도가 일관된 주밍을 하는 데 이용되는 가상 카메라를 포함하는 본 발명의 다른 예시적인 실시예에 따른 데이터 구조를 도시.
도 15a 및 도 15b는 본 발명의 예시적인 실시예에 따른 의미적인 주밍을 도시하는 예시적인 GUI의 일부의 줌 아웃된 버전 및 줌 인된 버전을 도시.
도 16 내지 20은 본 발명의 다른 예시적인 실시예에 따른 줌이 가능한 그래픽 사용자 인터페이스를 도시.
도 21은 본 발명의 예시적인 실시예에 따라 제공될 수 있는 예시적인 오버레이 제어 세트를 도시.
도 22는 본 발명에 따른 줌이 가능한 그래픽 사용자 인터페이스를 구현하기 위한 프레임워크를 도시.
도 23은 본 발명의 예시적인 실시예에 따른 줌이 가능한 그래픽 사용자 인터 페이스를 생성하는 것에 관련된 데이터 흐름들 도시.
도 24는 본 발명의 예시적인 실시예에 따른 브리크를 이용하여 작성된 GUI 화면을 도시.
도 25는 본 발명의 예시적인 실시예에 따른 브리크를 이용하여 작성된 제2 GUI 화면을 도시.
도 26은 본 발명의 예시적인 실시예에 따른 브리크를 생성하는데 이용될 수 있는 툴킷 화면을 도시.
도 27은 본 발명의 예시적인 실시예에 따른 시스템 브리크가 분산형 소프트웨어 설계를 용이하게 하는 시스템 빌딩 블록으로서 채용되는 시스템을 도시.
도 28은 본 발명의 예시적인 실시예에 따른 서로 다른 유형의 브리크의 계층 구조를 도시.
첨부된 도면은 본 발명의 예시적인 실시예를 도시한다.
본 발명의 이하 상세한 설명은 첨부된 도면을 참조한다. 서로 다른 도면에서 동일한 참조 번호는 동일하거나 유사한 구성요소를 나타낸다. 또한, 이하 상세한 사항은 본 발명을 제한하지 않는다. 그 대신, 본 발명의 범위는 특허 청구 범위에 의해 정의된다.
이 설명에 몇몇의 환경을 제공하기 위하여, 본 발명을 이용하여 구현할 수 있는 예시적인 통합된 미디어 시스템(200)이 먼저 도 3 내지 22에 관련하여 기술될 것이다. 그러나 당업자들은 본 발명이 이러한 유형의 미디어 시스템의 구현으로 제안되지 않으며 더 많거나 적은 컴포넌트가 여기에 포함될 수 있음을 인식할 것이다. 여기서, 입/출력(I/O) 버스(210)는 미디어 시스템(200)의 시스템 컴포넌트를 모두 연결한다. 입/출력(I/O) 버스(210)는 미디어 시스템 컴포넌트들 간에 신호를 라우팅하기 위한 복수의 서로 다른 메카니즘 및 테크닉을 나타낸다. 예를 들면, 입/출력(I/O) 버스(210)는 적절한 개수의 독립된, 오디오 신호를 라우팅하는 오디오 "패치" 케이블, 비디오 신호를 라우팅하는 동축 케이블, 제어 신호를 라우팅하는 2개의 직렬로 된 배선 또는 적외선이나 무선 주파 송수신기, 다른 유형의 신호를 라우팅하는 광 섬유 또는 임의의 다른 라우팅 메카니즘을 포함할 수 있다.
이 예시적인 실시예에서, 미디어 시스템(200)은 이 입/출력(I/O) 버스(210)에 연결된 텔레비전/모니터(212), 비디오 카세트 레코더(VCR)(214), DVD 레코더/재생 장치(216), 오디오/비디오 튜너(218) 및 CD 플레이어(220)를 포함한다. VCR(214), DVD(216) 및 CD 플레이어(220)는 단일 디스크 또는 단일 카세트 장치일 수 있거나, 대안으로 복수의 디스크 또는 복수의 카세트 장치일 수 있다. 이들은 독립된 유닛일 수 있거나 서로 통합될 수 있다. 또한, 미디어 시스템(200)은 마이크로폰/스피커 시스템(222), 비디오 카메라(224) 및 무선 I/O 제어 장치(226)를 포함한다. 본 발명의 예시적인 실시예에 따르면, 무선 I/O 제어 장치(226)는 자유-공간 포인팅을 지원하고, 네비게이션을 지원하는 최소한의 버튼을 가지며, RF 신호를 통해 엔터테인먼트 시스템(200)과 통신하는 미디어 시스템 리모트 컨트롤 유닛이다. 예를 들면, 무선 I/O 제어 장치(226)는 자이로스코프(gyroscope) 또는 다른 메카니즘을 이용하여 원하는 특정 명령을 결정하기 위해 화면 위치 및 움직임 벡터 모두를 정의하는 자유-공간 포인팅 장치일 수 있다. 이하에 기술된 "클릭" 프리미티브(primitive) 및 "뒤로" 버튼을 개시하기 위한 버튼 세트가 또한 무선 I/O 제어 장치(226)에 포함될 수도 있다. 다른 예시적인 실시예에서, 무선 I/O 제어 장치(226)는 IR 신호를 통하여 엔터테인먼트 시스템(200)의 컴포넌트들과 통신하는 미디어 시스템 리모트 컨트롤 유닛이다. 또 다른 실시예에서, 무선 I/O 제어 장치(226)는 통상적인 엔터테인먼트 시스템 리모트 컨트롤과 유사하게 보이는, 사용자가 엔터테인먼트 시스템(100)의 디스플레이에 커서를 위치시킬 수 있게 하는 트랙-볼 또는 다른 네비게이션적인 메카니즘의 특징이 추가된 IR 리모트 컨트롤 장치일 수 있다.
엔터테인먼트 시스템(200)은 또한 시스템 컨트롤러(228)를 포함한다. 본 발명의 한 예시적인 실시예에 따르면, 시스템 컨트롤러(228)는 복수의 엔터테인먼트 시스템 데이터 소스로부터 이용가능한 엔터테인먼트 시스템 데이터를 저장하고 디스플레이하고 각각의 시스템 컴포넌트와 관련된 매우 다양한 특징을 제어하도록 동작한다. 도 3에 도시된 바와 같이, 시스템 컨트롤러(228)는 필요하다면 I/O 버스(210)를 통해 각각의 시스템 컴포넌트들에 직접 또는 간접적으로 연결된다. 한 예시적인 실시예에서, I/O 버스(210)에 추가하여, 또는 I/O 버스(210)를 대신하여, 시스템 컨트롤러(228)는 시스템 컴포넌트들이 IR 신호 또는 RF 신호를 통해 통신할 수 있는 무선 통신 송신기(또는 송수신기)를 포함하도록 구성된다. 제어 매체들과 관계없이, 시스템 컨트롤러(228)는 이하 기술될 그래픽 사용자 인터페이스를 통해 미디어 시스템(200)의 미디어 컴포넌트들을 제어하도록 구성된다.
도 3에 더 도시된 바와 같이, 미디어 시스템(200)은 다양한 미디어 소스 및 서비스 제공자로부터 미디어 아이템을 수신하도록 구성될 수 있다. 이 예시적인 실시예에서, 미디어 시스템(200)은 다음의 소스들 중 임의의 것 또는 모두로부터 미디어 입력을 수신하고, 선택적으로 이들로 정보를 전송한다: 케이블 방송(230), 위성 방송(232)(예를 들면, 위성 안테나를 통한), (예를 들면, 공중파 안테나를 통한) 방송 텔레비전 네트워크(234)의 VHF(very high frequency) 또는 UHF(ultra high frequency) 무선 주파 통신, 전화 네트워크(236) 및 케이블 모뎀(238)(또는 인터넷 컨텐츠의 다른 소스). 당업자들은 도 3에 관련하여 도시되고 기술된 미디어 컴포넌트 및 미디어 소스들은 전적으로 예시적인 것이며 미디어 시스템(200)은 더 많거나 더 적은 것들을 포함할 수 있음을 인식할 것이다. 예를 들면, 시스템으로의 다른 유형의 입력은 AM/FM 라디오 위성 라디오를 포함한다.
도 4는 본 발명에 따른 예시적인 시스템 컨트롤러(228)의 실시예를 도시하는 블록도이다. 시스템 컨트롤러(228)는, 예를 들면, 셋-톱 박스로서 구현될 수 있고, 예를 들면, 프로세서(300), 메모리(302), 디스플레이 컨트롤러(304), (예를 들어, 시스템(200)의 다른 컴포넌트들과 관련된)다른 장치 컨트롤러, 하나 이상의 데이터 저장 장치(308) 및 I/O 인터페이스(310)를 포함한다. 이들 컴포넌트는 버스(312)를 통해 프로세서(300)와 통신한다. 당업자들은 프로세서(300)가 하나 이상의 프로세싱 유닛을 이용하여 구현될 수 있음을 인식할 것이다. 메모리 장치(들)(302)는, 예를 들면, DRAM이나 SRAM, ROM을 포함할 수 있는데, 이 중 어느 것은 캐쉬 메모리로서 지정될 수 있으며, 프로세서(300)에 의해 실행될 소프트웨어 및/또는 이하 기술될 그래픽 사용자 인터페이스와 관련된 데이터 및/또는 소프트웨어를 포함하는 프로그램이 사용할 수 있는 데이터를 저장한다. 디스플레이 컨트롤러(304)는 다른 것들 중에서도 특히, 이하에 기술될 바와 같이 GUI 화면 및 객체를 디스플레이하기 위해 모니터(212)의 디스플레이를 제어하도록 프로세서(300)에 의해 동작한다. 본 발명의 예시적인 실시예에 따른 줌(zoom)이 가능한 GUI는 해상도에 독립적인 주밍(zooming)을 제공하여, 모니터(212)는 임의의 해상도로 디스플레이를 제공할 수 있다. 장치 컨트롤러(306)는 미디어 시스템(200)의 다른 컴포넌트들과 프로세서(300) 간의 인터페이스를 제공한다. 데이터 저장 장치(308)는 하드 디스크 드라이브, 플로피 디스크 드라이브, CD-ROM 장치 또는 다른 매스 저장 장치중 하나 이상을 포함할 수 있다. 입/출력 인터페이스(310)는 예를 들어, 키보드 인터페이스, RF 인터페이스, IR 인터페이스 및 마이크로폰/음성 인터페이스를 포함하는 복수의 인터페이스들 중 하나 이상을 포함할 수 있다. 본 발명의 한 예시적인 실시예에 따르면, I/O 인터페이스(310)는 무선 포인팅 장치의 움직임과 관련된 위치 정보를 수신하기 위한 인터페이스를 포함할 것이다.
본 발명의 예시적인 실시예에 따른 미디어 아이템 선택 정보를 디스플레이하기 위한 그래픽 사용자 인터페이스의 생성 및 제어는 시스템 컨트롤러(228)에 의해 메모리(302)에 포함된 일련의 명령어를 실행시키는 프로세서(300)에 응답하여 수행된다. 이러한 명령어들은 데이터 저장 장치(들)(308)와 같은 다른 컴퓨터-판독가능 매체로부터 또는 미디어 시스템(200)에 외부적으로 접속된 컴퓨터로부터 메모리(302)로 판독될 수 있다. 메모리(302)에 포함된 일련의 명령어들의 실행은 프로 세서로 하여금 모니터(212) 상에, 다른 것을 중에서도, 그래픽 사용자 인터페이스 객체 및 제어를 생성하게 한다. 대안적인 실시예에서, 하드-유선 회로가 본 발명을 구현하기 위한 소프트웨어 명령어 대신에 또는 이 명령어와 결합하여 이용될 수 있다. 배경 섹션에서 언급한 바와 같이, 텔레비전 산업과 관련된 통상적인 인터페이스 프레임워크는 사용자에게 간단하면서도 포괄적인 선택 경험을 제공하기 위한 능력이 심각하게 제한된다. 따라서, 본원에 기술된 제어 프레임워크는 이들 한계를 극복하므로, 비록 제한적이기는 하나 배타적이지 않게 텔레비전을 사용하는 것을 의도하였다. 또한 본원에 기술된 혁신적인 제어 프레임워크, 그래픽 사용자 인터페이스 및/또는 다양한 알고리즘이 컴퓨터 및 다른 텔레비전 이외의 장치에 이용될 수 있는 인터페이스에 적용가능함을 알게 될 것임이 예상된다. 이러한 본 발명의 예시적인 실시예의 다양한 적용을 구별하기 위하여, 용어 "텔레비전" 및 "TV"가 본 명세서에서는 디스플레이 장치의 서브셋을 칭하는 것으로 이용되는 반면, 용어 "GUI", "GUI 화면", "디스플레이" 및 "디스플레이 화면"은 포괄적인 것으로 텔레비전 디스플레이, 컴퓨터 디스플레이 및 임의의 다른 디스플레이 장치를 칭하는 것으로 의도된다. 보다 구체적으로는, 용어 "텔레비전" 및 "TV"는 텔레비전 신호를 다른 포맷(예를 들면, 컴퓨터 비디오 포맷)으로 변환하기 위한 어댑터를 이용하지 않고 텔레비전 신호(예를 들면, NTSC 신호, PAL 신호 또는 SECAM 신호)를 디스플레이할 수 있는 디스플레이 장치들의 서브셋을 칭하는 것을 의도한다. 또한, 용어 "텔레비전" 및 "TV"는 일반적으로 몇 피트 이상의 거리(예를 들면, 소파에서 거실 TV까지)로부터 보여지는 디스플레이 장치들의 서브셋을 칭하는 반면 컴퓨터 디스플에 이는 일반적으로 클로즈업되어 보여진다(예를 들면, 의자에서 데스크톱 모니터까지).
본 발명에 따른 줌이 가능한 그래픽 인터페이스를 포함하는 제어 프레임워크를 구현하는 데에 이용될 수 있는 예시적인 미디어 시스템을 기술하였으며, 이제 이러한 인터페이스의 몇몇의 예들이 기술될 것이다. 본 발명의 예시적인 실시예에 따르면, 사용자 인터페이스는 범주로 그루핑될 수 있는 선택가능한 아이템을 디스플레이한다. 사용자는 리모트 유닛을 관심 있는 범주 또는 범주들에 가리켜서 선택 버튼을 눌러 줌인하거나 "back" 버튼을 눌러 줌 백(zoom back)한다. 각각의 줌인, 또는 줌 백, 사용자에 의한 액션은 확대 레벨 및/또는 사용자 인터페이스에 의해 화면 상에 렌더링된 선택가능한 아이템들의 환경을 변경시킨다. 예시적인 실시예에 따르면, 확대 레벨에서의 변경 각각은 일관될 수 있다. 즉, 확대 레벨에서의 변경은 소정의 단계로 제공된다. 본 발명의 예시적인 실시예는 또한 매우 큰 것을 확대하기 위한 몇몇의 시각적인 기술을 포함하는 사용자 인터페이스를 제공한다. 이들 기술은 확장성 및 사용 용이성을 모두 달성하는 기술 및 빌딩 블록의 조합을 포함하는데, 특히 이 기술은 사용자 인터페이스 객체를 빠르게 다시-방문하기 위하여 사용자의 시각적인 메모리를 향상시키도록 사용자 인터페이스를 적응시킨다.
사용자 인터페이스는 매우 시각적인 경험이다. 이러한 환경에서 본 발명의 예시적인 실시예는 이 시각적인 환경 내의 객체의 위치를 기억할 수 있는 사용자의 능력을 이용한다. 이는 사용자 인터페이스 선택 아이템에 안정되고 의존적인 위치를 제공함으로써 달성된다. 각각의 객체는 줌이 가능한 레이아웃으로 된 위치를 가진다. 일단 사용자가 관심이 있는 객체를 발견하였다면 객체를 찾아내기 위하여 취했던 방향을 기억하는 것은 자연스러운 일이다. 그 객체에 특별히 관심이 있다면 사용자는 그 아이템을 한번 이상 더 방문할 것이며, 이는 사용자가 이 객체로의 경로를 기억하는 것을 더 강화시킬 것이다. 본 발명의 예시적인 실시예에 따른 사용자 인터페이스는 사용자가 관심이 있는 아이템의 위치를 기억하는 것을 돕는 시각적인 연상 기호를 제공한다. 이러한 시각적인 연상 기호는, 이하 기술될 예들에 기초하여 보다 명백해질, 다른 것들 중에서도, 팬과 줌 애니메이션, 사용자 인터페이스의 시각적인 표면을 통한 이동의 그래픽적인 감지 및 일관된 주밍 기능을 생성하는 전이 효과를 포함한다.
사용자가 상당히 큰 아이템 세트로부터 선택을 할 수 있으면서도 큰 선택 세트들과 관련된 상세한 사항으로부터 보호받을 수 있는 조직 메카니즘이 제공된다. 본 발명에 따른 다양한 유형의 조직 메카니즘이 이용될 수 있고 이하 예들이 제공된다.
먼저 도 5 내지 8을 참조하면, 음악 미디어 아이템을 선택하고 디스플레이하는 데에 이용되는 본 발명의 예시적인 실시예에 따른 줌이 가능한 그래픽 사용자 인터페이스를 포함하는 예시적인 제어 프레임워크가 기술된다. 도 5는 줌이 가능한 GUI를 이것의 가장 줌밍 될 수 있는 상태로 표현하였다. 여기서, 인터페이스는 형태 세트(500)를 디스플레이한다. 각각의 형태(500) 안에는 텍스트(502) 및/또는 GUI의 그 영역을 통해 액세스될 수 있는 미디어 아이템 선택의 그룹을 기술하는 그림(504)이 디스플레이된다. 도 5에 도시된 바와 같이, 형태(500)는 직사각형이며, 텍스트(502) 및/또는 그림(504)은 미디어의 장르를 기술한다. 그러나, 당업자들은 이렇게 우선적으로 보이는 GUI 그루핑은 사용자가 이용할 수 있는 미디어 선택들의 다른 양태, 예를 들면, 아티스트, 제조된 날짜, 아티스트 거주 지역, 아이템 길이, 임의의 다른 선택 특징을 나타낼 수 있다고 인식할 것이다. 또한, GUI 내의 다양한 그루핑 윤곽을 잡기 위해 이용되는 형태는 직사각형일 필요는 없다. 사용자에게 형태 그루핑(500) 내의 텍스트(502) 및/또는 그림(504)을 대신하여 또는 이에 추가하여 다른 네비게이션 힌트를 제공하기 위하여 앨범 표지 및 다른 아이콘의 축소된 버전이 이용될 수 있다. GUI(506)의 배경 부분은 짙은 색으로 디스플레이되거나 사용자가 장르의 공간적인 위치를 기억하는 것을 도와주어 나중에 인터페이스를 사용할 때에 더 적은 판독과정이 필요하게 만들기 위한 맵으로서 그림의 일부가 될 수 있다. 선택 포인터(커서)(508)는 입력 장치의 움직임을 따르며 사용자가 그 장치 상의 버튼(도 5에는 도시되지 않음)을 누를 때 그 위치를 주밍할 것을 지시한다.
본 발명의 예시적인 실시예에 따르면, 이하 보다 상세히 기술될 포인트, 클릭, 스크롤, 호버링 및 줌 빌딩 블록을 지원하는 그래픽 사용자 인터페이스와 연결된 입력 장치는 ,예를 들면, 발명의 명칭이 "Free Space Pointing Devices and Methods"이고 2005년 5월 2일에 출원된 미국 특허 출원 제11/119,663에 기술된 자유-공간 포인팅 장치와 같은 자유-공간 포인팅 장치일 수 있는데, 상기 출원은 그 개시물이 본원에 참조로서 포함되며 이하 "663 출원"이라 칭할 것이다. 본 발명에 관련하여 사용하기에 유익한 이러한 예시적인 입력 장치의 한 특징은 오직 2개의 버튼과 스크롤 휠(wheel), 즉, 3개의 입력 가동 객체를 가지고 구현될 수 있다는 것이다. 버튼들 중 하나는 줌인(선택) 버튼으로서 구성될 수 있고 또 하나는 줌 아웃(되돌림) 버튼으로서 구성될 수 있다. 통상적인 원격 제어 유닛, 예를 들면, 도 1에 도시된 것과 비교해볼 때, 본 발명은 사용자가 그 또는 그녀의 미디어 아이템 선택을 할 때에 직면하는 버튼의 개수 등을 상당히 줄임으로써 이러한 GUI 양태를 간단히 한다. 요구사항은 아니지만 본 발명의 예시적인 실시예에 따른 입력 장치의 추가적인 바람직한 특징은 이들이 사용자에게 "자유-공간 포인팅" 능력을 제공한다는 것이다. 본 명세서에서 어구 "자유-공간 포인팅"은 디스플레이 화면 앞에서 공중의 3(또는 그 이상)차원에서 입력 장치를 자유롭게 이동시키는 사용자의 능력 및 이들 움직임을 화면 상의 커서의 이동으로 바로 변환시키는 대응하는 사용자 인터페이스의 능력을 칭하는 데에 이용된다. 그러므로 "자유 공간 포인팅"은, 예를 들면, 책상 표면 또는 마우스패드와 같은, 디스플레이 화면과는 다른 표면을 프록시 표면(마우스의 상대적인 움직임은 이 프록시 표면으로부터 컴퓨터 디스플레이 화면 상의 커서의 움직임으로 변환됨)으로서 이용하는 종래의 컴퓨터 마우스 포인팅 기술과는 다르다. 본 발명의 예시적인 실시예에 따른 제어 프레임워크에서 자유 공간 포인팅을 이용한다면 사용자 선택 경험은 더 간단해지면서, 동시에 이 인터페이스로의 구별가능한 입력으로서의 제스처를 도입하는 기회를 제공한다. 제스처는, 예를 들면, x, y, z, yaw 피치 및 롤(roll) 차원 또는 이들의 임의의 부분 결합과 같은, 움직임 패턴이 GUI 명령으로 변환될 수 있는 시간 동안 인식될 수 있는 움직임 패턴으로서 고려될 수 있다. 당업자들은 그러나 본 발명에 따른 줌이 가능한 GUI와 관련하여 임의의 적절한 입력 장치가 이용될 수 있다고 인식할 것이다. 다른 적절한 입력 장치의 예로는 트랙볼, 터치패드, 통상적인 TV 리모트 컨트롤 장치, 음성 입력, 사용자의 제스처들을 GUI 명령으로 통신/변환할 수 있는 임의의 장치, 또는 이들의 임의의 조합을 포함하지만 이에 제한되는 것은 아니다. 본원에 기술된 GUI 기능의 양태 각각은 제스처 및 음성 명령 중 적어도 하나를 이용하여 본 발명에 따른 프레임워크에서 가동될 수 있다. 대안적인 구현은 선택될 아이템들을 식별하기 위하여 커서 및/또는 다른 리모트 컨트롤 키를 이용하는 것 또는 음성 입력을 이용하는 것을 포함한다.
도 6은 사용자가, 예를 들어, 커서(508)를 디스플레이(212) 상의 장르 3을 둘러싸는 직사각형이 포함하는 영역 위로 이동시키고 입력 장치의 버튼을 누름으로써, 도 5로부터 장르 3을 선택했을 때 디스플레이될 장르 3의 주밍된 뷰를 도시한다. 이 인터페이스는 도 5로부터 도 6으로 줌을 애니메이션할 수 있어 줌이 발생하였다는 것을 사용자에게 명확하게 한다. 이러한 애니메니션된 줌/변형 효과의 예가 다음에 기술된다. 일단 장르 3을 포함하는 형태(516)가 디스플레이(212) 상의 대부분의 화면을 차지한다면, 인터페이스는 이 장르의 앨범을 가지는 아티스트들을 나타낸다. 이 예에서, 7명의 서로 다른 아티스트 및/또는 이들의 작업이 디스플레이된다. 도 5의 줌 아웃된 뷰에서 장르 3에 인접하였던 선택되지 않은 장르(515)는 여전히 줌인 된 뷰에서도 장르 3에 인접하지만, 디스플레이(212)의 가장자리에 의해 잘리게 된다. 이들 선택되지 않은 장르는 선택 포인터(508)를 이용한 이들의 선택에 의해 빠르게 네비게이션될 수 있다. 그러나 본 발명의 다른 실시예 는 이웃하는 객체를 자르는 것을 생략할 수 있고, 대신에, 단지 잘리지 않은 선택들을 표시할 수 있음을 인식할 것이다. 각각의 아티스트 그룹, 예를 들면, 그룹(512)은 범주가 사용자에 의해 생성된 재생목록을 포함하는 경우 축소된 앨범 커버의 이미지, 아티스트의 사진 또는 사용자가 지정할 수 있는 삽화를 포함할 수 있다.은
그 다음 사용자는 다른 리뷰 및/또는 선택을 위하여 아티스트 그룹들로부터 하나를 선택할 수 있다. 도 7은 커서 배치 및 입력 장치의 가동을 통한 아티스트 3의 사용자 선택에 응답하는 다른 줌 된 뷰를 도시하는데, 여기서 앨범 표지(520)의 이미지가 이 뷰에 입력된다. 도 5 및 도 6의 GUI 화면으로부터의 변형에서는, 선택되지 않은 인접한 아티스트(이 예에서는, 아티스트 #2, 6 및 7)가 줌 된 디스플레이의 옆쪽을 향하는 것으로 보여지며, 사용자는 이들 아티스트 뷰로의 팬으로의 선택 포인터(508)를 이용하여 이들을 클릭할 수 있다. 인터페이스 중 이 부분에서, 앨범 표지의 이미지(520) 이외에도, 아티스트 정보(524)가 아티스트 그룹의 아이템으로서 디스플레이될 수 있다. 이 정보는, 예를 들면, 아티스트의 사진, 바이오그래피(biograph), 트리비아(trivia), 레코드 분류, 영향, 웹 사이트로의 링크 및 다른 관련 데이터를 포함할 수 있다. 앨범 이미지(520) 각각은 앨범 표지의 그림 및 선택적으로 텍스트 데이터를 포함할 수 있다. 앨범 이미지(520)가 사용자가 생성한 재생목록을 포함하는 경우, 그래픽 사용자 인터페이스는 사용자에 의해 미리 선택되거나 인터페이스에 의해 자동적으로 선택되는 사진을 디스플레이할 수 있다.
마지막으로, 사용자가 그룹(521) 내로부터 앨범 표지 이미지(520)를 선택한다면, 도 8에 도시된 바와 같이 인터페이스는 앨범 표지로 줌 인된다. 줌이 진행되면서, 앨범 표지는 앨범의 아티스트 및 제목(530), 트랙의 목록(532), 앨범에 대한 다른 정보(536), 작은 버전의 앨범 표지(528), 및 컨텐츠를 재생하고, 범주를 수정하고, 아티스트 웹 페이지로 링크를 걸고, 선택에 대한 임의의 다른 정보를 발견하기 위한 제어(534)와 같은 아이템을 포함하는 뷰로 페이드 인(fade in) 또는 모프 인(morph in)된다. 선택 포인터(508)를 이용하여 선택될 수 있는 이웃하는 앨범(538)이 도시되는데 이에 의해 인터페이스는 이 앨범들을 뷰로 가져오게 된다. 상술한 바와 같이, 본 발명의 대안적인 실시예는, 예를 들면, 오직 선택된 객체, 예를 들면, 앨범 5만을 디스플레이하도록 줌인할 수 있고, 선택되지 않은 객체, 예를 들면, 앨범 4 및 6의 잘라진 부분을 생략할 수 있다. 이러한 최종 줌은 의미론적 주밍의 일례를 제공하는데, 여기에서 이전 줌 레벨에서는 미리 보여지지 않았던 특정 GUI 엘리먼트가 보여진다. 본 발명의 예시적인 실시예에 따른 의미론적 주밍을 수행하기 위한 다양한 기술들이 이하 제공된다.
도 5 내지 8에 도시되고 설명된 바와 같이, 그래픽 사용자 인터페이스의 예시적인 실시예는 음악 콜렉션의 네비게이션을 제공한다. 본 발명에 따른 인터페이스는 DVD, VHS 테이프, 다른 레코딩된 매체, 주문형 비디오, 비디오 세그먼트 및 가정용 영화와 같은 비디오 콜렉션을 위해 이용될 수도 있다. 다른 오디오 사용은 사운드 클립 콜렉션, 이력 공문서, 교육용 테이프 및 라디오 쇼의 네비게이션을 포함한다. 뉴스 화재 및 전자 북과 같은 프린트 또는 텍스트 미디어가 또한 본 발명 을 이용하여 조직되고 액세스될 수 있다.
전술한 설명으로부터 당업자들에 명백해질 바와 같이, 본 발명에 따른 줌이 가능한 그래픽 사용자 인터페이스는 사용자에게 빠르고 쉽게 다수(적은 수)의 미디어 아이템을 브라우징할 수 있는 기능을 제공한다. 이러한 기능은 (1) 특정 미디어 아이템에 대한 선택 정보의 일부 또는 모두로서 이미지 사용, (2) 선택을 하기 위해 사용자가 필요한 만큼 많거나 적은 정보를 빠르게 제공하기 위하여 주밍을 사용함, (3) 사용자의 방향 감각에 의하여, GUI의 네비게이션이 수행되고 기억되도록, 모든 인터페이스가 단일 평면에 상주한다는 의식을 사용자에게 부여하기 위해 결합된 여러 가지 GUI 기술의 사용을 포함하지만 이에 한정되지 않는 본 발명의 예시적인 실시예에 따른 인터페이스의 다수의 특징으로부터 기인한다. 본 발명에 따른 이러한 후자 양태의 GUI는, 다른 것들 중에서도, 하나의 GUI 화면으로부터 다른 화면으로의 GUI 객체 연속성만큼을 보유함으로써, 예를 들면, 이웃하는 가장자리의, 현재 GUI 화면의 경계 주변의 선택되지 않은 객체를 디스플레이함으로써 다양한 GUI 화면들을 "그래픽적으로" 모두 링킹함으로써 성취될 수 있다. 대안으로, 보다 깨끗한 뷰를 원하고, 다른 GUI 기술이 충분한 그래픽적인 피드백을 제공한다면, 잘라진 객체들은 생략될 수 있다. 본문에서 이용된 바와 같이, 용어 "GUI 화면"은 동시에 하나 이상의 디스플레이 유닛 상에 렌더링되는 GUI 객체의 세트를 칭한다. GUI 화면은 미디어 아이템을 출력하는 동일한 디스플레이 상에 렌더링될 수 있거나, 서로 다른 디스플레이 상에 렌더링될 수 있다. 디스플레이는 TV 디스플레이, 컴퓨터 모니터 또는 임의의 다른 적절한 GUI 출력 장치일 수 있다.
사용자가 GUI 화면이 연속됨을 더 잘 알게 하는 다른 GUI 효과는 줌이 수행되거나 사용자가 현재 선택된 객체와 동일한 줌 레벨로 인접한 객체를 선택했을 때 호출되는 패닝 애니메이션 효과이다. 도 5의 예를 다시 참조해 보면, 사용자가 이러한 초기의 GUI 화면을 보았을 때, 그 또는 그녀의 관점에서는 포인트(550)가 대략 중앙이다. 그러나, 그 또는 그녀가 장르 3을 줌인한다고 선택했을 때, 그 또는 그녀의 관점은 포인트(552)로 이동할 것이다. 본 발명의 예시적인 실시예에 따르면, 진행중인 줌은 포인트(550)로부터 포인트(552)로의 POV 중앙 이동을 전달하도록 애니메이션된다. 이러한 패닝 애니메이션은 모든 GUI 변경, 예를 들면, 줌 레벨에서의 변경 또는 동일한 GUI 줌 레벨에서 하나의 객체로부터 다른 객체로의 변경에 제공될 수 있다. 그러므로, 예를 들면, 도 6의 GUI 화면에 위치된 사용자가 가장 왼쪽의 선택되지 않은 장르(515)(장르 2)를 선택했다면, 사용자에게 왼쪽 또는 서쪽으로 이동하는 시각적인 인상을 주는 패닝 애니메이션이 일어날 것이다. 본 발명의 예시적인 실시예는 이러한 기술을 채용하여 GUI 화면들 간의 방향 이동이 연속되었다는 느낌을 제공하여, 사용자가 GUI를, 줌 레벨들 간에 그리고 동일한 줌 레벨에서의 미디어 아이템들 간에, 보다 빠르게 네비게이션하게 한다.
다양한 데이터 구조 및 알고리즘이 본 발명에 따른 줌이 가능한 GUI들을 구현하는 데에 이용될 수 있다. 예를 들면, 사진을 디스플레이하는 이미지 브라우저에서의 패닝 및 주밍을 위한 알고리즘 및 데이터 구조는, 예를 들면, 벤자민 B. 베더슨이 저술한, UIST 2001, 사용자 인터페이스 소프트웨어 및 기술에 대한 ACM 심포지움, CHI Letters, 3(2), pp. 71-80에 발표되고, 본원에 그 개시물이 참조로서 포함되는, 명칭이 "Quantum Treemaps and Bubblemaps for a Zoomable Image Browser"인 논문에 기술되었다. 그러나, 상위 레벨에서 다양한 애플리케이션들 간에 스위치하고, 하위 레벨에서 선택된 이미지와 관련된 사용자 제어를 제공하여 다양한 미디어 선택 함수를 수행하는 미디어 선택용 GUI를 제공하기 위해, 추가적인 데이터 구조 및 알고리즘이 필요하다.
줌이 가능한 GUI는 디스플레이 장치의 뷰 포트에서 사용자 인터페이스 컴포넌트의 장면 주위의 패닝 및 주밍을 지원하도록 개념화될 수 있다. 이러한 효과를 달성하기 위하여, 본 발명의 예시적인 실시예에 따른 줌이 가능한 GUI는 장면 그래프 데이터 구조를 이용하여 구현될 수 있다. 이 장면 그래프의 각 노드는, 버튼이나 텍스트 라벨 또는 인터페이스 컴포넌트 그룹과 같은 사용자 인터페이스 컴포넌트의 몇몇 부분을 나타낸다. 노드의 자식은 그 노드의 내부의 그래픽 엘리먼트(선, 텍스트, 이미지, 등)를 나타낸다. 예를 들면, 애플리케이션은 장면 그래프에서 그 인터페이스의 다양한 그래픽 엘리먼트에 대한 자식을 가지는 노드로서 나타내어질 수 있다. 여기서는 2개의 특수한 유형의 노드가 카메라 및 계층으로 참조된다. 카메라는 계층 노드를 바라봄으로써 장면 그래프의 다른 부분으로의 뷰 포트를 제공하는 노드이다. 이들 계층 노드 하에 사용자 인터페이스 엘리먼트가 발견될 수 있다. 줌이 가능한 인터페이스의 제어 로직은 카메라 뷰 변환을 조정하여 패닝 및 주밍의 효과를 제공한다.
도 9는 본 발명의 예시적인 실시예를 구현하는 데에 이용될 수 있는 기본 줌이 가능한 인터페이스 엘리먼트를 포함하는 장면 그래프를 도시하는데, 구체적으로 이는 하나의 카메라 노드(900) 및 하나의 계층 노드(902)를 포함한다. 카메라 노드(900)와 계층 노드(902) 간의 점선은 카메라 노드(900)가 카메라의 뷰 포트에서 계층 노드(902)의 자식을 렌더링하도록 구성되었음을 나타낸다. 장착된 디스플레이 장치(904)는 사용자가 카메라의 뷰 포트를 보게 한다. 계층 노드(902)는 하나의 원 및 한 쌍의 타원을 그리는 3개의 자식 노드(904)를 가진다. 이 장면 그래프는 원 안에 직사각형이 그려져 있으며 노드(912-918)에 의하여 직사각형 안에 3개의 삼각형이 그려져 있음을 더 기술한다. 루트 노드(920)에 의하여 이 장면 그래프는 데이터 구조 내의 다른 장면 그래프로 결합된다. 각 노드(906-918)는 로컬 좌표 변환 행렬을 이용함으로써 자신의 부모에 관련된 스케일 조절 및 배치 기능을 직접적으로 가진다. 도 10a 및 10b는 첫 번째는 장면 그래프가 카메라를 통해, 줌 아웃된 확대 레벨로, 두 번째는 줌인 된 확대 레벨로 렌더링될 때 나타날 수 있는 형태를 각각 도시한다.
장면 그래프의 렌더링은 다음과 같이 이루어질 수 있다. 디스플레이(904)가 갱신될 필요가 있을 때마다, 예를 들면, 사용자가 도 10a의 뷰로부터 도 10b의 뷰로의 줌-인을 트리거할 경우, 리페인트(repaint) 이벤트가 디스플레이(904)에 부착된 카메라 노드(900)를 호출하여 카메라 노드 자신을 렌더링한다. 그러면 이는 카메라 노드(900)가 계층 노드(902)에 카메라의 뷰 포트 내의 영역을 렌더링할 것을 통지하게 한다. 계층 노드(902)는 이 노드의 자식들에게 이들 자신들을 렌더링할 것을 통지함으로써 자신을 렌더링하고, 이 과정은 하위 노드에도 반복된다. 갱신된 구역에 대한 바운딩 직사각형 및 현재 변환 행렬이 각 단계에서 전달되며 선택 적으로 각 노드에 이들이 렌더링에 이용해야 하는 적절한 스케일 및 오프셋을 알려주도록 수정된다. 본 발명에 따른 줌이 가능한 GUI 내에서 동작하는 애플리케이션의 장면 그래프가 수천 개의 노드를 포함할 수 있기 때문에, 각 노드는 이들의 드로잉 동작을 사용자가 진짜로 볼 것을 보장하도록 갱신될 구역 및 변환 행렬을 검사할 수 있다. 전술한 예는 하나의 카메라 노드 및 하나의 계층 노드를 포함하는 장면 그래프를 도시하지만, 본 발명의 예시적인 실시예는 복수의 카메라 및 계층을 내장할 수 있다고 인식될 것이다. 이들 내장된 카메라는 전체 줌이 가능한 인터페이스에서의 사용자의 현재 뷰 위치를 나타내는 작은 줌 아웃된 맵과 같은 사용자 인터페이스 엘리먼트를 제공할 수 있고, 또한 사용자 인터페이스 컴포넌트가 독립적으로 주밍이 되고 패닝이 될 수 있게 한다.
도 14 내지 도 18과 관련하여 이하 기술될 예시적인 영화 브라우저와 같이 줌이 가능한 인터페이스를 이용하여 복수의 애플리케이션의 동작을 조정할 경우, 각 애플리케이션에 대한 메모리 및 자원 요구사항은 미디어 시스템에 이용가능한 총 메모리를 초과할 수 있다. 여기서는 애플리케이션들이 자신들의 코드 및 데이터 중 일부 또는 모두를 사용자가 더 이상 이들을 보지 않을 경우 언로드할 것을 제안한다. 그러나, 본 발명에 따른 줌이 가능한 GUI에서는 항상 애플리케이션들 중 일부 또는 모두가 사용자에게 활성화되어 있는 형세를 제공하는 것이 바람직할 수 있다. 이들 2개의 대치되는 목적을 만족시키기 위하여, 사용자의 관점으로부터 "화면을-벗어난" 애플리케이션들을 임시 보류 상태에 놓을 수 있다. 본 발명의 예시적인 실시예에 따른 줌이 가능한 GUI에서 이러한 행위를 수행하기 위하여, 애플 리케이션들이 뷰 포트에 들어서고 벗어나는 때를 나타내는 이벤트가 애플리케이션에 송신된다. 이러한 이벤트를 구현하는 한 가지 방식은 사용자가 뷰 포트에 들어서는 때를 탐지하도록 컴포넌트를 렌더링하는 코드에 로직을 추가하는 것이다. 그러나, 이는 통지 로직이 매 번의 렌더링 이벤트 마다 호출되어야 하고, 보다 중요한 것은, 사용자가 컴포넌트로부터 멀리 떨어진 뷰 포트를 항해했을 경우에는 쉽게 탐지할 수 없다는 것을 의미한다. 애플리케이션으로 이벤트를 송신하기 위한 다른 방법은 (하이퍼링크 및 버튼과 같은) GUI 네비게이션 엘리먼트로의 통지 로직을 포함하여, 이들이 카메라의 뷰 포트를, 관심 있는 컴포넌트를 포함하도록 변경할 때 이 컴포넌트로의 통지를 송신하도록 하는 것이다. 그러나, 이는 프로그래머가 모든 가능한 네비게이션 UI 엘리먼트로 통지 코드를 항상 주의 깊게 추가해야 하는 것을 요구한다.
일 예시적인 실시예에 따르면, 관련된 GUI 컴포넌트 및/또는 애플리케이션이 카메라의 뷰에 들어서고 벗어날 때를 애플리케이션에 통지하기 위해 전산적으로 효율적인 노드 관측자 알고리즘이 이용될 수 있다. 상위 레벨에서, 노드 관측자 알고리즘은 3개의 주된 처리 단계: (1) 초기화, (2) 뷰 포트 변경 판정 및 (3) 장면 그래프 변경 판정을 가진다. 초기화 단계는 뷰 포트 변경 판정 단계에 의해 이용되는 노드 양을 계산하고 적절한 데이터 구조를 초기화한다. 뷰 포트 변경 판정 단계는 뷰 포트가 변경될 때 호출되고 뷰 포트에 들어섰거나 벗어난 모든 관측된 노드들을 통지한다. 마지막으로, 장면 그래프 변경 판정 단계는 장면 그래프에서의 변경에 의하여 무효하게 된 초기화 단계에 이루어진 계산을 갱신한다. 예를 들 면, 관측된 노드의 노상 노드가 장면 그래프에서의 위치를 변경했다면, 초기화에서 이루어진 계산은 다시 계산되어야 할 필요가 있다.
이들 단계 중에서, 뷰 포트 변경 판정은 노드 관측자 알고리즘의 나머지 부분을 구동한다. 노드가 뷰 포트에 들어서거나 벗어날 때를 서술하기 위하여, 초기화 단계는 원하는 노드의 바운딩 직사각형을 결정하고 이 직사각형을 그 로컬 좌표 시스템으로부터 뷰 포트의 로컬 좌표 시스템으로 변환시킨다. 이런 식으로, 노드가 들어섰다는 것을 검사하는 것은 뷰 포트가 변경될 때마다 일련의 좌표를 변환할 필요가 없다. 노드의 부모들은 변환 행렬들을 가질 수 있기 때문에, 초기화 단계는 장면 그래프를 노드에서부터 카메라까지 올라가며 트레버싱하는 것을 요구하지 않는다. 이하 기술될 바와 같이, 내장된 카메라가 장면 그래프 데이터 구조에서 이용될 경우, 복수의 장소들에 나타나는 노드를 수용하기 위한 복수의 바운딩 직사각형이 필요할 수 있다.
일단 뷰 포트 좌표 시스템에서 각 관측된 노드에 대한 바운딩 직사각형이 계산되었다면, 초기화 단계는 이 바운딩 직사각형을 뷰 포트 변경 판정 데이터 구조에 추가한다. 노드 관측자 알고리즘은 장면의 각 차원에 대하여 기본 빌딩 블록을 이용한다. 몇몇의 예시적인 실시예에 따른 줌이 가능한 인터페이스에서, 이 빌딩 블록은 x 차원, y 차원, 및 스케일 차원을 포함한다. 그러나, 이하 기술될 바와 같이, 다른 예시적인 실시예는 추가적이거나 다른 차원을 가질 수 있다. 스케일 차원은 뷰 포트에서의 노드의 확대 레벨을 기술하고 다음의 수학식으로 기술된다:
여기에서 s는 스케일이고, d는 노드의 로컬 좌표에서의 노드의 한 포인트에서부터 다른 포인트로의 거리이며, d'는 뷰 포인트에서의 그 노드 포인트로부터 다른 포인트로의 거리이다.
도 11은 장면 들어감 및 벗어남을 탐지하기 위한 예시적인 빌딩 블록을 1차원으로 도시한다. 다음은 x 차원에서의 처리를 기술하지만, 당업자들은 다른 차원이 마찬가지의 방식으로 처리될 수 있음을 인식할 것이다. 영역 블록(1100)은 변환된 바운딩 직사각형 좌표에 대한 참조를 포함한다. 이는 이 직사각형의 왼쪽과 오른쪽(위와 아래 또는 최소와 최대 스케일) 오프셋을 포함한다. 왼쪽과 오른쪽 오프셋은 변이 블록(1102) 및 블록(1104)에 각각 저장되는데, 이 변이 블록 자신들은, 낮은 숫자를 가지는 오프셋들이 시작부분을 향하게 되는, 순서가 정렬된 이중 연결 리스트에 위치된다. 현재 뷰 포트 바운드는 뷰 바운드 블록(1106)에 저장된다. 블록(1106)은 뷰의 왼쪽 및 뷰의 오른쪽 바로 옆에 변이 블록으로의 포인터를 가지는데, 예를 들면, 뷰 왼쪽이 가리키는 변이 블록이 뷰 오른쪽이 가리키는 것이 아니라면 이 블록의 바로 오른쪽의 변이 블록이 뷰에 있는 것이다.
뷰 포트가 변경되는 경우, 각 차원에 대하여 다음의 처리가 일어난다. 첫째, 뷰 왼쪽 및 뷰 오른쪽 포인터가 전이 블록을 포함하도록 또는 포함하지 않도록 이동되어야 할 필요가 있는지를 알기 위해 이 포인터들을 검사한다. 그 다음, 이 포인터들 중 하나 또는 둘 다가 이동되어야 할 필요가 있다면, 이들은 이들의 새로운 위치로 전이 블록 리스트를 활주한다. 그 다음, 뷰 왼쪽 및 뷰 오른쪽 포인터에 의해 전달된 전이 블록 각각에 대하여, 노드 관측자 알고리즘은 이하 기술될 전이 블록 통지 코드를 실행한다. 이 통지 코드는 이 블록의 각각의 노드가 뷰 포트에 들어서거나 벗어나는 것이 가능한지를 판정한다. 그렇다면, 그 노드는 후처리 리스트에 추가된다. 마지막으로, 이러한 각 차원에 대한 처리가 끝났을 때, 후처리 리스트의 각 노드는 이 노드의 뷰 포트 상태가 실제로 변하였는지(변경 후에 다시 변경되는 것과 대조하여)에 대해 검사된다. 변경이 일어났다면, 알고리즘은 컴포넌트에 이벤트를 송신한다. 뷰 포트가 줌이 가능한 인터페이스의 새로운 영역으로 빠르게 점프한다면 알고리즘은 가짜 들어감 및 벗어남 이벤트를 더 많이 탐지할 수 있음을 유의한다.
전이 블록 통지 코드는 검사되고 있는 차원에 대하여 노드가 뷰 포트 안으로 이동하였는지 뷰 포트 밖으로 이동하였는지를 판정하는 테이블 탐색으로서 구현될 수 있다. 예시적인 테이블을 다음에 나타내었다.
노드 측 | 뷰 측 | 뷰 이동 방향 | 일부 교차 통지 | 완전히 교차 통지 |
왼쪽 | 왼쪽 | 왼쪽 | 없음 | 들어감 |
왼쪽 | 왼쪽 | 오른쪽 | 없음 | 벗어남 |
오른쪽 | 왼쪽 | 왼쪽 | 들어감 | 없음 |
오른쪽 | 왼쪽 | 오른쪽 | 벗어남 | 없음 |
왼쪽 | 오른쪽 | 왼쪽 | 벗어남 | 없음 |
왼쪽 | 오른쪽 | 오른쪽 | 들어감 | 없음 |
오른쪽 | 오른쪽 | 왼쪽 | 없음 | 벗어남 |
오른쪽 | 오른쪽 | 오른쪽 | 없음 | 들어감 |
전이 통지 테이블
열 1, 2 및 3은 전이 통지 테이블로의 입력이다. 구체적으로는, 노드 관측자 알고리즘은 평가되고 있는 노드가 들어갔는지 벗어났는지, 또는 아무런 영향을 받지 않았는지를 판정하기 위하여 노드 측, 뷰 측 및 뷰 이동 방향의 조합을 이용하여 테이블을 채운다. 열 1은 뷰 포트 포인터가 전달하였던 전이 블록에 의해 나타내어지는 노드의 측을 말한다. 열 2는 뷰 포트의 측을 말하며 열 3은 뷰 포트의 측이 노드의 전이 블록을 전달하였을 때 이동했던 방향을 말한다. 노드가 뷰에 부분적으로 있을 때를 통지해야하는지 완전히 있을 때를 노드에 통지해야 하는지에 따라서 출력 열 4 또는 열 5 중의 하나가 선택된다. 예를 들면, 몇몇의 실시예에서 뷰에 일부가 있는 비디오 윈도우를 줌이 가능한 GUI를 로딩하는 것은 시각적으로 분열이 일어나 보이기 때문에 스트리밍 비디오 윈도우와 같은 애플리케이션이 완전히 뷰에 들어선 이후에만 통지하는 것이 바람직할 수 있다.
이 테이블의 출력이 들어감 또는 벗어남을 나타낼 때, 노드 관측자 알고리즘은 후처리 리스트에 노드를 추가한다. 표 1의 출력 열들은 이하의 규칙에 기초하여 채워진다. 노드가 모든 차원들에서 교차된다면 후처리 단계로 들어감 통지가 송신될 것이다. 노드가 뷰에 있었고 지금은 하나 이상의 차원이 교차를 중단했다면, 벗어남 통지가 송신될 것이다. 후처리 리스트에서 노드의 개수를 줄이기 위하여, 전이 블록 통지 코드는 리스트에 이 노드를 추가하기 전에 다른 차원과 교차하는지를 검사한다. 이는 차원들의 전체 수, 예를 들면, 3개 이상 중에서 하나 또는 2개의 차원만이 교차할 때의 후처리 단계를 줄인다. 사용자 인터페이스 객체(예를 들면, 애플리케이션)가 GUI에서의 자신의 뷰 포트 상태를 통지받기를 원한다면, 노드 관측자 알고리즘에 함수를 등록한다. 애플리케이션이 뷰 안으로 들어가거나 뷰 밖으로 벗어난다면, 노드 관측자 알고리즘은 일어난 이벤트를 나타내는 매개변수를 가지는 그 애플리케이션의 등록된 함수를 호출한다. 대안으로, 메시지 전달을 이용하여 통지가 수행될 수 있다. 이 경우, 각 애플리케이션은 이벤트 큐를 가진다. 애플리케이션은 노드 관측자 알고리즘에 자신의 이벤트 큐와 통신하기 위한 방식을 알려준다. 예를 들면, 이는 큐의 주소를 특정할 수 있다. 그 다음, 노드 관측자가 전이를 탐지한다면, 이 관측자는 통지의 원인을 포함하는 데이터 구조를 생성하고 이 구조를 애플리케이션의 큐에 위치시킨다.
애플리케이션 메모리 관리를 위하여 노드 관측자 통지를 이용하는 것 이외에도, 이 알고리즘은 본 발명에 따른 줌이 가능한 GUI의 다른 기능을 위해서도 이용될 수 있다. 예를 들면, 노드 관측자 알고리즘은, 예를 들면, 오디오 출력 포커스를 현재 보이는 애플리케이션으로 스위칭함으로써, 사용자의 뷰 포커스에 기초하여 애플리케이션 행위를 변경하는 데에 이용될 수 있다. 노드 관측자 알고리즘의 다른 적용은 확대 레벨이 변경될 경우 보다 높은 해상도 및 합성 이미지를 로딩하고 언로딩하는 것이다. 이는 그래픽 렌더링기가 해상도가 디스플레이에 보다 근접하게 일치하는 보다 적은 객체들을 랜더링하게 함으로써 이 렌더링기 상의 전산적인 부하를 줄여준다. 노드 관측자 알고리즘으로 하여금 카메라의 뷰 포트를 관측하게 하는 것 이외에도, 이 알고리즘으로 하여금 뷰 포트에 애니메이션 이후에 종료될 장소를 알려주는 네비게이션 코드를 관측하게 하는 것도 유용하다. 이는 뷰에 도달할 컴포넌트의 보다 빠른 통지를 제공하고 또한 본 발명의 예시적인 실시예에 따른 줌이 가능한 GUIS가 패닝 애니메이션에 의해 흘러넘치는 노드로 통지를 송신하는 것을 피할 수 있게 한다.
노드 관측자 알고리즘의 동작을 더 잘 이해하기 위하여, 이제 도 12a, 12b, 13a, 및 13b를 참조하여 일례가 기술될 것이다. 도 12a 및 12b는 2개의 서로 다른 확대 레벨로 줌이 가능한 GUI의 일부를 도시한다. 도 12a의 낮은 확대 레벨에서는, 원, 삼각형 및 타원인 3개의 노드가 보인다. 도 12b에서는, 타원 및 원은 일부분만 보이고, 삼각형은 모두 뷰에서 벗어날 정도로 뷰가 줌 인되었다. 이들 노드는, 예를 들면, 효과적인 이벤트 통지에 의존하는 사용자 인터페이스 컴포넌트 또는 애플리케이션을 나타낼 수 있으므로, 본 발명의 예시적인 실시예에 따른 노드 관측자 알고리즘에 의해 추적된다. 이 예에서, 각 노드에 대한 바운딩 직사각형이 도 12a 및 12b에 명확하게 도시되지만 당업자들은 바운딩 직사각형이 통상적으로 GUI에 디스플레이되지 안을 수 있음을 인식할 것이다. 각각의 바운딩 직사각형의 각 측은 도 12a 및 12b에 라벨로 표시되었고, 이들 라벨은 바운딩 직사각형 측들과 상술하였던 전이 블록 데이터 구조 간의 대응관계를 보여주는 데에 이용될 것이다.
도 13a는 도 12a의 줌 아웃된 뷰에 대한 수평 차원의 예시적인 노드 관측자 데이터 구조를 도시한다. 여기에서, 노드의 바운딩 직사각형의 각 측은 전이 블록을 이용하여 나타내어진다. 도 13a에서는 수평 전이 블록들이 왼쪽부터 오른쪽으로 GUI 화면에 나타나는 순서로 도시된다. 예를 들면, 원의 왼쪽, C왼쪽이 처음으로 등장하고 그 다음 삼각형의 왼쪽, T왼쪽이 등장하고 타원의 오른쪽인, E오른쪽이 등장할 때까지 계속된다. 리스트의 양 끝은 빈 표지 전이 블록으로 표시된다. 도 13a에서는 각 노드에 대한 영역 블록 및 이들의 바운딩 직사각형의 수형 전이 블록으로의 이들의 대응하는 포인터도 도시된다. 도 13a의 하단에는 현재 뷰의 바로 외부에 있는 전이 블록으로의 포인터를 포함하는 뷰 바운드 데이터 구조가 도시된다. 줌 아웃된 뷰에서는, 모든 노드가 완전하게 보이므로 이들의 전이 블록 모두는 뷰 바운드 데이터 구조가 가리키는 전이 블록들 사이에 있다.
도 13b는 도 12b의 줌 인된 뷰에 대한 노드 관측자 데이터 구조를 도시한다. 여기에서, 2개의 바운딩 직사각형 측들이 현재(줌 인된) 뷰의 바로 외부에 있기 때문에, 데이터 구조의 뷰 바운드 부분이 지금은 삼각형의 오른쪽, T오른쪽에 대한 전이 블록, 및 타원의 오른쪽, E오른쪽에 대한 전이 블록을 가리키도록 변경된 것을 볼 수 있다.
이들 예시적인 데이터 구조와 GUI 화면이 주어지면, 줌 전이가 일어나는 노드 관측자 알고리즘 내의 관련 처리는 다음과 같이 기술될 수 있다. 뷰의 왼쪽으로부터 시작하여, 노드 관측자 알고리즘은 뷰 왼쪽 포인터를 왼쪽에서의 뷰의 바로 외부에 있는 전이 블록에 도달할 때까지 오른쪽으로 이동시킨다. 도 13b에 도시된 바와 같이, 뷰 왼쪽 포인터가 처음으로 C왼쪽 전이 블록을 통과한다. 이 예에서는, 원 노드가 뷰에서 완전히 보이는 것이 아닐 때를 통지하기를 요구하는 줌이 가능한 GUI에 관련된 애플리케이션 또는 다른 사용자 인터페이스 객체를 나타낸다고 가정한다. 노드 관측자 알고리즘으로의 이러한 입력들이 주어지면, 표 1은 원 노드가 수평 차원에 대한 벗어남 통지를 수신해야 함을 알려준다. 물론, 노드 관측자 알고리즘은 통상적으로 중복된 벗어남 통지를 송신하는 것을 피하기 위해 노드에 통지하기 전에 모든 차원으로부터의 통지를 통합할 것이다. 그 다음, 뷰 왼쪽 포인터는 삼각형의 왼쪽, T왼쪽을 통과한다. 삼각형 노드가 자신이 완전히 뷰를 벗어날 때에 대한 통지를 요구했다면, 노드 관측자 알고리즘은 표 1마다 어떠한 통지도 필요하지 않음을 표시한다. 그러나, 뷰 포인터가 T오른쪽을 통과할 때, 표 1은 삼각형이 뷰를 완전히 벗어났으며 통지가 되어야 함을 나타낸다. 원의 바운딩 직사각형의 오른쪽, C오른쪽이 아직도 뷰에서 볼 수 있기 때문에 뷰 포인터는 여기서 멈춘다.
오른쪽으로부터의 경우, 노드의 관측자 알고리즘의 처리도 마찬가지이다. 뷰 오른쪽 포인터는 왼쪽 방향으로 이동하여 타원의 오른쪽 E오른쪽에 도달한다. 타원이 전체 통지를 요청했는지 부분적인 통지를 요청했는지에 따라, 노드 관측자 알고리즘은 표 1에 따라서 타원에 통지를 송신하거나 통신하지 않을 것이다. 유사한 데이터 구조 및 위 아래 경계 직사각형 값을 이용하여 마찬가지 방식으로 수직의 차원이 처리될 수 있다. 당업자들은 또한 복수의 경계 직사각형이 보다 정확한 통지가 필요할 때 직사각형이 아닌 노드를 어림잡는 데에 이용될 수 있음을 인식할 것이다. 또한, 본 발명은, 예를 들면, 기하학적(깊이 또는 스케일)인 3차원, 시간 등의 비-기하학적 차원, 컨텐츠 등급(어른, PG-13 등) 및 컨텐츠 유형(드라마, 코미디, 등)과 같은 다른 차원을 통한 이동이 추적되고 노드 관측자 알고리즘에 의해 처리됨을 고려한다. 이용되는 차원의 개수에 따라, 알고리즘은 보다 정확하게 경계 세그먼트, 직사각형, 및 n-차원의 하이퍼큐브의 교차를 탐지한다.
상술한 노드 관측자 알고리즘 이외에도 본 발명의 예시적인 실시예는 본 발명의 예시적인 실시예에 따른 줌이 가능한 GUI에 이용될 수 있는 해상도가 일관된 의미적 주밍 알고리즘을 제공한다. 의미적 주밍은 컴포넌트의 상세를 줌이 가능한 GUI에 이 컴포넌트의 확대 레벨에 의존하여 추가하거나 제거하거나 변경하는 것을 말한다. 예를 들면, 이하 기술된 영화 브라우저 인터페이스에서, 사용자가 영화의 이미지에 충분히 근접하게 주밍한다면, 영화 메타데이터 및 재생 제어가 보여지도록 변경될 것이다. 확대 레벨의 계산은 컴포넌트가 디스플레이 장치에서 이용하는 픽셀의 개수에 기초한다. 줌이 가능한 GUI는, 예를 들면, 영화 메타데이터 및 재생 제어가 없는 뷰로부터 영화 메타데이터 및 재생 제어를 가지는 뷰로의 스위치가 발생해야할 때를 나타내는 임계치 확대 레벨을 저장할 수 있다.
텔레비전 및 컴퓨터 디스플레이는 폭넓게 변하는 디스플레이 해상도를 가진다. 몇몇의 모니터는 낮은 해상도 디스플레이에서 판독가능한 그래픽 및 텍스트가 완전히 판독 불가능할 정도로 작아지도록 높은 해상도를 가진다. 이는 또한 의미적 주밍을 이용하는 애플리케이션에, 특히 HDTV와 같은 고 해상도 디스플레이 상에서, 문제를 발생시킨다. 이러한 환경에서, 디스플레이되는 픽셀의 개수에 기초하여 렌더링을 하는 의미적 주밍 코드는 보다 상세한 뷰가 판독될 수 있기 전에 이미지를 변경할 것이다. 의미적 주밍이 컴포넌트 뷰들을 변경시키는 임계치를 프로그램적으로 수정하는 것은 하나의 해상도에 대해서만 작업할 수 있다.
바람직한 결과는 의미적 주밍이 모든 모니터 해상도를 통해 일관성 있게 일어나는 것이다. 하나의 해결책은 해상도가 모든 디스플레이에서 동일하도록 고 해상도 모니터에서는 보다 낮은 해상도 디스플레이 모드를 이용하는 것이다. 그러나, 고해상도 모니터의 사용자는 의미적 주밍이 여전히 원하는 데로 동작한다면 그래픽이 이들의 최상의 해상도로 렌더링될 것을 선호할 것이다. 따라서, 본 발명의 예시적인 실시예는 전술된 의미적 뷰잉 과제를 가지지 않는 모든 서로 다른 해상도의 디스플레이를 지원하는 의미적 주밍 기술을 제공한다. 이는, 예를 들면, 장면 그래프의 내부에 가상 디스플레이를 생성함으로써 달성될 수 있다. 이는 도 14에서 내장된 가상 카메라 노드(1200)를 이용하고 디스플레이 해상도를 보충하기 위한 로직을 추가함으로써 도시된다. 가상 카메라 노드(1200)는 사용자의 뷰 거리 및 모니터 사이즈와 사이즈가 매핑되는 뷰 포트를 정의한다. 예를 들면, 큰 가상 카메라 뷰 포트는 사용자가 모니터에 충분히 가까이 앉아 있거나 많은 상세한 사항을 표현하기에 충분히 큰 모니터를 가졌음을 나타낸다. 대안으로, 작은 뷰 포트는 사용자가 모니터로부터 더 멀리 떨어져 더 큰 폰트 및 이미지가 필요하다는 것을 나타낸다. 줌이 가능한 GUI 코드는 이 가상 카메라에 보이는 컴포넌트들의 확대 레벨에 기초하여 사용자가 선호하는 뷰잉 조건을 이용하여 의미적 주밍 전이를 할 수 있다.
디스플레이 장치(1204)에 부착된 주 카메라 노드(1202)는 가상 카메라(1200)가 보여주는 모든 것들을 디스플레이하도록 구성된 뷰 포트를 가진다. 그래픽 이미지 및 텍스트가 이 주 카메라(1202)까지의 픽셀들에 매핑되지 않기 때문에, 가상 카메라로부터의 어떠한 품질 손실도 일어나지 않는다. 그 결과는 고해상도 모니터가 보다 높은 품질 이미지를 디스플레이하고 이 디스플레이를 판독하기 더 어렵게 만들 수 있는 의미적 주밍 변경을 트리거하지 않게 된다.
본 발명의 한 예시적인 실시예에 따르면, 처리 과정은 다음과 같이 진행한다. 각 카메라 및 장면 그래프에서의 노드는 관련된 변환 행렬(T1 내지 Tn)을 가진다. 이들 행렬은 그 노드의 로컬 좌표계를 디스플레이 쪽의 다음 노드의 좌표계로 변환시킨다. 도면에서, T1은 자신의 뷰 포트로부터의 좌표를 디스플레이 좌표로 변환한다. 마찬가지로, T2는 자신의 로컬 좌표계를 카메라의 뷰 포트로 변환한다. 리프 노드(1206)가 디스플레이 상의 무언가를 렌더링할 필요가 있다면, 다음의 변환 행렬을 계산한다:
이 계산은 장면 그래프를 트레버싱할 때 수행될 수 있다. 의미적 주밍을 지원하는 컴포넌트 변경이 가상 카메라(1200)에 기초하기 때문에, 다음의 계산이 수행된다:
통상적으로, T1 내지 T3는 모니터의 해상도를 질의하고 장면 그래프를 조사함으로써 미리 결정될 수 있다. 그러므로 이들 행렬 및 곱을 다음과 같이 역으로 함으로써 A로부터 B를 결정하는 것이 이루어질 수 있다:
T1 내지 T3을 미리 계산하는 것이 문제가 있는 경우, 예를 들면, 그래픽 API가 추가적인 변환을 숨기는 경우, 디스플레이를 렌더링하는 데에 이용되었을 변환 행렬을 차단하기 위한 로직이 가상 카메라에 추가될 수 있다. 그 다음 이러한 차단된 행렬은 상술한 의미적 주밍 임계치를 계산하기 위하여 역으로 곱하여진다.
본 발명의 예시적인 실시예에 따른 줌이 가능한 인터페이스의 한 가지 강점은 인터페이스를 네비게이션할 때의 환경을 유지하는 능력이다. 모든 인터페이스 컴포넌트는 줌이 가능한 세계에 존재하도록 나타나고, 사용자는 이들 중 임의의 것에 도달하기 위해 패닝하고 주밍하는 것을 필요로 할 뿐이다. 상술한 의미적 주밍 기술은 줌 또는 확대 레벨에 의존하여 컴포넌트의 외관을 변경한다. 도 15a 및 15b는 컴포넌트의 줌 아웃된 버전(도 15a)은 한 그림이며 줌 인된 버전(도 15b)은 동일한 그림 및 몇몇의 제어와 상세한 사항을 포함하는 컴포넌트에 대한 의미적 주밍의 일례를 제공한다. 이것의 몇몇의 보다 상세한 예들은 이하에 제공된다. 의미적 주밍에 관련된 한 가지 과제는 뷰들 간의 변경이 갑자기 일어날 수 있으며, 알파 블렌딩(alpha blending)과 같은 전이 기술은 이러한 2가지 뷰들 간에 전이가 일어날 때 시각적으로 좋은 결과를 제공하지 못한다는 것이다.
따라서, 본 발명의 예시적인 실시예는 컴포넌트의 모든 뷰에서 몇몇의 공통된 이미지 또는 텍스트를 제공하여 의미적 줌이 수행될 때 전이 효과에 대한 초점적인 포인트를 제공한다. 예를 들면, 도 15a 및 15b에서는, 이 공통된 엘리먼트는 그림이다. 줌 아웃된 버전과 줌 인된 버전 간의 전이 효과가 다음과 같이, 예를 들면, 상술한 노드 관측자 알고리즘을 이용하여 트리거될 수 있다. 우선, 주 카메라의 뷰 포트가 컴포넌트의 줌 아웃된 버전의 확대 레벨로부터 줌 인된 버전의 확대 레벨로 전이될 때 이벤트를 수신하기 위하여 노드 관측자로의 등록이 수행될 수 있다. 그 다음, 이벤트가 일어난다면, 공통 엘리먼트(들)가 이들의 줌 아웃된 버전에서의 위치로부터 줌 인된 버전에서의 위치로 변환하고 축소하는 것을 보여주는 애니메이션이 디스플레이될 수 있다. 한편, 카메라의 뷰 포트는 계속하여 컴포넌트로 줌 인된다.
본 발명에 따른 이들 그래픽 사용자 인터페이스의 기능은 도 16 내지 20에 관련하여 이하 기술되는 다른 예시적인 실시예를 검토할 때 훨씬 더 명백해질 것이다. 여기에서, 시작 GUI 화면(1400)은 미디어 그룹 표시로서 동작하는 복수의 조직화된 객체를 디스플레이한다. 가정용 비디오, 영화, TV, 스포츠, 라디오, 음악 및 뉴스로 된 전적으로 예시적인 미디어 그룹 표현은, 물론, 다른, 더 많거나 더 적은 미디어 그룹 표현을 포함할 수 있다. 사용자에 의해 이들 아이콘 중 하나가 가동될 때, 이러한 예시적인 실시예에 따른 GUI는 각각이 특정 범주 또는 장르로 그루핑되는 복수의 이미지를 디스플레이할 것이다. 예를 들면, 도 16의 "영화" 아이콘이 사용자에 의해 구동되었다면, 도 17의 GUI 화면이 디스플레이될 수 있다. 여기에서, 많은 수의, 예를 들면, 120개 이상의, 선택 객체가 디스플레이된다. 이들 선택 객체는 특정 그룹(들), 예를 들면, 액션, 클래식, 코미디, 드라마, 가족 및 신작으로 분류될 수 있다. 당업자들은 더 많거나 적은 범주가 제공될 수 있음을 인식할 것이다. 이 예시적인 실시예에서, 미디어 아이템 이미지는 각 영화 선택에 관련된 표지 아트일 수 있다. 도 17의 블록들의 사이즈가 너무 작아 이러한 비교적 큰 그룹의 선택 아이템 이미지를 보다 상세히 도시할 수 없지만, 구현에서, 일부 또는 모든 텍스트가 너무 작아 쉽게 판독할 수 없는 경우에도, 이미지의 확대 레벨은 영화의 신원이 그 관련 이미지에 의해 잘 식별될 수 있는 정도이다.
그 다음 (도 17에 도시되지 않은) 커서가 영화 이미지 그룹 위에 놓여지고 이 그룹들 중 하나에 대한 선택 표시자를 제공하도록 입력 장치가 구동될 수 있다. 이 예에서 사용자는 드라마 그룹을 선택하고 그 다음 그래픽 사용자 인터페이스는 도 18에 도시된 바와 같이 드라마 그룹의 이미지의 줌 인된 버전을 디스플레이한다. 이전 실시예에서와 같이, 도 17의 GUI 화면으로부터 도 18의 GUI 화면으로의 GUI 이동으로서의 전이 효과 또한 디스플레이될 수 있는데, 예를 들면, GUI는 줌을 할 때 또는 그 이전에 도 17의 GUI 화면의 중심으로부터 드라마 그룹의 이미지의 중심으로 뷰를 패닝할 수 있다. 도 18의 드라마 그룹의 줌 인된 버전이 드라마 그룹의 전체 개수의 이미지들 중 서브셋 만을 디스플레이하지만, 이러한 줌 인된 버전은 대안으로 선택된 그룹의 이미지들 모두를 포함할 수 있음을 유의한다. 임의의 소정의 줌 인된 버전의 GUI 화면에 선택된 그룹의 모든 이미지를 디스플레이할지 하지 않을지에 대한 선택은, 예를 들면, 특정 줌 레벨을 위한 미디어 아이템에 대한 최소한의 원하는 확대 레벨 및 그룹 내의 미디어 아이템의 개수에 기초하여 이루어질 수 있다. 본 발명에 따른 이 후자 GUI 특징은 시스템 설계자/서비스 제공자에 의해 미리 정해질 수 있거나 GUI의 소프트웨어 설정을 통하여 사용자가 지정할 수 있다. 예를 들면, 그룹 내의 미디어 아이템의 개수 및/또는 최대 확대 레벨은 서비스 제공자 또는 말단 사용자 중 하나 또는 둘 다에 의해 구성될 수 있다. 예를 들면, 이러한 특징은 시력이 나쁜 사용자가 디스플레이되고 있는 미디어 아이템의 확대 레벨을 높일 수 있게 한다. 반대로, 특별히 시력이 좋은 사용자는 확대 레벨을 낮추어, 임의의 소정 시간에 GUI 화면에 디스플레이되는 미디어 아이템의 개수를 높이고 브라우징 시간을 줄인다.
본 발명에 따른 그래픽 사용자 인터페이스에 채용될 수 있는 한 예시적인 전이 효과는 본원에서 "슈-투-디테일(shoe-to-detail)" 뷰 효과라 칭한다. 가동될 때, 이 전이 효과는 줌 아웃된 이미지를 취하며 동시에 줌 아웃된 이미지를 작은 뷰, 즉, 그 다음으로 높은 확대 레벨로 줄이고 변환한다. 도 17의 GUI 화면에 이용된 확대 레벨로부터 도 18의 GUI 화면에 이용된 보다 높은 확대 레벨로 전이되면 도 18의 줌 인된 버전에 디스플레이된 이미지에 대하여 GUI에 의해 상세한 사항이 더 보여지게 된다. GUI는 이러한 상세한 사항이 현재 선택된 줌 레벨로 잘 디스플레이될 것인지 그렇지 않은지에 기초하여 선택적으로 각 줌 레벨로 상세한 사항을 보이거나 감춘다. 육안에 대한 자신들의 가시성에 관계없이 상세한 사항을 표시하도록 시도하는 카메라 줌과는 다르게, 본 발명의 예시적인 실시예는 전체 이미지를 나타낼 때와 상세한 사항들이 숨겨진 버전의 이미지를 나타낼 때 간의 전이 포인트를 특정하는 구성가능한 줌 레벨 매개변수를 제공한다. 전이 포인트는 TV/모니터(212)의 해상도 보다는 이미지 표시에 독립적인 내부 해상도에 기초할 수 있다. 이런 식으로, 본 발명에 따른 GUI는 미디어 시스템에 이용되고 있는 디스플레이 장치의 해상도에 관계없이 일관된다.
이 예시적인 실시예에서, 특정 이미지 위에 커서를 놓음으로써 특정 이미지를 더 확대시킬 수 있다. 이 특징은 도 19에서 볼 수 있는데, 여기서 커서는 영화 "아폴로 13"에 대한 이미지를 롤 오버(roll over)시켰다. 도 19에 도시되어 있지 않지만, 이러한 추가적인 확대는, 예를 들면, 더 낮은 확대 레벨인 도 18의 GUI 화면의 대응하는 이미지에 비하여 관련 미디어 아이템의 표지 아트에 나타나는 인용문 "Houston, we have a problem"을 더 읽기 쉽게 할 수 있다. 예를 들면, 입력 장치의 버튼을 누름으로써 이 이미지를 사용자가 선택한다면, 더 줌 인하여 도 20에 도시된 상세한 사항을 디스플레이하게 될 수 있다. 이는, 도 19의 GUI 화면에 이용가능하지 않았던 다양한 정보 및 제어 엘리먼트가 도 20의 GUI 화면에 표시되기 때문에 전술한 바와 같이 의미적 주밍의 다른 예를 제공한다. 예를 들면, 다른 것들 중에서도, 영화의 러닝 타임, 비용 및 배우 정보를 포함하는 영화 "아폴로 13"에 대한 정보가 도시된다. 당업자들은 본원에 다른 유형의 정보가 제공될 수 있음을 인식할 것이다. 또한, 이 GUI 화면은, 예를 들면, (입력 장치 상의 줌 아웃 버튼을 누름으로써 또한 수행될 수 있는) 영화를 구입하거나, 트레일러를 보거나 이전의 GUI 화면으로 되돌아가기 위한 버튼 제어 객체를 포함하는 GUI 제어 객체를 포함한다. 사용자가, 예를 들면, 도 20의 GUI 화면의 오른쪽 아래 부분 구석에 식별된 관련 영화들에 관계된 GUI 화면 또는 이 영화의 배우와 관련된 정보로 점프할 수 있게 하는 데에 하이퍼링크가 이용될 수도 있다. 이 예에서, 머리글 "필모그래피" 아래의 영화 제목들 중 일부 또는 모두는, 사용자가 입력 장치를 통해 가동할 때 GUI로 하여금 지정된 영화에 대한 도 20의 GUI 화면과 대응하는 GUI 화면을 디스플레이하게 하는 하이퍼링크로서 구현될 수 있다.
사용자가 하이퍼링크를 가동할 때 전이 효과 또한 채용될 수 있다. 하이퍼링크가 매우 높은 확대 레벨로 생성될 수 있기 때문에, 단순히 링크된 미디어 아이템으로 점프하는 것은 사용자가 자신이 미디어 아이템 선택 "맵"에서 어디에 있는지에 대한 추적을 상실하게 할 수 있다. 따라서, 본 발명의 예시적인 실시예는 하이퍼링크가 가동될 때 사용자의 지리적 위치 탐지를 보유하는 것을 돕기 위한 전이 효과를 제공할 수 있다. 이러한 목적으로 채용될 수 있는 한 예시적인 전이 효과는 홉(hop) 전이이다. 이 전이 효과의 초기 단계에서, GUI는 하이퍼링크가 가리키는 아이템의 방향을 줌 아웃하고 패닝한다. 줌 아웃 및 패닝은 목표 이미지 및 본래 이미지가 모두 사용자가 볼 수 있을 때까지 계속된다. 도 20의 예를 다시 한번 이용하여, 사용자가 "라이언 일병 구하기"의 하이퍼링크를 선택한 경우, 하이퍼링크 홉 효과의 제1 단계는 "라이언 일병 구하기"와 "아폴로 13"에 대한 이미지들이 모두 사용자가 볼 수 있었을 때까지 "라이언 일병 구하기"의 이미지 쪽으로 줌 아웃하고 패닝하는 것을 포함할 것이다. 이 시점에서, 전이 효과는 사용자에게 목표 이미지 방향의 아크에서 위쪽으로 이동되고 있다는 시각적인 표현을 제공하였다. 일단 목표 이미지가 뷰에 있다면, 전이 효과의 제2 단계는 사용자에게, 예를 들면, 아크의 다른 쪽 반에서, 목표 이미지를 줌 인하고 패닝하고 있다는 시각적인 표현을 제공한다. 홉 타임, 즉, 이 전이 효과의 제1 단계와 제2 단계 모두가 디스플레이되는 총 시간은 임의의 2개의 하이퍼링크가 걸린 이미지 아이템들 간격과 같이 고정될 수 있다. 대안으로, 홉 타임은, 예를 들면, GUI 상에서 이동한 거리에 기초하여 달라질 수 있다. 예를 들면, 홉 타임은 HopTime = A log(줌 인된 스케일 레벨/홉 정점 스케일 레벨) + B(하이퍼링크된 미디어 아이템들 간의 거리) + C로서 매개변수로 나타내어질 수 있는데, 여기서 A, B 및 C는 적절하게 선택된 상수 값들이다.
도 9 내지 13b에 관련하여 상술한 노드 관측자 알고리즘은 또한 도 19의 예시적인 GUI 화면에 도시된 줌 레벨과 도 20의 예시적인 GUI 화면에 도시된 줌 레벨 간의 전이를 돕는 데에 이용될 수 있다. 선택된 이미지의 다른 줌 레벨 버전에서는 보이지 않는 제어 엘리먼트 및/또는 텍스트를 포함하는 GUI 화면을 렌더링하는 것은 낮은 확대 레벨에서의 이미지보다 계산이 많이 요구되고/거나 메모리가 많이 들 수 있다. 따라서, GUI의 네비게이션 코드를 관측하여 줌 인되고 있는 특정 미디어 아이템을 보다 빠르게 식별함으로써 도 20에 도시된 GUI 화면과 같은 GUI 화면을 미리 로딩하는 것을 돕기 위해 본 발명의 예시적인 실시예에서 노드 관측자 알고리즘이 이용될 수 있다.
화면-위치 및 의미-기반 네비게이션 제어가 본 발명의 예시적인 구현에 포함된다. 이들 제어 영역은 도 21에 도시된 바와 같이 이들 제어가 적절한 화면 상의 이들 제어에 관련된 영역 근처에 또는 영역 안에 사용자가 커서를 놓았을 때 나타난다. 예를 들면, 영화를 상영할 때, Fast Forward, Rewind, Pause, Stop 등과 같은 소위 속임수 함수라는 것이 의미적으로 적절하다. 이 예시적인 실시예에서, 화면 중 이들 기능에 할당된 영역은 오른쪽 아래 구석이며, 커서가 이 영역 근처 또는 이 영역 안에 위치하면, 이들 속임수 함수에 대한 아이콘 세트가 나타난다. 그 다음 이들 아이콘은 이 사용중인 함수가 확실하게 완료되거나 커서가 화면 상의 다른 곳에 다시 위치할 때 사라진다. 텍스트 검색 및 가정용 화면 선택과 같은 다른 네비게이션 특징을 수용하는 데에 동일한 기술이 또한 이용될 수 있다. 이 예시적인 구현에서, 이들 제어는 모든 화면에 의미적으로 상응하며 이들에 할당된 영역은 오른쪽 위쪽 구석이다. 커서가 이 영역 근처에 또는 이 영역 안에 위치한다면, 이들 네비게이션적인 제어에 대한 아이콘 세트가 나타난다. 그 다음 이들 아이콘은 함수가 활성화될 때 또는 커서가 화면 상의 다른 곳에 위치할 때 사라진다. 사용자 트레이닝을 위하여 관련 제어 아이콘은 경험하지 않은 사용자에게 이 아이콘들이 존재함을 알려주도록 초기에 선택적으로 간단하게(예를 들면, 5초 동안) 일부 또는 모든 관련 화면 상에 나타날 수 있다.
본 발명에 따른 줌이 가능한 그래픽 사용자 인터페이스의 몇 가지 예를 제공하였고, 이제 이러한 인터페이스를 이용하기 위한 예시적인 프레임워크 및 인프라스트럭처가 기술된다. 도 22는, 예를 들면, 영화, 텔레비전, 음악, 라디오 및 스포츠와 같은 다양한 고급 애플리케이션(1900)과 관련된 줌이 가능한 인터페이스가 (이 도면에서는 "원자"라 칭하는) 프리미티브(1902)에 의해 지원되는 프레임워크 도표를 제공한다. 이 예시적인 실시예에서, 프리미티브(1902)는 포인트, 클릭, 줌, 호버 및 스크롤을 포함하지만, 당업자들은, 예를 들면, 팬 및 드래그와 같은 다른 프리미티브들도 이 그룹에 포함될 수 있다고 인식할 것이다. 상술한 바와 같이 포인트 및 클릭 프리미티브는 커서 위치를 결정하고, 예를 들면, 사용자가 핸드헬드 입력 장치 상에 줌 인 또는 줌 아웃 버튼을 가동했을 때 이벤트를 트리거하도록 동작한다. 이들 프리미티브는 네비게이션을 간소화하고 위로-아래로-오른쪽-왼쪽 버튼 액션을 반복할 필요를 없앤다. 앞서 도시된 바와 같이, 줌 프리미티브는 가능한 선택의 개관을 제공하고 사용자에게 그 또는 그녀의 선택 사항을 좁혀주는 환경을 제공한다. 이러한 개념은 이 인터페이스가 다수의 미디어 선택 및 임의적인 디스플레이 사이즈로 스케일링할 수 있게 한다. 스크롤 프리미티브는 예시적인 핸드헬드 입력 장치 상의 스크롤 휠 입력 장치로부터의 입력을 처리하고, 예를 들면, 선형 메뉴 네비게이션을 촉진하는 데에 이용될 수 있다. 호버 프리미티브는 포인터 아래에 위치된 선택들을 확대(및/또는 선택된 컨텐츠를 변경)하여 사용자가 잠재적인 선택을 하지 않고서도 이 선택을 브라우징할 수 있게 한다. 전술한 프리미티브 동작들 각각은 복수의 서로 다른 방식으로 본 발명에 따른 GUI로 구동될 수 있다. 예를 들면, 포인트, 클릭, 호버, 스크롤 및 줌 각각은 사용자가 수행할 수 있는 서로 다른 제스처와 관련될 수 있다. 이 제스처는 자유 공간 포인터, 트랙볼, 터치패드, 등일 수 있는 입력 장치를 통해 시스템에 전달되고 적절한 프리미티브가 가동된 것으로 해석될 수 있다. 마찬가지로, 각각의 프리미티브들은 각각의 음성 명령과 관련될 수 있다.
하위 레벨 프리미티브(1902)와 상위 레벨 애플리케이션(1900) 간에는 본 발명에 따른 줌이 가능한 GUI에 관련된 이미지를 생성하는 데에 포함되는 다양한 소프트웨어 및 하드웨어 인프라스트럭처(1904)가 상주한다. 도 22에 나타난 바와 같이, 이러한 인프라스트럭처(1902)는 핸드헬드 입력 장치/포인터, 애플리케이션 프로그램 인터페이스(API), 줌이 가능한 GUI 화면, 개발자의 도구 등을 포함할 수 있다.
순전히 전술한 예시적인 실시예는 본질적으로 예시적인 것이다. 각 레벨에서 사용자에게 제공되는 특정 정보 및 제어, 및 줌 레벨의 개수는 달라질 수 있다. 당업자들은 본 발명이 줌이 가능한 인터페이스를 이용하여 사용자가 쉽게 영화와 음악 같은 미디어 아이템을 검색하고, 브라우징하고, 조직하고 재생할 수 있도록 미디어 아이템의 크고 작은 세트를 제공하기 위한 혁신적인 기술을 제공한다고 인식할 것이다. 본 발명에 따른 그래픽 사용자 인터페이스는 유사한 선택이 함께 그루핑되도록 가상 표면 상에 미디어 아이템 선택을 조직한다. 우선, 이 인터페이스는 표면의 줌 아웃된 뷰를 제시하여, 대부분의 경우, 실질적인 선택들은 이 레벨에서는 보이지 않고, 이들 그룹의 이름들만 보일 것이다. 사용자가 점점 내부로 줌 인할수록, 미디어 아이템 그룹 또는 선택에 관련된 보다 상세한 사항들이 드러난다. 각 줌 레벨에서, 서로 다른 컨트롤이 이용되어 사용자가 선택의 그룹이나 개별적인 선택을 재생하거나, 다른 관련 미디어 아이템들을 브라우징하기 위한 다른 가상 표면 부분으로 이동할 수 있다. 본 발명의 예시적인 실시예에 따라 그래픽 사용자 인터페이스를 주밍하는 것은 임의적인 깊이로 중첩된 이미지의 범주 및 범주의 범주를 포함할 수 있다. 미디어 아이템은 국부적으로 저장되고 브로드캐스트 제공자에 의해 브로드캐스팅되고, 컨텐츠 제공자로부터의 직접 접속을 통하여 또는 피어 기반 상에서 수신되는 컨텐츠를 포함할 수 있다. 미디어 아이템은 소정의 GUI 레벨에서 날짜/시각 정보가 제공되는 스케줄링 포맷으로 제공될 수 있다. 대안으로, 본 발명의 예시적인 실시예에 따른 프레임워크 및 GUI는 또한 선택되는 아이템이 사용자에게 팔리는 텔레비전 상거래에 적용될 수 있다.
분산형 소프트웨어 구조
상술한 GUI 화면, 및 이러한 시스템에 관련된 다른 사용자 인터페이스 특징을 생성하는 데에 이용될 수 있는 소프트웨어 개발하는 복수의 서로 다른 방식이 존재한다. 본 발명의 예시적인 실시예는 풍부한 줌이 가능한 사용자 인터페이스(ZUI)를 ZUI를 구현하고 보유하는 것에 관련된 복잡도는 줄이면서 렌더링하기 위한 환경을 제공한다. 용어 "장면" 및 "브리크(brick)"가 이하 본 발명의 예시적인 실시예에 따른 ZUI 구조를 논의하는 데에 이용된다. 장면은 네비게이션 변경들 간에 사용자에게 이용될 수 있는 ZUI 컴포넌트의 집합적인 세트를 기술한다. 브리크는 패키징된 ZUI 컴포넌트를 기술하는데, 예를 들면, 버튼이나 이미지를 디스플레이(및 이와 관련된 기능을 처리)하는 데에 이용되는 소프트웨어 패키지, 또는 장면이나 장면 세트를 생성하는 데에 이용되는 소프트웨어 패키지와 같은 보다 복잡한 패키지를 들 수 있다.
도 23은 장면 또는 브리크의 설계에서부터 그 장면의 렌더링 또는 컴파일까지의 예시적인 데이터 흐름을 도시한다. 여기에서, UI 설계 도구(2000)는 브리크 또는 장면을 구성하기 위한 시각적인 프로그래밍 환경을 제공하며, 그 예가 이하에 제공된다. 통상적으로, 아티스트 또는 애플리케이션 개발자는 UI 디자인 도구(2000)를 이용하고 브리크(2002) 또는 장면(2004) 중 하나를 저장한다. 브리크(2002) 및 장면(2004)은 브리크 라이브러리(2006) 및 비트매핑된 아트워크, 예를 들면, 사용자 인터페이스 내에 디스플레이된 선택가능한 미디어 아이템으로서 상술한 영화 표지와 같은, 멀티미디어 자원(2008)에 저장된 공통적으로 이용되는 UI 컴포넌트를 참조할 수 있다. 이 예시적인 프레임워크 안에, 장면 로더(2010)(또는 툴킷 백 엔드)가 장면 파일이나 바이트 스트림을 판독하고 임의의 참조된 브리크(2002) 또는 멀티미디어 자원(2008)에 동적으로 링크된다. 이는, 예를 들면, TV 화면 상의 사용자 인터페이스를 생성하는 것을 처리하도록 ZSD 컴파일러(2012) 또는 로컬 장면 렌더링기(2014) 중 하나에 대한 장면 그래프가 구성되게 한다.
본 발명의 예시적인 실시예에 따르면, SVG(Scalable Vector Graphics)으로서 알려진 프로그래밍 언어를 이용하여 브리크 또는 장면이 생성될 수 있다. SVG는 XML(Extensible Markup Language)로 2 차원의 그래픽을 기술하는 데 이용되도록 설계된 언어이다. SVG는 http://www.w3.org/TR/2003/REC-SVG11-20030114/에서 찾을 수 있으며, 그 개시물이 본원에 참조로서 포함되는 "W3C Recommendation 14 January 2003"에서 발표한 "SVG 1.1 사양"으로 기술된다. 다른 것들 중에서도, SVG는 3가지 유형의 그래픽 객체: 벡터 그래픽 형태(예를 들면, 직선 및 곡선으로 구성된 경로), 이미지, 및 텍스트를 제공한다. 그래픽 객체들은 이전에 렌더링된 객체들로 그루핑되고, 스타일링되고, 변형되고, 구성된다. 이 특징 세트는 중첩된 변환, 잘림 경로, 알파 마스크, 필터 효과 및 템플릿 객체를 포함한다. SVG에 이용가능한 다수의 특징들은 상술한 사용자 인터페이스와 같은 사용자 인터페이스를 생성하기 위한 브리크 및 장면을 생성하는 데에 이용될 수 있다. 그러나, 브리크 구조를 포함하는, 몇몇의 ZUI 기능을 제공하기 위하여 SVG 언어의 확장물들이 본 발명의 예시적인 실시예에 따라 개발되고 있다.
보다 구체적으로, 장면 및 브리크 설명은 ECMA스크립트 언어(자바 스크립트의 표준화된 버전)를 이용하여 스크립팅을 지원한다. 스크립팅은 다른 기능들 중에서도, 장면-대-장면 네비게이션, 애니메이션, 데이터베이스 질의 및 미디어 제어를 장면과 브리크 기능에 추가한다. 스크립팅 지원의 한 컴포넌트는 이 기능을 수행하는 데에 이용되는 API이다. 이 API는 본원에서 ZUI 객체 모델(ZOM)이라 칭하여지고 ZOM의 양태가 이하 기술된다. 본 발명의 예시적인 실시예에 따른 ZOM을 구현하는 한 양태는 SVG 언어로 제공되는 엘리먼트과 속성에 대한 확장을 포함하도록 SVG 프로그래밍 언어를 확장하는 것을 포함하는데, 이들의 몇몇의 예들이 브리크 및 장면과 관련된 기능에 대하여 이하 제공된다. 여기서, 형식 "zui: name"으로 표기된 엘리먼트 이름 및 속성 이름은 SVG에 대한 엘리먼트 또는 속성 확장을 식별한다.
<zui:brick>
zui:brick 태그는 특정된 위치에서의 장면에 다른 ZML/SVG 파일을 삽입한다. 브리크에 대한 새로운 변수 환경이 생성되고 사용자는 자식 zui: variable 태그를 이용하여 장면으로 변수를 전달할 수 있게 된다. 본 발명의 예시적인 실시예에 따른 수정된 SVG의 이러한 특징은 줌이 가능한 사용자 인터페이스의 복수의 장면들을 통해 재사용될 수 있는(단계적으로 행해지는) 매개변수화된 그래픽 특성이라는 특징이 있는 줌이 가능한 인터페이스에 이용되도록 융통성 있는 프로그래밍 엘리먼트를 제공한다. 다음에는 브리크 구현의 상세한 예가 도 24 내지 26 및 대응하는 소프트웨어 코드로 제공된다.
속성 | 가능한 값 | 설명 |
id | 알파벳-숫자 스트링 | 툴킷에 의해 디폴트로 할당됨: 사용자가 정의한 값은 자바스크립트 클리너를 만들 수 있다. |
width | 정수형 | 노드의 픽셀 너비 |
height | 정수형 | 노드의 픽셀 길이 |
transform | 변환 행렬의 스트링 표현 | "scripts/transform.js"를 이용하여 변형 속성을 판독하고 기록한다. 노드에 의해 저장된 값은 transform.js에 있는 "matrix" 속성이다; "array"는 사용자가 조작하길 원하는 내부-메모리 어레이이다. 예를 들면, 이 속성은 부모에 대하여 브리크가 어떻게 위치하는지(오프셋, 스케일, 회전)를 정의할 수 있다. |
pointer-events | none | zui:all | 마우스 이벤트를 중지시키려면 none을 이용하고, 가동시키려면 zui:all를 이용한다; Hidden/invisible 엘리먼트는 이 속성이 none으로 설정되지 않는 한 포인터 이벤트를 수신할 것이다. |
visibility | hidden | visible | 엘리먼트를 숨기려면 hidden을 이용하고; 보이게 하려면 visible을 이용한다; visibility는 사용자 입력에 영향을 미치지 않는다. |
xlink: href | URL | 브리크로서 로딩되는 ZML/SVG 파일의 URL |
<
zui
:
brick
> 태그 속성
<zui:scene>
이러한 SVG에 대한 확장은 시스템이 현재 장면의 자식으로서 장면을 위치시켜야 함을 기술하는 데 이용된다.
속성 | 가능한 값 | 설명 |
id | 알파벳-숫자 스트링 | 툴킷에 의해 디폴트로 할당됨: 사용자가 정의한 값은 자바스크립트 클리너를 만들 수 있다. |
x | 정수형 | 화면의 상단의 왼쪽 구석에 관련된 장면 위치 바운드의 상단 왼쪽 구석의 가로 위치 |
y | 정수형 | 화면의 상단의 왼쪽 구석에 관련된 장면 위치 바운드의 상단 왼쪽 구석의 세로 위치 |
widht | 정수형 | 이 위치의 픽셀 너비 |
height | 정수형 | 이 위치의 픽셀 높이 |
xlink:href | URL | 로딩될 장면의 URL |
<
zui
:
scene
> 태그 속성
<zui:scene-swap>
이러한 SVG에 대한 확장은 장면 전이를 위한 장면 교환 전이 효과를 구축한다.
속성 | 가능한 값 | 설명 |
id | 알파벳-숫자 스트링 | 툴킷에 의해 디폴트로 할당됨: 사용자가 정의한 값은 자바스크립트 클리너를 만들 수 있다. |
cover | 알파벳-숫자 스트링 | 장면 교환 효과에 사용될 커버의 id. 동일한 svg에 있는 엘리먼트의 id어야 한다. |
start | 정수형 | 전이 기간의 퍼센트 면에서의 교환이 시작하여야 할 시작 시점. 0은 인스턴트 교환이며, 100은 전이의 바로 끝에서의 교환이다. |
end | 정수형 | 전이 기간의 퍼센트 면에서의 교환이 끝나야 할 종료 시점. 항상 start 값 이상이 되어야 한다. |
inherits | 알파벳-숫자 스트링 | 카메라 전이가 행위를 상속받아야 할 엘리먼트 id. null이라면, 디폴트 값을 아용하고, set이라면, 다른 엘리먼트에서 설정된 값을 이 전이의 디폴트로서 사용한다. |
<
zui
:
scene
-
swap
> 태그 속성
<zui:variable>
이러한 SVG에 대한 확장은 현재 범위로 특정된 변수를 특정된 값으로 설정한다. 변수 범위는 zui:scene 및 zui:brick 태그에 의해 자동적으로 생성된다.
속성 | 가능한 값 | 설명 |
id | 알파벳-숫자 스트링 | 툴킷에 의해 디폴트로 할당됨: 사용자가 정의한 값은 자바스크립트 클리너를 만들 수 있다. |
name | 스트링 | 설정될 변수의 이름 |
value | 변수 | 설정될 변수의 값 |
<
zui
:
variable
> 태그 속성
예를 들어, 텔레비전용 줌이 가능한 사용자 인터페이스를 생성하는 데에 특히 유용한 프로그래밍 구조를 제공하기 위하여 전술한 SVG에 대한 확장을 사용하는 것은 도 24 내지 26에 관련하여 이하 제공될 순전히 예시적인 예를 고려함으로써 더 잘 이해될 것이다. 도 24는 음악 선택들과 관련된 예시적인 사용자 인터페이스의 제1 줌이 가능한 디스플레이 레벨을 도시한다. 여기서, GUI 화면은 각각이 범주에 의해 그루핑되는 25개의 선택 가능한 음악 아이템(5x5 음악 표지 아트 이미지들)을 포함하는 6개의 그룹(음악 선반들)을 디스플레이한다. 각 그룹은 예를 들면, 도 24에 도시된 바와 같이 제목 호버 효과를 포함하는 브리크로서 구현되는데, 사용자의 커서(도시되지 않음)는 "록&팝"이라 명명된 그룹 위에 위치되어 이 그룹의 제목 및 이 그룹의 엘리먼트가 이러한 GUI 화면에 도시된 다른 5개의 그룹에 비하여 약간 확대되도록 한다. 이 GUI 화면을 생성하기 위하여, 이 브리크에 관련된 소프트웨어 코드에 제목에 의해 분류된 록이라는 장르를 가지는 사용자의 음악 콜렉션에 대한 질의인 "music"이라 명명된 변수가 전달되는데, 다음의 예시적인 소프트웨어 코드의 하이라이트된 부분에 의해 예시된다.
각각의 그룹 내의 각각의 엘리먼트(표지 아트 이미지)는 본 발명의 예시적인 실시예에 따른 브리크로서 또한 코딩된다. 그러므로, 도 25에 도시된 바와 같이, 사용자가 "록&팝" 그룹 내의 25개의 엘리먼트 중 사나 위에 커서를 멈추었다면, 이는 엘리먼트(이 예에서 앨범 표지 "Parachutes"의 이미지)를 확대시키는 것이다. 이러한 GUI 화면을 구현하기 위한 예시적인 브리크 코드가 다음에 제공된다.
상술한 예에서 볼드체로 된 코드는 부모 SVG 브리크(music_shelf.svg)에서 설정되었던 변수 music의 25번째 엘리먼트를 말함을 유의한다. 앞선 music 질의는 25 엘리먼트까지 반환한다. 그 다음 music 엘리먼트(이 예에서는 album)는 "this"라 명명된 변수를 이용하여 albumCoverEffect.svg라 칭하는 자식 브리크로 전달된다. 상술된 2개의 코드 조각, 및 도 24와 25에 도시된 대응하는 GUI 화면(장면)은 줌이 가능한 그래픽 사용자 인터페이스를 생성용으로 본원에 기술한, 본 발명의 예시적인 실시예에 따른 SVG에 대한 재사용가능한 확장과 관련된 2개의 유익한 특징을 예시하는 역할을 한다. 첫째, SVG 브리크는 GUI 화면으로부터 GUI 화면으로(장면 대 장면) 재사용 가능한 코드를 제공하는 프로그래밍 구조를 제공한다. 이러한 관계에 있어서, 도 24의 GUI 화면을 생성하는 데에 이용되는 브리크 코드는 도 25의 GUI 화면을 생성하는 데에 다시 이용된다. 또한, 브리크들은 이들이 생성하는 그래픽 디스플레이 컨텐츠 중 적어도 일부를 시간에 따라 변경될 수 있는 메타데이터로부터 끌어왔다는 점에서 매개변수화된 것이다. 이는 동일한 프로그램 코드가, 예를 들어, 영화들이 시간에 따라 변하는 주문한 영화를 선택하기 위한 사용자 인터페이스를 생성하는 데에 이용될 수 있으며 본 발명에 따른 인터페이스의 임의의 소정의 줌 레벨로 표현된 사용자 인터페이스의 콘텐츠가 또한 시간에 따라 변할 수 있음을 의미한다.
예를 들면, 비주얼 프로그래밍 인터페이스를 이용하여 브리크 코드 그 자체가 생성될 수 있는데, 이 인터페이스의 일례는 도 26에 도시되었으며, 여기서 music 엘리먼트(2600)(앨범 표지 이미지 브리크)가 코딩되고 있다. 이 툴킷 기능과 관련된 몇몇의 예시적인 코드가 다음에 제공된다.
상기 소프트웨어 코드 예 중 볼드체로 된 부분에서, "cover"라 칭하는 엘리먼트가 있다. 이 cover 엘리먼트는 GUI 화면 상의 특정 위치에서 이 브리크에 의해 표현될 앨범 표지에 관련된 이미지 메타데이터이다. 또한 여기서 "zui:metadata='this.image.uri'"라 표현되는 프로그램 행을 유의한다. 이는 관심이 있는 앨범인 처음 코드 예(부모 SVG)에서 설정되었다. 즉, 앨범이 이 브리크로 전달되고 관련된 표지 아트가 이 변수에 의해 참조된다.
사용자 인터페이스 빌딩 블록이 SVG 프로그래밍 언어의 확장에 기초하였기 때문에 전술한 예시적인 실시예가 이들의 이용의 관점에서 브리크를 기술하지만, 브리크는 보다 일반적으로 분산형 소프트웨어 설계를 용이하게 하는 시스템 빌딩 블록으로서 채용될 수 있다. 예를 들어, 도 27에 도시된 시스템을 고려해보자. 여기에서, 소프트웨어 시스템(2700)은 메타데이터(2702)(예를 들면, 영화, 쇼핑, 음악 등과 관련된 데이터)와 텔레비전(2704) 및 원격 제어 장치(2706)와 같은 말단 사용자 장치 간의 제어 및 대화를 위한 완전한 컨텐츠 전달 프레임워크를 제공한다. 보다 일반적으로, 메타데이터는, 예를 들면, 어떻게, 언제, 누구에 의해 다른 데이터가 수신되었고, 생성되었고, 액세스되었고, 및/또는 수정되었는지 및 어떻게 다른 데이터가 포맷되었는지, 컨텐츠, 품질, 조건, 이력, 및 다른 데이터의 다른 특징들 중 하나 이상을 기술할 수 있는 특정 데이터 세트에 대한 정보이다. 브리크는 도 27의 예시적인 시스템에서, 시스템에 관련된 특정 애플리케이션에 적용되는 프레임 레벨 위에 관련 로직 모두를 실행하는 재사용 가능한 소프트웨어 구조로서 소정의 브리크 모델에 기초하는 브리크 엔진에 의해 생성된다. 이 로직을 모듈화하기 위하여, 서로 다른 레벨의 브리크가 개발될 수 있는데, 예를 들면, 도 28에 도시된 바와 같이, 애플리케이션, 애플릿, 의미적 및 원소적이다. 이제 이들 서로 다른 유형의 브리크들 각각이, 몇몇의 예와 함께, 보다 상세히 기술될 것이다.
가장 상위의 레벨에는 애플리케이션 브리크가 있다. 도 27의 시스템 예에서, 애플리케이션은 메타데이터 유형, 예를 들면, 말단 사용자에게 음악을 전달하기 위한 음악 애플리케이션, 말단 사용자에게 주문한 영화를 전달하기 위한 영화 애플리케이션 등에 대응한다. 애플리케이션 영화 브리크는 사용자가 말단 사용자와 영화 메타데이터들 간의 완전한 대화를 기술하는 미니-애플리케이션으로서 작용하는 영화 메타데이터를 브라우징하고/검색하고/찾아낼 수 있게 하는 엔트리 계층 구조를 제공한다. 마찬가지로, 음악 애플리케이션 브리크는 말단 사용자와 음악 메타데이터 간의 완전한 대화를 기술한다. 그러므로, 애플리케이션 브리크는 본질적으로, 도 27의 예시적인 시스템에 대한, 특정 유형의 메타데이터와 관련된 분산된 클래스의 정의이고, 관련 자원 메타데이터(2702)를 식별하고 분할하기 위한 특정 메카니즘을 제공한다. 일단 애플리케이션 브리크가 생성되면, 새로운 매개변수로 전달됨으로써 지정될 수 있는 애플리케이션 브리크의 개별적인 인스턴스를 생성함으로써 재사용될 수 있다. 예를 들어, 다른 것들 중에서도, CinemaNow에 의한 주문에 따라 제공되는 영화들에 대하여, 메타데이터 파싱, 사용자 인터페이스의 생성, 및 사용자 요청을 처리하기 위한 영화 애플리케이션 브리크가 생성된 이후에는, 이 브리크의 다른 인스턴스가 이 브리크의 다른 인스턴스로 다른 매게변수를 전달함으로써 다른 제공자(예를 들면, Movielink)에 의한 영화들의 제공을 처리하는 데에 이용될 수 있다. 그러므로 애플리케이션 브리크는 상위-레벨 메타데이터 범주를 완전하게 조작하는 자가-포함형, 시스템 범위의 구조로서 고려될 수 있다. 도 16에 도시된 서로 다른 기능 아이콘 각각은 서로 다른 애플리케이션 브리크와 관련될 수 있다.
도 28의 계층들에서 한 레벨을 내려가면, 애플리케이션 브리크는 몇 가지 애플릿 브리크로 구성될 것이다. 애플릿 브리크는 제2 레벨 메타데이터 범주를 완전하게 조작하거나 메타데이터 특정 기능을 완전하게 표현하는 자가-포함형, 시스템 범위의 소프트웨어 구조이다. 이러한 관계에 있어서, 제2-레벨 메타데이터는 상위 레벨 메타데이터 도메인 환경 내에서 이용가능한 메타데이터 유형들을 칭하는데, 예를 들면, 영화의 상위 레벨 메타데이터에 대하여, 제2-레벨 메타데이터는 영화 제목, 스타들, 러닝 타임, 등을 포함할 수 있다. 메타데이터 특정 기능은 특정한 상위 레벨 메타데이터에 맞추어진 기능, 예를 들면, 영화를 브라우징/상영 또는 쇼핑 메타데이터에 대한 브라우징/쇼핑 카트에 넣기를 말한다. 예를 들면, 특정 애플리케이션과 관련된 서가로 가득찬 네비게이션 스크린이 서가 네비게이션 애플릿 브리크를 이용하여 정의될 수 있다. 이 네비게이션 애플릿 브리크는 보다 상위의 레벨 애플리케이션 브리크에 적절한 방식으로 조직된 관련 메타데이터 모두를 매핑할 수 있다. 예를 들면, 특정 영화 제공자에 의해 제공되는 모든 제공들은 영화 네비게이션 애플릿 브리크에 정의된 이용가능한 메타데이터에 따른 서가의 레이아웃으로서 나타날 수 있다. 서로 다른 영화 제공자에 의해 제공된 제공에 대하여, 동일한 영화 네비게이션 애플릿 브리크의 다른 인스턴스가 유사한 사용자 인터페이스 화면을 생성하고, 대화를 처리하는 데에 이용될 수 있다. 애플릿 브리크는 (이전에 애플리케이션 브리크에 의해 조직된) 관련 메타데이터와 다양한 양태의 인터페이스, 예를 들면, 서가 차원, 표지 아트 차원, 등을 제어하기 위한 사용자 인터페이스에 대한 장면 레이아웃 간의 링크를 제공한다. 애플릿 브리크는 또한 이 레벨에서 시스템과 사용자 간의 기능적인 대화를, 예를 들면, 서가가 (예를 들면, 도 24에 도시된) 이 디스플레이 영역 상에 멈추어진 커서에 반등하는 방식으로 제어할 수 있다.
각각의 애플릿 브리크는 몇몇의 의미적인 브리크들로 구성될 수 있는데, 이는 시스템에 관련된 특정 의미적 대화를 완전히 캡슐화하는 자가-포함형 시스템-범위 구조로서 동작하는 것이 의도된다. 예를 들면, 애플릿 브리크는, 예를 들면, 도 24의 화면과 같은 네비게이션 서가 사용자 인터페이스 화면에 대한 특정 메타데이터 존재와 관련될 수 있는 반면, 의미적 브리크는, 예를 들면, 도 25에 도시된 특정 서가에 대하여 동일한 것을 할 수 있다. 그러므로 의미적 브리크는 아이템(예를 들면, 표지 아트 이미지) 크기의 상세, 표지 아트 상세, 의미적 호버 상세(즉, 사용자가 도 25에 도시된 결과를 생성하기 위하여 특정 표지 아트 이미지 상에 커서를 멈추었을 때 호버 줌을 어떻게 생성하는지), 타이틀 상세, 등을 포함할 수 있다.
의미적 브리크에 대한 다음의 예를 고려해보자. 구체적으로, 의미적 브리크가 특정인(예를 들면, 인터페이스를 사용하여 선택될 수 있는 영화의 배우)에 대한 정보를 디스플레이하도록 브리크 엔진에 의해 인스턴스화되었다고 고려해보자. 이러한 의미적 브리크는, 이 의미적 브리크의 속성들인, 다음의 정보: 이름, 생년월일, 간단한 바이오그래피, 및 관련 작업, 예를 들면, 그 또는 그녀가 주연한 영화를 이 시스템의 사용자에게 디스플레이한다. 바이오그래피는 또한 (도 28에 참조된 원소적 브리크인 최하위 순위를 이용하여 생성될 수 있는) 스크롤 가능한 텍스트 상자를 포함한다. 이 의미적 브리크는 상술한 속성을 지원하는 임의의 일반적인 메타데이터 유형에 대하여 재사용될 수 있다. 또한 이 의미적 브리크는 관련 작업에 대한 썸네일 이미지를 보여줄 수 있음을 유의한다. 그러나 의미적 브리크는 또한 사용자가 썸네일을 클릭하여 그 뷰로 이동하는 경우, 그 장면에 도달하기 위한 지연을 줄이도록, 각각의 썸네일에 관련된 보다 큰 이미지를 미리-캐슁할 기능을 정의할 수도 있다. 이는 "person" 클래스는 만든이가 음악가인지, 음악 그룹인지, 배우인지, 감독인지, 또는 저자인지에 따라 다른 인스턴스를 가진다는 점에서 OO 클래스와 비슷하게 보일 수 있다. 그러나 이 의미적인 브리크는 관련 작업에 대한 표지 아트를 보여주는 데에만 필요할 수 있어 이름, 생년월일, 간단한 바이오그래피, 및 표지 아트를 지원하는 임의의 유형의 일반적인 메타데이터가 이 브리크를 재사용할 수 있다. 관련 작업이 있지만 표지 아트가 이 작업을 나타내는데 이용가능하지 않은 경우, 브리크는 그 대신 호출될 때 사용자 인터페이스 상의 위치 보유자 이미지를 보여주도록 구성될 수 있다. 실제로, 서로 다른 유형의 위치 보유자 이미지가 (예를 들면, 영화권 또는 책자같이 보이는) 메타데이터 유형에 따라 다르게 채용될 수 있다. 이는 브리크의 에러 처리 기능을 예시한다.
상술한 바와 같이, 원소적 브리크는 프리미티브 대화를 캡슐화하는 자가 포함형, 시스템 범위의 구조이다. 원소적 브리크의 예로는 텍스트 상자, 버튼, 그림, 스크롤 리스트 등이다.
본 발명의 상술한 예시적인 실시예는 모든 점에서 제한적이기보다는 예시적이라 의도된다. 그러므로 본 발명은 당업자에 의해 본원에 포함된 설명으로부터 유도될 수 있는 상세한 구현에 대하여 다양하게 변형될 수 있다. 모든 이러한 변화 및 수정은 다음의 특허 청구 범위에 의해 정의된 본 발명의 범위 및 사상 내에 있다고 고려된다. 본 발명의 설명에 이용되는 어떠한 구성 요소, 행위, 또는 명령어도 명시적으로 그렇다고 설명되지 않는 한 불가피하거나 필수적인 것으로 해석되어서는 안된다. 또한, 본 명세서에서 사용된, 관사 "하나의"는 하나 이상의 아이템을 포함하도록 의도된다.
Claims (14)
- 그래픽 사용자 인터페이스에 정보를 디스플레이하기 위한 방법으로서,제1 확대 레벨로 제1 복수의 이미지를 디스플레이하는 단계,상기 복수의 이미지의 서브셋(subset)을 식별하는 제1 선택 표시자를 수신하는 단계, 및제2 확대 레벨로 상기 복수의 이미지의 상기 선택된 서브셋의 제1 주밍(zoom)된 버전을 디스플레이하는 단계를 포함하고,상기 첫 번째 및 두 번째 디스플레이 단계는 둘 다 적어도 하나의 재사용 가능한 소프트웨어 코드 블록을 실행함으로써 수행되는그래픽 사용자 인터페이스에 정보를 디스플레이하기 위한 방법.
- 제1항에 있어서,상기 적어도 하나의 재사용 가능한 소프트웨어 코드 블록은 SVG(scaled vector graphics) 언어로 작성되는 방법.
- 제2항에 있어서,상기 적어도 하나의 재사용 가능한 소프트웨어 코드 블록 생성하는 데에 이용되는 상기 SVG 언어는 브리크(brick) 구조를 포함하도록 수정되며,상기 브리크 구조는:식별(id) 값, 대응하는 노드의 픽셀 너비를 기술하는 너비(width) 값, 대응하는 노드의 픽셀 높이를 기술하는 높이(height) 값, 변환(transform) 값, 포인터-이벤트(pointer-events) 값, 가시(visibility) 속성 및 브리크로서 로딩되는 SVG 파일로의 URL을 포함하는 방법.
- 제1항에 있어서,상기 적어도 하나의 재사용 가능한 소프트웨어 코드 블록은 상기 제1 복수의 이미지로서 복수의 선택 가능한 아이템을 포함하는 서가(shelf)를 그리는 데에 이용되는 방법.
- 제4항에 있어서,상기 제1 복수의 이미지는 상기 적어도 하나의 재사용 가능한 소프트웨어 코드 블록에 매개변수로서 전달되는 이미지 데이터를 이용하여 상기 사용자 인터페이스 상에 그려지는 방법.
- 제5항에 있어서,상기 매개변수는 영화와 음악 중 하나에 관련된 메타데이터인 방법.
- 메타데이터 처리 시스템과 관련된 분산형 소프트웨어 구조를 위한 방법으로 서,각각의, 상위 레벨, 메타데이터 범주와의 사용자 대화를 각각이 정의하는 복수의 제1 유형의 시스템-범위 소프트웨어 구조를 제공하는 단계, 및적어도 하나의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조를 제공하는 단계를 포함하고,상기 복수의 제1 유형의 시스템-범위 소프트웨어 구조 각각은 하나 이상의 상기 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조로 이루어진메타데이터 처리 시스템과 관련된 분산형 소프트웨어 구조를 위한 방법.
- 제7항에 있어서,상기 적어도 하나의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조는 제2 레벨 메타데이터 범주와의 시스템 대화를 정의하거나 메타데이터 특정 함수를 정의하는 방법.
- 제7항에 있어서,상기 상위 레벨, 메타데이터 범주는 영화이고 상기 제2 레벨 메타데이터 범주는 영화 제목 및 영화 배우의 이름을 포함하는 방법.
- 제7항에 있어서,상기 제2 유형의 하위 레벨 시스템-범위 구조는 SVG(Scalable Vector Graphics) 언어의 수정된 형태를 이용하여 구성되는 브리크인 방법.
- 분산형 소프트웨어 구조를 포함하는 메타데이터 처리 시스템으로서,상기 메타데이터 처리 시스템에 다양한 유형의 메타데이터를 공급하기 위한 메타데이터 공급 소스,각각의, 상위 레벨, 메타데이터 범주와의 사용자 대화를 각각이 정의하는 복수의 제1 유형의 시스템-범위 소프트웨어 구조, 및적어도 하나의 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조를 포함하고,상기 복수의 제1 유형의 시스템-범위 소프트웨어 구조 각각은 하나 이상의 상기 제2 유형의 하위 레벨 시스템-범위 소프트웨어 구조로 이루어진분산형 소프트웨어 구조를 포함하는 메타데이터 처리 시스템.
- 제11항에 있어서,상기 적어도 하나의 제2 유형의 하위 레벨 시스템-범위 구조는 제2 레벨 메타데이터 범주와의 시스템 대화를 정의하거나 메타데이터 특정 함수를 정의하는 시스템.
- 제11항에 있어서,상기 상위 레벨, 메타데이터 범주는 영화이고 상기 제2 레벨 메타데이터 범 주는 영화 제목 및 영화 배우의 이름을 포함하는 시스템.
- 제11항에 있어서,상기 제2 유형의 하위 레벨 시스템-범위 구조는 SVG(Scalable Vector Graphics) 언어의 수정된 형태를 이용하여 구성되는 브리크인 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64140605P | 2005-01-05 | 2005-01-05 | |
US60/641,406 | 2005-01-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070093084A true KR20070093084A (ko) | 2007-09-17 |
Family
ID=36648159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077015384A KR20070093084A (ko) | 2005-01-05 | 2006-01-05 | 사용자 인터페이스를 위한 분산형 소프트웨어 구조 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060176403A1 (ko) |
EP (1) | EP1834491A4 (ko) |
JP (1) | JP2008527540A (ko) |
KR (1) | KR20070093084A (ko) |
CN (1) | CN101233504B (ko) |
WO (1) | WO2006074267A2 (ko) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100869885B1 (ko) * | 2007-11-13 | 2008-11-24 | 에스케이 텔레콤주식회사 | 모바일 단말기의 웹 페이지를 브라우징하는 무선인터넷서비스 시스템 및 그 방법 |
WO2010002134A3 (en) * | 2008-07-02 | 2010-04-01 | Samsung Electronics Co., Ltd. | Method to control image processing apparatus, image processing apparatus, and image file |
US9256446B2 (en) | 2010-01-28 | 2016-02-09 | Huawei Device Co., Ltd. | Method and apparatus for component display processing |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9535597B2 (en) | 2011-05-27 | 2017-01-03 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US9665384B2 (en) | 2005-08-30 | 2017-05-30 | Microsoft Technology Licensing, Llc | Aggregation of computing device settings |
US9696888B2 (en) | 2010-12-20 | 2017-07-04 | Microsoft Technology Licensing, Llc | Application-launching interface for multiple modes |
US9766790B2 (en) | 2010-12-23 | 2017-09-19 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US10114865B2 (en) | 2011-09-09 | 2018-10-30 | Microsoft Technology Licensing, Llc | Tile cache |
US10254955B2 (en) | 2011-09-10 | 2019-04-09 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US10303325B2 (en) | 2011-05-27 | 2019-05-28 | Microsoft Technology Licensing, Llc | Multi-application environment |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US10579250B2 (en) | 2011-09-01 | 2020-03-03 | Microsoft Technology Licensing, Llc | Arranging tiles |
Families Citing this family (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100619071B1 (ko) | 2005-03-18 | 2006-08-31 | 삼성전자주식회사 | 메뉴 표시 장치 및 그 방법과 이를 수행하기 위한프로그램이 기록된 기록매체 |
JP3974624B2 (ja) * | 2005-05-27 | 2007-09-12 | 松下電器産業株式会社 | 表示装置 |
US8543420B2 (en) * | 2007-09-19 | 2013-09-24 | Fresenius Medical Care Holdings, Inc. | Patient-specific content delivery methods and systems |
US8924889B2 (en) * | 2005-12-02 | 2014-12-30 | Hillcrest Laboratories, Inc. | Scene transitions in a zoomable user interface using a zoomable markup language |
US8850478B2 (en) * | 2005-12-02 | 2014-09-30 | Hillcrest Laboratories, Inc. | Multimedia systems, methods and applications |
US7536654B2 (en) * | 2006-02-06 | 2009-05-19 | Microsoft Corporation | Photo browse and zoom |
KR100746874B1 (ko) * | 2006-03-16 | 2007-08-07 | 삼성전자주식회사 | 이동 단말기에서 터치패드를 이용한 서비스 제공 장치 및방법 |
JP2007304666A (ja) | 2006-05-08 | 2007-11-22 | Sony Computer Entertainment Inc | 情報出力システム及び情報出力方法 |
US7956849B2 (en) | 2006-09-06 | 2011-06-07 | Apple Inc. | Video manager for portable multifunction device |
US7864163B2 (en) | 2006-09-06 | 2011-01-04 | Apple Inc. | Portable electronic device, method, and graphical user interface for displaying structured electronic documents |
US7886267B2 (en) * | 2006-09-27 | 2011-02-08 | Symantec Corporation | Multiple-developer architecture for facilitating the localization of software applications |
US8015581B2 (en) * | 2007-01-05 | 2011-09-06 | Verizon Patent And Licensing Inc. | Resource data configuration for media content access systems and methods |
US20080168402A1 (en) | 2007-01-07 | 2008-07-10 | Christopher Blumenberg | Application Programming Interfaces for Gesture Operations |
US20080168478A1 (en) | 2007-01-07 | 2008-07-10 | Andrew Platzer | Application Programming Interfaces for Scrolling |
US20080201695A1 (en) * | 2007-02-16 | 2008-08-21 | Qing Zhou | Computer graphics rendering |
US20090144776A1 (en) * | 2007-11-29 | 2009-06-04 | At&T Knowledge Ventures, L.P. | Support for Personal Content in a Multimedia Content Delivery System and Network |
US8745513B2 (en) * | 2007-11-29 | 2014-06-03 | Sony Corporation | Method and apparatus for use in accessing content |
US20090183068A1 (en) * | 2008-01-14 | 2009-07-16 | Sony Ericsson Mobile Communications Ab | Adaptive column rendering |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
JP5470861B2 (ja) | 2009-01-09 | 2014-04-16 | ソニー株式会社 | 表示装置及び表示方法 |
US8698741B1 (en) | 2009-01-16 | 2014-04-15 | Fresenius Medical Care Holdings, Inc. | Methods and apparatus for medical device cursor control and touchpad-based navigation |
US20100192181A1 (en) * | 2009-01-29 | 2010-07-29 | At&T Intellectual Property I, L.P. | System and Method to Navigate an Electonic Program Guide (EPG) Display |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US9142044B2 (en) * | 2009-05-26 | 2015-09-22 | Oracle International Corporation | Apparatus, systems and methods for layout of scene graphs using node bounding areas |
US9076264B1 (en) * | 2009-08-06 | 2015-07-07 | iZotope, Inc. | Sound sequencing system and method |
US20110078718A1 (en) * | 2009-09-29 | 2011-03-31 | Google Inc. | Targeting videos for advertisements by audience or content |
US10799117B2 (en) | 2009-11-05 | 2020-10-13 | Fresenius Medical Care Holdings, Inc. | Patient treatment and monitoring systems and methods with cause inferencing |
US8632485B2 (en) * | 2009-11-05 | 2014-01-21 | Fresenius Medical Care Holdings, Inc. | Patient treatment and monitoring systems and methods |
EP2502412A4 (en) * | 2009-11-16 | 2013-06-12 | Lg Electronics Inc | PROVIDING CONTENT INFORMATION FOR NETWORK TELEVISIONS |
US9219946B2 (en) | 2009-11-16 | 2015-12-22 | Lg Electronics Inc. | Method of providing contents information for a network television |
KR101636714B1 (ko) | 2009-12-08 | 2016-07-20 | 엘지전자 주식회사 | 영상표시장치 및 그 동작방법 |
US8751968B2 (en) * | 2010-02-01 | 2014-06-10 | Htc Corporation | Method and system for providing a user interface for accessing multimedia items on an electronic device |
US10216408B2 (en) | 2010-06-14 | 2019-02-26 | Apple Inc. | Devices and methods for identifying user interface objects based on view hierarchy |
CN102339197A (zh) * | 2010-07-26 | 2012-02-01 | 鸿富锦精密工业(深圳)有限公司 | 具有日期和时间调整功能的嵌入式系统及其调整方法 |
US9377876B2 (en) * | 2010-12-15 | 2016-06-28 | Hillcrest Laboratories, Inc. | Visual whiteboard for television-based social network |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
USD655716S1 (en) * | 2011-05-27 | 2012-03-13 | Microsoft Corporation | Display screen with user interface |
CN102394053B (zh) * | 2011-06-20 | 2013-08-14 | 深圳市茁壮网络股份有限公司 | 一种纯单色图片显示方法及装置 |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
CN102331933A (zh) * | 2011-09-30 | 2012-01-25 | 南京航天银山电气有限公司 | 嵌入式软件界面实现方法及系统 |
KR101383840B1 (ko) * | 2011-11-17 | 2014-04-14 | 도시바삼성스토리지테크놀러지코리아 주식회사 | 리모트 컨트롤러와, 이를 이용한 제어 시스템 및 제어 방법 |
AU2013222163B2 (en) * | 2012-02-23 | 2018-07-05 | Ajay JADHAV | Persistent node framework |
GB201210167D0 (en) * | 2012-06-08 | 2012-07-25 | Macat Internat Ltd | A system and method for assembling educational materials |
US9280575B2 (en) * | 2012-07-20 | 2016-03-08 | Sap Se | Indexing hierarchical data |
CN103021151B (zh) * | 2012-11-21 | 2016-09-07 | 深圳先进技术研究院 | 服务系统及其电子设备及对多源遥控器进行响应的方法 |
CN103150089B (zh) * | 2013-01-17 | 2015-12-02 | 恒泰艾普石油天然气技术服务股份有限公司 | 大幅面图形图像缩略图浏览和快速定位目标区域的方法 |
JP5831889B2 (ja) * | 2013-02-19 | 2015-12-09 | Necパーソナルコンピュータ株式会社 | 情報処理方法、情報処理装置、及びプログラム |
USD737310S1 (en) * | 2013-02-23 | 2015-08-25 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
TWD165411S (zh) * | 2013-02-23 | 2015-01-11 | 三星電子股份有限公司 | 顯示螢幕之圖形化使用者介面 |
USD737311S1 (en) * | 2013-02-23 | 2015-08-25 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
US9171401B2 (en) | 2013-03-14 | 2015-10-27 | Dreamworks Animation Llc | Conservative partitioning for rendering a computer-generated animation |
US9230294B2 (en) | 2013-03-15 | 2016-01-05 | Dreamworks Animation Llc | Preserving and reusing intermediate data |
US9626787B2 (en) | 2013-03-15 | 2017-04-18 | Dreamworks Animation Llc | For node in render setup graph |
US9514562B2 (en) | 2013-03-15 | 2016-12-06 | Dreamworks Animation Llc | Procedural partitioning of a scene |
US9811936B2 (en) | 2013-03-15 | 2017-11-07 | Dreamworks Animation L.L.C. | Level-based data sharing for digital content production |
US9589382B2 (en) | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9218785B2 (en) | 2013-03-15 | 2015-12-22 | Dreamworks Animation Llc | Lighting correction filters |
US9659398B2 (en) | 2013-03-15 | 2017-05-23 | Dreamworks Animation Llc | Multiple visual representations of lighting effects in a computer animation scene |
US9208597B2 (en) * | 2013-03-15 | 2015-12-08 | Dreamworks Animation Llc | Generalized instancing for three-dimensional scene data |
USD751587S1 (en) * | 2013-04-30 | 2016-03-15 | Microsoft Corporation | Display screen with graphical user interface |
CN105264906A (zh) * | 2013-06-05 | 2016-01-20 | 汤姆逊许可公司 | 多屏幕观看的内容分发的方法和装置 |
RU2642813C2 (ru) | 2013-06-05 | 2018-01-26 | Томсон Лайсенсинг | Способ и устройство для распределения контента для просмотра с множеством экранов |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
USD755843S1 (en) * | 2013-06-10 | 2016-05-10 | Apple Inc. | Display screen or portion thereof with graphical user interface |
US9766789B1 (en) | 2014-07-07 | 2017-09-19 | Cloneless Media, LLC | Media effects system |
USD792892S1 (en) * | 2016-05-16 | 2017-07-25 | Google Inc. | Display screen with graphical user interface |
USD792427S1 (en) * | 2016-05-16 | 2017-07-18 | Google Inc. | Display screen with animated graphical user interface |
USD822677S1 (en) | 2016-05-16 | 2018-07-10 | Google Llc | Display screen with graphical user interface |
USD808995S1 (en) | 2016-05-16 | 2018-01-30 | Google Llc | Display screen with graphical user interface |
USD815109S1 (en) * | 2016-05-16 | 2018-04-10 | Google Llc | Display screen with graphical user interface |
CN106569939B (zh) * | 2016-10-28 | 2020-06-12 | 北京数科网维技术有限责任公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
USD825586S1 (en) * | 2016-11-11 | 2018-08-14 | Atlas Copco Airpower, Naamloze Vennootschap | Display screen with a graphical user interface |
USD849757S1 (en) * | 2016-12-13 | 2019-05-28 | Samsung Electronics Co., Ltd. | Display screen with animated graphical user interface |
USD823865S1 (en) * | 2017-03-10 | 2018-07-24 | Atlas Copco Airpower, Naamloze Vennootschap | Display screen with a graphical user interface |
USD812072S1 (en) * | 2017-03-29 | 2018-03-06 | Sorenson Ip Holdings, Llc | Display screen or a portion thereof with graphical user interface |
USD822686S1 (en) * | 2017-05-09 | 2018-07-10 | Atlas Copco Airpower, Naamloze Vennootschap | Display screen with a graphical user interface |
USD823319S1 (en) * | 2017-05-09 | 2018-07-17 | Atlas Copco Airpower, Naamloze Vennootschap | Display screen with a graphical user interface |
USD822687S1 (en) * | 2017-05-09 | 2018-07-10 | Atlas Copco Airpower, Naamloze Vennootschap | Display screen with a graphical user interface |
CN107479780A (zh) * | 2017-07-13 | 2017-12-15 | 北京微视酷科技有限责任公司 | 一种虚拟场景处理、下载方法及装置、vr设备 |
US20200045375A1 (en) * | 2018-07-31 | 2020-02-06 | Salesforce.Com, Inc. | Video playback in a web-application using a resizable and repositionable window |
US10901593B2 (en) * | 2018-09-21 | 2021-01-26 | Salesforce.Com, Inc. | Configuring components in a display template based on a user interface type |
US10768904B2 (en) * | 2018-10-26 | 2020-09-08 | Fuji Xerox Co., Ltd. | System and method for a computational notebook interface |
USD937294S1 (en) * | 2019-02-18 | 2021-11-30 | Samsung Electronics Co., Ltd. | Display screen or portion thereof with graphical user interface |
USD933681S1 (en) * | 2020-03-26 | 2021-10-19 | Denso International America, Inc. | HVAC system display screen or portion thereof with graphical user interface |
CN111768819B (zh) * | 2020-06-04 | 2021-04-27 | 上海森亿医疗科技有限公司 | 动态显示或隐藏页眉页脚的方法、装置、设备和介质 |
USD957433S1 (en) * | 2020-10-23 | 2022-07-12 | Smith & Nephew, Inc. | Display screen with surgical controller graphical user interface |
USD957432S1 (en) * | 2020-10-23 | 2022-07-12 | Smith & Nephew, Inc. | Display screen with surgical controller graphical user interface |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4745402A (en) * | 1987-02-19 | 1988-05-17 | Rca Licensing Corporation | Input device for a display system using phase-encoded signals |
US5045843B1 (en) * | 1988-12-06 | 1996-07-16 | Selectech Ltd | Optical pointing device |
US5341466A (en) * | 1991-05-09 | 1994-08-23 | New York University | Fractal computer user centerface with zooming capability |
US5359348A (en) * | 1992-05-21 | 1994-10-25 | Selectech, Ltd. | Pointing device having improved automatic gain control and information reporting |
EP0609030B1 (en) * | 1993-01-26 | 1999-06-09 | Sun Microsystems, Inc. | Method and apparatus for browsing information in a computer database |
US5524195A (en) * | 1993-05-24 | 1996-06-04 | Sun Microsystems, Inc. | Graphical user interface for interactive television with an animated agent |
US6614914B1 (en) * | 1995-05-08 | 2003-09-02 | Digimarc Corporation | Watermark embedder and reader |
US5619249A (en) * | 1994-09-14 | 1997-04-08 | Time Warner Entertainment Company, L.P. | Telecasting service for providing video programs on demand with an interactive interface for facilitating viewer selection of video programs |
US5671342A (en) * | 1994-11-30 | 1997-09-23 | Intel Corporation | Method and apparatus for displaying information relating to a story and a story indicator in a computer system |
US5553221A (en) * | 1995-03-20 | 1996-09-03 | International Business Machine Corporation | System and method for enabling the creation of personalized movie presentations and personalized movie collections |
US6732369B1 (en) * | 1995-10-02 | 2004-05-04 | Starsight Telecast, Inc. | Systems and methods for contextually linking television program information |
US6049823A (en) * | 1995-10-04 | 2000-04-11 | Hwang; Ivan Chung-Shung | Multi server, interactive, video-on-demand television system utilizing a direct-access-on-demand workgroup |
US5793438A (en) * | 1995-11-13 | 1998-08-11 | Hyundai Electronics America | Electronic program guide with enhanced presentation |
US5796395A (en) * | 1996-04-02 | 1998-08-18 | Wegener Internet Projects Bv | System for publishing and searching interests of individuals |
KR100188659B1 (ko) * | 1996-06-28 | 1999-06-01 | 윤종용 | 방송에약녹화 시스템의 방송 프로그램 안내 표시장치및그방법 |
US6151059A (en) * | 1996-08-06 | 2000-11-21 | Starsight Telecast, Inc. | Electronic program guide with interactive areas |
US5835156A (en) * | 1996-08-14 | 1998-11-10 | Samsung Electroncis, Ltd. | Television graphical user interface employing remote random access pointing device |
US6411308B1 (en) * | 1996-08-14 | 2002-06-25 | Samsung Electronics Co., Ltd. | Television graphical user interface having variable channel control bars |
US6191781B1 (en) * | 1996-08-14 | 2001-02-20 | Samsung Electronics, Ltd. | Television graphical user interface that combines electronic program guide with graphical channel changer |
US6181333B1 (en) * | 1996-08-14 | 2001-01-30 | Samsung Electronics Co., Ltd. | Television graphical user interface having channel and program sorting capabilities |
US6195089B1 (en) * | 1996-08-14 | 2001-02-27 | Samsung Electronics Co., Ltd. | Television graphical user interface having variable channel changer icons |
US6057831A (en) * | 1996-08-14 | 2000-05-02 | Samsung Electronics Co., Ltd. | TV graphical user interface having cursor position indicator |
US6016144A (en) * | 1996-08-14 | 2000-01-18 | Samsung Electronics Co., Ltd. | Multi-layered television graphical user interface |
US5978043A (en) * | 1996-08-14 | 1999-11-02 | Samsung Electronics Co., Ltd. | TV graphical user interface that provides customized lists of programming |
US5955988A (en) * | 1996-08-14 | 1999-09-21 | Samsung Electronics Co., Ltd. | Graphical user interface for establishing installation location for satellite based television system |
US5940072A (en) * | 1996-08-15 | 1999-08-17 | Samsung Information Systems America | Graphics decompression using system ROM indexing in TV set top box |
US5790121A (en) * | 1996-09-06 | 1998-08-04 | Sklar; Peter | Clustering user interface |
US6037933A (en) * | 1996-11-13 | 2000-03-14 | Samsung Electronics Co., Ltd. | TV graphical user interface for providing user access to preset time periods of TV program information |
US6154723A (en) * | 1996-12-06 | 2000-11-28 | The Board Of Trustees Of The University Of Illinois | Virtual reality 3D interface system for data creation, viewing and editing |
US5982369A (en) * | 1997-04-21 | 1999-11-09 | Sony Corporation | Method for displaying on a screen of a computer system images representing search results |
US6397387B1 (en) * | 1997-06-02 | 2002-05-28 | Sony Corporation | Client and server system |
US6175362B1 (en) * | 1997-07-21 | 2001-01-16 | Samsung Electronics Co., Ltd. | TV graphical user interface providing selection among various lists of TV channels |
KR100317632B1 (ko) * | 1997-07-21 | 2002-02-19 | 윤종용 | 메뉴 선택 제어방법 |
US6680694B1 (en) * | 1997-08-19 | 2004-01-20 | Siemens Vdo Automotive Corporation | Vehicle information system |
US6005578A (en) * | 1997-09-25 | 1999-12-21 | Mindsphere, Inc. | Method and apparatus for visual navigation of information objects |
US5912612A (en) * | 1997-10-14 | 1999-06-15 | Devolpi; Dean R. | Multi-speed multi-direction analog pointing device |
US6092076A (en) * | 1998-03-24 | 2000-07-18 | Navigation Technologies Corporation | Method and system for map display in a navigation application |
US6163749A (en) * | 1998-06-05 | 2000-12-19 | Navigation Technologies Corp. | Method and system for scrolling a map display in a navigation application |
US6268849B1 (en) * | 1998-06-30 | 2001-07-31 | United Video Properties, Inc. | Internet television program guide system with embedded real-time data |
JP2000029598A (ja) * | 1998-07-13 | 2000-01-28 | Matsushita Electric Ind Co Ltd | 表示制御装置、表示制御方法及び表示制御プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6295646B1 (en) * | 1998-09-30 | 2001-09-25 | Intel Corporation | Method and apparatus for displaying video data and corresponding entertainment data for multiple entertainment selection sources |
KR100301016B1 (ko) * | 1998-10-27 | 2001-09-06 | 윤종용 | 온-스크린메뉴선택방법및그장치 |
KR20000027424A (ko) * | 1998-10-28 | 2000-05-15 | 윤종용 | 방송되는 프로그램 타이틀을 표시하는 프로그램 가이드 제어방법 |
US6452609B1 (en) * | 1998-11-06 | 2002-09-17 | Supertuner.Com | Web application for accessing media streams |
US6577350B1 (en) * | 1998-12-21 | 2003-06-10 | Sony Corporation | Method and apparatus for displaying an electronic program guide |
US6429813B2 (en) * | 1999-01-14 | 2002-08-06 | Navigation Technologies Corp. | Method and system for providing end-user preferences with a navigation system |
US6426761B1 (en) * | 1999-04-23 | 2002-07-30 | Internation Business Machines Corporation | Information presentation system for a graphical user interface |
JP2001050767A (ja) * | 1999-08-06 | 2001-02-23 | Aisin Aw Co Ltd | ナビゲーション装置および記憶媒体 |
US6349257B1 (en) * | 1999-09-15 | 2002-02-19 | International Business Machines Corporation | System for personalized mobile navigation information |
US6753849B1 (en) * | 1999-10-27 | 2004-06-22 | Ken Curran & Associates | Universal remote TV mouse |
US6803931B1 (en) * | 1999-11-04 | 2004-10-12 | Kendyl A. Roman | Graphical user interface including zoom control box representing image and magnification of displayed image |
US6421067B1 (en) * | 2000-01-16 | 2002-07-16 | Isurftv | Electronic programming guide |
US20010030667A1 (en) * | 2000-04-10 | 2001-10-18 | Kelts Brett R. | Interactive display interface for information objects |
US20020112237A1 (en) * | 2000-04-10 | 2002-08-15 | Kelts Brett R. | System and method for providing an interactive display interface for information objects |
US6385542B1 (en) * | 2000-10-18 | 2002-05-07 | Magellan Dis, Inc. | Multiple configurations for a vehicle navigation system |
US8117565B2 (en) * | 2001-10-18 | 2012-02-14 | Viaclix, Inc. | Digital image magnification for internet appliance |
US20030128390A1 (en) * | 2002-01-04 | 2003-07-10 | Yip Thomas W. | System and method for simplified printing of digitally captured images using scalable vector graphics |
US20040268393A1 (en) * | 2003-05-08 | 2004-12-30 | Hunleth Frank A. | Control framework with a zoomable graphical user interface for organizing, selecting and launching media items |
US8046705B2 (en) | 2003-05-08 | 2011-10-25 | Hillcrest Laboratories, Inc. | Systems and methods for resolution consistent semantic zooming |
JP2007516496A (ja) * | 2003-05-08 | 2007-06-21 | ヒルクレスト ラボラトリーズ, インコーポレイテッド | メディア項目を編成、選択及び開始するためのズーム可能なグラフィカルユーザインタフェースを有する制御フレームワーク |
JP2007535773A (ja) * | 2004-04-30 | 2007-12-06 | ヒルクレスト・ラボラトリーズ・インコーポレイテッド | 自由空間ポインティングデバイスおよびポインティング方法 |
US8418075B2 (en) * | 2004-11-16 | 2013-04-09 | Open Text Inc. | Spatially driven content presentation in a cellular environment |
-
2006
- 2006-01-05 EP EP06717458A patent/EP1834491A4/en not_active Withdrawn
- 2006-01-05 CN CN2006800015814A patent/CN101233504B/zh not_active Expired - Fee Related
- 2006-01-05 KR KR1020077015384A patent/KR20070093084A/ko not_active Application Discontinuation
- 2006-01-05 JP JP2007550447A patent/JP2008527540A/ja active Pending
- 2006-01-05 WO PCT/US2006/000257 patent/WO2006074267A2/en active Application Filing
- 2006-01-05 US US11/325,749 patent/US20060176403A1/en not_active Abandoned
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665384B2 (en) | 2005-08-30 | 2017-05-30 | Microsoft Technology Licensing, Llc | Aggregation of computing device settings |
KR100869885B1 (ko) * | 2007-11-13 | 2008-11-24 | 에스케이 텔레콤주식회사 | 모바일 단말기의 웹 페이지를 브라우징하는 무선인터넷서비스 시스템 및 그 방법 |
WO2010002134A3 (en) * | 2008-07-02 | 2010-04-01 | Samsung Electronics Co., Ltd. | Method to control image processing apparatus, image processing apparatus, and image file |
US9256446B2 (en) | 2010-01-28 | 2016-02-09 | Huawei Device Co., Ltd. | Method and apparatus for component display processing |
US10983668B2 (en) | 2010-01-28 | 2021-04-20 | Huawei Device Co., Ltd. | Method and apparatus for component display processing |
US10698563B2 (en) | 2010-01-28 | 2020-06-30 | Huawei Device (Dongguan) Co., Ltd. | Method and apparatus for component display processing |
US9696888B2 (en) | 2010-12-20 | 2017-07-04 | Microsoft Technology Licensing, Llc | Application-launching interface for multiple modes |
US9766790B2 (en) | 2010-12-23 | 2017-09-19 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US11126333B2 (en) | 2010-12-23 | 2021-09-21 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9864494B2 (en) | 2010-12-23 | 2018-01-09 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9870132B2 (en) | 2010-12-23 | 2018-01-16 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US10969944B2 (en) | 2010-12-23 | 2021-04-06 | Microsoft Technology Licensing, Llc | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9535597B2 (en) | 2011-05-27 | 2017-01-03 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US10303325B2 (en) | 2011-05-27 | 2019-05-28 | Microsoft Technology Licensing, Llc | Multi-application environment |
US11698721B2 (en) | 2011-05-27 | 2023-07-11 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US10579250B2 (en) | 2011-09-01 | 2020-03-03 | Microsoft Technology Licensing, Llc | Arranging tiles |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US10114865B2 (en) | 2011-09-09 | 2018-10-30 | Microsoft Technology Licensing, Llc | Tile cache |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US10254955B2 (en) | 2011-09-10 | 2019-04-09 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
Also Published As
Publication number | Publication date |
---|---|
EP1834491A2 (en) | 2007-09-19 |
WO2006074267A3 (en) | 2007-12-06 |
WO2006074267A2 (en) | 2006-07-13 |
CN101233504B (zh) | 2010-11-10 |
US20060176403A1 (en) | 2006-08-10 |
JP2008527540A (ja) | 2008-07-24 |
CN101233504A (zh) | 2008-07-30 |
EP1834491A4 (en) | 2010-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20070093084A (ko) | 사용자 인터페이스를 위한 분산형 소프트웨어 구조 | |
KR100994011B1 (ko) | 미디어 항목들을 편성하고, 선택하며, 개시하기 위한주밍(zooming) 가능한 그래픽 유저 인터페이스를갖춘 제어 프레임워크 | |
US20180113589A1 (en) | Systems and Methods for Node Tracking and Notification in a Control Framework Including a Zoomable Graphical User Interface | |
US7834849B2 (en) | Control framework with a zoomable graphical user interface for organizing selecting and launching media items | |
US8046705B2 (en) | Systems and methods for resolution consistent semantic zooming | |
US8555165B2 (en) | Methods and systems for generating a zoomable graphical user interface | |
US8924889B2 (en) | Scene transitions in a zoomable user interface using a zoomable markup language | |
US8169405B2 (en) | Methods and systems for enhancing television applications using 3D pointing | |
KR101190462B1 (ko) | 1-대-다 객체를 처리하기 위한 스케일링 및 레이아웃 방법및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E601 | Decision to refuse application |