KR102066255B1 - 시각 출력을 위한 조정을 판단하기 위한 기법 - Google Patents

시각 출력을 위한 조정을 판단하기 위한 기법 Download PDF

Info

Publication number
KR102066255B1
KR102066255B1 KR1020160059963A KR20160059963A KR102066255B1 KR 102066255 B1 KR102066255 B1 KR 102066255B1 KR 1020160059963 A KR1020160059963 A KR 1020160059963A KR 20160059963 A KR20160059963 A KR 20160059963A KR 102066255 B1 KR102066255 B1 KR 102066255B1
Authority
KR
South Korea
Prior art keywords
frame
pixel
value
frame time
current frame
Prior art date
Application number
KR1020160059963A
Other languages
English (en)
Other versions
KR20160064050A (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 KR20160064050A publication Critical patent/KR20160064050A/ko
Application granted granted Critical
Publication of KR102066255B1 publication Critical patent/KR102066255B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/18Timing circuits for raster scan displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/16Calculation or use of calculated indices related to luminance levels in display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)

Abstract

다양한 실시예는 일반적으로 현재 프레임에 대한 영상 정보를 수신하고, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 현재 프레임과 이전 프레임 사이의 변화량을 판단하고, 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간의 조정을 판단하기 위한 장치, 방법 및 다른 기법에 관한 것이다.

Description

시각 출력을 위한 조정을 판단하기 위한 기법{TECHNIQUES FOR DETERMINING AN ADJUSTMENT FOR A VISUAL OUTPUT}
많은 기존의 애플리케이션은 전달된 시각 품질(visual quality)에 대한 실제 프레임 속도(frame rate)의 기여와는 무관하게 일정한 또는 가능한 높은 속도로 스크린 또는 디스플레이 상에 시각 그래픽을 생성하고 시각 그래픽을 갱신한다. 보다 구체적으로, 디스플레이 상의 시각 그래픽이 하나의 프레임으로부터 다음 프레임으로 상대적으로 작은 변화량을 가질 때조차도 일정한 프레임 속도 또는 프레임 시간이 사용될 수 있는데, 이 경우 보다 낮은 프레임 속도는 사용자의 경험을 저하시키지 않을 것이다. 따라서, 디스플레이 상의 시각 그래픽을 이들 일정한 프레임 속도 또는 프레임 시간으로 처리하는 동안 많은 전력 양이 낭비된다. 현대 세계에서, 점점 더 많은 디바이스가 배터리 전력으로 구동됨에 따라, 이러한 낭비된 전력은 디바이스의 사용자에게 어떠한 장점도 추가로 제공하지 않으면서 배터리 수명을 단축시킨다.
도 1은 제 1 컴퓨팅 시스템의 일 실시예를 도시한다.
도 2는 그래픽을 처리하기 위한 제 1 블록도의 일 실시예를 도시한다.
도 3은 제 1 논리 흐름도의 일 실시예를 도시한다.
도 4는 제 2 논리 흐름도의 일 실시예를 도시한다.
도 5는 제 3 논리 흐름도의 일 실시예를 도시한다.
도 6은 제 4 논리 흐름도의 일 실시예를 도시한다.
도 7은 제 2 컴퓨팅 시스템의 일 실시예를 도시한다.
도 8은 제 3 컴퓨팅 시스템의 일 실시예를 도시한다.
도 9는 제 1 컴퓨팅 아키텍처의 일 실시예를 도시한다.
다양한 실시예는 일반적으로 디스플레이 상에 디스플레이된 시각 그래픽의 현재 프레임과 디스플레이 상에 디스플레이된 시각 그래픽의 이전 프레임 사이의 변화량을 판단하고 변화량에 기반하여 프레임 속도 및/또는 프레임 시간을 조정하는 것에 관한 것이다. 변화량은 현재 프레임의 픽셀의 휘도 값과 상응하는 위치에 존재하는 이전 프레임의 픽셀의 휘도 값을 비교하는 것에 기반할 수 있다. 그러나, 다양한 실시예는 이러한 방식으로 제한되지 않으며, 변화량은 픽셀 색(color) 정보, 색상(hue) 정보, 쉐이더(shader) 정보, 픽셀 정보 등과 같은 다른 정보에 기반하여 판단될 수 있다.
그 후, 프레임들 사이의 변화량은 디바이스에 대한 사용자의 경험을 허용 가능한 수준 미만으로 저하시키지 않으면서 전력 소비를 감소시킴으로써 프레임 시간 및/또는 프레임 속도에 대한 조정이 사용자에게 유익한지를 판단하기 위해 사용될 수 있다. 우선, 프레임 시간 또는 프레임 속도에 대한 조정이 사용자의 경험에 부정적인 영향을 미칠지에 대한 판단 및 그러한 조정을 가능하게 할지에 대한 판단이 수행될 수 있다. 또한, 변화량은 변화량과 인지된 품질 문턱 값과의 비교에 기반하여 프레임 속도 및/또는 프레임 시간을 증가시킬지, 감소시킬지 또는 동일하게 유지할지를 판단하기 위해 사용될 수 있다. 인지된 품질 문턱 값은 프레임 속도 및/또는 프레임 시간이 사용자를 위해 허용 가능한 수준으로 유지되도록 설정될 수 있다. 예를 들어, 프레임 내에서 작은 변화가 검출될 때조차도 사용자가 높은 프레임 속도(낮은 프레임 시간)를 유지하기를 희망하면 인지된 품질 문턱 값은 낮은 값으로 설정될 수 있다. 반면에, 시각 품질의 약간의 저하가 사용자에게 허용 가능하면 인지된 품질 문턱 값은 높은 값으로 설정될 수 있다.
일부 실시예에서, 프레임들 사이의 변화량이 작아서 인지된 품질 문턱 값보다 작으면, 사용자가 시각 품질에서의 저하를 경험하지 않거나 시각 품질을 허용 가능한 수준으로 저하시키지 않으면서 프레임 속도가 감소될 수 있다. 하나의 예는 게이밍(gaming) 애플리케이션의 메뉴 스크린(menu screen)을 디스플레이하는 동안에 존재하는데, 사용자가 디스플레이에서의 시각 변화량을 전혀 인식하지 않거나 최소한의 시각 변화량을 인식하지 않으면서 프레임 속도가 감소될 수 있는 것이다. 프레임 속도를 감소시킴으로써(또는 프레임 시간을 증가시킴으로써), 컴퓨터 시스템은 보다 적은 데이터를 처리할 수 있고, 전력 및 배터리 수명을 절약할 수 있다. 이들 장점 및 다른 장점은 다음 상세한 설명에서 보다 명백해질 것이다.
본 명세서에서 사용된 표기법 및 명명법과 일반적으로 관련하여, 컴퓨터 또는 컴퓨터 네트워크 상에서 실행되는 프로그램 절차에 관하여 다음 상세한 설명이 제시될 수 있다. 이들 절차적 설명 및 표현은 당업자의 작업의 본질을 다른 당업자에게 가장 효율적으로 전달하기 위해 당업자에 의해 사용된다.
하나의 절차가 본 명세서에 제시되는데, 하나의 절차는 일반적으로 요구된 결과를 초래하는 일관성 있는 동작 시퀀스(self-consistent sequence of operations)인 것으로 생각된다. 이들 동작은 물리적 수량의 물리적 조작을 요구한다. 이들 수량은 대체로 저장될 수 있고, 전달될 수 있고, 조합될 수 있고, 비교될 수 있고, 다르게 조작될 수 있는 전기, 자기 또는 광학 신호의 형태를 갖지만, 반드시 그렇지는 않다. 때로는, 주로 통상적인 사용을 위해, 이들 신호를 비트, 값, 구성 요소, 기호, 문자, 용어, 수치 등으로 지칭하는 것이 편리하다는 점이 입증된다. 그러나, 이들 용어 및 이와 유사한 용어는 모두 적절한 물리적 수량에 연관되어야 하고 그러한 수량에 적용된 단지 간편한 표식(label)이라는 것을 주목해야 한다.
또한, 수행된 조작은 인간 오퍼레이터(human operator)에 의해 수행되는 정신적인 동작에 통상적으로 연관되는 추가(adding) 또는 비교(comparing)와 같은 용어로 종종 지칭된다. 하나 이상의 실시예 중 일부를 형성하는 본 명세서에 설명된 동작 중 어떤 동작에서도 인간 오퍼레이터의 이러한 능력은 필수가 아니거나 대부분의 경우에 바람직하지도 않다. 오히려, 동작은 기계 동작(machine operation)이다. 다양한 실시예의 동작을 수행하기 위한 유용한 기계는 범용(general-purpose) 디지털 컴퓨터 또는 이와 유사한 디바이스를 포함한다.
다양한 실시예는 또한 이들 동작을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이러한 장치는 요구된 목적을 위해 특수하게 구성될 수 있거나 범용 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 바와 같은 범용 컴퓨터를 포함할 수 있다. 본 명세서에 제시된 절차는 본질적으로 특정 컴퓨터 또는 다른 장치에 관련되지 않는다. 다양한 범용 기계가 본 명세서의 가르침에 따라 쓰여진 프로그램과 함께 사용될 수 있거나, 요구된 방법을 수행하기 위해 보다 전문적인 장치를 구성하는 것이 편리하다는 점이 입증될 수 있다. 다양한 이들 기계를 위한 요구된 구조는 주어진 설명으로부터 명백할 것이다.
이제 도면을 참조하고, 도면에 걸쳐 동일한 구성 요소를 지칭하기 위해 동일한 참조 부호가 사용된다. 다음 설명에서는 설명의 편의상 완전한 이해를 제공하기 위해 많은 구체적인 세부 사항이 제시된다. 그러나, 구체적인 세부 사항이 없더라도 신규한 실시예가 실시될 수 있다는 것이 명백할 수 있다. 다른 예에서는 설명을 용이하게 하기 위해 주지된 구조 및 디바이스가 블록도 형태로 도시된다. 청구된 발명 대상과 양립하는 모든 변경, 균등물, 및 대안을 포함한다는 점이 의도된다.
도 1은 컴퓨팅 시스템, 특히 컴퓨팅 시스템(105)의 일 실시예를 도시한다. 다양한 실시예에서, 컴퓨팅 시스템(105)은 도 3의 논리 흐름(300), 도 4의 논리 흐름(400), 도 5의 논리 흐름(500), 도 6의 논리 흐름(600)과 같이 본 명세서에 설명된 하나 이상의 실시예와 함께 사용하기에 적절한 컴퓨팅 시스템을 대표할 수 있다. 실시예는 이 점으로 제한되지 않는다.
도 1에 도시된 바와 같이, 컴퓨팅 시스템(105)은 복수의 구성 요소를 포함할 수 있다. 하나 이상의 구성 요소는 주어진 설계 또는 성능 제약 세트를 위해 요구된 바에 따라 하나 이상의 회로, 컴포넌트, 레지스터(register), 프로세서, 소프트웨어 서브루틴, 모듈, 또는 이들의 모든 조합을 사용하여 구현될 수 있다. 비록 도 1이 소정의 토폴로지(topology) 내에 제한된 개수의 구성 요소를 예로서 도시하고 있지만, 주어진 구현을 위해 요구된 바에 따라 모든 적절한 토폴로지 내의 보다 많거나 보다 적은 구성 요소가 컴퓨팅 시스템(105) 내에서 사용될 수 있다는 것이 이해될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 시스템(105)는 처리 컴포넌트(102)를 포함할 수 있다. 처리 컴포넌트(102)는 마이크로컴퓨터, 프로세서, 중앙 처리 장치, 디지털 신호 처리 유닛, 듀얼 코어 프로세서, 모바일 디바이스 프로세서, 데스크탑 프로세서, 단일 코어 프로세서, SoC(system-on-chip) 디바이스, CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 단일 칩 또는 집적 회로 상의 모든 다른 유형의 프로세서, 처리 회로, 또는 처리 회로 소자와 같은 하지만 이에 제한되지 않는 임의 유형의 컴퓨터 구성 요소 중 하나 이상일 수 있다. 처리 컴포넌트(102)는 하나 이상의 버스, 제어 라인, 및 데이터 라인과 같은 인터커넥트(125)를 통해 컴퓨팅 시스템의 나머지 구성 요소에 접속될 수 있고 통신할 수 있다.
하나의 실시예에서, 컴퓨팅 시스템(105)은 처리 컴포넌트(102)에 결합된 메모리 유닛(104)을 포함할 수 있다. 메모리 유닛(104)은 주어진 구현을 위해 요구된 바와 같이 인터커넥트(125)를 통해 또는 처리 컴포넌트(102)와 메모리 유닛(104) 사이의 전용 통신 버스에 의해 처리 컴포넌트(102)에 결합될 수 있다. 메모리 유닛(104)은 휘발성 메모리 및 비휘발성 메모리를 모두 포함하는 데이터를 저장할 수 있는 모든 기계 판독 가능하거나 컴퓨터 판독 가능 매체를 사용하여 구현될 수 있다. 일부 실시예에서, 기계 판독 가능하거나 컴퓨터 판독 가능 매체는 비일시적인 매체(non-transitory medium)를 포함할 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
메모리 유닛(104)는 데이터를 잠시, 일시적으로, 또는 영구적으로 저장할 수 있다. 메모리 유닛(104)은 컴퓨팅 시스템(105)을 위한 명령어 및 데이터를 저장한다. 처리 컴포넌트(102)가 명령어를 실행하는 동안에 메모리 유닛(104)은 일시적인 변수 또는 다른 중간 정보도 또한 저장할 수 있다. 메모리 유닛(104)은 전술된 데이터를 저장하는 것으로 제한되지 않으며, 그와 반대로 메모리 유닛(104)은 모든 유형의 데이터를 저장할 수 있다.
다양한 실시예에서, 컴퓨팅 시스템(105)은 디스플레이 유닛(106)을 포함할 수 있다. 디스플레이 유닛(106)은 처리 컴포넌트(102)로부터 수신된 정보를 디스플레이할 수 있는 모든 디스플레이 디바이스를 구성할 수 있다. 디스플레이 유닛(106)은 예를 들어 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor-LCD), OLED(Organic Light Emitting Diode), 가요성 디스플레이(flexible display), 3차원(3D) 디스플레이, 및 프로젝터 중 적어도 하나를 포함할 수 있다. 디스플레이 유닛(106)은 컴퓨팅 시스템(105)의 기능을 제어하는 것에 연관된 사용자 인터페이스(User Interface(UI)) 또는 그래픽 사용자 인터페이스(Graphical User Interface(GUI))를 디스플레이할 수 있다. 컴퓨팅 디바이스는 다양한 실시예에 따라 두 개 이상의 디스플레이 유닛을 포함할 수 있다. 예를 들어, 하나의 실시예에서, 컴퓨팅 디바이스는 두 개의 LCD 디스플레이를 포함할 수 있다.
다양한 구현예에서, 컴퓨팅 시스템(105)은 배터리(108)를 포함할 수 있다. 배터리(108)는 리튬 이온 배터리, 니켈 카드뮴 배터리, 염화 아연 배터리 등을 포함하지만 그에 제한되지 않는 컴퓨팅 시스템(105)을 위한 전력을 저장하는 모든 유형의 배터리일 수 있다. 배터리는 재충전 가능할 수 있다. 일부 실시예에서, 컴퓨팅 시스템(105)은 하나 초과의 배터리를 가질 수 있다. 일부 실시예에서, 배터리는 제거 가능할 수 있다. 다른 실시예에서, 배터리는 고정될 수 있다.
다양한 실시예에서, 컴퓨팅 시스템(105)은 스토리지(110)를 포함할 수 있다. 스토리지(110)는 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 부착형 스토리지 디바이스, 플래시 메모리, 배터리 백업형(battery backed-up) SDRAM(synchronous DRAM), 및/또는 네트워크 접근 가능한 스토리지 디바이스와 같은 그렇지만 그에 제한되지 않는 비휘발성 스토리지 디바이스로서 구현될 수 있다. 실시예에서, 스토리지(110)는 예를 들어 복수의 하드 드라이브가 포함될 때 값비싼 디지털 매체를 위한 스토리지 성능 개선 보호를 증가시키는 기술을 포함할 수 있다. 스토리지(110)의 추가적인 예는 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk Rewriteable), 광 디스크, 자기 매체, 광자기 매체(magneto-optical media), 제거 가능한 메모리 카드 또는 디스크, 다양한 유형의 DVD 디바이스, 테이프 디바이스, 카세트 디바이스 등을 포함할 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
일부 실시예에서, 컴퓨팅 시스템(105)은 하나 이상의 I/O 어댑터(112)를 포함할 수 있다. I/O 어댑터(112)의 예는 USB(Universal Serial Bus) 포트/어댑터, IEEE 1394 파이어와이어(Firewire) 포트/어댑터 등을 포함할 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 시스템(105)은 송수신기(114)를 포함할 수 있다. 송수신기(114)는 다양한 적절한 무선 통신 기법을 사용하여 신호 및 정보를 송신하고 수신할 수 있는 하나 이상의 무선(radio)을 포함할 수 있다. 이러한 기법은 하나 이상의 무선 네트워크를 통한 통신을 포함할 수 있다. 예시적인 무선 네트워크는 WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰러 네트워크, 및 인공위성 네트워크를 포함한다(그렇지만 그에 제한되지 않는다). 이러한 네트워크를 통해 통신하는데 있어서, 송수신기(114)는 하나 이상의 적용 가능한 표준에 따라 모든 버전에서 동작할 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
다양한 실시예에서, 컴퓨팅 시스템(105)은 그래픽 처리 유닛(graphics processing unit(GPU), 116)을 포함할 수 있다. GPU(116)는 비디오 디코더 엔진 및 프레임 상관 엔진(frame correlation engine)은 물론 그래픽 관련 동작을 수행하기에 최적화된 모든 처리 유닛, 논리 또는 회로를 포함할 수 있다. GPU(116)는 비디오 게임, 그래픽, CAD(computer-aided design), 시뮬레이션 및 시각화 도구, 촬영 등과 같은 다양한 애플리케이션을 위한 2차원(2-D) 및/또는 3차원(3-D) 영상을 렌더링하기 위해 사용될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 그와 반대로 GPU(116)는 그림, 비디오, 프로그램, 애니메이션, 3D, 2D 등과 같은 모든 유형의 그래픽 데이터를 처리할 수 있다.
도 2는 그래픽을 처리하고 시각 출력을 조정하기 위한 시스템(200)의 제 1 블록도의 일 실시예를 도시한다. 도 2에 도시된 바와 같이, 시스템(200)은 그래픽 및 그래픽 관련 동작을 처리하기 위한 복수의 모듈 및 구성 요소를 포함할 수 있다. 다양한 실시예에서, 시스템(200)은 애플리케이션(202), 그래픽 드라이버 모듈(204), 그래픽 처리 유닛(206), 디스플레이 서브시스템(208), 시각 품질 메트릭 모듈(210) 및 시각 품질 조정 모듈(212)을 포함할 수 있다. 시스템(200)의 모듈 및 구성 요소는 하나 이상의 버스(bus), 트레이스(trace), 패스웨이(pathway) 등과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 인터커넥트를 통해 서로 통신할 수 있다. 다양한 모듈 및 구성 요소는 메시지, HTML 메시지, XML 메시지, 호출(call), 함수 호출(function call), 미들웨어(middleware), COBRA(Common Object Request Broker Architecture) 등과 같은 모든 소프트웨어 통신 방법을 통해 서로 정보를 통신할 수 있다.
시스템(200)은 도 2에 도시된 이들 구체적인 모듈 및 구성 요소에 제한되지 않을 수 있다. 예를 들어, 시스템(200)은 그래픽 및 그래픽 관련 동작을 처리하는 모든 개수의 모듈 및 구성 요소를 포함할 수 있다. 다양한 실시예에서, 시스템(200)의 소정의 모듈 및 구성 요소는 컴퓨팅 시스템(105) 상에서 또는 컴퓨팅 시스템(105)과 함께 동작할 수 있다. 예를 들어, 시스템(200)의 모듈 및 구성 요소는 메모리(104) 내에 저장될 수 있고 처리 컴포넌트(102)에 의해 처리될 수 있다.
애플리케이션(202)은 모든 유형의 애플리케이션 또는 소프트웨어일 수 있다. 다양한 실시예에서, 애플리케이션(202)은 엔터프라이즈 소프트웨어, 회계 소프트웨어, 오피스 스위트(office suite), 그래픽 소프트웨어, 게이밍 소프트웨어, 매체 소프트웨어, 웹 기반 애플리케이션, 컴퓨터 시스템 소프트웨어, 교육 소프트웨어, 시뮬레이션 소프트웨어, 콘텐츠 접근 소프트웨어, 매체 개발 소프트웨어, 제품 엔지니어링 소프트웨어 등일 수 있다. 애플리케이션(202)은 이러한 방식으로 제한되지 않으며, 그와 반대로 애플리케이션(202)은 컴퓨팅 시스템 상에서 데이터를 처리하기 위한 임의의 유형의 애플리케이션 또는 소프트웨어일 수 있다.
그래픽 드라이버 모듈(204)은 시스템(200) 상에서 동작하는 그래픽 하드웨어와 소프트웨어 사이에 인터페이스를 제공하는 모든 유형의 그래픽 드라이버 소프트웨어일 수 있다. 예를 들어, 그래픽 드라이버 모듈(204)은 그래픽 처리 유닛(GPU, 206)과 시스템(200)의 나머지 모듈 및 구성 요소를 위한 인터페이스를 제공할 수 있고 그들 사이에 통신을 가능하게 할 수 있다. 그러나, 그래픽 드라이버 모듈(204)은 이러한 방식으로 제한되지 않는다. 예를 들어, 그래픽 드라이버 모듈(204)은 그래픽 드라이버 모듈(204)과 시스템(200) 상에서 동작하는 운영 시스템(도시되지 않음) 사이에 통신을 가능하게 할 수 있다. 다양한 실시예에서, 그래픽 드라이버 모듈(204)은 컴퓨팅 시스템(105) 상에서 실행 중인 애플리케이션(202)으로부터 함수 호출을 수신할 수 있다. 그래픽 드라이버 모듈(204)은 그래픽이 GPU(206)에 의해 렌더링될 수 있도록 함수 호출을 GPU(206)로도 또한 라우팅할 수 있다. 다양한 실시예에서, 그래픽 드라이버 모듈(204)은 메모리(104) 내에 저장될 수 있고 처리 컴포넌트(102)에 의해 처리될 수 있다. 그러나, 그래픽 드라이버 모듈(204)은 이러한 방식으로 제한되지 않는다. 그래픽 드라이버 모듈(204)은 모든 유형의 스토리지 디바이스 내에 저장될 수 있고 모든 유형의 처리 디바이스에 의해 처리될 수 있다.
다양한 실시예에서, 그래픽 드라이버 모듈(204)은 사용자 모드 드라이버일 수 있다. 사용자 모드 드라이버는 보호된 서브시스템 코드(protected subsystem code)를 포함하는 다른 애플리케이션 코드가 실행되고 있는 비특권 프로세서 모드(non-privileged processor mode)에서 실행된다. 그러나, 다양한 실시예는 이러한 방식으로 제한되지 않으며, 그와 반대로 그래픽 드라이버 모듈(204)은 함께 작업 중인 사용자 모드 드라이버와 커널(kernel) 모드 드라이버의 결합일 수 있다. 커널 모드 드라이버는 운영 시스템의 운영부(executive)인 하나 이상의 보호된 서브시스템을 지원하는 근본적인 운영 시스템 컴포넌트의 일부로서 실행될 수 있다.
그래픽 드라이버 모듈(204)은 또한 비디오 스트림의 각각의 프레임을 처리하기 위한 프레임 속도 또는 프레임 시간을 설정하기 위해 또한 사용될 수 있다. 프레임 속도는 그래픽 시스템(200)이 프레임으로 지칭되는 고유한 연속 영상을 처리하는 주파수(속도)이다. 프레임 속도는 초당 프레임(frames per second(FPS))으로 종종 표현된다. 프레임 시간은 프레임 속도의 역수이며 하나의 프레임을 처리하는데 걸리는 시간의 양이다. 따라서, 프레임 시간이 증가함에 따라 프레임 속도는 감소하며 그 반대도 또한 성립한다. 프레임 시간은 마이크로초, 밀리초, 초, 분 등과 같은 모든 시간 단위로 표현될 수 있다.
그래픽 처리 유닛(GPU, 206)은 그래픽을 처리하기 위한 모든 유형의 처리 회로일 수 있다. GPU(206)는 독립적인 동작들을 동시에 수행하는 복수의 처리 유닛을 포함할 수 있다. GPU(206)는 하나의 애플리케이션으로부터 수신된 임무를 처리하기 위한 복수의 그래픽 프리미티브 동작(graphics primitive operation)을 구현할 수 있다. 다양한 실시예에서, GPU(206)는 드로잉(drawing), 텍스처링(texturing), 3-D 그래픽 렌더링, 2-D 그래픽 렌더링, 매트릭스 계산 및 벡터 계산을 포함하지만 그에 제한되지 않는 임의의 유형의 그래픽 작업을 처리할 수 있다.
다양한 실시예에서, GPU(206)는 프레임 데이터, 색 데이터 등과 같은 정보를 렌더링할 수 있다. 예를 들어, GPU(206)는 애플리케이션(202)과 같은 하나 이상의 애플리케이션으로부터 프레임 데이터를 수신할 수 있다. GPU(206)는 예를 들어 처리 컴포넌트(102) 상에서 실행 중인 애플리케이션에 의해 전부 또는 부분적으로 생성된 프레임 데이터를 수신한다. 그런 다음, GPU(206)는 디스플레이 서브시스템(208) 및 디스플레이 유닛(106)과 같은 디스플레이 디바이스에 제공될 수 있는 렌더링된 프레임(예를 들어, 비디오 프레임 또는 그래픽의 전부 또는 일부에 상응하는 디지털 픽셀 정보의 파일)을 생성하기 위해 프레임 데이터를 렌더링할 수 있다. 그러나, GPU(206)는 이러한 방식으로 제한되지 않는다. GPU(206)는 애플리케이션 또는 운영 시스템으로부터 수신된 모든 유형의 그래픽 정보를 처리할 수 있다.
일부 실시예에서, 시스템(200)은 디스플레이 서브시스템(208)을 포함할 수 있다. 디스플레이 서브시스템(208)는 디스플레이(106)와 같은 실제 디스플레이를 제어할 책임이 있다. 다양한 실시예에서, 디스플레이 서브시스템(208)은 프레임버퍼 어드레스, 및 프레임의 폭, 높이, 스트라이드(stride) 및 픽셀 포맷과 같은 정보를 유지하고 처리할 수 있다. 또한, 디스플레이 서브시스템(208)은 프레임에 대한 픽셀을 메모리로부터 래스터(raster) 순서대로(즉, 왼쪽에서 오른쪽으로 그리고 상부에서 하부로) 검색할 수 있고 프레임에 대한 픽셀을 디스플레이를 위해 디스플레이로 보낼 수 있다. 디스플레이 유닛(106)은 픽셀을 디스플레이 서브시스템(208)으로부터 수신할 수 있고 픽셀을 디스플레이 상에 디스플레이할 수 있다.
시각 품질 메트릭 모듈(210)은 그래픽 처리 스트림(graphics processing stream)의 프레임을 평가할 수 있고, 스트림 내에서 프레임들 사이의 변화량을 판단할 수 있다. 비록 도 2가 시각 품질 메트릭 모듈(210)을 그래픽 드라이버 모듈(204) 및 GPU(206)로부터 분리된 상태로 도시하고 있지만, 일부 실시예에서, 시각 품질 메트릭 모듈(210)은 그래픽 드라이버 모듈(204) 또는 GPU(206) 중 어느 하나 또는 두 개 모두의 일부일 수 있거나 또는 그 내부에 구현될 수 있다. 시각 품질 메트릭 모듈(210)은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.
시각 품질 메트릭 모듈(210)은 각각의 프레임에 대한 영상 정보를 GPU(206)로부터 수신할 수 있는데, 왜냐하면 영상 정보가 디스플레이로의 출력을 위해 디스플레이 서브시스템(208)으로 보내지기 때문이다. GPU(206)의 출력은 각각의 픽셀에 대한 영상 정보를 포함하는 픽셀의 비트맵일 수 있다. 영상 정보는 프레임을 디스플레이로 디스플레이하기 위해 각각의 픽셀에 대한 픽셀의 하나 이상의 채널에 대한 픽셀 색 채널 정보를 포함하는 픽셀 색 정보(pixel color information), 색상 정보(hue information), 휘도 값 등을 포함할 수 있다. 일부 실시예에서, 영상 정보는 버텍스(vertex) 정보, 쉐이더(shader) 정보, 테셀레이션(tessellation) 정보, 프레임 정보도 또한 포함할 수 있다. 그런 다음, 시각 품질 메트릭 모듈(210)은 변화량을 판단하기 위해 현재 프레임과 이전 프레임을 비교할 수 있다. 일부 실시예에서, 이전 프레임은 현재 프레임에 바로 선행하는 프레임일 수 있지만, 다양한 실시예는 이러한 방식으로 제한되지 않으며 이전 프레임은 현재 프레임의 모든 이전 프레임일 수 있다. 각각의 프레임에 대한 영상 정보는 현재 프레임과 이전 프레임 사이의 비교 중에 사용하기 위해 메모리 또는 스토리지 내에 저장될 수 있다.
일부 실시예에서, 시각 품질 메트릭 모듈(210)은 프레임 내의 각각의 픽셀에 대한 영상 정보 또는 그 영상정보로부터 판단된 정보를 단일 픽셀 단위로 비교할 수 있다. 일부 실시예에서, 시각 품질 메트릭 모듈(210)은 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보와 이전 프레임의 픽셀 색 정보를 비교할 수 있다. 예를 들어, 픽셀 색 정보는 픽셀의 적색, 녹색, 청색 및 알파(alpha)(RGBA) 채널과 같은 하나 이상의 채널에 대한 픽셀 색 채널 정보를 포함할 수 있다. 시각 품질 메트릭 모듈(210)은 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보의 절대값과 동일한 픽셀 위치에 존재하는 이전 프레임으로부터의 픽셀의 픽셀 색 정보의 절대값을 비교할 수 있다. 다양한 실시예는 네 개의 채널에 대한 픽셀 색 정보를 비교하는 것으로 제한되지 않으며, 현재 프레임과 이전 프레임 사이의 변화를 판단하기 위해 모든 개수의 채널에 대한 픽셀 색 정보가 비교될 수 있다.
일부 실시예에서, 시각 품질 메트릭 모듈(210)은 현재 프레임의 각각의 픽셀에 대한 휘도 값과 동일한 위치에 존재하는 이전 프레임의 각각의 픽셀에 대한 상응하는 휘도 값을 비교할 수 있다. 따라서, 과거 픽셀과 비교되는 각각의 픽셀에 대한 변화량을 판단하기 위해 일대일 비교가 수행된다. 그러나, 모든 현재 픽셀과 과거 픽셀을 비교하는 것은 시간 소모적이고 자원 비효율적일 수 있다. 일부 실시예에서, 휘도 값은 영상 정보 내의 픽셀 색 정보로부터 판단될 수 있다.
다양한 실시예에서, 시각 품질 메트릭 모듈(210)은 변화량을 판단하기 위해 비트맵의 픽셀을 샘플링할 수 있고 그 픽셀의 부분집합을 사용할 수 있다. 예를 들어, 시각 품질 메트릭 모듈(210)은 M x M 정규 그리드(regular grid)의 샘플 비트맵 크기를 정의할 수 있고, 신규 비트맵을 생성하기 위해 본래의 비트맵으로부터의 모든 M x M 픽셀로부터 오직 하나의 픽셀만을 선택할 수 있다. 결과적으로 생성된 비트맵은 W/M x H/M의 크기를 갖는 그리드일 것이며, 여기서 W는 본래의 비트맵의 폭이고 H는 본래의 비트맵의 높이이다. 다양한 실시예는 이러한 예로 제한되지 않으며, 그와 반대로 시각 품질 메트릭 모듈(210)은 디스플레이의 특정 영역을 샘플링하는 것과 같이 다른 샘플링 패턴을 선택할 수 있다.
일단 비교를 위한 픽셀이 판단되면, 시각 품질 메트릭 모듈(210)은 영상 정보의 픽셀 색 정보를 샘플링 또는 전체 프레임 내의 각각의 픽셀에 대한 휘도 값으로 변환시킬 수 있다. 예를 들어, 각각의 픽셀에 대한 적색, 녹색, 청색 및 알파(RGBA) 정보는 휘도 값 또는 인지된 명도 값으로 변환될 수 있다. 일부 실시예에서, 시각 품질 메트릭 모듈(210)은 RGBA 정보를 휘도 값으로 변환시키는 것으로 제한되지 않으며 모든 색 채널을 휘도 값으로 변환시킬 수 있다.
다양한 실시예에서, 시각 품질 메트릭 모듈(210)은 각각의 픽셀 사이의 정규화된 차이를 판단하기 위해 현재 프레임의 각각의 픽셀에 대한 휘도 값과 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교할 수 있다. 일부 실시예에서, 수학식 1이 정규화된 차이를 판단하기 위해 사용될 수 있지만, 다른 실시예는 정규화된 차이를 판단하기 위한 다른 방법을 포함할 수 있다
Figure 112016046892279-pat00001
여기서,
Figure 112016046892279-pat00002
는 하나의 위치에서 현재 프레임과 이전 프레임 사이의 정규화된 차이이고,
Figure 112016046892279-pat00003
는 현재 프레임 픽셀 휘도 값이며,
Figure 112016046892279-pat00004
는 이전 프레임 픽셀 휘도 값이고, abs는 절대 값 함수이다.
일부 실시예에서, 각각의 픽셀에 대한 정규화된 차이 값은 샘플링 비트맵 크기와 동일한 크기를 갖는 비트맵 내에 저장될 수 있다. 그러나, 정규화된 차이 값은 어레이 또는 버퍼 내와 같이 모든 다른 방식으로도 또한 저장될 수 있다.
각각의 픽셀에 대한 정규화된 차이 값은 전체 비트맵에 대한 최대 평균 정규화된 차이 값을 현재 프레임과 이전 프레임 사이의 변화량으로서 판단하기 위해 사용될 수 있다. 최대 평균 정규화된 차이 값은 프레임에 대한 전체 픽셀 개수로 나눈 각각의 픽셀에 대한 모든 정규화된 차이 값의 평균에 기반할 수 있다.
최대 평균 정규화된 차이 값은 샘플링 비트맵을 하나 이상의 영역을 분할한 다음에 각각의 영역에 대한 평균 정규화된 차이 영역 값을 판단하기 위해 각각의 영역 내의 픽셀에 대한 정규화된 차이 값을 평균함으로써 또한 판단될 수도 있다. 비트맵을 하나 이상의 영역으로 분할하는 것의 장점은 정규화된 차이 함수의 검출 국소 민감도(detection local sensitivity)를 증가시키는 것이다. 평균 정규화된 차이 영역 값은 요구된 개수의 영역이 도달될 때까지 비트맵 서브샘플링 동작 시퀀스(sequence of bitmap subsampling operations)에 기반할 수 있다. 예를 들어, 시각 품질 메트릭 모듈(210)은 서브샘플링의 각각의 반복에 대해 2x2 픽셀을 단일 값으로 평균함으로써 비트맵을 신규한 1/2W x 1/2H 비트맵으로 서브샘플링한다. 최대 평균 정규화된 차이 값은 최대 평균 정규화된 차이 영역 값이다. 그런 다음, 최대 평균 정규화된 차이 값은 보다 상세하게 후술되는 바와 같이 인지된 품질 문턱 값과의 비교에서 사용될 수 있다.
시스템(200)은 프레임 시간 또는 프레임 속도를 조정하는 것을 가능하게 하고 또는 프레임 시간 및/또는 프레임 속도를 조정하는 시각 품질 조정 모듈(212)도 또한 포함할 수 있다. 비록 도 2가 시각 품질 조정 모듈(212)을 그래픽 드라이버 모듈(204) 및 GPU(206)로부터 분리된 상태로 도시하고 있지만, 일부 실시예에서, 시각 품질 조정 모듈(212)은 그래픽 드라이버 모듈(204) 또는 GPU(206) 중 어느 하나 또는 두 개 모두의 일부일 수 있거나 또는 그 내부에 구현될 수 있다. 시각 품질 조정 모듈(212)은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.
다양한 실시예에서, 시각 품질 조정 모듈(212)은 먼저 하나 이상의 기준에 기반하여 프레임 시간 및/또는 프레임 속도에 대한 조정을 가능하게 할지를 판단할 수 있다. 예를 들어, 시각 품질 조정 모듈(212)이 컴퓨팅 디바이스와의 상호작용 중에 조정에 의해 사용자의 경험이 (조금이라도 또는 허용 가능한 수준 미만으로) 저하될 것이라고 판단하면, 조정이 발생하지 않을 수 있다. 시각 품질 조정 모듈(212)은 수 초 동안 또는 미리 정해진 개수의 프레임 동안과 같이 미리 정해진 시간 동안 조정을 불가능하게 하거나 금지할 수 있다. 미리 정해진 시간은 모든 시간일 수 있고, 미리 정해진 개수의 프레임은 모든 개수의 프레임일 수 있다.
하나 이상의 기준은 시각 품질 조정 처리 오버헤드가 시스템 전력에 있어서의 절감된 전력 양보다 큰지를 판단하는 것을 포함할 수 있다. 이러한 기준은 시각 품질 조정을 미리 정해진 절감된 전력 문턱 값 미만으로 처리하는 동안에 그래픽 처리 유닛(GPU) 이용에 기반할 수 있다. 또 다른 기준은 시각 품질 조정 처리 오버헤드가 전체 시스템 성능을 저하시킬지를 판단하는 것일 수 있다. 이러한 기준은 시각 품질 조정을 성능 문턱 값보다 크게 처리하는 동안에 GPU 이용에 기반할 수 있다. 세 번째 기준은 전력 절감 기회가 복수의 프레임에 걸쳐 발생할지를 판단하는 것일 수 있다. 예를 들어, 복수의 미리 정해진 프레임에 걸쳐 아무런 조정이 수행되지 않으면, 시각 품질 조정 모듈(212)은 전술된 바와 같이 일정 시간 동안 또는 복수의 프레임 동안 처리를 불가능하게 할 수 있다. 네 번째 기준에서, 시각 품질 조정 모듈(212)은 GPU 이용에 기인하는 레이턴시(latency)가 사용자 경험을 정해진 레이턴시 문턱 값(latency threshold) 미만으로 저하시키는지를 판단할 수 있다. 정해진 레이턴시 문턱 값은 사용자 입력에 응답하여 지연이 발생하지 않도록 레이턴시의 양을 제한하기 위해 사용자에 의해 정해진 레이턴시 문턱 값이거나 디폴트(default)로 정해진 레이턴시 문턱 값일 수 있다.
시각 품질 조정 모듈(212)은 각각의 프레임에 대한 프레임 시간을 조정함으로써 프레임 속도를 조정할 수 있다. 전술된 바와 같이 프레임 속도와 프레임 시간은 반비례하므로, 프레임 시간이 증가함에 따라 프레임 속도는 감소하고 그 반대도 또한 성립한다. 다양한 실시예에서, 시각 품질 조정 모듈(212)은 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간을 조정할 수 있다.
전술된 바와 같이, 시각 품질 메트릭 모듈(210)은 최대 평균 정규화된 차이 값을 현재 프레임과 이전 프레임 사이의 차이의 표현으로서 판단할 수 있다. 그런 다음, 최대 평균 정규화된 차이 값은 인지된 품질 문턱 값과 비교될 수 있다. 인지된 품질 문턱 값은 변화량이 인지된 품질 문턱 값보다 클 때 사용자에게 허용 가능한 수준보다 높은 수준에서 현재 프레임 속도에서 또는 보다 느린 프레임 속도에서 저하가 발생할 수 있도록 디폴트 설정이거나 또는 디바이스의 사용자 또는 관리자에 의해 미리 정해질 수 있다. 그러나, 변화량이 인지된 문턱 값보다 작으면, 프레임 속도는 감소될 수 있고, 사용자는 품질 저하를 경험하지 않거나 허용 가능한 수준의 저하를 경험할 것이다.
따라서, 최대 평균 정규화된 차이 값은 인지된 품질 문턱 값과 비교될 수 있고, 차이 값이 문턱 값보다 크면, 프레임 속도는 증가될 수 있고/있거나 프레임 시간은 감소될 수 있다. 그러나, 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 작으면, 프레임 속도는 감소될 수 있고/있거나 프레임 시간은 증가될 수 있다. 일부 실시예에서, 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값과 같으면, 프레임 속도 및/또는 프레임 시간에 대한 변화가 발생하지 않을 것이다.
프레임 시간(및 프레임 속도)에서의 변화는 타겟 프레임 시간을 판단하기 위해 상기에 인용된 분석에 기반하여 프레임 시간의 증가 또는 감소로서 발생할 수 있다. 프레임 시간은 마이크로초, 밀리초, 초 등과 같은 시간 단위에 의해 변화될 수 있고, 변화량은 사용자 또는 관리자에 의해 구성 가능할 수 있거나 설정될 수 있다. 일부 실시예에서, 프레임 시간에서의 변화량은 디폴트 설정일 수 있다. 보다 상세하게 후술되는 바와 같이, 변화는 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값과 같고 타겟 프레임 시간이 판단될 때까지 복수의 프레임에 걸쳐 발생할 수 있다.
도 3을 참조하여 명백한 바와 같이, 시각 품질 조정 모듈(212)은 프레임 시간 및 프레임 속도에서의 변화를 "평활(smooth out)"하게 하기 위해 증가 값 및 감속 값에 대한 이력 값(hysteresis value)을 사용할 수 있다. 일부 실시예에서, 시각 품질 조정 모듈(212)은 다운 프레임 시간 이력 값(down frame time hysteresis value) 및 업 프레임 시간 이력 값(up frame time hysteresis value)의 트랙(track)을 저장하고 유지할 수 있으며, 상응하는 이력 문턱 값이 도달되고/되거나 초과되는 경우에만 타겟 프레임 시간을 증가시키거나 감소시킬 것이다.
보다 구체적으로, 최대 평균 차이 값이 인지된 품질 문턱 값보다 클 때, 다운 프레임 시간 이력 값은 다운 프레임 시간 이력 문턱 값보다 클 때까지 증가된다. 오직 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 커진 다음에만 타겟 프레임 시간이 감소될 것이다(그리고 프레임 속도가 증가될 것이다). 또한, 최대 평균 차이 값이 인지된 품질 문턱 값보다 작을 때, 업 프레임 시간 이력 값은 업 프레임 시간 이력 문턱 값보다 클 때까지 증가된다. 오직 업 프레임 시간 이력 값이 업 프레임 시간 이력 문턱 값보다 큰 다음에만 타겟 프레임 시간이 증가될 것이다(그리고 프레임 속도가 감소될 것이다).
타겟 프레임 시간은 그래픽 드라이버 모듈(204)이 그래픽을 처리하기 위한 GPU(206)로의 신규 명령의 제출을 지연시키게 함으로써 구현될 수 있는 프레임 속도를 제한하기 위해 그래픽 드라이버 모듈(204) 및 GPU(206)에 의해 사용될 수 있다. 일부 실시예에서, GPU(206) 동작 주파수는 판단된 타겟 프레임 시간에 기반하여 조정될 수 있다.
일부 실시예에서, 시각 품질 조정 모듈(212)은 렌더링 매개변수(rendering parameter), 해상도(resolution), 색 정확도(color accuracy), 및 텍스처 필터링(texture filtering)과 같은 다른 시각 출력 매개변수를 조정할 수 있다. 예를 들어, 시각 품질 조정 모듈(212)은 현재 프레임과 이전 프레임 사이의 변화량이 크다고 식별할 수 있고 사용자의 경험을 저하시키지 않으면서 렌더링 해상도를 감소시킬 수 있다. 다른 실시예에서, 색 정확도에 대한 채널당 비트(bits per channel)는 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 조정될 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 다른 시각 출력 매개변수가 변화량에 기반하여 조정될 수 있다.
도 3은 시각 출력에 대한 조정을 판단하기 위한 제 1 논리 흐름(300)의 일 실시예를 도시한다. 명료성을 위해, 논리 흐름(300)은 도 1 및 도 2의 시스템(100) 및 시스템(200)을 참조하여 논의된다. 블록(302)에서, 시각 품질 메트릭 모듈(210)은 현재 프레임에 대한 영상 정보를 GPU(206)로부터 수신할 수 있다. 영상 정보는 프레임의 각각의 픽셀에 대한 색 정보, 색상 정보, 버텍스 정보, 쉐이더 정보, 테셀레이션 정보, 프레임 정보 등을 포함할 수 있다. 그런 다음, 블록(304)에서, 시각 품질 메트릭 모듈(210)은 현재 프레임과 이전 프레임 사이의 변화량을 판단하기 위해 현재 프레임의 영상 정보와 이전 프레임의 영상 정보를 비교할 수 있다. 일부 실시예에서, 이전 프레임은 현재 프레임에 바로 선행하는 프레임일 수 있지만, 다양한 실시예는 이러한 방식으로 제한되지 않으며 이전 프레임은 현재 프레임의 모든 이전 프레임일 수 있다. 각각의 프레임에 대한 영상 정보는 현재 프레임과 이전 프레임 사이의 비교 중에 사용하기 위해 메모리 또는 스토리지 내에 저장될 수 있다.
시각 품질 메트릭 모듈(210)은 현재 프레임과 이전 프레임 사이의 변화량을 판단하기 위해 현재 프레임의 영상 정보에 기반하는 정보와 이전 프레임의 영상 정보에 기반하는 정보를 비교할 수 있다. 보다 구체적으로, 시각 품질 메트릭 모듈(210)은 현재 프레임과 이전 프레임 각각에 존재하는 각각의 픽셀에 대한 휘도 값을 판단할 수 있고, 변화량을 판단하기 위해 휘도 값들을 비교할 수 있다. 도 4를 참조하여 보다 상세하게 후술되는 바와 같이, 최대 평균 정규화된 차이 값이 휘도 값으로부터 결정될 수 있고, 조정을 판단하기 위해 최대 평균 정규화된 차이 값은 인지된 품질 문턱 값과 비교될 수 있다.
논리 흐름(300)의 블록(306)에서, 최대 평균 정규화된 차이 값에 의해 표현된 변화량이 인지된 품질 문턱 값보다 큰지에 대한 판단이 시각 품질 조정 모듈(212)에 의해 수행된다. 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 크면, 블록(308)에서 프레임 시간에서의 감소(프레임 속도에서의 증가)가 구현될 수 있다. 그러나, 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 작으면, 블록(312)에서 프레임 시간의 증가(프레임 속도에서의 감소)가 구현될 수 있다. 또한, 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값과 같으면, 블록(310)에서 프레임 시간 및/또는 프레임 속도에 대한 아무런 변화도 구현되지 않는다. 일단 조정이 구현되면, 블록(314)에서 그래픽 처리 시스템(200)은 조정을 이용하여 다음 프레임을 처리할 수 있고, 이러한 프로세스는 다음 프레임에 대해 반복될 수 있다.
도 4는 프레임들 사이의 변화량을 판단하기 위한 제 2 논리 흐름(400)의 일 실시예를 도시한다. 논리 흐름(400)은 표시자 A에 의해 표시된 바와 같이 도 3의 블록(304)에서 발생하는 처리를 대표할 수 있다. 명료성을 위해, 논리 흐름(400)은 도 1 및 도 2의 시스템(100) 및 시스템(200)을 참조하여 논의된다.
블록(402)에서, 시각 품질 메트릭 모듈(210)은 영상 정보로부터 수신된 비트맵의 픽셀을 샘플링할 수 있고, 변화량을 판단하기 위해 픽셀의 부분집합을 사용할 수 있다. 예를 들어, 시각 품질 메트릭 모듈(210)은 M x M 정규 그리드의 샘플 비트맵 크기를 정의할 수 있고, 신규 비트맵을 생성하기 위해 본래의 비트맵으로부터의 모든 M x M 픽셀로부터 오직 하나의 픽셀만을 선택할 수 있다. 결과적으로 생성된 비트맵은 W/M x H/M의 크기를 갖는 그리드일 것이며, 여기서 W는 본래의 비트맵의 폭이고 H는 본래의 비트맵의 높이이다. 다양한 실시예는 이러한 예로 제한되지 않으며, 그와 반대로 시각 품질 메트릭 모듈(210)은 디스플레이의 특정 영역을 샘플링하는 것과 같이 다른 샘플링 패턴을 선택할 수 있다.
그런 다음, 블록(404)에서 시각 품질 메트릭 모듈(210)은 픽셀 색 정보를 샘플링 또는 전체 프레임 내의 각각의 픽셀에 대한 휘도 값으로 변환시킬 수 있다. 예를 들어, 각각의 픽셀에 대한 적색, 녹색, 청색 및 알파(RGBA) 정보는 휘도 값 또는 인지된 명도 값으로 변환될 수 있다. 일부 실시예에서, 시각 품질 메트릭 모듈(210)은 RGBA 정보를 휘도 값으로 변환시키는 것으로 제한되지 않으며 모든 색 채널을 휘도 값으로 변환시킬 수 있다.
논리 흐름(400)의 블록(406)에서, 시각 품질 메트릭 모듈(210)은 블록(402)에서 선택된 샘플의 각각의 픽셀에 대한 정규화된 차이를 계산할 수 있다. 보다 구체적으로, 시각 품질 메트릭 모듈(210)은 동일한 위치에 있는 각각의 픽셀 사이의 정규화된 차이를 판단하기 위해 현재 프레임의 각각의 픽셀에 대한 휘도 값과 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교할 수 있다.
블록(408)에서, 샘플링 비트맵은 하나 이상의 영역으로 분할될 수 있고, 블록(410)에서, 영역 내의 각각의 픽셀에 대한 정규화된 차이 값은 각각의 영역에 대한 평균 정규화된 차이 영역 값을 판단하기 위해 사용될 수 있다. 또한, 블록(412)에서, 인지된 품질 문턱 값과 비교하는 동안에 사용하기 위해 최대 평균 정규화된 차이 영역 값에 기반하는 최대 평균 정규화된 차이 값이 판단된다.
도 5는 프레임 시간 및 프레임 속도를 조정하기 위한 제 3 논리 흐름(500)의 일 실시예를 도시한다. 명료성을 위해, 논리 흐름(500)은 도 1 및 도 2의 시스템(100) 및 시스템(200)을 참조하여 논의된다.
블록(502)에서, 시각 품질 조정 모듈(212)은 하나 이상의 기준에 기반하여 프레임 시간에 대한 조정을 가능하게 할지 또는 불가능하게 할지를 판단한다. 하나 이상의 기준은 시작 품질 조정 처리 오버헤드가 시스템 전력에 있어서의 절감된 전력 양보다 큰지를 판단하는 것을 포함할 수 있다. 이러한 기준은 시각 품질 조정을 미리 정해진 절감된 전력 문턱 값 미만으로 처리하는 동안에 그래픽 처리 유닛(GPU) 이용에 기반할 수 있다. 또 다른 기준은 시각 품질 조정 처리 오버헤드가 전체 시스템 성능을 저하시킬지를 판단하는 것일 수 있다. 이러한 기준은 시각 품질 조정을 성능 문턱 값보다 크게 처리하는 동안에 GPU 이용에 기반할 수 있다. 세 번째 기준은 전력 절감 기회가 복수의 프레임에 걸쳐 발생할 지를 판단하는 것일 수 있다. 예를 들어, 복수의 미리 정해진 프레임에 걸쳐 아무런 조정이 수행되지 않으면, 시각 품질 조정 모듈(212)은 전술된 바와 같이 일정 시간 동안 또는 복수의 프레임 동안 처리를 불가능하게 할 수 있다. 네 번째 기준에서, 시각 품질 조정 모듈(212)은 GPU 이용에 기인하는 레이턴시(latency)가 사용자 경험을 저하시키는지를 판단할 수 있다. 시각 품질 조정 모듈(212)이 조정을 가능하게 하지 않는 것으로 판단하면, 프로세스는 일정 시간 동안 또는 복수의 프레임 동안 종료하거나 정지할 것이다.
조정이 가능 상태로 되면, 블록(504)에서 시각 품질 조정 모듈(212)은 최대 평균 정규화된 차이 값과 인지된 품질 문턱 값을 수신한다. 다양한 실시예에서, 시각 품질 조정 모듈(212)은 프레임 시간에 대한 조정이 가능하게 되는지 또는 불가능하게 되는지에 대한 판단을 수행하기 전에 차이 값과 문턱 값을 수신할 수 있다. 시각 품질 조정 모듈(212)은 최대 평균 정규화된 차이 값을 시각 품질 메트릭 모듈(210)로부터 수신할 수 있다. 인지된 품질 문턱 값은 저장된 메모리로부터 수신되거나 검색될 수 있다.
블록(506)에서, 시각 품질 조정 모듈(212)은 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 큰지를 판단한다. 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 작으면, 블록(510)에서 시각 품질 조정 모듈(212)은 업 프레임 시간 이력 값을 1만큼 증가시킨다. 그러나, 최대 평균 정규화된 차이 값이 인지된 품질 문턱 값보다 크면, 시각 품질 조정 모듈(212)은 다운 프레임 시간 이력 값을 1만큼 증가시킨다. 업 프레임 시간 이력 값 및 다운 프레임 시간 이력 값은 프레임 시간 및 프레임 속도에 대한 조정이 급격하게 발생하지 않고 사용자에 바람직하지 않는 영향을 미치지 않는 것을 보장하는 카운터(counter)이다.
판단 블록(512)에서, 시각 품질 조정 모듈(212)은 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 큰지를 판단한다. 다운 프레임 시간 이력 문턱 값은 사용자에 의해 구성된 디폴트 값으로 미리 정해질 수 있고, 프레임 시간에서의 증가가 사용자의 경험에 부정적인 영향을 미치지 않도록 설정될 수 있다. 예를 들어, 다운 프레임 시간 이력 문턱 값은 프레임 시간에서의 감소가 작용되기 전에 다운 프레임 시간 이력 값이 세 번 증가되어야 하도록 3으로 설정되어서 프레임 시간에서의 변화가 너무 급격하게 발생하지 않는 것을 보장할 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 다운 프레임 시간 이력 문턱 값은 모든 값으로 설정될 수 있다. 블록(514)에서, 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 크면, 시각 품질 조정 모듈(212)은 프레임 시간을 일 밀리초 또는 일 초와 같은 단위 시간만큼 감소시킬 수 있고, 다운 프레임 시간 이력 값 및 업 프레임 시간 이력 값을 리셋할 수 있다.
블록(512)에서 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 크지 않다고 시각 품질 조정 모듈(212)이 판단하면, 블록(516)에서 업 프레임 시간 이력 값은 업 프레임 시간 이력 문턱 값과 비교된다. 업 프레임 시간 이력 문턱 값은 사용자에 의해 구성된 디폴트 값으로서 미리 정해질 수 있고, 프레임 시간의 증가가 사용자의 경험에 부정적인 영향을 미치지 않도록 설정될 수 있다. 예를 들어, 업 프레임 시간 이력 문턱 값은 프레임 시간의 증가가 작용되기 전에 업 프레임 시간 이력 값이 세 번 증가되어야 하도록 3으로 설정되어서 프레임 시간에서의 변화가 너무 급격하게 발생하지 않는 것을 보장할 수 있다. 다양한 실시예는 이러한 방식으로 제한되지 않으며, 업 프레임 시간 이력 문턱 값은 모든 값으로 설정될 수 있다. 업 프레임 시간 이력 값이 업 프레임 시간 이력 문턱 값보다 크면, 시각 품질 조정 모듈(212)은 프레임 시간을 일 밀리초 또는 일 초와 같은 단위 시간만큼 증가시킬 수 있고, 다운 프레임 시간 이력 값 및 업 프레임 시간 이력 값을 리셋할 수 있다.
업 프레임 시간 이력 값이 인지된 품질 문턱 값보다 크지 않으면, 시각 품질 조정 모듈(212)은 프레임 시간을 변화시키지 않는다. 블록(520)에서, 블록(514, 516 및 518)에서의 프레임 시간의 증가, 감소 또는 불변에 기반하여 타겟 프레임 시간이 판단된다. 타겟 프레임 시간은 그래픽 드라이버 모듈(204)이 그래픽을 처리하기 위한 GPU(206)로의 신규 명령의 제출을 지연시키게 함으로써 구현될 수 있는 프레임 속도를 제한하기 위해 그래픽 드라이버 모듈(204) 및 GPU(206)에 의해 사용될 수 있다. 일부 실시예에서, GPU(206) 동작 주파수는 판단된 타겟 프레임 시간에 기반하여 조정될 수 있다.
도 6은 제 4 논리 흐름(600)의 일 실시예를 도시한다. 논리 흐름(600)은 본 명세서에 설명된 하나 이상의 실시예에 의해 실행된 동작의 일부 또는 전부를 대표할 수 있다. 예를 들어, 논리 흐름(600)은 시스템(100) 및 시스템(200)에 의해 수행된 동작을 도시할 수 있다.
도 6에 도시된 예시된 실시예에서, 블록(605)에서 논리 흐름(600)은 현재 프레임에 대한 영상 정보를 수신하는 것을 포함할 수 있다. 보다 구체적으로, 시각 품질 메트릭 모듈(210)은 현재 프레임에 대한 영상 정보를 GPU(206)로부터 수신할 수 있다. 현재 프레임은 사용자에게 제시되기 위해 디스플레이 서브시스템(208) 및 디스플레이로 보내진 프레임일 수 있다. 영상 정보는 디스플레이 상에 디스플레이하기 위한 픽셀의 비트맵 및 프레임에 대한 각각의 픽셀에 대한 픽셀 색 정보를 포함하는 다른 정보를 포함할 수 있다.
블록(610)에서, 논리 흐름(600)은 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 현재 프레임과 이전 프레임 사이의 변화량을 판단하는 것을 포함할 수 있다. 일부 실시예에서, 비교되는 각각의 픽셀 사이의 정규화된 차이를 판단하기 위해 현재 프레임의 픽셀에 대한 휘도 값은 이전 프레임의 픽셀에 대한 휘도 값과 비교될 수 있다. 휘도 값은 전술된 바와 같이 영상 정보의 일부일 수 있거나 픽셀 색 정보로부터 판단될 수 있다.
블록(615)에서, 논리 흐름(600)은 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간의 조정을 판단하는 것도 또한 포함할 수 있다. 보다 구체적으로, 변화량이 인지된 품질 문턱 값보다 크면, 프레임 속도는 증가될 수 있고/있거나 프레임 시간은 감소될 수 있다. 그러나, 변화량이 인지된 품질 문턱 값보다 작으면, 프레임 속도는 감소될 수 있고/있거나 프레임 시간은 증가될 수 있다.
도 7은 시스템(700)의 일 실시예를 도시한다. 다양한 실시예에서, 시스템(700)은 도 1의 장치(100) 및/또는 시스템(105), 도 2의 논리 흐름(200), 도 3의 논리 흐름(300), 도 4의 논리 흐름(400), 도 5의 논리 흐름(500) 및 도 6의 논리 흐름(600)과 같이 본 명세서에 설명된 하나 이상의 실시예와 함께 사용하기에 적절한 시스템 또는 아키텍처를 대표할 수 있다. 실시예들은 이러한 측면으로 제한되지 않는다.
도 7에 도시된 바와 같이, 시스템(700)은 복수의 구성 요소를 포함할 수 있다. 하나 이상의 구성 요소는 주어진 설계 또는 성능 제약 세트를 위해 요구된 바에 따라 하나 이상의 회로, 컴포넌트, 레지스터, 프로세서, 소프트웨어 서브루틴, 모듈, 또는 이들의 모든 조합을 사용하여 구현될 수 있다. 비록 도 7이 제한된 개수의 구성 요소를 소정의 토폴로지 내에 예로서 도시하고 있지만, 주어진 구현을 위해 요구되는 바에 따라 모든 적절한 토폴로지 내의 보다 많거나 보다 적은 구성 요소가 컴퓨팅 시스템(700) 내에서 사용될 수 있다는 것이 이해될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
실시예에서, 시스템(700)은 매체 시스템일 수 있지만 시스템(700)은 이러한 맥락으로 제한되지 않는다. 예를 들어, 시스템(700)은 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 휴대용 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화기, 컴비네이션 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등 내로 통합될 수 있다.
실시예에서, 시스템(700)은 디스플레이(745)에 결합된 플랫폼(701)을 포함한다. 플랫폼(701)은 콘텐츠 서비스 디바이스(748) 또는 콘텐츠 전달 디바이스(749) 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 내비게이션 특징을 포함하는 내비게이션 제어기(750)는 예를 들어 플랫폼(701) 및/또는 디스플레이(745)와 상호작용하도록 사용될 수 있다. 각각의 이들 컴포넌트는 다음에 보다 상세하게 후술된다.
실시예에서, 플랫폼(701)은 프로세서 회로(702), 칩셋(703), 메모리 유닛(704), 송수신기(744), 스토리지(746), 애플리케이션(706) 및/또는 그래픽 서브시스템(751)의 모든 조합을 포함할 수 있다. 칩셋(703)은 프로세서 회로(702), 메모리 유닛(704), 송수신기(744), 스토리지(746), 애플리케이션(706) 및/또는 그래픽 서브시스템(751) 사이의 상호통신을 제공할 수 있다. 예를 들어, 칩셋(703)은 스토리지(746)와 상호통신을 제공할 수 있는 스토리지 어댑터(도시되지 않음)를 포함할 수 있다.
프로세서 회로(702)는 모든 프로세서 또는 논리 디바이스를 사용하여 구현될 수 있고, 도 10의 프로세서 회로(1002)와 동일하거나 유사할 수 있다.
메모리 유닛(704)은 데이터를 저장할 수 있는 모든 기계 판독 가능하거나 컴퓨터 판독 가능 매체를 사용하여 구현될 수 있고, 도 10의 메모리 유닛(1004)와 동일하거나 유사할 수 있다.
송수신기(744)는 다양한 적절한 무선 통신 기법을 사용하여 신호를 송신하고 수신할 수 있는 하나 이상의 무선(radio)을 포함할 수 있다. 디스플레이(745)는 모든 텔레비전 유형의 모니터 또는 디스플레이를 포함할 수 있다. 스토리지(746)는 비휘발성 스토리지 디바이스로서 구현될 수 있다.
그래픽 서브시스템(751)은 디스플레이를 위한 정지화면 또는 비디오와 같은 영상의 처리를 수행할 수 있다. 그래픽 서브시스템(751)은 예를 들어 그래픽 처리 유닛(GPU) 또는 시각 처리 유닛(visual processing unit(VPU))일 수 있다. 그래픽 서브시스템(751)과 디스플레이(745)를 통신 가능하게 결합하기 위해 아날로그 또는 디지털 인터페이스가 사용될 수 있다. 예를 들어, 인터페이스는 하이-데피니션 멀티미디어 인터페이스(High-Definition Multimedia Interface(HDMI)), 디스플레이포트(DisplayPort), 무선 HDMI, 및/또는 무선 HD 컴플라이언트 기법 중 어느 하나일 수 있다. 그래픽 서브시스템(751)은 프로세서 회로(702) 또는 칩셋(703) 내로 통합될 수 있다. 그래픽 서브시스템(751)은 칩셋(703)에 통신 가능하게 결합된 독립형 카드(stand-alone card)일 수 있다.
본 명세서에 설명된 그래픽 및/또는 비디오 처리 기법은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에 통합될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능은 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 또 다른 실시예에서, 이러한 기능은 가전 제품 디바이스 내에 통합될 수 있다.
실시예에서, 콘텐츠 서비스 디바이스(748)는 모든 국내, 국외 및/또는 독립 서비스에 의해 호스팅될 수 있고, 따라서 예를 들어 인터넷을 통해 플랫폼(701)에 접근 가능할 수 있다. 콘텐츠 서비스 디바이스(748)는 플랫폼(701)에 그리고/또는 디스플레이(745)에 결합될 수 있다. 플랫폼(701) 및/또는 콘텐츠 서비스 디바이스(748)는 매체 정보를 네트워크(752)로 통신하고 네트워크(752)로부터 통신하기(예를 들어 송신하고/하거나 수신하기) 위해 네트워크(752)에 결합될 수 있다. 콘텐츠 전달 디바이스(749)도 또한 플랫폼(701)에 그리고/또는 디스플레이(745)에 결합될 수 있다.
실시예에서, 콘텐츠 서비스 디바이스(748)는 콘텐츠 제공자와 플랫폼(701) 및/또는 디스플레이(745) 사이에서 네트워크(752)를 통해 또는 직접 콘텐츠를 일방향으로 또는 양방향으로 통신할 수 있는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 텔레비전, 디지털 정보 및/또는 콘텐츠를 전달할 수 있는 인터넷 가능한 디바이스 또는 기기, 및 모든 다른 유사한 디바이스를 포함할 수 있다. 콘텐츠가 네트워크(752)를 통해 시스템(700) 내의 컴포넌트 및 콘텐츠 제공자 중 어느 하나로 그리고 어느 하나로부터 일방향으로 그리고/또는 양방향으로 통신될 수 있다는 것이 이해될 것이다. 콘텐츠의 예는 예를 들어 비디오, 음악, 의료 및 게이밍 정보 등을 포함하는 모든 매체 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(748)는 매체 정보, 디지털 정보, 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신한다. 콘텐츠 제공자의 예는 모든 케이블 또는 인공위성 텔레비전 또는 무선 또는 인터넷 콘텐츠 제공자를 포함할 수 있다.
실시예에서, 플랫폼(701)은 하나 이상의 내비게이션 특징을 갖는 내비게이션 제어기(750)로부터 제어 신호를 수신할 수 있다. 내비게이션 제어기(750)의 내비게이션 특징은 예를 들어 사용자 인터페이스(753)와 상호작용하기 위해 사용될 수 있다. 실시예에서, 내비게이션 제어기(750)는 사용자가 공간(예를 들어, 연속적이면서 다차원인) 데이터를 컴퓨터 내로 입력하게 허용하는 컴퓨터 하드웨어 컴포넌트(구체적으로 인간 인터페이스 디바이스)일 수 있는 포인팅 디바이스(pointing device)일 수 있다. 그래픽 사용자 인터페이스(graphical user interface(GUI)) 및 텔레비전 및 모니터와 같은 많은 시스템은 사용자가 물리적 제스처를 사용하여 컴퓨터로 또는 텔레비전으로 데이터를 제어하고 제공하게 허용한다.
내비게이션 제어기(750)의 내비게이션 특징의 이동은 디스플레이 상에 디스플레이되는 포인터(pointer), 커서(cursor), 포커스 링(focus ring) 또는 다른 시각 표시자(visual indicator)의 이동에 의해 디스플레이(예를 들어, 디스플레이(745)) 상에 반향될 수 있다. 예를 들어, 소프트웨어 애플리케이션(706)의 제어에 의해, 내비게이션 제어기(750) 상에 위치된 내비게이션 특징은 사용자 인터페이스(753) 상에 디스플레이되는 가상 내비게이션 특징으로 매핑될 수 있다. 실시예에서, 내비게이션 제어기(750)는 별개의 컴포넌트가 아니라 플랫폼(701) 및/또는 디스플레이(745) 내로 통합될 수 있다. 그러나, 실시예는 그러한 구성 요소로 또는 본 명세서에 도시되거나 설명된 맥락으로 제한되지 않는다.
실시예에서, 드라이버(도시되지 않음)는 예를 들어 초기 부팅 이후에 사용 가능하게 될 때 사용자가 버튼을 터치하여 텔레비전과 같이 플랫폼(701)을 즉시 켜고 끌 수 있게 하는 기술을 포함할 수 있다. 프로그램 논리는 플랫폼이 "꺼졌을" 때 플랫폼(701)이 매체 어댑처 또는 다른 콘텐츠 서비스 디바이스(748) 또는 콘텐츠 전달 디바이스(749)로 콘텐츠를 스트리밍(streaming)하게 허용할 수 있다. 또한, 칩셋(703)은 예를 들어 5.1 서라운드 사운드 오디오 및/또는 하이 데피니션 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 서포트(support)를 포함할 수 있다. 드라이버는 통합된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 PCI(peripheral component interconnect) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예에서, 시스템(700)에 도시된 컴포넌트 중 모든 하나 이상의 컴포넌트가 통합될 수 있다. 예를 들어, 플랫폼(701) 및 콘텐츠 서비스 디바이스(748)가 통합될 수 있거나, 플랫폼(701) 및 콘텐츠 전달 디바이스(749)가 통합될 수 있거나, 예를 들어 플랫폼(701), 콘텐츠 서비스 디바이스(748) 및 콘텐츠 전달 디바이스(749)가 통합될 수 있다. 다양한 실시예에서, 플랫폼(701) 및 디스플레이(745)가 통합된 유닛일 수 있다. 예를 들어, 디스플레이(745) 및 콘텐츠 서비스 디바이스(748)가 통합될 수 있거나, 디스플레이(745) 및 콘텐츠 전달 디바이스(749)가 통합될 수 있다.
다양한 실시예에서, 시스템(700)은 무선 시스템, 유선 시스템, 또는 이들의 조합으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(700)은 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 논리(control logic) 등과 같은 무선 공유 매체(wireless shared media)를 거쳐 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼과 같은 무선 스펙트럼의 일부를 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(700)은 I/O 어댑터, I/O 어댑터를 상응하는 유선 통신 매체에 접속하는 물리적 커넥터, NIC(network interface card), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 같은 유선 통신 매체를 거쳐 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 와이어, 케이블, 금속 리드, PCB(printed circuit board), 백플레인(backplane), 스위치 패브릭(switch fabric), 반도체 재료, 트위스티드-페어 와이어(twisted-pair wire), 동축 케이블, 광 섬유 등을 포함할 수 있다.
플랫폼(701)은 정보를 통신하는 하나 이상의 논리적 또는 물리적 채널을 설정할 수 있다. 정보는 매체 정보 및 제어 정보를 포함할 수 있다. 매체 정보는 사용자에 대한 콘텐츠를 표현하는 모든 데이터를 지칭할 수 있다. 콘텐츠의 예는 예를 들어 음성 대화로부터의 데이터, 비디오 회의, 스트리밍 비디오(streaming video), 전자 메일("이메일") 메시지, 음성 메일 메시지, 영문 및 숫자 기호(alphametric symbol), 그래픽, 영상, 비디오, 텍스트 등을 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어 연설 정보, 침묵 기간, 배경 잡음, 컴포트 잡음(comfort noise), 톤(tone) 등일 수 있다. 제어 정보는 자동화 시스템에 대한 명령, 명령어 또는 제어 단어를 표현하는 모든 데이터를 지칭할 수 있다. 예를 들어, 제어 정보는 시스템을 통해 매체 정보를 라우팅하기 위해 그리고 노드가 매체 정보를 미리 정해진 방식으로 처리하도록 명령하기 위해 사용될 수 있다. 그러나, 실시예는 그러한 구성 요소로 또는 도 7에 도시되거나 설명된 맥락으로 제한되지 않는다.
전술된 바와 같이, 시스템(700)은 물리적인 스타일 또는 형태 인자를 변화시키면서 구현될 수 있다. 도 8은 시스템(700)이 구현될 수 있는 작은 형태 인자 디바이스(form factor device, 800)의 실시예를 도시한다. 실시예에서, 예를 들어 디바이스(800)는 무선 성능을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수 있다. 모바일 컴퓨팅 디바이스는 처리 시스템 및 예를 들어 하나 이상의 배터리와 같은 모바일 전력 소스 또는 서플라이(mobile power source or supply)를 갖는 모든 디바이스를 지칭할 수 있다.
전술된 바와 같이, 모바일 컴퓨팅 디바이스의 예는 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 휴대용 컴퓨터, 팜탑 컴퓨터, PDA, 셀룰러 전화기, 컴비네이션 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), MID, 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 손목(wrist) 컴퓨터, 손가락(finger) 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-클립(belt-clip) 컴퓨터, 암-밴드(arm-band) 컴퓨터, 신발 컴퓨터, 의류 컴퓨터 및 다른 착용 가능한 컴퓨터 등과 같이 사람에 의해 착용되도록 배열된 컴퓨터도 또한 포함할 수 있다. 실시예에서, 예를 들어 모바일 컴퓨팅 디바이스는 음성 통신 및/또는 데이터 통신은 물론 컴퓨터 애플리케이션을 실행할 수 있는 스마트 폰으로서 구현될 수 있다. 비록 일부 실시예가 스마트 폰으로서 구현되는 모바일 컴퓨팅 디바이스를 이용하여 예로서 설명될 수 있지만, 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 다른 실시예도 또한 구현될 수도 있다는 것이 이해될 수 있다. 실시예는 이러한 맥락으로 제한되지 않는다.
도 8에 도시된 바와 같이, 디바이스(800)는 디스플레이(854), 내비게이션 제어기(850), 사용자 인터페이스(853), 하우징(855), I/O 디바이스(856), 및 안테나(857)를 포함할 수 있다. 디스플레이(854)는 모바일 컴퓨팅 디바이스에 적절한 정보를 디스플레이하기 위한 모든 적절한 디스플레이 유닛을 포함할 수 있고, 도 7에 도시된 디스플레이(745)와 동일하거나 유사할 수 있다. 내비게이션 제어기(850)은 사용자 인터페이스(853)와 상호작용하도록 사용될 수 있는 하나 이상의 내비게이션 특징을 포함할 수 있고, 도 7의 내비게이션 제어기(750)와 동일하거나 유사할 수 있다. I/O 디바이스(856)는 정보를 모바일 컴퓨팅 디바이스 내로 입력하기 위한 모든 적절한 I/O 디바이스를 포함할 수 있다. I/O 디바이스(856)의 예는 영문 숫자 키보드, 숫자 키보드, 터치 패드, 입력 키, 버튼, 스위치, 록커 스위치(rocker switch), 마이크, 스피커, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 마이크에 의해 디바이스(800) 내로도 또한 입력될 수 있다. 이러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 실시예를 이러한 맥락으로 제한되지 않는다.
도 9는 전술된 바와 같은 다양한 실시예를 구현하기에 적절한 예시적인 컴퓨팅 아키텍처(900)의 일 실시예를 도시한다. 하나의 실시예에서, 컴퓨팅 아키텍처(900)는 컴퓨팅 시스템(105)의 일부를 포함하거나 컴퓨팅 시스템(105)의 일부로서 구현될 수 있다.
본 출원서에서 사용된 바와 같이, 용어 "시스템" 및 "컴포넌트"는 컴퓨터 관련 개체, 즉 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 지칭하도록 의도되며, 그들의 예는 예시적인 컴퓨팅 아키텍처(900)에 의해 제공된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행 중인 프로세스, 프로세서, 하드 디스크 드라이브, (광 및/또는 자기 저장 매체의) 복수의 스토리지 드라이브, 객체(object), 실행 가능(executable), 일련의 실행(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만 그에 제한되지 않는다. 예를 들어, 서버 상에서 실행 중인 애플리케이션과 서버는 하나의 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 일련의 실행 내에 존재할 수 있고, 하나의 컴포넌트가 하나의 컴퓨터 상에 국한될 수 있고/있거나 두 개 이상의 컴퓨터 사이에 분배될 수 있다. 또한, 컴포넌트는 동작을 조직(coordination)하도록 다양한 유형의 통신 매체에 의해 서로 통신 가능하게 결합될 수 있다. 조직은 정보의 일방향 또는 양방향 교환을 포함할 수 있다. 예를 들어, 컴포넌트는 통신 매체를 거쳐 통신된 신호(signal)의 형태로 정보를 통신할 수 있다. 정보는 다양한 신호 라인에 할당된 신호로서 구현될 수 있다. 이러한 할당에서, 각각의 메시지는 신호이다. 그러나, 추가 실시예는 대안적으로 데이터 메시지를 이용할 수 있다. 이러한 데이터 메시지는 다양한 접속을 거쳐 보내질 수 있다. 예시적인 접속은 병렬 인터페이스, 직렬 인터페이스, 및 버스 인터페이스를 포함한다.
컴퓨팅 아키텍처(900)는 하나 이상의 프로세서, 멀티-코어 프로세서, 코-프로세서(co-processor), 메모리 유닛, 칩셋, 제어기, 주변 기기(peripheral), 인터페이스, 오실레이터(oscillator), 타이밍 디바이스(timing device), 비디오 카드, 오디오 카드, 멀티미디어 입력/출력(I/O) 컴포넌트, 전원 공급기(power supply) 등과 같은 다양한 공통 컴퓨팅 구성 요소를 포함한다. 그러나, 실시예는 컴퓨팅 아키텍처(900)에 의한 구현으로 제한되지 않는다.
도 9에 도시된 바와 같이, 컴퓨팅 아키텍처(900)는 처리 유닛(904), 시스템 메모리(906) 및 시스템 버스(908)를 포함한다. 처리 유닛(904)은 도 1에 도시된 처리 컴포넌트(102)를 참조하여 설명된 바와 같은 다양한 상업적으로 이용 가능한 프로세서 중 어느 하나일 수 있다.
시스템 버스(908)는 시스템 메모리(906)를 포함하지만 그에 제한되지 않는 시스템 컴포넌트에 대한 처리 유닛(904)으로의 인터페이스를 제공한다. 시스템 버스(908)는 다양한 상업적으로 이용 가능한 버스 아키텍처 중 어느 하나의 버스 아키텍처를 사용하여 (메모리 제어기를 갖거나 갖지 않은) 메모리 버스, 주변 기기 버스, 및 국부 버스에 추가로 인터커넥트할 수 있는 몇 가지 유형의 버스 구조 중 어느 하나일 수 있다. 인터페이스 어댑터는 슬롯 아키텍처를 통해 시스템 버스(908)에 접속할 수 있다. 예시적인 슬롯 아키텍처는 AGP(Accelerated Graphics Port), 카드 버스(Card Bus), (E)ISA((Extended) Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI(X)(Peripheral Component Interconnect(Extended)), PCI 익스프레스, PCMCIA(Personal Computer Memory Card International Association) 등을 제한 없이 포함할 수 있다.
컴퓨팅 아키텍처(900)는 다양한 제조 물품을 포함하거나 구현할 수 있다. 제조 물품은 논리(logic)를 저장하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체의 예는 휘발성 메모리 또는 비휘발성 메모리, 제거 가능하거나 제거 가능하지 않은 메모리, 삭제 가능하거나 삭제 가능하지 않은 메모리, 쓰기 가능하거나 다시 쓰기 가능한 메모리 등을 포함하는 전자 데이터를 저장할 수 있는 모든 실재하는 매체를 포함할 수 있다. 논리의 예는 소스 코드(source code), 컴파일된 코드(compiled code), 해석된 코드(interpreted code), 실행 가능한 코드, 정적 코드(static code), 동적 코드(dynamic code), 객체 지향형 코드(object-oriented code), 시각 코드 등과 같은 모든 적절한 유형의 코드를 사용하여 구현되는 실행 가능 컴퓨터 프로그램 명령어를 포함할 수 있다. 실시예는 또한 비일시적인 컴퓨터 판독 가능 매체 내에 또는 비일시적인 컴퓨터 판독 가능 매체 상에 포함된 명령어로서 적어도 부분적으로 구현될 수 있으며, 이러한 명령어는 본 명세서에 설명된 동작의 수행을 가능하게 하는 하나 이상의 프로세서에 의해 판독되고 실행될 수 있다.
시스템 메모리(906)는 ROM(read-only memory), RAM(random-access memory), DRAM(dynamic RAM), DDRAM(Double-Data-Rate DRAM), SDRAM(synchronous DRAM), SRAM(static RAM), PROM(programmable ROM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 강유전성 폴리머 메모리와 같은 폴리머 메모리, 오보닉 메모리(ovonic memory), 상 변화 또는 강유전성 메모리(phase change or ferroelectric memory), SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광학 카드, RAID(Redundant Array of Independent Disk) 드라이브와 같은 디바이스의 어레이, 고체 상태 메모리 디바이스(예를 들어, USB 메모리), SSD(solid state drive), 및 정보를 저장하기에 적절한 모든 다른 유형의 저장 매체와 같은 다양한 유형의 컴퓨터 판독 가능 저장 매체를 하나 이상의 보다 고속인 메모리 유닛의 형태로 포함할 수 있다. 도 7에 도시된 예시된 실시예에서, 시스템 메모리(906)는 비휘발성 메모리(910) 및/또는 휘발성 메모리(912)를 포함할 수 있다. BIOS(basic input/output system)는 비휘발성 메모리(910) 내에 저장될 수 있다.
컴퓨터(902)는 내부(또는 외부) HDD(hard disk drive)(914), 제거 가능 자기 디스크(918)로부터 읽거나 제거 가능 자기 디스크(918)로 쓰는 자기 FDD(floppy disk drive)(916), 및 제거 가능 광 디스크(922)(예를 들어, CD-ROM 또는 DVD)로부터 읽거나 제거 가능 광 디스크(922)로 쓰는 광 디스크 드라이브(920)를 포함하는 다양한 유형의 컴퓨터 판독 가능 저장 매체를 하나 이상의 보다 저속인 메모리 유닛의 형태로 포함할 수 있다. HDD(914), FDD(916) 및 광 디스크 드라이브(920)는 HDD 인터페이스(924), FDD 인터페이스(926) 및 광 드라이브 인터페이스(928)에 의해 시스템 버스(908)에 각각 접속될 수 있다. 외부 드라이브 구현을 위한 HDD 인터페이스(924)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 두 개 모두를 포함할 수 있다.
드라이브 및 연관된 컴퓨터 판독 가능 매체는 데이터, 데이터 구조, 컴퓨터 실행 가능한 명령어 등의 휘발성 및/또는 비휘발성 스토리지를 제공한다. 예를 들어, 운영 시스템(930), 하나 이상의 애플리케이션 프로그램(932), 다른 프로그램 모듈(934) 및 프로그램 데이터(936)를 포함하는 복수의 프로그램 모듈은 드라이브 및 메모리 유닛(910, 912) 내에 저장될 수 있다. 하나의 실시예에서, 하나 이상의 애플리케이션 프로그램(932), 다른 프로그램 모듈(934), 및 프로그램 데이터(936)는 예를 들어 시스템(100)의 다양한 애플리케이션 및/또는 컴포넌트를 포함할 수 있다.
사용자는 예를 들어 키보드(938) 및 마우스(940)와 같은 포인팅 디바이스와 같은 하나 이상의 유선/무선 입력 디바이스를 통해 명령 또는 정보를 컴퓨터(902) 내로 입력할 수 있다. 다른 입력 디바이스는 마이크, 적외선(IR) 원격 제어, 무선 주파수(RF) 원격 제어, 게임 패드, 스타일러스 펜(stylus pen), 카드 리더(card reader), 동글(dongle), 핑거 프린트 리더(finger print reader), 글러브(glove), 그래픽 태블릿, 조이스틱(joystic), 키보드, 레티나 리더(retina reader), 터치 스크린(예를 들어, 용량성(capacitive), 저항성(resistive) 등), 트랙볼(trackball), 트랙패드(trackpad), 감지기, 스타일러스 등을 포함할 수 있다. 이들 입력 디바이스 및 다른 입력 디바이스는 시스템 버스(908)에 결합된 입력 디바이스 인터페이스(942)를 통해 처리 유닛(904)에 종종 접속되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 다른 인터페이스에 의해 접속될 수 있다.
모니터(944) 또는 다른 유형의 디스플레이 디바이스도 또한 비디오 어댑터(946)와 같은 인터페이스를 통해 시스템 버스(908)에 접속될 수 있다. 모니터(944)는 컴퓨터(902) 내부에 있거나 외부에 있을 수 있다. 모니터(944)에 추가하여, 컴퓨터는 스피커, 프린터 등과 같은 다른 주변 출력 디바이스를 대체로 포함한다.
컴퓨터(902)는 원격 컴퓨터(948)와 같은 하나 이상의 원격 컴퓨터로의 유선 및/또는 무선 통신을 통한 논리 접속을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(948)는 워크스테이션, 서버 컴퓨터, 라우터, 퍼스널 컴퓨터, 포터블 컴퓨터, 마이크로프로세서 기반 오락 기기, 피어 디바이스(peer device) 또는 다른 공통 네트워크 노드일 수 있고, 비록 명료성을 위해 메모리/스토리지(950)만이 도시되지만, 컴퓨터(902)와 관련하여 설명된 구성 요소 중 많은 구성 요소 또는 모든 구성 요소를 대체로 포함한다. 설명된 논리 접속은 LAN(local area network, 952) 및/또는 예를 들어 WAN(wide area network, 954)와 같은 보다 큰 네트워크로의 유선/무선 접속을 포함한다. 이러한 LAN 및 WAN 네크워킹 환경은 사무실 및 회사에 흔히 존재하고, 인트라넷(intranet)과 같은 전사적 컴퓨터 네트워크(enterprise-wide computer network)을 용이하게 하는데, 전사적 컴퓨터 네트워크는 모두 예를 들어 인터넷과 같은 글로벌 통신 네트워크(global communication network)에 접속할 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(902)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(956)를 통해 LAN(952)에 접속된다. 어댑터(956)는 LAN(952)으로의 유선 및/또는 무선 통신을 용이하게 할 수 있는데, LAN(952)은 어댑터(956)의 무선 기능을 이용하여 통신하기 위해 배치된 무선 접근 포인트(wireless access point)도 또한 포함할 수 있다.
WAN 네트워킹 환경에서 사용될 때, 컴퓨터(902)는 모뎀(958)을 포함할 수 있거나, WAN(954) 상의 통신 서버에 접속되거나, WAN(954)을 거쳐 예를 들어 인터넷을 통해서 통신을 설정하기 위한 다른 수단을 갖는다. 내부 또는 외부에 있을 수 있고 유선 및/또는 무선 디바이스일 수 있는 모뎀(958)은 입력 디바이스 인터페이스(942)를 통해 시스템 버스(908)에 접속된다. 네트워킹 환경에서, 컴퓨터(902)와 관련하여 설명된 프로그램 모듈 또는 그 일부는 원격 메모리/스토리지 디바이스(950) 내에 저장될 수 있다. 도시된 네트워크 접속이 예시적이고 컴퓨터 사이에 통신 링크를 설정하기 위한 다른 수단이 사용될 수 있다는 것이 이해될 것이다.
컴퓨터(902)는 무선 통신 내에 동작 가능하게 배치된 무선 디바이스와 같은 IEEE 802 표준 패밀리(예를 들어, IEEE 802.11 방송(over-the-air) 변조 기법)를 사용하는 유선 및 무선 디바이스 또는 개체와 통신하도록 동작 가능하다. 이러한 것은 무엇보다도 적어도 와이파이(Wireless Fidelity(Wi-Fi)), WiMax, 및 블루투스(BluetoothTM) 무선 기술을 포함한다. 따라서, 통신은 통상적인 네트워크에서와 같이 미리 정해진 구조일 수 있거나 단순히 적어도 두 개의 디바이스 사이의 애드 혹 통신(ad hoc communication)일 수 있다. Wi-Fi 네트워크는 안전하고 신뢰할 만하며 고속인 무선 접속을 제공하기 위해 IEEE 802.11x(a, b, g, n 등)으로 지칭되는 무선 기술을 사용한다. Wi-Fi 네트워크는 컴퓨터를 인터넷에 그리고 (IEEE 802.3 관련 매체 및 기능을 사용하는) 유선 네트워크에 서로 접속하기 위해 사용될 수 있다.
도 1 내지 도 9를 참조하여 전술된 바와 같이 컴퓨팅 시스템(205)의 다양한 구성 요소는 다양한 하드웨어 구성 요소, 소프트웨어 구성 요소, 또는 이들 두 개의 조합을 포함할 수 있다. 하드웨어 구성 요소의 예는 디바이스, 논리 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 프로세서, 회로 구성 요소(예를 들어, 트랜지스터, 저항, 캐패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuit), PLD(programmable logic device), DSP(digital signal processor), FPGA(field programmable gate array), 메모리 유닛, 논리 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 구성 요소의 예는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 기계 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴(routine), 서브루틴(subroutine), 함수(function), 방법, 절차(procedure), 소프트웨어 인터페이스, API(application program interface), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 단어, 값, 기호(symbol), 또는 이들의 조합을 포함할 수 있다. 그러나, 실시예가 하드웨어 구성 요소 및/또는 소프트웨어 구성 요소를 사용하여 구현되는지를 판단하는 것은 요구된 계산 속도, 전력 수준, 내열성, 처리 사이클 예산(processing cycle budget), 입력 데이터 속도, 출력 데이터 속도, 메모리 자원(memory resource), 데이터 버스 속도(data bus speed) 및 주어진 구현을 위해 요구된 바와 같은 다른 설계 또는 성능 제약과 같은 모든 개수의 인자에 따라 변화할 수 있다.
상세한 개시가 이제 추가 실시예와 관련된 예를 제공하고자 한다. 후술되는 제 1 예 내지 제 25 예는 예시적이며 비제한적인 것으로 의도된다.
제 1 예에서, 장치 또는 컴퓨팅 디바이스는 처리 회로, 현재 프레임에 대한 영상 정보를 수신하여 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 현재 프레임과 이전 프레임 사이의 변화량을 판단하도록 처리 회로 상에서 실행되는 시각 품질 메트릭 모듈, 및 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간의 조정을 판단하도록 처리 회로 상에서 실행되는 시각 품질 조정 모듈을 포함할 수 있다.
제 2 예에서, 제 1 예를 향상시키기 위해, 조정은 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 큰 경우에 프레임 시간에서의 감소, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 작은 경우에 프레임 시간의 증가, 및 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 아무런 변화가 없는 경우에 프레임 시간의 불변을 포함할 수 있다.
제 3 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 현재 프레임의 픽셀과 이전 프레임의 픽셀 사이의 비교에 기반하여 변화량을 판단하는 시각 품질 메트릭 모듈을 포함할 수 있고, 현재 프레임의 픽셀은 이전 프레임의 픽셀의 상응하는 위치에 존재한다.
제 4 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 픽셀 색 정보를 포함하는 영상 정보, 및 변화량을 판단하기 위해 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보와 이전 프레임의 각각의 픽셀의 상응하는 픽셀 색 정보를 비교하는 시각 품질 메트릭 모듈을 포함한다.
제 5 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 픽셀 색 정보를 포함하는 영상 정보, 및 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 판단하는 시각 품질 메트릭 모듈을 포함한다.
제 6 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상응하는 위치에 존재하는 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교하는 것을 포함하는 비교, 및 각각의 상응하는 위치에 대한 정규화된 차이 값의 비트맵을 생성하는 시각 품질 메트릭 모듈을 포함한다.
제 7 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 비트맵을 하나 이상의 영역으로 분할하고 각각의 하나 이상의 영역에서의 정규화된 차이 값에 기반하여 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값을 계산하는 시각 품질 메트릭 모듈을 포함할 수 있다.
제 8 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 변화량이 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값에 기반하여 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하는 것을 포함할 수 있고, 시각 품질 조정 모듈이 최대 평균 정규화된 차이 값과 인지된 품질 문턱 값 사이의 비교에 기반하여 조정을 판단하는 것을 포함할 수 있다.
제 9 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 장치 또는 컴퓨팅 디바이스는 잠재적인 전력 절감보다 큰 그래픽 처리 오버헤드를 포함하는 하나 이상의 기준에 기반하여 조정을 금지하는 시각 품질 조정 모듈을 포함할 수 있고, 그래픽 처리 오버헤드가 그래픽 처리 성능을 저하시키고, 조정이 전력을 절감하지 않으며, 조정이 사용자 경험을 정해진 레이턴시 문턱 값 미만으로 저하시킨다.
제 10 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 현재 프레임에 대한 영상 정보를 수신하게 하고, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 현재 프레임과 이전 프레임 사이의 변화량을 판단하게 하고, 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간의 조정을 판단하게 한다.
제 11 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 큰 경우에 프레임 시간을 감소시키게 하고, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 작은 경우에 프레임 시간을 증가시키게 하며, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 아무런 변화가 없는 경우에 프레임 시간을 불변하게 한다.
제 12 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 현재 프레임의 픽셀과 이전 프레임의 픽셀 사이의 비교에 기반하여 변화량을 판단하게 하고, 현재 프레임의 픽셀은 이전 프레임의 픽셀의 상응하는 위치에 존재한다.
제 13 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 영상 정보는 픽셀 색 정보를 포함하고, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 변화량을 판단하게 하기 위해 현재 프레임의 픽셀에 대한 픽셀 색 정보와 이전 프레임의 픽셀에 대한 상응하는 픽셀 색 정보를 비교하게 한다.
제 14 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 영상 정보는 픽셀 색 정보를 포함하고, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 판단하게 한다.
제 15 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상응하는 위치에 존재하는 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교하게 하고, 각각의 상응하는 위치에 대한 정규화된 차이 값의 비트맵을 생성하게 한다.
제 16 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 비트맵을 하나 이상의 영역으로 분할하게 하고, 각각의 하나 이상의 영역에서의 정규화된 차이 값에 기반하여 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값을 계산하게 한다.
제 17 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 변화량은 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값에 기반하여 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하고, 물품은 복수의 명령어를 구비하는 컴퓨터 판독 가능 저장 매체를 포함할 수 있고, 명령어는 실행될 때 처리 회로가 최대 평균 정규화된 차이 값과 인지된 품질 문턱 값 사이의 비교에 기반하여 조정을 판단하게 한다.
제 18 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 현재 프레임에 대한 영상 정보를 수신하는 단계, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 현재 프레임과 이전 프레임 사이의 변화량을 판단하는 단계, 및 현재 프레임과 이전 프레임 사이의 변화량에 기반하여 프레임 시간의 조정을 판단하는 단계를 포함할 수 있다.
제 19 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 큰 경우에 프레임 시간을 감소시키는 단계, 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하는 변화량이 인지된 품질 문턱 값보다 작은 경우에 프레임 시간을 증가시키는 단계, 및 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 아무런 변화가 없는 경우에 프레임 시간을 불변하는 단계를 포함할 수 있다.
제 20 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 현재 프레임의 픽셀과 이전 프레임의 픽셀 사이의 비교에 기반하여 변화량을 판단하는 판단하는 단계를 포함하고, 현재 프레임의 픽셀은 이전 프레임의 픽셀의 상응하는 위치에 존재한다.
제 21 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 픽셀 색 정보를 포함하는 영상 정보, 변화량을 판단하기 위해 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보와 이전 프레임의 각각의 픽셀에 대한 상응하는 픽셀 색 정보를 비교하는 단계를 포함할 수 있다.
제 22 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 픽셀 색 정보를 포함하는 영상 정보, 및 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 판단하는 단계를 포함할 수 있다.
제 23 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상응하는 위치에 존재하는 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교하는 단계, 및 각각의 상응하는 위치에 대한 정규화된 차이 값의 비트맵을 생성하는 단계를 포함할 수 있다.
제 24 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 비트맵을 하나 이상의 영역으로 분할하는 단계, 및 각각의 하나 이상의 영역에서의 정규화된 차이 값에 기반하여 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값을 계산하는 단계를 포함할 수 있다.
제 25 예에서, 이전의 예 중 어느 하나의 예를 향상시키기 위해, 컴퓨터 구현 방법은 각각의 하나 이상의 영역에 대한 평균 정규화된 차이 값에 기반하여 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하는 변화량, 및 최대 평균 정규화된 차이 값과 인지된 품질 문턱 값 사이의 비교에 기반하여 조정을 판단하는 단계를 포함할 수 있다.
일부 실시예는 표현 "하나의 실시예" 또는 "일 실시예"를 그에 대한 파생어와 함께 사용하여 설명될 수 있다. 이들 용어는 실시예와 관련되어 설명된 특정 특징, 구조 또는 특성이 적어도 하나의 실시예 내에 포함된다는 것을 의미한다. 본 명세서의 다양한 위치에서 어구 "하나의 실시예에서"의 출현은 반드시 동일한 실시예를 지칭하지는 않는다. 또한, 일부 실시예는 표현 "결합된" 및 "접속된"을 그에 대한 파생어와 함께 사용하여 설명될 수 있다. 이들 용어는 반드시 서로에 대한 동의어로서 의도되지는 않는다. 예를 들어, 일부 실시예는 두 개 이상의 구성 요소가 물리적으로 또는 전기적으로 서로 직접 접촉하고 있다는 것을 표시하기 위해 용어 "접속된" 및/또는 "결합된"을 사용하여 설명될 수 있다. 그러나, 용어 "결합된"은 두 개 이상의 구성 요소가 서로 직접 접촉하지는 않지만 여전히 서로 협동하거나 상호작용하고 있다는 것도 또한 의미할 수 있다.
요약은 독자가 기술적 개시의 본질을 신속하게 알아내도록 제공된다는 점이 강조된다. 요약은 특허청구범위의 범위 또는 의미를 해석하거나 제한하기 위해 사용되지 않을 것이라는 이해를 바탕으로 제출된다. 또한, 전술된 상세한 설명에서, 다양한 특징은 개시를 간소하게 할 목적으로 단일 실시예 내에 함께 그룹핑(grouping)된다는 것을 알 수 있다. 개시의 이러한 방법은 청구된 실시예가 각각의 특허청구범위 내에 명시적으로 인용된 것보다 더 많은 특징을 요구하려는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 다음의 특허청구범위가 나타내는 바와 같이, 발명의 발명 대상은 단일의 개시된 실시예의 모든 특징보다 작다. 따라서, 다음의 특허청구범위는 이에 의해 상세한 설명으로 통합되고, 각각의 청구항은 별개의 실시예로서 독립적이다. 첨부된 특허청구범위에서, 용어 "구비하는(including)" 및 "여기에서(in which)"는 각각의 용어 "포함하는(comprising)" 및 "여기에서(wherein)"의 각각의 분명한 균등물(plane-English equivalent)로서 사용된다. 또한, 용어 "제 1", "제 2", "제 3" 등은 단순히 표식(label)으로서 사용되고 수치적 요건을 그들의 객체 상에 부여하도록 의도되지 않는다.
전술된 내용은 개시된 아키텍처의 예를 포함한다. 물론, 컴포넌트 및/또는 방법론의 모든 생각해낼 수 있는 조합을 설명하는 것이 가능하지는 않지만, 당업자라면 많은 추가적인 조합 및 치환이 가능하다는 것을 이해할 수 있다. 따라서, 신규한 아키텍처는 첨부된 특허청구범위의 사상과 범위 내에 있는 그러한 모든 변화, 변경 및 변이를 포괄하도록 의도된다.

Claims (25)

  1. 그래픽 처리 유닛(GPU)과,
    상기 그래픽 처리 유닛에 연결된 처리 회로를 포함하는 장치로서,
    상기 처리 회로는,
    상기 그래픽 처리 유닛으로부터 현재 프레임에 대한 영상 정보(image information)를 수신하고,
    상기 현재 프레임에 대한 상기 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 상기 현재 프레임과 상기 이전 프레임 사이의 변화량을 결정하고,
    상기 변화량이 인지된 품질 문턱 값(a perceived quality threshold)보다 큰 경우에 다운 프레임 시간 이력(hysteresis) 값을 증가시키고, 상기 증가된 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 큰 경우에 프레임 시간을 감소시키는
    장치.
  2. 제 1 항에 있어서,
    상기 처리 회로는, 상기 변화량이 상기 인지된 품질 문턱 값보다 작은 경우에 업 프레임 시간 이력 값을 증가시키고, 상기 증가된 업 프레임 시간 이력 값이 업 프레임 시간 이력 문턱 값보다 큰 경우에 상기 프레임 시간을 증가시키는
    장치.
  3. 제 1 항에 있어서,
    상기 처리 회로는 상기 현재 프레임의 픽셀과 상기 이전 프레임의 픽셀 사이의 비교에 기반하여 상기 변화량을 결정하고, 상기 현재 프레임의 픽셀은 상기 이전 프레임의 픽셀의 상응하는 위치에 존재하는
    장치.
  4. 제 3 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고, 상기 처리 회로는 상기 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보와 상기 이전 프레임의 각각의 픽셀의 상응하는 픽셀 색 정보를 비교해서 상기 변화량을 결정하는
    장치.
  5. 제 3 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고, 상기 처리 회로는 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 결정하는
    장치.
  6. 제 5 항에 있어서,
    상기 비교는 상기 상응하는 위치에서 상기 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상기 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교하는 것을 포함하고,
    상기 처리 회로는 상기 상응하는 위치의 각각에 대한 정규화된 차이 값의 비트맵을 생성하는
    장치.
  7. 제 6 항에 있어서,
    상기 처리 회로는 상기 비트맵을 하나 이상의 영역으로 분할하고 상기 하나 이상의 영역의 각각에서의 상기 정규화된 차이 값에 기반하여 상기 하나 이상의 영역의 각각에 대한 평균 정규화된 차이 값을 계산하는
    장치.
  8. 제 7 항에 있어서,
    상기 변화량은 상기 하나 이상의 영역의 각각에 대한 상기 평균 정규화된 차이 값에 기반하여 상기 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하는
    장치.
  9. 제 1 항에 있어서,
    상기 처리 회로는, 그래픽 처리 오버헤드가 잠재적인 전력 절감보다 큰 것, 그래픽 처리 오버헤드가 그래픽 처리 성능을 저하시키는 것, 프레임 시간의 조정이 전력을 절감하지 않는 것, 상기 프레임 시간의 조정이 사용자 경험을 정해진 레이턴시 문턱 값(a defined latency threshold) 미만으로 저하시키는 것을 포함하는 하나 이상의 기준에 기반하여 상기 프레임 시간의 조정을 가능하게 하는
    장치.
  10. 복수의 명령어를 포함하는 비 일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 명령어는 실행될 때 처리 회로로 하여금,
    현재 프레임에 대한 영상 정보를 수신할 수 있게 하고,
    상기 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 상기 현재 프레임과 상기 이전 프레임 사이의 변화량을 결정할 수 있게 하고,
    상기 변화량이 인지된 품질 문턱 값보다 큰 경우에 다운 프레임 시간 이력 값을 증가시키고, 상기 증가된 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 큰 경우에 프레임 시간을 감소시킬 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  11. 제 10 항에 있어서,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금,
    상기 변화량이 상기 인지된 품질 문턱 값보다 작은 경우에 업 프레임 시간 이력 값을 증가시키고, 상기 증가된 업 프레임 시간 이력 값이 업 프레임 시간 이력 문턱 값보다 큰 경우에 상기 프레임 시간을 증가시킬 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  12. 제 10 항에 있어서,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금,
    상기 현재 프레임의 픽셀과 상기 이전 프레임의 픽셀 사이의 비교에 기반하여 상기 변화량을 결정할 수 있게 하되,
    상기 현재 프레임의 픽셀은 상기 이전 프레임의 픽셀의 상응하는 위치에 존재하는
    비 일시적 컴퓨터 판독 가능 저장 매체.

  13. 제 12 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금, 상기 현재 프레임의 픽셀에 대한 픽셀 색 정보와 상기 이전 프레임의 픽셀에 대한 상응하는 픽셀 색 정보를 비교해서 상기 변화량을 결정할 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  14. 제 12 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금, 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 결정할 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금,
    상기 상응하는 위치에서 상기 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상기 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교할 수 있게 하고,
    상기 상응하는 위치의 각각에 대한 정규화된 차이 값의 비트맵을 생성할 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  16. 제 15 항에 있어서,
    상기 명령어는 실행될 때 상기 처리 회로로 하여금,
    상기 비트맵을 하나 이상의 영역으로 분할할 수 있게 하고,
    상기 하나 이상의 영역의 각각에서의 상기 정규화된 차이 값에 기반하여 상기 하나 이상의 영역의 각각에 대한 평균 정규화된 차이 값을 계산할 수 있게 하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 변화량은 상기 하나 이상의 영역의 각각에 대한 상기 평균 정규화된 차이 값에 기반하여 상기 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하는
    비 일시적 컴퓨터 판독 가능 저장 매체.
  18. 컴퓨터로 구현되는 방법으로서,
    현재 프레임에 대한 영상 정보를 수신하는 단계와,
    상기 현재 프레임에 대한 영상 정보와 이전 프레임에 대한 영상 정보에 기반하여 상기 현재 프레임과 상기 이전 프레임 사이의 변화량을 결정하는 단계와,
    상기 변화량이 인지된 품질 문턱 값보다 큰 경우에 다운 프레임 시간 이력 값을 증가시키고, 상기 증가된 다운 프레임 시간 이력 값이 다운 프레임 시간 이력 문턱 값보다 큰 경우에 프레임 시간을 감소시키는 단계를 포함하는
    컴퓨터로 구현되는 방법.
  19. 제 18 항에 있어서,
    상기 변화량이 상기 인지된 품질 문턱 값보다 작은 경우에 업 프레임 시간 이력 값을 증가시키고, 상기 증가된 업 프레임 시간 이력 값이 업 프레임 시간 이력 문턱 값보다 큰 경우에 상기 프레임 시간을 증가시키는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  20. 제 18 항에 있어서,
    상기 현재 프레임의 픽셀과 상기 이전 프레임의 픽셀 사이의 비교에 기반하여 상기 변화량을 결정하는 단계 - 상기 현재 프레임의 픽셀은 상기 이전 프레임의 픽셀의 상응하는 위치에 존재함 - 를 더 포함하는
    컴퓨터로 구현되는 방법.
  21. 제 20 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고,
    상기 방법은, 상기 현재 프레임의 각각의 픽셀에 대한 픽셀 색 정보와 상기 이전 프레임의 각각의 픽셀에 대한 상응하는 픽셀 색 정보를 비교해서 상기 변화량을 결정하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  22. 제 20 항에 있어서,
    상기 영상 정보는 픽셀 색 정보를 포함하고,
    상기 방법은, 각각의 픽셀에 대한 픽셀 색 정보로부터 각각의 픽셀에 대한 휘도 값을 결정하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  23. 제 22 항에 있어서,
    상기 상응하는 위치에서 상기 현재 프레임의 각각의 픽셀에 대한 휘도 값과 상기 이전 프레임의 각각의 픽셀에 대한 휘도 값을 비교하는 단계와,
    상기 상응하는 위치의 각각에 대한 정규화된 차이 값의 비트맵을 생성하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  24. 제 23 항에 있어서,
    상기 비트맵을 하나 이상의 영역으로 분할하는 단계와,
    상기 하나 이상의 영역의 각각에서의 상기 정규화된 차이 값에 기반하여 상기 하나 이상의 영역의 각각에 대한 평균 정규화된 차이 값을 계산하는 단계를 더포함하는
    컴퓨터로 구현되는 방법.
  25. 제 24 항에 있어서,
    상기 변화량은 상기 하나 이상의 영역의 각각에 대한 상기 평균 정규화된 차이 값에 기반하여 상기 비트맵에 대한 최대 평균 정규화된 차이 값을 포함하는
    컴퓨터로 구현되는 방법.
KR1020160059963A 2013-10-23 2016-05-17 시각 출력을 위한 조정을 판단하기 위한 기법 KR102066255B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/061,174 US9940904B2 (en) 2013-10-23 2013-10-23 Techniques for determining an adjustment for a visual output
US14/061,174 2013-10-23

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140129585A Division KR101635271B1 (ko) 2013-10-23 2014-09-26 시각 출력을 위한 조정을 판단하기 위한 기법

Publications (2)

Publication Number Publication Date
KR20160064050A KR20160064050A (ko) 2016-06-07
KR102066255B1 true KR102066255B1 (ko) 2020-01-14

Family

ID=52825789

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140129585A KR101635271B1 (ko) 2013-10-23 2014-09-26 시각 출력을 위한 조정을 판단하기 위한 기법
KR1020160059963A KR102066255B1 (ko) 2013-10-23 2016-05-17 시각 출력을 위한 조정을 판단하기 위한 기법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020140129585A KR101635271B1 (ko) 2013-10-23 2014-09-26 시각 출력을 위한 조정을 판단하기 위한 기법

Country Status (2)

Country Link
US (2) US9940904B2 (ko)
KR (2) KR101635271B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011244921B8 (en) * 2011-11-01 2014-04-03 Canon Kabushiki Kaisha Method and system for luminance adjustment of images in an image sequence
US9837030B2 (en) * 2014-05-22 2017-12-05 Nvidia Corporation Refresh rate dependent adaptive dithering for a variable refresh rate display
US9679345B2 (en) * 2014-08-08 2017-06-13 Advanced Micro Devices, Inc. Method and system for frame pacing
US9418426B1 (en) * 2015-01-27 2016-08-16 Xerox Corporation Model-less background estimation for foreground detection in video sequences
US9800825B2 (en) * 2015-03-02 2017-10-24 Chih-Ta Star Sung Semiconductor display driver device, mobile multimedia apparatus and method for frame rate conversion
CN105157698B (zh) * 2015-09-17 2019-07-12 百度在线网络技术(北京)有限公司 一种导航图像绘制的方法和装置
US20170244894A1 (en) * 2016-02-22 2017-08-24 Seastar Labs, Inc. Method and Apparatus for Managing Latency of Remote Video Production
US10062409B2 (en) 2016-09-23 2018-08-28 Apple Inc. Automated seamless video loop
US10176845B2 (en) 2016-09-23 2019-01-08 Apple Inc. Seamless forward-reverse video loops
US10122940B2 (en) 2016-09-23 2018-11-06 Apple Inc. Automated seamless video loop
US10062410B2 (en) 2016-09-23 2018-08-28 Apple Inc. Automated seamless video loop
US10255032B2 (en) * 2016-12-13 2019-04-09 EVA Automation, Inc. Wireless coordination of audio sources
US11178204B1 (en) * 2017-02-23 2021-11-16 Cox Communications, Inc. Video processor to enhance color space and/or bit-depth
CA3060578C (en) 2017-04-21 2020-07-21 Zenimax Media Inc. Systems and methods for encoder-guided adaptive-quality rendering
US10734025B2 (en) * 2017-05-16 2020-08-04 Apple Inc. Seamless output video variations for an input video
CN108712556B (zh) * 2018-03-27 2020-07-10 Oppo广东移动通信有限公司 帧率调整方法、装置、终端设备及存储介质
CN110547766B (zh) * 2019-08-22 2023-04-28 苏州佳世达光电有限公司 口扫机的操作方法
CN113194306B (zh) * 2021-04-27 2022-07-08 广州虎牙科技有限公司 帧率波动评估方法、装置、移动终端、系统和存储介质
CN115731829A (zh) * 2021-08-30 2023-03-03 广州视源电子科技股份有限公司 一种画质调节方法、存储介质及显示设备
CN114079824B (zh) * 2021-11-02 2024-03-08 深圳市洲明科技股份有限公司 发送卡及其控制方法、显示设备、计算机设备和存储介质
CN117115313B (zh) * 2023-10-23 2024-02-02 成都工业学院 一种动画帧图像显示时间优化方法、系统、终端及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005094330A (ja) 2003-09-17 2005-04-07 Seiko Epson Corp 映像表示方法および映像表示装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0171822B1 (ko) * 1992-04-22 1999-03-20 강진구 영상신호의 중첩 디스플레이 방법
JP3767033B2 (ja) 1996-09-20 2006-04-19 ソニー株式会社 画像編集装置
KR100303727B1 (ko) 1998-04-28 2001-09-24 구자홍 동영상의적응적디스플레이속도자동조절장치와방법
JP3556163B2 (ja) * 2000-09-25 2004-08-18 富士通日立プラズマディスプレイ株式会社 表示装置
US7692642B2 (en) * 2004-12-30 2010-04-06 Intel Corporation Method and apparatus for controlling display refresh
TWI352325B (en) * 2006-04-17 2011-11-11 Chimei Innolux Corp A method and a circuit of the scan signal distorti
JP2010118976A (ja) * 2008-11-14 2010-05-27 Toshiba Corp 通信装置、通信方法および通信プログラム
US8717422B2 (en) * 2010-12-22 2014-05-06 Texas Instruments Incorporated Multi-sensor video frame synchronization apparatus and methods
US20140002730A1 (en) * 2012-06-28 2014-01-02 Qualcomm Incorporated Adaptive frame rate control

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005094330A (ja) 2003-09-17 2005-04-07 Seiko Epson Corp 映像表示方法および映像表示装置

Also Published As

Publication number Publication date
US9940904B2 (en) 2018-04-10
KR20150047091A (ko) 2015-05-04
US10573275B2 (en) 2020-02-25
US20150109326A1 (en) 2015-04-23
US20180286353A1 (en) 2018-10-04
KR20160064050A (ko) 2016-06-07
KR101635271B1 (ko) 2016-06-30

Similar Documents

Publication Publication Date Title
KR102066255B1 (ko) 시각 출력을 위한 조정을 판단하기 위한 기법
KR102154456B1 (ko) 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
JP6724238B2 (ja) 動的なフォビエーション調整
US9805438B2 (en) Dynamically rebalancing graphics processor resources
US9519946B2 (en) Partial tile rendering
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
US20240029211A1 (en) History clamping for denoising dynamic ray-traced scenes using temporal accumulation
US9489771B2 (en) Techniques for spatially sorting graphics information
US9792151B2 (en) Energy efficient burst mode
US9984430B2 (en) Ordering threads as groups in a multi-threaded, multi-core graphics compute system
US20130318458A1 (en) Modifying Chrome Based on Ambient Conditions
US9262841B2 (en) Front to back compositing
RU2666300C2 (ru) Технологии уменьшения пиксельного шейдинга
US20140156971A1 (en) Range Selection for Data Parallel Programming Environments
US9536342B2 (en) Automatic partitioning techniques for multi-phase pixel shading
US9390463B2 (en) Techniques for reducing memory bandwidth for display composition
CN108182656B (zh) 一种图像处理方法及终端
US20150170317A1 (en) Load Balancing for Consumer-Producer and Concurrent Workloads
US9317768B2 (en) Techniques for improved feature detection
US10261570B2 (en) Managing graphics power consumption and performance

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant