KR102527986B1 - 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법 - Google Patents

인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법 Download PDF

Info

Publication number
KR102527986B1
KR102527986B1 KR1020220158239A KR20220158239A KR102527986B1 KR 102527986 B1 KR102527986 B1 KR 102527986B1 KR 1020220158239 A KR1020220158239 A KR 1020220158239A KR 20220158239 A KR20220158239 A KR 20220158239A KR 102527986 B1 KR102527986 B1 KR 102527986B1
Authority
KR
South Korea
Prior art keywords
streaming
data
drm
video
request
Prior art date
Application number
KR1020220158239A
Other languages
English (en)
Inventor
정덕환
Original Assignee
(주)뉴인
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)뉴인 filed Critical (주)뉴인
Priority to KR1020220158239A priority Critical patent/KR102527986B1/ko
Application granted granted Critical
Publication of KR102527986B1 publication Critical patent/KR102527986B1/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

인공 지능 기반으로 버퍼 크기와 캐시 저장량을 조절하여 실시간으로 DRM(Digital Rights Management) 처리와 영상 스트리밍을 수행할 수 있는 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법에 관한 것으로, 상기 사용자 단말로부터 영상 스트리밍 요청을 수신하는 단계, 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하는 단계, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 단계, 상기 추정한 버퍼 크기를 기반으로 상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 확인하는 단계, 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화하는 단계, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하고, 상기 사용자 단말로 스트리밍하는 단계, 및 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하는 단계를 포함하는 것을 특징으로 한다.

Description

인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법{SYSTEM AND METHOD FOR PROCESSING VIDEO STREAMING THROUGH BUFFER SIZE ADJUSTMENT BASED ON ARITFICIAL INTERLLIGENCE}
본 개시는 영상 스트리밍 시스템에 관한 것으로, 보다 상세하게는 인공 지능 기반으로 버퍼 크기와 캐시 저장량을 조절하여 실시간으로 DRM(Digital Rights Management) 처리와 영상 스트리밍을 수행할 수 있는 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법에 관한 것이다.
일반적으로, DRM(Digital Rights Management) 서비스는, 암호화 기술을 이용하여 디지털 콘텐츠의 지적 자산에 대한 권리를 지속적으로 관리 및 보호하기 위한 기술로서, 다양한 콘텐츠를 콘텐츠 제공자(Content Provider: CP)로부터 사용자에게 안전하게 전달하고, 이를 전달받은 사용자가 불법적으로 콘텐츠를 유통하는 것을 방지하기 위한 기술이다.
이러한 DRM 기술은, 디지털 콘텐츠의 생성, 배포, 사용 및 폐기에 이르는 전 과정에 걸쳐 정보 보호가 가능하며, 온라인뿐만 아니라 오프라인상에서 사용자의 권한에 따른 사용과 권리 보호할 수 있다.
한편, 다수 영상 스트리밍 방식은, 스트리밍 서비스 개시 전에 모든 영상 파일에 대해 DRM(Digital Rights Management) 패키징 처리를 수행한다.
DRM 패키징 방식은, 사용자의 요청에 따라 수행하는 온 더 플라이(On-the-fly) 패키징 방식, 컨텐츠 등록시에 패키징을 수행하는 등록(Registration) 패키징 방식, 그리고 미리 패키징을 수행하는 프리(Pre) 패키징 방식으로 구분될 수 있다.
이러한 방식들 중 어느 하나로 DRM 패키징 처리가 완료된 영상은, 스트리밍 서버에 업로드되어 해당 영상의 패킷 조각별로 사용자들에게 전송되어진다.
하지만, 기존의 DRM 처리 방식은, 업로드할 영상 전체에 대해 DRM 처리를 수행해야 하므로 시간적, 비용적, 그리고 공간적인 손실이 많이 발생하는 문제들이 있었다.
따라서, 향후, 전체 영상 중 일부분만을 선택적으로 DRM 처리하여 실시간으로 해당하는 부분 영상을 제공함으로써, 시간, 비용, 그리고 공간을 최소화할 수 있는 영상 스트리밍 시스템의 개발이 요구되고 있다.
대한민국 공개특허공보 10-2006-0064469호(2006년 06월 13일)
상술한 바와 같은 문제점을 해결하기 위한 본 개시의 일 목적은, 사전 학습한 뉴럴 네트워크 모델을 이용하여 실시간으로 버퍼 크기 및 캐시 저장량을 최적으로 조절함으로써, DRM 처리 소요 시간에 상응하는 영상 컨텐츠 송신 딜레이를 최소화할 수 있는 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법을 제공하는 것이다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 개시의 일 실시예에 따른 영상 스트리밍 방법은, 사용자 단말에 통신 연결되는 영상 스트리밍 시스템의 영상 스트리밍 방법으로서, 상기 사용자 단말로부터 영상 스트리밍 요청을 수신하는 단계, 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하는 단계, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 단계, 상기 추정한 버퍼 크기를 기반으로 상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 확인하는 단계, 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화하는 단계, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하고, 상기 사용자 단말로 스트리밍하는 단계, 및 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하는 단계를 포함하는 것을 특징으로 한다.
실시 예에 있어서, 상기 스트리밍 요청 영상의 상태 정보를 획득하는 단계는, 상기 스트리밍 요청 영상에 대한 사용자 스트리밍 요청 횟수, 상기 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 상기 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상기 스트리밍 요청 영상의 상태 정보를 획득하는 것을 특징으로 한다.
실시 예에 있어서, 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 단계는, 상기 스트리밍 요청 영상에 대한 정보와, 사용자 스트리밍 요청 횟수, 상기 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 상기 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상태 정보를 상기 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 것을 특징으로 한다.
실시 예에 있어서, 상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계는, 상기 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기를 기반으로 상기 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 상기 결정한 버퍼 크기는, 상기 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함하는 것을 특징으로 한다.
실시 예에 있어서, 상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계는, 상기 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기와, 상기 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 결정되는 것을 특징으로 한다.
실시 예에 있어서, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 단계는, 상기 DRM 처리한 부분 데이터를 상기 사용자 단말로 스트리밍하는 동안에 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 것을 특징으로 한다.
실시 예에 있어서, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 단계는, 상기 사용자 단말로 다운로드되는 부분 데이터의 전송 속도와 상기 사용자 단말에서 재생되는 부분 데이터의 재생 속도 사이에 속도 차이가 발생하면 상기 버퍼에 임시 저장된 DRM 처리 부분 데이터를 상기 사용자 단말로 제공하여 상기 속도 차이에 의한 딜레이를 차단하는 것을 특징으로 한다.
본 개시의 일 실시예에 따른 영상 스트리밍 시스템은, 영상 스트리밍을 요청하는 사용자 단말, 그리고 상기 사용자 단말에 통신 연결되어 DRM(Digital Rights Management) 처리 영상을 스트리밍하는 시스템 서버를 포함하고, 상기 시스템 서버는, 상기 사용자 단말로부터 영상 스트리밍 요청을 수신하면 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하며, 상기 추정한 버퍼 크기를 기반으로 상기 스트리밍 요청 영상의 버퍼 크기를 결정하고, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 확인하며, 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화하고, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하여 상기 사용자 단말로 스트리밍하며, 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하는 것을 특징으로 한다.
상술한 과제를 해결하기 위한 본 개시의 다른 실시 예에 따른 영상 스트리밍 방법을 제공하는 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상술한 방법 중 어느 하나의 방법을 수행하기 위해 매체에 저장된다.
이 외에도, 본 개시를 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.
상기와 같이 본 개시에 따르면, 사전 학습한 뉴럴 네트워크 모델을 이용하여 실시간으로 버퍼 크기 및 캐시 저장량을 최적으로 조절함으로써, DRM 처리 소요 시간에 상응하는 영상 컨텐츠 송신 딜레이를 최소화할 수 있다.
또한, 본 개시는, 스트리밍 요청 영상의 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 실시간으로 사용자 단말로 스트리밍함으로써, 시간, 비용, 그리고 공간을 최소화할 수 있다.
즉, 본 개시는, 실시간으로 사용자의 요청에 대한 응답으로써, DRM 처리와 동시에 영상을 스트리밍할 수 있다.
또한, 본 개시는, 전체 영상을 모두 DRM 처리하는 것이 아니라 데이터의 일부 조각을 선택적으로 DRM 처리함으로써, 보다 효율적인 DRM 처리 및 영상 스트리밍이 가능하다.
또한, 본 개시는, 실시간 스트리밍 환경 하에서 영상 용량이 많아질수록 DRM 처리가 늦어지는 문제를 해결하기 위하여, 실시간으로 버퍼 크기를 최적으로 조정함으로써, 로컬 환경에서 DRM 처리 소요 시간만큼 영상 컨텐츠 송신의 딜레이 문제를 해결할 수 있다.
또한, 본 개시는, 클라이언트인 사용자 단말과 시스템 서버 사이의 네트워크 환경을 고려하여, 스트리밍 요청 영상의 데이터 요청량을 스트리밍 최소 패킷 양으로 조정함으로써, 효율적인 영상 스트리밍이 가능하다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은, 본 개시에 따른 영상 스트리밍 시스템을 설명하기 위한 블록 구성도이다.
도 2는, 도 1의 시스템 서버를 설명하기 위한 개략도이다.
도 3은, 본 개시에 따른 영상 스트리밍 시스템의 영상 스트리밍 과정을 설명하기 위한 도면이다.
도 4는, 본 개시에 따른 영상 스트리밍 시스템의 스트리밍 요청 영상 부분 데이터 암호화 과정을 설명하기 위한 도면이다.
도 5는, 본 개시에 따른 영상 스트리밍 방법을 설명하기 위한 흐름도이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술 분야의 통상의 기술자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 개시의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 개시의 실시예를 상세하게 설명한다.
설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그렇지만 용어의 설명은 본 명세서의 이해를 돕기 위한 것이므로, 명시적으로 본 개시를 한정하는 사항으로 기재하지 않은 경우에 본 개시의 기술적 사상을 한정하는 의미로 사용하는 것이 아님을 주의해야 한다.
또한, 본 명세서에 걸쳐, 뉴럴 네트워크(neural network), 신경망 네트워크, 네트워크 함수는, 동일한 의미로 사용될 수 있다. 뉴럴 네트워크는, 일반적으로 “노드”라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 “노드”들은, “뉴런(neuron)”들로 지칭될 수도 있다. 뉴럴 네트워크는, 적어도 둘 이상의 노드들을 포함하여 구성된다. 뉴럴 네트워크들을 구성하는 노드(또는 뉴런)들은 하나 이상의 “링크”에 의해 상호 연결될 수 있다.
도 1은, 본 개시에 따른 영상 스트리밍 시스템을 설명하기 위한 블록 구성도이다.
도 1에 도시된 바와 같이, 본 개시에 따른 영상 스트리밍 시스템은, 영상 스트리밍을 요청하는 사용자 단말(200), 그리고 사용자 단말(200)에 통신 연결되어 DRM(Digital Rights Management) 처리 영상을 스트리밍하는 시스템 서버(100)를 포함할 수 있다.
여기서, 사용자 단말기(200)는, PC(Personal Computer), 네트워크 TV(Network TV), HBBTV(Hybrid Broadcast Broadband TV), 스마트 TV(Smart TV), IPTV(Internet Protocol TV) 등과 같은 고정형 디바이스(standing device)와, 스마트 폰(Smart Phone), 태블릿 PC(Tablet PC), 노트북(Notebook), PDA(Personal Digital Assistant) 등과 같은 모바일 디바이스(mobile device or handheld device)가 모두 포함될 수 있다.
그리고, 사용자 단말기(200)과 시스템 서버(100) 사이를 통신 연결하는 네트워크는, 유/무선 네트워크를 모두 포함하는데, 사용자 단말기(200)과 시스템 서버(100) 사이 또는 외부 서버와 시스템 서버(100) 사이에서 페어링 또는/및 데이터 송수신을 위해 다양한 통신 규격 내지 프로토콜을 지원하는 통신 네트워크를 통칭한다.
이러한 유/무선 네트워크는, 규격에 의해 현재 또는 향후 지원될 통신 네트워크를 모두 포함하며, 그를 위한 하나 또는 그 이상의 통신 프로토콜들을 모두 지원 가능하다.
이러한 유/무선 네트워크에는 예컨대, USB(Universal Serial Bus), CVBS(Composite Video Banking Sync), 컴포넌트(Component), S-비디오(아날로그), DVI(Digital Visual Interface), HDMI(High Definition Multimedia Interface), RGB, D-SUB와 같은 유선 연결을 위한 네트워크와 그를 위한 통신 규격 내지 프로토콜과, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA: infrared Data Association), UWB(Ultra Wideband), 지그비(ZigBee), DLNA(Digital Living Network Alliance), WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), LTE/LTE-A(Long Term Evolution/LTE-Advanced), Wi-Fi 다이렉트(direct)와 같은 무선 연결을 위한 네트워크와 그를 위한 통신 규격 내지 프로토콜에 의하여 형성될 수 있다.
그리고, 시스템 서버(100)는, 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하면 스트리밍 요청에 상응하여 스트리밍 요청 영상의 재생 이력을 확인하고, 스트리밍 재생 이력이 미존재하면 스트리밍 요청 영상에 대한 데이터 요청량을 확인하며, 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 획득하며, 원본 영상의 부분 데이터를 DRM 처리하여 암호화하고, DRM 처리한 부분 데이터를 사용자 단말로 스트리밍하며, 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 사용자 단말(200)로 전송할 수 있다.
여기서, 시스템 서버(100)는, 스트리밍 요청 영상의 재생 이력을 확인할 때, 스트리밍 요청 영상에 대한 식별 정보를 기반으로 캐시 서버(cashe server)의 데이터베이스를 탐색하고, 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 존재하면 스트리밍 요청 영상에 재생 이력이 존재하는 것으로 인지할 수 있다.
일 예로, 데이터베이스에 저장된 복수의 DRM 처리 데이터들은, 데이터 위치 정보와 데이터 해독 정보를 포함하는 헤더와 미디어 정보를 포함하는 데이터 블록으로 구성될 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 데이터베이스에 저장된 각각의 DRM 처리 데이터는, 마지막 재생 시간으로부터 기 설정된 저장 기간이 경과되면 데이터베이스로부터 삭제될 수 있다.
여기서, 데이터베이스에 저장된 각각의 DRM 처리 데이터는, 전체 데이터 구간 중 일부 데이터 구간들의 마지막 재생 시간이 서로 다르면 마지막 재생 시간이 빠른 순서에 따라 일부 데이터 구간들을 순차적으로 삭제할 수 있다.
예를 들면, 데이터베이스에 저장된 각각의 DRM 처리 데이터는, 전체 데이터 구간이 기설정된 저장 기간을 미경과하여 전체 데이터를 포함하는 제1 DRM 처리 데이터, 전체 데이터 구간 중 기설정된 저장 기간이 경과되는 일부 데이터가 삭제되고 기설정된 저장 기간이 미경과되는 나머지 일부 데이터만을 포함하는 제2 DRM 처리 데이터, 전체 데이터 구간이 상기 기설정된 저장 기간을 경과하여 전체 데이터가 모두 삭제되고 기본 삭제 정보만을 포함하는 제3 DRM 처리 데이터를 포함할 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
이어, 시스템 서버(100)는, 스트리밍 요청 영상의 재생 이력을 확인할 때, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, 시스템 서버(100)는, DRM 처리 데이터를 추출할 때, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 대한 데이터 요청량을 확인하고, 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 데이터 요청량 이상인지를 확인하며, DRM 처리 데이터가 데이터 요청량 이상이면 데이터 요청량에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말로 스트리밍할 수 있다.
이때, 시스템 서버(100)는, 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 때, 데이터 요청량이 재생 요청 시간 동안의 데이터양이면 재생 요청 시간에 상응하는 데이터양을 스트리밍 요청 영상에 대한 데이터 요청량으로 인지할 수 있다.
그리고, 시스템 서버(100)는, DRM 처리 데이터가 데이터 요청량 이상인지를 확인할 때, DRM 처리 데이터가 재생 요청 시간에 상응하는 데이터양과 동일하거나 또는 재생 요청 시간에 상응하는 데이터양보다 더 많은지를 확인할 수 있다.
또한, 시스템 서버(100)는, DRM 처리 데이터를 추출할 때, DRM 처리 데이터가 데이터 요청량 미만이면 DRM 처리 데이터 중 부족 데이터양을 산출하고, 부족 데이터양에 상응하는 원본 영상의 부분 데이터를 획득하여 DRM 처리하며, 데이터베이스에 기저장된 DRM 처리 데이터를 추출하고, 기저장된 DRM 처리 데이터와 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 합하여 사용자 단말로 스트리밍할 수 있다.
일 예로, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터에 연속되는 데이터이고, 기저장된 DRM 처리 데이터의 마지막 번째 패킷 데이터 다음에 연속되거나 또는 기저장된 DRM 처리 데이터의 첫 번째 패킷 데이터 이전에 연속될 수 있다.
여기서, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터의 마지막 번째 패킷 데이터 다음에 연속되면 기저장된 DRM 처리 데이터를 먼저 사용자 단말(200)로 스트리밍하고, 기저장된 DRM 처리 데이터가 스트리밍 완료되면 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 연속적으로 사용자 단말(200)로 스트리밍할 수 있다.
또한, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터의 첫 번째 패킷 데이터 이전에 연속되면 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 먼저 사용자 단말(200)로 스트리밍하고, 부족 데이터양에 상응하는 DRM 처리 부분 데이터가 스트리밍 완료되면 기저장된 DRM 처리 데이터를 연속적으로 사용자 단말(200)로 스트리밍할 수 있다.
다음, 시스템 서버(100)는, 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 때, 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 미존재하면 스트리밍 요청 영상에 재생 이력이 미존재하는 것으로 인지하고, 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 수 있다.
여기서, 시스템 서버(100)는, 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 때, 데이터 요청량이 재생 요청 시간 동안의 데이터양이면 재생 요청 시간에 상응하는 데이터양을 스트리밍 요청 영상에 대한 데이터 요청량으로 인지할 수 있다.
이어, 시스템 서버(100)는, 원본 영상의 부분 데이터를 획득할 때, 원본 영상들이 저장된 오리진 서버(origin server)의 데이터베이스를 탐색하여 스트리밍 요청 영상에 상응하는 원본 영상이 존재하는지를 확인하고, 데이터베이스에 스트리밍 요청 영상에 상응하는 원본 영상이 존재하면 스트리밍 요청 영상의 데이터 요청량을 기반으로 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 획득할 수 있다.
그리고, 시스템 서버(100)는, 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 때, 원본 영상의 부분 데이터가 획득되면 원본 영상의 부분 데이터를 암호화하기 위한 DRM 키를 발급하고, 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 수 있다.
여기서, 시스템 서버(100)는, 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 때, 특정 암호화 알고리즘을 기반으로 원본 영상의 부분 데이터를 DRM 처리할 수 있다.
일 예로, 특정 암호화 알고리즘은, AES-128-CTR 알고리즘을 포함할 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 시스템 서버(100)는, 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 때, 원본 영상의 부분 데이터가 획득되면 복수의 DRM 처리 데이터들이 기저장된 캐시 서버의 데이터베이스를 탐색하여 원본 영상의 부분 데이터에 상응하는 DRM 처리 데이터가 존재하는지를 확인하고, 원본 영상의 부분 데이터에 상응하는 DRM 처리 데이터가 존재하면 원본 영상의 부분 데이터에 대한 DRM 처리를 생략할 수 있다.
여기서, 시스템 서버(100)는, 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 때, 원본 영상의 부분 데이터가 획득되면 복수의 DRM 처리 데이터들이 기저장된 데이터베이스를 탐색하여 원본 영상의 부분 데이터에 상응하는 DRM 처리 데이터가 존재하는지를 확인하고, 원본 영상의 부분 데이터 중 일부분에 상응하는 DRM 처리 데이터가 존재하면 원본 영상의 부분 데이터 중 일부분에 대한 DRM 처리를 생략하며, 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 암호화하기 위한 DRM 키를 발급하고, 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 DRM 처리하여 암호화할 수 있다.
다음, 시스템 서버(100)는, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍할 때, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍하는 동안에 DRM 처리한 부분 데이터를 버퍼에 임시 저장할 수 있다.
여기서, 버퍼는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터를 임시 저장할 수 있다.
그리고, 시스템 서버(100)는, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍할 때, 사용자 단말(200)로 다운로드되는 부분 데이터의 전송 속도와 사용자 단말(200)에서 재생되는 부분 데이터의 재생 속도 사이에 속도 차이가 발생하면 버퍼에 임시 저장된 DRM 처리 부분 데이터를 사용자 단말(200)로 제공하여 속도 차이에 의한 딜레이를 차단할 수 있다.
또한, 버퍼의 크기는, 스트리밍 요청 영상의 데이터 요청량을 기반으로 설정될 수 있다.
일 예로, 버퍼의 크기는, 스트리밍 요청 영상에 대한 해상도 및 퀄리티 중 적어도 어느 하나를 기반으로 설정될 수 있다.
다른 일 예로, 버퍼의 크기는, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 설정될 수도 있다.
여기서, 네트워크 환경은, 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하는 시점에 상응하는 네트워크 환경을 포함할 수 있다.
다음, 시스템 서버(100)는, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍할 때, DRM 처리한 부분 데이터를 캐시 서버의 데이터베이스에 저장하고, 데이터베이스에 저장된 DRM 처리 부분 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, DRM 처리 부분 데이터는, 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하고, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
다른 경우로서, DRM 처리 부분 데이터는, 우선 순위가 부여되고, 부여된 우선 순위에 상응하여 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하며, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
여기서, DRM 처리 부분 데이터는, 설정한 저장 기간 동안 사용자 스트리밍 빈도수를 기반으로 우선 순위가 부여될 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 우선 순위가 부여된 DRM 처리 부분 데이터들 중 우선 순위가 설정값 이상인 DRM 처리 부분 데이터는, 별도의 특정 데이터 풀(pool)에 보관하고, 설정한 저장 기간이 도래 또는 상기 저장량 초과에 상응하는 삭제 대상에서 제외할 수 있다.
또한, 특정 데이터 풀에 보관되는 DRM 처리 부분 데이터는, 설정한 저장 기간 동안 상기 부여된 우선 순위가 설정값 이하로 감소하면 특정 데이터 풀에서 기존 DRM 처리 데이터들이 보관되는 일반 데이터 풀로 이동할 수 있다.
여기서, 일반 데이터 풀로 이동한 DRM 처리 부분 데이터는, 일반 데이터 풀로 이동한 시점부터 저장 기간을 재설정할 수 있다.
그리고, 시스템 서버(100)는, DRM 처리한 부분 데이터를 캐시 서버의 데이터베이스에 저장할 때, DRM 처리한 부분 데이터가 연속적으로 누적 저장되어 스트리밍 요청 영상의 전체 데이터에 대한 DRM 처리가 100% 완료되면 DRM 처리가 완료된 전체 데이터를 원본 영상들이 저장된 오리진 서버(Origin server)의 데이터베이스로 이동하여 저장하고, DRM 처리 데이터의 이동 위치 기록만을 남겨 저장할 수 있다.
여기서, 오리진 서버는, DRM 처리가 완료된 스트리밍 요청 영상의 전체 영상 데이터가 저장되면 스트리밍 요청 영상에 상응하는 DRM 미처리된 원본 영상을 삭제할 수 있다.
이어, 시스템 서버(100)는, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍할 때, 사용자 단말(200)로부터 DRM 처리가 완료된 스트리밍 요청 영상이 재요청되면 DRM 처리 과정을 생략하고, 오리진 서버(130)로부터 데이터 요청량에 상응하는 DRM 처리가 완료된 스트리밍 요청 영상의 부분 데이터를 획득하여 사용자 단말(200)로 스트리밍할 수 있다.
한편, 본 개시에서, 스트리밍 요청 영상에 대한 데이터 요청량은, 네트워크 환경에 기반하여 설정될 수 있다.
즉, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경에 기반하여 증가하거나 또는 감소할 수 있다.
일 예로, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 기 설정값 이상이면 증가하고, 스트리밍 데이터 전송 속도가 기 설정값 이상이면 감소할 수 있다.
여기서, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도의 증가율에 비례하여 증가하고, 스트리밍 데이터 전송 속도의 감소율에 비례하여 감소할 수 있다.
또한, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경을 실시간으로 모니터링하는 모니터링 결과를 기반으로 가변하여 결정할 수도 있다.
한편, 시스템 서버(100)는, 영상 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정하며, 추정한 버퍼 크기를 기반으로 스트리밍 요청 영상의 버퍼 크기를 결정할 수 있다.
여기서, 시스템 서버(100)는, 스트리밍 요청 영상의 상태 정보를 획득할 때, 스트리밍 요청 영상에 대한 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 스트리밍 요청 영상의 상태 정보를 획득할 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 시스템 서버(100)는, 스트리밍 요청 영상별로 버퍼 크기를 추정할 때, 스트리밍 요청 영상에 대한 정보와, 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정할 수 있다.
이어, 시스템 서버(100)는, 스트리밍 요청 영상의 버퍼 크기를 결정할 때, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기를 기반으로 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 결정한 버퍼 크기는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함할 수 있다.
또한, 시스템 서버(100)는, 스트리밍 요청 영상의 버퍼 크기를 결정할 때, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기와, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 결정될 수 있다.
여기서, 네트워크 환경은, 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하는 시점에 상응하는 네트워크 환경을 포함할 수 있다.
한편, 전술한 뉴럴 네트워크 모델은, 딥 뉴럴 네트워크일 수 있다. 본 명세서에 걸쳐, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는, 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 신경망을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨벌루셔널 뉴럴 네트워크 (CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크 등을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 시스템 서버(100)는, 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 딥러닝을 위한 프로세서를 포함할 수 있다. 시스템 서버(100)는, 데이터베이스에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 기계 학습을 위한 데이터 처리를 수행할 수 있다. 본 개시의 일실시예에 따라 시스템 서버(100)는, 신경망의 학습을 위한 연산을 수행할 수 있다. 시스템 서버(100)는, 딥러닝(DL: deep learning)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피처 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다. 시스템 서버(100)의 CPU, GPGPU, 및 TPU 중 적어도 하나가 네트워크 함수의 학습을 처리할 수 있다. 예를 들어, CPU 와 GPGPU가 함께 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에서 복수의 컴퓨팅 장치의 프로세서를 함께 사용하여 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은, CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.
본 개시의 일 실시예에 따르면, 데이터베이스는, 영상 스트리밍을 수행하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서에 의하여 판독되어 구동될 수 있다. 데이터베이스는, 시스템 서버(100)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부가 수신한 임의의 형태의 정보를 저장할 수 있다.
본 개시의 일 실시예에 따르면, 데이터베이스는, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 시스템 서버(100)는 인터넷(internet) 상에서 데이터베이스의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 데이터베이스에 대한 기재는 예시일 뿐, 이에 제한되지 않는다.
본 개시의 시스템 서버(100)는, 출력부 및 입력부를 더 포함할 수도 있다.
본 개시의 일 실시예에 따른 출력부는, 영상 스트리밍 결과를 제공하기 위한 사용자 인터페이스(UI, user interface)를 표시할 수 있다. 출력부는, 시스템 서버(100)가 생성하거나 결정한 임의의 형태의 정보 및 수신한 임의의 형태의 정보를 출력할 수 있다.
본 개시의 일 실시예에서, 출력부는, 액정 디스플레이(liquid crystal display, LCD), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display, TFT LCD), 유기 발광 다이오드(organic light-emitting diode, OLED), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다. 이들 중 일부 디스플레이 모듈은, 그를 통해 외부를 볼 수 있도록 투명형 또는 광 투과형으로 구성될 수 있다. 이는 투명 디스플레이 모듈이라 지칭될 수 있는데, 상기 투명 디스플레이 모듈의 대표적인 예로는 TOLED(Transparent OLED) 등이 있다.
본 개시의 일 실시예에 따른 입력부는, 사용자 입력을 수신할 수 있다. 입력부는, 사용자 입력을 수신받기 위한 사용자 인터페이스 상의 키 및/또는 버튼들, 또는 물리적인 키 및/또는 버튼들을 구비할 수 있다. 입력부를 통한 사용자 입력에 따라 본 개시의 실시예들에 따른 디스플레이를 제어하기 위한 컴퓨터 프로그램이 실행될 수 있다.
본 개시의 실시예들에 따른 입력부는, 사용자의 버튼 조작 또는 터치 입력을 감지하여 신호를 수신하거나, 카메라 또는 마이크로폰을 통하여 사용자 등의 음성 또는 동작을 수신하여 이를 입력 신호로 변환할 수도 있다. 이를 위해 음성 인식(Speech Recognition) 기술 또는 동작 인식(Motion Recognition) 기술들이 사용될 수 있다.
본 개시의 실시예들에 따른 입력부는, 시스템 서버(100)와 연결된 외부 입력 장비로서 구현될 수도 있다. 예를 들어, 입력 장비는 사용자 입력을 수신하기 위한 터치 패드, 터치 펜, 키보드 또는 마우스 중 적어도 하나일 수 있으나, 이는 예시일 뿐이며 이에 제한되는 것은 아니다.
본 개시의 일 실시예에 따른 입력부는, 사용자 터치 입력을 인식할 수 있다. 본 개시의 일 실시예에 따른 입력부는, 출력부와 동일한 구성일 수도 있다. 입력부는, 사용자의 선택 입력을 수신하도록 구현되는 터치 스크린으로 구성될 수 있다. 터치 스크린은, 접촉식 정전용량 방식, 적외선 광 감지 방식, 표면 초음파(SAW) 방식, 압전 방식, 저항막 방식 중 어느 하나의 방식이 사용될 수 있다. 전술한 터치 스크린에 대한 자세한 기재는, 본 개시의 일 실시예에 따른 예시일 뿐이며, 다양한 터치 스크린 패널이 시스템 서버(100)에 채용될 수 있다. 터치 스크린으로 구성된 입력부는, 터치 센서를 포함할 수 있다. 터치 센서는, 입력부의 특정 부위에 가해진 압력 또는 입력부의 특정 부위에 발생하는 정전 용량 등의 변화를 전기적인 입력신호로 변환하도록 구성될 수 있다. 터치 센서는, 터치 되는 위치 및 면적뿐만 아니라, 터치 시의 압력까지도 검출할 수 있도록 구성될 수 있다. 터치 센서에 대한 터치입력이 있는 경우, 그에 대응하는 신호(들)는 터치 제어기로 보내진다. 터치 제어기는, 그 신호(들)를 처리한 다음 대응하는 데이터를 시스템 서버(100)로 전송할 수 있다. 이로써, 시스템 서버(100)는 입력부의 어느 영역이 터치 되었는지 여부 등을 인식할 수 있게 된다.
이와 같이, 본 개시는, 사전 학습한 뉴럴 네트워크 모델을 이용하여 실시간으로 버퍼 크기 및 캐시 저장량을 최적으로 조절함으로써, DRM 처리 소요 시간에 상응하는 영상 컨텐츠 송신 딜레이를 최소화할 수 있다.
또한, 본 개시는, 스트리밍 요청 영상의 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 실시간으로 사용자 단말로 스트리밍함으로써, 시간, 비용, 그리고 공간을 최소화할 수 있다.
즉, 본 개시는, 실시간으로 사용자의 요청에 대한 응답으로써, DRM 처리와 동시에 영상을 스트리밍할 수 있다.
또한, 본 개시는, 전체 영상을 모두 DRM 처리하는 것이 아니라 데이터의 일부 조각을 선택적으로 DRM 처리함으로써, 보다 효율적인 DRM 처리 및 영상 스트리밍이 가능하다.
또한, 본 개시는, 실시간 스트리밍 환경 하에서 영상 용량이 많아질수록 DRM 처리가 늦어지는 문제를 해결하기 위하여, 실시간으로 버퍼 크기를 최적으로 조정함으로써, 로컬 환경에서 DRM 처리 소요 시간만큼 영상 컨텐츠 송신의 딜레이 문제를 해결할 수 있다.
또한, 본 개시는, 클라이언트인 사용자 단말과 시스템 서버 사이의 네트워크 환경을 고려하여, 스트리밍 요청 영상의 데이터 요청량을 스트리밍 최소 패킷 양으로 조정함으로써, 효율적인 영상 스트리밍이 가능하다.
도 2는, 도 1의 시스템 서버를 설명하기 위한 개략도이다.
도 2에 도시된 바와 같이, 본 개시의 시스템 서버는, 캐시 서버(Cache server)(110), DRM 패키징 서버(120), 오리진 서버(Origin server)(130), 그리고 DRM 키 관리 서버(140)를 포함할 수 있다.
여기서, 캐시 서버(110)는, DRM 클라이언트인 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하면 스트리밍 요청 영상에 대한 데이터 요청량을 DRM 패키징 서버(120)에 전달하고, DRM 패키징 서버(120)로부터 DRM 처리한 원본 영상의 부분 데이터가 수신되면 DRM 처리한 원본 영상의 부분 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
캐시 서버(110)는, 스트리밍 요청 영상에 대한 식별 정보를 기반으로 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 존재하면 스트리밍 요청 영상에 재생 이력이 존재하는 것으로 인지할 수 있다.
그리고, 캐시 서버(110)는, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, 캐시 서버(110)는, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 대한 데이터 요청량을 확인하고, 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 데이터 요청량 이상인지를 확인하며, DRM 처리 데이터가 데이터 요청량 이상이면 데이터 요청량에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
경우에 따라, 캐시 서버(110)는, DRM 처리 데이터가 데이터 요청량 미만이면 DRM 처리 데이터 중 부족 데이터양을 산출하고, 부족 데이터양에 상응하는 원본 영상의 부분 데이터를 획득하여 DRM 처리하도록 DRM 패키징 서버(120)로 요청하며, DRM 패키징 서버(120)로부터 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 수신하면 데이터베이스에 기저장된 DRM 처리 데이터와 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 합하여 사용자 단말(200)로 스트리밍할 수 있다.
일 예로, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터에 연속되는 데이터이고, 기저장된 DRM 처리 데이터의 마지막 번째 패킷 데이터 다음에 연속되거나 또는 기저장된 DRM 처리 데이터의 첫 번째 패킷 데이터 이전에 연속될 수 있다.
여기서, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터의 마지막 번째 패킷 데이터 다음에 연속되면 기저장된 DRM 처리 데이터를 먼저 사용자 단말(200)로 스트리밍하고, 기저장된 DRM 처리 데이터가 스트리밍 완료되면 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 연속적으로 사용자 단말(200)로 스트리밍할 수 있다.
또한, 부족 데이터양에 상응하는 DRM 처리 부분 데이터는, 기저장된 DRM 처리 데이터의 첫 번째 패킷 데이터 이전에 연속되면 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 먼저 사용자 단말(200)로 스트리밍하고, 부족 데이터양에 상응하는 DRM 처리 부분 데이터가 스트리밍 완료되면 기저장된 DRM 처리 데이터를 연속적으로 사용자 단말(200)로 스트리밍할 수 있다.
다음, 캐시 서버(110)는, 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 미존재하면 스트리밍 요청 영상에 재생 이력이 미존재하는 것으로 인지하고, 스트리밍 요청 영상에 대한 데이터 요청량을 확인하며, 데이터 요청량에 상응하는 스트리밍 영상을 DRM 패키징 서버(120)에 요청할 수 있다.
그리고, 캐시 서버(110)는, DRM 패키징 서버(120)로부터 수신되는 스트리밍 요청 영상에 대한 DRM 처리 부분 데이터를 데이터베이스에 저장하고, DRM 처리 부분 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, 캐시 서버(110)는, DRM 처리 부분 데이터에 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하고, DRM 처리 부분 데이터가 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
다른 경우로서, 캐시 서버(110)는, DRM 처리 부분 데이터에 우선 순위를 부여하고, 부여된 우선 순위에 상응하여 DRM 처리 부분 데이터에 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하며, DRM 처리 부분 데이터가 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
여기서, 캐시 서버(110)는, DRM 처리 부분 데이터에 설정한 저장 기간 동안 사용자 스트리밍 빈도수를 기반으로 우선 순위를 부여할 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 캐시 서버(110)는, 우선 순위가 부여된 DRM 처리 부분 데이터들 중 우선 순위가 설정값 이상인 DRM 처리 부분 데이터를 별도의 특정 데이터 풀(pool)에 보관하고, DRM 처리 부분 데이터를 설정한 저장 기간이 도래 또는 저장량 초과에 상응하는 삭제 대상에서 제외할 수 있다.
또한, 캐시 서버(110)는, 특정 데이터 풀에 보관되는 DRM 처리 부분 데이터가 설정한 저장 기간 동안 상기 부여된 우선 순위가 설정값 이하로 감소하면 DRM 처리 부분 데이터를 특정 데이터 풀에서 기존 DRM 처리 데이터들이 보관되는 일반 데이터 풀로 이동시킬 수 있다.
여기서, 캐시 서버(110)는, 일반 데이터 풀로 이동한 DRM 처리 부분 데이터에 대해 일반 데이터 풀로 이동한 시점부터 저장 기간을 재설정할 수 있다.
그리고, 캐시 서버(110)는, DRM 처리 부분 데이터가 연속적으로 누적 저장되어 스트리밍 요청 영상의 전체 데이터에 대한 DRM 처리가 100% 완료되면 DRM 처리가 완료된 전체 데이터를 원본 영상들이 저장된 오리진 서버(130)의 데이터베이스로 이동하여 저장시키고, DRM 처리 데이터의 이동 위치 기록만을 남겨 저장할 수 있다.
여기서, 오리진 서버(130)는, DRM 처리가 완료된 스트리밍 요청 영상의 전체 영상 데이터가 저장되면 스트리밍 요청 영상에 상응하는 DRM 미처리된 원본 영상을 삭제할 수 있다.
이어, 캐시 서버(110)는, 사용자 단말(200)로부터 DRM 처리가 완료된 스트리밍 요청 영상이 재요청되면 DRM 패키징 서버(120)에 DRM 처리 요청을 생략하고, 오리진 서버(130)로부터 데이터 요청량에 상응하는 DRM 처리가 완료된 스트리밍 요청 영상의 부분 데이터를 획득하여 사용자 단말(200)로 스트리밍할 수 있다. 일 예로, 오리진 서버(130)에서 데이터 획득 시 캐시 서버(110)에서 사전에 결정한 사이즈를 기반으로 버퍼 크기를 결정한 후, 상기 결정된 버퍼 크기에 해당하는 데이터만큼을 오리진 서버(130)로부터 획득할 수 있다.
또한, 캐시 서버(110)는, 영상 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정하며, 추정한 버퍼 크기를 기반으로 스트리밍 요청 영상의 버퍼 크기를 결정할 수 있다.
여기서, 캐시 서버(110)는, 스트리밍 요청 영상에 대한 정보와, 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정할 수 있다.
그리고, 캐시 서버(110)는, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기를 기반으로 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 결정한 버퍼 크기는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함할 수 있다.
경우에 따라, 캐시 서버(110)는, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기와, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 결정될 수 있다.
그리고, DRM 패키징 서버(120)는, 캐시 서버(110)로부터 스트리밍 요청 영상에 대한 데이터 요청량을 수신하면 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 오리진 서버(130)로부터 획득하고, 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 수 있다.
여기서, DRM 패키징 서버(120)는, 원본 영상의 부분 데이터가 획득되면 원본 영상의 부분 데이터를 암호화하기 위한 DRM 키를 DRM 키 관리 서버(140)에 발급 요청하고, DRM 키 관리 서버(140)로부터 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 수 있다.
일 예로, DRM 패키징 서버(120)는, AES-128-CTR 알고리즘 등을 포함하는 특정 암호화 알고리즘을 기반으로 원본 영상의 부분 데이터를 DRM 처리할 수 있다.
또한, DRM 패키징 서버(120)는, 오리진 서버(130)에 원본 영상의 부분 데이터에 상응하는 DRM 처리 데이터가 존재하면 원본 영상의 부분 데이터에 대한 DRM 처리를 생략할 수 있다.
경우에 따라, DRM 패키징 서버(120)는, 오리진 서버(130)에 원본 영상의 부분 데이터 중 일부분에 상응하는 DRM 처리 데이터만이 존재하면 원본 영상의 부분 데이터 중 일부분에 대한 DRM 처리를 생략하고, 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 암호화하기 위한 DRM 키를 DRM 키 관리 서버(140)에 발급 요청하고, DRM 키 관리 서버(140)로부터 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 DRM 처리하여 암호화할 수 있다.
다음, 오리진 서버(130)는, 원본 영상을 저장하고, DRM 패키징 서버(120)로부터 스트리밍 요청 영상에 대한 데이터 요청량을 수신하면 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 패키징 서버(120)로 제공할 수 있다.
여기서, 오리진 서버(130)는, 원본 영상들이 저장된 데이터베이스를 탐색하여 스트리밍 요청 영상에 상응하는 원본 영상이 존재하는지를 확인하고, 데이터베이스에 스트리밍 요청 영상에 상응하는 원본 영상이 존재하면 스트리밍 요청 영상의 데이터 요청량을 기반으로 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 패키징 서버(120)로 제공할 수 있다.
이어, DRM 키 관리 서버(140)는, DRM 패키징 서버(120)로부터 DRM 키 발급 요청이 수신되면 원본 영상의 부분 데이터 암호화를 위한 DRM 키를 발급하여 DRM 패키징 서버(120)에 제공하고, DRM 처리한 부분 데이터가 사용자 단말(200)로 스트리밍되면 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 사용자 단말(200)로 전송할 수 있다.
도 3은, 본 개시에 따른 영상 스트리밍 시스템의 영상 스트리밍 과정을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 사용자 단말(200)은, 캐시 서버(110)에 영상 스트리밍을 요청할 수 있다.
여기서, 사용자 단말(200)은, 캐시 서버(110)에 영상 스트리밍을 요청할 때, 스트리밍 요청 영상의 필요 데이터양을 요청할 수 있다.
일 예로, 사용자 단말(200)은, 약 30초 영상 재생에 필요한 데이터양을 요청할 수 있다.
스트리밍 요청 영상에 대한 데이터 요청량은, 네트워크 환경에 기반하여 설정될 수 있다.
즉, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경에 기반하여 증가하거나 또는 감소할 수 있다.
예를 들면, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 기 설정값 이상이면 증가하고, 스트리밍 데이터 전송 속도가 기 설정값 이상이면 감소할 수 있다.
경우에 따라, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도의 증가율에 비례하여 증가하고, 스트리밍 데이터 전송 속도의 감소율에 비례하여 감소할 수 있다.
다른 경우로서, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경을 실시간으로 모니터링하는 모니터링 결과를 기반으로 가변하여 결정할 수도 있다.
다음, 캐시 서버(110)는, DRM 클라이언트인 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하면 스트리밍 요청 영상에 대한 데이터 요청량을 DRM 패키징 서버(120)에 전달할 수 있다(S10).
여기서, 캐시 서버(110)는, 스트리밍 요청 영상에 대한 식별 정보를 기반으로 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 존재하면 스트리밍 요청 영상에 재생 이력이 존재하는 것으로 인지할 수 있다.
그리고, 캐시 서버(110)는, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말(200)로 바로 스트리밍할 수 있다.
여기서, 캐시 서버(110)는, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 대한 데이터 요청량을 확인하고, 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 데이터 요청량 이상인지를 확인하며, DRM 처리 데이터가 데이터 요청량 이상이면 데이터 요청량에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
캐시 서버(110)는, DRM 처리 데이터가 데이터 요청량 미만이면 DRM 처리 데이터 중 부족 데이터양을 산출하고, 부족 데이터양에 상응하는 원본 영상의 부분 데이터를 획득하여 DRM 처리하도록 DRM 패키징 서버(120)로 요청하며, DRM 패키징 서버(120)로부터 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 수신하면 데이터베이스에 기저장된 DRM 처리 데이터와 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 합하여 사용자 단말(200)로 스트리밍할 수 있다.
또한, 캐시 서버(110)는, 데이터베이스에 저장된 복수의 DRM 처리 데이터들 중 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 미존재하면 스트리밍 요청 영상에 재생 이력이 미존재하는 것으로 인지하고, 스트리밍 요청 영상에 대한 데이터 요청량을 확인하며, 데이터 요청량에 상응하는 스트리밍 영상을 DRM 패키징 서버(120)에 요청할 수 있다.
이어, DRM 패키징 서버(120)는, 캐시 서버(110)로부터 스트리밍 요청 영상에 대한 데이터 요청량을 수신하면 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 오리진 서버(130)에 요청할 수 있다(S20).
다음, 오리진 서버(130)는, DRM 패키징 서버(120)의 데이터 요청에 상응하는 원본 영상의 부분 데이터를 DRM 패키징 서버(120)로 제공할 수 있다.
여기서, 오리진 서버(130)는, 원본 영상들이 저장된 데이터베이스를 탐색하여 스트리밍 요청 영상에 상응하는 원본 영상이 존재하는지를 확인하고, 데이터베이스에 스트리밍 요청 영상에 상응하는 원본 영상이 존재하면 스트리밍 요청 영상의 데이터 요청량을 기반으로 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 패키징 서버(120)로 제공할 수 있다.
그리고, DRM 패키징 서버(120)는, 오리진 서버(130)로부터 원본 영상의 부분 데이터를 획득하면 원본 영상의 부분 데이터를 암호화하기 위한 DRM 키를 DRM 키 관리 서버(140)에 발급 요청할 수 있다.
이어, DRM 키 관리 서버(140)는, DRM 패키징 서버(120)로부터 DRM 키 발급 요청이 수신되면 원본 영상의 부분 데이터 암호화를 위한 DRM 키를 발급하여 DRM 패키징 서버(120)에 제공할 수 있다(S30).
다음, DRM 패키징 서버(120)는, DRM 키 관리 서버(140)로부터 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터를 DRM 처리하여 암호화하고, DRM 처리한 부분 데이터를 캐시 서버(110)로 제공할 수 있다(S40).
여기서, DRM 패키징 서버(120)는, AES-128-CTR 알고리즘 등을 포함하는 특정 암호화 알고리즘을 기반으로 원본 영상의 부분 데이터를 DRM 처리할 수 있다.
경우에 따라, DRM 패키징 서버(120)는, 오리진 서버(130)로부터 획득한 원본 영상의 부분 데이터가 DRM 처리된 부분 데이터이면 원본 영상의 부분 데이터에 대한 DRM 처리를 생략할 수 있다.
다른 경우로서, DRM 패키징 서버(120)는, 오리진 서버(130)로부터 획득한 원본 영상의 부분 데이터 중 일부분이 DRM 처리된 데이터이면 일부분에 대한 DRM 처리를 생략하고, 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 암호화하기 위한 DRM 키를 DRM 키 관리 서버(140)에 발급 요청하고, DRM 키 관리 서버(140)로부터 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터 중 일부분을 제외한 나머지 부분에 대한 데이터를 DRM 처리하여 암호화할 수 있다.
이어, 캐시 서버(110)는, DRM 패키징 서버(120)로부터 DRM 처리한 원본 영상의 부분 데이터가 수신되면 DRM 처리한 원본 영상의 부분 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, 캐시 서버(110)는, DRM 처리한 부분 데이터를 사용자 단말(200)로 스트리밍하는 동안에 DRM 처리한 부분 데이터를 버퍼에 임시 저장할 수 있다.
버퍼는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터를 임시 저장할 수 있다.
캐시 서버(110)는, 사용자 단말(200)로 다운로드되는 부분 데이터의 전송 속도와 사용자 단말(200)에서 재생되는 부분 데이터의 재생 속도 사이에 속도 차이가 발생하면 버퍼에 임시 저장된 DRM 처리 부분 데이터를 사용자 단말(200)로 제공하여 속도 차이에 의한 딜레이를 차단할 수 있다.
버퍼의 크기는, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 설정될 수 있다.
또한, 캐시 서버(110)는, DRM 처리한 부분 데이터를 데이터베이스에 저장하고, 데이터베이스에 저장된 DRM 처리 부분 데이터를 사용자 단말(200)로 스트리밍할 수 있다.
여기서, DRM 처리 부분 데이터는, 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하고, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
다른 경우로서, DRM 처리 부분 데이터는, 우선 순위가 부여되고, 부여된 우선 순위에 상응하여 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하며, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
여기서, DRM 처리 부분 데이터는, 설정한 저장 기간 동안 사용자 스트리밍 빈도수를 기반으로 우선 순위가 부여될 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 우선 순위가 부여된 DRM 처리 부분 데이터들 중 우선 순위가 설정값 이상인 DRM 처리 부분 데이터는, 별도의 특정 데이터 풀(pool)에 보관하고, 설정한 저장 기간이 도래 또는 상기 저장량 초과에 상응하는 삭제 대상에서 제외할 수 있다.
또한, 특정 데이터 풀에 보관되는 DRM 처리 부분 데이터는, 설정한 저장 기간 동안 상기 부여된 우선 순위가 설정값 이하로 감소하면 특정 데이터 풀에서 기존 DRM 처리 데이터들이 보관되는 일반 데이터 풀로 이동할 수 있다.
여기서, 일반 데이터 풀로 이동한 DRM 처리 부분 데이터는, 일반 데이터 풀로 이동한 시점부터 저장 기간을 재설정할 수 있다.
그리고, 캐시 서버(110)는, DRM 처리한 부분 데이터가 연속적으로 누적 저장되어 스트리밍 요청 영상의 전체 데이터에 대한 DRM 처리가 100% 완료되면 DRM 처리가 완료된 전체 데이터를 원본 영상들이 저장된 오리진 서버(130)의 데이터베이스로 이동하여 저장하고, DRM 처리 데이터의 이동 위치 기록만을 남겨 저장할 수 있다.
여기서, 오리진 서버(130)는, DRM 처리가 완료된 스트리밍 요청 영상의 전체 영상 데이터가 저장되면 스트리밍 요청 영상에 상응하는 DRM 미처리된 원본 영상을 삭제할 수 있다.
또한, 캐시 서버(110)는, 사용자 단말(200)로부터 DRM 처리가 완료된 스트리밍 요청 영상이 재요청되면 DRM 처리 과정을 생략하고, 오리진 서버(130)로부터 데이터 요청량에 상응하는 DRM 처리가 완료된 스트리밍 요청 영상의 부분 데이터를 직접 획득하여 사용자 단말(200)로 스트리밍할 수도 있다.
다음, DRM 키 관리 서버(140)는, DRM 처리한 부분 데이터가 사용자 단말(200)로 스트리밍되면 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 사용자 단말(200)로 전송할 수 있다(S50).
한편, 캐시 서버(110)는, 영상 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정하며, 추정한 버퍼 크기를 기반으로 스트리밍 요청 영상의 버퍼 크기를 결정할 수 있다.
여기서, 캐시 서버(110)는, 스트리밍 요청 영상의 상태 정보를 획득할 때, 스트리밍 요청 영상에 대한 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 스트리밍 요청 영상의 상태 정보를 획득할 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
또한, 캐시 서버(110)는, 스트리밍 요청 영상별로 버퍼 크기를 추정할 때, 스트리밍 요청 영상에 대한 정보와, 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정할 수 있다.
이어, 캐시 서버(110)는, 스트리밍 요청 영상의 버퍼 크기를 결정할 때, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기를 기반으로 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 결정한 버퍼 크기는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함할 수 있다.
또한, 캐시 서버(110)는, 스트리밍 요청 영상의 버퍼 크기를 결정할 때, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기와, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 결정될 수 있다.
여기서, 네트워크 환경은, 사용자 단말(200)로부터 영상 스트리밍 요청을 수신하는 시점에 상응하는 네트워크 환경을 포함할 수 있다.
도 4는, 본 개시에 따른 영상 스트리밍 시스템의 스트리밍 요청 영상 부분 데이터 암호화 과정을 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, 본 개시는, 스트리밍 요청 영상에 대한 부분 데이터를 암호화할 수 있다.
즉, 본 개시는, 스트리밍 요청 영상에 대한 전체 데이터를 암호화하는 것이 아니라, 데이터 요청량에 상응하는 부분 데이터를 암호화할 수 있다.
스트리밍 요청 영상은, 데이터 위치 정보와 데이터 해독 정보를 포함하는 헤더와 미디어 정보를 포함하는 데이터 블록으로 구성될 수 있다.
여기서, 데이터 블록은, 복수의 미디어 데이터 블록들을 포함할 수 있다.
그리고, 본 개시는, 각각의 미디어 데이터 블록별로 암호화를 수행할 수 있다.
또한, 본 개시는, 각 미디어 데이터 블록을 복수의 부분 데이터들로 나누어 각 미디어 데이터 블록의 부분 데이터별로 암호화를 수행할 수도 있다.
여기서, 본 개시는, 데이터의 최소 암호화 단위를 AES-128-CTR 알고리즘 등을 포함하는 특정 암호화 알고리즘에 대한 스펙에 따라 다양하게 설정할 수 있다.
일 예로, 데이터의 최소 암호화 단위는, 약 128 비트(bit)일 수 있는데, 이는 일 실시예일 뿐, 이에 한정되지 않는다.
그리고, 각 미디어 데이터 블록의 크기는, 사용자의 요청에 따라 임의 설정이 가능하다.
이와 같이, 본 개시는, 발급한 DRM 키를 사용하여 스트리밍 요청 영상의 데이터 요청량에 상응하는 부분 데이터를 DRM 처리하여 암호화할 수 있다.
따라서, 본 개시는, 전체 영상을 모두 DRM 처리하는 것이 아니라 데이터의 일부 조각을 선택적으로 DRM 처리함으로써, 보다 효율적인 DRM 처리 및 영상 스트리밍이 가능하다.
도 5는, 본 개시에 따른 영상 스트리밍 방법을 설명하기 위한 흐름도이다.
도 5에 도시된 바와 같이, 본 개시는, 사용자 단말로부터 영상 스트리밍 요청을 수신할 수 있다(S210).
그리고, 본 개시는, 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득할 수 있다(S220).
여기서, 본 개시는, 스트리밍 요청 영상에 대한 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 스트리밍 요청 영상의 상태 정보를 획득할 수 있다.
이어, 본 개시는, 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정할 수 있다(S230).
여기서, 본 개시는, 스트리밍 요청 영상에 대한 정보와, 사용자 스트리밍 요청 횟수, 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 스트리밍 요청 영상별로 버퍼 크기를 추정할 수 있다.
다음, 본 개시는, 추정한 버퍼 크기를 기반으로 스트리밍 요청 영상의 버퍼 크기를 결정할 수 있다(S240).
여기서, 본 개시는, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기를 기반으로 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 결정한 버퍼 크기는, 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함할 수 있다.
본 개시는, 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기와, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 결정될 수 있다.
여기서, 네트워크 환경은, 사용자 단말로부터 영상 스트리밍 요청을 수신하는 시점에 상응하는 네트워크 환경을 포함할 수 있다.
그리고, 본 개시는, 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 수 있다(S250).
여기서, 본 개시는, 스트리밍 요청에 상응하여 스트리밍 요청 영상의 재생 이력을 확인하고, 스트리밍 재생 이력이 미존재하면 스트리밍 요청 영상에 대한 데이터 요청량을 확인할 수 있다.
또한, 본 개시는, 스트리밍 요청 영상에 재생 이력이 존재하면 스트리밍 요청 영상에 상응하는 DRM 처리 데이터를 데이터베이스로부터 추출하고, 추출한 DRM 처리 데이터를 사용자 단말로 스트리밍할 수 있다.
여기서, 스트리밍 요청 영상에 대한 데이터 요청량은, 네트워크 환경에 기반하여 설정될 수 있다.
일 예로, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경에 기반하여 증가하거나 또는 감소할 수 있다.
다른 일 예로, 스트리밍 요청 영상에 대한 데이터 요청량은, 스트리밍 데이터 전송 속도가 변동되는 네트워크 환경을 실시간으로 모니터링하는 모니터링 결과를 기반으로 가변하여 결정할 수도 있다.
이어, 본 개시는, 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 수 있다(S260).
여기서, 본 개시는, 스트리밍 요청 영상에 상응하는 원본 영상이 존재하는지를 확인하고, 데이터베이스에 스트리밍 요청 영상에 상응하는 원본 영상이 존재하면 스트리밍 요청 영상의 데이터 요청량을 기반으로 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 획득할 수 있다.
또한, 본 개시는, 원본 영상의 부분 데이터가 획득되면 원본 영상의 부분 데이터를 암호화하기 위한 DRM 키를 발급하고, 발급한 DRM 키를 사용하여 원본 영상의 부분 데이터를 DRM 처리하여 암호화할 수 있다.
다음, 본 개시는, DRM 처리한 부분 데이터를 버퍼에 임시 저장할 수 있다(S270).
여기서, 본 개시는, DRM 처리한 부분 데이터를 사용자 단말로 스트리밍하는 동안에 DRM 처리한 부분 데이터를 버퍼에 임시 저장할 수 있다.
또한, 본 개시는, 사용자 단말로 다운로드되는 부분 데이터의 전송 속도와 사용자 단말에서 재생되는 부분 데이터의 재생 속도 사이에 속도 차이가 발생하면 버퍼에 임시 저장된 DRM 처리 부분 데이터를 사용자 단말로 제공하여 속도 차이에 의한 딜레이를 차단할 수 있다.
그리고, 본 개시는, DRM 처리한 부분 데이터를 사용자 단말로 스트리밍할 수 있다(S280).
여기서, 본 개시는, DRM 처리한 부분 데이터를 사용자 단말로 스트리밍하는 동안에 DRM 처리한 부분 데이터를 버퍼에 임시 저장할 수 있다.
일 예로, 버퍼의 크기는, 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경 중 적어도 어느 하나를 기반으로 설정될 수 있다.
또한, 본 개시는, DRM 처리한 부분 데이터를 데이터베이스에 저장하고, 데이터베이스에 저장된 DRM 처리 부분 데이터를 사용자 단말로 스트리밍할 수 있다.
여기서, DRM 처리 부분 데이터는, 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하고, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수 있다.
경우에 따라, DRM 처리 부분 데이터는, 우선 순위가 부여되고, 부여된 우선 순위에 상응하여 저장 기간 및 저장량 중 적어도 어느 하나를 설정하여 데이터베이스에 저장하며, 설정한 저장 기간이 도래하거나 또는 저장량이 초과되면 삭제될 수도 있다.
다른 경우로서, 우선 순위가 부여된 DRM 처리 부분 데이터들 중 우선 순위가 설정값 이상인 DRM 처리 부분 데이터는, 별도의 특정 데이터 풀(pool)에 보관하고, 설정한 저장 기간이 도래 또는 저장량 초과에 상응하는 삭제 대상에서 제외할 수도 있다.
또 다른 경우로서, 특정 데이터 풀에 보관되는 DRM 처리 부분 데이터는, 설정한 저장 기간 동안 부여된 우선 순위가 설정값 이하로 감소하면 특정 데이터 풀에서 기존 DRM 처리 데이터들이 보관되는 일반 데이터 풀로 이동할 수도 있다.
여기서, 일반 데이터 풀로 이동한 DRM 처리 부분 데이터는, 일반 데이터 풀로 이동한 시점부터 저장 기간을 재설정할 수 있다.
다음, 본 개시는, 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 사용자 단말로 전송할 수 있다(S290).
이와 같이, 본 개시는, 사전 학습한 뉴럴 네트워크 모델을 이용하여 실시간으로 버퍼 크기 및 캐시 저장량을 최적으로 조절함으로써, DRM 처리 소요 시간에 상응하는 영상 컨텐츠 송신 딜레이를 최소화할 수 있다.
또한, 본 개시는, 스트리밍 요청 영상의 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 실시간으로 사용자 단말로 스트리밍함으로써, 시간, 비용, 그리고 공간을 최소화할 수 있다.
즉, 본 개시는, 실시간으로 사용자의 요청에 대한 응답으로써, DRM 처리와 동시에 영상을 스트리밍할 수 있다.
또한, 본 개시는, 전체 영상을 모두 DRM 처리하는 것이 아니라 데이터의 일부 조각을 선택적으로 DRM 처리함으로써, 보다 효율적인 DRM 처리 및 영상 스트리밍이 가능하다.
또한, 본 개시는, 실시간 스트리밍 환경 하에서 영상 용량이 많아질수록 DRM 처리가 늦어지는 문제를 해결하기 위하여, 실시간으로 버퍼 크기를 최적으로 조정함으로써, 로컬 환경에서 DRM 처리 소요 시간만큼 영상 컨텐츠 송신의 딜레이 문제를 해결할 수 있다.
또한, 본 개시는, 클라이언트인 사용자 단말과 시스템 서버 사이의 네트워크 환경을 고려하여, 스트리밍 요청 영상의 데이터 요청량을 스트리밍 최소 패킷 양으로 조정함으로써, 효율적인 영상 스트리밍이 가능하다.
이상에서 전술한 본 개시의 일 실시예에 따른 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
본 개시의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 개시의 실시예를 설명하였지만, 본 개시가 속하는 기술분야의 통상의 기술자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. 사용자 단말 및 상기 사용자 단말에 통신 연결되는 시스템 서버를 포함하는 영상 스트리밍 시스템의 영상 스트리밍 방법에 있어서,
    상기 시스템 서버를 통해, 상기 사용자 단말로부터 영상 스트리밍 요청을 수신하는 단계;
    상기 시스템 서버를 통해, 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하는 단계;
    상기 시스템 서버를 통해, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 단계;
    상기 시스템 서버를 통해, 상기 추정한 버퍼 크기를 기반으로 상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계;
    상기 시스템 서버를 통해, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 확인하는 단계;
    상기 시스템 서버를 통해, 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화하는 단계;
    상기 시스템 서버를 통해, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하고, 상기 사용자 단말로 스트리밍하는 단계; 및
    상기 시스템 서버를 통해, 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하는 단계를 포함하며,
    상기 스트리밍 요청 영상별로 버퍼 크기를 추정하는 단계는,
    상기 스트리밍 요청 영상에 대한 식별 정보, 사용자 스트리밍 요청 횟수, 상기 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 상기 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경을 포함하는 상태 정보를 상기 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하고,
    상기 스트리밍 요청 영상의 버퍼 크기를 결정하는 단계는,
    상기 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기, 상기 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경을 기반으로 상기 스트리밍 요청 영상별로 버퍼 크기를 결정하고,
    상기 결정한 버퍼 크기는, 상기 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함하며,
    상기 사용자 단말로 스트리밍하는 단계는,
    상기 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 데이터 요청량 미만이면 DRM 처리 데이터 중 부족 데이터양을 산출하고, 상기 부족 데이터양에 상응하는 원본 영상의 부분 데이터를 획득하여 DRM 처리하도록 DRM 패키징 서버로 요청하며, 상기 DRM 패키징 서버로부터 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 수신받으면, 데이터베이스에 기저장된 DRM 처리 데이터와 상기 DRM 처리 부분 데이터를 합하여 상기 사용자 단말로 스트리밍하는 것을 특징으로 하는 영상 스트리밍 방법.
  2. 제1 항에 있어서,
    상기 스트리밍 요청 영상의 상태 정보를 획득하는 단계는,
    상기 스트리밍 요청 영상에 대한 사용자 스트리밍 요청 횟수, 상기 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 상기 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경 중 적어도 어느 하나를 포함하는 상기 스트리밍 요청 영상의 상태 정보를 획득하는 것을 특징으로 하는 영상 스트리밍 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1 항에 있어서,
    상기 네트워크 환경은,
    상기 사용자 단말로부터 영상 스트리밍 요청을 수신하는 시점에 상응하는 네트워크 환경을 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  7. 제1 항에 있어서,
    상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 단계는,
    상기 DRM 처리한 부분 데이터를 상기 사용자 단말로 스트리밍하는 동안에 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 것을 특징으로 하는 영상 스트리밍 방법.
  8. 제1 항에 있어서,
    상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하는 단계는,
    상기 사용자 단말로 다운로드되는 부분 데이터의 전송 속도와 상기 사용자 단말에서 재생되는 부분 데이터의 재생 속도 사이에 속도 차이가 발생하면 상기 버퍼에 임시 저장된 DRM 처리 부분 데이터를 상기 사용자 단말로 제공하여 상기 속도 차이에 의한 딜레이를 차단하는 것을 특징으로 하는 영상 스트리밍 방법.
  9. 영상 스트리밍을 요청하는 사용자 단말; 그리고,
    상기 사용자 단말에 통신 연결되어 DRM(Digital Rights Management) 처리 영상을 스트리밍하는 시스템 서버를 포함하고,
    상기 시스템 서버는,
    상기 사용자 단말로부터 영상 스트리밍 요청을 수신하면 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하며, 상기 추정한 버퍼 크기를 기반으로 상기 스트리밍 요청 영상의 버퍼 크기를 결정하고, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 확인하며, 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 DRM 처리하여 암호화하고, 상기 DRM 처리한 부분 데이터를 상기 버퍼에 임시 저장하여 상기 사용자 단말로 스트리밍하며, 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하고,
    상기 스트리밍 요청 영상별로 버퍼 크기를 추정할 때에, 스트리밍 요청 영상에 대한 정보, 사용자 스트리밍 요청 횟수, 상기 스트리밍 요청 영상의 데이터 구간별 반복 스트리밍 요청 횟수, 상기 스트리밍 요청 영상에 대한 사용자 조회 비율, 현재 네트워크 환경을 포함하는 상태 정보를 상기 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 추정하고,
    상기 스트리밍 요청 영상의 버퍼 크기를 결정할 때에, 상기 뉴럴 네트워크 모델을 통해 추정된 버퍼 크기, 상기 스트리밍 요청 영상에 대한 데이터 크기, 해상도, 퀄리티 및 네트워크 환경을 기반으로 상기 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 상기 결정한 버퍼 크기는, 상기 스트리밍 요청 영상의 데이터 요청량보다 더 많은 양을 갖는 DRM 처리 부분 데이터가 임시 저장 가능한 크기를 포함하고,
    상기 사용자 단말로 스트리밍할 때에, 상기 스트리밍 요청 영상에 상응하는 DRM 처리 데이터가 데이터 요청량 미만이면 DRM 처리 데이터 중 부족 데이터양을 산출하고, 상기 부족 데이터양에 상응하는 원본 영상의 부분 데이터를 획득하여 DRM 처리하도록 DRM 패키징 서버로 요청하며, 상기 DRM 패키징 서버로부터 부족 데이터양에 상응하는 DRM 처리 부분 데이터를 수신받으면, 데이터베이스에 기저장된 DRM 처리 데이터와 상기 DRM 처리 부분 데이터를 합하여 상기 사용자 단말로 스트리밍하는 것을 특징으로 하는 영상 스트리밍 시스템.
  10. 제9 항에 있어서,
    상기 시스템 서버는,
    상기 사용자 단말로부터 영상 스트리밍 요청을 수신하면 상기 스트리밍 요청에 상응하여 스트리밍 요청 영상의 상태 정보를 획득하고, 상기 스트리밍 요청 영상의 상태 정보를 사전 학습한 뉴럴 네트워크 모델에 입력하여 상기 스트리밍 요청 영상별로 버퍼 크기를 결정하고, 상기 스트리밍 요청 영상에 대한 데이터 요청량을 전달하며, 상기 DRM 처리한 원본 영상의 부분 데이터가 수신되면 상기 DRM 처리한 원본 영상의 부분 데이터를 상기 버퍼에 임시 저장하여 상기 사용자 단말로 스트리밍하는 캐시 서버;
    상기 캐시 서버로부터 상기 스트리밍 요청 영상에 대한 데이터 요청량을 수신하면 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 획득하고, 상기 원본 영상의 부분 데이터를 DRM 처리하여 암호화하는 DRM 패키징 서버;
    상기 원본 영상을 저장하고, 상기 DRM 패키징 서버로부터 상기 스트리밍 요청 영상에 대한 데이터 요청량을 수신하면 상기 데이터 요청량에 상응하는 원본 영상의 부분 데이터를 제공하는 오리진 서버(Origin server); 그리고,
    상기 DRM 패키징 서버로부터 DRM 키 발급 요청이 수신되면 상기 원본 영상의 부분 데이터 암호화를 위한 DRM 키를 발급하여 상기 DRM 패키징 서버에 제공하고, 상기 DRM 처리한 부분 데이터가 상기 사용자 단말로 스트리밍되면 상기 스트리밍된 부분 데이터 복호화를 위한 DRM 키를 상기 사용자 단말로 전송하는 DRM 키 관리 서버를 포함하는 것을 특징으로 하는 영상 스트리밍 시스템.
KR1020220158239A 2022-11-23 2022-11-23 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법 KR102527986B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220158239A KR102527986B1 (ko) 2022-11-23 2022-11-23 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220158239A KR102527986B1 (ko) 2022-11-23 2022-11-23 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102527986B1 true KR102527986B1 (ko) 2023-05-02

Family

ID=86387553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220158239A KR102527986B1 (ko) 2022-11-23 2022-11-23 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102527986B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060024351A (ko) * 2003-03-21 2006-03-16 노키아 코포레이션 멀티미디어 스트리밍 방법 및 장치
KR20060064469A (ko) 2004-12-08 2006-06-13 한국전자통신연구원 멀티캐스트 방식으로 스트리밍 서비스되는 동영상 파일의보호 장치 및 그 방법
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법
KR20190088380A (ko) * 2018-01-18 2019-07-26 경북대학교 산학협력단 딥 러닝 기반 적응형 멀티미디어 스트리밍 제공방법 및 그 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060024351A (ko) * 2003-03-21 2006-03-16 노키아 코포레이션 멀티미디어 스트리밍 방법 및 장치
KR20060064469A (ko) 2004-12-08 2006-06-13 한국전자통신연구원 멀티캐스트 방식으로 스트리밍 서비스되는 동영상 파일의보호 장치 및 그 방법
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법
KR20190088380A (ko) * 2018-01-18 2019-07-26 경북대학교 산학협력단 딥 러닝 기반 적응형 멀티미디어 스트리밍 제공방법 및 그 시스템

Similar Documents

Publication Publication Date Title
CN108369596B (zh) 个性化自然语言理解系统
JP6850877B2 (ja) オンデバイスモデルを使用するスマートリプライ
US20190236747A1 (en) Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system
EP3654330B1 (en) Methods and systems for determining a wake word
CN105530284B (zh) 文件同步方法
US9258299B2 (en) Biometric cloud communication and data movement
US10885341B2 (en) Deep reinforcement learning framework for characterizing video content
EP2972987B1 (en) Sensor associated data of multiple devices based computing
US11785014B1 (en) Apparatus and methods for securely delivering digital content
EP2818978B1 (en) System and method for gesture disambiguation
US20220272096A1 (en) Media data based user profiles
US20220303621A1 (en) Method and Apparatus for Providing Video Stream Based on Machine Learning
US20200220869A1 (en) Systems and methods for contactless authentication using voice recognition
KR102527986B1 (ko) 인공 지능 기반 버퍼 크기 조절을 통한 영상 스트리밍 시스템 및 방법
KR102371487B1 (ko) 명목형 데이터를 포함하는 데이터를 기반으로 하는 학습 방법 및 장치
US11704395B2 (en) Methods for augmented reality data decryption and devices thereof
KR102527985B1 (ko) 실시간 drm 기반 영상 스트리밍 시스템 및 그의 영상 스트리밍 방법
WO2022121183A1 (zh) 文本模型的训练方法、识别方法、装置、设备及存储介质
US20230306969A1 (en) Systems and methods for determining traits based on voice analysis
KR20170093799A (ko) 신뢰 예측 분석 실행 미들웨어
KR20240076102A (ko) 캐시 조각 저장량 기반의 노드 전환을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍을 위한 시스템 및 방법
KR20240076100A (ko) 스트리밍 요청에 따른 패킷 단위 기반의 drm 처리를 위한 방법 및 이를 사용한 장치
US20220345772A1 (en) Image Selection Using Motion Data
KR20240076101A (ko) 네트워크 적응형 실시간 변동 drm을 처리하기 위한 방법 및 이를 사용한 장치
KR102406634B1 (ko) 미래 상호작용 예측 기반의 개인화 추천 방법 및 시스템

Legal Events

Date Code Title Description
GRNT Written decision to grant