KR101871116B1 - Quality of exprerience maximization scheme to limit transcoding power consumption - Google Patents
Quality of exprerience maximization scheme to limit transcoding power consumption Download PDFInfo
- Publication number
- KR101871116B1 KR101871116B1 KR1020170115235A KR20170115235A KR101871116B1 KR 101871116 B1 KR101871116 B1 KR 101871116B1 KR 1020170115235 A KR1020170115235 A KR 1020170115235A KR 20170115235 A KR20170115235 A KR 20170115235A KR 101871116 B1 KR101871116 B1 KR 101871116B1
- Authority
- KR
- South Korea
- Prior art keywords
- transcoding
- version
- transcoded
- segment
- gain
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000009467 reduction Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 12
- 238000005265 energy consumption Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 241001272567 Hominoidea Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
아래의 설명은 사용자 인지 품질(QoE: Quality of Experience)을 최대화 하는 기술에 관한 것이다.The following discussion is about techniques that maximize the quality of experience (QoE).
최근 동적 적응 스트리밍은 대부분의 스트리밍 서비스 제공 업체에서 널리 채택되어 있다. 이를 위해서는 각 비디오를 여러 세그먼트로 분할하고 각 세그먼트를 많고 다양한 비트율(bit-rate) 버전으로 인코딩 시켜야 한다. 따라서, 시간에 따라 변하는 동적 네트워크 조건에 맞게 가장 적합한 비트 전송률 버전을 스트리밍 할 수 있게 된다.Recently, dynamic adaptive streaming has been widely adopted by most streaming service providers. To do this, each video must be segmented into multiple segments and each segment encoded with a large variety of bit-rate versions. Thus, it becomes possible to stream the most suitable bit rate version to meet the dynamic network conditions that change with time.
다양한 비트율 버전을 생성하려면 트랜스코딩 작업이 필수적이다. 예컨대, 한국공개특허 제10-2011-0057446호(공개일 2011년 06월 01일)에는 미디어 데이터를 스트리밍 하는 기술이 개시되어 있다.Transcoding is essential for generating various bit-rate versions. For example, Korean Patent Laid-Open No. 10-2011-0057446 (published on June 01, 2011) discloses a technique for streaming media data.
스트리밍에 따라 120가지 트랜스코딩 작업이 필요할 수 있고 적어도 20가지 버전을 사용할 수 있어야 한다. 이러한 트랜스코딩에 대한 요구를 지원하기 위해 많은 클라우드 기반 트랜스코딩 서비스에서 스트리밍 업체에게 트랜스코딩 클라우드를 제공하고 있다. 본질적으로, 비디오 트랜스코딩은 계산 집약적이며 서버에서 많은 프로세싱 유닛을 필요로 한다. 또한, 변환된 버전을 저장하기 위해 많은 저장 공간이 필요하다. 이러한 계산 및 저장 요구 사항은 서비스 제공 업체에게 상당한 운영 비용을 부과한다.Depending on the streaming, 120 transcoding tasks may be required and at least 20 versions must be available. To support these transcoding needs, many cloud-based transcoding services are providing transcoding clouds to streaming providers. In essence, video transcoding is computationally intensive and requires many processing units in the server. Also, a lot of storage space is needed to store the converted version. These computational and storage requirements impose considerable operational costs on service providers.
데이터 센터의 에너지 효율성은 클라우드 서비스 제공 업체에게 있어서 가장 중요한 문제 중 하나다. 예를 들어, 10MW 최대 전력 용량을 제공하는 데이터 센터의 연간 청구액은 1억 달러에서 2억 달러에 이른다는 결과도 있다. 특히, 작업 부하에 따라 에너지 비용이 다를 수 있지만 데이터를 제한하는 것이 필수적인 업체의 경우 작업량 추적을 기반으로 최대 트랜스코딩에 3000Gbps가 필요하다는 것이 관찰되고 있다.Energy efficiency in the data center is one of the most important issues for cloud service providers. For example, data centers with 10MW peak power capacity have an annual billing of $ 100 million to $ 200 million. In particular, it is observed that energy cost may vary for different workloads, but for businesses where data restraint is essential, 3000 Gbps is required for maximum transcoding based on workload tracking.
이러한 이유로 트랜스코딩 동작의 관리에 대한 많은 연구가 많이 진행되고 있다.For this reason, much research has been conducted on the management of transcoding operations.
사용자 인지 품질(QoE)을 고려하여 트랜스코딩 에너지 소비를 제한할 수 있는 방법을 제공한다.And provides a way to limit transcoding energy consumption in consideration of user perceived quality (QoE).
사용자 인지 품질(QoE)을 최대화 하면서 효율적으로 트랜스코딩 에너지를 제한할 수 있는 방법을 제공한다.Provides a way to efficiently limit transcoding energy while maximizing user perceived quality (QoE).
비디오의 세그먼트를 트랜스코딩 하여 트랜스코딩 된 세그먼트를 클라이언트로 스트리밍 하는 방법에 있어서, 상기 세그먼트의 QoE(Quality of Experience)를 나타내는 트랜스코딩 이득(transcoding gain)을 고려하여 트랜스코딩 되는 버전을 결정하는 단계; 및 상기 결정된 버전으로 트랜스코딩 된 세그먼트를 상기 클라이언트로 스트리밍 하는 단계를 포함하는 방법을 제공한다.A method of streaming a transcoded segment to a client by transcoding a segment of video, the method comprising: determining a version to be transcoded taking into account a transcoding gain representing a quality of experience (QoE) of the segment; And streaming the transcoded segment to the determined version to the client.
일 측면에 따르면, 상기 결정하는 단계는, 트랜스코딩 세션 동안 트랜스코딩에 할당된 전체 CPU 시간에 의한 총 트랜스코딩 시간을 제한하고 스트리밍 세션 동안 전체 트랜스코딩 이득을 최대화 하는 버전을 찾을 수 있다.According to an aspect, the determining step may limit the total transcoding time by the total CPU time allocated to the transcoding during the transcoding session and find a version that maximizes the overall transcoding gain during the streaming session.
다른 측면에 따르면, 상기 결정하는 단계는, 전체 세그먼트의 수와 트랜스코딩 된 버전의 수 및 트랜스코딩에 할당된 전체 CPU 시간을 매개 변수로 한 동적 프로그래밍 알고리즘을 통해 트랜스코딩 버전을 결정할 수 있다.According to another aspect, the determining step may determine the transcoded version through a dynamic programming algorithm that takes as parameters the total number of segments, the number of transcoded versions, and the total CPU time allocated to transcoding.
또 다른 측면에 따르면, 상기 결정하는 단계는, 최대 트랜스코딩 이득과 트랜스코딩 된 버전을 초기화 하고 세그먼트 인덱스와 전체 세그먼트의 수 및 트랜스코딩 시간의 인덱스에서 시작하여 최대 트랜스코딩 이득을 유도하는 버전을 역추적하는 방식으로 트랜스코딩 버전을 결정할 수 있다.According to another aspect, the determining step includes initializing a maximum transcoding gain and a transcoded version, and starting a version of the transcoding version starting from the index of the segment index and the total number of segments and the index of the transcoding time, The transcoding version can be determined in a tracking manner.
또 다른 측면에 따르면, 상기 결정하는 단계는, 트랜스코딩 된 버전에 대해 휴리스틱 알고리즘을 통해 트랜스코딩 이득의 감소가 가장 낮은 트랜스코딩 버전을 결정할 수 있다.According to another aspect, the determining step may determine a transcoding version with the lowest reduction in transcoding gain through a heuristic algorithm for the transcoded version.
또 다른 측면에 따르면, 상기 결정하는 단계는, 전체 세그먼트를 트랜스코딩 된 버전에 대해 가능한 조합의 집합으로 설정하여 상기 집합에서 트랜스코딩 이득의 감소가 가장 낮은 트랜스코딩 버전을 결정할 수 있다.According to another aspect, the determining may set the entire segment to a set of possible combinations for the transcoded version so as to determine the lowest transcoding version with the lowest reduction in transcoding gain in the set.
컴퓨터로 구현되는 스트리밍 서버에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 비디오의 세그먼트를 트랜스코딩 하여 트랜스코딩 된 세그먼트를 클라이언트로 스트리밍 하는 것으로, 상기 세그먼트의 QoE(Quality of Experience)를 나타내는 트랜스코딩 이득(transcoding gain)을 고려하여 트랜스코딩 되는 버전을 결정하는 과정; 및 상기 결정된 버전으로 트랜스코딩 된 세그먼트를 상기 클라이언트로 스트리밍 하는 과정을 처리하는 스트리밍 서버를 제공한다.CLAIMS What is claimed is: 1. A computer-implemented streaming server comprising: at least one processor configured to execute computer-readable instructions, wherein the at least one processor is configured to transcode a segment of video and stream the transcoded segment to a client Determining a version to be transcoded in consideration of a transcoding gain indicating a quality of experience (QoE) of the segment; And a streaming server for processing the stream transcoded into the determined version to the client.
본 발명의 실시예들에 따르면, 트랜스코딩 시스템에서 높은 에너지 소비를 제한할 수 있는 방법을 제공한다. QoE 및 버전 인기를 표현하기 위해 트랜스코딩 이득의 개념을 이용하고 에너지 한도에 따라 전체 QoE를 최대화하는 것을 목표로 하는 최적화 문제를 공식화 하고 알고리즘 복잡성과 QoE 최대화 간의 트레이드오프를 해결하기 위해 동적 프로그래밍과 휴리스틱에 기반한 두 가지 알고리즘을 이용하고 이를 통해 적은 비용의 QoE 저하로 에너지 소모량을 크게 줄일 수 있다.According to embodiments of the present invention, there is provided a method of limiting high energy consumption in a transcoding system. Dynamic programming and heuristics are used to formulate optimization problems aimed at maximizing overall QoE over energy limits and to address tradeoffs between algorithm complexity and QoE maximization, using the concept of transcoding gain to express QoE and version popularity. Based algorithms, which can significantly reduce energy consumption with lower cost QoE degradation.
도 1은 본 발명의 일 실시예에 있어서, 스트리밍 환경의 예를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 있어서, 스트리밍 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 있어서, TSA-DP 알고리즘의 초기화 및 점화식 설정 단계의 수도코드를 도시한 것이다.
도 4는 본 발명의 일 실시예에 있어서, TSA-DP 알고리즘의 역추적 단계의 수도코드를 도시한 것이다.
도 5는 본 발명의 일 실시예에 있어서, TSA-H 알고리즘의 수도코드를 도시한 것이다.
도 6은 본 발명의 일 실시예에 있어서, SSIM값과 QoE값과의 맵핑 테이블을 도시한 것이다.
도 7 내지 도 8은 본 발명의 일 실시예에 있어서, 트랜스코딩 에너지에 대한 MOS 테이블을 도시한 것이다.
도 9는 본 발명의 일 실시예에 있어서, 와트-시간 당 평균 MOS를 도시한 것이다.1 is a diagram for explaining an example of a streaming environment in an embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of a streaming server according to an embodiment of the present invention.
FIG. 3 shows a numerical code of the initialization and ignition-setting step of the TSA-DP algorithm in an embodiment of the present invention.
Figure 4 illustrates the numbering code of the backtracking step of the TSA-DP algorithm in one embodiment of the invention.
Figure 5 shows the numerical code of the TSA-H algorithm in one embodiment of the present invention.
FIG. 6 illustrates a mapping table between the SSIM value and the QoE value in an embodiment of the present invention.
Figures 7 to 8 illustrate a MOS table for transcoding energy, in an embodiment of the invention.
Figure 9 shows an average MOS per watt-hour, in one embodiment of the present invention.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명은 HTTP(hypertext transfer protocol)를 통한 동적 적응 스트리밍에서 높은 CPU 사용량에 따른 높은 전력 소비를 해결하기 위해 트랜스코딩에 필요한 총 계산 요구량을 제한하여 QoE를 최대화하는 방법에 관한 것이다.The present invention relates to a method for maximizing QoE by limiting the total computational requirements required for transcoding to solve high power consumption due to high CPU usage in dynamic adaptive streaming over HTTP (hypertext transfer protocol).
본 발명은 트랜스코딩 및 QoE를 고려하여 트랜스코딩의 결과로 달성된 QoE를 표현하기 위해 트랜스코딩 이득(transcoding gain)의 개념을 도입한다. 이를 바탕으로 전체 트랜스코딩 이득을 극대화 하기 위해 총 에너지 소비를 제한하는 최적화 문제를 공식화 하고 전체 QoE를 최대화 하고 트랜스코딩 워크로드와 QoE의 균형을 맞추기 위해 어떤 버전을 트랜스코딩 해야 하는지를 결정하는 두 가지 알고리즘을 제안한다. 제안된 두 알고리즘을 바탕으로 QoE를 최대화 하면서 효율적으로 에너지를 제한할 수 있도록 한다.The present invention introduces the concept of transcoding gain to express QoE achieved as a result of transcoding in view of transcoding and QoE. Based on this, we formulate an optimization problem that limits total energy consumption to maximize the overall transcoding gain, two algorithms that determine which version should be transcoded to maximize the total QoE and balance the transcoding workload with QoE . Based on the two proposed algorithms, we can maximize the QoE and limit the energy efficiently.
도 1은 본 발명의 일 실시예에 있어서, 스트리밍 환경의 예를 설명하기 위한 도면이다. 도 1은 클라이언트(101) 및 스트리밍 서버(100)를 나타내고 있다. 도 1에서 화살표는 구성 요소 간에 유/무선 네트워크(10)를 이용하여 데이터가 송수신될 수 있음을 의미한다.1 is a diagram for explaining an example of a streaming environment in an embodiment of the present invention. FIG. 1 shows a
클라이언트(101)는 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 클라이언트(101)은 스트리밍 서버(100)에 접속 가능한 모든 컴퓨터 시스템을 의미할 수 있다.The
클라이언트(101)의 예로는 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer), PC(personal computer), 노트북 컴퓨터(laptop computer), 랩탑 컴퓨터(laptop computer) 등을 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다.Examples of the
클라이언트(101)는 네트워크(10)(예를 들어, 인터넷 혹은 로컬 영역 네트워크 등)에 직접적으로 혹은 간접적으로 결합될 수 있다. 예를 들어, 개인용 컴퓨터와 노트북 컴퓨터는 유선 네트워크 연결을 통해 네트워크(10)에 직접적으로 결합될 수 있다. 랩탑 컴퓨터는 랩탑 컴퓨터와 무선 액세스 포인트(Wireless Access Point)(즉, WAP) 간에 확립된 무선 통신 채널을 통해 네트워크(10)에 무선으로 결합될 수 있다. 스마트폰은 스마트폰과 셀룰러 네트워크/브리지 간에 확립된 무선 통신 채널을 통해 네트워크(10)에 무선으로 결합될 수 있다. 이때, 네트워크(10)는 하나 이상의 2차 네트워크들(미도시)과 통신할 수 있으며, 2차 네트워크들의 예로는 로컬 영역 네트워크(Local Area Network), 와이드 영역 네트워크(Wide Area Network), 또는 인트라넷(intranet)을 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다.The
클라이언트(101)는 상기에서 설명한 네트워크(10)를 통해 스트리밍 서버(100)와 서로 인터페이스 할 수 있다.The
스트리밍 서버(100)는 트랜스코딩 시스템을 포함하는 서버로서, 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 이때, 스트리밍 서버(100)는 원격의 클라우드 환경에서 비디오 트랜스코딩 클라우드를 제공하는 데이터 센터 역할을 할 수 있다.
스트리밍 서버(100)는 서버 컴퓨터에 해당되는 것으로, 서버 컴퓨터의 예로는 서버 컴퓨팅 디바이스, 개인용 컴퓨터, 서버 컴퓨터, 일련의 서버 컴퓨터들, 미니 컴퓨터, 및/또는 메인프레임 컴퓨터를 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다. 서버 컴퓨터는 분산형 시스템일 수 있고, 그리고 서버 컴퓨터의 동작들은 하나 이상의 프로세서들 상에서 동시에 그리고/또는 순차적으로 실행될 수 있다.The
도 2는 본 발명의 일 실시예에 있어서, 스트리밍 서버의 내부 구성을 설명하기 위한 블록도이다.2 is a block diagram illustrating an internal configuration of a streaming server according to an embodiment of the present invention.
도 2에 도시한 바와 같이, 본 실시예에 따른 스트리밍 서버(100)는 프로세서(210), 버스(220), 네트워크 인터페이스(230), 메모리(240) 및 데이터베이스(250)를 포함할 수 있다. 메모리(240)는 운영체제(241) 및 트랜스코딩 루틴(242)를 포함할 수 있다. 다른 실시예들에서 스트리밍 서버(100)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.2, the
메모리(240)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(240)에는 운영체제(241)와 트랜스코딩 루틴(242)을 위한 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism, 미도시)을 이용하여 메모리(240)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체(미도시)를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 네트워크 인터페이스(230)를 통해 메모리(240)에 로딩될 수도 있다.The
버스(220)는 스트리밍 서버(100)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(220)는 고속 시리얼 버스(high-speed serial bus), 병렬 버스(parallel bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.The
네트워크 인터페이스(230)는 스트리밍 서버(100)를 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(230)는 스트리밍 서버(100)를 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.The
데이터베이스(250)는 트랜스코딩과 관련된 정보, 예컨대 트랜스코딩 버전 등을 저장 및 유지하는 역할을 한다.The
프로세서(210)는 기본적인 산술, 로직 및 스트리밍 서버(100)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(240) 또는 네트워크 인터페이스(230)에 의해, 그리고 버스(220)를 통해 프로세서(210)로 제공될 수 있다. 프로세서(210)는 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하기 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(240)와 같은 기록 장치에 저장될 수 있다.The
이하에서는 본 발명에 따른 사용자 인지 품질(QoE) 최대화 방법의 구체적인 실시예를 설명하기로 한다.Hereinafter, a specific embodiment of a method for maximizing user perceived quality (QoE) according to the present invention will be described.
본 발명에 따른 사용자 인지 품질(QoE) 최대화 방법은 도 1과 도 2를 통해 설명한 스트리밍 서버(100)에 의해 실행된다.The method for maximizing user perceived quality (QoE) according to the present invention is executed by the streaming
본 발명에서는 트랜스코딩 세션과 스트리밍 세션의 두 가지 세션이 있다. 트랜스코딩 세션에서 비디오 세그먼트는 트랜스코딩 되어 스토리지에 저장되고 그 후에 스트리밍 세션이 세그먼트를 클라이언트(101)로 전달하기 시작한다. 가능한 모든 비트율 버전이 트랜스코딩 되는 기존 방식과는 달리, 본 발명은 세그먼트를 선택적으로 트랜스코딩 하여 트랜스코딩 세션 동안 에너지 사용량을 제한할 수 있다. 요청된 버전을 스토리지에서 사용할 수 없는 경우 네트워크 대역폭을 충족시키기 위해 요청한 버전보다 낮은 비트율 버전 중 하나를 전달해야 하므로 필연적으로 QoE가 감소한다. 이러한 문제를 해결하기 위해 스트리밍 세션 중에 클라이언트(101)로 스트리밍 되는 세그먼트의 전체 QoE를 최대화하기 위해 트랜스코딩 되는 버전을 결정한다.In the present invention, there are two sessions, a transcoding session and a streaming session. In the transcoding session, the video segments are transcoded and stored in storage, after which the streaming session begins to deliver the segments to the
는 전체 비디오 세그먼트의 수를 나타낸다. 각 비디오 세그먼트 i, (i=1, ..., )는 원본 최상위 버전의 개의 버전을 가지고 있다. 는 트랜스코딩 된 버전이다. 여기서, 의 값은 비트율의 오름차순으로 정렬된다. 은 과 사이의 트랜스코딩 된 버전의 수를 의미한다. 를 버전 (i=1, ..., , 및 j=1, ..., )의 액세스 확률이라고 하면, =1이다. 그러면, 세그먼트 i, 의 인기는 로 계산될 수 있다. 의 값은 SSIM(Structural Similarity Index Metric) 도구와 같은 QoE 측정 도구로 쉽게 얻을 수 있다. Represents the total number of video segments. Each video segment i, (i = 1, ..., ) Is the original top-level version Version. Is a transcoded version to be. here, Are sorted in ascending order of bit rate. silver and Quot; means the number of transcoded versions between. Version (i = 1, ..., , And j = 1, ..., ), = 1. Then, segment i, The popularity of Lt; / RTI > Can be easily obtained with a QoE measurement tool such as a Structural Similarity Index Metric (SSIM) tool.
가 트랜스코딩 되었는지 여부를 나타내는 =1, (i=1, ..., , j=1, ..., )을 매개 변수라 하자. =1이면, 버전 는 스트리밍 세션에서 클라이언트로 전달될 수 있도록 트랜스코딩 되어 저장된다. 그렇지 않으면, 트랜스코딩 되지 않으므로 낮은 비트율의 대체 버전이 클라이언트에 전달되어야 한다. 원본 버전은 트랜스코딩 없이 자동으로 접근할 수 있기 때문에 이라고 가정한다. 요청된 버전 가 없을 때(즉, =0), =1 이며, k<=j 인 버전 중에서 가장 높은 버전이 버전 대신에 클라이언트에 전달될 필요가 있다. 이를 나타내기 위해 수학식 1과 같이 버전 에 대한 새로운 인덱스 변수 를 다음과 같이 정의한다. Is < / RTI > transcoded = 1, (i = 1, ..., , j = 1, ..., ) Is a parameter. = 1, the version Are transcoded and stored so that they can be delivered to the client in a streaming session. Otherwise, an alternate version with a lower bit rate must be delivered to the client since it is not transcoded. Since the original version can be accessed automatically without transcoding . Requested version (I.e., = 0), = 1, k < = j The highest version of Instead, it needs to be delivered to the client. In order to express this, New index variable for Is defined as follows.
[수학식 1][Equation 1]
= {k|k<=j, =1} = {k | k < = j, = 1}
그러면 버전 에 대한 요청에 대해 달성된 전체 QoE를 표현하기 위해 수학식 2와 같이 트랜스코딩 이득 즉, 가 정의될 수 있다.Then version The transcoding gain, i. E., As shown in equation (2) Can be defined.
[수학식 2]&Quot; (2) "
= =
는 버전 에서 (j>k)로 트랜스코딩 하는 데 필요한 CPU 시간이다. 비디오 트랜스코딩에서 높은 비트율 버전은 낮은 비트율 버전으로 트랜스코딩 될 수 있지만 반대의 변환은 허용되지 않는다. 또한, k<m이면, <이다. 따라서, 계산 오버헤드를 최소화하기 위해서 버전 의 트랜스코딩의 소스(source)로 버전 를 수학식 3과 같이 선택한다. Version in (j > k). In video transcoding, a higher bit-rate version can be transcoded to a lower bit-rate version, but the opposite conversion is not allowed. Also, if k < m, < to be. Therefore, in order to minimize computation overhead, The source of the transcoding of the version Is selected as shown in Equation (3).
[수학식 3]&Quot; (3) "
은 트랜스코딩에 할당된 전체 CPU 시간이다. CPU가 있는 트랜스코딩 서버에서 는 트랜스코딩 세션 L중에 모든 CPU가 트랜스코딩하는 데 소요한 총 시간을 나타내며, 에 의해 계산된다. 에 필요한 에너지는 에 의해 계산된다. 여기서, 은 각 CPU에서 소모되는 트랜스코딩에 필요한 전력이다. 이므로, 이다. Is the total CPU time allocated to transcoding. On a transcoding server with a CPU Represents the total time spent by all the CPUs to transcode during the transcoding session L, Lt; / RTI > The energy required for Lt; / RTI > here, Is the power required for transcoding consumed by each CPU. Because of, to be.
각 변환된 버전 (i=1, ..., , j=1, ..., )에 대해 를 찾는 트랜스코딩 선택 문제(TSP: Transcoding Selection Problem)라는 최적화 문제를 정의한다. 트랜스코딩 세션 동안 에 의한 총 트랜스코딩 시간의 제한을 두고, 스트리밍 세션 동안 전체 트랜스코딩 이득을 최대화하는 목적으로 버전 를 트랜스코딩 하는지 여부를 결정하는 문제를 수학식 4와 같이 제안한다.Each converted version (i = 1, ..., , j = 1, ..., )About And the Transcoding Selection Problem (TSP). During the transcoding session With the goal of maximizing the overall transcoding gain during a streaming session, with a limit on the total transcoding time by the version (4) < / RTI >
[수학식 4]&Quot; (4) "
Maximize Maximize
Subject to Subject to
트랜스코딩 선택 문제는 Knapsack 문제의 특별한 경우를 포함하기 때문에 NP-hard이다. 본 발명은 이 문제의 해결을 위해서 두 가지 알고리즘을 제안한다. 1) 매개 변수 값에 대해 최적의 솔루션을 도출할 수 있는 동적 프로그래밍 알고리즘과, 2) 최적은 아니지만 빠른 시간 내에 결과를 도출할 수 있는 휴리스틱 알고리즘을 제안한다.The transcoding selection problem is NP-hard because it involves special cases of the Knapsack problem. The present invention proposes two algorithms for solving this problem. One) We propose a dynamic programming algorithm that can derive an optimal solution for parameter values and 2) a heuristic algorithm that can yield results in a non - optimal time.
동적 프로그래밍 알고리즘(Dynamic programming algorithm TSATSA -DP)-DP)
l은 트랜스코딩 제한 시간의 값이고, i가 비디오 세그먼트 인덱스, j가 버전 인덱스인 경우 는 최대 트랜스코딩 이득 값이다(i=1, ..., , j=1, ..., , l=1, ..., ). 를 (최대 트랜스코딩 이득)를 달성하기 위해 트랜스코딩 버전 트랜스코딩 하는데 필요한 트랜스코딩의 원래 버전이라 하자. 예를 들어, =이면 의 최대 트랜스코딩 이득을 얻기 위해 버전 는 버전 으로부터 트랜스코딩 되어야 한다. TSA-DP를 사용하는 트랜스코딩 선택 알고리즘은 다음과 같이 두 단계로 구성된다.l is the value of the transcoding timeout, i is the video segment index, j is the version index Is the maximum transcoding gain value (i = 1, ..., , j = 1, ..., , l = 1, ..., ). To (Maximum transcoding gain), the transcoding version Let's say the original version of transcoding needed for transcoding. E.g, = If To obtain the maximum transcoding gain of < RTI ID = 0.0 > Version Lt; / RTI > The transcoding selection algorithm using TSA-DP consists of two steps as follows.
(1) 초기화 및 점화식 설정 단계(도 3에 기술됨): 및 의 값은 모두 0으로 초기화한다. l=1, ..., , i=1, ..., 각 반복에서 는 모두 로 초기화 되고 는 그 때의 버전의 인덱스를 저장한다. 이를 기반으로 j=1, ..., 반복에서 의 값은 로부터 갱신된다. 여기서 prev는 트랜스코딩 시간 제한의 이전 값에 대한 인덱스이다.(1) Initialization and ignition type setting step (described in FIG. 3): And Are all initialized to zero. l = 1, ..., , i = 1, ..., At each iteration All ≪ / RTI & Stores the index of the version at that time. Based on this, j = 1, ..., In repetition The value of . Where prev is an index to the previous value of the transcoding time limit.
(2) 역추적 단계(도 4에 기술됨): 이 단계에서 의 값은 역추적 기술을 사용하여 결정된다. 세그먼트 인덱스, 및 트랜스코딩 시간의 인덱스에서 시작하여 최대 트랜스코딩 이득인 를 유도하는 의 값을 역추적하여 찾는다. 다음으로, 트랜스코딩 될 수 있는 버전 인덱스를 역추적한다.(2) Reverse tracking step (described in FIG. 4): At this stage Is determined using backtracking techniques. Segment index, And an index of the transcoding time, To induce And then backward. Next, it traces back the version index that can be transcoded.
휴리스틱 알고리즘(Heuristic Algorithm TSATSA -H)-H)
TSA-DP의 시간과 공간의 복잡성 때문에 TSA-H라 부르는 휴리스틱 알고리즘을 제안한다. 비디오 세그먼트i (i=1, ..., ) 에 대한 를 트랜스코딩 된 버전에 대해 가능한 모든 조합의 집합으로 설정하면, 에 개의 가능한 집합이 존재하도록 한다. 예를 들어, 의 요소가 트랜스코딩 시간의 오름차순으로 정렬된다고 가정하고, 가 트랜스코딩 된 최고 비트 전송률 버전이 되도록 라고 하면 이다. 여기서, 는 변환된 버전이 없음을 의미한다. 를 에서 버전을 트랜스코딩 하는데 필요한 전체 트랜스코딩 시간이라고 가정한다. 를 집합 에 대한 트랜스코딩의 합이라고 하면 가 된다. 휴리스틱 알고리즘(TSA-H)의 주요 개념은 다음과 같이 설명할 수 있다.Due to the complexity of time and space of TSA-DP, we propose a heuristic algorithm called TSA-H. The video segment i (i = 1, ..., ) For To a set of all possible combinations for the transcoded version, on Let there be possible sets of. E.g, Assume that the elements of < RTI ID = 0.0 > A < / RTI > are aligned in ascending order of transcoding time, To be the transcoded highest bit rate version When you say to be. here, Means that there is no converted version. To Lt; RTI ID = 0.0 > transcoding < / RTI > Set The sum of the transcoding for . The key concepts of the heuristic algorithm (TSA-H) can be explained as follows.
(1) 를 수학식 5와 같이 정의한다.(One) Is defined as Equation (5).
[수학식 5]&Quot; (5) "
A는 's (i=1, ..., , k=1, ..., )의 모든 값의 배열이다.A is 's (i = 1, ..., , k = 1, ..., ). ≪ / RTI >
(2) 본 발명은 각 세그먼트 i에 대해 의 변수를 소개하는데, 이는 세그먼트 i에 대해 의 i번째 요소가 선택되었음을 의미한다. 예를 들어, 위의 예에서 이면 버전 가 트랜스코딩 된다. 는 으로 초기화되어 모든 버전이 트랜스코딩 되며 이는 가장 높은 트랜스코딩 계산 요구 사항 및 가장 높은 트랜스코딩 이득에 해당한다.(2) In the present invention, for each segment i For the segment i, I < / RTI > For example, in the example above Side version Is transcoded. The And all versions are transcoded, which corresponds to the highest transcoding computation requirements and the highest transcoding gain.
(3) 의 값은 트랜스코딩 시간 제한 을 만족시키기 위해 감소될 수 있다. 의 분자는 트랜스코딩 이득의 감소이며, 분모는 트랜스코딩 시간의 감소이다. 이는 변환 부호화 이득의 손실을 최소화하기 위해 의 가장 낮은 값, 즉 집합 A에서 가장 낮은 값을 선택해야 하므로 변환 부호화 연산 제약 조건을 만족할 수 있을 때까지 의 값이 가장 낮아진다(도 5).(3) The value of < RTI ID = 0.0 > Lt; / RTI > Of the molecule is a reduction in transcoding gain, and the denominator is a reduction in transcoding time. This minimizes the loss of transcoding gain Since the lowest value of the set A, that is, the lowest value in the set A, must be selected, so that the transformation encoding operation constraint can be satisfied (Fig. 5).
실험Experiment
본 발명은 전반적인 QoE 최대화 및 에너지 소비와 함께 본 발명의 계획의 효과를 조사하기 위해 시뮬레이션을 수행했다. 본 발명은 일 때 5개의 샘플 비디오에서 (1: Spiderman, 2: The mummy, 3: Transformer, 4: War for the planet of the Apes, 5: Wonder woman) 트랜스코딩 시간을 측정했다. 이에 기반하여, 각 버전의 트랜스코딩 시간은 이 샘플 버전의 트랜스코딩 시간의 최대 값과 최소값 사이에서 무작위로 선택된다.The present invention performs simulations to investigate the effects of the inventive scheme with overall QoE maximization and energy consumption. The present invention Transcoding time was measured in 5 sample videos (1: Spiderman, 2: The mummy, 3: Transformer, 4: War for the planet of the Apes, 5: Wonder woman) Based on this, the transcoding time of each version is randomly selected between the maximum and minimum values of the transcoding time of this sample version.
SSIM 툴을 사용하여 다섯 가지 샘플 비디오의 각 버전에 대해 초당 비디오 품질 인덱스를 프로파일하고, 버전 의 SSIM 값인 를 이 샘플 클립에서 버전 j에서 무작위로 선택한다. 그러나, 사용자 인지 품질인QoE를 () 표현하기 위해서, 값은 도 6에 정리된1(나쁨) 과 5(우수) 사이의 평균 의견 점수(MOS: mean opinion score)로 변환된다. 트랜스코딩 소모 전력 은 93W로 설정된다. 본 발명의 알고리즘과 모든 비트율 버전을 트랜스코딩하는 방식의 알고리즘인 TSA-ALL을 비교했다.Use the SSIM tool to profile the video quality index per second for each version of the five sample videos, SSIM value of Is randomly selected in version j in this sample clip. However, QoE, which is user perceived quality, To express it, The value is converted to a mean opinion score (MOS) between 1 (bad) and 5 (excellent) set forth in FIG. Transcoding Power Consumption Is set to 93W. We compared the algorithm of the present invention with TSA-ALL, an algorithm for transcoding all bit-rate versions.
스트리밍 세션에서 각 비디오 세그먼트의 길이는 8초로 설정되고 각 세그먼트의 액세스 확률은 Zipf분포를 따르며, 여기서 는 실제 VoD 애플리케이션에서 입증된 대로 0.271로 설정된다. 다양한 버전을 표현하기 위해 다음 워크로드가 고려된다.In a streaming session, the length of each video segment is set to 8 seconds and the access probability of each segment follows a Zipf distribution, where Is set to 0.271 as verified in actual VoD applications. The following workloads are considered to represent the various versions.
- HVP: 높은 비트율의 버전이 인기가 많은 경우, - HVP: If a version with a high bit rate is popular,
- MVP: 중간 비트율의 버전이 인기가 많은 경우, - MVP: If the version with medium bit rate is popular,
- LVP: 낮은 비트율의 버전이 인기가 많은 경우, - LVP: If the low bit rate version is popular,
- RVP: 버전 인기도가 임의로 선택된다.- RVP: The version popularity is arbitrarily selected.
A. TSA-DP(동적 프로그래밍 알고리즘)와 TSA-H(휴리스틱 알고리즘)의 비교A. Comparison of TSA-DP (Dynamic Programming Algorithm) and TSA-H (Heuristic Algorithm)
본 발명은 처음에 TSA-DP와 비교한 TSA-H의 효능을 평가했다. 도 7은 상대적으로 두 알고리즘의 MOS 값의 결과를 요약한 것이다. TSA-H가 TSA-DP에 의해 얻어진 최적의 MOS보다 최대 1.4% 적은 MOS를 나타내므로 TSA-H는 거의 최적의 해를 제공한다는 것을 보여준다. TSA-DP는 시간과 공간의 복잡성으로 인해 대규모 트랜스코딩 시스템에서 사용되기 어려우므로 TSA-H 알고리즘이 실제 실행 가능한 솔루션이다.The present invention initially evaluated the efficacy of TSA-H compared to TSA-DP. Figure 7 summarizes the results of the MOS values of the two algorithms relatively. TSA-H shows a MOS of up to 1.4% less than the optimal MOS obtained by TSA-DP, thus showing that TSA-H provides a nearly optimal solution. Because TSA-DP is difficult to use in large-scale transcoding systems due to time and space complexity, the TSA-H algorithm is a viable solution.
B. 에너지 예산 대비 QoE 값B. QoE value relative to energy budget
도 8에 요약된 바와 같이 = 10000 및 λ = 2 /s 일 때 스트리밍 세션에서 고객에게 전달 된 전체 QoE를 프로파일링 하여 다음과 같은 결과를 얻었다.As summarized in Figure 8 = 10000 and λ = 2 / s, the following results were obtained by profiling the entire QoE delivered to the customer in the streaming session.
(1) TSA-ALL은 TSA- H보다 QoE측면에서 항상 더 나은 성능을 나타내지만, QoE의 차이는 0.013과 0.16사이에서 매우 작으며, TSA- H는 TSA-ALL 보다 최대 3.9%의 QoE 저하를 허용한다.(1) TSA-ALL always shows better performance in terms of QoE than TSA-H, but the difference in QoE is very small between 0.013 and 0.16, and TSA-H has a QoE reduction of up to 3.9% Allow.
(2) TSA-H는 에너지 한도 값인 의 값에 따라 TSA-ALL보다 36 ~ 66% 적은 에너지를 사용한다.(2) TSA-H is the energy limit value 36 to 66% less energy than TSA-ALL.
(3) 도 9는 TSA-ALL과 비교한 Wh당 평균 MOS값을 보여준다. TSA-H는 적은 QoE 저하로, 에너지 소비를 효과적으로 제한할 수 있다.(3) Figure 9 shows the average MOS value per Wh compared to TSA-ALL. TSA-H can effectively limit energy consumption with low QoE degradation.
이처럼 본 발명의 실시예들에 따르면, 트랜스코딩 시스템에서 높은 에너지 소비를 제한하는 새로운 방법을 제안한다. 본 발명에서는 QoE 및 버전 인기를 표현하기 위해 트랜스코딩 이득의 개념을 소개하고 에너지 한도에 따라 전체 QoE를 최대화하는 것을 목표로 하는 최적화 문제를 공식화 한다. 알고리즘 복잡성과 QoE 최대화 간의 트레이드오프를 해결하기 위해 동적 프로그래밍과 휴리스틱에 기반한 두 가지 알고리즘을 제안한다. 시뮬레이션 결과에 따르면 제안 기법은 모든 가능한 버전을 트랜스코딩 하는 기법보다 36%에서 66%의 적은 에너지를 사용하나, QoE 저하는 0.3%에서 3.6%으로 미미하다. 이는 적은 비용의 QoE 저하로 에너지 소모량을 크게 줄일 수 있음을 보여준다.Thus, according to embodiments of the present invention, a new method of limiting high energy consumption in a transcoding system is proposed. The present invention introduces the concept of transcoding gain to express QoE and version popularity and formulates an optimization problem that aims to maximize the overall QoE according to the energy limit. To solve the trade-off between algorithm complexity and QoE maximization, we propose two algorithms based on dynamic programming and heuristics. The simulation results show that the proposed scheme uses 36% to 66% less energy than the transcoding of all possible versions, but the QoE degradation is negligible from 0.3% to 3.6%. This shows that energy consumption can be greatly reduced by lower cost QoE degradation.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit, a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be embodied in any type of machine, component, physical device, computer storage media, or device for interpretation by a processing device or to provide instructions or data to the processing device have. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. At this time, the medium may be a program that continuously stores a computer executable program, or temporarily stores the program for execution or downloading. Further, the medium may be a variety of recording means or storage means in the form of a combination of a single hardware or a plurality of hardware, but is not limited to a medium directly connected to any computer system, but may be dispersed on a network. Examples of the medium include a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floptical disk, And program instructions including ROM, RAM, flash memory, and the like. As another example of the medium, a recording medium or a storage medium that is managed by a site or a server that supplies or distributes an application store or various other software is also enumerated.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (10)
상기 세그먼트의 QoE(Quality of Experience)를 나타내는 트랜스코딩 이득(transcoding gain)을 고려하여 트랜스코딩 되는 버전을 결정하는 단계; 및
상기 결정된 버전으로 트랜스코딩 된 세그먼트를 상기 클라이언트로 스트리밍 하는 단계
를 포함하고,
상기 결정하는 단계는,
전체 세그먼트의 수와 트랜스코딩 된 버전의 수 및 트랜스코딩에 할당된 전체 CPU 시간을 매개 변수로 한 동적 프로그래밍 알고리즘을 통해 트랜스코딩 버전을 결정하되,
최대 트랜스코딩 이득과 트랜스코딩 된 버전을 초기화 하고 세그먼트 인덱스와 전체 세그먼트의 수 및 트랜스코딩 시간의 인덱스에서 시작하여 최대 트랜스코딩 이득을 유도하는 버전을 역추적하는 방식으로 트랜스코딩 버전을 결정하는 것
을 특징으로 하는 방법.A method of transcoding a segment of video to stream a transcoded segment to a client,
Determining a version to be transcoded in consideration of a transcoding gain indicating a quality of experience (QoE) of the segment; And
Streaming the transcoded segment to the determined version to the client
Lt; / RTI >
Wherein the determining comprises:
A transcoding version is determined through a dynamic programming algorithm with parameters as the number of total segments, the number of transcoded versions, and the total CPU time allocated to transcoding,
Determining the transcoding version in such a way that it initializes the maximum transcoding gain and transcoded version and traces back the version leading to the maximum transcoding gain starting from the index of the segment and the total number of segments and the index of the transcoding time
≪ / RTI >
상기 결정하는 단계는,
트랜스코딩 세션 동안 트랜스코딩에 할당된 전체 CPU 시간에 의한 총 트랜스코딩 시간을 제한하고 스트리밍 세션 동안 전체 트랜스코딩 이득을 최대화 하는 버전을 찾는 것
을 특징으로 하는 방법.The method according to claim 1,
Wherein the determining comprises:
To find a version that limits the total transcoding time due to the total CPU time allocated to the transcoding during the transcoding session and maximizes the overall transcoding gain during the streaming session
≪ / RTI >
상기 결정하는 단계는,
트랜스코딩 된 버전에 대해 휴리스틱 알고리즘을 통해 트랜스코딩 이득의 감소가 가장 낮은 트랜스코딩 버전을 결정하는 것
을 특징으로 하는 방법.The method according to claim 1,
Wherein the determining comprises:
Determining the lowest transcoding version with a reduction in transcoding gain through a heuristic algorithm for the transcoded version
≪ / RTI >
상기 결정하는 단계는,
전체 세그먼트를 트랜스코딩 된 버전에 대해 가능한 조합의 집합으로 설정하여 상기 집합에서 트랜스코딩 이득의 감소가 가장 낮은 트랜스코딩 버전을 결정하는 것
을 특징으로 하는 방법.6. The method of claim 5,
Wherein the determining comprises:
The entire segment is set to a set of possible combinations for the transcoded version to determine the lowest transcoded version with the lowest reduction in transcoding gain in the set
≪ / RTI >
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
비디오의 세그먼트를 트랜스코딩 하여 트랜스코딩 된 세그먼트를 클라이언트로 스트리밍 하는 것으로,
상기 세그먼트의 QoE(Quality of Experience)를 나타내는 트랜스코딩 이득(transcoding gain)을 고려하여 트랜스코딩 되는 버전을 결정하는 과정; 및
상기 결정된 버전으로 트랜스코딩 된 세그먼트를 상기 클라이언트로 스트리밍 하는 과정
을 처리하고,
상기 결정하는 과정은,
전체 세그먼트의 수와 트랜스코딩 된 버전의 수 및 트랜스코딩에 할당된 전체 CPU 시간을 매개 변수로 한 동적 프로그래밍 알고리즘을 통해 트랜스코딩 버전을 결정하되,
최대 트랜스코딩 이득과 트랜스코딩 된 버전을 초기화 하고 세그먼트 인덱스와 전체 세그먼트의 수 및 트랜스코딩 시간의 인덱스에서 시작하여 최대 트랜스코딩 이득을 유도하는 버전을 역추적하는 방식으로 트랜스코딩 버전을 결정하는 것
을 특징으로 하는 스트리밍 서버.In a computer-implemented streaming server,
At least one processor configured to execute computer readable instructions,
Lt; / RTI >
Wherein the at least one processor comprises:
By transcoding a segment of video and streaming the transcoded segment to a client,
Determining a version to be transcoded in consideration of a transcoding gain indicating a quality of experience (QoE) of the segment; And
Streaming the transcoded segments to the determined version to the client
Lt; / RTI >
Wherein the determining comprises:
A transcoding version is determined through a dynamic programming algorithm with parameters as the number of total segments, the number of transcoded versions, and the total CPU time allocated to transcoding,
Determining the transcoding version in such a way that it initializes the maximum transcoding gain and transcoded version and traces back the version leading to the maximum transcoding gain starting from the index of the segment and the total number of segments and the index of the transcoding time
And a streaming server.
상기 결정하는 과정은,
트랜스코딩 세션 동안 트랜스코딩에 할당된 전체 CPU 시간에 의한 총 트랜스코딩 시간을 제한하고 스트리밍 세션 동안 전체 트랜스코딩 이득을 최대화 하는 버전을 찾는 것
을 특징으로 하는 스트리밍 서버.8. The method of claim 7,
Wherein the determining comprises:
To find a version that limits the total transcoding time due to the total CPU time allocated to the transcoding during the transcoding session and maximizes the overall transcoding gain during the streaming session
And a streaming server.
상기 결정하는 과정은,
전체 세그먼트를 트랜스코딩 된 버전에 대해 가능한 조합의 집합으로 설정하여 상기 집합에서 트랜스코딩 이득의 감소가 가장 낮은 트랜스코딩 버전을 결정하는 것
을 특징으로 하는 스트리밍 서버.8. The method of claim 7,
Wherein the determining comprises:
The entire segment is set to a set of possible combinations for the transcoded version to determine the lowest transcoded version with the lowest reduction in transcoding gain in the set
And a streaming server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170115235A KR101871116B1 (en) | 2017-09-08 | 2017-09-08 | Quality of exprerience maximization scheme to limit transcoding power consumption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170115235A KR101871116B1 (en) | 2017-09-08 | 2017-09-08 | Quality of exprerience maximization scheme to limit transcoding power consumption |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101871116B1 true KR101871116B1 (en) | 2018-06-25 |
Family
ID=62805903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170115235A KR101871116B1 (en) | 2017-09-08 | 2017-09-08 | Quality of exprerience maximization scheme to limit transcoding power consumption |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101871116B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102157379B1 (en) * | 2019-03-26 | 2020-09-17 | 인하대학교 산학협력단 | Online/offline Workload Distribution Method for Transcoding in DASH servers |
KR102438747B1 (en) * | 2021-03-31 | 2022-08-31 | 인하대학교 산학협력단 | Method and apparatus for allocating quality-aware transcoding task under limited power in live-streaming systems |
KR20230076325A (en) * | 2021-11-24 | 2023-05-31 | 인하대학교 산학협력단 | Transcoding task allocation Method and System for Cost-Optimization Considering Live Video Streaming Quality in Edge-Computing Environment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120105970A (en) * | 2011-03-17 | 2012-09-26 | 에스케이플래닛 주식회사 | Video transcoding method and its system for maximizing transcoding capacity by considering network condition, content characteristics, and computational capacity of transcoding server |
KR101411411B1 (en) * | 2013-02-26 | 2014-06-25 | 인하대학교 산학협력단 | Media player and method for supervising energy of media player |
KR101468357B1 (en) * | 2014-02-17 | 2014-12-03 | 인하대학교 산학협력단 | Method for CPU power management in video transcoding servers |
-
2017
- 2017-09-08 KR KR1020170115235A patent/KR101871116B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120105970A (en) * | 2011-03-17 | 2012-09-26 | 에스케이플래닛 주식회사 | Video transcoding method and its system for maximizing transcoding capacity by considering network condition, content characteristics, and computational capacity of transcoding server |
KR101411411B1 (en) * | 2013-02-26 | 2014-06-25 | 인하대학교 산학협력단 | Media player and method for supervising energy of media player |
KR101468357B1 (en) * | 2014-02-17 | 2014-12-03 | 인하대학교 산학협력단 | Method for CPU power management in video transcoding servers |
Non-Patent Citations (2)
Title |
---|
Aparicio-Pardo, Ramon, et al. "Transcoding live adaptive video streams at a massive scale in the cloud." Proceedings of the 6th ACM Multimedia Systems Conference. ACM, 2015.(2015.03.20.) * |
Aparicio-Pardo, Ramon, et al. "Transcoding live adaptive video streams at a massive scale in the cloud." Proceedings of the 6th ACM Multimedia Systems Conference. ACM, 2015.(2015.03.20.) 1부. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102157379B1 (en) * | 2019-03-26 | 2020-09-17 | 인하대학교 산학협력단 | Online/offline Workload Distribution Method for Transcoding in DASH servers |
KR102438747B1 (en) * | 2021-03-31 | 2022-08-31 | 인하대학교 산학협력단 | Method and apparatus for allocating quality-aware transcoding task under limited power in live-streaming systems |
KR20230076325A (en) * | 2021-11-24 | 2023-05-31 | 인하대학교 산학협력단 | Transcoding task allocation Method and System for Cost-Optimization Considering Live Video Streaming Quality in Edge-Computing Environment |
KR102541455B1 (en) | 2021-11-24 | 2023-06-13 | 인하대학교 산학협력단 | Transcoding task allocation Method and System for Cost-Optimization Considering Live Video Streaming Quality in Edge-Computing Environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dasari et al. | Impact of device performance on mobile internet qoe | |
KR101871116B1 (en) | Quality of exprerience maximization scheme to limit transcoding power consumption | |
WO2018090774A1 (en) | Method and system for bit rate control and version selection for dynamic adaptive video streaming media | |
CN110069342B (en) | Method for deploying fusion video live broadcast channel in mobile cloud computing environment | |
Zhang et al. | Federated learning with adaptive communication compression under dynamic bandwidth and unreliable networks | |
Erfanian et al. | LwTE: Light-weight transcoding at the edge | |
Pang et al. | Optimizing personalized interaction experience in crowd-interactive livecast: A cloud-edge approach | |
WO2023185175A1 (en) | Video processing method and apparatus | |
Hou et al. | Eavs: Edge-assisted adaptive video streaming with fine-grained serverless pipelines | |
Xu et al. | Federated fine-tuning of billion-sized language models across mobile devices | |
Gao et al. | Cost optimal video transcoding in media cloud: Insights from user viewing pattern | |
EP2552075A2 (en) | Systems and methods of distributed file storage | |
Madarasingha et al. | OpCASH: Optimized utilization of MEC cache for 360-degree video streaming with dynamic tiling | |
US20140358996A1 (en) | Distributed encoding and decoding system, method, and device | |
Sarkar et al. | L3bou: Low latency, low bandwidth, optimized super-resolution backhaul for 360-degree video streaming | |
Erfanian et al. | Cd-lwte: Cost-and delay-aware light-weight transcoding at the edge | |
US10394809B1 (en) | Incremental variance and/or standard deviation calculation for big data or streamed data using components | |
Yang et al. | Training deep learning recommendation model with quantized collective communications | |
Liu et al. | QoE-oriented adaptive video streaming with edge-client collaborative super-resolution | |
Sucu et al. | Ace: A resource-aware adaptive compression environment | |
Lee et al. | Quality-oriented task allocation and scheduling in transcoding servers with heterogeneous processors | |
Gharsallaoui et al. | A novel adaptive streaming approach for cloud-based mobile video games | |
US10191941B1 (en) | Iterative skewness calculation for streamed data using components | |
US10320685B1 (en) | Iterative autocorrelation calculation for streamed data using components | |
US10235414B1 (en) | Iterative kurtosis calculation for streamed data using components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |