KR20150096639A - Media workload scheduler - Google Patents

Media workload scheduler Download PDF

Info

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
Application number
KR1020150111226A
Other languages
Korean (ko)
Other versions
KR101634500B1 (en
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 KR20150096639A publication Critical patent/KR20150096639A/en
Application granted granted Critical
Publication of KR101634500B1 publication Critical patent/KR101634500B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/442Monitoring 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/4424Monitoring 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

Disclosed are a method and system for scheduling a media workload. The method comprises a step of modeling characteristics of the media workload. A GPU utilization rate and a memory bandwidth of the media workload can be determined. Moreover, the media workload can be scheduled by changing the characteristics of the media workload to adjust the GPU utilization rate and the memory bandwidth.

Description

미디어 작업부하 스케줄러{MEDIA WORKLOAD SCHEDULER}Media Workload Scheduler {MEDIA WORKLOAD SCHEDULER}

본 발명은 일반적으로 작업부하(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 form factor device 700 in which the system of FIG. 6 may be implemented.

명세서와 도면 전체에서 유사한 컴포넌트 및 특징을 참조하기 위해 동일한 참조부호가 사용된다. 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 computing device 100 that may be used to schedule workloads in accordance with an embodiment of the invention. The computing device 100 may include, for example, a laptop computer, a desktop computer, a tablet computer, a mobile device, a server, or a cellular phone, among others. The computing device 100 includes a central processing unit (CPU) 102 configured to execute stored instructions and a memory device 104 that stores instructions executable by the CPU 102. [ The CPU 102 may be a single-core processor, a multicore processor, a computing cluster, or any number of other configurations. Moreover, the computing device 100 may include more than one CPU 102. [ The instructions executed by the CPU 102 may be used to schedule media workloads.

컴퓨팅 디바이스(100)는 또한 그래픽 처리 유닛(GPU)(104)을 포함할 수 있다. 도시된 바와 같이, CPU(102)는 버스(106)를 통해 GPU(104)에 연결될 수 있다. 그러나, 일부 실시예에서, CPU(102) 및 GPU(104)는 동일한 다이(die)에 배치된다. GPU(104)는 컴퓨팅 디바이스(100) 내에서 몇 가지 그래픽 동작이더라도 수행하도록 구성될 수 있다. 예를 들면, GPU(104)는 그래픽 이미지, 그래픽 프레임, 또는 비디오 등을 렌더링 또는 조작하여 컴퓨팅 디바이스(100)의 사용자에게 디스플레이되도록 구성될 수 있다.The computing device 100 may also include a graphics processing unit (GPU) As shown, the CPU 102 may be coupled to the GPU 104 via the bus 106. However, in some embodiments, CPU 102 and GPU 104 are located on the same die. The GPU 104 may be configured to perform even some graphical operation within the computing device 100. For example, the GPU 104 may be configured to be displayed to a user of the computing device 100 by rendering or manipulating a graphical image, graphics frame, video, or the like.

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 GPU 104 may also include a sampling engine 108, a 3D engine 110, and a media engine 112. The engine is a component of the GPU 104 that can be used for concurrent processing of data passed to the GPU 104. Although three GPU engines are shown, a GPU can include any number of engines. For example, the GPU 104 may include a rendering engine and a multi-format CODEC (MFX) engine. As shown in computing device 100, 3D engine 110 may process 3D image data in parallel with media engine 112, which processes other types of media. The sampling engine 108 may collect data from the GPU counter 114. Additionally, in an embodiment, the rendering engine may process the 3D image data while the MFX engine decodes the data transmitted to the GPU 104. [ The GPU counter 114 may collect performance data associated with the GPU 104. In particular, the GPU counter 114 may measure the load and throughput of the GPU 104. The sampling engine 108 may send GPU performance data from the GPU counter 114 to the kernel mode driver (KMD 116). The KMD 116 may be configured to receive data from the GPU counter 114 based on data from the GPU counter 114 GPU utilization and memory bandwidth can be calculated.

컴퓨팅 디바이스(100)는 하나 이상의 카메라(118)를 포함한다. 전술한 바와 같이, 셀룰러 폰은 두대의 전방 카메라와 하나의 후방 카메라를 가질 수 있다. 다수의 카메라는 비디오를 캡처하는데 사용될 수 있다. 또한, 컴퓨팅 디바이스(100)는 메모리 디바이스(120)를 포함할 수 있다. 메모리 디바이스(120)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 어떤 다른 적합한 메모리 시스템을 포함할 수 있다. 예를 들면, 메모리 디바이스(120)는 다이나믹 랜덤 액세스 메모리(DRAM)를 포함할 수도 있다. The computing device 100 includes one or more cameras 118. As described above, the cellular phone may have two front cameras and one rear camera. Multiple cameras can be used to capture video. Additionally, the computing device 100 may include a memory device 120. The memory device 120 may include random access memory (RAM), read only memory (ROM), flash memory, or any other suitable memory system. For example, the memory device 120 may include a dynamic random access memory (DRAM).

메모리 디바이스(120)는 미디어 특징 모델링 데이터베이스(media feature modeling database)(122)를 포함한다. 미디어 특징 모델링 데이터베이스(122)는 실시예에 따라서 미디어 작업부하의 GPU 이용율 및 메모리 대역폭을 조절하기 위하여 변경될 수 있는 일련의 특징을 포함한다. 미디어 특징 모델링 데이터베이스(122)는 오프라인에서 또는 실시간으로 모델링될 수 있다. The memory device 120 includes a media feature modeling database 122. The media feature modeling database 122 includes a set of features that can be modified to adjust the GPU utilization and memory bandwidth of the media workload according to an embodiment. The media feature modeling database 122 may be modeled offline or in real time.

미디어 특징 모델링 데이터베이스(122)에는 여러 특징들이 포함될 수 있다. 각각의 특징은 디코딩, 비디오 처리, 인코딩, 또는 메모리 액세스와 같은 미디어 작업부하의 일부 양상을 변경할 수 있다. 실시예에서, 미디어 작업부하는 CODEC을 이용하여 디코드되고 인코드될 수 있다. 따라서, 디코딩 특징 또는 인코딩 특징은 해당하는 CODEC을 변경함으로써 변경될 수 있다. The media feature modeling database 122 may include various features. Each feature may change some aspect of the media workload, such as decoding, video processing, encoding, or memory access. In an embodiment, the media workload may be decoded and encoded using a CODEC. Thus, the decoding feature or encoding feature may be changed by changing the corresponding CODEC.

일예에서, 미디어 작업부하의 디코딩 양상은 슬라이스 헤더를 이용한 인-루프 디-블록킹(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 memory device 120 may also include a workload scheduler 124 that adjusts the workload according to the GPU and memory inputs. In an embodiment, the workload scheduler 124 may communicate with the sampling engine 108 and the media feature modeling database 122 to determine which features of the media workload to change in real time. In this way, GPU utilization and memory bandwidth are achieved that can maximize the use of the GPU without compromising the performance of the GPU recognized by the user. The workload is delivered from the workload scheduler 124 and processed as described in FIG. 2 and then delivered to the GPU 104.

컴퓨팅 디바이스(100)는 스토리지(126)를 포함할 수 있다. 스토리지(126)는 하드 드라이브, 광 드라이브, 썸드라이브(thumbdrive), 드라이브 어레이, 또는 이들의 모든 조합과 같은 물리적 메모리이다. 스토리지(126)는 또한 원격 스토리지 드라이브를 포함할 수 있다. 스토리지는 또한 하나 이상의 미디어 애플리케이션(128)을 포함할 수 있다. The computing device 100 may include a storage 126. The storage 126 is a physical memory, such as a hard drive, optical drive, thumb drive, drive array, or any combination thereof. The storage 126 may also include a remote storage drive. The storage may also include one or more media applications 128.

CPU(102)는 또한 버스(106)를 통해 컴퓨팅 디바이스(100)를 하나 이상의 I/O 디바이스(132)에 연결하도록 구성된 입/출력(I/O) 디바이스(132)에 연결될 수 있다. I/O 디바이스(132)는, 예를 들면, 키보드 및 포인팅 디바이스를 포함할 수 있고, 포인팅 디바이스는 그 중에서도 터치패드 또는 터치스크린을 포함할 수 있다. I/O 디바이스(132)는 컴퓨팅 디바이스(100)의 빌트-인 컴포넌트일 수 있거나 외부에서 컴퓨팅 디바이스(100)에 연결된 다바이스일 수 있다. The CPU 102 may also be coupled to an input / output (I / O) device 132 configured to connect the computing device 100 to one or more I / O devices 132 via the bus 106. The I / O device 132 may include, for example, a keyboard and a pointing device, and the pointing device may include a touchpad or touch screen, among others. The I / O device 132 may be a built-in component of the computing device 100 or may be a device connected externally to the computing device 100.

CPU(102)는 또한 버스(106)를 통해 컴퓨팅 디바이스(100)를 디스플레이 디바이스(136)에 연결하도록 구성된 디스플레이 인터페이스(134)에 링크될 수 있다. 디스플레이 디바이스(136)는 컴퓨팅 디바이스(100)의 빌트-인 컴포넌트인 디스플레이 스크린을 포함할 수 있다. 디스플레이 디바이스(136)는 또한 그 중에서도 외부에서 컴퓨팅 디바이스(100)에 연결된 컴퓨터 모니터, 텔레비전, 또는 프로젝터를 포함할 수 있다. 네트워크 인터페이스 컨트롤러(NIC)(138)는 버스(106)를 통해 컴퓨팅 디바이스(100)를 네트워크(140)에 연결하도록 구성될 수 있다. 네트워크(140)는 유선 네트워크, 무선 네트워크, 또는 셀룰러 네트워크일 수 있다. 네트워크(140)는 그 중에서도 어떤 광대역 네트워크(WAN), 또는 어떤 근거리 네트워크(LAN) 또는 인터넷일 수 있다. 예를 들면, 네트워크(140)는 3GPP LTE 네트워크 또는 WiFi 네트워크일 수 있다.The CPU 102 may also be linked to the display interface 134 configured to connect the computing device 100 to the display device 136 via the bus 106. [ The display device 136 may include a display screen that is a built-in component of the computing device 100. Display device 136 may also include a computer monitor, television, or projector connected to computing device 100, among others. The network interface controller (NIC) 138 may be configured to connect the computing device 100 to the network 140 via the bus 106. The network 140 may be a wired network, a wireless network, or a cellular network. The network 140 may be any wide area network (WAN), or some local area network (LAN) or the Internet. For example, the network 140 may be a 3GPP LTE network or a WiFi network.

도 1의 블록도는 컴퓨팅 디바이스(100)가 도 1에 도시된 모든 컴포넌트들을 포함하는 것으로 표시하려는 것은 아니다. 또한, 컴퓨팅 디바이스(100)는 특정 구현예의 세부사항에 따라서 도 1에 도시되지 않은 부가적인 컴포넌트를 몇 개라도 포함할 수 있다. The block diagram of FIG. 1 is not intended to depict computing device 100 as including all of the components shown in FIG. In addition, the computing device 100 may include any number of additional components not shown in FIG. 1, depending on the specific implementation details.

도 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 system 200 that may be used to schedule media workloads in accordance with an embodiment of the present invention. Items with like reference numerals are as described with respect to FIG. The system 200 may include a media application 128. The media application 128 may include, among others, a movie-playing application, video conferencing software, or camera software. The workload created in the media application 128 may be communicated to the scheduling component 200. The scheduling component 200 includes a media feature modeling database 122, a sampling engine 108, a workload scheduler 124, and a comparator 204. As described with respect to FIG. 1, the workload scheduler 124 may include a sampling engine 108 and a media feature modeling database 122 (not shown) to determine which features of the media workload to change in real time to regulate GPU utilization and memory bandwidth. ). ≪ / RTI > If the GPU utilization or memory bandwidth is below the threshold, the comparator 204 will send a message to the workload scheduler 124 that no change in media workload should occur from the application 128. If the GPU utilization or memory bandwidth exceeds the threshold, the comparator 204 will send a message to the workload scheduler 124 that the media workload should be changed. For example, if the GPU utilization exceeds the threshold 95%, the media workload can be changed. Likewise, when the percentage of memory bandwidth is exceeded, bandwidth can be used as a threshold. Thus, when the threshold of 5 gigabytes per second is exceeded, the media workload may change.

작업부하는 스케줄링 컴포넌트(200)에서 CODEC(206)으로 전해질 수 있다. CODEC은 미디어 작업부하를 GPU에 의해 처리될 수 있는 포맷으로 변환할 수 있는 컴퓨팅 디바이스의 소프트웨어 또는 하드웨어 컴포넌트이다. 변환된 작업부하는 미디어 드라이버(208)에 전해진다. 실시예에서, 미디어 드라이버(208)는 변환된 작업부하를 버퍼에 배치한다. AKMD(116)는 변환된 작업부하의 GPU 이용율(210)뿐 만 아니라 메모리 대역폭(212)을 계산하는데 사용될 수 있다. 또한, GPU(104)와 같은 하드웨어는 버퍼로부터 변환된 작업부하를 처리할 수 있다.The workload may be passed from the scheduling component 200 to the CODEC 206. A CODEC is a software or hardware component of a computing device that is capable of converting media workloads into a format that can be processed by the GPU. The converted workload is passed to the media driver 208. In an embodiment, the media driver 208 places the converted workload in a buffer. The AKMD 116 may be used to calculate the memory bandwidth 212 as well as the GPU utilization 210 of the converted workload. In addition, hardware such as GPU 104 can handle the converted workload from the buffer.

AKMD(116)는 또한 계산된 GPU 이용율(210)뿐 만아니라 메모리 대역폭(212)을 피드백(214)으로서 스케줄링 컴포넌트(200)에 전달한다. 피드백(214)은 GPU 이용율(210) 또는 메모리 대역폭(212)이 특정 임계치를 넘는지 또는 그 아래인지를 결정하기 위하여 비교기(204)에 의해 사용된다. 전술한 바와 같이, 작업부하 스케줄러는 비교기(204)의 결과에 따라 미디어 작업부하를 변경할 수 있다. The AKMD 116 also delivers the memory bandwidth 212 as feedback 214 to the scheduling component 200 as well as the computed GPU utilization 210. Feedback 214 is used by comparator 204 to determine whether GPU utilization 210 or memory bandwidth 212 is above or below a certain threshold. As described above, the workload scheduler may change the media workload according to the result of the comparator 204. [

도 3은 본 발명에 따라서 미디어 작업부하를 스케줄링하기 위한 방법(300)을 도시하는 프로세스 흐름도이다. 여러 실시예에서, 방법(300)은 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스에서 실행될 수 있다. 다른 실시예에서, 방법(300)은 도 2에 관해 앞에서 설명된 시스템(200)과 같은 시스템을 이용하여 실행될 수 있다. 3 is a process flow diagram illustrating a method 300 for scheduling a media workload in accordance with the present invention. In various embodiments, the method 300 may be executed on a computing device, such as the computing device 100. In another embodiment, the method 300 can be performed using a system such as the system 200 described above with respect to FIG.

방법은 블록(302)에서 미디어 작업부하의 특징을 모델링함으로써 시작한다. 실시예에서, 특징은 GPU의 데이터 처리 병목을 방지 또는 해결하기 위해 조절될 수 있는 GPU에 의해 또는 GPU 엔진들 중 어느 엔진에 의해 처리된 작업부하의 어떤 양상이다. 데이터 처리 병목은 GPU 이용율이 임계치보다 높을 때 또는 메모리 대역폭이 임계치보다 높을 때 발생할 수 있다. 더욱이, 실시예에서, 특징들은 미디어 특징 모델링 데이터베이스에 저장될 수 있다.The method begins by modeling the characteristics of the media workload at block 302. In an embodiment, the feature is an aspect of the workload handled by the GPU or by any of the GPU engines that can be adjusted to prevent or solve the data processing bottleneck of the GPU. Data processing bottlenecks may occur when GPU utilization is above a threshold or when memory bandwidth is above a threshold. Moreover, in an embodiment, the features may be stored in a media feature modeling database.

블록(304)에서, 미디어 작업부하의 GPU 이용율 및 메모리 대역폭이 결정될 수 있다. 전술한 바와 같이, GPU 이용율 및 메모리 대역폭은 커널 모드 드라이버를 이용하여 결정될 수 있다. 블록(306)에서, GPU 이용율 및 메모리 대역폭을 조절하기 위해 미디어 작업부하의 특징을 변경함으로써 미디어 작업부하가 스케줄링될 수 있다. 실시예에서, GPU 이용율 및 메모리 대역폭을 조절하는 것은 미디어 작업부하의 동적 제어를 제공하기, 미디어의 인코딩 및 디코딩을 조절하기, 비디오 재생을 조절하기, 및 화상 회의, 카메라 기능 또는 무선 디스플레이 기능의 파라미터를 조절하기를 포함한다. 또한, 실시예에서, 특징들은 미디어 작업부하로부터 제거될 수 있다.At block 304, the GPU utilization and memory bandwidth of the media workload can be determined. As described above, GPU utilization and memory bandwidth may be determined using a kernel mode driver. At block 306, the media workload can be scheduled by changing the characteristics of the media workload to adjust GPU utilization and memory bandwidth. In an embodiment, adjusting GPU utilization and memory bandwidth may include providing dynamic control of media workloads, adjusting encoding and decoding of media, adjusting video playback, and adjusting parameters of video conferencing, . ≪ / RTI > Also, in an embodiment, features may be removed from the media workload.

도 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 method 400 for scheduling a media workload in accordance with the present invention. At block 402, the media scheduler will schedule the workload according to the default settings of each type of usage model. The usage model represents the type of work performed by the workload. The default settings of the usage model include settings that enable the use of the usage model. For example, video playback is a form of use model. The default settings for video playback operations include, but are not limited to, enabling video processing features, performing image stabilization, and providing frame rate conversion. At block 404, information from the GPU counter is obtained. In an embodiment, after a new workload is sent to the GPU, the scheduling component may collect feedback from the GPU counter so that GPU utilization and memory bandwidth can be calculated. Further, in an embodiment, GPU utilization may be calculated for each GPU engine. At block 406, the method determines if the GPU or GPU engine is overloaded. If a GPU or GPU engine is overloaded, the process flow proceeds to block 408. [ If no GPU or GPU engine is overloaded, process flow continues to block 410.

블록(408)에서, GPU 이용율을 줄이기 위해 미디어 작업부하의 특징이 변경된다. 예를 들면, 3D 엔진의 이용율이 기결정된 임계치를 넘도록 GPU의 3D 엔진이 과부하인 경우, 3D 엔진의 이용율을 줄이는 특징들이 변경된다. 그 다음 프로세스 흐름은 블록(402)으로 리턴하du 작업부하를 스케줄링한다. 도 4b는 실시예에 따라서 특징들을 조절하기 위한 방법을 추가로 기술한다.At block 408, the characteristics of the media workload are changed to reduce GPU utilization. For example, if the 3D engine of the GPU is overloaded such that the utilization of the 3D engine exceeds a predetermined threshold, features that reduce the utilization of the 3D engine are changed. The process flow then returns to block 402 to schedule the workload. Figure 4b further describes a method for adjusting features according to an embodiment.

블록(412)에서, 메모리가 제한된 대역폭인지 결정된다. 메모리 대역폭이 제한되어 있다면, 프로세스 흐름은 블록(414)으로 이어진다. 메모리 대역폭이 제한되어 있지 않으면, 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At block 412, it is determined whether the memory is limited bandwidth. If the memory bandwidth is limited, then the process flow continues to block 414. If the memory bandwidth is not limited, the process flow returns to block 402 to schedule the workload.

블록(414)에서, 메모리 대역폭을 줄이기 위해 특징들이 변경될 수 있다. 실시예에서, 최대 메모리 대역폭이 초과되도록 미디어 엔진이 과부하이면, 메모리 대역폭을 줄이는 특징들이 변경될 수 있다. 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At block 414, the features may be modified to reduce memory bandwidth. In an embodiment, if the media engine is overloaded such that the maximum memory bandwidth is exceeded, features that reduce memory bandwidth may be changed. The process flow returns to block 402 to schedule the workload.

도 4b는 실시예에 따라서 미디어 작업부하의 특징을 변경하기 위한 방법(420)을 도시하는 프로세스 흐름도이다. 블록(422)에서, 렌더링 엔진이 과부하인지 결정된다. 예에서, 렌더링 엔진은 3D 이미지를 렌더링하는 GPU의 엔진일 수 있다. 렌더링 엔진의 이용율이 기결정된 임계치를 넘도록 GPU의 렌더링 엔진이 과부하라면, 프로세스 흐름은 블록(424)으로 이어진다. 4B is a process flow diagram illustrating a method 420 for changing features of a media workload according to an embodiment. At block 422, it is determined if the rendering engine is overloaded. In the example, the rendering engine may be the engine of the GPU rendering the 3D image. If the rendering engine of the GPU is overloaded so that the utilization of the rendering engine exceeds the predetermined threshold, the process flow continues to block 424. [

블록(424)에서, 렌더링 엔진의 이용율을 줄이는 특징들이 변경된다. 블록(426)에서, MFX 엔진이 과부하인지 결정된다. 예에서, MFX 엔진은 각종 데이터 스트림을 디코딩하는 GPU의 엔진이다. MFX 엔진이 과부하인 경우, 프로세스 흐름은 블록(428)으로 진행한다. At block 424, features that reduce the utilization of the rendering engine are modified. At block 426, it is determined whether the MFX engine is overloaded. In the example, the MFX engine is the GPU engine that decodes various data streams. If the MFX engine is overloaded, the process flow proceeds to block 428.

블록(428)에서, MFX 엔진의 이용율을 줄이는 CODEC 특징들이 변경된다. 전술한 바와 같이, CODEC은 미디어 작업부하를 GPU에 의해 처리될 수 있는 포맷으로 변환할 수 있는 컴퓨팅 디바이스의 소프트웨어 또는 하드웨어 컴포넌트이다. 실시예에서, CODEC은 CODEC(206)일 수 있다(도 2 참조). 또한, 실시예에서, CODEC은 MFX 엔진 또는 GPU 카운터(114)(도 1 참조)와 같은 GPU 엔진의 컴포넌트 일 수 있다. MFX 엔진의 이용율을 줄이기 위해 CODEC의 여러 양상이 변경될 수 있다. 프로세스 흐름은 블록(402)으로 리턴하여 작업부하를 스케줄링한다. At block 428, the CODEC features that reduce the utilization of the MFX engine are changed. As discussed above, a CODEC is a software or hardware component of a computing device that is capable of transforming a media workload into a format that can be processed by a GPU. In an embodiment, the CODEC may be a CODEC 206 (see FIG. 2). Also, in an embodiment, the CODEC may be a component of the GPU engine, such as the MFX engine or the GPU counter 114 (see FIG. 1). Various aspects of the CODEC can be changed to reduce the utilization of the MFX engine. The process flow returns to block 402 to schedule the workload.

도 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 method 300 and method 400 are executed in any particular order, or that all of the blocks are included in all cases. Also, any number of additional blocks may be included in methods 300 and 400, depending on the specific implementation details.

도 5는 실시예에 따라서 미디어 작업부하를 스케줄링하기 위한 코드를 저장하는 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)를 도시하는 블록도이다. 따라서, 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체는 실시예에 따라서 미디어 작업부하를 스케줄링하기 위한 코드를 저장할 수 있다. 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)는 컴퓨터 버스(504)를 통해 프로세서(502)에 의해 액세스될 수 있다. 또한, 하나 이상의 유형의 비 일시적 컴퓨터 판독가능 매체(500)는 프로세서(502)에게 지시하여 본 명세서에 기술된 방법들을 수행하도록 구성된 코드를 포함할 수 있다. 5 is a block diagram illustrating one or more types of non-transitory computer readable media 500 that store code for scheduling media workloads in accordance with an embodiment. Thus, one or more types of non-volatile computer readable media may store code for scheduling media workloads according to an embodiment. One or more types of non-volatile computer readable media 500 may be accessed by the processor 502 via the computer bus 504. [ In addition, one or more types of non-volatile computer readable media 500 may include code that directs processor 502 to perform the methods described herein.

본 명세서에서 기술된 여러 소프트웨어 컴포넌트들은 도 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 readable media 500 as shown in FIG. For example, the modeling module 506 may be configured to model the characteristics of the media workload. Utilization module 508 may be configured to determine GPU utilization and memory bandwidth of the media workload. In addition, the scheduling module 510 can be configured to schedule media workloads by changing the characteristics of the media workload to adjust GPU utilization and memory bandwidth.

도 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-readable media 500 include all of the components shown in FIG. In addition, one or more types of non-volatile computer readable media 500 may include any number of additional components not shown in FIG. 5, depending on the specific implementation details.

도 6은 공유된 물리 메모리를 구현하기 위한 예시적인 시스템(600)의 블록도이다. 유사한 참조부호를 갖는 항목은 도 1 및 도 2에 관해 기술된 바와 같다. 일부 실시예에서, 시스템(600)은 미디어 시스템이다. 또한, 시스템(600)은 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩톱 컴퓨터, 태블릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인휴대단말(PDA), 셀룰러 텔레폰, 겸용 셀룰러 텔레폰/PDA, 텔레비전, 스마트 디바이스(예를 들면, 스마트 폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시지 디바이스, 또는 데이터 통신 디바이스 등에 포함될 수 있다. 6 is a block diagram of an exemplary system 600 for implementing shared physical memory. Items with like reference numerals are as described with reference to Figs. In some embodiments, the system 600 is a media system. The system 600 may also be a personal computer (PC), a laptop computer, an ultra-laptop computer, a tablet, a touchpad, a portable computer, a handheld computer, a palmtop computer, a personal digital assistant (PDA), a cellular telephone, A PDA, a television, a smart device (e.g., smart phone, smart tablet or smart television), a mobile internet device (MID), a messaging device, or a data communication device.

여러 실시예에서, 시스템(600)은 디스플레이(604)에 결합된 플랫폼(602)을 포함한다. 플랫폼(602)은 콘텐츠 서비스 디바이스(들)(606) 또는 콘텐츠 전달 디바이스(들)(608), 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징을 포함하는 네비게이션 컨트롤러(610)는, 예를 들면, 플랫폼(602) 및/또는 디스플레이(604)와 상호작용하는데 사용될 수 있다. 이들 컴포넌트는 각기 아래에서 더욱 상세히 설명된다.In various embodiments, the system 600 includes a platform 602 coupled to a display 604. Platform 602 may receive content from a content device such as content service device (s) 606 or content delivery device (s) 608, or other similar content sources. The navigation controller 610, which includes one or more navigation features, may be used, for example, to interact with the platform 602 and / or the display 604. These components are described in further detail below.

플랫폼(602)은 칩셋(612), 중앙 처리 유닛(CPU)(102), 메모리 디바이스(120), 스토리지 디바이스(126), 그래픽 서브시스템(614), 애플리케이션(128), 및 라디오(616)의 어떤 조합을 포함할 수 있다. 칩셋(612)은 CPU(102), 메모리 디바이스(120), 스토리지 디바이스(126), 그래픽 서브시스템(614), 애플리케이션(128), 및 라디오(616) 간의 상호통신을 제공할 수 있다. 예를 들면, 칩셋(612)은 스토리지 디바이스(126)와 상호통신을 제공할 수 있는 스토리지 어댑터(도시되지 않음)를 포함할 수 있다.The platform 602 may be any of a variety of devices including a chipset 612, a central processing unit (CPU) 102, a memory device 120, a storage device 126, a graphics subsystem 614, an application 128, Any combination may be included. The chipset 612 may provide intercommunication between the CPU 102, the memory device 120, the storage device 126, the graphics subsystem 614, the application 128, and the radio 616. For example, the chipset 612 may include a storage adapter (not shown) capable of providing intercommunication with the storage device 126.

CPU(102)는 복합 명령어 세트 컴퓨터(Complex Instruction Set Computer (CISC)) 또는 축소 명령어 세트 컴퓨터(Reduced Instruction Set Computer (RISC)) 프로세서, x86 명령어 세트 호환 프로세서(x86 instruction set compatible processors), 멀티 코어 또는 어떤 다른 마이크로프로세서 또는 중앙 처리 유닛(CPU)으로서 구현될 수 있다. 일부 실시예에서, CPU(102)는 듀얼코어 프로세서(들) 또는 듀얼코어 모바일 프로세서(들) 등을 포함한다. The CPU 102 may be a computer system, such as a Complex Instruction Set Computer (CISC) or Reduced Instruction Set Computer (RISC) processor, an x86 instruction set compatible processors, May be implemented as any other microprocessor or central processing unit (CPU). In some embodiments, CPU 102 includes dual core processor (s) or dual core mobile processor (s) and the like.

메모리 디바이스(120)는 휘발성 메모리 디바이스, 이를 테면, 랜덤 액세스 메모리(RAM), 다이나믹 랜덤 액세스 메모리(DRAM), 또는 스태틱 RAM(SRAM)으로서 구현될 수 있지만, 이것으로 제한되지 않는다. 스토리지 디바이스(126)는 비휘발성 스토리지 디바이스, 이를 테면, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 어태치드 스토리지 디바이스(attached storage device), 플래시 메모리, 배터리 백업 SDRAM(동기 DRAM), 및/또는 네트워크 액세스가능 스토리지 디바이스로서 구현될 수 있지만, 이것으로 제한되지 않는다. 일부 실시예에서, 스토리지 디바이스(126)는, 예를 들면, 다중 하드 드라이브가 포함될 때 고가 디지털 미디어의 스토리지 성능 개선 보호를 증가시키는 기술을 포함한다. The memory device 120 may be implemented as a volatile memory device, such as, but not limited to, a random access memory (RAM), a dynamic random access memory (DRAM), or a static RAM (SRAM). The storage device 126 may be a non-volatile storage device, such as a magnetic disk drive, an optical disk drive, a tape drive, an internal storage device, an attached storage device, a flash memory, a battery backup SDRAM ≪ / RTI > and / or network accessible storage devices. In some embodiments, the storage device 126 includes techniques to increase the storage performance improvement protection of expensive digital media, for example, when multiple hard drives are involved.

그래픽 서브시스템(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 graphics subsystem 614 and the display 604 via communication. For example, the interface may be a high-definition multimedia interface, a display port, wireless HDMI, and / or HD compliant techniques. Graphics subsystem 614 may be integrated into CPU 102 or chipset 612. Alternatively, the graphics subsystem 614 may be a stand-alone card coupled to the chipset 612 via communication.

본 명세서에 기술된 그래픽 및/또는 비디오 처리 기술은 각종 하드웨어 아키텍처로 구현될 수 있다. 예를 들면, 그래픽 및/또는 비디오 기능은 칩셋(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 chipset 612. [ Alternatively, a discrete graphics and / or video processor may be used. In yet another embodiment, the graphics and / or video functions may be implemented by a general purpose processor including a multicore processor. In yet another embodiment, the functions may be implemented in a consumer electronics device.

라디오(616)는 각종 적합한 무선 통신 기술을 이용하여 신호를 전송하고 수신할 수 있는 하나 이상의 라디오를 포함할 수 있다. 그러한 기술은 하나 이상의 무선 네트워크 전체에서 통신을 수반할 수 있다. 예시적인 무선 네트워크는 무선 근거리 네트워크(WLANs), 무선 개인 영역 네트워크(WPANs), 무선 대도시 네트워크(metropolitan area network (WMANs)), 셀룰러 네트워크, 또는 위성 네트워크 등을 포함한다. 그러한 네트워크 전체에서 통신할 때, 라디오(616)는 어느 버전에서건 하나 이상의 적용 기준에 따라서 동작할 수 있다. The radio 616 may include one or more radios capable of transmitting and receiving signals using various suitable wireless communication technologies. Such techniques may involve communication across one or more wireless networks. Exemplary wireless networks include wireless local area networks (WLANs), wireless personal area networks (WPANs), metropolitan area networks (WMANs), cellular networks, or satellite networks. When communicating throughout such a network, the radio 616 may operate in accordance with one or more application criteria in any version.

디스플레이(604)는 모든 텔레비전 형태의 모니터 또는 디스플레이를 포함할 수 있다. 예를 들면, 디스플레이(604)는 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 또는 텔레비전 등을 포함할 수 있다. 디스플레이(604)는 디지털 및/또는 아날로그일 수 있다. 일부 실시예에서, 디스플레이(604)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(604)는 비주얼 프로젝션을 받아들일 수 있는 투명 표면일 수 있다. 그러한 투사는 다양한 형태의 정보, 이미지, 또는 객체 등을 전할 수 있다. 예를 들면, 그러한 투사는 모바일 증강 현실(mobile augmented reality (MAR)) 애플리케이션을 위한 비주얼 오버레이일 수 있다. 하나 이상의 애플리케이션(128)의 제어하에, 플랫폼(602)은 디스플레이(604)에 사용자 인터페이스(618)를 디스플레이할 수 있다. Display 604 may include any television type of monitor or display. For example, the display 604 may include a computer display screen, a touch screen display, a video monitor, or a television. Display 604 may be digital and / or analog. In some embodiments, display 604 may be a holographic display. Display 604 may also be a transparent surface that can accept a visual projection. Such a projection can convey various types of information, images, or objects. For example, such a projection may be a visual overlay for a mobile augmented reality (MAR) application. Under the control of one or more applications 128, the platform 602 may display the user interface 618 on the display 604.

콘텐츠 서비스 디바이스(들)(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 platform 602 via the Internet, for example. Content service device (s) 606 may be coupled to platform 602 and / or display 604. The platform 602 and / or the content service device (s) 606 may be coupled to the network 140 to communicate (e.g., transmit and / or receive) media information to and from the network 140 . Content delivery device (s) 608 may be coupled to platform 602 and / or display 604.

콘텐츠 서비스 디바이스(들)(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 platform 602 or display 604 over the network 140, Device. The content may be communicated unidirectionally and / or bi-directionally from any and all of the components and content providers in system 600 via network 140. [ An example of the content may include any media information, including, for example, video, music, medical and game information, and the like.

콘텐츠 서비스 디바이스(들)(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 platform 602 receives control signals from the navigation controller 610 that include one or more navigation features. The navigation features of the navigation controller 610 may be used, for example, to interact with the user interface 618. The navigation controller 610 may be a pointing device, which may be a computer hardware component (particularly a human interface device) that allows the user to input spatial (e.g., persistent, multidimensional) data into the computer. Many systems, such as graphical user interfaces (GUIs), televisions, and monitors, allow a user to control and provide data to a computer or television using physical gestures. Physical gestures include, but are not limited to facial expressions, facial movements, multiple limb movements, body movements, body language, or some combination thereof. Such physical gestures can be recognized and translated into commands or commands.

네비게이션 컨트롤러(610)의 네비게이션 특징들의 움직임은 디스플레이(604)에 디스플레이된 포인터, 커서, 포커스 링, 또는 기타 비주얼 인디케이터에 의해 디스플레이(604)에서 반향될 수 있다. 예를 들면, 애플리케이션(128)의 제어 하에, 네비게이션 컨트롤러(610)에 배치된 네비게이션 특징은 사용자 인터페이스(618)에 디스플레이된 가상 네비게이션 특징에 맵핑될 수 있다. 일부 실시예에서, 네비게이션 컨트롤러(610)는 개별 컴포넌트가 아닐지도 모르지만, 그 보다는 플랫폼(602) 및/또는 디스플레이(604)에 통합될 수 있다. The movement of the navigation features of the navigation controller 610 may be echoed on the display 604 by a pointer, cursor, focus ring, or other visual indicator displayed on the display 604. [ For example, under the control of the application 128, the navigation features placed in the navigation controller 610 may be mapped to the virtual navigation features displayed in the user interface 618. In some embodiments, the navigation controller 610 may not be a separate component, but rather may be integrated into the platform 602 and / or the display 604.

예를 들면, 시스템(600)은 인에이블될 때, 초기 부트업 후 버튼의 터치에 따라 사용자가 플랫폼(602)을 즉각 턴온 또는 턴오프할 수 있게 해주는 기술을 포함하는 드라이버(도시되지 않음)를 포함할 수 있다. 프로그램 로직은 플랫폼이 턴 "오프"될 때 플랫폼(602)으로 하여금 콘텐츠를 미디어 어댑터 또는 기타 콘텐츠 서비스 디바이스(들)(606) 또는 콘텐츠 전달 디바이스(들)(608)에 스트림하게 해 줄 수 있다. 그 밖에, 칩셋(612)은, 예를 들면, 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오용 하드웨어 및/또는 소프트웨어 서포트를 포함할 수 있다. 드라이버는 통합 그래픽 플랫폼용 그래픽 드라이버를 포함할 수 있다. 일부 실시예에서, 그래픽 드라이버는 PCIe(peripheral component interconnect express) 그래픽 카드를 포함한다. For example, when enabled, system 600 may include a driver (not shown) that includes a technique that allows a user to instantly turn on or off platform 602 upon a touch of a button after initial bootup . The program logic may cause the platform 602 to stream the content to the media adapter or other content service device (s) 606 or the content delivery device (s) 608 when the platform is turned "off ". In addition, the chipset 612 may include, for example, hardware and / or software support for 5.1 surround sound audio and / or high definition 7.1 surround sound audio. The driver may include a graphics driver for the integrated graphics platform. In some embodiments, the graphics driver includes a peripheral component interconnect express (PCIe) graphics card.

여러 실시예에서, 시스템(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 system 600 may be integrated. For example, platform 602 and content service device (s) 606 may be integrated and platform 602 and content delivery device (s) 608 may be integrated, or platform 602, Content service device (s) 606 and content delivery device (s) 608 may be integrated. In some embodiments, platform 602 and display 604 are integrated units. For example, display 604 and content service device (s) 606 may be integrated, or display 604 and content delivery device (s) 608 may be integrated.

시스템(600)은 무선 시스템 또는 유선 시스템으로서 구현될 수 있다. 무선 시스템으로 구현될 때, 시스템(600)은 무선 공유 미디어, 이를 테면 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 및 제어 로직 등을 통해 통신하는데 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 미디어의 일예는 RF 스펙트럼과 같은 무선 스펙트럼의 일부분을 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(600)은 유선 통신 미디어, 이를 테면, 입/출력 (I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체에 연결하는 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 또는 오디오 컨트롤러 등을 통해 통신하는데 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 일예는 와이어, 케이블, 금속 리드, 인쇄 회로 기판(PCB), 백플레인, 스위치 패브릭, 반도체 물질, 트위스트-페어 와이어, 동축 케이블, 또는 광섬유 등을 포함할 수 있다. The system 600 may be implemented as a wireless system or a wired system. When implemented in a wireless system, the system 600 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, a transmitter, a receiver, a transceiver, an amplifier, a filter, and control logic, An example of a wireless shared media may include a portion of the radio spectrum, such as the RF spectrum. When implemented as a wired system, the system 600 includes a wired communication media, such as an input / output (I / O) adapter, a physical connector connecting the I / O adapter to a corresponding wired communication medium, a network interface card ), A disk controller, a video controller, or an audio controller or the like. An example of a wired communications medium may include wires, cables, metal leads, printed circuit boards (PCBs), backplanes, switch fabrics, semiconductor materials, twisted-pair wires, coaxial cables,

플랫폼(602)은 정보를 전달하는 하나 이상의 논리적 또는 물리적 채널을 확립할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위해 만들어진 콘텐츠를 나타내는 모든 데이터를 지칭할 수 있다. 콘텐츠의 일예는, 예를 들면, 음성 대화 데이터(data from a voice conversation), 화상회의, 스트리밍 비디오, 전자 메일(이메일) 메시지, 음성 메일 메시지, 영숫자 심볼, 그래픽, 이미지, 비디오, 및 텍스트 등을 포함할 수 있다. 음성 대화 데이터는, 예를 들면, 음성 정보, 묵음 주기, 배경 잡음, 편안한 잡음(comfort noise), 및 톤 등을 포함할 수 있다. 제어 정보는 명령어, 지령어 또는 자동화 시스템용으로 만들어진 제어 워드를 나타내는 모든 데이터를 지칭할 수 있다. 예를 들면, 제어 정보는 시스템을 통해 미디어 정보를 라우트하는데 사용될 수 있거나 또는 노드에 지시하여 기결정된 방식으로 미디어 저오를 처리하도록 하는데 사용될 수 있다. 그러나, 실시예는 도 6에 도시되고 기술된 구성요소 또는 상황으로 제한되지 않는다. The platform 602 may establish one or more logical or physical channels to convey information. The information may include media information and control information. The media information may refer to all data representing content created for the user. Examples of content include, for example, data from a voice conversation, video conferencing, streaming video, email (email) messages, voice mail messages, alphanumeric symbols, graphics, images, . The voice conversation data may include, for example, voice information, silence periods, background noise, comfort noise, and tones. The control information may refer to any data representing a command, a command word, or a control word made for an automation system. For example, the control information may be used to route the media information through the system, or it may be used to direct the node to process the media failure in a predetermined manner. However, the embodiment is not limited to the components or situations shown and described in Fig.

도 7은 도 6의 시스템(600)이 구현될 수 있는 소형 폼 팩터 디바이스(small form factor device)(700)의 개략도이다. 유사한 참조부호를 갖는 항목은 도 6에 관해 기술된 바와 같다. 일부 실시예에서, 예를 들면, 디바이스(700)는 무선 역량을 갖는 모바일 컴퓨팅 디바이스로서 구현된다. 모바일 컴퓨팅 디바이스는 프로세싱 시스템 및, 예를 들면, 하나 이상의 배터리와 같은 모바일 전원 또는 파워 서플라이를 갖는 모든 디바이스를 지칭할 수 있다. FIG. 7 is a schematic diagram of a small form factor device 700 in which the system 600 of FIG. 6 may be implemented. Items with like reference numerals are as described with respect to FIG. In some embodiments, for example, device 700 is implemented as a mobile computing device with wireless capabilities. A mobile computing device may refer to a processing system and any device having a mobile power or power supply, such as, for example, one or more batteries.

전술한 바와 같이, 모바일 컴퓨팅 디바이스의 일예는 퍼스널 컴퓨터(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, device 700 may include a housing 702, a display 704, an input / output (I / O) device 706, and an antenna 708. The device 700 may also include a navigation feature 710. Display 704 may include all display units suitable for displaying information appropriate to a mobile computing device. The I / O device 706 may include any suitable I / O device suitable for inputting information to the mobile computing device. For example, the I / O device 706 may include an alphanumeric keyboard, a numeric keypad, a touchpad, an input key, a button, a switch, rocker switches, a microphone, a speaker, have. The information may also be input to the device 700 via a microphone. Such information may be digitized by the speech recognition device.

실시예 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.
제1항에 있어서,
상기 변경된 특징에 따른 상기 미디어 작업부하는 상기 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.
제1항에 있어서,
상기 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.
제1항에 있어서,
상기 미디어 작업부하의 특징은 미디어 특징 모델링 데이터베이스에서 모델링되며, 상기 특징을 모델링하는 단계는 상기 미디어 특징 모델링 데이터베이스에 엑세스하는 단계를 포함하는
미디어 작업부하 스케줄링 방법.
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.
제1항에 있어서,
상기 미디어 작업부하의 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.
제1항에 있어서,
상기 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.
제1항에 있어서,
상기 미디어 작업부하를 스케줄링하는 단계는, 상기 프로세서에 의하여 상기 미디어 작업부하를 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.
제8항에 있어서,
상기 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.
제8항에 있어서,
상기 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.
제8항에 있어서,
상기 CPU는 GPU의 각 GPU 엔진마다 이용율을 결정하는
컴퓨팅 디바이스.
9. The method of claim 8,
The CPU determines the utilization rate for each GPU engine of the GPU
Computing device.
제8항에 있어서,
상기 미디어 작업부하를 처리를 위해 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.
제8항에 있어서,
상기 컴퓨팅 디바이스는 카메라, 비디오 채팅 애플리케이션, 또는 화상 회의 애플리케이션을 포함하는
컴퓨팅 디바이스.
9. The method of claim 8,
The computing device may include a camera, a video chat application,
Computing device.
제8항에 있어서,
라디오 및 디스플레이를 더 포함하며, 상기 라디오 및 상기 디스플레이는 적어도 상기 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.
제15항에 있어서,
상기 변경된 특징에 따른 미디어 작업부하는 상기 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.
제15항에 있어서,
상기 컴퓨팅 디바이스에서 실행되는 데 응답하여, 상기 컴퓨팅 디바이스로 하여금,
상기 변경된 특징에 따른 미디어 작업 부하의 제 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.
제15항에 있어서,
상기 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.
KR1020150111226A 2012-08-02 2015-08-06 Media workload scheduler KR101634500B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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