KR20170009105A - 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치 - Google Patents

스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20170009105A
KR20170009105A KR1020150100572A KR20150100572A KR20170009105A KR 20170009105 A KR20170009105 A KR 20170009105A KR 1020150100572 A KR1020150100572 A KR 1020150100572A KR 20150100572 A KR20150100572 A KR 20150100572A KR 20170009105 A KR20170009105 A KR 20170009105A
Authority
KR
South Korea
Prior art keywords
streaming
packet
loss
content
packets
Prior art date
Application number
KR1020150100572A
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 KR1020150100572A priority Critical patent/KR20170009105A/ko
Publication of KR20170009105A publication Critical patent/KR20170009105A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04L65/607
    • H04L65/608
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets

Abstract

본 발명은 스트리밍되는 컨텐츠의 손실된 패킷을 보상하여 저장하는 방법 및 장치에 한 것으로, 더욱 상세하게는 단말 장치가 서버에 스트리밍을 요청할 때, 스트리밍된 컨텐츠를 패킷을 실시간으로 출력함과 동시에 스트리밍 패킷에 손실이 발생하였는지 여부를 검사하고 손실된 스트리밍 손실 패킷 재전송을 요청하여 스트리밍 패킷과 스트리밍 손실 패킷을 취합하여 저장함으로써, UDP 전송으로 인한 패킷 손실을 효과적으로 보상하여 패킷 손실 없이 스트리밍 컨텐츠를 저장함으로써 UDP 기반 라이브 스트리밍 전송과 동시에 UDP 기반 다시 보기 서비스를 효율적으로 제공할 수 있다.

Description

스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치{Method and Apparatus for Compensation of the lost packet in Streaming content}
본 발명은 스트리밍되는 컨텐츠의 손실된 패킷을 보상하여 저장하는 방법 및 장치에 한 것으로, 더욱 상세하게는 단말 장치가 스트리밍 서비스를 이용할 때, 스트리밍된 패킷을 실시간으로 재생하여 출력함과 동시에 저장하는 경우, 재전송 요청을 통해 스트리밍 손실 패킷을 획득하고 기 수신된 스트리밍 패킷과 스트리밍 손실 패킷을 취합하여 저장함으로써 패킷 로스를 효율적으로 보상하는 스트리밍 컨텐츠의 패킷 손실을 보상하는 방법, 이를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근의 인터넷 환경에서 다양한 동영상 서비스가 등장하면서 고화질 라이브 방송에 대한 수요가 점점 증가하고 있다. 더하여, 최근에는 스트리밍(streaming) 서비스 방식에 따라 다양한 동영상 서비스를 제공하고자 하는 시도들이 이뤄지고 있다.
스트리밍 서비스는 인터넷과 같은 네트워크를 통해 서버에서 단말로 비디오 또는 오디오와 같은 컨텐츠를 전송하는 것을 의미한다. 전송되는 데이터가 마치 물이 흐르는 것처럼 처리된다고 해서 스트리밍이라고 한다. 서버는 비디오를 네트워크로 보낼 수 있도록 패킷으로 분리하며, 단말은 그 패킷들을 다시 모아서 원래 형태로 복원한 후에 재생한다. 이때, 재생과 패킷 수신은 동시에 일어나며, 연관된 일련의 패킷들을 스트림(stream)이라 하며, 일련의 패킷들의 집합을 스트리밍 데이터라 한다.
아울러, MPEG-2 TS(Transport System)는 표준화 이후 지상파 및 위성 디지털 방송, DMB, IPTV 등 다양한 산업 분야에서 미디어 전송을 위해 주로 사용되어 왔으며, 근래에는 디지털 비디오 카메라나 블루레이 장비에서의 미디어 저장을 위해 사용되는 등 그 사용 분야가 확장되고 있다. 그러나, 최근의 네트워크 환경은 급속히 변화하고 있으며, 다양한 이종망(heterogeneous network) 환경에서의 멀티미디어 전송 기술 등 새로운 요구 사항들이 필요시 되고 있다. 이에, 고도화된 여러 종류의 네트워크 환경에서 다양한 콘텐츠와 서비스를 제공하기 위한 새로운 기술의 표준이 요구되고 있으며, 이에 따라, MMT(MPEG Media Transport) 기술이 개발되고 있다.
아울러, 현재 라이브 스트리밍의 경우 실시간 전송을 보장하기 위하여, UDP(User Datagram Protocol) 기반으로 전송되는 경우가 많다.
그러나, UDP를 기반한 스트리밍 전송의 경우, TCP(Transmission Control Protocol)와 비교할 때, 속도가 빠르고 오버헤드가 적은 장점이 있지만, 전송 방식이 단순하여 서비스의 신뢰성이 낮고, 데이터그램 도착 순서가 바뀌거나, 통보 없이 누락되는 경우가 많아 UDP 기반으로 수신한 라이브 스트리밍 패킷을 저장하는 경우, 손실되는 패킷의 양이 많아질 수 있는 문제점이 있다.
한국등록특허 제10-0736801호, 2002년 5월 4일 공개 (명칭: 손실이 많은 패킷에 근거한 네트워크를 통해 비디오를 전송하기 위한 동적 하이브리드 패킷 손실 복구 방법 및 시스템)
본 발명은UDP 기반의 스트리밍 서비스를 제공 시, UDP 기반 전송 특성에 기반하여 스트리밍 서비스를 효율적으로 제공하기 위한 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법을 제안하고자 한다.
특히, 스트리밍 서비스 중, 단말 장치가 스트리밍된 패킷을 실시간으로 출력하되, 스트리밍 패킷에 손실이 발생하였는지 여부를 검사하고 손실된 스트리밍 손실 패킷 재전송을 요청하여 스트리밍 패킷과 스트리밍 손실 패킷을 취합하여 저장함으로써, 저장된 컨텐츠의 패킷 로스를 효율적으로 보상하기 위한 방법 및 이를 위한 장치를 제공하고자 한다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 단말 장치는 통신망을 통해 컨텐츠 스트리밍 서버에 접속하여 데이터를 송수신하는 통신모듈, 상기 컨텐츠 스트리밍 서버로부터 수신한 스트리밍 패킷과, 재전송 요청을 통해 수신한 스트리밍 손실 패킷, 상기 스트리밍 패킷과 스트리밍 손실 패킷을 순서대로 취합하여 구성된 컨텐츠 데이터를 저장하는 저장모듈 및 상기 스트리밍 패킷을 실시간으로 재생하여 출력하면서, 상기 수신한 스트리밍 패킷 중 손실된 패킷의 존재 여부를 검사하여 손실된 상기 스트리밍 손실 패킷에 대하여 상기 컨텐츠 스트리밍 서버에 재전송을 요청한 후, 상기 스트리밍 패킷과 재전송 요청에 의해 수신된 상기 스트리밍 손실 패킷을 취합하여 상기 저장 모듈에 저장시키는 제어모듈을 포함할 수 있다.
이 때, 상기 제어모듈은 기 설정된 시간 또는 용량 단위로, 상기 스트리밍 손실 패킷을 검사하여 스트리밍 손실 패킷 리스트를 생성하고, 상기 생성된 스트리밍 손실 패킷 리스트를 에 포함된 하나 이상의 스트리밍 손실 패킷에 대하여 재전송을 요청할 수 있고, 상기 스트리밍 패킷 및 상기 스트리밍 손실 패킷은 MPEG 미디어 트랜스포트(MMT; MPEG Media Transport) 패킷일 수 있으며, 상기 통신모듈은 UDP(User Datagram Protocol)를 사용하여 상기 서버와 상기 스트리밍 패킷 및 상기 스트리밍 손실 패킷을 송수신할 수 있다.
한편, 상기 제어 모듈은 상기 저장모듈로부터 상기 스트리밍 패킷을 수신하여 실시간으로 상기 수신한 스트리밍 패킷으로 이루어진 컨텐츠를 출력 모듈을 통해 재생하는 재생모듈 및 상기 저장모듈로부터 상기 스트리밍 패킷을 수신하고 상기 스트리밍 패킷 중 손실된 패킷의 존재 여부를 검사하여 손실된 상기 스트리밍 손실 패킷에 대한 리스트를 생성한 후, 상기 리스트에 포함된 상기 스트리밍 손실 패킷을 상기 서버가 재전송하도록 요청하고, 상기 요청에 의하여 수신된 스트리밍 손실 패킷 및 상기 수신된 스트리밍 패킷을 저장 모듈로 전송하는 재전송 요청 모듈을 포함할 수 있고,
상기 저장 모듈은 상기 통신 모듈로부터 상기 스트리밍 패킷을 수신하여 일정 시간동안 임시로 저장하고, 일정 시간이 경과 한 후 상기 스트리밍 패킷을 상기 재생 모듈 및 상기 재전송 요청 모듈로 출력하는 제 1버퍼, 상기 통신 모듈로부터 상기 스트리밍 손실 패킷을 수신하여 일정 시간 동안 임시로 저장하고, 일정 시간이 경과 한 후 상기 스트리밍 손실 패킷을 상기 재전송 요청 모듈로 출력하는 제 2버퍼 및 상기 제어 모듈에 의해 취합된 컨텐츠 데이터를 저장하는 컨텐츠 저장소를 포함할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시 예에 따른 손실 패킷 보상 방법은 단말장치가 컨텐츠 스트리밍 서버에 스트리밍 전송을 요청하는 단계, 상기 요청에 따라 상기 컨텐츠 스트리밍 서버로부터 스트리밍 패킷을 수신하는 단계, 상기 수신된 스트리밍 패킷을 실시간으로 재생하여 출력하면서, 상기 수신된 스트리밍 패킷 중 손실된 패킷 존재 여부를 검사하는 단계, 상기 검사 결과에 따라 스트리밍 손실 패킷에 대하여 상기 컨텐츠 스트리밍 서버에 재전송을 요청하는 단계 및 상기 스트리밍 패킷과 상기 스트리밍 손실 패킷을 취합하여 저장하는 단계를 포함할 수 있다.
이 때, 상기 손실된 패킷 존재 여부를 검사하는 단계는 기 설정된 시간 또는 용량 단위로, 상기 스트리밍 손실 패킷을 검사하고, 상기 재전송을 요청하는 단계는 스트리밍 손실 패킷 리스트를 생성하여, 상기 생성된 스트리밍 손실 패킷 리스트에 포함된 하나 이상의 스트리밍 손실 패킷에 대하여 재전송을 요청할 수 있다.
또한, 상기 손실 패킷 보상 방법은 이를 실행시키는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체로 제공될 수 있으며, 이를 실행시키도록 구현되어 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다.
본 발명에 따르면, 스트리밍된 패킷을 실시간으로 재생하면서, 재생되는 컨텐츠 패킷들에 대해 손실된 패킷을 일정 단위로 확인하여 재전송 요청한 후, 획득된 스트리밍 손실 패킷과 기 수신된 스트리밍 패킷을 취합하여 하나의 컨텐츠 저장시킴으로써, 추가 패킷 전송을 최소화하면서 UDP 전송으로 인한 패킷 손실을 효과적으로 보상하여 패킷 손실 없이 스트리밍 컨텐츠를 저장할 수 있으며, 이를 통하여 UDP 기반 스트리밍 서비스를 제공 시, 컨텐츠의 실시간 재생은 보장하면서, 저장된 컨텐츠를 기반으로 한 서비스, 예를 들어, 다시 보기 서비스의 품질을 향상시켜, 효율적인 스트리밍 서비스를 가능케 한다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하기 위한 시스템의 구성을 나타내는 도면이다.
도 2는 본 발명에 따른 단말 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법에서의 일 실시예에서 손실 패킷이 보상되어 저장되는 과정을 설명하기 위한 패킷 데이터 흐름도이다.
도 4는 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법에서의 일 실시예를 설명하기 위한 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "부", "기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
상술한 용어들 이외에, 이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.
이하의 설명 및 특허청구범위에서 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 장치를 구현하기 위한 기술적인 배경은 MMT(MPEG Media Transport) 인 것을 가정하여 설명하도록 한다.
또한, 본 발명에서 패킷(Packet)을 송수신하기 위한 통신 프로토콜(Protocol)은 UDP(User Datagram Protocol)인 것을 가정하여 설명하도록 한다.
그러나, 이는 본 발명의 이해를 돕기 위한, 편의상 예시일 뿐, 본 발명이 반드시 MMT 또는 UDP 기술에만 한정되어 적용되는 것은 아니다.
그러면 이제, 본 발명의 실시 예에 따른 시스템에서의 스트리밍 컨텐츠의 패킷 손실 보상 방법에 대하여 도면을 참조하여 상세하게 설명하도록 한다.
도 1은 본 발명의 실시 예에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하기 위한 시스템의 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하기 위한 시스템은 단말 장치(300), 컨텐츠 스트리밍 서버(200)를 포함하여 구성될 수 있으며, 상기 단말 장치(300)와 컨텐츠 스트리밍 서버(200)는 통신망(100)을 통해서 연동한다.
그러면, 도 1을 참조하여 각 구성요소에 대해 개략적으로 설명하도록 한다.
먼저, 통신망(100)은 단말 장치(300)와 컨텐츠 스트리밍 서버(200)간 데이터 송수신을 위해 데이터를 전달하는 역할을 하며, 시스템 구현 방식에 따라 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식을 이용할 수도 있고, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식을 이용할 수도 있다.
아울러, 이러한 통신망(100)은 예컨대, 다수의 접속망(미도시) 및 코어망(미도시)을 포함하며, 외부망, 예컨대 인터넷망(미도시)을 포함하여 구성될 수 있다. 여기서, 접속망(미도시)은 단말 장치(300) 또는 컨텐츠 스트리밍 서버(200)와 유무선 통신을 수행하는 접속망으로서, 예를 들어, BS(Base Station), BTS(Base Transceiver Station), NodeB, eNodeB 등과 같은 다수의 기지국과, BSC(Base Station Controller), RNC(Radio Network Controller)와 같은 기지국 제어기로 구현될 수 있다. 또한, 전술한 바와 같이, 상기 기지국에 일체로 구현되어 있던 디지털 신호 처리부와 무선 신호 처리부를 각각 디지털 유니트(Digital Unit, 이하 DU라 함과 무선 유니트(Radio Unit, 이하 RU라 함)으로 구분하여, 다수의 영역에 각각 다수의 RU(미도시)를 설치하고, 다수의 RU(미도시)를 집중화된 DU(미도시)와 연결하여 구성할 수도 있다.
또한, 접속망(미도시)과 함께 모바일 망을 구성하는 코어망(미도시)은 접속망(미도시)과 외부 망, 예컨대, 인터넷망(미도시)을 연결하는 역할을 수행한다.
이러한 코어망(미도시)은 앞서 설명한 바와 같이, 접속망(미도시) 간의 이동성 제어 및 스위칭 등의 이동통신 서비스를 위한 주요 기능을 수행하는 네트워크 시스템으로서, 서킷 교환(circuit switching) 또는 패킷 교환(packet switching)을 수행하며, 모바일 망 내에서의 패킷 흐름을 관리 및 제어한다. 또한, 코어망(미도시)은 주파수간 이동성을 관리하고, 접속망(미도시) 및 코어망(미도시) 내의 트래픽 및 다른 네트워크, 예컨대 인터넷망(미도시)과의 연동을 위한 역할을 수행할 수도 있다. 이러한 코어망(미도시)은 SGW(Serving GateWay), PGW(PDN GateWay), MSC(Mobile Switching Center), HLR(Home Location Register), MME(Mobile Mobility Entity)와 HSS(Home Subscriber Server) 등을 더 포함하여 구성될 수도 있다.
또한, 인터넷망(미도시)은 UDP 프로토콜에 따라서 정보가 교환되는 통상의 공개된 통신망, 즉 공용망을 의미하는 것으로, 단말 장치(300)와 연결되며, 단말 장치(300)로부터 제공되는 정보를 코어망(미도시) 및 접속망(미도시)을 거쳐 컨텐츠 스트리밍 서버(200)로 제공할 수도 있다. 그러나, 이에 한정되는 것은 아니며, 컨텐츠 스트리밍 서버(200)는 코어망(미도시)과 일체로 구현될 수도 있다.
또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
본 발명에 따른 컨텐츠 스트리밍 서버(200)는 통신망(100)을 통해서 단말 장치(300)와 연동하여 컨텐츠 전송 요청을 받고 해당 컨텐츠를 통신망(100)을 통해서 스트리밍 방식으로 단말 장치(300)로 전송하기 위한 장치이다.
특히, 본 발명의 실시 예에 있어서, 컨텐츠 스트리밍 서버(200)는 컨텐츠를 스트리밍 하기 위하여 단말 장치(300)에 스트리밍 컨텐츠 데이터를 패킷 단위로 나누어 전송할 수 있으며, 단말 장치(300)의 요청이 있는 경우, 컨텐츠를 이루는 전체 데이터 중 일부를 패킷 단위로 재전송 할 수 있다.
마지막으로 단말 장치(300)는 사용자의 조작에 따라 통신망(100)을 통해 컨텐츠 스트리밍 서버(200)와 각종 데이터를 송수신할 수 있는 사용자의 장치를 의미한다.
이러한 단말 장치(300)는 통신망(100)을 통하여 음성 또는 데이터 통신을 수행할 수 있으며, 데이터의 송수신 및 처리를 위한 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다. 또한, 이러한 본 발명의 단말 장치(300)는 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 단말 장치(300)는 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 노트북 컴퓨터(Laptop Computer), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수도 있다.
또한, 본 발명의 단말 장치(300)는 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 유닛들과 동등한 수준의 유닛이 본 발명에 따른 단말 장치(300)로 사용될 수 있으며, 본 발명에 따른 데이터를 송수신 할 수 있는 장치라면, 그 어떠한 장치도 본 발명의 실시 예에 따른 단말 장치(300)로 이용될 수 있다.
특히, 본 발명에 따른 단말 장치(300)는 컨텐츠 스트리밍 서버(200)로부터 컨텐츠를 패킷 단위로 연속적으로 수신하며, 수신한 스트리밍 패킷을 실시간으로 재생하여 출력한다. 이때, 단말 장치(300)는 상기 실시간 재생과는 별도로 수신한 일정 단위로 스트리밍 패킷 중 손실된 패킷이 있는지, 즉, 손실된 패킷의 존재 여부를 검사할 수 있다.
만약, 손실된 패킷이 존재한다면, 손실된 스트리밍 손실 패킷에 대하여 컨텐츠 스트리밍 서버(200)로 재전송을 요청하고, 컨텐츠 스트리밍 서버(200)에 이해 상기 스트리밍 손실 패킷이 수신되면, 이전에 수신된 스트리밍 패킷과 재전송 요청에 의해 수신된 스트리밍 손실 패킷을 취합하여 신뢰성 높은 컨텐츠로 저장할 수 있다.
이 때, 단말 장치(300)는 기 설정된 시간 또는 용량 단위로 스트리밍 패킷 중 손실된 패킷이 있는지를 검사할 수 있으며, 이 때, 손실된 패킷에 대한 리스트를 생성할 수 있다. 그리고 이렇게 생성된 스트리밍 손실 패킷 리스트에 포함된 하나 이상의 스트리밍 손실 패킷에 대한 재전송을 컨텐츠 스트리밍 서버(200)에 요청하여 상기 스트리밍 손실 패킷을 수신할 수 있다.
그리고 단말 장치(300)는 재생 출력되는 스트리밍 패킷과 재전송 요청을 통해 추가 수신된 스트리밍 손실 패킷을 취합하여 하나의 완성된 컨텐츠를 저장하며, 이렇게 저장된 높은 신뢰성을 가진 컨텐츠는 사용자의 명령에 따라 다시 보기 형태로 재생될 수 있다.
이상, 본 발명의 실시 예에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하기 위한 시스템의 구성에 대해 설명하였다.
이어서, 상기 시스템의 구성 중, 본 발명에 따른 단말 장치(300)의 구성 및 동작 방법에 대해 설명하도록 한다.
도 2는 단말 장치(300)의 주요 구성을 도시하는 블록도이고, 도 3은 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법에서의 일 실시예에서 손실 패킷이 보상되어 저장되는 과정을 설명하기 위한 패킷 데이터 흐름도이며, 도 4는 본 발명의 목적을 달성하기 위한 단말 장치(300)의 동작 방법을 나타낸 흐름도이다.
먼저 도2를 참조하면, 본 발명에 따른 단말 장치(300)는 입력 모듈(310), 출력 모듈(330), 통신 모듈(350), 저장 모듈(370), 제어 모듈(390)로 구성될 수 있다.
입력 모듈(310)은 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 단말 장치(300)의 기능 제어와 관련하여 입력되는 신호를 제어 모듈(390)로 전달한다. 또한, 입력 모듈(310)은 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성될 수 있다. 이때, 입력 모듈(310)은 출력 모듈(330)와 함께 하나의 터치패널(또는 터치스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 입력 모듈(310)은 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. 특히, 본 발명에 따른 입력 모듈(310)은 사용자로부터 입력되는 입력 정보를 감지하여 제어 모듈(390)로 전달한다.
특히, 본 발명에 따른 입력 모듈(310)은 사용자로부터 '컨텐츠스트리밍' 요청 신호와 '다시 보기' 기능 실행 요청 신호를 수신하여 제어 모듈(390)로 전송할 수 있다.
출력 모듈(330)은 단말 장치(300)의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시한다. 또한, 출력 모듈(330)은 단말 장치(300)의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 출력 모듈(330)은 액정표시장치(LCD, Liquid Crystal Display), 초박막 액정표시장치(TFT-LCD, Thin Film Transistor LCD), 발광다이오드(LED, Light Emitting Diode), 유기 발광다이오드(OLED, Organic LED), 능동형 유기발광다이오드(AMOLED, Active Matrix OLED), 레티나 디스플레이(Retina Display), 플렉시블 디스플레이(Flexible display) 및 3차원(3 Dimension) 디스플레이 등으로 구성될 수 있다. 이때, 출력 모듈(330)이 터치스크린(Touch screen) 형태로 구성된 경우, 출력 모듈(330)은 입력 모듈(310)의 기능 중 일부 또는 전부를 수행할 수 있다.
특히, 본 발명에서 출력 모듈(330)은 사용자의 요청에 의해 수신된 컨텐츠를 스트리밍하여 재생하거나 '다시 보기' 기능에 의해 저장된 컨텐츠를 재생할 수 있다.
통신 모듈(350)은 통신망(100)을 통해 컨텐츠 스트리밍 서버(200)와 데이터를 송수신하기 위한 것이다. 또한, 통신 모듈(350)은 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단, 특정 통신 방식에 따른 통신 프로토콜을 처리하기 위한 데이터 처리 수단 등을 포함한다. 이러한 통신 모듈(350)는 무선통신 모듈(미도시) 및 유선통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 단말 장치(300)가 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 컨텐츠 스트리밍 서버(200)와 송수신할 수 있다.
특히, 본 발명에서 통신 모듈(350)은 UDP를 사용하여 컨텐츠 스트리밍 서버(200)와 스트리밍 패킷 및 스트리밍 손실 패킷을 송수신할 수 있으나, 반드시 이에 한정되는 것은 아니다.
저장 모듈(370)은 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함하고, 단말 장치(300)의 기능 동작에 필요한 응용 프로그램을 저장한다. 이러한 저장 모듈(370)은 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 단말 장치(300)는 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어 모듈(390)의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다.
특히, 본 발명에서 저장 모듈(370)은 제1버퍼(371), 제2버퍼(373), 컨텐츠 저장소(375)를 포함할 수 있다.
제1버퍼(371)는 통신 모듈(350)로부터 스트리밍 패킷을 수신하여 일정 시간동안 임시로 저장하고, 일정 시간이 경과한 후 상기 스트리밍 패킷을 제어 모듈(390)에 포함된 재생 모듈(391) 및 재전송 요청 모듈(393)로 출력하며, 제2버퍼(373)는 통신 모듈(350)로부터 스트리밍 손실 패킷을 수신하여 일정 시간동안 임시로 저장하고, 일정 시간이 경과한 후 상기 스트리밍 손실 패킷을 제어 모듈(390)에 포함된 재전송 요청 모듈(393)로 출력할 수 있다.
컨텐츠 저장소(375)는 제어모듈(390)에 의해 취합된 컨텐츠 데이터를 저장할 수 있다.
제어 모듈(390)은 통신 모듈(350)이 통신망(100)을 통해 수신한 스트리밍 패킷을 실시간으로 재생하여 출력하도록 하면서, 상기 수신한 스트리밍 패킷 중 손실된 패킷이 있는지 여부, 즉, 손실 패킷의 존재 여부를 검사한다. 검사 결과, 손실된 패킷이 발견된 경우 스트리밍 손실 패킷에 대하여 컨텐츠 스트리밍 서버(200)에 재전송을 요청한 후, 이전에 수신한 스트리밍 패킷과 재전송 요청에 의해 수신된 스트리밍 손실 패킷을 취합하여 저장 모듈(370)에 포함된 컨텐츠 저장소(375)에 저장시킬 수 있다.
특히, 제어 모듈(390)은 기 설정된 시간 또는 용량 단위로 컨텐츠 스트리밍 서버(200)로부터 수신한 스트리밍 패킷을 검사하여 스트리밍 손실 패킷 리스트를 생성하고, 생성된 스트리밍 손실 패킷 리스트에 포함된 하나 이상의 스트리밍 손실 패킷에 대하여 컨텐츠 스트리밍 서버(200)에 재전송을 요청할 수 있다.
이를 위해 제어모듈(390)은 재생모듈(391)과 재전송 요청 모듈(393)을 포함할 수 있는데, 재생모듈(391)은 제1버퍼(371)가 스트리밍 패킷을 수신한지 일정 시간이 경과하면, 제1버퍼(371)로부터 스트리밍 패킷을 수신하여 실시간으로 수신한 스트리밍 패킷으로 이루어진 컨텐츠를 출력 모듈(330)을 통해 재생하도록 할 수 있다.
재전송 요청 모듈(393)은 제1버퍼(371)가 스트리밍 패킷을 수신한지 일정 시간이 경과하면, 제1버퍼(371)로부터 스트리밍 패킷을 전달받아 스트리밍 패킷 중 손실된 패킷이 존재하는지 여부를 검사하여 스트리밍 손실 패킷을 컨텐츠 스트리밍 서버(200)가 재전송하도록 요청할 수 있다.
또한, 제어 모듈(390)은 상기 재전송 요청 모듈(393)의 재전송 요청에 의하여 수신된 스트리밍 손실 패킷을 제2버퍼(373)에 저장하고, 상기 스트리밍 손실 패킷과 기 수신된 스트리밍 패킷을 취합하여 만들어진 신뢰성 높은 컨텐츠를 컨텐츠 저장소(375)로 저장시킬 수 있다.
도 3을 참조하여, 본 발명에 따른 스트리밍 패킷과 스트리밍 손실 패킷의 취합과정을 보다 자세히 살펴보면, 통신 모듈(350)은 컨텐츠 스트리밍 서버(200)로부터 컨텐츠 스트리밍 패킷을 수신하게 되는데, 도 3에서는 전송 도중 손실로 인하여, 1번 내지 5번 패킷 중, 1, 3, 4번 패킷만을 통신 모듈(350)이 수신하게 된다.
수신한 1, 3, 4번 스트리밍 패킷은 제1버퍼(371)에 임시로 저장되고, 일정시간이 경과한 후, 1, 3, 4번 스트리밍 패킷은 재생 모듈(391)에 의해 실시간으로 출력모듈(330)을 통해 재생된다.
이와 동시에, 검사 결과에 의하여 2, 5번 패킷이 손실된 것을 발견한 단말 장치(300)는 2, 5번 패킷을 스트리밍 손실 패킷으로 한 스트리밍 손실 패킷 리스트를 생성하게 되고, 기 설정된 시간 또는 용량이 초과된 이후 생성된 상기 리스트를 컨텐츠 스트리밍 서버(200)로 전송하여 2, 5번 패킷에 대한 재전송을 요청할 수 있다.
그러면 통신 모듈(350)은 컨텐츠 스트리밍 서버(200)로부터 2, 5번 패킷을 다시 수신하여 제2버퍼(373)에 저장한다. 상기 단말 장치(300)의 제어 모듈(390)은, 일정시간이 경과한 후, 제1 버퍼(371)에 저장된 1,3,4 번 패킷과 제2 버퍼(373)에 저장된 2, 5번 패킷을 시퀀스 넘버를 기반으로 취합한 후 컨텐츠 저장소(375)에 저장한다. 이에, 컨텐츠의 1번 내지 5번 패킷이 손실 없이 컨텐츠 저장소(375)에 저장될 수 있다.
이 때, 제1버퍼(371)와 제2버퍼(373)는 FIFO(First In First Out) 방식으로 패킷을 처리할 수 있으며, 이때, 버퍼 사이즈는 필요에 따라서 가변될 수 있다.
이제, 도 4를 참조하여, 본 발명에 따른 단말 장치(300)의 동작 방법을 설명하도록 한다.
단말 장치(300)는 컨텐츠 스트리밍 서버(200)로 컨텐츠 전송을 요청하게 되고, 통신망(100)을 통해 컨텐츠 스트리밍 서버(200)로부터 상기 컨텐츠를 패킷 단위로 수신할 수 있다(S101). 상기에서, 패킷 단위로 스트리밍 방식으로 수신되는 컨텐츠 데이터를 스트리밍 패킷이라 한다. 상기 스트리밍 패킷은 제1 버퍼(371)에 순차적으로 저장된다.
그리고, 단말 장치(300)는 수신한 스트리밍 패킷을 실시간으로 재생하여 출력한다(S103). 구체적으로, 상기 제1 버퍼(371)에 저장된 스트리밍 패킷을 순서대로 가져와 디코딩하여 출력 모듈(330)에 프레임 단위로 재생 출력한다. 이때, 상기 단말 장치(300)는 수신된 스트리밍 패킷 중에 손실된 패킷이 존재하더라도 그대로 순차적으로 재생함으로써, 지연없이 컨텐츠의 실시간 재생이 가능하게 된다.
동시에, 상기 단말 장치(300)는 수신한 스트리밍 패킷 중 손실된 패킷이 존재하는지 여부, 즉, 스트리밍 패킷이 손실없이 모두 수신되었는지 여부를 검사한다(S105). 구체적으로, 단말 장치(300)는 제1 버퍼(371)에 저장된 스트리밍 패킷의 시퀀스 넘버를 확인하여, 손실된 패킷이 있는 지를 검사할 수 있다.
검사 결과, 만약 수신한 스트리밍 패킷 중 손실된 패킷(이하, 스트리밍 손실 패킷이라 함)이 있다면, 단말 장치(300)는 손실된 스트리밍 손실 패킷에 대한 리스트를 생성할 수 있다(S107).
이 때, 스트리밍 손실 패킷 리스트의 생성은 기 설정된 시간 또는 용량 단위로 이루어질 수 있다. 예를 들어, 단말 장치(300)는 시간 경과 또는 수신된 패킷의 용량을 카운팅하여, 기 설정된 시간 또는 용량이 초과되지 않았다면, 계속해서 컨텐츠 스트리밍 서버(200)로부터 수신되는 스트리밍 패킷의 패킷 손실여부를 검사하여 손실된 패킷의 시퀀스 넘버를 상기 스트리밍 손실 패킷 리스트에 추가한다.
그리고, 기 설정된 시간 또는 용량이 초과하면 단말 장치(300)는 컨텐츠 스트리밍 서버(200)에 상기 스트리밍 손실 패킷 리스트를 전송하여 손실된 패킷들의 재전송을 요청하여 수신할 수 있다(S109~S111). 이때, 상기 재전송 요청을 통해 수신된 스트리밍 손실 패킷은 기 수신된 스트리밍 패킷과 구분되도록 제2 버퍼(373)에 저장된다.
그리고, 단말 장치(300)는 스트리밍 손실 패킷 리스트의 스트리밍 손실 패킷을 수신하면, 이전에 수신한 스트리밍 패킷과 취합하여, 손실없는 컨텐츠 데이터를 완성하고, 이렇게 완성된 컨텐츠 데이터를컨텐츠 저장소(375)에 저장할 수 있다(S113). 따라서, 실시간 재생되는 컨텐츠와 달리, 저장된 컨텐츠는 패킷 로스 없이 저장될 수 있다.
한편, S105 단계에서 스트리밍 패킷이 손실 없이 모두 수신되었다고 판단된다면, 즉, 패킷 손실 검사결과 스트리밍 컨텐츠를 구성하는 패킷이 모두 수신되었다고 판단된다면, 재전송 요청 없이 바로 컨텐츠 저장소(375)에 완전한 컨텐츠를 저장할 수 있다(S113)
스트리밍 컨텐츠의 재생이 종료되지 않으면, S101~S113 단계를 계속하여 수행하게 되며, 스트리밍 컨텐츠의 재생이 종료되면, 단말 장치(300)는 사용자가 다시 보기 기능을 선택할 때까지 대기할 수 있다.
사용자가 다시보기 기능을 선택하면(S117), 단말 장치(300)는 컨텐츠 저장소(375)에 저장된 컨텐츠를 재생할 수 있다(S119)
이상, 본 발명에 따른 단말 장치(300)의 구성 및 동작 방법에 대해 설명하였다.
이하, 본 발명의 실시예에 따른 스트리밍 컨텐츠의 손실 패킷 보상 방법에 대해 설명하도록 한다.
도 5는 본 발명에 따른 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법에서의 일 실시예를 설명하기 위한 흐름도이다.
도 5를 참조하면, 단말 장치(300)가 컨텐츠 스트리밍 서버(200)에 컨텐츠를 스트리밍 하기 위해 스트리밍 패킷을 전송하여 줄 것을 요청하면(S301), 컨텐츠 스트리밍 서버(200)는 요청된 스트리밍 패킷(S303)을 전송할 수 있다.
도 5에서는 컨텐츠 스트리밍 서버(200)가 1번부터 5번 패킷을 전송하였으나, 1, 3, 4번 패킷만이 단말 장치(300)로 전송되고, 2, 5번 패킷은 손실된 것을 보여준다. 물론, 1번 내지 5번 패킷을 전송하였다고 하더라도, 하나의 컨텐츠를 구성하는 모든 패킷을 모두 전송할 때까지 컨텐츠 스트리밍 서버(200)는 계속하여 다음 패킷을 단말 장치(300)에 전송한다.
그리고, 단말 장치(300)는 수신된 스트리밍 컨텐츠, 즉, 1, 3, 4번 패킷을 순차적으로 처리하여 재생하게 된다.
한편, 컨텐츠 스트리밍 서버(200)로부터 패킷을 수신한 단말 장치(300)는 손실된 패킷 존재 여부를 검사하게 되고, 손실된 스트리밍 손실 패킷에 대한 리스트를 생성할 수 있다(S305). 도 4에서 단말 장치(300)는 검사 결과 2, 5번 패킷이 손실된 것으로 판단하고, 2, 5번 패킷을 스트리밍 손실 패킷 리스트에 포함시킬 수 있다. 이후, 기 설정된 시간 또는 용량을 초과하면, 그 때까지 생성된 스트리밍 손실 패킷 리스트에 포함된 스트리밍 손실 패킷을 재전송할 것을 컨텐츠 스트리밍 서버(200)에 요청할 수 있다(S307).
그러면 단말 장치(300)로부터 상기의 재전송 요청을 수신한 컨텐츠 스트리밍 서버(200)는 손실된 패킷인 2, 5번 패킷을 단말 장치(300)로 재전송할 수 있고(S309), 2, 5번 패킷을 수신한 단말 장치(300)는 이미 수신한 스트리밍 패킷인 1, 3, 4번 패킷과 재전송 요청에 의해 수신한 스트리밍 손실 패킷인 2, 5번 패킷을 취합하여 만들어진 신뢰성 높은 컨텐츠를 완성하여 컨텐츠 저장소(375)에 저장할 수 있다(S311).
이상, 본 발명의 실시예에 따른 스트리밍 컨텐츠의 손실 패킷 보상 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 실시 예에 따른 데이터 수신 경로 스케쥴링 위한 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다.
이때, 기록매체에 기록된 프로그램은 컴퓨터에서 읽히어 설치되고 실행됨으로써 전술한 기능들을 실행할 수 있다.
여기서, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 기능들을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다. 또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. 또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
이러한, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
이러한 본 발명의 실시 예들에 따른 각 단계는, 컴퓨터로 실행 가능한 명령어로 구현되어 컴퓨팅 시스템에 의해 실행될 수 있다. 여기서, "컴퓨팅 시스템"은 전자 데이터 상의 동작의 수행과 함께 동작하는 하나 이상의 소프트웨어 모듈, 하나 이상의 하드웨어 모듈, 또는 그 조합으로서 정의된다. 예를 들면, 컴퓨터 시스템의 정의는 퍼스널 컴퓨터의 오퍼레이팅 시스템과 같은 소프트웨어 모듈 및 퍼스널 컴퓨터의 하드웨어 컴포넌트를 포함한다. 모듈의 물리적인 레이아웃(layout)은 중요하지 않다. 컴퓨터 시스템은 네트워크를 통하여 연결된 하나 이상의 컴퓨터를 포함할 수 있다.
마찬가지로, 컴퓨팅 시스템은 메모리 및 프로세서와 같은 내부 모듈이 전자 데이터 상의 동작의 수행과 함께 동작하는 하나의 물리적 장치로 구현될 수 있다.
이상에서 설명한 바와 같이, 본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 명세서에서 설명한 주제의 특정한 실시형태를 설명하였다. 기타의 실시형태들은 이하의 청구항의 범위 내에 속한다. 예컨대, 청구항에서 인용된 동작들은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 성취할 수 있다. 일 예로서, 첨부도면에 도시한 프로세스는 바람직한 결과를 얻기 위하여 반드시 그 특정한 도시된 순서나 순차적인 순서를 요구하지 않는다. 특정한 구현 예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 통상의 기술자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 통상의 기술자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
본 발명은 스트리밍되는 컨텐츠의 손실된 패킷을 보상하여 저장하는 방법 및 장치에 한 것으로, 더욱 상세하게는 단말 장치가 서버에 스트리밍을 요청할 때, 스트리밍된 컨텐츠를 패킷을 실시간으로 출력함과 동시에 스트리밍 패킷에 손실이 발생하였는지 여부를 검사하고 손실된 스트리밍 손실 패킷 재전송을 요청하여 스트리밍 패킷과 스트리밍 손실 패킷을 취합하여 저장하기 위한 스트리밍 컨텐츠의 패킷 손실을 보상하는 방법, 이를 위한 장치에 관한 것이다.
본 발명에 의하면, UDP 전송으로 인한 패킷 손실을 효과적으로 보상하여 패킷 손실 없이 스트리밍 컨텐츠를 저장함으로써 UDP 기반 라이브 스트리밍 전송과 동시에 UDP 기반 다시 보기 서비스를 효율적으로 제공할 수 있고, 이를 통해 스트리밍 컨텐츠 제공 서비스 산업 반전에 이바지 할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
100: 통신망 200: 컨텐츠 스트리밍 서버 300: 단말 장치
310: 단말 장치의 입력 모듈 330: 단말 장치의 출력 모듈
350: 단말 장치의 통신 모듈 370: 단말 장치의 저장 모듈
371: 단말 장치의 제1버퍼 373: 단말 장치의 제2버퍼
375: 단말 장치의 컨텐츠 저장소 390: 단말 장치의 제어 모듈
391: 단말 장치의 재생 모듈 393: 단말 장치의 재전송 요청 모듈

Claims (11)

  1. 통신망을 통해 컨텐츠 스트리밍 서버에 접속하여 데이터를 송수신하는 통신모듈;
    상기 컨텐츠 스트리밍 서버로부터 수신한 스트리밍 패킷, 스트리밍 손실 패킷 및 상기 스트리밍 패킷과 스트리밍 손실 패킷으로 구성된 컨텐츠 데이터를 저장하는 저장모듈; 및
    상기 스트리밍 패킷을 실시간으로 재생하여 출력하면서, 상기 수신한 스트리밍 패킷 중 손실된 패킷의 존재 여부를 검사하여 손실된 상기 스트리밍 손실 패킷에 대하여 상기 컨텐츠 스트리밍 서버에 재전송을 요청한 후, 상기 스트리밍 패킷과 재전송 요청에 의해 수신된 상기 스트리밍 손실 패킷을 취합하여 상기 저장 모듈에 저장시키는 제어모듈
    을 포함하는 것을 특징으로 하는 단말 장치.
  2. 제1항에 있어서, 상기 제어모듈은
    기 설정된 시간 또는 용량 단위로, 상기 스트리밍 패킷을 검사하여 스트리밍 손실 패킷 리스트를 생성하고, 상기 생성된 스트리밍 손실 패킷 리스트에 포함된 하나 이상의 스트리밍 손실 패킷에 대하여 재전송을 요청하는 것을 특징으로 하는 단말 장치.
  3. 제1항에 있어서, 상기 스트리밍 패킷 및 상기 스트리밍 손실 패킷은
    MPEG 미디어 트랜스포트(MMT; MPEG Media Transport) 패킷인 것을 특징으로 하는 단말장치.
  4. 제1항에 있어서, 상기 통신모듈은
    UDP(User Datagram Protocol)를 사용하여 상기 컨텐츠 스트리밍 서버와 상기 스트리밍 패킷 및 상기 스트리밍 손실 패킷을 송수신하는 것을 특징으로 하는 단말 장치.
  5. 제2항에 있어서, 상기 제어 모듈은
    상기 저장모듈로부터 상기 스트리밍 패킷을 수신하여 실시간으로 상기 수신한 스트리밍 패킷으로 이루어진 컨텐츠를 출력 모듈을 통해 재생하는 재생모듈; 및
    상기 저장모듈로부터 상기 스트리밍 패킷을 수신하고 상기 스트리밍 패킷 중 손실된 패킷의 존재 여부를 검사하여 상기 스트리밍 손실 패킷을 상기 컨텐츠 스트리밍 서버가 재전송하도록 요청하는 재전송 요청 모듈
    을 포함하는 것을 특징으로 하는 단말 장치.
  6. 제1항에 있어서, 상기 저장 모듈은
    수신된 상기 스트리밍 패킷을 저장하는 제 1버퍼;
    수신된 상기 스트리밍 손실 패킷을 저장하는 제 2버퍼; 및
    상기 제어 모듈에 의해 취합된 컨텐츠 데이터를 저장하는 컨텐츠 저장소
    을 포함하는 것을 특징으로 하는 단말 장치.
  7. 단말장치가 컨텐츠 스트리밍 서버에 스트리밍 전송을 요청하는 단계;
    상기 컨텐츠 스트리밍 서버로부터 스트리밍 패킷을 수신하는 단계;
    상기 수신된 스트리밍 패킷을 실시간으로 재생하여 출력하는 단계;
    상기 스트리밍 패킷 중 손실된 패킷 존재 여부를 검사하는 단계;
    상기 검사 결과에 따라 상기 컨텐츠 스트리밍 서버에 스트리밍 손실 패킷 전송을 요청하는 단계; 및
    스트리밍 손실 패킷이 수신되면, 상기 스트리밍 패킷과 상기 스트리밍 손실 패킷을 취합하여 저장하는 단계;
    를 포함하는 손실 패킷 보상 방법.
  8. 제7항에 있어서, 상기 손실된 패킷 존재 여부를 검사하는 단계는
    기 설정된 시간 또는 용량 단위로 상기 스트리밍 손실 패킷을 검사하여 스트리밍 손실 패킷 리스트를 생성하고,
    상기 스트리밍 손실 패킷 전송을 요청하는 단계는
    상기 생성된 스트리밍 손실 패킷 리스트에 포함된 하나 이상의 스트리밍 손실 패킷에 대하여 전송을 요청하는 것을 특징으로 하는 손실 패킷 보상 방법.
  9. 제7항에 있어서, 상기 스트리밍 패킷을 수신하는 단계는
    상기 스트리밍 패킷을 수신하여 제1버퍼에 저장하는 것을 특징으로 하고,
    상기 패킷을 취합하여 저장하는 단계는
    상기 스트리밍 손실 패킷이 수신되면 제2버퍼에 저장한 다음, 상기 스트리밍 손실 패킷을 기 수신된 스트리밍 패킷과 취합하는 것을 특징으로 하는 손실 패킷 보상 방법.
  10. 제7항 내지 제9항 중 어느 하나의 항에 기재된 방법을 실행시키는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  11. 제7항 내지 제9항 중 어느 하나의 항에 기재된 방법을 실행시키도록 구현되어 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020150100572A 2015-07-15 2015-07-15 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치 KR20170009105A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150100572A KR20170009105A (ko) 2015-07-15 2015-07-15 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150100572A KR20170009105A (ko) 2015-07-15 2015-07-15 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
KR20170009105A true KR20170009105A (ko) 2017-01-25

Family

ID=57991318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150100572A KR20170009105A (ko) 2015-07-15 2015-07-15 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR20170009105A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108322836A (zh) * 2018-01-24 2018-07-24 北京奇艺世纪科技有限公司 一种数据传输的方法及装置
KR20190081048A (ko) * 2017-12-29 2019-07-09 주식회사 픽스트리 Ip 네트워크를 이용하여 스트림 패킷 전송 시 패킷 손실 검출 및 복구 방법 및 장치
WO2021256845A1 (ko) * 2020-06-17 2021-12-23 에스케이텔레콤 주식회사 캐시 서버를 이용한 패킷손실 복구장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736801B1 (ko) 2000-04-27 2007-07-09 노쓰 캐롤라이나 스테이트 유니버시티 손실이 많은 패킷에 근거한 네트워크를 통해 비디오를전송하기 위한 동적 하이브리드 패킷 손실 복구 방법 및시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100736801B1 (ko) 2000-04-27 2007-07-09 노쓰 캐롤라이나 스테이트 유니버시티 손실이 많은 패킷에 근거한 네트워크를 통해 비디오를전송하기 위한 동적 하이브리드 패킷 손실 복구 방법 및시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190081048A (ko) * 2017-12-29 2019-07-09 주식회사 픽스트리 Ip 네트워크를 이용하여 스트림 패킷 전송 시 패킷 손실 검출 및 복구 방법 및 장치
CN108322836A (zh) * 2018-01-24 2018-07-24 北京奇艺世纪科技有限公司 一种数据传输的方法及装置
WO2021256845A1 (ko) * 2020-06-17 2021-12-23 에스케이텔레콤 주식회사 캐시 서버를 이용한 패킷손실 복구장치 및 방법

Similar Documents

Publication Publication Date Title
KR102072344B1 (ko) 적응형 스트리밍 서비스 제공 방법 및 이를 위한 장치
US8804721B2 (en) Multi-stream communication
KR102126257B1 (ko) 멀티뷰 스트리밍 서비스 지원 방법 및 이를 지원하는 장치
US20230083441A1 (en) Managing subpacket transmission and reception for advanced interactive services
US20140112120A1 (en) Server, client device, and control methods thereof
US10148725B2 (en) Apparatus and computer-readable recording medium having program recorded therein for providing low-latency real-time broadcast content
US11792130B2 (en) Audio/video communication method, terminal, server, computer device, and storage medium
US9356820B2 (en) Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections
US11240559B2 (en) Content reproducing apparatus and content reproducing method
KR20170009105A (ko) 스트리밍 컨텐츠의 패킷 손실을 보상하여 저장하는 방법 및 이를 위한 장치
KR101743441B1 (ko) 기지국 연동 노드를 통한 스트리밍 데이터 제공 방법, 이를 위한 기지국 연동 노드
US9264666B1 (en) Live streaming using multiple content streams
US9232563B2 (en) Aggregation of bandwidth from multiple wireless devices
KR102209783B1 (ko) 스트리밍 제공 서버와 기지국 연동 노드를 통한 스트리밍 데이터 패킷 제공 방법, 이를 위한 기지국 연동 노드
KR20170050698A (ko) 인코딩 방법 및 디코딩 방법, 그리고 이를 위한 장치
KR20170009195A (ko) 동영상 컨텐츠 제공 방법 및 장치
KR102209782B1 (ko) 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR102210407B1 (ko) 복수 통신망을 이용한 컨텐츠 전송 방법 및 장치
WO2021082602A1 (zh) 处理媒体业务的方法与电子设备
KR102209784B1 (ko) Mmt 패킷 캐싱 처리 방법 및 이를 위한 장치, 캐싱 처리를 위한 mmt 패킷 생성 방법 및 이를 위한 장치
EP4319176A1 (en) Method for transmitting streaming media data and related device
US20140172948A1 (en) Method and apparatus for command synchronization
KR20170018603A (ko) 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR102209785B1 (ko) Mmt 패킷 캐싱 처리 방법 및 이를 위한 장치, 캐싱 처리를 위한 mmt 패킷 생성 방법 및 이를 위한 장치
CN113727183A (zh) 直播推流方法、装置、设备、存储介质及计算机程序产品

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application