KR101667998B1 - System and method for job scheduling for multiple media encoders - Google Patents
System and method for job scheduling for multiple media encoders Download PDFInfo
- Publication number
- KR101667998B1 KR101667998B1 KR1020090098390A KR20090098390A KR101667998B1 KR 101667998 B1 KR101667998 B1 KR 101667998B1 KR 1020090098390 A KR1020090098390 A KR 1020090098390A KR 20090098390 A KR20090098390 A KR 20090098390A KR 101667998 B1 KR101667998 B1 KR 101667998B1
- Authority
- KR
- South Korea
- Prior art keywords
- job
- encoders
- waiting time
- content data
- encoder
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/806—Broadcast or multicast traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/12—Wireless traffic scheduling
- H04W72/121—Wireless traffic scheduling for groups of terminals or users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/50—Allocation or scheduling criteria for wireless resources
- H04W72/56—Allocation or scheduling criteria for wireless resources based on priority criteria
- H04W72/566—Allocation or scheduling criteria for wireless resources based on priority criteria of the information or information source or recipient
- H04W72/569—Allocation or scheduling criteria for wireless resources based on priority criteria of the information or information source or recipient of the traffic information
Abstract
복수의 미디어 인코더에 대한 작업 스케줄링 시스템 및 방법이 제공된다. 복수의 미디어 인코더에 대한 작업 스케줄링 시스템은, 콘텐츠 데이터의 작업 순서를 결정하는 작업 순위 결정부, 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하인 인코더의 개수를 모니터링하는 모니터링부, 사용 가능한 인코더들로부터 인코딩 작업과 관련된 정보를 수신하는 작업 상황 정보 수신부, 상기 모니터링된 인코더의 개수 및 상기 수신한 인코딩 작업과 관련된 정보에 기초하여, 상기 사용 가능한 인코더들의 작업 대기 시간을 예측하는 대기 시간 예측부 및 상기 예측된 인코더들의 작업 대기 시간에 기초하여, 상기 결정된 작업 순서에 따라 콘텐츠 데이터를 배분하는 작업 분배부를 포함한다.
인코더, 작업, 우선 순위, 대기 시간, 가중치, 모니터링, 예측
A task scheduling system and method for a plurality of media encoders is provided. A job scheduling system for a plurality of media encoders includes a job ranking determining unit for determining a job order of content data, a monitoring unit for monitoring the number of encoders whose number of content data in operation or waiting jobs is equal to or less than a preset threshold value, A waiting time predicting unit for predicting the waiting time of the available encoders based on the number of the monitored encoders and the information related to the received encoding task, And a task distributing unit for distributing the content data according to the determined task order based on the estimated waiting time of the encoders.
Encoder, task, priority, wait time, weight, monitoring, prediction
Description
본 발명은 복수의 미디어 인코더에 대한 작업 스케줄링 시스템 및 방법에 관한 것으로서, 보다 상세하게는, 작업 순서를 효과적으로 결정하고, 인코더의 작업 상황을 효율적으로 모니터링하여 작업을 배분할 수 있는 복수의 미디어 인코더에 대한 작업 스케줄링 시스템 및 방법에 관한 것이다.The present invention relates to a task scheduling system and method for a plurality of media encoders, and more particularly, to a task scheduling system and method for a plurality of media encoders that can effectively determine the task sequence, efficiently monitor the task status of the encoder, To a task scheduling system and method.
인터넷의 보급과 디지털 방송 기술의 발전에 따라 초고속 인터넷 망을 이용하여 제공되는 양방향 방송 서비스의 이용이 증가하고 있는 추세이다.With the spread of the Internet and the development of digital broadcasting technology, the use of the two-way broadcasting service provided using the high-speed Internet network is increasing.
양방향 방송 서비스는 초고속 인터넷을 이용하여 정보 서비스, 동영상 콘텐츠 및 방송 등을 양방향 방송 수신기(예를 들어, IPTV, DMB 수신기, 셋탑 박스 등)로 제공하는 서비스로, 인터넷 검색은 물론 영화 감상, 홈쇼핑, 홈뱅킹, 온라인 게임, MP3 등 인터넷이 제공하는 다양한 콘텐츠 및 부가 서비스를 제공받을 수 있다.The bidirectional broadcasting service is a service for providing information services, video contents, broadcasting, and the like to a bidirectional broadcasting receiver (for example, IPTV, DMB receiver, set-top box, etc.) Various contents and additional services provided by the Internet such as home banking, online games, and MP3 can be provided.
특히, 네트워크를 통해 VOD, AOD 등을 제공하는 미디어 온 디맨드 서비스를 제공하기 위해서는 디지털 마스터나 디지털 캡춰 본을 해당 서비스에서 설정된 패키징 포맷, 코덱, 해상도 및 비트 레이트에 맞추어 인코딩 또는 트랜스 코딩을 하 여야 한다. 또한, 이러한 작업은 범용이나 전용 인코더에서 진행되며, FCFS(First-Come-First-Service) 방식이나 다단계 큐 형태의 작업 스케줄러 형식으로 제공되는 것이 일반적이다.In particular, to provide a media on-demand service that provides VOD, AOD, etc. over a network, a digital master or a digital capture must be encoded or transcoded according to the packaging format, codec, resolution and bit rate set in the service . In addition, these tasks are performed in general-purpose or dedicated encoders, and are generally provided in a first-come-first-service (FCFS) mode or a multi-stage queue type job scheduler.
그러나, 인코더/트랜스코더의 작업 스케줄링을 위하여 FCFS(First-Come-First-Service)이나 다단계 큐 형태와 같은 스케줄링을 사용할 경우에는 긴급한 작업을 위한 우선 순위를 고려하면서 인코더 사용율을 최대화할 수 없었으며, 특히, 우선 순위가 낮은 콘텐츠 데이터가 계속 처리되지 않을 수 있는 문제가 있었다. 특히, 인코더 서버들이 실시간으로 공유 스토리지에 액세스할 수 없는 경우에 작업을 효율적으로 처리할 수 없으며, 정해진 작업 순서대로 실제 작업이 수행되기 힘든 문제가 있었다.However, when scheduling such as first-come-first-service (FCFS) or multi-stage queue type is used for job scheduling of an encoder / transcoder, the encoder usage rate can not be maximized while considering priority for urgent tasks. Particularly, there has been a problem that low-priority content data may not be continuously processed. In particular, when the encoder servers can not access the shared storage in real time, they can not efficiently handle the work, and there is a problem that the actual work is not performed in a predetermined work order.
한편, 선행 기술로서, 대한민국 특허공개번호 제10-2006-00034863호에는 “가중치를 이용한 패킷 전송 방법”이라는 명칭의 발명이 개시되어 있는바, 여러 사용자 단말로 방송 및 멀티 캐스트 서비스를 제공하는데 있어서, 서비스의 형태와 종류를 고려한 가중치를 이용하여 패킷 스케쥴링하는 기술에 관한 것이다.On the other hand, as a prior art, Korean Patent Laid-Open No. 10-2006-00034863 discloses an invention entitled " Packet transmission method using weight, " and in providing broadcast and multicast services to a plurality of user terminals, And a technique for packet scheduling using a weight considering a type and a type of a service.
하지만, 상술한 선행 기술은 서비스의 형태 또는 종류에 따른 가중치를 결정하고, 결정된 가중치를 이용하여 패킷 전송 순위를 결정하고 있을 뿐이므로, 전송 순위가 높은 패킷이 계속해서 늘어날 경우에는 전송 순위가 낮은 패킷을 효율적으로 전송할 수 없는 문제가 있었다.However, since the above-described prior art only determines the weight according to the type or type of the service and determines the packet transmission order using the determined weight, if the packet with the higher transmission order continues to increase, There is a problem in that it can not be efficiently transmitted.
본 발명의 일부 실시예는 배분할 콘텐츠 데이터의 인코딩 작업 순서를 효과적으로 결정할 수 있는 복수의 미디어 인코더에 대한 작업 스케줄링 시스템 및 방법을 제공한다.Some embodiments of the present invention provide a system and method for scheduling jobs for a plurality of media encoders that can effectively determine the encoding work order of content data to be distributed.
또한, 본 발명의 일 실시예는 인코더의 작업량을 효율적으로 모니터링하고 콘텐츠 데이터의 인코딩 작업을 기 설정된 순서에 따라 복수의 인코더에 정확하게 배분할 수 있는 복수의 미디어 인코더에 대한 작업 스케줄링 시스템 및 방법을 제공한다.In addition, one embodiment of the present invention provides a system and method for scheduling jobs for a plurality of media encoders that can efficiently monitor the workload of the encoder and accurately distribute the encoding data of the content data to a plurality of encoders in a predetermined order .
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면은 콘텐츠 데이터의 작업 순서를 결정하는 작업 순위 결정부, 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하인 인코더의 개수를 모니터링하는 모니터링부, 사용 가능한 인코더들로부터 인코딩 작업과 관련된 정보를 수신하는 작업 상황 정보 수신부, 상기 모니터링된 인코더의 개수 및 상기 수신한 인코딩 작업과 관련된 정보에 기초하여, 상기 사용 가능한 인코더들의 작업 대기 시간을 예측하는 대기 시간 예측부 및 상기 예측된 인코더들의 작업 대기 시간에 기초하여, 상기 결정된 작업 순서에 따라 콘텐츠 데이터를 배분하는 작업 분배부를 포함하는 복수의 미디어 인코더에 대한 작업 스케줄링 시스템을 제공할 수 있다.As a technical means for achieving the above technical object, a first aspect of the present invention is a data processing apparatus including a work order determining unit for determining a work order of content data, a number of encoder A job status information receiving unit for receiving information related to the encoding job from the available encoders, a job waiting information receiving unit for collecting the job queues of the available encoders based on the number of the monitored encoders and the information related to the received encoding job, A job scheduling system for a plurality of media encoders including a waiting time predicting unit for predicting time and a job distributing unit for distributing content data according to the determined job order based on the waiting wait time of the predicted encoders have.
또한, 본 발명의 제 2 측면은 콘텐츠 데이터의 작업 순서를 결정하는 단계, 사용 가능한 인코더 별로 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하인지를 모니터링하는 단계, 상기 사용 가능한 인코더들로부터 인코딩 작업과 관련된 작업 상황 정보를 수신하는 단계, 상기 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하 인코더의 개수 및 상기 수신한 작업 상황 정보에 기초하여, 상기 사용 가능한 인코더들의 작업 대기 시간을 예측하는 단계 및 상기 예측된 작업 대기 시간에 기초하여, 상기 결정된 작업 순서대로 상기 콘텐츠 데이터를 상기 인코더로 배분하는 단계를 포함하는 복수의 미디어 인코더에 대한 작업 스케줄링 방법을 제공할 수 있다.The second aspect of the present invention also includes a method comprising the steps of: determining a working order of content data; monitoring whether the number of content data in operation or waiting for work for each available encoder is below a predetermined threshold; Receiving the job status information related to the encoding job, calculating a job wait time of the available encoders based on the number of the content data under the job or waiting job, And distributing the content data to the encoder in accordance with the determined work order based on the predicted job wait time. The present invention also provides a method of scheduling jobs for a plurality of media encoders.
전술한 본 발명의 과제 해결 수단에 의하면, 인코딩 작업을 위해 대기 중인 콘텐츠 데이터의 작업 배분 대기 시간에 대한 가중치를 유동적으로 반영하여, 인코딩 작업 순서를 효율적으로 결정한다.According to the present invention, the encoding task sequence is efficiently determined by flexibly reflecting the weight of the wait time of the task allocation of the waiting content data for the encoding task.
또한, 전술한 본 발명의 과제 해결 수단에 의하면, 인코더의 작업량을 효율적으로 모니터링하여 적은 연산량으로 정확하게 인코딩 작업을 정해진 순서대로 배분한다.In addition, according to the above-mentioned problem solving means of the present invention, the workload of the encoder is efficiently monitored and the encoding operation is accurately distributed in a predetermined order in a small amount of calculation.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해 서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly explain the present invention, parts not related to the description are omitted, and like parts are denoted by like reference numerals throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 구성도이다.1 is a block diagram of a task scheduling system for a plurality of media encoders according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템은 작업 스케줄러 서버(1000), 인코더 서버(2000), 공유 스토리지(3000) 및 네트워크(4000)를 포함한다. 또한, 작업 스케줄러 서버(1000)는 작업 순위 결정부(1100), 작업 분배부(1200) 및 송수신부(1300)를 포함하며, 인코더 서버(2000)는 인코딩부(2110), 인코더 작업 큐(2120) 및 제어부(2130)를 포함하는 복수의 인코더(2100)를 포함한다.1, a task scheduling system for a plurality of media encoders according to an embodiment of the present invention includes a
작업 스케줄러 서버(1000)는 인코딩이 필요한 콘텐츠 데이터의 작업 순위를 결정하고, 인코더 서버(2000)의 인코더 별로 인코딩 작업을 분배한다.The
작업 순위 결정부(1100)는 인코딩이 필요한 콘텐츠 데이터의 작업 순위를 결정한다. 작업 순위 결정부(1100)는 콘텐츠 별로 우선 순위 및 작업 배분 대기 시간 에 기초하여 효율적으로 작업 순위를 결정할 수 있다.The task
작업 배분 대기 시간이란, 콘텐츠 데이터의 인코딩 작업을 위해 작업 스케줄러 서버(1000)에서 인코더 서버(2000)로의 배분을 대기하는 시간을 말하며, 이러한 작업 배분 대기 시간은 각 콘텐츠 별로 측정될 수 있다.The task allocation waiting time is a time for waiting for distribution from the
작업 분배부(1200)는 결정된 작업 순위대로 작업이 진행될 수 있도록, 인코더 서버(2000)의 각 인코더에게 작업을 배분한다. 작업 분배부(1200)는 인코더 서버의 작업량을 기 설정된 기준에 따라 모니터링하고, 기 설정된 기준을 만족하는 인코더가 존재할 경우에 인코더 서버 내의 모든 인코더에 대한 작업 대기 시간을 예측할 수 있다.The
작업 대기 시간이란, 인코더(2100)로 콘텐츠 인코딩 작업이 분배될 경우에, 분배된 작업이 인코더(2100)에서 인코딩되기까지 대기하는 시간을 말한다.The job wait time refers to a time for which the distributed job is to be encoded in the
송수신부(1300)는 작업 순위 결정 및 작업 분배에 필요한 각종 정보를 인코더 서버(2000) 및 공유 스토리지(3000)와 송수신한다.The transmission /
인코더 서버(2000)의 복수의 인코더(2100)는 각각 작업 스케줄러 서버(1000)로부터 콘텐츠 데이터의 인코딩 작업 지시를 수신하고, 콘텐츠 데이터를 인코딩한다.The plurality of
인코딩부(2110)는 후술할 인코더 작업 큐(2120)에 저장된 작업 순서에 따라, 콘텐츠 데이터를 인코딩한다.The
인코더 작업 큐(2120)는 인코딩부(2110)가 인코딩할 콘텐츠 데이터의 작업 순서를 작업 스케줄러 서버(1000)로부터 수신하여 저장한다.The
본 발명의 일 실시예에서는 인코더 서버(2000)가 복수의 인코더(2100)를 포함하는 것으로 설명하였지만, 이에 한정되지 않으며, 트랜스코더 등의 장치를 더 포함할 수도 있다.In the embodiment of the present invention, the
제어부(2130)는 작업 스케줄러 서버(1000)에게 콘텐츠 데이터의 인코딩 작업 배분에 필요한 정보를 제공하며, 인코딩부(2110)가 인코더 작업 큐(2120)에 저장된 작업 순서대로 인코딩 작업을 수행하도록 한다.The
공유 스토리지(3000)는 인코딩 작업이 필요한 콘텐츠 데이터를 저장하며, 각각의 인코더(2100)에게 저장된 콘텐츠 데이터를 제공한다.The shared
네트워크(4000)는 전용선, LAN, QAN, VAN, 인트라넷, 사설 전화망, 공중전화망, PSTN 망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함한다.The
이하, 도 2를 참조하여 본 발명의 일 실시예에 따른 작업 순위 결정부(1100)의 세부 구성에 대하여 설명하기로 한다.Hereinafter, the detailed configuration of the task ranking determiner 1100 according to an embodiment of the present invention will be described with reference to FIG.
도 2는 본 발명의 일 실시예에 따른 작업 순위 결정부(1100)의 세부 구성도이다.FIG. 2 is a detailed configuration diagram of a task ranking determining
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 작업 순위 결정부(1100)는 우선 순위 설정부(1110), 대기 시간 측정부(1120), 가중치 설정부(1130), 순위 산출부(1140) 및 마스트 작업 큐(1150)를 포함한다.2, the task ranking determining
우선 순위 설정부(1110)는 콘텐츠 데이터의 종류 및 특성 등에 기초하여, 작 업하고자 하는 콘텐츠 데이터의 우선 순위의 레벨을 설정한다. 우선 순위 설정부(1110)는, 예를 들어, 우선 순위 레벨을 1~5로 설정할 수 있으며, 콘텐츠 데이터의 장르, 유료 서비스인지 여부, 콘텐츠의 재생 빈도 등에 기초하여 각 콘텐츠의 우선 순위의 레벨을 설정할 수 있다.The
대기 시간 측정부(1120)는 인코딩 작업을 위하여 인코더 서버(2000)로 배분되기를 대기 중인 콘텐츠 데이터의 작업 배분 대기 시간을 측정하고, 측정된 작업 배분 대기 시간을 순위 산출부(1140)로 제공한다.The waiting
가중치 설정부(1130)는 우선 순위에 대응하는 우선 순위 가중치 및 작업 배분 대기 시간에 대응하는 대기 시간 가중치를 설정한다. 가중치 설정부(1130)는 우선 순위 레벨 전체 및 상기 대기 시간 전체에 각각 대응하도록 가중치를 설정할 수 있다.The
또한, 가중치 설정부(1130)는 우선 순위 가중치 및 대기 시간 가중치를 조절할 수 있으며, 인코딩 작업에 대한 다양한 요구에 대하여 작업 순위를 탄력적으로 조절하여 결정할 수 있다.In addition, the
순위 산출부(1140)는 우선 순위 레벨, 우선 순위 가중치, 작업 대기 시간 및 대기 시간 가중치에 기초하여, 콘텐츠 데이터의 작업 순위를 산출한다.The
순위 산출부(1140)는, 예를 들어, (우선 순위 레벨 x 우선 순위 가중치) + (작업 대기 시간 x 대기 시간 가중치) 값을 산출하고, 산출된 값에 기초하여 작업 순서를 결정할 수 있다.The
마스트 작업 큐(1150)는 산출된 작업 순서에 따른 콘텐츠 데이터의 작업 목 록을 순서대로 저장한다.The
이하, 도 3을 참조하여 본 발명의 일 실시예에 따른 작업 분배부(1200)의 세부 구성에 대하여 설명하기로 한다.Hereinafter, the detailed configuration of the
도 3은 본 발명의 일 실시예에 따른 작업 분배부(1200)의 세부 구성도이다.3 is a detailed configuration diagram of the
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 작업 분배부(1200)는 모니터링부(1210), 작업 상황 정보 수신부(1220), 대기 시간 예측부(1230) 및 작업 전송부(1240)를 포함한다.3, the
모니터링부(1210)는 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하인 인코더(2100)를 모니터링한다.The
모니터링부(1210)는 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수를 인코더(2100)로부터 수신할 수 있으며, 예를 들어, 콘텐츠 데이터의 개수가 1 이하인 인코더가 몇 개 존재하는지를 판단할 수 있다. 또한, 모니터링부(1210)는 모니터링한 정보를 대기 시간 예측부(1230)로 제공한다.The
작업 상황 정보 수신부(1220)는 인코더(2100)들로부터 인코딩 작업과 관련된 정보를 수신한다. 작업 상황 정보 수신부(1220)는 각각의 인코더(2100)에 대한 미처리 작업의 총 시간, 입력 해상도, 출력 해상도, 코덱 및 인코더 성능 등에 관한 정보를 수신할 수 있다.The work situation
대기 시간 예측부(1230)는 작업 스케줄러 서버(1000)에 접속된 인코더 서버(2000)에서 사용 가능한 인코더(2100)들의 작업 대기 시간을 예측한다.The waiting
대기 시간 예측부(1230)는 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개 수가 기 설정된 임계치 이하인 인코더(2100)가 (기 설정된 개수 이상으로) 존재할 경우에, 작업 상황 정보 수신부(1220)에서 수신한 인코딩 작업과 관련된 정보에 기초하여, 각각의 인코더(2100)에 대하여 작업 대기 시간을 예측할 수 있다.The waiting
또한, 대기 시간 예측부(1230)는 인코더 서버(2000)에서 인코딩 작업이 가능한 모든 인코더(2100)에 대하여 작업 대기 시간을 예측할 수 있다.In addition, the waiting
대기 시간 예측부(1230)는 각 인코더(2100) 별로 작업 중 또는 작업 대기 중인 콘텐츠에 대하여 ‘콘텐츠 데이터의 잔여 시간(작업이 진행되지 않은 경우는 전체 시간) x 입력 해상도 가중치 x 출력 해상도 가중치 x 코덱 복잡도 가중치 x 인코더 성능 가중치’ 값을 산출하고, 산출된 값을 합하여 각 인코더(2100) 별 대기 시간 값을 예측할 수 있다. 또한, 이 경우, 해상도 가중치는 비디오 데이터의 경우에는 가로 해상도 x 세로 해상도 x 프레임 레이트 x 비디오 가중치를 취할 수 있으며, 오디오 데이터의 경우에는 비트 해상도 x 샘플 레이트 x 채널 수 x 오디오 가중치로 값을 취할 수 있다. 나아가, 각각의 가중치는 콘텐츠 데이터의 샘플 셋을 이용한 인코딩 시간 비율로 값을 미리 정할 수 있다.The waiting
작업 전송부(1240)는 예측된 대기 시간에 기초하여, 콘텐츠 데이터의 인코딩 작업을 각각의 인코더(2100)로 분배한다. 작업 전송부(1240)는 예측된 대기 시간이 짧은 인코더(2100)에게 우선 순위가 높은 작업을 배분할 수 있으며, 작업 전송부(1240)에서 제공된 작업은 각각의 인코더 작업 큐(2120)에 순차적으로 저장될 수 있다.The
따라서, 작업 스케줄러 서버(1000)는 작업 개수가 기 설정된 개수 이하인 인 코더(2100)가 존재할 경우에만 대기 시간을 예측하여, 인코더(2100)의 대기 시간 예측에 걸리는 연산량을 감소시킬 수 있으며, 대기 시간을 예측할 경우에는 사용 가능한 모든 인코더(2100)에 대하여 대기 시간을 예측함으로써, 대기 중인 작업에 관계없이 실제로 데이터를 빨리 처리할 수 있는 인코더를 정확하게 판단할 수 있게 된다.Accordingly, the
나아가, 인코더 서버(2000)는 작업 스케줄러 서버(1000)에서 결정한 작업 순서대로 정확하게 인코딩을 수행할 수 있으며, 각각의 인코더(2100)에서 작업이 끝나기 전에, 미리 다음 작업할 콘텐츠를 효율적으로 분배함으로써, 인코더 서버(2000)가 외부의 공유 스토리지(3000)로부터 데이터를 액세스할 때 발생하는 작업 효율 문제를 해결할 수 있게 된다.In addition, the
이하, 도 4를 참조하여 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 순서 결정 방법에 대하여 설명하기로 한다.Hereinafter, a method of determining a work order of a job scheduling system for a plurality of media encoders according to an embodiment of the present invention will be described with reference to FIG.
도 4는 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 순서 결정 방법의 세부 흐름도이다.4 is a detailed flowchart of a method of determining a work order of a job scheduling system for a plurality of media encoders according to an exemplary embodiment of the present invention.
단계 S400은 콘텐츠 데이터 별로 우선 순위 레벨을 설정하는 단계이다. 단계 S400에서는 콘텐츠 데이터의 종류 및 특성 등에 기초하여, 작업하고자 하는 콘텐츠 데이터의 우선 순위의 레벨을 설정한다. 우선 순위 설정부(1110)는, 예를 들어, 우선 순위 레벨을 1~5로 설정할 수 있으며, 콘텐츠 데이터의 장르, 유료 서비스인지 여부, 콘텐츠의 재생 빈도 등에 기초하여 각 콘텐츠의 우선 순위의 레벨을 1~5의 값으로 설정할 수 있다.Step S400 is a step of setting a priority level for each content data. In step S400, the level of priority of the content data to be operated is set based on the type and characteristics of the content data. For example, the priority
단계 S402는 콘텐츠 데이터 별로 작업 배분 대기 시간을 측정하는 단계이다. 단계 S402에서는 인코딩 작업을 위하여 인코더 서버(2000)로 배분되기를 대기 중인 콘텐츠 데이터의 작업 배분 대기 시간을 측정할 수 있다.Step S402 is a step of measuring the work allocation waiting time for each content data. In step S402, the task allocation waiting time of the content data waiting to be distributed to the
단계 S404는 작업 순위를 산출하는 단계이다. 단계 S404에서는 우선 순위 레벨, 우선 순위 가중치, 작업 대기 시간 및 대기 시간 가중치에 기초하여, 콘텐츠 데이터의 작업 순위를 산출할 수 있으며, 예를 들어, (우선 순위 레벨 x 우선 순위 가중치) + (작업 대기 시간 x 대기 시간 가중치) 값을 산출하고, 산출된 값에 기초하여 작업 순서를 결정할 수 있다.Step S404 is a step of calculating a job ranking. In step S404, the job ranking of the content data can be calculated based on the priority level, the priority weight, the job wait time, and the wait time weight. For example, (priority level x priority weight) + Time x wait time weight value), and determine the work order based on the calculated value.
단계 S406은 우선 순위 및 작업 배분 대기 시간에 대응하는 가중치를 변경하였는지 여부를 판단하는 단계이다.Step S406 is a step of determining whether or not the weight corresponding to the priority and the task allocation waiting time is changed.
상기 판단 결과(S406), 가중치가 변경된 경우에는 변경된 가중치에 기초하여, 작업 순위를 산출하며(단계 S404), 가중치가 변경되지 않은 경우에는 단계 S408을 수행한다.If it is determined that the weight is changed, the job ranking is calculated based on the changed weight (step S404). If the weight is not changed, step S408 is performed.
단계 S408은 결정된 작업 우선 순위를 저장하는 단계이다. 단계 S408에서는 산출된 작업 순서에 따른 콘텐츠 데이터의 작업 목록을 순서대로 저장할 수 있다.Step S408 is a step of storing the determined task priority. In step S408, the task list of the content data according to the calculated task sequence may be stored in order.
본 발명의 일 실시예에 따르면, 콘텐츠 데이터 별로 작업 대기 시간을 측정하고, 측정된 대기 시간에 대하여 별도의 가중치를 부여함으로써, 콘텐츠 데이터 별로 우선 순위 레벨에 기초하여 작업 순위를 결정할 경우에, 순위가 낮은 콘텐츠 데이터의 작업이 무한정 뒤로 밀릴 수 문제를 방지할 수 있으며, 나아가, 대기 시간 가중치를 유동적으로 조절하여, 대기 시간이 많은 콘텐츠를 효과적으로 처리할 수 있게 된다.According to an embodiment of the present invention, when a job wait time is measured for each content data and a different weight is assigned to the measured wait time, when a job ranking is determined based on a priority level for each content data, It is possible to prevent the problem that the work of the low content data is pushed backward indefinitely, and furthermore, the waiting time weight can be flexibly adjusted to effectively process the content with a large waiting time.
이하, 도 5를 참조하여, 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 배분 방법에 대하여 설명하기로 한다.Hereinafter, with reference to FIG. 5, a method of allocating work in a task scheduling system for a plurality of media encoders according to an embodiment of the present invention will be described.
도 5는 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 배분 방법의 세부 흐름도이다.5 is a detailed flowchart of a task allocation method of a task scheduling system for a plurality of media encoders according to an embodiment of the present invention.
단계 S500은 인코더(2100)의 작업 상황을 모니터링하는 단계이다. 단계 S500에서는 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수가 기 설정된 임계치 이하인 인코더(2100)의 개수를 모니터링할 수 있다. 단계 S500에서는 작업 중 또는 작업 대기 중인 콘텐츠 데이터의 개수를 인코더(2100)로부터 수신할 수 있으며, 예를 들어, 콘텐츠 데이터의 개수가 1 이하인 인코더가 몇 개 존재하는지를 판단할 수 있다.Step S500 is a step of monitoring the operation status of the
단계 S502는 작업량이 기 설정된 개수 이하인 인코더가 존재하는지 여부를 판단하는 단계이다. 또한, 단계 502에서는 기 설정된 개수 이하인 인코더(2100)가 기 설정된 개수 이상으로 존재하는지를 판단할 수도 있다.Step S502 is a step of determining whether or not there is an encoder whose work amount is equal to or less than a predetermined number. In step 502, it may be determined whether or not a predetermined number or less of the
상기 판단 결과(S502), 작업량이 기 설정된 개수 이하인 인코더가 존재하지 않는 경우에는 단계 S500을 수행하며, 작업량이 기 설정된 개수 이하인 인코더가 존재하는 경우에는 단계 S504를 수행한다.If it is determined in step S502 that there is no encoder having a predetermined number of workings or less, step S500 is performed. If there is an encoder having a predetermined number of workings or less, step S504 is performed.
단계 S504는 인코더 서버(2000) 내의 인코더(2100)로부터 작업 상황 정보를 수신하는 단계이다. 단계 S504에서는 각각의 인코더(2100)들로부터 미처리 작업의 총 시간, 입력 해상도, 출력 해상도, 코덱 및 인코더 성능 등과 같은, 인코딩 작업 과 관련된 정보 정보를 수신할 수 있다.Step S504 is a step of receiving the job status information from the
단계 S506은 인코더 서버(2000) 내의 사용 가능한 인코더(2100)들의 작업 대기 시간을 예측하는 단계이다. 단계 S506에서는 작업 스케줄러 서버(1000)에 접속된 인코더 서버(2000)에서 사용 가능한 인코더(2100)들의 작업 대기 시간을 단계 S504에서 수신한 정보에 기초하여 예측할 수 있다. 또한, 단계 S506에서는 인코더 서버(2000)에서 인코딩 작업이 가능한 모든 인코더(2100)에 대하여 작업 대기 시간을 예측할 수 있다.Step S506 is a step of estimating the waiting time of the
단계 S506에서는 각 인코더(2100) 별로 작업 중 또는 작업 대기 중인 콘텐츠에 대하여 ‘콘텐츠 데이터의 잔여 시간(작업이 진행되지 않은 경우는 전체 시간) x 입력 해상도 가중치 x 출력 해상도 가중치 x 코덱 복잡도 가중치 x 인코더 성능 가중치’ 값을 산출하고, 산출된 값을 합하여 각 인코더(2100) 별 대기 시간 값을 예측할 수 있다. 또한, 이 경우, 해상도 가중치는 비디오 데이터의 경우에는 가로 해상도 x 세로 해상도 x 프레임 레이트 x 비디오 가중치를 취할 수 있으며, 오디오 데이터의 경우에는 비트 해상도 x 샘플 레이트 x 채널 수 x 오디오 가중치로 값을 취할 수 있다.In step S506, the remaining time of content data (total time if the operation is not performed) x input resolution weight x output resolution weight x codec complexity weight x encoder performance Quot; weight " value, and calculate the waiting time value for each
단계 S508은 예측된 대기 시간에 기초하여 작업을 배분하는 단계이다. 단계 S508에서는 예측된 대기 시간에 기초하여, 예측된 대기 시간이 짧은 인코더(2100)로 우선 순위가 높은 작업을 배분할 수 있으며, 작업 전송부(1240)에서 제공된 작업은 각각의 인코더 작업 큐(2120)에 순차적으로 저장될 수 있다.Step S508 is a step of distributing the task based on the estimated waiting time. In step S508, based on the estimated waiting time, tasks with higher priority can be allocated to the shortened
따라서, 본 발명의 일 실시예에 따른 작업 스케줄링 방법에 의하면, 작업 개 수가 기 설정된 개수 이하인 인코더(2100)가 존재할 경우에만 대기 시간을 예측함으로써, 인코더(2100)의 대기 시간 예측에 걸리는 연산량을 감소시킬 수 있으며, 대기 시간을 예측할 경우에는 사용 가능한 모든 인코더(2100)에 대하여 대기 시간을 예측함으로써, 대기 중인 작업에 관계없이 실제로 데이터를 빨리 처리할 수 있는 인코더를 정확하게 판단할 수 있게 된다.Therefore, according to the job scheduling method according to the embodiment of the present invention, the waiting time is predicted only when the
나아가, 인코더 서버(2000)는 작업 스케줄러 서버(1000)에서 결정한 작업 순서대로 정확하게 인코딩을 수행할 수 있으며, 각각의 인코더(2100)에서 작업이 끝나기 전에, 미리 다음 작업할 콘텐츠를 효율적으로 분배함으로써, 인코더 서버(2000)가 외부의 공유 스토리지(3000)로부터 데이터를 액세스할 때 발생하는 작업 효율 문제를 해결할 수 있게 된다.In addition, the
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전 달 매체를 포함한다. One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium can include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
도 1은 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 구성도.1 is a configuration diagram of a task scheduling system for a plurality of media encoders according to an embodiment of the present invention;
도 2는 본 발명의 일 실시예에 따른 작업 순위 결정부(1100)의 세부 구성도.2 is a detailed configuration diagram of a task ranking determining
도 3은 본 발명의 일 실시예에 따른 작업 분배부(1200)의 세부 구성도.FIG. 3 is a detailed configuration diagram of a
도 4는 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 순서 결정 방법의 세부 흐름도.4 is a detailed flowchart of a method of determining a work order of a job scheduling system for a plurality of media encoders according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 복수의 미디어 인코더에 대한 작업 스케줄링 시스템의 작업 배분 방법의 세부 흐름도.5 is a detailed flowchart of a task allocation method of a task scheduling system for a plurality of media encoders according to an embodiment of the present invention.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090098390A KR101667998B1 (en) | 2009-10-15 | 2009-10-15 | System and method for job scheduling for multiple media encoders |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090098390A KR101667998B1 (en) | 2009-10-15 | 2009-10-15 | System and method for job scheduling for multiple media encoders |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110041295A KR20110041295A (en) | 2011-04-21 |
KR101667998B1 true KR101667998B1 (en) | 2016-10-21 |
Family
ID=44047292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090098390A KR101667998B1 (en) | 2009-10-15 | 2009-10-15 | System and method for job scheduling for multiple media encoders |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101667998B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077281A (en) | 2006-09-20 | 2008-04-03 | Nec Corp | Superscheduler, job request method and superscheduler program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100559470B1 (en) * | 2003-11-26 | 2006-03-10 | 한국전자통신연구원 | Content delivery job management method and apparatus in cluster system |
KR101457561B1 (en) * | 2008-01-29 | 2014-11-03 | 삼성전자주식회사 | Method and apparatus for data transmission, method and apparatus for performing task |
-
2009
- 2009-10-15 KR KR1020090098390A patent/KR101667998B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077281A (en) | 2006-09-20 | 2008-04-03 | Nec Corp | Superscheduler, job request method and superscheduler program |
Also Published As
Publication number | Publication date |
---|---|
KR20110041295A (en) | 2011-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10298969B2 (en) | Architecture and method for high performance on demand video transcoding | |
US9634947B2 (en) | Dynamic jitter buffer size adjustment | |
JP6178523B2 (en) | Transport accelerator implementing request manager and connection manager functionality | |
US9247276B2 (en) | System and method for progressive delivery of media content | |
KR101894420B1 (en) | Adaptive video transcoding method and its system for maximizing transcoding server capacity | |
EP2992652B1 (en) | Managing bandwidth allocation among flows through assignment of drop priority | |
CN108965884B (en) | Distribution method of transcoding tasks, scheduling device and transcoding device | |
US7885189B2 (en) | Methods and apparatus for rate estimation and predictive rate control | |
CN101658045A (en) | Coding of a plurality of information signals using common computing power | |
CN103004190B (en) | Video stream | |
CN104205771A (en) | Controlling HTTP streaming between source and receiver over multiple TCP connections | |
KR20110044258A (en) | Data streaming through time-varying transport media | |
US20230024699A1 (en) | System for high performance on-demand video transcoding | |
US20180376176A1 (en) | Quality-of-experience optimization apparatus, network quality estimation apparatus, mobile terminal, quality-of-experience optimization method, network quality estimation method, and program | |
JP5710006B2 (en) | Method and apparatus for scheduling communication traffic in an ATCA based device | |
US20140325023A1 (en) | Size prediction in streaming enviroments | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
KR101667998B1 (en) | System and method for job scheduling for multiple media encoders | |
WO2009155868A1 (en) | Power distribution method and device for multiple data streams transmission | |
CN112714081A (en) | Data processing method and device | |
US20180349190A1 (en) | Process control program, process control method, information processing device, and communication device | |
CN114793299A (en) | Streaming media transmission control method, system, device and medium | |
CN112217883B (en) | Multi-channel construction method, device and system based on NFS protocol | |
KR20100078470A (en) | Method for transmitting streaming contents in wireless internet system | |
JP2008211729A (en) | Method for estimating number of all originated call connections from all terminals, estimation server, terminal, broadcast station server, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |