KR102153801B1 - 비디오 스트리밍 방법 및 장치 - Google Patents

비디오 스트리밍 방법 및 장치 Download PDF

Info

Publication number
KR102153801B1
KR102153801B1 KR1020180167420A KR20180167420A KR102153801B1 KR 102153801 B1 KR102153801 B1 KR 102153801B1 KR 1020180167420 A KR1020180167420 A KR 1020180167420A KR 20180167420 A KR20180167420 A KR 20180167420A KR 102153801 B1 KR102153801 B1 KR 102153801B1
Authority
KR
South Korea
Prior art keywords
video
similarity
streaming
frames
frame rate
Prior art date
Application number
KR1020180167420A
Other languages
English (en)
Other versions
KR20200077974A (ko
Inventor
김명철
박경준
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020180167420A priority Critical patent/KR102153801B1/ko
Publication of KR20200077974A publication Critical patent/KR20200077974A/ko
Application granted granted Critical
Publication of KR102153801B1 publication Critical patent/KR102153801B1/ko

Links

Images

Classifications

    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

스트리밍 방법 및 장치가 개시된다. 일 실시예에 따른 스트리밍 방법은, 비디오를 수신하는 단계와, 상기 비디오에 포함된 복수의 프레임들 간의 유사도를 계산하는 단계와, 상기 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성하는 단계와, 각각의 비디오 청크에 대한 프레임 레이트(frame rate)를 결정하는 단계와, 상기 프레임 레이트에 기초하여 변환된 복수의 비디오 청크들을 연결시켜 타겟 비디오를 생성하는 단계를 포함한다.

Description

비디오 스트리밍 방법 및 장치{METHOD AND APPARATUS OF VIDEO STREAMING}
아래 실시예들은 비디오 스트리밍 방법 및 장치에 관한 것이다.
스마트 폰 및 태블릿과 같은 휴대 기기의 동영상 스트리밍은 최근 몇 년간 큰 성장을 보이고 있다. 모바일 비디오 트래픽은 2017년 전체 모바일 트래픽의 60% 이상을 차지했으며, 매년 54% 성장할 것으로 예상되어 2021년까지 전체 트래픽의 78%를 달성할 것으로 예상된다.
현재 많은 비디오 스트리밍 서비스와 스마트 폰은 보다 나은 사용자 경험(user experiences)을 위해 높은 프레임 레이트(frame rate)와 고해상도를 지원한다. 또한, 고화질 비디오를 필요로 하는 VR (Virtual Reality)과 AR (Augmented Reality)은 모두 모바일 기술의 차세대 응용 프로그램으로 간주된다.
그러나 고화질 비디오는 디스플레이 관련 구성 요소를 중심으로 많은 양의 리소스를 필요로 하므로 전력 소모량이 훨씬 높다.
일반적으로 높은 프레임 레이트와 빠른 배터리 소모를 야기하는 해상도를 갖는 모바일 게임의 전력 소비를 줄이기 위한 몇 가지 연구가 진행되었다. 게임 튜너(game tuner)라 불리는 접근법은 사용자가 프레임 레이트 또는 해상도와 관련된 파라미터를 구성할 수 있게 한다. 그러나 이 방법의 단점은 정적 구성(static configuration)으로 인해 사용자 경험이 심각하게 저하되고 사용자 개입이 필요하다는 것이다.
이러한 문제를 해결하기 위해 프레임 컨텐츠(contents)를 기반으로 프레임 속도를 동적으로 스케일링하려는 시도가 있다. 이는 프레임 간의 구조적 유사성(similarity)을 측정한 다음 중복되거나 매우 유사한 프레임을 제외한다. 그러나, 이러한 접근 방식은 클라이언트 측 프레임만 제외시키기 때문에, 클라이언트에 전송된 프레임 수에는 영향을 미치지 못한다.
따라서, 무선 전송에 필요한 에너지 소비는 동일하게 유지된다. 또한, 불필요한 프레임이 전송되므로 클라이언트 측의 네트워크 대역폭은 효율적으로 활용되지 못한다는 단점이 있다.
실시예들은 디지털 컨텐츠를 생성하는 기술을 제공할 수 있다.
일 실시예에 따른 스트리밍 방법은, 비디오를 수신하는 단계와, 상기 비디오에 포함된 복수의 프레임들 간의 유사도를 계산하는 단계와, 상기 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성하는 단계와, 상기 복수의 비디오 청크 각각에 대한 프레임 레이트(frame rate)를 변환하는 단계와, 프레임 레이트가 변환된 복수의 비디오 청크를 연결시켜 타겟 비디오를 생성하는 단계를 포함한다.
상기 유사도를 계산하는 단계는, 상기 복수의 프레임의 휘도(luminance) 값 간의 SAD(Sum of Absolute Differences) 값을 계산하는 단계와, 상기 SAD 값을 미리 결정된 임계값(threshold)과 비교하여 블록 차이 값을 결정하는 단계와, 상기 복수의 프레임들에 포함된 매크로 블록 각각에 대한 상기 블록 차이 값들을 모두 더하여 상기 유사도를 계산하는 단계를 포함할 수 있다.
상기 블록 차이 값을 계산하는 단계는, 상기 SAD 값이 상기 임계값 보다 클 경우 상기 블록 차이 값을 1로 결정하는 단계와, 상기 SAD 값이 상기 임계값 보다 작거나 같을 경우 상기 블록 차이 값을 0으로 결정하는 단계를 포함할 수 있다.
상기 복수의 비디오 청크를 생성하는 단계는, 상기 유사도의 평균을 계산하는 단계와, 상기 평균에 기초하여 상기 유사도의 표준 편차를 계산하는 단계와, 상기 표준 편차와 상기 유사도에 기초하여 상기 복수의 프레임들 중에서 분할의 기준이 되는 프레임을 선택하여 상기 비디오를 분할함으로써 상기 복수의 비디오 청크를 생성하는 단계를 포함할 수 있다.
상기 변환하는 단계는, 상기 유사도에 기초하여 상기 복수의 비디오 청크 각각에 포함된 프레임들에 대한 스케일링 팩터를 결정하는 단계와, 상기 스케일링 팩터 및 상기 복수의 비디오 청크에 포함된 프레임들 간의 유사도에 기초하여 상기 프레임 레이트를 변환하는 단계를 포함할 수 있다.
상기 스케일링 팩터를 결정하는 단계는, 상기 복수의 비디오 청크에 포함된 프레임들 간의 SSIM(Structural SIMilarity) 및 상기 유사도의 상관 관계를 추출하는 단계와, 상기 상관 관계에 따라 결정된 임계값에 기초하여 상기 스케일링 팩터를 결정하는 단계를 포함할 수 있다.
상기 변환하는 단계는, 상기 스케일링 팩터의 평균 및 상기 유사도의 표준 편차에 기초하여 상기 프레임 레이트를 변환하는 단계를 포함할 수 있다.
상기 스트리밍 방법은, 사용자의 배터리 정보에 기초하여 상기 사용자에게 상기 타겟 비디오의 스트리밍을 제공하는 단계를 더 포함할 수 있다.
상기 제공하는 단계는, 상기 사용자로부터 네트워크 상태에 기초한 상기 비디오에 관한 정보를 수신하는 단계와, 상기 비디오에 관한 정보에 기초하여 상기 타겟 비디오의 스트리밍을 제공하는 단계를 포함할 수 있다.
상기 비디오에 관한 정보는, 해상도, 비트 레이트(bit rate) 및 상기 배터리 정보를 포함할 수 있다.
일 실시예에 따른 스트리밍 장치는, 비디오를 수신하는 수신기와, 상기 비디오에 포함된 복수의 프레임들 간의 유사도를 계산하고, 상기 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성하고, 상기 복수의 비디오 청크 각각에 대한 프레임 레이트(frame rate)를 변환하고, 프레임 레이트가 변환된 복수의 비디오 청크를 연결시켜 타겟 비디오를 생성하는 프로세서를 포함한다.
상기 프로세서는, 상기 복수의 프레임의 휘도(luminance) 값 간의 SAD(Sum of Absolute Differences) 값을 계산하고, 상기 SAD 값을 미리 결정된 임계값(threshold)과 비교하여 블록 차이 값을 결정하고, 상기 복수의 프레임들에 포함된 매크로 블록 각각에 대한 상기 블록 차이 값들을 모두 더하여 상기 유사도를 계산할 수 있다.
상기 프로세서는, 상기 SAD 값이 상기 임계값 보다 클 경우 상기 블록 차이 값을 1로 결정하고, 상기 SAD 값이 상기 임계값 보다 작거나 같을 경우 상기 블록 차이 값을 0으로 결정할 수 있다.
상기 프로세서는, 상기 유사도의 평균을 계산하고, 상기 평균에 기초하여 상기 유사도의 표준 편차를 계산하고, 상기 표준 편차와 상기 유사도에 기초하여 상기 복수의 프레임들 중에서 분할의 기준이 되는 프레임을 선택하여 상기 비디오를 분할함으로써 상기 복수의 비디오 청크를 생성할 수 있다.
상기 프로세서는, 상기 유사도에 기초하여 상기 복수의 비디오 청크 각각에 포함된 프레임들에 대한 스케일링 팩터를 결정하고, 상기 스케일링 팩터 및 상기 복수의 비디오 청크에 포함된 프레임들 간의 유사도에 기초하여 상기 프레임 레이트를 변환할 수 있다.
상기 프로세서는, 상기 복수의 비디오 청크에 포함된 프레임들 간의 SSIM(Structural SIMilarity) 및 상기 유사도의 상관 관계를 추출하고, 상기 상관 관계에 따라 결정된 임계값에 기초하여 상기 스케일링 팩터를 결정할 수 있다.
상기 프로세서는, 상기 스케일링 팩터의 평균 및 상기 유사도의 표준 편차에 기초하여 상기 프레임 레이트를 변환할 수 있다.
상기 프로세서는, 사용자의 배터리 정보에 기초하여 상기 사용자에게 상기 타겟 비디오의 스트리밍을 제공할 수 있다.
상기 프로세서는, 상기 사용자로부터 네트워크 상태에 기초한 상기 비디오에 관한 정보를 수신하고, 상기 비디오에 관한 정보에 기초하여 상기 타겟 비디오의 스트리밍을 제공할 수 있다.
상기 비디오에 관한 정보는, 해상도, 비트 레이트(bit rate) 및 상기 배터리 정보를 포함할 수 있다.
도 1은 일 실시예에 따른 스트리밍 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 스트리밍 장치의 동작을 나타낸다.
도 3은 도 1에 도시된 스트리밍 장치가 프레임을 분할하여 프레임 레이트를 결정한 결과의 예를 나타낸다.
도 4a는 Y-Diff와 SSIM의 상관 관계의 예를 나타낸다.
도 4b는 도 1에 도시된 스트리밍 장치가 추출한 유사도와 SSIM의 상관 관계의 예를 나타낸다.
도 5는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는 동작을 나타낸다.
도 6a는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는데 사용하는 하나의 팩터(factor)에 따른 처리 시간을 나타낸다.
도 6b는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는데 사용하는 다른 팩터에 따른 처리 시간을 나타낸다.
도 7은 도 1에 도시된 스트리밍 장치가 프레임 레이트를 결정하는 동작을 나타낸다.
도 8은 도 1에 도시된 스트리밍 장치가 타겟 비디오를 생성하는 동작을 나타낸다.
도 9는 도 1에 도시된 스트리밍 장치가 생성하는 EMPD(Extended Media Presentation Description)의 예를 나타낸다.
도 10은 도 1에 도시된 스트리밍 장치의 배터리 절약 성능의 일 예를 나타낸다.
도 11a는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 일 예를 나타낸다.
도 11b는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 다른 예를 나타낸다.
도 11c는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 또 다른 예를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 일 실시예에 따른 스트리밍 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 스트리밍 장치(10)는 비디오(400)를 처리하여 사용자에게 제공할 수 있다. 스트리밍 장치(10)는 비디오(400)의 프레임 레이트를 조절하여 사용자에게 제공할 수 있다. 스트리밍 장치(10)는 비디오(400)의 프레임 레이트를 비디오 청크 단위로 조절하여 사용자(400)에게 제공할 수 있다. 스트리밍 장치(10)는 사용자의 배터리 수준에 기초하여 프레임 레이트가 조절된 비디오(400)를 스트리밍할 수 있다.
비디오(400)는, 복사, 방송 및 움직이는 시각 매체의 디스플레이를 위한 전자적 매체를 의미할 수 있다. 비디오(400) 복수의 프레임들로 구현될 수 있다. 프레임 레이트는 디스플레이 장치가 화면 하나의 데이터를 표시하는 속도를 의미할 수 있다. 프레임 레이트는 프레임 속도 또는 프레임률을 의미할 수 있다. 프레임 레이트는 초당 프레임 수(frames per second, fps)를 단위로 가질 수 있다.
사용자(500)는 비디오(400) 재생이 가능한 디스플레이 장치를 포함하는 사용자 단말 또는 디스플레이 장치를 포함할 수 있다. 사용자 단말은 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.
스트리밍 장치(10)는 수신기(100) 및 프로세서(200)를 포함한다. 스트리밍 장치(10)는 메모리(300)를 더 포함할 수 있다. 수신기(100)는 비디오(400)를 수신할 수 있다. 수신기(100)는 스트리밍 장치(10) 외부 또는 메모리(300)로부터 비디오(400)를 수신할 수 있다.
프로세서(200)는 비디오(400)에 포함된 복수의 프레임들 간의 유사도를 계산할 수 있다. 프로세서(200)는 비디오(400)에 포함된 복수의 프레임의 휘도(luminance) 값 간의 SAD(Sum of Absolute Differences) 값을 계산하고, 계산된 SAD 값과 미리 결정된 임계값(threshold)과 비교하여 블록 차이 값을 결정할 수 있다.
프로세서(200)는 SAD 값이 임계값 보다 클 경우 블록 차이 값을 1로 결정하고, SAD 값이 임계값 보다 작거나 같을 경우 상기 블록 차이 값을 0으로 결정할 수 있다.
SAD 값은 비디오(400)에 포함된 두 개의 프레임 이미지의 휘도(luminance)의 절대 차이의 합을 의미할 수 있다. 프로세서(200)가 SAD 값을 계산하여 블록 차이 값을 결정하는 동작은 도 2를 참조하여 상세하게 설명할 것이다.
그 후, 프로세서(200)는 복수의 프레임들에 포함된 매크로 블록 각각에 대한 상기 블록 차이 값들을 모두 더하여 복수의 프레임들 간의 유사도를 계산할 수 있다.
프로세서(200)는 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성할 수 있다. 비디오 청크는 복수의 프레임으로 구성된 비디오(400)의 일부를 의미할 수 있다.
프로세서(200)는 유사도의 평균을 계산하고, 유사도 평균에 기초하여 유사도의 표준 편차를 계산할 수 있다. 유사도의 평균 및 표준 편차를 계산하는 과정은 도 2를 참조하여 자세하게 설명할 것이다.
프로세서(200)는 표준 편차와 복수의 프레임들 간의 유사도에 기초하여 복수의 프레임들 중에서 분할의 기준이 되는 프레임을 선택하여 비디오(400)를 분할함으로써 상기 복수의 비디오 청크를 생성할 수 있다.
프로세서(200)는 복수의 비디오 청크 각각에 대한 프레임 레이트(frame rate)를 변환할 수 있다. 프로세서(200)는 복수의 프레임들 간의 유사도에 기초하여 생성된 복수의 비디오 청크 각각에 포함된 프레임들에 대한 스케일링 팩터를 결정할 수 있다.
프로세서(200)는 복수의 비디오 청크에 포함된 프레임들 간의 SSIM(Structural SIMilarity) 및 유사도의 상관 관계를 추출할 수 있다. 프로세서(200)는 추출한 상관 관계에 따라 결정된 임계값에 기초하여 스케일링 팩터를 결정할 수 있다.
프로세서(200)는 결정된 스케일링 팩터 및 복수의 비디오 청크에 포함된 프레임들 간의 유사도에 기초하여 프레임 레이트를 변환할 수 있다. 구체적으로, 프로세서(200)는 스케일링 팩터의 평균 및 복수의 프레임들 간의 유사도의 표준 편차에 기초하여 프레임 레이트를 변환할 수 있다.
프로세서(200)는 프레임 레이트에 기초하여 변환된 복수의 비디오 청크들을 연결시켜 타겟 비디오를 생성할 수 있다. 프로세서(200)는 사용자(500)의 배터리 정보에 기초하여 사용자(500)에게 생성한 타겟 비디오의 스트리밍을 제공할 수 있다.
타겟 비디오는 사용자(500)에게 서비스를 제공하기 위해 스트리밍 장치(10)에 의해 처리된 비디오를 의미할 수 있다. 예를 들어, 타겟 비디오는 프레임 레이트가 변환된 비디오 청크들을 연결하여 사용자(500)의 배터리 수준에 맞게 프레임 레이트가 조절된 비디오를 의미할 수 있다.
프로세서(200)는 사용자(500)로부터 네트워크 상태에 기초한 비디오(400)에 관한 정보를 수신하고, 비디오(400)에 관한 정보에 기초하여 타겟 비디오의 스트리밍을 제공할 수 있다. 비디오(400)에 관한 정보는 해상도(resolution), 비트 레이트(bit rate) 및 배터리 정보를 포함할 수 있다.
배터리 정보는 사용자 단말의 배터리의 사용 가능 시간, 전하량, 배터리에 흐르는 전류, 배터리의 온도, 배터리의 전압 등을 포함할 수 있다.
메모리(300)는 수신한 비디오(400), 타겟 비디오 및 비디오(400)를 처리하기 위해 필요한 정보를 저장할 수 있다.
도 2는 도 1에 도시된 스트리밍 장치의 동작을 나타낸다.
도 2를 참조하면, 스트리밍 장치(10)는 스트리밍 장치(10)는 트랜스코딩 모듈(210) 및 스트리밍 최적화 모듈(230)을 포함할 수 있다.
스트리밍 최적화 모듈(230)은 세 개의 주요 구성들을 포함할 수 있다. 세 개의 주요 구성은 프레임 레이트 스케줄러(frame rate scheduler, 231), 비디오 프로세서(235) 및 확장(Extended) MPD(extended MPD(Media Presentation Description), 237)일 수 있다.
비디오(400)가 스트리밍 서버에 업로드 되면 프레임 레이트 스케줄러(231)는 거의 계산 오버헤드(overhead) 없이 인접한 프레임 사이의 유사도(예를 들어, 지각 유사도 점수(perceptual similarity score))를 계산할 수 있다.
그 후, 프레임 레이트 스케줄러(231)는 유사한 동작 세기 수준(motion intensity level)를 갖는 다수의 비디오 청크(chunk)들로 비디오(400)를 분할하는 방법을 결정하고, 복수의 배터리 수준(예를 들어, 3 개의 배터리 수준)에 따라 비디오 청크에 대한 적절한 프레임 레이트를 스케줄링할 수 있다.
이 때, 3 개의 배터리 수준은 높음(high), 중간(medium) 및 낮음(low)일 수 있다. 도 2의 예시에서, 세 가지 배터리 수준을 사용했지만, 세 개 미만 또는 세 개를 초과하는 개수의 배터리(400) 수준도 적용될 수 있다.
프레임 레이트 스케줄러(231)에서 생성된 스케줄링 결과(233)는 각 비디오 청크에 대한 적절한 프레임 레이트를 명시(specify)할 수 있다. 그 후, 비디오 프로세서(235)는 스케줄링 결과(233)에 지정된 내용에 따라 원본 비디오(400)을 처리하여 세 가지 배터리 수준에 적합한 비디오를 생성할 수 있다.
사용자는 EMPD(237)를 통해 네트워크 상태뿐만 아니라 배터리 상태를 고려하여 적절한 비디오 청크를 요청할 수 있다.
스트리밍 장치(10)는 H.264/AVC 비디오 코덱에 적용될 수 있지만, 다른 코덱도 매크로 블록의 휘도(Y) 값을 사용하여 비디오 압축을 수행하는 경우에 스트리밍 장치(10)가 적용될 수 있다.
인간의 시각 시스템은 색상 변화(Cb 및 Cr) 보다 밝기(Y) 변화에 더 민감할 수 있다. 종래의 많은 연구들은 Y-Diff(Y-difference)가 시각적 인식의 변화를 상당히 잘 보여준다.
Y-Diff는 일반적으로 사용되는 SSIM(Structural SIMilarity)와 높은 상관 관계를 가질 수 있다. 하지만, 인간의 시각은 밝기뿐만 아니라 물체의 움직임에도 민감할 수 있다.
두 이미지 간의 Y-Diff 값은 블록 단위가 아닌 프레임 단위 밝기로 밝기 값의 절대 차이의 합(Sub of Absolute Differences, SAD)로 계산될 수 있다. 따라서, 각 블록의 자세한 특징들이 혼합되어 무시될 수 있다. 즉, Y-Diff는 밝기를 효과적으로 반영하지만 물체의 움직임 인식에 대해서는 정확하지 않을 수 있다.
Y-Diff는 물체의 움직임에 대한 인식을 부분적으로 반영할 수 있지만, 인간의 인식과 더 잘 부합시키기 위해서는 움직임 정보에 더 많은 주의를 기울일 필요가 있다.
비디오 스트리밍 환경에서 밝기 및 물체의 움직임을 모두 고려하여 유사도(예를 들어, 지각 유사도)를 효과적으로 계산하기 위해서, 스트리밍 장치(10)는 프레임 fa와 fb사이의 M-Diff(Macroblock-Difference)인 D MB (f a ,f b )를 수학식 1과 같이 정의할 수 있다. 이하에서, 유사도는 수학식 1과 같이 정의된 M-Diff 값을 의미할 수 있다.
Figure 112018129150214-pat00001
여기서, DY는 수학식 2와 같이 정의될 수 있다.
Figure 112018129150214-pat00002
여기서, f k (i,j)는 N×M 크기의 k 번째 프레임을 의미하고, i 및 j는 매크로 블록 좌표를 나타낼 수 있다. SAD Y (f a (i,j),f b (I,j))는 f a (i,j)와 f b (I,j)의 휘도 값 간의 SAD를 의미할 수 있다. D Y (f a (i,j),f b (I,j))는 f a (i,j) 및 f b (I,j)가 임계값 θ를 초과하면 1일 수 있다.
예를 들어, θ 값은 OpenH264가 장면 전환(scene change)를 검출할 때 휘도 SAD 값이 320을 초과하면 높은 움직임 블록(high motion block)들을 판단하기 때문에 320으로 설정될 수 있다.
도 4a는 Y-Diff와 SSIM의 상관 관계의 예를 나타내고, 도 4b는 도 1에 도시된 스트리밍 장치가 추출한 유사도와 SSIM의 상관 관계의 예를 나타낸다.
도 4a 및 4b를 참조하면, 스트리밍 장치(10)는 밝기 및 물체의 움직임에 관한 정보를 포괄하기 위해 상술한 M-diff 값을 유사도로 사용할 수 있다. 스트리밍 장치(10)는 M-diff값을 프레임 간의 유사도로 이용함으로써, 매크로 블록의 휘도 값을 사용하여 밝기 인식을 수행하고, 블록 기반 접근 방식을 통해 물체의 이동을 다룰 수 있다.
블록 기반 접근 방식은 프레임 단위가 아닌 매크로 블록 단위에 기초하여 지각 유사도를 계산할 수 있다. 도 4a는 7 개의 비디오(400)로 구성된 인접 프레임 분석에서 Y-Diff가 SSIM과 유사하다는 점을 나타낼 수 있다. 도 4b는 M-diff가 동일한 비디오(400)에서 SSIM과 얼마나 유사한지를 나타낼 수 있다.
도 4a 및 4b로부터 M-Diff 값이 Y-Diff 보다 약 5% 높은 SSIM과의 상관 관계를 가짐을 확인할 수 있다. 즉, M-Diff 값은 지각 유사도 계산에 있어서, Y-Diff 보다 정확한 유사도를 나타낼 수 있다.
비디오(400)의 수가 많아질수록 연속하는 프레임들에 대한 SSIM을 계산하는 것은 시간 및 전력면에서 불리할 수 있다. 예를 들어, 3.5 GHz 프로세서와 12 GB 메모리가 장착된 데스크탑 PC(Personal Computer)에서 SSIM을 이용하여 1920 × 1080 해상도의 두 프레임 사이의 지각 유사도를 계산하는데 약 401 ms이 소요될 수 있다.
반면, 스트리밍 장치(10)는 비디오(400)가 업로드될 때, H2. 264/AVC 인코더에 의해 생성된 매크로 블록 간의 휘도 차이를 사용하기 때문에 M-Diff를 계산하는데 발생하는 오버헤드가 거의 없을 수 있다.
이하에서, 도 5 내지 도 6b를 참조하여 스트리밍 장치(10)가 프레임을 분할하는 동작을 자세하게 설명할 것이다.
도 5는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는 동작을 나타낸다.
도 5를 참조하면, 단일 비디오(400)에 다수의 프레임 레이트를 적용하기 위해서, 스트리밍 장치(10)는 비디오(400)를 다수의 비디오 청크로 적절하게 분할할 수 있다. 만약 비디오(400)가 너무 미세하게 분할되면, 각각의 비디오 청크의 특성에 맞게 적절한 프레임 레이트가 설정될 수 있지만, 비디오(400)를 처리하는데 매우 오랜 시간이 걸릴 수 있다.
반면, 비디오(400)가 지나치게 굵직하게(coarsely) 분할되면 각각의 비디오 청크의 특성이 모호해지기 때문에 적절한 프레임 레이트를 계산하는 것이 어려워져서 사용자 경험에 부정적인 영향을 미칠 수 있다.
첫 번째 접근 방법은 지각 유사도에서의 M-Diff 값을 분리의 기준으로 사용하는 것일 수 있다. 예를 들어, 2 개의 프레임에서 대응하는 매크로 블록의 80% 이상이 임계값 θ를 초과하면 두 개의 프레임들 간에는 충분히 큰 차이가 존재하고 이들은 분리될 수 있다.
다른 접근 법은 동적 임계 모델(dynamic threshold model)을 정의하기 위해 프레임 시퀀스의 국부 통계 속성(local statistical property)을 이용하는 것일 수 있다. 국부 통계 속성은 프레임 시퀀스의 변환 정도를 결정하기 위한 평균 및 표준 편차를 포함할 수 있다.
상술한 접근 방법들은 주로 장면 변화를 검출하기 위해 사용될 수 있다. 스트리밍 장치(10)는 각 비디오 청크가 비슷한 정도의 가변성(similar degree of variability)를 가지도록 분리 기준(separation criteria)를 설계할 수 있다.
스트리밍 장치(10)는 유사한 가변성 수준을 가진 복수의 청크로 비디오(400)를 분리하기 위해 EST(Estimated Split Threshold)를 수학식 3 내지 5와 같이 정의할 수 있다.
Figure 112018129150214-pat00003
Figure 112018129150214-pat00004
Figure 112018129150214-pat00005
여기서, mn은 이전의 K 개의 프레임들의 M-Diff 값의 평균을 의미하고, σn은 이전의 K 개의 프레임들의 M-Diff 산란의 정도를 나타내는 윈도우 크기 K를 갖는 표준 편차를 의미할 수 있다. EST(fn)은 비디오 청크의 분할 여부를 결정하는 임계값을 의미할 수 있다.
EST(fn)의 값이 1일 때, 스트리밍 장치(10)는 프레임 fn에서 분리를 결정할 수 있다. EST(fn)에서 D MB (f n - 1 ,f n )는 명확한 장면 전환을 검출하기 위해 사용될 수 있다.
N은 현지 비디오 청크에서의 프레임의 수를 의미할 수 있고, γ는 현재 비디오 청크의 프레임 레이트를 의미할 수 있다. σn D MB (f n - 1 ,f n )는 비디오(400)에서의 높은 움직임 부분에서 큰 값을 가질 수 있고, 이는 비디오(400)가 미세하게 분리되도록 할 수 있다.
따라서, N> γ에서의 등호가 빠져 있는 것은 각 비디오 청크가 적어도 1초가 되도록 하는 최소한의 조건을 나타낼 수 있다.
도 6a는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는데 사용하는 하나의 팩터(factor)에 따른 처리 시간을 나타내고, 도 6b는 도 1에 도시된 스트리밍 장치가 프레임을 분할하는데 사용하는 다른 팩터에 따른 처리 시간을 나타낸다.
도 6a 및 도 6b를 참조하면, 수학식 3에서 사용되는 임계값인 α 및 β는 실험에 의해서 결정될 수 있다. 상수 팩터인 α 및 β가 작으면 비슷한 수준(level)의 가변성(variability)을 갖는 더 많은 프레임들이 각 비디오 청크에 할당될 수 있다.
극단적으로, α 및 β를 0으로 설정하는 것은 사용자 경험에 매우 효과적일 수 있다. 그러나, α 및 β가 너무 낮으면 분리된 비디오 청크의 수가 급격하게 증가하여 처리 시간도 매우 길어질 수 있다.
따라서, α 및 β는 계산 복잡도 및 프레임 레이트 추정 과정 사이의 트레이드 오프(trade off)를 고려하여 결정될 수 있다. 도 6a의 예시에서 2.20 GHz × 40 프로세서 및 135 GB 메모리가 장착된 서버에서 9 개의 실험용 비디오(400)를 사용하면서, α 값이 1000, 2000, 3000 및 4000으로 설정될 수 있다.
α가 증가함에 따라, 분리될 총 비디오 청크의 수가 감소하여 전체 처리시간이 단축될 수 있다. 이에 따라, 대부분의 비디오(400)에서 처리 시간이 크게 감소될 수 있다. α가 3000으로 설정된 이후에는 처리 시간이 거의 동일하게 유지될 수 있다.
도 6b는 β가 증가할수록 처리 시간이 감소함을 나타낼 수 있다. 또한, 대부분의 비디오(400)에서 β가 15000에 도달할 때까지 처리 시간이 급격하게 감소한 다음 그 이후에서 동일하게 유지됨을 확인할 수 있다.
스트리밍 장치(10)는 사용자 경험에 큰 영향을 미치지 않으면서 효율적인 비디오 처리를 수행하기 위해서 적절한 α 및 β 값을 결정할 수 있다. 예를 들어, α 및 β는 3000 및 15000으로 설정될 수 있다.
상술한 수학식 4, 5에서 사용되는 윈도우 크기 K를 크게 설정할 경우, 빠른 움직임 변화가 분리 기준으로 검출되지 못할 수 있다. 다양한 K 값들에 대하여 테스트함으로써 움직임 변화를 감지하는데 적합한 K 값이 도출될 수 있다.
예를 들어, 1, 5, 10 및 30의 K 값에 대하여 테스트가 수행되어 최종적으로, K값이 10으로 설정될 수 있다. K 값은 비디오(400)의 특성에 따라 상이하게 적용될 수 있다.
도 7은 도 1에 도시된 스트리밍 장치가 프레임 레이트를 결정하는 동작을 나타낸다.
도 7을 참조하면, 스트리밍 장치(10)는 분할된 각 비디오 청크에 대하여 적절한 프레임 레이트를 결정할 수 있다. 스트리밍 장치(10)는 유사도에 기초하여 스케일링 팩터를 결정하고, 결정된 스케일링 팩터로 프레임 레이트를 스케일링함으로써 복수의 비디오 청크에 대한 프레임 레이트를 조절할 수 있다.
스트리밍 장치(10)는 유사도에 기초한 EPF(Estimated Proper Frame rate)를 이용하여 프레임 레이트를 결정할 수 있다. EPF의 계산은 수학식 6과 같이 나타낼 수 있다.
Figure 112018129150214-pat00006
여기서, s1, s2, s3, s4 및 s5는 프레임 fn과 fn +1 사이의 변화의 정도를 매칭하는 프레임 레이트 γ의 스케일링 팩터를 의미할 수 있다. τ1, τ2, τ3 및 τ4는 유사 변동(similar variation)에 기초한 유사도를 구별하는 스케일링 임계값을 의미할 수 있다.
스트리밍 장치(10)는 유사도(예를 들어, M-Diff)와 일반적으로 사용되는 SSIM과의 관계를 분석하여 s 및 τ를 결정할 수 있다. 예를 들어 스트리밍 장치(10)는 도 4a의 그래프에 기초한 선형 회귀 분석을 이용하여 s 및 τ를 결정할 수 있다.
도 4a의 예시에 기초하여 추출된 유사도와 SSIM의 관계는 수학식 7과 같이 나타낼 수 있다.
Figure 112018129150214-pat00007
여기서, 스트리밍 장치(10)는 통계 값 R2(R-squared) 및 피어슨 상관 계수(Pearson correlation coefficient, PCC)를 이용하여 적합도(goodness of fit)를 계산할 수 있다. 예를 들어, 스트리밍 장치(10)는 상술한 회귀 모델의 R2 및 PCC 값으로 각각 0.613 및 -0.7834를 사용할 수 있는데, 이 값은 SSIM과 유사도가 충분히 높은 상관 관계를 가지고 있음을 의미할 수 있다.
두 프레임 사이의 SSIM 지수(index)가 0.9 보다 높으면, 피크 신호 대 잡음비(peak signal-to-noise ratio)는 50dB 이상일 수 있고, 1 내지 5의 범위에서 경험의 품질을 나타내는 평균 의견 점수(mean opinion score)는 4(양호(good)) 또는 5(훌륭함(excellent), 동일함(identical))에 대응될 수 있다.
이에 기초하여, 스트리밍 장치(10)는 SSIM 지수를 0.99, 0.98, 0.95 및 0.91로 세분할 수 있다. 수학식 7의 회귀 모델에 따라 상술한 SSIM 지수에 대응하는 유사도 값은 각각 500, 1500, 3000 및 6000일 수 있다. 예를 들어, 스트리밍 장치(10)는 상술한 수학식 6의 τ1, τ2, τ3 및 τ4값을 각각 500, 1500, 3000 및 6000으로 결정할 수 있다.
EPF(f n ,f n+1 )는 인접한 프레임들에 대하여 적합한 프레임 레이트를 계산하는데 사용될 수 있다. 스트리밍 장치(10)는 적합한 프레임 레이트를 추정할 수 있다. 추정된 프레임 레이트 EVF(Estimated Video Frame Rate)는 수학식 8과 같이 계산될 수 있다.
Figure 112018129150214-pat00008
여기서, Sk는 적합한 프레임 레이트를 추정할 k 번째 비디오 청크를 의미하고, Ck는 Sk에 속한 전체 프레임의 수를 의미하고, σSk는 수학식 4에 기초한 Sk의 인접한 프레임들의 표준 편차(standard deviation)를 의미할 수 있다.
스트리밍 장치(10)는 상술한 표준 편차를 이용하여 비디오 청크가 일정(constant)한지 혹은 변칙적(anomalous)인지를 결정할 수 있다. σSk가 높으면 단일 비디오 청크에서 빠르고 느리게 움직이는 부분이 공존한다는 것을 의미할 수 있다. 이 경우, 사용자 경험을 향상시키기 위해서 더 높은 변동을 가지는 부분을 고려하도록 전체 프레임 레이트가 조절될 수 있다.
스트리밍 장치(10)는 스트리밍 장치(10)가 구현되는 하드웨어 환경에 기초하여 δ을 결정할 수 있다. 예를 들어, 스트리밍 장치(10)는 δ로 0.0001을 사용할 수 있다.
도 8은 도 1에 도시된 스트리밍 장치가 타겟 비디오를 생성하는 동작을 나타낸다.
도 8을 참조하면, 스트리밍 장치(10)는 수신한 비디오(400)를 분할하여 복수의 비디오 청크를 생성할 수 있다. 도 8의 예시에서, 스트리밍 장치(10)는 n개의 비디오 청크를 생성할 수 있다.
스트리밍 장치(10)는 각각의 비디오 청크에 적합한 프레임 레이트를 결정할 수 있다. 이 때, 스트리밍 장치(10)는 비디오 청크에 포함된 프레임들의 유사도에 기초하여 각 비디오 청크에 적합한 프레임 레이트를 결정할 수 있다.
스트리밍 장치(10)는, 적합한 프레임 레이트에 기초하여 변환된 복수의 비디오 청크들을 연결시켜 타겟 비디오를 생성할 수 있다. 도 8의 예시에서 최종적으로 생성된 타겟 비디오의 프레임 레이트는 41fps일 수 있다.
도 9는 도 1에 도시된 스트리밍 장치가 생성하는 EMPD(Extended Media Presentation Description)의 예를 나타낸다.
도 9를 참조하면, 스트리밍 장치(10)는 사용자(500)에게 EMPD(237)를 전송하거나, 사용자(500)로부터 EMPD(237)를 수신할 수 있다.
DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol) 또는 MPEG-DASH(Moving Picture Experts Group- Dynamic Adaptive Streaming over Hypertext Transfer Protocol)는 HTTP(Hypertext Transfer Protocol)를 통해 멀티미디어 파일을 여러 세그먼트로 분할하고, 클라이언트에게 전송하는 적응형 비트레이트 스트리밍 기술(adaptive bitrate streaming)을 의미할 수 있다.
비디오를 업로드 할 때, 스트리밍 서버는 DASH 기능을 제공하기 위해 비트레이트 및 해상도를 조정하여 여러 개의 타겟 비디오(또는 처리된 비디오)를 생성하는 것이 필요할 수 있다.
MPD(Media Presentation Description)은 비디오 컨텐츠의 해상도, 비트레이트 및 URL(universal resource locator)과 같은 세그먼트 정보를 제공하는 목록(manifest)을 나타낼 수 있다. DASH 클라이언트는 가능한 가장 높은 해상도와 네트워크 대역폭에서 지원할 수 있는 비트레이트를 가진 세그먼트를 선택한 후에 MPD를 통해 해당 세그먼트를 가져와 비디오 재생을 시작할 수 있다.
스트리밍 장치(10)는 클라이언트가 네트워크 대역폭뿐만 아니라 배터리 상태를 함께 고려하여 세그먼트를 선택하도록 할 수 있다.
도 9의 예시는 EMPD의 계층적 구조를 나타낼 수 있다. 이는 컨텐츠 지속기간(duration)을 설명하는 하나 이상의 기간(period)로 구성될 수 있다. 다수의 기간들은 여러 개의 비디오를 챕터 별로 나누거나 광고들과 컨텐츠들을 분리해야 하는 경우에 사용될 수 있다.
각 기간은 미디어 스트림을 포함하는 하나 이상의 적응 세트(adaptation set)들로 구성될 수 있다. 이 기간은 일반적으로 효율적인 대역폭 관리를 위해 별도의 오디오 및 비디오 세트로 구성될 수 있다. 비디오의 적응 세트는 해상도 및 MIME(Multipurpose Internet Mail Extensions) 유형(또는 컨텐츠 유형)과 같은 대체 컨텐츠(alternative contents)에 대한 특정 정보를 포함하는 몇 가지 리프리젠테이션(representation)들로 구성될 수 있다.
스트리밍 장치(10)는 EMPD를 이용하여, 배터리 상태 정보를 포함하도록 상술한 적응 세트를 확장하여 클라이언트가 현재 배터리 상황에 적합한 리프리젠테이션을 선택하게 할 수 있다. 리프리젠테이션은 클라이언트가 미디어 세그먼트를 가져와서 재생할 수 있도록 URL을 제공할 수 있다.
도 10은 도 1에 도시된 스트리밍 장치의 배터리 절약 성능의 일 예를 나타낸다.
도 10을 참조하면, 스트리밍 장치(10)의 성능을 검증하기 위해 DASH 기능을 갖춘 스트리밍 서버가 구현될 수 있다. 비디오 스트리밍 서버는 EMPD(237)를 클라이언트에게 전송하여 사용자(500)가 적절한 타겟 비디오를 선택할 수 있도록 할 수 있다.
비디오 스트리밍 클라이언트는 배터리 상태와 네트워크 대역폭을 고려한 EMPD 목록 정보를 고려하기 위해 안드로이드 오픈 소스 미디어 플레이어인 ExoPlayer를 수정하여 구현될 수 있다.
OpenH264의 소스 코드는 각 비디오 청크에 적합한 프레임 레이트를 결정하도록 수정될 수 있다. 매크로 블록의 SAD 값은 H.264/AVC 인코더가 비디오 압축 프로세스를 수행할 때 추출될 수 있다.
추출된 매크로 블록의 SAD 값은 비디오의 움직임 변화를 분석하고 이에 따른 적합한 프레임 레이트를 결정하는데 사용될 수 있다.
스트리밍 서버가 업로드된 비디오(400)를 처리하여 DASH 서비스를 위한 다양한 해상도와 비트레이트를 가진 타겟 비디오를 생성한 후 비디오 프로세서(235)는 프레임 레이트 스케줄러(231)가 제공한 제공한 스케줄에 따라 비디오(400)를 추가로 처리할 수 있다.
이는 FFmpeg의 탐색(seeking) 및 연결(concatenate) 방법을 사용하여 적응형 프레임 레이트로 타겟 비디오를 생성하는 것을 통해 달성될 수 있다. 탐색 방법은 비디오(400)를 복수의 비디오 청크로 분할하는데 사용되며 각 비디오 청크의 프레임 레이트는 스케줄에 맞게 조절될 수 있다.
마지막으로, 서로 다른 프레임 레이트를 갖는 비디오 청크가 연결 방법을 통해 단일 타겟 비디오로 결합될 수 있다.
스트리밍 장치(10)의 성능은 4 가지 관점에서 평가될 수 있다. 예를 들어, 스트리밍 장치의 성능은 첫 번째로 프레임 레이트를 얼마나 줄일 수 있는지, 두 번째로 타겟 비디오의 품질이 얼마나 유지되는지, 세 번째로 얼마나 많은 총 에너지가 절약될 수 있는지, 그리고 네 번 째로 얼마나 많은 오버헤드가 발생하는지에 관해서 평가될 수 있다.
스트리밍 장치(10)는 스포츠, 토크쇼, 강의 등 다양한 카테고리의 9 개의 비디오(400)에 기초하여 평가될 수 있다. 실험에 사용되는 입력 비디오(400)는 스트리밍 서비스와 유사한 환경을 나타내기 위해 다양한 프레임 속도 및 해상도를 가질 수 있다. 입력 비디오(400)들에 관한 특성을 표 1과 같이 나타낼 수 있다.
비디오 이름 길이(min) 해상도(pixel) 비트레이트(Kbps) 프레임 레이트(fps) 유형
NBC News Conference 2.29 1920x1080 2130 29.98 A
MIT Course 3.32 1920x1080 1191 29.97
Golf ― 2017 Back of
Hope Founders Cup
1.06 1920x1080 2256 29.97
PyeongChang Olympic 1.24 1920x1080 2908 30.00 B
Conan Show 3.1 1920x1080 3755 29.98
Kershaw Baseball 1.15 1280x720 1946 29.97
Pororo Animation 15.31 1920x1080 1085 29.97 C
Tennis ― Australian
Open 2018
10.04 1280x720 3075 59.95
National Geographic 13.53 1280x720 3115 59.94
표 1에서 확인할 수 있듯이, 실제 스트리밍 서비스와 유사한 환경을 나타내기 위해서 비디오(400)들은 다양한 프레임 레이트와 해상도를 가질 수 있다. 또한, 비디오(400)들은 움직임 강도(motion intensity)의 정도에 따라 세 가지 유형의 그룹으로 구분될 수 있다. 예를 들어, A는 정적(static)이고, B는 역동적(dynamic)이고, C는 하이브리드(hybrid) 유형일 수 있다.
정적인 그룹은 강의와 같이 거의 동일한 장면을 디스플레이하는 비디오(400)로 구성될 수 있다. 역동적인 그룹은 스포츠와 같이 높은 수준의 움직임 강도를 갖는 비디오들로 구성될 수 있다. 하이브리드 그룹은 상술한 두 개의 속성을 모두 갖는 비디오들로 구성될 수 있다.
실험을 위해 비디오(400)들은 최대 3분까지 재생되도록 처리될 수 있다.
스트리밍 장치(10)는 사용자(500)의 배터리 상태에 따라 세 개의 상이한 설정으로 EPF를 구성할 수 있다. 가장 나쁜 배터리 조건에서, 스트리밍 장치(10)는 공격적으로 프레임 레이트를 감소시킬 수 있다.
도 10에서, + 부호가 부가된 경우, 더 나쁜 배터리 상태를 위해서, 공격적으로 설정된 스트리밍 장치의 성능을 나타낼 수 있다.
예를 들어, 도 10의 스트리밍 장치로 표시된 조건은, 수학식 6에서 s1, s2, s3, s4 및 s5를 각각 0.6, 0.83, 0.9, 0.93, 및 1로 설정한 것이고, 스트리밍 장치+의 경우, s1, s2, s3, s4 및 s5는 각각 0.5, 0.73, 0.83, 0.9, 및 1로 설정될 수 있다.
스트리밍 장치++의 경우 s1, s2, s3, s4 및 s5는 각각 0.43, 0.6, 0.7, 0.8, 및 0.93로 설정될 수 있다. 비교를 위해서 단순하게 원본 비디오(400)의 프레임 레이트를 2/3만큼 감소시킨 결과(도 10의 2/3 FPS)의 성능도 함께 도시될 수 있다.
표 2는 배터리 수준에 따라 타겟 비디오(또는 처리된 비디오)의 평균 프레임 레이트를 나타낼 수 있다.
비디오 스트리밍 장치 스트리밍 장치+ 스트리밍 장치++
NBC 24.82 22.44 19.18
MIT 19.35 16.51 14.27
Golf 23.47 21.41 18.86
PyeongChang 27.64 26.78 24.06
Conan 25.95 24.46 21.84
Kershaw 26.36 24.44 21.64
Pororo 25.51 23.75 20.83
Tennis 50.94 47.82 42.17
Geographic 53.38 49.44 42.63
표 2에서 스트리밍 장치는 비디오(400)의 특성을 고려하여 적응적으로 프레임레이트를 감소시켰기 때문에, 각 비디오(400)에 대하여 상이한 프레임 레이트를 나타낼 수 있다. 예를 들어, MIT 비디오는 움직임이 거의 없기 때문에 원본 프레임 레이트에 비하여 1/3 이상이 감소될 수 있다. 반면에 Geographic 비디오는 상대적으로 빠르게 변화하는 움직임을 가지고 있어서, 원본 프레임 레이트의 약 5/6 정도만 프레임 레이트가 감소될 수 있다.
스트리밍 장치(10)는 세 가지 객관적인 품질 척도(metric)를 이용하여 스트리밍 장치(10)에 의해 타겟 비디오의 품질에 미치는 영향에 대하여 측정될 수 있다. 예를 들어, 세 가지 품질 척도는 SSIM, VQM(Video Quality Metric) 및 VMAF(Video Multimethod Assessment Fusion)일 수 있다.
SSIM은 이미지를 기반으로 유사성을 계산하기에 적합한 척도일 수 있다. 실험은 비디오에 초점을 맞추기 때문에, VQM 및 VMAF도 사용될 수 있다. 이러한 측정 항목은 SSIM 보다 비디오의 주관적인 품질을 측정하는데 더 적합할 수 있다.
낮은 값의 VQM은 고화질 비디오를 나타낼 수 있다. VMAF 지수는 0에서 1까지 범위를 가지고, VMAF가 높으면 고화질 비디오를 나타낼 수 있다.
표 3은 스트리밍 장치(10)를 통해 생성된 타겟 비디오의 품질을 2/3 FPS와 비교한 것일 수 있다.
비디오 스트리밍 장치 스트리밍 장치+ 스트리밍 장치++ 2/3 FPS
SSIM VQM VMAF SSIM VQM VMAF SSIM VQM VMAF SSIM VQM
NBC 99.53% 0.73 99.61% 99.41% 0.814 99.33% 99.06% 0.998 98.92% 98.52% 1.137
MIT 99.68% 0.235 99.30% 99.63% 0.256 99.05% 99.56% 0.289 98.69% 99.52% 0.318
Golf 98.64% 0.515 98.66% 98.50% 0.563 98.26% 98.03% 0.711 97.09% 96.95% 0.925
PyeongChang 99.29% 0.366 99.27% 99.12% 0.431 98.77% 97.87% 0.847 95.63% 94.20% 1.527
Conan 99.04% 0.818 98.77% 98.76% 0.942 97.76% 98.20% 1.106 96.46% 96.66% 1.513
Kershaw 98.54% 0.707 98.81% 98.18% 0.839 98.20% 96.60% 1.324 95.72% 93.57% 1.866
Pororo 98.92% 0.63 97.27% 98.50% 0.78 96.07% 97.62% 1.068 93.33% 95.94% 1.439
Tennis 98.90% 0.806 99.02% 98.76% 0.892 98.62% 98.42% 1.051 97.29% 97.93% 1.249
Geographic 99.12% 0.86 99.34% 98.94% 0.962 98.80% 98.73% 1.095 97.99% 98.45% 1.199
표 3에서 확인할 수 있듯이, 스트리밍 장치(10)는 모든 비디오(400) 케이스들에 대해서 2/3 FPS보다 전반적인 타겟 비디오를 향상시킬 수 있다. 정적인 그룹의 경우, 2/3 FPS 및 스트리밍 장치(10)는 동영상의 움직임 강도가 비교적 낮기 때문에 높은 품질을 유지할 수 있다.
스트리밍 장치(10)와 2/3 FPS 사이의 현저한 차이는 2/3 FPS가 VMAF 척도를 90% 미만으로 만드는 동적 그룹에서 발생하며 사용자 경험의 심각한 저하를 나타낼 수 있다. 또한, Kershaw 비디오에서 스트리밍 장치++ 및 2/3 FPS의 평균 프레임 속도는 각각 21.66 및 20에서 유사하지만 EVSO++의 VMAF 척도는 2/3 FPS 보다 5% 높은 값을 가질 수 있다.
스트리밍 장치(10)는 비디오(400)의 각 부분을 분석하여 프레임 속도를 조정하기 때문에 프레임 레이트를 단순히 감소시키는 2/3 FPS보다 타겟 비디오의 품질을 훨씬 높게 유지할 수 있다.
스트리밍 장치(10)의 에너지 소비는 Monsoon Power Monitor를 이용하여 LG Nexus 5 측정될 수 있다. 스마트 폰의 밝기는 30%로 설정되고, 외부 변수의 영향을 줄이기 위해 비행기 모드가 활성화된 상태로, Wi-Fi를 켜서 스트리밍 서버에서 비디오가 스트리밍될 수 있다.
과열로 인한 열 조절을 막기 위해 스마트 폰의 온도가 실험 전에 냉각될 수 있다. 스트리밍 장치, 스트리밍 장치++, 2/3 FPS의 네 가지 설정에서 9 개의 비디오(400)에 대하여 에너지 소비량이 평가될 수 있다. stock으로 표시된 것은 원본 비디오를 의미할 수 있고, 제어 그룹의 역할을 할 수 있다.
스트리밍 장치, 스트리밍 장치++ 및 2/3 FPS는 상술한 것과 동일한 설정이 사용될 수 있다. 정확한 실험을 위해 각 비디오(400)의 에너지 소비량이 5회 측정되어 평균될 수 있다.
도 10은 stock, 스트리밍 장치, 스트리밍 장치++ 및 2/3 FPS의 에너지 감소율을 나타낼 수 있다. 스트리밍 장치(10)는 움직임 강도에 따라 프레임 레이트를 조절하므로 절약되는 에너지의 양은 비디오의 특성에 따라 상이할 수 있다. 예를 들어, 스트리밍 장치(10)의 MIT에서 사용된 에너지는 약 27% 감소했지만, tennis 비디오의 경우 약 11% 감소될 수 있다.
배터리 상태가 좋지 않은 경우, 스트리밍 장치++가 사용되어 PyeongChang 비디오를 제외하고, 2/3 FPS 그룹과 유사하게 에너지 요구량을 감소시키는데 사용될 수 있고, 원본인 Stock에 비하여 평균 22%의 감소를 나타낼 수 있다.
도 11a는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 일 예를 나타내고, 도 11b는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 다른 예를 나타내고, 도 11c는 도 1에 도시된 스트리밍 장치가 스트리밍하는 비디오에 대한 화질 평가의 또 다른 예를 나타낸다.
도 11a 내지 11c를 참조하면, 스트리밍 장치(10)는 사용자 경험을 평가하기 위해서 사람에 의해서 평가될 수 있다. 예를 들어, 15 명의 참가자(남성 10명)에 대하여 평가될 수 있다. 스트리밍 장치(10)는 시스템의 주관적 품질 평가에 사용되는 DSIS(Double Stimulus Impairment Scale), DSCQS(Double Stimulus Continuous Quality Scale)가 사용될 수 있다.
DSIS는 참가자가 타겟 비디오에 대한 손상 정도를 평가하기 위해 두 가지 자극, 즉 입력 비디오(400) 및 타겟 비디오가 순차적으로 보여질 수 있다. DSIS의 평가 지수는 지각할 수 없는(imperceptible, 5 점), 지각할 수 있지만 거슬리지 않는(4 점), 약간 거슬리는(3점), 거슬리는(2 점), 매우 거슬리는(1 점)로 나뉠 수 있다. DSIS에서, 참가자는 원본 비디오(400) 또는 타겟 비디오에 대하여 알 수 있다.
참가자들은 NBC(정적인), PyeongChang(동적인) 및 Geographic (하이브리드)의 3 가지 비디오(400) 유형을 시청하도록 요청 받을 수 있다. 참가자들에게 어떤 비디오가 처리되었는지 미리 알려주고 원본 비디오와 타겟 비디오를 순서대로 보여줄 수 있다.
도 11a는 비디오(400)의 손상 등급(impairment rating)을 나타낼 수 있다. 대부분의 참가자들이 타겟 비디오를 '지각할 수 없는' 또는 '지각할 수 있지만 거슬리지 않는'다고 득점했다. 대부분의 참가자가 원본 비디오(400)와 타겟 비디오의 차이를 인식하지 못함을 확인할 수 있다. 또한, 세 가지 유형의 비디오(400)가 모두 높은 점수를 받았다는 것으로부터 스트리밍 장치(10)가 움직임 강도 특성을 적절히 고려한다는 것을 확인할 수 있다.
DSCQS는 참가자가 두 가지 자극, 즉 비디오(400) 및 타겟 비디오를 무작위 순서로 시청하여 시각적 품질의 차이를 평가하는 방법을 의미할 수 있다. DSCQS의 평가 지수는 각 자극에 대한 [0-100] 척도를 포함할 수 있다. DSIS와 달리 DSCQS는 참가자들에게 각 비디오(400)의 설정에 대하여 알리지 않을 수 있다.
참가자들은 DSIS 방법에서와 같은 세 가지 비디오(400)를 보도록 요청 받을 수 있다. 각 비디오(400)에 대해 참가자는 네 가지 설정을 무작위 순서로 시청하고 각 타겟 비디오의 품질을 평가할 수 있다. 참가자들은 원하는 경우 이전에 본 비디오를 다시 시청할 수 있다. 도 11b 및 11c는 DSCQS를 사용한 품질 등급 및 품질 등급의 분포를 나타낼 수 있다.
참가자는 원본 비디오(400)와 타겟 비디오를 구분하지 못했다. 반면, 참가자들은 2/3 FPS를 분명하게 구별했다. 또한, 프레임 레이트를 공격적으로 감소시키는 스트리밍 장치++의 평균 프레임 레이트는 2/3 FPS와 비슷하지만 평균 품질 점수는 16 점 높을 수 있다. 이는 스트리밍 장치(10)를 사용하여 프레임 레이트를 줄이면 단순하게 프레임 레이트를 줄이는 것 보다 나은 품질을 제공함을 나타낼 수 있다.
2.20 GHz ×40 프로세서와 135GB 메모리를 갖춘 서버에서 시스템 오버헤드가 측정될 수 있다. 실험은 NBC 비디오를 통해 수행될 수 있고, 정확도를 위해 세션을 5 회 반복한 후에 평균이 측정될 수 있다.
프레임 레이트 스케줄러(231)가 OpenH264인코더에 내장되었을 때 얼마나 많은 스케줄링 오버헤드가 발생하는지 측정될 수 있다. 프레임 레이트 스케줄러(231)가 내장되지 않은 OpenH264와 내장된 OpenH264 인코더는 각각 평균 21초 및 22초가 걸림을 확인할 수 있다.
프레임 레이트 스케줄러(231)가 각 비디오 청크에 대해 적응형 프레임 속도를 스케줄링하는데 걸리는 오버헤드는 평균 0.76%에 불과하므로 프레임 레이트 스케줄러(231)를 추가함으로써 오버헤드가 거의 없다는 것을 확인할 수 있다.
비디오 프로세서(235)가 스케줄링 결과(233)에 기초하여 비디오(400)를 처리할 때 발생되는 오버헤드도 측정될 수 있다. 비디오 프로세서(235)가 없는 비디오 스트리밍 서버는 DASH 기능을 제공하기 위해 720p(5 Mbps) 및 480p(2.5 Mbps)와 같은 다양한 해상도와 비트레이트로 업로드된 비디오(400)를 처리할 수 있다. 비디오 프로세서(235)는 세 가지 배터리 수준에 따라 비디오(400)를 처리할 수 있다.
비디오 프로세서(235)가 존재하지 않는 스트리밍 서버와 존재하는 비디오 스트리밍 서버는 각각 143초 및 289초가 걸리는 것을 확인할 수 있다. 이것은 비디오 프로세서(235)에 의한 오버헤드가 약 100% 임을 나타낼 수 있다. 하지만, 비디오 프로세싱은 스트리밍 서버에 의해 내부적으로 처리되고, 타겟 비디오를 사용자(500)에 스트리밍 하기 전에 수행되는 예비 작업일 수 있다.
또한, 인기있는 비디오만 처리하는 선택적 전략을 이용하여 비디오 프로세싱을 수행하면 시간 오버헤드가 감소될 수 있다. 따라서, 비디오 프로세서(235)로 인한 오버헤드는 사용자(500) 및 스트리밍 서버 모두에서 용인될 수 있다.
스트리밍 장치(10)는 세 가지 배터리 수준을 기반으로 추가 비디오를 생성하기 때문에 저장해야하는 비디오의 양이 기존 스트리밍 서버보다 커질 수 있다. 그러나, 인기있는 비디오(400)만 선택적으로 처리함으로써 이러한 문제가 완화될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 비디오를 수신하는 단계;
    상기 비디오에 포함된 복수의 프레임들 간의 유사도를 계산하는 단계;
    상기 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성하는 단계;
    상기 복수의 비디오 청크 각각에 대한 프레임 레이트(frame rate)를 변환하는 단계; 및
    프레임 레이트가 변환된 복수의 비디오 청크를 연결시켜 타겟 비디오를 생성하는 단계
    를 포함하고,
    상기 복수의 비디오 청크를 생성하는 단계는,
    미리 결정된 윈도우에 포함된 복수의 프레임들 간의 유사도의 표준 편차가 제1 임계 값 보다 크거나, 미리 결정된 프레임과 상기 미리 결정된 프레임의 전 프레임 간의 유사도가 제2 임계 값 보다 큰 경우에 상기 비디오 청크를 생성하는 단계를 포함하는
    스트리밍 방법.
  2. 제1항에 있어서,
    상기 유사도를 계산하는 단계는,
    상기 복수의 프레임의 휘도(luminance) 값 간의 SAD(Sum of Absolute Differences) 값을 계산하는 단계;
    상기 SAD 값을 미리 결정된 임계값(threshold)과 비교하여 블록 차이 값을 결정하는 단계; 및
    상기 복수의 프레임들에 포함된 매크로 블록 각각에 대한 상기 블록 차이 값들을 모두 더하여 상기 유사도를 계산하는 단계
    를 포함하는 스트리밍 방법.
  3. 제2항에 있어서,
    상기 블록 차이 값을 계산하는 단계는,
    상기 SAD 값이 상기 임계값 보다 클 경우 상기 블록 차이 값을 1로 결정하는 단계; 및
    상기 SAD 값이 상기 임계값 보다 작거나 같을 경우 상기 블록 차이 값을 0으로 결정하는 단계
    를 포함하는 스트리밍 방법.
  4. 제1항에 있어서,
    상기 복수의 비디오 청크를 생성하는 단계는,
    상기 유사도의 평균을 계산하는 단계;
    상기 평균에 기초하여 상기 유사도의 표준 편차를 계산하는 단계; 및
    상기 표준 편차와 상기 유사도에 기초하여 상기 복수의 프레임들 중에서 분할의 기준이 되는 프레임을 선택하여 상기 비디오를 분할함으로써 상기 복수의 비디오 청크를 생성하는 단계
    를 포함하는 스트리밍 방법.
  5. 제1항에 있어서,
    상기 변환하는 단계는,
    상기 유사도에 기초하여 상기 복수의 비디오 청크 각각에 포함된 프레임들에 대한 스케일링 팩터를 결정하는 단계; 및
    상기 스케일링 팩터 및 상기 복수의 비디오 청크에 포함된 프레임들 간의 유사도에 기초하여 상기 프레임 레이트를 변환하는 단계
    를 포함하는 스트리밍 방법.
  6. 제5항에 있어서,
    상기 스케일링 팩터를 결정하는 단계는,
    상기 복수의 비디오 청크에 포함된 프레임들 간의 SSIM(Structural SIMilarity) 및 상기 유사도의 상관 관계를 추출하는 단계; 및
    상기 상관 관계에 따라 결정된 임계값에 기초하여 상기 스케일링 팩터를 결정하는 단계
    를 포함하는 스트리밍 방법.
  7. 제5항에 있어서,
    상기 변환하는 단계는,
    상기 스케일링 팩터의 평균 및 상기 유사도의 표준 편차에 기초하여 상기 프레임 레이트를 변환하는 단계
    를 포함하는 스트리밍 방법.
  8. 제1항에 있어서,
    사용자의 배터리 정보에 기초하여 상기 사용자에게 상기 타겟 비디오의 스트리밍을 제공하는 단계
    를 더 포함하는 스트리밍 방법.
  9. 제8항에 있어서,
    상기 제공하는 단계는,
    상기 사용자로부터 네트워크 상태에 기초한 상기 비디오에 관한 정보를 수신하는 단계; 및
    상기 비디오에 관한 정보에 기초하여 상기 타겟 비디오의 스트리밍을 제공하는 단계
    를 포함하는 스트리밍 방법.
  10. 제9항에 있어서,
    상기 비디오에 관한 정보는,
    해상도, 비트 레이트(bit rate) 및 상기 배터리 정보를 포함하는
    스트리밍 방법.
  11. 비디오를 수신하는 수신기; 및
    상기 비디오에 포함된 복수의 프레임들 간의 유사도를 계산하고, 상기 유사도에 기초하여 상기 복수의 프레임들을 분할하여 복수의 비디오 청크(chunk)를 생성하고, 상기 복수의 비디오 청크 각각에 대한 프레임 레이트(frame rate)를 변환하고, 프레임 레이트가 변환된 복수의 비디오 청크를 연결시켜 타겟 비디오를 생성하는 프로세서
    를 포함하고,
    상기 프로세서는,
    미리 결정된 윈도우에 포함된 복수의 프레임들 간의 유사도의 표준 편차가 제1 임계 값 보다 크거나, 미리 결정된 프레임과 상기 미리 결정된 프레임의 전 프레임 간의 유사도가 제2 임계 값 보다 큰 경우에 상기 비디오 청크를 생성하는
    스트리밍 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 복수의 프레임의 휘도(luminance) 값 간의 SAD(Sum of Absolute Differences) 값을 계산하고, 상기 SAD 값을 미리 결정된 임계값(threshold)과 비교하여 블록 차이 값을 결정하고, 상기 복수의 프레임들에 포함된 매크로 블록 각각에 대한 상기 블록 차이 값들을 모두 더하여 상기 유사도를 계산하는
    스트리밍 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 SAD 값이 상기 임계값 보다 클 경우 상기 블록 차이 값을 1로 결정하고, 상기 SAD 값이 상기 임계값 보다 작거나 같을 경우 상기 블록 차이 값을 0으로 결정하는
    스트리밍 장치.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 유사도의 평균을 계산하고, 상기 평균에 기초하여 상기 유사도의 표준 편차를 계산하고, 상기 표준 편차와 상기 유사도에 기초하여 상기 복수의 프레임들 중에서 분할의 기준이 되는 프레임을 선택하여 상기 비디오를 분할함으로써 상기 복수의 비디오 청크를 생성하는
    스트리밍 장치.
  15. 제11항에 있어서,
    상기 프로세서는,
    상기 유사도에 기초하여 상기 복수의 비디오 청크 각각에 포함된 프레임들에 대한 스케일링 팩터를 결정하고, 상기 스케일링 팩터 및 상기 복수의 비디오 청크에 포함된 프레임들 간의 유사도에 기초하여 상기 프레임 레이트를 변환하는
    스트리밍 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 복수의 비디오 청크에 포함된 프레임들 간의 SSIM(Structural SIMilarity) 및 상기 유사도의 상관 관계를 추출하고, 상기 상관 관계에 따라 결정된 임계값에 기초하여 상기 스케일링 팩터를 결정하는
    스트리밍 장치.
  17. 제15항에 있어서,
    상기 프로세서는,
    상기 스케일링 팩터의 평균 및 상기 유사도의 표준 편차에 기초하여 상기 프레임 레이트를 변환하는
    스트리밍 장치.
  18. 제11항에 있어서,
    상기 프로세서는,
    사용자의 배터리 정보에 기초하여 상기 사용자에게 상기 타겟 비디오의 스트리밍을 제공하는
    스트리밍 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 사용자로부터 네트워크 상태에 기초한 상기 비디오에 관한 정보를 수신하고, 상기 비디오에 관한 정보에 기초하여 상기 타겟 비디오의 스트리밍을 제공하는
    스트리밍 장치.
  20. 제19항에 있어서,
    상기 비디오에 관한 정보는,
    해상도, 비트 레이트(bit rate) 및 상기 배터리 정보를 포함하는
    스트리밍 장치.
KR1020180167420A 2018-12-21 2018-12-21 비디오 스트리밍 방법 및 장치 KR102153801B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180167420A KR102153801B1 (ko) 2018-12-21 2018-12-21 비디오 스트리밍 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180167420A KR102153801B1 (ko) 2018-12-21 2018-12-21 비디오 스트리밍 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200077974A KR20200077974A (ko) 2020-07-01
KR102153801B1 true KR102153801B1 (ko) 2020-09-08

Family

ID=71601530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180167420A KR102153801B1 (ko) 2018-12-21 2018-12-21 비디오 스트리밍 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102153801B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220078298A (ko) 2020-12-03 2022-06-10 삼성전자주식회사 적응적 증강 현실 스트리밍 제공 방법 및 이를 수행하는 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9124642B2 (en) * 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
KR20140019335A (ko) * 2011-01-28 2014-02-14 아이 이오, 엘엘씨 장면 타입에 기초한 비디오 스트림 인코딩
KR101979492B1 (ko) * 2017-02-10 2019-05-16 한양대학교 산학협력단 해상도에 따른 적응적 장면 전환 감지 방법 및 장치

Also Published As

Publication number Publication date
KR20200077974A (ko) 2020-07-01

Similar Documents

Publication Publication Date Title
CN107211193B (zh) 感知体验质量估计驱动的智能适应视频流传输方法和系统
Chen et al. From QoS to QoE: A tutorial on video quality assessment
CN108781300B (zh) 用于基于网络状况推荐内容的方法、系统以及介质
JP5215288B2 (ja) 映像符号化のための時間的品質メトリック
US8908047B2 (en) Method and apparatus for obtaining video quality parameter, and electronic device
US20170347159A1 (en) Qoe analysis-based video frame management method and apparatus
EP2652953B1 (en) Method and apparatus for hybrid transcoding of a media program
US20150156557A1 (en) Display apparatus, method of displaying image thereof, and computer-readable recording medium
US20070217505A1 (en) Adaptive Decoding Of Video Data
US20180115475A1 (en) Method for assessing the perceived quality of adaptive video streaming
Tran et al. A novel quality model for HTTP adaptive streaming
CN111182300B (zh) 编码参数的确定方法、装置、设备及存储介质
Devlic et al. QoE-aware optimization for video delivery and storage
Shahid et al. Crowdsourcing based subjective quality assessment of adaptive video streaming
CN114363649B (zh) 视频处理方法、装置、设备及存储介质
KR102153801B1 (ko) 비디오 스트리밍 방법 및 장치
Park et al. EVSO: Environment-aware video streaming optimization of power consumption
US20140205020A1 (en) Real-time transcoding method and device
CN107135403B (zh) 信息处理设备
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
Lee et al. Quality adaptation scheme for improving QoE of MPEG DASH
Rahman et al. Nonlinearity modelling of QoE for video streaming over wireless and mobile network
Pal et al. Model for mobile online video viewed on samsung galaxy note 5
Van den Ende et al. Towards content-aware coding: User study
EP3664456A1 (en) Apparatus and method for playing streamed media

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant