KR20150096639A - Media workload scheduler - Google Patents
Media workload scheduler Download PDFInfo
- Publication number
- KR20150096639A KR20150096639A KR1020150111226A KR20150111226A KR20150096639A KR 20150096639 A KR20150096639 A KR 20150096639A KR 1020150111226 A KR1020150111226 A KR 1020150111226A KR 20150111226 A KR20150111226 A KR 20150111226A KR 20150096639 A KR20150096639 A KR 20150096639A
- Authority
- KR
- South Korea
- Prior art keywords
- media
- gpu
- workload
- media workload
- feature
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42653—Internal components of the client ; Characteristics thereof for processing graphics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
본 발명은 일반적으로 작업부하(workload)를 조절하는데 관한 것이다. 특히, 본 발명은 그래픽 처리 유닛(graphics processing unit (GPU))에서 미디어 작업부하를 조절하는데 관한 것이다.
The present invention generally relates to controlling workload. More particularly, the present invention relates to adjusting media workloads in a graphics processing unit (GPU).
미디어 작업부하는 비교적 크며 전적으로 GPU 시간 및 메모리 대역폭을 이용할 수 있다. 미디어 작업부하는 카메라 또는 비디어 플레이어와 같은 전자 기기의 미디어 컴포넌트들로부터 미디어 애플리케이션에 의해 획득된 하나 이상의 데이터 스트림을 포함한다. 본 명세서에서 사용된 바와 같이, 미디어는 GPU에 의해 처리된 모든 데이터를 지칭한다. 예를 들면, 태블릿 및 스마트폰은 비디오 캡처를 지원하기 위해 적어도 하나의 전방 카메라와 적어도 하나의 후방 카메라의 두 대 이상의 카메라를 가질 수 있다. 카메라들은 동시에 사용될 수 있다. 각각의 카메라는 자체의 데이터 스트림을 가지며, 각 데이터 스트림마다 데이터 스트림을 인코딩하고 디코딩하는 처리를 포함한다. 예를 들면, 컴퓨팅 디바이스는 다수의 참가자들과 화상 회의를 위해 사용될 수 있으며, 이때 각각의 참가자는 인코드되고 디코드되는 자신의 데이터 스트림을 갖는다.The media workload is relatively large and can take full advantage of GPU time and memory bandwidth. The media workload includes one or more data streams obtained by a media application from media components of an electronic device, such as a camera or a video player. As used herein, media refers to all data processed by a GPU. For example, tablets and smart phones may have two or more cameras, at least one front camera and at least one rear camera, to support video capture. The cameras can be used simultaneously. Each camera has its own data stream, and includes processing to encode and decode the data stream for each data stream. For example, a computing device may be used for video conferencing with multiple participants, where each participant has its own data stream that is encoded and decoded.
도 1은 본 발명에 따라서 작업부하를 스케줄링하는데 사용될 수 있는 컴퓨팅 디바이스의 블록도이다.
도 2는 본 발명에 따라서 미디어 작업부하를 스케줄링하는데 사용될 수 있는 시스템의 개략도이다.
도 3은 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 방법을 도시하는 프로세스 흐름도이다.
도 4a는 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 방법을 도시하는 프로세스 흐름도이다.
도 4b는 본 발명에 따라서 특징(features)을 조절하기 위한 방법을 도시하는 프로세스 흐름도이다.
도 5는 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 코드를 저장하는 유형의 비실행 컴퓨터-판독가능 매체를 도시하는 블록도이다.
도 6은 공유된 물리적 메모리를 구현하기 위한 예시적인 실시예의 블록도이다.
도 7은 도 6의 시스템이 구현될 수 있는 소형 폼 팩터 다비이스(700)의 개략도이다. 1 is a block diagram of a computing device that may be used to schedule a workload in accordance with the present invention.
2 is a schematic diagram of a system that may be used to schedule media workloads in accordance with the present invention.
3 is a process flow diagram illustrating a method for scheduling media workloads in accordance with the present invention.
4A is a process flow diagram illustrating a method for scheduling media workloads in accordance with the present invention.
4B is a process flow diagram illustrating a method for adjusting features in accordance with the present invention.
5 is a block diagram illustrating a type of non-executing computer-readable medium storing code for scheduling media workloads in accordance with the present invention.
6 is a block diagram of an exemplary embodiment for implementing shared physical memory.
FIG. 7 is a schematic diagram of a small
명세서와 도면 전체에서 유사한 컴포넌트 및 특징을 참조하기 위해 동일한 참조부호가 사용된다. 100번대 번호는 본래 도 1에 도시된 특징들을 지칭하며 200번대 번호는 본래 도 2에 도시된 특징들을 지칭하며, 나머지도 그러하다. Like reference numerals are used to refer to like components and features throughout the specification and drawings. The 100th generation number originally refers to the features shown in FIG. 1, the 200th generation number originally refers to the features shown in FIG. 2, and so on.
GPU는 미디어 재생 및 3D 애플리케이션과 같은 각종 미디어 기능을 위해 사용될 수 있다. GPU의 많은 용도는 다수의 데이터 스트림을 인코딩하고 디코딩하는 것을 포함한다. 본 명세서에서 사용된 바와 같이, 미디어는 온라인 비디오 브로드캐스트 또는 화상 회의 이미지와 같은 각종 데이터 스트림으로 구성된 모든 그래픽 콘텐츠를 지칭한다. 전술한 바와 같이, GPU의 미디어 작업부하는 비교적 많을 수 있다. 미디어 작업부하가 소정 임계치를 초과할 때, 병목 현상이 발생할 수 있다. 임계치는 GPU의 최대 처리 용량을 포함할 수 있다. 병목 현상은 GPU에서 데이터 처리의 중단을 유발할 수 있고, 미디어 기능이 저하되는 결과를 가져온다. 예를 들면, 비디오의 재생은 훼손될 수 있으며 비디오 재생의 뒤처짐(lag), 또는 재생 중 여러 번 시작과 중단을 포함할 수 있다. 따라서, 본 명세서에서 기술된 실시예는 미디어 작업부하의 스케줄링에 관련한다. 미디어 작업부하는 GPU 이용율 및 메모리 대역폭에 따라 자동 조절될 수 있다.GPUs can be used for various media functions such as media playback and 3D applications. Many uses of GPUs include encoding and decoding multiple data streams. As used herein, the media refers to any graphical content composed of various data streams, such as on-line video broadcasts or video conferencing images. As described above, the media workload of the GPU may be relatively large. When the media workload exceeds a predetermined threshold, a bottleneck may occur. The threshold may include the maximum processing capacity of the GPU. The bottleneck can cause the GPU to interrupt data processing, resulting in degraded media functionality. For example, the playback of the video may be corrupted and may include a lag of video playback, or multiple starts and stops during playback. Thus, the embodiments described herein relate to the scheduling of media workloads. Media workloads can be automatically adjusted based on GPU utilization and memory bandwidth.
MPEG(Moving Picture Experts Group) 및 H.264에 의한 표준과 같은 비디오 표준은 비디오 스트림을 프레임별로 처리함으로써 비디오 스트림을 압축한다. 프레임은 화상(picture)과 유사한 비디오의 정지 이미지이다. 각각의 프레임은 매크로블록으로 세분될 수 있으며, 매크로블록은 또 다시 슬라이스로 나뉘어질 수 있다. 매크로블록은 전형적으로 픽셀들의 블록이다. 예를 들면, H.264 표준에서, 매크로블록은 16x16 픽셀 크기이다. 슬라이스는 독립적으로 인코딩될 수 있고 또는 디코딩될 수 있는 프레임 내 데이터 단위이다. 그래서, 만일 프레임의 한 슬라이스가 유실되더라도, 그 프레임의 다른 슬라이스들은 여전히 디코딩가능하다. 실시예에서, 슬라이스들은 이들이 화상 내 다른 슬라이스들과 독립적인 것처럼 인코딩 및 디코딩을 병행하여 사용될 수 있다. 슬라이스 헤더는 프레임 내 슬라이스들의 적어도 일부분에 대한 어드레스 정보를 포함할 수 있다. 이 어드레스 정보는 슬라이스들의 시작 위치의 식별을 가능하게 한다. 슬라이스 헤더에는 슬라이스와 연관된 어떤 필터 정보뿐만 아니라 MPEG 또는 H.264와 같은 슬라이스의 코딩 방식을 포함하는 다른 정보가 포함될 수 있다. Video standards, such as standards by the Moving Picture Experts Group (MPEG) and H.264, compress the video stream by processing the video stream frame by frame. A frame is a still image of video similar to a picture. Each frame can be subdivided into macroblocks, which can be further divided into slices. A macroblock is typically a block of pixels. For example, in the H.264 standard, a macroblock is 16x16 pixels in size. A slice is a unit of data in a frame that can be independently encoded or decoded. Thus, even if one slice of the frame is lost, the other slices of the frame are still decodable. In an embodiment, the slices can be used in parallel with encoding and decoding as if they were independent of other slices in the image. The slice header may include address information for at least a portion of the slices in the frame. This address information enables identification of the starting position of the slices. The slice header may include any filter information associated with the slice, as well as other information including the coding scheme of the slice, such as MPEG or H.264.
하기 설명과 청구범위에서, 용어 "결합된(coupled)" 및 "연결된(connected)"과 함께 이들의 파생어가 사용될 수 있다. 이러한 용어는 서로의 동의어로서 의도하려는 것이 아님을 이해하여야 한다. 그 보다는 특정 실시예에서, "연결된"은 둘 이상의 구성요소가 서로와 직접적인 물리적 또는 전기적 접촉을 하고 있다는 것을 나타내는데 사용될 수 있다. "결합된"은 둘 이상의 구성요소들이 직접적인 물리적 또는 전기적 접촉하고 있다는 것을 의미할 수 있다. 그러나, "결합된"은 또한 둘 이상의 구성요소들이 서로와 직접 접촉하고 있지 않지만 그래도 여전히 서로와 협동 또는 상호작용하고 있다는 것을 의미할 수도 있다. In the following description and claims, the terms "coupled" and "connected" It should be understood that these terms are not intended to be synonymous with each other. Rather, in certain embodiments, "connected" can be used to indicate that two or more components are in direct physical or electrical contact with each other. "Coupled" may mean that two or more components are in direct physical or electrical contact. However, "coupled" may also mean that two or more components are not in direct contact with each other, but still cooperate or interact with each other.
일부 실시예는 하드웨어, 펌웨어 및 소프트웨어 단독으로 또는 이들의 조합으로 구현될 수 있다. 일부 실시예는 본 명세서에서 기술된 동작을 수행하도록 컴퓨팅 플랫폼에 의해 판독되고 실행될 수 있는 머신-판독가능 매체에 저장된 명령어로서 구현될 수도 있다. 머신-판독가능 매체는 정보를 머신, 예를 들면, 컴퓨터에 의해 판독가능한 형태로 저장 또는 전송하기 위한 모든 메커니즘을 포함할 수 있다. 예를 들면, 머신-판독가능 매체는 그 중에서 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 소자, 또는 전기, 광학, 음향 또는 다른 형태의 전파된 신호, 예를 들면, 반송파(carrier waves), 적외선 신호, 디지털 신호, 또는 신호를 전송 및/또는 수신하는 인터페이스를 포함할 수 있다. Some embodiments may be implemented in hardware, firmware, and software alone or in combination. Some embodiments may be implemented as instructions stored on a machine-readable medium that can be read and executed by a computing platform to perform the operations described herein. A machine-readable medium may include any mechanism for storing or transferring information in a machine-readable form, e.g., in a computer-readable form. For example, the machine-readable medium may be a read only memory (ROM), a random access memory (RAM), a magnetic disk storage medium, an optical storage medium, a flash memory device, or an electrical, optical, acoustical, For example, carrier waves, infrared signals, digital signals, or interfaces for transmitting and / or receiving signals.
실시예는 구현예 또는 일예이다. 명세서에서 "실시예", "일 실시예", "일부 실시예", "여러 실시예" 또는 다른 실시예"라는 언급은 실시예들과 관련하여 기술된 특정한 특징, 구조 또는 특성이 적어도 일부 실시예에 포함되어 있지만, 반드시 본 발명의 모든 실시예에 포함된 것은 아니라는 것을 의미한다. "실시예", "일 실시예", 또는 "일부 실시예"가 여러번 나타난다 하여도 반드시 동일한 실시예를 언급하는 것은 아니다. 실시예의 구성요소 또는 양태는 다른 실시예의 구성요소 또는 양태와 조합될 수 있다. Embodiments are embodiments or examples. Reference in the specification to "an embodiment", "an embodiment", "some embodiments", "several embodiments", or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiments It is to be understood that the phrase " an embodiment ", " an embodiment ", or "some embodiments" The components or aspects of the embodiments may be combined with the components or aspects of the other embodiments.
본 명세서에 기술되고 예시된 컴포넌트, 특징, 구조, 특성들 모두가 특정 실시예 또는 실시예들에 포함되어야 하는 것은 아니다. 명세서에서, 예를 들면, 하나의 컴포넌트, 특징, 구조 또는 특성이 "포함될 수도 있다(may)", "포함될지도 모른다(might)", "포함될 수 있다(can)", 또는 "될 수도 있다(could)"라고 언급하는 경우, 그 특정 컴포넌트, 특징, 구조, 또는 특성은 포함되어야 하는 것은 아니다. 만일 명세서 또는 청구범위에서 "한" 또는 "하나의" 구성요소를 언급하는 경우, 이것은 단지 하나의 구성요소만이 있음을 의미하지 않는다. 명세서 또는 청구범위에서 "추가의" 구성요소를 언급하는 경우, 이것은 부가적인 구성요소가 하나 보다 많이 있음을 배제하지 않는다. It is not necessary that all of the components, features, structures, and features described and illustrated herein are included in a particular embodiment or embodiment. In the specification, for example, a component, feature, structure, or characteristic may be "may", "may", "may", or " quot; could ", it should not be construed that the particular component, feature, structure, or characteristic is included. If a "one" or "one" element is referred to in the specification or claims, this does not mean that there is only one component. Where reference is made to "additional" components in the specification or claims, this does not exclude that there are more than one additional component.
비록 일부 실시예가 특정 구현예를 참조하여 기술될지라도, 일부 실시예에 따라서 다른 구현예가 가능함을 주목할 필요가 있다. 그 외에, 도면에 예시된 및/또는 본 명세서에서 기술된 회로 구성요소 또는 다른 특징의 배열 및/또는 순서는 예시되고 기술된 특정 방법으로 배열될 필요는 없다. 일부 실시예에 따라서 다른 많은 배열이 가능하다. It should be noted that although some embodiments are described with reference to particular implementations, other implementations are possible according to some embodiments. In addition, the arrangement and / or order of the circuit components or other features illustrated in the figures and / or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some embodiments.
도면에 도시된 각각의 시스템에서, 일부 사례의 구성요소들은 제시된 구성요소가 상이한 및/또는 유사할 수도 있음을 시사하기 위해 각기 동일한 참조부호 또는 다른 참조부호를 가질 수도 있다. 그러나, 구성요소는 융통성 있게 상이한 구현예를 능히 가질 수 있으며 본 명세서에 도시되고 기술된 일부 또는 모든 시스템들과 더불어 작동할 수 있다. 도면에 도시된 각종 구성요소는 동일할 수도 또는 상이할 수도 있다. 어느 하나는 제1 구성요소로서 지칭되며 제2 구성요소라 불리는 것은 임의적이다. In each of the systems shown in the figures, elements in some instances may have the same or different reference numerals to indicate that the elements presented may be different and / or similar. However, the components may be flexibly capable of different implementations and may operate with some or all of the systems shown and described herein. The various components shown in the drawings may be the same or different. One is referred to as a first component and the second component is arbitrary.
도 1은 본 발명의 실시예에 따라서 작업부하를 스케줄링하는데 사용될 수 있는 컴퓨팅 디바이스(100)의 블록도이다. 컴퓨팅 디바이스(100)는, 예를 들면, 그 중에서도 랩탑 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 모바일 디바이스, 서버, 또는 셀룰러 폰을 포함할 수 있다. 컴퓨팅 디바이스(100)는 저장된 명령어를 실행하도록 구성된 중앙 처리 유닛(CPU)(102)과 CPU(102)에 의해 실행가능한 명령어를 저장하는 메모리 디바이스(104)를 포함한다. CPU(102)는 싱글 코어 프로세서, 멀티 코어 프로세서, 컴퓨팅 클러스터, 또는 어떤 개수의 다른 구성일 수 있다. 더욱이, 컴퓨팅 디바이스(100)는 하나 보다 많은 CPU(102)를 포함할 수 있다. CPU(102)에 의해 실행되는 명령어는 미디어 작업부하를 스케줄링하는데 사용될 수 있다. 1 is a block diagram of a
컴퓨팅 디바이스(100)는 또한 그래픽 처리 유닛(GPU)(104)을 포함할 수 있다. 도시된 바와 같이, CPU(102)는 버스(106)를 통해 GPU(104)에 연결될 수 있다. 그러나, 일부 실시예에서, CPU(102) 및 GPU(104)는 동일한 다이(die)에 배치된다. GPU(104)는 컴퓨팅 디바이스(100) 내에서 몇 가지 그래픽 동작이더라도 수행하도록 구성될 수 있다. 예를 들면, GPU(104)는 그래픽 이미지, 그래픽 프레임, 또는 비디오 등을 렌더링 또는 조작하여 컴퓨팅 디바이스(100)의 사용자에게 디스플레이되도록 구성될 수 있다.The
GPU(104)는 또한 샘플링 엔진(108), 3D 엔진(110), 및 미디어 엔진(112)을 포함할 수 있다. 엔진은 GPU(104)에 전달된 데이터의 병행 처리를 위해 사용될 수 있는 GPU(104)의 컴포넌트이다. 비록 세개의 GPU 엔진이 도시되어 있을 지라도, GPU는 몇 개의 엔진이라도 포함할 수 있다. 예를 들면, GPU(104)는 렌더링 엔진 및 멀티-포맷 코덱(CODEC(MFX)) 엔진을 포함할 수 있다. 컴퓨팅 디바이스(100)에서 도시된 바와 같이, 3D 엔진(110)은 다른 형태의 미디어를 처리하는 미디어 엔진(112)과 병행하여 3D 이미지 데이터를 처리할 수 있다. 샘플링 엔진(108)은 GPU 카운터(114)로부터 데이터를 수집할 수 있다. 부가적으로, 실시예에서, 렌더링 엔진은 3D 이미지 데이터를 처리할 수 있는 반면 MFX 엔진은 GPU(104)에 전송된 데이터를 디코드한다. GPU 카운터(114)는 GPU(104)와 관련된 성능 데이터(performance data)를 수집할 수 있다. 특히, GPU 카운터(114)는 GPU(104)의 부하 및 처리량을 측정할 수 있다. 샘플링 엔진(108)은 GPU 카운터(114)로부터 GPU 성능 데이터를 커널 모드 드라이버(kernel mode driver (KMD(116))에 전송할 수 있다. KMD(116)는 GPU 카운터(114)로부터의 데이터에 기반하여 GPU 이용율 및 메모리 대역폭을 계산할 수 있다.The
컴퓨팅 디바이스(100)는 하나 이상의 카메라(118)를 포함한다. 전술한 바와 같이, 셀룰러 폰은 두대의 전방 카메라와 하나의 후방 카메라를 가질 수 있다. 다수의 카메라는 비디오를 캡처하는데 사용될 수 있다. 또한, 컴퓨팅 디바이스(100)는 메모리 디바이스(120)를 포함할 수 있다. 메모리 디바이스(120)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 어떤 다른 적합한 메모리 시스템을 포함할 수 있다. 예를 들면, 메모리 디바이스(120)는 다이나믹 랜덤 액세스 메모리(DRAM)를 포함할 수도 있다. The
메모리 디바이스(120)는 미디어 특징 모델링 데이터베이스(media feature modeling database)(122)를 포함한다. 미디어 특징 모델링 데이터베이스(122)는 실시예에 따라서 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 조절하기 위하여 변경될 수 있는 일련의 특징을 포함한다. 미디어 특징 모델링 데이터베이스(122)는 오프라인에서 또는 실시간으로 모델링될 수 있다. The
미디어 특징 모델링 데이터베이스(122)에는 여러 특징들이 포함될 수 있다. 각각의 특징은 디코딩, 비디오 처리, 인코딩, 또는 메모리 액세스와 같은 미디어 작업부하의 일부 양상을 변경할 수 있다. 실시예에서, 미디어 작업부하는 CODEC을 이용하여 디코드되고 인코드될 수 있다. 따라서, 디코딩 특징 또는 인코딩 특징은 해당하는 CODEC을 변경함으로써 변경될 수 있다. The media feature
일예에서, 미디어 작업부하의 디코딩 양상은 슬라이스 헤더를 이용한 인-루프 디-블록킹(disabling in-loop de-blocking)을 디스에이블함으로써 또는 디코딩 동안 양방향 예측(bi-predicted) 프레임(B-프레임) 또는 예측 프레임(P-프레임)을 스킵함으로써 변경될 수 있다. 인-루프 디-블록킹은 블록 코딩 기술이 사용될 때 슬라이스들 사이에서 만들어질 수 있는 선명한 에지들을 스무딩 처리(smoothing)함으로써 비디오의 비주얼 품질 및 예측 성능을 개선시키기 위해 미디어 재생을 디코딩할 때 각 슬라이스에 적용되는 비디오 필터이다. 전술한 바와 같이, 슬라이스는 인코드 또는 디코드되는 각 프레임 내 데이터 단위이다. 각 슬라이스는 슬라이스에 관한 정보, 이를 테면, 그 중에서도 그 슬라이스의 인코딩 또는 디코딩 포맷을 가진 헤더를 포함할 수 있다. 인-루프 디-블록킹은 각 슬라이스의 헤더에 포함된 디-블록킹 필터 정보를 제거함으로써 디스에이블될 수 있다. 이러한 특징을 디스에이블함으로써, 디코딩에 사용된 미디어 작업부하의 일부분이 줄어들 수 있다. In one example, the decoding aspect of the media workload may be determined by disabling in-loop de-blocking with a slice header or during bi-predicted frames (B-frames) Can be changed by skipping the prediction frame (P-frame). In-loop de-blocking is a technique that, when decoding media playback to improve visual quality and predictive performance of video by smoothing sharp edges that can be created between slices when a block coding technique is used, It is the applied video filter. As described above, a slice is a unit of data in each frame to be encoded or decoded. Each slice may contain information about the slice, such as a header having the encoding or decoding format of the slice, among others. In-loop de-blocking may be disabled by removing the de-blocking filter information contained in the header of each slice. By disabling this feature, a portion of the media workload used for decoding can be reduced.
디코딩하는데 사용된 미디어 작업부하의 부분은 또한 미디어 작업부하의 비디오를 디코딩하는 동안 B-프레임 또는 P-프레임을 스킵함으로써 줄어들 수 있다. 전술한 바와 같이, 각각의 프레임은 다른 프레임들과 연속하여 디스플레이되어 전체 비디오를 렌더링하는 정지 화상이다. 예측된 화상 프레임(P-프레임) 및 양방향 예측된 프레임(B-프레임)을 포함하여 전체 비디오를 압축하기 위하여 각종 프레임 형태가 사용될 수 있다. P-프레임은 이전 프레임과 비교하여 발생하는 이미지 내 변동을 인코드한다. 그러므로, 비디오가 정지 배경을 가로질러 반동하는 공(ball)인 경우, 정지 배경을 인코딩하지 않고 그 공의 움직임이 인코딩된다. 그래서 인코딩된 파일의 크기는 정지 배경을 포함하는 전체 프레임을 인코딩하는 것과 비교할 볼 때 줄어든다. B-프레임은 현재 프레임과 이전 프레임을 비교하고, 비디오 정보를 가지고 인코딩하기 위하여 두 프레임들 간의 변동을 인코딩한다. 그래서, 비디오가 정지 배경을 가로지르는 공일 때, 정지 배경을 인코딩하지 않고 그 공의 변동된 위치가 인코딩된다. P-프레임 또는 B-프레임을 이용하여 비디오가 인코딩될 때, 미디어 작업부하를 줄이기 위하여 비디오를 디코딩할 때 여러 P-프레임 또는 B-프레임이 스킵될 수 있다. 비디오를 디코딩할 때 비순차적인 여러 P-프레임 또는 B-프레임은 미디어 작업부하의 GPU 이용을 줄일 수 있으며 대체로 사람의 눈에는 검출가능하지 않다. The portion of the media workload used to decode may also be reduced by skipping B-frames or P-frames while decoding the video of the media workload. As described above, each frame is a still picture that is displayed continuously with other frames to render the entire video. Various frame types may be used to compress the entire video including the predicted picture frame (P-frame) and the bidirectionally predicted frame (B-frame). The P-frame encodes the intra-image variation that occurs in comparison to the previous frame. Therefore, if the video is a ball that recovers across the still background, the motion of the ball is encoded without encoding the still background. So the size of the encoded file is reduced compared to encoding the entire frame including the still background. The B-frame compares the current frame with the previous frame, and encodes the variation between the two frames to encode with the video information. So, when the video is interlaced over the still background, the changed position of the ball is encoded without encoding the still background. When video is encoded using P-frames or B-frames, several P-frames or B-frames may be skipped when decoding video to reduce media workload. When decoding video, several non-sequential P-frames or B-frames may reduce the GPU usage of the media workload and are generally not detectable by the human eye.
이것으로 제한되지는 않지만 고해상도 재생, WiDi 재생을 포함하는 각종 사용 중에 또는 화상 회의 중에 디코딩이 발생할 수도 있다. 또한, 예에서, 인-루프 디-블록킹은 디코딩 동안 B-프레임 또는 P-프레임을 스킵하기 전에 디스에이블된다. 인-루프 디-블록킹이 디스에이블될 때, 비디오 품질의 저하는 디코딩 중에 B-프레임 또는 P-프레임을 스킵할 때 발생하는 비디오 품질의 저하에 비교하면 전형적으로 매우 작다. 따라서, 일차로 인-루프 디-블록킹을 디스에이블하는 것이 디코딩 중에 B-프레임 또는 P-프레임을 스킵할 때의 비디오 품질의 저하와 비교할 때 비디오 품질에 적은 영향을 미치기 때문에 바람직할 수 있다. Decoding may occur during various uses, including, but not limited to, high resolution playback, WiDi playback, or during video conferencing. Also, in the example, in-loop de-blocking is disabled prior to skipping B- or P-frames during decoding. When in-loop de-blocking is disabled, degradation in video quality is typically very small compared to degradation in video quality that occurs when skipping B- or P-frames during decoding. Thus, it may be desirable to disable in-loop de-blocking primarily because it has a small impact on video quality when compared to the degradation of video quality when skipping B-frames or P-frames during decoding.
미디어 작업부하를 조절하기 위하여 하나 이상의 비디오 처리 특징, 이를 테면, 이미지 안정화(image stabilization), 프레임 레이트 변환, 감마 보정 향상(gamma correction enhancement), 스킨 톤 향상(skin tone enhancement), 프레임 레이트 저감, 및 프레임 크기가 또한 변경될 수 있다. 예를 들면, 데이터의 프레임 레이트 또는 프레임 크기를 줄임으로써, GPU 이용율이 줄어들 수 있고, 그럼으로써 GPU가 사용자에 의해 인식되는 미디어 재생의 저하 없이 데이터 스트림을 처리하는 것이 가능해진다. 이것으로 제한되지 않지만 고해상도 재생, WiDi 재생을 포함하는 각종 사용 중에 또는 화상 회의 중에 비디오 처리가 발생한다. 예에서, 비디오 처리 특징이 변경될 때, 다른 비디오 처리 특징을 디스에이블하기 전에 프레임 레이트가 디스에이블될 수 있다. 이것은 전형적으로 GPU 파이프라인 내에서 지루한 과정이기 때문이다. 프레임 레이트 변환이 디스에이블된 이후, 이미지 안정화가 디스에이블되어 미디어 작업부하를 더 줄여줄 수 있다. 이미지 안정화 또한 GPU 시간의 많은 부분을 차지할 수 있다. 이미지 안정화가 디스에이블된 후 감마 보정 증대 및 스킨 톤 증대가 디스에이블될 수 있다. 마지막으로, 예에서, 프레임 레이트 저감 및 프레임 크기와 같은 나머지 특징들이 디스에이블될 수 있다. 전술한 순서대로 비디오 처리 특징들을 디스에이블함으로써, 특징들은 GPU 이용율을 줄이면서도 이미지 품질에는 최소한의 영향을 미치는 방식으로 디스에이블될 수 있다.One or more video processing features, such as image stabilization, frame rate conversion, gamma correction enhancement, skin tone enhancement, frame rate reduction, and / The frame size can also be changed. For example, by reducing the frame rate or frame size of the data, the GPU utilization can be reduced, thereby making it possible for the GPU to process the data stream without detracting from the media playback as perceived by the user. Although not limited to this, video processing occurs during various uses, including high resolution playback, WiDi playback, or during video conferencing. In the example, when the video processing feature is changed, the frame rate may be disabled before disabling the other video processing feature. This is typically a tedious process within the GPU pipeline. After frame rate conversion is disabled, image stabilization may be disabled to further reduce media workload. Image stabilization can also be a large part of GPU time. Gamma correction enhancement and skin tone enhancement may be disabled after image stabilization is disabled. Finally, in the example, other features such as frame rate reduction and frame size may be disabled. By disabling the video processing features in the order described above, the features can be disabled in a manner that minimizes GPU utilization while minimizing image quality.
비트 레이트, 움직임 추정, 및 매크로블록 형태와 같은 인코딩 특징들은 비디오 신호를 인코드하는데 사용된 미디어 작업부하의 부분을 조절하기 위하여 변경될 수 있다. 상세히 말해서, 인코딩함으로써 처리되는 데이터의 비트 레이트와 같은 특징은 줄어들 수 있는 한편, 플래시 미디어 인코딩(flash media encoding (FME)) 및 계층적 움직임 추정(hierarchical motion estimation (HME))과 같은 움직임 추정 기술은 인코딩으로 인한 높은 GPU 이용에 대응하여 턴온 또는 턴오프될 수 있다. 매크로블록 형태가 또한 변경될 수 있다. 예를 들면, 매크로블록은 16x16 픽셀 또는 8x8 픽셀처럼 상이한 크기를 가질 수 있다.Encoding features such as bit rate, motion estimation, and macroblock type may be changed to adjust the portion of the media workload used to encode the video signal. In particular, features such as the bit rate of data processed by encoding can be reduced while motion estimation techniques such as flash media encoding (FME) and hierarchical motion estimation (HME) It can be turned on or turned off in response to high GPU utilization due to encoding. The macroblock type can also be changed. For example, a macroblock may have a different size, such as 16x16 pixels or 8x8 pixels.
예에서, 인코딩 동안, 비디오 레이트는 미디어 작업부하의 다른 특징들을 조절하기 전에 낮추어질 수 있다. 비트 레이트는 다량의 GPU 시간을 소모할 수 있으며, 비트 레이트를 낮추면 인코딩하는데 사용된 GPU 시간을 감소시킬 수 있다. 예에서, 비트 레이트가 낮추어진 후, 움직임 추정 복잡도가 낮추어질 수 있고, 그럼으로써 움직임 추정에 사용된 GPU 시간을 줄일 수 있다. 마지막으로, 예에서, 움직임 추정 복잡도가 낮추어진 후, 미디어 작업부하를 변경하기 위하여 매크로블록 형태가 변경될 수 있다. 비디오 처리 특징들과 유사하게, 전술한 순서대로 인코딩 특징들을 디스에이블함으로써, 특징들은 GPU 이용율을 줄이면서 이미지 품질에는 최소의 영향을 미치는 방식으로 디스에이블될 수 있다. In the example, during encoding, the video rate may be lowered before adjusting other features of the media workload. The bit rate can consume a large amount of GPU time, and lowering the bit rate can reduce the GPU time used for encoding. In the example, after the bit rate is lowered, the motion estimation complexity can be lowered, thereby reducing the GPU time used for motion estimation. Finally, in the example, after the motion estimation complexity is lowered, the macroblock shape may be changed to change the media workload. Similar to the video processing features, by disabling the encoding features in the order described above, the features can be disabled in a manner that has minimal impact on image quality while reducing GPU utilization.
메모리 대역폭 또한 미디어 작업부하의 특징들을 변경함으로써 줄어들 수 있다. 예를 들면, 일부의 작업부하는 메모리의 대부분을 사용할 수 있는 반면, 다른 작업부하는 메모리를 덜 사용한다. 작업부하는 데이터가 메모리로부터 검색될 때 이용가능한 메모리의 대역폭에 의해 제한될 수 있다. 따라서, GPU에서 실행 단위 쓰레드들의 개수를 줄임으로써, 미디어 작업부하가 줄어듦므로 제한된 메모리 대역폭의 결과로서의 어떤 지터, 뒤처짐(lag) 또는 GPU 성능의 프리즈(freeze)를 방지할 수 있다. 메모리 대역폭에 영향을 미치는 다른 특징들 또한 변경될 수 있다. 예에서, 메모리 대역폭에 영향을 미치는 특징들은 대부분의 메모리 대역폭을 사용하는 특징들이 나머지 특징들에 앞서 디스에이블되는 순서로 변경될 수 있다. Memory bandwidth can also be reduced by changing the characteristics of the media workload. For example, some workloads can use most of the memory, while other workloads use less memory. The workload may be limited by the bandwidth of the memory available when the data is retrieved from the memory. Thus, by reducing the number of execution unit threads in the GPU, the media workload can be reduced, thereby preventing any jitter, lag, or freeze of GPU performance as a result of limited memory bandwidth. Other features that affect memory bandwidth may also be changed. In an example, features affecting the memory bandwidth may be changed in the order in which features using most of the memory bandwidth are disabled prior to the remaining features.
메모리 디바이스(120)는 또한 GPU 및 메모리 입력에 따라 작업부하를 조절하는 작업부하 스케줄러(124)를 포함할 수 있다. 실시예에서, 작업부하 스케줄러(124)는 미디어 작업부하의 어느 특징을 실시간으로 변경할지를 결정하기 위해 샘플링 엔진(108) 및 미디어 특징 모델링 데이터베이스(122)와 통신할 수 있다. 이러한 방식으로, 사용자에 의해 인식되는 GPU의 성능을 훼손시키지 않고 GPU의 사용을 극대화시킬 수 있는 GPU 이용율 및 메모리 대역폭이 성취된다. 작업부하는 작업부하 스케줄러(124)로부터 전달되어 도 2에서 설명되는 바와 같이 처리되고 그런 다음 GPU(104)에 전달된다. The
컴퓨팅 디바이스(100)는 스토리지(126)를 포함할 수 있다. 스토리지(126)는 하드 드라이브, 광 드라이브, 썸드라이브(thumbdrive), 드라이브 어레이, 또는 이들의 모든 조합과 같은 물리적 메모리이다. 스토리지(126)는 또한 원격 스토리지 드라이브를 포함할 수 있다. 스토리지는 또한 하나 이상의 미디어 애플리케이션(128)을 포함할 수 있다. The
CPU(102)는 또한 버스(106)를 통해 컴퓨팅 디바이스(100)를 하나 이상의 I/O 디바이스(132)에 연결하도록 구성된 입/출력(I/O) 디바이스(132)에 연결될 수 있다. I/O 디바이스(132)는, 예를 들면, 키보드 및 포인팅 디바이스를 포함할 수 있고, 포인팅 디바이스는 그 중에서도 터치패드 또는 터치스크린을 포함할 수 있다. I/O 디바이스(132)는 컴퓨팅 디바이스(100)의 빌트-인 컴포넌트일 수 있거나 외부에서 컴퓨팅 디바이스(100)에 연결된 다바이스일 수 있다. The
CPU(102)는 또한 버스(106)를 통해 컴퓨팅 디바이스(100)를 디스플레이 디바이스(136)에 연결하도록 구성된 디스플레이 인터페이스(134)에 링크될 수 있다. 디스플레이 디바이스(136)는 컴퓨팅 디바이스(100)의 빌트-인 컴포넌트인 디스플레이 스크린을 포함할 수 있다. 디스플레이 디바이스(136)는 또한 그 중에서도 외부에서 컴퓨팅 디바이스(100)에 연결된 컴퓨터 모니터, 텔레비전, 또는 프로젝터를 포함할 수 있다. 네트워크 인터페이스 컨트롤러(NIC)(138)는 버스(106)를 통해 컴퓨팅 디바이스(100)를 네트워크(140)에 연결하도록 구성될 수 있다. 네트워크(140)는 유선 네트워크, 무선 네트워크, 또는 셀룰러 네트워크일 수 있다. 네트워크(140)는 그 중에서도 어떤 광대역 네트워크(WAN), 또는 어떤 근거리 네트워크(LAN) 또는 인터넷일 수 있다. 예를 들면, 네트워크(140)는 3GPP LTE 네트워크 또는 WiFi 네트워크일 수 있다.The
도 1의 블록도는 컴퓨팅 디바이스(100)가 도 1에 도시된 모든 컴포넌트들을 포함하는 것으로 표시하려는 것은 아니다. 또한, 컴퓨팅 디바이스(100)는 특정 구현예의 세부사항에 따라서 도 1에 도시되지 않은 부가적인 컴포넌트를 몇 개라도 포함할 수 있다. The block diagram of FIG. 1 is not intended to depict
도 2는 본 발명의 실시예에 따라서 미디어 작업부하를 스케줄링 하는데 사용될 수 있는 시스템(200)의 개략도이다. 유사한 참조번호를 갖는 항목은 도 1에 관해 기술된 바와 같다. 시스템(200)은 미디어 애플리케이션(128)을 포함할 수 있다. 미디어 애플리케이션(128)은 그 중에서도 영화를 상연하는 애플리케이션, 화상 회의 소프트웨어, 또는 카메라 소프트웨어를 포함할 수 있다. 미디어 애플리케이션(128)에서 생긴 작업부하는 스케줄링 컴포넌트(200)에 전달될 수 있다. 스케줄링 컴포넌트(200)는 미디어 특징 모델링 데이터베이스(122), 샘플링 엔진(108), 작업부하 스케줄러(124), 및 비교기(204)를 포함한다. 도 1에 관해 기술한 바와 같이, 작업부하 스케줄러(124)는 GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 어느 특징을 실시간으로 변경할지를 결정하도록 샘플링 엔진(108) 및 미디어 특징 모델링 데이터베이스(122)와 통신할 수 있다. 만일 GPU 이용율 또는 메모리 대역폭이 임계치보다 낮으면, 비교기(204)는 애플리케이션(128)으로부터 아무 미디어 작업부하의 변경이 발생하지 않아야 한다는 메시지를 작업부하 스케줄러(124)에 전송할 것이다. GPU 이용율 또는 메모리 대역폭이 임계치를 넘으면, 비교기(204)는 미디어 작업부하가 변경되어야 한다는 메시지를 작업부하 스케줄러(124)에 전송할 것이다. 예를 들면, GPU 이용율이 임계치 95%를 상회하면, 미디어 작업부하는 변경될 수 있다. 마찬가지로, 메모리 대역폭의 퍼센티지가 초과할 때, 대역폭이 임계치로서 사용될 수 있다. 따라서, 초당 5 기가바이트의 임계치가 초과될 때, 미디어 작업부하가 변경될 수 있다.2 is a schematic diagram of a
작업부하는 스케줄링 컴포넌트(200)에서 CODEC(206)으로 전해질 수 있다. CODEC은 미디어 작업부하를 GPU에 의해 처리될 수 있는 포맷으로 변환할 수 있는 컴퓨팅 디바이스의 소프트웨어 또는 하드웨어 컴포넌트이다. 변환된 작업부하는 미디어 드라이버(208)에 전해진다. 실시예에서, 미디어 드라이버(208)는 변환된 작업부하를 버퍼에 배치한다. AKMD(116)는 변환된 작업부하의 GPU 이용율(210)뿐 만 아니라 메모리 대역폭(212)을 계산하는데 사용될 수 있다. 또한, GPU(104)와 같은 하드웨어는 버퍼로부터 변환된 작업부하를 처리할 수 있다.The workload may be passed from the
AKMD(116)는 또한 계산된 GPU 이용율(210)뿐 만아니라 메모리 대역폭(212)을 피드백(214)으로서 스케줄링 컴포넌트(200)에 전달한다. 피드백(214)은 GPU 이용율(210) 또는 메모리 대역폭(212)이 특정 임계치를 넘는지 또는 그 아래인지를 결정하기 위하여 비교기(204)에 의해 사용된다. 전술한 바와 같이, 작업부하 스케줄러는 비교기(204)의 결과에 따라 미디어 작업부하를 변경할 수 있다. The
도 3은 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 방법(300)을 도시하는 프로세스 흐름도이다. 여러 실시예에서, 방법(300)은 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스에서 실행될 수 있다. 다른 실시예에서, 방법(300)은 도 2에 관해 앞에서 설명된 시스템(200)과 같은 시스템을 이용하여 실행될 수 있다. 3 is a process flow diagram illustrating a
방법은 블록(302)에서 미디어 작업부하의 특징을 모델링함으로써 시작한다. 실시예에서, 특징은 GPU의 데이터 처리 병목을 방지 또는 해결하기 위해 조절될 수 있는 GPU에 의해 또는 GPU 엔진들 중 어느 엔진에 의해 처리된 작업부하의 어떤 양상이다. 데이터 처리 병목은 GPU 이용율이 임계치보다 높을 때 또는 메모리 대역폭이 임계치보다 높을 때 발생할 수 있다. 더욱이, 실시예에서, 특징들은 미디어 특징 모델링 데이터베이스에 저장될 수 있다.The method begins by modeling the characteristics of the media workload at
블록(304)에서, 미디어 작업부하의 GPU 이용율 및 메모리 대역폭이 결정될 수 있다. 전술한 바와 같이, GPU 이용율 및 메모리 대역폭은 커널 모드 드라이버를 이용하여 결정될 수 있다. 블록(306)에서, GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 미디어 작업부하가 스케줄링될 수 있다. 실시예에서, GPU 이용율 및 메모리 대역폭을 조절하는 것은 미디어 작업부하의 동적 제어를 제공하기, 미디어의 인코딩 및 디코딩을 조절하기, 비디오 재생을 조절하기, 및 화상 회의, 카메라 기능 또는 무선 디스플레이 기능의 파라미터를 조절하기를 포함한다. 또한, 실시예에서, 특징들은 미디어 작업부하로부터 제거될 수 있다.At
도 4a는 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 방법(400)을 도시하는 프로세스 흐름도이다. 블록(402)에서, 미디어 스케줄러는 사용 모델의 각각의 형태의 디폴트 설정에 따라 작업부하를 스케줄링할 것이다. 사용 모델은 작업부하에 의해 수행된 작업들의 형태를 나타낸다. 사용 모델의 디폴트 설정은 사용 모델의 작업을 가능하게 하는 설정을 포함한다. 예를 들면, 비디오 재생 작업은 사용 모델의 한가지 형태이다. 비디오 재생 작업의 디폴트 설정은 비디오 처리 특징을 가능하게 하기, 이미지 안정화 수행하기, 및 프레임 레이트 변환을 제공하기를 포함하지만, 이것으로 제한되지 않는다. 블록(404)에서, GPU 카운터로부터의 정보가 획득된다. 실시예에서, 새로운 작업부하가 GPU에 보내진 후, 스케줄링 컴포넌트는 GPU 이용율 및 메모리 대역폭이 계산될 수 있도록 GPU 카운터로부터 피드백을 수집할 수 있다. 또한, 실시예에서, GPU 이용율이 각 GPU 엔진마다 계산될 수 있다. 블록(406)에서, 방법은 GPU 또는 GPU 엔진이 과부하인지 결정한다. 만일 어떤 GPU 또는 GPU 엔진이 과부하이면, 프로세스 흐름은 블록(408)으로 진행한다. 만일 어떤 GPU 또는 GPU 엔진이 과부하가 아니면, 프로세스 흐름은 블록(410)으로 이어진다. 4A is a process flow diagram illustrating a
블록(408)에서, GPU 이용율을 줄이기 위해 미디어 작업부하의 특징이 변경된다. 예를 들면, 3D 엔진의 이용율이 기결정된 임계치를 넘도록 GPU의 3D 엔진이 과부하인 경우, 3D 엔진의 이용율을 줄이는 특징들이 변경된다. 그 다음 프로세스 흐름은 블록(402)으로 리턴하du 작업부하를 스케줄링한다. 도 4b는 실시예에 따라서 특징들을 조절하기 위한 방법을 추가로 기술한다.At
블록(412)에서, 메모리가 제한된 대역폭인지 결정된다. 메모리 대역폭이 제한되어 있다면, 프로세스 흐름은 블록(414)으로 이어진다. 메모리 대역폭이 제한되어 있지 않으면, 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At
블록(414)에서, 메모리 대역폭을 줄이기 위해 특징들이 변경될 수 있다. 실시예에서, 최대 메모리 대역폭이 초과되도록 미디어 엔진이 과부하이면, 메모리 대역폭을 줄이는 특징들이 변경될 수 있다. 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At
도 4b는 실시예에 따라서 미디어 작업부하의 특징을 변경하기 위한 방법(420)을 도시하는 프로세스 흐름도이다. 블록(422)에서, 렌더링 엔진이 과부하인지 결정된다. 예에서, 렌더링 엔진은 3D 이미지를 렌더링하는 GPU의 엔진일 수 있다. 렌더링 엔진의 이용율이 기결정된 임계치를 넘도록 GPU의 렌더링 엔진이 과부하라면, 프로세스 흐름은 블록(424)으로 이어진다. 4B is a process flow diagram illustrating a
블록(424)에서, 렌더링 엔진의 이용율을 줄이는 특징들이 변경된다. 블록(426)에서, MFX 엔진이 과부하인지 결정된다. 예에서, MFX 엔진은 각종 데이터 스트림을 디코딩하는 GPU의 엔진이다. MFX 엔진이 과부하인 경우, 프로세스 흐름은 블록(428)으로 진행한다. At
블록(428)에서, MFX 엔진의 이용율을 줄이는 CODEC 특징들이 변경된다. 전술한 바와 같이, CODEC은 미디어 작업부하를 GPU에 의해 처리될 수 있는 포맷으로 변환할 수 있는 컴퓨팅 디바이스의 소프트웨어 또는 하드웨어 컴포넌트이다. 실시예에서, CODEC은 CODEC(206)일 수 있다(도 2 참조). 또한, 실시예에서, CODEC은 MFX 엔진 또는 GPU 카운터(114)(도 1 참조)와 같은 GPU 엔진의 컴포넌트 일 수 있다. MFX 엔진의 이용율을 줄이기 위해 CODEC의 여러 양상이 변경될 수 있다. 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At
도 3, 도 4a 및 4b의 프로세스 흐름도는 방법(300) 및 방법(400)의 블록들이 어떤 특정 순서로 실행된다거나 또는 그 블록들 모두가 모든 사례에 포함된다고 표시하려는 것은 아니다. 또한, 특정 구현의 세부사항에 따라 추가 블록이 몇개 라도 방법(300 및 400)에 포함될 수 있다. The process flow diagrams of FIGS. 3, 4A and 4B are not intended to indicate that the blocks of
도 5는 실시예에 따라서 미디어 작업부하를 스케줄링하기 위한 코드를 저장하는 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)를 도시하는 블록도이다. 따라서, 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체는 실시예에 따라서 미디어 작업부하를 스케줄링하기 위한 코드를 저장할 수 있다. 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)는 컴퓨터 버스(504)를 통해 프로세서(502)에 의해 액세스될 수 있다. 또한, 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)는 프로세서(502)에게 지시하여 본 명세서에 기술된 방법들을 수행하도록 구성된 코드를 포함할 수 있다. 5 is a block diagram illustrating one or more types of non-transitory computer
본 명세서에서 기술된 여러 소프트웨어 컴포넌트들은 도 5에 도시된 바와 같은 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)에 저장될 수 있다. 예를 들면, 모델링 모듈(506)은 미디어 작업부하의 특징을 모델링하도록 구성될 수 있다. 이용 모듈(508)은 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 결정하도록 구성될 수 있다. 또한, 스케줄링 모듈(510)은 GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 미디어 작업부하를 스케줄링하도록 구성될 수 있다. The various software components described herein may be stored in one or more types of non-volatile computer
도 5의 블록도는 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)가 도 5에 도시된 모든 컴포넌트들을 포함한다고 표시하려는 것은 아니다. 또한, 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)는 특정 구현의 세부사항에 따라서 도 5에 도시되지 않은 부가적인 컴포넌트를 몇 개라도 포함할 수 있다. The block diagram of FIG. 5 is not meant to imply that one or more types of non-volatile computer-
도 6은 공유된 물리 메모리를 구현하기 위한 예시적인 시스템(600)의 블록도이다. 유사한 참조부호를 갖는 항목은 도 1 및 도 2에 관해 기술된 바와 같다. 일부 실시예에서, 시스템(600)은 미디어 시스템이다. 또한, 시스템(600)은 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩톱 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인휴대단말(PDA), 셀룰러 텔레폰, 겸용 셀룰러 텔레폰/PDA, 텔레비전, 스마트 디바이스(예를 들면, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시지 디바이스, 또는 데이터 통신 디바이스 등에 포함될 수 있다. 6 is a block diagram of an
여러 실시예에서, 시스템(600)은 디스플레이(604)에 결합된 플랫폼(602)을 포함한다. 플랫폼(602)은 콘텐츠 서비스 디바이스(들)(606) 또는 콘텐츠 전달 디바이스(들)(608), 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징을 포함하는 네비게이션 컨트롤러(610)는, 예를 들면, 플랫폼(602) 및/또는 디스플레이(604)와 상호작용하는데 사용될 수 있다. 이들 컴포넌트는 각기 아래에서 더욱 상세히 설명된다.In various embodiments, the
플랫폼(602)은 칩셋(612), 중앙 처리 유닛(CPU)(102), 메모리 디바이스(120), 스토리지 디바이스(126), 그래픽 서브시스템(614), 애플리케이션(128), 및 라디오(616)의 어떤 조합을 포함할 수 있다. 칩셋(612)은 CPU(102), 메모리 디바이스(120), 스토리지 디바이스(126), 그래픽 서브시스템(614), 애플리케이션(128), 및 라디오(616) 간의 상호통신을 제공할 수 있다. 예를 들면, 칩셋(612)은 스토리지 디바이스(126)와 상호통신을 제공할 수 있는 스토리지 어댑터(도시되지 않음)를 포함할 수 있다.The
CPU(102)는 복합 명령어 세트 컴퓨터(Complex Instruction Set Computer (CISC)) 또는 축소 명령어 세트 컴퓨터(Reduced Instruction Set Computer (RISC)) 프로세서, x86 명령어 세트 호환 프로세서(x86 instruction set compatible processors), 멀티 코어 또는 어떤 다른 마이크로프로세서 또는 중앙 처리 유닛(CPU)으로서 구현될 수 있다. 일부 실시예에서, CPU(102)는 듀얼코어 프로세서(들) 또는 듀얼코어 모바일 프로세서(들) 등을 포함한다. The
메모리 디바이스(120)는 휘발성 메모리 디바이스, 이를 테면, 랜덤 액세스 메모리(RAM), 다이나믹 랜덤 액세스 메모리(DRAM), 또는 스태틱 RAM(SRAM)으로서 구현될 수 있지만, 이것으로 제한되지 않는다. 스토리지 디바이스(126)는 비휘발성 스토리지 디바이스, 이를 테면, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 어태치드 스토리지 디바이스(attached storage device), 플래시 메모리, 배터리 백업 SDRAM(동기 DRAM), 및/또는 네트워크 액세스가능 스토리지 디바이스로서 구현될 수 있지만, 이것으로 제한되지 않는다. 일부 실시예에서, 스토리지 디바이스(126)는, 예를 들면, 다중 하드 드라이브가 포함될 때 고가 디지털 미디어의 스토리지 성능 개선 보호를 증가시키는 기술을 포함한다. The
그래픽 서브시스템(614)은 디스플레이하기 위한 정지 또는 비디오와 같은 이미지의 처리기능을 포함할 수 있다. 그래픽 서브시스템(614)은 예를 들면, GPU(104)(도 1 참조) 또는 비주얼 처리 유닛(VPU)과 같은 그래픽 처리 유닛(GPU)을 포함할 수 있다. 아날로그 또는 디지털 인터페이스는 통신을 통해 그래픽 서브시스템(614) 및 디스플레이(604)를 결합하는데 사용될 수 있다. 예를 들면, 인터페이스는 고선명 멀티미디어 인터페이스, 디스플레이포트, 무선 HDMI 및/또는 무선 HD 대응 기술(HD compliant techniques) 중 어느 것일 수 있다. 그래픽 서브시스템(614)은 CPU(102) 또는 칩셋(612)으로 통합될 수 있다. 대안으로, 그래픽 서브시스템(614)은 통신을 통해 칩셋(612)에 결합된 스탠드-얼론 카드일 수 있다. The graphics subsystem 614 may include processing functionality for images such as still or video for display. Graphics subsystem 614 may include, for example, a graphics processing unit (GPU) such as a GPU 104 (see FIG. 1) or a visual processing unit (VPU). The analog or digital interface may be used to couple the
본 명세서에 기술된 그래픽 및/또는 비디오 처리 기술은 각종 하드웨어 아키텍처로 구현될 수 있다. 예를 들면, 그래픽 및/또는 비디오 기능은 칩셋(612) 내에 통합될 수 있다. 대안으로, 이산적인 그래픽 및/또는 비디오 프로세서가 사용될 수도 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능은 멀티코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 또 다른 실시예에서, 기능들은 컨슈머 전자 기기에서 구현될 수 있다. The graphics and / or video processing techniques described herein may be implemented in various hardware architectures. For example, the graphics and / or video capabilities may be integrated within the
라디오(616)는 각종 적합한 무선 통신 기술을 이용하여 신호를 전송하고 수신할 수 있는 하나 이상의 라디오를 포함할 수 있다. 그러한 기술은 하나 이상의 무선 네트워크 전체에서 통신을 수반할 수 있다. 예시적인 무선 네트워크는 무선 근거리 네트워크(WLANs), 무선 개인 영역 네트워크(WPANs), 무선 대도시 네트워크(metropolitan area network (WMANs)), 셀룰러 네트워크, 또는 위성 네트워크 등을 포함한다. 그러한 네트워크 전체에서 통신할 때, 라디오(616)는 어느 버전에서건 하나 이상의 적용 기준에 따라서 동작할 수 있다. The
디스플레이(604)는 모든 텔레비전 형태의 모니터 또는 디스플레이를 포함할 수 있다. 예를 들면, 디스플레이(604)는 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 또는 텔레비전 등을 포함할 수 있다. 디스플레이(604)는 디지털 및/또는 아날로그일 수 있다. 일부 실시예에서, 디스플레이(604)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(604)는 비주얼 프로젝션을 받아들일 수 있는 투명 표면일 수 있다. 그러한 투사는 다양한 형태의 정보, 이미지, 또는 객체 등을 전할 수 있다. 예를 들면, 그러한 투사는 모바일 증강 현실(mobile augmented reality (MAR)) 애플리케이션을 위한 비주얼 오버레이일 수 있다. 하나 이상의 애플리케이션(128)의 제어하에, 플랫폼(602)은 디스플레이(604)에 사용자 인터페이스(618)를 디스플레이할 수 있다.
콘텐츠 서비스 디바이스(들)(606)는 국가적, 세계적 또는 독자적 서비스에서 호스트 역할을 할 수 있으며, 이렇게 하여 예를 들면 인터넷을 매개로 하여 플랫폼(602)에 액세스될 수 있다. 콘텐츠 서비스 디바이스(들)(606)는 플랫폼(602) 및/또는 디스플레이(604)에 결합될 수 있다. 플랫폼(602) 및/또는 콘텐츠 서비스 디바이스(들)(606)는 네트워크(140)에 결합되어 미디어 정보를 네트워크(140)로 및 네트워크로부터 통신(예를 들면, 송신 및/또는 수신)할 수 있다. 콘텐츠 전달 디바이스(들)(608)는 플랫폼(602) 및/또는 디스플레이(604)에 결합될 수 있다. The content service device (s) 606 may serve as a host in a national, global, or proprietary service and thus be accessible to the
콘텐츠 서비스 디바이스(들)(606)는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 텔레폰, 또는 디지털 정보를 전달할 수 있는 인터넷-가능 디바이스를 포함할 수 있다. 또한, 콘텐츠 서비스 디바이스(들)(606)는 콘텐츠 프로바이더와 플랫폼(602) 또는 디스플레이(604)와의 사이에서 네트워크(140)를 통해 또는 직접적으로 콘텐츠를 단방향 또는 양방향으로 통신할 수 있는 어떤 다른 유사 디바이스를 포함할 수 있다. 콘텐츠는 네트워크(140)를 통하여 시스템(600)내 컴포넌트 및 콘텐츠 프로바이더 중 어느 것으로 및 그 어느 것으로부터 단방향 및/또는 양방향으로 통신될 수 있다. 콘텐츠의 일예는, 예를 들면, 비디오, 뮤직, 의료 및 게임 정보 등을 포함하는 어떤 미디어 정보라도 포함할 수 있다.The content service device (s) 606 may include a cable television box, a personal computer, a network, a telephone, or an internet-enabled device capable of conveying digital information. In addition, the content service device (s) 606 may be any other similar entity capable of communicating content either unidirectionally or bi-directionally between the content provider and the
콘텐츠 서비스 디바이스(들)(606)는 미디어 정보, 디지털 정보 또는 기타 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 프로바이더의 일예는 그 중에서도 어떤 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐츠 프로바이더라도 포함할 수 있다. The content service device (s) 606 may receive content such as cable television programming, including media information, digital information or other content. An example of a content provider may include any cable or satellite television or radio or Internet content provider.
일부 실시예에서, 플랫폼(602)은 네비게이션 컨트롤러(610)로부터 하나 이상의 네비게이션 특징을 포함하는 제어 신호를 수신한다. 네비게이션 컨트롤러(610)의 네비게이션 특징은, 예를 들면, 사용자 인터페이스(618)와 상호작용하도록 사용될 수 있다. 네비게이션 컨트롤러(610)는 사용자에게 공간(예를 들면, 지속적이면서 다차원적) 데이터를 컴퓨터에 입력하게 해주는 컴퓨터 하드웨어 컴포넌트(특히 휴먼 인터페이스 디바이스)일 수 있는 포인팅 디바이스일 수 있다. 그래픽 사용자 인터페이스(GUI), 텔레비전 및 모니터와 같은 많은 시스템은 사용자로 하여금 신체적인 제스처를 이용하여 데이터를 제어하여 컴퓨터 또는 텔레비전에 제공하게 해준다. 신체적인 제스처는 얼굴 표정, 얼굴 움직임, 여러 팔다리 움직임, 신체 움직임, 신체 언어 또는 이들의 어떤 조합을 포함하지만, 이것으로 제한되지 않는다. 그러한 신체적 제스처는 명령어 또는 지령으로 인식되고 번역될 수 있다. In some embodiments, the
네비게이션 컨트롤러(610)의 네비게이션 특징들의 움직임은 디스플레이(604)에 디스플레이된 포인터, 커서, 포커스 링, 또는 기타 비주얼 인디케이터에 의해 디스플레이(604)에서 반향될 수 있다. 예를 들면, 애플리케이션(128)의 제어 하에, 네비게이션 컨트롤러(610)에 배치된 네비게이션 특징은 사용자 인터페이스(618)에 디스플레이된 가상 네비게이션 특징에 맵핑될 수 있다. 일부 실시예에서, 네비게이션 컨트롤러(610)는 개별 컴포넌트가 아닐지도 모르지만, 그 보다는 플랫폼(602) 및/또는 디스플레이(604)에 통합될 수 있다. The movement of the navigation features of the
예를 들면, 시스템(600)은 인에이블될 때, 초기 부트업 후 버튼의 터치에 따라 사용자가 플랫폼(602)을 즉각 턴온 또는 턴오프할 수 있게 해주는 기술을 포함하는 드라이버(도시되지 않음)를 포함할 수 있다. 프로그램 로직은 플랫폼이 턴 "오프"될 때 플랫폼(602)으로 하여금 콘텐츠를 미디어 어댑터 또는 기타 콘텐츠 서비스 디바이스(들)(606) 또는 콘텐츠 전달 디바이스(들)(608)에 스트림하게 해 줄 수 있다. 그 밖에, 칩셋(612)은, 예를 들면, 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오용 하드웨어 및/또는 소프트웨어 서포트를 포함할 수 있다. 드라이버는 통합 그래픽 플랫폼용 그래픽 드라이버를 포함할 수 있다. 일부 실시예에서, 그래픽 드라이버는 PCIe(peripheral component interconnect express) 그래픽 카드를 포함한다. For example, when enabled,
여러 실시예에서, 시스템(600)에서 도시된 컴포넌트들 중 어느 하나 이상의 컴포넌트가 통합될 수 있다. 예를 들면, 플랫폼(602) 및 콘텐츠 서비스 디바이스(들)(606)가 통합될 수 있고, 플랫폼(602) 및 콘텐츠 전달 디바이스(들)(608)가 통합될 수 있고, 또는 플랫폼(602), 콘텐츠 서비스 디바이스(들)(606) 및 콘텐츠 전달 디바이스(들)(608)가 통합될 수 있다. 일부 실시예에서, 플랫폼(602) 및 디스플레이(604)는 통합된 유닛이다. 예를 들어, 디스플레이(604) 및 콘텐츠 서비스 디바이스(들)(606)가 통합될 수 있고, 또는 디스플레이(604) 및 콘텐츠 전달 디바이스(들)(608)가 통합될 수 있다. In various embodiments, any one or more of the components shown in
시스템(600)은 무선 시스템 또는 유선 시스템으로서 구현될 수 있다. 무선 시스템으로 구현될 때, 시스템(600)은 무선 공유 미디어, 이를 테면 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 및 제어 로직 등을 통해 통신하는데 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 미디어의 일예는 RF 스펙트럼과 같은 무선 스펙트럼의 일부분을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(600)은 유선 통신 미디어, 이를 테면, 입/출력 (I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체에 연결하는 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 또는 오디오 컨트롤러 등을 통해 통신하는데 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 일예는 와이어, 케이블, 금속 리드, 인쇄 회로 기판(PCB), 백플레인, 스위치 패브릭, 반도체 물질, 트위스트-페어 와이어, 동축 케이블, 또는 광섬유 등을 포함할 수 있다. The
플랫폼(602)은 정보를 전달하는 하나 이상의 논리적 또는 물리적 채널을 확립할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위해 만들어진 콘텐츠를 나타내는 모든 데이터를 지칭할 수 있다. 콘텐츠의 일예는, 예를 들면, 음성 대화 데이터(data from a voice conversation), 화상회의, 스트리밍 비디오, 전자 메일(이메일) 메시지, 음성 메일 메시지, 영숫자 심볼, 그래픽, 이미지, 비디오, 및 텍스트 등을 포함할 수 있다. 음성 대화 데이터는, 예를 들면, 음성 정보, 묵음 주기, 배경 잡음, 편안한 잡음(comfort noise), 및 톤 등을 포함할 수 있다. 제어 정보는 명령어, 지령어 또는 자동화 시스템용으로 만들어진 제어 워드를 나타내는 모든 데이터를 지칭할 수 있다. 예를 들면, 제어 정보는 시스템을 통해 미디어 정보를 라우트하는데 사용될 수 있거나 또는 노드에 지시하여 기결정된 방식으로 미디어 저오를 처리하도록 하는데 사용될 수 있다. 그러나, 실시예는 도 6에 도시되고 기술된 구성요소 또는 상황으로 제한되지 않는다. The
도 7은 도 6의 시스템(600)이 구현될 수 있는 소형 폼 팩터 디바이스(small form factor device)(700)의 개략도이다. 유사한 참조부호를 갖는 항목은 도 6에 관해 기술된 바와 같다. 일부 실시예에서, 예를 들면, 디바이스(700)는 무선 역량을 갖는 모바일 컴퓨팅 디바이스로서 구현된다. 모바일 컴퓨팅 디바이스는 프로세싱 시스템 및, 예를 들면, 하나 이상의 배터리와 같은 모바일 전원 또는 파워 서플라이를 갖는 모든 디바이스를 지칭할 수 있다. FIG. 7 is a schematic diagram of a small
전술한 바와 같이, 모바일 컴퓨팅 디바이스의 일예는 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩톱 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인휴대단말(PDA), 셀룰러 텔레폰, 겸용 셀룰러 텔레폰/PDA, 텔레비전, 스마트 디바이스(예를 들면, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시지 디바이스, 또는 데이터 통신 디바이스 등을 포함할 수 있다. As described above, an example of a mobile computing device may be a personal computer (PC), a laptop computer, an ultra-laptop computer, a tablet, a touch pad, a portable computer, a handheld computer, a palmtop computer, a personal digital assistant (E.g., a smart phone, a smart tablet, or a smart television), a mobile Internet device (MID), a messaging device, or a data communication device, and the like.
모바일 컴퓨팅 디바이스의 일예는 또한 사람이 착용하도록 구성된 컴퓨터, 이를 테면, 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-클립 컴퓨터, 암-밴드 컴퓨터, 신발 컴퓨터, 의류 컴퓨터 또는 착용 컴퓨터의 기타 적절한 형태를 포함할 수 있다. 예를 들면, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션뿐 만 아니라 음성 통신 및/또는 데이터 통신을 실행할 수 있는 스마트 폰으로서 구현될 수 있다. 비록 일부 실시예가 예로서 스마트 폰으로서 구현된 모바일 컴퓨팅 디바이스에 대해 기술될 수 있을 지라도 다른 무선 모바일 컴퓨팅 디바이스를 이용하여 다른 실시예가 또한 구현될 수 있음이 인식될 수 있다. An example of a mobile computing device may also be a computer configured to be worn by a person, such as a wrist computer, a finger computer, a ring computer, a spectacle computer, a belt-clip computer, an arm-band computer, ≪ / RTI > For example, a mobile computing device may be implemented as a smartphone capable of executing voice communications and / or data communications as well as computer applications. It should be appreciated that although some embodiments may be described for a mobile computing device implemented as an example smartphone, other embodiments may also be implemented using other wireless mobile computing devices.
도 7에 도시된 바와 같이, 디바이스(700)는 하우징(702), 디스플레이(704), 입/출력(I/O) 디바이스(706) 및 안테나(708)를 포함할 수 있다. 디바이스(700)는 또한 네비게이션 특징(710)을 포함할 수 있다. 디스플레이(704)는 모바일 컴퓨팅 디바이스에 적절한 정보를 디스플레이하는데 적합한 모든 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(706)는 정보를 모바일 컴퓨팅 디바이스에 입력하는데 적절한 적합한 모든 I/O 디바이스를 포함할 수 있다. 예를 들면, I/O 디바이스(706)는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 로커 스위치(rocker switches), 마이크로폰, 스피커, 또는 음성 인식 디바이스 및 소프트웨어 등을 포함할 수 있다. 정보는 또한 마이크로폰을 통해 디바이스(700)에 입력될 수 있다. 그러한 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다.
7,
실시예 1Example 1
컴퓨팅 디바이스의 미디어 작업부하를 스케줄링하기 위한 방법이 여기 기술된다. 이 방법은 미디어 작업부하의 특징을 모델링하는 것을 포함한다. 미디어 작업부하의 GPU 이용율 및 메모리 대역폭이 결정될 수 있다. 이 방법은 또한 GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 미디어 작업부하를 스케줄링하는 것을 포함한다. A method for scheduling a media workload of a computing device is described herein. The method includes modeling features of the media workload. GPU utilization and memory bandwidth of the media workload can be determined. The method also includes scheduling the media workload by altering features of the media workload to adjust GPU utilization and memory bandwidth.
미디어 작업부하의 특징은 미디어 특징 모델링 데이터베이스에서 모델링될 수 있다. 미디어 작업부하는 CODEC을 이용하여 다른 포맷으로 변환될 수 있다. 또한, 커널 모드 드라이브, GPU, 및 메모리 카운터가 GPU 이용율 및 메모리 대역폭을 결정하는데 사용될 수 있다. GPU 이용율은 GPU의 각 엔진마다 결정될 수 있다. 미디어 작업부하는 GPU 이용율 또는 메모리 대역폭이 임계치를 넘을 때 스케줄링될 수 있다. GPU 이용율 및 메모리 대역폭의 조절은 미디어의 인코딩 및 디코딩을 조절하고 비디오 재생을 조정하는 미디어 작업부하의 동적 제어를 제공한다.
The features of the media workload can be modeled in the media feature modeling database. Media workloads can be converted to other formats using CODECs. In addition, kernel mode drives, GPUs, and memory counters can be used to determine GPU utilization and memory bandwidth. GPU utilization can be determined for each engine in the GPU. The media workload can be scheduled when the GPU utilization or memory bandwidth exceeds the threshold. Control of GPU utilization and memory bandwidth provides dynamic control of media workloads that control encoding and decoding of media and coordinating video playback.
실시예 2Example 2
컴퓨팅 디바이스가 여기 기술된다. 컴퓨팅 디바이스는 저장된 명령어를 실행하도록 구성된 중앙 처리 유닛(CPU) 및 명령어를 저장하는 스토리지 디바이스를 포함한다. 스토리지 디바이스는 CPU에 의해 실행될 때 미디어 특징 모델링 데이터베이스를 이용하여 미디어 작업부하의 특징을 모델링하도록 구성된 프로세서 실행 CODEC을 포함한다. 미디어 작업부하의 GPU 이용율 및 메모리 대역폭은 그래픽 처리 유닛(GPU) 카운터를 이용하여 결정될 수 있다. 미디어 작업부하는 GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 스케줄링될 수 있다. A computing device is described herein. The computing device includes a central processing unit (CPU) configured to execute stored instructions and a storage device that stores instructions. The storage device includes a processor running CODEC configured to model features of the media workload using the media feature modeling database when executed by the CPU. The GPU utilization and memory bandwidth of the media workload may be determined using a graphics processing unit (GPU) counter. The media workload can be scheduled by changing the characteristics of the media workload to adjust GPU utilization and memory bandwidth.
컴퓨팅 디바이스는 카메라, 비디오 채팅 애플리케이션, 또는 화상 회의 애플리케이션을 포함할 수 있다. 프로세서 실행 코드는 GPU 이용율 또는 메모리 대역폭이 임계치를 넘거나 그보다 낮은지를 결정하는 비교기를 이용하여 미디어 작업부하를 스케줄링하도록 구성될 수 있다. 이용율은 GPU의 각 GPU 엔진마다 결정될 수 있다. 또한, CODEC은 미디어 작업부하를 GPU에 의해 처리하기 위한 다른 포맷으로 변환하는데 사용될 수 있다. 더욱이, 커널 모드 드라이브 및 GPU 카운터를 갖는 GPU는 GPU 이용율 및 메모리 대역폭을 결정하는데 사용될 수 있다. GPU 이용율 및 메모리 대역폭의 조절은 미디어 작업부하에서 특징들을 제거하는 것을 포함할 수 있다. 미디어 작업부하의 특징은 컴퓨팅 디바이스의 미디어 특징 모델링 데이터베이스에서 모델링될 수 있다. 청구범위의 제9항의 컴퓨팅 디바이스는 또한 라디오 및 디스플레이를 포함하며, 라디오 및 디스플레이는 적어도 중앙 처리 유닛에 통신 가능하게 결합될 수 있다.
The computing device may include a camera, a video chat application, or a video conferencing application. The processor executable code may be configured to schedule the media workload using a comparator that determines whether the GPU utilization or memory bandwidth is above or below the threshold. Utilization can be determined for each GPU engine of the GPU. The CODEC may also be used to convert media workloads into other formats for processing by the GPU. Moreover, a GPU with a kernel mode drive and a GPU counter can be used to determine GPU utilization and memory bandwidth. Adjusting GPU utilization and memory bandwidth may include removing features from the media workload. The characteristics of the media workload may be modeled in the media feature modeling database of the computing device. The computing device of claim 9 of the claims also includes a radio and a display, wherein the radio and the display can be communicatively coupled to at least the central processing unit.
실시예 3Example 3
명령어가 저장된 적어도 하나의 비 일시적 머신 판독가능 매체가 여기 기술된다. 컴퓨팅 디바이스에서 실행되는데 응답하여, 명령어는 컴퓨팅 디바이스로 하여금 미디어 작업부하의 특징을 모델링하게 한다. 미디어 작업부하의 GPU 이용율 및 메모리 대역폭이 결정될 수 있다. 미디어 작업부하는 GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 스케줄링될 수 있다.At least one non-transitory machine-readable medium having stored thereon instructions is described herein. In response to being executed on the computing device, the instructions cause the computing device to model the characteristics of the media workload. GPU utilization and memory bandwidth of the media workload can be determined. The media workload can be scheduled by changing the characteristics of the media workload to adjust GPU utilization and memory bandwidth.
미디어 작업부하는 GPU 이용율 또는 메모리 대역폭이 임계치를 넘을 때 스케줄링될 수 있다. 더욱이, 미디어 작업부하는 CODEC을 이용하여 다른 포맷으로 변환될 수 있다. 미디어 작업부하의 특징은 미디어 특징 모델링 데이터베이스에서 모델링될 수 있다. 또한, GPU 이용율은 GPU의 각 엔진마다 결정될 수 있다. The media workload can be scheduled when the GPU utilization or memory bandwidth exceeds the threshold. Moreover, media workloads can be converted to other formats using CODECs. The features of the media workload can be modeled in the media feature modeling database. In addition, the GPU utilization may be determined for each engine of the GPU.
전술한 예들의 세부 내용은 하나 이상의 실시예의 어디에서건 사용될 수 있음은 물론이다. 예를 들어, 전술한 컴퓨팅 디바이스의 모든 선택사양의 특징들은 또한 본 명세서에서 기술된 방법 또는 컴퓨터 판독가능 매체에 대해 구현될 수 있다. 더욱이, 실시예를 설명하기 위해 본 명세서에서 흐름도 및/또는 상태도가 사용되었을 지라도, 본 발명은 이들 도면 또는 상응하는 설명으로 제한되지 않는다. 예를 들면, 각각의 예시된 박스 또는 상태를 통해 또는 본 명세서에서 예시되고 기술된 바와 정확히 동일한 순서대로 흐름이 이동할 필요는 없다.It goes without saying that the details of the foregoing examples may be used anywhere in one or more embodiments. For example, all of the optional features of the computing device described above may also be implemented for the methods or computer-readable media described herein. Moreover, although flow charts and / or state diagrams have been used herein to describe the embodiments, the present invention is not limited to these drawings or the corresponding description. For example, the flow does not need to travel through each illustrated box or state or in exactly the same order as illustrated and described herein.
본 발명은 본 명세서에서 열거한 특정 세부사항으로 국한되지 않는다. 정말로, 본 개시내용의 혜택을 받는 본 기술에서 통상의 지식을 가진 자들이라면 전술한 설명과 도면으로부터 다른 많은 변경이 본 발명의 범주 내에서 이루어질 수 있다고 인식할 것이다. 따라서, 하기 청구범위에는 본 발명의 범주를 정의하는 모든 보정 사항이 포함된다.The invention is not limited to the specific details set forth herein. Indeed, those of ordinary skill in the art having the benefit of this disclosure will recognize that many other modifications from the foregoing description and drawings can be made within the scope of the present invention. Accordingly, the following claims are inclusive of all modifications that define the scope of the invention.
Claims (18)
프로세서에 의하여, 상기 미디어 작업부하의 특징(feature)을 모델링하는 단계 -상기 특징은 상기 미디어 작업부하의 변경 가능한 처리 양상임- 와,
상기 프로세서에 의하여, 디폴트 설정에 따라 상기 미디어 작업부하를 스케줄링하는 단계와,
상기 프로세서에 의하여, 상기 디폴트 설정에 따른 상기 미디어 작업부하의 처리에 기초하여, 상기 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 결정하는 단계와,
상기 프로세서에 의하여, 상기 미디어 작업부하의 특징을 변경하는 단계와,
상기 프로세서에 의하여, 상기 GPU 이용율 또는 상기 메모리 대역폭을 조절하기 위해 상기 변경된 특징에 따라 상기 미디어 작업부하를 스케줄링하는 단계를 포함하는
미디어 작업부하 스케줄링 방법.
CLAIMS 1. A method for scheduling media workloads,
Modeling a feature of the media workload by a processor, the feature being a changeable processing aspect of the media workload;
Scheduling, by the processor, the media workload according to a default setting;
Determining, by the processor, a GPU utilization rate and a memory bandwidth of the media workload based on processing of the media workload according to the default setting;
Changing the characteristics of the media workload by the processor;
Scheduling the media workload according to the modified feature to adjust the GPU utilization or the memory bandwidth by the processor
Media workload scheduling method.
상기 변경된 특징에 따른 상기 미디어 작업부하는 상기 GPU 이용율 또는 상기 메모리 대역폭이 임계치를 넘을 때 스케줄링되는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
The media workload according to the modified feature is scheduled when the GPU utilization or the memory bandwidth exceeds a threshold
Media workload scheduling method.
상기 GPU 이용율 및 상기 메모리 대역폭을 조절하는 것은 상기 미디어 작업부하의 동적 제어를 제공하는 것, 상기 미디어의 인코딩 및 디코딩을 조절하는 것, 비디오 재생을 조절하는 것, 및 화상 회의, 카메라 기능 또는 무선 디스플레이 기능의 파라미터를 조절하는 것을 포함하는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
Wherein adjusting the GPU utilization and the memory bandwidth comprises providing dynamic control of the media workload, adjusting encoding and decoding of the media, adjusting video playback, ≪ RTI ID = 0.0 >
Media workload scheduling method.
상기 미디어 작업부하의 특징은 미디어 특징 모델링 데이터베이스에서 모델링되며, 상기 특징을 모델링하는 단계는 상기 미디어 특징 모델링 데이터베이스에 엑세스하는 단계를 포함하는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
Wherein the features of the media workload are modeled in a media feature modeling database and the modeling of the features comprises accessing the media feature modeling database
Media workload scheduling method.
상기 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 결정하는 단계는, 상기 프로세서에 의하여 커널 모드 드라이버, GPU 및 메모리 카운터를 이용하여 상기 GPU 이용율 및 상기 메모리 대역폭을 결정하는 단계를 포함하는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
Wherein determining the GPU utilization and memory bandwidth of the media workload includes determining the GPU utilization and the memory bandwidth using the kernel mode driver, the GPU, and the memory counter by the processor
Media workload scheduling method.
상기 GPU 이용율은 상기 GPU의 복수의 엔진 중 제 1 엔진에 대해서 결정되며, 상기 미디어 작업부하의 특징은 상기 제 1 엔진의 GPU 이용율을 조절하는 특징을 포함하는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
Wherein the GPU utilization is determined for a first one of a plurality of engines of the GPU, and the features of the media workload include a feature that adjusts GPU utilization of the first engine
Media workload scheduling method.
상기 미디어 작업부하를 스케줄링하는 단계는, 상기 프로세서에 의하여 상기 미디어 작업부하를 CODEC을 이용하여 다른 포맷으로 변환하는 단계를 포함하는
미디어 작업부하 스케줄링 방법.
The method according to claim 1,
Wherein scheduling the media workload comprises converting the media workload by the processor to another format using a CODEC
Media workload scheduling method.
저장된 명령어를 실행하도록 구성된 중앙 처리 장치(CPU) 및 명령어를 저장하는 스토리지 디바이스를 포함하며,
상기 스토리지 디바이스는, 상기 CPU에 의해 실행될 때,
미디어 특징 모델링 데이터베이스를 이용하여 상기 미디어 작업부하의 특징을 모델링 -상기 특징은 상기 미디어 작업부하의 변경 가능한 처리 양상임- 하고,
디폴트 설정에 따라 미디어 작업 부하를 스케줄링하고,
그래픽 처리 유닛(GPU) 카운터를 이용하여 상기 디폴트 설정에 따른 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 결정하고,
상기 미디어 작업부하의 특징을 변경하고,
상기 GPU 이용율 또는 상기 메모리 대역폭을 조절하기 위해 상기 변경된 특징에 따라 상기 미디어 작업부하를 스케줄링하도록 구성된 프로세서 실행가능 코드를 포함하는
컴퓨팅 디바이스.
As a computing device,
A central processing unit (CPU) configured to execute the stored instructions, and a storage device for storing the instructions,
The storage device, when executed by the CPU,
Modeling a feature of the media workload using a media feature modeling database, the feature being a changeable processing aspect of the media workload,
You can schedule media workloads by default,
Determining a GPU utilization and memory bandwidth of the media workload according to the default setting using a GPU (Graphic Processing Unit) counter,
Change the characteristics of the media workload,
And processor executable code configured to schedule the media workload according to the modified feature to adjust the GPU utilization or the memory bandwidth
Computing device.
상기 GPU 이용율이 제 1 임계치를 넘거나 또는 그보다 낮은지 또는 상기 메모리 대역폭이 제 2 임계치를 넘거나 또는 그보다 낮은지를 결정하는 비교기를 더 포함하며,
상기 GPU 이용율이 상기 제 1 임계치를 넘거나 또는 상기 메모리 대역폭이 상기 제 2 임계치를 넘는 경우, 상기 CPU는 상기 변경된 특징을 갖는 미디어 작업부하를 스케줄링하는
컴퓨팅 디바이스.
9. The method of claim 8,
Further comprising a comparator to determine whether the GPU utilization is above or below a first threshold or whether the memory bandwidth is above or below a second threshold,
If the GPU utilization exceeds the first threshold or the memory bandwidth exceeds the second threshold, the CPU schedules a media workload with the modified feature
Computing device.
상기 GPU 이용율 및 메모리 대역폭을 결정하는 커널 모드 드라이버 및 GPU 카운터를 갖는 GPU를 더 포함하는
컴퓨팅 디바이스.
9. The method of claim 8,
Further comprising a GPU having a kernel mode driver and a GPU counter that determine the GPU utilization and memory bandwidth
Computing device.
상기 CPU는 GPU의 각 GPU 엔진마다 이용율을 결정하는
컴퓨팅 디바이스.
9. The method of claim 8,
The CPU determines the utilization rate for each GPU engine of the GPU
Computing device.
상기 미디어 작업부하를 처리를 위해 GPU에 맞는 다른 포맷으로 변환하는 CODEC을 더 포함하는
컴퓨팅 디바이스.
9. The method of claim 8,
Further comprising a CODEC for converting the media workload to another format suitable for the GPU for processing
Computing device.
상기 컴퓨팅 디바이스는 카메라, 비디오 채팅 애플리케이션, 또는 화상 회의 애플리케이션을 포함하는
컴퓨팅 디바이스.
9. The method of claim 8,
The computing device may include a camera, a video chat application,
Computing device.
라디오 및 디스플레이를 더 포함하며, 상기 라디오 및 상기 디스플레이는 적어도 상기 CPU에 통신 가능하게 결합되는
컴퓨팅 디바이스.
9. The method of claim 8,
A radio and a display, wherein the radio and the display are at least communicatively coupled to the CPU
Computing device.
상기 명령어는, 컴퓨팅 디바이스에서 실행되는 데 응답하여, 상기 컴퓨팅 디바이스로 하여금,
미디어 특징 모델링 데이터베이스를 이용하여 미디어 작업부하의 특징을 모델링 -상기 특징은 상기 미디어 작업부하의 변경 가능한 처리 양상임- 하고,
디폴트 설정에 따라 상기 미디어 작업부하를 스케줄링하고,
상기 디폴트 설정에 따른 상기 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 결정하고,
상기 미디어 작업부하의 특징을 변경하고,
상기 GPU 이용율 또는 상기 메모리 대역폭을 조절하기 위해 상기 변경된 특징에 따라 상기 미디어 작업부하를 스케줄링하도록 하는
머신 판독가능 매체.
At least one machine-readable medium having stored thereon instructions,
Wherein the instructions, in response to being executed on a computing device, cause the computing device to:
Modeling a feature of a media workload using a media feature modeling database, the feature being a changeable processing aspect of the media workload,
Scheduling the media workload according to a default setting,
Determine GPU utilization and memory bandwidth of the media workload according to the default setting,
Change the characteristics of the media workload,
And to schedule the media workload according to the modified feature to adjust the GPU utilization or the memory bandwidth
Machine readable medium.
상기 변경된 특징에 따른 미디어 작업부하는 상기 GPU 이용율이 제 1 임계치를 넘을 때 또는 상기 메모리 대역폭이 제 2 임계치를 넘을 때 스케줄링되는
머신 판독가능 매체.
16. The method of claim 15,
The media workload according to the modified feature is scheduled when the GPU utilization exceeds a first threshold or when the memory bandwidth exceeds a second threshold
Machine readable medium.
상기 컴퓨팅 디바이스에서 실행되는 데 응답하여, 상기 컴퓨팅 디바이스로 하여금,
상기 변경된 특징에 따른 미디어 작업 부하의 제 2 GPU 이용율 및 제 2 메모리 대역폭을 결정하고,
상기 미디어 작업부하의 제 2 특징을 변경하고,
상기 변경된 특징과 상기 변경된 제 2 특징에 따라 상기 미디어 작업부하를 스케줄링하도록 하는
명령어가 더 저장된
머신 판독가능 매체.
16. The method of claim 15,
In response to being executed on the computing device, cause the computing device to:
Determine a second GPU utilization and a second memory bandwidth of the media workload according to the modified feature,
Change a second characteristic of the media workload,
And to schedule the media workload according to the modified feature and the modified second feature
More instructions are stored
Machine readable medium.
상기 GPU 이용율은 상기 GPU의 복수의 엔진 중 제 1 엔진에 대하여 결정되며, 상기 미디어 작업부하의 특징은 상기 제 1 엔진의 상기 GPU 이용율을 조절하는 특징을 포함하는
머신 판독가능 매체.16. The method of claim 15,
Wherein the GPU utilization is determined for a first one of a plurality of engines of the GPU, and wherein the characteristics of the media workload include a feature that regulates the GPU utilization of the first engine
Machine readable medium.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/564,824 | 2012-08-02 | ||
US13/564,824 US8928678B2 (en) | 2012-08-02 | 2012-08-02 | Media workload scheduler |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130092195A Division KR20140018157A (en) | 2012-08-02 | 2013-08-02 | Media workload scheduler |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150096639A true KR20150096639A (en) | 2015-08-25 |
KR101634500B1 KR101634500B1 (en) | 2016-07-08 |
Family
ID=48914119
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130092195A KR20140018157A (en) | 2012-08-02 | 2013-08-02 | Media workload scheduler |
KR1020150111226A KR101634500B1 (en) | 2012-08-02 | 2015-08-06 | Media workload scheduler |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130092195A KR20140018157A (en) | 2012-08-02 | 2013-08-02 | Media workload scheduler |
Country Status (4)
Country | Link |
---|---|
US (1) | US8928678B2 (en) |
EP (1) | EP2693761A3 (en) |
KR (2) | KR20140018157A (en) |
CN (1) | CN103577269B (en) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128721B2 (en) | 2012-12-11 | 2015-09-08 | Apple Inc. | Closed loop CPU performance control |
TW201445500A (en) * | 2013-05-16 | 2014-12-01 | Hon Hai Prec Ind Co Ltd | Video adapter controlling system, method and computer using the same |
US10261570B2 (en) * | 2013-11-27 | 2019-04-16 | Intel Corporation | Managing graphics power consumption and performance |
CN103986857A (en) * | 2014-04-24 | 2014-08-13 | 华国洋 | Wireless camera |
KR102454196B1 (en) * | 2014-05-27 | 2022-10-14 | 삼성전자 주식회사 | Method for controlling display and electronic device supporting the same |
US10521874B2 (en) | 2014-09-26 | 2019-12-31 | Intel Corporation | Method and apparatus for a highly efficient graphics processing unit (GPU) execution model |
EP3275170B1 (en) | 2015-03-23 | 2023-07-05 | Tahoe Research, Ltd. | Workload scheduler for computing devices with camera |
US10229468B2 (en) | 2015-06-03 | 2019-03-12 | Intel Corporation | Automated conversion of GPGPU workloads to 3D pipeline workloads |
US10282804B2 (en) * | 2015-06-12 | 2019-05-07 | Intel Corporation | Facilitating configuration of computing engines based on runtime workload measurements at computing devices |
US11119835B2 (en) | 2017-08-30 | 2021-09-14 | Intel Corporation | Technologies for providing efficient reprovisioning in an accelerator device |
CN107426548A (en) * | 2017-09-07 | 2017-12-01 | 四川智慧鹰航空科技有限公司 | A kind of microminiature low power image transmission equipment |
US10938680B2 (en) | 2018-01-23 | 2021-03-02 | Arista Networks, Inc. | Accelerated network traffic sampling using a network chip |
US10756989B2 (en) * | 2018-01-23 | 2020-08-25 | Arista Networks, Inc. | Accelerated network traffic sampling for a non-accelerated line card |
US10965555B2 (en) | 2018-01-23 | 2021-03-30 | Arista Networks, Inc. | Accelerated network traffic sampling using an accelerated line card |
US11178451B2 (en) | 2018-08-17 | 2021-11-16 | Roku, Inc. | Dynamic playout of transition frames while transitioning between playout of media streams |
US11317143B2 (en) * | 2018-08-17 | 2022-04-26 | Roku, Inc. | Dynamic reduction in playout of replacement content to help align end of replacement content with end of replaced content |
CN109379626A (en) * | 2018-11-27 | 2019-02-22 | Oppo广东移动通信有限公司 | Method for processing video frequency, device, electronic equipment and storage medium |
CN109587546B (en) * | 2018-11-27 | 2020-09-22 | Oppo广东移动通信有限公司 | Video processing method, video processing device, electronic equipment and computer readable medium |
CN109361950B (en) * | 2018-11-27 | 2022-02-22 | Oppo广东移动通信有限公司 | Video processing method and device, electronic equipment and storage medium |
CN109688618A (en) * | 2018-11-27 | 2019-04-26 | Oppo广东移动通信有限公司 | Method for processing video frequency, device, electronic equipment and storage medium |
CN112788198B (en) | 2019-11-11 | 2024-04-23 | 株式会社理光 | Image capturing apparatus, image transfer system, image capturing apparatus, image transfer method, recording medium, and computer apparatus |
KR102221768B1 (en) * | 2019-11-20 | 2021-03-02 | (주)티아이에스씨 | Multi camera inspection apparatus |
CN111930593B (en) * | 2020-07-27 | 2023-03-28 | 长沙景嘉微电子股份有限公司 | GPU occupancy rate determination method, device, processing system and storage medium |
US11917231B2 (en) | 2020-10-29 | 2024-02-27 | Roku, Inc. | Real-time altering of supplemental content duration in view of duration of modifiable content segment, to facilitate dynamic content modification |
US11375242B1 (en) * | 2021-01-27 | 2022-06-28 | Qualcomm Incorporated | Compression of bitstream indexes for parallel entropy coding |
CN113204933B (en) * | 2021-04-29 | 2024-05-03 | 上海移远通信技术股份有限公司 | PCB jointed board determination method and device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030058942A1 (en) * | 2001-06-01 | 2003-03-27 | Christian Hentschel | Method of running an algorithm and a scalable programmable processing device |
KR20040065261A (en) * | 2001-12-12 | 2004-07-21 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | Processing a media signal on a media system |
JP2006344283A (en) * | 2005-06-08 | 2006-12-21 | Toshiba Corp | Video recording and reproducing device, and video recording and reproducing method |
US7466316B1 (en) * | 2004-12-14 | 2008-12-16 | Nvidia Corporation | Apparatus, system, and method for distributing work to integrated heterogeneous processors |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020064893A (en) * | 2000-08-29 | 2002-08-10 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | Method of running an algorithm and a scalable programmable processing device |
US6704362B2 (en) | 2001-07-06 | 2004-03-09 | Koninklijke Philips Electronics N.V. | Resource scalable decoding |
US7885330B2 (en) | 2005-07-12 | 2011-02-08 | Insors Integrated Communications | Methods, program products and systems for compressing streaming video data |
US7562234B2 (en) * | 2005-08-25 | 2009-07-14 | Apple Inc. | Methods and apparatuses for dynamic power control |
US8667163B2 (en) | 2008-09-08 | 2014-03-04 | Sling Media Inc. | Systems and methods for projecting images from a computer system |
US8676926B2 (en) * | 2009-04-15 | 2014-03-18 | Wyse Technology L.L.C. | System and method for handling remote drawing commands |
JP5133454B2 (en) | 2009-04-28 | 2013-01-30 | シャープ株式会社 | Display device, display method, and program for executing the same |
US8502828B2 (en) * | 2010-04-12 | 2013-08-06 | Nvidia Corporation | Utilization of a graphics processing unit based on production pipeline tasks |
CN101901042B (en) * | 2010-08-27 | 2011-07-27 | 上海交通大学 | Method for reducing power consumption based on dynamic task migrating technology in multi-GPU (Graphic Processing Unit) system |
US10002021B2 (en) * | 2012-07-20 | 2018-06-19 | Qualcomm Incorporated | Deferred preemption techniques for scheduling graphics processing unit command streams |
-
2012
- 2012-08-02 US US13/564,824 patent/US8928678B2/en active Active
-
2013
- 2013-08-01 EP EP13178891.1A patent/EP2693761A3/en not_active Ceased
- 2013-08-02 CN CN201310335743.XA patent/CN103577269B/en active Active
- 2013-08-02 KR KR1020130092195A patent/KR20140018157A/en active Application Filing
-
2015
- 2015-08-06 KR KR1020150111226A patent/KR101634500B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030058942A1 (en) * | 2001-06-01 | 2003-03-27 | Christian Hentschel | Method of running an algorithm and a scalable programmable processing device |
KR20040065261A (en) * | 2001-12-12 | 2004-07-21 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | Processing a media signal on a media system |
US7466316B1 (en) * | 2004-12-14 | 2008-12-16 | Nvidia Corporation | Apparatus, system, and method for distributing work to integrated heterogeneous processors |
JP2006344283A (en) * | 2005-06-08 | 2006-12-21 | Toshiba Corp | Video recording and reproducing device, and video recording and reproducing method |
Also Published As
Publication number | Publication date |
---|---|
EP2693761A2 (en) | 2014-02-05 |
KR20140018157A (en) | 2014-02-12 |
EP2693761A3 (en) | 2014-04-16 |
CN103577269B (en) | 2017-12-19 |
KR101634500B1 (en) | 2016-07-08 |
CN103577269A (en) | 2014-02-12 |
US20140035938A1 (en) | 2014-02-06 |
US8928678B2 (en) | 2015-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101634500B1 (en) | Media workload scheduler | |
TWI513316B (en) | Transcoding video data | |
EP3167616B1 (en) | Adaptive bitrate streaming for wireless video | |
US10257510B2 (en) | Media encoding using changed regions | |
US20140198838A1 (en) | Techniques for managing video streaming | |
US20160275919A1 (en) | Static frame image quality improvement for sink displays | |
US20140086310A1 (en) | Power efficient encoder architecture during static frame or sub-frame detection | |
US20160088298A1 (en) | Video coding rate control including target bitrate and quality control | |
US9426439B2 (en) | Exposing media processing features | |
JP2016531502A (en) | Technology for low power image compression and display | |
TWI590652B (en) | Wireless bandwidth reduction in an encoder | |
US20140321532A1 (en) | Techniques for coordinating parallel video transcoding | |
EP2795896A1 (en) | Dram compression scheme to reduce power consumption in motion compensation and display refresh | |
CN107736026B (en) | Sample adaptive offset coding | |
US20140330957A1 (en) | Widi cloud mode | |
US10547839B2 (en) | Block level rate distortion optimized quantization | |
US10104373B2 (en) | Content based video encoding for wireless display | |
US10484714B2 (en) | Codec for multi-camera compression | |
WO2014209296A1 (en) | Power efficient encoder architecture during static frame or sub-frame detection | |
JP2017028714A (en) | Histogram segmentation based local adaptive filter for video encoding and decoding | |
WO2016113585A1 (en) | Encoder slice size control with cost estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 4 |