[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20130140896A - 영상 보기 응용 프로그램 - Google Patents

영상 보기 응용 프로그램 Download PDF

Info

Publication number
KR20130140896A
KR20130140896A KR1020137030570A KR20137030570A KR20130140896A KR 20130140896 A KR20130140896 A KR 20130140896A KR 1020137030570 A KR1020137030570 A KR 1020137030570A KR 20137030570 A KR20137030570 A KR 20137030570A KR 20130140896 A KR20130140896 A KR 20130140896A
Authority
KR
South Korea
Prior art keywords
image
gui
instructions
display area
images
Prior art date
Application number
KR1020137030570A
Other languages
English (en)
Other versions
KR101737166B1 (ko
Inventor
랜디 우빌로스
티모시 디. 체르나
제항 선
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130140896A publication Critical patent/KR20130140896A/ko
Application granted granted Critical
Publication of KR101737166B1 publication Critical patent/KR101737166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/54Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04817Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/407Control or modification of tonal gradation or of extreme levels, e.g. background level
    • H04N1/4072Control or modification of tonal gradation or of extreme levels, e.g. background level dependent on the contents of the original
    • H04N1/4074Control or modification of tonal gradation or of extreme levels, e.g. background level dependent on the contents of the original using histograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0242Determining effectiveness of advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)

Abstract

일부 실시예들은 영상 보기 응용 프로그램을 제공한다. 영상 보기 응용 프로그램은 오른손잡이 사용자들을 위한 제1 GUI 및 왼손잡이 사용자들을 위한 제2 GUI를 제공한다. 제1 GUI는 GUI의 왼쪽 측면의 영상 선택 윈도우, 왼쪽에서 오른쪽으로의 제1 특정 순서의 GUI 아이템들의 제1 세트, 왼쪽에서 오른쪽으로의 제2 특정 순서의 GUI 아이템들의 제2 세트를 포함하고, 제2 GUI는 GUI의 오른쪽 측면의 영상 선택 윈도우, 오른쪽에서 왼쪽으로의 제1 특정 순서의 GUI 아이템들의 제1 세트, 왼쪽에서 오른쪽으로의 제2 특정 순서의 GUI 아이템들의 제2 세트를 포함한다. 일부 실시예들에서, 오른손잡이 GUI는 제1 배향의 특정 툴을 디스플레이하고, 왼손잡이 GUI는 제2 배향의 특정 툴을 디스플레이한다.

Description

영상 보기 응용 프로그램{APPLICATION FOR VIEWING IMAGES}
디지털 영상 편집 및 보기 응용 프로그램은 사진사(프로 및 아마추어 둘 다)에게 그의 사진을 정리하기도 하고 편집하기도 하는 도구를 제공한다. 이 응용 프로그램들은 사용자에게 사진들의 컬렉션(collection)을 정리하고 사진들의 다양한 영상 특성들을 다양한 방식으로 수정할 수 있게 해준다.
최근의 세계에서, 터치스크린 디바이스가 보편화되고 있다. 시장에 나와 있는 많은 태블릿 및 스마트폰은 터치스크린을 사용하고, 많은 사람들이 이러한 터치스크린 디바이스를 소유하고 있다. 그에 부가하여, 많은 사용자들은 그의 휴대용 터치스크린 디바이스로 사진을 찍을 수도 있고 다른 소스(예컨대, 디지털 카메라)로부터 그의 휴대용 터치스크린 디바이스로 사진을 로드할 수도 있다. 그에 따라, 터치스크린 디바이스에서 이용가능한 고유의 컨트롤에 적합하게 되어 있는 사진을 보고, 정리하며, 편집하는 응용 프로그램이 필요하다.
본 발명의 어떤 실시예들은 영상을 보면서 작업하는 새로운 응용 프로그램을 제공한다. 어떤 실시예들에서, 응용 프로그램은 다수의 상이한 모드에서 동작하고, 상이한 모드에 대한 상이한 그래픽 사용자 인터페이스(GUI)를 가진다. 예를 들어, 어떤 실시예들에서, 응용 프로그램은 왼손잡이 모드 및 오른손잡이 모드 둘 다에서 터치 디바이스 상에서 동작한다. 상이한 모드에 대한 상이한 GUI에 부가하여, 어떤 실시예들은 특정의 사용자 인터페이스 도구를 상이한 모드에서 상이한 방식으로(예컨대, 상이한 배향으로) 제시한다. 응용 프로그램은 하나 또는 다수의 영상들에 대해 작업하는 다양한 기능들을 제공한다. 예를 들어, 어떤 실시예들은 (i) 다수의 아이템들을 선택하는 새로운 터치 상호작용 및 (ii) 한 그룹의 영상들로부터 유사한 영상들을 식별하는 새로운 방법을 비롯한 다수의 상이한 영상들을 보는 다양한 방법을 가능하게 해준다. 그에 부가하여, 응용 프로그램은 영상들을 순환하는 상호작용 및 영상들을 태깅하는 상호작용 등의 다수의 선택된 영상들에 대해 작업하는 다양한 새로운 상호작용을 제공한다.
언급한 바와 같이, 어떤 실시예들의 응용 프로그램은 다수의 상이한 모드들(예컨대, 왼손잡이 모드 및 오른손잡이 모드)을 제공한다. 어떤 실시예들은 특정의 GUI 아이템의 GUI에서의 위치에 따라 모드들 사이에서 전환한다. 모드들 사이에서 전환할 때, 어떤 실시예들은 제1 세트의 GUI 아이템들의 GUI에서의 관계(예컨대, 순서)를 유지하면서 제2 세트의 GUI 아이템들의 관계를 수정한다. 그에 부가하여, 어떤 실시예들의 응용 프로그램은 특정의 도구들이 상이한 모드에서 활성화될 때 그 도구들을 상이한 방식(예컨대, 배향)으로 제시한다.
어떤 실시예들에서, 응용 프로그램은 모드들 사이에서 전환하는 사용자 인터페이스 메커니즘을 제공한다. 예를 들어, 어떤 실시예들의 GUI는 한 그룹의 영상들의 축소판들(thumbnails)을 디스플레이하는 축소판 디스플레이 구역 및 선택된 영상들의 보다 큰 버전(어떤 경우에, 편집가능한 버전)을 디스플레이하는 영상 디스플레이 구역을 포함하고 있다. 어떤 실시예들에서, 축소판 디스플레이 구역은 이동가능하고, 응용 프로그램은, 축소판 디스플레이 구역이 이동되는 GUI에서의 위치에 기초하여, 왼손잡이 모드와 오른손잡이 모드 사이에서 전환한다(예컨대, 축소판 디스플레이 구역이 GUI의 우측에 있을 때는 왼손잡이 모드이고 축소판 디스플레이 구역이 GUI의 좌측에 있을 때는 오른손잡이 모드임).
응용 프로그램이 2개의 모드 사이에서 전환할 때, 어떤 실시예들은 제1 세트의 GUI 아이템들의 순서를 유지하는 반면 제2 세트의 GUI 아이템들의 순서를 변경한다. 구체적으로는, 응용 프로그램은, 편집 도구들이 통상적으로 이용되는 순서를 유지하기 위해, 다양한 편집 도구들과 연관되어 있는 한 세트의 GUI 아이템들의 순서를 유지한다. 한편, 응용 프로그램은, GUI 아이템들을 축소판 디스플레이 구역에 대해 동일한 위치에 유지하기 위해, 제2 세트의 GUI 아이템들의 순서를 정반대로 한다.
그에 부가하여, 영상 보기, 편집, 및 정리 응용 프로그램은 특정의 GUI 도구들을 상이한 모드에서 상이한 방식으로 제공한다. 예를 들어, 어떤 실시예들은, 응용 프로그램이 왼손잡이 모드에 있는지 오른손잡이 모드에 있는지에 따라, 특정의 도구들을 상이한 배향으로 디스플레이한다. 한가지 이러한 특정의 도구는 영상 디스플레이 구역의 특정의 구역을 확대하는 줌 도구이다. 어떤 실시예들의 줌 도구는 배율을 변화시킬 수 있는 원형 돋보기이다. 배율을 수정하기 위해, 사용자는 (예컨대, 엄지 손가락 및 검지 손가락에 의한) 2개의 개별적인 터치 입력의 회전 제스처를 수행한다. 오른손잡이 모드에서 동작하고 있을 때, 응용 프로그램은 돋보기의 좌측에 배율 정보를 디스플레이하고, 왼손잡이 모드에서 동작하고 있을 때는 그 반대로 한다. 이것은 사용자의 손이 줌 도구 상의 배율 정보의 시야를 가로막는 것을 방지한다. 게다가, 어떤 실시예들은 2가지 상이한 모드들 사이에서 줌인 및 줌아웃에 대한 회전 방향을 전환한다.
언급한 바와 같이, 어떤 실시예들에서, 축소판 디스플레이 구역은 응용 프로그램 GUI의 2개의 상이한 측면들 사이에서 이동가능하다. 그에 부가하여, 응용 프로그램은 사용자가 스와이프 제스처(swipe gesture)(예컨대, 터치스크린 상에서의 우측 및 좌측 스와이프 제스처)를 통해 축소판 디스플레이 구역을 응용 프로그램 GUI 상으로 그리고 그로부터 벗어나게 이동시킬 수 있게 해준다. 게다가, 사용자는 터치스크린 상에서 드래그 제스처에 의해 축소판 디스플레이 구역과 영상 디스플레이 구역 사이의 경계를 이동시킴으로써 축소판 디스플레이의 크기(및 축소판들의 열의 수)를 수정할 수 있다.
상이한 모드에서 동작하는 것에 부가하여, 영상 보기, 편집, 및 정리 응용 프로그램은 영상들을 보면서 작업하기 위해 각종의 새로운 동작들 및 상호작용들을 제공한다. 예를 들어, 어떤 실시예들은 영상 디스플레이 구역에 디스플레이할 다수의 영상들을 선택하는 몇가지 상이한 동작들을 가능하게 해준다. 한가지 이러한 동작은 제1 및 제2 축소판 및 그 사이에 있는 모든 축소판을 선택하기 위해 축소판 디스플레이 구역에서 제1 및 제2 축소판을 (예컨대, 2개의 상이한 터치 입력을 통해) 동시에 선택하는 것을 포함한다. 이러한 블록 선택에 응답하여, 응용 프로그램은 선택된 축소판들에 대응하는 영상들 모두를 영상 디스플레이 구역에 디스플레이한다.
어떤 실시예들은, 그에 부가하여, 상이한 유형의 축소판 선택 입력들을 구분한다. 예를 들어, 사용자가 제1 방식(예컨대, 터치스크린 상에서의 탭핑 또는 한번 클릭)으로 특정의 축소판을 선택할 때, 응용 프로그램은 특정의 축소판만을 선택하고 그의 대응하는 영상만을 디스플레이 구역에 디스플레이한다. 그렇지만, 제1 축소판이 이미 선택되어 있고 사용자가 제2 축소판을 제2 방식으로[예컨대, 터치스크린 상에서 길게 누르기(press and hold) 또는 길게 클릭하기(click and hold)에 의해] 선택할 때, 응용 프로그램은 제2 축소판을 선택하고 있는 동안 제1 축소판의 선택을 유지한다. 응용 프로그램은 제1 및 제2 영상 둘 다(및 임의의 다른 선택된 영상들)를 영상 디스플레이 구역에 디스플레이한다. 이러한 방식으로, 어떤 실시예들은 사용자가 임의의 수의 영상들을 영상 디스플레이 구역에 추가할 수 있게 해준다.
게다가, 어떤 실시예들의 영상 보기, 편집 및 정리 응용 프로그램은 한 세트의 특정의 기준들에 따라 선택된 영상과 유사한 모든 영상들을 디스플레이할 수 있다. 사용자가 제3 방식으로(예컨대, 터치스크린 상에서의 더블 탭핑, 더블 클릭 등을 통해) 영상을 선택할 때, 응용 프로그램은 연관된 영상들의 컬렉션 내의 모든 영상들(예컨대, 축소판 디스플레이 구역에 디스플레이될 자격이 있는 축소판들을 갖는 영상들)을 선택된 영상과 비교하고, 영상들 중 어느 것이 한 세트의 특정의 기준들에 따라 선택된 영상에 대해 임계 유사성 내에 있는지를 식별한다. 어떤 실시예들은 (예컨대, 픽셀들에 대한 색상, 텍스처, 및 기울기 값에 기초하여) 영상의 픽셀들의 히스토그램들을 발생하고 그 히스토그램들을 비교하여 유사한 영상들을 식별한다. 어떤 실시예들에서, 응용 프로그램은 영상들의 상이한 영역들에 대해 상이한 히스토그램들을 발생하고 대응하는 영역들의 히스토그램들을 비교한다. 어떤 픽셀들은 다수의 영역들의 일부인 반면 다른 픽셀들은 단지 하나의 영역의 일부이도록 하는 방식으로 영상들이 영역들로 나누어진다. 이것은 응용 프로그램이 2개의 영상들 간의 비교를 함에 있어서 영상의 내용을 더 많이 나타내는 픽셀들(예컨대, 중앙에 있는 픽셀들)을 더 많이 고려할 수 있게 해준다.
영상 디스플레이 구역에 다수의 영상들을 디스플레이할 때, 어떤 실시예들은 상이한 영상들 간에 일정한 시각적 가중치(visual weight)를 유지한다. 즉, 영상들을 상이한 크기로서 디스플레이함으로써 영상 디스플레이 구역 내의 모든 공간을 채우려고 시도하기 보다는, 응용 프로그램은 각각의 영상을, 영상의 치수에 관계없이, 동일한 크기로서 디스플레이한다. 상이한 영상들 간에 시각적 가중치를 일정하게 유지하기 위해, 어떤 실시예들은 영상 디스플레이 구역에 디스플레이할 모든 영상들의 평균 종횡비를 계산하고, 이어서 영상 디스플레이 구역을 평균 종횡비를 가지는 정확한 수의 영역들로 최적으로 나누는 것을 식별한다. 이 영역들 내에, 응용 프로그램은 이어서, 각각의 영상이 동일한 수의 픽셀들을 사용하여 디스플레이되도록, 영상들을 디스플레이한다.
다수의 축소판들이 선택되고 다수의 영상들이 영상 디스플레이 구역에 디스플레이되면, 어떤 실시예들은 영상들을 보고 그와 상호작용하기 위한 다양한 새로운 상호작용을 제공한다. 예를 들어, 사용자는 디스플레이된 영상들 중 하나의 영상 상에서 선택 동작(예컨대, 터치스크린 상에서의 탭핑, 마우스 클릭)을 수행할 수 있다. 어떤 실시예들은 선택된 영상[즉, 주 선택 영상(primary selection image)]만을 영상 디스플레이 구역에 디스플레이하지만, 다른 영상들의 보조 선택(secondary selection)을 유지한다. 이 선택들을 나타내기 위해, 응용 프로그램은 보조 영상 선택의 축소판을 제1 선택 표시자로 하이라이트하는 반면, 주 선택 영상(디스플레이된 영상)의 축소판을 제2 선택 표시자로 하이라이트한다(예컨대, 굵은 하이라이트된 경계 및 가는 하이라이트된 경계를 사용함).
다수의 영상들에 대한 이 보기 보드에 있을 때, 어떤 실시예들은 사용자가 수평 스와이프 제스처에 의해 상이한 선택된 영상들을 순환할 수 있게 해준다. 그에 부가하여, 사용자는 수직 스와이프 제스처에 의해 한 세트의 선택된 영상들로부터 영상을 제거할 수 있다. 영상이 그 세트로부터 제거될 때, 응용 프로그램은 대응하는 축소판으로부터 선택 표시자를 제거한다. 다수의 영상들이 영상 디스플레이 구역에 디스플레이될 때, 사용자는 모든 영상들에 태그[예컨대, 좋아하는 것 태그(favorites tag)]를 적용하거나, 주 디스플레이(primary display)에 대한 영상들 중 하나를 선택하고 주 영상 선택에만 태그를 적용할 수 있다.
영상들을 보고 있는 동안, 어떤 실시예들의 응용 프로그램은 사용자가 영상 호스팅 및 소셜 미디어 웹 사이트와 양방향으로 상호작용할 수 있게 해준다. 예를 들어, 사용자는 영상 보기 응용 프로그램 내에서는 물론 영상이 외부 응용 프로그램 또는 웹 사이트로 내보내기될 때에도 영상에 첨부되는 캡션을 영상에 추가할 수 있다. 게다가, 외부 웹 사이트의 사용자가 호스팅된 영상에 댓글을 달 때, 어떤 실시예들은 이 정보를 자동으로 검색하고 영상 보기 응용 프로그램 내에 외부 댓글을 디스플레이한다.
앞서 기술한 특징들에 부가하여, 어떤 실시예들의 응용 프로그램은 상황-의존적 도움말 기능(context-sensitive help feature)을 제공한다. 구체적으로는, 도움말 도구가 호출될 때, 응용 프로그램은 사용자가 현재 작업하고 있는 아이템들에 따라 조정되는 도움말 표시자를 디스플레이한다. 사용자가 사용 중인 한 세트의 활성 도구들을 변경할 때, 응용 프로그램은 한 세트의 활성 도구들에 대한 도움말 표시자들을 디스플레이한다. 이동가능 도구들(예컨대, 슬라이더들)에 대해, 어떤 실시예들은 도구들이 이동될 때 도구들과 함께 도움말 표시자들을 이동시킨다.
이상의 요약은 본 발명의 어떤 실시예들에 대한 간략한 소개로서 역할하기 위한 것이다. 이 요약이 본 문서에 개시되어 있는 모든 발명 요지의 소개 또는 개요인 것으로 보아서는 안된다. 이하의 상세한 설명 및 상세한 설명에서 참조되는 도면은 또한 요약에 기술되어 있는 실시예는 물론 다른 실시예들에 대해서도 추가적으로 기술할 것이다. 그에 따라, 본 문서에 기술된 모든 실시예를 이해하기 위해서는, 요약, 상세한 설명 및 도면을 완전히 검토하는 것이 필요하다. 게다가, 청구된 발명 요지가 발명의 내용, 상세한 설명 및 도면에서의 예시적인 상세에 의해 제한되어서는 안되고, 오히려 첨부된 특허청구범위에 의해 한정되어야 하는데, 그 이유는 청구된 발명 요지가 발명 요지의 사상을 벗어나지 않고 다른 구체적인 형태로 구현될 수 있기 때문이다.
본 발명의 새로운 특징이 첨부된 특허청구범위에 기술되어 있다. 그렇지만, 설명을 위해, 본 발명의 몇가지 실시예가 이하의 도면에 기술되어 있다.
도 1은 어떤 실시예들의 영상 보기 응용 프로그램에 대한 GUI의 2가지 상이한 모드를 나타낸 도면.
도 2는 GUI의 영상 디스플레이 구역 내에 동시에 디스플레이할 다수의 영상들의 선택을 나타낸 도면.
도 3은 한 세트의 특정의 기준들에 따라 선택된 영상과 유사한 모든 영상들을 디스플레이하는 프로세스를 나타낸 도면.
도 4는 GUI에서 영상들에 태그를 적용하는 것을 나타낸 도면.
도 5는 GUI에서 상황-의존적 도움말 기능을 사용하는 것을 나타낸 도면.
도 6은 어떤 실시예들에 따른, 영상들의 새 컬렉션을 생성하는 것을 나타낸 도면.
도 7은 영상들의 새 컬렉션(예컨대, 앨범)을 생성하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 8은 어떤 실시예들의 컬렉션 데이터 구조체(800)를 개념적으로 나타낸 도면.
도 9는 영상 정리, 보기 및 편집 GUI와 컬렉션 정리 GUI 사이를 탐색해 가는 것(navigation)을 나타낸 도면.
도 10은 사용자가 새로 생성된 앨범을 보기 위해 컬렉션 정리 GUI 내에서 탐색해 가는 것을 나타낸 도면.
도 11은 어떤 실시예들에 따른, 사용자가 컬렉션 정리 GUI를 통해 탐색해 가는 것을 나타낸 도면.
도 12는 어떤 실시예들에 따른, 수직 스크롤 기법을 나타낸 도면.
도 13은 세로 모드(portrait mode)에 있는 동안 어떤 실시예들의 휴대폰 및 미디어 플레이어 구현예에 대한 4개의 스테이지에 걸쳐 영상 보기 및 편집 GUI와 컬렉션 정리 GUI 사이에서 탐색해 가는 것을 나타낸 도면.
도 14는 영상을 보고, 편집하며 정리하는 어떤 실시예들의 GUI의 상세도.
도 15는 어떤 실시예들의 응용 프로그램에 의해 저장되는 것과 같은 영상에 대한 데이터 구조체를 개념적으로 나타낸 도면.
도 16은, 오른손잡이 모드로부터 왼손잡이 모드로 전환하기 위해, 사용자가 축소판 디스플레이 구역을 GUI의 좌측으로부터 우측으로 이동시키는 4개의 스테이지에 걸쳐 GUI를 나타낸 도면.
도 17 내지 도 19는 세로 모드 및 가로 모드 둘 다에서, 어떤 실시예들의 왼손잡이 GUI 모드 및 오른손잡이 GUI 모드를 나타낸 도면.
도 20은 어떤 실시예들의 영상 보기 GUI에서 축소판 디스플레이 구역에 대한 상태 및 상태의 변화를 보여주는 상태도를 개념적으로 나타낸 도면.
도 21은 사용자가 축소판 디스플레이 구역의 크기를 증가시키는 것을 나타낸 도면.
도 22는 사용자가 축소판 디스플레이 구역의 크기를 감소시키는 것을 나타낸 도면.
도 23은 오른손잡이 GUI 모드에 있는 동안 GUI로부터 축소판 디스플레이 구역을 제거하는 스와이프 제스처를 나타낸 도면.
도 24는 왼손잡이 모드에 있는 동안 축소판 디스플레이 구역을 GUI로부터 제거하는 유사한 스와이프 제스처를 나타낸 도면.
도 25는 축소판 디스플레이 구역을 슬라이딩시켜 GUI로부터 사라지게 하는 GUI 아이템의 선택을 나타낸 도면.
도 26은 오른손잡이 GUI 모드에 있는 동안 축소판 디스플레이 구역을 GUI로 복귀시키는 스와이프 제스처를 나타낸 도면.
도 27은 왼손잡이 GUI 모드에 있는 동안 축소판 디스플레이 구역을 GUI로 복귀시키는 유사한 스와이프 제스처를 나타낸 도면.
도 28은 축소판 디스플레이 구역을 슬라이딩시켜 GUI 상에 나타나게 하는 GUI 아이템의 선택을 나타낸 도면.
도 29는 사용자가 축소판 디스플레이 구역을 스크롤하는 것을 나타낸 도면.
도 30은 사용자가 축소판 디스플레이 구역에서 컬렉션의 축소판들을 스크롤할 때의 세로 모드 GUI를 나타낸 도면.
도 31은 세로 GUI에서 축소판 디스플레이 구역의 크기를 수정하는 것을 나타낸 도면.
도 32는 크기가 한 행으로 감소되어 있을 때 축소판 디스플레이 구역을 수평 스크롤하는 것을 나타낸 도면.
도 33은 사용자가 어떤 실시예들의 휴대폰 및 미디어 플레이어 GUI의 축소판 디스플레이 구역에서 영상들을 스크롤하는 것을 나타낸 도면.
도 34는 줌 도구를 호출하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 35는 어떤 실시예들의 오른손잡이 GUI를 통해 줌 도구를 호출하고 선택 해제하는 한 예를 나타낸 도면.
도 36은 GUI가 왼손잡이 모드에 있을 때 GUI를 통해 줌 도구를 호출하는 한 예를 나타낸 도면.
도 37은 어떤 실시예들에서, 줌 도구의 다양한 동작들을 보여주는 상태도를 개념적으로 나타낸 도면.
도 38은 오른손잡이 GUI에서 줌 도구의 확대 동작(magnification operation)을 나타낸 도면.
도 39는 오른손잡이 GUI에서 줌 도구의 축소 동작(de-magnification operation)을 나타낸 도면.
도 40은 줌 도구의 이동 동작을 나타낸 도면.
도 41은 왼손잡이 GUI에서 줌 도구의 확대 동작을 나타낸 도면.
도 42는 왼손잡이 GUI에서 줌 도구의 축소 동작을 나타낸 도면.
도 43은 컬렉션 내의 유사한 영상들을 식별하고 디스플레이하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 44는 사용자가 특정의 영상을 선택하고 응용 프로그램이 선택된 영상과 유사한 컬렉션 내의 한 세트의 영상들을 식별하는 영상 보기 응용 프로그램에 대한 GUI를 나타낸 도면.
도 45는 영상을 9개의 상이한 타일들 - 각각의 타일은 영상의 1/4 크기임 - 로 분할하는 것을 개념적으로 나타낸 도면.
도 46은 영상의 이 특정의 분할로부터 얻어지는 16개의 픽셀 쿼드런트(quadrant), 및 타일들 중 어느 것이 각각의 쿼드런트로부터의 픽셀을 포함하고 있는지를 나타낸 도면.
도 47은 본 발명의 어떤 실시예들에 따른, 한 세트의 히스토그램들을 발생하는 프로세스(4700)를 개념적으로 나타낸 도면.
도 48은 HSV 색 공간(4800)을 개념적으로 나타낸 도면.
도 49는 2개의 영역이 정의되어 있는 (즉, 일정한 값에서의) HSV 색 공간의 원형 단면을 나타낸 도면.
도 50은 2개의 영역으로 분할되어 있는 HSV 색 공간의 3차원 부분을 나타낸 도면.
도 51은 중앙 픽셀에 대한 텍스처를 계산하기 위해 어떤 실시예들에 의해 사용되는 9개의 픽셀을 나타낸 도면.
도 52는 히스토그램들을 발생하고 유사성이 있는지 영상들을 비교하는 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램의 일부분의 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 53은 영상 디스플레이 구역 내의 축소판들의 블록을 선택하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 54 및 도 55는 축소판들의 블록을 선택하는 것의 예를 나타낸 도면.
도 56은 선택되지 않은 축소판 상에서의 사용자 입력을 축소판의 선택으로 변환하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 57은 어떤 실시예들의 GUI에서의 다양한 선택 입력을 나타낸 도면.
도 58은 어떤 실시예들의 휴대폰 및 미디어 플레이어 GUI에서의 한 세트의 유사한 선택 동작들을 나타낸 도면.
도 59는 다수의 영상들을 영상 디스플레이 구역 내에 동시에 디스플레이하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 60은 사용자가 4개의 축소판의 블록 선택을 하는 GUI를 나타낸 도면.
도 61은 4개의 선택된 영상의 평균 종횡비 영역을 나타낸 도면.
도 62는, 행이 2개인 상태에서, 4:3 영상 디스플레이 구역(6005) 내의 187:144 종횡비 영역에 대한 이상적인 열의 수가 2인 것을 나타낸 도면.
도 63은 상이한 종횡비의 영상들이 격자 영역 내에 들어가 있는 것을 나타낸 도면.
도 64는 영상 디스플레이 구역에서 다른 영상들 중 특정의 영상과 동일한 면적을 차지하도록 적합화될 때 영상들의 크기를 나타낸 도면.
도 65는 4개의 영상이 영상 디스플레이 구역 내에 디스플레이되어 있는 것을 나타낸 도면.
도 66은 영상들을 선택/선택 해제하는 것 및 선택된 영상들을 보는 것에 관련되어 있는 어떤 실시예들의 GUI의 상이한 상태들 및 이 상태들 간의 천이를 설명하는 상태도를 개념적으로 나타낸 도면.
도 67은 다수의 선택된 영상들을 GUI에 디스플레이하는 것으로부터 선택된 영상들 중 하나를 활성 영상으로서 디스플레이하는 것으로의 천이를 나타낸 도면.
도 68은 선택된 영상들을 순환하기 위한 GUI에서의 일련의 우측으로의 스와이프 제스처를 나타낸 도면.
도 69는 선택된 영상들을 순환하기 위한 GUI에서의 좌측으로의 스와이프 제스처를 나타낸 도면.
도 70은 어떤 실시예들의 GUI에서의 하향 스와이프 제스처를 나타낸 도면.
도 71은 사용자가 GUI에서 선택된 축소판을 탭핑하는 것의 예를 나타낸 도면.
도 72는 3개의 상이한 상태에서 태그를 적용하는 것에 관련되어 있는 어떤 실시예들의 GUI에 대한 상태도를 개념적으로 나타낸 도면.
도 73은 영상 숨기기 태그(hide image tag)를 한 영상에 적용하는 것을 나타낸 도면.
도 74는 영상 플래깅 태그(flag image tag)를 한 영상에 적용하는 것을 나타낸 도면.
도 75는 영상 플래깅 태그를 다수의 영상들에 적용하는 것을 나타낸 도면.
도 76은 태그 필터링 버튼의 사용을 나타낸 도면.
도 77은 좋아하는 것 태그(favorites tag)를 한 영상에 적용하는 것을 나타낸 도면.
도 78은 좋아하는 것 태그를 다수의 영상들에 적용하는 것을 나타낸 도면.
도 79는 영상에 적용할 태그를 수신할 시에 어떤 실시예들의 응용 프로그램에 의해 수행되는 프로세스를 개념적으로 나타낸 도면.
도 80은 사용자가 앨범으로부터 좋아하는 영상들의 컬렉션으로 탐색해 가는 것을 나타낸 도면.
도 81 내지 도 83은 GUI에서 하나 이상의 영상들에 대한 영상 정보에 액세스하는 것을 나타낸 도면.
도 84는 사용자가 영상에 캡션을 추가하는 것을 나타낸 도면.
도 85는 어떤 실시예들에 따른, 소셜 미디어 사이트를 통해 영상을 공유하기 위한 GUI와의 사용자 상호작용을 나타낸 도면.
도 86은 소셜 미디어 또는 사진 공유 웹 사이트를 통해 영상을 공유하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 87은 사용자가 영상을 Facebook®으로 업로드하는 것을 나타낸 도면.
도 88은 사용자가 도 87에서 업로드된 영상의 편집된 버전을 비롯한 Facebook®에 로드하기 위한 2개의 영상을 선택하는 것을 나타낸 도면.
도 89는 사진 공유 또는 소셜 미디어 웹 사이트 상의 영상에 게시되는 댓글을 검색하는 어떤 실시예들의 프로세스를 개념적으로 나타낸 도면.
도 90은 사용자가 어떤 실시예들의 GUI에서 정보 창을 통해 공유된 영상에 댓글을 게시하는 것을 나타낸 도면.
도 91은 어떤 실시예들에서, 도움말 기능의 다양한 동작들을 보여주는 상태도를 개념적으로 나타낸 도면.
도 92는 어떤 실시예들에 따른, 도움말 아이콘을 눈에 잘 띄는 방식으로 디스플레이하는 한 예를 나타낸 도면.
도 93은 도움말 도구를 호출하는 한 예를 나타낸 도면.
도 94는 사용자가 GUI 내에서 한 세트의 새로운 도구들을 선택할 때, 도움말 도구 레벨을 수정하는 한 예를 나타낸 도면.
도 95는 응용 프로그램이 도움말 표시자를 대응하는 도구와 함께 자동으로 이동시키는 한 예를 나타낸 도면.
도 96은 GUI 아이템들 중 하나에 관련되어 있는 상세한 도움말 내용을 디스플레이하는 한 예를 나타낸 도면.
도 97은 어떤 실시예들에서, 상이한 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 다른 예를 나타낸 도면.
도 98은 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램의 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 99는 어떤 실시예들이 구현되는 모바일 컴퓨팅 디바이스의 아키텍처의 한 예를 나타낸 도면.
도 100은 어떤 실시예들이 구현되는 전자 시스템을 개념적으로 나타낸 도면.
이하의 설명에서, 설명을 위해 많은 상세, 예 및 실시예가 기술되어 있다. 그렇지만, 기술 분야의 당업자라면 본 발명이 기재될 실시예로 제한되지 않는다는 것과 본 발명이 논의된 구체적인 상세 및 예들 중 일부가 없어도 실시될 수 있다는 것을 잘 알 것이다. 다른 경우에, 본 발명의 설명을 불필요한 상세로 불명료하게 하지 않기 위해, 공지의 구조 및 장치가 블록도 형태로 도시되어 있다.
본 발명의 어떤 실시예들은 영상을 보면서 작업하는 새로운 응용 프로그램을 제공한다. 어떤 실시예들에서, 응용 프로그램은 다수의 상이한 모드에서 동작하고, 상이한 모드에 대한 상이한 그래픽 사용자 인터페이스(GUI)를 가진다. 예를 들어, 어떤 실시예들에서, 응용 프로그램은 왼손잡이 모드 및 오른손잡이 모드 둘 다에서 터치스크린 디바이스 상에서 동작한다. 상이한 모드에 대한 상이한 GUI에 부가하여, 어떤 실시예들은 특정의 사용자 인터페이스 도구를 상이한 모드에서 상이한 방식으로(예컨대, 상이한 배향으로) 제시한다. 응용 프로그램은 하나 또는 다수의 영상들에 대해 작업하는 다양한 기능들을 제공한다. 예를 들어, 어떤 실시예들은 (i) 다수의 아이템들을 선택하는 새로운 터치 상호작용 및 (ii) 한 그룹의 영상들로부터 유사한 영상들을 식별하는 새로운 방법을 비롯한 다수의 상이한 영상들을 보는 다양한 방법을 가능하게 해준다. 그에 부가하여, 응용 프로그램은 영상들을 순환하는 상호작용 및 영상들을 태깅하는 상호작용 등의 다수의 선택된 영상들에 대해 작업하는 다양한 새로운 상호작용을 제공한다.
언급한 바와 같이, 어떤 실시예들의 영상 편집, 보기, 및 정리 응용 프로그램(이하에서, 영상 보기 응용 프로그램, 영상 편집 응용 프로그램 등이라고 함)은 다수의 상이한 모드들(예컨대, 왼손잡이 모드 및 오른손잡이 모드)을 제공한다. 어떤 실시예들은 특정의 GUI 아이템의 GUI에서의 위치에 따라 모드들 사이에서 전환한다. 모드들 사이에서 전환할 때, 어떤 실시예들은 제1 세트의 GUI 아이템들의 GUI에서의 관계(예컨대, 순서)를 유지하면서 제2 세트의 GUI 아이템들의 관계를 수정한다. 그에 부가하여, 어떤 실시예들의 응용 프로그램은 특정의 도구들이 상이한 모드에서 활성화될 때 그 도구들을 상이한 방식(예컨대, 배향)으로 제시한다.
도 1은 어떤 실시예들의 영상 보기 응용 프로그램에 대한 이러한 GUI(100)의 2가지 상이한 모드를 나타낸 것이다. 구체적으로는, 이 도면은 오른손잡이 모드에서의 GUI(100)를 2개의 스테이지(110 및 120)로 나타내고 있는 반면, 왼손잡이 모드에서의 GUI(100)를 2개의 스테이지(130 및 140)로 나타내고 있다.
GUI(100)는 축소판 디스플레이 구역(105), 영상 디스플레이 구역(115), 제1 세트의 GUI 아이템들(125), 및 제2 세트의 GUI 아이템들(135)을 포함하고 있다. 축소판 디스플레이 구역(105)은 한 세트의 영상들(예컨대, 사용자-생성 앨범 또는 연관된 영상들의 다른 컬렉션)의 축소판들을 디스플레이하고 있다. 축소판들은 컬렉션 내의 영상들의 축소된 버전이다. 어떤 실시예들에서, 축소판들이 반드시 전체 영상을 디스플레이하지 않아도 되고, 그 대신에, 각각의 영상의 일부분만을 디스플레이하며, 따라서 각각의 축소판은 동일한 종횡비(예컨대, 정사각형)를 가진다. 사용자는 대응하는 영상을 영상 디스플레이 구역(115)에 나타나게 하기 위해 (예컨대, 터치 상호작용, 마우스 클릭 등을 통해) 축소판을 선택할 수 있다.
영상 디스플레이 구역(115)은 하나 이상의 선택된 영상들의 더 큰 버전을 디스플레이한다. 이 경우에, 축소판 디스플레이 구역(105)에서 축소판(107)이 선택되고, 따라서 대응하는 영상이 영상 디스플레이 구역(115)에 디스플레이된다. 도시된 바와 같이, 어떤 실시예들은 임의의 선택된 축소판들 각각에 대한 표시를 축소판 디스플레이 구역에 디스플레이한다. 이 경우에, 축소판(107)은 굵은 파선 경계로 도시되어 있지만, 기술 분야의 당업자라면 많은 상이한 선택 표시들이 가능하다는 것을 잘 알 것이다.
영상 디스플레이 구역에서 보기 기능을 제공하는 것에 부가하여, 어떤 실시예들은 디스플레이된 영상에 적용할 다양한 편집, 태깅, 및 기타 동작을 사용자에게 제공한다. 제1 세트의 GUI 아이템들(125)은 영상들을 편집하는 상이한 편집 도구 세트들을 활성화시키는 3개의 아이템(126 내지 128)을 포함하고 있다. 아이템들(126 내지 128)은 사용자가 종종 영상에 대해 편집을 하고자 하는 순서를 따르는 특정의 좌우 순서로 배열되어 있다. 제2 세트의 GUI 아이템들(135)은 GUI에서의 다른 아이템들[예컨대, 축소판 디스플레이 구역(105) 및 영상 디스플레이 구역(115)]에 대한 상대 위치에 기초하여 기능을 제공하도록 설계되어 있는 순서로 배열되어 있는 3개의 아이템(136 내지 138)을 포함하고 있다.
언급한 바와 같이, 스테이지(110)는 오른손잡이 모드에 있는 GUI(100)를 예시하고 있다. 이 모드에서, 축소판 디스플레이 구역(105)은 GUI의 좌측에 있다. 그에 부가하여, GUI 아이템들(126 내지 128)은 GUI의 좌측에 배열되어 있고, 아이템(126)은 좌측에, 아이템(127)은 중앙에, 그리고 아이템(128)은 우측에 있다. GUI 아이템들(136 내지 138)은 GUI의 우측에 배열되어 있고, 아이템(136)은 좌측에, 아이템(137)은 중앙에, 그리고 아이템(138)은 우측에 있다.
스테이지(130)는 왼손잡이 모드에 있는 GUI를 예시하고 있다. 이 경우에, 축소판 디스플레이 구역(105)은 GUI의 우측에 위치해 있다. 이것은 사용자가 GUI 상에서 그의 왼손을 움직일 때, 그의 팔이 축소판 디스플레이 구역의 시야를 가로막지 않도록 보장해준다. 이와 유사하게, 축소판 디스플레이 구역(105)이 오른손잡이 모드에서 GUI의 좌측에 위치해 있는 경우, 사용자의 우측 팔은 축소판 디스플레이 구역(105)의 시야를 가로막지 않을 것이다.
스테이지(130)에서, 제1 세트의 GUI 아이템들(125)은 GUI(100)의 우측에서 축소판 디스플레이 구역(105) 아래쪽에 위치해 있는 반면, 제2 세트의 GUI 아이템들(125)은 GUI(100)의 좌측에 위치해 있다. 그렇지만, 제1 세트의 GUI 아이템들(125)은 사용자가 연관된 편집 도구들을 통상적으로 사용하는 순서와 일치하는 동일한 좌우 순서를 유지하고 있는 반면, 제2 세트의 GUI 아이템들(135)에 대한 순서는 오른손잡이 모드에 있는 이 아이템들과 비교하여 정반대로 되어 있다.
어떤 실시예들에서, 응용 프로그램은 이 2개의 모드들 사이에서 전환하는 사용자 인터페이스 메커니즘을 제공한다. 예를 들어, 어떤 실시예들에서, 축소판 디스플레이 구역이 이동가능하고, 응용 프로그램은 축소판 디스플레이 구역이 이동되는 GUI에서의 위치에 기초하여 왼손잡이 모드와 오른손잡이 모드 사이에서 전환한다. 스테이지(110)로부터 스테이지(130)에 도달하기 위해, 사용자는 축소판 디스플레이 구역(105)을 터치스크린 디스플레이의 좌측으로부터 터치스크린 디스플레이의 우측으로 잡아 끌 수 있다. 그렇게 할 시에, 응용 프로그램은 제1 세트의 도구들(125) 및 제2 세트의 도구들(135)을 자동으로 이동시키고, 제2 세트의 도구들(135)의 순서를 정반대로 한다.
그에 부가하여, 영상 보기 응용 프로그램은 특정의 GUI 도구들을 상이한 모드에서 상이한 방식으로 제공한다. 예를 들어, 어떤 실시예들은, 응용 프로그램이 왼손잡이 모드에 있는지 오른손잡이 모드에 있는지에 따라, 특정의 도구들을 상이한 배향으로 디스플레이한다. 도 1은 2가지 상이한 모드에서 상이한 배향으로 활성화되는 이러한 GUI 도구(145)의 한 예를 나타낸 것이다. 이 경우에, GUI 도구(145)는 영상 디스플레이 구역의 특정의 구역을 확대하는 줌 도구이다.
도시된 바와 같이, 스테이지(110)에서, 사용자는 줌 도구(145)를 활성화시키기 위해 그의 오른손을 사용하여 영상 디스플레이 구역과 상호작용한다. 이 도면이 한 손가락 상호작용을 나타내고 있지만, 다른 실시예들은 이러한 도구를 활성화시키기 위해 다른 유형의 입력에 응답한다. 예를 들어, 어떤 실시예들은 줌 도구를 활성화시키기 위해 시간상 적어도 부분적으로 동시에 일어나는 2개의 개별적인 터치 상호작용을 필요로 한다.
스테이지(120)는 오른손잡이 디스플레이 모드에 있는 동안 이 상호작용의 결과를 나타낸 것이다. 응용 프로그램은 사용자의 터치 상호작용의 위치 상에 줌 도구(145)를 디스플레이한다. 도시된 바와 같이, 응용 프로그램은 도구(145)를 제1 배향으로 디스플레이하고, 여기서 + 기호(더 큰 배율을 나타냄)는 우측에 있고 - 기호(더 작은 배율을 나타냄)는 좌측에 있다.
그에 대응하여, 스테이지(130)에서, 사용자는 줌 도구(145)를 활성화시키기 위해 그의 왼손을 사용하여 영상 디스플레이 구역과 상호작용한다. 스테이지(140)는 왼손잡이 디스플레이 모드에 있는 동안 이 상호작용의 결과를 나타낸 것이다. 스테이지(120)에서와 같이, 응용 프로그램은 사용자의 터치 상호작용의 위치 상에 줌 도구(145)를 디스플레이한다. 그렇지만, 이 경우에, 응용 프로그램은 줌 도구(145)를 제2 배향으로 디스플레이하고, 여기서 + 기호는 좌측에 있고 - 기호는 우측에 있다.
어떤 실시예들에서, 줌 도구는 배율(degree of magnification)을 변화시킬 수 있다. 배율을 수정하기 위해, 사용자는 (예컨대, 엄지 손가락 및 검지 손가락에 의한) 2개의 개별적인 터치 입력의 회전 제스처를 수행한다. 어떤 실시예들에서, 응용 프로그램이 오른손잡이 모드에서 동작하고 있을 때, 시계 방향 회전은 배율을 증가시키는 반면, 반시계 방향 회전은 배율을 감소시킨다. 왼손잡이 모드에 있을 때, 정반대로 되고, 반시계 방향 회전은 배율을 증가시키고 시계 방향 회전은 배율을 감소시킨다.
게다가, 어떤 실시예들은 배율 정보(예컨대, 활성 도구 내부에 있는 배율의 레벨)를 도구의 일부로서 디스플레이한다. 오른손잡이 모드에 있을 때, 이 배율 정보는 돋보기의 좌측에 디스플레이되는 반면, 왼손잡이 모드에서는, 이 정보가 돋보기의 우측에 디스플레이된다. 이것은 줌인 또는 줌아웃하는 동안 사용자의 손이 줌 도구 상의 배율 정보의 시야를 가로막는 것을 방지한다.
언급한 바와 같이, 어떤 실시예들에서, 축소판 디스플레이 구역은 응용 프로그램 GUI의 2개의 상이한 측면들 사이에서 이동가능하다. 그에 부가하여, 영상 편집 응용 프로그램은 사용자가 스와이프 제스처(예컨대, 터치스크린 상에서의 우측 및 좌측 스와이프 제스처)를 통해 축소판 디스플레이 구역을 응용 프로그램 GUI 상으로 그리고 그로부터 벗어나게 이동시킬 수 있게 해준다. 게다가, 사용자는 터치스크린 상에서 드래그 제스처에 의해 축소판 디스플레이 구역과 영상 디스플레이 구역 사이의 경계를 이동시킴으로써 축소판 디스플레이 구역의 크기(및 축소판들의 열의 수)를 수정할 수 있다.
상이한 모드에서 동작하는 것에 부가하여, 영상 보기 응용 프로그램은 영상들을 보면서 작업하기 위해 각종의 새로운 동작들 및 상호작용들을 제공한다. 예를 들어, 어떤 실시예들은 영상 디스플레이 구역에 디스플레이할 다수의 영상들을 선택하는 몇가지 상이한 동작들을 가능하게 해준다. 도 2는 4개의 스테이지(210 내지 240)에 걸쳐 GUI(200)의 영상 디스플레이 구역 내에 동시에 디스플레이할 다수의 영상들의 선택을 나타낸 것이다.
GUI(200)는 GUI(100)에 대해 앞서 기술한 대응하는 디스플레이 구역들과 유사한, 축소판 디스플레이 구역(205) 및 영상 디스플레이 구역(215)을 포함하고 있다. 이 도면(및 본 출원에서의 많은 다른 도면들)에서, GUI는 오른손잡이 모드로 도시되어 있고, 축소판 디스플레이 구역은 좌측에 있다. 당업자라면 도시된 상호작용들 중 다수가 왼손잡이 GUI 모드에 똑같이 적용가능하다는 것을 잘 알 것이다.
제1 스테이지(210)는 축소판(225)이 선택되었고, 대응하는 선택된 영상(227)이 (영상의 종횡비를 유지하면서) 영상 디스플레이 구역에 가능한 가장 큰 크기로 디스플레이되어 있는 것을 나타내고 있다. 제2 스테이지(220)에서, 사용자는 터치 상호작용을 통해 제2 영상(237)에 대응하는 제2 축소판(235)을 선택한다. 기술 분야의 당업자라면 터치스크린 디바이스가 다양한 유형의 상호작용들(예컨대, 탭핑, 더블 탭핑, 길게 누르기, 개별적인 동시 상호작용, 다중 손가락 상호작용 등)을 구분하는 기능을 제공한다는 것을 잘 알 것이다.
제3 스테이지(230)는 영상 디스플레이 구역(215)이 이제 선택된 영상들(227 및 237) 둘 다를 디스플레이하는 것을 나타내고 있다. 게다가, 응용 프로그램은 이전의 스테이지에서보다 더 연한 파선 경계를 사용하여 축소판들(225 및 235)을 디스플레이하고 있다. 어떤 실시예들은 하나의 선택된 영상과 다수의 선택된 영상들을 구분하기 위해 축소판 디스플레이 구역에서 상이한 선택 표시들(예컨대, 굵고 가는 경계 또는 하이라이트, 상이한 색상 등)을 사용한다.
영상 디스플레이 구역(215)에 보여지는 2개의 영상(227 및 237)은 동일한 종횡비를 갖지 않고 대략 동일한 크기로 디스플레이되어 있다. 영상 디스플레이 구역에 다수의 영상들을 디스플레이할 때, 어떤 실시예들은 상이한 영상들 간에 일정한 시각적 가중치(visual weight)를 유지한다. 즉, 영상들을 상이한 크기로서 디스플레이함으로써 영상 디스플레이 구역 내의 모든 공간을 채우려고 시도하기 보다는, 응용 프로그램은 각각의 영상을, 영상의 치수에 관계없이, 동일한 크기로서 디스플레이한다. 시각적 가중치를 상이한 영상들 간에 일정하게 유지하기 위해, 어떤 실시예들은 영상 디스플레이 구역에 디스플레이할 모든 영상들의 평균 종횡비를 계산하고, 이어서 영상 디스플레이 구역을 평균 종횡비를 가지는 정확한 수의 영역들로 최적으로 나누는 것을 식별한다. 이 영역들 내에, 응용 프로그램은 이어서, 각각의 영상이 동일한 수의 픽셀들을 사용하여 디스플레이되도록, 영상들을 디스플레이한다.
제3 스테이지(230)는 또한 사용자가 다른 터치 상호작용을 통해 영상(247)에 대응하는 제3 축소판(245)을 선택하는 것을 나타내고 있다. 그 결과, 제4 스테이지(240)에서, 영상 디스플레이 구역(215)은 3개의 선택된 영상(227, 237 및 247)을 디스플레이하고 있다. 제3 영상을 디스플레이하기 위해, 응용 프로그램은 다른 2개의 영상의 크기를 감소시킬 필요가 없는데, 그 이유는 크기 감소 없이 3개의 영상에 대해 동일한 시각적 가중치가 유지될 수 있기 때문이다.
언급한 바와 같이, 어떤 실시예들은 영상 디스플레이 구역에 다수의 영상들을 디스플레이하기 위해 각종의 상이한 터치 상호작용에 응답한다. 한가지 이러한 터치 동작은 제1 및 제2 축소판 및 그 사이에 있는 모든 축소판을 선택하기 위해 축소판 디스플레이 구역에서 제1 및 제2 축소판을 (예컨대, 2개의 상이한 터치 입력을 통해) 동시에 선택하는 것을 포함한다. 이러한 블록 선택에 응답하여, 응용 프로그램은 선택된 축소판들에 대응하는 영상들 모두를 영상 디스플레이 구역에 디스플레이한다.
어떤 실시예들은, 그에 부가하여, 상이한 유형의 축소판 선택 입력들을 구분한다. 예를 들어, 사용자가 제1 방식(예컨대, 터치스크린 상에서의 탭핑 또는 한번 클릭)으로 특정의 축소판을 선택할 때, 응용 프로그램은 특정의 축소판만을 선택하고 그의 대응하는 영상만을 디스플레이 구역에 디스플레이한다. 그렇지만, 제1 축소판이 이미 선택되어 있고 사용자가 제2 축소판을 제2 방식으로[예컨대, 터치스크린 상에서 길게 누르기(press and hold) 또는 길게 클릭하기(click and hold)에 의해] 선택할 때, 응용 프로그램은 제2 축소판을 선택하고 있는 동안 제1 축소판의 선택을 유지한다. 응용 프로그램은 제1 및 제2 영상 둘 다(및 임의의 다른 선택된 영상들)를 영상 디스플레이 구역에 디스플레이한다. 이러한 방식으로, 어떤 실시예들은 사용자가 임의의 수의 영상들을 영상 디스플레이 구역에 추가할 수 있게 해준다.
게다가, 어떤 실시예들의 영상 보기 응용 프로그램은 한 세트의 특정의 기준들에 따라 선택된 영상과 유사한 모든 영상들을 디스플레이할 수 있다. 도 3은 GUI(300)의 3개의 스테이지(310 내지 330)에 걸쳐 이러한 프로세스를 나타낸 것이다. GUI(300)는 이전의 도면들의 대응하는 구역들과 유사한, 축소판 디스플레이 구역(305) 및 영상 디스플레이 구역(315)을 포함하고 있다.
도 3의 제1 스테이지(310)는 축소판(335)이 선택되어 있고 그의 대응하는 영상(340)이 영상 디스플레이 구역(315)에 디스플레이되어 있는 것을 나타내고 있다. 제2 스테이지(320)에서, 사용자는 선택된 축소판(335)에 대해 터치 동작을 수행하였다. 기술 분야의 당업자라면 이것이 일반 사용자 입력이라는 것과 다른 실시예들이 유사한 영상 특징의 활성화를 상이한 방식으로[예컨대, (이미 선택되어 있든 그렇지 않든 간에) 축소판의 더블 탭핑 또는 더블 클릭, 핫키 또는 핫키들의 시퀀스, 터치 제스처 또는 제스처들의 시퀀스, 메뉴 아이템 또는 UI 버튼 등] 제공할 수 있다는 것을 잘 알 것이다. 제3 스테이지(330)는 응용 프로그램이 선택된 영상(340)과 유사한 영상들을 식별하고 식별된 영상들(345 및 350)을 영상 디스플레이 구역(315)에 디스플레이한 것을 나타내고 있다. 게다가, 파선들로 나타낸 바와 같이, 축소판 디스플레이 구역(305)에서 대응하는 축소판들(335, 355 및 360) 모두가 선택되어 있다.
이 유사한 영상들을 식별하기 위해, 어떤 실시예들은 연관된 영상들의 컬렉션 내의 모든 영상들(예컨대, 축소판 디스플레이 구역에 디스플레이될 자격이 있는 축소판들을 갖는 영상들)을 선택된 영상과 비교하고, 영상들 중 어느 것이 한 세트의 특정의 기준들에 따라 선택된 영상으로부터 임계 유사성 내에 있는지를 식별한다. 어떤 실시예들은 (픽셀들에 대한 색상, 텍스처, 및 기울기 값에 기초하여) 영상의 픽셀들의 히스토그램들을 발생하고 그 히스토그램들을 비교하여 유사한 영상들을 식별한다. 어떤 실시예들에서, 응용 프로그램은 영상들의 상이한 영역들에 대해 상이한 히스토그램들을 발생하고 영상들 사이에서 대응하는 영역들의 히스토그램들을 비교한다. 어떤 픽셀들은 다수의 영역들의 일부인 반면 다른 픽셀들은 단지 하나의 영역의 일부이도록 하는 방식으로 영상들이 영역들로 나누어진다. 이것은 응용 프로그램이 2개의 영상들 간의 비교를 함에 있어서 영상의 내용을 더 많이 나타내는 픽셀들(예컨대, 영상의 중앙에 있는 픽셀들)을 더 많이 고려할 수 있게 해준다.
다수의 축소판들이 선택되고 다수의 영상들이 영상 디스플레이 구역에 디스플레이되면, 어떤 실시예들은 영상들을 보고 그와 상호작용하기 위한 다양한 새로운 상호작용을 제공한다. 예를 들어, 사용자는 (그의 대응하는 축소판보다는) 디스플레이된 영상들 중 하나의 영상 상에서 선택 동작(예컨대, 터치스크린 상에서의 탭핑, 마우스 클릭)을 수행할 수 있다. 어떤 실시예들은 선택된 영상[즉, 주 선택 영상(primary selection image)]만을 영상 디스플레이 구역에 디스플레이하지만, 다른 영상들의 보조 선택(secondary selection)을 유지한다. 이 선택들을 나타내기 위해, 응용 프로그램은 보조 영상 선택의 축소판을 제1 선택 표시자로 하이라이트하는 반면, 주 선택 영상(디스플레이된 영상)의 축소판을 제2 선택 표시자로 하이라이트한다(예컨대, 굵은 하이라이트된 경계 및 가는 하이라이트된 경계를 사용함).
다수의 영상들에 대한 이 보기 보드에 있을 때, 어떤 실시예들은 사용자가 수평 스와이프 제스처에 의해 상이한 선택된 영상들을 순환할 수 있게 해준다. 그에 부가하여, 사용자는 수직 스와이프 제스처에 의해 한 세트의 선택된 영상들로부터 영상을 제거할 수 있다. 영상이 그 세트로부터 제거될 때, 응용 프로그램은 대응하는 축소판으로부터 선택 표시자를 제거한다. 다수의 영상들이 영상 디스플레이 구역에 디스플레이될 때, 사용자는 모든 영상들에 태그[예컨대, 좋아하는 것 태그(favorites tag)]를 적용하거나, 주 디스플레이(primary display)에 대한 영상들 중 하나를 선택하고 주 영상 선택에만 태그를 적용할 수 있다.
도 4는 3개의 스테이지(410 내지 430)에 걸쳐 GUI(300)에서 영상들(340 내지 350)에 대해 이러한 태그를 적용하는 것을 나타낸 것이다. 제1 스테이지(410)는 도 3의 제3 스테이지(330)와 동일한 상태에 있는 GUI(300)를 나타낸 것이며, 여기서 영상들(340 내지 350)은 영상 디스플레이 구역(315)에 디스플레이되어 있다. 제2 스테이지(420)에서, 사용자는 선택된 영상들에 태그를 적용하기 위해 GUI 아이템(405)을 선택한다. GUI 아이템(405)은 개념적 아이템이고, 영상 편집 응용 프로그램의 어떤 실시예들은 상이한 UI 아이템, 특정의 유형의 선택 제스처, 핫키 등을 통해 이러한 기능을 구현할 수 있다. 게다가, 아이템(405)은 일반 태그를 나타내는 반면, 어떤 실시예들은 좋아하는 것 태그, 플래그, 맞춤 정보(custom information) 태그 등과 같은 각종의 상이한 태그를 포함할 수 있다.
제3 스테이지는 GUI 아이템(405)의 선택의 결과를 나타내고 있다. 3개의 축소판(335, 355 및 360)은 이제 이들이 태깅되었다는 것을 나타내는 마커를 디스플레이하고 있다. 어떤 실시예들에서, 응용 프로그램은 어떤 태그들에 대한 아이콘들은 축소판들 내에 디스플레이하는 반면, 다른 태그들은 단순히 태깅된 영상들의 속성으로서 저장한다. 그에 부가하여, GUI 아이템(405)은 이제 하이라이트되어, 선택된 영상들 모두가 태깅되었다는 것을 나타내고 있다. 어떤 실시예들은 GUI에서 태그 버튼을 하이라이트함으로써 디스플레이 구역에 디스플레이된 영상들 모두가 특정의 태그로 태깅되어 있다는 것을 나타낸다. 태그 버튼의 차후의 선택은 선택된 영상들로부터 태그를 제거한다.
영상들을 보고 있는 동안, 어떤 실시예들의 응용 프로그램은 또한 사용자들이 영상 호스팅 및 소셜 미디어 웹 사이트와 양방향으로 상호작용할 수 있게 해준다. 예를 들어, 사용자들은 영상 보기 응용 프로그램 내에서는 물론 영상이 외부 응용 프로그램 또는 웹 사이트로 내보내기될 때에도 영상에 첨부되는 캡션을 영상에 추가할 수 있다. 게다가, 외부 웹 사이트의 사용자가 호스팅된 영상에 댓글을 달 때, 어떤 실시예들은 이 정보를 자동으로 검색하고 영상 보기 응용 프로그램 내에 외부 댓글을 디스플레이한다.
앞서 기술한 특징들에 부가하여, 어떤 실시예들의 응용 프로그램은 상황-의존적 도움말 기능(context-sensitive help feature)을 제공한다. 구체적으로는, 사용자가 도움말 도구를 호출할 때, 응용 프로그램은 사용자가 현재 작업하고 있는 아이템들에 따라 조정되는 도움말 표시자를 디스플레이한다. 도 5는 4개의 스테이지(510 내지 540)에 걸쳐 GUI(100)에서 이러한 상황-의존적 도움말 기능을 사용하는 것을 나타낸 것이다. GUI는 상황-의존적 도움말 기능을 호출하는 도움말 활성화 아이템(137)을 포함하고 있다. 제1 스테이지는 하나의 선택된 영상이 영상 디스플레이 구역(115)에 디스플레이되어 있는 GUI(100)를 나타내고 있다.
제2 스테이지(520)에서, 사용자는 터치 상호작용을 통해 도움말 활성화 아이템(137)을 선택한다. 앞서 기술한 다른 GUI 아이템들에서와 같이, 도움말 활성화 아이템(137)은 다양한 터치 상호작용, 커서 상호작용 등을 비롯한 각종의 상이한 방식으로 실제로 호출될 수 있는 개념적 아이템이다.
제3 스테이지(530)는 도움말 활성화 아이템(137)이 이제 활성이고, GUI 아이템들(126 내지 128)에 대한 도움말 표시자들(505)이 나타난 것을 예시하고 있다. 이 도움말 표시자들(505)은 상이한 GUI 아이템들의 목적을 디스플레이하며, 어떤 실시예들에서, 선택된 아이템에 관한 부가 정보를 갖는 도움말 메뉴얼에 액세스하기 위해 선택가능하다. 제3 스테이지는 또한 사용자가 노출 아이템(127)을 선택하는 것을 나타내고 있다.
사용자가 사용 중인 한 세트의 활성 도구를 변경할 때, 응용 프로그램은 한 세트의 활성 도구들에 대한 도움말 표시자들을 디스플레이한다. 그 결과, 제4 스테이지(540)는 상이한 세트의 도움말 표시자들(515)을 나타내고 있다. 이 도움말 표시자들(515)은 GUI(100)에 나타난 상이한 노출 조절 아이템들의 목적을 디스플레이하고 있다. 크로핑 아이템, 노출 아이템, 및 색상 아이템에 대한 도움말 표시자들(505)이 더 이상 디스플레이되지 않는데, 그 이유는 사용자가 이 편집 도구 세트들 중 특정의 세트로 탐색해 들어갔기 때문이다. 그에 부가하여, 이동가능 도구들(예컨대, 노출 조절 슬라이더들)에 대해, 어떤 실시예들은 사용자가 도구들을 이동할 때 도구들과 함께 도움말 표시자들을 이동시킨다.
도 1 내지 도 5는 영상들을 보면서 작업하는 어떤 실시예들에 의해 제공되는 새로운 특징들의 다양한 예를 예시한 것이다. 몇가지 더 상세한 실시예가 이하에 기술되어 있다. 섹션 I는 영상 컬렉션 및 응용 프로그램 내에서 상이한 컬렉션 그룹들 사이를 탐색해 가는 것에 대해 기술하고 있다. 섹션 III에서 상이한 GUI 모드들 및 상이한 모드들에서 GUI와의 다양한 상호작용에 대해 기술하기 전에, 섹션 II는 어떤 실시예들의 GUI 및 영상 데이터 구조체에 대해 기술하고 있다. 이어서, 섹션 IV는 다수의 영상들을 선택하는 상이한 기법들 및 어떤 실시예들의 응용 프로그램이 어떻게 다수의 영상들을 한번에 디스플레이하는지에 대해 기술하고 있다. 섹션 V는 선택 및 선택 해제 동작 그리고 태깅 동작을 비롯한 어떤 실시예들에서의 하나 이상의 동작에 적용될 수 있는 다양한 동작들에 대해 기술하고 있다. 그 다음에, 섹션 VI는 영상 공유 기능에 대해 기술하고, 섹션 VII는 어떤 실시예들의 상황-의존적 도움말 기능에 대해 기술하고 있다. 이어서, 섹션 VIII는 어떤 실시예들의 미디어 편집 응용 프로그램의 소프트웨어 아키텍처에 대해 기술하고 있다. 마지막으로, 섹션 IX는 본 발명의 어떤 실시예들이 구현되는 전자 시스템에 대해 기술하고 있다.
I. 영상 컬렉션
영상 컬렉션들에 대해 작업하는 데 관여된 다양한 특징들에 대해 기술하기 전에, 본 출원은 본 발명의 어떤 실시예들에 따른, 이러한 컬렉션들을 생성하는 것 및 정리하는 것에 대해 기술할 것이다. 어떤 실시예들의 영상 편집, 보기 및 정리 응용 프로그램은 사용자가 영상들(예컨대, 사진들)을 가져오기하는 것, 영상들을 컬렉션(예컨대, 앨범 등)과 연관시키는 것, 영상들로부터 공유가능 미디어(예컨대, 저널)를 생성하는 것, 영상들을 편집하는 것 등을 가능하게 해준다. 어떤 실시예들은 개별적인 디바이스(즉, 응용 프로그램이 실행되는 디바이스 이외의 디바이스)로부터 함께 가져오기된 영상들을 이벤트로서 자동으로 연관시킨다. 한편, 앨범은 사용자-생성 영상 컬렉션이다. 응용 프로그램에 의해 정리된 미디어가 본 명세서에 영상으로서 주로 기술되고 있지만, 본 발명의 어떤 실시예들은 또한 비디오 등의 다른 유형의 미디어를 정리하고, 보며, 그리고 편집한다.
도 6은 어떤 실시예들에 따른, 4개의 스테이지(610 내지 640)에 걸쳐 영상들의 새 컬렉션을 생성하는 것을 나타낸 것이다. 구체적으로는, 스테이지들은 사용자가 특정의 이벤트 컬렉션을 선택하는 것, 이벤트 내에서 몇개의 영상들을 선택하는 것, 및 이어서 선택된 영상들로부터 앨범을 형성하는 것을 나타내고 있다. 이 도면은 물론, 본 문서에서의 많은 다른 도면들에서, 설명을 위해, 사용자 상호작용은 제1 스테이지에 도시되어 있고, 그 결과 얻어진 GUI에서의 변화는 후속 스테이지에 도시되어 있다. 그렇지만, 기술 분야의 당업자라면, 대부분의 경우에, 사용자 상호작용을 수신하는 것과 디스플레이의 변화 사이의 지연이 거의 순간적일 것임을 잘 알 것이다.
제1 스테이지(610)는 디스플레이 상에서 이용가능한 영상 컬렉션들을 디스플레이하는 컬렉션 정리 GUI(600)를 예시하고 있다. GUI(600)는 사용자가 상이한 유형의 컬렉션들 간에 전환할 수 있게 해주는 한 세트의 탭들(605)을 포함하고 있다. 탭들(605)은 사용자가 앨범(사용자-생성 영상 컬렉션), 사진(다양한 다른 컬렉션들로부터의 영상들 전부를 합쳐 놓은 하나의 컬렉션), 이벤트(영상 보기 응용 프로그램이 동작하고 있는 디바이스로 함께 가져오기된 영상들의 컬렉션), 및 저널(영상들의 컬렉션을 제시하고 공유하는 특정의 방식)을 선택할 수 있게 해준다. 어떤 실시예들에서, 사용자는 상이한 유형의 컬렉션들 간에 전환하기 위해 상이한 탭(605)을 선택할 수 있다. 기술 분야의 당업자라면 어떤 실시예들이 상이한 탭들(예컨대, 특정의 비디오 탭, 다른 유형의 공유가능 컬렉션들에 대한 탭 등)을 포함하고 있다는 것을 잘 알 것이다.
GUI(600)는 또한 사용자가 이용가능한 다양한 컬렉션들을 나타내는 아이콘들을 디스플레이하는 선반들(615)을 포함하고 있다. 어떤 실시예들에서, 반사 및 음영을 갖는 유리 선반의 3차원 모습을 제공하도록 선반들(615)이 디스플레이된다. 앨범, 사진, 이벤트 및 저널을 나타내는 아이콘은 유리 선반 위에 놓여 있고 GUI에서 보여지는 음영을 드리우는 모습을 가진다. 스테이지(610)에서, GUI는 사용자가 (이 경우에, 터치 동작을 통해) 선택하는 "이벤트 2(Event 2)"라고 하는 영상들의 컬렉션을 나타내는 아이콘(625)을 포함하고 있다.
제2 스테이지(620)는 사용자가 아이콘(625)을 선택한 결과로서 얻어지는 GUI(650)는 물론, 얻어진 GUI(650) 내에서의 부가의 선택의 결과를 예시하고 있다. 특정의 컬렉션이 선택될 때, 응용 프로그램은 특정의 컬렉션에 대한 GUI를 디스플레이한다. GUI(650)는 축소판 디스플레이 구역(655), 영상 디스플레이 구역(660)은 물론, 도 14를 참조하여 이하에서 더 상세히 기술하게 될 다양한 다른 GUI 아이템들을 포함하고 있다. GUI(650)는 또한, 그의 상단에, 디스플레이하고 있는 컬렉션의 이름(이 경우에, "이벤트 2")을 디스플레이한다.
이 스테이지에서, 사용자는 축소판 디스플레이 구역(655)에서 3개의 축소판을 선택하였고, 응용 프로그램은 3개의 대응하는 영상을 영상 디스플레이 구역(660)에 디스플레이한다. 다수의 영상들을 선택하는 상이한 방식들에 관한 상세는 이하에서 섹션 IV에 상세히 기술될 것이다.
제3 스테이지(630)에서, 사용자는 (예컨대, 터치 상호작용, 커서 컨트롤러 등을 통해) 설정 GUI 아이템(665)을 선택한다. 어떤 실시예들에서, 설정 아이템은 응용 프로그램 내에서의 사용자의 이전의 동작의 상황에 기초하는 메뉴를 활성화시킨다. 예를 들어, 사용자가 한 세트의 특정의 편집 도구들을 활성화시켰을 때, 설정 메뉴는 활성화된 편집 도구들에 관련되어 있는 옵션들을 포함할 수 있다.
그렇지만, 이 경우에, 사용자는 보기 모드에 있고, 설정 메뉴는 "새 앨범 생성(Create new album)"의 옵션을 포함하고 있다. 제4 스테이지(640)는 새 앨범을 생성하기 위해 사용자가 이 메뉴 옵션을 선택하는 것을 예시하고 있다. 어떤 실시예들에서, 이 옵션을 선택하는 것은 응용 프로그램으로 하여금 선택된 영상들로부터 새 앨범을 생성하게 한다. 어떤 실시예들은, 선택된 영상들을 이전에 생성된 앨범에 추가하는 것 등의, 앨범에 관련되어 있는 다른 옵션들을 설정 메뉴에 포함하고 있다. 그에 부가하여, 어떤 실시예들은 새 앨범을 생성하는 상이한 메커니즘들을 제공한다. 예를 들어, 어떤 실시예들에서, 사용자는 컬렉션 정리 GUI(600)를 통해 새 앨범을 생성하고, 이어서 상이한 컬렉션에 액세스함으로써 새로운 영상들을 앨범에 추가할 수 있다.
게다가, 새 앨범을 생성할 시에, 어떤 실시예들은 새로운 창 또는 대화 상자를 디스플레이하고 그를 통해 사용자는 새 앨범의 파라미터들을 설정할 수 있다. 예를 들어, 사용자는 앨범 이름을 입력할 수 있고, 어떤 경우에, 선택된 영상들 전부, 현재의 컬렉션 내의 영상들 전부를 포함시킬지를 판정하거나, 다른 컬렉션으로부터의 영상들은 물론 다른 옵션들을 선택할 수 있다.
그렇지만, 어떤 실시예들은 새 앨범을 생성하는 옵션을 제공하지 않는다. 앨범들이 동일한 디바이스 상에서 실행 중인 부가의 응용 프로그램들(예컨대, 별도의 영상 정리 응용 프로그램)로부터 영상 보기 응용 프로그램 내로 가져오기될 수 있다. 그 대신에, 사용자가 몇개의 영상들의 선택으로부터 생성할 수 있는 유일한 형태의 컬렉션은 저널(journal)이다. 그에 부가하여, 영상에 플래깅하거나 영상을 좋아하는 것으로 설정함으로써, 사용자는 영상을 그 태그들에 관련된 앨범에 추가시킨다.
도 7은 영상들의 새 컬렉션(예컨대, 앨범)을 생성하는 어떤 실시예들의 프로세스(700)를 개념적으로 나타낸 것이다. 도시된 바와 같이, 프로세스(700)는 (705에서) 영상들의 새 컬렉션을 생성하라는 명령을 수신하는 것으로 시작한다. 어떤 실시예들에서, 이 명령은 도 6에 도시된 "새 앨범 생성" 메뉴 옵션 등의 사용자 명령이지만, 당업자라면 명령이 각종의 상이한 사용자 입력 장치를 통해서는 물론 각종의 상이한 GUI 구성체(GUI construct)를 통해서도 수신될 수 있을 것임을 잘 알 것이다. 게다가, 앞서 언급한 바와 같이, 어떤 실시예들에서, 사용자가 요청에 의해 생성할 수 있는 유일한 유형의 컬렉션은 저널이다.
프로세스(700)는 그 다음에 (710에서) 현재 선택된 영상들을 식별한다. 어떤 실시예들에서, 사용자는 특정의 컬렉션에서의 영상들의 서브셋을 선택하고, 이어서 선택된 영상들로부터 새 컬렉션을 생성하라고 응용 프로그램에 지시할 수 있다.
이 프로세스는 이어서 (715에서) 식별된 영상들을 새 컬렉션으로 연관시킨다. 도 6에서, 3개의 영상이 현재 선택되어 있는 것으로 도시되어 있고, 따라서 이 3개의 영상들이 새 컬렉션으로서 연관될 것이다. 어떤 실시예들에서, 응용 프로그램은 새로 발생된 컬렉션에 대한 새로운 컬렉션 데이터 구조체를 생성하고, 컬렉션 내의 영상들 각각에 대한 참조(예컨대, 포인터, 데이터베이스 참조 ID 등)를 저장한다.
도 8은 어떤 실시예들의 컬렉션 데이터 구조체(800)를 개념적으로 나타낸 것이다. 사용자가 새 앨범을 발생하거나 새로운 이벤트에 대한 새로운 영상들을 가져오기할 때, 응용 프로그램은 앨범 또는 이벤트에 대한 새로운 컬렉션 데이터 구조체를 자동으로 생성한다. 컬렉션 데이터 구조체(800)는 컬렉션 ID, 컬렉션 유형, 컬렉션 이름, 키 영상(key image), 및 한 세트의 영상들에 대한 참조들을 포함하고 있다. 컬렉션 ID는 응용 프로그램이 컬렉션을 참조할 때 사용하는 컬렉션에 대한 고유 식별자이다. 컬렉션 유형은 컬렉션의 유형(예컨대, 앨범, 이벤트, 저널 등)이다. 어떤 실시예들에서, 응용 프로그램은, 다른 컬렉션들도 역시 영상을 포함하는 것에 관계없이, 응용 프로그램 내로 가져오기된 각각의 영상을 참조하는 "사진" 컬렉션을 포함하고 있다. 컬렉션 이름은 컬렉션이 선택될 때 영상 보기 및 편집 GUI의 상단에 디스플레이되는 컬렉션에 대한 사용자-할당 이름은 물론, 컬렉션 정리 GUI에서 컬렉션의 아이콘에 대해 사용되는 이름이다.
키 영상은 컬렉션을 나타내기 위해 사용자에 의해 설정된 영상이다. 어떤 실시예들에서, 응용 프로그램은 컬렉션 정리 GUI에서 키 영상을 유리 선반 상의 컬렉션에 대한 선택가능 아이콘으로서 디스플레이한다. 그에 부가하여, 컬렉션 데이터 구조체(800)는 컬렉션 내의 각각의 영상에 대한 참조들의 순서 계열(ordered series)을 포함하고 있다. 영상들의 순서는, 어떤 실시예들에서, 축소판 디스플레이 구역 내에서 축소판들이 디스플레이되는 순서를 결정한다. 이하에서 기술할 것인 바와 같이, 어떤 실시예들은 응용 프로그램 내로 가져오기된 각각의 영상에 대한 데이터 구조체를 저장하고, 컬렉션들은 이 데이터 구조체들을 참조한다. 이 참조들은 포인터, 데이터베이스 항목들에 대한 참조들 등일 수 있다.
도 9는 4개의 스테이지(910 내지 940)에 걸쳐 영상 정리, 보기 및 편집 GUI(650)(이하에서, 어떤 곳에서는 영상 보기 GUI, 영상 편집 GUI 등이라고 함)와 컬렉션 정리 GUI(600) 사이를 탐색헤 가는 것을 예시하고 있다. 도시된 바와 같이, 제1 스테이지(910)에서, 사용자는 뒤로 버튼(905)을 선택한다. 어떤 실시예들에서, 이 버튼은 응용 프로그램으로 하여금 컬렉션 정리 GUI(600)로 뒤로 천이하게 한다. 어떤 실시예들에서, 응용 프로그램은 영상 보기 GUI(650)를 최소화함으로써 이 천이를 애니메이션화하며, 따라서 이 GUI는 디스플레이된 컬렉션의 컬렉션 아이콘 내로 축소된다. 스테이지들(920 내지 940)은 이 애니메이션화를 예시하고 있다.
제2 스테이지(920)에서, 영상 보기 GUI(650)는 축소하기 시작하였고, 따라서 컬렉션 정리 GUI(600)의 가장자리가 보인다. 도시된 바와 같이, 응용 프로그램이 반드시 영상 보기 GUI(650)를 중앙 쪽으로 최소화하지 않아도 되고, 그 대신에 GUI에 디스플레이된 컬렉션을 나타내는 아이콘의 위치 쪽으로 최소화한다. 제3 스테이지(930)는 영상 보기 GUI가 컬렉션 아이콘(625)보다 약간 더 큰 시점에서 응용 프로그램 디스플레이를 나타내고 있다. 마지막으로, 제4 스테이지(940)에서, 영상 보기 GUI는 완전히 최소화되었고, 컬렉션 디스플레이 구역만이 보여지고 있다. 이 도면이 전체 GUI(650)(즉, 축소판 디스플레이 구역, 도구 모음, 및 영상 디스플레이 구역)가 최소화하는 것을 나타내고 있지만, 어떤 실시예들은, 사용자가 뒤로 버튼을 누르자마자, 축소판 디스플레이 구역 및 도구 모음을 디스플레이로부터 제거하며, 따라서 영상 디스플레이 구역만이 최소화되는 것으로 도시되어 있다.
도 10은, 4개의 스테이지(1010 내지 1040)에 걸쳐, 사용자가 새로 생성된 앨범을 보기 위해 컬렉션 정리 GUI(600) 내에서 탐색해 가는 것을 예시하고 있다. 컬렉션 정리 GUI(600) 내에서, 사용자는 앨범, 사진, 이벤트 및 저널 중에서 선택하기 위해 탭들(605)을 사용할 수 있다. 이하에서 기술되는 바와 같이, 사용자는 또한 상이한 탭들 사이를 탐색해 가기 위해 스와이프 제스처를 사용할 수 있다. 제1 스테이지(1010)는 이벤트 탭(1015)이 활성인 동안 앨범 탭(1005)을 선택하는 것을 나타내고 있다. 도시된 바와 같이, 어떤 실시예들은 이 선택 동안(예컨대, 손가락이 탭을 누르고 있는 동안, 커서가 탭 상에 있는 상태에서 마우스 버튼이 눌러져 있는 동안, 기타) 선택된 탭을 하이라이트한다.
제2 스테이지(1020)는 앨범 탭(1005)이 이제 활성인 것을 나타내고 있다. 어떤 실시예들에서, 응용 프로그램은 상이한 탭들 간의 천이를 애니메이션화한다(즉, 앨범을 갖는 새로운 선반이 디스플레이 내로 슬라이딩되어 들어오는 동안 이벤트가 GUI 밖으로 슬라이딩되어 나가는 것을 나타냄). 앨범에 대한 선반은 "앨범 1(Album 1)"을 나타내는 아이콘(1025)만을 포함하고 있다. 이 스테이지에서, 사용자는 이 앨범에 액세스하기 위해 아이콘(1025)을 선택한다. 어떤 실시예들에서, 이것은 영상 보기 GUI(650)로의 천이를 야기한다.
스테이지(1030)에 나타낸 바와 같이, 어떤 실시예들의 응용 프로그램은 도 9에 도시된 최소화 애니메이션화와 정반대로 이 천이를 애니메이션화한다. 이와 같이, 스테이지(1030)에서, 영상 보기 GUI(650)는 선택된 아이콘(1025) 밖으로 확장하기 시작하였다. 제4 스테이지(1040)는 이 선택의 결과를 나타내고 있으며, 응용 프로그램은 영상 보기 GUI(650)를 디스플레이하고 있다. GUI는 현재 활성인 컬렉션이 "앨범 1"이라는 것을 상단에 나타내고 있다. 축소판 디스플레이 구역에서, 유일한 축소판들은 도 6에서 "앨범 1"에 대해 선택된 것으로 도시되었던 3개의 영상들에 대한 것이다. 어떤 실시예들은 영상들 중 어느 것도 처음에 영상 디스플레이 구역에 디스플레이하지 않으며, 그 대신에, 사용자가 하나 이상의 영상들을 선택하기를 기다린다. 그렇지만, 다른 실시예들은 처음에 컬렉션에 대한 순서 계열에서의 첫번째 영상 또는 컬렉션에 대한 키 영상을 선택한다. 또 다른 실시예들은 디바이스 상에서 컬렉션이 마지막으로 열렸을 때 어느 영상 또는 영상들이 선택되었는지를 나타내는 각각의 컬렉션에 대한 영속적 데이터를 저장하고, 컬렉션의 선택 시에 컬렉션을 디스플레이하기 위해 이 영속적 데이터를 사용한다.
도 11은 어떤 실시예들에 따른, 4개의 스테이지(1110 내지 1140)에 걸쳐 사용자가 컬렉션 정리 GUI(600)를 통해 탐색해 가는 것을 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(1110)에서, 응용 프로그램은 좋아하는 것(Favorites) 앨범, 카메라 롤(Camera Roll) 앨범, 플래깅된 사진(Flagged photos) 앨범은 물론, 다른 앨범들을 비롯한 적어도 9개의 앨범에 관한 정보를 저장한다. 어떤 실시예들에서, 사용자는 영상을 좋아하는 영상 또는 플래깅된 영상으로서 태깅할 수 있고, 이는 영상을 대응하는 앨범에 자동으로 위치시킨다. 그에 부가하여, 어떤 실시예들은 응용 프로그램이 동작하고 있는 디바이스에 의해 포착된 임의의 영상을 카메라 롤 앨범에 자동으로 추가한다.
어떤 실시예들에서, 스와이프 제스처는 응용 프로그램으로 하여금 탭들 사이를 탐색해 가게 한다. 도 11은 이러한 제스처를 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(1110)에서, 사용자는 두 손가락으로 터치스크린에 접촉한다. 그 다음 스테이지(1120)에서, 사용자는 터치스크린과의 접촉을 유지하면서 두 손가락을 좌측으로 이동시킨다. 도시된 바와 같이, 제2 세트의 선반들(1115)이 GUI의 우측으로부터 접근함에 따라, 선반들(1105)은 좌측으로 이동하기 시작한다. 제3 스테이지(1130)에서, 사용자는 스와이프 제스처로서 자격을 갖기 위해 그의 손가락을 임계 거리 이상 슬라이딩시킨 후에 터치스크린과의 접촉점을 해제하였다. 그에 부가하여, 화살표들로 나타낸 바와 같이, 한 세트의 새로운 선반들(1115)이 좌측으로 계속 이동하여, 선반들(1105)을 대체하였다.
제4 스테이지(1140)는 선반들(1115)이 GUI(600) 내로 완전히 이동한 것을 나타내고 있다. 게다가, 사진 탭(1125)이 이제 디스플레이에서 하이라이트되어 있다. 이 스와이프 제스처들을 사용하여, 사용자는 탭을 특정하여 선택할 필요 없이 상이한 탭들 사이를 쉽게 탐색해 갈 수 있다. 사용자가 사진 탭으로 탐색해 갈 때, 어떤 실시예들은 다른 탭들에 대해서와 같이 한 세트의 유사한 선반들을 디스플레이하지만, 컬렉션들 대신에 개개의 영상 축소판들을 디스플레이한다. 이 선반들은 영상 보기 응용 프로그램 내로 가져오기된 각각의 영상에 대한 축소판을 포함하고 있고, 이는 사용자가 (예컨대, 영상을 편집하기 위해, 영상을 공유하기 위해, 기타를 위해) 특정의 영상으로 직접 탐색해 가게 할 수 있다.
선반들(1105)이 도 11의 제1 스테이지(1110)에서 완전히 채워져 있지만, 응용 프로그램의 특정의 인스턴스는 디바이스 상에서 한번에 보여질 수 있는 컬렉션의 최대 수보다 더 많이 저장할 수 있다. 그에 따라, 어떤 실시예들의 응용 프로그램은 사용자가 선반들을 수직으로 스크롤할 수 있게 해준다. 도 12는 GUI(600)의 2개의 스테이지(1210 및 1220)에 걸쳐 어떤 실시예들에 따른 이러한 스크롤 기법을 나타내고 있다.
스테이지(1210)에서, 사용자는 두 손가락으로 터치스크린에 접촉한다. 그 다음 스테이지(1220)에서, 사용자는 터치스크린과의 접촉을 유지하면서 두 손가락을 위쪽으로 이동시킨다. 이것은 선반들을 GUI(600)를 가로질러 위쪽으로 슬라이딩시킨다. 그 결과, GUI(600)의 하단에 부가의 선반이 나타났고, 상단 선반이 사라졌다. 이것이 매끄러운 스크롤 기법이지만, 어떤 실시예들에서, 선반들이 불연속적으로(discretely) 이동하지 않고 그 대신에, 사용자의 스와이프 제스처의 거리에 따라, 부분적으로 디스플레이의 상단 및 하단 상으로 또는 그로부터 벗어나게 스크롤할 수 있다.
어떤 실시예들의 영상 보기 응용 프로그램은, 디바이스 상에 이용가능한 저장 용량이 있는 한, 사용자가 기본적으로 무한개의 앨범을 생성할 수 있게 해준다. 이와 유사하게, 사용자는 무한개의 이벤트, 사진, 또는 저널을 가질 수 있다. 기술 분야의 당업자라면 한 세트의 선반들 사이에서 탐색해 가기 위해 다른 제스처들 및 입력들이 사용될 수 있다는 것을 잘 알 것이다. 예를 들어, 어떤 실시예들은 수직으로 적층되어 있는 무한개의 선반들을 포함하고 있고, 따라서 위쪽으로 스와이프하는 것은 선반들을 계속하여 스크롤한다. 그에 부가하여, 어떤 실시예들은, 스와이프 입력에 대한 대안으로서 또는 그와 함께, 화면의 좌측 및 우측에서의 탭핑 또는 클릭 입력에 응답한다.
어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램은 모바일 디바이스 상에서 동작한다. 어떤 실시예들은 태블릿 디바이스(예컨대, iPad®) 상에서 동작하는 반면, 다른 실시예들은 휴대폰(예컨대, iPhone®) 또는 미디어 플레이어(예컨대 iPod®) 상에서 동작한다. 어떤 실시예들의 태블릿 구현예의 GUI는 어떤 실시예의 휴대폰/미디어 플레이어 구현예의 GUI와 상이하지만, 태블릿 구현예의 다른 실시예들은 휴대폰/미디어 플레이어 GUI를 사용할 수 있고, 그 반대도 마찬가지이다.
도 13은 세로 모드(portrait mode)에 있는 동안 어떤 실시예들의 휴대폰 및 미디어 플레이어 구현예에 대한 4개의 스테이지(1310 내지 1340)에 걸쳐 영상 보기 및 편집 GUI(1350)와 컬렉션 정리 GUI(1300) 사이에서 탐색해 가는 것을 나타낸 것이다. 제1 스테이지(1310)는 영상 보기 및 편집 GUI(650)와 동일한 특징들 중 다수를 포함하고 있는 영상 보기 및 편집 GUI(1350)를 나타내고 있다. 이 GUI는 이하에서 더 상세히 기술될 것이다. 이 스테이지에서, 사용자는 컬렉션 정리 GUI로 다시 탐색해 가기 위해 뒤로 버튼(1305)을 선택한다.
제2 스테이지(1320)는 어떤 실시예들의 컬렉션 정리 GUI(1300)를 나타내고 있다. GUI(600)와 같이, 이 GUI는 상이한 컬렉션들을 나타내는 아이콘들을 갖는 한 세트의 선반들(예컨대, 유리 선반들)을 디스플레이한다. 그렇지만, GUI(600)가 상이한 유형의 컬렉션들에 대한 한 세트의 탭들을 포함했던 반면, GUI(700)는 디스플레이의 하단에 한 세트의 선택가능 아이콘들(1315)을 포함하고 있다. 이 아이콘들은 (현재 선택되어 있는) 앨범, 사진, 이벤트, 및 저널에 대한 선택을 포함하고 있다. 그에 부가하여, 디스플레이는 설정 메뉴를 포함하고 있다.
이 스테이지(1320)에서, 사용자는 이벤트 아이콘(1325)을 선택한다. 제3 스테이지(1325)는 이벤트 아이콘(1325)이 이제 선택되었고, 상이한 컬렉션들(2개의 이벤트)에 대한 아이콘들이 선반 상에 보여지고 있다. 사용자는 이 이벤트들 중 하나를 선택하고, 제4 스테이지(1340)는 그 결과 선택된 컬렉션에 대한 영상 보기 GUI(1350)를 나타내고 있다.
II. 영상 보기
앞서 기술한 도면들은 어떤 실시예들의 영상 보기 GUI의 다양한 예들을 나타내었다. 도 14는 영상을 보고, 편집하며 정리하는 어떤 실시예들의 GUI(1400)의 상세도를 나타낸 것이다. GUI(1400)는 부분적으로 도 15를 참조하여 기술될 것이며, 도 15는 어떤 실시예들의 응용 프로그램에 의해 저장되는 영상에 대한 데이터 구조체(1500)를 개념적으로 나타낸 것이다.
데이터 구조체(1500)는 영상 ID(1505), 영상 데이터(1510), 편집 명령어(1515), Exif(Exchangeable image file format) 데이터(1525), 캡션(1530), 공유 영상 데이터(1535), 영상의 캐싱된 버전(1540), 영상 상의 임의의 태그(1545), 및 영상에 대한 임의의 부가 데이터(1550)를 포함하고 있다. 영상 ID(1505)는 영상에 대한 고유 식별자로서, 어떤 실시예들에서, 컬렉션에 저장되어 있는 영상들을 참조하기 위해 컬렉션 데이터 구조체에 의해 사용된다.
영상 데이터(1510)는 영상을 디스플레이하기 위한 실제의 전체 크기 픽셀 데이터(예컨대, 영상 또는 영상의 인코딩된 버전에서의 각각의 픽셀에 대한 일련의 색 공간 채널 값)이다. 어떤 실시예들에서, 이 데이터는 영상 보기, 편집, 및 정리 응용 프로그램의 데이터베이스에 저장될 수 있거나, 동일한 디바이스 상의 다른 응용 프로그램의 데이터와 함께 저장될 수 있다. 따라서, 데이터 구조체는 응용 프로그램과 연관되어 있는 로컬 파일에 대한 포인터 또는 다른 응용 프로그램의 데이터베이스에 질의하는 데 사용될 수 있는 ID를 저장할 수 있다. 어떤 실시예들에서, 응용 프로그램이 저널에서 영상을 사용하거나 영상에 대한 편집을 하면, 응용 프로그램은 자동으로 영상 데이터를 포함하는 영상 파일의 로컬 사본을 만든다.
편집 명령어(1515)는 사용자가 영상에 적용한 임의의 편집에 관한 정보를 포함하고 있다. 이러한 방식으로, 응용 프로그램은 영상을 비파괴적 형식으로 저장하고, 따라서 응용 프로그램은 영상의 편집된 버전으로부터 원본으로 언제라도 되돌아갈 수 있다. 예를 들어, 사용자는 영상에 채도 효과(saturation effect)를 적용하고, 응응 프로그램을 빠져나가며, 이어서 다른 때에 응용 프로그램을 다시 열고 그 효과를 제거할 수 있다. 이 명령어들에 저장된 편집은 크로핑 및 회전, 전체 영상 노출 및 색상 조절, 국소화된 조절, 및 특수 효과는 물론 영상의 픽셀들에 영향을 미치는 다른 편집들일 수 있다. 어떤 실시예들은 이 편집 명령어들을 특정의 순서로 저장하고, 따라서 사용자는 특정의 편집 세트들만이 적용된 영상의 상이한 버전들을 볼 수 있다.
Exif 데이터(1525)는, 그 정보가 이용가능할 때, 영상을 포착한 카메라에 의해 저장되는 다양한 정보를 포함하고 있다. Exif가 디지털 카메라에 의해 흔히 사용되는 한 특정의 파일 형식이지만, 기술 분야의 당업자라면 비슷한 정보가 다른 형식으로도 이용가능할 수 있거나 심지어 사용자에 의해 직접 입력될 수 있다는 것을 잘 알 것이다. Exif 데이터(1525)는 카메라 설정 데이터, GPS 데이터, 및 타임스탬프를 포함하고 있다. 카메라 설정 데이터는, 그 정보가 영상을 포착한 카메라로부터 이용가능한 경우, 영상에 대한 카메라 설정에 관한 정보를 포함하고 있다. 이 정보는, 예를 들어, 조리개(aperture), 초점 거리, 셔터 속도, 노출 보상, 및 ISO를 포함할 수 있다. GPS 데이터(1525)는 영상이 포착된 위치를 나타내는 반면, 타임스탬프는 영상이 포착된 (카메라의 시계에 따른) 시각을 나타낸다.
캡션(1530)은 영상에 대한 사용자-입력 설명이다. 어떤 실시예들에서, 이 정보는 영상 보기 구역에서 영상과 함께 디스플레이되지만, 생성된 저널에서 영상 위에 디스플레이하기 위해 사용될 수도 있으며, 영상이 소셜 미디어 또는 사진 공유 웹 사이트에 게시되는 경우 사용될 수 있다. 사용자가 이러한 웹 사이트에 영상을 게시할 때, 응용 프로그램은 영상에 대한 공유 영상 데이터(1535)를 발생한다. 이 정보는 위치(예컨대, Facebook®, Flickr® 등)는 물론, 웹 사이트의 데이터베이스에 있는 영상에 액세스하기 위한 객체 ID를 저장하고 있다. 마지막 액세스 날짜는 응용 프로그램이 소셜 미디어 또는 사진 공유 웹 사이트로부터의 영상에 관한 임의의 사용자 댓글들에 액세스하기 위해 객체 ID를 마지막으로 사용한 날짜 및 시각이다.
캐싱된 영상 버전(1540)은 흔히 액세스되고 디스플레이되는 영상의 버전들을 저장하고, 따라서 응용 프로그램은 전체 크기 영상 데이터(1510)로부터 이 영상들을 반복하여 발생할 필요가 없다. 예를 들어, 응용 프로그램은 종종 영상에 대한 축소판은 물론 디스플레이 해상도 버전(예컨대, 영상 디스플레이 구역에 맞춰 조정된 버전)도 저장할 것이다. 어떤 실시예들의 응용 프로그램은 편집이 적용될 때마다 영상에 대한 새로운 축소판을 발생하고, 이전의 축소판을 대체한다. 어떤 실시예들은 원본 영상 및 영상의 하나 이상의 편집된 버전들을 포함하는 다수의 디스플레이 해상도 버전들을 저장한다.
태그(1545)는 응용 프로그램이 사용자로 하여금 영상과 연관시킬 수 있게 해주는 정보이다. 예를 들어, 어떤 실시예들에서, 사용자는 영상을 좋아하는 것으로 표시하고, (예컨대, 추가의 검토를 위해) 영상에 플래깅하며, 사용자가 영상을 포함하는 컬렉션을 순환할 때 영상이 컬렉션에 대한 표준의 축소판 격자 내에 디스플레이되지 않도록 그리고 영상 디스플레이 구역에 디스플레이되지 않도록 영상을 숨길 수 있다. 다른 실시예들은 부가의 탭들을 포함할 수 있다. 마지막으로, 영상 데이터 구조체(1500)는 응용 프로그램이 영상과 함께 저장할 수 있는 부가의 데이터(1550)(예컨대, 얼굴의 위치 및 크기 등)를 포함하고 있다.
기술 분야의 당업자라면 영상 데이터 구조체(1500)가 응용 프로그램이 영상에 대한 필요한 정보를 저장하기 위해 사용할 수 있는 하나의 가능한 데이터 구조체에 불과하다는 것을 잘 알 것이다. 예를 들어, 다른 실시예들은 보다 많은 또는 보다 적은 정보를 저장할 수 있고, 정보를 상이한 순서로 저장할 수 있으며, 기타 등등일 수 있다.
도 14를 참조하면, GUI(1400)는 축소판 디스플레이 구역(1405), 영상 디스플레이 구역(1410), 제1 도구 모음(1415), 제2 도구 모음(1420), 및 제3 도구 모음(1425)을 포함하고 있다. 축소판 디스플레이 구역(1405)은 선택된 컬렉션 내의 영상들의 축소판들을 디스플레이한다. 축소판은 전체 크기 영상의 작은 표현이고, 어떤 실시예들에서, 영상의 일부분만을 나타낸다. 예를 들어, 축소판 디스플레이 구역(1405)에 있는 축소판들 전부는, 전체 크기 영상의 종횡비에 무관하게, 정사각형이다. 축소판에 대해 사용할 직사각형 영상의 일부분을 결정하기 위해, 응용 프로그램은 영상의 보다 작은 치수를 식별하고 긴쪽 방향에서 영상의 중앙 부분을 사용한다. 예를 들어, 1600x1200 픽셀 영상에 있어서, 응용 프로그램은 1200x1200 정사각형을 사용할 것이다. 축소판을 위해 선택된 부분을 추가로 세부 조정하기 위해, 어떤 실시예들은 (얼굴 검출 알고리즘을 사용하여) 영상에서의 모든 얼굴들의 중앙을 식별하고, 이어서 클립핑된 방향에서 축소판 부분을 중앙에 오도록 하기 위해 이 위치를 사용한다. 따라서, 이론적인 1600x1200 영상에서의 얼굴들 전부가 영상의 좌측에 위치해 있는 경우, 응용 프로그램은 양쪽 측면에서 200개 열을 절단하기 보다는 최좌측 1200개 픽셀 열을 사용할 것이다.
축소판에 대해 사용할 영상의 부분을 결정한 후에, 영상 보기 응용 프로그램은 영상의 저해상도 버전(예컨대, 픽셀 블렌딩 및 기타 기법을 사용함)을 발생한다. 어떤 실시예들의 응용 프로그램은 영상에 대한 축소판을 영상의 캐싱된 버전(1540)으로서 저장한다. 따라서, 사용자가 컬렉션을 선택할 때, 응용 프로그램은 (컬렉션 데이터 구조체를 통해) 컬렉션에 있는 영상들 전부를 식별하고, 축소판 디스플레이 구역에 디스플레이하기 위한 각각의 영상 데이터 구조체 내의 캐싱된 축소판들에 액세스한다.
사용자는 (예컨대, 이하의 섹션 IV에 기술되어 있는 다양한 터치 상호작용을 통해) 축소판 디스플레이 구역에 있는 하나 이상의 영상을 선택할 수 있다. 선택된 축소판들이 하이라이트 또는 다른 선택 표시자와 함께 디스플레이된다. 축소판 디스플레이 구역(1405)에서, 축소판(1430)이 선택된다. 그에 부가하여, 도시된 바와 같이, 어떤 실시예들의 축소판 디스플레이 구역(1405)은 플래깅되어 있는[즉, 플래그에 대한 태그(1545)가 예(yes)로 설정되어 있는] 컬렉션 내의 다수의 영상들을 나타내고 있다. 어떤 실시예들에서, 플래깅된 영상들의 축소판들만을 디스플레이하기 위해 이 텍스트는 선택가능하다.
응용 프로그램은 선택된 영상들을 영상 디스플레이 구역(1410)에 대응하는 축소판들보다 더 높은 해상도로 디스플레이한다. 영상들은 통상적으로 영상의 전체 크기로 디스플레이되지 않는데, 그 이유는 영상들이 종종 디스플레이 디바이스보다 더 높은 해상도를 가지기 때문이다. 그에 따라, 어떤 실시예들의 응용 프로그램은 영상 디스플레이 구역에 들어가도록 설계된 영상의 캐싱된 버전(1540)을 저장한다. 영상 디스플레이 구역(1410)에 있는 영상들은 전체 크기 영상의 종횡비로 디스플레이된다. 하나의 영상이 선택될 때, 응용 프로그램은, 영상의 어느 부분도 절단하는 일 없이, 영상을 영상 디스플레이 구역 내에 가능한 한 크게 디스플레이한다. 다수의 영상들이 선택될 때, 응용 프로그램은 영상들이 상이한 종횡비를 가질 때조차도, 각각의 영상에 대해 대략 동일한 수의 픽셀을 사용함으로써, 영상들을 그의 시각적 가중치를 유지하는 방식으로 디스플레이한다.
제1 도구 모음(1415)은 제목 정보(예컨대, GUI에 보여지는 컬렉션의 이름, 사용자가 현재 선택된 영상에 추가한 캡션 등)를 디스플레이한다. 그에 부가하여, 도구 모음(1415)은 제1 세트의 GUI 아이템들(1435 내지 1438) 및 제2 세트의 GUI 아이템들(1440 내지 1443)을 포함하고 있다.
제1 세트의 GUI 아이템들은 뒤로 버튼(1435), 격자 버튼(1436), 도움말 버튼(1437), 및 실행취소 버튼(1438)을 포함하고 있다. 뒤로 버튼(1435)은 사용자가, 앞서 도 9에 도시된 바와 같이, 컬렉션 정리 GUI로 다시 탐색해 갈 수 있게 해준다. 격자 버튼(1436)의 선택은 응용 프로그램으로 하여금 (예컨대, 슬라이드 애니메이션화를 통해) 축소판 디스플레이 구역을 GUI 상으로 또는 그로부터 벗어나게 이동시키게 한다. 어떤 실시예들에서, 사용자는 또한 스와이프 제스처를 통해 축소판 디스플레이 구역을 GUI 상으로 또는 그로부터 벗어나게 슬라이딩시킬 수 있다. 도움말 버튼(1437)은 사용자를 위해 한 세트의 현재 활성인 도구들을 식별해주는 상황-의존적 도움말 기능을 활성화시키고 도구들에 대해 사용자에게 간략하게 설명하는 그 도구들에 대한 도움말 표시자들을 제공한다. 어떤 실시예들에서, 도구들에 관한 부가 정보에 액세스하기 위해 도움말 표시자들이 선택가능하다. 실행취소 버튼(1438)의 선택은 응용 프로그램으로 하여금, 이 편집이 크로핑이든, 색상 조절이든, 기타 등등이든 간에, 영상에 대한 가장 최근의 편집을 제거하게 한다. 이 실행취소를 수행하기 위해, 어떤 실시예들은 가장 최근의 명령어를 영상과 함께 저장되어 있는 한 세트의 편집 명령어들(1515)로부터 제거한다.
제2 세트의 GUI 아이템들은 공유 버튼(1440), 정보 버튼(1441), 원본 보여주기 버튼(1442), 및 편집 버튼(1443)을 포함하고 있다. 공유 버튼(1440)은 사용자가 각종의 상이한 방식으로 영상을 공유할 수 있게 해준다. 어떤 실시예들에서, 그 중에서도 특히, 사용자는 선택된 영상을 동일한 네트워크(예컨대, Wi-Fi 또는 블루투스 네트워크) 상의 다른 호환가능 디바이스로 송신하고, 영상을 영상 호스팅 또는 소셜 미디어 웹 사이트로 업로드하며, 한 세트의 선택된 영상들로부터 저널(즉, 부가의 콘텐츠가 추가될 수 있는 배열된 영상들의 제시)을 생성할 수 있다.
정보 버튼(1441)은 하나 이상의 선택된 영상들에 관한 부가 정보를 디스플레이하는 디스플레이 구역을 활성화시킨다. 활성화된 디스플레이 구역에 디스플레이되는 정보는 영상에 대해 저장되는 Exif 데이터(1525) 중 일부 또는 전부(예컨대, 카메라 설정, 타임스탬프 등)를 포함할 수 있다. 다수의 영상들이 선택될 때, 어떤 실시예들은 선택된 영상들 전부에 공통인 Exif 데이터만을 디스플레이한다. 어떤 실시예들은 (i), 이 정보가 이용가능한 경우, 영상 또는 영상들이 GPS 데이터에 따라 어디에서 포착되었는지를 보여주는 지도를 디스플레이하고 (ii) 임의의 사진 공유 웹 사이트 상의 영상에 대한 댓글 스트림을 디스플레이하는 부가의 탭들을 정보 디스플레이 구역 내에 포함하고 있다. 웹 사이트로부터 이 정보를 다운로드하기 위해, 응용 프로그램은 공유 영상 데이터(1535)와 함께 영상에 대해 저장된 객체 ID를 사용하고 이 정보를 웹 사이트로 송신한다. 댓글 스트림 및, 어떤 경우에, 부가 정보가 웹 사이트로부터 수신되고 사용자에게 디스플레이된다.
원본 보여주기 버튼(1442)은 사용자가 영상의 원본 버전과 영상의 현재 편집된 버전 사이를 토글할 수 있게 해준다. 사용자가 버튼을 선택할 때, 응용 프로그램은 편집 명령어들(1515)중 어떤 것도 적용되지 않은, 영상의 원본 버전을 디스플레이한다. 어떤 실시예들에서, 적절한 크기의 영상이 영상의 캐싱된 버전들(1540) 중 하나로서 저장되고, 이를 신속하게 액세스가능하도록 만든다. 사용자가 버튼(1442)을 다시 선택할 때, 응용 프로그램은 편집 명령어(1515)가 적용된, 영상의 편집된 버전을 디스플레이한다.
편집 버튼(1443)은 사용자가 편집 모드에 들어가거나 이를 종료할 수 있게 해준다. 사용자가 도구 모음(1420)에 있는 편집 도구 세트들 중 하나를 선택할 때, 편집 버튼(1443)은, 도 14에 도시된 바와 같이, 사용자를 보기 및 정리 모드로 되돌아가게 한다. 보기 모드에 있는 동안, 사용자가 편집 버튼(1443)을 선택할 때, 응용 프로그램은 도구 모음(1420)에 보여지는 순서로 마지막으로 사용된 한 세트의 편집 도구들로 되돌아간다. 즉, 도구 모음(1420)에 있는 아이템들은 특정의 순서로 배열되어 있고, 편집 버튼(1443)은 선택된 영상에 대해 편집을 행했던 그 아이템들 중 최우측의 것을 활성화시킨다.
도구 모음(1420)은, 언급한 바와 같이, 좌에서 우로 특정의 순서로 배열되어 있는 5개의 아이템들(1445 내지 1449)을 포함하고 있다. 크로핑 아이템(1445)은 사용자가 비뚤어진 영상들을 정렬(align)시키고 영상의 원하지 않는 부분을 제거할 수 있게 해주는 크로핑 및 회전 도구를 활성화시킨다. 노출 아이템(1446)은 사용자가 영상의 흑색 점, 음영, 콘트라스트, 밝기, 하이라이트, 및 백색 점을 수정할 수 있게 해주는 한 세트의 노출 도구들을 활성화시킨다. 어떤 실시예들에서, 한 세트의 노출 도구들은 영상의 색조 속성들(tonal attributes)을 수정하기 위해 상이한 조합으로 함께 동작하는 한 세트의 슬라이더들이다. 색상 아이템(1447)은 사용자가 채도(saturation) 및 바이브런시(vibrancy)는 물론, 색상-고유 채도(color-specific saturation)(예컨대, 청색 픽셀 또는 녹색 픽셀) 및 화이트 밸런스를 수정할 수 있게 해주는 한 세트의 색상 도구들을 활성화시킨다. 어떤 실시예들에서, 이 도구들 중 일부는 한 세트의 슬라이더들로서 제시된다. 브러시 아이템(1448)은 사용자가 영상에 대한 수정들을 국소화할 수 있게 해주는 한 세트의 강조 도구들(enhancement tools)을 활성화시킨다. 브러시에 의해, 사용자는 적목 현상(red-eye) 및 흠집을 제거할 수 있고, 영상에 대해 문지르기(rubbing) 동작을 수행함으로써 영상의 국소화된 부분에 채도 및 기타 특징을 적용하거나 제거할 수 있다. 마지막으로, 효과 아이템(1449)은 사용자가 영상에 적용할 수 있는 한 세트의 특수 효과들을 활성화시킨다. 이 효과들은 기울기(gradient), 틸트 시프트(tilt shift), 비사실적 채도 감소 효과(non-photorealistic desaturation effect), 그레이스케일 효과, 다양한 필터 등을 포함하고 있다. 어떤 실시예들에서, 응용 프로그램은 이 효과들을 도구 모음(1425)으로부터 펼쳐지는 한 세트의 아이템들로서 제공한다.
언급한 바와 같이, UI 아이템들(1445 내지 1449)은 특정의 순서로 배열되어 있다. 이 순서는 사용자가 5가지 상이한 유형의 편집들을 가장 흔히 적용하는 순서를 따른다. 그에 따라, 어떤 실시예들에서, 편집 명령어들(1515)은 이 동일한 순서로 저장된다. 사용자가 아이템들(1445 내지 1449) 중 하나를 선택할 때, 어떤 실시예들은 선택된 도구의 좌측에 있는 도구들로부터의 편집들만을 디스플레이된 영상에 적용한다[그렇지만, 다른 편집들이 명령어 집합(1515) 내에 저장된 채로 있음].
도구 모음(1425)은 한 세트의 GUI 아이템들(1450 내지 1454)은 물론 설정 아이템(1455)도 포함하고 있다. 자동 강조(auto-enhance) 아이템(1450)은 영상에 대해 강조 편집(enhancement edit)(예컨대, 명백한 적목 현상을 제거하는 것, 색상 밸런싱 등)을 자동으로 수행한다. 회전 버튼(1451)은 임의의 선택된 영상들을 회전시킨다. 어떤 실시예들에서, 회전 버튼이 눌러질 때마다, 영상은 특정의 방향으로 90도 회전한다. 어떤 실시예들에서, 자동 강조는 명령어 집합(1515)에 위치되어 있는 한 세트의 소정의 편집 명령어들을 포함한다. 어떤 실시예들은 영상의 분석을 수행하고, 이어서 분석에 기초하여 한 세트의 명령어들을 정의한다. 예를 들어, 자동 강조 도구는 영상에서 적목 현상을 검출하려고 시도할 것이지만, 적목 현상이 검출되지 않는 경우, 그를 보정하기 위해 어떤 명령어도 발생되지 않을 것이다. 이와 유사하게, 자동 색상 밸런싱도 영상의 분석에 기초할 것이다. 회전 버튼에 의해 발생되는 회전도 역시 편집 명령어로서 저장된다.
플래그 버튼(1452)은 임의의 선택된 영상을 플래깅된 것으로 태깅한다. 어떤 실시예들에서, 컬렉션의 플래깅된 영상들은 어떤 플래깅되지 않은 영상들도 없이 디스플레이될 수 있다. 좋아하는 것(favorites) 버튼(1453)은 사용자가 임의의 선택된 영상들을 좋아하는 것으로서 표시할 수 있게 해준다. 어떤 실시예들에서, 이것은 영상을 좋아하는 것으로서 태깅하고 또한 영상을 좋아하는 영상들의 컬렉션에 추가한다. 숨기기 버튼(1454)은 사용자가 영상을 숨겨진 것으로서 태깅할 수 있게 해준다. 어떤 실시예들에서, 숨겨진 영상은 축소판 디스플레이 구역에 디스플레이되지 않을 것이고 및/또는 사용자가 영상 디스플레이 구역에서 컬렉션의 영상들을 순환할 때 디스플레이되지 않을 것이다. 도 15에 도시된 바와 같이, 이들 특징 중 다수는 영상 데이터 구조체에 태그로서 저장된다.
마지막으로, 설정 버튼(1455)은 현재 활성인 도구 세트에 따라 상이한 메뉴 옵션들을 제공하는 상황-의존적 메뉴를 활성화시킨다. 예를 들어, 보기 모드에서, 어떤 실시예들의 메뉴는 새 앨범을 생성하는 옵션, 앨범에 대한 키 영상을 설정하는 옵션, 하나의 영상으로부터 다른 영상으로 설정을 복사하는 옵션, 및 기타 옵션들을 제공한다. 상이한 편집 도구 세트들이 활성일 때, 메뉴는 특정의 활성 도구 세트에 관련되어 있는 옵션들을 제공한다.
기술 분야의 당업자라면 영상 보기 및 편집 GUI(1400)가 영상 보기, 편집, 및 정리 응용 프로그램에 대한 많은 가능한 그래픽 사용자 인터페이스들의 한 예에 불과하다는 것을 잘 알 것이다. 예를 들어, 다양한 아이템들이 상이한 구역들에 또는 상이한 순서로 위치될 수 있고, 어떤 실시예들은 부가의 기능 또는 상이한 기능을 갖는 아이템들을 포함할 수 있다. 어떤 실시예들의 축소판 디스플레이 구역은 그의 대응하는 전체 크기 영상의 종횡비와 일치하는 축소판들, 기타를 디스플레이할 수 있다.
III. 상이한 GUI 모드들에서의 상호작용
상기 도 14는 영상 보기, 편집, 및 정리 응용 프로그램의 특정의 그래픽 사용자 인터페이스(1400)를 나타내었다. 어떤 실시예들에서, 응용 프로그램은 다수의 GUI 모드들을 제공하고, GUI(1400)는 그 중 하나에 불과하다. 이 모드들은 세로 배향과 가로 배향, 왼손잡이 사용자와 오른손잡이 사용자, 또는 다른 인자들을 구분할 수 있다. 어떤 실시예들은 3가지 상이한 모드 - 세로 모드, 왼손잡이 가로 모드, 및 오른손잡이 가로 모드 - 를 가진다. 이 모드들은 동일한 GUI 아이템들 및 디스플레이 구역들을 사용자에게 제시하지만, 상이한 방식으로 배열되어 있다.
A. 왼손잡이 및 오른손잡이 GUI
어떤 실시예들은 왼손잡이 GUI 및 오른손잡이 GUI 둘 다를 제공하며, 사용자는 이들 사이에서 전환할 수 있다. 상이한 옵션들이 세로 모드 및 가로 모드 둘 다에서, 또는 가로 모드에서만 제시될 수 있다. 어떤 실시예들에서, 왼손잡이 GUI와 오른손잡이 GUI 사이에서 전환하기 위해, 사용자는 GUI 내에서 특정의 GUI 아이템(예컨대, 축소판 디스플레이 구역)을 이동시킨다. 특정의 GUI 아이템을 제1 위치로부터 제2 위치로 이동시킨 결과로서, 응용 프로그램은 오른손잡이 GUI를 제공하는 것으로부터 왼손잡이 GUI를 제공하는 것으로 전환하거나, 그 반대로 전환한다. 어떤 실시예들에서, 2개의 GUI 사이의 차이점은 특정의 GUI 아이템의 위치 뿐만 아니라, 부가의 GUI 아이템 세트들의 위치 및 순서(예컨대, 좌우 순서)이다.
도 16은, 오른손잡이 모드로부터 왼손잡이 모드로 전환하기 위해, 사용자가 축소판 디스플레이 구역(1605)을 GUI의 좌측으로부터 우측으로 이동시키는 4개의 스테이지(1610 내지 1640)에 걸쳐 GUI(1600)를 나타낸 것이다. GUI(1600)는 축소판 디스플레이 구역(1605), 영상 디스플레이 구역(1615), 제1 세트의 GUI 아이템들(1625)(격자 온/오프 버튼, 도움말 버튼, 및 실행취소 버튼), 뒤로 버튼(1635), 제2 세트의 GUI 아이템들(1645)(공유 버튼, 정보 버튼, 및 원본 토글 버튼), 편집 버튼(1650), 제3 세트의 GUI 아이템들(1655)(편집 도구 활성화 버튼), 및 설정 메뉴 버튼(1660)을 포함하고 있다.
제1 스테이지(1610)는 오른손잡이 모드에 있는 GUI(1600)를 예시하고 있다. 오른손잡이 모드에서, 축소판 디스플레이 구역(1605)은 GUI의 좌측에 위치해 있다. 뒤로 버튼(1635) 및 제1 세트의 GUI 아이템들(1625)은 상부 도구 모음의 좌측에 위치해 있고, 편집 버튼(1650) 및 제2 세트의 GUI 아이템들(1655)은 상부 도구 모음의 우측에 위치해 있으며, 제3 세트의 GUI 아이템들(1655)은 좌측 하단에(축소판 디스플레이 구역 아래쪽에) 위치해 있고, 설정 메뉴 버튼은 우측 하단에 위치해 있다. 이 스테이지는, 그에 부가하여, 사용자가 축소판 스플레이 구역 상에서 터치 제스처를 수행하기 위해 축소판 디스플레이 구역 상에 손가락을 위치시킨 것을 나타내고 있다. 어떤 실시예들에서, 축소판 디스플레이 구역은 디스플레이 구역을 이동시키기 위해 선택될 수 있는 헤더 구역(header area)을 포함하고 있다.
제2 스테이지(1620)는 사용자가 한 손가락으로 드래그(또는 스와이프) 제스처를 실행하는 도중에 있는 것을 나타내고 있다. 이러한 제스처를 수행하기 위해, 사용자는 손가락으로 축소판 디스플레이 구역을 누르고, 접촉을 해제함이 없이, 터치스크린을 따라 오른쪽으로 손가락을 슬라이딩시킨다. 사용자가 터치스크린 상에서 그의 손가락을 이동시킬 때, 응용 프로그램은 축소판 디스플레이 구역(1605)을 손가락과 함께 이동시킨다.
제3 스테이지(1630)는 사용자가 터치스크린을 따라 오른쪽으로 더 터치스크린을 이동시킨 것을 나타내고 있다. 그에 부가하여, 이 도면은, 사용자가 화면과의 접촉을 해제할 때, 축소판 디스플레이 구역(1605)이 GUI(1600)의 오른쪽 가장자리로 스냅(snap)하는 것을 보여주고 있다. 어떤 실시예들에서, 사용자가 GUI의 좌측에서 디스플레이 구역과의 접촉을 해제할 때, 축소판 디스플레이 구역은 자동으로 다시 그 측면으로 스냅하고, 우측에 대해서도 동일하다.
제4 스테이지(1640)는 사용자가 축소판 디스플레이 구역을 해제한 후의 왼손잡이 모드에 있는 GUI(1600)를 나타내고 있다. 왼손잡이 모드에서, 대부분의 GUI 도구들은 전환된 측면을 가진다. 설정 메뉴 버튼(1660)은 이제 좌측 하단에 위치해 있는 반면, 제3 세트의 GUI 아이템들(1655)은 우측 하단에 위치해 있다. 제3 세트의 GUI 아이템들(1655)은, 크로핑 활성화 버튼으로부터 효과 활성화 버튼까지, 그의 좌우 순서를 유지한다. 이 아이템들은 통상적인 순서로 배열되어 있고, 사용자는 이 순서로 영상에 대해 편집을 한다(먼저 영상을 크로핑 및 회전시키고, 이어서 노출 및 색상을 조절하며, 이어서 수정(touchup)을 위해 브러시를 사용하고, 마지막으로 임의의 특수 효과를 영상에 적용한다). 그에 따라, 이 도구들은 양쪽 GUI 모드에서 동일한 순서로 배열되어 있다.
그렇지만, 상부 도구 모음에서의 한 세트의 도구들은 위치를 바꾸어 순서를 정반대로 한다. 뒤로 버튼(1635) 및 편집 버튼(1650)은 [축소판 디스플레이 구역(1605)을 수용하기 위해 전체 도구 모음이 좌측으로 슬라이딩되어 있는 것을 제외하고는], 각각, 최좌측 버튼 및 최우측 버튼으로서 고정되어 있다. 그렇지만, 제1 세트의 GUI 아이템들(1625) 및 제2 세트의 GUI 아이템들(1645)은 위치를 바꾸어 그의 순서를 정반대로 한다. 제1 세트의 GUI 아이템들(1625)은 이제 편집 버튼(1650) 옆에 위치해 있지만, 정반대의 좌우 순서로 되어 있다. 이와 유사하게, 제2 세트의 GUI 아이템들(1645)은 이제 뒤로 버튼(1635) 옆에 위치해 있고, 역시 정반대의 좌우 순서로 되어 있다. 특정의 순서로 배열되어 있지 않은 이 아이템들은 그에 의해 축소판 디스플레이 구역(1605)에 대한 그의 상대 위치를 유지한다.
어떤 실시예들에서, 도 14에 예시되어 있는 바와 같이, GUI는 또한 자동 강조 버튼, 회전 버튼, 플래그 버튼, 좋아하는 것 버튼, 및 숨기기 버튼을 포함하고 있다. 일부 이러한 실시예에서, 이 GUI 아이템들은 왼손잡이 모드에 있을 때 여전히 GUI의 하단 중앙에 있고 동일한 순서를 유지하고 있다. 그렇지만, 다른 실시예들에서, 왼손잡이 모드에서, 자동 강조 버튼은 이 세트의 아이템들의 우측에 있는 반면, 숨기기 버튼은 좌측에 있다.
이 도면이 사용자가 왼손잡이 GUI로 전환하기 위해 왼손으로 드래그 제스처를 하는 것을 나타내고 있지만, 어떤 실시예들은 사용자가 축소판 디스플레이 구역을 어느 한 손의 손가락으로(또는 두 손가락 드래그, 스와이프 등과 같은 상이한 제스처로) 어느 한 방향으로 드래그할 수 있게 해준다. 이러한 점에서, GUI는 사용자가 실제로 어느 손을 사용하는지에 응답하지 않고, 오히려 축소판 디스플레이 구역의 위치에 응답한다. 한편, 어떤 실시예들의 응용 프로그램은 (예컨대, 터치스크린의 상이한 접촉들의 상대적 위치에 기초하여) 사용자가 어느 손을 사용하고 있는지를 인식하고 그에 따라 디스플레이를 전환할 수 있다. 다른 실시예들은 특정의 제스처(예컨대, 5개의 손가락 전부를 화면의 중앙에 동시에 터치하는 것)에 대해 손을 구분하고 이 제스처들을 한 모드에서 다른 모드로 전환하는 명령으로서 사용할 수 있다.
왼손잡이 GUI 모드 및 오른손잡이 GUI 모드를 가지는 것에 부가하여, 어떤 실시예들은 영상 보기 및 편집 GUI를 세로 모드와 가로 모드에서 상이하게 디스플레이한다. 어떤 실시예들에서, 축소판 디스플레이 구역은 세로 모드에 있을 때 왼손잡이 또는 오른손잡이 가로 모드와 비교하여 디스플레이의 상이한 구역에 위치해 있다. 예를 들어, 어떤 실시예들에서, 응용 프로그램은 세로 GUI의 하단에 축소판 디스플레이 구역을 디스플레이한다.
어떤 실시예들은 응용 프로그램에 대한 가장 최근에 사용된 가로 모드에 기초하여 세로 모드에서의 다양한 GUI 아이템들의 위치를 결정한다. 예를 들어, 어떤 실시예들은 디바이스가 똑바로 또는 옆으로 배향되어 있는지를 식별해주고 이 정보를 운영 체제를 통해 응용 프로그램에 제공하는 내장된 가속도계 또는 자이로스코프를 갖는 디바이스 상에서 동작한다. 사용자가 디바이스를 세로 모드로 재배향시킬 때, 어떤 실시예들은 재배향 이전에 GUI가 설정되었던 가로 모드에 기초하여 영상 보기 응용 프로그램의 GUI 요소들을 정렬시킨다.
도 17 내지 도 19는 세로 모드 및 가로 모드 둘 다에서, 어떤 실시예들의 왼손잡이 GUI 모드 및 오른손잡이 GUI 모드를 나타낸 것이다. 도 14 및 상기 다른 도면들에 도시된 어떤 실시예의 GUI 구현예를 나타내기 보다는, 이 도면들은 어떤 실시예들의 휴대폰 및 미디어 플레이어 구현예에 사용되는 영상 보기 및 편집 GUI(1700)를 나타내고 있다.
도 17은 영상 보기 응용 프로그램이 동작하고 있는 디바이스가 세로 모드로부터 가로 모드로 회전될 때 3개의 스테이지(1710 내지 1730)에 걸쳐 GUI(1700)를 나타내고 있다. 도 17에 도시된 바와 같이, GUI(1700)는 축소판 디스플레이 구역(1705), 영상 디스플레이 구역(1715), 제1 도구 모음(1725)(GUI의 하단에 위치해 있음), 및 제2 도구 모음(1727)(GUI의 상단에 위치해 있음)을 포함하고 있다.
제1 도구 모음(1725)은 자동 강조 버튼(1730), 회전 버튼(1735), 플래그 버튼(1740), 좋아하는 것 버튼(1745), 숨기기 버튼(1750), 설정 버튼(1755), 및 도구 상자 버튼(1760)을 포함하고 있다. 다양한 GUI 아이템들(1730 내지 1755)은 도 14를 참조하여 앞서 기술된 것과 동일한 방식으로 동작한다. 어떤 실시예들의 도구 상자(1760)는 사용자가 각종의 상이한 편집 도구 세트들에 액세스할 수 있게 해준다. 어떤 실시예들에서, 사용자가 도구 상자(1760)를 선택할 때, 아이템들(1730 내지 1750)이 사라지고 아이템들(1445 내지 1449)(크로핑 아이템, 노출 아이템, 색상 아이템, 브러시 아이템, 및 효과 아이템)과 유사한 GUI 아이템들로 대체된다.
제2 도구 모음(1727)은 뒤로 버튼(1765), 격자 버튼(1770), 원본 보여주기 버튼(1780), 공유 버튼(1785), 및 편집 버튼(1790)을 포함하고 있다. 이 GUI 아이템들도 역시 도 14를 참조하여 앞서 기술된 것과 동일한 방식으로 동작한다. 어떤 실시예들에서, 도움말 기능 및 실행취소 기능은 개별적인 아이템들을 갖기 보다는 설정 아이템(1755)을 통해 액세스될 수 있다.
도 17의 제1 스테이지(1710)는 세로 모드에 있는 GUI(1700)를 나타내고 있으며, 응용 프로그램이 동작하고 있는 디바이스가 똑바로 있는 위치에 보유되어 있다. 제2 스테이지(1720)에서, 사용자는 디바이스를 옆으로 돌리기 시작했다. 제3 스테이지(1730)에 이르러 디바이스가 완전히 90도 회전되어서야, 응용 프로그램은 세로 모드에 있는 GUI를 디스플레이하는 것으로부터 가로 모드로 전환한다. 어떤 실시예들에서, 디바이스는 가속도계 또는 자이로스코프를 포함하며, 그로부터 디바이스의 운영 체제는 디바이스가 세로 모드에 있어야 하는지 가로 모드에 있어야 하는지를 판정한다. 이 판정은 응용 프로그램으로 전달되고, 응용 프로그램은 적절한 GUI를 출력한다.
제3 스테이지(1730)는 어떤 실시예들의 가로 모드 GUI(1700)를 나타내고 있다. GUI는 상부 도구 모음 및 하부 도구 모음에 동일한 한 세트의 UI 아이템들을 포함하고 있지만, 아이템들이 더 많이 확산되어 있다. 그에 부가하여, 축소판 디스플레이 구역(1705)은 디스플레이의 하단보다는 좌측에 있다. 이 경우에, 세로 모드 GUI는 오른손잡이 모드에 있었고[즉, 스테이지(1710 및 1720)에서], 따라서 응용 프로그램이 가로 모드로 전환할 때, 응용 프로그램은 GUI(1700)에 대해 오른손잡이 가로 모드를 사용한다.
도 18은, 오른손잡이 모드로부터 왼손잡이 모드로 전환하기 위해, 사용자가 축소판 디스플레이 구역(1705)을 GUI의 좌측으로부터 GUI의 우측으로 이동시키는 4개의 스테이지(1810 내지 1840)에 걸쳐 GUI(1700)를 나타낸 것이다. 처음 3개의 스테이지(1810 내지 1830)에 걸쳐 축소판 디스플레이 구역(1705)을 드래그하는 데 사용되는 터치 제스처는 도 16에서 앞서 도시된 것과 유사한 제스처이다. 제4 스테이지(1840)는 왼손잡이 모드에 있는 GUI(1700)를 나타내고 있으며, 이 때 축소판 디스플레이 구역(1705)은 GUI의 우측에 있다. 이 구현예에서, 응용 프로그램은 도구 모음(1725)에서 GUI 아이템들(1730 내지 1760)의 순서를 정반대로 하고 - 도구 상자 아이콘(1760)은 이제 우측에 있고 설정 아이콘(1755)은 좌측에 있음 -, 자동 강조 아이템, 회전 아이템, 플래그 아이템, 좋아하는 것(favorites) 아이템, 및 숨기기 아이템도 역시 정반대로 되어 있다.
도 19는 사용자가 응용 프로그램이 동작하고 있는 디바이스를 다시 세로 모드로 회전시킬 때 3개의 스테이지(1910 내지 1930)에 걸쳐 GUI(1700)를 나타내고 있다. 그렇지만, 이 경우에, 응용 프로그램은 가로 모드에 있는 동안 왼손잡이 모드에서 동작하고 있다. 그 결과, 스테이지(1930)에서, 도구 모음(1725)에 있는 GUI 아이템들은 도 17에 도시된 오른손잡이 세로 모드와 비교하여 정반대로 되어 있다.
B. 축소판 디스플레이 구역과의 상호작용
왼손잡이 또는 오른손잡이 모드에서, 영상 보기 응용 프로그램은 축소판 디스플레이 구역(이하에서 축소판 격자라고도 함)과의 다양한 상호작용을 가능하게 해준다. 사용자는 축소판 디스플레이 구역의 크기를 변경하고, 축소판들의 열의 수를 변경하며, 축소판들을 스크롤할 수 있다. 도 20은 어떤 실시예들의 영상 보기 GUI에서 축소판 디스플레이 구역에 대한 상태 및 상태의 변화를 보여주는 상태도(2000)를 개념적으로 나타낸 것이다. 당업자라면 이 상태도가 축소판 디스플레이 구역과의 모든 가능한 상호작용을 포함하고 있지 않다는 것을 잘 알 것이다. 예를 들어, 상태도는 축소판들을 스크롤하는 것 또는 축소판들의 선택을 포함하고 있지 않다. 게다가, 상태도가 왼손잡이 및 오른손잡이 GUI 모드에 대해 상이한 상태를 나타내고 있지만, 하나의 모드에 대해 도시된 상태들에 대응하는 것이 다른 모드에 대해서는 간단함을 위해 생략되어 있다. 상태도(2000)는 왼손잡이 모드 및 오른손잡이 모드 둘 다에서 GUI(1600)와의 다양한 상호작용을 나타내는 도 21 내지 도 28을 참조하여 기술될 것이다.
사용자가 GUI와 상호작용하고 있지 않을 때, 상태(2005)(GUI의 좌측에 축소판 격자를 갖는 오른손잡이 모드) 또는 상태(2050)(GUI의 우측에 축소판 격자를 갖는 왼손잡이 모드)에 있을 것이다. 상기 도 16에 도시된 바와 같이, 사용자는 축소판 격자를 GUI의 좌측으로부터 GUI의 우측으로 드래그함으로써 상태(2005)로부터 상태(2050)로 천이시킬 수 있다. 이와 달리, 사용자가 축소판 격자를 GUI의 우측으로부터 좌측으로 드래그할 때, GUI는 상태(2050)로부터 상태(2005)로 천이한다.
어떤 실시예들에서, 사용자는 축소판 격자와 영상 디스플레이 구역 사이의 경계[또는 접촉선(seam)]를 드래그함으로써 축소판 격자의 폭 및/또는 열의 수를 증가 및 감소시킬 수 있다. 상태도(2000)는 GUI가 오른손잡이 모드[상태(2005)]에 있을 때 이러한 입력 이벤트들을 기술하는 상태들을 나타내고 있지만, 기술 분야의 당업자라면 왼손잡이 모드[상태(2050)]에 있을 때 동등한 상태들에 반대 이동 방향이 적용될 것임을 잘 알 것이다. 어떤 실시예들에서, 응용 프로그램이 초기화될 때, 축소판 격자는 2개의 열의 기본 폭을 가진다.
상태(2005)에 있는 동안, 사용자가 축소판 격자와 영상 디스플레이 구역 사이의 경계를 선택하고 우측으로 이동시킬 때, GUI는 점진적으로 더 넓은 축소판 격자를 디스플레이하기 위해 상태(2010)로 천이한다. 어떤 실시예들에서, 사용자는 한 손가락을 터치스크린 상에의 경계 위에 위치시킴으로써 경계를 선택한다(즉, 따라서 접촉 구역은 축소판 격자의 일부 및 영상 디스플레이 구역의 일부 둘 다를 포함함). 사용자가 그의 손가락을 우측으로 계속 이동시키는 한, 축소판 격자는 계속하여 넓어진다. 사용자가 (예컨대, 터치스크린으로부터 그의 손가락을 제거하는 것에 의해) 경계를 놓으면, GUI는 상태(2005)로 되돌아간다.
사용자가 경계를 임계 거리만큼 이동시켰을 때, 응용 프로그램은 상태(2015)로 천이하여, 한 열의 축소판들을 추가한다. 이것은 축소판 격자 내의 축소판들을 재배열시킨다. 어떤 실시예들의 응용 프로그램은 (격자가 2개의 열을 가질 때) 처음 2개는 상단 행에 있고, 그 다음 2개는 제2 행에 있으며, 이하 마찬가지로 있는 축소판들을 정렬한다. 열의 수가 3개로 확장될 때, 제2 행으로부터의 첫번째 축소판은 상단 행으로 위로 이동하고, 제3 행으로부터의 축소판들 둘 다는 제2 행으로 이동하며, 이하 마찬가지이다.
도 21은 사용자가 GUI(1600)의 4개의 스테이지(2110 내지 2140)에 걸쳐 축소판 디스플레이 구역의 크기를 증가시키는 것을 나타내고 있다. 도시된 바와 같이, 제1 스테이지(2110)에서, 사용자는 축소판 디스플레이 구역(1605)과 영상 디스플레이 구역(1615) 사이의 경계 상에 손가락을 위치시킨다. 어떤 실시예들에서, 응용 프로그램은 경계선 또는 접촉선을 실제로 드로잉하지 않고 그 대신에 경계는 단순히 축소판 디스플레이 구역과 영상 디스플레이 구역 사이의 색상의 변화의 결과로서 보이는 것이다. 그렇지만, 명확함을 위해, 이 도면들은 이러한 경계를 나타내고 있다.
제2 및 제3 스테이지(2120 및 2130)에서, 사용자는 경계를 우측으로 드래그한다. 제4 스테이지(2140)에서, 경계는 축소판들이 제3 열 내로 재배열될 정도로 충분히 멀리 이동되었다. 도시된 바와 같이, 구름들의 축소판(2105)은 상단 행으로 위로 이동하고, 다른 축소판들도 역시 재배열된다. 이 도면은 [상태도(2000)가 나타내는 것처럼] 제3 열이 생성되기 전에 축소판 디스플레이 구역(1605)이 확장되는 것(그에 대응하여 영상 디스플레이 구역이 축소되는 것)을 나타내고 있다. 그렇지만, 어떤 실시예들은 경계를 단지 이산적 양만큼씩 이동시킨다 - 즉, 사용자의 손가락이 화면 상에서 임계 거리만큼 이동하면, 응용 프로그램은 축소판 디스플레이 구역의 폭을 2-열 폭으로부터 3-열 폭으로 자동으로 변경한다 -. 즉, 사용자가 그의 손가락을 경계로부터 멀어지는 쪽으로 이동시킬 때, GUI는 임계 이동에 도달할 때까지 정적인 채로 있고, 도달한 시점에서 경계가 고정된 양만큼 오른쪽으로 이동할 때 다른 열을 추가하기 위해 축소판 디스플레이 구역이 동적으로 재배열되며, 그에 의해 영상 디스플레이 구역의 크기를 감소시킨다.
상태도(2000)으로 돌아가서, 한 열의 축소판들을 추가한 후에, GUI는 터치 이동이 계속되고 축소판 격자가 최대 크기에 도달하지 않은 경우 다시 상태(2010)로 천이하거나, 최대 수의 열에 도달된 경우 상태(2020)로 천이한다. 최대 수의 열에 도달할 때, 응용 프로그램은 [상태(2020)에서] 격자 구역의 확장을 허용하는 것을 중단한다. 어떤 실시예들에서, 응용 프로그램은 단지 축소판 디스플레이 구역이 1개, 2개 또는 3개의 열의 축소판들을 가질 수 있게 해주고; 다른 실시예(예컨대, 보다 작은 디바이스 상의 응용 프로그램)는 단지 1개 또는 2개의 열만을 허용한다. 이 3개의 상태들 중 임의의 상태에서, 사용자가 (즉, 터치 입력을 제거함으로써) 경계를 놓으면(release), 응용 프로그램은 다시 상태(2005)로 천이한다.
사용자가 축소판 디스플레이 구역과 영상 디스플레이 구역 사이의 경계를 화면의 가장자리 쪽으로 드래그할 때 유사한 상태 변화가 일어난다. 다시 말하지만, 이 상태 변화들이 GUI가 오른손잡이 모드에 있을 때에 대해 도 20에 도시되어 있지만, 왼손잡이 모드에 있는(반대 방향으로의 이동을 갖는) GUI에도 똑같이 적용가능하다.
상태(2005)에 있는 동안, 사용자가 축소판 격자와 영상 디스플레이 구역 사이의 경계를 선택하고 좌측으로 이동시킬 때, GUI는 점진적으로 더 좁은 축소판 격자를 디스플레이하기 위해 상태(2010)로 천이한다. 어떤 실시예들에서, 사용자는 한 손가락을 터치스크린 상에의 경계 위에 위치시킴으로써 경계를 선택한다(즉, 따라서 접촉 구역은 축소판 격자의 일부 및 영상 디스플레이 구역의 일부 둘 다를 포함함). 사용자가 그의 손가락을 좌측으로 계속 이동시키는 한, 축소판 격자는 계속하여 좁아진다. 사용자가 (예컨대, 터치스크린으로부터 그의 손가락을 제거하는 것에 의해) 경계를 놓으면, GUI는 상태(2005)로 되돌아간다.
사용자가 경계를 임계 거리만큼 이동시켰을 때, 응용 프로그램은 한 열의 축소판들을 제거하기 위해 상태(2030)로 천이한다. 이것은 축소판 격자 내의 축소판들을 재배열시킨다. 어떤 실시예들의 응용 프로그램은 (격자가 2개의 열을 가질 때) 처음 2개는 상단 행에 있고, 그 다음 2개는 제2 행에 있으며, 이하 마찬가지로 있는 축소판들을 정렬한다. 열의 수가 1개로 감소될 때, 상단 행으로부터의 두번째 축소판은 제2 행으로 이동하고, 제2 행에 있는 첫번째 축소판은 제3 행으로 이동하며, 이하 마찬가지이다.
도 22는 사용자가 GUI(1600)의 4개의 스테이지(2210 내지 2240)에 걸쳐 축소판 디스플레이 구역의 크기를 감소시키는 것을 나타내고 있다. 도시된 바와 같이, 제1 스테이지(2210)에서, 사용자는 축소판 디스플레이 구역(1605)과 영상 디스플레이 구역(1615) 사이의 경계 상에 손가락을 위치시킨다. 어떤 실시예들에서, 응용 프로그램은 경계선 또는 접촉선을 실제로 드로잉하지 않고 그 대신에 경계는 단순히 축소판 디스플레이 구역과 영상 디스플레이 구역 사이의 색상의 변화의 결과로서 보이는 것이다. 그렇지만, 명확함을 위해, 이 도면들은 이러한 경계를 나타내고 있다.
제2 스테이지(2220)에서, 사용자는 경계를 좌측으로 드래그하기 시작하였다. 이 도면에서, 경계가 제2 열에 침입하기 시작하면, 응용 프로그램은 축소판들을 하나의 열로 재배열한다. 도시된 바와 같이, 카약의 축소판(2205)은 제2 행으로 아래로 이동하고, 다른 축소판들도 역시 재배열된다. 제3 스테이지(2230)에서, 사용자는 경계를 좌측으로 계속하여 드래그한다. 마지막으로, 제4 스테이지(2240)에서, 축소판 디스플레이 구역(1605)은 그의 최소폭에 도달하고, 축소를 계속할 수 없다. 이 도면[및 상태도(2000)]은 축소판 디스플레이 구역(1605)이 축소되는 것(그에 대응하여 영상 디스플레이 구역이 감소되는 것)을 계속적으로 나타내고 있다. 그렇지만, 앞서 기술한 축소판 디스플레이 구역의 증가에서와 같이, 어떤 실시예들은 경계를 단지 이산적 양만큼씩 이동시킨다 - 즉, 사용자의 손가락이 화면 상에서 임계 거리만큼 이동하면, 응용 프로그램은 축소판 디스플레이 구역의 폭을 2-열 폭으로부터 1-열 폭으로 자동으로 변경한다 -.
상태도(2000)으로 돌아가서, 한 열의 축소판들을 제거한 후에, GUI는 터치 이동이 계속되고 축소판 격자가 최대 크기에 도달하지 않은 경우 다시 상태(2025)로 천이하거나, 최대 수의 열에 도달된 경우 상태(2035)로 천이한다. 최대 수의 열에 도달될 때, 응용 프로그램은 [상태(2020)에서] 격자 구역의 확장을 허용하는 것을 중단한다. 어떤 실시예들에서, 응용 프로그램은 단지 축소판 디스플레이 구역이 1개, 2개 또는 3개의 열의 축소판들을 가질 수 있게 해주고; 다른 실시예(예컨대, 보다 작은 디바이스 상의 응용 프로그램)는 단지 1개 또는 2개의 열만을 허용한다. 이 3개의 상태들 중 임의의 상태에서, 사용자가 (즉, 터치 입력을 제거함으로써) 경계를 놓으면, 응용 프로그램은 다시 상태(2005)로 천이한다. 그에 부가하여, 확장 상태(2010)로부터, 사용자가 경계 상에서의 터치 입력의 이동 방향을 정반대로 하는 경우 GUI는 상태(2025)로 천이할 수 있다(그 반대도 마찬가지임).
축소판 디스플레이 구역의 열의 크기 및 수를 수정하는 것에 부가하여, 어떤 실시예들은 사용자가 축소판 디스플레이 구역을 GUI를 벗어나게 그리고 다시 GUI 상으로 슬라이딩시키는 것을 가능하게 해준다. 이것은, 어떤 실시예들에서, 스와이프 제스처 또는 GUI 아이템의 선택은 물론 다른 GUI 상호작용(예컨대, 핫키 또는 한 세트의 핫키들, 메뉴 옵션의 선택 등)을 통해 달성될 수 있다. 상태도(2000)는 왼손잡이 GUI(축소판 디스플레이 구역이 우측에 있음)와 관련하여 이 상호작용들을 개념적으로 나타낸 것이지만, 이 상호작용들이 오른손잡이 GUI(방향이 정반대로 되어 있음)에 똑같이 적용가능하다.
도시된 바와 같이, GUI가 상태(2050)(축소판 격자가 디스플레이되어 있는 왼손잡이 모드)에 있는 경우, 사용자가 격자 상에서 우측으로의 스와이프 제스처를 수행하거나 격자 버튼 UI 아이템을 선택할 때, GUI는 상태(2055)로 천이하여 디스플레이의 우측을 벗어나게 격자를 슬라이딩시킨다. 격자가 디스플레이를 벗어나 슬라이딩하면, GUI는 상태(2060)로 천이하여 축소판 격자를 갖지 않는 왼손잡이 모드에 있는 GUI를 디스플레이한다.
도 23은 4개의 스테이지(2310 내지 2340)에 걸쳐 오른손잡이 GUI 모드에 있는 동안 GUI(1600)로부터 축소판 디스플레이 구역(1605)을 제거하는 이러한 스와이프 제스처를 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(2310)에서, 사용자는 한 손가락으로 축소판 디스플레이 구역(1605) 상에서 터치스크린과 접촉하기 시작한다(그렇지만, 상이한 수의 접촉점을 갖는 다른 스와이프 제스처 또는 다른 제스처들 모두가 사용될 수 있음). 제2 스테이지(2320)는 사용자가 그의 손가락을 좌측으로 이동시켜, 축소판 디스플레이 구역을 그 방향으로 슬라이딩시키는 것을 나타내고 있다. 제3 스테이지(2330)에서, 축소판 디스플레이 구역(1605)이 GUI를 벗어나 좌측으로 계속하여 슬라이딩할 때 사용자는 스와이프 제스처를 해제하였다. 제4 스테이지(2340)는 축소판 디스플레이 구역이 더 이상 GUI에 보이지 않고 영상 디스플레이 구역(1615)이 확장된 것을 나타내고 있다. 다양한 사용자 인터페이스 도구의 위치에 기초하여, 사용자는 GUI가 여전히 오른손잡이 모드에 있다는 것을 쉽게 알 수 있다.
어떤 실시예들에서, 응용 프로그램은, 스와이프 제스처로서 자격을 갖추기 위해, 사용자의 손가락이 특정의 임계 거리 동안 터치스크린과 접촉한 채로 있을 것 및/또는 임계 속도로 이동할 것을 요구한다. 그렇지만, 어떤 실시예들에서, 입력이 스와이프 제스처로서 자격을 갖는지에 관한 이 판정은, 응용 프로그램 자체보다는, 영상 보기 응용 프로그램이 동작하고 있는 디바이스의 운영 체제에 의해 행해진다. 스와이프 제스처 및 위치는 운영 체제로부터 응용 프로그램으로 전달되고, 응용 프로그램은 이어서 그 스와이프 제스처를 명령어로 변환하여 축소판 격자를 GUI를 벗어나게 슬라이딩시킨다.
도 24는 4개의 스테이지(2410 내지 2440)에 걸쳐 왼손잡이 모드에 있는 동안 축소판 디스플레이 구역(1605)을 GUI(1600)로부터 제거하는 유사한 스와이프 제스처를 나타낸 것이다. 이 스테이지들은 도 23의 스테이지들과 비슷하다. 도시된 바와 같이, 제1 스테이지(2410)에서, 사용자는 한 손가락으로 축소판 디스플레이 구역(1605) 상에서 터치스크린과 접촉하기 시작한다(그렇지만, 상이한 수의 접촉점을 갖는 다른 스와이프 제스처 또는 다른 제스처들 모두가 사용될 수 있음). 제2 스테이지(2420)는 사용자가 그의 손가락을 우측으로 이동시켜, 축소판 디스플레이 구역을 그 방향으로 슬라이딩하기 시작하게 하는 것을 나타내고 있다. 제3 스테이지(2430)에서, 축소판 디스플레이 구역(1605)이 GUI를 벗어나 우측으로 계속하여 슬라이딩할 때 사용자는 스와이프 제스처를 해제하였다. 제4 스테이지(2440)는 축소판 디스플레이 구역이 더 이상 GUI에 보이지 않고 영상 디스플레이 구역(1615)이 확장된 것을 나타내고 있다. 다양한 사용자 인터페이스 도구의 위치에 기초하여, 사용자는 GUI가 여전히 왼손잡이 모드에 있다는 것을 쉽게 알 수 있다.
도 20에 도시된 바와 같이, 어떤 실시예들은 또한, 사용자가 축소판 디스플레이 구역을 GUI 상으로 그리고 그로부터 벗어나게 슬라이딩시키기 위해 격자 버튼을 선택할 때, 상태(2050)로부터 상태(2055)로 이어서 상태(2060)로 천이한다. 도 25는 4개의 스테이지(2510 내지 2540)에 걸쳐 GUI(1600)에서 이러한 GUI 아이템(2505)을 선택하는 것을 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(2510)에서, 사용자는 격자 버튼(2505)을 탭핑한다. 스와이프 제스처에서와 같이, 어떤 실시예들에서, 디바이스의 운영 체제는 화면 접촉 정보를 탭핑 제스처 및 위치로 변환하고, 이 정보를 영상 보기 응용 프로그램으로 전달한다. 제2 스테이지(2520) 및 제3 스테이지(2530)는 축소판 디스플레이 구역(1605)이 GUI를 벗어나 슬라이딩하는 것을 나타내고 있다. 그 결과 얻어진 스테이지(2540)에 나타낸 GUI는 도 23의 끝에서 얻어진 GUI와 동일하며, 영상 디스플레이 구역(1615)이 확장되어 있다.
GUI가 상태(2060)(축소판 격자를 갖지 않는 왼손잡이 모드)에 있는 경우, 사용자가 GUI의 우측 가장자리로부터 좌측으로의 스위프 제스처(leftward sweep gesture)를 수행하거나 격자 버튼 UI 아이템을 선택할 때, GUI는 상태(2065)로 천이하여 우측으로부터 다시 디스플레이 상으로 격자를 슬라이딩시킨다. 격자가 다시 디스플레이 상으로 슬라이딩하면, GUI는 다시 상태(2050)로 천이하여 축소판 격자가 존재하는 왼손잡이 모드에 있는 GUI를 디스플레이한다.
도 26은 4개의 스테이지(2610 내지 2640)에 걸쳐 오른손잡이 GUI 모드에 있는 동안 축소판 디스플레이 구역(1605)을 GUI(1600)로 복귀시키는 이러한 스와이프 제스처를 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(2610)에서, 사용자는 한 손가락으로 GUI의 좌측 가장자리 근방에서 터치스크린과 접촉하기 시작한다(그렇지만, 상이한 수의 접촉점을 갖는 다른 스와이프 제스처 또는 다른 제스처들 모두가 사용될 수 있음). 다른 실시예들은 축소판 디스플레이 구역을 다시 GUI 상으로 슬라이딩시키기 위해 가장자리에 가까운 것으로 간주되기 위해서는 터치 접촉이 얼마나 가깝게 있어야 하는지를 결정하기 위해 다른 임계값을 사용한다. 제2 스테이지(2620)는 사용자가 그의 손가락을 우측으로 이동시켜, 축소판 디스플레이 구역(1605)을 그 방향으로 다시 GUI 상으로 슬라이딩하기 시작하게 하는 것을 나타내고 있다. 제3 스테이지(2630)에서, 축소판 디스플레이 구역(1605)이 우측으로 GUI 상으로 계속하여 슬라이딩할 때 사용자는 스와이프 제스처를 해제하였다. 제4 스테이지(2640)는 축소판 디스플레이 구역(1605)이 오른손잡이 모드에 있는 GUI에 완전히 존재하는 것을 나타내고 있다.
도 27은 4개의 스테이지(2710 내지 2740)에 걸쳐 왼손잡이 GUI 모드에 있는 동안 축소판 디스플레이 구역(1605)을 GUI(1600)로 복귀시키는 유사한 스와이프 제스처를 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(2710)에서, 사용자는 한 손가락으로 GUI의 우측 가장자리 근방에서 터치스크린과 접촉하기 시작한다(그렇지만, 상이한 수의 접촉점을 갖는 다른 스와이프 제스처 또는 다른 제스처들 모두가 사용될 수 있음). 다른 실시예들은 축소판 디스플레이 구역을 다시 GUI 상으로 슬라이딩시키기 위해 가장자리에 가까운 것으로 간주되기 위해서는 터치 접촉이 얼마나 가깝게 있어야 하는지를 결정하기 위해 다른 임계값을 사용한다. 제2 스테이지(2720)는 사용자가 그의 손가락을 좌측으로 이동시켜, 축소판 디스플레이 구역(1605)을 그 방향으로 다시 GUI 상으로 슬라이딩하기 시작하게 하는 것을 나타내고 있다. 제3 스테이지(2730)에서, 축소판 디스플레이 구역(1605)이 좌측으로 GUI 상으로 계속하여 슬라이딩할 때 사용자는 스와이프 제스처를 해제하였다. 제4 스테이지(2340)는 축소판 디스플레이 구역(1605)이 왼손잡이 모드에 있는 GUI에 완전히 존재하는 것을 나타내고 있다.
도 20에 도시된 바와 같이, 어떤 실시예들은 또한, 사용자가 축소판 디스플레이 구역을 GUI 상으로 그리고 그로부터 벗어나게 슬라이딩시키기 위해 격자 버튼을 선택할 때, 상태(2060)로부터 상태(2065)로 이어서 상태(2050)로 천이한다. 도 28은 GUI가 오른손잡이 모드에 있는 동안 4개의 스테이지(2810 내지 2840)에 걸쳐 GUI(1600)에서 이러한 GUI 아이템(2505)을 선택하는 것을 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(2810)에서, 사용자는 격자 버튼(2505)을 탭핑한다. 스와이프 제스처에서와 같이, 어떤 실시예들에서, 디바이스의 운영 체제는 화면 접촉 정보를 탭핑 제스처 및 위치로 변환하고, 이 정보를 영상 보기 응용 프로그램으로 전달한다. 제2 스테이지(2820) 및 제3 스테이지(2830)는 축소판 디스플레이 구역(1605)이 다시 GUI 상으로 슬라이딩하는 것을 나타내고 있다. 그 결과 얻어진 스테이지(2840)에 나타낸 GUI는 도 26의 끝에서 얻어진 GUI와 동일하고, 축소판 디스플레이 구역(1605)이 디스플레이의 좌측에 나타나 있다.
이상의 설명 및 도면들은 왼손잡이 모드 및 오른손잡이 모드에 있는 GUI와 상호작용하는 다양한 측면들을 강조하고 있다. 그에 부가하여, 가로 모드(오른손잡이 모드이든 왼손잡이 모드이든 관계없음)와 세로 모드 간에 어떤 차이점이 존재한다. 한가지 이러한 차이점은 축소판 디스플레이 구역의 위치 및 스크롤을 포함한다.
도 29는 사용자가 GUI(1600)의 4개의 스테이지(2910 내지 2940)에 걸쳐 축소판 디스플레이 구역(1605)을 스크롤하는 것을 나타내고 있다. 제1 스테이지(2910)에서, 사용자는 축소판 디스플레이 구역(1605) 상에서 한 손가락으로 터치스크린에 접촉하기 시작하였다. 도시된 바와 같이, 제2 스테이지(2920)에서, 사용자는 터치스크린과의 접촉을 유지하면서 손가락을 위쪽으로 이동시킨다. 이것은 축소판 디스플레이 구역 내의 축소판들을 위쪽으로 슬라이딩시키는 효과가 있고, 따라서 상단 축소판들이 화면으로부터 벗어나 사라지고 부가의 축소판들이 하단에 나타난다. 스테이지(2930)에서, 사용자는 축소판들을 계속 스크롤하기 위해 이 동작을 계속한다. 제4 스테이지(2940)는 사용자가 드래그 동작을 해제했고, 축소판들이 스크롤하는 것을 중단한 것을 나타내고 있다. 어떤 실시예들에서, 드래그/스위프 제스처(drag/sweep gesture)의 속도에 따라, 사용자가 제스처를 해제한 후에 축소판들이 스크롤을 계속할 수 있다[즉, 관성 스크롤(momentum scrolling)]. 모든 컬렉션이 유한개의 영상을 포함할 것이기 때문에, 궁극적으로 축소판들은 끝에 도달하고 스크롤을 중단할 것이다. 게다가, 이 도면이 (위쪽으로의 터치 제스처를 통해) 스크롤 다운(scrol down)만을 나타내고 있지만, 사용자는 또한 축소판 디스플레이를 아래쪽으로 드래그함으로써 스크롤 업(scroll up)할 수 있다.
상기 도면들은 왼손잡이 및 오른손잡이 가로 모드 둘 다에서 GUI를 나타내고 있다. 한편, 도 30 내지 도 32는 세로 모드에 있는 어떤 실시예들의 GUI(3000)를 나타내고 있다. GUI(3000)는, 도 30에 도시된 바와 같이, 축소판 디스플레이 구역(3005), 영상 디스플레이 구역(3015), 제1 세트의 GUI 아이템들(3025), 제2 세트의 GUI 아이템들(3035), 제3 세트의 GUI 아이템들(3045), 뒤로 버튼(3050), 편집 버튼(3055), 및 설정 메뉴 활성화 아이템(3060)을 포함하고 있다. 이들은 도 16의 GUI(1600)를 참조하여 앞서 기술한 것과 동일한 아이템이다.
이 도면들에 도시된 바와 같이, 응용 프로그램은 가로 GUI(1600)의 오른손잡이 모드에서와 동일한 위치에 GUI 아이템들(3025, 3035, 및 3045 내지 3060)을 디스플레이한다[즉, 좌측 하단에 있는 편집 활성화 GUI 아이템(3025), 좌측 상단에 있는 뒤로 버튼(3050) 및 제2 세트의 GUI 아이템들(3035), 기타]. 세로 모드에 있을 때, 일부 응용 프로그램은, 축소판 디스플레이 구역(3005)이 어쨋든 GUI의 하단에 위치해 있기 때문에, 왼손잡이 모드로부터 오른손잡이 모드로 전환하는 메커니즘을 제공하지 않는다. 다른 실시예들은, 앞서 언급한 바와 같이, 한꺼번에 다섯 손가락의 탭핑(오른손과 비교하여 왼손에 대해 상대적 위치가 상이함)과 같은, 사용자가 어느 손잡이인지를 나타내는 동작에 응답할 수 있다. 앞서 기술한 바와 같이, 어떤 실시예들은 응용 프로그램에 대한 가장 최근에 사용된 가로 모드에 기초하여 세로 모드에서의 다양한 GUI 아이템들의 위치를 결정한다.
도 30은 4개의 스테이지(3010 내지 3040)에 걸쳐 사용자가 축소판 디스플레이 구역에서 컬렉션의 축소판들을 스크롤할 때의 GUI(3000)를 나타낸 것이다. 세로 모드에서는, 도시된 바와 같이, 응용 프로그램은 축소판 디스플레이 구역(3005)을 GUI의 하단에 위치시키지만, 다른 실시예들에서는, 축소판 디스플레이가 GUI의 상단에 있을 수 있다. 축소판 디스플레이 구역(3005)은 GUI의 폭에 걸쳐 있으며, 고정된 수(이 경우에, 5개)의 열의 축소판들을 가지고 있다. 이 도면에서, 축소판 디스플레이 구역은 2개의 축소판의 높이를 가진다.
제1 스테이지(3010)에서, 사용자는 한 손가락으로 축소판 디스플레이 구역에 접촉한다. 도시된 바와 같이, 제2 스테이지(3020)에서, 사용자는 축소판 디스플레이 구역 상에서 손가락을 위로 슬라이딩시키기 시작하였다. 이것은 축소판들이 축소판 디스플레이 구역(3005)을 가로질러 위쪽으로 슬라이딩하게 하며, 새로운 축소판들이 디스플레이 구역의 하단에 나타나기 시작한다. 제3 스테이지(3030)는 사용자가 그의 손가락을 위쪽으로 계속 슬라이딩시키고, 축소판들도 역시 이동한 것을 나타내고 있다. 제4 스테이지(3035)에서, 사용자는 터치스크린과의 접촉을 해제하였고, 따라서, 축소판들이 더 이상 이동하지 않는다(그렇지만, 어떤 실시예들에서, 사용자는, 제스처의 속도에 기초하여, 스와이프 제스처 이후에 스크롤을 계속하도록 응용 프로그램 또는 디바이스를 설정할 수 있다).
도 31은 세로 GUI(3000)의 4개의 스테이지(3110 내지 3140)에 걸쳐 축소판 디스플레이 구역(3005)의 크기를 수정하는 것을 나타내고 있다. 가로 모드에서와 같이, 사용자는, 축소판 디스플레이 구역의 크기를 수정하기 위해, 축소판 디스플레이 구역(3005)과 영상 디스플레이 구역(3015) 사이의 경계를 드래그할 수 있다. 그렇지만, 세로 모드에서는 이 경계가 스크롤의 방향에 수직으로 이동하는 반면(따라서 임계값을 넘어설 때 축소판들의 재배열이 일어나고 열이 부가되거나 감소됨), 세로 모드에서의 경계는 스크롤의 방향에 평행하게 이동한다. 그에 따라, 대부분은, 열이 부가되거나 감소될 때 이산적인 점프를 갖기 보다는, 축소판 디스플레이 구역이 축소판들을 재배열하는 일 없이 연속적인 방식으로 수정될 수 있다.
제1 스테이지(3110)는 대략 2개의 축소판의 높이를 가지는 축소판 디스플레이 구역을 갖는 GUI(3000)를 나타내고 있다. 제2 스테이지(3120)에서, 사용자는 축소판 디스플레이 구역(3005)과 영상 디스플레이 구역(3015) 사이의 경계 상에 손가락을 위치시키고, 경계를 아래쪽으로 드래그하기 시작한다. 이 경우에, 축소판들은 경계를 따라 이동한다(즉, 경계와 축소판들 간의 관계가 변하지 않음). 다른 실시예들에서, 축소판들은 경계에 대한 이러한 수정 동안 정적인 채로 있고, 경계는 축소판들 상에서 이동한다. 사용자가 경계를 위쪽으로 이동시켜 상단 행의 축소판들에 도달할 때, 어떤 이러한 실시예는 이어서, 축소판 디스플레이 구역의 상단에 간극이 나타나는 것을 방지하기 위해, 축소판들을 경계와 함께 위로 이동시키기 시작한다.
제3 스테이지(3130)는 사용자가 경계를 아래쪽으로 계속 드래그하여, 축소판들을 추가로 슬라이딩시키는 것을 나타내고 있다. 마지막 스테이지(3140)에서, 축소판 디스플레이 구역(3005)은 단지 하나의 행의 높이를 가진다. 어떤 실시예들에서, 세로 모드에 있는 축소판 디스플레이 구역이 단지 하나의 행의 축소판들로 감소될 때, 응용 프로그램은 축소판 디스플레이 구역의 크기가 감소되는 것을 자동으로 방지하고(그렇지만 사용자는 여전히 격자 버튼을 탭핑할 수 있거나 축소판 디스플레이 구역을 완전히 제거하기 위해 스와이프 제스처를 사용할 수 있음) 스크롤의 방향을 수직으로부터 수평으로 수정한다. 응용 프로그램은 축소판들을 현재 선택된 컬렉션에서 저장되어 있는 순서로 하나의 행으로 재배열하지만, 사용자가 스크롤하기 시작할 때까지는 디스플레이된 축소판들이 사용자에게 동일하게 보일 수 있다.
도 32는 GUI(3000)의 4개의 스테이지(3210 내지 3240)에 걸쳐, 크기가 한 행으로 감소되어 있을 때 축소판 디스플레이 구역을 수평 스크롤하는 것을 나타낸 것이다. 제1 스테이지(3210)는 도 31의 스테이지(3140)에서와 동일한 상태에 있는 GUI(3000)를 나타낸 것이며, 여기서 축소판 디스플레이 구역(3005)은 1개의 행의 높이를 가진다. 도시된 바와 같이, 사용자는 한 손가락으로 축소판 디스플레이 구역에 접촉하기 시작하였다. 사용자는 제2 스테이지(3220)에서 그의 손가락을 좌측으로 이동시키기 시작하고, 제3 스테이지(3230)에서 이 이동을 계속한다. 이 이동의 결과, 축소판들은 축소판 디스플레이 구역(3005)을 통해 좌측으로 스크롤하고, 일부 축소판들은 GUI로부터 벗어나 좌측으로 스크롤하고 새로운 축소판들이 우측으로부터 들어온다. 어떤 실시예들에서, 사용자가 컬렉션의 끝에 도달할 때 스크롤이 중단되는 반면, 다른 실시예들은 연속적인 스크롤 방식으로 축소판들을 랩 어라운드(wrap around)시킨다. 제4 스테이지(3240)는 사용자가 터치스크린과의 접촉을 해제했고, 축소판들이 이제 정지해 있는 것을 나타내고 있다.
도 33은 사용자가 어떤 실시예들의 휴대폰 및 미디어 플레이어 GUI(1700)의 축소판 디스플레이 구역에서 영상들을 스크롤하는 것을 나타낸 것이다. 제1 스테이지(3310)에서, 제1 축소판(3305)이 선택되고, 대응하는 영상(3315)이 영상 디스플레이 구역(1715)에 디스플레이되었다. 그렇지만, 사용자는 현재 영상 디스플레이 구역 상에서 좌측으로 스와이프 제스처를 수행하고 있으며, 컬렉션에서의 그 다음 영상을 노출시키기 시작하고 있다. 제2 스테이지(3320)는 이 스와이프 제스처의 결과를 나타내고 있으며, 영상(3325)이 이제 디스플레이되어 있고 대응하는 축소판(3335)이 선택되어 있다. 상기 도면들에는 도시되어 있지 않지만, 어떤 실시예들에서, 보다 큰 (예컨대, 태블릿) 디바이스 상의 응용 프로그램의 사용자도 역시 컬렉션에서의 영상들을 빠르게 스캔하기 위해 유사한 스와이프 제스처(우측 및 좌측 둘 다)를 사용할 수 있다. 한 세트의 선택된 영상들을 스와이프 제스처로 스캔하는 것에 대해서도 역시 이하에서 섹션 V에 기술할 것이다.
제2 내지 제4 스테이지(3320 내지 3340)는 사용자가 스와이프 제스처로 축소판 디스플레이 구역(1705)을 옆으로 스크롤하는 것을 나타내고 있다. 도시된 바와 같이, 사용자는 축소판 디스플레이 구역을 가로질러 손가락을 옆으로 스와이프하고, 축소판들은, 상기 도 32에서와 같이, 계속 슬라이딩한다.
상기 도면들이 터치스크린 제스처(멀티-터치 제스처를 포함함)를 사용하여 축소판 디스플레이 구역(세로 모드이든 가로 모드이든 관계없음)을 스크롤하는 것을 나타내고 있지만, 기술 분야의 당업자라면 도 29 내지 도 33의 기술된 특징들(은 물론 이 문서 전체에 걸쳐 보여준 기타 특징들)이 다른 방식으로 - 예컨대, 커서 컨트롤러 디바이스(버튼 클릭, 커서 컨트롤러의 이동, 커서 컨트롤러를 통한 터치 입력의 조합을 포함할 수 있음), 키보드 등을 사용하여 - 수행될 수 있다는 것을 잘 알 것이다.
C. 줌 도구
이 섹션의 서브섹션 A는 왼손잡이 모드 및 오른손잡이 모드에 대해 상이한 GUI를 갖는 응용 프로그램을 기술하고 있으며, 여기서, 모드를 전환할 때, 응용 프로그램은 특정의 GUI 요소들의 위치 및 순서를 수정하는 반면 다른 GUI 요소들은 동일한 위치에 남겨 두고 있다. 그에 부가하여, 어떤 실시예들은, GUI가 왼손잡이 모드에 있는지 오른손잡이 모드에 있는지에 따라, 특정의 GUI 도구들을 상이하게(예컨대, 상이한 배향으로) 활성화시킨다. 한가지 이러한 도구는 GUI의 어느 모드가 활성인지에 따라 상이한 배향으로 디스플레이되고 특정의 제스처들에 상이하게 응답하는 어떤 실시예들의 줌 도구이다.
도 34는 이러한 줌 도구를 호출하는 어떤 실시예들의 프로세스(3400)를 개념적으로 나타낸 것이다. 프로세스(3400)는 어떤 실시예들의 오른손잡이 및 왼손잡이 미디어 편집 및 보기 GUI 내에서 줌 도구를 호출하는 것을 나타내는 도 35 및 도 36을 참조하여 기술될 것이다. 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램은 응용 프로그램의 사용자 인터페이스를 통해 수신되는 특정의 사용자 입력(예컨대, 터치) 제스처에 응답하여 프로세스(3400)를 수행한다. 그렇지만, 어떤 실시예들(예컨대, 응용 프로그램의 어떤 휴대폰 및 미디어 플레이어 구현예들)는 이러한 줌 도구를 포함하고 있지 않다.
도시된 바와 같이, 프로세스는 (3405에서) 보기 모드에 있는 동안 영상 디스플레이 구역에 있는 영상 상에서 2개의 개별적인 터치 입력을 수신하는 것으로 시작한다. 어떤 실시예들에서, 영상 디스플레이 구역이 하나 이상의 영상들을 디스플레이하고 편집 도구 세트들(예컨대, 크로핑 도구, 노출 도구, 색상 도구, 브러시 도구, 또는 특수 효과 도구) 중 하나가 활성화되었을 때 응용 프로그램은 보기 모드에 있다. 어떤 실시예들은, 2개의 개별적인 터치 입력이 적어도 부분적으로 동시적일 때, 2개의 개별적인 터치 입력을 줌 도구를 호출하는 것으로서 인식한다. 즉, 2개의 개별적인 입력이 동시에 터치스크린에 접촉할 필요는 없다(즉, 사용자가 그의 엄지 손가락을 화면 상에 위치시킬 수 있고, 이어서, 엄지 손가락이 여전히 화면 상에 있는 한, 줌 도구를 호출하기 위해, 잠시 후에 그의 검지 손가락으로 화면에 접촉할 수 있다). 다른 실시예들은 제1 및 제2 터치 입력이 수신될 수 있는 기간에 대해 제약조건을 둔다(예컨대, 0.5 초, 1 초 등). 그에 부가하여, 어떤 실시예들은 임계 거리(예컨대, 3 인치 등의 절대 거리 또는 영상의 크기에 상대적인 거리) 내에서의 터치 입력에 응답해서만 줌 도구를 활성화시킨다.
게다가, 어떤 실시예들은 두 손가락 제스처와 2개의 개별적인 제스처를 구분한다. 멀티-터치 디바이스는 (예컨대, 특정의 스위프 제스처에 대해) 사용자가 터치스크린 상의 위치에 한 손가락을 위치시켰는지 다수의 손가락을 함께 위치시켰는지를 식별할 수 있다. 어떤 실시예들에서, 이 다양한 터치 제스처들이 디바이스 운영 체제에 의해 검출되고 응용 프로그램으로 송신된다. 응용 프로그램이 디스플레이된 영상 상의 상이한 위치들에서 운영 체제로부터 2개의 개별적인 제스처를 수신할 때, 응용 프로그램은 줌 도구를 호출한다.
2개의 개별적인 터치 입력을 수신한 것에 응답하여, 프로세스(3400)는 (3410에서) 줌 도구 디스플레이와 연관되어 있는 사운드 효과를 출력한다. 어떤 실시예들에서, 사운드 효과는 카메라 셔터 열림의 사운드를 모방한 것이다. 목적들 중에서도 특히, 사운드 효과는 줌 도구가 활성화되었다는 것을 사용자에게 알려주기 위한 것다. 그에 부가하여, 어떤 실시예들은 카메라 셔터 열림의 모습을 보여주는 애니메이션을 줌 도구에 의해 덮여 있는 구역 내에 디스플레이한다. 프로세스(3400)가 응용 프로그램이 줌 도구를 디스플레이하기 전에 사운드 효과를 출력하는 것을 나타내고 있지만, 기술 분야의 당업자라면 이것이 개념적인 프로세스이고 사운드 효과가 줌 도구를 디스플레이하는 것과 병행하여 출력될 수 있다는 것을 잘 알 것이다.
이 프로세스는 또한 (3415에서) 2개의 개별적인 터치 입력 사이의 중간점을 식별한다. 언급한 바와 같이, 어떤 실시예들에서, 응용 프로그램은 사용자로부터 수신된 터치 입력에 응답하여 운영 체제로부터 제스처 정보를 수신한다. 제스처 정보는 각각의 제스처의 중앙이 되는 위치(예컨대, 화면 픽셀 좌표)를 포함하고 있다. 어떤 실시예들의 응용 프로그램은 각각의 제스처의 중앙 좌표들을 연결하는 선의 중간점(예컨대, 평균 x 좌표 및 평균 y 좌표)을 식별한다.
이 프로세스는 이어서 (3420에서) GUI가 오른손잡이 모드에 있는지를 판정한다. 도 16을 참조하여 앞서 언급한 바와 같이, 영상 편집 응용 프로그램은 오른손잡이 GUI 및 왼손잡이 GUI를 제공하며, 사용자는 이들 사이에서 전환할 수 있다. 이 실시예들 중 어떤 실시예들에서, 영상 편집 응용 프로그램은 GUI가 오른손잡이 모드에 있는지 왼손잡이 모드에 있는지를 나타내는 파라미터를 저장한다. 사용자가 (예컨대, 축소판 디스플레이 구역을 이동시킴으로써) 2개의 모드 사이에서 전환할 때 응용 프로그램은 그 파라미터를 토글한다. 이 실시예들에서, 이 프로세스는, 이 저장된 파라미터를 검사함으로써, GUI가 오른손잡이 모드에 있는지를 판정한다. 다른 실시예들에서, 응용 프로그램은 응용 프로그램이 현재 왼손잡이 모드에 있는지 오른손잡이 모드에 있는지를 판정하기 위해 축소판 디스플레이 구역(또는 다른 GUI 아이템)의 위치를 사용한다.
GUI가 오른손잡이 모드에 있는 경우, 이 프로세스는 (3425에서) 식별된 중간점에 중심이 오도록 줌 도구를 디스플레이하고, 배율 정보는 줌 링(zoom ring)의 좌측에 디스플레이된다. 이어서, 프로세스는 종료한다. 어떤 실시예들에서, 줌 도구는 2개의 터치 입력 사이의 식별된 중간점에 중심이 오도록 타원(또는 원)으로서 나타나는 줌 링이다. 그렇지만, 다른 실시예들은 상이한 형상들(예컨대, 정사각형, 육각형 등)을 사용한다. 어떤 실시예들에서, 배율 정보는 GUI 컨트롤 내부에서 영상의 줌 레벨을 사용자에게 알려준다.
도 35는 GUI가 오른손잡이 모드에 있는 동안 4개의 스테이지(3505 내지 3520)에서 GUI(3500)를 통해 원형 줌 도구를 호출(invoking)하는 것 및 호출 해제(de-invoking)하는 것의 한 예를 나타낸 것이다. 도 35의 제1 및 제2 스테이지(3505 및 3510)는 줌 도구를 호출하는 것을 나타내는 반면, 제3 및 제4 스테이지(3515 및 3520)는 줌 도구를 호출 해제하는 것을 나타내고 있다.
도시된 바와 같이, GUI(3500)는 GUI(3500)의 좌측에 위치해 있는 축소판 디스플레이 구역(3530), 영상 디스플레이 구역(3545), 및 도구 모음(3540)을 포함하고 있다. 응용 프로그램은 영상 디스플레이 구역(3545) 내에 영상(3555)을 디스플레이한다. 도시된 바와 같이, 제1 스테이지(3505)에서, 축소판 디스플레이 구역(3530)은 GUI(3500)의 좌측에 위치해 있고, 이는 GUI(3500)가 오른손잡이 모드에 있다는 것을 나타낸다. 도구 모음(3540)에 있는 편집 도구 활성화 아이템들 중 어느 것도 현재 선택되어 있지 않기 때문에, 응용 프로그램은 보기 모드에 있다.
제2 스테이지(3510)는 사용자가 영상(3555)에 대해 줌 도구를 호출한 후의 GUI(3500)를 나타내고 있다. 앞서 언급한 바와 같이, 영상 상에서 2개의 개별적인 터치 입력을 제공함으로써 줌 도구가 호출될 수 있다. 도시된 바와 같이, 사용자는 골프 공을 디스플레이하는 위치 근방에 있는 영상(3555) 상의 개별적인 위치에서 두 손가락을 탭핑함으로써 줌 도구를 호출한다.
2번의 터치 입력의 결과로서, 2개의 개별적인 터치 입력 사이의 중간점에[즉, 이제 확대된 것으로 보이는 골프 공을 포함하는 영상(3555)에서의 위치 부근에] 중심이 오도록 줌 링(3525)이 영상(3555) 상에 오버레이된다. 그에 부가하여, 축소판 디스플레이 구역(3530)의 위치에 의해 나타낸 바와 같이 GUI가 오른손잡이 모드에 있기 때문에, 배율 정보(3535)가 줌 링(3525)의 좌측에 디스플레이된다. 이 배율 정보는 줌 링(3525) 내부의 현재의 줌 레벨이 2x라는 것을 나타내고 있다. 줌 링(3525)의 좌측에 배율 정보를 디스플레이하는 것은, 오른손이 줌 도구 상에 있는 동안, 이 정보가 사용자에게 쉽게 보이게 해준다. 이하에서 설명할 것인 바와 같이, 사용자는 배율 레벨을 변경하기 위해 회전 제스처를 사용할 수 있다.
다시 도 34를 참조하면, 프로세스(3400)가 동작(3420)에서 GUI가 오른손잡이 모드에 있지 않은 것으로(따라서 GUI가 왼손잡이 모드에 있는 것으로) 판정할 때, 이 프로세스는 (3430에서) 식별된 중간점에 중심이 오도록 줌 도구를 디스플레이하고, 배율 정보는 줌 링의 우측에 디스플레이된다. 이어서, 프로세스는 종료한다. 어떤 실시예들에서, 줌 도구는 왼손잡이 모드에 있든 오른손잡이 모드에 있든 간에 동일한 형상을 가지는 줌 링(예컨대, 원)이다.
도 36은 2개의 스테이지(3605 및 3610)에서 GUI가 왼손잡이 모드에 있을 때 GUI(3500)를 통해 원형 줌 도구를 호출하는 한 예를 나타낸 것이다. 도시된 바와 같이, 제1 스테이지(3605)는, 도 36에서의 GUI(3500)가 왼손잡이 모드에 있고 축소판 디스플레이 구역(3530)이 GUI(3500)의 우측에 위치해 있는 것을 제외하고는, 도 35의 제1 스테이지(3505)와 동일하다.
제2 스테이지(3605)는 사용자가 영상(3555)에 대해 줌 도구를 호출한 후의 GUI(3500)를 나타내고 있다. 앞서 언급한 바와 같이, 영상 상에서 2개의 개별적인 터치 입력을 제공함으로써 줌 도구가 호출될 수 있다. 도시된 바와 같이, 사용자는 골프 공을 디스플레이하는 위치 근방에 있는 영상(3555) 상의 개별적인 위치에서 두 손가락을 탭핑함으로써 줌 도구를 호출한다.
영상(3555) 상에서의 2번의 터치 입력의 결과로서, 2개의 개별적인 터치 입력 사이의 중간점에[즉, 이제 확대된 것으로 보이는 골프 공을 포함하는 영상(3555)에서의 위치 부근에] 중심이 오도록 줌 링(3525)이 영상(3555) 상에 오버레이된다. 그에 부가하여, 축소판 디스플레이 구역(3530)의 위치에 의해 나타낸 바와 같이 GUI가 왼손잡이 모드에 있기 때문에, 배율 정보(3535)가 줌 링(3525)의 우측에 디스플레이된다. 이 배율 정보는 줌 링(3525) 내부의 현재의 줌 레벨이 2x라는 것을 나타내고 있다. 줌 링(3525)의 우측에 배율 정보를 디스플레이하는 것은, 왼손이 줌 도구 상에 있는 동안, 이 정보가 사용자에게 쉽게 보이게 해준다. 이하에서 설명할 것인 바와 같이, 사용자는 배율 레벨을 변경하기 위해 회전 제스처를 사용할 수 있다.
줌 도구가 호출되고 영상 상에 디스플레이되어(즉, 영상 상에 오버레이되어) 있는 경우, 영상 편집 응용 프로그램은 또한 사용자가 줌 도구를 선택 해제 또는 호출 해제할 수 있게 해준다. 응용 프로그램의 다른 실시예들은 사용자가 줌 도구를 선택 해제할 수 있는 상이한 방식을 제공한다. 예를 들어, 어떤 실시예들의 응용 프로그램은, 터치 입력이 영상 상에서 그렇지만 줌 도구 밖에서 수신될 때, 줌 도구를 제거한다.
다시 도 35를 참조하면, 제3 및 제4 스테이지(3515 및 3520)는 GUI(3500)를 통해 줌 도구를 선택 해제하는 것의 한 예를 나타내고 있다. 제3 스테이지(3515)에서의 GUI는 제2 스테이지(3510)와 동일하고, 줌 링(3525)은 여전히 영상(3555) 상에 오버레이되어 있고 골프 공 및 주변 잔디가 확대되어 있다. 제4 스테이지(3520)는 사용자가 줌 도구를 선택 해제한 후의 GUI(3500)를 나타내고 있다. 언급한 바와 같이, 사용자는 줌 도구 밖에서 영상 상에서의 터치 입력을 제공함으로써 줌 도구를 선택 해제할 수 있다. 도시된 바와 같이, 사용자는 줌 도구(3525) 밖에서 영상(3555) 상의 위치에서 손가락을 탭핑함으로써 줌 도구(3525)를 선택 해제하였다. 줌 링 밖에서의 싱글 터치 입력의 결과로서, 응용 프로그램은 GUI(3500)로부터 줌 링(3525)을 제거한다. 어떤 실시예들에서, 응용 프로그램은 또한, 줌 도구가 호출 해제될 때, 사운드 효과(예컨대, 카메라 셔터 닫힘의 사운드)를 디스플레이한다. 어떤 실시예들은 또한, 줌 도구가 제거되고 있을 때, 줌 도구 내에서 카메라 셔터 닫힘의 대응하는 애니메이션을 디스플레이한다.
어떤 실시예들의 줌 도구를 단순히 호출하고 제거하는 것에 부가하여, 사용자는 상이한 섹션들에서 줌인하기 위해, 줌 도구 내에 보여지는 영역의 배율 레벨을 수정하기 위해 그리고 다른 동작들을 수행하기 위해 줌 도구를 영상 내의 상이한 위치들로 이동시킬 수 있다. 이제부터 도 37을 참조하여 이 동작들에 대해 기술할 것이다.
도 37은 어떤 실시예들의 GUI 내에 줌 도구의 다양한 동작들을 보여주는 상태도(3700)를 개념적으로 나타낸 것이다. 기술 분야의 당업자라면 상태도(3700)가 영상 보기 GUI의 모든 상태 또는 심지어 줌 도구의 모든 상태를 포함하지는 않고 그 대신에 영상 보기 GUI 내에서의 줌 도구 동작들의 서브셋만을 포함하고 있다는 것을 잘 알 것이다.
상태도(3700)는 도 38, 도 39, 도 41, 도 42, 및 도 40에 예시되어 있는 UI 예들을 참조하여 기술될 것이다. 구체적으로는, 도 38 및 도 41은 줌 도구의 확대(즉, 줌인) 동작에 관련되어 있는 다수의 스테이지에서 어떤 실시예들의 영상 보기 및 편집 응용 프로그램의 GUI를 나타내고 있다. 도 39 및 도 42는 줌 도구의 축소(de-magnifying)(즉, 줌아웃) 동작에 관련되어 있는 다수의 스테이지에서 어떤 실시예들의 영상 보기 및 편집 응용 프로그램의 GUI를 나타내고 있다. 도 40은 줌 도구의 위치 변경(relocation)(즉, 이동) 동작에 관련되어 있는 다수의 스테이지에서 어떤 실시예들의 영상 보기 및 편집 응용 프로그램의 GUI를 나타내고 있다.
도 37에 도시된 바와 같이, GUI는 2개의 초기 상태(3705 및 3710)를 가지고 있다. 초기 상태(3705)에서, GUI는 오른손잡이 모드에서 축소판 격자(즉, 축소판 디스플레이 구역) 및 영상 디스플레이 구역에 디스플레이되어 있는 영상을 디스플레이한다. 상태(3710)는, GUI가 오른손잡이 모드 대신에 왼손잡이 모드에 있고 따라서 축소판 격자가 GUI의 우측에 있는 것을 제외하고는, 상태(3705)와 동일하다. 오른손잡이 모드에 있는 줌 도구의 다양한 동작이 먼저 도 38, 도 39 및 도 40을 참조하여 기술될 것이다.
줌 도구가 영상 상에서의 2개의 개별적인 터치 입력을 수신할 때, 줌 도구는 초기 상태(3705)로부터 GUI가 오른손잡이 모드에서 영상 상에 줌 링을 디스플레이하는 상태(3715)로 천이한다. 앞서 기술한 바와 같이, 어떤 실시예들에서, GUI는 2개의 상이한 버전의 줌 링, 즉 오른손잡이 모드에 대한 줌 링 및 왼손잡이 모드에 대한 줌 링을 제공한다. 어떤 실시예들에서, 오른손잡이 모드에서의 줌 링은 배율 정보가 줌 링의 좌측에 디스플레이된다. 이것은 사용자가 그의 오른손이 줌 링 상에 있는 동안 배율 정보를 볼 수 있게 해준다. 오른손잡이 모드에서 줌 링을 호출하고 디스플레이하는 동작들은 도 35를 참조하여 이상에서 상세히 기술되어 있다.
줌 링에 영향을 미치는 어떤 입력도 제공되지 않는 한, 줌 도구는 상태(3715)에 머물러 있다. 그렇지만, 시계 방향 회전 입력이 수신될 때, GUI는 줌 도구 내의 영상의 구역의 확대를 증가시키기 위해 상태(3725)로 천이한다. 어떤 실시예들에서, 사용자는 줌 링 상에 두 손가락을 놓고 두 손가락을 시계 방향으로 회전시킴으로써 시계 방향 회전 입력을 제공할 수 있다. 어떤 실시예들은 입력들의 위치를 추적하고 2개의 위치를 연결하는 선의 각도(예컨대, 수평으로부터의 각도)를 측정함으로써 이러한 입력을 식별한다. 이 각도가 시계 방향으로 변할 때, 응용 프로그램은 오른손잡이 줌 도구의 배율을 증가시킨다. 어떤 실시예들에서, 2개의 터치 입력이 줌 도구의 바로 위에 위치해 있을 필요가 없지만, 그렇게 하는 것은 종종 사용자가 줌인 및 줌아웃 움직임을 시각화하는 데 도움을 줄 것이다. 줌 링 내부에 있는 영상의 구역의 배율을 증가시킨 후에, 사용자가 그의 손가락을 시계 방향으로 계속하여 회전시키지 않는 한, GUI는 상태(3715)로 복귀한다.
도 38은 4개의 상이한 스테이지(3805 내지 3820)에서 GUI(3500)를 통한 줌 도구의 확대 동작을 나타낸 것이다. 제1 스테이지(3805)는 축소판 디스플레이 구역(3530)은 GUI(3500)의 좌측에 위치해 있고 영상(3555)이 보기 모드에서 영상 디스플레이 구역(3545)에 디스플레이되는 도 35의 제1 스테이지(3505)와 동일하다.
제2 스테이지(3810)는 사용자가 영상(3555) 상에서 2개의 개별적인 터치 입력을 제공함으로써 줌 도구를 호출한 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는 영상(3555) 상에서 골프 공의 위치 부근에서 두 손가락을 탭핑하였다. 2개의 개별적인 터치 입력의 결과로서, 응용 프로그램은 2개의 개별적인 터치 입력 사이의 중간점에 중심이 오도록 줌 링(3525)을 영상(3555) 상에 오버레이한다. 그에 부가하여, GUI가 오른손잡이 모드에 있기 때문에, 응용 프로그램은 배율 정보(3535)를 줌 링(3525)의 좌측에 디스플레이한다. 어떤 실시예들에서, 기본 배율은 2x 줌이고, 배율 변수는 1x와 3x 사이에 있다.
제3 스테이지(3815)는 사용자가 줌 도구를 사용하여 영상의 배율을 증가시키기 시작한 후의 GUI(3500)를 나타내고 있다. 언급한 바와 같이, 사용자는 시계 방향 회전 입력을 제공함으로써 줌 도구 내부의 영상의 구역의 배율을 증가시킬 수 있다. 도시된 바와 같이, 사용자는, 화살표(3825)로 나타낸 바와 같이, 두 손가락을 시계 방향으로 회전시키기 시작하였다. 시계 방향 회전 입력의 결과로서, 줌 링(3525) 내부에 있는 영상의 구역이 추가로 확대된 것으로 디스플레이되어 있다.
제4 스테이지(3820)는 사용자가 줌 도구를 사용하여 영상의 배율을 추가로 증가시킨 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는, 화살표(3830)로 나타낸 바와 같이, 두 손가락을 시계 방향으로 계속하여 회전시켰다. 회전 이동의 결과로서, 제4 스테이지(3820)에서의 줌 링(3525) 내부의 영상의 구역은 제3 스테이지(3815)에서의 영상보다 더 확대되어 있다. 이 스테이지에서, 줌 도구는 최대 3x 배율 레벨에 있다.
어떤 실시예들에서, 줌 도구는 영상의 일부분을 그의 전체 크기 디스플레이를 넘어서 확대하지 않을 것이다. 보다 작은 화면의 디바이스 상의 영상은 종종 디바이스의 디스플레이 내에 들어가게 하기 위해 크기가 감소되어 있다. 예를 들어, 1920x1080 영상이 640x480 디스플레이 화면 상에 전체 크기로 디스플레이되지 않을 수 있다. 줌 도구를 사용하는 것은 사용자가 영상의 일부분을 그의 전체 크기에 더 가깝게 볼 수 있게 해준다. 그렇지만, 영상이 이미 그의 전체 크기에 있을 때(예컨대, 1920x1080 디스플레이 화면 상의 640x480 영상), 어떤 실시예들은 이제 사용자가 줌 도구를 호출할 수 있게 해주지 않을 것인데, 그 이유는 이것이 줌잉된 구역(zoomed area) 내에 픽셀화(pixelation)를 야기할 것이기 때문이다.
다시 도 37을 참조하면, 상태(3715)에 있는 동안 응용 프로그램이 반시계 방향 회전 입력을 수신할 때, GUI는 줌 도구 내의 영상의 구역의 확대를 감소시키기 위해 상태(3735)로 천이한다. 어떤 실시예들에서, 사용자는 줌 링 상에 두 손가락을 놓고 두 손가락을 반시계 방향으로 회전시킴으로써 반시계 방향 회전 입력을 제공할 수 있다. 시계 방향 회전에서와 같이, 어떤 실시예들은 2개의 입력들의 위치를 추적하고 그 위치들을 연결하는 선의 각도를 측정함으로써 이러한 입력을 식별한다. 줌 링 내부에 있는 영상의 구역의 배율을 감소시킨 후에, 사용자가 그의 손가락을 계속하여 회전시키지 않는 한, GUI는 상태(3715)로 복귀한다.
도 39는 4개의 상이한 스테이지(3905 내지 3920)에서 GUI(3500)를 통한 줌 도구의 축소 동작을 나타낸 것이다. 제1 스테이지(3905)에서의 GUI(3500)는 도 38의 제4 스테이지(3820)에서의 GUI와 동일하다. 도시된 바와 같이, GUI(3500)는 3x 배율에 있는 줌 링(3525)을 포함하고 있고, 줌 링 내부의 영상의 구역은 확대되어 있다.
제2 스테이지(3910)는 사용자가 줌 도구를 사용하여 영상의 배율을 감소시키기 시작한 후의 GUI(3500)를 나타내고 있다. 언급한 바와 같이, 사용자는 반시계 방향 회전 입력을 제공함으로써 줌 링 내부의 영상의 구역의 배율을 감소시킬 수 있다. 도시된 바와 같이, 사용자는, 화살표(3925)로 나타낸 바와 같이, 두 손가락을 반시계 방향으로 회전시키기 시작하였다. 반시계 방향 회전 입력의 결과로서, 응용 프로그램은 줌 링(3525) 내부에 있는 영상의 구역의 배율을 감소시켰다.
제3 스테이지(3915)는 사용자가 줌 도구를 사용하여 영상의 배율을 추가로 감소시킨 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는, 화살표(3930)로 나타낸 바와 같이, 두 손가락을 반시계 방향으로 계속하여 회전시켰다. 회전 이동의 결과로서, 제3 스테이지(3915)에서의 줌 링(3525) 내부의 영상의 구역은 제2 스테이지(3910)에서의 영상보다 덜 확대되어 있다. 제4 스테이지(3920)는 사용자가 두 손가락을 줌 링(3525)으로부터 들어 올린 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 줌 링(3525) 내부의 영상의 구역은 사용자가 손가락을 들어 올린 후의 제3 스테이지(3915)에서의 영상의 구역과 동일한 채로 있다.
줌 도구의 배율 레벨을 변경하는 것에 부가하여, 어떤 실시예들은 사용자가 도구를 영상의 여기저기로 이동시킬 수 있게 해주며, 그에 의해 영상 내의 상이한 구역들에 초점을 맞춘다. 다시 도 37을 참조하면, 줌 도구가 링 이동 활성화 이벤트를 수신할 때, 줌 도구는 링 이동 상태(3745)로 천이한다. 어떤 실시예들에서, 링 이동 활성화 이벤트는 사용자가 줌 링 상에서 손가락을 길게 누르는 것(즉, 싱글 터치)을 포함한다. 링 이동 상태(3745) 동안, 줌 링은 사용자의 입력의 이동을 따라간다. 즉, 줌 링은 사용자가 손가락을 어디로 이동시키든 그곳으로 이동한다. 줌 링 이동 비활성화 이벤트를 수신할 때까지 줌 도구는 이 상태에 머물러 있다. 어떤 실시예들에서, 사용자는 손가락을 줌 링으로부터 들어올림으로써 줌 링 이동 동작을 비활성화시킬 수 있다. 줌 링 이동 비활성화 이벤트를 수신할 시에, 줌 도구는 상태(3715)로 되돌아간다.
도 40은 4개의 상이한 스테이지(4005, 4010, 4015, 및 4020)에서 GUI(3500)를 통한 줌 도구의 이동 동작을 나타낸 것이다. 제1 스테이지(4005)는 도 35의 제1 스테이지(3505)와 동일하다. 도시된 바와 같이, GUI(3500)는 GUI(3500)의 좌측에 위치해 있는 축소판 디스플레이 구역(3530), 영상 디스플레이 구역(3545), 및 메뉴 모음(3540)을 포함하고 있다. 영상(3555)은 보기 모드에서 영상 디스플레이 구역(3545)에 디스플레이된다. 그에 부가하여, 도 40은 또한, 축소판 디스플레이 구역(3530)이 GUI(3500)의 좌측에 위치해 있는 것으로 나타낸 바와 같이, GUI(3500)가 오른손잡이 모드에 있는 것을 보여주고 있다.
제2 스테이지(4010)는 사용자가 줌 도구를 호출한 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는 영상(3555) 상에서 2개의 개별적인 터치 입력을 제공함으로써 줌 도구를 호출하였다. 2개의 개별적인 터치 입력의 결과로서, 응용 프로그램은 2개의 개별적인 터치 사이의 중간점에 중심이 오도록 줌 링(3525)을 영상(3555) 상에 오버레이한다. 그에 부가하여, [축소판 디스플레이 구역(3530)의 위치에 의해 나타낸 바와 같이] GUI(3500)가 오른손잡이 모드에 있기 때문에, GUI는 배율 정보(3535)를 줌 링(3525)의 좌측에 디스플레이한다.
제3 스테이지(4015)는 사용자가 터치 제스처로 줌 링(3525)을 이동시키기 시작한 후의 GUI(3500)를 나타내고 있다. 어떤 실시예들에서, 사용자는 줌 링(3525) 상에 한 손가락을 위치시키고 손가락을 영상 상의 다른 위치로 드래그함으로써 줌 링을 이동시킬 수 있다. 도시된 바와 같이, 사용자는, 화살표(4025)로 나타낸 바와 같이, 손가락을 영상(3555)의 우측 상부 코너 쪽으로 드래그하기 시작하였다. 드래그 이동의 결과로서, 줌 링(3525)은 영상(3555)의 우측 상부 코너 쪽으로 이동한다. 제4 스테이지(3915)는 사용자가 줌 링(3525)을 영상 상의 다른 위치로 이동시킨 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는, 화살표(4030)로 나타낸 바와 같이, 손가락을 영상(3555)의 상단 쪽으로 드래그하였다. 드래그 이동의 결과로서, 줌 링(3525)은 이제 영상(3555)의 상단 쪽으로 이동한다.
어떤 실시예들에서, 줌 도구 비활성화 이벤트에 의해 줌 도구가 비활성화될 수 있다. 예를 들어, 줌 링 외부에서의 단일 입력이 수신될 때 줌 도구가 비활성화될 수 있다. 다시 도 37을 참조하면, 상태(3715)에 있는 동안 줌 도구가 줌 링 외부에서의 입력(예컨대, 줌 링 외부에서의 싱글 터치)을 수신할 때, 줌 도구는 다시 초기 상태(3705)로 천이한다. 어떤 실시예들의 줌 링의 비활성화 동작은 도 35의 스테이지(3515 및 3520)를 참조하여 앞서 상세히 기술되어 있다.
앞서 상세히 기술한 바와 같이, 사용자는 축소판 디스플레이 구역(즉, 축소판 격자)을 GUI의 우측으로 이동시킴으로써 영상 보기 및 편집 GUI를 오른손잡이 모드로부터 왼손잡이 모드로 토글할 수 있다. 따라서, 초기 상태(3705)에 있는 동안, 사용자가 축소판 격자를 디스플레이의 우측으로 이동시킬 때 줌 도구는 다른 초기 상태(3710)로 천이한다(사용자가 축소판 격자를 다시 좌측으로 이동시키는 경우, 반대로 된다). 초기 상태(3710)로 시작하는 줌 도구의 다양한 동작들에 대해 이제부터 도 41 및 도 42를 참조하여 기술할 것이다. 이 동작들은, 확대 동작 및 축소 동작이 정반대 방향으로의 회전에 의해 야기되는 것을 제외하고는, 오른손잡이 동작과 유사하다.
줌 도구가 영상 상에서의 2개의 개별적인 터치 입력을 수신할 때, 줌 도구는 초기 상태(3710)로부터 GUI가 왼손잡이 모드에서 영상 상에 줌 링을 디스플레이하는 상태(3720)로 천이한다. 앞서 기술한 바와 같이, 어떤 실시예들에서, GUI는 2개의 상이한 버전의 줌 링, 즉 오른손잡이 모드에 대한 줌 링 및 왼손잡이 모드에 대한 줌 링을 제공한다. 어떤 실시예들에서, 왼손잡이 모드에서의 줌 링은 배율 정보가 줌 링의 우측에 디스플레이된다. 이것은 사용자가 그의 왼손이 줌 링 상에 있는 동안 배율 정보를 볼 수 있게 해준다. 왼손잡이 모드에서 줌 링을 호출하고 디스플레이하는 동작들은 도 36을 참조하여 이상에서 상세히 기술되어 있다.
줌 링에 영향을 미치는 어떤 입력도 제공되지 않는 한, 줌 도구는 상태(3720)에 머물러 있다. 그렇지만, 반시계 방향 회전 입력이 수신될 때, GUI는 줌 도구 내의 영상의 구역의 확대를 증가시키기 위해 상태(3730)로 천이한다. 어떤 실시예들에서, 사용자는 줌 링 상에 두 손가락을 놓고 두 손가락을 반시계 방향으로 회전시킴으로써 반시계 방향 회전 입력을 제공할 수 있다. 어떤 실시예들은 입력들의 위치를 추적하고 2개의 위치를 연결하는 선의 각도(예컨대, 수평으로부터의 각도)를 측정함으로써 이러한 입력을 식별한다. 이 각도가 반시계 방향으로 변할 때, 응용 프로그램은 왼손잡이 줌 도구의 배율을 증가시킨다. 어떤 실시예들에서, 2개의 터치 입력이 줌 도구의 바로 위에 위치해 있을 필요가 없지만, 그렇게 하는 것은 종종 사용자가 줌인 및 줌아웃 움직임을 시각화하는 데 도움을 줄 것이다. 줌 링 내부에 있는 영상의 구역의 배율을 증가시킨 후에, 사용자가 그의 손가락을 반시계 방향으로 계속하여 회전시키지 않는 한, GUI는 상태(3720)로 복귀한다.
도 41은 4개의 상이한 스테이지(4105 내지 4120)에서 GUI(3500)를 통한 줌 도구의 확대 동작을 나타낸 것이다. 제1 스테이지(4105)는 축소판 디스플레이 구역(3530)은 GUI(3500)의 우측에 위치해 있고 영상(3555)이 보기 모드에서 영상 디스플레이 구역(3545)에 디스플레이되는 도 36의 제1 스테이지(3605)와 동일하다.
제2 스테이지(4110)는 사용자가 영상(3555) 상에서 2개의 개별적인 터치 입력을 제공함으로써 줌 도구를 호출한 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는 영상(3555) 상에서 골프 공의 위치 부근에서 두 손가락을 탭핑하였다. 2개의 개별적인 터치 입력의 결과로서, 응용 프로그램은 2개의 개별적인 터치 입력 사이의 중간점에 중심이 오도록 줌 링(3525)을 영상(3555) 상에 오버레이한다. 그에 부가하여, GUI가 왼손잡이 모드에 있기 때문에, 응용 프로그램은 배율 정보(3535)를 줌 링(3525)의 좌측에 디스플레이한다. 어떤 실시예들에서, 기본 배율은 2x 줌이고, 배율 변수는 1x와 3x 사이에 있다.
제3 스테이지(4115)는 사용자가 줌 도구를 사용하여 영상의 배율을 증가시키기 시작한 후의 GUI(3500)를 나타내고 있다. 언급한 바와 같이, 사용자는 반시계 방향 회전 입력을 제공함으로써 줌 도구 내부의 영상의 구역의 배율을 증가시킬 수 있다. 도시된 바와 같이, 사용자는, 화살표(4125)로 나타낸 바와 같이, 두 손가락을 반시계 방향으로 회전시키기 시작하였다. 반시계 방향 회전 입력의 결과로서, 줌 링(3525) 내부에 있는 영상의 구역이 추가로 확대된 것으로 디스플레이되어 있다.
제4 스테이지(4120)는 사용자가 줌 도구를 사용하여 영상의 배율을 추가로 증가시킨 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는, 화살표(4130)로 나타낸 바와 같이, 두 손가락을 반시계 방향으로 계속하여 회전시켰다. 회전 이동의 결과로서, 제4 스테이지(4120)에서의 줌 링(3525) 내부의 영상의 구역은 제3 스테이지(3815)에서의 영상보다 더 확대되어 있다. 이 스테이지에서, 줌 도구는 최대 3x 배율 레벨에 있다.
다시 도 37을 참조하면, 상태(3720)에 있는 동안 응용 프로그램이 시계 방향 회전 입력을 수신할 때, GUI는 줌 도구 내의 영상의 구역의 확대를 감소시키기 위해 상태(3740)로 천이한다. 어떤 실시예들에서, 사용자는 줌 링 상에 두 손가락을 놓고 두 손가락을 시계 방향으로 회전시킴으로써 시계 방향 회전 입력을 제공할 수 있다. 반시계 방향 회전에서와 같이, 어떤 실시예들은 2개의 입력들의 위치를 추적하고 그 위치들을 연결하는 선의 각도를 측정함으로써 이러한 입력을 식별한다. 줌 링 내부에 있는 영상의 구역의 배율을 감소시킨 후에, 사용자가 그의 손가락을 계속하여 회전시키지 않는 한, GUI는 상태(3720)로 복귀한다.
도 42는 4개의 상이한 스테이지(4205 내지 4220)에서 GUI(3500)를 통한 줌 도구의 축소 동작을 나타낸 것이다. 제1 스테이지(4205)에서의 GUI(3500)는 도 41의 제4 스테이지(4120)에서의 GUI와 동일하다. 도시된 바와 같이, GUI(3500)는 3x 배율에 있는 줌 링(3525)을 포함하고 있고, 줌 링 내부의 영상의 구역은 확대되어 있다.
제2 스테이지(4210)는 사용자가 줌 도구를 사용하여 영상의 배율을 감소시키기 시작한 후의 GUI(3500)를 나타내고 있다. 언급한 바와 같이, 사용자는 시계 방향 회전 입력을 제공함으로써 줌 링 내부의 영상의 구역의 배율을 감소시킬 수 있다. 도시된 바와 같이, 사용자는, 화살표(4225)로 나타낸 바와 같이, 두 손가락을 시계 방향으로 회전시키기 시작하였다. 시계 방향 회전 입력의 결과로서, 응용 프로그램은 줌 링(3525) 내부에 있는 영상의 구역의 배율을 감소시켰다.
제3 스테이지(4215)는 사용자가 줌 도구를 사용하여 영상의 배율을 추가로 감소시킨 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 사용자는, 화살표(4230)로 나타낸 바와 같이, 두 손가락을 시계 방향으로 계속하여 회전시켰다. 회전 이동의 결과로서, 제3 스테이지(4215)에서의 줌 링(3525) 내부의 영상의 구역은 제2 스테이지(4210)에서의 영상보다 덜 확대되어 있다. 제4 스테이지(4220)는 사용자가 두 손가락을 줌 링(3525)으로부터 들어 올린 후의 GUI(3500)를 나타내고 있다. 도시된 바와 같이, 줌 링(3525) 내부의 영상의 구역은 사용자가 손가락을 들어 올린 후의 제3 스테이지(4215)에서의 영상의 구역과 동일한 채로 있다.
오른손잡이 줌 도구에서와 같이, 사용자는 왼손잡이 모드에서 영상의 상이한 구역들로 도구를 이리저리 이동시킬 수 있다. 확대 및 축소를 위한 제스처가 왼손잡이 모드 및 오른손잡이 모드에 대해 반대 방향으로 되어 있는 반면, 어떤 실시예들에서, 줌 링을 이동시키는 것은 어느 모드에서나 동일한 제스처를 수반한다. 다시 도 37을 참조하면, 줌 도구가 링 이동 활성화 이벤트를 수신할 때, 줌 도구는 링 이동 상태(3750)로 천이한다. 어떤 실시예들에서, 링 이동 활성화 이벤트는 사용자가 줌 링 상에서 손가락을 길게 누르는 것(즉, 싱글 터치 입력)을 포함한다. 링 이동 상태(3750) 동안, 줌 링은 사용자의 입력의 이동을 따라간다. 즉, 줌 링은 사용자가 손가락을 어디로 이동시키든 그곳으로 이동한다. 줌 링 이동 비활성화 이벤트를 수신할 때까지 줌 도구는 이 상태에 머물러 있다. 어떤 실시예들에서, 사용자는 손가락을 줌 링으로부터 들어올림으로써 줌 링 이동 동작을 비활성화시킬 수 있다. 줌 링 이동 비활성화 이벤트를 수신할 시에, 줌 도구는 상태(3720)로 되돌아간다. 상태(3720)에 있는 동안 줌 도구가 줌 링 외부에서의 입력(예컨대, 줌 링 외부에서의 싱글 터치)을 수신할 때, 줌 도구는 GUI가 왼손잡이 모드에 있는 초기 상태(3710)로 다시 천이한다.
IV. 다수의 영상들의 디스플레이
상기 예들 중 다수가 영상 디스플레이 구역에 단지 하나의 영상을 갖는 GUI를 나타내고 있지만, 어떤 실시예들은 사용자가 한번에 디스플레이하기 위한 몇개의 영상을 선택할 수 있게 해준다. 다양한 실시예에서, 다수의 영상들을 디스플레이하기 위해 상이한 프로세스들이 사용자에게 이용가능하다. 사용자는 (특정 유형의 선택 입력에 의해 대응하는 축소판을 선택함으로써) 컬렉션에서 특정의 영상을 선택할 수 있고, 응용 프로그램은 선택된 영상으로부터 임계 유사성 내에 있는 컬렉션에서의 임의의 다른 영상을 자동으로 식별한다. 그에 부가하여, 사용자는 (예컨대, 멀티-터치 디바이스 상에서의 개별적인 입력을 통해) 축소판 디스플레이 구역에서의 한 블록의 영상들 또는 임계 지속기간 동안 각각의 축소판을 길게 누르는 것에 의해 몇개의 개별 영상들을 선택할 수 있다. 그에 부가하여, 어떤 실시예들은 한번에 다수의 영상들을 선택하는 설정 메뉴 옵션을 포함하고 있다.
영상 디스플레이 구역에 디스플레이하기 위한 다수의 영상들이 선택될 때, 어떤 실시예들은 모든 영상들에 걸쳐 시각적 가중치가 똑같도록 보장하면서 디스플레이의 사용을 극대화하는 디스플레이 알고리즘을 사용한다. 어떤 실시예들에서, 응용 프로그램은 디스플레이할 영상들의 평균 종횡비를 식별하고, 이어서 영상 디스플레이 구역을 영상들의 수에 대해 이상적인 격자로 분할하며, 격자의 각각의 직사각형 영역은 평균 종횡비를 가진다. 응용 프로그램은 이어서 각각의 영상을 격자 직사각형들 중 하나에 맞춘다.
A. 유사한 영상들의 식별 및 디스플레이
언급한 바와 같이, 영상 디스플레이 구역에 디스플레이하기 위한 다수의 영상들을 선택하는 방법들 중 하나는 영상을 선택하고 응용 프로그램으로 하여금 선택된 영상으로부터 임계 유사성 내에 있는 동일한 컬렉션 내의 임의의 영상들을 식별하게 하는 것이다. 어떤 실시예들에서, 사용자가 축소판 상에서 더블 탭핑(또는 더블 클릭)할 때, 응용 프로그램은 컬렉션 내의 다른 영상들을 선택된 영상과 자동으로 비교한다. 2개의 영상 간의 비교를 수행하기 위해, 어떤 실시예들은 각각의 영상에 대해 한 세트의 히스토그램들을 사용하고, 영상 히스토그램들이 임계 유사성 내에 있는지를 판정한다. 어떤 실시예들은 색상 히스토그램, 텍스처 히스토그램, 및 기울기 히스토그램을 사용하지만, 다른 실시예들은 영상들을 비교하기 위해 다른 픽셀 특성들을 사용할 수 있다. 비교를 영상의 보다 중요한 부분들(예컨대, 중앙)에 초점을 맞추기 위해, 어떤 실시예들은 영상을 몇개의 영역들로 분할하고 대응하는 영역들에 대한 히스토그램들을 비교한다. 어떤 픽셀들(예컨대, 영상의 중앙에 있는 픽셀들)이 다른 픽셀들보다 더 많은 영역들에 대해 사용되도록 영역들이 중복되어 있을 수 있다.
도 43은 컬렉션 내의 유사한 영상들을 식별하고 디스플레이하는 어떤 실시예들의 프로세스(4300)를 개념적으로 나타낸 것이다. 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램은 응용 프로그램이 보기 모드에 있는 동안 유사한 영상들을 디스플레이하라는 사용자 명령에 응답하여 이 프로세스를 수행한다. 프로세스(4300)는 부분적으로 도 44 내지 도 46을 참조하여 기술될 것이다. 도 44는 사용자가 특정의 영상을 선택하고 응용 프로그램이 선택된 영상과 유사한 컬렉션 내의 한 세트의 영상들을 식별하는, 3개의 스테이지(4410 내지 4430)에 걸친 영상 보기 응용 프로그램에 대한 GUI(4400)를 나타낸 것이다.
GUI(4400)는 축소판 디스플레이 구역(4405) 및 영상 디스플레이 구역(4415)을 포함하고 있다. 이 디스플레이 구역들은 도 14에 대해 앞서 기술한 것들과 유사하다. 영상 디스플레이 구역(4415) 위쪽의 바에 나타낸 바와 같이, 축소판 디스플레이 구역(4405)은 컬렉션 "앨범 1"에 있는 영상들에 대한 한 세트의 축소판들을 디스플레이한다.
도시된 바와 같이, 프로세스(4300)는 (4305에서) 앨범 내에서의 특정의 영상의 선택 및 유사한 영상들을 식별하라는 명령을 수신하는 것으로 시작한다. 언급한 바와 같이, 어떤 실시예들은, 사용자가 영상의 축소판을 더블 탭핑(동일한 축소판 상에서 임계 지속기간 내의 2번의 빠른 연속적인 탭핑)하거나 더블 클릭할 때, 이 프로세스를 자동으로 수행한다. 그렇지만, 이 기능은 또한 메뉴 옵션 또는 선택된 영상 내의 개별적인 GUI 아이템을 선택하는 것, 한 세트의 키스트로크들을 타이핑하는 것 등과 같은 다른 GUI 상호작용을 통해서도 액세스될 수 있다.
도 44의 제1 스테이지(4410)는 축소판 디스플레이 구역(4405) 내의 축소판들 중 어느 것도 현재 선택되지 않았다는 것을 나타내고 있다. 제2 스테이지(4420)에서, 사용자는 한 손가락으로 축소판(4425)을 더블 탭핑한다. 이 영상은 골퍼가 방금 골프 공을 친 것을 나타내고 있다. 축소판 디스플레이 구역(4405)에서 볼 수 있는 바와 같이, 컬렉션은 이 골프 장면의 4개의 다른 영상들은 물론, 다양한 관련없는 영상들을 포함하고 있다.
그 다음에, 프로세스(4300)는 (4310에서) 영상 비교 동작과 연관되어 있는 사운드 효과를 출력한다. 기술 분야의 당업자라면 다양한 다른 실시예들이 상이한 사운드 효과를 사용할 수 있고, 일부는 사운드 효과를 전혀 출력하지 않을 수 있다는 것을 잘 알 것이다. 어떤 실시예들에서, 사용되는 사운드 효과는 사람이 한 세트의 많은 실제 사진들을 섞는 것을 시뮬레이트하도록 또는 프로세서가 계산을 수행하는 것을 연상시키도록 설계되어 있을 수 있다. 사운드 효과의 출력이 비교 동작 이전에 수행되는 것으로서 프로세스(4300)에 개념적으로 나타내어져 있지만, 많은 경우에, 응용 프로그램을 실행하는 디바이스 상의 프로세서는 디바이스가 사운드 효과를 출력하는 시간 동안 비교에 필요한 계산을 수행할 것이다.
이 프로세스는 이어서 (4315에서) 선택된 영상에 대한 통계를 검색한다. 어떤 실시예들에서, 통계는 영상에 관한 정보를 제공하는 한 세트의 히스토그램들을 포함한다. 어떤 실시예들에서, 히스토그램들은 영상에서의 색상의 분포, 영상 내에서의 색상의 변동성, 및 영상에 존재하는 형상들에 관한 정보를 제공한다. 도 47을 참조하여 이하에서 더 상세히 기술되는 바와 같이, 어떤 실시예들의 응용 프로그램은 각각의 픽셀을 색상 범위, 텍스처 범위, 및 기울기 범위에 위치시킨다. 색상은 특정의 색 공간에서의 픽셀의 위치를 식별해주고, 텍스처는 픽셀의 색상 데이터가 그의 이웃들의 색상 데이터와 얼마나 유사한지 또는 상이한지를 식별해주며, 기울기는 픽셀의 이웃들에 대한 픽셀의 휘도 변화의 방향 및 양을 식별해준다. 이 히스토그램들(및 다른 히스토그램들)에 부가하여, 어떤 실시예들은 또한 영상들을 비교하기 위해 다른 정보(파일 이름, 사용자-입력 설명, Exif 데이터, 기타 등등)를 사용한다.
어떤 실시예들에서, 응용 프로그램은 영상들을 몇개의 영역들로 분할하고 2개의 영상의 대응하는 부분들에 대한 히스토그램들을 비교한다. 다른 실시예들은 영상들을 상이하게 분할한다. 도 45는 영상(4500)의 9개의 상이한 타일들 - 각각의 타일은 영상의 1/4 크기임 - 로의 한가지 이러한 분할을 개념적으로 나타낸 것이다. 도 45는 9개의 타일(4525 내지 4565)을 나타내기 위해 4개의 패널(4505 내지 4520)을 사용한다. 처음 4개의 타일(4525 내지 4540)은 영상(4500)의 4개의 코너 영역들이다. 패널(4510)에서의 그 다음 2개의 타일(4545 및 4550)은 영상의 수직 중앙을 차지하고 있는 반면, 패널(4515)에서의 타일들(4555 및 4560)은 영상의 수평 중앙을 차지하고 있다. 최종적으로, 마지막 패널(4520)은 영상의 실제 중앙점에 중심이 있는 단지 하나의 타일(4565)을 가진다.
한 세트의 이 특정의 영역들을 사용하는 것은 영상의 어떤 픽셀들에 다른 픽셀들보다 더 많은 가중치를 부여하며, 따라서 이 픽셀들은 2개의 영상의 비교에서 더 중요하다. 도 46은 영상(4500)의 이 특정의 분할로부터 얻어지는 16개의 픽셀 쿼드런트(quadrant), 및 타일들(4525 내지 4565) 중 어느 것이 각각의 쿼드런트로부터의 픽셀을 포함하고 있는지를 나타내고 있다. 도시된 바와 같이, 4개의 코너에 있는 쿼드런트는 타일들 중 하나에만 포함되어 있고, 따라서 이 픽셀들은 영상에 대한 9 세트의 히스토그램들 중 하나에만 기여한다. 영상의 하나의 가장자리와만 경계를 이루고 있는 8개의 쿼드런트 각각은 2개의 타일에 포함되어 있는 반면, 4개의 중앙 쿼드런트 각각은 4개의 타일에 포함되어 있다. 따라서, 상이한 영상과의 비교에서 중앙 픽셀들은 코너 픽셀들보다 4배 더 가중될 것이다.
어떤 실시예들에서, 응용 프로그램은, 유사한 영상들을 식별하라고 요구받을 때 모든 계산을 수행하기 보다는, 히스토그램들(및 임의의 다른 통계)을 미리 계산한다. 어떤 실시예들은, 응용 프로그램이 영상을 처음으로 가져오기할 때, 영상에 대한 히스토그램들을 발생하고, 영상에 대한 히스토그램들을 영상과 함께 [예컨대, 앞서 기술한 도 15의 영상 데이터 구조체(1500)에 부가 데이터의 일부로서] 저장한다. 9개의 타일에 대해 각각 3개의 히스토그램이 있는 경우, 어떤 실시예들은 각각의 영상에 대해 27개의 상이한 히스토그램들을 저장한다.
도 43으로 돌아가서, 프로세스(4300)는 이어서 (4320에서) 현재 디스플레이된 컬렉션으로부터 새로운 비교 영상을 선택한다(처음에 선택된 영상이 그 컬렉션의 일부임). 어떤 실시예들은 컬렉션 데이터 구조체에 저장되어 있는 순서 계열의 처음에서 시작하여 영상들을 순회하는 반면, 다른 실시예들은 순서 계열에서의 선택된 영상 이후의 그 다음 영상에서 시작하거나, 컬렉션 내의 영상들을 랜덤하게 선택하거나, 다른 알고리즘을 사용한다.
이 프로세스는 이어서 (4325에서) 현재의 비교 영상에 대한 통계를 검색한다. 이 통계들은 사용자-선택 영상에 대해 검색되었 것과 동일한 통계이다(예컨대, 영상의 각종의 상이한 영역들의 색상, 텍스처 및 기울기의 히스토그램). 앞서 언급한 바와 같이, 어떤 실시예들은 이 히스토그램들을 미리 계산하고, 그 히스토그램들을 영상에 대한 데이터 구조체에 저장한다.
그 다음에, 프로세스(4300)는 (4330에서) 특정의 사용자-선택 영상의 통계를 현재의 비교 영상의 통계와 비교한다. 다른 실시예들은 이 비교를 상이하게 수행한다. 어떤 실시예들은 선택된 영상의 각각의 히스토그램을 현재의 비교 영상의 대응하는 히스토그램과 비교한다. 예를 들어, 제1 영상에 대한 타일 1 색상 히스토그램은 제2 영상에 대한 타일 1 색상 히스토그램과 비교되고, 제1 영상에 대한 타일 5 텍스처 히스토그램은 제2 영상에 대한 타일 5 텍스처 히스토그램과 비교되며, 이하 마찬가지이다. 그에 따라, 어떤 실시예들은 2개의 영상이 유사한 것으로서 자격이 있는지를 판정하는 데 사용하기 위해 27개의 상이한 비교를 수행한다.
상이한 영상들에 대한 히스토그램들을 비교하기 위해, 다른 실시예들은 상이한 기법들을 사용한다. 각각의 히스토그램은 값의 범위들에 의해 정의되는 한 세트의 빈들(bins)이다. 빈은 1차원 또는 다차원일 수 있다. 예를 들어, 텍스처가 단일 값에 의해 정의되고, 따라서 각각의 빈은 이 텍스처 값의 범위이다. 픽셀에 대한 기울기는 각도 및 길이(또는, 다른 대안으로서, x-방향 값 및 y-방향 값) 둘 다를 갖는 벡터로서 정의된다. 따라서, 각각의 빈은 특정의 범위의 각도 및 특정의 길이 내에 속하는 픽셀들을 포함할 것이다. 픽셀의 색상 값은 종종 색 공간(예컨대, RGB 공간, HSL 공간, YCbCr 공간, 또는 다른 색 공간) 내의 3차원 값이다. 따라서, 각각의 빈은 3개의 차원 중 각각에서 정의된 범위를 가질 것이며, 이에 대해서는 도 48 내지 도 50을 참조하여 이하에서 더욱 상세히 기술한다.
응용 프로그램은 제1 영상의 히스토그램의 각각의 빈 내의 픽셀들의 수와 제2 영상의 대응하는 히스토그램의 각각의 대응하는 빈 내의 픽셀들의 수와 비교한다. 어떤 실시예들은 2개의 히스토그램 사이의 차를 계산하기 위해 제곱 평균 제곱근(root mean square) 함수를 사용하며, 이 함수는 히스토그램의 각각의 빈에 대한 차의 제곱의 평균의 제곱근을 취한다. 간단화된 예로서, 제1 히스토그램이 [4, 2, 1, 5]의 값들을 가지고 제2 히스토그램이 [3, 2, 4, 3]의 값들을 가지는 경우, 제곱 평균 제곱근 함수는 다음과 같다:
Sqrt[{(4-3)2+(2-2)2+(1-4)2+(5-3)2}/4] = Sqrt(3.5) = 1.87.
응용 프로그램은 이어서, 비교 점수를 구하기 위해, 제곱 평균 제곱근 출력을 히스토그램에서의 픽셀들의 총수(즉, 영상의 픽셀들의 수의 1/4)와 비교한다. 이 비교 점수는 히스토그램들(즉, 도시된 예에서 27개의 상이한 히스토그램) 각각에 대해 계산된다. 제곱 평균 제곱근 분석보다, 어떤 실시예들은 2개의 히스토그램 간의 편차의 간단한 평균, 또는 2개의 히스토그램 간의 차를 정량화하는 어떤 다른 알고리즘을 사용한다.
상이한 수의 픽셀들을 갖는 영상의 히스토그램을 비교하기 위해, 어떤 실시예들은 픽셀 수(pixel count)의 비를 구하고 작은 쪽 영상의 히스토그램 값을 이 양과 곱한다. 다른 실시예들은 동일한 수의 픽셀 및 종횡비를 갖는 영상들만을 비교한다.
어떤 다른 실시예들은 각각의 히스토그램 값을 영상(또는 타일) 내의 픽셀들의 총수로 나누고, 따라서 전체 히스토그램에 걸쳐 합이 1인 분수들의 히스토그램을 가진다. 일부 이러한 실시예에서, 응용 프로그램은 히스토그램들을 비교하기 위해 곱셈의 제곱근 함수를 사용한다. 이 함수는 제1 히스토그램에서의 각각의 빈 값과 제2 히스토그램에서의 그의 대응하는 빈 값을 곱한 것의 제곱근을 취하고, 이어서 히스토그램들 내의 한 세트의 빈들 전체에 걸쳐 이 제곱근들을 합산한다. 따라서, [0.1, 0.4, 0.3, 0.2]의 값들을 갖는 간단한 제1 히스토그램 및 [0.35, 0.25, 0.3, 0.1]의 값들을 갖는 제2 히스토그램에 대해, 점수는 Sqrt(0.1*0.35) + Sqrt(0.4*0.25) + Sqrt(0.3*0.3) + Sqrt(0.2*0.1) = 0.9447일 것이다. 이 비교 방법은 히스토그램들이 동일한 경우 1의 점수를 제공하고, 히스토그램들이 점점 더 상이하게 됨에 따라 감소된다.
어떤 실시예들에 의해 이용되는 다른 방법은 겹치는 유의 빈(overlapped significant bin)의 합산을 사용한다. 이 프로세스는 양쪽 히스토그램에서의 값들이 특정의 임계값보다 큰 빈만을 카운트한다. 임계값은 히스토그램을 발생하는 데 사용된 총 픽셀들의 특정의 퍼센트, 또는 빈의 수의 함수(예컨대, 5/N, 여기서 N은 빈의 수임)일 수 있다. 제1 및 제2 히스토그램 둘 다에 대한 빈의 값이 임계값보다 클 때, 이 값들은 히스토그램 비교를 위해 총 점수에 가산된다. 이 비교에서, 점수들은 0(겹치는 유의 빈이 없는 경우)부터 2(모든 픽셀이 겹치는 유의 빈에 있는 경우)까지의 범위에 있을 수 있다. 이 비교 기법은 작은(따라서 의미가 별로 없는) 히스토그램 빈에서의 차가 비교 프로세스를 혼란스럽게 하는 것을 방지한다.
2개의 영상에 대한 통계가 비교된 경우, 프로세스(4300)는 (4335에서) 영상들이 임계 유사성 내에 있는지를 판정한다. 어떤 실시예들에서, 응용 프로그램은 각각의 히스토그램에 대해 비교 점수들을 평균하고, 평균 점수가 임계값 내에 속하는지를 판정한다. 이것은 보다 작은 차(예컨대, 영상의 코너에 있는 아이템의 존재 또는 비존재)가 2개의 그렇지 않았으면 유사한 영상들이 그러한 것으로서 식별되는 것을 방지하도록 보장해준다.
다른 실시예들은 색상 히스토그램 차들에 대한 제1 평균, 텍스처 히스토그램 차들에 대한 제2 평균, 및 기울기 히스토그램 차들에 대한 제3 평균을 수행한다. 어떤 이러한 실시예는 3개의 평균 비교 점수들 모두가 임계값 내에 있어야만 하는 반면, 다른 실시예들은 3개의 평균 점수들 중 2개가 임계값을 충족시키만 하면 된다. 또 다른 실시예들에서, 응용 프로그램은 히스토그램 비교 점수들 각각을 임계값과 비교하고, 2개의 영상이 유사한 것으로 간주되기 위해서는 특정의 수의 점수들(예컨대, 모든 점수들, 27개 중 18개, 기타)이 임계값을 충족시킬 것을 필요로 한다.
어떤 실시예들에서, 응용 프로그램은 색상 히스토그램, 기울기 히스토그램 및 텍스처 히스토그램에 대해 상이한 임계 유사성을 사용한다. 예를 들어, 응용 프로그램은 기울기 히스토그램보다 색상 히스토그램에서 더 큰 변동성을 허용할 수 있는데, 그 이유는 그렇게 하는 것이 상이한 노출의 영상들 또는 구름낀 영상 또는 화창한 영상이, 동일한 형상을 가질 때, 유사한 것으로 간주될 수 있게 해줄 것이기 때문이다.
어떤 실시예들에서, 유사성 임계값(similarity threshold)은 기계 학습 결정 트리 기법에 기초하고 있다. 이 기법은 이전에 유사하거나 유사하지 않은 것으로 분류되었던 샘플 영상 쌍을 사용하고, (예컨대, 앞서 기술한 비교 기법들 중 하나 이상을 사용하여) 영상에 대해 상이한 비교 점수들을 계산한다. 비교 점수들에 대한 유용한 임계값 또는 임계값들의 조합을 식별하기 위해, 이 점수들이 이어서 유사한 쌍 및 유사하지 않은 쌍에 대해 분석된다.
영상들이 임계 유사성 내에 있을 때, 프로세스는 (4340에서) 현재의 비교 영상을 특정의 영상과 유사한 것으로 분류된 영상들의 그룹에 추가한다. 즉, 현재의 비교 영상이 사용자-선택 영상 및 임의의 다른 유사한 영상들과 함께 영상 디스플레이 구역에 디스플레이될 선택된 영상들 중 하나가 된다.
프로세스(4300)는 그 다음에 (4345에서) 현재의 컬렉션이 프로세스가 특정의 사용자-선택 영상과 아직 비교하지 않은 임의의 부가의 영상을 포함하는지를 판정한다. 언급한 바와 같이, 응용 프로그램은, 컬렉션이 응용 프로그램에 의해 가져오기된 영상들 전부를 포함하고 있더라도, 컬렉션 전체를 순회한다. 부가의 영상이 남아 있을 때, 프로세스는 그 다음 영상을 현재의 비교 영상으로 설정하기 위해 4320으로 되돌아간다.
현재의 컬렉션 내의 모든 영상들이 사용자-선택 영상과 비교되면, 프로세스는 (4350에서) 특정의 사용자-선택 영상 및 그와 유사한 영상들을 영상 디스플레이 구역에 디스플레이한다. 도 44로 돌아가서, 제3 스테이지(4430)는 사용자가 더블 탭핑 입력으로 축소판(4425)을 선택한 결과를 나타내고 있다. 이 스테이지에서, 응용 프로그램은 4개의 영상(4435 내지 4450)을 영상 디스플레이 구역에 디스플레이한다. 이들은 골퍼를 보여주는 5개의 영상들 중 4개이다. 제5 영상인 축소판(4455)은 유사한 것으로 간주되지 않을 정도로 다르다(예컨대, 골프 클럽의 상이한 위치가 충분한 기울기 차이를 야기하기 때문이거나 영상의 어두움이 충분한 색상 차이를 야기하기 때문임). 영상들(4435 내지 4450)에 대한 축소판들은, 이 영상들이 보기 위해 선택되어 있다는 것을 나타내기 위해, 이제 하이라이트된 경계를 가진다. 어떤 실시예들은 모든 영상들에 걸쳐 똑같은 시각적 가중치를 유지하는 알고리즘에 따라 영상들을 영상 디스플레이 구역(4415)에 디스플레이한다(그렇지만 이 경우에 그것이 문제가 되지 않는데, 그 이유는 영상들에 대해 종횡비가 똑같기 때문임).
도 43의 프로세스(4300)는 응용 프로그램이 영상에 대한 다양한 히스토그램들을 비교함으로써 다수의 영상들 사이의 비교를 어떻게 수행하는지를 기술하고 있다. 도 47은 본 발명의 어떤 실시예들에 따른, 한 세트의 히스토그램들을 발생하는 프로세스(4700)를 개념적으로 나타낸 것이다. 언급한 바와 같이, 어떤 실시예들은 히스토그램들을 사전 계산하고(예컨대, 영상을 가져오기할 시에 히스토그램을 발생하고 이를 영상과 함께 저장함), 따라서 영상이 응용 프로그램 내로 가져오기될 때 각각의 영상에 대해 프로세스(4700) 또는 유사한 프로세스를 수행한다. 프로세스(4700)는 영상에 대한 한 세트의 색상 히스토그램들을 발생하기 위해 응용 프로그램에 의해 흔히 사용되는 색 공간을 개념적으로 나타내고 있는 도 48 내지 도 50을 부분적으로 참조하여 기술될 것이다.
도시된 바와 같이, 프로세스(4700)는 (4705에서) 영상을 수신하는 것으로 시작한다. 통상적인 영상들은 직사각형으로 배열되어 있는 한 세트의 픽셀들을 포함하고 있다. 각각의 픽셀은 일반적으로 (i) 특정의 색 공간에서의 한 세트의 색상 값들 및 (ii) 직사각형 내에서의 위치에 의해 정의된다. 영상은 인코딩된 형태로 있을 수 있고, 이 경우에 응용 프로그램은 영상의 픽셀들에 대해 색상 값을 식별하기 위해 영상을 디코딩한다.
이 프로세스는 (4710에서) 히스토그램을 발생할 상이한 타일들의 영상 내에서의 차원을 계산한다. 도 45 및 도 46을 참조하여 앞서 기술한 바와 같이, 어떤 실시예들은 9개의 상이한 타일 각각에 대해 3개의 히스토그램을 발생한다. 이 프로세스는 각각의 타일의 픽셀 차원을 결정한다. 예를 들어, 영상이 640x480(즉, 수평 방향으로 640개 픽셀 및 수직 방향으로 480개 픽셀)의 픽셀 차원을 가지는 경우, 타일 1(4525)은 코너가 (1, 1)(영상의 좌측 코너) 및 (320, 240)(영상의 중앙)에 있는 픽셀들의 직사각형을 사용하는 반면, 타일 9(4565)는 픽셀 위치 (161, 121)부터 (480, 360)까지의 직사각형을 사용할 것이다.
이 프로세스는 이어서 (4715에서) 영상의 그 다음 픽셀을 선택한다. 어떤 실시예들은 각각의 행의 픽셀들을 순회한다 - 즉, 좌측 상단 코너에 있는 픽셀 (1, 1)에서 시작하여, 먼저 상단 행을 따라 순회하고 이어서 아래로 그 다음 행을 순회하며, 이하 마찬가지임 -. 다른 실시예들은 픽셀들을 다른 방식으로(예컨대, 랜덤하게, 열을 먼저, 기타) 선택한다.
그 다음에, 이 프로세스(4700)는 (4720에서) 선택된 픽셀이 속하는 영상의 모든 타일들을 식별한다. 도 45 및 도 46에 도시된 타일링 방식을 사용하여, 코너 쪽에 위치한 픽셀들은 영상의 한 영역에만 속할 것인 반면, 중앙에 위치한 픽셀들은 4개의 영역에 속할 것이다. 이 방식을 사용하여, 단지 하나의 가장자리 근방에 있는 쿼드런트에 있는 픽셀들은 2개의 영역에 속한다.
이 프로세스는 그 다음에 히스토그램들을 발생하기 시작한다. 이 예시적인 프로세스(4700)에서, 응용 프로그램은 색상 값을 먼저 발생하고, 이어서 텍스처 값을, 그리고 마지막으로 기울기 값을 발생한다. 그렇지만, 기술 분야의 당업자라면 다른 실시예들이 이 계산들을 다른 순서로 수행하거나 이 계산들을 병렬로 수행할 것임을 잘 알 것이다.
이 프로세스는 (4725에서) 픽셀 값을 HSV(hue-saturation-value) 색 공간으로 변환한다. 저장된 픽셀 값들은 종종 디바이스-고유 RGB 색 공간에 있으며, HSV로의 변환은 간단한 변환만을 수반한다. 도 48은 데카르트 RGB 좌표계(Cartesian RGB coordinate system)보다 더 직관적이고 지각적으로 의의가 있도록(perceptually relevant) 설계되어 있는 원통 좌표계인 HSV 색 공간(4800)을 개념적으로 나타낸 것이다. 도시된 바와 같이, 색 공간(4800)에서, 색상(hue)은 각도 차원으로 표현되어 있고, 적색 원색(red primary)은 흔히 각도 0에 위치해 있고, 녹색 원색(green primary)은 120°에, 그리고 청색 원색(blue primary)은 240°에 위치해 있다. 반경 차원은 채도를 나타내며, 중앙에서의 0 채도(zero saturation)(무색)로부터 외측 가장자리에서의 완전 채도(fully saturated)(순색)까지의 범위에 있다. 수직축은 명도(lightness)를 나타내며, 중앙에서 흑색(명도 = 0)부터 백색(명도 = 1)까지의 범위에 있다.
HSV 색 공간은 색상 히스토그램을 발생하는 데 사용될 수 있는 하나의 가능한 색 공간에 불과하다. 어떤 실시예들은 HSL(hue-saturation-lightness) 색 공간, YCbCr(luminance-chroma) 색 공간, 또는 다른 개발자-정의 색 공간 등의 상이한 색 공간을 사용한다. 다른 실시예들은 색 변환(color conversion)을 수행하지 않으며, 픽셀들이 이미 정의되어 있는 디바이스의 감마 보정된 RGB 공간을 사용할 뿐이다.
픽셀 값들이 변환된 경우, 프로세스(4700)는 이어서 (4730에서) 현재 선택된 픽셀이 속하는 HSV 색 공간의 영역을 식별한다. 각각의 영역은 색 공간에서의 3차원 영역이다. 그렇지만, 어떤 실시예들에서, 영역들이 색 공간에서 상이한 크기를 가지며, 따라서 각각의 영역은 사람이 구분가능한 색 공간의 유사한 체적을 차지한다. 즉, 사람의 눈이 상이한 색상 값을 구분하는 데 어려움을 겪는 색 공간의 구역들에서, 그 영역들은 사람의 눈이 상이한 색상 값을 쉽게 구분하는 색 공간의 구역들에 비해 더 크다.
예를 들어, 2개의 영역이 상이한 색상 범위(hue range), 상이한 채도 범위(saturation range), 및/또는 상이한 명도 범위(value range)를 가질 수 있다. 도 49는 2개의 영역이 정의되어 있는 (즉, 일정한 값에서의) HSV 색 공간의 원형 단면(4900)을 나타낸 것이다. 제1 영역(4905)은 색상 차원의 적색 부분에 있는 반면, 제2 영역(4910)은 색상 차원의 청색 부분에 있다. 일반적으로, 사람의 눈은 적색의 색조(shade)보다 청색의 색조를 더 쉽게 구분할 수 있으며, 따라서 어떤 실시예들은, 이 예에서 나타낸 바와 같이, 색 공간의 적색 부분에서보다 색 공간의 청색 부분에서 더 작은 색상 범위를 갖는 영역들을 사용한다.
도 50은 2개의 영역(5005 및 5010)으로 분할되어 있는 HSV 색 공간의 3차원 부분(5000)을 나타낸 것이다. 이 경우에, 2개의 영역의 채도 및 색상은 똑같지만, 명도 범위는 상이하다. 기술 분야의 당업자라면 이 영역들이 단지 예에 불과하다는 것과 그 영역들이 색 공간에서 어떤 임의적인 형상도 가질 수 있다는 것을 잘 알 것이다. 도 49에도 도 50에도 도시되어 있지는 않지만, 특정의 색상 및 명도 내에서, 상이한 채도 범위들에 대해 다수의 영역들이 정의될 수 있다. 게다가, 그 영역들이 모든 차원에서 일정한 범위를 가질 필요는 없다. 예를 들어, 그 영역들이 색 공간 전체를 고려하고 있는 한, 특정의 영역은 그의 외측 채도(outer saturation)에서 제1 색상 범위를 가질 수 있고 그의 최내측 채도(innermost saturation)에서 상이한 제2 색상 범위를 가질 수 있다.
도 47로 돌아가서, 프로세스(4700)는 (4735에서) 현재 선택된 픽셀을 영상 내의 이웃 픽셀들과 비교함으로써 현재 선택된 픽셀에 대한 텍스처 값을 계산한다. 어떤 실시예들은 픽셀에 대한 하나의 텍스처 값을 결정하기 위해 픽셀의 밝기 값(brightness value)을 주변의 픽셀들과 비교하는 텍스처 계산을 사용한다. 픽셀 밝기를 결정하기 위해, 어떤 실시예들은 RGB 픽셀 값들에 대한 계산을 수행한다. 다른 실시예들은 (밝기 이외의) 픽셀의 다른 속성을 주변 픽셀과 비교한다.
어떤 실시예들에 의해 사용되는 새로운 텍스처 계산 알고리즘이 도 51을 참조하여 기술된다. 이 도면은 중앙 픽셀(P0)에 대한 텍스처를 계산하기 위해 어떤 실시예들에 의해 사용되는 9개의 픽셀을 나타내고 있다. 처음에, 어떤 실시예들은 각각의 픽셀에 대한 휘도 값(밝기, 루미넌스 또는 명도와 유사함)을 계산한다. 이것은 본질적으로 RGB 값들의 가중 평균이며, 이는 한쪽 또는 다른쪽 색상 채널 값에 더 많은 가중치를 부여할 수 있다. 예를 들어, 어떤 실시예들은 적색 채널에 더 많은 가중치를 둘 수 있다.
도 51에서의 픽셀들은 (픽셀 P0에 대한) I0부터 (픽셀 P8에 대한) I8까지의 휘도 값을 가진다. 어떤 실시예들의 텍스처 계산은 텍스처 값을 결정하기 위해 한 세트의 조건 검사들을 사용한다. 당업자라면 텍스처 값이 물리량에 대응하지 않고 오히려 단순히 상이한 빈이라는 것을 잘 알 것이다. 어떤 실시예들의 텍스처 계산은 다음과 같다:
Figure pct00001
P0가 창에서 가장 큰 휘도를 갖는 경우, P0에 0의 텍스처를 할당하고;
Figure pct00002
P0가 창에서 가장 작은 휘도를 갖는 경우, P0에 1의 텍스처를 할당하며;
Figure pct00003
P0가 가장 작은 휘도를 갖지도 않고 가장 큰 휘도를 갖지도 않지만, I0, I1, ... I8 모두가 서로로부터 임계값 내에 있는 경우(즉, 그들 모두가 동일하거나 유사한 휘도를 가지는 경우), P0에 2의 텍스처를 할당한다.
이 3개의 조건들 중 어느 것도 만족되지 않는 경우, 응용 프로그램은 하기의 차를 계산한다:
Figure pct00004
(I1 + I2 + I3) - (I6 + I7 + I8);
Figure pct00005
(I3 + I5 + I8) - (I1 + I4 + I6);
Figure pct00006
(I1 + I2 + I4) - (I5 + I7 + I8);
Figure pct00007
(I2 + I3 + I5) - (I4 + I6 + I7).
응용 프로그램은 이어서 이 차들 중 어느 것이 가장 큰 절대값을 가지는지를 판정하는데, 그 이유는 이것이 픽셀 P0 부근에서 창 내에서의 가장 큰 휘도 변화의 방향을 나타내기 때문이다. 첫번째 차는 수직 휘도 변화에 대응하고, 두번째 차는 수평 휘도 변화에 대응하며, 세번째 차는 우측 상단으로부터 좌측 하단으로의 변화에 대응하고, 네번째 차는 우측 하단으로부터 좌측 상단으로의 변화에 대응한다.
첫번째 차가 가장 큰 경우, 응용 프로그램은 하기의 2개의 텍스처 값 중 하나를 할당한다:
Figure pct00008
(I1 + I2 + I3) > (I6 + I7 + I8)인 경우, P0에 3의 텍스처를 할당하고;
Figure pct00009
(I1 + I2 + I3) <= (I6 + I7 + I8)인 경우, P0에 4의 텍스처를 할당한다.
두번째 차가 가장 큰 경우, 응용 프로그램은 하기의 2개의 텍스처 값 중 하나를 할당한다:
Figure pct00010
(I3 + I5 + I8) > (I1 + I4 + I6)인 경우, P0에 5의 텍스처를 할당하고;
Figure pct00011
(I3 + I5 + I8) <= (I1 + I4 + I6)인 경우, P0에 6의 텍스처를 할당한다.
세번째 차가 가장 큰 경우, 응용 프로그램은 하기의 2개의 텍스처 값 중 하나를 할당한다:
Figure pct00012
(I1 + I2 + I4) > (I5 + I7 + I8)인 경우, P0에 7의 텍스처를 할당하고;
Figure pct00013
(I1 + I2 + I4) <= (I5 + I7 + I8)인 경우, P0에 8의 텍스처를 할당한다.
마지막으로, 네번째 차가 가장 큰 경우, 응용 프로그램은 하기의 2개의 텍스처 값 중 하나를 할당한다:
Figure pct00014
(I2 + I3 + I5) > (I4 + I6 + I7)인 경우, P0에 9의 텍스처를 할당하고;
Figure pct00015
(I2 + I3 + I5) <= (I4 + I6 + I7)인 경우, P0에 10의 텍스처를 할당한다.
따라서, 응용 프로그램은, 부등식에 기초하여, 11개의 상이한 텍스처 빈 중 하나에 각각의 픽셀을 할당한다. 당업자라면 이 예가 3x3 픽셀 창을 나타내지만, 어떤 실시예들이 5x5 창을 사용할 것이며, 이 때 각각의 부등식이 3개보다는 각각의 측면에서 10개의 픽셀 휘도를 가진다는 것을 잘 알 것이다.
선택된 픽셀에 대한 텍스처가 계산되었으면, 프로세스(4700)는 이어서 (4740에서) 픽셀이 속하는 텍스처 범위를 식별한다. 텍스처가 1차원 값이기 때문에, 텍스처 히스토그램의 각각의 빈은 그 한 차원을 따라 특정의 범위를 나타낸다. 색상 히스토그램에서와 같이, 상이한 텍스처 범위가 반드시 똑같은 길이를 갖지 않아도 된다.
프로세스(4700)는 또한 (4745에서) 이웃 픽셀들에서 가장 큰 변화의 방향을 식별함으로써 기울기 값을 계산한다. 어떤 실시예들은 수평 및 수직 둘 다에서 픽셀의 휘도의 변화의 방향 및 양을 식별하는 기울기 계산을 사용한다. 예를 들어, 어떤 실시예들은 상대 휘도 변화(즉, 수평 변화에 비교한 수직 변화)만을 측정하는 기울기를 사용한다. 어떤 실시예들은 기울기
Figure pct00016
이라는 식을 사용하고, 여기서 I는 다시 말하지만 휘도(앞서 주어진 텍스처 계산에 사용된 동일한 값)이다.
다시 도 51을 참조하면, P0에 대한 기울기는
Figure pct00017
이다. atan2 함수는 둘 다가 0은 아닌 임의의 실수 인수 (y, x)에 대해, 데카르트 평면(Cartesian plane)의 양의 x-축과 그 평면 상의 좌표(x, y)에 의해 주어지는 점 사이의 각도(단위: 라디안)를 제공하는 함수이다. 따라서, 어떤 실시예들의 기울기는 수직 휘도 변화와 수평 휘도 변화 사이의 상대 차에 관련되어 있는 각도이다.
기울기가 계산된 경우, 이 프로세스는 이어서 (3850에서) 픽셀이 속하는 기울기 범위를 식별한다. 이상에서 주어진 기울기는 1차원 값(즉, 단지 각도임)이다. 어떤 실시예들에서, 기울기는 2차원 값(예컨대, x-y 벡터 또는 각도 및 길이로서 표현됨)이다. 따라서, 기울기 히스토그램의 각각의 빈은 x 및 y 기울기 값의 특정의 범위를 나타낸다. 색상 히스토그램에서와 같이, 상이한 기울기 범위들이 반드시 데카르트 x-y 공간(Cartesian x-y space)에서 똑같은 크기를 갖지 않아도 된다.
픽셀의 3가지 상이한 특성들에 대한 범위들이 식별된 경우, 이 프로세스는 (4755에서), 동작(4720)에서 판정된 바와 같이, 픽셀이 속하는 영상의 각각의 타일에 대한 색상 히스토그램, 텍스처 히스토그램, 및 형상(기울기) 히스토그램에 픽셀을 부가한다. 언급한 바와 같이, 상기 도면들에 나타낸 타일링 방식에 대해, 이것은, 픽셀의 위치에 따라, 3개의 상이한 히스토그램, 6개의 상이한 히스토그램, 또는 12개의 상이한 히스토그램일 수 있다.
현재 선택된 픽셀을 분석하였으면, 프로세스(4700)는 (4760에서) 영상에서의 임의의 부가의 픽셀이 분석되지 않은 채로 남아 있는지를 판정한다. 부가의 픽셀이 남아 있을 때, 프로세스(4700)는 그 다음 픽셀을 선택하기 위해 동작(4715)으로 되돌아간다. 모든 픽셀이 분석되었으면, 프로세스가 종료한다.
도 52는 히스토그램들을 발생하고 유사성이 있는지 영상들을 비교하는 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램의 일부분의 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 도 52는 히스토그램 발생 모듈(5200), 유사성 비교기(5250), 및 영상 선택기(5275)을 나타낸 것이다. 그에 부가하여, 이 도면은 영상 데이터(5280)(즉, 응용 프로그램에 의해 저장된 영상 데이터 구조체 및 영상 파일) 및 컬렉션 데이터(5285)(즉, 응용 프로그램에 의해 저장된 컬렉션 데이터 구조체)를 나타내고 있다.
히스토그램 발생 모듈(5200)은 영상(예컨대, 영상 보기 응용 프로그램이 가져오기하고 있는 영상)을 수신하고, 영상의 다양한 영역들에 대한 색상 히스토그램, 텍스처 히스토그램 및 형상 히스토그램을 발생하고, 이어서 이 히스토그램들을 영상과 함께 저장한다. 히스토그램 발생 모듈(5200)은 영상 타일러(image tiler)(5205), HSV 변환기(5210), 휘도 계산기(5215), 텍스처 계산기(5220), 기울기 계산기(5225), 및 히스토그램 발생기(5230)를 포함하고 있다.
도시된 바와 같이, 영상 타일러(5205), HSV 변환기(5210), 및 휘도 계산기(5215)는 영상 데이터를 수신한다. 영상 타일러(5205)는 영상을 수신하고, 영상의 차원을 식별하며, 히스토그램 발생 모듈(5200)이 히스토그램을 발생할 상이한 영역들에 대한 영상에서의 좌표(즉, 픽셀 좌표)를 계산한다. 영상 타일러(5205)는 이 타일 좌표들을 히스토그램 발생기(5220)로 전달한다.
HSV 변환기(5210)는 영상에 대한 픽셀 데이터를 수신하고, 각각의 픽셀을 (예컨대, RGB 공간으로부터) HSV 색 공간으로 변환한다. 당업자라면 다른 실시예들이 상이한 버전의 RGB-HSV 변환을 사용할 수 있거나, 완전히 상이한 색 공간을 사용할 수 있다는 것을 잘 알 것이다. HSV 변환기는 영상의 각각의 픽셀에 대한 이 색 공간 데이터를 히스토그램 발생기(5220)로 전달한다.
휘도 계산기(5215)는 또한 영상에 대한 픽셀 데이터를 수신하고 각각의 픽셀에 대한 휘도 값을 계산한다. HSV 변환기에서와 같이, 다른 실시예들은 RGB 픽셀 값으로부터 휘도를 도출하기 위해 다른 계산을 사용할 수 있다. 휘도 계산기(5215)는 이 휘도 데이터를 텍스처 계산기(5220) 및 기울기 계산기(5225)에 제공할 수 있다.
텍스처 계산기(5220)는 (예컨대, 앞서 기술한 텍스처 알고리즘 또는 다른 프로세스를 사용하여) 각각의 픽셀에 대한 텍스처 값을 계산하고, 이 값들을 히스토그램 발생기(5220)에 제공한다. 기울기 계산기(5225)는 (예컨대, 앞서 기술한 기울기 알고리즘 또는 다른 프로세스를 사용하여) 각각의 픽셀에 대한 기울기 값을 계산하고, 기울기 값을 히스토그램 발생기(5220)에 제공한다.
히스토그램 발생기(5220)는 색상 데이터, 텍스처 값, 및 기울기 값을 사용하여, 영상 타일러(5205)로부터 수신되는 타일들 각각에 대한 히스토그램을 발생한다. 히스토그램 발생기(5220)는, 예컨대, 각각의 픽셀에 대한 텍스처 값을 수신한다. 특정의 픽셀에 대해, 히스토그램 발생기는, 픽셀 좌표에 기초하여, 픽셀이 타일들 중 어느 타일(어쩌면 2개 이상의 타일)에 속하는지를 식별한다. 이 발생기는 이어서 텍스처 값을 하나 이상의 타일에 대한 히스토그램의 적절한 빈에 추가한다. 히스토그램 발생기(5220)는 이 히스토그램들을 영상에 대한 영상 데이터(5280)에 저장한다.
유사성 비교기(5250)는 특정의 사용자-선택 영상에 유사한 영상들을 식별한다. 도시된 바와 같이, 유사성 비교기(5250)는 비교 점수 발생기(5255) 및 임계값 검사기(5260)를 포함하고 있다. 사용자가 특정의 영상에 대한 유사한 영상들을 요청할 때, 유사성 비교기(5250)는 컬렉션 데이터(5285)로부터 영상들의 목록(예컨대, 특정의 컬렉션 내의 영상들의 목록)을 수신한다. 유사성 비교기(5250)는 영상들에 대한 히스토그램들을 검색하고, 각각의 영상 쌍에 대한 하나 이상의 비교 점수를 계산한다.
임계값 검사기(5260)는 비교 점수를 수신하고, 각각의 영상 쌍이 유사한 것으로서 자격이 있는지를 판정한다. 임계값 검사기는, 앞서 기술한 바와 같이, 상이한 점수들에 대해(어떤 실시예들에서, 27개의 상이한 비교 점수가 있음) 각종의 상이한 검사들을 수행할 수 있다. 임계값 검사기(5260)는 유사한 영상들의 목록을 영상 선택기(5275)에 출력하고, 영상 선택기(5275)는 GUI에 대한 특정의 영상들의 선택을 관리한다.
B. 다수의 영상들의 사용자 선택
언급한 바와 같이, 어떤 실시예들은 선택된 영상들을 동시에 보기 위해 다수의 영상들을 선택하는 다양한 다른 방법들을 제공한다. 예를 들어, 응용 프로그램은 멀티-터치 지원 디바이스(즉, 터치스크린, 터치 패드 등과의 다수의 상이한 접촉점을 인식할 수 있는 디바이스) 상에서 동작하고, 축소판 디스플레이 구역 상에서의 멀티-터치 입력을 축소판들의 블록 선택으로 변환할 수 있다. 게다가, 어떤 실시예들은 사용자가 축소판을 한 세트의 선택된 영상들에 추가하기 위해 축소판을 길게 누를 수 있게 해준다.
도 53은 영상 디스플레이 구역 내의 축소판들의 블록을 선택하는 어떤 실시예들의 프로세스(5300)를 개념적으로 나타낸 것이다. 어떤 실시예들에서, 응용 프로그램은 이 블록을 선택하기 위해 멀티-터치 선택을 수신한다. 도 53은 이러한 축소판들의 블록의 선택의 예를 나타내는 도 54 및 도 55를 참조하여 기술될 것이다. 이 도면들 둘 다는, 앞서 기술한 GUI들에서의 대응하는 디스플레이 구역들에 유사한, 축소판 디스플레이 구역(5405) 및 영상 디스플레이 구역(5415)을 포함하는 GUI(5400)의 3개의 스테이지를 나타내고 있다. 도 54의 제1 스테이지(5410) 및 도 55의 제1 스테이지(5510) 둘 다는 어떤 영상도 선택되지 않은 GUI(5400)를 나타내고 있다.
도시된 바와 같이, 프로세스(5300)는 (5305에서) 축소판 디스플레이 구역 내에서의 2개의 개별적이고 적어도 부분적으로 동시에 일어나는 선택들을 수신하는 것으로 시작한다. 응용 프로그램은 멀티-터치 입력을 변환할 수 있는 디바이스의 터치스크린으로부터 이 선택들을 수신할 수 있다. 예를 들어, 사용자는 두 손가락을 사용하여, 축소판 디스플레이 구역에서 2개의 개별적인 축소판을 누를 수 있다. 사용자가 두 손가락으로 정확히 동시에 터치스크린과 초기 접촉할 가능성이 없기 때문에, 어떤 실시예들은 입력들이 부분적으로 동시에 일어날 것만을 요구한다.
이 프로세스는 이어서 (5310에서) 축소판 디스플레이 구역에서 제1 터치 선택과 연관되어 있는 제1 축소판을 식별하고 (5315에서) 제2 터치 선택과 연관되어 있는 제2 축소판을 식별한다. 어떤 실시예들은 각각의 축소판을, 축소판들이 디스플레이 구역을 가로질러 스크롤할 때 변하는 화면 픽셀들의 특정의 2차원 어레이와 연관시킨다. 사용자가 축소판 격자 상에서 화면을 터치할 때, 이 터치 입력은 한 세트의 픽셀 값들(예컨대, 특정의 반경의 원, 특정의 변 길이를 갖는 정사각형 등)로 변환된다. 응용 프로그램은 이어서, 사용자가 어느 축소판을 선택하고 있는지를 판정하기 위해, 이 픽셀 값들을 축소판들의 픽셀 값들과 비교한다. 어떤 실시예들은 터치 입력 픽셀들의 가장 많은 부분에 대응하는 축소판을 식별한다.
도 54의 제2 스테이지(5420)는 사용자가 그의 검지 손가락으로 제1 축소판(5425)을 탭핑하고 그의 엄지 손가락으로 제2 축소판(5435)을 탭핑하는 것을 나타내고 있다. 좌측 상단 축소판이 컬렉션에서의 제1 영상을 나타내는 것으로 가정하면, 이들은 영상들의 정렬된 컬렉션에서의 제3 및 제8 축소판이다. 도 55의 제2 스테이지(5520)에서, 사용자는 제1 축소판(5505)(정렬된 컬렉션에서의 제4 축소판) 및 동일한 제2 축소판(5435)을 탭핑한다.
선택을 위한 경계 축소판들이 식별된 경우, 프로세스(5300)는 (5320에서) 제1 축소판이 디스플레이 구역에서 제2 축소판의 앞에 있는지를 판정한다. 컬렉션 데이터 구조체에서의 순서 값(예컨대, 축소판을 저장하는 영상 데이터 구조체에 대한 참조의 어레이 인덱스)으로부터 순서가 결정될 수 있거나, 축소판들이 디스플레이되는 화면 픽셀들로부터 상대 순서가 도출될 수 있다.
어떤 실시예들은 제1 축소판으로서 수신된 제1 입력 및 제2 축소판으로서 수신된 제2 입력을 사용한다. 그렇지만, 선택을 적절히 정의하기 위해, 응용 프로그램은 순서상 제1 축소판이 제2 축소판보다 앞에 나오는 것을 필요로 한다. 그에 따라, 제1 축소판이 제2 축소판 뒤에 있는 경우, 이 프로세스는 (5325에서) 제1 축소판이 순서에서 먼저 나오도록 제1 축소판과 제2 축소판을 바꾼다.
그 다음에, 이 프로세스는 (5330에서) 격자 내에서 제1 축소판부터 제2 축소판까지의 축소판들을 갖는 모든 영상을 선택한다. 예를 들어, 도 54에서, 축소판 3 및 축소판 8이 제1 및 제2 축소판이다. 그에 따라, 축소판 3 내지 축소판 8 모두가 이 사용자 동작에 의해 선택될 것이다. 이와 유사하게, 도 55에서, 축소판 4 내지 축소판 8이 선택될 것이다.
이 프로세스는 이어서 (5335에서) 선택된 축소판 상에 선택 표시자를 디스플레이한다. 어떤 실시예들은, 선택된 축소판이 보조 선택 영상(즉, 몇개의 선택된 영상들 중 하나)에 대응하는지 주 선택 영상(즉, 영상 디스플레이 구역에 보여지는 유일한 영상인 활성 영상)에 대응하는지를 나타내기 위해, 2개의 상이한 형태의 선택 표시자를 사용한다.
그에 따라, 프로세스(5300)는 또한 (5340에서) 선택된 영상들을 영상 디스플레이 구역에 디스플레이한다. 다수의 영상들이 프로세스(5300)에 의해 블록 형태로 선택될 때, 어떤 실시예들은 영상들 전부를 영상 디스플레이 구역에 항상 디스플레이한다. 어떤 실시예들에서, 응용 프로그램은, 각각의 영상에 대해 대략 같은 수의 픽셀들을 사용함으로써, 동일한 시각적 가중치를 사용하여 영상들 전부를 디스플레이한다. 이상적인 디스플레이를 식별하는 어떤 실시예들의 프로세스는 이하에서 이 섹션의 서브섹션 C에 기술될 것이다.
도 54의 제3 스테이지(5430) 및 도 55의 제3 스테이지(5530)는 그 결과 얻어진 각자의 멀티-터치 블록 선택의 디스플레이를 나타내고 있다. 스테이지(5430)에서, 축소판(5425)부터 축소판(5435)까지의 6개의 축소판 전부가 가는 하이라이트로 디스플레이된다. 그에 부가하여, 응용 프로그램은 6개의 영상을 영상 디스플레이 구역에 똑같은 크기로 디스플레이한다. 스테이지(5530)는 하나 더 적은 축소판이 선택된 경우의 동일한 결과를 나타내고 있다. 응용 프로그램이 5개의 영상만을 영상 디스플레이 구역(5415)에 디스플레이하기 때문에, 영상들 중 2개는 하단 행을 따라 가운데에 오도록 디스플레이되지만, 상단 행을 따라 디스플레이된 다른 영상들과 동일한 크기를 가진다. 이 2개의 영상들로부터 명백한 바와 같이, 어떤 실시예들은 축소판들이 축소판 디스플레이 구역에서 보이는 순서(이는 차례로 영상들이 컬렉션 데이터 구조체에 저장되는 순서임)로 영상들을 영상 디스플레이 구역에 디스플레이한다.
멀티-터치 블록 선택에 부가하여, 어떤 실시예들은 사용자가 축소판을 한 그룹의 선택된 영상들 중 하나로서 선택하기 위해 축소판을 길게 누를 수 있게 해준다. 사용자가 축소판을 단지 탭핑하기만 할 때, 이는 대응하는 영상의 선택이 유일한 선택된 영상으로 되게 한다. 한편, 사용자가 입력을 유지할 때(예컨대, 임계 지속기간 동안 터치스크린을 누르고 있을 때), 응용 프로그램은 임의의 이전에 선택된 영상들의 선택을 유지하고 축소판을 한 세트의 선택된 영상들에 추가한다.
도 56은 선택되지 않은 축소판 상에서의 사용자 입력을 축소판의 선택으로 변환하는 어떤 실시예들의 프로세스(5600)를 개념적으로 나타낸 것이다. 사용자는 또한 (주 선택 또는 보조 선택일 수 있는) 이미 선택된 축소판을 탭핑하거나 길게 누를 수 있고, 이 입력들은 도 66을 참조하여 이하에서 기술된다. 그에 부가하여, 이 프로세스가 터치스크린 입력에 응답하는 것으로 기술되어 있지만, 기술 분야의 당업자라면 어떤 실시예들이 비-터치스크린 입력(non-touchscreen input)에 대해 (예컨대, 탭핑 대신에 마우스 클릭을 사용하고 터치스크린을 길게 누르는 것 대신에 마우스 버튼을 길게 누르는 것에 의해) 유사한 프로세스를 구현한다는 것을 잘 알 것이다. 도 56은 6개의 스테이지(5710 내지 5760)에 걸쳐 GUI(5400)에서의 다양한 선택 입력을 나타내고 있는 도 57을 참조하여 기술될 것이다.
도시된 바와 같이, 프로세스(5600)는 (5605에서) 축소판 디스플레이 구역 내에서 선택되지 않은 축소판 상에서 싱글 터치 입력을 수신하는 것으로 시작한다. 어떤 실시예들에서, 응용 프로그램은 축소판 디스플레이 구역 상에서의 모든 입력을 해석하는 단일 프로세스를 가진다. 다른 실시예들에서, 응용 프로그램은 입력 유형[예컨대, 탭핑, 홀드(hold), 스와이프 등] 및 화면 위치를 제공하는 형태로 멀티-터치 정보를 터치스크린 디바이스로부터 수신한다. 응용 프로그램은 이어서 그의 현재 상태에 기초하여 이 이벤트(입력 및 위치)를 취할 동작(예컨대, 아이템을 선택하는 것, 디스플레이 구역을 슬라이딩시키는 것, 편집을 수행하는 것 등)으로 해석한다. 그렇지만, 이 개념적인 프로세스는 축소판 디스플레이 구역에서의 선택되지 않은 축소판 상에서의 싱글 터치 입력(즉, 탭핑 또는 홀드)의 수신만을 처리한다.
이 프로세스는 이어서 (5610에서) 터치 입력과 연관되어 있는 선택되지 않은 축소판을 식별한다. 도 53을 참조하여 앞서 기술한 바와 같이, 어떤 실시예들은 각각의 축소판을, 축소판들이 디스플레이 구역을 가로질러 스크롤할 때 변하는 화면 픽셀들의 특정의 2차원 어레이와 연관시킨다. 사용자가 축소판 격자 상에서 화면을 터치할 때, 이 터치 입력은 한 세트의 픽셀 값들(예컨대, 특정의 반경의 원, 특정의 변 길이를 갖는 정사각형 등)로 변환된다. 응용 프로그램은 이어서, 사용자가 어느 축소판을 선택하고 있는지를 판정하기 위해, 이 픽셀 값들을 축소판들의 픽셀 값들과 비교한다. 어떤 실시예들은 터치 입력 픽셀들의 가장 많은 부분에 대응하는 축소판을 식별한다.
이 프로세스는 이어서 (5615에서) 입력이 터치스크린으로부터 제거되었는지를 판정한다. 이 개념적인 프로세스에서, 응용 프로그램은 아직 탭핑과 홀드 간의 판정을 하지 않고 있지만, 터치스크린 디바이스는 터치스크린의 특정의 부분이 터치 입력을 수신하고 있다는 기본 데이터를 응용 프로그램에 제공한다. 언급한 바와 같이, 어떤 실시예들에서, 탭핑 및 홀드가 디바이스 레벨에서(예컨대, 디바이스의 운영 체제 내의 프레임워크에 의해) 구별되고, 응용 프로그램은 실제로 이 상이한 입력들을 처리하는 몇 개의 상이한 이벤트-기반 프로세스(event-driven processes)를 가질 것이다.
입력이 아직 터치스크린으로부터 제거되지 않았을 때, 이 프로세스는 (5620에서) 입력이 임계 지속기간 동안 존재했는지를 판정한다. 이 지속기간은, 입력이 탭핑보다는 길게 누르기로서의 자격을 갖기 위해, 사용자가 터치스크린과의 접촉을 유지해야만 하는 시간의 길이이다. 홀드에 대한 임계 지속기간에 아직 도달하지 않았을 때, 응용 프로그램은 5615로 되돌아간다. 본질적으로, 이 2개의 동작들은 탭핑(임계 지속기간에 도달하기 전에 사용자가 터치스크린으로부터 입력을 제거한 것으로 프로세스가 판정하는 경우)과 홀드(입력이 여전히 존재하는 상태에서 지속기간에 도달하는 경우) 간의 판정을 형성한다. 언급한 바와 같이, 어떤 실시예들은 응용 프로그램이 동작하고 있는 디바이스의 프레임워크로부터 이 판정을 수신한다.
임계 지속기간 이전에 입력이 터치스크린으로부터 제거될 때, 이 프로세스는 (5625에서) 식별된 축소판을 선택하고, (5630에서) 임의의 다른 축소판들의 선택을 제거한다. 즉, 응용 프로그램은 식별된 축소판을 유일한 선택된 축소판이 되게 한다. 이 프로세스는 이어서 (5635에서) 축소판과 연관되어 있는 영상을 영상 디스플레이 구역에 유일한 영상으로서 디스플레이한다. 이어서, 프로세스는 종료한다.
도 57의 제1 스테이지(5710)는 제1 영상이 영상 디스플레이 구역(5415)에 디스플레이되고 그의 대응하는 축소판(5705)이 주 선택(primary selection)으로서 하이라이트되어 있는 GUI(5400)를 나타내고 있다. 도시된 바와 같이, 이 스테이지에서, 사용자는 탭핑 입력으로 축소판(5715)을 선택한다. 제2 스테이지(5720)는 이 탭핑 선택의 결과, 응용 프로그램이 이제 축소판(5715)을 주 선택으로서 하이라이트하고 있고, 축소판(5705)이 더 이상 하이라이트되지 않는 것을 나타내고 있다. 그에 부가하여, 축소판(5715)에 대응하는 영상(5717)이 영상 디스플레이 구역(5415)에 디스플레이되는데, 그 이유는 이것이 유일한 선택된 영상이기 때문이다.
도 56으로 돌아가서, 임계 지속기간 동안 축소판 상에 입력이 존재할 때, 응용 프로그램은 (5640에서) 식별된 축소판을 선택한다. 응용 프로그램은 이어서 (5645에서) 축소판과 연관되어 있는 영상을 임의의 다른 선택된 영상들과 함께 디스플레이한다. 즉, 하나 이상의 영상이 이미 선택되었을 수 있고, 응용 프로그램은 이 영상들 전부를 영상 디스플레이 구역에 디스플레이한다. 이어서, 프로세스는 종료한다.
제2 스테이지(5720)는 사용자가 길게 누르기 선택(개념적으로 나타내어져 있고 GUI의 일부가 아닌, 작은 시계 아이콘으로 나타내어져 있음)으로 축소판(5725)을 선택하는 것을 나타내고 있다. 그 결과, 제3 스테이지(5730)에서, 응용 프로그램은 영상(5717) 및 [축소판(5725)에 대응하는] 영상(5727) 둘 다를 디스플레이한다. 게다가, 축소판(5715) 및 축소판(5725) 둘 다는 선택된 것으로 하이라이트되어 있다. 그렇지만, 응용 프로그램은, 이 축소판들 둘 다가 보조 선택이라는 것과 이 때 주 선택이 없다는 것을 나타내기 위해, 보다 연한 선택 표시 하이라이트를 사용한다. 2개의 영상(5717 및 5727)이 종횡비를 유지하고(즉, 영상을 왜곡시키거나 크로핑하는 일이 없음) 영상 크기를 최대화하도록 디스플레이되며, 이에 대해서는 이하에서 서브섹션 C에서 설명할 것이다.
제3 스테이지(5730)는 또한 사용자가 또 다시 [이 때는 축소판(5735) 상에서] 길게 누르기 선택을 수행하는 것을 나타내고 있다. 스테이지(5740)에서, 응용 프로그램은 영상(5737)을 영상 디스플레이 구역에 추가하고, 필요에 따라 디스플레이 구역 내의 다른 영상들을 재배열한다. 게다가, 축소판(5735)은 이제, 다른 2개의 축소판과 동일하게, 보조 선택 하이라이트로 하이라이트된다.
그에 부가하여, 사용자는 이 스테이지에서 멀티-터치 블록 선택을 수행하여, 축소판들(5745 및 5755)을 탭핑한다. 도시된 바와 같이, 스테이지(5750)에서, 이것으로 인해, 2개의 탭핑된 축소판에 부가하여 축소판(5765)이 선택된다. 그 결과, 스테이지(5750)에서, 6개의 축소판이 이제 보다 연한 선택 표시로 하이라이트되고, 대응하는 6개의 영상들이 영상 디스플레이 구역에 디스플레이된다. 응용 프로그램은, 6개의 영상을 동일한 시각적 가중치로 디스플레이 구역에 들어가게 하기 위해, 이전의 스테이지들과 비교하여 이 영상들의 크기를 감소시켰다.
스테이지(5750)에서, 사용자는 선택되지 않은 축소판(5775)를 탭핑한다. 스테이지(5760)은 이 선택의 결과를 나타내고 있으며, 영상(5777)이 단독으로 영상 디스플레이 구역에 디스플레이되어 있다. 다른 6개의 축소판의 선택이 제거되고, 응용 프로그램은 축소판(5775) 상에 보다 두꺼운 선택 표시 하이라이트를 디스플레이한다.
도 58은 어떤 실시예들의 휴대폰 및 미디어 플레이어 GUI(1700)에서의 한 세트의 유사한 선택 동작을 나타낸 것이다. 제1 스테이지(5810)는 사용자가 축소판(5805)의 탭핑 선택을 하고, 그 결과 대응하는 영상이 디스플레이 구역(1715)에 디스플레이되는 것을 나타내고 있다. 제2 스테이지(5820)는 축소판(5815)의 길게 누르기 선택을 나타내고 있고, 따라서 대응하는 영상이 이어서 영상 디스플레이 구역에 추가된다. 그 다음에, 사용자는 축소판들(5825 및 5835)의 동시적인 탭핑 선택을 하고, 따라서 이 축소판들은 물론 그들 사이에 있는 축소판(5845)에 대응하는 영상들 모두가 영상 디스플레이 구역에 추가된다.
C. 다수의 영상들을 디스플레이하기
상기 서브섹션들은, 영상 디스플레이 구역에 동시에 디스플레이하기 위한 다수의 영상들을 선택하기 위해, 어떤 실시예들에서 이용가능한 상이한 동작들을 기술하였다. 간략히 기술되어 있는 바와 같이, 영상 디스플레이 구역 내에 다수의 영상들을 디스플레이할 때, 어떤 실시예들은 각각의 영상의 종횡비를 유지하면서, 또한 각각의 영상에 동일한 시각적 가중치(예컨대, 화면 픽셀의 수)를 부여한다.
도 59는 다수의 영상들을 영상 디스플레이 구역 내에 동시에 디스플레이하는 어떤 실시예들의 프로세스(5900)를 개념적으로 나타낸 것이다. 도 59는, 상이한 종횡비를 가지는 4개의 영상을 동일한 시각적 가중치로 디스플레이하기 위해, 어떤 실시예들에 의해 수행되는 계산들을 개념화하고 있는 도 60 내지 도 65를 참조하여 기술될 것이다.
도시된 바와 같이, 프로세스(5900)는 (5905에서) 영상 디스플레이 구역에 디스플레이할 N개의 영상을 수신하는 것으로 시작한다. 이 경우에, N은 영이 아닌 양의 정수(즉, 1, 2, 3 등)이다. 단지 하나의 영상이 있을 때, 어떤 실시예들은 프로세스(5900)를 수행하지 않지만, 이 프로세스는 전체 크기로 디스플레이된 하나의 영상의 정확한 결과를 생성한다. 이 영상들은 상기 서브섹션들에 기술된 사용자 상호작용들(예컨대, 블록 선택, 유사한 영상들을 식별하라는 요청, 또는 다수의 영상을 선택하고 디스플레이하는 다른 선택) 중 임의의 것은 물론, 본 명세서에 기술되지 않은 임의의 다른 상호작용을 통해 수신될 수 있다.
도 60은 사용자가 4개의 축소판의 블록 선택을 하는 GUI(6000)를 나타낸 것이다. GUI(6000)는 4:3 종횡비를 갖는 것으로 확대도에 도시되어 있는 영상 디스플레이 구역(6005)을 포함하고 있다. 어떤 실시예들에서, 영상 디스플레이 구역은, GUI가 디스플레이되는 디바이스의 디스플레이 화면의 해상도 및 화면 종횡비, 축소판 디스플레이 구역의 크기, 다른 GUI 구역들이 디스플레이의 일부분을 차지하는지 등에 따라, 크기(즉, 픽셀의 수) 및 종횡비가 변할 것이다.
영상을 영상 디스플레이 구역에 디스플레이하라는 명령을 수신할 시에, 이 프로세스는 (5910에서) 수신된 영상들의 평균 종횡비를 계산한다. 이 평균 종횡비는 영상들이 들어가게 될 영상 디스플레이 구역 내의 한 세트의 영역들에 대한 종횡비로서 사용된다. 도 61에 나타낸 바와 같이, 4개의 선택된 영상(6105 내지 6120)은 4:3, 3:4, 16:9, 및 4:3의 종횡비를 가진다. 영상(6105) 및 영상(6120)은 동일한 종횡비를 갖지만, 상이한 크기를 가진다. 많은 경우에, 영상들 모두가 이용가능한 화면 픽셀들의 수보다 큰 해상도(즉, 정의된 픽셀들의 수)를 가질 것이며, 다수의 영상들이 디스플레이될 때 특히 그렇다. 따라서, 각각의 영상은 화면의 보다 작은 부분을 할당받는다. 영상들(6105 내지 6120)의 평균 종횡비는, 영역(6125)으로 나타낸 바와 같이, [(4/3) + (3/4) + (16/9) + (4/3)]/4 = 187/144이다.
프로세스(5900)는 이어서 (5915에서) 영상 디스플레이 구역을, 계산된 평균 종횡비를 갖는 적어도 N개의 영상에 대해 영상당 화면 면적을 최대화하는 수의 행 및 열로 분할한다. 디스플레이 영역들 모두가 동일한 차원을 가질 것이기 때문에, 영역들을 담아 넣는 가장 효율적인 방법은 격자 형태로 하는 것이다. 따라서, 5개의 영상이 있는 경우, 영역들의 격자는 3x2 격자, 2x3 격자일 수 있거나, 영상들이 극히 긴 경우, 1x5 또는 5x1 격자일 수 있다.
최적의 해결 방안을 식별하기 위해, 어떤 실시예들은 N개의 영상을 보유하는 데 사용될 수 있는 가능한 행/열 조합들의 공간을 테스트하여, 어느 조합이 평균 종횡비를 갖는 영역당 최대 가능 면적을 제공하는지를 판정한다. 어떤 실시예들은 하나의 열로 시작하고 디스플레이할 영상들의 수까지 반복한다(그렇지만, 어떤 실시예는 열의 수에 상한선(cap)을 둔다).
특정의 수의 열에 대해, 응용 프로그램은 영상들 전부를 디스플레이하는 데 필요한 행의 수를 결정한다. 예를 들어, 3개의 열 및 5개의 영상에 대해, 2개의 행이 필요할 것이지만, 영역들 중 하나가 사용되지 않을 것이다. 응용 프로그램은 이어서 특정의 수의 열 및 행에 대해 최대 크기의 영역의 폭을, 보기 구역의 전체 폭을 열의 수로 나눈 것으로서 계산한다(어쩌면 디스플레이에서 영상들 사이에 적어도 작은 간극이 있도록 하기 위해 어떤 상수를 차감함). 응용 프로그램은 또한 최대 크기의 영역의 높이를, 보기 구역의 전체 높이를 행의 수로 나눈 것으로서 계산한다(다시 말하지만, 어쩌면 어떤 상수를 차감함). 응용 프로그램은 이어서 이 최대 영역 내에 들어가는 평균 종횡비를 가지는 영역의 차원을 결정한다. 사용되는 열의 수는 이 영역의 면적을 최대화하는 수이다.
도 62는, 행이 2개인 경우, 4:3 영상 디스플레이 구역(6005) 내에 187:144 종횡비 영역(6125)에 대한 이상적인 열의 수가 2라는 것을 나타내고 있다. 실제로, 187:144가 4:3에 아주 가깝기 때문에, 이 격자는 전체 면적을 거의 채운다.
그 다음에, 응용 프로그램은 (5920에서), 행 및 열의 수에 기초하여, 각각의 영상에 이용가능한 면적을 계산한다. 어떤 실시예들에서, 이 계산은, 이전의 단락들에서 기술된 바와 같이, 동작(5915)에서 행 및 열의 수를 결정하는 데 사용되는 최대 크기의 영역이다. 이 예에서, 이 면적은 영상 디스플레이 구역(6005) 내의 영역(6125)의 면적이다.
응용 프로그램은 이어서 (5925에서) 이용가능한 구역(즉, 격자 영역들의 크기) 내에 들어갈 때 가장 작은 면적을 가지게 될 영상을 식별한다. 이것은 일반적으로 평균 종횡비와 가장 많이 상이한 종횡비를 가지는 영상일 것이다. 어떤 실시예들에서, 이 영상을 식별하기 위해, 응용 프로그램은, 영상의 종횡비를 유지하고 영상 전체를 격자 영역에 들어가게 하기 위해, 각각의 영상의 높이 및 폭을 계산한다. 평균보다 큰 종횡비를 가지는 영상에 대해, 폭은 격자 영역의 폭과 같을 것인 반면, 높이는 격자 영역의 높이로부터 감소될 것이다. 평균보다 작은 종횡비를 가지는 영상에 대해, 높이는 격자 영역의 높이와 같을 것인 반면, 폭은 격자 영역의 폭으로부터 감소될 것이다.
도 63은 격자 영역(6125) 내의 상이한 종횡비의 영상들을 나타낸 것이다. 4:3 영상(6105)은 격자 영역의 97%를 차지하고[다른 4:3 영상(6120)은 동일한 부분을 차지함], 16:9 영상(6115)은 격자 영역의 73%를 차지하며, 3:4 영상(6110)은 격자 영역의 58%를 차지한다. 그에 따라, 영상(6110)은 격자 영역 내에 들어갈 때 가장 작은 면적을 갖는 영상으로서 식별된다. 그에 따라, 각각의 영상이 동일한 수의 픽셀을 사용하기 위해, 각각의 영상은 격자 영역 면적의 58%를 차지할 것이다.
이 프로세스는 이어서 (5930에서), 종횡비를 유지하고, 동작(5925)에서 판정된 바와 같이, 격자 영역 내에서 가장 작은 면적을 갖는 영상과 동일한 면적을 사용하기 위해, 각각의 영상에 대한 폭 및 높이를 계산한다. 특정의 영상에 대해, 어떤 실시예들은 폭을 최소 면적과 영상의 종횡비의 곱의 제곱근으로서 계산한다. 특정의 영상의 높이는 폭을 종횡비로 나눈 것으로서 계산된다.
도 64는 영상 디스플레이 구역에서 영상(6110)과 동일한 면적을 차지하도록 맞춰질 때 영상(6105)[크기가 영상(6120)과 동등함] 및 영상(6115)의 크기를 나타내고 있다. 이 영상들 둘 다는 영역(6125)의 58%만을 차지하도록 크기가 축소된다. 예시적인 수를 사용하기 위해, 영역(6125)이 374 픽셀의 폭을 갖고 288 픽셀의 높이를 가지는 경우, 디스플레이하기 위한 영상(6105)의 크기는 대략 288 픽셀 x 216 픽셀일 것이다. 영상(6115)의 크기는 대략 333 픽셀 x 187 픽셀일 것이다. 도 63에 도시된 영상(6110)의 크기는 대략 216 픽셀 x 288 픽셀일 것이다.
프로세스(5900)는 (5935에서) 각각의 영상을 디스플레이 구역에서의 그의 영역에 할당한다. 어떤 실시예들에서, 응용 프로그램은 영상들을 순서(예컨대, 축소판 디스플레이 구역 내에서의 그의 순서, 이 순서는 차례로 컬렉션 내에서의 그의 순서에 의해 결정됨)대로 취하고 이를 격자 영역들에 할당한다. 그에 부가하여, 마지막 행에 있는 격자 영역들 중 일부가 사용되지 않을 때, 응용 프로그램은 이 격자 영역들을 제거하고 하단 행의 격자 영역들을 가운데로 오게 한다.
마지막으로, 이 프로세스는 (5940에서) 영상 디스플레이 구역 내에서 할당된 영역들에 할당된 크기로 영상들을 디스플레이한다. 도 65는 영상들(6105 내지 6120)이 영상 디스플레이 구역(6005) 내에 디스플레이되어 있는 것을 나타낸 것이다. 알 수 있는 바와 같이, 영상들 모두는 (예컨대, 사람 관찰자에게) 동일한 크기로 나타나는데, 그 이유는 이들 각각이 동일한 수의 픽셀을 가지기 때문이다. 이것은 영상들 중 어느 것도, 단순히 다른 영상들보다 크다는 것으로 인해, 영상들의 비교에서 더 바람직하지는 않다는 유익한 결과를 제공한다. 다중 영상 디스플레이 기능의 통상적인 용도가 사용자가 동일한 장면의 몇개의 사진 중 어느 것을 유지할지를 결정하는 것이기 때문에, 영상들이 동일한 크기로 나타나게 하는 것은 사용자에게 상당한 이점을 제공한다.
V. 하나 이상의 영상들에 대한 동작
상기 섹션 IV는, 한 그룹의 유사한 영상들을 자동으로 식별하는 것, 축소판들의 블록 선택, 및 대응하는 영상을 한 그룹의 선택된 영상에 추가하기 위해 축소판을 길게 누르는 것을 비롯하여, 하나 이상의 영상을 선택하기 위해 어떤 실시예들에서 이용가능한 다양한 기법들을 기술하고 있다. 이하의 섹션은 영상에 태그를 적용하는 것, 선택에서 영상들을 순환하는 것은 물론, 개개의 영상들을 선택 및 선택 해제하는 것을 위해 사용될 수 있는 다양한 동작들을 기술하고 있다.
A. 선택 및 선택 해제 동작
도 66은 영상들을 선택/선택 해제하는 것 및 선택된 영상들을 보는 것에 관련되어 있는 어떤 실시예들의 GUI의 상이한 상태들 및 이 상태들 간의 천이를 설명하는 상태도(6600)를 개념적으로 나타낸 것이다. 기술 분야의 당업자라면 어떤 실시예들의 GUI가 모든 상이한 유형의 입력 이벤트에 관련되어 있는 많은 상이한 상태를 가진다는 것과 상태도(6600)가 이 이벤트들의 서브셋에 특별히 초점이 맞추어져 있다는 것을 잘 알 것이다. 상태도(6600)는 다양한 선택 및 선택 해제 동작들을 나타내고 있는 도 67 내지 도 71을 부분적으로 참조하여 기술될 것이다. 상태도(6600)는 물론 첨부 도면들은 GUI의 상태들을 변경하기 위한 터치 상호작용들을 기술하며 예시하고 있다. 기술 분야의 당업자라면, 커서 컨트롤러 제스처 및 버튼 클릭, 키보드 입력, 또는 터치 패드/트랙패드 입력 등의 다양한 다른 상호작용들이 또한 유사한 선택 동작들을 위해 사용될 수 있다는 것을 잘 알 것이다. 이 도면에서, 천이 조건들 중 다수는 사용자 상호작용(예컨대, "좌측 스와이프")으로서 도시되어 있다. 기술 분야의 당업자라면, 영상 보기 및 편집 응용 프로그램에 의한 이러한 사용자 입력의 수신에 응답하여 상태 천이가 일어날 것임을 잘 알 것이다.
단지 하나의 영상이 선택될 때, GUI는 영상 디스플레이 구역에 하나의 선택된 영상을 디스플레이하고 대응하는 축소판 상에 주 선택 표시자를 디스플레이하는 상태(6605)에 있다. 이전의 섹션에서 살펴본 바와 같이, 어떤 실시예들은 단지 하나의 영상이 영상 디스플레이 구역에 디스플레이될 때를 나타내기 위해 축소판 상에서 주 선택 표시자를 사용하는 반면, 또한 축소판이 다수의 선택된 영상들 중 하나일 때를 나타내기 위해 보조 선택 표시자를 사용한다. 어떤 실시예들에서, 이 선택 표시자들 둘 다는 축소판의 경계 부근에 있는 하이라이트이고, 이 때 주 선택 표시자는 보조 선택 표시자보다 더 두꺼운 하이라이트이다.
하나의 영상이 선택된 경우, 사용자는 선택되지 않은 축소판을 탭핑함으로써 상이한 영상을 선택할 수 있다. 사용자가 선택되지 않은 축소판(이 경우에, 디스플레이된 영상에 대응하는 축소판 이외의 임의의 축소판)을 탭핑할 때, 응용 프로그램은 탭핑된 축소판(및 그의 대응하는 영상)을 새로운 선택된 영상으로서 설정하기 위해 상태(6607)로 천이하고, 이어서 다시 상태(6605)로 천이한다. 그에 부가하여, 사용자는 좌측 및 우측 스와이프 제스처에 의해 영상들을 순환한다. 도시된 바와 같이, 응용 프로그램이 우측으로의 스와이프 제스처를 수신할 때, 응용 프로그램은 컬렉션에서의 이전의 영상을 새로운 선택된 영상으로서 설정하기 위해 상태(6608)로 천이한다. 이와 유사하게, 응용 프로그램이 좌측으로의 스와이프 제스처를 수신할 때, 응용 프로그램은 컬렉션에서의 그 다음 영상을 새로운 선택된 영상으로서 설정하기 위해 상태(6609)로 천이한다. 어느 것이든 이러한 변화 이후에, 응용 프로그램은 다시 6605로 천이하고, 새로운 선택된 영상이 영상 디스플레이 구역에 디스플레이된다. 이 스와이프 제스처들 중 하나를 수신할 때, 어떤 실시예들은 이전에 선택된 영상이 디스플레이로부터 슬라이딩하면서 사라지고 새로운 선택된 영상이 (좌측으로의 제스처인 경우 우측으로부터 그리고 우측으로의 제스처인 경우 좌측으로부터) 디스플레이 상으로 슬라이딩하는 것을 보여주기 위해 슬라이딩 애니메이션을 사용한다. 다른 실시예들은 영상의 변화를 나타내기 위해 다른 애니메이션을 사용하거나, 어떤 애니메이션도 없이 영상 디스플레이 구역에 있는 영상을 대체하기만 한다. 도 33은 컬렉션에서의 영상들을 순환하는 이러한 스와이프 제스처의 한 예를 나타내고 있다.
GUI가 상태(6605)에 있을 때, 사용자는 하나 이상의 영상을 영상 디스플레이 구역에 추가할 수 있다. 이들은 현재 선택된 영상을 대체할 수 있거나(예컨대, 사용자가 선택되지 않은 영상과 유사한 모든 영상을 디스플레이하기 위해 그 선택되지 않은 영상을 더블 탭핑하는 경우), 현재 선택된 영상과 나란히 추가될 수 있다(예컨대, 사용자가 축소판을 길게 누르는 경우). 사용자가 하나 이상의 영상을 미리보기 디스플레이 구역에 추가하기 위해 이 동작들 중 하나를 수행할 때, GUI는 상태(6610)로 천이하고, 영상 디스플레이 구역에 다수의 선택된 영상들을 디스플레이하고 대응하는 축소판 상에 보조 선택 표시자를 디스플레이한다. 이러한 천이의 다양한 예들이 상기 섹션에 나타내어져 있다(예컨대, 도 44, 도 54, 도 55 및 도 57).
상태(6610)에 있는 경우(다수의 영상들이 선택되고 디스플레이되어 있음), 사용자가 선택되지 않은 축소판을 탭핑하면, 도 57의 스테이지들(5750 및 5760)에 나타낸 바와 같이, GUI는 상태(6607)로 천이하여, 탭핑된 축소판을 유일한 선택된 영상으로서 설정하고 이어서 다시 상태(6605)로 천이한다. 그에 부가하여, 상태(6610)에 있는 동안, 사용자는 축소판 디스플레이 구역에 있는 축소판들 중 하나를 길게 누를 수 있다. 특정의 축소판이 이전에 선택된 축소판들 중 하나일 때, 응용 프로그램은 상태(6615)로 천이하여, 특정의 축소판을 한 세트의 선택된 축소판들로부터 제거한다. 하나의 축소판만이 선택된 채로 있는 경우, GUI는 상태(6605)로 천이하여, 하나의 선택된 영상만을 디스플레이한다. 그렇지 않은 경우, GUI는 다시 상태(6610)로 천이하여, 특정의 축소판을 더 이상 포함하지 않는 선택된 영상들을 디스플레이한다. 그에 부가하여, 사용자가 영상 디스플레이 구역에 있는 특정의 영상 상에서 하향 스와이프 제스처를 수행하는 경우, 이것은 특정의 영상을 선택된 세트로부터 제거하는 동일한 효과를 가질 것이다. 한편, 이전의 섹션에서 나타낸 바와 같이, 특정의 축소판이 현재 선택되어 있지 않을 때, 응용 프로그램은 6617로 천이하여, 축소판에 대응하는 영상을 한 세트의 현재 선택된 영상들에 추가하고, 이어서 다시 6610으로 천이하고, 이 때 부가의 영상이 영상 디스플레이 구역에 보여진다. 도 57의 스테이지들(5730 및 5740)은 이러한 동작을 나타내고 있다.
그에 부가하여, 상태(6610)로부터, 사용자가 선택된 축소판들 중 하나 또는 영상 디스플레이 구역에 디스플레이된 영상들 중 하나를 탭핑할 때, GUI는 상태(6620)로 천이한다. 상태(6620)에서, 응용 프로그램은 하나의 활성 영상을 미리보기 구역에 디스플레이하고, 이 때 주 선택 표시자는 그의 대응하는 축소판 상에 있고 보조 선택 표시자는 다른 선택된 영상들에 대응하는 축소판들 상에 있다. 도 67은 이 천이를 GUI(6700)의 2개의 스테이지(6710 및 6720)에 걸쳐 나타내고 있다. GUI(6700)는 축소판 디스플레이 구역(6705) 및 영상 디스플레이 구역(6715)을 포함하고 있다. 제1 스테이지(6710)에서, GUI는 영상 디스플레이 구역(6715)에 3개의 영상(6725 내지 6735)을 디스플레이하고, 대응하는 축소판들(6740 내지 6750)은 축소판 디스플레이 구역(6705)에서 하이라이트되어 있다.
또한 제1 스테이지(6710)에서, 사용자는 영상(6730)을 탭핑한다. 제2 스테이지(6720)은 이 상호작용의 결과를 나타내고 있으며, 영상(6730)은 영상 디스플레이 구역(6715) 전체를 차지하고 있다. 게다가, 영상(6730)에 대응하는 축소판(6745)은 이제 선택된 채로 있는 축소판들(6740 및 6750)보다 더 굵은 하이라이트로 경계 표시되어 있다. 어떤 실시예들은 이 천이를 애니메이션화한다. 예를 들어, 어떤 실시예들에서, 응용 프로그램은 영상이 다수의 디스플레이된 영상들 중에서의 그의 위치로부터 전체 영상 디스플레이 구역을 사용하는 보다 큰 영상으로 적어도 하나의 방향으로 확장하는 것을 디스플레이한다. 그에 부가하여, 도 67의 제2 스테이지(6720)가 영상(6730)이 영상 디스플레이 구역의 거의 전체를 차지하고 있는 것을 나타내고 있지만, 어떤 실시예들에서, 응용 프로그램은 주 디스플레이된 영상 후방에 다른 선택된 영상들의 흐릿해지고 보다 어두운 버전을 디스플레이한다. 주 디스플레이된 영상이 (예컨대, 영상과 디스플레이 구역 간의 종횡비의 차이로 인해) 영상 디스플레이 구역의 일부분을 차지하지 않을 때, (흐릿해지고 보다 어두운 형태의) 다른 선택된 영상들의 일부분이 디스플레이 내에서 보이게 된다.
이하의 논의에서, 주 선택된 영상은 활성 영상이라고 할 것인 반면, 선택에 있는 영상들 모두는, 주 선택이든 보조 선택들 중 하나이든 간에, 선택된 영상이라고 할 것이다. GUI가 상태(6620)에 있을 때, 사용자는 (예컨대, 세트 중의 최상의 것을 식별하기 위해 다양한 사진들을 비교하는 경우) 영상들을 순환하기 위해 다양한 동작들을 수행할 수 있다. 도시된 바와 같이, 응용 프로그램이 영상 디스플레이 구역 상에서 우측 스와이프 제스처를 수신할 때, GUI는 상태(6625)로 천이하여, 컬렉션 순서에서의 이전의 선택된 영상을 새로운 활성 영상으로서 설정하고, 이어서 다시 상태(6620)으로 천이하여 새로운 활성 영상을 디스플레이한다. 어떤 실시예들은 이 천이를, 예를 들어, 새로운 활성 영상을 그의 보다 큰 디스플레이로 확장시키면서 이전의 활성 영상을 다시 영상 디스플레이 구역에서의 그의 위치(즉, 선택된 영상들 전부가 한꺼번에 디스플레이되는 경우 그 영상이 차지하게 될 위치)로 최소화함으로써, 애니메이션화한다.
다른 실시예들은 다양한 형태의 슬라이딩 애니메이션을 사용한다. 어떤 실시예들에서, 응용 프로그램은 이전의 활성 영상을 슬라이딩시켜 사라지게 하면서 이 새로운 활성 영상을 디스플레이 상으로 슬라이딩시킨다. 다른 실시예들에서, 새로운 활성 영상은 이전의 활성 영상 아래쪽에 나타나고, 따라서 이전의 영상이 슬라이딩되어 사라짐에 따라 새로운 활성 영상이 더 많이 보이게 된다. 또 다른 실시예들은 새로운 활성 영상을 디스플레이 상에서 이전의 활성 영상 위로 슬라이딩시킨다. 어떤 실시예들에서, 응용 프로그램이 이 천이를 어떻게 디스플레이하는지의 선택은 사용자에게 달려 있다.
도 68은 5개의 스테이지(6810 내지 6850)에 걸쳐 사용자 인터페이스(6700)에서의 일련의 이러한 우측으로의 스와이프 제스처를 나타내고 있다. 제1 스테이지(6810)는 도 67의 스테이지(6720)와 동일한 상태에 있는 GUI(6700)를 나타내고 있다. 도시된 바와 같이, 사용자는 한 손가락으로 터치스크린에 접촉하기 시작하였다. 그 다음 스테이지(6820)에서, 사용자는 그의 손가락을 우측으로 스위프하기 시작하였으며, 그로 인해 영상(6730)이 우측으로 슬라이딩하여 화면으로부터 벗어나고 아래쪽에 있는 영상(6725)이 드러난다. 이 스와이프 제스처의 결과가 스테이지(6830)에 나타내어져 있고, 영상(6725)이 이제 영상 디스플레이 구역(6715)에 디스플레이된다. 그에 부가하여, 대응하는 축소판(6740)은 이제 주 선택을 나타내는 두꺼운 하이라이트로 경계 표시되어 있는 반면, 다른 선택된 축소판들은 보다 가는 하이라이트로 경계 표시되어 있다.
그에 부가하여, 이 스테이지에서, 사용자는 또 다시 터치스크린에 접촉하고, 제4 스테이지(6840)는 사용자가 우측으로의 다른 스와이프 제스처를 하는 것을 나타내고 있다. 이것으로 인해, 영상(6725)이 우측으로 슬라이딩하여 화면으로부터 벗어나고, 아래쪽에 있는 영상(6735)이 드러난다. 이 스와이프 제스처의 결과가 스테이지(6850)에 나타내어져 있고, 영상(6735)이 이제 영상 디스플레이 구역(6715)에 디스플레이된다. 그에 부가하여, 대응하는 축소판(6750)은 이제 주 선택 표시자의 두꺼운 하이라이트로 경계 표시되어 있는 반면, 다른 선택된 축소판들은 보다 가는 하이라이트로 경계 표시되어 있다.
우측 스와이프 제스처와 유사하게, 응용 프로그램이 상태(6620)에 있고 영상 디스플레이 구역 상에서 좌측 스와이프 제스처를 수신할 때, GUI는 상태(6630)로 천이하여, 컬렉션 순서에서의 그 다음의 선택된 영상을 새로운 활성 영상으로서 설정하고, 이어서 다시 상태(6620)으로 천이하여 새로운 활성 영상을 디스플레이한다. 어떤 실시예들은 이 천이를, 예를 들어, 새로운 활성 영상을 그의 보다 큰 디스플레이로 확장시키면서 이전의 활성 영상을 다시 영상 디스플레이 구역에서의 그의 위치(즉, 선택된 영상들 전부가 한꺼번에 디스플레이되는 경우 그 영상이 차지하게 될 위치)로 최소화함으로써, 애니메이션화한다.
다른 실시예들은 다양한 형태의 슬라이딩 애니메이션을 사용한다. 어떤 실시예들에서, 응용 프로그램은 이전의 활성 영상을 슬라이딩시켜 사라지게 하면서 이 새로운 활성 영상을 디스플레이 상으로 슬라이딩시킨다. 다른 실시예들에서, 새로운 활성 영상은 이전의 활성 영상 아래쪽에 나타나고, 따라서 이전의 영상이 슬라이딩되어 사라짐에 따라 새로운 활성 영상이 더 많이 보이게 된다. 또 다른 실시예들은 새로운 활성 영상을 디스플레이 상에서 이전의 활성 영상 위로 슬라이딩시킨다. 어떤 실시예들에서, 응용 프로그램이 영상들을 순환하는 것을 어떻게 디스플레이하는지의 선택은 사용자에게 달려 있다.
도 69는 3개의 스테이지(6910 내지 6930)에 걸쳐 GUI(6700)에서의 이러한 좌측으로의 스와이프 제스처를 나타낸 것이다. 제1 스테이지(6910)는, 영상 디스플레이 구역에 활성 영상으로서 영상(6735)을 갖고 그의 대응하는 축소판(6750)이 굵은 하이라이트로 선택되어 있는, 도 68의 스테이지(6850)와 동일한 상태에 있는 GUI(6700)를 나타내고 있다. 도시된 바와 같이, 사용자는 한 손가락으로 터치스크린에 접촉하기 시작하였다. 그 다음 스테이지(6920)에서, 사용자는 그의 손가락을 좌측으로 스위프하기 시작하였으며, 그로 인해 영상(6735)이 좌측으로 슬라이딩하여 화면으로부터 벗어나고 아래쪽에 있는 영상(6725)이 드러난다. 이 스와이프 제스처의 결과가 스테이지(6930)에 나타내어져 있고, 영상(6725)이 이제 영상 디스플레이 구역(6715)에 디스플레이된다. 그에 부가하여, 대응하는 축소판(6740)은 이제 주 선택을 나타내는 두꺼운 하이라이트로 경계 표시되어 있는 반면, 다른 선택된 축소판들은 보다 가는 하이라이트로 경계 표시되어 있다.
이 도면들이 나타내는 바와 같이, 어떤 실시예들에서, 응용 프로그램은, 사용자가 한 세트의 선택된 영상들의 끝에 도달하면 한 방향으로의 스와이프 제스처를 방지하기 보다는, 사용자가 그 세트 내의 마지막 영상으로부터 그 세트 내의 첫번째 영상으로 스와이프하는 것을 비롯하여, 스위프 제스처로 한 세트의 선택된 영상들을 순환할 수 있게 해준다.
사용자가 좌우로 스와이프한 것에 응답하여, 한 세트의 선택된 영상들을 순환하는 것에 부가하여, 어떤 실시예들은 또한 사용자가 스와이프 제스처를 통해 세트로부터 영상들을 제거할 수 있게 해준다. 상태도(6600)에 나타낸 바와 같이, 상태(6620)에 있는 동안 응용 프로그램이 하향 스와이프 제스처를 수신할 때, GUI는 상태(6635)로 천이하여, 한 세트의 선택된 영상들로부터 활성 영상을 제거하고 한 세트의 선택된 영상들에서의 그 다음 영상을 새로운 활성 영상으로서 설정한다. 좌우 스와이프 제스처와 아주 유사하게, 어떤 실시예들에서, 응용 프로그램은, 예컨대, 새로운 활성 영상을 보다 큰 디스플레이로 확장하면서 이전의 활성 영상을 최소화함으로써, 천이를 애니메이션화한다.
다른 실시예들은 다양한 형태의 슬라이딩 애니메이션을 사용한다. 어떤 실시예들에서, 응용 프로그램은 이전의 활성 영상을 슬라이딩시켜 디스플레이의 하단으로부터 벗어나게 하면서 새로운 활성 영상을 디스플레이 상으로 슬라이딩시킨다. 다른 실시예들에서, 새로운 활성 영상은 이전의 활성 영상 아래쪽에 나타나고, 따라서 이전의 영상이 슬라이딩되어 사라짐에 따라 새로운 활성 영상이 더 많이 보이게 된다. 또 다른 실시예들은 새로운 활성 영상을 디스플레이 상에서 이전의 활성 영상 위로 슬라이딩시킨다. 어떤 실시예들에서, 응용 프로그램이 이 천이를 어떻게 디스플레이하는지의 선택은 사용자에게 달려 있다.
한 세트의 선택된 영상들에 단지 2개의 영상이 있었을 때, 하향 스와이프는 단지 하나의 선택된 영상을 남겨 두고, 이 경우에 GUI는 다시 상태(6605)로 천이하여, 하나의 선택된 영상이 영상 디스플레이 구역에 디스플레이된다. 한편, 활성 영상을 제거한 후에 적어도 2개의 영상이 선택된 채로 있을 때, GUI는 상태(6620)로 되돌아가서, 세트에서의 그 다음 영상이 활성 영상으로 된다. 선택된 영상들에 대해, 응용 프로그램의 어떤 실시예들은 영상 디스플레이 구역에서의 그의 크기 및 위치를 재계산하고, 비활성의 선택된 영상들의 흐릿해지고 보다 어두운 버전을 그의 새로운 위치에서 활성 영상 후방에 디스플레이한다.
도 70은 3개의 스테이지(7010 내지 7030)에 걸쳐 사용자 인터페이스(6700)에서의 이러한 하향 스와이프 제스처를 나타낸 것이다. 제1 스테이지(7010)는, 영상 디스플레이 구역에 활성 영상으로서 영상(6725)을 갖고 그의 대응하는 축소판(6740)이 굵은 하이라이트로 선택되어 있는, 이전의 도면의 스테이지(6930)와 동일한 상태에 있는 GUI(6700)를 나타내고 있다. 도시된 바와 같이, 사용자는 한 손가락으로 터치스크린에 접촉하기 시작하였다. 그 다음 스테이지(7020)에서, 사용자는 그의 손가락을 아래쪽으로 스위프하기 시작하였으며, 그로 인해 영상(6725)이 아래쪽으로 슬라이딩하여 화면으로부터 벗어나고 아래쪽에 있는 영상(6730)이 드러난다. 이 스와이프 제스처의 결과가 스테이지(7030)에 나타내어져 있고, 영상(6730)이 이제 영상 디스플레이 구역(6715)에 디스플레이된다. 그에 부가하여, 대응하는 축소판(6745)은 이제 주 선택을 나타내는 두꺼운 하이라이트로 경계 표시되어 있는 반면, 축소판(6740)은 선택 해제되었기 때문에 더 이상 하이라이트되지 않는다.
도시된 바와 같이, 어떤 실시예들에서, 사용자가 활성 영상의 축소판을 길게 누르는 것은, 활성 영상을 한 세트의 선택된 영상들로부터 제거하고 그 세트에서의 그 다음 영상을 활성 영상으로서 설정하기 위해 GUI를 상태(6635)로 천이시키는 것과 동일한 효과를 가진다. 그에 부가하여, 사용자가 선택되었지만 비활성인(즉, 대응하는 영상이 디스플레이된 영상이 아님) 축소판을 길게 누를 때, 응용 프로그램은 상태(6640)로 천이하여, 대응하는 영상을 한 세트의 선택된 축소판들로부터 제거한다. 스테이지(6635)에서와 같이, 응용 프로그램은 (활성 영상만이 선택된 채로 있는 경우) 상태(6605)로 천이하거나 (다수의 영상들이 선택된 채로 있는 경우) 다시 상태(6620)로 천이한다. 응용 프로그램이 다시 상태(6620)로 천이할 때, 응용 프로그램의 어떤 실시예들은 선택된 채로 있는 영상들의 영상 디스플레이 구역에서의 크기 및 위치를 재계산하고, 비활성의 선택된 영상들의 흐릿해지고 보다 어두운 버전을 그의 새로운 위치에서 활성 영상 후방에 디스플레이한다.
그에 부가하여, 사용자가 선택되지 않은 축소판을 길게 누를 때, 응용 프로그램은 상태(6617)로 천이하여, 대응하는 영상을 한 세트의 선택된 영상들에 추가한다. 도시된 바와 같이, 어떤 실시예들은 또한, 사용자가 새로운 영상을 그 세트에 추가할 때, 다시 상태(6610)로 천이한다. 한편, 어떤 실시예들은 영상을 선택하지만 활성 영상의 전체 보기 디스플레이(full-viewer display)를 유지한다.
도 66에 나타낸 바와 같이, GUI가 상태(6620)에 있는 경우, 사용자가 선택되지 않은 축소판을 탭핑할 때, 응용 프로그램은 다른 영상들 모두의 선택을 제거하고 상태(6607)로 천이하여, (탭핑된 축소판에 대응하는) 새로 선택된 영상을 유일한 선택된 영상으로서 설정한다. 응용 프로그램은 이어서 다시 상태(6605)로 천이하여, 새로 선택된 영상을 영상 디스플레이 구역에 디스플레이한다. 사용자가 활성 축소판을 탭핑할 때, 이것은 GUI를 다시 선택된 영상들 전부가 영상 디스플레이 구역에 디스플레이되어 있는 상태(6610)로 천이시켜, 활성 지정(active designation)을 탭핑된 축소판에 대응하는 영상으로부터 제거한다. 마지막으로, 어떤 실시예들은 사용자가 비활성 영상들 중 하나에 대응하는 선택된 축소판을 탭핑함으로써 세트 내의 상이한 영상들 사이에서 활성 영상을 전환할 수 있게 해준다. 도시된 바와 같이, 사용자가 선택되었지만 비활성인 축소판을 탭핑할 때, 응용 프로그램은 탭핑된 축소판에 대응하는 영상을 새로운 활성 영상으로서 설정하기 위해 상태(6645)로 천이하고, 이어서 다시 상태(6620)로 천이한다.
도 71은 4개의 스테이지(7110 내지 7140)에 걸쳐 사용자가 GUI(6700)에서 선택된 축소판을 탭핑하는 것의 예를 나타낸 것이다. 제1 스테이지(7110)는, 3개의 영상(6725 내지 6735) 모두가 영상 디스플레이 구역에 디스플레이되어 있고 그의 대응하는 축소판(6740 내지 6750)이 보다 연한 하이라이트로 선택되어 있는, 도 67의 제1 스테이지(6710)와 동일한 상태에 있는 GUI(6700)를 나타내고 있다.
또한 이 스테이지(7110)에서, 사용자는 축소판(6740) 상에서 터치스크린을 탭핑한다. 제2 스테이지(7120)는 이 상호작용의 결과를 나타내고 있으며, 대응하는 영상(6725)은 이제 영상 디스플레이 구역(6715) 전체를 차지하고 있는 활성 영상이다. 그에 부가하여, 사용자가 탭핑한 축소판(6740)은 이제 다른 선택된 축소판들보다 더 굵은 하이라이트로 경계 표시되어 디스플레이된다.
이 스테이지(7120)에서, 사용자는 축소판(6745) 상에서 터치스크린을 탭핑한다. 제3 스테이지(7130)는 이 상호작용의 결과를 나타내고 있으며, 대응하는 영상(6730)은 이제 영상 디스플레이 구역(6715) 전체를 차지하고 있는 활성 영상이다. 그에 부가하여, 사용자가 탭핑한 축소판(6745)은 이제 보다 굵은 하이라이트로 경계 표시되어 디스플레이된다. 이 스테이지들은, GUI가 상태(6610)에 있든 상태(6620)에 있든 간에, 선택되었지만 활성이 아닌 축소판을 탭핑하는 것이 대응하는 영상을 활성 영상으로 만드는 것을 나타내고 있다.
그에 부가하여, 스테이지(7130)에서, 사용자는 또 다시 활성 영상의 축소판(6745)을 탭핑한다. 이 상호작용의 결과가 스테이지(7140)에 나타내어져 있으며, 응용 프로그램은 또 다시 3개의 영상(6725 내지 6735) 모두를 활성 영상 없이, 따라서 축소판들 중 어느 것에 대해서도 주 선택 표시자 없이 디스플레이한다. 이 스테이지 쌍은 상태(6620)로부터, 다수의 영상들이 한꺼번에 디스플레이되는 상태(6610)로의 천이를 나타내고 있다.
B. 영상을 태깅하기
상기 섹션은 어떤 실시예들의 영상 보기 응용 프로그램에서 하나 이상의 영상에 대해 수행되는 다양한 선택 및 선택 해제 동작들을 기술하고 있다. 상태도(6600)는 3개의 주 선택 상태(6605, 6610 및 6620)를 포함하고 있다. 어떤 실시예들에서, 응용 프로그램이 사용자-선택 태그를 적용하는 영상들은, 사용자가 태그를 선택할 때, GUI가 이 3개의 상태들 중 어느 상태에 있는지에 의존한다. 도 72는 이 3개의 상이한 상태들에서 태그를 적용하는 것에 관련되어 있는 어떤 실시예들의 GUI에 대한 상태도를 개념적으로 나타낸 것이다. 도 72는 하나 이상의 영상에 상이한 태그를 적용하는 것을 나타내는 도 73 내지 도 77을 참조하여 기술될 것이다.
도시된 바와 같이, 상태도는 상태(6605)(하나의 영상만이 선택됨), 상태(6610)(다수의 영상들이 선택되고 디스플레이됨), 및 상태(6620)(다수의 영상들이 선택됨, 활성 영상만이 디스플레이됨)는 물론, 이 상태들 사이의 천이(도 66을 참조하여 앞서 기술함)를 나타내고 있다. 그에 부가하여, 도 72는 이 3개의 상이한 상태들에서 태그 UI 아이템을 선택하는 것으로부터 얻어지는 상태들을 디스플레이하고 있다. 도 14를 참조하여 앞서 언급한 바와 같이, 어떤 실시예들은 하나 이상의 영상들에 상이한 태그들을 적용하는 한 세트의 GUI 아이템들을 포함하고 있다. 이 태그들은 좋아하는 것 태그(즉, 사용자가 특별히 좋아하는 영상을 나타내기 위한 것임), 플래그(즉, 사용자가 나중에 다시 검토하고자 하는 영상을 나타내기 위한 것임), 및 숨기기 태그(즉, 축소판 디스플레이 구역에 보여지는 원하지 않는 영상을 한 세트의 영상들로부터 제거하기 위한 것임)를 포함할 수 있다. 어떤 실시예들에서, 이 태그들은 태깅된 영상에 대한 데이터 구조체에 저장되고, 그 태그를 갖는 영상들에 대한 특정의 앨범을 채우는 데 사용될 수 있다.
도 66에 도시된 바와 같이, GUI가 상태(6605)에 있고 사용자가 영상에 적용할 태그를 선택할 때, GUI는 상태(7205)로 천이하여, 선택된 태그를 유일한 현재 선택된 영상에 적용한다. GUI는 이어서 다시 초기 상태(6605)로 천이한다. 어떤 실시예들에서, 태그가 영상 숨기기 태그(hide image tag)일 때, GUI는 또한 영상을 디스플레이로부터 제거하고, 선택하여 디스플레이하기 위한 컬렉션에서의 그 다음 영상을 선택한다. 다른 실시예들은 숨겨진 영상을 디스플레이로부터 즉각 제거하지 않고, 그 대신에 사용자가 먼저 상이한 영상을 보기를 기다린다.
GUI가 상태(6610)에 있고 사용자가 적용할 태그를 선택할 때, GUI는 상태(7210)로 천이하여, 선택된 태그를 현재 선택된 영상들 모두에 적용한다. GUI는 이어서 다시 초기 상태(6610)로 천이한다. 마지막으로, GUI가 상태(6620)에 있고 사용자가 적용할 태그를 선택할 때, GUI는 상태(7220)로 천이하여, 선택된 태그를 현재 선택된 영상들 모두보다는 활성 영상에만 적용한다. GUI는 이어서 다시 초기 상태(6620)로 천이한다.
도 73 내지 도 78은 어떤 실시예들의 영상 보기 응용 프로그램 내에서 다양한 태그들을 영상들에 적용하는 것을 나타내고 있다. 도 73은 GUI(7300)의 4개의 스테이지(7310 내지 7300)에 걸쳐 영상 숨기기 태그를 적용하는 것을 나타내고 있다. GUI(7300)는, 다양한 세트의 GUI 아이템들에 부가하여, 축소판 디스플레이 구역(7305) 및 영상 디스플레이 구역(7315)을 포함하고 있다. 이 GUI 아이템들은 플래그 버튼(7325), 좋아하는 것 버튼(7332), 및 영상 숨기기 버튼(7335)을 포함하고 있다.
제1 스테이지(7310)에서, 영상(7342)이 영상 디스플레이 구역(7315)에 디스플레이되고, 대응하는 축소판(7345)이 선택된다. 이 스테이지에서, 사용자는 영상 숨기기 버튼(7335)을 선택하고, 이로 인해 그 버튼이 하이라이트된다. 어떤 실시예들에서, 응용 프로그램은 숨기기 태그를 영상에 적용하는 것을 애니메이션화한다. 제2 스테이지(7320)는 영상 디스플레이 구역 내의 영상에 영상 숨기기 태그를 적용하는 것을 나타내기 위해 어떤 실시예들에 의해 사용되는 애니메이션화를 나타내고 있다. 영상 숨기기 아이콘(7350)(X)은 영상으로부터 나왔다가 다시 영상 속으로 후퇴하는(즉, 영상의 속성으로 되는) 것으로 보여진다.
제3 스테이지(7330)는 응용 프로그램이 축소판 상에 오버레이되어 있는 숨기기 아이콘(7355)(X)으로 숨겨진 영상(7342)의 대응하는 축소판(7345)에 표시하는 것을 나타내고 있다. 그에 부가하여, 이 스테이지에서, 사용자는 상이한 축소판(7360)을 선택한다. 제4 스테이지(7340)는 축소판(7360)에 대응하는 영상이 이제 디스플레이되는 것을 나타내고 있다. 그에 부가하여, 응용 프로그램은 숨겨진 영상의 축소판(7345)을 축소판 디스플레이 구역(7305)으로부터 제거하였고 그에 따라 디스플레이 구역 내의 축소판들을 재배열하였다. 도시된 바와 같이, 어떤 실시예들에서, 응용 프로그램은 숨겨진 축소판을 디스플레이된 한 세트의 축소판들로부터 제거하기 위해 사용자가 상이한 축소판으로 탐색해 갈 때까지 기다린다.
도 74는 GUI(7400)의 4개의 스테이지(7410 내지 7440)에 걸쳐 영상 플래깅 태그(flag image tag)를 적용하는 것을 나타내고 있다. GUI(7400)는 GUI(7300)와 동일한 특징들 - 축소판 디스플레이 구역(7405), 영상 디스플레이 구역(7415), 및 플래그 버튼(7425)을 비롯한 다양한 GUI 아이템들 - 을 포함하고 있다. 그에 부가하여, GUI는 현재 선택된 컬렉션에서의 15개의 영상들 중 어느 것도 태깅되지 않았다는 것을 현재 나타내고 있는 태그 필터링 버튼(7435)을 포함하고 있다. 어떤 실시예들에서, 이 버튼(7435)은 응용 프로그램이 컬렉션에서의 어느 영상들을 축소판 디스플레이 구역 내에 제시해야만 하는지를 식별하는 데 사용된다. 바로 지금, [축소판들(7445 내지 7455)에 대응하는] 3개의 영상이 선택되어 있지만, 선택된 영상들 중 하나[영상(7460)]만이 영상 디스플레이 구역에 디스플레이된다.
제1 스테이지(7410)에서, 사용자는 플래그 버튼(7425)을 선택하고, 이로 인해 그 버튼이 하이라이트된다. 어떤 실시예들에서, 응용 프로그램은 영상 플래깅 태그를 영상에 적용하는 것을 애니메이션화한다. 게다가, 도 66을 참조하여 앞서 살펴본 바와 같이, 다수의 영상들이 선택되고 선택된 영상들 중 하나가 활성일 때, 응용 프로그램은 활성 영상[이 경우에, 영상(7460)]에만 태그를 적용한다.
제2 및 제3 스테이지(7420 및 7430)는 영상 디스플레이 구역 내의 영상에 플래깅됨 태그(flagged tag)를 적용하는 것을 나타내기 위해 어떤 실시예들에 의해 사용되는 애니메이션화를 나타내고 있다. 플래그 아이콘(7465)은 활성 영상으로부터 나왔다가 다시 영상 속으로 후퇴하는(즉, 영상의 속성으로 되는) 것으로 보여진다.
제4 스테이지(7440)에서, 응용 프로그램은, 이 영상이 플래깅되어 있다는 것을 나타내기 위해, 작은 플래그 아이콘(7470)을 축소판(7445) 상에 디스플레이한다. 축소판 디스플레이 구역에 축소판을 디스플레이할 때, 어떤 실시예들은, 영상들이 임의의 태그들을 가지는지를 판정하기 위해, 컬렉션에서의 영상들에 대한 영상 데이터 구조체를 검사한다. 영상에 대해 플래깅됨 태그가 존재하는 경우, 응용 프로그램은 영상의 축소판 상에 플래그를 디스플레이한다. 현재 활성인 활성 영상이 플래깅되어 있다는 것을 나타내기 위해, 플래그 버튼(7425)이 하이라이트된 채로 있다. 어떤 실시예들에서, 이 상태에 있을 때 활성 영상을 언플래깅(unflag)하기 위해, 사용자는 플래그 버튼을 선택할 수 있다. 그에 부가하여, 이 스테이지에서, 태그 필터링 버튼(7435)은 이제 컬렉션에서의 15개의 영상들 중 하나가 플래깅되었다는 것을 나타내고 있다.
도 75는 GUI(7400)의 4개의 스테이지(7510 내지 7540)에 걸쳐 영상 플래깅 태그를 다수의 영상들에 적용하는 것을 나타내고 있다. 도시된 바와 같이, 제1 스테이지(7510)에서, 플래그 아이콘(7470)이 축소판(7445) 상에 디스플레이된다. 그렇지만, 영상 디스플레이 구역은 3개의 선택된 영상들(7505, 7515, 및 7525)을 디스플레이하고, 이 영상들에 대응하는 축소판들이 선택된다. 이 스테이지에서, 사용자는 플래그 버튼(7425)을 선택한다. 도 66을 참조하여 앞서 살펴본 바와 같이, 다수의 영상들이 영상 디스플레이 구역에 디스플레이될 때, 응용 프로그램은 이 선택된 영상들 모두에 태그들을 적용한다. 어떤 실시예들에서, 응용 프로그램은 영상 플래깅 태그를 영상들에 적용하는 것을 애니메이션화한다.
제2 및 제3 스테이지(7520 및 7530)는 영상 디스플레이 구역 내의 영상들에 영상 플래깅 태그를 적용하는 것을 나타내기 위해 어떤 실시예들의 애니메이션화를 나타내고 있다. 응용 프로그램은 영상 플래깅 태그의 다수의 인스턴스들을 디스플레이하며, 하나의 인스턴스는 각각의 디스플레이된 영상으로부터 나왔다가 다시 영상 속으로 후퇴하는(즉, 영상의 속성으로 되는) 것으로 보여진다.
제4 스테이지(7540)에서, 응용 프로그램은 이제, 영상들(7505, 7515, 및 7525)이 플래깅되어 있다는 것을 나타내기 위해, 축소판들(7535, 7450, 및 7455) 각각 상에 작은 플래그 아이콘(7570)을 디스플레이한다. 현재 디스플레이된 영상들 모두가 플래깅되어 있다는 것을 나타내기 위해, 플래그 버튼(7425)이 하이라이트된 채로 있다. 그에 부가하여, 태그 필터링 버튼(7435)은 이제 컬렉션에서의 15개의 영상들 중 4개가 플래그 태그가 적용되어 있다는 것을 나타내고 있다.
도 76은 GUI(7600)의 3개의 스테이지(7610 내지 7630)에 걸쳐 태그 필터링 버튼(7435)을 사용하는 것을 나타내고 있다. 제1 스테이지(7610)에서, 버튼(7435)은 15개의 영상들 중 4개가 플래깅되어 있다는 것을 나타내며, 응용 프로그램은 4개의 축소판(7445, 7535, 7450 및 7455) 상에 플래그 아이콘들을 디스플레이한다. 언플래깅된 영상(7605)은 현재 영상 디스플레이 구역에 디스플레이되어 있고, 따라서, 응용 프로그램은 플래그 버튼(7425)을 하이라이트하지 않는다. 제1 스테이지(7610)에서, 사용자는 버튼(7435)을 탭핑한다.
제2 스테이지(7620)에 도시된 바와 같이, 이것으로 인해 메뉴(7615)가 디스플레이된다. 이 메뉴는, 영상들에 적용된 태그들에 기초하여, 사용자가 선택된 컬렉션 내의 상이한 영상 세트들 중에서 선택할 수 있게 해준다. 옵션들은, 도시된 바와 같이, "All Photos(모든 사진)"(어떤 실시예들에서, 숨겨진 사진을 포함하지 않음), "Flagged Photos(플래깅된 사진)", "Edited Photos(편집된 사진)", "Hidden Photos(숨겨진 사진)", 및 "All & Hidden Photos(모든 사진과 숨겨진 사진)"이다. 플래깅된 사진 옵션, 편집된 사진 옵션, 및 숨겨진 사진 옵션은 그 태그를 갖는 영상들만을 디스플레이시키는 반면, 모든 사진과 숨겨진 사진 옵션은 컬렉션의 나머지와 함께 숨겨진 영상들을 보이게 한다.
제2 스테이지(7620)에서, 사용자는 "Flagged Photos" 옵션을 선택한다. 제3 스테이지(7630)는 이 선택의 결과를 나타내고 있으며, 응용 프로그램은 플래깅된 영상들에 대한 축소판들(7445, 7535, 7450, 및 7455)만을 디스플레이한다. 기본적으로, 응용 프로그램은 컬렉션 내의 영상들에 필터를 적용하고, 플래깅됨 태그를 가지는 영상들만이 필터를 통과한다. 응용 프로그램은 또한 이제 태깅된 영상들 중 하나인 영상(7460)을 영상 디스플레이 구역에 디스플레이한다.
도 77은 도 73을 참조하여 앞서 기술되어 있는, GUI(7300)의 4개의 스테이지(7710 내지 7740)에 걸쳐 좋아하는 것 태그를 영상에 적용하는 것을 나타내고 있다. 이 경우에, 영상(7705)은 2개의 선택된 영상들 중 하나로서 활성이다. 제1 스테이지(7710)에서, 사용자는 좋아하는 것 버튼(7332)을 선택하고, 이로 인해 그 버튼이 하이라이트된다. 어떤 실시예들에서, 응용 프로그램은 좋아하는 것 태그를 영상에 적용하는 것을 애니메이션화한다. 게다가, 도 66을 참조하여 살펴본 바와 같이, 다수의 영상들이 선택되고 (이 도면에서의 경우와 같이) 선택된 영상들 중 하나가 활성일 때, 응용 프로그램은 활성 영상에만 태그를 적용한다.
제2 및 제3 스테이지(7720 및 7730)는 영상 디스플레이 구역 내의 영상에 좋아하는 것 태그를 적용하는 것을 나타내기 위해 어떤 실시예들에 의해 사용되는 애니메이션화를 나타내고 있다. 좋아하는 것(favorites) 아이콘(7715)은 활성 영상으로부터 나왔다가 다시 영상 속으로 후퇴하는(즉, 영상의 속성으로 되는) 것으로 보여진다.
제4 스테이지(7740)에서, 활성 영상이 좋아하는 것임을 나타내기 위해, 좋아하는 것 버튼(7332)이 하이라이트된 채로 있다. 플래깅된 영상 태그에서와 같이, 이 상태에 있을 때 활성 영상으로부터 좋아하는 것 태그를 제거하기 위해, 사용자는 좋아하는 것 버튼을 선택할 수 있다. 어떤 실시예들에서, 응용 프로그램은 (이 도면에 도시된 바와 같이) 어느 영상이 좋아하는 것인지를 나타내기 위해 축소판 상에 아이콘을 디스플레이하지 않는다. 그렇지만, 이하에서 기술할 것인 바와 같이, 응용 프로그램은 좋아하는 영상들의 별도의 컬렉션을 유지하고, 좋아하는 것 태그로 태깅된 영상들을 이 컬렉션에 추가한다.
어떤 실시예들에서, 응용 프로그램은 영상이 좋아하는 것 태그 및 영상 숨기기 태그 둘 다로 태깅되는 것을 방지한다. 사용자가 숨겨진 것으로 태깅된 영상에 대해 좋아하는 것 버튼을 선택할 때, 응용 프로그램은 좋아하는 것 태그를 적용하면서 또한 영상 숨기기 태그를 제거한다. 이와 유사하게, 사용자가 좋아하는 영상을 숨길 때, 응용 프로그램은 영상으로부터 좋아하는 것 태그를 제거한다.
도 78은 GUI(7800)의 4개의 스테이지(7810 내지 7840)에 걸쳐 좋아하는 것 태그를 다수의 영상들에 적용하는 것을 나타내고 있다. 도시된 바와 같이, 제1 스테이지(7810)에서, 응용 프로그램은 영상들(7805, 7815, 및 7825)을 영상 디스플레이 구역에 디스플레이한다(대응하는 축소판들이 선택된 경우). 이 스테이지에서, 사용자는 좋아하는 것 버튼(7332)을 선택한다. 도 66을 참조하여 앞서 살펴본 바와 같이, 다수의 영상들이 영상 디스플레이 구역에 디스플레이될될 때, 응용 프로그램은 이 선택된 영상들 모두에 태그들을 적용한다. 어떤 실시예들에서, 응용 프로그램은 좋아하는 것 태그를 영상들에 적용하는 것을 애니메이션화한다.
제2 및 제3 스테이지(7820 및 7830)는 영상 디스플레이 구역 내의 영상들에 좋아하는 것 태그를 적용하는 것을 나타내기 위해 어떤 실시예들의 애니메이션화를 나타내고 있다. 응용 프로그램은 좋아하는 것 태그의 다수의 인스턴스들을 디스플레이하며, 하나의 인스턴스는 각각의 디스플레이된 영상으로부터 나왔다가 다시 영상 속으로 후퇴하는(즉, 영상의 속성으로 되는) 것으로 보여진다. 제4 스테이지(7340)에서, 선택된 영상들이 좋아하는 것으로서 표시되어 있다는 것을 나타내기 위해, 좋아하는 것 버튼(7332)이 하이라이트된 채로 있다. 상기 도면에서와 같이, 축소판 디스플레이는 좋아하는 것 태그에 의해 영향을 받지 않는다.
좋아하는 것 태그를 참조하여 언급한 바와 같이, 어떤 실시예들은 응용 프로그램이 영상들에 적용할 수 있는 태그들 중 일부 또는 전부에 대해 개별적언 컬렉션을 생성한다. 어떤 실시예들에서, 좋아하는 것(favorites) 컬렉션만이 생성되는 반면, 다른 실시예들은 좋아하는 영상, 플래깅된 영상, 숨겨진 영상, 및 편집된 영상, 또는 이들의 어떤 조합에 대한 컬렉션을 생성한다.
도 79는 영상에 적용할 태그를 수신할 시에 어떤 실시예들의 응용 프로그램에 의해 수행되는 프로세스(7900)를 개념적으로 나타낸 것이다. 도시된 바와 같이, 프로세스(7900)는 (7905에서) 하나 이상의 영상들에 적용할 태그의 선택을 수신하는 것으로 시작한다. 어떤 실시예들에서, 태그의 선택은 사용자가 (예컨대, 영상을 플래깅하기 위해, 영상을 숨기기 위해, 또는 영상을 좋아하는 것으로서 표시하기 위해) 태깅 버튼들 중 하나를 선택하는 것에 의해, 또는 이전에 편집되지 않은 영상을 편집하는 것에 의해 일어날 수 있다.
이 프로세스는 이어서 (7910에서) 선택된 태그를 영상들에 대한 데이터 구조체들에 추가한다. 앞서 도 15에 도시된 바와 같이, 어떤 실시예들의 응용 프로그램에 의해 저장된 영상에 대한 데이터 구조체는 영상에 적용된 임의의 태그들에 대한 필드들을 포함하고 있다. 어떤 실시예들에서, 태그를 적용하기 위해, 응용 프로그램은 특정의 태그에 대한 변수의 값을 0에서 1로 전환한다.
이 프로세스는 이어서 (7915에서) 선택된 태그를 갖는 영상들의 컬렉션이 이미 존재하는지를 판정한다. 어떤 실시예들에서, 응용 프로그램은 비어 있는 컬렉션을 생성하지 않고, 따라서, 예컨대, 적어도 하나의 영상이 좋아하는 것으로서 표시될 때까지 좋아하는 것 앨범이 존재하지 않는다. 그렇지만, 다른 실시예들은, 응용 프로그램이 적어도 하나의 영상을 갖는지 비어 있는지에 관계없이, 각각의 가능한 태그에 대한 컬렉션들을 항상 저장한다.
선택된 태그에 대한 컬렉션이 이미 존재할 때, 이 프로세스는 (7920에서) 새로 태깅된 영상들을 특정의 태그를 갖는 영상들의 이전에 존재하는 컬렉션에 추가한다. 어떤 실시예들에서, 영상들이 컬렉션에 대한 영상들의 순서 계열의 끝에서 컬렉션에 추가된다. 다른 실시예들에서, 응용 프로그램은 영상들에 대한 전체 순서(예컨대, All Photos 컬렉션 내에서의 그들의 순서)를 저장하고, 이 순서는 태깅된 영상들 컬렉션 내에서 유지된다.
한편, 특정의 태그에 대한 컬렉션이 아직 존재하지 않을 때, 프로세스(7900)는 (7925에서) 태깅된 영상들에 대한 새 컬렉션을 생성한다. 이 프로세스는 이어서 (7930에서) 새로 태깅된 영상들을 새 컬렉션에 추가한다. 어떤 실시예들에서, 응용 프로그램은, "좋아하는 것(Favorites)" 등의 이름으로, 특정의 태그에 대한 새로운 컬렉션 데이터 구조체를 생성한다. 응용 프로그램은 이어서 새로 태깅된 영상들에 대한 영상 데이터 구조체들에 대한 참조들을 새로 생성된 데이터 구조체에 추가한다. 어떤 실시예들에서, 태깅된 영상들의 상이한 컬렉션들은 앨범으로서 나타난다.
도 80은 GUI(7300)의 3개의 스테이지(8010 내지 8030)에 걸쳐 사용자가 앨범으로부터 좋아하는 영상들의 컬렉션으로 탐색해 가는 것을 나타내고 있다. 제1 스테이지(8010)에서, 응용 프로그램은, 하이라이트된 좋아하는 것 버튼(7735)으로 나타낸 바와 같이, 좋아하는 것 태그가 적용된 영상(7705)을 디스플레이한다. 또한 이 스테이지에서, 사용자는 뒤로 버튼(8005)을 선택한다.
그 결과, 제2 스테이지(8020)는 응용 프로그램이 이제, 앨범 탭(8015)이 하이라이트된 상태에서, 컬렉션 정리 GUI(8000)를 디스플레이하는 것을 나타내고 있다. 응용 프로그램은 현재 2개의 앨범, 즉 "앨범 1" 및 좋아하는 것 앨범을 저장하고 있다. 도시된 바와 같이, 사용자는 이 스테이지에서 좋아하는 것 앨범을 선택한다. 제3 스테이지(8030)는 선택된 컬렉션으로서 좋아하는 것(Favorites)을 갖는 GUI(7300)를 나타내고 있다. 단지 4개의 영상이 좋아하는 것으로서 표시되어 있기 때문에, 이 컬렉션은 이 4개의 영상들만을 포함하고 있다. 어떤 실시예들에서, 사용자가 좋아하는 것 앨범을 보고, 한 영상을 선택하며, 이어서 (하이라이트된) 좋아하는 것 버튼을 선택할 때, 응용 프로그램은 좋아하는 것 태그를 선택된 영상으로부터 제거할 뿐만 아니라, 그 영상을 좋아하는 것 컬렉션으로부터 제거하며, 그 영상을 더 이상 디스플레이하지 않는다(따라서 태그는 특정의 컬렉션에 대한 영상 숨기기 태그처럼 기능함).
C. 영상 정보 보기
어떤 실시예들에서, 사용자는 하나 이상의 영상들에 관한 정보를 보고자 할 수 있다. 어떤 실시예들은 GUI 아이템을 제공하고(또는 키보드 단축키, 메뉴 옵션 등을 제공함), 그의 선택은 영상 보기 응용 프로그램으로 하여금 영상에 관한 정보를 제시하게 한다. 어떤 실시예들에서, 응용 프로그램은 이 정보를 영상에 대한 데이터 구조체에 저장하거나, 디스플레이된 정보에 액세스하기 위해 데이터 구조체로부터의 정보를 사용한다. 다수의 영상들이 선택되고 영상 디스플레이 구역에 디스플레이될 때, 어떤 실시예들은 선택된 영상들 각각에 대해 개별적인 정보를 디스플레이하는 반면, 다른 실시예들은 선택된 영상들 전부가 공통으로 가지는 정보만을 디스플레이한다.
도 81은 본 발명의 어떤 실시예들에 따른, 3개의 스테이지(8110 내지 8130)에 걸쳐 GUI(7300)에서 영상(8105)에 대한 이러한 정보에 액세스하는 것을 나타내고 있다. 도시된 바와 같이, 제1 스테이지(8110)에서, 응용 프로그램은 현재 영상(8105)을 디스플레이하고 있다. 제2 스테이지(8120)에서, 사용자는 정보 버튼(8115)을 선택한다.
제3 스테이지(8130)는 사용자가 정보 버튼(8115)을 선택할 때 나타나는 정보 창(8125)을 나타내고 있다. 도시된 바와 같이, 창(8125)은 3개의 탭, 즉 정보(info) 탭, 지도(map) 탭, 및 댓글(comments) 탭을 가지고 있다. 정보 탭은, 주로 Exif 데이터를 사용하여, 선택된 영상에 관한 정보를 디스플레이한다. 영상이 GPS 데이터를 가질 때, 사용자는 영상이 포착되었던 위치를 보여주는 지도를 보기 위해 지도 탭을 선택할 수 있다. 어떤 실시예들에서, 응용 프로그램은 지도 데이터의 데이터베이스에 액세스하기 위해 GPS 데이터를 사용하고 GPS 위치 부근의 지도 데이터의 특정의 영역을 다운로드한다. 이 데이터베이스는 응용 프로그램을 실행하는 디바이스에 로컬인 데이터베이스 또는 인터넷 등의 네트워크를 통해 액세스되는 원격 데이터베이스일 수 있다. 댓글 탭은, 이하에서 섹션 VI에 기술될 것인 바와 같이, 영상이 소셜 미디어 또는 사진 공유 웹 사이트에 업로드되었을 때 영상에 관한 다른 사람들의 댓글을 보기 위해서는 물론, 공유된 영상에 관한 부가의 댓글을 달기 위해 사용될 수 있다.
정보 탭 내에서, 어떤 실시예들의 응용 프로그램은 영상을 포착했던 디바이스(Canon EOS-1Ds Mark III), 영상 데이터를 저장하는 데 사용된 영상 파일의 유형(JPEG), 영상의 해상도(3072x4608) 및 파일 크기(2.6 MB), 영상이 포착된 시각 및 날짜(2012년 3월 4일, 오후 12시 10분 17초), 및 영상이 포착되었던 위치(Joshua Tree National Park)를 디스플레이한다. 어떤 실시예들에서, 위치가 GPS 데이터에 기초하여 자동으로 분석되는 반면, 다른 실시예들에서, 사용자가 이 데이터를 입력한다. 창(8125)의 하단에, 응용 프로그램은 조리개(f/5.6), 셔터 속도(1/200), 초점 거리(180mm), 노출(0.7EV), 및 필름 감도(film speed)(ISO 200)를 비롯한 카메라 설정 정보를 디스플레이한다.
도 82는 본 발명의 어떤 실시예들에 따른, 3개의 스테이지(8210 내지 8230)에 걸쳐 사용자가 GUI(7300)에서 영상(8205)에 대한 정보에 액세스하는 것을 나타내고 있다. 영상 디스플레이 구역에 상이한 영상(8205)이 있는 것을 제외하고는, 처음 2개의 스테이지(8210 및 8220)는 도 81에 대해 앞서 도시된 것과 동일하다. 제3 스테이지에서, 정보 창(8125)은 정보에 대한 상이한 값을 디스플레이하는데, 그 이유는 그 정보의 일부가 영상(8105)의 정보와 상이하기 때문이다. 예를 들어, 타임스탬프(3:15:57 PM)는 동일한 날의 나중의 시간이고, 파일 크기도 역시 상이한데, 그 이유는 카메라 설정의 일부가 상이하기 때문이다.
도 83은 GUI(7300)의 3개의 스테이지(8310 내지 8330)에 걸쳐 영상들(8105 및 8205) 둘 다가 선택되어 있는 상태에서 정보 창을 선택하는 것을 나타내고 있다. 다시 말하지만, 이 도면의 처음 2개의 스테이지는, 이 경우에, 응용 프로그램이 영상들(8105 및 8205) 둘 다를 영상 디스플레이 구역에 디스플레이하고 있는 것을 제외하고는, 이전의 2개의 도면의 스테이지들과 유사하다. 제3 스테이지(8330)에서, 정보 창(8125)은 선택된 영상들 전부가 공통으로 가지는 정보만을 디스플레이한다. 이 경우에, 영상들 둘 다는 14.2 MP을 갖는 JPEG 파일이지만, 상이한 파일 크기를 가진다(따라서 보여지지 않음). 게다가, 영상들 둘 다의 GPS 데이터는 Joshua Tree National Park으로 분석되고, 타임스탬프가 상이한 반면, 이 영상들 둘 다는 3월 4일에 (다른 때에) 포착되었다. 영상 설정에서, 셔터 속도, 초점 거리, 및 필름 감도 설정은 2개의 영상에 대해 동일하였지만, 사진가가 조리개 및 노출 보상을 위해 2개의 영상 사이에 상이한 설정을 가졌기 때문에, 응용 프로그램은 이 정보를 디스플레이하지 않는다.
VI. 영상 공유
이전의 섹션에서 간략히 언급한 바와 같이, 어떤 실시예들은, 영상들을 소셜 미디어 또는 사진 공유 웹 사이트에 그 사이트에서의 사용자의 계정을 통해 업로드함으로써, 사용자가 영상 편집, 보기, 및 정리 응용 프로그램으로부터 직접 영상들을 공유할 수 있게 해준다. 사용자가 영상을 공유하자고 요청할 때, 응용 프로그램은 응용 프로그램이 동작하고 있는 디바이스에 (예컨대, 인터넷을 통해) 웹 사이트에 연결하라고 지시하고, 이어서 영상을 웹 사이트 상의 사용자의 계정에 자동으로 업로드한다. 어떤 실시예들에서, 응용 프로그램은, 그에 부가하여, 웹 사이트의 다른 사용자들이 영상에 댓글을 달았을 때를 식별하고, 이 댓글들을 응용 프로그램의 사용자에게 디스플레이한다.
어떤 실시예들은 사용자가 영상에 캡션을 추가하는 기능을 제공한다. 사용자가 사진 호스팅 웹 사이트 상의 영상을 공유하고자 할 때, 사용자는 영상에 대한 캡션을 가지고자 할 수 있다. 어떤 실시예들에서, 사용자는, 응용 프로그램 내에서 영상에 대해 저장된 캡션을 사용하는 것에 부가하여 또는 그에 대한 대안으로서, 이 캡션을 영상을 공유하기 위한 대화 상자 내에서 이 캡션을 웹 사이트에 추가할 수 있다. 응용 프로그램 내에서, 상기 도 15에 도시되어 있는 바와 같이, 이 캡션은 영상에 대한 데이터 구조체에 저장된다. 도 84는 GUI(8400)의 6개의 스테이지(8410 내지 8460)에 걸쳐 사용자가 영상에 캡션을 추가하는 것을 나타내고 있다. GUI(8400)는 이전의 GUI들[예컨대, GUI(3500)]과 유사하지만, 또한 상단 도구 모음의 중앙에 캡션 추가 버튼(8405)을 포함하고 있다. 제1 스테이지(8410)에서, 응용 프로그램은 영상 디스플레이 구역에 선택된 영상(8415)을 디스플레이한다.
제2 스테이지(8420)에서, 사용자는 선택된 영상(8415)에 캡션을 추가하기 위해 캡션 추가 버튼(8405)을 탭핑한다. 제3 스테이지(8430)는, 사용자가 캡션을 입력하도록, 응용 프로그램이 터치스크린 키보드(8425)를 터치스크린의 일부 또는 전부 상에 오버레이시키는 것을 나타내고 있다. 어떤 실시예들에서, 키보드는 디바이스의 운영 체제에 의해 제공되고, 사용자가 캡션을 추가하기 위한 입력을 제공할 때, 응용 프로그램은 키보드에 대한 요청을 운영 체제로 송신한다.
그에 부가하여, 어떤 실시예들에서, 터치스크린 디바이스는 사용자가 캡션을 입력하기 위해 사용할 수 있는 별도의 키보드와 연결되어 있을 수 있다. 게다가, 기술 분야의 당업자라면 영상 보기 응용 프로그램이 사용자가 캡션 추가 버튼을 선택하기 위해 커서 컨트롤러(또는 기타 디바이스)를 사용하고 이어서 캡션을 타이핑하기 위해 키보드를 사용하여 상호작용하는 비-터치스크린 디바이스 상에서 동작할지도 모른다는 것을 잘 알 것이다.
제3 및 제4 스테이지(8430 및 8440)는 사용자가 영상(8405)에 대해 "In the Front Row!" 캡션을 타이핑할 때의 GUI(8400)를 나타내고 있다. 사용자가 타이핑할 때, 캡션은 영상 디스플레이 구역 위쪽에 있는 상부 헤더 구역에 나타난다. 제5 스테이지(8450)에서, 사용자는 캡션을 완료하기 위해 키보드 상에서 "리턴(return)" 버튼을 선택한다. 제6 스테이지(8460)는 사용자가 캡션을 입력한 후의 GUI(8400)를 나타내고 있다. 응용 프로그램은 이제 캡션 추가 버튼 대신에 영상의 상단에 캡션을 디스플레이한다. 그에 부가하여, 응용 프로그램은 축소판(8435) 상에 작은 텍스트로 캡션을 오버레이한다. 응용 프로그램은 이제 입력된 캡션을 영상(8415)에 대한 데이터 구조체에 저장할 것이다.
언급한 바와 같이, 영상이 캡션을 갖든 그렇지 않든 간에, 어떤 실시예들에서, 사용자는 영상을 소셜 미디어 또는 사진 공유 웹 사이트로 업로드하기 위해 영상 보기 및 편집 응용 프로그램을 사용할 수 있다. 도 85는 어떤 실시예들에 따른, 소셜 미디어 사이트 Facebook®를 통해 영상(8405)을 공유하기 위한 GUI(8400)와의 사용자 상호작용을 나타낸 것이다. 제1 스테이지(8510)에서, 사용자는 선택된 영상들을 각종의 방식으로 공유하기 위해 옵션들을 제공하는 공유 버튼(8505)을 선택한다. 제2 스테이지(8520)에 도시된 바와 같이, 응용 프로그램은 영상을 방송(beam)하는 옵션, 선택된 영상들을 사용하여 저널을 제작하는 옵션, 및 인터넷을 통해 영상을 공유하는 옵션을 갖는 공유 메뉴(8515)를 디스플레이한다. 어떤 실시예들에서, 영상을 방송하는 것은 영상을 동일한 로컬 네트워크(예컨대, 블루투스 네트워크, Wi-Fi 네트워크 등) 상의 다른 디바이스와 직접 공유하는 것을 수반한다. 어떤 실시예들에서, 저널은 사용자가 텍스트 메모, 그래픽, 및 기타 정보를 추가할 수 있는 한 세트의 영상들의 공유가능 배열(shareable arrangement)이다.
제2 스테이지(8520)에서, 사용자는 "인터넷으로 공유(Share on Internet)" 옵션을 선택한다. 제3 스테이지(8530)는 응용 프로그램이 이제 3개의 사진 공유 웹 사이트 옵션(twitter®, Flickr®, 및 Facebook®)을 갖는 새 메뉴(8525)를 디스플레이하는 것을 나타내고 있지만, 다른 실시예들은 사용자들이 영상을 공유할 수 있는 상이한 웹 사이트를 포함할 수 있다. 이 예에서, 사용자는 그의 Facebook® 계정으로 영상을 공유하기 위해 Facebook® 옵션을 선택한다. 이 시점에서, 응용 프로그램은 사용자의 Facebook® 계정으로 영상을 업로드하려고 시도하기 시작한다.
어떤 실시예들에서, 저널을 제작하는 것, 영상을 방송하는 것, 및 다양한 다른 공유 옵션들과 함께, 상이한 소셜 미디어/사진 공유 웹 사이트가 메뉴(8515)의 일부이다. 그에 부가하여, 사용자가 영상을 공유하기 위해 사용할 웹 사이트를 선택한 후에, 응용 프로그램은 이어서 사용자가 사진 공유 웹 사이트에 업로드하기 위해 어느 영상들을 선택할지에 대한 옵션들(즉, 선택된 영상 또는 영상들, 현재의 앨범에 있는 모든 영상들, 현재의 앨범으로부터의 한 세트의 새로운 영상들 등)을 제공한다.
도 86은 소셜 미디어 또는 사진 공유 웹 사이트를 통해 영상을 공유하는 어떤 실시예들의 프로세스(8600)를 개념적으로 나타낸 것이다. 도 86이 "사진 공유" 사이트를 언급하고 있지만, 이것은 Flickr® 등의 사진 공유를 위해 특별히 설계된 사이트, 또는 Facebook® 또는 twitter® 등의 보다 광의의 소셜 미디어 웹 사이트일 수 있다. 도시된 바와 같이, 프로세스(8600)는 (8605에서) 영상을 사진 공유 웹 사이트로 업로드하라는 명령을 수신하는 것으로 시작한다. 응용 프로그램은 도 85에 도시된 한 세트의 사용자 상호작용을 통해 또는 그의 변형을 통해 이 명령을 수신할 수 있다.
이 프로세스는 이어서 (8610에서) 사용자 계정이 응용 프로그램이 동작하는 디바이스로부터 선택된 사진 공유 사이트에 로그온되어 있는지를 판정한다. 응용 프로그램의 어떤 실시예들은 상이한 소셜 미디어 및 사진 공유 사이트에 대한 특정의 응용 프로그램들 - 이를 통해 디바이스는 필요에 따라 웹 사이트에 자동으로 로그온함 - 을 포함하는 디바이스에서 동작한다. 이 경우에, 응용 프로그램은 웹 사이트에 로그온하는 데 문제가 없을 것이다. 다른 실시예들에서, 사용자는 (사이트-관련 응용 프로그램을 통해 또는 웹 브라우저를 통해) 분명하게 사이트에 로그온해야만 한다.
사용자가 로그온되어 있지 않을 때, 프로세스(8600)는 (8615에서) 영상을 업로드하기 전에 사용자에게 웹 사이트에 로그인하라고 프롬프트하고, 이어서 종료한다. 사용자가 로그온하면, 응용 프로그램은 또 다시 프로세스(8600)를 시작한다. 어떤 실시예들에서, 영상 보기 응용 프로그램은 사용자가 웹 사이트에 로그온하는 인터페이스를 디스플레이하는 반면, 다른 실시예들은 사용자가 로그온하기 위해 상이한 응용 프로그램(예컨대, 사이트에 대한 전용 응용 프로그램 또는 웹 브라우저)으로 전환할 것을 필요로 한다.
사용자가 요청된 사진 공유 사이트에 로그온했을 때, 이 프로세스는 (8616에서) 영상들이 이미 그 사이트에 업로드되어 있는지를 판정한다. 어떤 실시예들에서, 응용 프로그램은 특정의 사진 공유 웹 사이트에 대한 영상에 대해 영상 ID가 이미 저장되어 있는지를 판정하기 위해 영상에 대한 데이터 구조체를 검사한다. 그에 부가하여, 어떤 실시예들은, 웹 사이트 데이터베이스에 질의함으로써, 영상이 여전히 웹 사이트에 존재하는지를 판정한다. 어떤 실시예들은 어떤 웹 사이트들에 대해서는 이 검사를 수행하지만, 다른 웹 사이트들에 대해서는 그렇게 하지 않는다.
영상이 이미 공유되고 있을 때, 프로세스(8600)는 이어서 (8619에서) 사용자가 그 영상을 새로운 영상으로서 공유하고자 하는지를 판정한다. 사용자는 그 영상을 사진 공유 웹 사이트 내의 다른 앨범에 추가하고자 할 수 있다. 그에 부가하여, 사용자는 영상을 편집했을 수 있고, (예컨대, 편집 전후의 영상 모두를 보여주기 위해) 편집된 영상을 새로운 영상으로서 추가하고자 한다. 사용자가 그 영상을 새로운 영상으로서 추가할 때, 이 프로세스는 이하에서 기술되는 8620으로 진행한다. 그렇지 않은 경우, 이 프로세스는 또한 (8617에서) 사용자가 사진 공유 사이트 상에 업로드된 영상을 대체하고자 하는지를 판정한다. 예를 들어, 사용자는 영상을 편집했을 수 있고, 공유된 영상을 새로운 버전으로 대체하고자 한다. 동작들(8619 및 8617)을 구현하기 위해, 어떤 실시예들은 업로드를 취소할지, 영상을 새로운 영상으로서 공유할지, 또는 사진 공유 사이트 상의 영상의 기존의 버전을 대체할지를 사용자가 선택할 수 있게 해주는 프롬프트를 사용자에게 제공한다. 사용자가 영상을 대체하거나 새로운 영상을 공유하고자 하지 않을 때, 프로세스는 영상을 업로드하는 일 없이 종료한다.
사용자가 공유된 영상을 대체하고자 할 때, 이 프로세스는 (8618에서) 대체될 영상에 대한 기존의 영상 ID를 사용하여 사진 공유 사이트의 인터페이스를 통해 새로운 영상을 업로드하고, 이어서 종료한다. 영상이 아직 공유되고 있지 않을 때, 이 프로세스는 (8620에서) 사진 공유 사이트의 인터페이스를 통해 영상을 업로드한다. 어떤 실시예들에서, 영상 보기 및 편집 응용 프로그램은 업로드 동작을 수행하기 위해 디바이스 상의 사이트-관련 응용 프로그램(예컨대, Facebook® 응용 프로그램)을 사용한다. 다른 실시예들에서, 응용 프로그램은 웹 사이트 자체와 트랜잭션을 한다. 영상을 업로드하기 위해, 어떤 실시예들은 적용되는 편집 명령어로 전체 크기 영상을 발생한다(앞서 기술된 바와 같이, 어떤 실시예는, 원본으로부터 편집된 영상을 발생하기 위해, 원래의 전체 크기 영상만을 편집 명령어와 함께 저장한다).
사진 공유 사이트의 인터페이스를 통해 영상을 업로드한 후에, 프로세스(8600)는 (8625에서) 사진 공유 사이트의 데이터베이스에 있는 업로드된 영상에 대한 ID를 수신한다. 이 프로세스는 (8630에서) 웹 사이트 상의 영상에 액세스하는 데 사용하기 위해 영상 ID를 저장하고, 이어서 종료한다. 이 영상 ID는 (예컨대, 댓글들을 다운로드하기 위해) 응용 프로그램이 웹 사이트에 접촉하고 업로드된 영상에 관한 정보를 요청할 수 있게 해준다. 어떤 실시예들에서, 응용 프로그램은, 도 15를 참조하여 앞서 살펴본 바와 같이, 영상 ID를 영상 데이터 구조체에 저장한다.
어떤 실시예들의 프로세스(8600)에서, 사용자가 영상을 업로드하기로 할 때, 응용 프로그램은 어떤 추가의 상호작용도 없이 영상을 사진 공유 웹 사이트에 자동으로 업로드한다. 그렇지만, 어떤 실시예들은 사용자가 업로드를 추가로 커스터마이즈할 수 있게 해준다. 도 87은 GUI(8700)의 10개의 스테이지(8701 내지 8710)에 걸쳐 사용자가 영상을 Facebook®에 업로드하는 것을 나타내고 있다. GUI(8700)는 어떤 실시예들의 앞서 살펴본 GUI(8400)와 유사하며, 공유 버튼(8705)을 포함하고 있다. 제1 스테이지(8705)는 사용자가 공유 버튼(8715)을 이미 선택하였고, 이로 인해 응용 프로그램이 각종의 상이한 공유 옵션들의 메뉴를 디스플레이하는 것을 나타내고 있다. 이 경우에, 메뉴는 각종의 상이한 사진 공유/소셜 미디어 웹 사이트는 물론, 저널을 제작하는 것에 대한 몇가지 아이콘들을 포함하고 있다. 어떤 실시예들에서, 이 메뉴는 영상을 다른 디바이스로 방송하는 것, 영상을 이메일로 보내는 것 등과 같은 부가의 공유 옵션들을 포함하고 있다. 도시된 바와 같이, 사용자는 스테이지(8701)에서 "Facebook" 아이콘을 선택한다.
이 옵션의 선택은 응용 프로그램으로 하여금 제2 스테이지(8702)에서 GUI(8700)에 부가의 메뉴(8720)를 디스플레이하게 한다. 이 메뉴(8720)는 사용자가 어느 영상들이 공유되어야 하는지를 결정할 수 있게 해준다. 사용자는 축소판 디스플레이 구역에 현재 디스플레이되어 있는 전체 앨범, 현재 선택된 영상들을 공유하기로 선택할 수 있거나, 어떤 실시예들에서, 사용자가 현재의 앨범(또는, 어떤 이러한 실시예에서, 상이한 앨범들)으로부터 공유를 위한 한 세트의 영상들을 선택할 수 있는 대화 상자를 불러오는, 새로운 영상들을 선택하는 제3 옵션이 있다. 이 경우에, 사용자는 하나의 선택된 영상을 공유하기로 선택한다.
제3 스테이지(103)에서, GUI(8700)는 이제 사용자가 영상을 특정의 선택된 사진 공유 웹 사이트(이 경우에, Facebook®)로 업로드하는 것을 커스터마이즈할 수 있게 해주는 영상 공유 대화 상자(8725)를 포함하고 있다. 대화 상자(8725)는 축소판 영상(8730), 캡션 상자(8735), 위치 추가(add location) 아이템(8740), 및 친구 태깅(friend tagging) 아이템(8745)을 포함하고 있다. 어떤 실시예들에서, 사용자가 다수의 영상들을 공유할 때, 응용 프로그램은 공유하기 위해 선택된 각각의 영상에 대해 이 아이템들을 디스플레이한다. 그에 부가하여, 대화 상자(8725)는 취소 옵션 및 공유 옵션 - 각각, 사용자가 공유 동작을 취소하거나 영상들을 실제로 업로드하기 시작할 수 있게 해줌 - 을 포함하고 있다. 마지막으로, 대화 상자(8725)는 사용자가 공유된 영상들에 대한 목적지로서 (영상 보기 및 편집 응용 프로그램 내의 앨범들이 아니라) 사진 공유 웹 사이트 상의 상이한 앨범들 중에서 선택할 수 있게 해주는 앨범 선택 버튼(8750)을 포함하고 있다. 도시된 바와 같이, 제3 스테이지(8703)에서, 사용자는 앨범 선택 버튼(8750)을 선택한다.
이 선택의 결과, 사용자가 제4 스테이지(8704)에서 상이한 앨범들을 선택할 수 있는 메뉴[또는 피커(picker)](8755)가 디스플레이된다. 어떤 실시예들에서, 응용 프로그램(또는 응용 프로그램이 동작하고 있는 디바이스)은 사진 공유 웹 사이트 상의 사용자의 계정에 로그인하고(앞서 기술한 바와 같이, 영상들을 업로드하는 데 필요함), 사용자가 웹 사이트 상에서 생성했던 상이한 앨범들의 목록을 검색한다. 사용자가 버튼(8750)(또는 그의 등가물)을 선택할 때, 응용 프로그램은 사용자의 앨범들의 목록은 물론, 새 앨범을 생성하는 옵션을 디스플레이한다. 어떤 실시예들은 사용자가 생성했거나 영상들을 업로드한 특정의 수의 가장 최근의 앨범들로 피커를 미리 채운다. 이 경우에, 사용자는 "자연(Nature)" 앨범 옵션을 선택하고, 따라서 번개의 사진이 Facebook® 상의 이 앨범에 업로드될 것이다.
제5 스테이지(8705)에서, 사용자는 위치 추가 버튼(8740)을 선택한다. 제6 스테이지(8706)에 도시된 바와 같이, 이 선택의 결과, 사용자가 영상을 태깅할 상이한 위치들을 선택할 수 있는 메뉴(또는 피커)(8760)가 디스플레이된다. 어떤 실시예들에서, 응용 프로그램(또는 응용 프로그램이 동작하고 있는 디바이스)은 사용자가 사진 공유 웹 사이트 상의 영상들에 이전에 태깅하였던 상이한 위치들의 목록을 검색한다. 도시된 바와 같이, 메뉴(8760)는 이전에 생성된 "홈(Home)" 위치, 새로운 위치, 또는 현재의 위치를 선택하는 옵션들을 포함하고 있다. 어떤 실시예들에서, 영상 보기 및 편집 응용 프로그램, 또는 영상 보기 및 편집 응용 프로그램을 동작시키는 디바이스 상의 다른 응용 프로그램은 사용자의 위치를 식별하기 위해 위치 검출 메커니즘(예컨대, GPS)을 사용하고, 이어서 이 위치를 식별된 현재의 위치로부터 특정의 거리(예컨대, 1 킬로미터, 1 마일 등) 내에 있는 장소들(예컨대, 레스토랑, 주소 등)의 목록과 상관시킨다. 그에 부가하여, 어떤 실시예들은 위치를 결정하기 위해 (예컨대, Exif 데이터 내에) 영상과 함께 저장된 GPS 데이터를 사용하고, 영상이 포착되었던 위치로부터 특정의 거리 내에 있는 장소들을 열거한다. 응용 프로그램은 이어서 이것을 메뉴(8760) 내에 현재 위치 옵션으로서 제공한다. 어떤 실시예들은 사용자가 영상들을 태깅한 특정의 수의 가장 최근의 위치들로 피커를 미리 채운다. 이 경우에, 사용자는 "홈" 위치 태그를 선택한다.
제7 스테이지(8707)에서, 사용자는 친구 태깅 아이템(8745)을 선택한다. 제8 스테이지(8708)에 도시된 바와 같이, 이 선택의 결과, 사진 공유 웹 사이트와 관련한 사용자의 친구들을 열거하는 메뉴(또는 피커)(8765)가 디스플레이된다. 다양한 사진 공유/소셜 미디어 웹 사이트는 사용자가 친구들의 네트워크를 가질 수 있게 해주고, 어떤 실시예들은, 사용자가 영상 보기 및 편집 응용 프로그램의 인터페이스를 통해 영상들 내의 그의 친구들을 태깅할 수 있도록, 이 친구들의 목록을 검색한다. 어떤 실시예들은 사용자의 특정의 수의 가장 최근에 태깅된 친구들로 피커를 미리 채운다. 어떤 실시예들에서, 사용자는 태깅하고자 하는 임의의 수의 친구들을 태깅할 수 있다. 그렇지만, 이 예에서, 사용자는 어떤 친구도 태깅하지 않고, 그 대신에, 캡션 상자(8735) 내부를 선택한다.
제9 스테이지(8709)는, 사용자가 캡션 상자 내부를 (예컨대, 탭핑에 의해) 선택할 때, 사용자가 영상에 대한 캡션을 입력하도록 응용 프로그램이 터치스크린 키보드(8770)를 오버레이하는 것을 나타내고 있다. 어떤 실시예들에서, 키보드는 디바이스의 운영 체제에 의해 제공되고, 사용자가 캡션 상자 내부를 탭핑할 때, 응용 프로그램은 키보드에 대한 요청을 운영 체제로 송신한다. 이 경우에, 사용자는 캡션 상자(8735) 내에 "Right outside my house!"를 타이핑하기 위해 키보드(8770)를 사용하였고, 캡션을 완료하기 위해 키보드 상에서 "리턴" 버튼을 선택한다. 제10 스테이지(8710)에서, 사용자는 캡션과 함께 사진을 공유하기 위해 공유 버튼을 선택한다. 어떤 실시예들에서, 이 캡션은 사진 공유 사이트에 대해 사용되지만, 영상 보기 및 편집 응용 프로그램 내에서 영상과 함께 저장되지 않는다.
도 86을 참조하여 앞서 기술한 바와 같이, 영상이 이미 업로드되어 있는 사진 공유 웹 사이트에 공유하기 위한 영상을 사용자가 선택할 때, 어떤 실시예들은 사용자가 영상을 새로운 영상으로서 업로드하거나 웹 사이트 상의 이전의 영상을 대체할 수 있게 해준다. 그에 부가하여, 영상을 대체할 때, 어떤 실시예들은, 사용자가 이 첨부 정보를 업데이트하도록, 웹 사이트로부터 캡션, 태그, 및/또는 다른 정보를 검색한다.
도 88은 GUI(8700)의 4개의 스테이지(8801 내지 8804)에 걸쳐 사용자가 도 87에서 업로드된 영상의 편집된 버전을 비롯한 Facebook®에 로드하기 위한 2개의 영상을 선택하는 것을 나타낸 것이다. 처음 2개의 스테이지들(8801 및 8802)은, 이 경우에 번개의 사진이 편집되었고(그의 축소판 상에 도구 상자 아이콘이 오버레이되어 있는 것으로 표시됨) 제2 영상이 또한 선택되어 있다는 것을 제외하고는, 스테이지들(8701 및 8702)과 동일하다. 그에 부가하여, 번개의 사진은 적어도 하나의 사진 공유 웹 사이트에 이미 공유되어 있다는 것을 나타내는, 그의 축소판을 오버레이하고 있는 아이콘을 가진다.
사용자가 선택된 영상을 업로드하기로 한 후에, 응용 프로그램은 영상들 중 임의의 것이 이미 업로드되었는지를 판정한다. 영상들에 대한 데이터 구조체(예컨대, 상기 도 15를 참조하여 기술되어 있음)는 영상이 공유되어 있는 임의의 위치들을 나타내고 있다. 이 예에서 선택된 영상들 중 하나가 이미 Facebook®에 공유되어 있기 때문에, 응용 프로그램은 사진이 이미 공유되어 있다는 것을 나타내고 사용자가 영상을 대체할지, 영상을 (사진 공유 웹 사이트와 관련하여 새로운 영상으로서) 공유할지, 또는 업로드를 취소할지를 선택할 수 있게 해주는 대화 상자(8805)를 디스플레이한다. 이 경우에, 사용자는 영상을 대체하기로 선택한다. 그렇지만, 어떤 실시예들에서, 응용 프로그램은, 사용자가 영상을 사진 공유 웹 사이트의 동일한 앨범에 이전의 버전으로서 업로드하려고 시도하는 경우, 대화 상자(8805)만을 나타나게 한다.
그 결과, 제4 스테이지에서, 응용 프로그램은 영상 공유 대화 상자(8810)를 나타나게 한다. 이것은 대화 상자(8725)와 유사하지만, 2개의 개별적인 세트의 캡션 상자, 축소판, 위치 추가 아이템, 및 친구 태깅 아이템을 포함하고 있다. 번개 영상의 경우, 응용 프로그램은 사진 공유 웹 사이트로부터 캡션 및 태깅 정보를 검색하고, 이 정보를 대화 상자(8810) 내에서 편집가능한 것으로 디스플레이한다. 이 경우에, 캡션 및 위치가 편집가능 정보로서 디스플레이된다.
사진 공유 웹 사이트에 업로드된 영상의 경우, 어떤 실시예들은 그 웹 사이트로부터의 영상들과의 상호작용들을 자동으로 검색한다. 도 89는 사진 공유 또는 소셜 미디어 웹 사이트 상의 영상에 게시되는 댓글을 검색하는 어떤 실시예들의 프로세스(8900)를 개념적으로 나타낸 것이다. 어떤 실시예들의 응용 프로그램은, 응용 프로그램의 GUI의 영상 디스플레이 구역에 현재 디스플레이되어 있는 영상이 사진 공유 사이트에 게시되어 있을 때, 프로세스(8900)를 수행한다. 어떤 실시예들은, 설정된 기간(예컨대, 1 초, 5 초, 1 분 등) 동안 영상을 디스플레이 구역에 디스플레이한 후에, 댓글 검색 프로세스만을 수행한다.
도시된 바와 같이, 프로세스(8900)는 (8905에서) 현재 디스플레이된 영상이 사진 공유 웹 사이트에 게시되어 있다는 것을 식별하는 것으로 시작한다. 어떤 실시예들은 영상을 디스플레이하면서 특정의 기간 동안 기다리고, 영상이 임의의 곳에서 공유되어 있는지를 판정한다. 영상이 공유되어 있지 않을 때, 프로세스(8900)는 수행되지 않을 것이다. 게다가, 영상이 몇개의 상이한 사이트에 공유되어 있을 때, 어떤 실시예들은 각각의 사이트에 대해 또는 사이트들의 서브셋에 대해 프로세스(8900) 또는 그의 변형을 수행한다.
프로세스(8900)는 (8910에서) 사진 공유 웹 사이트의 데이터베이스에 있는 영상에 대해 사용되는 영상 ID를 검색한다. 어떤 실시예들에서, 응용 프로그램은 디스플레이된 영상의 데이터 구조체로부터 이 영상 ID를 검색한다. 이 프로세스는 이어서 (8915에서) 사이트의 데이터베이스에서 영상을 식별하기 위해 검색된 영상 ID를 사용하여, 영상에 관련된 정보에 대한 요청을 사진 공유 사이트로 송신한다. 어떤 실시예들에서, 이 영상 ID는 사이트의 데이터베이스에서 영상에 대해 생성된 객체를 식별해주는 객체 ID이고, 응용 프로그램은 그 객체의 특정의 속성들을 요청한다.
요청을 송신한 것에 응답하여, 이 프로세스는 (8920에서) 댓글 스트림 및 임의의 부가의 요청된 정보를 사진 공유 사이트로부터 수신한다. 어떤 실시예들에서, 댓글 스트림은 각각이 댓글을 작성하는 사용자, 사용자의 프로필 축소판, 댓글 텍스트 자체, 및 타임스탬프를 포함하는 일련의 댓글로서 수신된다. 그렇지만, 다른 실시예들은 내포된 댓글(nested comment)의 트리 구조를 수신하고 파싱한다. 그에 부가하여, Facebook® 또는 유사한 특징들을 갖는 사이트들에 게시된 영상들의 경우, 어떤 실시예들은 게시된 영상이 받은 "좋아요(Likes)"의 수는 물론 누가 영상을 좋아했는지를 수신한다.
이 정보가 수신되면, 프로세스(8900)는 (8925에서) 영상에 대한 댓글 스트림의 마지막 액세스 날짜를 검색한다. 검색된 날짜 및 시각은 사용자가 영상 보기 응용 프로그램 내에서 영상에 대한 임의의 댓글을 마지막으로 본 때이다. 사용자가 영상을 업로드한 후에 영상에 관한 어떤 댓글도 보지 않은 경우, 검색된 시각은 업로드의 시각일 것이다. 어떤 실시예들에서, 사용자가 사진 공유 사이트를 통해 직접 영상에 관한 댓글을 보았는지는 마지막 액세스 날짜에 영향을 주지 않는다.
이 프로세스는 이어서 (8930에서) 검색된 마지막 액세스 날짜가 댓글 스트림에서의 가장 최근의 댓글보다 더 빠른지를 판정한다. 이 프로세스는 마지막 액세스 날짜를 가장 최근의 댓글에 대한 타임스탬프와 비교하고, 어느 것이 더 빠른지를 판정한다. 마지막 액세스 날짜가 더 빠를 때, 이 프로세스는 (8935에서) 새로운 댓글들이 이용가능하다는 통지를 사용자에게 디스플레이한다. 어떤 실시예들에서, 이 통지는 (댓글에 액세스하는 데 사용되는) 정보 버튼 상의 작은 아이콘 또는 배지(badge)로 이루어져 있다. 어떤 실시예들은 새로운 댓글들이 이용가능하다는 것을 단순히 나타내는 통지 버튼을 사용하는 반면, 다른 실시예들은 새로운 댓글들의 수의 표시(예컨대, 아이콘 내부의 숫자)를 제공한다. 새로운 댓글들의 수를 결정하기 위해, 어떤 실시예들은 마지막 액세스 날짜 이전의 댓글에 도달할 때까지 마지막 액세스 날짜를 각각의 연속적인 이전의 댓글과 비교한다. 필요한 경우, 통지를 디스플레이한 후에, 이어서, 프로세스(8900)가 종료한다.
어떤 실시예들에서, 정보 창에서 댓글 탭에 액세스함으로써, 사용자는 이 댓글들을 볼 수 있다. 이 창을 통해, 어떤 실시예들은 또한 사용자가 사진 공유 웹 사이트에 게시되는 부가의 댓글로 응답할 수 있게 해준다.
도 90은 어떤 실시예들의 GUI(8400)의 6개의 스테이지(9010 내지 9060)에 걸쳐 사용자가 정보 창을 통해 이러한 댓글을 게시하는 것을 나타내고 있다. 제1 스테이지(9010)에서, 응용 프로그램은 사용자가 이전에 캡션을 붙여 Facebook®에 게시했던 영상(8415)을 디스플레이한다. 그에 부가하여, 응용 프로그램은 정보 버튼(8505) 상에 작은 아이콘(9005)을 디스플레이한다. 이 작은 아이콘은 디스플레이된 영상이 2개의 새로운 댓글을 받았다는 것을 나타낸다. 어떤 실시예들은, 상이한 사이트들을 구분하지 않고, 상이한 사진 공유 웹 사이트에 대해 동일한 아이콘을 사용한다. 다른 실시예들은 Facebook®, Flickr® 등에 대해 상이한 아이콘들(예컨대, 상이한 색상, 상이한 아이콘 형상 등)을 사용한다.
제2 스테이지(9020)에서, 사용자는 정보 버튼(8505)을 선택한다. 도 81 내지 도 83에서와 같이, 이것으로 인해, 스테이지(9030)에서 정보 창(9015)이 디스플레이 상에 나타난다. 사용자는 이어서 댓글 탭을 선택한다. 제4 스테이지(9040)는 댓글 탭을 디스플레이한다. 도시된 바와 같이, 정보 창(9015)은 이제 "Paul Smith"가 사용자의 영상에 관해 쓴 Facebook® 댓글을 디스플레이한다. 이 도면은 정보 탭이 초기에 디스플레이되고 사용자가 이어서 댓글 탭을 선택하는 것을 나타내고 있다. 그렇지만, 어떤 실시예들은, 사용자가 아마도 새로운 댓글을 보고자 하는 것으로 가정하여, 사용자가 통지 아이콘이 디스플레이되어 있는 정보 버튼을 선택한 것에 응답하여, 댓글 탭을 자동으로 디스플레이한다. 스테이지(9040)에서의 정보 창(9015)은, 모든 댓글들을 디스플레이하기 위해, 스테이지(9030)에서보다 크다. 어떤 실시예들에서, 확장되기 보다는, 정보 창(9015)은 동일한 크기로 있으며, 첫번째 새로운 댓글이 창의 상단에 있도록 댓글들을 자동으로 디스플레이하며, 사용자는 댓글 스트림을 스크롤할 수 있다.
스테이지(9040)에서, 댓글 스트림은 또한 사용자가 댓글을 입력할 수 있는 섹션을 포함하고 있다. 사용자는 이 섹션을 탭핑하고, 제5 스테이지(9050)는 그 결과 나타난 터치스크린 키보드(8425)를 나타내고 있다. 이것은 사용자가 영상에 대해 Facebook®에 게시할 댓글을 타이핑할 수 있게 해준다. 사용자가 그의 응답을 타이핑한 후에, 스테이지(9060)에서 정보 창(8415)은 새로운 댓글을 댓글 스트림의 끝에 디스플레이하여, 댓글이 Facebook®에 게시되었다는 것을 나타낸다. 사용자 댓글을 게시하기 위해, 응용 프로그램은 저장된 영상 ID를 갖는 사용자 댓글을 사용자 정보와 함께 사진 공유 웹 사이트로 전송한다. 어떤 실시예들에서, 응용 프로그램은 응용 프로그램 GUI에 댓글을 디스플레이하기 전에 웹 사이트로부터의 확인을 기다린다.
VII. 상황-의존적 도움말
어떤 실시예들은 또한 다양한 사용자 인터페이스 도구들에 대해 도구의 기능에 관한 표시를 제공하는 상황-의존적 도움말 기능을 포함하고 있다. 어떤 실시예들에서, 응용 프로그램은 응용 프로그램의 현재의 활성 도구들에 기초하여 어느 사용자 인터페이스 기능에 대한 도움말 정보가 제공되어야 하는지를 판정한다. 예를 들어, 사용자가 특정의 편집 도구 세트를 선택할 때, 응용 프로그램은 특히 선택된 편집 도구 세트에 대한 정보를 디스플레이에 추가하면서 도움말 정보의 일부를 디스플레이로부터 제거한다.
도 91은 도움말 기능의 다양한 동작들을 제시하는 어떤 실시예들의 GUI의 상태도(9100)를 개념적으로 나타낸 것이다. 기술 분야의 당업자라면 상태도(9100)가 영상 보기 및 편집 GUI의 모든 상태 또는 심지어 상황-의존적 도움말 기능에 관련된 모든 상태를 포함하지는 않고 그 대신에 GUI 내에서의 도움말 기능 동작들의 일부만을 포함하고 있다는 것을 잘 알 것이다.
상태도(9100)는 도 92 내지 도 96에 예시되어 있는 UI 예들을 참조하여 기술될 것이다. 구체적으로는, 도 92는 도움말 아이콘이 나타나는 것과 관련된 어떤 실시예들의 영상 편집 응용 프로그램의 GUI(9200)를 다수의 스테이지에 나타내고 있다. 도 93 내지 도 96은 사용자가 GUI 내에서 다양한 동작들을 수행할 때 도움말 기능의 활성화 및 디스플레이에 관련된 GUI(9200)를 다수의 스테이지에 걸쳐 나타내고 있다.
도 91에 도시된 바와 같이, 상태도(9100)는 상태(9105)에서 사용자가 영상 보기, 정리, 및 편집 응용 프로그램을 열 때 시작한다. 응용 프로그램이 열릴 때, 응용 프로그램은, 응용 프로그램이 동작하고 있는 디바이스 상에서 도움말 도구가 이전에 활성화되었는지에 따라, 상태(9110) 또는 상태(9115)로 천이한다. 어떤 실시예들에서, 영상 편집 응용 프로그램은 2개의 상태(예컨대, 1 또는 0)를 갖는 파라미터를 디바이스 상에 저장한다. 디바이스 상에 처음으로 로드될 시에, 응용 프로그램은 파라미터를 제1 상태(예컨대, 0)로 초기화한다. 사용자가 디바이스 상에서 도움말 도구를 활성화시키면, 응용 프로그램은 파라미터를 다른 상태(예컨대, 1)로 전환한다. 이러한 방식으로, 응용 프로그램은 파라미터를 검사함으로써 도움말 도구가 디바이스 상에서 활성화되었는지를 판정한다.
도움말 도구가 디바이스 상에서 결코 활성화되지 않은 경우(예컨대, 파라미터가 0의 값을 가짐), GUI는 응용 프로그램이 열릴 시에 상태(9110)로 천이하고, 이 때 응용 프로그램은 응용 프로그램의 다른 GUI 아이템들과 다른 눈에 잘 띄는 방식으로 도움말 아이콘을 디스플레이한다. 어떤 실시예들에서, 도움말 아이콘은 사용자가 도움말 도구를 활성화시키기 위해 선택할 수 있는 선택가능 UI 아이템이다. 도움말 도구의 다른 실시예들은 도움말 아이콘을 다른 방식으로 눈에 잘 띄게 디스플레이하는 것을 구현한다. 예를 들어, 어떤 실시예들은, 깜박거리는 도움말 아이콘 또는 맥동하는 것처럼 보이는 아이콘을 사용함으로써, 도움말 아이콘을 눈에 잘 띄는 방식으로 디스플레이한다. 응용 프로그램은 도움말 아이콘을 작은 제1 상태와 큰 제2 상태 사이에서 변하는 것으로 - 2개의 상태 사이에서 깜박거리는 것으로 또는 2개의 상태 사이에서 전환하도록 팽창 및 수축하는 것으로 - 디스플레이한다.
도 92는 3개의 스테이지(9205 내지 9215)에 걸쳐 GUI(9200)에서 도움말 아이콘을 눈에 잘 띄는 방식으로 디스플레이하는 것의 한 예를 나타낸 것이다. 도시된 바와 같이, GUI(9200)는 축소판 디스플레이 구역(9230), 영상 디스플레이 구역(9245), 메뉴 모음(9240), UI 컨트롤 디스플레이 구역(9260), 및 도구 모음(9235)을 포함하고 있다. 메뉴 모음(9240)은 한 세트의 영상 크로핑 도구들을 호출하는 선택가능 UI 아이템(9242), 한 세트의 노출 조절 도구들을 호출하는 선택가능 UI 아이템(9244), 한 세트의 색상 조절 도구들을 호출하는 선택가능 UI 아이템(9246), 한 세트의 브러시 도구들을 호출하는 선택가능 UI 아이템(9248), 및 한 세트의 특수 효과 도구들을 호출하는 선택가능 UI 아이템(9250)을 포함하는, 상이한 영상 편집 도구 세트들을 호출하는 한 세트의 선택가능 UI 아이템들을 포함하고 있다. UI 컨트롤 디스플레이 구역(9260)은 상이한 UI 컨트롤 세트들이 호출될 때 이들을 디스플레이하기 위한 것이다. 이 예에서, UI 컨트롤 디스플레이 구역(9260)은 영상에 대한 자동 강조 동작을 개시하는 선택가능 UI 아이템(9262), 영상에 대한 회전 동작을 개시하는 선택가능 UI 아이템(9264), 영상을 플래깅하는 선택가능 UI 아이템(9266), 영상을 좋아하는 것으로서 표시하는 선택가능 UI 아이템(9268), 및 영상을 감추는 선택가능 UI 아이템(9270)을 포함하는, 영상 보기 GUI에 대한 기본 세트의 UI 아이템들을 포함하고 있다.
도구 모음(9235)은 컬렉션 정리 GUI로 뒤로 탐색해 가는 선택가능 UI 아이템(9232), 도움말 도구를 호출하는 선택가능 UI 아이템(9250)(즉, 도움말 아이콘), 디스플레이된 영상에 대한 정보 창을 디스플레이하는 선택가능 UI 아이템(9252), 및 디스플레이된 영상의 원본 버전과 편집된 버전 간에 토글하는 선택가능 UI 아이템(9254)을 포함하는, 부가의 선택가능 아이템들을 포함하고 있다.
도 92에서, 도움말 도구는 디바이스 상에서 결코 활성화되지 않았으며, 따라서 응용 프로그램은 도움말 도구을 눈에 잘 띄는 방식으로 디스플레이한다. 이 예에서, 응용 프로그램은 도움말 아이콘(9250)을 맥동하는 것으로 또는 진동하는 것으로 디스플레이한다. 도시된 바와 같이, 도움말 아이콘은 물음표 그래픽을 포함한다. 맥동하는 모습을 생성하기 위해 이 물음표가 팽창하고 수축한다. 제1 스테이지(9205)에서, 도움말 아이콘은 아이콘의 경계를 넘어 확장하는 큰 물음표를 가진다.
제2 스테이지(9210)는 도움말 아이콘(9250)이 그의 가장 작은 상태에 있는 GUI(9200)를 나타내고 있다. 도시된 바와 같이, 도움말 아이콘(9250)의 경계로 완전히 둘러싸여 있는 아이콘 상에 작은 물음표로 나타낸 바와 같이, 도움말 아이콘(9250)이 더 이상 하이라이트되지 않는다. 제1 스테이지(9205)로부터 제2 스테이지(9210)에 도달하기 위해, 응용 프로그램은 아이콘의 물음표 부분의 크기를 신속하게 감소시킨다. 어떤 실시예들에서, 제2 스테이지(9210)는 제1 스테이지(9205) 이후 아주 짧은 기간(예컨대, 0.5 초) 내에만 일어난다.
제3 스테이지(9215)는, 스테이지(9205)에서와 유사하게, 응용 프로그램이 또 다시 도움말 아이콘(9250) 내의 물음표의 크기를 그의 가장 큰 지점까지 증가시킨 후의 GUI(9200)를 나타내고 있다. 어떤 실시예들에서, 응용 프로그램이 제1 스테이지(9205)로부터 제2 스테이지(9210)에 도달하는 시간은 제2 스테이지(9210)로부터 제3 스테이지(9215)에 도달하는 시간과 동일하다. 어떤 실시예들에서, 응용 프로그램은 도움말 아이콘의 크기를 축소시키고, 이어서 아이콘의 크기를 신속하게 팽창시키며, 이하 마찬가지로 한다. 어떤 실시예들에서, 응용 프로그램은, 사용자가 적어도 1회 도움말 기능을 호출할 때까지, 이러한 방식으로 도움말 아이콘을 디스플레이한다.
다시 도 91을 참조하면, 응용 프로그램이 열릴 때 응용 프로그램이 도움말 도구가 디바이스 상에서 이전에 호출된 것으로 판정하는 경우, 도움말 도구는 상태(9115)로 천이하여, GUI는 도움말 아이콘을 다른 아이콘들과 동일한 방식으로 디스플레이한다. 즉, 도움말 아이콘이, 도 92의 제2 스테이지(9210)에 도시된 것과 유사하게, 정상적인 상태로 나타난다.
상태(9110) 또는 상태(9115)에 있는 동안, 응용 프로그램이 도움말 아이콘의 선택을 수신할 때, GUI는 상태(9120)로 천이하여, (i) 변함없는 GUI 아이템들 및 (ii) 사용자 도구들의 현재 선택된 레벨에 대한 도움말 표시자를 디스플레이한다. 어떤 실시예들에서, GUI 아이템들은 상이한 사용자 도구 세트들을 포함하고 있다. 예시적인 어떤 실시예들은 기본 도구들(자동 강조, 회전, 플래그, 좋아하는 것, 숨기기)을 제1 세트로서 포함하고 있으며, 이어서 다양한 편집 도구 세트들(예컨대, 크로핑 도구들, 노출 도구들, 색상 조절 도구들, 브러시 도구들, 및 특수 효과 도구들)을 포함하고 있다. 기본 도구들이 GUI에 보여질 때, 어떤 실시예들은 기본 도구들은 물론 (다른 편집 도구 세트들을 활성화시키는) 다양한 편집 활성화 아이템들에 대한 도움말 표시자들을 디스플레이한다. 편집 도구 세트들 중 하나가 활성화될 때, 응용 프로그램은 기본 도구들 대신에 이 도구들을 디스플레이한다. 도움말 기능이 호출된 경우, 어떤 실시예들은 다른 편집 활성화 아이템들에 대한 도움말 표시자들을 디스플레이하지 않고, 그 대신에 선택된 편집 도구들에 대한 도움말 표시자들만을 디스플레이한다. 어떤 실시예들에서, 변함없는 GUI 아이템들은, 어느 아이템들이 선택되는지에 관계없이, GUI에 항상 존재하는 아이템들을 포함한다. 이 아이템들은 원본 토글 버튼, 공유 버튼, 정보 버튼, 및 기타 GUI 아이템들을 포함할 수 있다.
어떤 실시예들에서, 응용 프로그램은, (1) 사용자가 한 세트의 새로운 편집 도구들을 선택하지 않는 한, (2) 사용자가 현재 선택된 편집 도구들 중 하나를 이동시키지 않는 한, 또는 (3) 사용자가 도움말 기능을 비활성화시키기 위해 도움말 아이콘을 선택하지 않는 한, 여전히 상태(9120)에 있다. 사용자가 새로운 한 세트의 도구들을 선택할 때, 응용 프로그램은 사용자 도구들의 현재 선택된 레벨을 수정하기 위해 상태(9125)로 천이하고, 이어서 도구들의 새로운 현재 선택된 레벨에 대한 도움말 표시자들을 디스플레이하기 위해 다시 상태(9120)로 천이한다.
도 93은 3개의 상이한 스테이지(9305 내지 5715)에 걸쳐 GUI(9200)에서 상황-의존적 도움말 도구를 호출하고 선택된 한 세트의 사용자 도구들을 변경하는 한 예를 나타낸 것이다. 제1 스테이지(9305)는, 영상 디스플레이 구역(9245)이 하나의 영상만을 포함하고 있는 것을 제외하고는, 도 92의 제1 스테이지(9205)와 유사하다. 제2 스테이지(9310)는 사용자가 도움말 도구를 활성화시킨 후의 GUI(9200)를 나타내고 있다. 어떤 실시예들에서, 도움말 도구는 도움말 아이콘의 선택에 의해 활성화될 수 있다. 도시된 바와 같이, 사용자는 도움말 아이콘(9250)을 손가락으로 탭핑하는 것에 의해 도움말 도구를 활성화시켰다. 선택의 결과로서, 응용 프로그램은 다양한 도움말 표시자들을 GUI 상에 오버레이한다. 이 도움말 표시자들은 다양한 GUI 아이템들에 대한 짧은 설명 정보를 디스플레이한다.
제2 스테이지(9310)에서, 응용 프로그램은 도구 모음(9235) 내의 항상 디스플레이되는 GUI 아이템들(9238, 9252, 및 9254)에 대한 도움말 표시자들(9325)을 디스플레이한다. 이 도움말 표시자들은 공유 버튼(9238)에 대해서는 "공유(Share)"라고 표시되어 있고, 정보 버튼(9252)에 대해서는 "영상 정보(Image info)"라고 표시되어 있으며, 원본 토글 버튼(9254)에 대해서는 "원본 보여주기(Show Original)"라고 표시되어 있지만, 다양한 실시예들은 아이템들 중 하나 이상에 대해 상이한 설명을 사용할 수 있다. 그에 부가하여, 어떤 실시예들은 선택가능한 아이템들에 대한 도움말 표시자들만을 디스플레이하고; 사용자가 디스플레이된 영상을 아직 편집하지 않았을 때, 원본 토글 버튼은 어떤 효과도 없을 것이고, 따라서 어떤 실시예들은 그의 도움말 표시자를 디스플레이하지 않는다. 어떤 실시예들은 도구 모음(9235) 내의 다른 아이템들(예컨대, 실행취소 버튼)에 대한 도움말 표시자들을 디스플레이한다.
도움말 도구는 또한 사용자 도구들["자동 강조(Auto-Enhance)", "회전(Rotate)", "플래그(Flag)", "좋아하는 것(Favorite)", 및 "숨기기(Hide)"]의 현재 선택된 레벨에 대한 한 세트의 표시자들(9335)을 디스플레이한다. 그에 부가하여, 도구들의 이 레벨(편집 활성화 아이템들 중 어느 것도 선택되지 않았을 때 보여지는 기본 세트의 사용자 도구들)에 있을 때, 응용 프로그램은 다른 편집 옵션들["크로핑(Crop)", "노출(Exposure)", "색상(Color)", "브러시 도구(Brush Tool)", 및 "특수 효과(Special Effects)"]을 사용자에게 알려주는 편집 활성화 아이템들(9242, 9244, 9246, 9248, 및 9262)에 대한 도움말 표시자들(9330)을 디스플레이한다. 항상 존재하는 GUI 아이템들에서와 같이, 다른 실시예들은 동일한 아이템에 대해 상이한 설명을 사용할 수 있거나, 상이한 한 세트의 GUI 아이템들을 가질 수 있다. 어떤 실시예들에서, 한 세트의 도움말 표시자들은 선택가능 UI 아이템들이다. 이러한 실시예들에서, 사용자가 도움말 표시자를 선택할 때, 응용 프로그램은 대응하는 GUI 아이템의 기능들 및 동작들에 관한 더 상세한 정보를 오버레이한다.
어떤 실시예들은 아이템들 중 일부에 대한 도움말 표시자들 내에서 사용하기 위한 지시 사항들을 디스플레이한다. 예를 들어, 어떤 실시예들에서, "회전" 표시자는 "90° 회전하세요(Rotate 90°). 추가 옵션들을 위해 길게 터치(touch and hold)하세요" 등의 추가 정보를 포함하고 있다. 도시된 바와 같이, 응용 프로그램이 9310에서 오버레이하는 도움말 표시자들은 줌 도구를 사용하는 것에 관한 지시 사항들을 제공하는 영상 디스플레이 구역의 중앙에 있는 줌 도구에 대한 표시자(9365) 및 상이한 유형의 선택 입력들을 설명하는 축소판 디스플레이 구역에 대한 표시자(9375)를 포함한다.
도 93의 제3 스테이지(9315)는 사용자가 GUI(9200)에서 새로운 한 세트의 도구들을 선택하는 한 예를 나타내고 있다. 제3 스테이지(9315)에 도시된 바와 같이, 사용자는 메뉴 모음(9240)에서 한 세트의 노출 조절 도구들을 호출하는 선택가능 UI 아이템(9244)을 선택하였다. 그 결과, 응용 프로그램은 UI 컨트롤 디스플레이 구역(9260)의 한 세트의 노출 조절 도구들을 디스플레이하여, 자동 강조, 회전, 및 태깅 UI 아이템들을 대체한다. 한 세트의 노출 조절 도구들은 음영 조절 도구(9340), 한 세트의 콘트라스트 조절 도구들(9345 및 9350), 밝기 조절 도구(9355), 및 하이라이트 조절 도구(9360)를 포함하고 있다. 사용자가 새로운 한 세트의 도구들을 선택한 결과로서, 응용 프로그램은, 다양한 편집 활성화 도구들(9242, 9244, 9246, 9248, 및 9262)에 대한 도움말 표시자들(9330)을 제거하면서, 새로 디스플레이된 한 세트의 도구들에 대한 새로운 한 세트의 도움말 표시자들(9370)["흑색점 및 음영(Black point & Shadows)", "콘트라스트(Contrast)", "하이라이트(Highlights)", "콘트라스트(Contrast)" 및 "백색점 및 하이라이트(White point & Highlights)"]을 오버레이한다. 응용 프로그램은 또한 사용자가, 영상 자체를 터치하여 드래그함으로써, 영상에 대한 노출 데이터를 조절할 수 있다는 것을 알려주기 위해 표시자(9380)를 영상 디스플레이 구역 내에 오버레이한다. 그에 부가하여, 사용자가 어느 GUI 도구들의 세트를 선택하는지에 관계없이, 공유, 영상 정보, 및 원본 토글 버튼들에 대한 도움말 표시자들(9325)은 남아 있다.
도 94는 2개의 상이한 스테이지(9405 및 9410)에서 사용자가 GUI(9200) 내에서 새로운 한 세트의 도구들을 선택할 때의 도움말 기능의 수정의 다른 예를 나타낸 것이다. 제1 스테이지(9405)는 도 93의 제2 스테이지(9310)와 동일하다. 도시된 바와 같이, GUI(9200)에 여러 세트의 도움말 표시자들(9325, 9330, 9335, 9365, 및 9375)이 나오는 것으로 나타낸 바와 같이, 도움말 도구가 활성화되었다. 제2 스테이지(9410)는 사용자가 GUI(9200)에 디스플레이하기 위한 새로운 한 세트의 도구들을 선택한 후의 GUI(9200)를 나타내고 있다. 이 경우에, 사용자는 메뉴 메음(9240) 내에서 한 세트의 브러시 도구들을 호출하는 선택가능 UI 아이템(9248)을 선택하였다. 그에 따라, 응용 프로그램은 GUI(9200)에서 상이한 영상 조절 동작들을 호출하는 한 세트의 브러시 도구들(9425)을 디스플레이한다. 사용자가 새로운 한 세트의 도구들을 선택한 결과로서, 도움말 도구들은 또한, 상이한 편집 활성화 도구들에 대한 한 세트의 도움말 표시자들(9330)을 제거하면서, 새로운 한 세트의 브러시 도구들(9425)에 대한 새로운 한 세트의 도움말 표시자들(9430)을 디스플레이한다.
도 91의 상태도(9100)로 돌아가서, 응용 프로그램이 상태(9120)에 있는 동안 사용자가 현재 선택된 도구들 중 하나를 이동시킬 때, 응용 프로그램은 상태(9130)로 천이하여, 이동하는 GUI 도구와 함께 도움말 표시자를 이동시킨다. 예를 들어, 사용자가 슬라이더를 이동시킬 때, 그 슬라이더의 도움말 표시자가 그와 함께 이동한다.
도 95는 3개의 스테이지(9505 내지 9515)에서 응용 프로그램이 도움말 표시자를 대응하는 편집 도구와 함께 자동으로 이동시키는 한 예를 나타낸 것이다. 제1 스테이지(9505)는 도 93의 제3 스테이지(9315)와 동일하며, 도움말 도구가 활성화되어 있고 노출 조절 도구들이 선택되어 있다. 도시된 바와 같이, 응용 프로그램은 한 세트의 노출 조절 도구들(9340 내지 9360)에 대한 한 세트의 도움말 표시자들(9370)을 디스플레이한다. 제2 스테이지(9510)는 사용자가 노출 조절 슬라이더들 중 하나를 이동시키기 위해 터치스크린에 접촉하기 시작할 때의 GUI(9200)를 나타내고 있다. 제3 스테이지(9515)는 사용자가 콘트라스트 조절 도구(9345)를 이동시키는 것을 나타내고 있다. 이 이동의 결과로서, 도움말 표시자(9370)["콘트라스트(Contrast)"라고 표시되어 있음]는 도구와 함께 우측으로 이동한다. 그에 부가하여, 콘트라스트 도구들 중 하나를 이동시키는 것으로 인해, 다른 콘트라스트 도구도 역시 이동하며, 그에 따라, 다른 콘트라스트 슬라이더(9350)는 그의 도움말 표시자와 함께 좌측으로 이동한다. 이 이동의 결과로서, 디스플레이된 영상의 콘트라스트가 수정된다.
다시 도 91을 참조하면, 도움말 도구가 활성화된 후에 사용자가 또 다시 도움말 아이콘을 선택할 때, 도움말 도구는 모든 도움말 표시자들을 GUI로부터 제거한다. 그에 부가하여, 사용자가 디바이스 상에서 도움말 도구를 이미 활성화시켰기 때문에, 도움말 도구는 상태(9115)로 되돌아가서, 도움말 도구는, 도 93의 스테이지(9305)에 나타낸 바와 같이, 다른 아이콘들과 동일한 방식으로 도움말 아이콘을 디스플레이한다.
앞서 언급한 바와 같이, 사용자가 도움말 표시자들 중 하나를 선택할 때, 어떤 실시예들은 선택된 기능에 관한 상세한 도움말 내용을 디스플레이한다. 어떤 실시예들은 이 도움말 내용들을 외부 장소로부터 (예컨대, 인터넷을 통해) 다운로드하거나, 이들을 응용 프로그램과 함께 저장한다.
도 96은 3개의 상이한 스테이지(9605 내지 9615)를 통해 GUI(9200)를 통해 GUI 아이템들 중 하나에 관련되어 있는 상세한 도움말 내용을 디스플레이하는 한 예를 나타낸 것이다. 제1 스테이지(9605)는 도 94의 제1 스테이지(9405)와 동일하며, GUI(9200) 상에 보여지는 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 것으로 나타낸 바와 같이, 도움말 도구가 활성화되어 있다. 사용자가 도움말 표시자들 중 하나를 선택할 때, 응용 프로그램은 대응하는 GUI 아이템에 관련되어 있는 기능들 및 동작들에 관한 더 상세한 정보를 디스플레이한다.
제2 스테이지(9410)는 사용자가 도움말 표시자들 중 하나를 선택하는 것을 나타내고 있다. 구체적으로는, 사용자는 (예컨대, 도시된 바와 같이 탭을 통해, 클릭 선택을 통해, 기타) 크로핑 아이템(9242)에 대한 도움말 표시자를 선택하고, 그로 인해 응용 프로그램은 크로핑 표시자를 하이라이트시킨다.
선택의 결과로서, 스테이지(9615)에서, 응용 프로그램은 크로핑 도구들에 대한 상세한 도움말 정보(9630)를 GUI(9200) 상에 오버레이한다. 언급한 바와 같이, 어떤 실시예들에서, 상세한 도움말 정보의 내용은 영상 편집 응용 프로그램이 실행되고 있는 디바이스 상에 저장된다. 이 실시예들에서, 사용자가 도움말 표시자를 선택할 때, 응용 프로그램은 대응하는 도움말 정보를 GUI(9200) 상에 디스플레이하기 전에 디바이스로부터 그 정보를 검색한다. 다른 실시예들에서, 상세한 도움말 정보는 디바이스가 네트워크(예컨대, 인터넷)를 통해 연결되는 하나 이상의 원격 장소들에 저장되어 있다. 이 실시예들에서, 사용자가 도움말 표시자를 선택할 때, 응용 프로그램은 상세한 도움말 정보를 GUI(9200) 상에 디스플레이하기 전에 이 원격 장소들 중 하나로부터 그 정보를 검색한다.
도 97은 어떤 실시예들에서, 상이한 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 다른 예를 나타낸 것이다. 구체적으로는, 도 97은 GUI(9300)의 4개의 스테이지(9710 내지 9740)에 걸쳐 색상 조절 도구들에 대한 도움말 표시자들의 이동은 물론 도움말 표시자들의 다수의 레벨들을 나타내고 있다. 제1 스테이지(9710)는 도 94의 제1 스테이지(9405)와 동일하며, GUI(9200)에 보여지는 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 것으로 나타낸 바와 같이, 도움말 도구가 활성화되어 있다.
제2 스테이지(9720)는 사용자가 색상 조절 활성화 아이템(9246)을 선택한 후의 GUI(9200)를 나타내고 있다. 이것으로 인해, 응용 프로그램은 도구 모음(9260)에 4개의 색상 조절 슬라이더들을 디스플레이한다. 도움말 표시자들(9705)로 나타낸 바와 같이, 이 슬라이더들은 사용자가 디스플레이된 영상의 채도, 하늘색, 녹색, 및 피부색을 조절할 수 있게 해준다. 그에 부가하여, 색상 조절 도구들은 도움말 표시자(9725)로 나타낸 화이트 밸런스 아이템(9715)을 포함하고 있다.
제3 스테이지(9730)에서, 사용자는, 영상의 하늘색의 채도를 증가시키기 위해, 청색 하늘 슬라이더(9745)를 우측으로 이동시킨다. 이것은 또한 슬라이더(9745)에 대한 도움말 표시자(9705)를 우측으로 이동시킨다. 그렇게 함에 있어서, 그 표시자가 녹색 슬라이더에 대한 도움말 표시자와 겹치기 시작한다. 그 결과, 응용 프로그램은 녹색 슬라이더 도움말 표시자를 (보다 긴 세로줄을 사용하여) 위쪽으로 자동으로 이동시키며, 따라서 사용자는 전체 도움말 표시자를 볼 수 있다.
제4 스테이지(9740)는 사용자가 화이트 밸런스 아이템(9715)을 선택한 결과를 나타내고 있다. 도시된 바와 같이, 응용 프로그램은 다수의 선택가능 화이트 밸런스 옵션들을 제공하는 도구 모음(9750)을 오버레이하고 있다. 이 아이템들이 디스플레이되면, 응용 프로그램은 색상 조절 슬라이더들에 대한 도움말 표시자들(9705)을 제거하고, 그 대신에 다른 화이트 밸런스 아이템들에 대한 표시자들(9755)을 오버레이한다.
VIII. 소프트웨어 아키텍처
어떤 실시예들에서, 전술한 프로세스는 컴퓨터 또는 핸드헬드 디바이스와 같은 특정의 기계 상에서 실행되거나 기계 판독가능 매체에 저장되어 있는 소프트웨어로서 구현된다. 도 98은 어떤 실시예들의 영상 보기, 편집, 및 정리 응용 프로그램(9800)의 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 어떤 실시예들에서, 영상 보기, 편집, 및 정리 응용 프로그램은 독립형 응용 프로그램이거나, 다른 응용 프로그램에 통합되어 있는 반면, 다른 실시예들에서, 응용 프로그램은 운영 체제 내에서 구현될 수 있다. 게다가, 어떤 실시예들에서, 응용 프로그램이 서버-기반 솔루션의 일부로서 제공된다. 어떤 이러한 실시예들에서, 응용 프로그램은 씬 클라이언트(thin client)를 통해 제공된다. 즉, 사용자가 서버로부터 원격지에 있는 별개의 기계를 통해 응용 프로그램과 상호작용하는 동안 응용 프로그램이 서버 상에서 실행된다. 다른 이러한 실시예들에서, 응용 프로그램은 씩 클라이언트(thick client)를 통해 제공된다. 즉, 응용 프로그램이 서버로부터 클라이언트 기계로 배포되고 클라이언트 기계 상에서 실행된다.
영상 보기, 편집, 및 정리 응용 프로그램(9800)은 사용자 인터페이스(UI) 상호작용 및 발생 모듈(9805), 미디어 인제스트(media ingest) 모듈(9810), 히스토그램 발생기(9815), 편집 모듈들(9820), 영상 프로세서(9825), 영상 디스플레이 구역 발생기(9830), 영상 선택기(9835), 영상 태거(image tagger)(9840), 영상 비교기(9845), 및 공유 관리자(9850)를 포함하고 있다. 이 도면은 또한 응용 프로그램(9800)과 연관되어 있는 저장된 데이터, 즉 소스 영상들(9855), 영상 데이터(9860), 컬렉션 데이터(9865), 및 캐싱된 영상(9870)을 나타내고 있다.
어떤 실시예들에서, 소스 영상들(9835)은 응용 프로그램(즉, 로컬 영상 데이터베이스) 내로 가져오기된 영상 파일(및 어쩌면 비디오 파일 또는 기타 미디어)을 저장한다. 어떤 실시예들에서, 영상 파일은 응용 프로그램(9800)과 통신하는 다른 영상 보기 및 정리 응용 프로그램과 연관되어 있을 수 있다. 영상 데이터(9860)는 어떤 실시예들의 영상 데이터 구조체를 저장하는 반면, 컬렉션 데이터(9865)는 컬렉션 데이터(예컨대, 앨범, 이벤트, 저널 등)를 저장한다. 캐싱된 영상(9870)은 영상(예컨대, 축소판, 디스플레이 크기 영상 등)의 캐싱된 버전을 저장한다. 어떤 실시예들에서, 4개의 데이터 세트(9855 내지 9870)가 하나의 물리 저장 장치(예컨대, 내장형 하드 드라이브, 외장형 하드 드라이브, 고상 메모리 등)에 저장된다. 어떤 실시예들에서, 데이터는 다수의 물리 저장 장치들 간에 분할되어 있을 수 있다.
도 98은 또한 입력 장치 드라이버(들)(9880), 디스플레이 모듈(9885), 미디어 가져오기 모듈(9890), 및 네트워크 인터페이스(들)(9895)를 포함하는 운영 체제(9875)를 나타내고 있다. 어떤 실시예들에서, 예시되어 있는 바와 같이, 미디어 편집 응용 프로그램(9800)이 운영 체제와 분리된 응용 프로그램일 때에도, 장치 드라이버(9880), 디스플레이 모듈(9885), 미디어 가져오기 모듈(9890), 및 네트워크 인터페이스(9895)는 운영 체제의 일부이다.
입력 장치 드라이버(9860)는 터치스크린은 물론 키보드, 마우스, 터치 패드, 태블릿 등으로부터의 신호를 변환하는 드라이버를 포함할 수 있다. 사용자는 신호를 그의 대응하는 장치 드라이버로 송신하는 이 입력 장치들 중 하나 이상과 상호작용한다. 장치 드라이버는 이어서 신호를 사용자 입력 데이터로 변환하고, 이 사용자 입력 데이터가 UI 상호작용 및 발생 모듈(9805)에 제공된다.
본 출원은 상이한 일련의 동작들 및 기능들을 수행하는 다수의 방식을 사용자에게 제공하는 그래픽 사용자 인터페이스를 기술하고 있다. 어떤 실시예들에서, 이 동작들 및 기능들은 상이한 유형의 터치스크린 디바이스들을 통해 사용자로부터 수신되는 상이한 명령들에 기초하여 수행된다. 예를 들어, 본 출원은 그래픽 사용자 인터페이스 내의 객체들을 제어(예컨대, 선택, 이동)하기 위해 (예컨대, 하나 이상의 손가락에 의한) 터치스크린 입력을 사용하는 것을 예시하고 있다. 그렇지만, 어떤 실시예들에서, 그래픽 사용자 인터페이스 내의 객체들은 또한 커서 등의 다른 컨트롤을 통해 제어 또는 조작될 수 있다. 어떤 실시예들에서, 커서 컨트롤은 커서를 디바이스의 디스플레이 상의 다른 위치로 이동시키는 입력 장치를 통해 구현된다. 커서의 위치에 기초하여, 상이한 동작(예컨대, GUI 아이템의 선택)을 수행하기 위해 상이한 입력(예컨대, 마우스 버튼 클릭 등)이 사용될 수 있다. 따라서, 상기 도면들 중 다수가 커서를 예시하고 있지 않지만, 어떤 실시예들은 (터치 컨트롤을 갖거나 갖지 않는) 커서를 사용하여 동일한 동작들을 수행한다.
디스플레이 모듈(9885)은 디스플레이 디바이스에 대한 사용자 인터페이스의 출력을 변환한다. 즉, 디스플레이 모듈(9885)은 무엇이 디스플레이되어야 하는지를 나타내는 신호들을 [예컨대, UI 상호작용 및 발생 모듈(9805)로부터] 수신하고 이 신호들을 디스플레이 디바이스로 송신되는 픽셀 정보로 변환한다. 디스플레이 디바이스는 LCD, 플라즈마 화면, CRT 모니터, 터치스크린 등일 수 있다. 어떤 터치스크린 실시예들에서, 디스플레이 모듈(9885) 및 입력 장치 드라이버(들)(9880)는 단일 터치스크린 드라이버의 일부이다.
미디어 가져오기 모듈(9890)은 응용 프로그램(9800)이 동작하고 있는 디바이스의 하나 이상의 포트(예컨대, USB 포트, FireWire 포트 등)를 통해 외장형 저장 장치(예컨대, 외장형 드라이브, 레코딩 장치 등)로부터 미디어 파일(예컨대, 영상 파일 등)을 수신하고, 응용 프로그램(9800)을 위해 이 미디어 데이터를 변환하거나 그 데이터를 디바이스의 저장 장치에 직접 저장한다.
미디어 편집 응용 프로그램(9800)의 UI 상호작용 및 발생 모듈(9805)은 입력 장치 드라이버로부터 수신된 사용자 입력 데이터를 해석하고 이를 미디어 인제스트 모듈(9810), 편집 모듈들(9820), 영상 프로세서(9825), 영상 디스플레이 구역 발생기(9830), 영상 선택기(9835), 및 영상 태거(9840)를 비롯한 다양한 모듈들로 전달한다. UI 상호작용 모듈은 또한 미디어 편집 응용 프로그램 GUI의 디스플레이를 관리하고 이 디스플레이 정보를 디스플레이 모듈(9865)로 출력한다. 이 UI 디스플레이 정보는 편집 모듈들(9815), 타임라인 발생기(9820), 앵글 뷰어(angle viewer) 발생기(9827), 재생 모듈(9830), 데이터(9835 내지 9850) 등으로부터의 정보에 기초할 수 있다. 그에 부가하여, 모듈(9805)은 사용자 입력에만 기초하여 - 예컨대, 창을 UI의 한쪽 측면으로부터 다른쪽 측면으로 이동시키는 것 또는 클립 브라우저 및 클립 라이브러리의 상대 크기를 수정하는 것과 같이 사용자가 다른 모듈들 중 임의의 것보다는 디스플레이에만 영향을 주는 UI 내의 아이템을 이동시킬 때 - UI의 일부분을 발생할 수 있다. 어떤 실시예들에서, UI 상호작용 및 발생 모듈(9805)은 기본적인 GUI를 발생하고, 다른 모듈들로부터의 정보 및 저장된 데이터로 GUI를 채운다.
미디어 인제스트 모듈(9810)은 소스 미디어를 응용 프로그램(9800)으로 가져오기하는 것을 관리한다. 도시된 바와 같이, 어떤 실시예들은 운영 체제(9875)의 미디어 가져오기 모듈(9890)로부터 소스 미디어를 수신한다. 미디어 인제스트 모듈(9810)은 어느 파일이 가져오기되어야 하는지에 관한 명령어를 UI 모듈(9805)로부터 수신하고, 이어서 (예컨대, 외장형 드라이브, 외장형 카메라, 응용 프로그램이 동작하고 있는 디바이스의 카메라, 디바이스 상의 다른 응용 프로그램 등으로부터) 이 가져오기를 인에이블시키라고 미디어 가져오기 모듈(9890)에 지시한다. 어떤 실시예들의 미디어 인제스트 모듈(9810)은 이 영상들을 소스 영상들(9855)에 저장한다. 어떤 실시예들에서, 미디어 인제스트 모듈(9810)은 또한 소스 영상의 가져오기 시에 영상 데이터 구조체의 생성을 관리한다.
어떤 실시예들에서, 히스토그램 발생기(9815)는 각각의 가져오기된 영상에 대한 색상 히스토그램, 텍스처 히스토그램, 및 형상 히스토그램을 발생한다. 어떤 실시예들의 히스토그램 발생기(9815)는 도 52를 참조하여 앞서 상세히 기술되어 있다.
편집 모듈들(9815)은 영상을 편집하는 각종의 모듈들을 포함하고 있다. 편집 모듈들(9815)은 다양한 편집 GUI 도구들을 발생하고 이 도구들로부터의 입력을 영상에 대한 편집 명령어들(예컨대, 크로핑 명령어들, 회전 명령어들, 색상 조절 명령어들 등)로 변환한다. 영상 프로세서(9825)는 영상이 출력될 필요가 있을 때 편집 명령어들을 영상에 적용한다. 예를 들어, 사용자가 디스플레이된 영상에 편집을 추가할 때, 편집 모듈들(9820) 중 적절한 편집 모듈은 영상에 대한 편집 명령어들을 수정하고, 영상 프로세서(9825)는 원하는 영상을 발생하기 위해 이 명령어들을 적용한다.
영상 디스플레이 구역 발생기(9830)는 영상 디스플레이 구역의 발생을 처리한다. 영상 디스플레이 구역 발생기(9830)는 디스플레이할 한 세트의 영상들을 [예컨대, UI 상호작용 및 발생 모듈(9805) 또는 영상 선택기(9835)로부터] 수신한다. 어떤 실시예들의 발생기(9830)는 영상들의 평균 종횡비를 계산하고, 영상 디스플레이 구역에 격자를 정의하며, 영상들을 디스플레이하기 위해 사용할 픽셀들의 수를 계산하고, 각각의 영상에 대한 크기를 계산한다.
영상 선택기(9835)는 다양한 사용자 상호작용을 하나 이상의 영상들의 선택으로 변환하여 영상 디스플레이 구역 발생기(9830)로 송신한다. 사용자가 특정의 영상에 대한 한 세트의 유사한 영상들을 요청할 때, 영상 선택기는 영상 비교기(9845)를 사용하여 유사한 영상들을 식별한다. 어떤 실시예들의 영상 비교기(9845)는 도 52를 참조하여 앞서 기술되어 있다. 영상 태거(9840)는 하나 이상의 영상들을 태깅하라는 사용자 입력을 수신하고 그에 따라 영상들의 데이터 구조체들을 수정한다.
공유 관리자(9850)는 영상들을 다양한 사진 공유 웹 사이트(예컨대, Facebook®, twitter®, Flickr® 등)에서 공유하는 것을 관리한다. 어떤 실시예들에서, 공유 관리자(9850)는, 영상들을 업로드하고, 업로드된 영상에 대한 객체 ID를 수신 및 저장하며, 영상에 관한 댓글을 수신/업로드하기 위해, 네트워크 인터페이스(들)(9895)를 통해 이 웹 사이트들에 연결된다.
미디어 편집 응용 프로그램(9800)의 특징들 중 다수가 하나의 모듈[예컨대, UI 상호작용 및 발생 모듈(9805), 미디어 인제스트 모듈(9810) 등]에 의해 수행되는 것으로 기술되어 있지만, 기술 분야의 당업자라면 본 명세서에 기술된 기능들이 다수의 모듈들로 분할될 수 있다는 것을 잘 알 것이다. 이와 유사하게, 어떤 실시예들에서, 다수의 상이한 모듈들에 의해 수행되는 것으로 기술된 기능들이 하나의 모듈에 의해 수행될 수 있다[예컨대, 영상 디스플레이 구역 발생기(9830) 및 영상 선택기(9835)는 UI 상호작용 및 발생 모듈(9805)의 일부일 수 있다].
IX. 전자 시스템
상기한 특징 및 응용의 다수는 컴퓨터 판독가능 저장 매체(컴퓨터 판독가능 매체라고도 함)에 기록된 일련의 명령어로서 지정되는 소프트웨어 프로세스로서 구현된다. 이 명령어들은, 하나 이상의 계산 또는 처리 유닛(들)(예컨대, 하나 이상의 프로세서들, 프로세서들의 코어들, 또는 기타 처리 유닛들)에 의해 실행될 때, 처리 유닛(들)으로 하여금 명령어들에 나타낸 동작들을 수행하게 한다. 컴퓨터 판독가능 매체의 예는 CD-ROM, 플래시 드라이브, RAM(random access memory) 칩, 하드 드라이브, EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory) 등을 포함하지만, 이들로 제한되지 않는다. 컴퓨터 판독가능 매체는 무선으로 또는 유선 연결을 통해 전달되는 반송파 및 전자 신호를 포함하지 않는다.
본 명세서에서, "소프트웨어"라는 용어는 프로세서에서 처리하기 위해 메모리 내로 판독될 수 있는, 판독 전용 메모리에 존재하는 펌웨어 또는 자기 저장 장치에 저장된 응용 프로그램을 포함하는 것으로 보아야 한다. 또한, 어떤 실시예들에서, 다수의 소프트웨어 발명이 개별 소프트웨어 발명으로 있으면서 큰 프로그램의 하위 부분으로서 구현될 수 있다. 어떤 실시예들에서, 다수의 소프트웨어 발명이 또한 개별 프로그램으로서 구현될 수 있다. 마지막으로, 다같이 본 명세서에 기술된 소프트웨어 발명을 구현하는 개별 프로그램의 임의의 조합이 본 발명의 범위 내에 속한다. 어떤 실시예들에서, 소프트웨어 프로그램은, 하나 이상의 전자 시스템에서 동작하도록 설치될 때, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 특정의 기계 구현을 정의한다.
A. 모바일 디바이스
어떤 실시예들의 영상 편집 및 보기 응용 프로그램은 모바일 디바이스 상에서 동작한다. 도 99는 이러한 모바일 컴퓨팅 디바이스의 아키텍처(9900)의 한 예이다. 모바일 컴퓨팅 디바이스의 예는 스마트폰, 태블릿, 랩톱 등을 포함한다. 도시된 바와 같이, 모바일 컴퓨팅 디바이스(9900)는 하나 이상의 처리 유닛(9905), 메모리 인터페이스(9910), 및 주변 장치 인터페이스(9915)를 포함하고 있다.
주변 장치 인터페이스(9915)는 카메라 서브시스템(9920), 무선 통신 서브시스템(들)(9925), 오디오 서브시스템(9930), I/O 서브시스템(9935) 등을 비롯한 다양한 센서 및 서브시스템에 결합되어 있다. 주변 장치 인터페이스(9915)는 처리 유닛(9905)와 다양한 주변 장치 사이의 통신을 가능하게 해준다. 예를 들어, 배향 센서(9945)(예컨대, 자이로스코프) 및 가속도 센서(9950)(예컨대, 가속도계)는 배향 및 가속도 기능을 용이하게 해주기 위해 주변 장치 인터페이스(9915)에 결합되어 있다.
카메라 서브시스템(9920)은 하나 이상의 광 센서(9940)[예컨대, 전하 결합 소자(CCD), 광 센서, 상보적 금속 산화물 반도체(CMOS) 광 센서 등]에 결합되어 있다. 광 센서(9940)와 결합된 카메라 서브시스템(9920)은 영상 및/또는 비디오 데이터 포착 등의 카메라 기능을 용이하게 해준다. 무선 통신 서브시스템(9925)은 통신 기능을 용이하게 해주는 역할을 한다. 어떤 실시예들에서, 무선 통신 서브시스템(9925)은 무선 주파수 수신기 및 송신기, 그리고 광 수신기 및 송신기(도 99에 도시되어 있지 않음)를 포함하고 있다. 어떤 실시예들의 이 수신기 및 송신기는 GSM 네트워크, Wi-Fi 네트워크, 블루투스 네트워크, 기타 등등의 하나 이상의 통신 네트워크를 통해 동작하도록 구현된다. 오디오 서브시스템(9930)은 오디오를 출력하기 위해(예컨대, 상이한 영상 동작들과 연관되어 있는 상이한 사운드 효과를 출력하기 위해) 스피커에 결합되어 있다. 그에 부가하여, 오디오 서브시스템(9930)은 음성 인식, 디지털 녹음(digital recording), 기타 등등의 음성 지원 기능들을 용이하게 해주기 위해 마이크에 결합될 수 있다.
I/O 서브시스템(9935)은 주변 장치 인터페이스(9915)를 통한 디스플레이, 터치 스크린 등과 같은 입/출력 주변 장치와 처리 유닛(9905)의 데이터 버스 사이의 전송을 포함한다. I/O 서브시스템(9935)은 입/출력 주변 장치와 처리 유닛(9905)의 데이터 버스 사이의 전송을 용이하게 해주기 위해 터치 스크린 제어기(9955) 및 기타 입력 제어기(9960)를 포함하고 있다. 도시된 바와 같이, 터치 스크린 제어기(9955)는 터치 스크린(9965)에 결합될 수 있다. 터치 스크린 제어기(9955)는 다수의 터치 감도 기술들 중 임의의 것을 사용하여 터치 스크린(9965) 상에서의 접촉 및 이동을 검출한다. 다른 입력 제어기(9960)는 하나 이상의 버튼 등의 다른 입력/제어 디바이스에 결합되어 있다. 어떤 실시예들은, 터치 상호작용 대신에 또는 그에 부가하여, 근접 터치 상호작용(near-touch interaction)을 검출할 수 있는 근접 터치 감응 스크린(near-touch sensitive screen) 및 대응하는 제어기를 포함하고 있다.
메모리 인터페이스(9910)는 메모리(9970)에 결합되어 있다. 어떤 실시예들에서, 메모리(9970)는 휘발성 메모리(예컨대, 고속 랜덤 액세스 메모리), 비휘발성 메모리(예컨대, 플래시 메모리), 휘발성 메모리와 비휘발성 메모리의 조합, 및/또는 임의의 다른 유형의 메모리를 포함한다. 도 99에 나타낸 바와 같이, 메모리(9970)는 운영 체제(OS)(9972)를 저장한다. OS(9972)는, 기본 시스템 서비스를 처리하고 하드웨어 의존적 작업을 수행하는 명령어들을 포함하고 있다.
메모리(9970)는 또한 하나 이상의 부가의 디바이스와의 통신을 용이하게 해주는 통신 명령어들(9974); 그래픽 사용자 인터페이스 처리를 용이하게 해주는 그래픽 사용자 인터페이스 명령어들(9976); 영상 관련 처리 및 기능을 용이하게 해주는 영상 처리 명령어들(9978); 입력-관련(예컨대, 터치 입력) 프로세스 및 기능을 용이하게 해주는 입력 처리 명령어들(9980); 오디오 관련 프로세스 및 기능을 용이하게 해주는 오디오 처리 명령어들(9982); 및 카메라 관련 프로세스 및 기능을 용이하게 해주는 카메라 명령어들(9984)을 포함하고 있다. 앞서 기술한 명령어들은 단지 예시적인 것이며, 어떤 실시예들에서, 메모리(9970)는 부가의 및/또는 기타 명령어들을 포함하고 있다. 예를 들어, 스마트폰에 대한 메모리는 전화-관련 프로세스 및 기능을 용이하게 해주는 전화 명령어들을 포함할 수 있다. 앞서 언급한 명령어들이 개별적인 소프트웨어 프로그램 또는 모듈로서 구현될 필요는 없다. 모바일 컴퓨팅 디바이스의 다양한 기능들이 하나 이상의 신호 처리 및/또는 ASIC(application specific integrated circuit)을 비롯한 하드웨어로 및/또는 소프트웨어로 구현될 수 있다.
도 99에 예시되어 있는 구성요소들이 개별적인 구성요소로서 도시되어 있지만, 기술 분야의 당업자라면 2개 이상의 구성요소들이 하나 이상의 집적 회로 내에 통합될 수 있다는 것을 잘 알 것이다. 그에 부가하여, 2개 이상의 구성요소들은 하나 이상의 통신 버스들 또는 신호 라인들에 의해 서로 결합될 수 있다. 또한, 기능들 중 다수가 하나의 구성요소에 의해 수행되는 것으로 기술되어 있지만, 기술 분야의 당업자라면 도 99와 관련하여 기술된 기능들이 2개 이상의 집적 회로로 분할될 수 있다는 것을 잘 알 것이다.
B. 컴퓨터 시스템
도 100은 본 발명의 어떤 실시예들이 구현되는 전자 시스템(10000)의 다른 예를 개념적으로 나타낸 것이다. 전자 시스템(10000)은 컴퓨터(예컨대, 데스크톱 컴퓨터, 개인용 컴퓨터, 태블릿 컴퓨터 등), 전화, PDA, 또는 임의의 다른 종류의 전자 또는 컴퓨팅 디바이스일 수 있다. 이러한 전자 시스템은 다양한 유형의 컴퓨터 판독가능 매체 및 다양한 다른 유형의 컴퓨터 판독가능 매체에 대한 인터페이스를 포함한다. 전자 시스템(10000)은 버스(10005), 처리 유닛(들)(10010), 그래픽 처리 유닛(GPU)(10015), 시스템 메모리(10020), 네트워크(10025), 판독 전용 메모리(10030), 영구 저장 장치(10035), 입력 장치(10040), 및 출력 장치(10045)를 포함한다.
버스(10005)는 전자 시스템(10000)의 다수의 내부 장치를 통신 연결시키는 모든 시스템, 주변 장치, 및 칩셋 버스를 모두 합하여 나타낸 것이다. 예를 들어, 버스(10005)는 처리 유닛(들)(10010)을 판독 전용 메모리(10030), GPU(10015), 시스템 메모리(10020) 및 영구 저장 장치(10035)와 통신 연결시킨다.
이 다양한 메모리 장치들로부터, 처리 유닛(들)(10010)은 본 발명의 프로세스들을 실행하기 위해, 실행할 명령어들 및 처리할 데이터를 검색한다. 다른 실시예들에서, 처리 유닛(들)은 단일 프로세서 또는 멀티-코어 프로세서일 수 있다. 어떤 명령어들이 GPU(10015)로 전달되어 그에 의해 실행된다. GPU(10015)는 다양한 계산을 오프로드하거나 처리 유닛(들)(10010)에 의해 제공되는 이미지 처리를 보완할 수 있다. 어떤 실시예들에서, 이러한 기능은 CoreImage의 커널 쉐이딩 언어(kernel shading language)를 사용하여 제공될 수 있다.
판독 전용 메모리(ROM)(10030)는 전자 시스템의 처리 유닛(들)(10010) 및 다른 모듈에서 필요로 하는 정적 데이터 및 명령어들을 저장한다. 한편, 영구 저장 장치(10035)는 판독 및 기록 메모리 장치이다. 이 장치는 전자 시스템(10000)이 꺼져 있을 때에도 명령어들및 데이터를 저장하고 있는 비휘발성 메모리 장치이다. 본 발명의 어떤 실시예들은 대용량 저장 장치(자기 또는 광 디스크 및 그의 대응하는 디스크 드라이브 등)를 영구 저장 장치(10035)로서 사용한다.
다른 실시예들은 이동식 저장 장치(플로피 디스크, 플래시 메모리 디바이스, 기타 및 그의 대응하는 드라이브 등)를 영구 저장 장치로서 사용한다. 영구 저장 장치(10035)와 같이, 시스템 메모리(10020)도 판독 및 기록 메모리 장치이다. 그렇지만, 저장 장치(10035)와 달리, 시스템 메모리(10020)는 랜덤 액세스 메모리와 같은 휘발성 판독 및 기록 메모리이다. 시스템 메모리(10020)는 런타임 시에 프로세서가 필요로 하는 명령어 및 데이터의 일부를 저장한다. 어떤 실시예들에서, 본 발명의 프로세스가 시스템 메모리(10020), 영구 저장 장치(10035) 및/또는 판독 전용 메모리(10030)에 저장된다. 예를 들어, 다양한 메모리 장치는 어떤 실시예에 따른 멀티미디어 클립을 처리하는 명령어들을 포함한다. 이 다양한 메모리 장치들로부터, 처리 유닛(들)(10010)은 어떤 실시예들의 프로세스를 실행하기 위해, 실행할 명령어들 및 처리할 데이터를 검색한다.
버스(10005)는 또한 입력 및 출력 장치(10040, 10045)에 연결된다. 입력 장치(10040)는 사용자가 전자 시스템으로 정보를 전달하고 명령을 선택할 수 있게 해준다. 입력 장치(10040)는 영숫자 키보드 및 포인팅 디바이스("커서 컨트롤 디바이스"라고도 함), 카메라(예컨대, 웹캠), 음성 명령을 수신하는 마이크 또는 유사한 디바이스 등을 포함한다. 출력 장치(10045)는 전자 시스템 의해 발생된 영상을 디스플레이하거나 다른 방식으로 데이터를 출력한다. 출력 장치(10045)는 프린터 및 CRT(cathode ray tube) 또는 LCD(liquid crystal display)와 같은 디스플레이 장치는 물론, 스피커 또는 유사한 오디오 출력 장치를 포함한다. 어떤 실시예들은 입력 장치 및 출력 장치 둘 다로서 기능하는 터치스크린 등의 디바이스를 포함하고 있다.
마지막으로, 도 100에 도시된 바와 같이, 버스(10005)는 또한 네트워크 어댑터(도시 생략)를 통해 전자 시스템(10000)을 네트워크(10025)에 결합시킨다. 이러한 방식으로, 컴퓨터는 컴퓨터들의 네트워크[LAN(local area network), WAN(wide area network) 또는 인트라넷 등], 또는 네트워크들의 네트워크(인터넷 등)의 일부일 수 있다. 전자 시스템(10000)의 구성요소의 일부 또는 전부가 본 발명과 관련하여 사용될 수 있다.
어떤 실시예들은 마이크로프로세서, 기계 판독가능 또는 컴퓨터 판독가능 매체(다른 대안으로서, 컴퓨터 판독가능 저장 매체, 기계 판독가능 매체, 또는 기계 판독가능 저장 매체라고 함)에 컴퓨터 프로그램 명령어를 저장하는 저장 장치 및 메모리와 같은 전자 구성요소를 포함하고 있다. 이러한 컴퓨터 판독가능 매체의 어떤 일례는 RAM, ROM, CD-ROM(read-only compact disc), CD-R(recordable compact disc), CD-RW(rewritable compact disc), 판독 전용 DVD(read-only digital versatile disc)(예를 들어, DVD-ROM, 2층 DVD-ROM), 각종의 기록가능/재기록가능(recordable/rewritable) DVD(예를 들어, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예를 들어, SD 카드, 미니-SD 카드, 마이크로-SD 카드 등), 자기 및/또는 고상 하드 드라이브, 판독 전용 및 기록가능 블루레이® 디스크, 초밀도(ultra density) 광 디스크, 임의의 다른 광 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독가능 매체는 적어도 하나의 처리 유닛에 의해 실행될 수 있는 컴퓨터 프로그램을 저장할 수 있고, 다양한 동작을 수행하는 명령어 집합을 포함한다. 컴퓨터 프로그램 또는 컴퓨터 코드의 일례는 컴파일러에 의해 생성된 것과 같은 기계 코드, 및 인터프리터를 사용하여 컴퓨터, 전자 구성요소, 또는 마이크로프로세서에 의해 실행되는 상위 레벨 코드를 포함하는 파일을 포함한다.
상기 논의가 주로 소프트웨어를 실행하는 마이크로프로세서 또는 멀티-코어 프로세서를 참조하고 있지만, 어떤 실시예들은 ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array) 등의 하나 이상의 집적 회로에 의해 수행된다. 어떤 실시예들에서, 이러한 집적 회로는 회로 자체 상에 저장되어 있는 명령어들을 실행한다. 그에 부가하여, 어떤 실시예들은 PLD(programmable logic device), ROM, 또는 RAM 디바이스에 저장되어 있는 소프트웨어를 실행한다.
본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터", "서버", "프로세서", 및 "메모리"라는 용어 모두는 전자 또는 다른 기술 장치를 말한다. 이 용어들은 사람 또는 사람의 그룹을 제외한다. 본 명세서의 목적상, '디스플레이' 또는 '디스플레이하는'이라는 용어는 전자 장치 상에 디스플레이하는 것을 의미한다. 본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터 판독가능 매체", "컴퓨터 판독가능 매체들", 및 "기계 판독가능 매체"라는 용어는 컴퓨터에 의해 판독될 수 있는 형태로 정보를 저장하는 유형의 물리적 물체(tangible, physical object)로 전적으로 제한된다. 이 용어들은 임의의 무선 신호, 유선 다운로드 신호, 및 임의의 다른 사용후 삭제 신호(ephemeral signal)를 제외한다.
본 발명이 다수의 구체적인 상세를 참조하여 기술되어 있지만, 당업자라면 본 발명이 본 발명의 사상을 벗어나지 않고 다른 특정의 형태로 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 도면들 중 다수는 다양한 터치 제스처(예컨대, 탭핑, 더블 탭핑, 스와이프 제스처, 길게 누르기 제스처 등)를 예시하고 있다. 그렇지만, 예시되어 있는 동작들 중 다수는 상이한 터치 제스처(예컨대, 탭핑 대신에 스와이프, 기타)를 통해 또는 비-터치 입력에 의해(예컨대, 커서 컨트롤러, 키보드, 터치패드/트랙패드, 근접 터치 감응 스크린 등을 사용하여) 수행될 수 있다. 그에 부가하여, 다수의 도면들(도 7, 도 34, 도 43, 도 47, 도 53, 도 59, 도 79, 도 86 및 도 89를 포함함)은 프로세스를 개념적으로 나타내고 있다. 이 프로세스들의 특정의 동작들이 도시되고 기술된 바로 그 순서로 수행되지 않을 수 있다. 특정의 동작이 하나의 연속적인 일련의 동작으로서 수행되지 않을 수 있고, 다른 특정의 동작이 다른 실시예들에서 수행될 수 있다. 게다가, 프로세스가 몇개의 서브프로세스를 사용하여 또는 더 큰 매크로 프로세스의 일부로서 구현될 수 있다. 따라서, 당업자라면 본 발명이 이상의 예시적인 상세에 의해 제한되어서는 안되고 첨부된 특허청구범위에 의해 한정되어야 한다는 것을 잘 알 것이다.

Claims (151)

  1. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    영상을 보기 위한 그래픽 사용자 인터페이스(GUI)를 디스플레이하는 명령어 집합 - 상기 GUI는 상기 GUI의 제1 측면 상에 위치되어 있는 특정의 디스플레이 구역을 포함함 -;
    상기 특정의 디스플레이 구역을 상기 GUI의 반대쪽 측면으로 이동시키는 입력을 수신하는 명령어 집합; 및
    상기 특정의 디스플레이 구역의 이동에 응답하여:
    제1 세트의 GUI 아이템들을, 상기 제1 세트의 아이템들의 좌우 순서를 유지하면서, 상기 GUI의 한쪽 측면으로부터 다른쪽 측면으로 이동시키는 명령어 집합; 및
    제2 세트의 GUI 아이템들을, 상기 제2 세트의 아이템들의 좌우 순서를 정반대로 하면서, 상기 GUI의 한쪽 측면으로부터 다른쪽 측면으로 이동시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  2. 제1항에 있어서, 상기 제1 세트의 GUI 아이템들은 한 세트의 편집 도구 활성화 아이템들을 포함하는 것인 기계 판독가능 매체.
  3. 제2항에 있어서, 상기 편집 도구 활성화 아이템들의 좌우 순서는 사용자가 편집을 수행하는 순서를 반영하는 것인 기계 판독가능 매체.
  4. 제1항에 있어서, 상기 특정의 디스플레이 구역은 영상의 축소판을 디스플레이하는 축소판 디스플레이 구역인 기계 판독가능 매체.
  5. 영상 보기 응용 프로그램을 제공하는 방법으로서,
    오른손잡이 사용자를 위한 제1 GUI를 제공하는 단계 - 상기 제1 GUI는 상기 GUI의 좌측에 있는 영상 선택 창, 좌에서 우로 제1 특정의 순서로 있는 제1 세트의 GUI 아이템들, 및 좌에서 우로 제2 특정의 순서로 있는 제2 세트의 GUI 아이템들을 포함함 -; 및
    왼손잡이 사용자를 위한 제2 GUI를 제공하는 단계 - 상기 제2 GUI는 상기 GUI의 우측에 있는 상기 영상 선택 창, 우에서 좌로 상기 제1 특정의 순서로 있는 상기 제1 세트의 GUI 아이템들, 및 좌에서 우로 상기 제2 특정의 순서로 있는 상기 제2 세트의 GUI 아이템들을 포함함 -
    를 포함하는 방법.
  6. 제4항에 있어서, 상기 제1 GUI에서는 제1 배향으로, 그리고 상기 제2 GUI에서는 상이한 제2 배향으로 활성화시키기 위한 사용자 인터페이스 도구를 제공하는 단계를 추가로 포함하는 방법.
  7. 제5항에 있어서, 상기 사용자 인터페이스 도구는 줌 도구인 방법.
  8. 제5항에 있어서, 상기 제1 세트의 GUI 아이템들은 사용자가 임의의 특정의 편집 도구 세트들을 활성화시키지 않았을 때 디스플레이하기 위한 한 세트의 영상 편집 및 영상 태깅 GUI 아이템들을 포함하고, 상기 제2 세트의 GUI 아이템들은 상이한 아이템들이 선택되었는지에 관계없이 디스플레이하기 위한 것인 방법.
  9. 제5항에 있어서, 상기 제2 세트의 GUI 아이템들은 사용자가 임의의 특정의 편집 도구 세트를 활성화시키지 않았을 때 디스플레이하기 위한 한 세트의 영상 편집 및 영상 태깅 GUI 아이템들을 포함하고, 상기 제1 세트의 GUI 아이템들은 사용자가 특정의 편집 도구 세트를 선택하였는지에 관계없이 디스플레이하기 위한 것인 방법.
  10. 제5항에 있어서, 상기 영상 보기 응용 프로그램은 세로(portrait) 모드 및 가로(landscape) 모드 둘 다를 갖는 디바이스 상에서 동작하기 위한 것이고, 상기 제1 및 제2 GUI는 둘 다 가로 모드에서 동작하기 위한 것인 방법.
  11. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    터치 감응 디스플레이 상의 그래픽 사용자 인터페이스(GUI)에 영상을 디스플레이하는 명령어 집합;
    특정의 GUI 도구를 활성화시키기 위해 상기 터치 감응 디스플레이를 통해 상기 디스플레이된 영상 상에서의 터치 입력을 수신하는 명령어 집합;
    상기 GUI가 왼손잡이 모드에 있을 때, 상기 특정의 도구를 제1 배향으로 디스플레이하는 명령어 집합; 및
    상기 GUI가 오른손잡이 모드에 있을 때, 상기 특정의 도구를 제1 배향으로 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  12. 제11항에 있어서, 상기 도구는 상기 디스플레이된 영상의 일부분을 확대하는 원형 줌 도구인 기계 판독가능 매체.
  13. 제12항에 있어서, 상기 도구는 배율 정보를 포함하고, 상기 배율 정보는 (i) 상기 GUI가 왼손잡이 모드에 있을 때 상기 도구의 우측에 그리고 (ii) 상기 GUI가 오른손잡이 모드에 있을 때 상기 도구의 좌측에 위치되는 것인 기계 판독가능 매체.
  14. 제12항에 있어서, 상기 도구의 줌 레벨은 수정가능한 것인 기계 판독가능 매체.
  15. 제11항에 있어서, 상기 터치 입력은 시간상 적어도 부분적으로 동시에 일어나는 2개의 개별적인 터치 입력을 포함하는 것인 기계 판독가능 매체.
  16. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    터치 감응 디스플레이 상의 그래픽 사용자 인터페이스(GUI)에 영상을 디스플레이하는 명령어 집합;
    상기 터치 감응 디스플레이를 통해 상기 디스플레이된 영상 상에서의 2개의 개별적인 터치 입력을 수신하는 명령어 집합 - 상기 2개의 개별적인 터치 입력은 적어도 부분적으로 동시에 일어남 -;
    상기 터치 입력에 응답하여, 상기 디스플레이된 영상의 일부분을 확대하기 위해 이동가능 GUI 도구를 활성화시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  17. 제16항에 있어서, 상기 이동가능 GUI 도구를 활성화시키는 명령어 집합은
    상기 2개의 개별적인 터치 입력 사이의 중간점을 계산하는 명령어 집합; 및
    상기 이동가능 GUI 도구의 중심을 상기 계산된 중간점에 오도록 하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  18. 제16항에 있어서, 상기 영상 보기 응용 프로그램은
    상기 2개의 터치 입력의 반시계 방향 회전 제스처를 수신하는 명령어 집합;
    상기 GUI가 오른손잡이 모드에 있을 때 상기 반시계 방향 회전 제스처에 응답하여 상기 GUI 도구의 배율 레벨(magnification level)을 감소시키는 명령어 집합; 및
    상기 GUI가 왼손잡이 모드에 있을 때 상기 반시계 방향 회전 제스처에 응답하여 상기 GUI 도구의 배율 레벨을 증가시키는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  19. 제16항에 있어서, 상기 영상 보기 응용 프로그램은
    상기 2개의 터치 입력의 시계 방향 회전 제스처를 수신하는 명령어 집합;
    상기 GUI가 오른손잡이 모드에 있을 때 상기 시계 방향 회전 제스처에 응답하여 상기 GUI 도구의 배율 레벨을 증가시키는 명령어 집합; 및
    상기 GUI가 왼손잡이 모드에 있을 때 상기 시계 방향 회전 제스처에 응답하여 상기 GUI 도구의 배율 레벨을 감소시키는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  20. 제16항에 있어서, 상기 영상 보기 응용 프로그램은
    상기 GUI 도구 상에서의 싱글 터치 입력을 수신하고 뒤이어서 상기 싱글 터치 입력을 상기 터치 감응 디스플레이를 따라 영상 디스플레이 구역에서의 상이한 위치로 이동시키는 명령어 집합; 및
    상기 싱글 터치 입력의 이동에 응답하여, 상기 GUI 도구를 상기 상이한 위치로 이동시키는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  21. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    터치 감응 디스플레이의 특정의 측면 상에 한 세트의 축소판들을 포함하는 축소판 디스플레이 구역을 디스플레이하는 명령어 집합 - 상기 축소판들은 대응하는 영상들을 미리보기 디스플레이 구역에 디스플레이하기 위해 선택하기 위한 것임 -;
    상기 터치 감응 디스플레이를 통해, 상기 축소판 디스플레이 구역 상에서 상기 터치 감응 디스플레이의 상기 특정의 측면 쪽으로 향해가는 스와이프 제스처(swipe gesture)를 수신하는 명령어 집합; 및
    상기 스와이프 제스처를 수신한 것에 응답하여, 상기 축소판 디스플레이 구역을 상기 디스플레이로부터 제거하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  22. 제21항에 있어서, 상기 축소판 디스플레이 구역을 상기 디스플레이로부터 제거하는 명령어 집합은 상기 축소판 디스플레이 구역을 상기 터치 감응 디스플레이의 상기 특정의 측면으로부터 슬라이딩하면서 사라지게 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  23. 제21항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 축소판 디스플레이 구역이 상기 디스플레이로부터 제거된 상태에서, 상기 터치 감응 디스플레이를 통해 상기 터치 감응 디스플레이의 상기 특정의 측면 근방에서 상기 터치 감응 디스플레이의 상기 특정의 측면으로부터 멀어지는 쪽으로 향해가는 제2 스와이프 제스처를 수신하는 명령어 집합; 및
    상기 제2 스와이프 제스처를 수신한 것에 응답하여, 상기 축소판 디스플레이 구역을 다시 상기 디스플레이 내로 이동시키는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  24. 제21항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 터치 감응 디스플레이를 통해, (i) 상기 축소판 디스플레이 구역과 상기 영상 디스플레이 구역 사이의 경계 상에서의 터치 및 (ii) 상기 터치 감응 디스플레이의 상기 특정의 측면으로부터 멀어지는 쪽으로의 후속의 드래그 제스처(drag gesture)를 수신하는 명령어 집합; 및
    상기 특정의 측면으로부터 멀어지는 쪽으로의 상기 드래그 제스처가 임계 거리에 도달할 때, 상기 축소판 디스플레이 구역 내의 상기 한 세트의 축소판들을 증가된 수의 열로 재배열하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  25. 제24항에 있어서, 상기 한 세트의 축소판들은 최대 수의 열을 가지며, 상기 최대 수의 열에 도달될 때, 상기 응용 프로그램은 상기 한 세트의 축소판들을 증가된 수의 열로 재배열하는 명령어를 실행하지 않는 것인 기계 판독가능 매체.
  26. 제21항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 터치 감응 디스플레이를 통해, (i) 상기 축소판 디스플레이 구역과 상기 미리보기 디스플레이 구역 사이의 경계 상에서의 터치 및 (ii) 상기 터치 감응 디스플레이의 상기 특정의 측면 쪽으로의 후속의 드래그 제스처를 수신하는 명령어 집합; 및
    상기 특정의 측면 쪽으로의 상기 드래그 제스처가 임계 거리에 도달할 때, 상기 영상 브라우저 디스플레이 구역 내의 상기 한 세트의 축소판들을 감소된 수의 열로 재배열하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  27. 제26항에 있어서, 상기 한 세트의 축소판들은 최소 수의 열을 가지며, 상기 최소 수의 열에 도달될 때, 상기 응용 프로그램은 상기 한 세트의 축소판들을 감소된 수의 열로 재배열하는 명령어를 실행하지 않는 것인 기계 판독가능 매체.
  28. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    한 세트의 정렬된 축소판들을 포함하는 축소판 디스플레이 구역을, 터치 감응 디스플레이 상에, 디스플레이하는 명령어 집합 - 상기 축소판들은 대응하는 영상들을 영상 디스플레이 구역에 디스플레이하기 위해 선택하기 위한 것임 -;
    상기 터치 감응 디스플레이를 통해, (i) 상기 한 세트의 축소판들에서의 제1 축소판 상에서의 제1 터치 입력 및 (ii) 상기 한 세트의 축소판들에서의 제2 축소판 상에서의 제2 터치 입력을 수신하는 명령어 집합 - 상기 제1 및 제2 터치 입력은 시간상 적어도 부분적으로 동시에 일어남 -; 및
    상기 한 세트의 정렬된 축소판들에서 상기 제1 축소판에 대응하는 영상, 상기 제2 축소판에 대응하는 영상, 및 상기 제1 축소판과 상기 제2 축소판 사이의 각각의 영상을 선택하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  29. 제28항에 있어서, 상기 영상 보기 응용 프로그램은 상기 선택된 영상들을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  30. 제29항에 있어서, 상기 선택된 영상들을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합은 상기 선택된 영상들 각각을 동일한 시각적 가중치(visual weighting)로 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  31. 제28항에 있어서, 상기 제1 및 제2 터치 입력은 탭핑 입력(tap input)을 포함하는 것인 기계 판독가능 매체.
  32. 제28항에 있어서, 상기 제1 및 제2 터치 입력은 길게 누르기 입력(press and hold input)을 포함하는 것인 기계 판독가능 매체.
  33. 영상 보기 응용 프로그램을 제공하는 방법으로서,
    각각이 한 영상에 대응하는 한 세트의 축소판들을 디스플레이하는 축소판 디스플레이 구역을 제공하는 단계;
    하나 이상의 영상들에 대응하는 축소판들이 선택될 때 상기 하나 이상의 영상들을 디스플레이하는 영상 디스플레이 구역을 제공하는 단계; 및
    (i) 제1 영상에 대응하는 축소판 상에서 임계 지속기간 미만의 터치 입력이 수신될 때 상기 제1 영상만을 선택하고 (ii) 이전에 선택된 제2 영상의 선택을 유지하는 동안 상기 제2 영상에 대응하는 축소판 상에서 상기 임계 지속기간 이상의 터치 입력이 수신될 때 상기 제1 영상을 선택하는 한 세트의 모듈들을 제공하는 단계
    를 포함하는 방법.
  34. 제33항에 있어서, 상기 임계 지속기간 미만의 터치 입력은 탭핑 입력이고, 상기 임계 지속기간 이상의 터치 입력은 길게 누르기 입력인 방법.
  35. 제34항에 있어서, 상기 응용 프로그램이 동작하고 있는 디바이스의 운영 체제로부터 제스처 데이터를 수신하는 모듈을 제공하는 단계 - 상기 제스처 데이터는 탭핑 입력 데이터 및 길게 누르기 입력 데이터를 나타냄 - 를 추가로 포함하는 방법.
  36. 제33항에 있어서, 선택된 영상들을 상기 영상 디스플레이 구역에 동일한 시각적 가중치로 디스플레이하는 모듈을 제공하는 단계를 추가로 포함하는 방법.
  37. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    각각이 한 영상에 대응하는 복수의 축소판들을 포함하는 축소판 디스플레이 구역을 디스플레이하는 명령어 집합 - 한 세트의 적어도 하나의 축소판들이 선택됨 -
    상기 축소판 디스플레이 구역 내의 특정의 선택되지 않은 축소판 상에서의 선택 입력을 수신하는 명령어 집합;
    상기 선택 입력이 임계 지속기간 미만 지속될 때, 상기 특정의 축소판만을 선택하고 상기 특정의 축소판에 대응하는 영상을 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 선택 입력이 상기 임계 지속기간 이상 지속될 때, 상기 특정의 축소판을 상기 한 세트의 선택된 축소판들에 추가하고 상기 선택된 축소판들 각각에 대응하는 영상들을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  38. 제37항에 있어서, 상기 영상들을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합은 상기 영상들 각각을 동일한 시각적 가중치로 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  39. 제38항에 있어서, 상기 영상 보기 응용 프로그램은,
    특정의 이전에 선택된 축소판 상에서의 제2 선택 입력을 수신하는 명령어 집합;
    상기 선택 입력이 임계 지속기간 미만 지속될 때 상기 특정의 이전에 선택된 축소판에 대응하는 영상만을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 선택 입력이 임계 지속기간 이상 지속될 때 상기 특정의 이전에 선택된 축소판에 대응하는 영상을 상기 영상 디스플레이 구역으로부터 제거하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  40. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    한 세트의 정렬된 축소판들을 포함하는 축소판 디스플레이 구역을, 터치 감응 디스플레이 상에, 디스플레이하는 명령어 집합 - 상기 축소판들은 한 세트의 영상들 중에서의 대응하는 영상들을 영상 디스플레이 구역에 디스플레이하기 위해 선택하기 위한 것임 -;
    상기 터치 감응 디스플레이를 통해 축소판의 특정의 터치 선택을 수신하는 명령어 집합 - 상기 선택된 축소판은 제1 영상에 대응함 -;
    상기 한 세트의 영상들 내의 각각의 특정의 다른 영상에 대해, 상기 특정의 다른 영상이 상기 제1 영상의 임계 유사성(threshold similarity) 내에 있는지를 판정하기 위해, 상기 제1 영상의 영상 특성들을 상기 특정의 다른 영상의 영상 특성들과 비교하는 명령어 집합; 및
    상기 제1 영상을 상기 제1 영상의 상기 임계 유사성 내에 있는 각각의 다른 영상과 함께, 영상 디스플레이 구역에, 자동으로 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  41. 제40항에 있어서, 상기 영상 특성들은 색상, 형상, 및 텍스처를 포함하는 것인 기계 판독가능 매체.
  42. 제40항에 있어서, 영상 특성들을 비교하는 명령어 집합은 상기 제1 영상의 복수의 상이한 히스토그램들을 상기 제2 영상에 대한 대응하는 복수의 상이한 히스토그램들과 비교하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  43. 제42항에 있어서, 특정의 영상에 대한 복수의 상이한 히스토그램들은 상기 특정의 영상을 상기 영상 보기 응용 프로그램 내로 가져오기(import)할 때 계산되는 것인 기계 판독가능 매체.
  44. 제40항에 있어서, 상기 특정의 터치 선택은 상기 축소판의 더블 탭핑 제스처 선택(double tap gesture selection)인 기계 판독가능 매체.
  45. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    특정의 종횡비를 갖는 영상을 수신하는 명령어 집합;
    상기 영상 내의 각각의 픽셀에 대해, 상기 픽셀에서의 상기 영상의 색상, 텍스처, 및 기울기(gradient)를 정량화하는 한 세트의 픽셀 특성들을 계산하는 명령어 집합;
    상기 영상의 한 세트의 몇몇 영역들 각각에 대해, 상기 픽셀 특성들 각각에 대한 히스토그램을 발생하는 명령어 집합 - 상기 히스토그램은 상기 영상을 다른 영상들과 비교하는 데 사용하기 위한 것임 - 을 포함하고, 상기 영역들은 상기 영상과 동일한 종횡비를 가지며, 상기 영상 내의 적어도 하나의 픽셀은 2개 이상의 영역의 일부인 기계 판독가능 매체.
  46. 제45항에 있어서, 상기 영역들 각각은 상기 영상의 1/4 크기인 기계 판독가능 매체.
  47. 제46항에 있어서, 상기 한 세트의 영역들은 9개의 상이한 영역들을 포함하는 것인 기계 판독가능 매체.
  48. 제45항에 있어서, 상기 영역 내의 제1 픽셀은 다수의 영역들의 일부인 반면, 상기 영상 내의 제2 픽셀은 단지 하나의 영상의 일부인 기계 판독가능 매체.
  49. 제45항에 있어서, 특정의 픽셀에 대한 한 세트의 픽셀 특성들을 계산하는 명령어 집합은 상기 특정의 픽셀의 색상 값들을 HSV(hue-saturation-value) 색 공간으로 변환하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  50. 제49항에 있어서, 각각의 영역에 대한 색상 히스토그램은 상기 HSV 색 공간의 제1 부분에 대한 제1 빈(bin) 및 상기 HSV 색 공간의 보다 큰 제2 부분에 대한 제2 빈을 포함하는 것인 기계 판독가능 매체.
  51. 제50항에 있어서, 상기 HSV 색 공간의 상기 제1 부분 및 상기 제2 부분은 똑같은 사람-인지가능 차이점(equal human-perceptible difference)을 나타내는 것인 기계 판독가능 매체.
  52. 제45항에 있어서, 특정의 픽셀에 대한 한 세트의 픽셀 특성들을 계산하는 명령어 집합은
    상기 특정의 픽셀에 대한 휘도 값(intensity value)을 계산하는 명령어 집합;
    상기 특정의 픽셀에 대한 상기 휘도 값 및 제1 세트의 주변 픽셀들의 계산된 휘도 값들을 사용하여 상기 특정의 픽셀에 대한 텍스처 값을 계산하는 명령어 집합; 및
    상기 특정의 픽셀에 대한 상기 휘도 값 및 제2 세트의 주변 픽셀들의 계산된 휘도 값들을 사용하여 상기 특정의 픽셀에 대한 기울기 값을 계산하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  53. 제52항에 있어서, 상기 제1 세트의 주변 픽셀들은 상기 특정의 픽셀에 중심을 둔 5x5 창(5x5 window)에 있는 모든 픽셀을 포함하고, 상기 제2 세트의 주변 픽셀들은 상기 특정의 픽셀의 바로 위쪽, 아래쪽, 좌측 및 우측에 있는 4개의 픽셀을 포함하는 것인 기계 판독가능 매체.
  54. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    영상 보기 영역에 디스플레이하기 위한 복수의 영상들의 평균 종횡비를 계산하는 명령어 집합 - 상기 복수의 영상들 내의 제1 영상은 제1 종횡비를 가지며 상기 복수의 영상들 내의 제2 영상은 상이한 제2 종횡비를 가짐 -;
    상기 복수의 영역들을 디스플레이하는 상기 영상 보기 영역의 영역들의 수 및 크기를 결정하는 명령어 집합 - 상기 영역들은 상기 계산된 평균 종횡비를 가지며, 각각의 영상은 상기 영역들의 상이한 영역에 디스플레이하기 위한 것임 -; 및
    상기 영상 보기 영역의 영역들에 복수의 영상들을 디스플레이하는 명령어 집합 - 각각의 디스플레이된 영상은 동일한 시각적 가중치를 가지며, 상기 제1 영상은 상기 제1 종횡비로 디스플레이되고, 상기 제2 영상은 상기 제2 종횡비로 디스플레이됨 - 을 포함하는 것인 기계 판독가능 매체.
  55. 제54항에 있어서, 상기 영상들은 각각의 영상에 대해 동일한 수의 픽셀들을 사용하여 디스플레이되는 것인 기계 판독가능 매체.
  56. 제54항에 있어서, 상기 영상 보기 영역의 영역들의 수 및 크기를 결정하는 명령어 집합은 상기 평균 종횡비 및 디스플레이할 영상들의 수에 기초하여, 열 및 행의 최적의 수를 결정하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  57. 제54항에 있어서, 상기 영상 보기 응용 프로그램은 상기 복수의 영상들의 선택을 수신하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  58. 제57항에 있어서, 상기 응용 프로그램은 터치스크린 디바이스 상에서 실행되고, 상기 복수의 영상들의 선택은 상기 터치스크린 상에서의 2개의 개별적인 터치 입력을 사용하여 블록 선택으로서 수신되는 것인 기계 판독가능 매체.
  59. 영상들을 디스플레이하는 방법으로서,
    영상 디스플레이 구역에 디스플레이하기 위한 복수의 영상들의 선택을 수신하는 단계 - 각각의 영상은 종횡비를 가짐 -;
    상기 영상 디스플레이 구역 내의 영상 디스플레이 영역들의 최적의 격자를 식별하는 단계 - 상기 격자 내의 상기 영상 디스플레이 영역 각각은 동일한 특정의 크기 및 종횡비를 가짐 -;
    상기 영상들 각각을 영상 디스플레이 영역에 할당하는 단계; 및
    상기 할당된 영상 디스플레이 영역들 내에 상기 영상들을 디스플레이하기 위한 크기를 계산함으로써 각각의 영상이 그의 종횡비를 유지하면서 상기 계산된 크기로 그의 할당된 영상 디스플레이 영역 내에 완전히 디스플레이되도록 하는 단계
    를 포함하는 방법.
  60. 제59항에 있어서, 영상 디스플레이 영역들의 최적의 격자를 식별하는 단계는
    상기 복수의 영상들의 평균 종횡비를 계산하는 단계 - 상기 격자 내의 영상 디스플레이 영역들 각각은 상기 평균 종횡비를 가짐 -; 및
    한 세트의 제약조건들 내에서 상기 영상 디스플레이 영역들의 크기를 최대화하는 영상 디스플레이 영역들의 행 및 열의 수를 식별하는 단계를 포함하는 것인 방법.
  61. 제60항에 있어서, 상기 한 세트의 제약조건들은 상기 격자가 상기 복수의 영상들 내의 영상들과 적어도 같은 수의 영상 디스플레이 영역을 가질 것과 상기 영상 디스플레이 영역들 전부가 상기 영상 디스플레이 구역 내에 들어갈(fit) 것을 요구하는 것인 방법.
  62. 제59항에 있어서, 상기 영상들 각각을 영상 디스플레이 영역에 할당하는 단계는
    각각의 영상을 상기 격자에서 상단 행부터 시작하여 상이한 영상 디스플레이 영역에 할당하는 단계;
    영상이 할당되지 않은 상기 격자에서 하단 행에 있는 임의의 영상 디스플레이 영역들을 제거하는 단계; 및
    상기 하단 행에 있는 임의의 나머지 영상 디스플레이 영역들을 중심에 오게 하는 단계를 포함하는 것인 방법.
  63. 제59항에 있어서, 상기 영상 디스플레이 구역에 추가할 부가의 영상의 선택을 수신하는 단계;
    상기 영상 디스플레이 구역에서 영상 디스플레이 영역들의 새로운 최적의 격자를 식별하는 단계 - 상기 새로운 격자 내의 상기 영상 디스플레이 영역들은 상기 부가의 영상의 종횡비를 고려하는 상이한 크기 및 종횡비를 가짐 -;
    상기 부가의 영상을 포함한 상기 영상들 각각을 상기 새로운 격자 내의 영상 디스플레이 영역에 할당하는 단계; 및
    상기 새로운 할당된 영상 디스플레이 영역들 내에 상기 부가의 영상을 포함하는 상기 영상들을 디스플레이하기 위한 새로운 크기를 계산함으로써 각각의 영상이 그의 종횡비를 유지하면서 상기 새로 계산된 크기로 그의 새로운 할당된 영상 디스플레이 영역 내에 완전히 디스플레이되도록 하는 단계를 추가로 포함하는 방법.
  64. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은 그래픽 사용자 인터페이스를 포함하고, 상기 GUI는
    상기 영상 보기 응용 프로그램에서 영상들에 대응하는 복수의 선택가능 축소판들을 디스플레이하는 축소판 디스플레이 구역 - 각각의 영상은 특정의 종횡비를 가짐 -; 및
    하나 이상의 영상들을 디스플레이하는 영상 디스플레이 구역 - 그 영상들의 대응하는 축소판들은 선택되고, 상기 영상 디스플레이 구역은 한 세트의 똑같은 크기의 영역들로 나누어져 있으며, 그 영역들에 상기 영상들이 디스플레이하기 위해 할당됨으로써 각각의 영상이 그의 할당된 영역 내에 그의 특정의 종횡비를 유지하면서 대략 동일한 수의 픽셀을 사용하여 디스플레이됨 - 을 포함하는 것인 기계 판독가능 매체.
  65. 제64항에 있어서, 상기 GUI는 터치스크린 디바이스 상에 디스플레이하기 위한 것이고, 상기 축소판들은 상기 터치스크린과의 터치 상호작용을 통해 선택가능한 것인 기계 판독가능 매체.
  66. 제64항에 있어서, 각각의 영상을 디스플레이하는 픽셀의 수는 상기 영상들 중 특정의 영상을, 상기 특정의 영상의 종횡비를 유지하면서 상기 똑같은 크기의 영역들 중 하나의 영역 내에 가장 큰 크기로 디스플레이하는 픽셀의 수인 기계 판독가능 매체.
  67. 제66항에 있어서, 상기 특정의 영상은 상기 똑같은 크기의 영역들의 종횡비와 가장 상이한 종횡비를 갖는 영상인 기계 판독가능 매체.
  68. 제64항에 있어서, 상기 GUI는 상기 영상들을 편집하기 위한 한 세트의 편집 도구들을 추가로 포함하는 것인 기계 판독가능 매체.
  69. 제64항에 있어서, 상기 GUI는 상기 영상들을 태깅하기 위한 한 세트의 선택가능 GUI 아이템들을 추가로 포함하는 것인 기계 판독가능 매체.
  70. 제64항에 있어서, 상기 축소판 디스플레이 구역 및 상기 영상 디스플레이 구역은 함께 상기 GUI에서 고정된 영역을 차지하고, 상기 축소판 디스플레이 구역의 크기는 수정가능한 것인 기계 판독가능 매체.
  71. 제70항에 있어서, 상기 축소판 디스플레이 구역의 크기에 대한 수정은 그에 대응하여 상기 영상 디스플레이 구역의 크기를 수정하는 것인 기계 판독가능 매체.
  72. 제71항에 있어서, 상기 영상 디스플레이 구역의 크기에 대한 수정의 결과, 상기 똑같은 크기의 영역들의 크기가 수정되고 그에 대응하여 각각의 영상을 디스플레이하는 데 사용되는 픽셀들의 수가 수정되는 것인 기계 판독가능 매체.
  73. 영상 보기 응용 프로그램을 정의하는 방법으로서,
    상기 영상 보기 응용 프로그램에서 영상들에 대응하는 복수의 선택가능 축소판들을 디스플레이하는 축소판 디스플레이 구역을 정의하는 단계 - 각각의 영상은 특정의 종횡비를 가짐 -;
    상기 영상들에 대응하는 축소판들이 선택될 때 각각의 영상에 대해 상기 특정의 종횡비를 유지하면서 동일한 시각적 가중치를 사용하여 하나 이상의 영상들을 디스플레이하기 위한 영상 디스플레이 구역을 정의하는 단계; 및
    (i) 디스플레이하기 위한 상기 영상들의 종횡비에 기초하여 상기 영상 디스플레이 구역을 최적의 수의 똑같은 크기의 디스플레이 영역들로 나누고 (ii) 상기 동일한 시각적 가중치를 사용하여 디스플레이하기 위해 상기 영상들 각각을 상기 디스플레이 영역들 중 하나에 할당하는 한 세트의 모듈들을 정의하는 단계
    를 포함하는 방법.
  74. 제73항에 있어서, 영상에 대한 편집들을 발생하는 한 세트의 모듈들을 정의하는 단계; 및
    상기 영상 디스플레이 구역에 상기 영상의 편집된 버전을 디스플레이하기 위해 상기 편집들을 상기 영상에 적용하는 한 세트의 모듈들을 정의하는 단계를 추가로 포함하는 방법.
  75. 제73항에 있어서, 상기 영상 디스플레이 구역은 상기 영상이 할당되어 있는 상기 똑같은 크기의 디스플레이 영역의 동일한 퍼센트를 사용하여 상기 영상들 각각을 디스플레이하기 위한 것인 방법.
  76. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    영상 디스플레이 구역을, 각각이 상기 영상 디스플레이 구역에 디스플레이하기 위한 한 세트의 영상들의 평균 종횡비를 가지는 복수의 영상 디스플레이 영역들로 나누는 명령어 집합;
    상기 영상 디스플레이 영역들 중 하나 내에 들어갈 때 상기 세트 내의 특정의 영상의 크기를 식별하는 명령어 집합;
    상기 세트 내의 각각의 영상에 대해, 상기 영상 디스플레이 영역 내에 들어갈 때 상기 영상의 종횡비를 유지하고 상기 특정의 영상의 식별된 크기와 일치시키기 위해 상기 영상을 디스플레이하기 위한 치수를 계산하는 명령어 집합; 및
    각각의 영상에 대한 상기 계산된 치수를 사용하여 상기 영상들을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  77. 제76항에 있어서, 상기 크기는 상기 영상을 디스플레이하기 위해 사용할 화면 픽셀들의 총수인 기계 판독가능 매체.
  78. 제76항에 있어서, 상기 특정의 영상은 상기 영상 디스플레이 영역 내에 들어갈 때 상기 영상 디스플레이 영역들 중 하나의 영역의 가장 작은 퍼센트를 사용하는 영상인 기계 판독가능 매체.
  79. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    축소판 디스플레이 구역에서의 제1 및 제2 선택된 축소판들에 대응하는 제1 및 제2 영상을 영상 디스플레이 구역에 디스플레이하면서, 상기 선택된 축소판들에 대한 제1 선택 표시를 디스플레이하는 명령어 집합;
    상기 영상 디스플레이 구역을 통해 상기 디스플레이된 제1 영상의 선택을 수신하는 명령어 집합; 및
    상기 디스플레이된 제1 영상의 선택에 응답하여:
    상기 제1 영상만을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 제2 축소판에 대한 상기 제1 선택 표시를 유지하면서 상기 제1 축소판에 대한 제2 선택 표시를 상기 축소판 디스플레이 구역에 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  80. 제79항에 있어서, 상기 제1 및 제2 선택 표시 둘 다는 상기 축소판들 주위에 하이라이트된 경계들을 포함하는 것인 기계 판독가능 매체.
  81. 제80항에 있어서, 상기 제2 선택 표시는 상기 제1 선택 표시보다 더 굵은 하이라이트를 포함하는 것인 기계 판독가능 매체.
  82. 제79항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 제1 영상만이 상기 영상 디스플레이 구역에 디스플레이되어 있고 상기 제2 축소판이 선택되어 있는 상태에서, 상기 영상 디스플레이 구역을 통해 상기 제1 영상의 제2 선택을 수신하는 명령어 집합; 및
    상기 제2 선택에 응답하여:
    상기 제1 및 제2 영상을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 제1 및 제2 선택된 축소판들 둘 다에 대한 상기 제1 선택 표시를 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  83. 제79항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 제1 및 제2 영상 둘 다가 상기 영상 디스플레이 구역에 디스플레이되어 있는 상태에서, 상기 제1 축소판의 선택을 수신하는 명령어 집합; 및
    상기 제1 축소판의 선택에 응답하여:
    상기 제1 영상만을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 제2 축소판에 대한 상기 제1 선택 표시를 유지하면서 상기 제1 축소판에 대한 제2 선택 표시를 상기 축소판 디스플레이 구역에 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  84. 제79항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 제1 및 제2 영상 둘 다가 상기 영상 디스플레이 구역에 디스플레이되어 있는 상태에서, 어떤 선택 표시도 없이 제3 축소판의 선택을 수신하는 명령어 집합; 및
    상기 제3 축소판의 선택에 응답하여:
    상기 제3 축소판에 대응하는 제3 영상만을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 제2 축소판에 대한 상기 제1 선택 표시를 제거하면서 상기 제3 축소판에 대한 제2 선택 표시를 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  85. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    복수의 정렬된 축소판들을 포함하는 축소판 격자를 디스플레이하는 명령어 집합 - 상기 복수의 축소판들의 서브셋이 선택되고, 상기 서브셋은 순서가 연속적이지 않은 적어도 제1 및 제2 축소판을 포함함 -;
    상기 제1 축소판에 대응하는 제1 영상을, 영상 디스플레이 구역에, 디스플레이하는 명령어 집합;
    상기 영상 디스플레이 구역에 있는 상기 제1 영상 상에서의 수평 스와이프 제스처를 수신하는 명령어 집합; 및
    상기 수평 스와이프 제스처에 응답하여, 상기 제2 축소판에 대응하는 제2 영상을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  86. 제85항에 있어서, 상기 수평 스와이프 제스처는 좌측으로의 스와이프 제스처인 기계 판독가능 매체.
  87. 제86항에 있어서, 상기 서브셋은 제3 선택된 축소판을 포함하고, 상기 영상 보기 응용 프로그램은,
    상기 제1 영상이 상기 영상 디스플레이 구역에 디스플레이되어 있는 상태에서, 상기 제1 영상 상에서의 우측으로의 스와이프 제스처를 수신하는 명령어 집합; 및
    상기 우측으로의 스와이프 제스처에 응답하여, 상기 제3 축소판에 대응하는 제3 영상을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  88. 제85항에 있어서, 상기 수평 스와이프 제스처에 응답하여, 제2 영상을 디스플레이하는 명령어 집합은 상기 제2 영상을 상기 영상 디스플레이 구역에 추가하면서 상기 제1 영상을 상기 영상 디스플레이 구역으로부터 제거하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  89. 제88항에 있어서, 상기 제2 영상을 추가하면서 상기 제1 영상을 제거하는 명령어 집합은 상기 제2 영상의 크기를 증가시키면서 상기 제1 영상의 크기를 감소시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  90. 제88항에 있어서, 상기 선택된 영상들 각각은 상기 영상 디스플레이 구역 내의 위치에 할당되고, 상기 제1 영상을 디스플레이하는 명령어 집합은 상기 제2 영상의 흐릿해진 버전을 상기 제2 영상의 할당된 위치에서 상기 디스플레이된 제1 영상 후방에 디스플레이하는 명령어 집합을 포함하며, 상기 제2 영상을 추가하면서 상기 제1 영상을 제거하는 명령어 집합은
    상기 제1 영상을 상기 영상 디스플레이 구역 내의 그의 할당된 위치로 최소화하는 명령어 집합; 및
    상기 제2 영상을 상기 영상 디스플레이 구역 내의 그의 할당된 위치로부터 최대화하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  91. 제90항에 있어서, 상기 제2 영상의 흐릿해진 버전은 상기 제2 영상의 할당된 위치의 적어도 일부분이 상기 디스플레이된 제1 영상에 의해 점유되어 있지 않을 때에만 보이는 것인 기계 판독가능 매체.
  92. 제88항에 있어서, 상기 제2 영상을 추가하면서 상기 제1 영상을 제거하는 명령어 집합은 상기 제1 영상을 상기 영상 디스플레이 구역 밖으로 슬라이딩시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  93. 제85항에 있어서, 상기 영상 보기 응용 프로그램은 터치스크린 디바이스 상에서 실행하기 위한 것이고, 상기 수평 스와이프 제스처는 터치 제스처인 기계 판독가능 매체.
  94. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    복수의 축소판들을 포함하는 축소판 격자를 디스플레이하는 명령어 집합 - 상기 복수의 축소판들의 서브셋이 선택되고, 상기 서브셋은 적어도 제1 및 제2 축소판을 포함함 -;
    상기 제1 축소판에 대응하는 제1 영상을, 영상 디스플레이 구역에, 디스플레이하는 명령어 집합;
    상기 영상 디스플레이 구역에 있는 상기 제1 영상 상에서의 수직 스와이프 제스처를 수신하는 명령어 집합; 및
    상기 수직 스와이프 제스처에 응답하여:
    상기 제2 축소판에 대응하는 제2 영상을 상기 영상 디스플레이 구역에 디스플레이하는 명령어 집합; 및
    상기 제1 축소판을 상기 선택된 축소판들의 서브셋으로부터 제거하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  95. 제94항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 제1 영상이 상기 영상 디스플레이 구역에 디스플레이되어 있는 상태에서, 상기 제1 축소판의 특정의 선택 제스처를 수신하는 명령어 집합; 및
    상기 특정의 선택 제스처에 응답하여, 상기 제2 축소판에 대응하는 제2 영상을 상기 영상 디스플레이 구역에 디스플레이하고 상기 제1 축소판을 상기 선택된 축소판들의 서브셋으로부터 제거하는 명령어 집합을 실행하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  96. 제95항에 있어서, 상기 특정의 선택 제스처는 상기 제1 축소판의 길게 누르기 선택(press and hold selection)인 기계 판독가능 매체.
  97. 제94항에 있어서, 상기 영상 보기 응용 프로그램은 터치스크린 디바이스 상에서 실행하기 위한 것이고, 상기 수직 스와이프 제스처는 터치 제스처인 기계 판독가능 매체.
  98. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    한 세트의 축소판들 - 복수의 축소판들 - 을 포함하는 축소판 격자를 디스플레이하는 명령어 집합;
    선택된 영상들을 태깅하기 위한 GUI 도구의 선택을 수신하는 명령어 집합;
    상기 선택된 영상들 중 하나만이 영상 디스플레이 구역에 디스플레이될 때, 상기 디스플레이된 영상만을 태깅하는 명령어 집합; 및
    상기 선택된 영상들 모두가 상기 영상 디스플레이 구역에 디스플레이될 때, 상기 선택된 영상들 각각을 태깅하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  99. 제98항에 있어서, 상기 태그는 좋아하는 것 태그(favorites tag)인 기계 판독가능 매체.
  100. 제98항에 있어서, 상기 태그는 플래깅됨 태그(flagged tag)인 기계 판독가능 매체.
  101. 제98항에 있어서, 상기 태그는 영상 숨기기 태그(hide image tag)인 기계 판독가능 매체.
  102. 제98항에 있어서, 상기 영상 보기 응용 프로그램은 상기 태깅된 영상들을 특정의 태그를 갖는 영상들의 컬렉션에 추가하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  103. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    상기 영상 보기 응용 프로그램의 그래픽 사용자 인터페이스(GUI)에서 도움말 활성화 아이템의 선택을 수신하는 명령어 집합;
    제1 세트의 선택가능 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 명령어 집합;
    상기 제1 세트의 선택가능 GUI 아이템들 중 하나의 아이템의 선택을 수신하는 명령어 집합; 및
    상기 선택을 수신한 것에 응답하여:
    (i) 제2 세트의 GUI 아이템들 및 (ii) 상기 제2 세트의 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 명령어 집합; 및
    상기 제1 세트의 선택가능 GUI 아이템들을 디스플레이하는 것을 유지하면서 상기 제1 세트의 선택가능 GUI 아이템들로부터 상기 도움말 표시자들을 제거하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  104. 제103항에 있어서, 상기 영상 보기 응용 프로그램은 상기 제1 세트의 선택가능 GUI 아이템들 중 하나가 선택되었는지에 관계없이, 제3 세트의 선택가능 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  105. 제103항에 있어서, 상기 제2 세트의 GUI 아이템들 중 특정의 아이템은 상기 GUI 내에서 이동가능하고, 상기 영상 보기 응용 프로그램은 상기 특정의 이동가능 GUI 아이템에 대한 도움말 표시자를, 상기 특정의 이동가능 GUI 아이템과 함께, 이동시키는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  106. 제103항에 있어서, 특정의 GUI 아이템에 대한 도움말 매뉴얼 항목(help manual entry)에 액세스하기 위해 상기 특정의 GUI 아이템에 대한 특정의 도움말 표시자가 선택가능한 것인 기계 판독가능 매체.
  107. 제106항에 있어서, 상기 도움말 매뉴얼 항목은 상기 영상 보기 응용 프로그램과 함께 저장되어 있는 것인 기계 판독가능 매체.
  108. 제106항에 있어서, 상기 도움말 매뉴얼 항목은 원격적으로 저장되어 있고 네트워크를 통해 액세스가능한 것인 기계 판독가능 매체.
  109. 제103항에 있어서, 상기 제1 세트의 선택가능 GUI 아이템들은 한 세트의 색상 속성 수정 슬라이더들 및 화이트 밸런스 옵션 아이템을 포함하고, 상기 선택가능 GUI 아이템들 중 선택된 아이템은 상기 화이트 밸런스 옵션 아이템이며, 상기 제2 세트의 GUI 아이템들은 한 세트의 화이트 밸런스 옵션들인 기계 판독가능 매체.
  110. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    한 세트의 도움말 표시 아이템들을 상기 응용 프로그램의 그래픽 사용자 인터페이스(GUI)에 디스플레이하는 명령어 집합 - 상기 세트 내의 각각의 도움말 표시 아이템은 상이한 선택가능 GUI 아이템에 첨부되어 있음 -;
    상기 GUI 내에서 특정의 GUI 아이템을 이동시키는 입력을 수신하는 명령어 집합; 및
    상기 입력에 응답하여, 상기 특정의 GUI 아이템에 대한 상기 도움말 표시 아이템을, 상기 특정의 GUI 아이템과 함께, 이동시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  111. 제110항에 있어서, 상기 특정의 GUI 아이템은 영상의 특성을 편집하기 위해 트랙을 따라 이동하는 슬라이더인 기계 판독가능 매체.
  112. 제110항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 특정의 GUI 아이템에 대한 상기 도움말 표시 아이템을 이동시키는 것이 상기 특정의 GUI 아이템에 대한 상기 도움말 표시 아이템을 제2 GUI 아이템에 대한 도움말 표시 아이템과 중복시킨다는 것을 식별하는 명령어 집합; 및
    상기 중복을 피하기 위해 상기 제2 GUI 아이템에 대한 상기 도움말 표시 아이템을 자동으로 수정하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  113. 제112항에 있어서, 상기 제2 GUI 아이템에 대한 상기 도움말 표시 아이템을 자동으로 수정하는 명령어 집합은 상기 도움말 표시 아이템의 일부분을 새로운 위치로 이동시키는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  114. 제110항에 있어서, 상기 영상 보기 응용 프로그램은 터치스크린 디바이스의 적어도 하나의 처리 유닛에서 실행하기 위한 것이고, 상기 GUI는 터치스크린 상에 디스플레이되는 것인 기계 판독가능 매체.
  115. 제114항에 있어서, 상기 특정의 GUI 아이템을 이동시키는 입력은 터치 앤 드래그 입력(touch and drag input)을 포함하는 것인 기계 판독가능 매체.
  116. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    상기 응용 프로그램의 그래픽 사용자 인터페이스(GUI)에서 도움말 활성화 아이템의 선택을 수신한 것에 응답하여, 제1 세트의 선택가능 편집 도구 활성화 GUI 아이템들에 첨부되어 있는 제1 세트의 도움말 표시 아이템들 및 제2 세트의 선택가능 GUI 아이템들에 첨부되어 있는 제2 세트의 도움말 표시 아이템들을 디스플레이하는 명령어 집합;
    상기 제1 세트의 선택가능 GUI 아이템들 중 하나의 아이템의 선택을 수신하는 명령어 집합; 및
    상기 선택에 응답하여:
    상기 선택된 GUI 아이템과 연관되어 있는 한 세트의 편집 도구들을 디스플레이하는 명령어 집합;
    상기 제2 세트의 도움말 표시 아이템들을 표시하는 것을 유지하면서 상기 제1 세트의 도움말 표시 아이템들을 상기 한 세트의 편집 도구들에 첨부되어 있는 제3 세트의 도움말 표시 아이템들로 대체하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  117. 제116항에 있어서, 상기 한 세트의 선택가능 편집 활성화 도구 GUI 아이템들은 크로핑(crop) 도구 활성화 아이템, 노출 조절(exposure adjustment) 도구 활성화 아이템, 색상 조절(color adjustment) 도구 활성화 아이템, 브러쉬(brushes) 활성화 아이템, 및 특수 효과(special effects) 활성화 아이템을 포함하는 것인 기계 판독가능 매체.
  118. 제116항에 있어서, 상기 제2 세트의 선택가능 GUI 아이템들은 영상에 대해 행해진 편집을 제거하는 실행취소(undo) 아이템 및 상기 영상의 원본 버전과 상기 영상의 편집된 버전 사이에서 영상을 디스플레이하는 것을 토글하는 원본 보여주기(show original) 아이템을 포함하는 것인 기계 판독가능 매체.
  119. 제116항에 있어서, 복수의 도움말 표시 아이템들은 그 각자의 선택가능 GUI 아이템들에 첨부되어 있는 텍스트 풍선들(text bubbles)을 포함하는 것인 기계 판독가능 매체.
  120. 영상 보기 응용 프로그램에 대한 상황-의존적 도움말 기능(context-sensitive help feature)을 디스플레이하는 방법으로서,
    상기 영상 보기 응용 프로그램의 그래픽 사용자 인터페이스(GUI)에서 도움말 활성화 아이템의 선택을 수신하는 단계;
    제1 세트의 선택가능 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 단계;
    상기 제1 세트의 선택가능 GUI 아이템들 중 하나의 아이템의 선택을 수신하는 단계; 및
    상기 선택을 수신한 것에 응답하여:
    (i) 제2 세트의 GUI 아이템들 및 (ii) 상기 제2 세트의 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 단계; 및
    상기 제1 세트의 선택가능 GUI 아이템들을 디스플레이하는 것을 유지하면서 상기 제1 세트의 선택가능 GUI 아이템들로부터 상기 도움말 표시자들을 제거하는 단계
    를 포함하는 방법.
  121. 제120항에 있어서, 상기 제1 세트의 선택가능 GUI 아이템들 중 하나가 선택되었는지에 관계없이, 제3 세트의 선택가능 GUI 아이템들에 대한 도움말 표시자들을 디스플레이하는 단계를 추가로 포함하는 방법.
  122. 제120항에 있어서, 상기 도움말 활성화 아이템의 제2 선택을 수신하는 단계; 및
    상기 제2 선택에 응답하여, 모든 도움말 표시자들을 상기 디스플레이로부터 제거하는 단계를 추가로 포함하는 방법.
  123. 특정의 디바이스 상에서 동작하는 응용 프로그램에 대한 그래픽 사용자 인터페이스(GUI)를 정의하는 방법으로서,
    도움말 표시 GUI 아이템들에 액세스하는 선택가능 GUI 아이템을 정의하는 단계;
    상기 선택가능 GUI 아이템이 정적이고 상기 GUI 내의 다른 선택가능 아이템들과 동일한 방식으로 디스플레이되는 상기 선택가능 GUI 아이템에 대한 제1 상태를 정의하는 단계; 및
    상기 선택가능 GUI 아이템이 상기 GUI 내의 상기 다른 선택가능 아이템들과 상이한 눈에 잘 띄는 방식으로 디스플레이되는 상기 선택가능 GUI 아이템에 대한 상이한 제2 상태를 정의하는 단계
    를 포함하고,
    상기 선택가능 GUI 아이템은 (i) 상기 선택가능 GUI 아이템이 상기 특정의 디바이스 상에서 동작하는 상기 응용 프로그램 내에서 결코 선택되지 않았을 때의 상기 제2 상태에서 및 (ii) 상기 선택가능 GUI 아이템이 상기 특정의 디바이스 상에서 1회 이상 선택된 후의 상기 제1 상태에서 디스플레이하기 위한 것인 방법.
  124. 제123항에 있어서, 상기 제2 상태는 상기 선택가능 GUI 아이템이 상기 GUI 내에서 진동하는 것을 포함하는 것인 방법.
  125. 제124항에 있어서, 상기 진동하는 GUI 아이템은 크기가 급속히 증가되고 감소되는 것인 방법.
  126. 제123항에 있어서, 상기 선택가능 GUI 아이템은 물음표 아이콘을 포함하는 것인 방법.
  127. 제123항에 있어서, 상기 제2 상태는 상기 선택가능 GUI 아이템이 상기 GUI 내에서 깜박거리는 것을 포함하는 것인 방법.
  128. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 편집 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 편집 응용 프로그램은
    영상을 원격 영상 호스팅 웹 사이트로 업로드하는 명령어 집합;
    상기 영상 호스팅 웹 사이트로부터, 상기 원격 영상 호스팅 웹 사이트 상의 영상을 식별해주는 데이터를 수신하는 명령어 집합;
    상기 원격 영상 호스팅 웹 사이트의 사용자가 상기 영상에 대해 댓글을 달았는지를 식별하기 위해 상기 수신된 데이터를 사용하는 명령어 집합; 및
    상기 원격 영상 호스팅 웹 사이트로부터의 상기 사용자 댓글들(user comments)을 상기 영상 편집 응용 프로그램에 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  129. 제128항에 있어서, 상기 수신된 데이터를 사용하는 명령어 집합은
    상기 수신된 데이터를 댓글 스트림(comment stream)에 대한 요청으로서 상기 원격 영상 호스팅 웹 사이트로 송신하는 명령어 집합;
    상기 댓글 스트림을 수신하는 명령어 집합; 및
    상기 댓글 스트림에서의 임의의 댓글들이 새로운 댓글들인지를 판정하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  130. 제129항에 있어서, 상기 댓글 스트림은 상기 댓글 스트림 내의 각각의 댓글에 대한 타임스탬프를 포함하고, 상기 댓글 스트림에서의 임의의 댓글들이 새로운 댓글들인지를 판정하는 명령어 집합은 가장 최근의 댓글의 타임스탬프를 상기 응용 프로그램이 상기 영상에 대한 댓글들에 마지막으로 액세스한 때의 타임스탬프와 비교하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  131. 제128항에 있어서, 상기 영상 편집 응용 프로그램은 새로운 댓글들이 이용가능하다는 통지를 디스플레이하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  132. 제131항에 있어서, 상기 통지는 상기 응용 프로그램이 상기 영상에 대한 댓글들에 마지막으로 액세스한 때 이후의 새로운 댓글들의 수를 나타내는 숫자로서 디스플레이되는 것인 기계 판독가능 매체.
  133. 제131항에 있어서, 상기 통지는 상기 영상 편집 응용 프로그램 내의 댓글들을 보기 위한 선택가능 아이템 상에 디스플레이되는 것인 기계 판독가능 매체.
  134. 제128항에 있어서, 상기 영상을 업로드하는 명령어 집합은 상기 영상에 대한 캡션을 상기 영상 호스팅 웹 사이트로 업로드하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  135. 제134항에 있어서, 상기 영상 편집 응용 프로그램은 상기 캡션을 사용자 입력으로서 수신하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  136. 제135항에 있어서, 상기 사용자 입력은 터치스크린 키보드를 통한 터치스크린 입력을 포함하는 것인 기계 판독가능 매체.
  137. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    상기 영상 보기 응용 프로그램에서 영상 호스팅 웹 사이트로 업로드된 영상을 디스플레이할 때, 상기 영상 보기 응용 프로그램을 통해 댓글들에 마지막으로 액세스한 때 이후로 상기 영상 호스팅 웹 사이트의 임의의 사용자들이 상기 영상에 댓글을 달았는지를 판정하는 명령어 집합; 및
    상기 영상 보기 응용 프로그램을 통해 댓글들에 마지막으로 액세스한 때 이후로 적어도 한명의 사용자가 상기 영상에 댓글을 달았을 때, 새로운 댓글들을 볼 수 있다는 것을 알려주기 위해 통지 아이템을 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  138. 제137항에 있어서, 상기 영상 호스팅 웹 사이트의 임의의 사용자들이 상기 영상에 댓글을 달았는지를 판정하는 명령어 집합은
    상기 영상이 상기 영상 보기 응용 프로그램의 그래픽 사용자 인터페이스(GUI)에 임계량의 시간 이상 동안 디스플레이되었다는 것을 식별하는 명령어 집합; 및
    상기 영상이 상기 임계량의 시간 이상 동안 디스플레이된 후에 댓글 스트림에 대한 요청을 상기 영상 호스팅 웹 사이트로 송신하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  139. 제138항에 있어서, 상기 요청은 상기 영상 호스팅 웹 사이트의 데이터베이스 내의 영상을 식별해주는 영상 식별자를 포함하는 것인 기계 판독가능 매체.
  140. 제138항에 있어서, 상기 영상 호스팅 웹 사이트의 임의의 사용자들이 상기 영상에 댓글을 달았는지를 판정하는 명령어 집합은
    상기 요청에 응답하여, 한 세트의 댓글들 및 대응하는 타임스탬프들을 포함하는 상기 영상에 대한 댓글 스트림을 수신하는 명령어 집합; 및
    마지막 타임스탬프를 상기 영상 보기 응용 프로그램의 사용자가 상기 영상 보기 응용 프로그램을 통해 상기 영상에 대한 댓글들을 이전에 마지막으로 액세스했던 때와 비교하는 명령어 집합을 추가로 포함하는 것인 기계 판독가능 매체.
  141. 제140항에 있어서, 상기 마지막 타임스탬프를 상기 마지막으로 액세스했던 때와 비교하는 명령어 집합은 상기 영상 보기 응용 프로그램의 사용자가 상기 영상 보기 응용 프로그램을 통해 상기 영상에 대한 댓글들을 이전에 마지막으로 액세스했던 때보다 나중의 댓글들의 수를 식별하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  142. 제141항에 있어서, 상기 통지 아이템은 상기 식별된 댓글들의 수를 디스플레이하는 것인 기계 판독가능 매체.
  143. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    상기 영상 보기 응용 프로그램에 의해 영상 호스팅 웹 사이트로 업로드된 영상에 대한 영상 식별자를 상기 영상 호스팅 웹 사이트로부터 수신하는 명령어 집합;
    상기 영상에 대한 댓글들의 스트림을 상기 영상 호스팅 웹 사이트로부터 다운로드하기 위해 자동으로 상기 영상 식별자를 사용하는 명령어 집합 - 상기 댓글 스트림은 대응하는 타임스탬프들을 갖는 한 세트의 댓글들을 포함함 -;
    상기 타임스탬프들을 상기 영상 보기 응용 프로그램의 사용자가 상기 영상에 대한 댓글들에 가장 최근에 액세스한 때와 비교하는 명령어 집합; 및
    적어도 하나의 타임스탬프가 상기 사용자가 상기 영상에 대한 댓글들에 가장 최근에 액세스한 때보다 더 최근일 때, 상기 영상 보기 응용 프로그램 내에서 검토할 새로운 댓글들이 이용가능하다는 표시를 상기 사용자에게 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  144. 제143항에 있어서, 상기 영상 보기 응용 프로그램이 상기 영상을 상기 영상 호스팅 웹 사이트로 업로드한 것에 응답하여, 상기 영상 식별자가 수신되는 것인 기계 판독가능 매체.
  145. 제143항에 있어서, 상기 영상 호스팅 웹 사이트는 소셜 미디어 사이트인 기계 판독가능 매체.
  146. 제143항에 있어서, 상기 영상이 상기 영상 보기 응용 프로그램에 의해 복수의 상이한 영상 호스팅 웹 사이트들로 업로드되는 것인 기계 판독가능 매체.
  147. 제146항에 있어서, 상기 영상 보기 응용 프로그램은,
    상기 영상이 업로드되는 각각의 영상 호스팅 웹 사이트로부터 영상 식별자를 수신하는 명령어 집합; 및
    각각의 영상 호스팅 웹 사이트로부터 상기 영상에 대한 댓글들의 스트림을 다운로드하기 위해 자동으로 상기 영상 식별자를 사용하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  148. 적어도 하나의 처리 유닛에서 실행하기 위한 영상 보기 응용 프로그램을 저장하는 기계 판독가능 매체로서,
    상기 영상 보기 응용 프로그램은
    상기 영상 보기 응용 프로그램이 영상에 대한 새로운 댓글들을 상기 영상이 호스팅되는 영상 호스팅 웹 사이트로부터 다운로드했다는 통지를 사용자에게 디스플레이하는 명령어 집합;
    상기 디스플레이된 통지의 선택을 수신하는 명령어 집합; 및
    (i) 상기 영상 호스팅 웹 사이트로부터 다운로드된 상기 영상에 대한 댓글들을 디스플레이하고 (ii) 상기 영상 호스팅 웹 사이트 상의 상기 영상에 대한 업로드할 새로운 댓글들에 대한 입력을 수신하는 댓글 디스플레이 구역을 디스플레이하는 명령어 집합을 포함하는 것인 기계 판독가능 매체.
  149. 제148항에 있어서, 상기 통지는 영상 정보에 액세스하기 위한 선택가능 아이템 상에 디스플레이되는 것인 기계 판독가능 매체.
  150. 제149항에 있어서, 영상 정보는 상기 영상을 포착한 디바이스로부터의 상기 영상에 대한 Exif 데이터를 포함하는 것인 기계 판독가능 매체.
  151. 제148항에 있어서, 상기 선택은 터치스크린 상에 디스플레이되는 선택가능 아이템의 터치 입력을 통해 수신되는 것인 기계 판독가능 매체.
KR1020137030570A 2012-03-06 2013-01-03 영상 보기 응용 프로그램 KR101737166B1 (ko)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201261607550P 2012-03-06 2012-03-06
US61/607,550 2012-03-06
US13/629,343 2012-09-27
US13/629,361 2012-09-27
US13/629,337 2012-09-27
US13/629,361 US20130239031A1 (en) 2012-03-06 2012-09-27 Application for viewing images
US13/629,324 2012-09-27
US13/629,305 2012-09-27
US13/629,347 US20130239063A1 (en) 2012-03-06 2012-09-27 Selection of multiple images
US13/629,337 US20130239062A1 (en) 2012-03-06 2012-09-27 Operations affecting multiple images
US13/629,343 US8963962B2 (en) 2012-03-06 2012-09-27 Display of multiple images
US13/629,305 US9591181B2 (en) 2012-03-06 2012-09-27 Sharing images from image viewing and editing application
US13/629,347 2012-09-27
US13/629,324 US9363220B2 (en) 2012-03-06 2012-09-27 Context-sensitive help for image viewing and editing application
PCT/US2013/020055 WO2013133901A2 (en) 2012-03-06 2013-01-03 Application for viewing images

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020137030719A Division KR101776147B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램
KR1020137030713A Division KR101580478B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램

Publications (2)

Publication Number Publication Date
KR20130140896A true KR20130140896A (ko) 2013-12-24
KR101737166B1 KR101737166B1 (ko) 2017-05-17

Family

ID=49115070

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020137030713A KR101580478B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램
KR1020137030719A KR101776147B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램
KR1020137030570A KR101737166B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020137030713A KR101580478B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램
KR1020137030719A KR101776147B1 (ko) 2012-03-06 2013-01-03 영상 보기 응용 프로그램

Country Status (6)

Country Link
US (7) US20130239031A1 (ko)
EP (5) EP2681652A1 (ko)
JP (5) JP2014522527A (ko)
KR (3) KR101580478B1 (ko)
CN (4) CN107168614B (ko)
WO (1) WO2013133901A2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170118548A (ko) * 2016-04-15 2017-10-25 신상현 단말기
KR20180020381A (ko) * 2016-08-18 2018-02-28 삼성전자주식회사 전자 장치 및 전자 장치 제어 방법
US10585569B2 (en) 2014-09-15 2020-03-10 Samsung Electronics Co., Ltd. Method for displaying object on device and device therefor
JP2022013169A (ja) * 2020-07-03 2022-01-18 株式会社Shift 作成支援装置およびプログラム
KR20220025618A (ko) * 2020-08-24 2022-03-03 주식회사 듀코젠 사용자 행동 기반의 실감 학습 콘텐츠 제공 방법

Families Citing this family (348)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442619B2 (en) * 2005-06-02 2022-09-13 Eli I Zeevi Integrated document editor
US8639028B2 (en) * 2006-03-30 2014-01-28 Adobe Systems Incorporated Automatic stacking based on time proximity and visual similarity
US9401937B1 (en) 2008-11-24 2016-07-26 Shindig, Inc. Systems and methods for facilitating communications amongst multiple users
US8405702B1 (en) 2008-11-24 2013-03-26 Shindig, Inc. Multiparty communications systems and methods that utilize multiple modes of communication
US9344745B2 (en) 2009-04-01 2016-05-17 Shindig, Inc. Group portraits composed using video chat systems
US8779265B1 (en) 2009-04-24 2014-07-15 Shindig, Inc. Networks of portable electronic devices that collectively generate sound
JP5797042B2 (ja) * 2011-07-23 2015-10-21 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
US20130083151A1 (en) 2011-09-30 2013-04-04 Lg Electronics Inc. Electronic device and method for controlling electronic device
USD731507S1 (en) * 2011-11-17 2015-06-09 Axell Corporation Display screen with animated graphical user interface
USD731504S1 (en) * 2011-11-17 2015-06-09 Axell Corporation Display screen with graphical user interface
KR101822458B1 (ko) * 2011-11-22 2018-01-30 삼성전자주식회사 썸네일 이미지 제공 방법 및 이를 적용한 영상 촬영 장치
US9645733B2 (en) 2011-12-06 2017-05-09 Google Inc. Mechanism for switching between document viewing windows
KR101851241B1 (ko) * 2011-12-06 2018-04-24 삼성전자 주식회사 휴대 단말기의 컨텐츠 통합 관리 방법 및 장치
US9041727B2 (en) 2012-03-06 2015-05-26 Apple Inc. User interface tools for selectively applying effects to image
US9131192B2 (en) 2012-03-06 2015-09-08 Apple Inc. Unified slider control for modifying multiple image properties
US20130239031A1 (en) 2012-03-06 2013-09-12 Apple Inc. Application for viewing images
US20130238747A1 (en) 2012-03-06 2013-09-12 Apple Inc. Image beaming for a media editing application
USD708638S1 (en) * 2012-03-07 2014-07-08 Apple Inc. Display screen or portion thereof with graphical user interface
US10255227B2 (en) * 2012-05-21 2019-04-09 Oath Inc. Computerized system and method for authoring, editing, and delivering an interactive social media video
EP2867758A1 (en) * 2012-06-27 2015-05-06 OCE-Technologies B.V. User interaction system for displaying digital objects
TWI486794B (zh) * 2012-07-27 2015-06-01 Wistron Corp 影片預覽方法及系統及其電腦程式產品
JP6293992B2 (ja) * 2012-08-01 2018-03-14 ソニー株式会社 表示制御装置、表示制御方法およびプログラム
US20140053067A1 (en) * 2012-08-17 2014-02-20 Kenneth C. Tkatchuk Method and Apparatus for Sequentially Displaying a Plurality of Images Including Selective Asynchronous Matching of a Subset of the Images
US9836548B2 (en) * 2012-08-31 2017-12-05 Blackberry Limited Migration of tags across entities in management of personal electronically encoded items
US9696879B2 (en) 2012-09-07 2017-07-04 Google Inc. Tab scrubbing using navigation gestures
US20140093174A1 (en) * 2012-09-28 2014-04-03 Canon Kabushiki Kaisha Systems and methods for image management
US9514536B2 (en) * 2012-10-10 2016-12-06 Broadbandtv, Corp. Intelligent video thumbnail selection and generation
US8977961B2 (en) * 2012-10-16 2015-03-10 Cellco Partnership Gesture based context-sensitive functionality
US9547668B2 (en) * 2012-10-29 2017-01-17 Dropbox, Inc. Event-based content item view
USD752099S1 (en) * 2012-10-31 2016-03-22 Lg Electronics Inc. Television screen with graphic user interface
US9832622B2 (en) * 2012-11-06 2017-11-28 Facebook, Inc. Systems and methods for device-dependent image transformations
EP2917820B1 (en) * 2012-11-06 2020-07-01 Nokia Technologies Oy Method and apparatus for creating motion effect for image
US8893005B2 (en) * 2012-11-07 2014-11-18 Siemens Enterprise Communications Gmbh & Co. Kg Method, device, and system for providing indicia on a display
US9008466B2 (en) * 2012-11-09 2015-04-14 Google Inc. Sharing or applying digital image editing operations
WO2014080531A1 (ja) * 2012-11-26 2014-05-30 三菱電機株式会社 ラダープログラム表示装置およびラダープログラム表示方法
US20140164907A1 (en) * 2012-12-12 2014-06-12 Lg Electronics Inc. Mobile terminal and method of controlling the mobile terminal
US9367199B2 (en) * 2012-12-13 2016-06-14 Sap Se Dynamical and smart positioning of help overlay graphics in a formation of user interface elements
CN103888408B (zh) * 2012-12-19 2016-03-09 腾讯科技(深圳)有限公司 将数据上传到社交平台的方法及装置
KR20140080146A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 컨텐츠 사용 이력을 디스플레이하는 방법 및 그 전자 장치
KR20140083229A (ko) * 2012-12-26 2014-07-04 삼성전자주식회사 디스플레이 장치 및 이의 메뉴 제공 방법
US11003351B2 (en) * 2012-12-26 2021-05-11 Gree, Inc. Display processing method and information device
KR102131646B1 (ko) * 2013-01-03 2020-07-08 삼성전자주식회사 디스플레이장치 및 그 제어방법
USD735744S1 (en) * 2013-01-04 2015-08-04 Samsung Electronics Co., Ltd. Portable electronic device with animated graphical user interface
TWD166319S (zh) * 2013-01-04 2015-03-01 三星電子股份有限公司 顯示螢幕之動畫圖形化使用者介面
US20140196117A1 (en) * 2013-01-07 2014-07-10 Curtis John Schwebke Recovery or upgrade of a cloud client device
US9160915B1 (en) * 2013-01-09 2015-10-13 Amazon Technologies, Inc. Modifying device functionality based on device orientation
AU349475S (en) * 2013-01-18 2013-06-27 Samsung Electronics Co Ltd Electric oven with image display
CN103970395A (zh) * 2013-01-30 2014-08-06 腾讯科技(深圳)有限公司 关闭后台程序的方法和装置
KR102046467B1 (ko) * 2013-01-31 2019-11-18 엘지전자 주식회사 이동 단말기 및 그 동작방법
KR102013338B1 (ko) * 2013-02-04 2019-08-22 삼성전자 주식회사 서비스 페이지 공유 방법과 시스템 및 이를 지원하는 단말기
US9916072B2 (en) 2013-02-20 2018-03-13 Lg Electronics Inc. Application and notification window display management in a mobile terminal
USD745025S1 (en) * 2013-02-22 2015-12-08 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
JP2014165710A (ja) * 2013-02-26 2014-09-08 Ricoh Imaging Co Ltd 画像表示装置
US9292202B2 (en) * 2013-02-28 2016-03-22 Sony Corporation Client device, operating method, and recording medium
US20140258886A1 (en) * 2013-03-07 2014-09-11 Smugmug, Inc. Method for transferring a file from a device
JP6195340B2 (ja) * 2013-03-08 2017-09-13 キヤノン株式会社 コンテンツ管理システム、サーバ装置、制御方法及びプログラム
CN104049855B (zh) * 2013-03-12 2018-06-15 富泰华工业(深圳)有限公司 图像查看系统及方法
US9916295B1 (en) * 2013-03-15 2018-03-13 Richard Henry Dana Crawford Synchronous context alignments
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
US9886173B2 (en) 2013-03-15 2018-02-06 Ambient Consulting, LLC Content presentation and augmentation system and method
US9460057B2 (en) * 2013-03-15 2016-10-04 Filmstrip, Inc. Theme-based media content generation system and method
US9626365B2 (en) 2013-03-15 2017-04-18 Ambient Consulting, LLC Content clustering system and method
US10365797B2 (en) 2013-03-15 2019-07-30 Ambient Consulting, LLC Group membership content presentation and augmentation system and method
US9785240B2 (en) * 2013-03-18 2017-10-10 Fuji Xerox Co., Ltd. Systems and methods for content-aware selection
CN104063155B (zh) * 2013-03-20 2017-12-19 腾讯科技(深圳)有限公司 内容分享方法、装置及电子设备
JP2014211720A (ja) * 2013-04-17 2014-11-13 富士通株式会社 表示装置および表示制御プログラム
JP6132644B2 (ja) * 2013-04-24 2017-05-24 キヤノン株式会社 情報処理装置、表示制御方法、コンピュータプログラム、及び記憶媒体
WO2014178235A1 (ja) * 2013-04-30 2014-11-06 ソニー株式会社 画像処理装置、画像処理方法、プログラム
JP6292227B2 (ja) * 2013-04-30 2018-03-14 ソニー株式会社 画像処理装置、画像処理方法、プログラム
US10408552B2 (en) 2013-05-09 2019-09-10 Terydon, Inc. Indexer, indexer retrofit kit and method of use thereof
US11360494B2 (en) 2013-05-09 2022-06-14 Terydon, Inc. Method of cleaning heat exchangers or tube bundles using a cleaning station
US11327511B2 (en) 2013-05-09 2022-05-10 Terydon, Inc. Indexer, indexer retrofit kit and method of use thereof
US10890390B2 (en) 2013-05-09 2021-01-12 Terydon, Inc. Indexer, indexer retrofit kit and method of use thereof
US10401878B2 (en) 2013-05-09 2019-09-03 Terydon, Inc. Indexer, indexer retrofit kit and method of use thereof
US11294399B2 (en) 2013-05-09 2022-04-05 Terydon, Inc. Rotary tool with smart indexing
US10040169B2 (en) * 2013-05-09 2018-08-07 Terydon, Inc. System and method for wireless control using a deadman switch
KR102169521B1 (ko) * 2013-05-14 2020-10-23 삼성전자 주식회사 입력장치, 디스플레이장치 및 그 제어방법
US9495075B2 (en) 2013-05-17 2016-11-15 Microsoft Technology Licensing, Llc Presenting action menus in viewing panes
USD753162S1 (en) * 2013-05-22 2016-04-05 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
JP2014229178A (ja) * 2013-05-24 2014-12-08 株式会社東芝 電子機器および表示制御方法、プログラム
US10691291B2 (en) * 2013-05-24 2020-06-23 Samsung Electronics Co., Ltd. Method and apparatus for displaying picture on portable device
USD737319S1 (en) * 2013-06-09 2015-08-25 Apple Inc. Display screen or portion thereof with graphical user interface
USD736239S1 (en) * 2013-06-12 2015-08-11 Tye Maner & Associates, Inc. Display screen with animated graphical user interface for business performance enhancement application
USD737849S1 (en) * 2013-06-21 2015-09-01 Microsoft Corporation Display screen with icon group and display screen with icon set
USD744522S1 (en) * 2013-06-25 2015-12-01 Microsoft Corporation Display screen with graphical user interface
USD744519S1 (en) * 2013-06-25 2015-12-01 Microsoft Corporation Display screen with graphical user interface
USD751100S1 (en) * 2013-08-27 2016-03-08 Axis Ab Display screen or portion thereof with graphical user interface
KR20150025293A (ko) * 2013-08-28 2015-03-10 삼성전자주식회사 화면 구성 방법 및 그 전자 장치
US11068128B2 (en) 2013-09-03 2021-07-20 Apple Inc. User interface object manipulations in a user interface
USD736812S1 (en) * 2013-09-03 2015-08-18 Microsoft Corporation Display screen with graphical user interface
USD788795S1 (en) * 2013-09-03 2017-06-06 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
US10503388B2 (en) 2013-09-03 2019-12-10 Apple Inc. Crown input for a wearable electronic device
CN110262711B (zh) 2013-09-03 2023-03-03 苹果公司 用户界面中的用户界面对象操作
KR102165818B1 (ko) * 2013-09-10 2020-10-14 삼성전자주식회사 입력 영상을 이용한 사용자 인터페이스 제어 방법, 장치 및 기록매체
US9594470B2 (en) * 2013-09-12 2017-03-14 Blackberry Limited Methods and software for facilitating the selection of multiple items at an electronic device
US20160227285A1 (en) * 2013-09-16 2016-08-04 Thomson Licensing Browsing videos by searching multiple user comments and overlaying those into the content
CN103530052B (zh) * 2013-09-27 2017-09-29 华为技术有限公司 一种界面内容的显示方法和用户设备
US20150109408A1 (en) * 2013-10-21 2015-04-23 Stmicroelectronics International N.V. System and method for capturing and rendering a landscape image or video
KR20150045820A (ko) * 2013-10-21 2015-04-29 삼성전자주식회사 썸네일 이미지를 이용하여 이미지 파일을 관리하는 장치 및 방법
US9250780B2 (en) * 2013-10-28 2016-02-02 Lenovo (Beijing) Co., Ltd. Information processing method and electronic device
TWI595448B (zh) * 2013-10-29 2017-08-11 佳能企業股份有限公司 影像處理方法、電子裝置、電子裝置可讀取的儲存媒體與應用於電子裝置的程式
US10271010B2 (en) 2013-10-31 2019-04-23 Shindig, Inc. Systems and methods for controlling the display of content
CN104601922B (zh) * 2013-11-01 2018-04-17 佳能企业股份有限公司 影像处理方法、电子装置、电子装置可读取的储存媒体与应用于电子装置的程序
CN104679394A (zh) * 2013-11-26 2015-06-03 中兴通讯股份有限公司 一种预览界面选定区域放大的方法和装置
US20150215271A1 (en) * 2013-12-04 2015-07-30 Go Daddy Operating Company, LLC Generating suggested domain names by locking slds, tokens and tlds
US20150160808A1 (en) * 2013-12-06 2015-06-11 Facebook, Inc. Zoom Interactions in a User Interface
RU2663338C1 (ru) * 2013-12-20 2018-08-03 Хуавэй Текнолоджиз Ко., Лтд. Способ для открывания файла в папке и терминал
US10120528B2 (en) 2013-12-24 2018-11-06 Dropbox, Inc. Systems and methods for forming share bars including collections of content items
US9811245B2 (en) 2013-12-24 2017-11-07 Dropbox, Inc. Systems and methods for displaying an image capturing mode and a content viewing mode
KR20150085354A (ko) * 2014-01-15 2015-07-23 삼성전자주식회사 데이터 처리 방법 및 그 장치
JP2015158900A (ja) * 2014-01-27 2015-09-03 株式会社リコー 情報処理装置、情報処理方法および情報処理プログラム
USD764503S1 (en) * 2014-02-10 2016-08-23 Vision Dealer Services, LLC Display screen or portion thereof with a graphical user interface
USD757776S1 (en) * 2014-02-27 2016-05-31 Robert Bosch Gmbh Display screen with a graphical user interface
JP6278262B2 (ja) * 2014-03-12 2018-02-14 ヤマハ株式会社 表示制御装置
US20150268825A1 (en) * 2014-03-18 2015-09-24 Here Global B.V. Rendering of a media item
US10055088B1 (en) * 2014-03-20 2018-08-21 Amazon Technologies, Inc. User interface with media content prediction
WO2015147709A1 (en) * 2014-03-26 2015-10-01 Telefonaktiebolaget L M Ericsson (Publ) Selecting an adjacent file on a display of an electronic device
US10891022B2 (en) * 2014-03-31 2021-01-12 Netgear, Inc. System and method for interfacing with a display device
US20150286349A1 (en) * 2014-04-02 2015-10-08 Microsoft Corporation Transient user interface elements
US9537934B2 (en) * 2014-04-03 2017-01-03 Facebook, Inc. Systems and methods for interactive media content exchange
JP2015200975A (ja) * 2014-04-04 2015-11-12 キヤノン株式会社 情報処理装置、コンピュータプログラムおよび記録媒体
USD822036S1 (en) * 2014-04-16 2018-07-03 Regents Of The University Of Minnesota Display screen or portion thereof with graphical user interface
US20150304376A1 (en) * 2014-04-17 2015-10-22 Shindig, Inc. Systems and methods for providing a composite audience view
CN105100862B (zh) * 2014-04-18 2018-04-24 阿里巴巴集团控股有限公司 网格移动的显示处理方法及其系统
TWI566167B (zh) * 2014-04-24 2017-01-11 宏碁股份有限公司 電子裝置以及使用者介面顯示方法
US10845982B2 (en) 2014-04-28 2020-11-24 Facebook, Inc. Providing intelligent transcriptions of sound messages in a messaging application
CN104253740B (zh) * 2014-04-30 2016-01-13 腾讯科技(深圳)有限公司 图片签到方法、装置及系统
US9733333B2 (en) 2014-05-08 2017-08-15 Shindig, Inc. Systems and methods for monitoring participant attentiveness within events and group assortments
US9971489B2 (en) 2014-05-15 2018-05-15 Dreamworks Animation L.L.C. Computer-based training using a graphical user interface
CN103984499A (zh) * 2014-05-19 2014-08-13 联想(北京)有限公司 一种动作指令控制方法及电子设备
KR102302233B1 (ko) * 2014-05-26 2021-09-14 삼성전자주식회사 사용자 인터페이스 제공 장치 및 방법
US20150348325A1 (en) * 2014-05-27 2015-12-03 Thomson Licensing Method and system for stabilization and reframing
CN105409230A (zh) * 2014-05-27 2016-03-16 华为技术有限公司 媒体文件处理方法及装置
US10313506B2 (en) 2014-05-30 2019-06-04 Apple Inc. Wellness aggregator
US9990126B2 (en) 2014-05-30 2018-06-05 Visa International Service Association Method for providing a graphical user interface for an electronic transaction with a handheld touch screen device
US20150348496A1 (en) * 2014-05-30 2015-12-03 Pixtronix, Inc. Systems and methods for selecting display operation modes
US20150355780A1 (en) * 2014-06-06 2015-12-10 Htc Corporation Methods and systems for intuitively refocusing images
JP6125467B2 (ja) * 2014-06-16 2017-05-10 富士フイルム株式会社 プリント注文受付機とその作動方法および作動プログラム
KR102225943B1 (ko) * 2014-06-19 2021-03-10 엘지전자 주식회사 이동단말기 및 그 제어방법
EP3161581A1 (en) 2014-06-27 2017-05-03 Apple Inc. Electronic device with rotatable input mechanism for navigating calendar application
WO2016000079A1 (en) * 2014-07-02 2016-01-07 BicDroid Inc. Display, visualization, and management of images based on content analytics
US20160026358A1 (en) * 2014-07-28 2016-01-28 Lenovo (Singapore) Pte, Ltd. Gesture-based window management
WO2016022204A1 (en) 2014-08-02 2016-02-11 Apple Inc. Context-specific user interfaces
CN105447006B (zh) 2014-08-08 2019-08-16 阿里巴巴集团控股有限公司 一种图片选择方法及其装置
US9478042B1 (en) 2014-08-12 2016-10-25 Google Inc. Determining visibility of rendered content
KR20160020738A (ko) * 2014-08-14 2016-02-24 삼성전자주식회사 전자 장치 및 전자 장치의 사용자 인터페이스 제공 방법
US10452253B2 (en) 2014-08-15 2019-10-22 Apple Inc. Weather user interface
US20160062966A1 (en) * 2014-08-26 2016-03-03 Microsoft Corporation Full screen pop-out of objects in editable form
JP2016048445A (ja) * 2014-08-27 2016-04-07 シャープ株式会社 電子機器
US9851812B2 (en) 2014-08-28 2017-12-26 Facebook, Inc. Systems and methods for providing functionality based on device orientation
US10235014B2 (en) 2014-09-02 2019-03-19 Apple Inc. Music user interface
US10073590B2 (en) 2014-09-02 2018-09-11 Apple Inc. Reduced size user interface
WO2016036414A1 (en) 2014-09-02 2016-03-10 Apple Inc. Button functionality
TWI676127B (zh) 2014-09-02 2019-11-01 美商蘋果公司 關於電子郵件使用者介面之方法、系統、電子器件及電腦可讀儲存媒體
KR102230267B1 (ko) * 2014-09-04 2021-03-19 삼성전자주식회사 영상 표시 장치 및 방법
US10304163B2 (en) * 2014-09-08 2019-05-28 Apple Inc. Landscape springboard
USD797801S1 (en) * 2014-09-11 2017-09-19 Tomtom International B.V. Display panel of an electronic golf device with a computer generated icon
USD800771S1 (en) * 2014-09-11 2017-10-24 Tomtom International B.V. Display panel of an electronic golf device with a changeable computer generated icon
USD835154S1 (en) * 2014-09-11 2018-12-04 Tomtom International B.V. Display panel of an electronic golf device with a computer generated icon
USD789420S1 (en) * 2014-09-11 2017-06-13 Tomtom International B.V. Display panel of an electronic golf device with a computer generated icon
KR102178892B1 (ko) * 2014-09-15 2020-11-13 삼성전자주식회사 정보 제공 방법 및 그 전자 장치
US10958778B1 (en) * 2014-09-17 2021-03-23 Peggy S. Miller Contact system for a computing platform
USD761283S1 (en) * 2014-09-30 2016-07-12 Microsoft Corporation Display screen with graphical user interface
US10353995B2 (en) * 2014-10-21 2019-07-16 International Business Machines Corporation Improving understanding of the relationship between the comments being made to the containers and the comments being made to the elements of the containers
USD771703S1 (en) 2014-12-30 2016-11-15 Sony Corporation Portion of display panel or screen with icon
JP6440143B2 (ja) * 2015-01-19 2018-12-19 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
CN107209655B (zh) 2015-02-02 2020-08-11 苹果公司 建立两个设备之间的关系和连接
EP3253701B1 (en) * 2015-02-04 2021-03-31 KONE Corporation Elevator operating panel comprising touch screen
USD763886S1 (en) * 2015-02-06 2016-08-16 Life Technologies Corporation Display screen with graphical user interface
CN104657206B (zh) 2015-02-09 2018-09-28 青岛海信移动通信技术股份有限公司 一种图像数据的处理方法和装置
CN104657934B (zh) 2015-02-09 2018-08-10 青岛海信移动通信技术股份有限公司 一种图像数据的处理方法和装置
USD757081S1 (en) * 2015-02-10 2016-05-24 Smartorg, Inc. Display screen with animated graphical user interface for financial overview
USD766307S1 (en) * 2015-02-13 2016-09-13 Data Laboratories Limited Display screen with human capital browser graphical user interface
WO2016127438A1 (zh) * 2015-02-15 2016-08-18 华为技术有限公司 信息分享方法及装置
US10365807B2 (en) 2015-03-02 2019-07-30 Apple Inc. Control of system zoom magnification using a rotatable input mechanism
KR101620050B1 (ko) * 2015-03-03 2016-05-12 주식회사 카카오 인스턴트 메시지 서비스를 통한 시나리오 이모티콘 표시 방법 및 이를 위한 사용자 단말
JP6507719B2 (ja) * 2015-03-03 2019-05-08 住友電気工業株式会社 画面情報処理装置、画面情報処理方法および画面情報処理プログラム
WO2016144385A1 (en) 2015-03-08 2016-09-15 Apple Inc. Sharing user-configurable graphical constructs
AU2016229407A1 (en) * 2015-03-08 2017-09-21 Apple Inc. User interface using a rotatable input mechanism
CN106155453B (zh) * 2015-03-24 2020-03-27 阿里巴巴集团控股有限公司 一种目标对象的属性调整方法及装置
US10887384B2 (en) * 2015-03-25 2021-01-05 Accenture Global Services Limited Digital collaboration system
US10088993B2 (en) * 2015-04-01 2018-10-02 Ebay Inc. User interface for controlling data navigation
BR112017020225B1 (pt) * 2015-04-13 2023-02-23 Huawei Technologies Co., Ltd Método e aparelho para exibir uma interface de gerenciamento de tarefas
US10474310B2 (en) * 2015-04-27 2019-11-12 Adobe Inc. Non-modal toolbar control
US11209972B2 (en) * 2015-09-02 2021-12-28 D&M Holdings, Inc. Combined tablet screen drag-and-drop interface
US11113022B2 (en) 2015-05-12 2021-09-07 D&M Holdings, Inc. Method, system and interface for controlling a subwoofer in a networked audio system
US10275436B2 (en) * 2015-06-01 2019-04-30 Apple Inc. Zoom enhancements to facilitate the use of touch screen devices
US10275116B2 (en) 2015-06-07 2019-04-30 Apple Inc. Browser with docked tabs
US10082931B2 (en) 2015-06-12 2018-09-25 Microsoft Technology Licensing, Llc Transitioning command user interface between toolbar user interface and full menu user interface based on use context
CN104978141A (zh) * 2015-06-17 2015-10-14 小米科技有限责任公司 图片管理方法、装置及终端
CN106325786A (zh) * 2015-06-17 2017-01-11 阿里巴巴集团控股有限公司 颜色选择方法与设备
USD788809S1 (en) * 2015-06-22 2017-06-06 Gamblit Gaming, Llc Display screen for a graphical user interface
KR101670432B1 (ko) * 2015-06-24 2016-11-09 주식회사 아이온커뮤니케이션즈 시각화를 기반으로 하는 전자 문서 관리 시스템
KR20170001329A (ko) * 2015-06-26 2017-01-04 엘지전자 주식회사 이동단말기 및 그 제어방법
KR20170013555A (ko) * 2015-07-28 2017-02-07 엘지전자 주식회사 이동단말기 및 그 제어방법
EP3337583B1 (en) 2015-08-20 2024-01-17 Apple Inc. Exercise-based watch face
USD793451S1 (en) * 2015-08-20 2017-08-01 S-Printing Solution Co., Ltd. Display screen or portion thereof with graphical user interface
US10582252B2 (en) * 2015-08-28 2020-03-03 Sharp Kabushiki Kaisha Display device, television receiver, program, and recording medium
CN105204850B (zh) * 2015-08-31 2019-05-17 深圳市金立通信设备有限公司 一种图片处理方法及终端
US20170078240A1 (en) * 2015-09-16 2017-03-16 Whatsapp Inc. Techniques to select and configure media for media messaging
USD847192S1 (en) * 2015-09-23 2019-04-30 Guangzhou Ucweb Computer Technology Co., Ltd. Display screen with animated graphical user interface
USD791146S1 (en) * 2015-09-25 2017-07-04 Sz Dji Osmo Technology Co., Ltd. Display screen or portion thereof with animated graphical user interface
US9933926B2 (en) 2015-09-25 2018-04-03 Synaptive Medical (Barbados) Inc. Method and system for medical data display
CN107710197B (zh) * 2015-09-28 2021-08-17 谷歌有限责任公司 在通信网络上共享图像和图像相册
USD839300S1 (en) * 2015-09-30 2019-01-29 Guangzhou Ucweb Computer Technology Co., Ltd. Display screen with animated graphical user interface
USD817967S1 (en) * 2015-09-30 2018-05-15 Guangzhou Ucweb Computer Technology Co., Ltd. Display screen with graphical user interface
JP6613794B2 (ja) * 2015-10-16 2019-12-04 ブラザー工業株式会社 プログラム
TWI582626B (zh) * 2015-10-20 2017-05-11 數位左右有限公司 餐飲環境圖像自動分類系統與其方法
US20170131872A1 (en) * 2015-11-06 2017-05-11 Google Inc. Mobile User Interface
KR102503937B1 (ko) * 2015-12-16 2023-02-27 삼성전자 주식회사 전자 장치의 사용자 인터페이스 제공 방법 및 장치
US10051253B1 (en) * 2015-12-18 2018-08-14 Snap Inc. Binarization of a video stream
US20170249674A1 (en) * 2016-02-29 2017-08-31 Qualcomm Incorporated Using image segmentation technology to enhance communication relating to online commerce experiences
US10942642B2 (en) * 2016-03-02 2021-03-09 Airwatch Llc Systems and methods for performing erasures within a graphical user interface
JP6455466B2 (ja) * 2016-03-02 2019-01-23 京セラドキュメントソリューションズ株式会社 表示操作装置およびプログラム
KR102462644B1 (ko) * 2016-04-01 2022-11-03 삼성전자주식회사 전자 장치 및 그의 동작 방법
USD819666S1 (en) * 2016-04-18 2018-06-05 Kyphon SÀRL Display screen or portion thereof with graphical user interface
US20170307755A1 (en) 2016-04-20 2017-10-26 YoR Labs Method and System for Determining Signal Direction
DE112016006806T5 (de) * 2016-04-28 2019-01-24 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
CN106371717A (zh) * 2016-05-03 2017-02-01 深圳市美贝壳科技有限公司 一种缩略图焦点随原图切换的方法
JP6444338B2 (ja) * 2016-05-20 2018-12-26 ヤフー株式会社 情報表示プログラム、情報表示装置、情報表示方法、配信装置および配信方法
JP6785063B2 (ja) * 2016-05-20 2020-11-18 シャープ株式会社 表示装置およびプログラム
DK201770423A1 (en) 2016-06-11 2018-01-15 Apple Inc Activity and workout updates
US10873786B2 (en) 2016-06-12 2020-12-22 Apple Inc. Recording and broadcasting application visual output
USD847194S1 (en) * 2016-06-17 2019-04-30 Shanghai Mobvoi Information Technology Company Limited Display screen of a wearable device with graphical user interface
US10032259B2 (en) * 2016-08-04 2018-07-24 International Business Machines Corporation Persisting image modifications for user profile
CN106294798B (zh) * 2016-08-15 2020-01-17 华为技术有限公司 一种基于缩略图的图像分享方法和终端
CN106406724A (zh) * 2016-08-24 2017-02-15 努比亚技术有限公司 显示屏幕的操控装置、移动终端及方法
US11733720B2 (en) 2016-08-30 2023-08-22 Terydon, Inc. Indexer and method of use thereof
US11300981B2 (en) 2016-08-30 2022-04-12 Terydon, Inc. Rotary tool with smart indexer
US10133916B2 (en) 2016-09-07 2018-11-20 Steven M. Gottlieb Image and identity validation in video chat events
GB2554668B (en) 2016-09-30 2022-06-22 Apical Ltd Image manipulation
USD841053S1 (en) 2016-10-07 2019-02-19 Siemens Aktiengesellschaft Display screen or portion thereof with an icon
CN107037955A (zh) 2016-10-24 2017-08-11 阿里巴巴集团控股有限公司 一种显示图像信息的方法及装置
USD817993S1 (en) * 2016-10-27 2018-05-15 Apple Inc. Display screen or portion thereof with graphical user interface
US9794213B1 (en) * 2016-10-28 2017-10-17 International Business Machines Corporation Social interaction data preservation for augmented photos
US10663711B2 (en) 2017-01-04 2020-05-26 Corista, LLC Virtual slide stage (VSS) method for viewing whole slide images
CN108337546B (zh) * 2017-01-20 2020-08-28 杭州海康威视数字技术股份有限公司 一种目标对象显示方法及装置
JP6903935B2 (ja) * 2017-02-17 2021-07-14 ソニーグループ株式会社 情報処理システム、情報処理方法、およびプログラム
JP6851853B2 (ja) * 2017-02-21 2021-03-31 キヤノン株式会社 墨消し機能の拡張
KR102316024B1 (ko) * 2017-03-02 2021-10-26 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 사용자 인터페이스 표시 방법
JP6780573B2 (ja) 2017-04-21 2020-11-04 株式会社デンソー バルブタイミング調整装置
DK179412B1 (en) 2017-05-12 2018-06-06 Apple Inc Context-Specific User Interfaces
US10783320B2 (en) 2017-05-16 2020-09-22 Apple Inc. Device, method, and graphical user interface for editing screenshot images
EP3568787B1 (en) 2017-05-17 2024-04-10 Google LLC Automatic image sharing with designated users over a communication network
JP2019015834A (ja) * 2017-07-06 2019-01-31 セイコーエプソン株式会社 表示装置および表示装置の制御方法
USD882633S1 (en) * 2017-07-06 2020-04-28 Biosense Webster (Israel) Ltd. Display screen or portion thereof with icon
TWI622291B (zh) * 2017-08-03 2018-04-21 鴻海精密工業股份有限公司 電子設備及視訊框排列方法
JP6894318B2 (ja) * 2017-08-04 2021-06-30 株式会社荏原製作所 画面制御プログラムおよび半導体製造装置
CN107562338B (zh) * 2017-08-25 2019-01-22 北京三快在线科技有限公司 图片查看方法、装置、电子设备及存储介质
US11314391B2 (en) * 2017-09-08 2022-04-26 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Navigation bar controlling method and terminal
US20190087060A1 (en) * 2017-09-19 2019-03-21 Sling Media Inc. Dynamic adjustment of media thumbnail image size based on touchscreen pressure
CN107632811B (zh) * 2017-09-30 2020-12-11 威创集团股份有限公司 图像拼接墙的标注方法及图像拼接墙系统
CN107992378B (zh) * 2017-10-30 2019-07-26 维沃移动通信有限公司 一种文件处理方法及移动终端
KR102535411B1 (ko) 2017-11-16 2023-05-23 삼성전자주식회사 메트릭 학습 기반의 데이터 분류와 관련된 장치 및 그 방법
KR102655728B1 (ko) 2017-12-05 2024-04-09 구글 엘엘씨 랜드마크 지원 내비게이션
EP3622252A1 (en) * 2017-12-05 2020-03-18 Google LLC Routes on digital maps with interactive turn graphics
US10445586B2 (en) * 2017-12-12 2019-10-15 Microsoft Technology Licensing, Llc Deep learning on image frames to generate a summary
CN107948876B (zh) * 2017-12-13 2020-10-09 北京小米移动软件有限公司 控制音箱设备的方法、装置及介质
JP7062434B2 (ja) * 2017-12-21 2022-05-06 アンリツ株式会社 物品検査装置
KR102477523B1 (ko) 2017-12-22 2022-12-15 삼성전자주식회사 360 비디오에서 POI(Point of Interest) 정보를 제공하기 위한 장치 및 방법
EP3729294A1 (en) * 2017-12-22 2020-10-28 Google LLC Image selection suggestions
CN108241466A (zh) * 2018-01-02 2018-07-03 努比亚技术有限公司 文件处理方法、装置及计算机可读存储介质
WO2019138001A1 (en) * 2018-01-10 2019-07-18 Institut de Recherche sur les Cancers de l'Appareil Digestif - IRCAD Automatic segmentation process of a 3d medical image by one or several neural networks through structured convolution according to the anatomic geometry of the 3d medical image
JP7119408B2 (ja) * 2018-02-15 2022-08-17 コニカミノルタ株式会社 画像処理装置、画面取扱い方法、およびコンピュータプログラム
US10467783B2 (en) 2018-02-23 2019-11-05 ExoAnalytic Solutions, Inc. Visualization interfaces for real-time identification, tracking, and prediction of space objects
US10661920B2 (en) 2018-02-23 2020-05-26 ExoAnalytic Solutions, Inc. Systems and visualization interfaces for display of space object imagery
CN108280231A (zh) * 2018-02-26 2018-07-13 深圳市富途网络科技有限公司 一种实现资讯文章详情页图片的手势缩放的方法及系统
IT201800003385A1 (it) * 2018-03-08 2019-09-08 Photosi Spa Unipersonale Procedimento di selezione automatica di fotografie digitali da un archivio per la creazione automatica di una sequenza di foto che rappresenta una storia emozionale da stampare e/o conservare
CN108519846B (zh) * 2018-03-28 2020-05-19 维沃移动通信有限公司 一种图像编辑处理方法及终端
CN108762804B (zh) * 2018-04-24 2021-11-19 创新先进技术有限公司 灰度发布新产品的方法和装置
DK180171B1 (en) 2018-05-07 2020-07-14 Apple Inc USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT
US11327650B2 (en) 2018-05-07 2022-05-10 Apple Inc. User interfaces having a collection of complications
CA3100642A1 (en) * 2018-05-21 2019-11-28 Corista, LLC Multi-sample whole slide image processing in digital pathology via multi-resolution registration and machine learning
JP6954229B2 (ja) * 2018-05-25 2021-10-27 京セラドキュメントソリューションズ株式会社 画像処理装置及び画像形成装置
US11763821B1 (en) * 2018-06-27 2023-09-19 Cerner Innovation, Inc. Tool for assisting people with speech disorder
USD956790S1 (en) * 2018-08-30 2022-07-05 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
CN109126129B (zh) * 2018-08-31 2022-03-08 腾讯科技(深圳)有限公司 在虚拟环境中对虚拟物品进行拾取的方法、装置及终端
US11435830B2 (en) 2018-09-11 2022-09-06 Apple Inc. Content-based tactile outputs
DK179888B1 (en) 2018-09-11 2019-08-27 Apple Inc. CONTENT-BASED TACTICAL OUTPUTS
CN109254823B (zh) * 2018-09-21 2022-02-22 武汉华中时讯科技有限责任公司 一种切换多级嵌套的分页视图元素的方法、存储器及终端
CN109358800A (zh) * 2018-09-21 2019-02-19 武汉华中时讯科技有限责任公司 一种在二级嵌套分页视图元素中滑动第一级分页视图元素的方法及其终端
ES2985209T3 (es) * 2018-09-30 2024-11-04 Huawei Tech Co Ltd Método de transmisión de datos y dispositivo electrónico
CN109597542A (zh) * 2018-10-08 2019-04-09 华为技术有限公司 一种相册展示方法、电子设备及存储介质
CN111090381B (zh) * 2018-10-24 2021-11-19 广州金山移动科技有限公司 一种显示位置调整方法、装置及电子设备
US11741662B2 (en) 2018-10-29 2023-08-29 Autodesk, Inc. Shaped-based techniques for exploring design spaces
US11380045B2 (en) 2018-10-29 2022-07-05 Autodesk, Inc. Shaped-based techniques for exploring design spaces
US11126330B2 (en) * 2018-10-29 2021-09-21 Autodesk, Inc. Shaped-based techniques for exploring design spaces
US10990246B1 (en) * 2018-10-31 2021-04-27 Amazon Technologies, Inc. Techniques for generating digital content
JP7430720B2 (ja) * 2018-11-25 2024-02-13 ホロジック, インコーポレイテッド マルチモダリティハンギングプロトコル
CN111262967B (zh) * 2018-11-30 2021-04-13 Oppo广东移动通信有限公司 分体式电子设备
CN109701271A (zh) * 2018-12-24 2019-05-03 网易(杭州)网络有限公司 显示图标的方法、装置和系统
CN111381748A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种图像显示方法、装置、设备和存储介质
JP7310152B2 (ja) * 2019-01-25 2023-07-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
CN109917995B (zh) * 2019-01-25 2021-01-08 维沃移动通信有限公司 一种对象处理方法及终端设备
US11159731B2 (en) 2019-02-19 2021-10-26 Samsung Electronics Co., Ltd. System and method for AI enhanced shutter button user interface
CN109977247B (zh) * 2019-03-27 2022-03-25 联想(北京)有限公司 图像处理方法和图像处理装置
WO2020227330A1 (en) 2019-05-06 2020-11-12 Apple Inc. Restricted operation of an electronic device
US11960701B2 (en) 2019-05-06 2024-04-16 Apple Inc. Using an illustration to show the passing of time
US11131967B2 (en) 2019-05-06 2021-09-28 Apple Inc. Clock faces for an electronic device
CN110347456B (zh) * 2019-05-28 2023-05-09 北京奇艺世纪科技有限公司 图像数据处理方法、装置、计算机设备和存储介质
US10996761B2 (en) 2019-06-01 2021-05-04 Apple Inc. User interfaces for non-visual output of time
CN110321449B (zh) * 2019-06-28 2021-07-27 维沃移动通信有限公司 一种图片显示方法及终端
CA3145488A1 (en) 2019-07-25 2021-01-28 ExoAnalytic Solutions, Inc. Systems and visualization interfaces for orbital paths and path parameters of space objects
CN110597510B (zh) * 2019-08-09 2021-08-20 华为技术有限公司 一种界面的动态布局方法及设备
CN110740309B (zh) * 2019-09-27 2022-05-03 北京字节跳动网络技术有限公司 一种图像显示方法、装置、电子设备及存储介质
US11252274B2 (en) * 2019-09-30 2022-02-15 Snap Inc. Messaging application sticker extensions
US10884593B1 (en) * 2019-11-26 2021-01-05 GE Precision Healthcare LLC Systems and methods for remote layout control of medical image viewers
KR20210082910A (ko) * 2019-12-26 2021-07-06 삼성전자주식회사 플렉서블 디스플레이를 포함하는 전자 장치와 이의 동작 방법
CN111064848B (zh) * 2019-12-27 2021-09-17 维沃移动通信有限公司 图片显示方法及电子设备
US11269479B2 (en) * 2019-12-31 2022-03-08 Google Llc Automatic focus detection with relative threshold-aware cell visibility for a scrolling cell collection
CN111324249B (zh) * 2020-01-21 2020-12-01 北京达佳互联信息技术有限公司 多媒体素材生成方法、装置及存储介质
WO2021161691A1 (ja) * 2020-02-12 2021-08-19 古野電気株式会社 海図表示装置、海図表示方法、プログラム、及び観察補助具
CN111367447A (zh) * 2020-02-21 2020-07-03 北京字节跳动网络技术有限公司 信息显示方法、装置、电子设备及计算机可读存储介质
CN111382289A (zh) * 2020-03-13 2020-07-07 闻泰通讯股份有限公司 图片显示方法、装置、计算机设备和存储介质
US11998391B1 (en) 2020-04-02 2024-06-04 yoR Labs, Inc. Method and apparatus for composition of ultrasound images with integration of “thick-slice” 3-dimensional ultrasound imaging zone(s) and 2-dimensional ultrasound zone(s) utilizing a multi-zone, multi-frequency ultrasound image reconstruction scheme with sub-zone blending
CN111580718A (zh) * 2020-04-30 2020-08-25 北京字节跳动网络技术有限公司 应用程序的页面切换方法、装置、电子设备及存储介质
US11526256B2 (en) 2020-05-11 2022-12-13 Apple Inc. User interfaces for managing user interface sharing
DK181103B1 (en) 2020-05-11 2022-12-15 Apple Inc User interfaces related to time
US11372659B2 (en) 2020-05-11 2022-06-28 Apple Inc. User interfaces for managing user interface sharing
JP2021192178A (ja) * 2020-06-05 2021-12-16 ソニーグループ株式会社 デバイス、制御方法及びプログラム
US11832991B2 (en) 2020-08-25 2023-12-05 yoR Labs, Inc. Automatic ultrasound feature detection
US11539918B1 (en) * 2020-09-14 2022-12-27 mmhmm inc. Interactive objects, anchors, and image search for immersive video conference spaces with shared virtual channels
US11281371B1 (en) 2020-10-19 2022-03-22 Gopro, Inc. Interface for presenting media collections
US11751850B2 (en) 2020-11-19 2023-09-12 yoR Labs, Inc. Ultrasound unified contrast and time gain compensation control
US11704142B2 (en) * 2020-11-19 2023-07-18 yoR Labs, Inc. Computer application with built in training capability
JP7078288B1 (ja) 2020-12-02 2022-05-31 株式会社吉田製作所 画像表示装置及び画像表示システム
CN112416239B (zh) * 2020-12-04 2023-06-16 网易(杭州)网络有限公司 媒体库中的媒体对象交互方法、装置和电子设备
US11694590B2 (en) 2020-12-21 2023-07-04 Apple Inc. Dynamic user interface with time indicator
US11720239B2 (en) 2021-01-07 2023-08-08 Apple Inc. Techniques for user interfaces related to an event
JP7120364B1 (ja) * 2021-03-15 2022-08-17 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
JP2022150350A (ja) * 2021-03-26 2022-10-07 セイコーエプソン株式会社 画像処理回路、回路装置及び電子機器
US11921992B2 (en) 2021-05-14 2024-03-05 Apple Inc. User interfaces related to time
EP4323992A1 (en) 2021-05-15 2024-02-21 Apple Inc. User interfaces for group workouts
CN113204299B (zh) * 2021-05-21 2023-05-05 北京字跳网络技术有限公司 显示方法、装置、电子设备和存储介质
USD1012964S1 (en) * 2021-09-01 2024-01-30 Xerox Corporation Display screen with icon
US11641514B1 (en) * 2021-11-18 2023-05-02 Motorola Mobility Llc User state for user image in media content
USD1010669S1 (en) * 2021-12-07 2024-01-09 Clo Virtual Fashion Inc. Display panel or portion thereof with graphical user interface
USD1018591S1 (en) * 2021-12-07 2024-03-19 Clo Virtual Fashion Inc. Display panel or portion thereof with graphical user interface
USD1043750S1 (en) * 2021-12-07 2024-09-24 Clo Virtual Fashion Inc. Display panel or portion thereof with graphical user interface
US20230236547A1 (en) 2022-01-24 2023-07-27 Apple Inc. User interfaces for indicating time
TWI795197B (zh) * 2022-01-27 2023-03-01 瑞軒科技股份有限公司 顯示裝置
CN114779975A (zh) * 2022-03-31 2022-07-22 北京至简墨奇科技有限公司 指掌纹图像检视界面的处理方法、装置及电子系统
WO2024009426A1 (ja) * 2022-07-06 2024-01-11 京セラ株式会社 画像処理装置、制御方法、及びプログラム
WO2024050163A2 (en) 2022-07-29 2024-03-07 ExoAnalytic Solutions, Inc. Space object alert management and user interfaces
WO2024035254A1 (en) * 2022-08-12 2024-02-15 Wan Zaidon Wan Hasifi Amin A computer-implemented method of acquiring user preference data for social discovery application
CN117909002A (zh) * 2022-10-17 2024-04-19 抖音视界有限公司 用于内容呈现的方法、装置、设备和存储介质
CN116542859B (zh) * 2023-07-06 2023-09-01 武汉船舶职业技术学院 用于智能建造的建筑结构柱图像缩略图智能生成方法
CN116935493B (zh) * 2023-09-13 2024-01-02 成都市青羊大数据有限责任公司 一种教育管理系统

Family Cites Families (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287448A (en) * 1989-05-04 1994-02-15 Apple Computer, Inc. Method and apparatus for providing help information to users of computers
US6201539B1 (en) 1994-01-04 2001-03-13 International Business Machines Corporation Method and system for customizing a data processing system graphical user interface
JP3192066B2 (ja) * 1995-09-08 2001-07-23 富士ゼロックス株式会社 作図方法および作図装置
US7124359B2 (en) 1996-01-11 2006-10-17 Canon Kabushiki Kaisha Image edit device adapted to rapidly lay-out photographs into templates with means for preview and correction by user
US5808610A (en) * 1996-08-28 1998-09-15 Macromedia, Inc. Method and system of docking panels
US20060020894A1 (en) * 1996-12-06 2006-01-26 Nikon Corporation Information processing apparatus
JP4194644B2 (ja) * 1997-02-19 2008-12-10 キヤノン株式会社 画像編集装置、画像編集方法、及び記録媒体
US6035323A (en) 1997-10-24 2000-03-07 Pictra, Inc. Methods and apparatuses for distributing a collection of digital media over a network with automatic generation of presentable media
US5995101A (en) 1997-10-29 1999-11-30 Adobe Systems Incorporated Multi-level tool tip
US6058428A (en) 1997-12-05 2000-05-02 Pictra, Inc. Method and apparatus for transferring digital images on a network
US8479122B2 (en) * 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US6567983B1 (en) * 1998-04-10 2003-05-20 Fuji Photo Film Co., Ltd. Electronic album producing and viewing system and method
JP2000076271A (ja) * 1998-08-31 2000-03-14 Sony Corp 情報処理装置および方法、並びに提供媒体
US6373979B1 (en) * 1999-01-29 2002-04-16 Lg Electronics, Inc. System and method for determining a level of similarity among more than one image and a segmented data structure for enabling such determination
US6636648B2 (en) 1999-07-02 2003-10-21 Eastman Kodak Company Albuming method with automatic page layout
US20020040375A1 (en) 2000-04-27 2002-04-04 Simon Richard A. Method of organizing digital images on a page
JP2002010196A (ja) * 2000-06-26 2002-01-11 Sanyo Electric Co Ltd 電子アルバム装置
US7298520B2 (en) 2000-08-17 2007-11-20 Dai Nippon Printing Co., Ltd. Image printing system
US7830399B2 (en) 2000-10-04 2010-11-09 Shutterfly, Inc. System and method for manipulating digital images
US7072501B2 (en) * 2000-11-22 2006-07-04 R2 Technology, Inc. Graphical user interface for display of anatomical information
JP4696407B2 (ja) * 2001-06-20 2011-06-08 株式会社ニコン 商品推奨システムおよび商品推奨方法
US7215813B2 (en) * 2001-12-03 2007-05-08 Apple Computer, Inc. Method and apparatus for color correction
EP1762949A3 (en) 2001-12-26 2007-08-08 Eastman Kodak Company Digital imaging method using importance rating
US7289132B1 (en) 2003-12-19 2007-10-30 Apple Inc. Method and apparatus for image acquisition, organization, manipulation, and publication
JP4064684B2 (ja) 2002-02-18 2008-03-19 セイコーインスツル株式会社 時刻監査システム及び時刻監査方法
US7148990B2 (en) 2002-08-15 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for producing a photobook
US20090138825A1 (en) * 2002-09-30 2009-05-28 Matias Duarte Image navigation apparatus and method
US20040165012A1 (en) * 2003-02-20 2004-08-26 International Business Machines Corp. Cascading menu with selectable offset
JP4079087B2 (ja) * 2003-03-12 2008-04-23 セイコーエプソン株式会社 レイアウトシステム
JP4145805B2 (ja) * 2003-03-17 2008-09-03 セイコーエプソン株式会社 テンプレート生成システム、レイアウトシステム、テンプレート生成プログラム、レイアウトプログラムおよびテンプレート生成方法並びにレイアウト方法
US20040205286A1 (en) * 2003-04-11 2004-10-14 Bryant Steven M. Grouping digital images using a digital camera
US7369164B2 (en) * 2003-04-11 2008-05-06 Eastman Kodak Company Using favorite digital images to organize and identify electronic albums
JP2004334337A (ja) * 2003-04-30 2004-11-25 Canon Inc 画像処理装置
US20040223004A1 (en) * 2003-05-05 2004-11-11 Lincke Scott D. System and method for implementing a landscape user experience in a hand-held computing device
JP2005078032A (ja) * 2003-09-03 2005-03-24 Olympus Corp 画像表示プログラム、画像表示装置、画像表示方法
US20050068583A1 (en) 2003-09-30 2005-03-31 Gutkowski Lawrence J. Organizing a digital image
US7188310B2 (en) 2003-10-09 2007-03-06 Hewlett-Packard Development Company, L.P. Automatic layout generation for photobooks
US7702728B2 (en) 2004-01-30 2010-04-20 Microsoft Corporation Mobile shared group interaction
US20050198305A1 (en) * 2004-03-04 2005-09-08 Peter Pezaris Method and system for associating a thread with content in a social networking environment
US7346846B2 (en) * 2004-05-28 2008-03-18 Microsoft Corporation Strategies for providing just-in-time user assistance
US7886024B2 (en) * 2004-07-01 2011-02-08 Microsoft Corporation Sharing media objects in a network
US20060022953A1 (en) * 2004-07-30 2006-02-02 Nokia Corporation Left-hand originated user interface control for a device
US8456488B2 (en) * 2004-10-06 2013-06-04 Apple Inc. Displaying digital images using groups, stacks, and version sets
US7561157B2 (en) 2004-10-06 2009-07-14 Apple Inc. Compare mode for variable number of images
JP4506409B2 (ja) * 2004-10-27 2010-07-21 株式会社デンソー 領域分割方法及び装置、画像認識処理装置、プログラム、記録媒体
AU2004231206A1 (en) * 2004-11-19 2006-06-08 Canon Kabushiki Kaisha Displaying a plurality of images in a stack arrangement
US20060109517A1 (en) 2004-11-23 2006-05-25 Rodrigo Catalan Personal photo book creation kit
US8024658B1 (en) 2005-01-09 2011-09-20 Apple Inc. Application for designing photo albums
US7849116B2 (en) 2005-05-23 2010-12-07 Picateer, Inc. System and method for automated layout of collaboratively selected images
JP2007034350A (ja) * 2005-07-22 2007-02-08 Fujifilm Corp ユーザインターフェース表示方法、プログラムおよびユーザインターフェース
JP2007065809A (ja) * 2005-08-30 2007-03-15 Sony Corp ヘルプガイダンス表示方法、ヘルプガイダンス表示装置、情報処理装置、プリントキオスク装置及びプログラム
US9081470B2 (en) * 2005-09-08 2015-07-14 Microsoft Technology Licensing, Llc Single action selection of data elements
JP2007080074A (ja) * 2005-09-15 2007-03-29 Seiko Epson Corp 画像表示装置、画像表示方法、および、プログラム
US7689933B1 (en) * 2005-11-14 2010-03-30 Adobe Systems Inc. Methods and apparatus to preview content
US20070113180A1 (en) * 2005-11-15 2007-05-17 Michael Danninger Method and system for providing improved help functionality to assist new or occasional users of software in understanding the graphical elements of a display screen
US7945653B2 (en) 2006-10-11 2011-05-17 Facebook, Inc. Tagging digital media
US7644373B2 (en) 2006-01-23 2010-01-05 Microsoft Corporation User interface for viewing clusters of images
EP1999674A4 (en) 2006-03-28 2010-10-06 Hewlett Packard Development Co SYSTEM AND METHOD FOR SOCIAL NAVIGATION IN A NETWORK TIME MEDIA
US9395905B2 (en) * 2006-04-05 2016-07-19 Synaptics Incorporated Graphical scroll wheel
ITMI20060732A1 (it) * 2006-04-12 2007-10-13 De Nora Elettrodi S P A Dispositivo per la separazione di mercurio da soda caustica in impianti cloro-alcali
JP4769635B2 (ja) 2006-05-22 2011-09-07 日本電信電話株式会社 サーバ装置とそのクライアント装置及びプログラム
JP2007328537A (ja) 2006-06-07 2007-12-20 Fujifilm Corp イベント通知装置、システムおよび方法
JP2007334651A (ja) * 2006-06-15 2007-12-27 Fujifilm Corp 画像検索方法およびその画像検索方法で画像検索を実行する画像検索装置が搭載されている撮像装置
JP4737766B2 (ja) * 2006-06-30 2011-08-03 キヤノンマーケティングジャパン株式会社 画像処理装置および画像処理装置の制御方法および制御プログラムおよび記録媒体
US8564544B2 (en) * 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8564543B2 (en) 2006-09-11 2013-10-22 Apple Inc. Media player with imaged based browsing
US7974486B2 (en) 2006-09-22 2011-07-05 Apple Inc. Plug-in architecture for exporting digital images
US7870412B2 (en) 2006-09-28 2011-01-11 Oracle International Corporation Passing client or server instructions via synchronized data objects
US20080109722A1 (en) * 2006-11-06 2008-05-08 Gengler William H Direct presentation of help information relative to selectable menu items in a computer controlled display interface
KR101144423B1 (ko) * 2006-11-16 2012-05-10 엘지전자 주식회사 휴대 단말기 및 휴대 단말기의 화면 표시 방법
US7921370B1 (en) * 2006-11-29 2011-04-05 Adobe Systems Incorporated Object-level text-condition indicators
US20080163053A1 (en) * 2006-12-28 2008-07-03 Samsung Electronics Co., Ltd. Method to provide menu, using menu set and multimedia device using the same
US7873710B2 (en) 2007-02-06 2011-01-18 5O9, Inc. Contextual data communication platform
US7903904B1 (en) 2007-02-16 2011-03-08 Loeb Enterprises LLC. System and method for linking data related to a set of similar images
US8438214B2 (en) 2007-02-23 2013-05-07 Nokia Corporation Method, electronic device, computer program product, system and apparatus for sharing a media object
JP2008210304A (ja) 2007-02-28 2008-09-11 Nec Corp サーバ、広告配信方法、及びプログラム
US8001470B1 (en) * 2007-04-09 2011-08-16 Adobe Systems, Inc. Help functionality and graphical user interface applications
US20080301237A1 (en) * 2007-05-31 2008-12-04 Allan Peter Parsons Method and apparatus for improved referral to resources and a related social network
JP4775332B2 (ja) 2007-06-14 2011-09-21 ブラザー工業株式会社 画像選択装置および画像選択方法
KR100906109B1 (ko) * 2007-06-20 2009-07-07 엔에이치엔(주) 3a 기반의 다양한 어플리케이션 상태를 제공하는유비쿼터스 프리젠스 서비스 방법 및 시스템
US20090022015A1 (en) * 2007-07-18 2009-01-22 Donald Harrison Media Playable with Selectable Performers
US9131078B2 (en) * 2007-07-27 2015-09-08 Lagavulin Limited Apparatuses, methods, and systems for a portable, image-processing transmitter
US8634674B2 (en) 2007-09-11 2014-01-21 Vistaprint Schweiz Gmbh Dynamic sizing and positioning of multiple images
KR101455983B1 (ko) 2007-10-19 2014-11-03 엘지전자 주식회사 이동 단말기 및 이동 단말기의 정보 표시 방법
US20090147011A1 (en) 2007-12-07 2009-06-11 Roche Diagnostics Operations, Inc. Method and system for graphically indicating multiple data values
US8165406B2 (en) * 2007-12-12 2012-04-24 Microsoft Corp. Interactive concept learning in image search
CN101216747A (zh) * 2007-12-27 2008-07-09 上海全景数字技术有限公司 一种产生智能帮助信息的方法和装置
JP5025457B2 (ja) 2007-12-28 2012-09-12 キヤノン株式会社 画像処理装置およびその方法
JP4680273B2 (ja) * 2008-02-05 2011-05-11 京セラ株式会社 表示機能付き端末
US20090199126A1 (en) * 2008-02-06 2009-08-06 International Business Machines Corporation Method for automatically organizing toolbars for a software application
US9092240B2 (en) * 2008-02-11 2015-07-28 Apple Inc. Image application performance optimization
US8747502B2 (en) * 2008-02-25 2014-06-10 Industry-Academic Cooperation Foundation, Jeju National University Particulate matter reduction apparatus for diesel engine
US8687230B2 (en) * 2008-03-31 2014-04-01 Brother Kogyo Kabushiki Kaisha Image processor
US20090292762A1 (en) * 2008-05-20 2009-11-26 Nokia Corporation Method, Apparatus, and Computer Program Product for Publishing Content
JP4913094B2 (ja) * 2008-05-20 2012-04-11 シャープ株式会社 画像照合方法、画像照合装置、画像データ出力処理装置、プログラム及び記憶媒体
JP2010016804A (ja) * 2008-06-05 2010-01-21 Canon Inc 画像処理装置及び画像処理方法、記憶媒体
JP4956494B2 (ja) * 2008-06-30 2012-06-20 日本写真印刷株式会社 自動組版システム
US8214766B1 (en) * 2008-07-09 2012-07-03 Adobe Systems Incorporated Method and system for preview control for image adjustment
JP5309775B2 (ja) * 2008-08-07 2013-10-09 セイコーエプソン株式会社 放電灯の駆動装置および駆動方法、光源装置並びに画像表示装置
KR20100027686A (ko) * 2008-09-03 2010-03-11 엘지전자 주식회사 이동단말기 및 그 제어 방법
US20100063961A1 (en) 2008-09-05 2010-03-11 Fotonauts, Inc. Reverse Tagging of Images in System for Managing and Sharing Digital Images
WO2010038653A1 (ja) * 2008-10-01 2010-04-08 日本電気株式会社 携帯端末装置及びそれに用いる画像表示方法並びにそのプログラムを記録した記憶媒体
JP5540344B2 (ja) * 2008-10-30 2014-07-02 シャープ株式会社 電子機器、メニューの選択方法、メニューの選択プログラム
JP5108747B2 (ja) * 2008-12-26 2012-12-26 富士フイルム株式会社 情報表示装置、方法およびプログラム
US8380005B1 (en) * 2009-02-02 2013-02-19 Adobe Systems Incorporated System and method for image composition using non-destructive editing model and fast gradient solver
JP6144449B2 (ja) * 2009-03-30 2017-06-07 アバイア インク. 永続的マルチメデア・会議・サービスのシステムと方法。
CN101551915A (zh) * 2009-04-22 2009-10-07 腾讯数码(天津)有限公司 一种图像处理方法和装置
KR20100124438A (ko) * 2009-05-19 2010-11-29 삼성전자주식회사 휴대 단말기의 페이지 제공 방법 및 이를 지원하는 휴대 단말기
US20100310136A1 (en) * 2009-06-09 2010-12-09 Sony Ericsson Mobile Communications Ab Distinguishing right-hand input and left-hand input based on finger recognition
WO2010151255A1 (en) 2009-06-24 2010-12-29 Hewlett-Packard Development Company, L.P. Image album creation
US20110154192A1 (en) * 2009-06-30 2011-06-23 Jinyu Yang Multimedia Collaboration System
US8806331B2 (en) * 2009-07-20 2014-08-12 Interactive Memories, Inc. System and methods for creating and editing photo-based projects on a digital network
EP2460061A4 (en) 2009-07-31 2013-09-25 Citizenglobal Inc SYSTEMS AND METHOD FOR RECALLING, PROCESSING AND ORGANIZING CONTENTS WITH VIDEO DATA
US10339541B2 (en) * 2009-08-19 2019-07-02 Oracle International Corporation Systems and methods for creating and inserting application media content into social media system displays
EP3260969B1 (en) * 2009-09-22 2021-03-03 Apple Inc. Device, method, and graphical user interface for manipulating user interface objects
JP4821903B2 (ja) * 2009-09-30 2011-11-24 カシオ計算機株式会社 表示端末、サーバ装置、画像共有システム、及び画像共有方法
US9529517B2 (en) * 2009-10-13 2016-12-27 Google Inc. Movable information panels
US20110113086A1 (en) 2009-11-10 2011-05-12 Kevin Long System and method for monitoring activity on internet-based social networks
JP5327017B2 (ja) 2009-11-24 2013-10-30 ソニー株式会社 遠隔操作装置、遠隔操作システム、遠隔操作装置による情報処理方法およびプログラム
US20110125765A1 (en) * 2009-11-25 2011-05-26 Nokia Corporation Method and apparatus for updating media profile
US8438531B2 (en) * 2009-12-01 2013-05-07 Cadence Design Systems, Inc. Visualization and information display for shapes in displayed graphical images
US20120010624A1 (en) * 2009-12-07 2012-01-12 O'halloran Damien Methods and Apparatus For Treating Vertebral Fractures
US8698762B2 (en) 2010-01-06 2014-04-15 Apple Inc. Device, method, and graphical user interface for navigating and displaying content in context
KR20110088236A (ko) 2010-01-28 2011-08-03 삼성전자주식회사 이미지 제공 장치 및 그 방법
US8621012B2 (en) * 2010-02-08 2013-12-31 Google Inc. Active e-mails
KR101640506B1 (ko) 2010-02-12 2016-07-18 삼성전자주식회사 에스엔에스 위젯 제공 방법 및 그 장치
US20110202877A1 (en) * 2010-02-16 2011-08-18 Metacan Holdings Inc. Apparatus and Method for Controlling a Display to Provide Content Navigation
DK2375693T3 (en) * 2010-03-22 2018-01-08 Telia Co Ab Provision of a presence service in a communication system
US20110265033A1 (en) 2010-04-23 2011-10-27 Research In Motion Limited Apparatus, and associated method, for selecting multiple files at a consumer electronics device
US20110286647A1 (en) * 2010-05-24 2011-11-24 Microsoft Corporation Image Browsing and Navigating User Interface
US20120050789A1 (en) 2010-08-31 2012-03-01 Apple Inc. Dynamically Generated Digital Photo Collections
KR101781129B1 (ko) * 2010-09-20 2017-09-22 삼성전자주식회사 어플리케이션을 다운로드받아 설치하는 단말장치 및 그 방법
US10235034B2 (en) * 2010-11-18 2019-03-19 Google Inc. Haptic feedback to abnormal computing events
US8396876B2 (en) * 2010-11-30 2013-03-12 Yahoo! Inc. Identifying reliable and authoritative sources of multimedia content
CN102012927A (zh) * 2010-12-01 2011-04-13 北京开心人信息技术有限公司 一种分享外站信息的方法及系统
US9311678B2 (en) * 2010-12-15 2016-04-12 Facebook, Inc. Comment plug-in for third party system
US9336512B2 (en) * 2011-02-11 2016-05-10 Glenn Outerbridge Digital media and social networking system and method
GB2487972A (en) * 2011-02-11 2012-08-15 Nokia Corp A method of display of comments associated with an object
US8433670B2 (en) * 2011-03-03 2013-04-30 Xerox Corporation System and method for recommending items in multi-relational environments
US8341525B1 (en) * 2011-06-03 2012-12-25 Starsvu Corporation System and methods for collaborative online multimedia production
US8880640B2 (en) * 2011-06-20 2014-11-04 Facebook, Inc. Social mode for managing communications between a mobile device and a social networking system
US8810535B2 (en) * 2011-10-18 2014-08-19 Blackberry Limited Electronic device and method of controlling same
US8890808B2 (en) * 2012-01-06 2014-11-18 Microsoft Corporation Repositioning gestures for chromeless regions
US20130239031A1 (en) 2012-03-06 2013-09-12 Apple Inc. Application for viewing images

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585569B2 (en) 2014-09-15 2020-03-10 Samsung Electronics Co., Ltd. Method for displaying object on device and device therefor
US10996832B2 (en) 2014-09-15 2021-05-04 Samsung Electronics Co., Ltd. Method for displaying object on device and device therefor
KR20170118548A (ko) * 2016-04-15 2017-10-25 신상현 단말기
KR20180020381A (ko) * 2016-08-18 2018-02-28 삼성전자주식회사 전자 장치 및 전자 장치 제어 방법
JP2022013169A (ja) * 2020-07-03 2022-01-18 株式会社Shift 作成支援装置およびプログラム
KR20220025618A (ko) * 2020-08-24 2022-03-03 주식회사 듀코젠 사용자 행동 기반의 실감 학습 콘텐츠 제공 방법

Also Published As

Publication number Publication date
JP2017084387A (ja) 2017-05-18
US9363220B2 (en) 2016-06-07
JP5965381B2 (ja) 2016-08-03
CN103677529A (zh) 2014-03-26
CN103729115B (zh) 2017-03-01
US20160173726A1 (en) 2016-06-16
KR101776147B1 (ko) 2017-09-07
US20130239063A1 (en) 2013-09-12
CN103703437B (zh) 2017-06-06
US20130239055A1 (en) 2013-09-12
KR101580478B1 (ko) 2015-12-28
JP6062982B2 (ja) 2017-01-18
JP2014112380A (ja) 2014-06-19
US20130239062A1 (en) 2013-09-12
US20130238990A1 (en) 2013-09-12
JP2014112381A (ja) 2014-06-19
US8963962B2 (en) 2015-02-24
JP6298522B2 (ja) 2018-03-20
EP3514671B1 (en) 2022-11-02
EP2685362A1 (en) 2014-01-15
JP5735090B2 (ja) 2015-06-17
US20130238724A1 (en) 2013-09-12
US20130239031A1 (en) 2013-09-12
KR20140002064A (ko) 2014-01-07
CN103729115A (zh) 2014-04-16
US9591181B2 (en) 2017-03-07
EP2681652A1 (en) 2014-01-08
JP2014522527A (ja) 2014-09-04
EP4141630A1 (en) 2023-03-01
EP2685363A1 (en) 2014-01-15
EP2685363B1 (en) 2019-04-10
EP3514671A1 (en) 2019-07-24
JP2015149078A (ja) 2015-08-20
CN107168614A (zh) 2017-09-15
KR20140002065A (ko) 2014-01-07
KR101737166B1 (ko) 2017-05-17
CN103703437A (zh) 2014-04-02
WO2013133901A2 (en) 2013-09-12
CN107168614B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
KR101776147B1 (ko) 영상 보기 응용 프로그램
EP3736676B1 (en) User interfaces for capturing and managing visual media
US9942486B2 (en) Identifying dominant and non-dominant images in a burst mode capture
US9804760B2 (en) Scrollable in-line camera for capturing and sharing content
US9299168B2 (en) Context aware user interface for image editing

Legal Events

Date Code Title Description
A201 Request for examination
A107 Divisional application of patent
E902 Notification of reason for refusal
E902 Notification of reason for refusal
GRNT Written decision to grant