KR100952292B1 - 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법 - Google Patents

전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법 Download PDF

Info

Publication number
KR100952292B1
KR100952292B1 KR1020080043004A KR20080043004A KR100952292B1 KR 100952292 B1 KR100952292 B1 KR 100952292B1 KR 1020080043004 A KR1020080043004 A KR 1020080043004A KR 20080043004 A KR20080043004 A KR 20080043004A KR 100952292 B1 KR100952292 B1 KR 100952292B1
Authority
KR
South Korea
Prior art keywords
program
stream
packet
multicast
segment
Prior art date
Application number
KR1020080043004A
Other languages
English (en)
Other versions
KR20090117102A (ko
Inventor
박승권
이은조
윤준희
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020080043004A priority Critical patent/KR100952292B1/ko
Publication of KR20090117102A publication Critical patent/KR20090117102A/ko
Application granted granted Critical
Publication of KR100952292B1 publication Critical patent/KR100952292B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1886Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network

Abstract

전송스트림 다중화를 이용한 VOD 송수신 시스템 및 방법이 개시된다. 전송스트림 다중화를 이용한 VOD 송신 방법은, 전송스트림(TS:Transport Stream) 분할을 위한 분할계수를 설정하는 단계, 상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하는 단계, 상기 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하는 단계 및 상기 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하여 시분할 전송하는 단계를 포함한다.
분할계수, 유니캐스트, 멀티캐스트, 다중화, 시분할 전송

Description

전송스트림 다중화를 이용한 VOD 송수신 시스템 및 방법 {SYSTEM AND METHOD FOR SENDING/RECEIVING VIDEO ON DEMAND USING TS MULTIPLEXING}
본 발명은 전송스트림 다중화를 이용한 VOD 송수신 시스템 및 방법에 관한 것으로 특히, 분할계수를 사용하여 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하고, 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 다중화하여 시분할 전송하는 시스템 및 방법에 관한 것이다.
최근의 네트워크의 광대역화와 방송 기술의 발전으로 VOD(Video-on-Demand) 서비스는 새로운 부가가치 산업으로 많은 관심을 받고 있다. VOD는 통신망을 이용해 디지털 데이터 형태로 저장중인 영화, 교육, 게임, 쇼핑 등의 영상 자료를 먼 거리에 있는 여러 사용자들에게 제공할 수 있는 양방향 시스템이다. 비디오는 동영상, 음성 등의 대용량 데이터의 집합체로써 압축 이후에도 많은 데이터를 전송해야 한다. 이를 네트워크를 통하여 전송할 경우 대단히 큰 채널 대역폭이 필요하고, 대역폭을 확보하기 위해서 적지 않은 비용이 소요되므로 대역폭의 효율적 활용이 필요하다.
VOD는 비디오를 전송하는 방식에 따라 크게 실시간 주문형 비디오(TVOD: True-VOD)와 유사 주문형 비디오(NVOD: Near-VOD)로 분류된다. 그 중 TVOD는 시청자가 원하는 시간에 원하는 프로그램을 선택하여 시청할 수 있는 방식으로 시청자에게 유니캐스트 전송방식을 통해서 다양한 멀티미디어 서비스를 제공하는 대화형 서비스이다. TVOD는 대화형 서비스의 장점이 있지만 시청자가 컨텐츠 서버에서부터 시청자단까지 전송채널을 점유하기 때문에 서비스의 제공에 많은 대역폭이 필요하며 이에 따른 많은 비용이 소요된다는 단점이 있다. 반면, NVOD는 대화형 서비스 기능과 시청자의 대기시간을 희생하는 대신, 하나의 비디오 프로그램을 여러 개의 방송채널을 통하여 순차적으로 반복하는 방식이다. NVOD는 하나의 비디오 채널을 이용하여 다수의 시청자들이 동시에 비디오를 시청할 수 있도록 하여 시스템 비용을 획기적으로 줄였다. NVOD는 TVOD에 비해 현저히 적은 채널을 필요로 하지만 많은 시청자들이 요청한 비디오를 즉시 볼 수 없다는 단점이 있다.
현재 IPTV 서비스에는 실시간 방송, TVOD, NVOD 전송 등의 트래픽이 존재하며, 이 중 TVOD 서비스를 위해서는 해당 컨텐츠의 압축 방식에 따라 비트 전송율은 SD급의 경우 2~6Mb/s, HD급의 경우 6~20Mb/s로 시청자에게 각각 대역폭이 점유되어 전송된다. 상기와 같은 전송률을 보장하기 위해 각 컨텐츠 제공 사업자는 수 Gb/s의 트래픽이 요구되며, 이러한 형태의 트래픽은 대부분 유니캐스트 형태로 전송된다. 결과적으로 TVOD를 포함한 모든 트래픽을 고려하면 백본 네트워크 전체의 전송트래픽의 양은 엄청나게 된다. 또한 TVOD 전송은 사용자의 네트워크 사용 시간대에 따라 그 전송량의 변화가 심할 것으로 예측된다. 이에 따라 서비스 요구량 예측이 가능하며 효율적인 TVOD를 제공할 수 있는 방법이 필요하다.
본 발명은 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 스트림 송신시 유니캐스트 방식에서 멀티캐스트 방식으로 빠르게 전환하여 시청자의 요청 후 즉시 시청이 가능한 실시간 VOD 송수신 시스템 및 방법을 제공한다.
본 발명은 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 대역폭을 효율적으로 사용하는 TVOD 서비스 송수신 시스템 및 방법을 제공한다.
본 발명은 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 일정시간만큼만 추가대역을 사용한 후 빠르게 일정수준으로 복귀하여 서비스 요구량 예측이 가능한 실시간 VOD 송수신 시스템 및 방법을 제공한다.
본 발명은 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 다중화하여 시분할 전송함으로써, 하나의 링크를 사용하여 멀티캐스트 세그먼트들의 효율적인 전송이 가능한 실시간 VOD 송수신 시스템 및 방법을 제공한다.
본 발명의 일실시예에 따른 전송스트림 다중화를 이용한 VOD 송신 방법은, 전송스트림(TS:Transport Stream) 분할을 위한 분할계수를 설정하는 단계, 상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하는 단계, 상기 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하는 단계 및 상기 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하여 시분할 전송하는 단계를 포함한다
본 발명의 일측면에 따르면, 상기 시분할 전송하는 단계는 상기 각 프로그램에 관련한 엘리먼트 스트림들의 PID(Packet Identifier)를 할당하는 단계, 상기 각 PES 스트림을 멀티플렉싱하여 싱글 프로그램 TS 스트림을 생성하는 단계, 상기 각 프로그램의 PMT_PID(Program Map Table Packet Identifier) 및 프로그램 넘버 중 적어도 하나를 할당하고, 상기 각 싱글 프로그램 TS 스트림을 다중화하여 멀티 프로그램 TS 스트림을 생성하는 단계 및 상기 멀티 프로그램 TS 스트림을 시분할 전송하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 전송스트림 다중화를 이용한 VOD 수신 방법은, 컨텐츠 전송을 요청받는 단계, 송신 단말로부터 유니캐스트 세그먼트를 수신하는 단계 및 송신 단말로부터 멀티 프로그램 TS 스트림을 수신하는 단계를 포함한다
본 발명의 일실시예에 따른 전송스트림 다중화를 이용한 VOD 송신 시스템은,전송스트림(Transport Stream) 분할을 위한 분할계수를 설정하는 분할계수 설정부, 상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하기 위한 각 세크먼트 크기를 산출하는 세그먼트 크기 산출부, 상기 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하는 유니캐스트 전송부 및 상기 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하여 시분할 전송하는 멀티캐스트 전송부를 포함한다.
본 발명의 일실시예에 따른 전송스트림 다중화를 이용한 VOD 수신 시스템은, 송신 단말로부터 유니캐스트 세그먼트를 수신하는 유니캐스트 수신부, 송신 단말로부터 멀티 프로그램 TS 스트림을 수신하는 멀티캐스트 수신부, 수신된 스트림 의 TS 패킷을 분석하는 TS 패킷 분석부 및 상기 수신된 TS 패킷의 순서를 재정렬하는 패킷 정렬부를 포함한다.
본 발명의 일실시예에 따르면, 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 스트림 송신 시 유니캐스트 방식에서 멀티캐스트 방식으로 빠르게 전환하여 시청자의 요청 후 즉시 시청이 가능한 실시간 VOD 송수신 시스템 및 방법이 제공된다.
본 발명의 일실시예에 따르면, 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 대역폭을 효율적으로 사용하는 TVOD 서비스 송수신 시스템 및 방법이 제공된다.
본 발명의 일실시예에 따르면, 전송스트림 부분분할을 통해 실시간으로 VOD를 송수신 함으로써, 일정시간만큼만 추가대역을 사용한 후 빠르게 일정수준으로 복귀하여 서비스 요구량 예측이 가능한 실시간 VOD 송수신 시스템 및 방법이 제공된다.
본 발명의 일실시예에 따르면, 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 다중화하여 시분할 전송함으로써, 하나의 링크를 사용하여 멀티캐스트 세그먼트들의 효율적인 전송이 가능한 실시간 VOD 송수신 시스템 및 방법이 제공된다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 MPEG2-Transport Stream(ISO/IEC standard 13818-1) 표준에 의거한 TS 패킷의 구조를 도시한 도면이다.
컨텐츠 전송을 위해서는 오디오 정보와 비디오 정보 그리고 데이터 정보를 전처리(pre-processing) 과정을 거친 후 인코딩하여 각각 ES(Elementary Stream)라고 불리는 비트스트림(bit stream) 형태로 변환한다. 오디오, 비디오, 데이터 각각의 ES는 다시 압축 단위를 구분하기 위해 패킷 형태로 변환되는데, 이 변환된 패킷을 PES(Packetized Elementary Stream) 패킷이라 부른다. PES 패킷은 헤더와 페이로드(payload)로 구성되어 있다. 헤더는 압축의 한 단위가 시작되었음을 알림과 동시에 페이로드에 관한 정보를 가지고 있다. 이러한 PES 패킷들이 각각 연속되는 오디오 PES, 비디오 PES, 데이터 PES는 시분할 다중화되어 TS(Transport Stream)로 변환된다. 예를 들어 오디오 PES와 비디오 PES를 다중화하여 TS를 생성하는 경우라면, 우선 오디오 PES를 184바이트씩 분할하여 잘라냄과 아울러 비디오 PES를 184바이트씩 분할하여 잘라낸다. 다음에 184바이트들 각각에 4바이트의 헤더를 부가하여 188바이트의 TS 패킷을 만든다. 이렇게 만들어진 오디오 TS 패킷들과 비디오 TS 패킷들을 시분할 다중화하여 TS를 생성한다. 도 1을 참고하면, TS 패킷 헤더(120)는 8비트의 동기 바이트(sync byte), 1비트의 트랜스포트 에러 표시자(transport error indicator), 1비트의 페이로드 단위 개시 표시자(payload unit start indicator), 1비트의 트랜스포트 우선순위(transport priority), 13비트의 PID(패킷 Identifier), 2비트의 트랜스포트 스크램블링 제어(transport scrambling control), 2비트의 어댑테이션 필드 제어(adaptation field control), 4비트의 순회 카운터(continuity counter)로 이루어진다. 어댑테이션 필드 제어는 헤더 이후에 어댑테이션 필드 또는 페이로드가 뒤이어지는지 여부를 가리킨다. 만일 어댑테이션 필드 제어값이 '0'이라면 헤더 이후에 어댑테이션 필드가 없다는 것을 의미한다. 즉, 헤더 이후에는 페이로드(130)만 존재한다는 것을 의미한다. 이와 달리 어댑테이션 필드 제어값이 '1'이라면 헤더 이후에 어댑테이션 필드가 이어짐을 나타낸다. 이처럼 헤더 이후에 어댑테이션 필드가 있는 경우에 어댑테이션 필드는 옵션 필드를 가지는 경우나 옵션 필드를 가지지 않는 경우가 있다. 옵션 필드는 헤더의 확장으로서 사용되는 필드이다.
도 2는 본 발명의 일실시예에 있어서, 부분분할에 따른 유니캐스트/멀티캐스트 세그먼트의 크기 결정 과정을 블록 다이어그램으로 도시한 도면이다.
도 2를 참고하면, 멀티캐스트 세그먼트 크기를 결정하기 위해 우선, 전체 전송스트림의 크기를 TS 패킷 사이즈(188 byte)로 나눈 값인 전체 전송스트림의 TS 패킷 수를 구하기 위해 전체 전송스트림의 크기(201)를 TS 패킷 사이즈의 역수(203)와 제1곱셈기(202)에서 곱할 수 있다. 이후, 전체 전송스트림의 TS 패킷 수를 분할계수(204)로 나누기 위해 전체 상기 구해진 전송스트림의 TS 패킷 수에 분할계수(204)의 역수를 취한 값(205)을 제2곱셈기(206)에서 곱할 수 있다. 또한 전체 전송스트림의 TS 패킷 수를 분할계수로 나눈값을 소수점 이하 버림연산(207)하고 그 값을 TS 패킷의 사이즈(188 byte)와 제3곱셈기에서 곱하면 멀티캐스트 세그먼트의 사이즈(210)가 결정될 수 있다. 여기서, 분할계수는 전송환경 등에 따라 변경될 수 있는 값이다.
또한 유니캐스트 세그먼트 크기를 결정하기 위해, 제1가감산기(211)를 통해 분할계수(204)에서 1을 뺀 값과 상기 멀티캐스트 세그먼트 결정시 도출된 소수점 이하 버림연산(207) 값을 제4곱셈기(212)를 통해 곱셈 연산한다. 이후, 상기 제1 곱셈기(202)를 통해 연산된 전체 전송스트림의 패킷 수에서 상기 제4곱셈기(212)를 통해 연산된 값을 제2가감산기(213)를 통해 뺄셈 연산한 후, 그 값을 TS 패킷 사이즈(209)와 제5곱셈기(214)를 통해 곱셈 연산하면 유니캐스트 세그먼트 사이즈를 구할 수 있다.
이때, 결정된 상기 유니캐스트 세그먼트의 크기로 첫 세그먼트를 분할하고 이후 스트림 크기를 멀티캐스트 세그먼트 크기로 중복 분할하면 선정한 분할계수의 수로 전체 스트림을 분할할 수 있다.
또한 이 경우, 상기 분할의 결과 유니캐스트 세그먼트의 크기는 멀티캐스트 세그먼트의 크기보다 항상 크거나 같다.
이와 같이, 상기 결정된 유니캐스트 세그먼트 사이즈 및 멀티캐스트 세그먼트 사이즈를 기초로 전체 전송스트림을 부분분할 할 수 있고, 상기 부분분할된 유니캐스트 세그먼트를 유니캐스트 방식으로 전송한 후, 상기 부분분할된 멀티캐스트 세그먼트를 멀티캐스트 방식으로 전송함으로써, 일정시간만큼만 추가대역을 사용한 후 빠르게 일정수준으로 복귀할 수 있어, 대역폭을 효율적으로 사용할 수 있다.
도 3은 본 발명의 일실시예에 있어서, 분할계수를 4로 선정하여 전체 전송스트림을 부분 분할한 결과를 도시한 도면이다.
도 3을 참고하면, 분할계수를 4로 선정하여 상기 도 2의 과정으로 전체 전송스트림(300)을 분할하여 도 3의 (a)와 같은 결과를 도출할 수 있고, 추가분할을 수행하는 경우, 도 3의 (b)와 같은 결과가 나타날 수 있다.
상기 분할의 결과 유니캐스트 세그먼트의 크기(310)는 멀티캐스트 세그먼트의 각각(320,330,340)의 크기보다 항상 크거나 같다. 즉, 전체 전송스트림 패킷의 수를 분할계수인 4로 나눈 후 소수점 이하를 버림연산 한 값을 기초로 멀티캐스트 세그먼트의 크기를 결정하였는바, 멀티캐스트 세그먼트의 크기는, 전체 전송스트림의 1/4 보다 작거나 같다. 따라서 멀티캐스트 세그먼트의 크기에 3을 곱한 값은 전체 전송스트림의 3/4 보다 작거나 같으며 전체 전송스트림에서 멀티캐스트 세그먼트의 크기에 3을 곱한 값을 뺀 값으로 유니캐스트 세그먼트의 크기가 결정되므로, 유니캐스트 세그먼트의 크기는 전체 전송스트림의 1/4보다 항상 크거나 같다. 따라서, 유니캐스트 세그먼트의 크기는 멀티캐스트 세그먼트의 크기보다 항상 크거나 같다. 즉, 제안된 송수신 시스템은 시청자의 요청 후 즉시 시청 가능하도록 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하며, 이후 세그먼트에 대해서는 멀티캐스트 방식으로 반복 전송하는 구조를 가지는바, 유니캐스트 세그먼트의 크기가 멀티캐스트 세그먼트의 크기보다 항상 크거나 같음으로 인해 시청자가 멀티캐스트 세그먼트 4(312)의 어느 위치에서 멀티캐스트 그룹 join을 하여도 유니캐스트 세그먼트로 전송된 컨텐츠의 시청 종료 이전에 멀티캐스트 세그먼트 4(312)의 전체 데이터를 받아 볼 수 있다. 위와 마찬가지로, 추가분할의 경우에도 추가분할된 유니캐스트 세그먼트(311)는 멀티캐스트 세그먼트 각각(312,313,314)의 크기보다 항상 크거나 같다.
도 4는 본 발명의 일실시예에 있어서, 각 프로그램에 따라 멀티캐스트 세그먼트들을 전송하는 과정을 도시한 도면이다.
도 4를 참고하면, 4개의 프로그램을 통해 6개의 멀티캐스트 세그먼트를 전송할 수 있다. 프로그램 1을 통해서는 세그먼트 4번(410)을, 프로그램 2를 통해서는 멀티캐스트 세그먼트 5,6번(420)을, 프로그램 3을 통해서는 멀티캐스트 세그먼트 1번(430)을 그리고 프로그램 4를 통해서는 멀티캐스트 세그먼트 2,3번(440)을 멀티캐스트 방식 시분할 전송한다. 이때 각 프로그램은 PMT_PID(Program Map Table Packet Identifier)에 따라 해당 스트림을 반복하여 전송하게 되는데, 각 세그먼트 반복 시 해당 세그먼트 뒤에는 PID가 0x1FFF인 null packet을 삽입한다. 그 이유는 수신측에서 세그먼트 수신 시 Continuity_counter 및 PTS의 순차적인 수신이 아닐 경우 각 세그먼트를 구분하는 역할로 사용하기 위함이다.
도 5는 본 발명의 일실시예에 있어서, 멀티 프로그램 TS 스트림을 생성하는 과정을 설명하기 위한 도면이다.
도 5를 참고하면, 우선 분리된 멀티캐스트 세그먼트의 엘리먼트 스트림들에 PID값을 할당한다. 여기서, 비디오 스트림, 오디오 스트림 등에 대하여 PID 값을 할당하고 각 기초스트림들을 멀티플렉싱 시키면 싱글 프로그램 TS 스트림이 생성된다.
예를 들면, Multicast_1에서는 세그먼트 4의 비디오 스트림, 오디오 스트림 등의 PID를 할당하고 이를 멀티플렉싱 시킬 수 있다. 마찬가지의 방법이 Multicast_2 내지 Multicast_4에 대해서도 진행될 수 있다. 이때 Multicast_2는 세그먼트 5,6을 Multicast_3은 세그먼트 1을 Multicast_4는 2,3을 싱글 프로그램 TS 스트림으로 다중화할 수 있다.
다음으로 상기 과정을 통해 생성된 하나 이상의 싱글 프로그램 TS 스트림을 멀티플렉싱하여 멀티 프로그램 TS 스트림을 생성할 수 있다. 이때, 상기 각 프로그램 의 프로그램 넘버 및 PMT_PID를 할당하고 상기 할당된 각 프로그램 넘버 및 각 PMT_PID를 PAT(Program Association Table)에 기록할 수 있다. 예를들면, Multicast_1의 프로그램 넘버에 '1'을 할당하고, PMT_PID로 '100'을 할당하여 이를 PAT(Program Association Table)에 기록할 수 있다.
상기의 과정을 통해 생성된 멀티 프로그램 TS 스트림은 하나의 링크를 통해 수신단말로 시분할 전송될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 세그먼트의 수신 절차를 도시한 흐름도이다.
도 6을 참고하면, 단계(S610)에서는 셋탑박스(settop-box)의 EPG 레벨에서 컨텐츠 요청을 할 수 있다.
단계(S620)에서는 유니캐스트 Listening을 하여 유니캐스트 세그먼트 수신을 시작하고, 단계(S630)에서는 상기 수신된 유니캐스트 세그먼트를 저장할 수 있다.
단계(S640)에서는 멀티 프로그램 TS 스트림으로부터 각 프로그램의 멀티캐스트 세그먼트 수신을 위해 멀티캐스트 라우터로 Join 메시지를 전송한다.
단계(S650)에서는 수신된 데이터에서 TS Sync byte Block Compare(0x47)를 통하여 새롭게 시작되는 TS 패킷부터 저장을 하도록 할 수 있다.
단계(S660)에서는 멀티캐스트 세그먼트 Join 후 수신하는 TS 패킷의 테이블을 구성하여 각각의 링크에서 수신한 해당 세그먼트를 TS 패킷 단위로 저장하고, 상기 수신되는 패킷 단위의 스트림을 재정렬 하기 위해 TS 패킷으로부터 PTS 값을 추출하고 저장할 수 있다.
단계(S670)에서는 TS 패킷의 수신이 끝나는 경우 탈퇴(leave) 메시지를 전송하고 해당 멀티캐스트 그룹에서 탈퇴한다.
즉, 상기와 같이 전체 스트림 중 일정한 부분만 유니캐스트 방식으로 송수신하고 이후 데이터를 멀티캐스트 방식으로 송수신하도록 함으로써, 일정시간 동안만 추가대역을 사용하고 이후 빠르게 일정 수준으로 복귀할 수 있다.
도 7은 본 발명의 일실시예에 있어서, 멀티 프로그램 스트림을 수신하여 TS 패킷 단위로 저장하는 방법을 도시한 흐름도이다.
도 7을 참고하면, 부분 분할된 복수의 세그먼트는 4개의 프로그램으로 시스템 다중화되어 전송되고 수신 단말에서는 전송되는 멀티 프로그램 TS 스트림을 수신하여 PAT를 찾기 위해 PID가 '0'인 프로그램 정보 패킷(710)을 찾는다.
다음으로, PAT 정보를 통해 프로그램 넘버와 PMT_PID 정보를 확인한다. 즉, Multicast_1의 경우 프로그램 넘버(711)는 '1'이고, PMT_PID는 '100'인 것을 확인할 수 있다. 이후, 확인된 PMT_PID를 PID로 갖는 전송 스트림을 구분하여 개별 프로그램의 엘리먼트 스트림을 얻어내고, 이를 디코더로 전달하여 디코딩할 수 있다. 예를 들어, 도 7에 도시된 바와 같이, Multicast_1에서 PMT_PID가 '100'인 전송스트림(720)을 구분하고, 그 프로그램의 비디오 스트림(721) 및 오디오 스트림(722) 등을 얻어내어 TS 패킷 단위로 저장할 수 있다. 이때, TS 패킷 저장시, 각각의 비디오 스트림(721) 및 오디오 스트림(722)의 PID를 TS 패킷의 헤더에 부가하고 비디오 스트림(721) 및 오디오 스트림(722)을 페이로드로 구성하여 TS 패킷을 구성할 수 있다.
마찬가지의 방법으로 Multicast_2 내지 Multicast_4에 대해서도 각 프로그램의 엘리먼트 스트림을 얻어내고 이를 TS 패킷으로 저장할 수 있다.
도 8은 본 발명의 일실시예에 있어서, TS 패킷 수신 후 TS 패킷을 분석하는 과정을 도시한 흐름도이다.
도 8을 참고하면, 단계(S801)에서는 가장 처음 TS 패킷 분석기로 패킷을 입력 받는다.
단계(S802)에서는 TS 헤더의 정보인 TS Sync Byte(0x47)를 확인하여 신규 TS 패킷 여부를 확인하여 새롭게 시작되는 TS 패킷부터 저장을 한다.
단계(S803)에서는 PID 값을 저장하고, 단계(S804)에서는 Continuity_Counter 값을 읽어 TS 패킷 수신 테이블에 저장한다.
단계(S805)에서는 PID 값이 '0'인지 확인하고 '0'이 아닌 경우에 단계(S806)에서 Payload Unit Start Indicator 값을 확인한다. 이때, Payload Unit Start Indicator 값의 의미는 유료부하의 내용에 따라서 달라질 수 있다. 유료부하의 내용이 PES일 경우는 PES의 첫 시작 패킷을 가지고 있다. 즉 PES의 첫 번째 byte부터 시작된다. 유료부하의 내용이 PSI 정보일 경우는 유료부하의 첫 바이트가 SI의 데이터의 위치를 알려주는 Pointer filed이다. 즉 헤더 다음의 1바이트가 얼마만큼의 바이트 후에 PSI정보가 나타나는지를 알려준다. 즉, PSI정보는 PES와는 달리 꼭 시작데이터 byte가 PES처럼 TS패킷의 처음에 올 필요가 없기 때문이다. 다시 말해, Payload Unit Start Indicator 값이 1이면, 그 TS 패킷의 유로 부하가 PES 패킷의 첫 번째 바이트부터 시작됨을 의미하고, 이는 곧 PES 헤더를 포함하고 있다는 것을 의미한다.
단계(S807)에서는 Adaptation Field Control의 값이 '10'인지 확인한다. 이 필드는 어뎁테이션 필드의 존재 여부를 알려준다. 즉, 이 필드의 값이 '10'일 때는 패이로드가 없음을 의미하므로 PTS 정보 또한 포함하지 않는 패킷이고, 이 경우는 다음 TS 패킷으로 넘어간다.
단계(S808)에서는 Adaptation Field Control의 값이 '01'인지 확인하고 '01'인 경우는 어뎁테이션 필드가 존재하지 않고 바로 페이로드가 시작되는 것을 의미하므로 페이로드 첫 바이트가 PES 헤더의 시작으로 볼 수 있다. 이 경우는 PES 헤더의 분석을 바로 시작할 수 있다.
단계(S809)에서는 Adaptation Field Control의 값이 '11'인 경우 어뎁테이션 필드가 존재하는 것이므로 어뎁테이션 필드의 Adaptation Field Length를 확인한다.
즉, TS를 만들기 위해서 PES 패킷의 첫 byte는 TS의 시작 부분에 넣어야 한다. 이렇게 PES 패킷을 TS 페이로드에 채워가게 되면, 마지막 PES 패킷이 들어가 는 TS 패킷에는(즉 유료부하 부분이 남는 경우) 스터핑 바이트로 채워주어야 하는데 어뎁테이션 필드의 스터핑 부분에서 이를 채워주게 된다. 즉 Adaptation Field Length의 크기는 상기한 스터핑 바이트를 포함 한 크기이며, 어뎁테이션 필드에는 PCR(Program Clock Reference)의 정보가 들어가 있을 수 있다. 따라서 Adaptation Field Length의 크기와 Adaptation Field Length 자신의 크기인 1바이트를 합한 만큼 비트 쉬프트를 하면 트랜스포트 스트림의 페이로드의 시작 위치가 되며, 이는 첫 바이트가 PES 헤더의 시작인 것으로 볼 수 있다. 이렇게 PES 패킷의 첫 번째 바이트부터 시작 위치를 알아낸 후, PES 헤더를 확인한다. PES 헤더의 Packet start code 32ibt는 packet start code prefix 와 stream_id로 구성된다. packet start code prefix 24bit는 0x000001로써 시작 비트를 나타낸다. stream id 8bit는 ES의 타입과 번호를 나타낸다. stream_id가 padding인 경우에는 정보가 없는 단순한 덧붙이기 에 이용된다. 따라서 Optional_PES_Header와 유료부하는 내용 없는 padding bit로 채워진다.
단계(S810)에서는 stream_id가 private_stream 2, program_stream_map, ECM, EMM, program stream directory, DSMCC stream ITU-T Rec.H.221.1 type E 중 하나가 아닌지 확인한다. 이 경우에는 Optional_PES_Header와 PES Packet data bytes 부분은 모두 유료부하로 채워지기 때문이다.
단계(S811)에서는 Optional_PES_Header의 PTS_DTS_flag를 확인한다.
단계(S812)에서는 PTS_DTS_flag 2bit의 첫 비트가 '1'인지 확인한다. PTS_DTS_flag 2bit가 만약 '10'이면, PTS 정보가 PES packet header 안에 존재 한 다. 만약 '11'이면, PTS 정보와 DTS 정보가 PES packet header에 존재 한다. 만약 '00'이면, 아무것도 존재하지 않으며, '01'일 경우는 사용금지이다. 따라서 PTS_DTS_flag 2bit의 첫 비트가 '1'일 경우는 PTS 값이 존재하므로, PTS 값을 읽어올 수 있다. 이때, PTS 값은 총 33 비트로 구성되어 있으며, 15, 15, 3 비트로 나누어 나누어진 비트 사이에 '1'로 고정된 값의 marker_bit을 삽입하게 된다. 이는 PTS값이 '0' 비트로 연속되거나, packet start code로 오인되는 것을 막기 위함이다.
단계(S813)에서는 상기 읽어온 PTS 값을 TS 패킷 수신 테이블에 저장할 수 있다.
즉, 상기 방법에 의해 추출한 PID, continuity counter 값, PTS 값 중 적어도 하나를 이용하여 수신 테이블을 구성할 수 있으며, 수신된 패킷을 재정렬하기 위해 PTS 값 등을 사용할 수 있다.
도 9는 본 발명의 일실시예에 있어서, TS 패킷 수신 테이블을 도시한 도면이다.
도 9를 참고하면, 수신된 TS 패킷들의 PID, continuity_counter, PTS의 정보를 찾아내고, 해당 값을 저장한 테이블을 구성할 수 있다. 이때, TS 패킷 수신 테이블에서 PID, continuity_counter, PTS 정보를 모두 가지고 있는 가장 첫 번째 패킷을 기준 패킷(910)으로 선정할 수 있다. 기준 패킷(910)의 목적은 해당 링크를 따라 수신되는 스트림은 반복적이므로 기 수신한 패킷의 중복을 인식할 수 있도록 한다. 따라서 기준 패킷과 동일한 패킷을 중복 수신하였을 경우(940), 해당 링 크에서의 수신을 중지하기 위해 IGMP(Internet Group Management Protocol) leave 메시지를 송신하여 즉시 해당 링크의 수신을 종료시킬 수 있다.
이때, 수신된 TS packet을 재정렬 할 수 있다. 우선, TS 패킷 수신 테이블에서 PTS 정보에 따라 내림차순으로의 재정렬을 시도한다. 만약 PID가 '0x1FFF'인 null packet 전후로 PTS 값의 역전이 발생하였을 경우, 이 null packet의 위치 단위로 TS 패킷의 순서를 재정렬 한다. 예를 들어 TS 패킷 수신 후 첫 번째 null packet 전후에서 PTS 역전이 발생하였을 경우, 저장된 첫 TS 패킷부터 해당 null packet 까지를 저장된 테이블의 맨 아래로 정렬 시킨다. 혹은 저장된 TS 패킷 정보 테이블의 마지막 null packet 부근에서 PTS 역전이 발생하였을 경우는 해당 null packet에서부터 테이블의 마지막 TS 패킷까지를 해당 테이블의 맨 위로 재정렬 시킨다. 도 9의 경우, 널 패킷(920)의 전후로 기준 패킷의 PTS 값(911)인 0x1c48f487d과 널 패킷 아래의 PTS 값(921)인 0x1c46e787d의 값이 역전되어 있다. 따라서 이 경우 역전된 패킷인 도면부호 910의 패킷부터 도면부호 920의 패킷을 테이블의 맨 아래로 정렬할 수 있다. 다음으로, 정렬된 테이블에서 PID별 continuity_counter의 불연속 여부를 확인한다. 만약 불연속 발생시 상기의 재정렬을 재수행한다. 마지막으로 이렇게 정렬된 TS 패킷 정보 테이블에서 스트림 디코딩에 불필요한 PID 값이 '0x1FFF'인 패킷은 모두 삭제하여 TS 패킷 정보 테이블을 완성시킬 수 있다.
도 10은 본 발명의 일실시예에 있어서, 수신된 TS 패킷을 재정렬한 테이블을 도시한 도면이다.
도 10을 참고하면, 상기 도 8에서 PTS 값의 역전으로 하나 이상의 패킷을 재정렬한 테이블을 도시한 것이며, 재정렬 결과 기준 패킷(1010)의 위치가 도 8과 달리 배치되었다. 이때, 상기에 따라 단일 멀티캐스트 링크에서 수신한 세그먼트들의 정렬이 종료되면, 유니캐스트 링크와 멀티캐스트 링크에서 수신한 TS 패킷 정보 테이블 간의 정렬을 시도한다. 이는 각각 링크에서 수신한 TS 패킷 정보테이블이 가지고 있는 기준 패킷의 PTS 값을 비교하여 각 링크의 테이블을 순차적으로 정렬시킬 수 있다.
도 11는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD의 송신 방법을 도시한 도면이다.
도 11을 참고하면, 단계(S1110)에서는 전체 전송스트림을 분할하기 위한 분할계수를 설정할 수 있다. 이때, 분할계수는 스트림의 전송환경 등에 따라 다양하게 설정될 수 있는 값이다.
단계(S1120)에서는 상기 설정된 분할계수에 따라 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할할 수 있다. 이때, 분할된 유니캐스트 세그먼트는 멀티캐스트 세그먼트보다 항상 크거나 같다.
단계(S1130)에서는 상기 분할된 유니캐스트 세그먼트를 유니캐스트 방식으로 전송할 수 있다. 즉, 전체 스트림의 일부만을 유니캐스트 방식으로 전송하고 이후 데이터는 멀티캐스트 방식으로 전송함으로써, 일정 시간만큼만 추가 대역을 사용하여 대역폭의 효율적인 사용이 가능할 수 있다.
단계(S1140)에서는 상기 분할된 멀티캐스트 세그먼트를 하나 이상의 프로그 램으로 구성하여 멀티캐스트 방식으로 전송할 수 있다. 즉, 단계(S1230)에서 유니캐스트 방식으로 분할된 유니캐스트 세그먼트를 전송한 이후, 나머지 데이터를 멀티캐스트 방식으로 전송할 수 있으며, 하나 이상의 멀티캐스트 세그먼트를 개별 프로그램으로 다중화하고 이를 시분할하여 전송한다. 이때, 스트림의 시분할 전송을 통해 스트림을 반복적으로 전송할 수 있는데 멀티캐스트 세그먼트의 반복 전송 시 해당 세그먼트 뒤에는 PID가 0x1FFF인 널 패킷을 삽입할 수 있다. 즉, 널 패킷을 통해 수신측에서 수신 시 continuity counter 및 PTS의 순차적인 수신이 아닐 경우 각 세그먼트를 구분하는 역할로 사용할 수 있다.
도 12는 본 발명의 일실시예에 있어서, 멀티 프로그램 TS 스트림을 시분할 전송하는 단계를 구체적으로 도시한 도면이다.
도 12를 참고하면, 단계(S1141)에서는 각 프로그램에 관련한 기초스트림들의 PID를 할당할 수 있다. 즉, 하나 이상의 멀티캐스트 세그먼트를 개별 프로그램으로 구성하고 상기 개별 프로그램에 관련한 기초스트림들의 PID를 할당할 수 있다.
단계(S1142)에서는 각 기초스트림을 멀티플렉싱하여 싱글 프로그램 TS 스트림을 생성할 수 있다. 즉, PID가 할당된 기초스트림들을 멀티플렉싱하여 싱글 프로그램 TS 스트림을 생성할 수 있다.
단계(S1143)에서는 각 싱글 프로그램 TS 스트림을 다중화하여 멀티 프로그램 TS 스트림을 생성할 수 있다. 즉, 단계(S1142)에서 생성된 싱글 프로그램 TS 스트림을 멀티플렉싱시켜 멀티 프로그램 TS 스트림을 생성할 수 있다. 또한, 멀티 프로그램 TS 스트림 생성시 프로그램 넘버 및 PMT_PID(Program Map Table Packet Identifier)중 적어도 하나를 각 프로그램에 할당하고 각 프로그램 넘버 및 각 PMT_PID를 PAT(Program Association Table)에 기록할 수 있다.
단계(S1144)에서는 단계(S1143)에서 생성된 멀티 프로그램 TS 스트림을 시분할 전송할 수 있다. 즉, 생성된 멀티 프로그램 TS 스트림을 하나의 링크를 통해 시분할 전송함으로써, 다수개의 링크를 사용하지 않고 하나의 링크를 통해서 시분할 전송하여 효율적인 전송이 가능할 수 있다.
도 13은 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD의 수신방법을 도시한 도면이다.
단계(S1310)에서는 셋탑박스(settop box)의 EPG 레벨에서 컨텐츠 요청을 할 수 있다.
단계(S1320)에서는 유니캐스트 listening을 하여 유니캐스트 세그먼트 수신을 시작한다. 즉, 스트림의 일부에 대해서만 유니캐스트 방식으로 유니캐스트 세그먼트를 수신하여 대역폭의 효율적 활용이 가능할 수 있다.
단계(S1330)에서는 각 PMT_PID에 따라 멀티 프로그램 TS 스트림을 수신하여멀티캐스트 세그먼트를 수신한다. 이때, 멀티 프로그램 TS 스트림 수신을 위해서 멀티캐스트 라우터로 join 메시지를 전송하고 멀티캐스트 세그먼트에 join 할 수 있다.
단계(S1340)에서는 상기 수신된 세그먼트를 TS 패킷 단위로 저장한다. 이때, 멀티캐스트 세그먼트 저 장시 수신하는 TS 패킷의 수신 테이블을 구성하여 각 세그먼트가 전송되는 링크로부터 수신한 세그먼트를 TS 패킷 단위로 저장할 수 있다. 또한 수신되는 패킷 단위의 스트림을 재정렬하기 위해 PTS 값을 확인할 수 있다.
단계(S1350)에서는 상기 수신된 TS 패킷을 재정렬한다. 이때, 수신된 세그먼트의 패킷들의 PTS 값을 비교하여 PTS 값이 내림차순으로 정렬되도록 패킷을 재정렬할 수 있다. 또한 세그먼트의 패킷 순서가 재정렬되면 각 세그먼트간의 순서를 재정렬할 수 있다. 세그먼트간 순서의 재정렬은 각 세그먼트 내의 기준 패킷의 PTS 값을 비교하고 상기 PTS 값이 내림차순이 되도록 정렬할 수 있다.
도 14는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD 송신단말 장치를 도시한 도면이다.
도 14를 참고하면, 전송스트림 다중화를 이용한 VOD 송신단말 장치(1400)는 분할계수 설정부(1410), 세그먼트 크기 산출부(1420), 유니캐스트 전송부(1430) 및 멀티캐스트 전송부(1440)를 포함한다.
분할계수 설정부(1410)는, 전송스트림을 유니캐스트 세그먼트와 멀티캐스트 세그먼트로 분할하기 위한 분할계수를 설정한다. 이때, 분할계수는 통신환경 등에 따라 다르게 설정할 수 있다.
세그먼트 크기 산출부(1420)는, 상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하기 위한 각 세크먼트 크기를 산출한다. 이때, 산출된 유니캐스트 세그먼트의 크기는 멀티캐스트 세그먼트의 크기보다 항상 크거나 같다. 즉, 유니캐스트 세그먼트의 크기가 멀티캐스트 세그먼트의 크기보다 항상 크거나 같음으로 인해 시청자가 멀티캐스트 세그먼트의 어느 위치에서 멀티캐스트 그룹 join을 하여도 유니캐스트 세그먼트로 전송된 컨텐츠의 시청 종료 이전에 멀티캐스트 세그먼트의 전체 데이터를 받아 볼 수 있다.
유니캐스트 전송부(1430)는, 상기 분할된 유니캐스트 세그먼트를 유니캐스트 방식으로 전송한다. 즉, 스트림의 일부만을 유니캐스트 방식으로 전송하고 나머지 스트림은 멀티캐스트 방식으로 전송하도록 함으로써, 전송의 효율을 높일 수 있다.
멀티캐스트 전송부(1440)는, 분할된 멀티캐스트 세그먼트를 멀티캐스트 방식으로 전송한다. 이때, 전송을 위해 분할된 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하고 하나 이상의 프로그램을 다중화하여 시분할 전송할 수 있다. 즉, 다중화된 각 프로그램의 PMT_PID에 따라 프로그램을 전송하고 이를 수신하여 수신된 프로그램의 해당 세그먼트를 TS 패킷 단위로 저장할 수 있다.
도 15는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD 수신단말 장치를 도시한 도면이다.
도 15를 참고하면, 전송스트림 다중화를 이용한 VOD 수신단말 장치(1500)는 유니캐스트 수신부(1510), 멀티캐스트 수신부(1520), TS 패킷 분석부(1530), 패킷 정렬부(1540)를 포함한다.
유니캐스트 수신부(1510)는, 유니캐스트 방식에 의해 유니캐스트 세그먼트를 수신하고 멀티캐스트 수신부(1520)는 멀티캐스트 방식에 의해 멀티캐스트 세그먼트를 수신한다.
이때, 멀티캐스트 세그먼트의 수신은 다중화된 멀티 프로그램 TS 스트림을 수신하고 이로부터 멀티캐스트 세그먼트를 수신할 수 있다. 즉, 수신된 멀티 프로그램 TS 스트림의 각 프로그램 넘버 및 PMT_PID를 PAT 정보에서 추출하고 각 엘리먼트 스트림을 다시 TS 패킷 단위로 저장할 수 있다.
TS 패킷 분석기(1530)는, 수신된 TS 패킷을 분석하고 PID 값, Continuity_Counter 값 및 PTS 정보 중 적어도 하나를 추출할 수 있다. 이때, 상기 추출된 값들은 TS 패킷 수신 테이블을 구성하는데 사용될 수 있다.
패킷 정렬부(1540)는 상기 수신된 패킷들을 재정렬한다. 패킷들의 재정렬을 위해 PTS 정보가 사용될 수 있다. 즉, PTS 정보가 내림차순이 되도록 패킷의 순서를 정렬 함으로써, 패킷들의 순서를 재정렬할 수 있다. 또한 개별 세그먼트 내의 패킷 순서가 재정렬되면, 세그먼트 간의 재정렬이 수행될 수 있다. 즉 세그먼트 각각의 기준 패킷의 PTS 값을 비교하여 내림차순으로 정렬함으로써, 세그먼트간의 순서도 재정렬 할 수 있다.
또한 본 발명의 일실시예에 따른 전송스트림 다중화를 이용한 VOD 송수신 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 MPEG2-Transport Stream(ISO/IEC standard 13818-1) 표준에 의거한 TS 패킷의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 부분분할에 따른 유니캐스트/멀티캐스트 세그먼트의 크기 결정 과정을 블록 다이어그램으로 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 분할계수를 4로 선정하여 전체 전송스트림을 부분 분할한 결과를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 각 프로그램에 따라 멀티캐스트 세그먼트들을 전송하는 과정을 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 멀티 프로그램 TS 스트림을 생성하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 스트림의 수신 절차를 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 멀티 프로그램 스트림을 수신하여 TS 패킷 단위로 저장하는 방법을 도시한 흐름도이다.
도 8은 본 발명의 일실시예에 있어서, TS 패킷 수신 후 TS 패킷을 분석하는 과정을 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, TS 패킷 수신 테이블을 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 수신된 TS 패킷을 재정렬한 테이블 을 도시한 도면이다.
도 11는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD의 송신 방법을 도시한 도면이다.
도 12는 본 발명의 일실시예에 있어서, 멀티 프로그램 TS 스트림을 시분할 전송하는 단계를 구체적으로 도시한 도면이다.
도 13은 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD의 수신방법을 도시한 도면이다.
도 14는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD 송신단말 장치를 도시한 도면이다.
도 15는 본 발명의 일실시예에 있어서, 전송스트림 다중화를 이용한 VOD 수신단말 장치를 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
120 : TS 패킷 헤더 300 : 전체 전송스트림
910 : 기준 패킷 920, 930 : 널 패킷
1010 : 널 패킷 1400 : 송신단말
1500 : 수신단말

Claims (16)

  1. 전송스트림(TS:Transport Stream) 분할을 위한 분할계수를 설정하는 단계;
    상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하는 단계;
    상기 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하는 단계; 및
    상기 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하여 시분할 전송하는 단계;
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 방법.
  2. 제1항에 있어서,
    상기 시분할 전송하는 단계는,
    상기 프로그램에 관련한 엘리먼트 스트림들의 PID(Packet Identifier)를 할당하여 PES 스트림을 생성하는 단계;
    상기 PES 스트림을 멀티플렉싱하여 싱글 프로그램 TS 스트림을 생성하는 단계;
    상기 프로그램의 PMT_PID(Program Map Table Packet Identifier) 및 프로그램 넘버 중 적어도 하나를 할당하고, 상기 싱글 프로그램 TS 스트림을 다중화하여 멀티 프로그램 TS 스트림을 생성하는 단계; 및
    상기 멀티 프로그램 TS 스트림을 시분할 전송하는 단계
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 방법.
  3. 제2항에 있어서,
    상기 멀티 프로그램 TS 스트림을 생성하는 단계는,
    상기 프로그램 넘버 및 상기 PMT_PID를 PAT(Program Association Table)에 기록하는 단계
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 방법.
  4. 제2항에 있어서,
    상기 멀티 프로그램 TS 스트림을 시분할 전송하는 단계는,
    상기 PMT_PID에 따라 상기 멀티 프로그램 TS 스트림을 반복적으로 전송하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 방법.
  5. 제4항에 있어서,
    상기 멀티 프로그램 TS 스트림 반복 전송을 통한 멀티캐스트 세그먼트의 반복 전송 시 상기 각각의 멀티캐스트 세그먼트 뒤에 널 패킷을 삽입하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 방법.
  6. 컨텐츠 전송을 요청받는 단계;
    송신 단말로부터 유니캐스트 세그먼트를 수신하는 단계; 및
    상기 송신 단말로부터 멀티 프로그램 TS 스트림을 수신하는 단계
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  7. 제6항에 있어서,
    상기 멀티 프로그램 TS 스트림을 수신하는 단계는,
    멀티캐스트 라우터로 멀티 프로그램 TS 스트림을 수신하기 위한 조인 메시지를 전송하고 멀티캐스트 그룹에 조인하는 단계; 및
    수신된 TS 패킷의 수신 테이블을 구성하고 수신된 상기 멀티 프로그램 TS 스트림을 TS 패킷 단위로 저장하는 단계
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  8. 제7항에 있어서,
    상기 멀티 프로그램 TS 스트림을 TS 패킷 단위로 저장하는 단계는,
    상기 멀티 프로그램 TS 스트림 중 PAT 정보 패킷을 추출하는 단계;
    상기 PAT 정보 패킷을 통해 상기 각 프로그램 넘버 및 PMT_PID 정보 중 적어도 하나를 추출하는 단계; 및
    상기 추출된 PMT_PID를 PID로 갖는 전송 스트림을 구분하여 상기 각 프로그램의 엘리먼트 스트림을 추출하는 단계
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  9. 제7항에 있어서,
    상기 수신 테이블은,
    상기 수신된 TS 패킷의 PID(packet Identifier), continuity_counter 및 PTS(Presentation Time Stamp) 값 중 적어도 하나를 추출하여 구성하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  10. 제9항에 있어서,
    상기 멀티 프로그램 TS 스트림을 TS 패킷 단위로 저장하는 단계는,
    상기 PID, 상기 continuity_counter 및 상기 PTS 값을 모두 포함하는 첫번째 패킷을 기준 패킷으로 선정하는 단계; 및
    상기 기준 패킷과 동일한 패킷 수신 시 상응하는 PMT_PID의 패킷 수신을 종료시키는 단계
    를 포함하는 것을 특징 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  11. 제10항에 있어서,
    상기 프로그램 각각의 수신이 중지되면 멀티캐스트 라우터로 IGMP(Internet Group Management Protocol) LEAVE 메시지를 송신하여 수신을 종료하는 단계
    를 더 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 방법.
  12. 제1항 내지 제11항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  13. 전송스트림(Transport Stream) 분할을 위한 분할계수를 설정하는 분할계수 설정부;
    상기 설정된 분할계수에 따라 상기 전송스트림을 유니캐스트 세그먼트 및 멀티캐스트 세그먼트로 분할하기 위한 각 세크먼트 크기를 산출하는 세그먼트 크기 산출부;
    상기 유니캐스트 세그먼트를 유니캐스트 방식으로 전송하는 유니캐스트 전송부; 및
    상기 멀티캐스트 세그먼트를 하나 이상의 프로그램으로 구성하여 시분할 전송하는 멀티캐스트 전송부
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 시스템.
  14. 제13항에 있어서,
    상기 멀티캐스트 전송부는,
    상기 각 프로그램에 관련한 엘리먼트 스트림들의 PID(Packet Identifier)를 할당하는 PES 스트림 생성부;
    상기 각 PES 스트림을 멀티플렉싱하여 싱글 프로그램 TS 스트림을 생성하는 싱글 프로그램 TS 스트림을 생성부;
    상기 각 프로그램의 PMT_PID(Program Map Table Packet Identifier) 및 프로그램 넘버 중 적어도 하나를 할당하고, 상기 각 싱글 프로그램 TS 스트림을 다중화하여 멀티 프로그램 TS 스트림을 생성하는 멀티 프로그램 TS 스트림부; 및
    상기 멀티 프로그램 TS 스트림을 시분할 전송하는 시분할 전송부
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 송신 시스템.
  15. 송신 단말로부터 유니캐스트 세그먼트를 수신하는 유니캐스트 수신부;
    송신 단말로부터 멀티 프로그램 TS 스트림을 수신하는 멀티캐스트 수신부;
    수신된 스트림의 TS 패킷을 분석하는 TS 패킷 분석부; 및
    상기 수신된 TS 패킷의 순서를 재정렬하는 패킷 정렬부
    를 포함하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 시스템.
  16. 제15항에 있어서,
    상기 TS 패킷 분석기는,
    상기 수신된 TS 패킷의 PID(packet Identifier), continuity_counter 및 PTS(Presentation Time Stamp) 값 중 적어도 하나를 추출하는 것을 특징으로 하는 전송스트림 다중화를 이용한 VOD 수신 시스템.
KR1020080043004A 2008-05-08 2008-05-08 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법 KR100952292B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080043004A KR100952292B1 (ko) 2008-05-08 2008-05-08 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080043004A KR100952292B1 (ko) 2008-05-08 2008-05-08 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090117102A KR20090117102A (ko) 2009-11-12
KR100952292B1 true KR100952292B1 (ko) 2010-04-13

Family

ID=41601632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080043004A KR100952292B1 (ko) 2008-05-08 2008-05-08 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100952292B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682716B (zh) * 2016-08-02 2019-12-27 北京数码视讯科技股份有限公司 一种码率控制方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835493A (en) 1996-01-02 1998-11-10 Divicom, Inc. MPEG transport stream remultiplexer
US20040190515A1 (en) 2003-03-24 2004-09-30 International Business Machines Corporation System and method for providing multiplexing and remultiplexing of MPEG-2 streams
KR20060067798A (ko) * 2004-12-15 2006-06-20 한국전자통신연구원 다채널 스트리밍 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835493A (en) 1996-01-02 1998-11-10 Divicom, Inc. MPEG transport stream remultiplexer
US20040190515A1 (en) 2003-03-24 2004-09-30 International Business Machines Corporation System and method for providing multiplexing and remultiplexing of MPEG-2 streams
KR20050109517A (ko) * 2003-03-24 2005-11-21 인터내셔널 비지네스 머신즈 코포레이션 Mpeg-2 스트림의 다중화 및 재다중화를 제공하는시스템 및 방법
KR20060067798A (ko) * 2004-12-15 2006-06-20 한국전자통신연구원 다채널 스트리밍 시스템 및 방법

Also Published As

Publication number Publication date
KR20090117102A (ko) 2009-11-12

Similar Documents

Publication Publication Date Title
KR100928397B1 (ko) 전송스트림 분할을 이용한 vod 송수신 시스템 및 방법
CN107925781B (zh) 发送方法、接收方法、发送装置以及接收装置
KR102120525B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
US11128881B2 (en) Personal video recorder
US9986287B2 (en) Transport stream provider, DAB signal provider, transport stream analyzer, DAB receiver, method, computer program, and transport stream signal
EP2637414A2 (en) Method for transreceiving media content and device for transreceiving using same
RU2547624C2 (ru) Способ сигнализации для широковещания видео-контента, способ записи и устройство, использующее сигнализацию
US20070162852A1 (en) Method and apparatus for changing codec to reproduce video and/or audio data streams encoded by different codecs within a channel
US20020064177A1 (en) Method and apparatus for forming and utilizing a slotted mpeg transport stream
KR20170087868A (ko) 송신 장치, 송신 방법, 수신 장치 및 수신 방법
CN106576188B (zh) 发送方法、接收方法、发送装置以及接收装置
KR20110123658A (ko) 3차원 방송 서비스 송수신 방법 및 시스템
JP7361287B2 (ja) 送信方法及び送信装置
KR20160111021A (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
US20130160069A1 (en) Apparatus and method for bonding broadcast channel
US10506265B2 (en) Transmitting method, receiving method, transmitting device and receiving device
CN101388738B (zh) 广播接收机和传送/接收广播信号的方法
KR100952292B1 (ko) 전송스트림 다중화를 이용한 vod 송수신 시스템 및 방법
JP7054828B2 (ja) 送信装置、受信装置、送信方法及び受信方法
KR20110068821A (ko) 송, 수신 장치 및 송, 수신 방법
KR100703716B1 (ko) 디지털 데이터방송 프로그램 녹화/재생 장치 및 그 방법
KR101414638B1 (ko) 인터넷 프로토콜 텔레비전 수신기 및 채널 전환 방법
KR100973138B1 (ko) 디지털 방송의 mms 전송스트림 재다중화 방법 및 시스템
KR100587973B1 (ko) 멀티 어플리케이션 송출 장치 및 그 방법과 그를 이용한디지털 데이터 방송 전송 시스템
KR20230052678A (ko) 채널 연동형 광고 서비스를 제공하는 방법 및 광고 송출 서버

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140312

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee