KR20160098927A - 스트리밍 컨텐츠 제공 장치 및 방법 - Google Patents

스트리밍 컨텐츠 제공 장치 및 방법 Download PDF

Info

Publication number
KR20160098927A
KR20160098927A KR1020150021203A KR20150021203A KR20160098927A KR 20160098927 A KR20160098927 A KR 20160098927A KR 1020150021203 A KR1020150021203 A KR 1020150021203A KR 20150021203 A KR20150021203 A KR 20150021203A KR 20160098927 A KR20160098927 A KR 20160098927A
Authority
KR
South Korea
Prior art keywords
scene
repeated
video data
encoded video
streaming
Prior art date
Application number
KR1020150021203A
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 KR1020150021203A priority Critical patent/KR20160098927A/ko
Publication of KR20160098927A publication Critical patent/KR20160098927A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 네트워크를 통한 서비스 제공 기술에 관한 것으로, 더 자세하게는 스트리밍 컨텐츠 제공 기술에 관한 것이다. 본 발명은 실시간 스트리밍 서비스 제공에 따라 발생하는 지연 개선과 스트리밍 서비스의 시스템 자원 절약을 목적으로 한다.
일 양상에 따르면, 스트리밍 컨텐츠 제공 장치는 비디오 데이터를 사용자 단말로 스트리밍 하되, 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여 반복되는 장면의 비디오 데이터를 추출하고, 스트리밍 되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 메모리에 저장하거나 사용자 단말로 전송한다.

Description

스트리밍 컨텐츠 제공 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING STREAMING CONTENTS}
본 발명은 네트워크를 통한 서비스 제공 기술에 관한 것으로, 더 자세하게는 스트리밍 컨텐츠 제공 기술에 관한 것이다.
네트워크 전송 기술 및 미디어 암호화 기술의 발전에 의해 미디어 컨텐츠의 소비는 아날로그 형태에서 MP3(MPEG AUDIO LAYER 3) 및 VOD(VIDEO ON DEMAND)형식의 디지털 파일의 형태로 발전하였다. 그리고 현재는 디지털 컨텐츠의 소비 패러다임이 실시간 스트리밍으로 전환되어 가고 있다. 나아가, 실시간 스트리밍 중 사용자와 시스템간의 직간접적인 교류를 통해 즐기게 되는 양방향 컨텐츠, 예를 들어 교구 등을 이용한 교육 비디오 컨텐츠, 게임 같은 실시간으로 사용자 입력을 처리하고 비디오를 스트리밍하는 형태의 서비스들이 출시되고 있다.
이러한 양방향 컨텐츠 스트리밍 서비스는 클라우드 서비스를 이루는 가상화 기술 중 하나인 버츄얼 데스크탑 인프라스트럭쳐(VDI, Virtual Desktop Infrastructure)의 발전과 밀접한 연관이 있다. 이 기술의 적용 분야는 게임 컨텐츠 및 사용자 참여를 요구하는 방송과 같은 실시간성을 요구하고 양방향성을 띠는 여러 종류의 미디어 스트리밍 관련 분야에 널리 적용될 수 있기 때문에, 앞으로 더 큰 수요가 생길 것이고 이에 따른 발전이 예상된다.
이러한 시장적 측면에서의 높은 성장성에도 불구하고, 양방향 기반 실시간 스트리밍 서비스는 네트워크 트래픽 상황에 따른 지연 문제를 해결할 필요가 있다.
본 발명은 실시간 스트리밍 서비스 제공에 따라 발생하는 지연 개선과 스트리밍 서비스의 시스템 자원 절약을 목적으로 한다.
본 발명은 비디오 데이터 또는 인코딩된 비디오 데이터를 통해 반복 장면을 캐싱하는 방법을 제공함을 다른 목적으로 한다.
일 양상에 따르면, 스트리밍 컨텐츠 제공 장치는 비디오 데이터를 사용자 단말로 스트리밍 하되, 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여 반복되는 장면의 비디오 데이터를 추출하고, 스트리밍 되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 메모리에 저장하거나 사용자 단말로 전송한다.
다른 양상에 따르면, 반복 장면 추출부는 특정 장면의 전체 영역이 반복되는 장면과 특정 장면의 일부 영역만 반복되는 장면 중 적어도 하나를 포함한다.
또 다른 양상에 따르면, 추출 조건 설정부는 반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된 비디오 데이터 중 특정 장면의 다음 장면으로 규칙적으로 반복되는 장면, 이전 장면이 특정되지 않는 불규칙적으로 반복되는 장면, 복수개의 장면들이 순서대로 연속적으로 반복되는 장면들 및 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정하고, 추출 수행부는 추출 조건 설정부가 설정한 추출 조건을 충족한 장면을 추출한다.
또 다른 양상에 있어서, 추출 조건 설정부는 비디오 데이터 중 단말에서 실행되는 프로그램의 특정 이벤트에서 재생될 장면을 추출 조건으로 설정하고, 추출 수행부는 추출 조건 설정부가 설정한 추출 조건을 충족한 장면을 추출한다.
또 다른 양상에 있어서, 반복 장면 처리부는 임시로 저장된 장면과 동일한 장면의 인코딩된 비디오 데이터에 대해 비디오 스트리머가 스트리밍 제공시, 임시로 저장한 장면의 인코딩된 비디오 데이터를 사용자 단말로 송신하여 스트리밍을 제공한다.
또 다른 양상에 있어서, 반복 장면 관리부는 저장된 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터를 삭제한다.
일 양상에 있어서, 사용자 단말 장치는 수신한 인코딩된 비디오 데이터를 디코딩하여 재생하되, 디코딩할 장면이 저장된 인코딩된 비디오 데이터의 장면과 동일하면 저장되어 있는 인코딩된 비디오 데이터를 디코딩하여 재생한다.
다른 양상에 있어서, 캐시 관리부는 저장된 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터를 삭제한다.
본 발명은 실시간 스트리밍 서비스 제공에 따라 발생하는 지연을 개선하고 스트리밍 서비스의 시스템 자원을 절약할 수 있다.
도 1은 일 실시예에 따른 사용자 단말과 통신하는 스트리밍 컨텐츠 제공 장치의 구조를 도시한 블록도이다.
도 2는 다른 실시예에 따른 사용자 단말과 통신하는 스트리밍 컨텐츠 제공 장치의 구조를 도시한 블록도이다.
도 3은 일 실시예에 따른 전체 영역이 반복되는 장면을 도시한다.
도 4는 다른 실시예에 따른 전체 영역이 반복되는 장면을 도시한다.
도 5는 일 실시예에 따른 일부 영역이 반복되는 장면을 도시한다.
도 6은 일 실시예에 따른 반복 장면 처리부의 구조를 도시한 블록도이다.
도 7은 일 실시예에 따른 사용자 단말 장치의 구조를 도시한 블록도이다.
도 8은 다른 실시예에 따른 사용자 단말 장치의 구조를 도시한 블록도이다.
도 9는 일 실시예에 따른 스트리밍 컨텐츠 제공 방법의 흐름을 도시한다.
도 10은 일 실시예에 따른 반복 장면 추출 단계의 흐름을 도시한다.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시예들을 통해 구체화된다. 각 실시예들의 구성 요소들은 다른 언급이나 상호간에 모순이 없는 한 실시예 내에서 다양한 조합이 가능한 것으로 이해된다. 나아가 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 그리고, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 명세서에서 기술한 부란, "하드웨어 또는 소프트웨어의 시스템을 변경이나 플러그인 가능하도록 구성한 블록"을 의미하는 것으로서, 즉 하드웨어나 소프트웨어에 있어 특정 기능을 수행하는 하나의 단위 또는 블록을 의미한다.
도 1은 일 실시예에 따른 사용자 단말과 통신하는 스트리밍 컨텐츠 제공 장치(10)의 구조를 도시한 블록도이다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 비디오 인코더(130), 반복 장면 추출부(140), 비디오 스트리머(150)부 및 반복 장면 처리부(160)를 포함한다. 일 실시예에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 사용자 단말의 입력 신호에 따른 모든 프로세싱이 클라우드의 서버에서 처리되고 그래픽과 오디오가 인코딩 되어 사용자 단말로 전송되어 컨텐츠를 소비하는 형태의 스트리밍 서비스 제공 서버를 모두 포함한다. 일 실시예에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 하드웨어적으로는 웹 서버(Web Server) 또는 웹 어플리케이션 서버(Web Application Server) 또는 왑 서버(Wap Server)와 동일한 구성을 하고 있다. 소프트웨어적으로는 C, C++, java, php, .net, Python등의 언어를 통하여 구현되어 여러 가지 기능을 하는 프로그램 모듈을 포함한다.
일 실시예에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 네트워크를 통하여 하나 이상의 사용자 단말 또는 도면에 도시되지 않은 서버와 연결될 수 있다. 하나 이상의 사용자 단말과 네트워크를 통해 연결된 스트리밍 컨텐츠 제공 장치(10)가 도 1에 도시된다. 이에 따라, 스트리밍 컨텐츠 제공 장치(10)는 사용자 단말 또는 다른 서버의 작업 수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 또는 이러한 컴퓨터 시스템을 위하여 설치되어 있는 컴퓨터 소프트웨어를 뜻하는 것일 수도 있다. 스트리밍 컨텐츠 제공 장치(10)는 스트리밍 컨텐츠 제공 장치(10)상에서 동작하는 일련의 응용 프로그램(Application Program)과, 경우에 따라서는 내부 또는 외부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해된다.
일 예에 있어서, 데이터베이스는 스트리밍 컨텐츠 제공 장치(10) 또는 다른 장치 등에 의해 사용될 목적으로 정보나 자료 등의 데이터가 구조화되어 관리되는 데이터의 집합체를 의미하며, 이러한 데이터의 집합체를 저장하는 저장 매체를 의미한다. 데이터베이스는 데이터의 구조화 방식, 관리 방식, 종류 등에 따라 분류된 복수의 데이터베이스를 포함하는 것일 수도 있다. 다른 예에 있어서, 데이터베이스는 정보나 자료 등을 추가, 수정, 삭제 등을 할 수 있도록 해주는 소프트웨어인 데이터베이스 관리 시스템(DBMS, Database Management System)을 포함한다.
일 예에 있어서, 네트워크는 스트리밍 컨텐츠 제공 장치(10)와 사용자 단말을 연결 해주는 망(Network)으로서, LAN(Local Area Network), WAN(Wide Area Network)등의 폐쇄형 네트워크이다. 다른 예에 있어서, 인터넷(Internet)과 같은 개방형 네트워크이다. 여기서, 인터넷은 TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol), SNMP(Simple Network Management Protocol), NFS(Network File Service), NIS(Network Information Service)를 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미한다.
일 예에 있어서, 프로세스(110)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다. 프로그램은 하드 디스크 등의 저장 매체에 저장되어 있는 실행 코드이고, 프로세스(110)는 프로그램을 구동하여 메모리에 적재된 상태로 실행되는 하나의 작업 단위이다. 도 1에 도시된 복수개의 프로세스(110)는 스트리밍 컨텐츠 제공 장치(10)에서 하나 이상의 프로그램이 실행 중임을 의미한다. 일 예에 있어서, 멀티 코어에서 병렬로 실행되는 하나 이상의 프로그램을 실행한다. 프로세스(110)는 예를 들어, 사용자 단말로 스트리밍 형식으로 제공할 게임 프로그램 등이다.
일 예에 있어서, 오디오 캡쳐부(미도시)는 실행되고 있는 프로그램에서 오디오 데이터를 캡쳐한다. 오디오(Audio) 데이터는 사람의 목소리, 자연음 등 가청 주파수대역 내의 음파를 전기에너지로 변화하여 기록한 것으로, 예를 들면 게임의 소리에 대한 데이터이다.
일 예에 있어서, 비디오 캡쳐부(120)는 실행되고 있는 프로그램에서 비디오 데이터를 캡쳐 한다. 캡쳐(Capture)는 아날로그 영상 자료를 디지털로 만드는 것을 의미한다. 예를 들어, 컴퓨터 모니터에 보이는 그대로를 담은 출력 그림을 생성하는 것이다. 일 예에 있어서, 비디오 캡쳐부(120)는 실행되는 프로그램의 비디오 데이터의 해상도에 따라 소프트웨어적인 캡쳐 방법과 하드웨어 적인 캡쳐 방법으로 구분하는 하이브리드 방식의 캡쳐 방법을 사용한다. 비디오 캡쳐부(120)는 상술한 하이브리드 방식의 캡쳐 방법에 한정되지 않고, 당업자가 용이하게 채용할 수 있는 다양한 캡쳐 방법을 사용할 수 있다.
일 예에 있어서, 소프트웨어적인 캡쳐 방법은 비디오 데이터의 해상도가 미리 결정된 기준 미만인 경우, 스트리밍 컨텐츠 제공 장치(10)내의 프레임 버퍼(미도시)에서 비디오 데이터를 읽는 방법이다. 미리 결정된 기준은 예를 들어, HD급(1280*720)이다. 다만 이에 한정되는 것은 아니다.
일 예에 있어서, 하드웨어적인 캡쳐 방법은 비디오 데이터의 해상도가 미리 결정된 기준 이상인 경우, 비디오 데이터를 물리적인 케이블을 통해 수신하고, 수신된 비디오 데이터를 물리적인 캡쳐 장비를 통해 캡쳐하는 방법이다. 예컨대 복수의 게임 화면을 고화질 멀티미디어 인터페이스(HDMI, High Definition Multimedia Interface) 케이블로 출력하여 프레임 그래버(frame grabber) 하드웨어 장치를 통하여 비디오/오디오를 캡쳐하는 방식이다. 여기서, 프레임 그래버는, 텔레비전(TV), CCD 카메라 등과 같은 영상 매체를 통해 나타나는 아날로그 영상 신호를 샘플당 정의된 비트로 디지털화하여 개인용 컴퓨터(PC)가 처리할 수 있는 신호로 바꾸어 주는 영상 장비이다. 또한 프레임 그래버는, 이미지 보드라고도 한다. TV 카메라가 1/30 초에 한번씩 한 화면을 주사하는 주사 속도에 맞게 영상을 수집하고, 입력된 영상을 컴퓨터 내의 기억 장치나 특수한 영상 저장용 기억 장소에 저장시켜 주는 시스템이다.
일 실시예에 있어서, 비디오 인코더(130)는 캡쳐된 비디오 데이터를 인코딩 한다. 인코딩은 정보의 형태나 형식을 표준화, 보안 등을 위해 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.
일 실시예에 있어서, 비디오 스트리머(150)는 인코딩된 비디오 데이터를 스트리밍 한다. 일 실시예에 따른 스트리밍은 음악이나 동영상 등의 콘텐츠가 사용자 단말에서 재생되는 것을 의미한다. 후술 하겠지만, 캐시(170)에 미리 캐싱되어 있는 콘텐츠를 재생할 수도 있다는 점에서 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 통상적인 스트리밍과는 다르다. 통상의 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 동시에 이루어지지만 본 발명의 일 실시예에 따른 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 전혀 무관하게도 이루어 질 수도 있다. 본 발명의 다른 실시예에 따른 스트리밍은, 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 스트리밍을 포함한다. 본 발명의 일 실시예에 따른 스트리밍은 콘텐츠가 영구적으로 저장되지 않는다는 점에서 단말기에 영구적으로 저장된 콘텐츠를 재생하는 로컬 재생과는 구분되지만, 영구적으로 저장된 콘텐츠 재생도 가능하다.
일 실시예에 있어서, 반복 장면 추출부(140)는 저장된 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여 반복되는 장면을 추출한다. 일 실시예에 있어서, 반복 장면 추출부(140)는 장면의 전체 영역이 반복되는 장면 또는 장면의 일부 영역이 반복되는 장면 중 적어도 하나를 추출한다. 반복되는 장면의 구체적인 예는 후술한다.
일 실시예에 있어서, 반복 장면 처리부(160)는 스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 임시로 저장한다. 반복 장면 처리부(160)는 반복 장면 추출부(140)에서 추출한 장면을 도 1에 도시된 캐시(170)에 저장한다. 스트리밍 컨텐츠 제공 장치(10)에 캐시와 같은 저장소가 있는 경우, 후술할 사용자 단말의 성능은 그만큼 자유로워질 수 있다.
일 실시예에 있어서, 반복 장면 처리부(160)는 반복 장면 처리부(160)가 임시로 저장한 장면과 동일한 장면의 인코딩된 비디오 데이터에 대해 비디오 스트리머(150)가 스트리밍 제공시, 임시로 저장한 장면의 인코딩된 비디오 데이터를 사용자 단말로 송신하여 스트리밍을 제공한다. 반복되는 장면에 대해 다시 렌더링이나 인코딩을 할 필요가 없어 시스템 자원 활용을 높인다.
도 2는 다른 실시예에 따른 사용자 단말과 통신하는 스트리밍 컨텐츠 제공 장치(10)의 구조를 도시한 블록도이다.
도 2에 도시된 실시예에 있어서, 반복 장면 처리부(160)는 스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 사용자 단말로 전송한다. 반복 장면 처리부(160)는 반복 장면 추출부(140)에서 추출한 장면을 도 2에 도시된 네트워크를 통해 사용자 단말로 전송한다. 스트리밍 컨텐츠 제공 장치(10)는 반복되는 장면을 저장할 필요가 없어 시스템 자원에 대한 부담이 줄고 저장된 장면을 재생할 때에도 사용자 단말에서 직접 장면을 로딩하여 네트워크 트래픽 소모를 줄일 수 있다.
도 2에 도시된 프로세스(110), 비디오 캡쳐부(120), 비디오 인코더(130), 반복 장면 추출부(140), 비디오 스트리머(150)에 대한 설명은 도 1에서 설명한 것과 동일하다.
도 3은 일 실시예에 따른 전체 영역이 반복되는 장면을 도시한다.
도 3는 전체 영역이 반복되는 장면으로 게임에서 스테이지 진입 시 재생되는 인트로(Intro) 장면이다. 도 3에 도시된 장면은 반복될 경우 항상 장면 전체 영역이 동일하게 반복되고, 반복 장면 추출부(140)는 도 3 에 도시된 장면과 같은 전체 영역이 동일하게 반복되는 장면을 추출한다.
도 4은 다른 실시예에 따른 전체 영역이 반복되는 장면을 도시한다.
도 4도 전체 영역이 반복되는 장면으로 게임에서 스테이지를 완료 했을 때 재생되는 엔딩(Ending) 장면이다. 도 4에 도시된 장면은 반복될 경우 항상 장면 전체 영역이 동일하게 반복되고, 반복 장면 추출부(140)는 도 4에 도시된 장면과 같은 전체 영역이 동일하게 반복되는 장면을 추출한다.
도 5는 일 실시예에 따른 일부 영역이 반복되는 장면들을 도시한다.
도 5의 A 내지 F는 배경이 동일한 상태에서 양손으로 공을 던지는 객체의 동작만이 바뀌는 장면들이다. 즉 도 5의 A 내지 F는 배경 영역인 장면의 일부 영역은 동일하고 공을 던지는 객체에 해당하는 영역인 장면의 나머지 영역은 다르다. 반복 장면 추출부(140)는 도 5에 도시된 장면 일부 영역이 동일하게 반복되는 장면을 추출한다.
도 6는 일 실시예에 따른 반복 장면 처리부(160)의 구조를 도시한 블록도이다.
일 양상에 있어서, 반복 장면 추출부(140)는 추출 조건 설정부(161) 및 추출 수행부(162)를 포함할 수 있다. 일 실시예에 있어서, 추출 조건 설정부(161)는 반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된 비디오 데이터 중 특정 장면의 다음 장면으로 나타나면서 반복되는 장면, 반복되는 장면의 이전 장면이 특정되지 않으면서 반복되는 장면, 복수개의 장면들이 순서대로 연속적으로 반복되는 장면들 및 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정한다. 일 실시예에 있어서, 비디오 인코더(130)는 모션 보상 예측 기술(Motion compensated prediction technique)을 통해 특정 장면에서 반복되는 영역과 반복되지 않는 영역을 구분하여 코딩 할 수 있다.
모션 보상 기술은 예측을 위한 기반으로서 하나 이상의 이전에 코딩된 장면을 이용하는 새로운 입력 장면의 예측을 포함한다. 비디오 인코더(130)는 "레퍼런스 장면(reference Scene)"으로 지정된 선택 장면들의 디코딩된 버전을 저장한다. 새로운 입력 장면이 모션 보상 기술에 따라서 인코딩 되어야 할 때, 비디오 인코더(130)는 입력 장면의 비디오에 밀접하게 매치(match)하는 비디오에 대한 레퍼런스 장면을 조사한다. 매치가 발견될 때, 비디오 인코더(130)는 통상 디코더에 매칭 레퍼런스 장면을 식별해주고, 입력 장면에 관해서 매치하는 레퍼런스 장면의 공간 변위를 식별하는 모션 벡터를 제공하고 입력 장면과 레퍼런스 장면간의 차이를 나타내는 잔차데이터(residual data)를 코딩한다. 후술할 비디오 디코더(210)는 비디오 인코더(130)가 저장한 것과 동일한 레퍼런스 장면 세트를 저장한다. 비디오 디코더(210)에 레퍼런스 장면들의 식별자, 모션 벡터 및 코딩된 잔차 데이터가 제공되면, 디코더는 표시를 위해 각 입력 장면의 복제를 복원(recover)할 수 있다.
모션 보상 예측은, 비디오 인코더(130)가 인코딩에 이용되는 미리 정해진 수의 레퍼런스 장면을 저장하는 것을 필요로 한다. 일 실시예에 있어서, 레퍼런스 장면은 반복되는 장면인지 여부를 판단하기 위한 메타데이터로 메모리에 저장된다.
모션 보상 예측 기술은 예를 들어, 장면을 구성하는 픽셀들의 특성을 비교하는 것이다. 예를 들어, 도 4에 도시된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀 들은 아주 유사하여 이들 간에 매우 작은 모션을 갖는 것으로 평가될 수 있다. 매우 작은 모션을 갖는 것으로 평가된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀들은 배경 영역에 속하는 것으로 분류 할 수 있다. 다른 예를 들어, 움직이는 객체의 얼굴 및 팔은 위치(602.1, 602.2, 602.3, 602.4, 602.5)의 픽셀에 위치해 있고, 위치(602.1, 602.2, 602.3, 602.4, 602.5)의 픽셀들은 큰 모션을 갖는 것으로 평가된다. 큰 모션을 갖는 것으로 평가된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀들은 상관성이 낮기에 배경 영역에 속하는 것으로 분류되지 않는다.
유사하게 위치 603에서, 장면 A 및 장면 C 내지 F의 픽셀(603.1, 603.3, 603.4, 603.5) 간에는 유사성 크나 움직이는 동체의 손 및 공이 위치한 장면 B의 픽셀(603.2)과는 유사성이 작다. 픽셀(603.2)을 제외한 픽셀(603.1, 603.3, 603.4, 603.5)들은 배경 영역에 속하는 것으로 분류된다.
장면의 일부 영역이 다른 장면의 일부 영역과 중복되는 장면인지 판단하는 방법과 유사하게 모든 픽셀에 대해 장면간 유사성이 크면 장면 전체 영역이 반복되는 장면으로 분류할 수 있다. 상술한 방법에 의해, 캡쳐된 비디오 데이터 장면의 전체 영역 또는 일부 영역이 반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된다.
일 실시예에 있어서, 추출 조건 설정부(161)는 특정 장면의 다음 장면으로 나타나면서 반복되는 장면을 추출 조건으로 설정한다. 예를 들어, 특정 스테이지의 미션을 완료하여 도 3와 같은 엔딩 장면이 수초간 재생된 후, 특정 스테이지의 다음 스테이지의 시작을 알리는 도 3과 같은 인트로 장면이 수초간 재생된다. 즉, 상술한 예에서 특정 장면은 엔딩 장면이고 특정 장면의 다음 장면으로 규칙적으로 반복되는 장면은 인트로 장면이다.
일 실시예에 있어서, 추출 조건 설정부(161)는 이전 장면이 특정되지 않으면서 반복되는 장면을 추출 조건으로 설정한다. 예를 들어, 게임이 진행되는 중간 중간에 광고 장면이 수초간 재생된다면, 광고 장면은 이전 장면이 특정되지 않은 불규칙적으로 반복되는 장면이다. 특정 장면이 반복되기는 하지만 전후 장면과 연관성이 없는 규칙성이 없는 장면은 불규칙적으로 반복되는 장면인 것이다.
일 실시예에 있어서, 추출 조건 설정부(161)는 복수개의 장면들이 순서대로 연속적으로 반복되는 장면을 추출 조건으로 설정한다. 예를 들어, 공을 손으로 던지는 객체가 도 5에 도시된 5개의 장면처럼 손을 머리 뒤로 젖혔다가 앞으로 젖히면서 공을 던지는 동작을 반복한다면, 도 5에 도시된 5개의 장면은 순서대로 연속적으로 반복되는 장면이다.
일 실시예에 있어서, 추출 조건 설정부(161)는 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정한다. 예를 들어, 도 5에 도시된 5개의 장면은 배경 영역은 동일하고 공을 던지는 객체의 영역만 변화하는 장면으로 일부 영역만 변화하는 장면이다.
추출 조건 설정부(161)가 설정한 조건은 이에 한정되지 않는다. 추출 조건 설정부(161)는 시간적으로 일정한 주기를 가지고 반복되는 장면을 규칙적으로 반복되는 장면으로 설정할 수 있다. 규칙적으로 반복되는 장면, 불규칙적으로 반복되는 장면, 연속적으로 반복되는 장면, 일부 영역만 변화하는 장면에 한정되는 것은 아니고, 다양한 조건의 장면을 추출 조건으로 설정할 수 있다.
일 실시예에 있어서, 추출 수행부(162)는 추출 조건을 충족한 장면을 추출한다. 추출 수행부(162)는 스트리밍 컨텐츠 제공 장치(10)가 스트리밍하는 비디오 데이터 중 추출 조건 설정부(161)가 설정한 조건에 부합하는 장면을 비디오 데이터 또는 인코딩된 비디오 데이터로부터 추출한다.
상술한 내용은 인코딩된 비디오 데이터를 통해 반복되는 장면을 추출하는 방법에 관한 것이다. 이하에서는 비디오 데이터를 통해 반복되는 장면을 추출하는 방법을 서술한다.
일 실시예에 있어서, 추출 조건 설정부(161)는 비디오 데이터 중 사용자 단말에서 실행되는 프로그램의 특정 이벤트에서 재생될 장면을 추출 조건으로 설정한다. 특정 이벤트는 예를 들어, 게임에서 퀘스트의 진입시 재생되는 브리핑 장면, 스테이지 진입시 재생되는 인트로 장면, 스테이지를 완료할 때 재생되는 엔딩 장면 등이다. 추출 조건 설정부(161)는 앞서 예시한 브리핑 장면, 인트로 장면 및 엔딩 장면과 같이 지속적으로 반복될 가능성이 높은 장면을 추출 조건으로 설정한다.
일 실시예에 있어서, 추출 수행부(162)는 추출 조건을 충족한 장면을 추출한다. 추출 수행부(162)는 스트리밍 컨텐츠 제공 장치(10)에서 스트리밍하는 비디오 데이터 중 추출 조건 설정부(161)가 설정한 조건에 부합하는 장면을 비디오 데이터로부터 추출한다.
일 실시예에 있어서, 반복 장면 추출부(140)는 앞서 살펴본 바와 같이, 비디오 데이터 또는 인코딩된 비디오 데이터를 이용하여 반복될 장면을 추출한다. 반복 장면 추출부(140)는 비디오 데이터 및 인코딩된 비디오 데이터 중 적어도 하나 이상을 이용하여 반복될 장면을 추출한다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 반복 장면 관리부(163)를 포함한다. 일 실시예에 있어서, 반복 장면 관리부(163)는 반복 장면 처리부가 임시로 저장한 인코딩된 비디오 데이터의 장면 중 소정 시간 동안 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제한다. 반복 장면 관리부(163)는 더 이상 반복되지 않는 장면을 캐시(170)에서 삭제하여 시스템 자원의 부담을 줄인다.
도 7은 일 실시예에 따른 사용자 단말 장치(20)의 구조를 도시한 블록도이다. 일 양상에 있어서, 사용자 단말 장치(20)는 비디오 디코더(210), 반복 장면 캐시(230), 비디오 재생부(220)를 포함한다. 본 발명의 일 실시예에 따른 사용자 단말은, 일반적인 데스크 탑이나 노트북 등의 일반 PC를 포함하고, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동 통신 단말기 등의 모바일 단말기 등을 포함할 수 있으며, 이에 제한되지 않고, 스트리밍 컨텐츠 제공 장치(10)와 통신 가능한 어떠한 전자 기기로 폭넓게 해석된다.
일 실시예에 있어서, 반복 장면 캐시(230)는 스트리밍 컨텐츠 제공 장치(10)가 송신한 반복 장면의 인코딩된 비디오 데이터를 임시 저장한다. 도 2에 도시된 것처럼 스트리밍 컨텐츠 제공 장치(10)가 반복되는 장면을 저장할 캐시(170)를 포함하지 않는 실시예에서, 사용자 단말 장치(20)는 반복 장면 처리부(160)가 송신한 반복 장면의 인코딩된 비디오 데이터를 반복 장면 캐시(230)에 저장한다. 사용자 단말 장치(20)에 반복되는 장면의 인코딩된 비디오 데이터를 저장 함으로서 스트리밍 컨텐츠 제공 장치(10)는 시스템 자원에 대한 부담이 줄고 후술할 내용처럼 사용자 단말에서 반복되는 장면 재생시 장면을 직접 로딩하기 때문에 네트워크 트래픽 소모를 크게 줄일 수 있다. 이에 한정되는 것은 아니고, 스트리밍 컨텐츠 제공 장치(10) 및 사용자 단말 장치(20) 모두 반복 장면의 인코딩된 비디오 데이터를 저장할 수 있다.
일 양상에 있어서, 사용자 단말은 캐시 관리부(240)를 포함한다. 일 실시예에 있어서, 캐시 관리부(240)는 반복 장면 캐시(230)에 임시 저장된 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제한다. 캐시 관리부(240)는 더 이상 반복되지 않는 장면을 캐시(170)에서 삭제하여 시스템 자원의 부담을 줄인다.
일 실시예에 있어서, 비디오 디코더(210)는 스트리밍 컨텐츠 제공 장치(10)로부터 수신한 인코딩된 비디오 데이터를 디코딩한다. 디코더는 인코딩된 신호, 즉 코드화된 신호를 원래 형태로 되돌린다. 일 실시예에 있어서, 비디오 디코더(210)는 디코딩 할 장면이 반복 장면 캐시(230)에 저장되어 있는 장면과 동일한 장면이면 반복 장면 캐시(230)에 저장되어 있는 인코딩된 비디오 데이터를 디코딩한다. 반복 장면의 경우, 반복되는 장면의 인코딩된 비디오 데이터를 새롭게 수신하지 않고 캐시(170)에 저장되어 있는 장면의 인코딩된 비디오 데이터를 디코딩함으로써, 네트워크 트래픽 상황에 따른 지연 문제를 해소한다.
일 실시예에 있어서, 비디오 재생부(220)는 디코딩된 비디오 데이터를 재생한다. 비디오 재생부(220)가 재생하면 휴대용 단말에서, 예를 들면 게임을 플레이 할 수 있다.
도 8은 다른 실시예에 따른 사용자 단말 장치(20)의 구조를 도시한 블록도이다. 일 실시예에 있어서, 사용자 단말 장치는 비디오 디코더, 비디오 재생부를 포함한다. 비디오 디코더와 비디오 재생부에 대한 구체적인 설명은 상술하였다. 스트리밍 컨텐츠 제공 장치(10)가 도 1처럼 캐시(170)를 포함하면 사용자 단말은 반복되는 장면을 저장할 반복 장면 캐시(230)를 포함할 필요가 없다. 사용자 단말은 반복되는 장면을 저장할 저장소를 구비하지 않아 성능에 유리하다. 이에 한정되는 것은 아니고, 스트리밍 컨텐츠 제공 장치(10) 및 사용자 단말 모두 반복 장면의 인코딩된 비디오 데이터를 저장할 수 있다.
도 9는 일 실시예에 따른 스트리밍 컨텐츠 제공 방법의 흐름을 도시한다. 일 양상에 있어서, 스트리밍 컨텐츠 제공 방법은 비디오 인코딘 단계(S80), 반복 장면 추출 단계(S81), 비디오 스트리밍 단계 및 반복 장면 처리 단계(S82)를 포함한다. 일 실시예에 있어서, 스트리밍 컨텐츠 제공 방법은 사용자 단말의 입력 신호에 따른 모든 프로세싱이 클라우드의 서버에서 처리되고 그래픽과 오디오가 인코딩 되어 사용자 단말로 전송되어 컨텐츠를 소비하는 형태의 스트리밍 서비스 제공 방법을 모두 포함한다.
일 실시예에 있어서, 스트리밍 컨텐츠 제공 방법은 네트워크를 통하여 하나 이상의 사용자 단말 또는 도면에 도시되지 않은 서버와 연결될 수 있다. 이에 따라, 스트리밍 컨텐츠 제공 방법은 사용자 단말 또는 다른 서버의 작업 수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 또는 이러한 컴퓨터 시스템을 위하여 설치되어 있는 컴퓨터 소프트웨어를 통해 구현되는것 일 수도 있다.
프로세스(110)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램이다. 프로그램은 하드 디스크 등의 저장 매체에 저장되어 있는 실행 코드이고, 프로세스(110)는 프로그램을 구동하여 메모리에 적재된 상태로 실행되는 하나의 작업 단위이다. 복수개의 프로세스(110)는 스트리밍 컨텐츠 제공 장치(10)에서 하나 이상의 프로그램이 실행 중임을 의미한다. 일 예에 있어서, 멀티 코어에서 병렬로 실행되는 하나 이상의 프로그램을 실행한다. 프로세스(110)는 예를 들어, 사용자 단말로 스트리밍 형식으로 제공할 게임 프로그램 등이다.
일 예에 있어서, 오디오 캡쳐 단계는 실행되고 있는 프로그램에서 오디오 데이터를 캡쳐한다. 오디오(Audio) 데이터는 사람의 목소리, 자연음 등 가청 주파수대역 내의 음파를 전기에너지로 변화하여 기록한 것으로, 예를 들면 게임의 소리에 대한 데이터이다.
일 예에 있어서, 비디오 캡쳐 단계는 실행되고 있는 프로그램에서 비디오 데이터를 캡쳐 한다. 캡쳐(Capture)는 아날로그 영상 자료를 디지털로 만드는 것을 의미한다. 예를 들어, 컴퓨터 모니터에 보이는 그대로를 담은 출력 그림을 생성하는 것이다. 일 예에 있어서, 비디오 캡쳐 단계는 실행되는 프로그램의 비디오 데이터의 해상도에 따라 소프트웨어적인 캡쳐 방법과 하드웨어 적인 캡쳐 방법으로 구분하는 하이브리드 방식의 캡쳐 방법을 사용한다. 비디오 캡쳐 단계는 상술한 하이브리드 방식의 캡쳐 방법에 한정되지 않고, 당업자가 용이하게 채용할 수 있는 다양한 캡쳐 방법을 사용할 수 있다.
일 예에 있어서, 소프트웨어적인 캡쳐 방법은 비디오 데이터의 해상도가 미리 결정된 기준 미만인 경우, 스트리밍 컨텐츠 제공 장치(10)내의 프레임 버퍼(미도시)에서 비디오 데이터를 읽는 방법이다. 미리 결정된 기준은 예를 들어, HD급(1280*720)이다. 다만 이에 한정되는 것은 아니다.
일 예에 있어서, 하드웨어적인 캡쳐 방법은 비디오 데이터의 해상도가 미리 결정된 기준 이상인 경우, 비디오 데이터를 물리적인 케이블을 통해 수신하고, 수신된 비디오 데이터를 물리적인 캡쳐 장비를 통해 캡쳐하는 방법이다. 예컨대 복수의 게임 화면을 고화질 멀티미디어 인터페이스(HDMI, High Definition Multimedia Interface) 케이블로 출력하여 프레임 그래버(frame grabber) 하드웨어 장치를 통하여 비디오/오디오를 캡쳐하는 방식이다. 여기서, 프레임 그래버는, 텔레비전(TV), CCD 카메라 등과 같은 영상 매체를 통해 나타나는 아날로그 영상 신호를 샘플당 정의된 비트로 디지털화하여 개인용 컴퓨터(PC)가 처리할 수 있는 신호로 바꾸어 주는 영상 장비이다. 또한 프레임 그래버는, 이미지 보드라고도 한다. TV 카메라가 1/30 초에 한번씩 한 화면을 주사하는 주사 속도에 맞게 영상을 수집하고, 입력된 영상을 컴퓨터 내의 기억 장치나 특수한 영상 저장용 기억 장소에 저장시켜 주는 시스템이다.
일 실시예에 있어서, 비디오 인코딩 단계(S80)는 캡쳐된 비디오 데이터를 인코딩 한다. 인코딩은 정보의 형태나 형식을 표준화, 보안 등을 위해 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.
일 실시예에 있어서, 비디오 스트리밍 단계는 인코딩된 비디오 데이터를 스트리밍 한다. 비디오 스트리밍 단계는 비디오 인코딩 단계에서 인코딩된 비디오 데이터를 입력으로 스트리밍 서비스를 사용자 단말에 제공 한다. 일 실시예에 따른 스트리밍은 음악이나 동영상 등의 콘텐츠가 사용자 단말에서 재생되는 것을 의미한다. 후술 하겠지만, 캐시(170)에 미리 캐싱되어 있는 콘텐츠를 재생할 수도 있다는 점에서 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 통상적인 스트리밍과는 다르다. 통상의 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 동시에 이루어지지만 본 발명의 일 실시예에 따른 스트리밍은 하나의 콘텐츠에 대한 수신과 재생이 전혀 무관하게도 이루어 질 수도 있다. 본 발명의 다른 실시예에 따른 스트리밍은, 콘텐츠를 수신하면서 동시에 실시간으로 재생하는 스트리밍을 포함한다. 본 발명의 일 실시예에 따른 스트리밍은 콘텐츠가 영구적으로 저장되지 않는다는 점에서 단말기에 영구적으로 저장된 콘텐츠를 재생하는 로컬 재생과는 구분되지만, 영구적으로 저장된 콘텐츠 재생도 가능하다.
일 실시예에 있어서, 반복 장면 추출 단계(S81)는 저장된 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여 반복되는 장면을 추출한다. 일 실시예에 있어서, 반복 장면 추출 단계는 장면의 전체 영역이 반복되는 장면 또는 장면의 일부 영역이 반복되는 장면 중 적어도 하나를 추출한다. 도 3는 전체 영역이 반복되는 장면으로 게임에서 스테이지 진입 시 재생되는 인트로(Intro) 장면이다. 도 4도 전체 영역이 반복되는 장면으로 게임에서 스테이지를 완료 했을 때 재생되는 엔딩(Ending) 장면이다. 도 3 및 도 4에 도시된 장면은 반복될 경우 항상 장면 전체 영역이 동일하게 반복되고, 반복 장면 추출부(140)는 도 3 및 도 4에 도시된 장면과 같은 전체 영역이 동일하게 반복되는 장면을 추출한다. 도 5의 A 내지 F는 배경이 동일한 상태에서 양손으로 공을 던지는 객체의 동작만이 바뀌는 장면들이다. 즉, 도 5의 A 내지 F는 배경 영역인 장면의 일부 영역은 동일하고 공을 던지는 객체에 해당하는 영역인 장면의 나머지 영역은 다르다. 반복 장면 추출부(140)는 도 5에 도시된 장면 일부 영역이 동일하게 반복되는 장면을 추출한다.
일 실시예에 있어서, 반복 장면 처리 단계(S82)는 스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 임시로 저장한다. 반복 장면 처리 단계는 반복 장면 추출 단계에서 추출한 장면을 캐시(170)에 저장한다.
일 실시예에 있어서, 반복 장면 처리 단계는 반복 장면 처리 단계가 임시로 저장한 장면과 동일한 장면의 인코딩된 비디오 데이터에 대해 비디오 스트리머(150)가 스트리밍 제공시, 임시로 저장한 장면의 인코딩된 비디오 데이터를 사용자 단말로 송신하여 스트리밍을 제공한다(S84). 반복되는 장면에 대해 다시 렌더링이나 인코딩을 할 필요가 없어 시스템 자원 활용을 높인다.
다른 실시예에 있어서, 반복 장면 처리 단계(S82)는 스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 사용자 단말로 전송한다. 반복 장면 처리 단계는 반복 장면 추출 단계에서 추출한 장면을 네트워크를 통해 사용자 단말로 전송한다. 스트리밍 컨텐츠 제공 방법에서 스트리밍 컨텐츠 제공 장치(10)는 반복되는 장면을 저장할 필요가 없어 시스템 자원에 대한 부담이 줄고 저장된 장면을 재생할 때에도 사용자 단말에서 직접 장면을 로딩하여 네트워크 트래픽 소모를 줄일 수 있다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 장치(10)는 반복 장면 관리 단계를 포함한다. 일 실시예에 있어서, 반복 장면 관리 단계는 반복 장면 처리 단계가 임시로 저장한 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제한다. 반복 장면 관리 단계(163)는 더 이상 반복되지 않는 장면을 캐시(170)에서 삭제하여 시스템 자원의 부담을 줄인다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 방법은 비디오 디코딩 단계, 반복 장면 캐싱 단계, 비디오 재생 단계를 포함한다. 일 실시예에 있어서, 비디오 디코딩 단계(S85, S87)는 스트리밍 컨텐츠 제공 장치(10)로부터 수신한 인코딩된 비디오 데이터를 디코딩한다. 디코딩 단계는 인코딩된 신호, 즉 코드화된 신호를 원래 형태로 되돌린다. 일 실시예에 있어서, 비디오 디코딩 단계는 디코딩 할 장면이 후술할 반복 장면 캐싱 단계에 저장되어 있는 장면과 동일한 장면이면 반복 장면 캐싱 단계에 저장되어 있는 인코딩된 비디오 데이터를 디코딩한다. 반복 장면의 경우, 반복되는 장면의 인코딩된 비디오 데이터를 새롭게 수신하지 않고 반복 장면 캐싱 단계에 저장되어 있는 장면의 인코딩된 비디오 데이터를 디코딩함으로써, 네트워크 트래픽 상황에 따른 지연 문제를 해소한다.
일 실시예에 있어서, 비디오 재생 단계(S86, S88)는 디코딩된 비디오 데이터를 재생한다. 비디오 재생 단계(S86, S88)가 재생하면 휴대용 단말에서, 예를 들면 게임을 플레이 할 수 있다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 방법은 반복 장면 캐싱 단계를 포함한다. 일 실시예에 있어서, 반복 장면 캐싱 단계는 스트리밍 컨텐츠 제공 장치(10)가 송신한 반복 장면의 인코딩된 비디오 데이터를 사용자 단말 장치(20)가 임시 저장한다. 사용자 단말 장치(20)에 반복되는 장면의 인코딩된 비디오 데이터를 저장 함으로서 스트리밍 컨텐츠 제공 장치(10)는 시스템 자원에 대한 부담이 줄고 후술할 내용처럼 사용자 단말 장치(20)에서 반복되는 장면 재생시 장면을 직접 로딩하기 때문에 네트워크 트래픽 소모를 크게 줄일 수 있다. 이에 한정되는 것은 아니고, 스트리밍 컨텐츠 제공 장치(10) 및 사용자 단말 장치(20) 모두 반복 장면의 인코딩된 비디오 데이터를 저장할 수 있다.
일 양상에 있어서, 스트리밍 컨텐츠 제공 방법은 캐시 관리 단계를 포함한다. 일 실시예에 있어서, 캐시 관리 단계는 반복 장면 캐시(230)에 임시 저장된 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제한다. 캐시 관리 단계는 더 이상 반복되지 않는 장면을 캐시에서 삭제하여 시스템 자원의 부담을 줄인다.
도 10은 일 실시예에 따른 반복 장면 추출 단계의 흐름을 도시한다.
일 양상에 있어서, 반복 장면 추출 단계는 추출 조건 설정 단계 및 추출 수행 단계를 포함할 수 있다. 일 실시예에 있어서, 추출 조건 설정 단계(S90)는 반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된 비디오 데이터 중 특정 장면의 다음 장면으로 나타나면서 반복되는 장면, 반복되는 장면의 이전 장면이 특정되지 않으면서 반복되는 장면, 복수개의 장면들이 순서대로 연속적으로 반복되는 장면들 및 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정한다. 일 실시예에 있어서, 비디오 인코딩 단계는 모션 보상 예측 기술(Motion compensated prediction technique)을 통해 특정 장면에서 반복되는 영역과 반복되지 않는 영역을 구분하여 코딩 할 수 있다.
모션 보상 기술은 예측을 위한 기반으로서 하나 이상의 이전에 코딩된 장면을 이용하는 새로운 입력 장면의 예측을 포함한다. 비디오 인코딩 단계는 "레퍼런스 장면(reference Scene)"으로 지정된 선택 장면들의 디코딩된 버전을 저장한다. 새로운 입력 장면이 모션 보상 기술에 따라서 인코딩 되어야 할 때, 비디오 인코딩 단계는 입력 장면의 비디오에 밀접하게 매치(match)하는 비디오에 대한 레퍼런스 장면을 조사한다. 매치가 발견될 때, 비디오 인코딩 단계는 비디오 통상 디코딩 단계에 매칭 레퍼런스 장면을 식별해주고, 입력 장면에 관해서 매치하는 레퍼런스 장면의 공간 변위를 식별하는 모션 벡터를 제공하고 입력 장면과 레퍼런스 장면간의 차이를 나타내는 잔차데이터(residual data)를 코딩한다. 후술할 비디오 디코딩 단계는 비디오 인코딩 단계가 저장한 것과 동일한 레퍼런스 장면 세트를 저장할 수 있다. 비디오 디코딩 단계에 레퍼런스 장면들의 식별자, 모션 벡터 및 코딩된 잔차 데이터가 제공되면, 디코더는 표시를 위해 각 입력 장면의 복제를 복원(recover)할 수 있다.
모션 보상 예측은, 비디오 인코딩 단계는 인코딩에 이용되는 미리 정해진 수의 레퍼런스 장면을 저장하는 것을 필요로 한다. 일 실시예에 있어서, 레퍼런스 장면은 반복되는 장면인지 여부를 판단하기 위한 메타데이터로 메모리(미도시)에 저장된다.
모션 보상 예측 기술은 예를 들어, 장면을 구성하는 픽셀들의 특성을 비교하는 것이다. 예를 들어, 도 5에 도시된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀 들은 아주 유사하여 이들 간에 매우 작은 모션을 갖는 것으로 평가될 수 있다. 매우 작은 모션을 갖는 것으로 평가된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀들은 배경 영역에 속하는 것으로 분류 할 수 있다. 다른 예를 들어, 움직이는 객체의 얼굴 및 팔은 위치(602.1, 602.2, 602.3, 602.4, 602.5)의 픽셀에 위치해 있고, 위치(602.1, 602.2, 602.3, 602.4, 602.5)의 픽셀들은 큰 모션을 갖는 것으로 평가된다. 큰 모션을 갖는 것으로 평가된 위치(601.1, 601.2, 601.3, 601.4, 601.5)의 픽셀들은 상관성이 낮기에 배경 영역에 속하는 것으로 분류되지 않는다.
유사하게 위치 603에서, 장면 A 및 장면 C 내지 F의 픽셀(603.1, 603.3, 603.4, 603.5) 간에는 유사성 크나 움직이는 동체의 손 및 공이 위치한 장면 B의 픽셀(603.2)과는 유사성이 작다. 픽셀(603.2)을 제외한 픽셀(603.1, 603.3, 603.4, 603.5)들은 배경 영역에 속하는 것으로 분류된다.
장면의 일부 영역이 다른 장면의 일부 영역과 중복되는 장면인지 판단하는 방법과 유사하게 모든 픽셀에 대해 장면간 유사성이 크면 장면 전체 영역이 반복되는 장면으로 분류할 수 있다. 상술한 방법에 의해, 캡쳐된 비디오 데이터 장면의 전체 영역 또는 일부 영역이 반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된다.
일 실시예에 있어서, 추출 조건 설정 단계(S90)는 특정 장면의 다음 장면으로 나타나면서 반복되는 장면을 추출 조건으로 설정한다. 예를 들어, 특정 스테이지의 미션을 완료하여 도 4와 같은 엔딩 장면이 수초간 재생된 후, 특정 스테이지의 다음 스테이지의 시작을 알리는 도 3과 같은 인트로 장면이 수초간 재생된다. 즉, 상술한 예에서 특정 장면은 엔딩 장면이고 특정 장면의 다음 장면으로 규칙적으로 반복되는 장면은 인트로 장면이다.
일 실시예에 있어서, 추출 조건 설정 단계(S90)는 반복되는 장면의 이전 장면이 특정되지 않으면서 반복되는 장면으로 설정한다. 예를 들어, 게임이 진행되는 중간 중간에 광고 장면이 수초간 재생된다면, 광고 장면은 이전 장면이 특정되지 않은 불규칙적으로 반복되는 장면이다. 특정 장면이 반복되기는 하지만 전후 장면과 연관성이 없는 규칙성이 없는 장면은 불규칙적으로 반복되는 장면인 것이다.
일 실시예에 있어서, 추출 조건 설정 단계(S90)는 복수개의 장면들이 순서대로 연속적으로 반복되는 장면을 추출 조건으로 설정한다. 예를 들어, 공을 손으로 던지는 객체가 도 5에 도시된 5개의 장면처럼 손을 머리 뒤로 젖혔다가 앞으로 젖히면서 공을 던지는 동작을 반복한다면, 도 5에 도시된 5개의 장면은 순서대로 연속적으로 반복되는 장면이다.
일 실시예에 있어서, 추출 조건 설정 단계(S90)는 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정한다. 예를 들어, 도 5에 도시된 5개의 장면은 배경 영역은 동일하고 공을 던지는 객체의 영역만 변화하는 장면으로 일부 영역만 변화하는 장면이다.
추출 조건 설정 단계(S90)가 설정한 조건은 이에 한정되지 않는다. 추출 조건 설정 단계(S90)는 시간적으로 일정한 주기를 가지고 반복되는 장면을 규칙적으로 반복되는 장면으로 설정할 수 있다. 규칙적으로 반복되는 장면, 불규칙적으로 반복되는 장면, 연속적으로 반복되는 장면, 일부 영역만 변화하는 장면에 한정되는 것은 아니고, 다양한 조건의 장면을 추출 조건으로 설정할 수 있다.
일 실시예에 있어서, 추출 수행 단계(S91)는 추출 조건을 충족한 장면을 추출한다. 추출 수행 단계는 스트리밍 컨텐츠 제공 방법에서 스트리밍하는 비디오 데이터 중 추출 조건 설정 단계가 설정한 조건에 부합하는 장면을 인코딩된 비디오 데이터로부터 추출한다.
상술한 내용은 인코딩된 비디오 데이터를 통해 반복되는 장면을 추출하는 방법에 관한 것이다. 이하에서는 비디오 데이터를 통해 반복되는 장면을 추출하는 방법을 서술한다.
일 실시예에 있어서, 추출 조건 설정 단계(S90)는 비디오 데이터 중 사용자 단말에서 실행되는 프로그램의 특정 이벤트에서 재생될 장면을 추출 조건으로 설정한다. 특정 이벤트는 예를 들어, 게임에서 퀘스트의 진입시 재생되는 브리핑 장면, 스테이지 진입시 재생되는 인트로 장면, 스테이지를 완료할 때 재생되는 엔딩 장면 등이다. 추출 조건 설정 단계(S90)는 앞서 예시한 브리핑 장면, 인트로 장면 및 엔딩 장면과 같이 지속적으로 반복될 가능성이 높은 장면을 추출 조건으로 설정한다.
일 실시예에 있어서, 추출 수행 단계(S91)는 추출 조건을 충족한 장면을 추출한다. 추출 수행 단계는 스트리밍 컨텐츠 제공 방법에서 스트리밍하는 비디오 데이터 중 추출 조건 설정 단계가 설정한 조건에 부합하는 장면을 비디오 데이터로부터 추출한다.
일 실시예에 있어서, 반복 장면 추출 단계는 앞서 살펴본 바와 같이, 비디오 데이터 또는 인코딩된 비디오 데이터를 이용하여 반복될 장면을 추출한다. 반복 장면 추출부(140)는 비디오 데이터 및 인코딩된 비디오 데이터 중 적어도 하나 이상을 이용하여 반복될 장면을 추출한다.
스트리밍 컨텐츠 제공 방법의 흐름은 스트리밍 컨텐츠 제공 장치(10)에 반복되는 장면을 저장하는지 사용자 단말 장치(20)에 반복되는 장면을 저장하는지에 따라 약간의 차이를 보인다. 반복되는 장면을 스트리밍 컨텐츠 제공 장치(10)에 저장하는 경우 사용자 단말의 성능은 자유로워 진다. 반복되는 장면을 사용자 단말 장치(20)에 저장하는 경우 스트리밍 컨텐츠 제공 장치(10)의 시스템 자원에 대한 부담이 줄고 반복 장면의 재생시 사용자 단말에서 직접 장면을 로딩하는 바 네트워크 트래픽의 소모를 크게 줄일 수 있다. 스트리밍 컨텐츠 제공 방법은 이에 한정되는 것은 아니고, 스트리밍 컨텐츠 제공 장치(10) 및 사용자 단말 모두 반복 장면의 인코딩된 비디오 데이터를 저장할 수 있다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해 져야 할 것이다.
10: 스트리밍 컨텐츠 제공 장치
20: 사용자 단말 장치
110: 프로세스
120: 비디오 캡쳐부
130: 비디오 인코더
140: 반복 장면 추출부
150: 비디오 스트리머
160: 반복 장면 처리부
161: 추출 조건 설정부
162: 추출 수행부
163: 반복 장면 관리부
210: 비디오 디코더
220: 비디오 재생부
230: 반복 장면 캐시
240: 캐시 관리부

Claims (15)

  1. 캡쳐된 비디오 데이터를 인코딩하는 비디오 인코더;
    저장된 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여, 반복되는 장면을 추출하는 반복 장면 추출부;
    상기 인코딩된 비디오 데이터를 스트리밍하는 비디오 스트리머; 및
    스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 임시로 저장하거나 사용자 단말로 전송하는 반복 장면 처리부; 를
    포함하는 스트리밍 컨텐츠 제공 장치.
  2. 제 1 항에 있어서, 반복 장면 추출부는
    장면의 전체 영역이 반복되는 장면 또는 장면의 일부 영역이 반복 되는 장면 중 적어도 하나를 추출하는 스트리밍 컨텐츠 제공 장치.
  3. 제 2 항에 있어서, 반복 장면 추출부는
    반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된 비디오 데이터 중 특정 장면의 다음 장면으로 나타나면서 반복되는 장면, 반복되는 장면의 이전 장면이 특정되지 않으면서 반복되는 장면, 복수개의 장면들이 순서대로 연속적으로 반복되는 장면들 및 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정하는 추출 조건 설정부; 및
    추출 조건을 충족한 장면을 추출하는 추출 수행부; 를
    포함하는 스트리밍 컨텐츠 제공 장치.
  4. 제 1 항에 있어서, 반복 장면 추출부는
    비디오 데이터 중 사용자 단말에서 실행되는 프로그램의 특정 이벤트에서 재생될 장면을 추출 조건으로 설정하는 추출 조건 설정부; 및
    추출 조건을 충족한 장면을 추출하는 추출 수행부; 를
    포함하는 스트리밍 컨텐츠 제공 장치.
  5. 제 1 항에 있어서, 반복 장면 처리부는
    반복 장면 처리부가 임시로 저장한 장면과 동일한 장면의 인코딩된 비디오 데이터에 대해 비디오 스트리머가 스트리밍 제공시, 임시로 저장한 장면의 인코딩된 비디오 데이터를 사용자 단말로 스트리밍하는 스트리밍 컨텐츠 제공 장치.
  6. 제 5 항에 있어서, 스트리밍 컨텐츠 제공 장치는
    반복 장면 처리부가 임시로 저장한 인코딩된 비디오 데이터의 장면 중 소정 시간 동안 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제하는 반복 장면 관리부; 를 더 포함하는 스트리밍 컨텐츠 제공 장치.
  7. 스트리밍 컨텐츠 제공 장치가 송신한 인코딩된 비디오 데이터를 디코딩하는 비디오 디코더;
    스트리밍 컨텐츠 제공 장치가 송신한 반복 장면의 인코딩된 비디오 데이터를 임시 저장하는 반복 장면 캐시; 및
    디코딩된 비디오 데이터를 재생하는 비디오 재생부; 를 포함하되
    비디오 디코더는 디코딩할 장면이 상기 반복장면 캐시에 저장되어 있는 장면과 동일한 장면이면 반복장면 캐시에 저장되어 있는 인코딩된 비디오 데이터를 디코딩하는 사용자 단말 장치.
  8. 제 9 항에 있어서, 사용자 단말 장치는
    반복 장면 캐시에 임시 저장된 인코딩된 비디오 데이터의 장면 중 더 이상 반복되지 않는 장면의 인코딩된 비디오 데이터의 장면을 삭제하는 캐시 관리부; 를 더 포함하는 사용자 단말 장치.
  9. 캡쳐된 비디오 데이터를 인코딩하는 비디오 인코딩 단계;
    저장된 비디오 데이터 또는 인코딩된 비디오 데이터를 분석하여, 반복되는 장면을 추출하는 반복 장면 추출 단계;
    상기 인코딩된 비디오 데이터를 스트리밍하는 비디오 스트리밍 단계; 및
    스트리밍되는 인코딩된 비디오 데이터 중 추출된 반복 장면과 동일한 장면의 인코딩된 비디오 데이터를 임시로 저장하거나 사용자 단말로 전송하는 반복 장면 처리 단계; 를
    포함하는 스트리밍 컨텐츠 제공 방법.
  10. 제 9 항에 있어서, 반복 장면 추출 단계는
    장면의 전체 영역이 반복되는 장면 또는 장면의 일부 영역이 반복 되는 장면 중 적어도 하나를 추출하는 스트리밍 컨텐츠 제공 방법.
  11. 제 10 항에 있어서, 반복 장면 추출 단계는
    반복되는 장면과 그렇지 않은 장면이 구분되어 인코딩된 비디오 데이터 중 특정 장면의 다음 장면으로 나타나면서 반복되는 장면, 반복되는 장면의 이전 장면이 특정되지 않으면서 반복되는 장면, 복수개의 장면들이 순서대로 연속적으로 반복되는 장면들 및 장면의 일부 영역만 변화하는 장면들 중 적어도 하나를 추출 조건으로 설정하는 추출 조건 설정 단계; 및
    추출 조건을 충족한 장면을 추출하는 추출 수행 단계; 를
    포함하는 스트리밍 컨텐츠 제공 방법.
  12. 제 9 항에 있어서, 반복 장면 추출 단계는
    비디오 데이터 중 단말에서 실행되는 프로그램의 특정 이벤트에서 재생될 장면을 추출 조건으로 설정하는 추출 조건 설정 단계; 및
    추출 조건을 충족한 장면을 추출하는 추출 수행 단계; 를
    포함하는 스트리밍 컨텐츠 제공 방법.
  13. 제 9 항에 있어서, 반복 장면 처리단계는
    반복 장면 처리단계가 임시로 저장한 장면과 동일한 장면스트의 인코딩된 비디오 데이터에 대해 비디오 스트리머가 스트리밍 제공시, 임시로 저장한 장면의 인코딩된 비디오 데이터를 사용자 단말로 스트리밍하는 스트리밍 컨텐츠 제공 방법.
  14. 제 9 항에 있어서, 스트리밍 컨텐츠 제공 방법은
    스트리밍 컨텐츠 제공 장치로부터 수신한 인코딩된 비디오 데이터를 디코딩하는 비디오 디코딩 단계; 및
    디코딩된 비디오 데이터를 재생하는 비디오 재생 단계; 를 더 포함하는
    스트리밍 컨텐츠 제공 방법.
  15. 제 9 항에 있어서, 스트리밍 컨텐츠 제공 방법은
    스트리밍 컨텐츠 제공 장치가 송신한 반복 장면의 인코딩된 비디오 데이터를 임시 저장하는 반복장면 캐싱 단계; 및
    비디오 디코딩 단계는 디코딩할 장면이 상기 반복장면 캐시에 저장되어 있는 장면과 동일한 장면이면 반복장면 캐시에 저장되어 있는 인코딩된 비디오 데이터를 디코딩하는 스트리밍 컨텐츠 제공 방법.
KR1020150021203A 2015-02-11 2015-02-11 스트리밍 컨텐츠 제공 장치 및 방법 KR20160098927A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150021203A KR20160098927A (ko) 2015-02-11 2015-02-11 스트리밍 컨텐츠 제공 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150021203A KR20160098927A (ko) 2015-02-11 2015-02-11 스트리밍 컨텐츠 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160098927A true KR20160098927A (ko) 2016-08-19

Family

ID=56874976

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150021203A KR20160098927A (ko) 2015-02-11 2015-02-11 스트리밍 컨텐츠 제공 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20160098927A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102243129B1 (ko) 2021-01-12 2021-04-22 주식회사 투스라이프 스트리밍 이벤트 효과 조정 기능을 제공하는 서버 및 방법
KR102268975B1 (ko) 2021-01-12 2021-06-24 주식회사 투스라이프 기여도를 반영한 스트리머 미션 수행 평가 및 후원을 위한 서버 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102243129B1 (ko) 2021-01-12 2021-04-22 주식회사 투스라이프 스트리밍 이벤트 효과 조정 기능을 제공하는 서버 및 방법
KR102268975B1 (ko) 2021-01-12 2021-06-24 주식회사 투스라이프 기여도를 반영한 스트리머 미션 수행 평가 및 후원을 위한 서버 및 방법
US11924262B2 (en) 2021-01-12 2024-03-05 Toothlife Co., Ltd. Server and method for providing streaming event effect adjustment function

Similar Documents

Publication Publication Date Title
US11557015B2 (en) System and method of data transfer in-band in video via optically encoded images
CN105025327B (zh) 一种移动终端现场直播的方法及系统
US8438484B2 (en) Video preview module to enhance online video experience
CN106060578B (zh) 生成视频数据的方法和系统
KR101312268B1 (ko) 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템
KR102050780B1 (ko) 신경망을 이용한 컨텐츠 인지 기반 컨텐츠 전송 서버 장치 및 방법
US20150156557A1 (en) Display apparatus, method of displaying image thereof, and computer-readable recording medium
KR20180030565A (ko) 공통적인 미디어 세그먼트의 검출
US20170171579A1 (en) Method and Device for Transcoding Live Video
Laghari et al. The state of art and review on video streaming
US20240056549A1 (en) Method, computer device, and computer program for providing high-quality image of region of interest by using single stream
CN114139491A (zh) 一种数据处理方法、装置及存储介质
KR20160098927A (ko) 스트리밍 컨텐츠 제공 장치 및 방법
US11095901B2 (en) Object manipulation video conference compression
KR102199270B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US20220070505A1 (en) Crop-Based Compression of Videos
CN111800649A (zh) 存储视频的方法和装置以及生成视频的方法和装置
KR102247887B1 (ko) 클라우드 스트리밍 서비스 시스템, 소스 정보를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US11863791B1 (en) Methods and systems for non-destructive stabilization-based encoder optimization
US20230071585A1 (en) Video compression and streaming
WO2023130893A1 (zh) 流媒体传输方法、装置、电子设备及计算机可读存储介质
Grape Unlimited seeking during videotranscoding
Yan et al. Surveillance Data Capturing and Compression
Bauer et al. 8. What Makes a Download a Stream?
TW202301874A (zh) 視頻資料傳輸方法、電子裝置及存儲介質

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination