KR102643682B1 - 미디어 스트리밍 처리 장치 및 방법 - Google Patents
미디어 스트리밍 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR102643682B1 KR102643682B1 KR1020210183886A KR20210183886A KR102643682B1 KR 102643682 B1 KR102643682 B1 KR 102643682B1 KR 1020210183886 A KR1020210183886 A KR 1020210183886A KR 20210183886 A KR20210183886 A KR 20210183886A KR 102643682 B1 KR102643682 B1 KR 102643682B1
- Authority
- KR
- South Korea
- Prior art keywords
- media streaming
- processing device
- segment
- streaming processing
- congestion
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 176
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000003672 processing method Methods 0.000 claims abstract description 6
- 230000005540 biological transmission Effects 0.000 claims description 51
- 238000003062 neural network model Methods 0.000 claims description 20
- 238000012549 training Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명은 미디어 스트리밍 처리 장치 및 방법 에 관한 것이다. 본 실시 예에 따른 미디어 스트리밍 처리 방법은 하나 이상의 수신단 디바이스로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 수신단 디바이스가 원하는 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집하는 단계와, 전송계층으로부터, 수신단 디바이스의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출하는 단계와, 스트리밍 요청 신호와, 상태 정보와, 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 판단하는 단계와, 미디어 스트리밍 처리 장치에서 혼잡이 발생함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 미디어 스트리밍 처리 장치인지 여부를 판단하는 단계와, 병목지점이 미디어 스트리밍 처리 장치임에 따라, 제1 세그먼트의 크기를 조정하는 단계를 포함할 수 있다.
Description
본 발명은 DASH(dynamic adaptive streaming over HTTP) 스트리밍의 세그먼트를 목표 시간을 보장하면서 저지연으로 전송하는 미디어 스트리밍 처리 장치 및 방법 에 관한 것이다.
일반적인 미디어 스트리밍 기법들은 수신단 기반의 스트리밍 기법으로, 수신단이 자신의 상태 정보를 바탕으로 다음에 수신할 비디오 세그먼트의 비트레이트를 결정하여 끊김 현상이 없는 스트리밍을 가능하게 하고 있다.
하지만, 수신단이 다음 비트레이트를 결정하는데 사용하는 상태 정보는, 미디어 스트리밍을 제공하는 미디어 서버의 상태 정보를 반영하지 못해 미디어 서버에서 발생하는 혼잡 상황, 전송 지연 시간 등을 고려하지 못하는 한계를 가지고 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일 과제는, 대규모 사용자들이 미디어 서버를 통해 비디오 컨텐츠를 수신하여 시청하는 상황에서, 미디어 서버가 전송계층 정보를 활용하여 혼잡 상태 및 원인을 판단하고 목표 시간 내로 비디오 세그먼트를 사용자들에게 제공함으로써, 저지연 비디오 스트리밍을 가능하게 하는데 있다.
본 발명의 일 과제는, 수신단 기반의 DASH 스트리밍 기술이 수신단 상태만을 고려하기 때문에 미디어 서버의 혼잡에 즉각 반응할 수 없는 문제점을 해결하여 저지연 스트리밍 성능을 달성하도록 하는데 있다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 과제 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해보다 분명하게 이해될 것이다. 또한, 본 발명이 해결하고자 하는 과제 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시 예에 따른 미디어 스트리밍 처리 방법은, 미디어 스트리밍 처리 장치의 프로세서에 의해 수행되는 미디어 스트리밍 처리 방법으로서, 하나 이상의 수신단 디바이스로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 수신단 디바이스가 원하는 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집하는 단계와, 전송계층으로부터, 수신단 디바이스의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출하는 단계와, 스트리밍 요청 신호와, 상태 정보와, 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 판단하는 단계와, 미디어 스트리밍 처리 장치에서 혼잡이 발생함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 미디어 스트리밍 처리 장치인지 여부를 판단하는 단계와, 병목지점이 미디어 스트리밍 처리 장치임에 따라, 제1 세그먼트의 크기를 조정하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 미디어 스트리밍 처리 장치는, 프로세서 및 프로세서와 동작 가능하게 연결되고 프로세서에서 수행되는 적어도 하나의 코드를 저장하는 메모리를 포함하고, 메모리는 프로세서를 통해 실행될 때, 프로세서가 하나 이상의 수신단 디바이스로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 수신단 디바이스가 원하는 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집하고, 전송계층으로부터, 수신단 디바이스의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출하고, 스트리밍 요청 신호와, 상태 정보와, 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 판단하고, 미디어 스트리밍 처리 장치에서 혼잡이 발생함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 미디어 스트리밍 처리 장치인지 여부를 판단하고, 병목지점이 미디어 스트리밍 처리 장치임에 따라, 제1 세그먼트의 크기를 조정하도록 야기하는 코드를 저장할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
기존의 DASH 스트리밍 기술은 수신단이 자신의 상태만을 반영하여 세그먼트를 선택하기 때문에, 미디어 서버에서 발생하는 순간적인 혼잡에 반응할 수 없었지만, 본 발명에 의하면, 미디어 서버가 연결된 수신단들의 전송계층 정보를 종합하여 혼잡 상황을 판단하고 수신단들의 세그먼트 선택을 조정하기 때문에 순간적인 혼잡에도 저지연으로 세그먼트를 전송할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 실시 예에 따른 미디어 스트리밍 처리 장치, 수신단 디바이스 및 이들을 서로 연결하는 네트워크를 포함하는 미디어 스트리밍 처리 환경의 예시도이다.
도 2는 본 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다.
도 3은 본 실시 예에 따른 미디어 스트리밍 처리를 위한 미디어 스트리밍 처리 장치 및 수신단 디바이스의 동작을 설명하기 위한 예시도이다.
도 4는 다른 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다.
도 5는 본 실시 예에 따른 미디어 스트리밍 처리 방법을 설명하기 위한 흐름도이다.
도 2는 본 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다.
도 3은 본 실시 예에 따른 미디어 스트리밍 처리를 위한 미디어 스트리밍 처리 장치 및 수신단 디바이스의 동작을 설명하기 위한 예시도이다.
도 4는 다른 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다.
도 5는 본 실시 예에 따른 미디어 스트리밍 처리 방법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 아래에서 제시되는 실시 예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시 예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 출원서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
이하, 본 발명에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 실시 예에 따른 미디어 스트리밍 처리 장치, 수신단 디바이스 및 이들을 서로 연결하는 네트워크를 포함하는 미디어 스트리밍 처리 환경의 예시도이다. 도 1을 참조하면, 미디어 스트리밍 처리 환경(1)은 미디어 스트리밍 처리 장치(100), 수신단 디바이스(200) 및 네트워크(300)를 포함할 수 있다.
DASH 스트리밍 기술은 비디오를 일정 시간 단위로 분할하고 이를 다수의 비트레이트로 인코딩하여 스트리밍 전송 단위인 세그먼트의 형태로 저장한 후에, 수신단 디바이스(200)가 자신의 네트워크 가용 대역폭 및 현재 재생 버퍼(play buffer, 도 3의 210)의 상태에 맞는 크기의 세그먼트를 선택적으로 미디어 스트리밍 처리 장치(100)에 요청하도록 하여, 재생 버퍼가 고갈되지 않고 비디오가 재생될 수 있도록 하는 기법을 포함할 수 있다.
DASH 스트리밍 기술은 수신단 디바이스(200)가 이전 세그먼트 전송 시에 측정한 가용 대역폭 및 재생 버퍼에 남아있는 세그먼트를 바탕으로 재생 버퍼 고갈 이전에 받을 수 있는 크기의 다음 세그먼트를 선택하도록 하는 수신단 디바이스(200) 기반의 제어를 통해 끊김현상 없이 비디오가 재생되도록 할 수 있다.
하지만 세그먼트 선택을 수신단 디바이스(200)에서 결정하기 때문에, 미디어 스트리밍 처리 장치(100)에서 발생하는 수신단 디바이스(200)들의 동시접속에 따른 혼잡으로 인한 지연에 반응하지 못하여 세그먼트를 목표 시간 내로 받지 못하면 끊김 현상으로 이어질 수 있다.
이에, 본 실시 예에서는 수신단 디바이스(200) 기반의 DASH 스트리밍 기술이, 수신단 디바이스(200)의 상태만을 고려하기 때문에 미디어 스트리밍 처리 장치(100)의 혼잡에 즉각 반응할 수 없는 문제점을 해결하여 저지연 스트리밍 성능을 달성하도록 할 수 있다.
이를 위해, 미디어 스트리밍 처리 장치(100)는 TCP(transmission control protocol) 연결들로부터 추출된 전송계층(transport layer) 정보를 활용하여 수신단 디바이스(200)가 요청하는 세그먼트가 목표 지연 시간 내로 도착할 수 있는지 판단하고, 만약 목표 지연 시간 달성 내 전송이 불가능하다고 판단되면 세그먼트 크기를 조정하여 전송할 수 있다.
이러한 미디어 스트리밍 처리 장치(100)는 DASH 스트리밍을 처리하기 위해 다음과 같은 핵심 기술을 포함할 수 있다.
핵심 기술 중 하나는, 미디어 스트리밍 처리 장치(100)는 접속된 수신단 디바이스(200)로부터 스트리밍 요청 신호를 수집하고, 전송 계층으로부터 수신단 디바이스(200)의 상태 정보를 추출하여 자신의 혼잡을 판단하는 기술을 포함할 수 있다.
핵심 기술 중 다른 하나는, 다음에 미디어 스트리밍 처리 장치(100)가 자신에게 혼잡이 발생한다고 판단함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 자신인지 여부를 판단하는 기술을 포함할 수 있다.
핵심 기술 중 또 다른 하나는, 미디어 스트리밍 처리 장치(100)가 병목지점이 자신이라고 판단함에 따라 수신단 디바이스(200)의 세그먼트 크기를 조정하는 기술을 포함할 수 있다.
본 실시 예에서 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있는지 여부를 판단하기 위해서, 그리고 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있을 때 혼잡을 제어하기 위한 세그먼트를 조정하기 위해서, 인공지능 알고리즘을 이용할 수 있다. 여기서 인공 지능(artificial intelligence, AI)은, 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미할 수 있다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야를 포함할 수 있다. 구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취할 수 있다.
이러한 인공신경망의 머신 러닝 방법으로는 자율학습(unsupervised learning)과 지도학습(supervised learning)이 모두 사용될 수 있다. 또한, 머신 러닝의 일종인 딥러닝(deep learning) 기술은 데이터를 기반으로 다단계로 깊은 수준까지 내려가 학습할 수 있다. 딥러닝은 단계를 높여갈수록 복수의 데이터들로부터 핵심적인 데이터를 추출하는 머신 러닝 알고리즘의 집합을 나타낼 수 있다.
본 실시 예에서 수신단 디바이스(200)는, 미디어 스트리밍 처리 장치(100)로부터 DASH 스트리밍을 수신하여 재생하는 디바이스를 포함할 수 있다.
본 실시 예에서 수신단 디바이스(200)는 컴퓨팅 장치(미도시)의 기능을 수행할 수 있는 통신 단말기를 포함할 수 있으며, 수신자 및 송신자가 조작하는 데스크 탑 컴퓨터(201), 스마트폰(202), 노트북(203), 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 수신단 디바이스(200)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 단말기 일 수 있다. 이러한 수신단 디바이스(200)는 상술한 내용에 제한되지 아니하며, 웹 브라우징이 가능한 단말기는 제한 없이 차용될 수 있다.
네트워크(300)는 미디어 스트리밍 처리 장치(100)와, 수신단 디바이스(200)를 연결하는 역할을 수행할 수 있다. 이러한 네트워크(300)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한 네트워크(300)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다. 여기서, 근거리 통신은 블루투스(bluetooth), RFID(radio frequency identification), 적외선 통신(IrDA, infrared data association), UWB(ultra-wideband), ZigBee, Wi-Fi (wireless fidelity) 기술을 포함할 수 있고, 원거리 통신은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 기술을 포함할 수 있다.
네트워크(300)는 허브, 브리지, 라우터, 스위치와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(300)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(300)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
더 나아가 네트워크(300)는 CAN(controller area network) 통신, V2I(vehicle to infrastructure, 차량 대 도로 인프라) 통신, V2X(vehicle to everything) 통신, 웨이브(wireless access in vehicular environment) 통신 기술과, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 2는 본 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다. 이하의 설명에서 도 1에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 2를 참조하면, 미디어 스트리밍 처리 장치(100)는 수집부(110), 추출부(120), 제1 판단부(130), 제2 판단부(140), 조정부(150) 및 제어부(160)를 포함할 수 있다.
수집부(110)는 하나 이상의 수신단 디바이스(200)로부터 스트리밍 요청 신호를 수집(수신)할 수 있다. 본 실시 예에서 스트리밍 요청 신호는 수신단 디바이스(200)가 요청을 원하는 세그먼트의 크기로써 제1 세그먼트의 크기 및 목표 수신 시간을 포함할 수 있다.
여기서 제1 세그먼트의 크기는, 수신단 디바이스(200)가 네트워크 가용 대역폭 및 현재 재생 버퍼(도 3의 220)의 상태를 기반으로 설정할 수 있다. 네트워크 가용 대역폭은, 수신단 디바이스(200)가 측정하는 자신의 네트워크 속도로서, 시간당 정송할 수 있는 데이터의 양이며, 보통 bps를 이용할 수 있다. 네트워크 가용 대역폭은 네트워크 상의 혼잡이나 물리적인 이유로 시간에 따라 변동할 수 있다. 특히 LTE/5G와 같은 무선 통신에서는 장애물 등으로 인해 더욱 변동이 클 수 있다. 이렇게 변동이 큰 네트워크 상에서, 만약 네트워크 가용 대역폭이 급격히 감소했을 때, 수신단 디바이스(200)가 너무 큰 세그먼트를 수신하게 되면, 지연되고 있는 세그먼트가 많아지므로 네트워크 상에 세그먼트가 큐잉되어, 목표 수신 시간 내로 세그먼트를 수신할 수 없다. 따라서, 이런 상황에서는 세그먼트 크기를 낮추어 수신해야 하며, 수신단 디바이스(200)는 낮은 크기의 세그먼트를 보내달라고 요청할 수 있다. 본 실시 예에서, 네트워크 가용 대역폭은, 이전에 수신한 세그먼트의 크기를, 이전에 세그먼트를 수신한 시간으로 나누어 산출할 수 있다. 예를 들어, 이전에 수신한 세그먼트 크기 10Mbit를 1초만에 수신한 경우, 네트워크 속도는 10Mbit/sec가 될 수 있다. 또한, 현재 재생 버퍼(도 3의 220)의 상태는 현재 재생 버퍼(220)의 사이즈를 포함할 수 있다.
또한, 목표 수신 시간은, 수신단 디바이스(200)가 원하는 세그먼트의 수신 시간을 의미할 수 있다. 본 실시 예에서, 목표 수신 시간은 기설정되어 있을 수도 있고, 산출될 수도 있다.
목표 수신 시간이 기설정되어 있는 경우는, 서비스 관리자(미도시)가 특정 목표 수신 시간을 설정하고, 미디어 스트리밍 처리 장치(100)에서 이를 만족시키도록 동작시킬 수 있다. 예를 들어, 서비스 관리자가 500ms 이하로 목표 수신 시간을 설정하면, 미디어 스트리밍 처리 장치(100)는 어떠한 네트워크 상황에서라도 500ms 이하로 세그먼트가 전송 완료되도록 할 수 있다.
목표 수신 시간을 산출하는 경우는, 수신단 디바이스(200)가 현재 재생 버퍼(220)의 사이즈를 확인하고, 재생 시점 내로 프레임을 수신해야 하는 시간을 산출한 뒤에, 산출된 목표 수신 시간은 주기적으로 또는 세그먼트 요청시 마다 미디어 스트리밍 처리 장치(100)에 요청할 수 있다. 예를 들어, 재생 버퍼(220)가 1초 쌓여있으면, 다음 프레임을 1초 내로 수신해야 하는데, 만약 다음 프레임의 수신 시간이 1초를 초과하면, 프레임이 재생될 수 없어, 버퍼링 현상 즉, 끊김 현상이 발생할 수 있다. 여기서 1초를 목표 수신 시간으로 설정하여 미디어 스트리밍 처리 장치(100)에 요청할 수 있다.
일반적인 DASH 스트리밍에서는 수신단 디바이스(200)가 미디어 스트리밍 처리 장치(100)로 세그먼트의 크기만을 요청하지만, 본 실시 예에서는 수집부(110)가 수신단 디바이스(200)으로부터 세그먼트의 크기(제1 세그먼트의 크기)와 목표 수신 시간을 함께 수집할 수 있다.
추출부(120)는 미디어 스트리밍 처리 장치(100)가 수신단 디바이스(200)와 연결된 상태에서 전송계층(transport layer)으로부터 수신단 디바이스(200) 간의 연결에 대한 상태 정보를 추출할 수 있다. 본 실시 예에서, 수신단 디바이스(200)의 상태 정보는 수신단 디바이스(200) 간의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함할 수 있다.
전송계층은 컴퓨터의 네트워크 계층인 OSI 7계층에서 TCP/IP 계층을 의미할 수 있다. 미디어 스트리밍 처리 장치(100)가 전송계층으로부터 수신단 디바이스(200)와의 연결에 대한 상태 정보를 추출하는 방법은, TCP_INFO라는 구조체 정보를 TCP 소켓으로부터 추출하는 방법을 포함할 수 있다. TCP_INFO 구조체 정보는 혼잡 윈도우의 크기 및 왕복 시간(round trip time)를 포함할 수 있다.
네트워크 상에서 혼잡을 제어하기 위해서 미디어 스트리밍 처리 장치(100)는 시간당 수신단 디바이스(200)로 전송하는 데이터의 크기, 즉 전송 속도를 조정할 수 있다. 혼잡의 정도가 증가하면 전송 속도를 감소시키고, 혼잡의 정도가 감소하면 전송 속도를 증가시킬 수 있다. 이때 이 전송 속도는 단위시간당 보내는 데이터의 크기이며, 이러한 시간당 데이터 크기의 개념을 혼잡 윈도우라고 할 수 있다. 예를 들어, 1msec의 패킷을 10개 보내면 혼잡 윈도우가 10이 되고, 1msec의 패킷을 100개 보내면 혼잡 윈도우가 100이 될 수 있다.
많은 수신단 디바이스(200)들이 미디어 스트리밍 처리 장치(100)에 접속하여 미디어 스트리밍 처리 장치(100)에 데이터를 요청하면 혼잡이 발생할 수 있다. 이때 미디어 스트리밍 처리 장치(100)는 전송계층으로부터 수신단 디바이스(200)의 혼잡 윈도우의 크기가 작아지거나 커지는 것으로 네트워크 혼잡 여부를 판단할 수 있다.
왕복 시간(round trip time)은 미디어 스트리밍 처리 장치(100)가 데이터를 송신하여 네트워크(300)를 통해 수신단 디바이스(200)로 전달된 후, 수신단 디바이스(200)의 응답 신호가 네트워크(300)를 통해 미디어 스트리밍 처리 장치(100)에 도달하기까지의 시간을 포함할 수 있다. 네트워크에서 지연이 발생하면 왕복 시간이 증가할 수 있다. 왕복 시간에는 데이터의 물리적인 왕복 시간을 의미하는 최소 왕복 시간이라는 것이 있는데, 미디어 스트리밍 처리 장치(100)는 수신단 디바이스(200)의 왕복 시간이 최소 왕복 시간보다 증가하는 추세로 나타나면 네트워크에서 혼잡이 발생하고 있다고 볼 수 있다.
또한, TCP_INFO 구조체 정보는 미디어 스트리밍 처리 장치(100) 내부의 소켓 버퍼(도 3의 104)에 남아있는 데이터 크기를 포함할 수 있다. 미디어 스트리밍 처리 장치(100)의 소켓 버퍼(104)에 저장되어 있는 데이터가 네트워크(300)를 통해 수신단 디바이스(200)로 전송이 되는데, 소켓 버퍼(104)에 남아있는 데이터의 크기가 클 경우, 지연에 의해 데이터를 전송하지 못해서 남아있다고 판단하고, 혼잡이 발생하고 있다고 볼 수 있다.
제1 판단부(130)는 스트리밍 요청 신호와, 상태 정보와, 소켓 버퍼 (도 3의 104)상에 현재 대기하고 있는 데이터 크기를 기반으로 하여 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있는지 여부를 판단할 수 있다. 여기서, 혼잡이 발생하고 있는지 여부라 함은, 혼잡이 발생하고 있다, 또는 혼잡이 발생하고 있지 않고 원할하다의 의미로 해석될 수 있다.
제1 판단부(130)는 제1 혼잡조건 내지 제4 혼잡조건 중 하나 이상을 만족하는 경우, 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다.
제1 혼잡조건은, 미디어 스트리밍 처리 장치(100)에 접속된 수신단 디바이스(200)의 개수가 기설정된 개수 이상임을 포함할 수 있다. 미디어 스트리밍 처리 장치(100)에 접속된 수신단 디바이스(200)의 개수가 기설정된 개수 이상인 경우, 미디어 스트리밍 처리 장치(100)가 전송해야 할 데이터 또한 기설정된 값보다 많아지므로, 제1 판단부(130)는 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다.
제2 혼잡조건은, 소켓 버퍼(도 3의 104) 상에 현재 대기하고 있는 데이터 크기가 기설정된 기준값 이상임을 포함할 수 있다. 소켓 버퍼(104)에 저장되어 있는 데이터가 네트워크(300)를 통해 수신단 디바이스(200)로 전송이 되는데, 소켓 버퍼(104)에 남아있는 데이터의 크기가 클 경우, 제1 판단부(130)는 지연에 의해 데이터를 전송하지 못해서 남아있다고 판단하고, 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다.
제3 혼잡조건은, 혼잡 윈도우의 크기가 감소되는 현상이 일정 횟수 이상 연속적으로 발생함을 포함할 수 있다. 많은 수신단 디바이스(200)들이 미디어 스트리밍 처리 장치(100)에 접속하여 미디어 스트리밍 처리 장치(100)로 데이터를 전송하면 혼잡이 발생할 수 있고, 혼잡이 발생하는 경우는 혼잡이 발생하지 않은 경우보다 혼잡 윈도우의 크기가 작을 수 있다. 이는 상술한 바와 같이 혼잡 윈도우를 단위시간당 보내는 데이터의 크기의 개념으로 볼 수 있음에 기인한 것이다. 따라서, 제1 판단부(130)는 혼잡 윈도우의 크기가 감소되는 현상이 일정 횟수 이상 연속적으로 발생함에 따라 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다.
제4 혼잡조건은, 왕복 시간(round trip time)의 연속적인 증가가 일정 횟수 이상 발생함을 포함할 수 있다. 네트워크에서 지연이 발생하면 왕복 시간이 증가하므로, 제1 판단부(130)는 왕복 시간의 연속적인 증가가 일정 횟수 이상 발생함에 따라 할 수 있다. 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다.
제1 판단부(130)는 제1 혼잡조건 내지 제4 혼잡조건 어느 하나도 만족하지 않은 경우, 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하지 않고 원할하다고 판단할 수 있다. 이와 같은 경우, 제어부(160)는 수신단 디바이스(200) 요청한 세그먼트의 크기를 수신단 디바이스(200)로 전송하도록 제어할 수 있다.
선택적 실시 예로, 제1 판단부(130)는 수신단 디바이스(200)의 접속에 의해 미디어 스트리밍 처리 장치(100)에서 생성한 혼잡 제어 신호를 기반으로 하여 미디어 스트리밍 처리 장치(100)의 혼잡도 여부를 예측하는 제1 심층신경망 모델을 이용하여, 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 예측할 수 있다.
여기서, 혼잡 제어 신호는 상술한 스트리밍 요청 신호, 상태 정보 및 소켓 버퍼(도 3의 104) 상에 현재 대기하고 있는 데이터 크기를 포함할 수 있다. 또한, 제1 심층신경망 모델은, 미디어 스트리밍 처리 장치(100)에 접속된 수신단 디바이스(200)의 개수와, 소켓 버퍼(104) 상에 현재 대기하고 있는 데이터 크기와, 혼잡 윈도우의 크기와, 왕복 시간(round trip time)을 입력으로 하고, 미디어 스트리밍 처리 장치(100)의 혼잡도 유/무를 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델일 수 있다.
제1 판단부(130)는 레이블링된 훈련데이터를 이용하여 초기에 설정된 제1 심층신경망 모델을 지도학습 방식으로 훈련할 수 있다. 여기서, 초기에 설정된 심층신경망 모델은 미디어 스트리밍 처리 장치(100)의 혼잡도 여부를 예측할 수 있는 모델로 구성되기 위해 설계된 초기 모델로서 파라미터 값들은 임의의 초기값으로 설정되어 있는 상태이다. 초기 모델은 상술한 훈련데이터를 통해 훈련되면서 파라미터 값들이 최적화되면서 미디어 스트리밍 처리 장치(100)의 혼잡도 여부를 정확히 예측할 수 있는 혼잡도 예측 모델로 완성될 수 있다.
제2 판단부(140)는 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 미디어 스트리밍 처리 장치(100)인지 아니면 수신단 디바이스(200)인지 여부를 판단할 수 있다.
제2 판단부(140)는 병목지점이 어디인지 판단하기 위하여, 먼저, 수신단 디바이스(200)로의 세그먼트 전송 추정 시간을 산출할 수 있다. 여기서 세그먼트 전송 추정 시간은, 수신단 디바이스(200)가 선택한 제1 세그먼트의 크기를, 네트워크 가용 대역폭으로 나눈값에, 미디어 스트리밍 처리 장치(100) 상에 남아있는 이전 세그먼트 데이터의 잔류 시간을 가산하여 산출할 수 있다.
다음에 제2 판단부(140)는 세그먼트 전송 추정 시간 및 목표 수신 시간의 비교를 통하여, 세그먼트 전송 추정 시간이 목표 수신 시간보다 더 큼에 따라 병목지점을 미디어 스트리밍 처리 장치(100)로 결정할 수 있다. 그러나 제2 판단부(140)는 세그먼트 전송 추정 시간이 목표 수신 시간보다 더 작음에 따라 병목지점을 수신단 디바이스(200)로 결정할 수 있다.
선택적 실시 예로, 제2 판단부(140)는 미디어 스트리밍 처리 장치(100)에 접속한 수신단 디바이스(200)로부터 수신한 스트리밍 요청 신호를 기반으로 세그먼트 전송 추정 시간을 예측하는 제2 심층신경망 모델을 이용하여, 세그먼트 전송 추정 시간을 예측할 수 있다.
여기서, 제2 심층신경망 모델은, 수신단 디바이스(200)로부터 수신하는 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 상기 미디어 스트리밍 처리 장치 상에 남아있는 이전 세그먼트의 잔류 시간을 입력으로 하고, 세그먼트 전송 추정 시간을 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델일 수 있다.
제2 판단부(140)는 레이블링된 훈련데이터를 이용하여 초기에 설정된 제2 심층신경망 모델을 지도학습 방식으로 훈련할 수 있다. 여기서, 초기에 설정된 심층신경망 모델은 수신단 디바이스(200)로의 세그먼트 전송 추정 시간을 예측할 수 있는 모델로 구성되기 위해 설계된 초기 모델로서 파라미터 값들은 임의의 초기값으로 설정되어 있는 상태이다. 초기 모델은 상술한 훈련데이터를 통해 훈련되면서 파라미터 값들이 최적화되면서 세그먼트 전송 추정 시간을 정확히 예측할 수 있는 혼잡도 예측 모델로 완성될 수 있다.
조정부(150)는 병목지점이 미디어 스트리밍 처리 장치(100)임에 따라, 스트리밍 요청 신호에 포함되는 제1 세그먼트의 크기를 조정할 수 있다. 조정부(150)는 여러 세그먼트 중 세그먼트 전송 추정 시간이 목표 수신 시간을 초과하지 않는 세그먼트 중 가장 큰 세그먼트를 제2 세그먼트로 결정하고, 제1 세그먼트의 크기를 제2 세그먼트의 크기로 조정할 수 있다. 이후 제2 세그먼트를 수신단 디바이스(200)로 전송할 수 있다.
제어부(160)는 일종의 중앙처리장치로서 미디어 스트리밍 처리 장치(100) 전체의 동작을 제어할 수 있다. 제어부(160)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령어로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 3은 본 실시 예에 따른 미디어 스트리밍 처리를 위한 미디어 스트리밍 처리 장치 및 수신단 디바이스의 동작을 설명하기 위한 예시도이다. 이하의 설명에서 도 1 및 도 2에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 3을 참조하면, 미디어 스트리밍 처리 장치(100)는 커널 계층(101, 운영체제 5계층), 스트리밍 어플리케이션 계층(102, OSI 7계층 중 7번째 계층) 및 전송 계층(103, OSI 7계층 중 4번째 계층)을 포함할 수 있다.
커널 계층(101)은 프로세서(도 4의 170) 관리, 메모리(도 4의 180) 관리, 프로세스 관리, 주변장치 관리, 파일 관리와 더불어 인터럽트 처리를 관리하는 등의 리소스 관리 주는 프로그램이라고 볼 수 있다. 본 실시 예에서 소켓 버퍼(104)의 관리, 혼잡 판단 및 혼잡 제어는 커널 계층(101)에서 수행될 수 있다.
스트리밍 어플리케이션 계층(102)은 미디어 스트리밍 처리 장치(100)에서 선택된 세그먼트 비디오 파일을 로딩하고, 전송 계층(103)을 통해 수신단 디바이스(200)로 전송할 수 있다. 본 실시 예에서, 병목 구간 판단, 세그먼트 조정은 스트리밍 어플리케이션 계층(102)에서 수행될 수 있다.
또한 도 3을 참조하면, 수신단 디바이스(200)는 쓰루풋 추정기(210), 재생 버퍼(220) 및 콘트롤러(230)를 포함할 수 있다.
쓰루풋 추정기(210)는 이전 세그먼트 수신 속도(이전 세그먼트 사이즈/이전 세그먼트 수신 시간)를 이용하여 다름 세그먼트 수신 시의 네트워크 가용 대역폭을 추정할 수 있다. 또한 쓰루풋 추정기(210)는 다음 세그먼트 선택을 위해 현재 재생 버퍼(220)의 사이즈를 콘트롤러(230)에 전달할 수 있다.
콘트롤러(230)는 쓰루풋 추정기(210)로부터 획득한 네트워크 가용 대역폭 및 현재 재생 버퍼(220)의 사이즈를 기반으로 제1 세그먼트의 크기를 선택할 수 있다. 또한 콘트롤러(230)는 기설정되거나 목표 수신 시간을 로딩하거나, 쓰루풋 추정기(210)로부터 획득한 현재 재생 버퍼(220)의 사이즈를 확인하고, 재생 시점 내로 프레임을 수신해야 하는 시간을 목표 수신 시간으로 산출할 수 있다.
콘트롤러(230)는 제1 세그먼트의 크기와, 목표 수신 시간을 포함하는 스트리밍 요청 신호를 미디어 스트리밍 처리 장치(100)로 전송할 수 있다. 수신단 디바이스(200)로부터 스트리밍 요청 신호를 수신한 미디어 스트리밍 처리 장치(100)의 동작은 상술한 내용과 동일하므로 생략하기로 한다.
도 4는 다른 실시 예에 따른 미디어 스트리밍 처리 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도이다. 이하의 설명에서 도 1 내지 도 3에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 4를 참조하면, 다른 실시 예에 따른 미디어 스트리밍 처리 장치(100)는 프로세서(170)와 메모리(180)를 포함할 수 있다.
본 실시 예에서 프로세서(170)는 도 2에 개시된 수집부(110), 추출부(120), 제1 판단부(130), 제2 판단부(140), 조정부(150) 및 제어부(160)가 수행하는 기능을 처리할 수 있다.
본 실시 예에서, 프로세서(170)는 인공지능 알고리즘을 이용하여 미디어 스트리밍 처리 장치(100)의 혼잡도 유무와, 병목지점이 어디인지를 예측할 수 있다. 이러한 프로세서(170)는 미디어 스트리밍 처리 장치(100) 전체의 동작을 제어할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령어로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리(180)는 프로세서(170)와 동작 가능하게 연결되고, 프로세서(170)에서 수행되는 동작과 연관하여 적어도 하나의 코드를 저장할 수 있다.
또한, 메모리(180)는 프로세서(170)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 여기서, 메모리(180)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 이러한 메모리(180)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
도 5는 본 실시 예에 따른 미디어 스트리밍 처리 방법을 설명하기 위한 흐름도이다. 이하의 설명에서 도 1 내지 도 4에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다.
도 5를 참조하면, S510단계에서, 미디어 스트리밍 처리 장치(100)는 하나 이상의 수신단 디바이스(200)로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 수신단 디바이스가 원하는 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집할 수 있다.
S520단계에서, 미디어 스트리밍 처리 장치(100)는 전송계층으로부터, 수신단 디바이스(200)의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출할 수 있다.
S530단계에서, 미디어 스트리밍 처리 장치(100)는 스트리밍 요청 신호와, 상태 정보와, 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있는지 여부를 판단할 수 있다.
미디어 스트리밍 처리 장치(100)는 제1 혼잡조건 내지 제4 혼잡조건 중 하나 이상을 만족함에 따라 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단할 수 있다. 여기서, 제1 혼잡조건은, 미디어 스트리밍 처리 장치(100)에 접속된 수신단 디바이스(200)의 개수가 기설정된 개수 이상임을 포함할 수 있다. 제2 혼잡조건은, 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기가 기설정된 기준값 이상임을 포함할 수 있다. 제3 혼잡조건은, 혼잡 윈도우의 크기가 감소되는 현상이 일정 횟수 이상 연속적으로 발생함을 포함할 수 있다. 제4 혼잡조건은, 왕복 시간(round trip time)의 연속적인 증가가 일정 횟수 이상 발생함을 포함할 수 있다.
선택적 실시 예로, 미디어 스트리밍 처리 장치(100)는 수신단 디바이스(200)의 접속에 의해 미디어 스트리밍 처리 장치(100)에서 생성한 혼잡 제어 신호를 기반으로 하여 미디어 스트리밍 처리 장치(100)의 혼잡도 여부를 예측하는 제1 심층신경망 모델을 이용하여, 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있는지 여부를 예측할 수 있다. 여기서, 제1 심층신경망 모델은, 미디어 스트리밍 처리 장치(100)에 접속된 수신단 디바이스(200)의 개수와, 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기와, 혼잡 윈도우의 크기와, 왕복 시간(round trip time)을 입력으로 하고, 미디어 스트리밍 처리 장치(100)의 혼잡도 유/무를 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델일 수 있다.
S540단계에서, 미디어 스트리밍 처리 장치(100)는 미디어 스트리밍 처리 장치(100)에서 혼잡이 발생하고 있다고 판단함에 따라, 스트리밍 요청 신호를 기반으로 하여 병목지점이 미디어 스트리밍 처리 장치(100)인지 여부를 판단할 수 있다.
미디어 스트리밍 처리 장치(100)는 수신단 디바이스(200)로의 세그먼트 전송 추정 시간을 산출할 수 있다. 미디어 스트리밍 처리 장치(100)는 수신단 디바이스(200)가 선택한 제1 세그먼트의 크기를, 네트워크 가용 대역폭으로 나눈값에, 미디어 스트리밍 처리 장치(100) 상에 남아있는 이전 세그먼트 데이터의 잔류 시간을 가산한 결과를 세그먼트 전송 추정 시간으로 산출할 수 있다. 미디어 스트리밍 처리 장치(100)는 세그먼트 전송 추정 시간 및 목표 수신 시간의 비교를 통하여 세그먼트 전송 추정 시간이 목표 수신 시간보다 더 큼에 따라 병목지점을 미디어 스트리밍 처리 장치(100)로 결정할 수 있다. 그러나 미디어 스트리밍 처리 장치(100)는 세그먼트 전송 추정 시간이 목표 수신 시간보다 더 작음에 따라 병목지점을 수신단 디바이스(200)로 결정할 수 있다.
선택적 실시 예로, 미디어 스트리밍 처리 장치(100)는 미디어 스트리밍 처리 장치(100)에 접속한 수신단 디바이스(200)로부터 수신한 스트리밍 요청 신호를 기반으로 세그먼트 전송 추정 시간을 예측하는 제2 심층신경망 모델을 이용하여, 세그먼트 전송 추정 시간을 예측할 수 있다. 여기서, 제2 심층신경망 모델은, 수신단 디바이스(200)로부터 수신하는 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 미디어 스트리밍 처리 장치(100) 상에 남아있는 이전 세그먼트의 잔류 시간을 입력으로 하고, 세그먼트 전송 추정 시간을 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델일 수 있다.
S850단계에서, 미디어 스트리밍 처리 장치(100)는 병목지점이 미디어 스트리밍 처리 장치(100)임에 따라, 제1 세그먼트의 크기를 조정할 수 있다. 미디어 스트리밍 처리 장치(100)는 여러 세그먼트 중 세그먼트 전송 추정 시간이 목표 수신 시간을 초과하지 않는 세그먼트 중 가장 큰 세그먼트를 제2 세그먼트로 결정하고, 제1 세그먼트의 크기를 제2 세그먼트의 크기로 조정할 수 있다. 이후 미디어 스트리밍 처리 장치(100)는 제2 세그먼트를 수신단 디바이스(200)로 전송할 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 혼잡조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 미디어 스트리밍 처리 장치
200: 수신단 디바이스
300: 네트워크
200: 수신단 디바이스
300: 네트워크
Claims (15)
- 미디어 스트리밍 처리 장치의 프로세서에 의해 수행되는 미디어 스트리밍 처리 방법으로서,
하나 이상의 수신단 디바이스로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 상기 수신단 디바이스가 원하는 상기 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집하는 단계;
전송계층으로부터, 상기 수신단 디바이스의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출하는 단계;
상기 스트리밍 요청 신호와, 상기 상태 정보와, 상기 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 판단하는 단계;
상기 미디어 스트리밍 처리 장치에서 혼잡이 발생함에 따라, 상기 스트리밍 요청 신호를 기반으로 하여 병목지점이 상기 미디어 스트리밍 처리 장치인지 여부를 판단하는 단계; 및
상기 병목지점이 상기 미디어 스트리밍 처리 장치임에 따라, 상기 제1 세그먼트의 크기를 조정하는 단계를 포함하는,
미디어 스트리밍 처리 방법. - 제 1 항에 있어서,
상기 혼잡이 발생하고 있는지 여부를 판단하는 단계는,
제1 혼잡조건 내지 제4 혼잡조건 중 하나 이상을 만족함에 따라 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있다고 판단하는 단계를 포함하고,
상기 제1 혼잡조건은, 상기 미디어 스트리밍 처리 장치에 접속된 상기 수신단 디바이스의 개수가 기설정된 개수 이상임을 포함하고,
제2 혼잡조건은, 상기 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기가 기설정된 기준값 이상임을 포함하고,
제3 혼잡조건은, 상기 혼잡 윈도우의 크기가 감소되는 현상이 일정 횟수 이상 연속적으로 발생함을 포함하고,
제4 혼잡조건은, 상기 왕복 시간(round trip time)의 연속적인 증가가 일정 횟수 이상 발생함을 포함하는,
미디어 스트리밍 처리 방법. - 제 2 항에 있어서,
상기 혼잡이 발생하고 있는지 여부를 판단하는 단계는,
수신단 디바이스의 접속에 의해 상기 미디어 스트리밍 처리 장치에서 생성한 혼잡 제어 신호를 기반으로 하여 미디어 스트리밍 처리 장치의 혼잡도 여부를 예측하는 제1 심층신경망 모델을 이용하여, 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 예측하는 단계를 포함하고,
상기 제1 심층신경망 모델은,
미디어 스트리밍 처리 장치에 접속된 수신단 디바이스의 개수와, 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기와, 혼잡 윈도우의 크기와, 왕복 시간(round trip time)을 입력으로 하고, 상기 미디어 스트리밍 처리 장치의 혼잡도 유/무를 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델인,
미디어 스트리밍 처리 방법. - 제 1 항에 있어서,
상기 병목지점이 상기 미디어 스트리밍 처리 장치인지 여부를 판단하는 단계는,
상기 수신단 디바이스로의 세그먼트 전송 추정 시간을 산출하는 단계; 및
상기 세그먼트 전송 추정 시간 및 상기 목표 수신 시간의 비교를 통하여 상기 세그먼트 전송 추정 시간이 상기 목표 수신 시간보다 더 큼에 따라 병목지점을 상기 미디어 스트리밍 처리 장치로 결정하는 단계를 포함하는,
미디어 스트리밍 처리 방법. - 제 4 항에 있어서,
상기 세그먼트 전송 추정 시간을 산출하는 단계는,
상기 수신단 디바이스가 선택한 상기 제1 세그먼트의 크기를, 상기 네트워크 가용 대역폭으로 나눈값에, 상기 미디어 스트리밍 처리 장치 상에 남아있는 이전 세그먼트의 잔류 시간을 가산한 결과를 세그먼트 전송 추정 시간으로 산출하는 단계를 포함하는,
미디어 스트리밍 처리 방법. - 제 5 항에 있어서,
상기 세그먼트 전송 추정 시간을 산출하는 단계는,
상기 미디어 스트리밍 처리 장치에 접속한 수신단 디바이스로부터 수신한 스트리밍 요청 신호를 기반으로 세그먼트 전송 추정 시간을 예측하는 제2 심층신경망 모델을 이용하여, 세그먼트 전송 추정 시간을 예측하는 단계를 포함하고,
상기 제2 심층신경망 모델은,
수신단 디바이스로부터 수신하는 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 미디어 스트리밍 처리 장치 상에 남아있는 이전 세그먼트의 잔류 시간을 입력으로 하고, 세그먼트 전송 추정 시간을 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델인,
미디어 스트리밍 처리 방법. - 제 4 항에 있어서,
상기 제1 세그먼트의 크기를 조정하는 단계는,
상기 세그먼트 전송 추정 시간이 상기 목표 수신 시간을 초과하지 않는 세그먼트 중 가장 큰 세그먼트를 제2 세그먼트로 결정하는 단계; 및
상기 제1 세그먼트의 크기를 상기 제2 세그먼트의 크기로 조정하는 단계를 포함하는,
미디어 스트리밍 처리 방법. - 컴퓨터를 이용하여 제 1 항 내지 제 7 항의 방법 중 어느 한 항의 방법을 실행시키기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체.
- 미디어 스트리밍 처리 장치로서,
프로세서; 및
상기 프로세서와 동작 가능하게 연결되고 상기 프로세서에서 수행되는 적어도 하나의 코드를 저장하는 메모리를 포함하고,
상기 메모리는 상기 프로세서를 통해 실행될 때, 상기 프로세서가 하나 이상의 수신단 디바이스로부터 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 상기 수신단 디바이스가 원하는 상기 세그먼트의 수신 시간으로서의 목표 수신 시간을 포함하는 스트리밍 요청 신호를 수집하고,
전송계층으로부터, 상기 수신단 디바이스의 연결에 대한 혼잡 윈도우의 크기 및 왕복 시간(round trip time)을 포함하는 상태 정보와, 내부에 구비된 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 추출하고,
상기 스트리밍 요청 신호와, 상기 상태 정보와, 상기 소켓 버퍼 상에 현재 대기하고 있는 데이터의 크기를 기반으로 하여 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 판단하고,
상기 미디어 스트리밍 처리 장치에서 혼잡이 발생함에 따라, 상기 스트리밍 요청 신호를 기반으로 하여 병목지점이 상기 미디어 스트리밍 처리 장치인지 여부를 판단하고,
상기 병목지점이 상기 미디어 스트리밍 처리 장치임에 따라, 상기 제1 세그먼트의 크기를 조정하도록 야기하는 코드를 저장하는,
미디어 스트리밍 처리 장치. - 제 9 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 혼잡이 발생하고 있는지 여부를 판단 시에, 제1 혼잡조건 내지 제4 혼잡조건 중 하나 이상을 만족함에 따라 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있다고 판단하도록 야기하는 코드를 저장하고,
상기 제1 혼잡조건은, 상기 미디어 스트리밍 처리 장치에 접속된 상기 수신단 디바이스의 개수가 기설정된 개수 이상임을 포함하고,
제2 혼잡조건은, 상기 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기가 기설정된 기준값 이상임을 포함하고,
제3 혼잡조건은, 상기 혼잡 윈도우의 크기가 감소되는 현상이 일정 횟수 이상 연속적으로 발생함을 포함하고,
제4 혼잡조건은, 상기 왕복 시간(round trip time)의 연속적인 증가가 일정 횟수 이상 발생함을 포함하는,
미디어 스트리밍 처리 장치. - 제 10 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 혼잡이 발생하고 있는지 여부를 판단 시에, 수신단 디바이스의 접속에 의해 상기 미디어 스트리밍 처리 장치에서 생성한 혼잡 제어 신호를 기반으로 하여 미디어 스트리밍 처리 장치의 혼잡도 여부를 예측하는 제1 심층신경망 모델을 이용하여, 상기 미디어 스트리밍 처리 장치에서 혼잡이 발생하고 있는지 여부를 예측하도록 야기하는 코드를 포함하고,
상기 제1 심층신경망 모델은,
미디어 스트리밍 처리 장치에 접속된 수신단 디바이스의 개수와, 소켓 버퍼 상에 현재 대기하고 있는 데이터 크기와, 혼잡 윈도우의 크기와, 왕복 시간(round trip time)을 입력으로 하고, 상기 미디어 스트리밍 처리 장치의 혼잡도 유/무를 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델인,
미디어 스트리밍 처리 장치. - 제 9 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 병목지점이 상기 미디어 스트리밍 처리 장치인지 여부를 판단 시에, 상기 수신단 디바이스로의 세그먼트 전송 추정 시간을 산출하고,
상기 세그먼트 전송 추정 시간 및 상기 목표 수신 시간의 비교를 통하여 상기 세그먼트 전송 추정 시간이 상기 목표 수신 시간보다 더 큼에 따라 병목지점을 상기 미디어 스트리밍 처리 장치로 결정하도록 야기하는 코드를 저장하는,
미디어 스트리밍 처리 장치. - 제 12 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 세그먼트 전송 추정 시간을 산출 시에, 상기 수신단 디바이스가 선택한 세그먼트의 크기를, 상기 네트워크 가용 대역폭으로 나눈값에, 상기 미디어 스트리밍 처리 장치 상에 남아있는 이전 세그먼트의 잔류 시간을 가산한 결과를 세그먼트 전송 추정 시간으로 산출하도록 야기하는 코드를 저장하는,
미디어 스트리밍 처리 장치. - 제 12 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 세그먼트 전송 추정 시간을 산출 시에, 상기 미디어 스트리밍 처리 장치에 접속한 수신단 디바이스로부터 수신한 스트리밍 요청 신호를 기반으로 세그먼트 전송 추정 시간을 예측하는 제2 심층신경망 모델을 이용하여, 세그먼트 전송 추정 시간을 예측하도록 야기하는 코드를 저장하고,
상기 제2 심층신경망 모델은,
수신단 디바이스로부터 수신하는 네트워크 가용 대역폭 및 현재 재생 버퍼 상태에 대응하여 선택한 제1 세그먼트의 크기와, 미디어 스트리밍 처리 장치 상에 남아있는 이전 세그먼트의 잔류 시간을 입력으로 하고, 세그먼트 전송 추정 시간을 레이블로 하는 훈련데이터에 의해 지도학습 방식으로 훈련된 모델인,
미디어 스트리밍 처리 장치. - 제 12 항에 있어서,
상기 메모리는 상기 프로세서로 하여금,
상기 제1 세그먼트의 크기를 조정 시에, 상기 세그먼트 전송 추정 시간이 상기 목표 수신 시간을 초과하지 않는 세그먼트 중 가장 큰 세그먼트를 제2 세그먼트로 결정하고,
상기 제1 세그먼트의 크기를 상기 제2 세그먼트의 크기로 조정하도록 야기하는 코드를 저장하는,
미디어 스트리밍 처리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210183886A KR102643682B1 (ko) | 2021-12-21 | 2021-12-21 | 미디어 스트리밍 처리 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210183886A KR102643682B1 (ko) | 2021-12-21 | 2021-12-21 | 미디어 스트리밍 처리 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230094598A KR20230094598A (ko) | 2023-06-28 |
KR102643682B1 true KR102643682B1 (ko) | 2024-03-05 |
Family
ID=86994621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210183886A KR102643682B1 (ko) | 2021-12-21 | 2021-12-21 | 미디어 스트리밍 처리 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102643682B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231519A1 (en) | 2006-06-09 | 2011-09-22 | Qualcomm Incorporated | Enhanced block-request streaming using url templates and construction rules |
KR101982290B1 (ko) | 2018-02-27 | 2019-05-24 | 광운대학교 산학협력단 | 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101038645B1 (ko) | 2009-03-26 | 2011-06-02 | (주)필링크 | 스트리밍 시스템의 언더플로우/오버플로우 방지 방법 및 그시스템 |
KR101568288B1 (ko) * | 2009-09-21 | 2015-11-12 | 삼성전자주식회사 | 데이터 수신 장치 및 방법 |
CN109862377B (zh) * | 2017-11-30 | 2020-12-01 | 华为技术有限公司 | 视频传输方法、装置、系统及计算机可读存储介质 |
KR102141498B1 (ko) * | 2018-12-14 | 2020-08-05 | 울산과학기술원 | 패킷 전송 방법 및 장치 |
-
2021
- 2021-12-21 KR KR1020210183886A patent/KR102643682B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231519A1 (en) | 2006-06-09 | 2011-09-22 | Qualcomm Incorporated | Enhanced block-request streaming using url templates and construction rules |
KR101982290B1 (ko) | 2018-02-27 | 2019-05-24 | 광운대학교 산학협력단 | 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20230094598A (ko) | 2023-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202131661A (zh) | 用於網路最佳化的裝置及方法、以及非暫時性電腦可讀媒體 | |
KR101943530B1 (ko) | 이동성 관리를 위한 가상 서빙 게이트웨이를 배치하기 위한 시스템 및 방법 | |
US11271980B2 (en) | Context-based adaptive streaming algorithm for a user device | |
Dai et al. | A learning-based approach for vehicle-to-vehicle computation offloading | |
CN113475089B (zh) | 用于面向用户的内容流的方法和系统 | |
US12003797B2 (en) | Method and system for adaptive data transmission | |
EP2448195B1 (en) | Apparatus and method for ensuring fairness of udp data transmission in ethernet environment | |
CN112118177B (zh) | 用于控制多连接以提高数据传输率的方法和设备 | |
CN114531478A (zh) | 边缘资源聚合的方法、设备和计算机程序产品 | |
CN115037672B (zh) | 多路径拥塞控制方法及装置 | |
Wei et al. | Throughput prediction using recurrent neural network model | |
KR102461257B1 (ko) | 네트워크 처리량 예측 장치 및 방법 | |
KR102643682B1 (ko) | 미디어 스트리밍 처리 장치 및 방법 | |
CN117202265A (zh) | 边缘环境下基于dqn的服务迁移方法 | |
CN116192766A (zh) | 用于调整数据发送速率和训练拥塞控制模型的方法及装置 | |
CN103401792A (zh) | 一种针对移动终端的自适应上传加速装置 | |
US20120246269A1 (en) | Data processing apparatus, data processing method, and computer program product | |
Xu et al. | Predictive prefetching for MPEG DASH over LTE networks | |
Abdelghani et al. | Improving QoE in IoV: a review of solutions and challenges for MPEG-DASH | |
KR102709561B1 (ko) | 실시간 스트리밍을 위한 svc 처리 장치 및 방법 | |
KR102419087B1 (ko) | 미디어 스트리밍 제어 장치 및 방법 | |
US20240027567A1 (en) | Increasing Wireless Network Performance Using Contextual Fingerprinting | |
WO2023181205A1 (en) | Video player, video playback method, and program | |
GB2533942A (en) | Adaptive buffering of a content player for a mobile device in a telecommunication network | |
Liu et al. | Deep Q-Learning-Based Adaptive Multimedia Streaming in Vehicular Edge Intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |