[go: up one dir, main page]

KR20240098670A - Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof - Google Patents

Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof Download PDF

Info

Publication number
KR20240098670A
KR20240098670A KR1020220180634A KR20220180634A KR20240098670A KR 20240098670 A KR20240098670 A KR 20240098670A KR 1020220180634 A KR1020220180634 A KR 1020220180634A KR 20220180634 A KR20220180634 A KR 20220180634A KR 20240098670 A KR20240098670 A KR 20240098670A
Authority
KR
South Korea
Prior art keywords
rtp
packets
packet
rtp packets
top box
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
KR1020220180634A
Other languages
Korean (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 KR1020220180634A priority Critical patent/KR20240098670A/en
Publication of KR20240098670A publication Critical patent/KR20240098670A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • H04N21/23473Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by pre-encrypting
    • 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/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

According to one aspect of the present invention, provided are a caching server and an operating method thereof. In order to reduce a reproduction delay of a set-top box after a change of a real-time streaming channel, the caching server comprises: a memory for storing a table in which RTP packets and configuration information of the RTP packets are recorded; a communication unit for receiving a sequence number of a first RTP packet among the RTP packets received after the channel change by the set-top box; and a processor for selecting preceding RTP packets preceding the sequence number of the first RTP packet from the RTP packets stored for the changed channel, generating an initial RTP packet including TS packets including information for descrambling the preceding RTP packets based on the table, and composing the initial RTP packet, the preceding RTP packets, and the delayed RTP packets into caching data.

Description

실시간 스트리밍 채널의 변경 후 셋톱박스의 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법{Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof}Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof}

본 발명의 실시예들은 실시간 스트리밍 채널의 변경 후 셋톱박스의 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법, 특히 채널 변경 직후 디스크램블링 준비로 인한 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법에 관한 것이다.Embodiments of the present invention relate to a caching server and its operating method for reducing playback delay of a set-top box after changing a real-time streaming channel, and particularly to a caching server and its operating method for reducing playback delay due to descrambling preparation immediately after changing the channel. .

이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.The content described below simply provides background information related to this embodiment and does not constitute prior art.

최근 IPTV(Internet Protocol Television) 멀티캐스트(multicast)를 기반으로 컨텐츠들이 실시간 스트리밍되는 라이브 채널들(channels)이 서비스되고 있다. Recently, live channels where content is streamed in real time are being provided based on IPTV (Internet Protocol Television) multicast.

이러한 IPTV 서비스 시스템은 기본적으로 콘텐츠를 제공하는 헤드엔드 장치, 헤드엔드 장치에 의해 제공되는 콘텐츠를 전달하는 라우터/스위치, 및 전달된 콘텐츠를 이미지, 비디오 또는 데이터로 변환하여 출력하는 셋톱박스를 포함한다. This IPTV service system basically includes a headend device that provides content, a router/switch that delivers content provided by the headend device, and a set-top box that converts the delivered content into images, videos, or data and outputs it. .

셋톱박스는 콘텐츠의 방송 스트림을 수신하자마자 출력하는 것이 아니라, 일정량의 방송 스트림을 저장한 후에 출력한다. 이때, 셋톱박스가 일정량의 방송 스트림을 저장하는 데 시간 지연이 발생한다.A set-top box does not output the broadcast stream of content as soon as it receives it, but stores a certain amount of the broadcast stream and then outputs it. At this time, a time delay occurs while the set-top box stores a certain amount of broadcast streams.

이러한 시간 지연을 해결하기 위해, IPTV 서비스 시스템은 캐싱 서버를 이용할 수 있다. 캐싱 서버는 헤드엔드 장치로부터 셋톱박스 측으로 제공되는 콘텐츠를 임시로 저장하며, 셋톱박스의 필요에 따라 콘텐츠를 제공한다. 이로 인해, 셋톱박스가 일정량의 방송 스트림을 저장하는 데 소요되는 시간이 줄어들 수 있다. 특히, 채널 변경(change) 시, 캐싱 서버의 캐싱 데이터 제공에 따라 셋톱박스는 재생 지연을 줄일 수 있다.To solve this time delay, the IPTV service system can use a caching server. The caching server temporarily stores content provided from the head-end device to the set-top box and provides content according to the needs of the set-top box. Because of this, the time it takes for the set-top box to store a certain amount of broadcast streams may be reduced. In particular, when changing channels, the set-top box can reduce playback delay by providing caching data from the caching server.

하지만, IPTV 서비스 시스템에 제한수신 시스템(Conditional Access System, CAS)가 적용됨에 따라 방송 스트림이 스크램블링(scrambling)된 경우, 캐싱 서버의 신속한 캐시 데이터 제공에 따른 효과가 미비해질 수 있다. However, if the broadcast stream is scrambled as the Conditional Access System (CAS) is applied to the IPTV service system, the effect of the caching server's rapid provision of cache data may be minimal.

구체적으로, 셋톱박스가 스크램블링된 방송 스트림을 디스크램블링하기 위한 준비 시간으로 인해 재생 지연이 발생한다. 제한수신 시스템에서 캐싱 서버가 제공하는 캐싱 데이터는 스크램블링된 데이터이므로, 셋톱박스는 캐싱 서버로부터 캐싱 데이터를 제공받더라도, 캐싱 데이터의 디스크램블링을 위해 디스크램블러를 활성화해야 한다. 셋톱박스는 디스크램블링 활성화를 위한 시간 지연 때문에 캐싱 데이터를 곧바로 출력할 수 없다. 디스크램블링 준비에 따른 시간 지연이 캐시 데이터 제공에 따른 시간 단축보다 크거나, 디스크램블링 준비 동안 캐시 데이터의 변조가 발생하는 경우, 셋톱박스는 캐시 데이터 제공에 따른 이점을 누릴 수 없다.Specifically, playback delay occurs due to the preparation time for the set-top box to descramble the scrambled broadcast stream. In a conditional access system, the cached data provided by the caching server is scrambled data, so even if the set-top box receives cached data from the caching server, it must activate the descrambler to descramble the cached data. Set-top boxes cannot output caching data immediately because of the time delay for activating descrambling. If the time delay due to descrambling preparation is greater than the time reduction due to provision of cache data, or if tampering of cache data occurs during descrambling preparation, the set-top box cannot enjoy the benefits of providing cache data.

따라서, 제한수신 시스템이 적용된 캐싱 서버 기반 IPTV 서비스 시스템에 있어서, 실시간 스트리밍 채널의 변경 후 디스크램블링 준비로 인한 재생 지연을 줄이기 위한 연구가 필요하다.Therefore, in a caching server-based IPTV service system with a conditional access system, research is needed to reduce playback delay due to descrambling preparation after changing the real-time streaming channel.

본 발명의 실시예들은, 실시간 스트리밍 채널의 변경 후 셋톱박스의 재생 지연, 특히 디스크램블링 준비로 인한 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법을 제공하는 데 주된 목적이 있다.The main purpose of embodiments of the present invention is to provide a caching server and a method of operating the same to reduce playback delay of a set-top box after changing a real-time streaming channel, especially playback delay due to descrambling preparation.

본 발명의 다른 실시예들은, 실시간 스트리밍 채널의 변경 후 셋톱박스의 디스크램블링 준비로 인한 재생 지연을 줄이되, 셋톱박스에서 캐싱 데이터 중 콘텐츠 관련 데이터의 수신 시점과 디스크램블링 활성화 시점을 매칭함으로써, 캐싱 데이터의 버퍼를 최소화하기 위한 캐싱 서버 및 그의 동작 방법을 제공하는 데 일 목적이 있다.Other embodiments of the present invention reduce the playback delay due to descrambling preparation of the set-top box after changing the real-time streaming channel, and match the reception time of content-related data among the cached data in the set-top box with the descrambling activation time, so that the cached data The purpose is to provide a caching server and its operation method to minimize the buffer of.

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned can be clearly understood by those skilled in the art from the description below.

본 발명의 일 측면에 의하면, 채널 변경(change) 후 셋톱박스의 재생 지연을 줄이기 위한 캐싱 서버에 있어서, 복수의 채널들마다 복수의 전송 스트림(Transport Stream; TS) 패킷들을 포함하는 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 패킷들을 저장하고, 상기 RTP 패킷들의 구성 정보가 기록된 테이블을 저장하는 메모리와, 셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 제1 RTP 패킷의 시퀀스 번호를 수신하는 통신부와, 변경된 채널에 대해 저장된 RTP 패킷들로부터 상기 제1 RTP 패킷의 시퀀스 번호에 선행하는 선행 RTP 패킷들을 선별하고, 상기 테이블을 기반으로 상기 저장된 RTP 패킷들로부터 상기 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출하고, 상기 검출된 TS 패킷들을 포함하는 초기 RTP 패킷을 생성하고, 상기 초기 RTP 패킷, 상기 선행 RTP 패킷들, 및 상기 초기 RTP 패킷과 상기 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들을 캐싱 데이터로 구성하는 프로세서를 포함하는 캐싱 서버를 제공한다.According to one aspect of the present invention, in a caching server for reducing playback delay of a set-top box after a channel change, a real-time transport protocol (TS) including a plurality of Transport Stream (TS) packets for each of a plurality of channels A memory that stores Real-time Transport Protocol (RTP) packets and a table in which configuration information of the RTP packets is recorded, and the set-top box receives the sequence number of the first RTP packet among the RTP packets received after changing the channel. a communication unit that selects preceding RTP packets preceding the sequence number of the first RTP packet from RTP packets stored for a changed channel, and performs descrambling of the preceding RTP packets from the stored RTP packets based on the table; Detecting TS packets containing information for, generating an initial RTP packet containing the detected TS packets, and generating an initial RTP packet, the preceding RTP packets, and between the initial RTP packet and the preceding RTP packets. A caching server including a processor that configures a preset number of delayed RTP packets into caching data is provided.

본 실시예의 다른 측면에 의하면, 채널 변경(change) 후 셋톱박스의 재생 지연을 줄이기 위한 컴퓨터 구현 방법에 있어서, 복수의 채널들마다 복수의 전송 스트림(Transport Stream; TS) 패킷들을 포함하는 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 패킷들, 및 상기 RTP 패킷들의 구성 정보가 기록된 테이블을 저장하는 단계와, 셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 제1 RTP 패킷의 시퀀스 번호를 수신하는 단계와, 변경된 채널에 대해 저장된 RTP 패킷들로부터 상기 제1 RTP 패킷의 시퀀스 번호에 선행하는 선행 RTP 패킷들을 선별하는 단계와, 상기 테이블을 기반으로 상기 저장된 RTP 패킷들로부터 상기 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출하는 단계와, 상기 검출된 TS 패킷들을 포함하는 초기 RTP 패킷을 생성하는 단계와, 상기 초기 RTP 패킷, 상기 선행 RTP 패킷들, 및 상기 초기 RTP 패킷과 상기 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들을 캐싱 데이터로 구성하는 단계를 포함하는 방법을 제공한다.According to another aspect of the present embodiment, in a computer-implemented method for reducing playback delay of a set-top box after a channel change, a real-time transport protocol including a plurality of Transport Stream (TS) packets for each of a plurality of channels (Real-time Transport Protocol; RTP) packets and storing a table in which configuration information of the RTP packets is recorded, and the set-top box receives the sequence number of the first RTP packet among the RTP packets received after changing the channel. selecting preceding RTP packets preceding the sequence number of the first RTP packet from RTP packets stored for the changed channel, and deleting the preceding RTP packets from the stored RTP packets based on the table. Detecting TS packets including information for scrambling, generating an initial RTP packet including the detected TS packets, the initial RTP packet, the preceding RTP packets, and the initial RTP packet and the A method is provided including configuring a preset number of delayed RTP packets between preceding RTP packets as caching data.

이상에서 설명한 바와 같이 본 발명의 일 실시예에 의하면, 실시간 스트리밍 채널의 변경 후 셋톱박스의 재생 지연, 특히 디스크램블링 준비로 인한 재생 지연을 줄일 수 있다.As described above, according to an embodiment of the present invention, playback delay of a set-top box after changing a real-time streaming channel, particularly playback delay due to descrambling preparation, can be reduced.

본 발명의 다른 실시예에 의하면, 실시간 스트리밍 채널의 변경 후 셋톱박스의 디스크램블링 준비로 인한 재생 지연을 줄일 수 있고, 셋톱박스에서 캐싱 데이터 중 콘텐츠 관련 데이터의 수신 시점과 디스크램블링 활성화 시점을 매칭함으로써, 캐싱 데이터의 버퍼를 최소화할 수 있다.According to another embodiment of the present invention, playback delay due to descrambling preparation of the set-top box after changing the real-time streaming channel can be reduced, and the set-top box matches the reception time of content-related data among the caching data and the descrambling activation time. , the buffer of caching data can be minimized.

본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below.

도 1은 IPTV 서비스 시스템을 개략적으로 나타낸 구성도이다.
도 2는 ECM 기반 제한수신 시스템을 개략적으로 나타낸 구성도이다.
도 3은 본 발명의 일 실시예에 따른 IPTV 시스템의 구성도이다.
도 4는 RTP 패킷들의 구성요소들을 개략적으로 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 캐싱 서버의 구성도이다.
도 6은 본 발명의 일 실시예에 따른 테이블 및 패킷 저장부를 나타낸 도면이다.
도 7a, 도 7b 및 도 7c는 본 발명의 일 실시예에 따른 캐싱 데이터 생성 과정을 나타낸 도면이다.
도 8은 본 발명의 다른 실시예에 따른 캐싱 데이터 생성 과정을 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 캐싱 서버의 동작 방법의 순서도이다.
Figure 1 is a schematic configuration diagram of an IPTV service system.
Figure 2 is a configuration diagram schematically showing an ECM-based conditional access system.
Figure 3 is a configuration diagram of an IPTV system according to an embodiment of the present invention.
Figure 4 is a diagram schematically showing the components of RTP packets.
Figure 5 is a configuration diagram of a caching server according to an embodiment of the present invention.
Figure 6 is a diagram showing a table and packet storage unit according to an embodiment of the present invention.
Figures 7a, 7b, and 7c are diagrams showing the caching data generation process according to an embodiment of the present invention.
Figure 8 is a diagram showing a caching data generation process according to another embodiment of the present invention.
Figure 9 is a flowchart of a method of operating a caching server according to an embodiment of the present invention.

이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present disclosure will be described in detail using exemplary drawings. When adding reference signs to components in each drawing, it should be noted that the same components are given the same reference numerals as much as possible even if they are shown in different drawings. Additionally, in describing the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present disclosure, the detailed description will be omitted.

본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제1, 제2, i), ii), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례나 순서 등이 한정되지 않는다. 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In describing the components of the embodiment according to the present disclosure, symbols such as first, second, i), ii), a), and b) may be used. These codes are only used to distinguish the component from other components, and the nature, order, or order of the component is not limited by the code. In the specification, when a part is said to 'include' or 'have' a certain component, this means that it does not exclude other components, but may further include other components, unless explicitly stated to the contrary. .

본 발명에 따른 장치 또는 방법의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.Each component of the device or method according to the present invention may be implemented as hardware or software, or may be implemented as a combination of hardware and software. Additionally, the function of each component may be implemented as software and a microprocessor may be implemented to execute the function of the software corresponding to each component.

도 1은 IPTV 서비스 시스템을 개략적으로 나타낸 구성도이다.Figure 1 is a schematic configuration diagram of an IPTV service system.

도 1을 참조하면, IPTV 서비스 시스템은 헤드엔드(110), IPTV 백본 망(120), 라우터(130), 스위치(140), 및 셋톱박스(150)를 포함하고, 캐싱 서버(caching server; 160)를 더 포함할 수 있다. Referring to FIG. 1, the IPTV service system includes a headend 110, an IPTV backbone network 120, a router 130, a switch 140, and a set-top box 150, and a caching server 160. ) may further be included.

헤드엔드(110)는 콘텐츠 제공장치로서, IPTV 백본 망(120), 라우터(130), 및 스위치(140)를 이용하여 복수의 셋톱박스들에게 모든 TV 채널의 콘텐츠(contents)를 멀티캐스트 방식으로 전송한다.The headend 110 is a content providing device that multicasts the contents of all TV channels to a plurality of set-top boxes using the IPTV backbone network 120, the router 130, and the switch 140. send.

IPTV 서비스 시스템에서 콘텐츠 데이터의 전송은 MPEG(Moving Pictures Expert Group)-2 전송 스트림(Transport Stream; TS) 패킷들에 기반하거나, 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 패킷들에 기반할 수 있다. MPEC-2 TS 기반 전송은 주어진 회선 외에 다른 장치의 전송에 제한적이다. 반면, RTP 기반 전송은 TS 패킷들을 RTP 패킷들로 패킷화함으로써, 다양한 콘텐츠 데이터를 제공할 수 있다.Transmission of content data in the IPTV service system can be based on MPEG (Moving Pictures Expert Group)-2 Transport Stream (TS) packets or Real-time Transport Protocol (RTP) packets. there is. MPEC-2 TS-based transmission is limited to transmission from devices other than a given line. On the other hand, RTP-based transmission can provide various content data by packetizing TS packets into RTP packets.

셋톱박스(Set-top Box; 150)는 IPTV 단말로서, 사용자에 입력에 따라 특정 TV 채널을 선택하며, 선택된 TV 채널을 통해 콘텐츠 스트림을 수신하여 사용자에게 제공한다. 셋톱박스(150)는 MPEG 디코더를 포함할 수 있다. 셋톱박스(150)는 스마트폰, 태블릿(tablet), 노트북(notebook) 등과 같은 이동형 단말로 대체될 수 있다.Set-top box (Set-top Box) 150 is an IPTV terminal that selects a specific TV channel according to user input, receives content streams through the selected TV channel, and provides them to the user. Set-top box 150 may include an MPEG decoder. The set-top box 150 can be replaced with a mobile terminal such as a smartphone, tablet, laptop, etc.

한편, 셋톱박스(150)는 사용자로부터 채널 변경 신호를 수신할 때, 변경된 채널의 세션 연결을 수립하고, 방송 스트림을 이미지, 오디오 또는 데이터로 변환하는 데 소요되는 시간으로 인해, 변경된 채널의 방송 스트림을 곧바로 출력하기 어려울 수 있다. 즉, 채널 변경에 따른 재생 지연이 존재한다. Meanwhile, when the set-top box 150 receives a channel change signal from the user, the broadcast stream of the changed channel is It may be difficult to print directly. In other words, there is a playback delay due to channel change.

구체적으로, 채널 변경에 따른 재생 지연은 세션 연결 지연, 버퍼링 지연, 및 변환 지연을 포함한다. 세션 연결 지연은 셋톱박스(150)가 TV 채널의 방송 스트림을 수신하기 위해 헤드엔드(110)와의 멀티캐스트 세션을 수립하는 데 소요되는 시간 지연을 나타낸다. 버퍼링 지연은 네트워크 지터(jitter)를 방지하기 위해 일정량의 방송 스트림을 버퍼에 저장하는 데 소요되는 시간 지연을 나타낸다. 변환 지연은 셋톱박스(150)가 수신한 방송 스트림을 디코딩 및 렌더링하는 데 소요되는 시간 지연을 나타낸다. Specifically, playback delay due to channel change includes session connection delay, buffering delay, and conversion delay. Session connection delay represents the time delay required for the set-top box 150 to establish a multicast session with the headend 110 to receive a broadcast stream of a TV channel. Buffering delay refers to the time delay required to store a certain amount of broadcast stream in a buffer to prevent network jitter. The conversion delay represents the time delay required for the set-top box 150 to decode and render the received broadcast stream.

재생 지연 중 버퍼링 지연을 줄이기 위해, IPTV 서비스 시스템은 캐싱 서버(160)를 이용할 수 있다. 캐싱 서버(160)는 헤드엔드(110)로부터 셋톱박스(150) 측으로 제공된 콘텐츠를 저장하며, 셋톱박스(150)의 채널 변경 시점 이전의 콘텐츠 일부를 셋톱박스(150)에게 제공함으로써, 셋톱박스(150)의 버퍼링 지연을 줄일 수 있다. 이는 패스트 채널 재핑(fast channel zapping) 방법들 중 하나이다.To reduce buffering delay during playback delay, the IPTV service system may use the caching server 160. The caching server 160 stores the content provided from the headend 110 to the set-top box 150, and provides some content before the channel change of the set-top box 150 to the set-top box 150, thereby 150) buffering delay can be reduced. This is one of the fast channel zapping methods.

하지만, 캐싱 서버 기반 IPTV 서비스 시스템에 제한수신 시스템(CAS: Conditional Access System)이 적용되는 경우, 셋톱박스(150)에서 캐싱 데이터의 디스크램블링 준비로 인해 추가적인 재생 지연이 발생할 수 있다.However, when a conditional access system (CAS) is applied to a caching server-based IPTV service system, additional playback delay may occur due to descrambling preparation of the cached data in the set-top box 150.

제한수신 시스템은 디지털 방송에서 시청 권한을 가입자 별로 조정하기 위한 시스템이다. 제한수신 시스템이 적용된 IPTV 서비스 시스템에는 유료 콘텐츠를 특정 사용자에게만 제공할 수 있다. The conditional access system is a system for adjusting viewing rights for each subscriber in digital broadcasting. In an IPTV service system with a conditional access system, paid content can only be provided to specific users.

제한수신 시스템에 따르면, 셋톱박스(150)는 액세스 가능한 채널 정보 등을 포함하는 CAS 정보를 미리 저장한다. 셋톱박스(150)는 헤드엔드(110)로부터 스크램블링된 신호를 수신하고, CAS 정보를 이용하여 스크램블링된 신호를 디스크램블링할 수 있다. 반면, CAS 정보를 가지고 있지 않은 셋톱박스들은 디스크램블링을 수행할 수 없다.According to the conditional access system, the set-top box 150 stores CAS information including accessible channel information in advance. The set-top box 150 may receive a scrambled signal from the headend 110 and descramble the scrambled signal using CAS information. On the other hand, set-top boxes that do not have CAS information cannot perform descrambling.

도 2는 ECM 기반 제한수신 시스템을 개략적으로 나타낸 구성도이다.Figure 2 is a configuration diagram schematically showing an ECM-based conditional access system.

도 2를 참조하면, 헤드엔드(220) 내 제어워드 생성기(224)는 제어워드를 생성한다. 제어워드는 스크램블링 및 디스크램블링에 사용된다.Referring to FIG. 2, the control word generator 224 in the headend 220 generates a control word. Control words are used for scrambling and descrambling.

스크램블러(222)는 제어워드를 이용하여 원본 데이터 스트림(210)을 스크램블링한다. The scrambler 222 scrambles the original data stream 210 using a control word.

ECM 암호화기(226)는 제어워드를 기반으로 주기적으로 자격제어 메시지(Entitlement Control Message, ECM)를 생성한다. 여기서, ECM은 스크램블에 사용되는 키(key)를 나타내는 제어워드(Control Word, CW)를 암호화하는 기능을 한다. ECM은 보안을 위해 주기적으로 새로운 제어단어를 암호화할 수 있다. ECM은 주기적으로 전송될 수 있다.The ECM encryptor 226 periodically generates an Entitlement Control Message (ECM) based on the control word. Here, ECM functions to encrypt the Control Word (CW) representing the key used for scrambling. ECM can periodically encrypt new control words for security. ECM may be transmitted periodically.

다른 실시예에 따르면, 제한수신 시스템은 ECM 암호화기(226) 대신 자격관리 메시지(Entitlement Management Message, EMM) 암호화기를 채용할 수 있다. EMM은 수신기에게 자격을 부여하거나 갱신하는 기능을 한다. According to another embodiment, the conditional access system may employ an Entitlement Management Message (EMM) encryptor instead of the ECM encryptor 226. EMM functions to grant or renew qualifications to receivers.

헤드엔드(220)는 스크램블링된 데이터 스트림 및 ECM을 이용하여 스크램블링된 전송 스트림(Transport Stream, TS)을 구성하고, 스크램블링된 전송 스트림을 셋톱박스(230)에게 전송한다. 구체적으로, TS 패킷의 페이로드가 스크램블링된다.The headend 220 configures a scrambled transport stream (TS) using the scrambled data stream and ECM, and transmits the scrambled transport stream to the set-top box 230. Specifically, the payload of the TS packet is scrambled.

셋톱박스(230)는 스크램블링된 전송 스트림으로부터 ECM을 검출한다. 구체적으로, TS 패킷의 헤더로부터 ECM이 검출된다. 셋톱박스(230) 내 ECM 복호화기(234)는 ECM을 해독함으로써, 제어워드를 추출한다. Set-top box 230 detects ECM from the scrambled transport stream. Specifically, ECM is detected from the header of the TS packet. The ECM decoder 234 in the set-top box 230 extracts a control word by decoding the ECM.

디스크램블러(232)는 추출된 제어워드를 이용하여 스크램블링된 데이터 스트림을 디스크램블링함으로써, 원본 데이터 스트림(210)과 동일한 복원 데이터 스트림(240)을 얻을 수 있다. The descrambler 232 can obtain a restored data stream 240 that is the same as the original data stream 210 by descrambling the scrambled data stream using the extracted control word.

이후, 셋톱박스(230)는 디스크램블링된 데이터 스트림(240)을 디코딩하고, 렌더링하여 사용자에게 출력한다.Afterwards, the set-top box 230 decodes the descrambled data stream 240, renders it, and outputs it to the user.

이처럼, 제한수신 시스템에 따르면, 가입자별 시청 권한을 제어할 수 있다.In this way, according to the conditional access system, viewing rights for each subscriber can be controlled.

하지만, 다시 도 1을 참조하면, 캐싱 서버 기반 IPTV 서비스 시스템에 제한수신 시스템이 적용되는 경우, 셋톱박스(150)에서 캐싱 데이터의 디스크램블링 준비에 따른 재생 지연이 발생할 수 있다.However, referring again to FIG. 1, when the conditional access system is applied to the caching server-based IPTV service system, playback delay may occur due to preparation for descrambling of the cached data in the set-top box 150.

구체적으로, 캐싱 서버(160)는 채널 변경 후 수신한 방송 스트림을 스크램블링된 상태로 버퍼에 저장한다. 버퍼링 지연을 줄이기 위해, 캐싱 서버(160)는 셋톱박스(150)의 채널 변경 이전의 캐싱 데이터를 셋톱박스(150)에게 제공한다. 하지만, 캐싱 데이터도 스크램블링된 상태이므로, 캐싱 데이터를 디스크램블링하기 위해, 셋톱박스(150)는 캐싱 데이터 내 ECM을 검출해야 한다. 특히, 셋톱박스(150)는 ECM의 위치를 탐색하기 위한 정보를 먼저 탐색하는데 상당한 시간이 소요된다. 이후, 셋톱박스(150)는 ECM을 이용하여 제어워드를 검출한다. 셋톱박스(150)는 제어워드를 이용하여 디스크램블러를 활성화하고, 활성화된 디스크램블러는 캐싱 데이터를 디스크램블링한다. Specifically, the caching server 160 stores the broadcast stream received after changing the channel in a scrambled state in the buffer. In order to reduce buffering delay, the caching server 160 provides the set-top box 150 with caching data before the channel change of the set-top box 150. However, since the cached data is also in a scrambled state, in order to descramble the cached data, the set-top box 150 must detect the ECM in the cached data. In particular, the set-top box 150 takes a considerable amount of time to first search for information to locate the ECM. Afterwards, the set-top box 150 detects the control word using the ECM. The set-top box 150 activates the descrambler using a control word, and the activated descrambler descrambles the caching data.

여기서, 셋톱박스는 디스크램블링 비활성화로 인해 캐싱 데이터의 앞부분을 재생하지 못하고, 캐싱 데이터의 나머지 부분을 디스크램블링 활성화 시점까지 저장한 채로 대기해야 한다. 즉, 디스크램블링 활성화 시점까지 재생 지연이 발생한다. 종래 기술에 따르면, 캐싱 서버(160)는 셋톱박스(150)에게 캐싱 데이터를 제공함으로써 버퍼링 지연을 줄일 수 있지만, 셋톱박스(150)의 디스크램블링 준비 시간을 줄이기는 어렵다. Here, the set-top box cannot play the first part of the cached data due to descrambling being disabled, and must wait with the remaining part of the cached data stored until descrambling is activated. In other words, playback delay occurs until descrambling is activated. According to the prior art, the caching server 160 can reduce buffering delay by providing caching data to the set-top box 150, but it is difficult to reduce the descrambling preparation time of the set-top box 150.

버퍼링 지연과 함께 셋톱박스의 디스크램블링 준비 시간을 줄이기 위해, 본 발명의 일 실시예에 따른 캐싱 서버는 저장된 방송 스트림으로부터 디스크램블링을 위한 정보를 미리 검출하고, 검출된 디스크램블링 정보를 캐싱 데이터의 앞쪽에 포함시켜 제공한다. 셋톱박스는 캐싱 데이터 내 ECM을 빠르게 검출할 수 있고, 제어워드를 빠르게 얻을 수 있다.In order to reduce the descrambling preparation time of the set-top box along with the buffering delay, the caching server according to an embodiment of the present invention detects information for descrambling in advance from the stored broadcast stream and stores the detected descrambling information at the front of the cached data. It is included and provided. The set-top box can quickly detect ECM in the caching data and quickly obtain the control word.

도 3은 본 발명의 일 실시예에 따른 IPTV 시스템의 구성도이다.Figure 3 is a configuration diagram of an IPTV system according to an embodiment of the present invention.

이하에서는, IPTV 시스템의 각 구성에 대해 설명한다.Below, each configuration of the IPTV system will be described.

도 3을 참조하면, IPTV 시스템은 헤드엔드(310), IPTV 네트워크(320), 셋톱박스(330) 및 캐싱 서버(340)를 포함한다.Referring to FIG. 3, the IPTV system includes a headend 310, an IPTV network 320, a set-top box 330, and a caching server 340.

헤드엔드(310)는 방송 스트림의 형태로 콘텐츠를 제공하는 장치이다.The headend 310 is a device that provides content in the form of a broadcast stream.

헤드엔드(310)는 라우터들(미도시) 및 스위치들(미도시)을 이용하여 복수의 셋톱박스들에게 멀티캐스트 방식으로 데이터를 전송할 수 있다. The headend 310 may transmit data to a plurality of set-top boxes in a multicast manner using routers (not shown) and switches (not shown).

헤드엔드(310)는 RTP(Real-Time Transport Stream) 방식을 이용할 수 있다. 헤드엔드(310)는 모든 TV 채널들의 MPEG-2 TS 패킷들을 RTP 패킷화하고, RTP 패킷들을 기반으로 IP(Internet Protocol) 패킷들을 생성하고, IP 패킷들을 셋톱박스(330)에게 전송한다. The headend 310 may use the Real-Time Transport Stream (RTP) method. The headend 310 converts MPEG-2 TS packets of all TV channels into RTP packets, generates IP (Internet Protocol) packets based on the RTP packets, and transmits the IP packets to the set-top box 330.

도 4는 RTP 패킷들의 구성요소들을 개략적으로 나타낸 도면이다.Figure 4 is a diagram schematically showing the components of RTP packets.

도 4를 참조하면, RTP 패킷들의 개략적인 구성들이 도시되어 있다. Referring to Figure 4, schematic structures of RTP packets are shown.

하나의 RTP 패킷은 하나의 RTP 헤더와 하나의 RTP 페이로드를 포함한다. RTP 헤더는 시퀀스 번호, 타임 스탬프, 제어비트, 유료부하 타입, 동기 발신 식별자(SSRC ID), 및 기여 발신 식별자(CSRC ID)를 포함한다.One RTP packet includes one RTP header and one RTP payload. The RTP header includes sequence number, time stamp, control bits, payload type, synchronous originating identifier (SSRC ID), and contributing originating identifier (CSRC ID).

RTP 헤더의 시퀀스 번호는 RTP 패킷의 고유 순서를 나타낸다. RTP 헤더의 시퀀스 번호는 RTP 패킷의 손실을 검출하거나, RTP 패킷들의 순서를 재구성하는 데 사용된다. RTP 헤더의 시퀀스 번호의 초기값은 랜덤값이며, 패킷마다 1씩 증가한다. 시퀀스 번호는 주어진 범위 내에서 순환할 수 있다. 예를 들면, 시퀀스 번호는 0부터 65535의 순환 범위 내에서 순차적으로 증가할 있고, 65535 번의 시퀀스 번호가 0 번의 시퀀스 번호다 1만큼 선행한다.The sequence number in the RTP header indicates the unique order of the RTP packet. The sequence number of the RTP header is used to detect loss of RTP packets or to reconstruct the order of RTP packets. The initial value of the sequence number of the RTP header is a random value and increases by 1 for each packet. Sequence numbers can cycle within a given range. For example, sequence numbers may increase sequentially within the cyclic range of 0 to 65535, and sequence number 65535 precedes sequence number 0 by 1.

RTP 페이로드는 적어도 하나의 TS 패킷을 포함한다. TS 패킷은 콘텐츠와 관련된 데이터를 포함한다.The RTP payload includes at least one TS packet. TS packets contain data related to content.

여기서, TS는 영상 신호, 오디오 신호 및 데이터 신호를 나타내는 PES(Packetized Elementary Stream) 패킷(packet)이 다중화(multiplexing)된 일련의 TS 패킷들을 나타낸다. PES 패킷은, 전송 편의를 위하여 부호화 장치들의 ES(Elementary Stream)에 해당하는 영상 신호, 오디오 신호 및 데이터 신호 각각이 패킷화된 것이다. PES 패킷에 TS 패킷 헤더(header)가 부착되어 캡슐화(encapsulation)됨으로써, TS 패킷이 생성된다.Here, TS represents a series of TS packets obtained by multiplexing PES (Packetized Elementary Stream) packets representing video signals, audio signals, and data signals. The PES packet is a packetization of video signals, audio signals, and data signals corresponding to the ES (Elementary Stream) of the encoding devices for transmission convenience. A TS packet is created by attaching a TS packet header to the PES packet and encapsulating it.

TS 패킷의 헤더는 주요 정보로서 패킷 식별자(Packet Identifier, PID), CC(Continuity Counter), PCR(Program Clock Reference) 정보 등을 포함한다. 여기서, PID는 TS 패킷에 대한 식별자로서, PES 패킷 별로 할당된다. CC는 TS 패킷에 연속성을 부여하기 위한 계열 번호(sequence number)로서 4 비트 데이터 필드로 형성된다.The header of the TS packet contains main information such as packet identifier (PID), CC (Continuity Counter), and PCR (Program Clock Reference) information. Here, the PID is an identifier for a TS packet and is assigned to each PES packet. CC is a sequence number to provide continuity to TS packets and is formed as a 4-bit data field.

TS 패킷들은 프로그램 맵 테이블(Program Map Table; PMT)를 포함하는 PMT 관련 TS 패킷, 프로그램 관련 테이블(Program Association Table; PAT)을 포함하는 PAT 관련 TS 패킷, 및 ECM을 포함하는 ECM 관련 TS 패킷을 포함한다. The TS packets include a PMT-related TS packet containing a Program Map Table (PMT), a PAT-related TS packet containing a Program Association Table (PAT), and an ECM-related TS packet containing the ECM. do.

여기서, PAT는 시스템 특정 정보 중 하나로서, 모든 채널에 대한 번호와 PMT의 PID에 관한 정보를 포함한다. PMT의 PID에 대응되는 TS 패킷들로부터 PMT가 획득될 수 있다. PAT는 기 설정된 PID를 가지는 TS 패킷들에 포함될 수 있다. 예를 들면, PAT는 PID 값이 0인 TS 패킷들로부터 획득될 수 있다.Here, PAT is one of the system-specific information and includes information about the numbers for all channels and the PID of the PMT. The PMT can be obtained from TS packets corresponding to the PID of the PMT. PAT may be included in TS packets with a preset PID. For example, PAT can be obtained from TS packets with a PID value of 0.

한편, PMT는 채널 관련 정보와 채널에 매핑되어 있는 ES들의 PID들과 타입들을 포함한다. 즉, PMT는 콘텐츠의 번호와 콘텐츠의 구성 정보로서, PMT에는 해당 프로그램의 비디오 PID와 오디오 PID정보를 포함한다. PMT는 제한수신 설명자(CA_descriptor)를 더 포함하며, 제한수신 설명자는 ECM이 포함된 TS 패킷들의 PID를 제공한다. Meanwhile, PMT includes channel-related information and PIDs and types of ESs mapped to the channel. In other words, the PMT is the content number and content composition information, and the PMT includes the video PID and audio PID information of the corresponding program. PMT further includes a conditional access descriptor (CA_descriptor), and the conditional access descriptor provides the PID of TS packets including ECM.

PMT 관련 TS 패킷, PAT 관련 TS 패킷, 및 ECM 관련 TS 패킷은 서로 다른 RTP 패킷들에 포함될 수 있다.PMT-related TS packets, PAT-related TS packets, and ECM-related TS packets may be included in different RTP packets.

다시 도 3을 참조하면, 가입자별 시청 권한을 제어하기 위해, 헤드엔드(310)는 RTP 패킷에 포함될 TS 패킷들을 스크램블링할 수 있다.Referring again to FIG. 3, in order to control viewing rights for each subscriber, the headend 310 may scramble TS packets to be included in the RTP packet.

구체적으로, 헤드엔드(310)는 셋톱박스(330)에게 전송하는 방송 스트림을 스크램블링한다. 헤드엔드(310)는 제어워드를 이용하여 방송 스트림을 스크램블링하고, 제어워드 정보를 포함하는 ECM을 생성하고, 스크램블링된 방송 스트림 및 ECM을 TS 패킷들로 구성하고, TS 패킷들로부터 RTP 패킷들을 생성하고, RTP 패킷들을 셋톱박스(330)에게 전송한다. 헤드엔드(310)는 복수의 채널들 각각에 대해 RTP 패킷들을 전송한다. Specifically, the headend 310 scrambles the broadcast stream transmitted to the set-top box 330. The headend 310 scrambles the broadcast stream using a control word, generates an ECM containing control word information, configures the scrambled broadcast stream and ECM with TS packets, and generates RTP packets from the TS packets. And transmit RTP packets to the set-top box 330. The headend 310 transmits RTP packets for each of a plurality of channels.

셋톱박스(330)는 스위치들 및 라우터들을 통해 IPTV 네트워크(320)에 연결되고, 헤드엔드(310)의 멀티캐스트 전송에 따라 TV 채널의 RTP 패킷들을 수신하고, RTP 패킷들 내 스크램블링된 TS 패킷들을 디스크램블링, 디코딩 및 렌더링하여 사용자 인터페이스를 통해 오디오, 이미지, 비디오 또는 데이터 등을 출력한다.The set-top box 330 is connected to the IPTV network 320 through switches and routers, receives RTP packets of TV channels according to multicast transmission from the headend 310, and receives scrambled TS packets within the RTP packets. Desrambling, decoding, and rendering output audio, images, video, or data through a user interface.

구체적으로, 셋톱박스(330)는 RTP 패킷 내 스크램블링된 TS 패킷들을 수신하고, 스크램블링된 TS 패킷들로부터 PAT를 검출하고, PAT를 참조하여 PMT을 검출한다. 셋톱박스(330)는 RTP 패킷들로부터 PAT 및 PMT를 파싱하여 변경 채널의 음성, 영상 및 데이터 각각에 대응되는 PID를 획득한다. 셋톱박스(330)는 헤드엔드(310)에서 전송되는 방송 스트림 중 획득된 PID들과 일치하는 TS 패킷들을 획득한다. 한편, 셋톱박스(330)는 PMT로부터 ECM의 PID를 식별하고, ECM의 PID에 대응되는 TS 패킷들로부터 ECM을 검출할 수 있다. 셋톱박스(330)는 ECM을 이용하여 제어워드를 획득하고, 제어워드를 이용하여 스크램블링된 TS 패킷들을 디스크램블링할 수 있다. 셋톱박스(330)는 스크램블링된 TS 패킷들을 디스크램블링함으로써, 변경 채널의 음성, 영상 또는 데이터를 얻을 수 있다.Specifically, the set-top box 330 receives scrambled TS packets in the RTP packet, detects the PAT from the scrambled TS packets, and detects the PMT with reference to the PAT. The set-top box 330 parses the PAT and PMT from the RTP packets to obtain PIDs corresponding to each of the voice, video, and data of the changed channel. The set-top box 330 obtains TS packets matching the PIDs obtained from the broadcast stream transmitted from the headend 310. Meanwhile, the set-top box 330 can identify the PID of the ECM from the PMT and detect the ECM from TS packets corresponding to the PID of the ECM. The set-top box 330 can obtain a control word using the ECM and descramble the scrambled TS packets using the control word. The set-top box 330 can obtain voice, video, or data of the changed channel by descrambling the scrambled TS packets.

캐싱 서버(340)는 셋톱박스(330)의 버퍼링 지연을 줄이기 위해, 캐싱 데이터를 미리 생성하고, 셋톱박스(330)의 요청에 따라 캐싱 데이터를 제공한다. 특히, 캐싱 서버(340)는 셋톱박스(330)의 디스크램블링 활성화 시간을 단축시키기 위해 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 생성할 수 있다. In order to reduce the buffering delay of the set-top box 330, the caching server 340 generates caching data in advance and provides the caching data according to a request from the set-top box 330. In particular, the caching server 340 may generate caching data including descrambling-related TS packets in order to shorten the descrambling activation time of the set-top box 330.

구체적으로, 캐싱 서버(340)는 복수의 채널들의 스크램블링된 TS 패킷들을 포함하는 RTP 패킷들을 저장한다. 채널들 각각에 대해 캐싱 서버(340)는 기 설정된 양의 RTP 패킷들을 저장한다. Specifically, the caching server 340 stores RTP packets including scrambled TS packets of a plurality of channels. For each channel, the caching server 340 stores a preset amount of RTP packets.

캐싱 서버(340)는 채널들마다 RTP 패킷 내 스크램블링된 TS 패킷들로부터 키 프레임의 시작 지점에 대응되는 TS 패킷과, 디스크램블링 관련 TS 패킷들을 검출한다. 여기서, 키 프레임은 거의 압축이 되지 않은 프레임으로서, 주기적으로 또는 장면 전환 시점에서 화질을 개선하는 데 기여하는 프레임이다. 키 프레임은 I 프레임 또는 IDR 프레임 중 하나일 수 있다. 키 프레임의 시작 지점에 대응되는 TS 패킷은 키 프레임 데이터를 포함하는 TS 패킷들 중 키 프레임의 시작 지점에 해당하는 TS 패킷을 가리킨다. 디스크램블링 관련 TS 패킷들은 PAT 관련 TS 패킷, PMT 관련 TS 패킷, 및 ECM 관련 TS 패킷을 포함한다. The caching server 340 detects the TS packet corresponding to the start point of the key frame and the descrambling-related TS packets from the scrambled TS packets in the RTP packet for each channel. Here, a key frame is a barely compressed frame that contributes to improving picture quality periodically or at the time of scene change. A key frame can be either an I frame or an IDR frame. The TS packet corresponding to the start point of the key frame indicates the TS packet corresponding to the start point of the key frame among TS packets containing key frame data. Desrambling-related TS packets include PAT-related TS packets, PMT-related TS packets, and ECM-related TS packets.

캐싱 서버(340)는 TS 패킷들의 구성 정보를 분석하고, TS 패킷들의 구성 정보가 기록된 테이블을 생성한다. 구체적으로, 테이블은 각 RTP 패킷의 시퀀스 번호, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PAT 관련 TS 패킷 및 PMT 관련 TS 패킷을 포함하는지 여부가 기록된 테이블이다.The caching server 340 analyzes the configuration information of TS packets and creates a table in which the configuration information of TS packets is recorded. Specifically, the table is a table in which the sequence number of each RTP packet and whether each RTP packet includes a key frame-related TS packet, an ECM-related TS packet, a PAT-related TS packet, and a PMT-related TS packet are recorded.

캐싱 서버(340)는 기 작성된 테이블을 기반으로 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 생성하고, 캐싱 데이터를 셋톱박스(330)에게 제공한다.The caching server 340 generates caching data including descrambling-related TS packets based on a previously created table and provides the caching data to the set-top box 330.

이하에서는, IPTV 시스템의 채널 변경에 따른 재생 지연을 줄이기 위한 동작을 설명한다.Below, an operation to reduce playback delay due to channel change in the IPTV system will be described.

셋톱박스(330)는 현재 채널 상에서 수신되는 RTP 패킷 내 TS 패킷들을 오디오, 비디오, 또는 데이터로 변환한다. The set-top box 330 converts TS packets in the RTP packet received on the current channel into audio, video, or data.

이후, 셋톱박스(330)는 사용자가 원하는 음성과 영상을 제공하는 채널로의 채널 변경 신호를 입력 받는다. 셋톱박스(330)는 헤드엔드(310)의 수신한 시스템 정보(System Information) 데이터베이스로부터 변경 채널 주소 정보를 획득한다. Afterwards, the set-top box 330 receives a channel change signal to a channel that provides audio and video desired by the user. The set-top box 330 obtains change channel address information from the received system information database of the headend 310.

셋톱박스(330)는 변경 채널 주소 정보에 대응하는 RTP 패킷들을 수신한다. The set-top box 330 receives RTP packets corresponding to the change channel address information.

셋톱박스(330)는 변경 채널의 RTP 패킷들 중 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 캐싱 서버(340)에게 전송한다. 도 3에서, 셋톱박스(330)는 2-2 RTP 패킷을 처음으로 수신하는 것으로 가정한다. 셋톱박스(330)는 2-2 RTP 패킷의 시퀀스 번호를 캐싱 서버(340)에게 전송한다.The set-top box 330 transmits the sequence number of the first RTP packet received first among the RTP packets of the change channel to the caching server 340. In Figure 3, it is assumed that the set-top box 330 receives the 2-2 RTP packet for the first time. The set-top box 330 transmits the sequence number of the 2-2 RTP packet to the caching server 340.

제1 RTP 패킷의 시퀀스 번호를 수신한 때, 캐싱 서버(340)는 변경된 채널에 대해 저장된 RTP 패킷들로부터 제1 RTP 패킷에 선행하는 선행 RTP 패킷들을 선별한다. Upon receiving the sequence number of the first RTP packet, caching server 340 selects preceding RTP packets that precede the first RTP packet from RTP packets stored for the changed channel.

이후, 캐싱 서버(340)는 저장된 RTP 패킷들의 구성 정보가 기록된 테이블을 기반으로, 선행 RTP 패킷들에 선행하는 RTP 패킷들 중 디스크램블링 관련 TS 패킷을 포함하는 디스크램블링 관련 RTP 패킷들을 식별하고, 디스크램블링 관련 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다. Thereafter, the caching server 340 identifies descrambling-related RTP packets including descrambling-related TS packets among RTP packets preceding preceding RTP packets, based on a table in which configuration information of stored RTP packets is recorded, TS packets containing information for descrambling of preceding RTP packets are detected from descrambling-related RTP packets.

캐싱 서버(340)는 검출된 디스크램블링 관련 TS 패킷들을 기반으로 초기 RTP 패킷을 생성한다. 초기 RTP 패킷은 초기 RTP 헤더와 초기 RTP 페이로드를 포함하고, 초기 RTP 페이로드는 검출된 디스크램블링 관련 TS 패킷들을 포함한다. 나아가, 초기 RTP 페이로드는 RTP 패킷당 TS 패킷들의 개수를 위해 널(NULL) 패킷들을 더 포함할 수 있다.The caching server 340 generates an initial RTP packet based on the detected descrambling-related TS packets. The initial RTP packet includes an initial RTP header and an initial RTP payload, and the initial RTP payload includes detected descrambling-related TS packets. Furthermore, the initial RTP payload may further include NULL packets for the number of TS packets per RTP packet.

캐싱 서버(340)는 초기 RTP 패킷 및 선행 RTP 패킷들을 포함하는 캐싱 데이터를 생성한다. 초기 RTP 패킷과 선행 RTP 패킷들은 순차적으로 증가하는 시퀀스 번호들을 갖는다. 도 3에서, 캐싱 데이터는 2-1 RTP 패킷으로 표현된다.Caching server 340 generates caching data including an initial RTP packet and preceding RTP packets. The initial RTP packet and preceding RTP packets have sequentially increasing sequence numbers. In Figure 3, caching data is represented as 2-1 RTP packets.

캐싱 서버(340)는 캐싱 데이터를 셋톱박스(330)에게 전송한다. 빠른 전송을 위해, 캐싱 서버(340)는 셋톱박스(330)에게 캐싱 데이터를 유니캐스트 방식으로 전송할 수 있다.The caching server 340 transmits caching data to the set-top box 330. For fast transmission, the caching server 340 may transmit caching data to the set-top box 330 in a unicast manner.

셋톱박스(330)는 캐싱 데이터로부터 ECM을 검출한다. 캐싱 데이터의 가장 앞부분에 디스크램블링 관련 TS 패킷들이 포함되어 있으므로, 셋톱박스(330)는 복수의 RTP 패킷들로부터 디스크램블링 정보를 검출할 필요 없이, 캐싱 데이터로부터 ECM을 쉽고 빠르게 검출할 수 있다. Set-top box 330 detects ECM from caching data. Since descrambling-related TS packets are included at the very beginning of the caching data, the set-top box 330 can easily and quickly detect ECM from the caching data without the need to detect descrambling information from a plurality of RTP packets.

셋톱박스(330)는 ECM으로부터 제어워드를 획득하고, 제어워드를 이용하여 셋톱박스(330) 내 디스크램블러의 설정을 초기화함으로써, 디스크램블링을 활성화한다. 셋톱박스(330)는 디스크램블러로부터 디스크램블링 활성화 신호를 수신하면, 선행 RTP 패킷들 및 헤드엔드로부터 수신한 멀티캐스팅 데이터를 디스크램블러에게 순차적으로 전송한다. 디스크램블러는 제어워드를 이용하여 선행 RTP 패킷들 내 TS 패킷들을 디스크램블링한다. 도 3에서, 디스크램블러는 2-1 RTP 패킷과 2-2 RTP 패킷을 순차적으로 디스크램블링한다. 선행 RTP 패킷들 및 멀티캐스팅 데이터는 디스크램블링, 디코딩 및 렌더링을 통해 재생된다.The set-top box 330 activates descrambling by obtaining a control word from the ECM and initializing the settings of the descrambler in the set-top box 330 using the control word. When the set-top box 330 receives a descrambling activation signal from the descrambler, it sequentially transmits the preceding RTP packets and multicasting data received from the headend to the descrambler. The descrambler uses a control word to descramble TS packets in preceding RTP packets. In Figure 3, the descrambler sequentially descrambles the 2-1 RTP packet and the 2-2 RTP packet. Previous RTP packets and multicasting data are reproduced through descrambling, decoding and rendering.

요약하면, 캐싱 서버(340)는 셋톱박스(330)가 ECM을 검출하기 쉽도록 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 제공함으로써, 버퍼링 지연을 줄임과 함께 셋톱박스의 디스크램블링 활성화 시점을 앞당길 수 있다.In summary, the caching server 340 provides caching data including descrambling-related TS packets so that the set-top box 330 can easily detect ECM, thereby reducing buffering delay and advancing the descrambling activation time of the set-top box. You can.

도 5는 본 발명의 일 실시예에 따른 캐싱 서버의 구성도이다.Figure 5 is a configuration diagram of a caching server according to an embodiment of the present invention.

도 5를 참조하면, 캐싱 서버(500)는 통신부(510), 메모리(520) 및 프로세서(530)를 포함한다.Referring to FIG. 5, the caching server 500 includes a communication unit 510, a memory 520, and a processor 530.

통신부(510)는 IPTV 네트워크 및 셋톱박스에 대한 액세스를 제공한다. 캐싱 서버(500)는 통신부(510)를 통해 다른 장치들과 통신할 수 있다. Communication unit 510 provides access to IPTV networks and set-top boxes. The caching server 500 can communicate with other devices through the communication unit 510.

통신부(510)는 셋톱박스가 채널 변경 후 수신한 RTP 패킷들의 정보를 수신한다. 특히, 통신부(510)는 셋톱박스가 변경된 채널 상에서 수신한 RTP 패킷들 중 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 수신한다.The communication unit 510 receives information on RTP packets received after the set-top box changes channels. In particular, the communication unit 510 receives the sequence number of the first RTP packet received among the RTP packets received by the set-top box on the changed channel.

메모리(520)는 프로세서(530)로 하여금 본 발명의 일 실시예에 따른 캐싱 데이터 생성 방법을 수행하도록 하는 프로그램을 저장할 수 있다. The memory 520 may store a program that causes the processor 530 to perform a method for generating caching data according to an embodiment of the present invention.

메모리(520)는 단일 메모리 또는 복수의 메모리들일 수 있다. 메모리(520)는 휘발성 메모리 및 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. Memory 520 may be a single memory or multiple memories. The memory 520 may include at least one of volatile memory and non-volatile memory.

메모리(520)는 복수의 채널들마다 TS 패킷들을 포함하는 RTP 패킷들을 저장한다. 나아가, 메모리(520)는 채널별로 RTP 패킷들의 구성 정보가 기록된 테이블을 저장한다. 테이블에는 각 RTP 패킷의 시퀀스 번호, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PAT 관련 TS 패킷 및 PMT 관련 TS 패킷을 포함하는지 여부가 기록된다.The memory 520 stores RTP packets including TS packets for each of a plurality of channels. Furthermore, the memory 520 stores a table in which configuration information of RTP packets for each channel is recorded. The table records the sequence number of each RTP packet, and whether each RTP packet includes a key frame-related TS packet, an ECM-related TS packet, a PAT-related TS packet, and a PMT-related TS packet.

도 6은 본 발명의 일 실시예에 따른 테이블 및 패킷 저장부를 나타낸 도면이다.Figure 6 is a diagram showing a table and packet storage unit according to an embodiment of the present invention.

도 6을 참조하면, 테이블(610) 및 패킷 저장부(620)가 도시되어 있다.Referring to FIG. 6, a table 610 and a packet storage unit 620 are shown.

테이블(610)은 RTP 패킷들의 시퀀스 번호들(612), 제1 참조 오프셋들(614), 및 RTP 패킷들의 구성 정보(616)를 나타낸다.Table 610 shows sequence numbers 612 of RTP packets, first reference offsets 614, and configuration information 616 of RTP packets.

패킷 저장부(620)는 제2 참조 오프셋들(622) 및 RTP 패킷들(624)을 저장한다.The packet storage unit 620 stores second reference offsets 622 and RTP packets 624.

RTP 패킷들의 시퀀스 번호들(612)은 캐싱 서버에서 수신된 RTP 패킷들의 시퀀스 번호들을 포함한다. RTP 패킷들의 시퀀스 번호들(612)은 수신 순서대로 설정된다. RTP 패킷들의 시퀀스 번호들(612)의 불연속이 발생한 지점은 RTP 패킷이 손실된 지점이다. Sequence numbers of RTP packets 612 includes sequence numbers of RTP packets received at the caching server. Sequence numbers 612 of RTP packets are set in reception order. The point where discontinuity in the sequence numbers 612 of RTP packets occurs is the point where the RTP packet is lost.

제1 참조 오프셋들(614)과 제2 참조 오프셋들(622)은 메모리(520) 내 저장 위치를 나타낸다. First reference offsets 614 and second reference offsets 622 represent storage locations within memory 520 .

RTP 패킷들의 구성 정보(616)는 각 RTP 패킷이 IDR 프레임 관련 TS 패킷을 포함하는지 여부, ECM 관련 TS 패킷을 포함하는지 여부, PAT 관련 TS 패킷을 포함하는지 여부, 및 PMT 관련 TS 패킷을 포함하는지 여부에 관한 정보를 포함한다.The configuration information 616 of RTP packets determines whether each RTP packet includes an IDR frame-related TS packet, whether it includes an ECM-related TS packet, whether it includes a PAT-related TS packet, and whether it includes a PMT-related TS packet. Includes information about.

다시 도 5를 참조하면, 메모리(520)는 키 프레임 관련 TS 패킷들 및 디스크램블링 관련 TS 패킷들을 미리 저장할 수 있다.Referring again to FIG. 5, the memory 520 may store key frame-related TS packets and descrambling-related TS packets in advance.

프로세서(530)는 적어도 하나의 명령어들을 실행할 수 있는 적어도 하나의 코어를 포함할 수 있다. 프로세서(530)는 메모리(520)에 저장된 명령어들을 실행할 수 있다. 프로세서(530)는 단일 프로세서 또는 복수의 프로세서들일 수 있다. The processor 530 may include at least one core capable of executing at least one instruction. The processor 530 may execute instructions stored in the memory 520. Processor 530 may be a single processor or multiple processors.

프로세서(530)는 셋톱박스가 수신한 제1 RTP 패킷에 대한 선행 RTP 패킷들과, 선행 RTP 패킷들의 디스크램블링 관련 TS 패킷들을 포함하는 초기 RTP 패킷을 포함하는 캐싱 데이터를 생성하고, 캐싱 데이터를 셋톱박스에게 전송한다.The processor 530 generates caching data including preceding RTP packets for the first RTP packet received by the set-top box and an initial RTP packet including TS packets related to descrambling of the preceding RTP packets, and sends the caching data to the set-top box. Send to box.

구체적으로, 프로세서(530)는 셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 가장 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 수신한다.Specifically, the processor 530 receives the sequence number of the first RTP packet received among the RTP packets received by the set-top box after changing the channel.

제1 RTP 패킷의 시퀀스 번호를 수신한 때, 프로세서(530)는 변경된 채널에 대해 저장된 RTP 패킷들로부터 제1 RTP 패킷에 선행하는 선행 RTP 패킷들을 선별한다. Upon receiving the sequence number of the first RTP packet, processor 530 selects preceding RTP packets that precede the first RTP packet from RTP packets stored for the changed channel.

구체적으로, 프로세서(530)는 변경된 채널에 대해 저장된 RTP 패킷들의 구성 정보가 기록된 테이블에 기초하여, 제1 RTP 패킷에 선행하는 RTP 패킷들 중 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷들을 식별한다. 여기서, 키 프레임 관련 TS 패킷은 키 프레임의 시작 지점에 대응되는 TS 패킷을 가리킨다. 프로세서(530)는 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷들 중 하나의 RTP 패킷과, 상기 하나의 RTP 패킷과 제1 RTP 패킷 사이의 RTP 패킷들을 선행 RTP 패킷들로서 선별한다. Specifically, the processor 530 identifies RTP packets including a key frame-related TS packet among RTP packets preceding the first RTP packet, based on a table in which configuration information of RTP packets stored for the changed channel is recorded. . Here, the key frame-related TS packet indicates the TS packet corresponding to the start point of the key frame. The processor 530 selects one RTP packet among RTP packets including a key frame-related TS packet and RTP packets between the one RTP packet and the first RTP packet as preceding RTP packets.

캐싱 데이터의 디코딩 및 렌더링 단위를 위해, 선행 RTP 패킷들 중 첫 번째 선행 RTP 패킷은 키 프레임의 시작 지점에 대응되는 키 프레임 관련 TS 패킷을 포함한다. 선행 RTP 패킷들 중 마지막 RTP 패킷은 제1 RTP 패킷의 시퀀스 번호보다 1만큼 작은 값의 시퀀스 번호를 갖는다. 선행 RTP 패킷들 내에는 키 프레임 관련 TS 패킷들을 포함하는 RTP 패킷이 더 포함될 수 있다. 선행 RTP 패킷들의 시퀀스 번호들은 제1 RTP 패킷의 시퀀스 번호에 선행한다.For the decoding and rendering unit of the cached data, the first preceding RTP packet among the preceding RTP packets includes a key frame-related TS packet corresponding to the starting point of the key frame. The last RTP packet among the preceding RTP packets has a sequence number that is 1 less than the sequence number of the first RTP packet. The preceding RTP packets may further include an RTP packet including key frame-related TS packets. The sequence numbers of preceding RTP packets precede the sequence number of the first RTP packet.

그렇지 않으면, 프로세서(530)는 변경된 채널에 대해 저장된 RTP 패킷들로부터 기 설정된 개수 또는 기 설정된 시간구간 동안의 RTP 패킷들을 선행 RTP 패킷들로 선별할 수 있다. 선행 RTP 패킷들의 개수는 셋톱박스(330)의 버퍼 크기에 따라 달라질 수 있다.Otherwise, the processor 530 may select a preset number or RTP packets for a preset time period as preceding RTP packets from the RTP packets stored for the changed channel. The number of preceding RTP packets may vary depending on the buffer size of the set-top box 330.

이후, 프로세서(530)는 저장된 RTP 패킷들의 구성 정보가 기록된 테이블을 기반으로, 저장된 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다. Thereafter, the processor 530 detects TS packets including information for descrambling of preceding RTP packets from the stored RTP packets, based on a table in which configuration information of the stored RTP packets is recorded.

구체적으로, 프로세서(530)는 테이블에 기초하여, 디스크램블링 관련 TS 패킷들을 포함하는 RTP 패킷들을 식별하고, 식별된 RTP 패킷들로부터 디스크램블링 관련 TS 패킷들을 검출한다. 프로세서(530)는 선행 RTP 패킷들보다 선행하는 RTP 패킷들 중 선행 RTP 패킷들에 가까운 TS 패킷들로부터 디스크램블링 관련 TS 패킷들을 검출할 수 있다. 디스크램블링 관련 TS 패킷들은 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들이며, 디스크램블링을 위한 정보는 PAT, PMT 및 ECM을 포함한다. 다시 말하면, 디스크램블링 관련 TS 패킷들은 PAT 관련 TS 패킷, PMT 관련 TS 패킷, 및 ECM 관련 TS 패킷을 포함한다.Specifically, the processor 530 identifies RTP packets including descrambling-related TS packets based on the table and detects descrambling-related TS packets from the identified RTP packets. The processor 530 may detect descrambling-related TS packets from TS packets that are close to the preceding RTP packets among the RTP packets that precede the preceding RTP packets. Desrambling-related TS packets are TS packets that include information for descrambling of preceding RTP packets, and information for descrambling includes PAT, PMT, and ECM. In other words, descrambling-related TS packets include PAT-related TS packets, PMT-related TS packets, and ECM-related TS packets.

프로세서(530)는 초기 RTP 헤더를 생성하고, 디스크램블링 관련 TS 패킷들을 포함하는 초기 RTP 페이로드를 생성하고, 초기 RTP 헤더와 초기 RTP 페이로드를 결합함으로써 초기 RTP 패킷을 생성한다. 여기서, 프로세서(530)는 저장된 테이블에 기초하여, 선행 RTP 패킷들에 선행하는 RTP 패킷들 중 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷을 식별하고, 식별된 RTP 패킷의 헤더를 초기 RTP 헤더로 이용할 수 있다. The processor 530 generates an initial RTP header, generates an initial RTP payload including descrambling-related TS packets, and generates an initial RTP packet by combining the initial RTP header and the initial RTP payload. Here, based on the stored table, the processor 530 identifies an RTP packet including a key frame-related TS packet among RTP packets preceding the preceding RTP packets, and uses the header of the identified RTP packet as the initial RTP header. You can.

프로세서(530)는 초기 RTP 패킷이 선행 RTP 패킷들에 선행하도록 캐싱 데이터를 구성할 수 있다. 프로세서(530)는 상기 식별된 RTP 패킷의 헤더의 시퀀스 번호를 선행 RTP 패킷들의 시퀀스 번호에 앞서도록 조정한다. 이에 따라, 초기 RTP 패킷은 선행 RTP 패킷들의 시퀀스 번호들보다 작은 시퀀스 번호를 가지며, 선행 RTP 패킷들에 선행하는 TS 패킷들 중 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 RTP 패킷의 헤더의 정보를 포함한다. Processor 530 may configure caching data so that the initial RTP packet precedes preceding RTP packets. Processor 530 adjusts the sequence number of the header of the identified RTP packet to precede the sequence numbers of preceding RTP packets. Accordingly, the initial RTP packet has a sequence number that is smaller than the sequence numbers of the preceding RTP packets, and the header of the RTP packet including the TS packet corresponding to the start point of the key frame among the TS packets preceding the preceding RTP packets Contains information.

이후, 프로세서(530)는 캐싱 데이터를 셋톱박스에게 전송한다.Afterwards, the processor 530 transmits the caching data to the set-top box.

한편, 본 발명의 일 실시예에 따르면, 프로세서(530)는 기 설정된 개수 또는 기 설정된 시간구간에 대응되는 지연 RTP 패킷들을 초기 RTP 패킷과 선행 RTP 패킷들 사이에 삽입할 수 있다. 이는 도 8에서 자세히 설명한다.Meanwhile, according to one embodiment of the present invention, the processor 530 may insert delayed RTP packets corresponding to a preset number or a preset time interval between the initial RTP packet and the preceding RTP packets. This is explained in detail in Figure 8.

이처럼, 캐싱 서버(500)는 헤드엔드로부터 수신한 RTP 패킷들을 단순히 셋톱박스에게 전달하는 것이 아니라, RTP 패킷들로부터 디스크램블링 관련 TS 패킷들을 추출하고, 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 셋톱박스에게 전송함으로써, 셋톱박스로 하여금 디스크램블링 관련 TS 패킷들을 검출하는 데 소요되는 시간을 줄일 수 있다. 이로써, 셋톱박스의 디스크램블링 활성화 시점이 앞당겨지고, 재생 지연이 줄어들 수 있다.In this way, the caching server 500 does not simply deliver the RTP packets received from the headend to the set-top box, but extracts descrambling-related TS packets from the RTP packets and caches data including descrambling-related TS packets to the set-top box. By transmitting to the box, the time required for the set-top box to detect descrambling-related TS packets can be reduced. As a result, the descrambling activation point of the set-top box can be accelerated and playback delay can be reduced.

도 7a, 도 7b 및 도 7c는 본 발명의 일 실시예에 따른 캐싱 데이터 생성 과정을 나타낸 도면이다. Figures 7a, 7b, and 7c are diagrams showing the caching data generation process according to an embodiment of the present invention.

도 7a를 참조하면, 캐싱 서버는 각 채널에 대해 RTP 패킷들을 미리 저장한다. Referring to FIG. 7A, the caching server stores RTP packets for each channel in advance.

저장된 RTP 패킷들은 1부터 25까지 시퀀스 번호들을 갖는다. 저장된 RTP 패킷들 중 일부는 키 프레임 관련 TS 패킷들을 포함한다. 예를 들면, 1번 RTP 패킷, 2번 RTP 패킷 및 3번 RTP 패킷은 0번 키 프레임 관련 TS 패킷들을 포함한다. 11번 RTP 패킷, 12번 RTP 패킷 및 13번 RTP 패킷은 1번 키 프레임 관련 TS 패킷들을 포함한다.Stored RTP packets have sequence numbers from 1 to 25. Some of the stored RTP packets include key frame-related TS packets. For example, RTP packet No. 1, RTP packet No. 2, and RTP packet No. 3 include TS packets related to key frame No. 0. RTP packet No. 11, RTP packet No. 12, and RTP packet No. 13 include TS packets related to key frame No. 1.

캐싱 서버는 셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호 SN1를 수신한다. 제1 RTP 패킷의 시퀀스 번호 SN1은 25번이다.The caching server receives the sequence number SN1 of the first RTP packet received among the RTP packets received by the set-top box after changing the channel. The sequence number SN1 of the first RTP packet is 25.

캐싱 서버는 저장된 RTP 패킷들의 구성정보가 기록된 테이블을 참조하여, 제1 RTP 패킷의 시퀀스 번호인 25번보다 앞선 번호들을 갖는 RTP 패킷들 중 키 프레임 관련 TS 패킷들을 포함하는 RTP 패킷들을 식별한다. 이에 따라, 캐싱 서버는 1번 RTP 패킷, 2번 RTP 패킷, 3번 RTP 패킷, 11번 RTP 패킷, 12번 RTP 패킷, 13번 RTP 패킷, 21번 RTP 패킷, 22번 RTP 패킷, 및 23번 RTP 패킷이 식별한다.The caching server refers to a table in which configuration information of stored RTP packets is recorded, and identifies RTP packets including key frame-related TS packets among RTP packets with numbers preceding 25, which is the sequence number of the first RTP packet. Accordingly, the caching server sends RTP packet No. 1, RTP packet No. 2, RTP packet No. 3, RTP packet No. 11, RTP packet No. 12, RTP packet No. 13, RTP packet No. 21, RTP packet No. 22, and RTP No. 23. Packets are identified.

캐싱 서버는 키 프레임 관련 TS 패킷들을 포함하는 RTP 패킷들 중 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 RTP 패킷들을 식별한다. 이에 따라, 캐싱 서버는 1번 RTP 패킷, 11번 RTP 패킷, 및 21번 RTP 패킷을 식별한다.The caching server identifies RTP packets including a TS packet corresponding to the start point of the key frame among RTP packets including key frame-related TS packets. Accordingly, the caching server identifies RTP packet No. 1, RTP packet No. 11, and RTP packet No. 21.

캐싱 서버는 1번 RTP 패킷, 11번 RTP 패킷, 및 21번 RTP 패킷 중 11번 RTP 패킷을 선택한다. The caching server selects RTP packet No. 11 among RTP packet No. 1, RTP packet No. 11, and RTP packet No. 21.

캐싱 서버는 1번부터 24번까지 RTP 패킷들을 선행 RTP 패킷들로서 선별한다. The caching server selects RTP packets 1 to 24 as preceding RTP packets.

도 7b를 참조하면, 8번 RTP 패킷(710), 9번 RTP 패킷(720), 10번 RTP 패킷(730), 초기 RTP 페이로드(740), 및 초기 RTP 패킷(750)이 도시되어 있다.Referring to FIG. 7B, RTP packet No. 8 710, RTP packet No. 9 720, RTP packet No. 10 730, initial RTP payload 740, and initial RTP packet 750 are shown.

캐싱 서버는 RTP 패킷들의 구성정보가 기록된 테이블을 기반으로 저장된 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다.The caching server detects TS packets containing information for descrambling of preceding RTP packets from stored RTP packets based on a table in which configuration information of RTP packets is recorded.

구체적으로, 캐싱 서버는 선행 RTP 패킷들에 선행하는 RTP 패킷들 중에서 기 저장된 테이블을 기반으로 PAT 관련 TS 패킷, PMT 관련 TS 패킷 또는 ECM 관련 TS 패킷 중 적어도 하나를 포함하는 RTP 패킷들을 식별한다. 도 7b에서는, 8번 RTP 패킷, 9번 RTP 패킷, 및 10번 RTP 패킷이 각각 PAT 관련 TS 패킷, PMT 관련 TS 패킷, 및 ECM 관련 TS 패킷을 포함한다.Specifically, the caching server identifies RTP packets that include at least one of a PAT-related TS packet, a PMT-related TS packet, or an ECM-related TS packet based on a pre-stored table among RTP packets preceding the preceding RTP packets. In Figure 7b, RTP packet No. 8, RTP packet No. 9, and RTP packet No. 10 include a PAT-related TS packet, a PMT-related TS packet, and an ECM-related TS packet, respectively.

캐싱 서버는 8번 RTP 패킷(710)으로부터 PAT에 대한 정보를 포함하는 8-3번 TS 패킷을 검출한다. 캐싱 서버는 9번 RTP 패킷(720)으로부터 PMT에 대한 정보를 포함하는 9-4번 TS 패킷을 검출한다. 캐싱 서버는 10번 RTP 패킷(730)으로부터 ECM에 대한 정보를 포함하는 10-2번 TS 패킷을 검출한다.The caching server detects TS packet No. 8-3 containing information about PAT from RTP packet No. 8 710. The caching server detects TS packet No. 9-4 containing information about PMT from RTP packet No. 9 720. The caching server detects TS packet No. 10-2 containing information about ECM from RTP packet No. 10 (730).

캐싱 서버는 8-3번 TS 패킷, 9-4번 TS 패킷, 및 10-2번 TS 패킷을 포함하는 초기 RTP 페이로드(740)를 생성한다. 캐싱 서버는 1개의 RTP 패킷당 TS 패킷들의 수를 맞추기 위해, NULL 패킷들을 이용할 수 있다.The caching server generates an initial RTP payload 740 including TS packet 8-3, TS packet 9-4, and TS packet 10-2. The caching server can use NULL packets to match the number of TS packets per RTP packet.

캐싱 서버는 초기 RTP 페이로드(740)에 초기 RTP 헤더를 결합함으로써, 초기 RTP 패킷(750)을 생성한다.The caching server generates an initial RTP packet 750 by combining the initial RTP header with the initial RTP payload 740.

여기서, 초기 RTP 헤더는 선행 RTP 패킷들보다 앞서는 RTP 패킷들 중에서 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 RTP 패킷의 헤더의 시퀀스 번호를 조정함으로써 생성된 것일 수 있다.Here, the initial RTP header may be generated by adjusting the sequence number of the header of the RTP packet including the TS packet corresponding to the start point of the key frame among the RTP packets preceding the preceding RTP packets.

도 7c를 참조하면, 캐싱 서버는 초기 RTP 패킷(750) 및 선행 RTP 패킷들을 결합함으로써, 캐싱 데이터(760)를 생성한다.Referring to FIG. 7C, the caching server generates caching data 760 by combining the initial RTP packet 750 and preceding RTP packets.

이때, 캐싱 서버는 초기 RTP 패킷(750)이 선행 RTP 패킷들에 선행하도록 캐싱 데이터(760)를 구성할 수 있다.At this time, the caching server may configure the caching data 760 so that the initial RTP packet 750 precedes the preceding RTP packets.

캐싱 데이터(760)의 첫 번째 RTP 패킷의 시퀀스 번호는 10번이고, 마지막 RTP 패킷의 시퀀스 번호는 n번이다. 여기서, n은 24일 수 있다. n+1번 RTP 패킷은 제1 RTP 패킷이 된다.The sequence number of the first RTP packet of the caching data 760 is 10, and the sequence number of the last RTP packet is n. Here, n may be 24. The n+1 RTP packet becomes the first RTP packet.

캐싱 서버는 전술한 과정을 통해 생성된 캐싱 데이터(760)를 셋톱박스에게 전송한다.The caching server transmits the caching data 760 generated through the above-described process to the set-top box.

셋톱박스는 캐싱 데이터(760) 내 PAT를 검출하고, PAT를 이용하여 PMT의 PID를 식별하고, PMT의 PID를 기반으로 PMT를 획득하고, PMT 내 제한수신 식별자를 이용하여 ECM의 PID를 식별하고, ECM의 PID를 이용하여 캐싱 데이터에 포함된 ECM을 검출한다. 셋톱박스는 캐싱 데이터(760)의 앞부분에 포함된 초기 RTP 패킷(750)으로부터 PAT, PMT 및 ECM을 신속하게 검출할 수 있다.The set-top box detects the PAT in the caching data 760, identifies the PID of the PMT using the PAT, obtains the PMT based on the PID of the PMT, identifies the PID of the ECM using the conditional access identifier in the PMT, and , detect the ECM included in the caching data using the PID of the ECM. The set-top box can quickly detect PAT, PMT, and ECM from the initial RTP packet 750 included at the front of the caching data 760.

한편, 디스크램블링 활성화 속도가 빠른 경우, 셋톱박스가 초기 RTP 패킷(750)의 수신을 완료한 시점 tp에 디스크램블러가 활성화될 수 있다. 이 경우, 셋톱박스는 11번 RTP 패킷을 수신하자마자 디스크램블링할 수 있다. 이를 동기화 상태라 지칭한다. 도 7c는 동기화 상태에서 캐싱 데이터(760)의 구성을 나타낸다.Meanwhile, if the descrambling activation speed is fast, the descrambler may be activated at tp when the set-top box completes reception of the initial RTP packet 750. In this case, the set-top box can descramble RTP packet number 11 as soon as it receives it. This is referred to as the synchronization state. Figure 7c shows the configuration of caching data 760 in a synchronized state.

반면, 디스크램블링 활성화 속도가 느린 경우, 디스크램블러가 활성화 시점이 셋톱박스가 초기 RTP 패킷(750)의 수신을 완료한 시점 tp보다 늦을 수 있다. 이 경우, 셋톱박스는 디스크램블링 활성화 시점까지 선행 RTP 패킷들을 버퍼에 저장한 채로 대기해야 한다. 이를 비동기화 상태라 지칭한다.On the other hand, if the descrambling activation speed is slow, the descrambler activation point may be later than the point tp at which the set-top box completes reception of the initial RTP packet 750. In this case, the set-top box must wait with preceding RTP packets stored in the buffer until descrambling is activated. This is referred to as an unsynchronized state.

도 8은 본 발명의 다른 실시예에 따른 캐싱 데이터 생성 과정을 나타낸 도면이다. Figure 8 is a diagram showing a caching data generation process according to another embodiment of the present invention.

도 8을 참조하면, 캐싱 데이터(810) 및 지연 RTP 패킷들(812)이 도시되어 있다.Referring to Figure 8, caching data 810 and delayed RTP packets 812 are shown.

캐싱 서버는 디스크램블러가 활성화 시점과 셋톱박스가 초기 RTP 패킷(750)의 수신을 완료한 시점 tp 간 시간 간격을 줄이거나 없애기 위해, 초기 RTP 패킷과 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들(812)을 삽입할 수 있다. 이는 셋톱박스의 디스크램블링 활성화까지 지연 시간에 따른 타이밍을 맞추기 위한 것이다.In order to reduce or eliminate the time interval between the time the descrambler is activated and the time tp when the set-top box completes reception of the initial RTP packet 750, the caching server installs a preset number of delayed RTPs between the initial RTP packet and the preceding RTP packets. Packets 812 may be inserted. This is to match the timing according to the delay time until descrambling activation of the set-top box.

다른 실시예에서, 캐싱 서버는 지연 RTP 패킷들을 기 설정된 시간구간에 대응되는 개수만큼 캐싱 데이터(810)에 추가할 수 있다.In another embodiment, the caching server may add the number of delayed RTP packets to the caching data 810 corresponding to a preset time interval.

지연 RTP 패킷들(812)의 삽입에 따라, 캐싱 서버는 지연 RTP 패킷들(812)의 시퀀스 번호들을 설정하고, 초기 RTP 패킷의 시퀀스 번호를 조정한다. 초기 RTP 패킷의 조정된 시퀀스 번호는 8번이고, 지연 RTP 패킷들(812)의 시퀀스 번호들은 9번 및 10번이다.According to the insertion of the delayed RTP packets 812, the caching server sets the sequence numbers of the delayed RTP packets 812 and adjusts the sequence number of the initial RTP packet. The adjusted sequence number of the initial RTP packet is 8, and the sequence numbers of the delayed RTP packets 812 are 9 and 10.

셋톱박스는 지연 RTP 패킷들의 시간구간 동안 ECM을 검출하고, 디스크램블러는 지연 TS 패킷들의 수신이 완료되는 시점 또는 그 이전에 활성화된다. 셋톱박스는 디스크램블러 활성화 시점까지 선행 RTP 패킷들 및 멀티캐스팅 데이터를 저장한 채로 대기할 필요없이, 수신하자마자 디스크램블러에게 전송한다. 지연 TS 패킷들의 시간구간 내에 디스크램블링이 활성화되면, 셋톱박스는 디스크램블링 활성화 시점 이후의 선행 RTP 패킷들을 수신하자마자 바로 디스크램블러에게 전송한다. 도 8은 비동기화 상태에서 캐싱 데이터(810)의 구성을 나타낸다.The set-top box detects the ECM during the time interval of the delayed RTP packets, and the descrambler is activated at or before reception of the delayed TS packets is completed. The set-top box transmits the preceding RTP packets and multicasting data to the descrambler as soon as they are received, without having to wait until the descrambler is activated. If descrambling is activated within the time interval of delayed TS packets, the set-top box immediately transmits the preceding RTP packets after the descrambling activation point to the descrambler as soon as they are received. Figure 8 shows the configuration of caching data 810 in an unsynchronized state.

도 9는 본 발명의 일 실시예에 따른 캐싱 서버의 동작 방법의 순서도이다.Figure 9 is a flowchart of a method of operating a caching server according to an embodiment of the present invention.

도 9를 참조하면, 캐싱 서버는 복수의 채널들마다 RTP 패킷들 및 RTP 패킷들의 구성 정보가 기록된 테이블을 저장한다(S910).Referring to FIG. 9, the caching server stores a table in which RTP packets and configuration information of the RTP packets are recorded for each of a plurality of channels (S910).

여기서, RTP 패킷들 각각은 시퀀스 번호 및 복수의 TS 패킷들을 포함한다. 테이블은 RTP 패킷들의 시퀀스 번호들, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PMT 관련 TS 패킷 및 PAT 관련 TS 패킷을 포함하는지 여부가 기록된 것이다.Here, each RTP packet includes a sequence number and a plurality of TS packets. The table records the sequence numbers of RTP packets and whether each RTP packet includes a key frame-related TS packet, an ECM-related TS packet, a PMT-related TS packet, and a PAT-related TS packet.

캐싱 서버는 셋톱박스가 채널 전환 후 수신한 RTP 패킷들 중 제1 RTP 패킷의 시퀀스 번호를 수신한다(S920).The caching server receives the sequence number of the first RTP packet among the RTP packets received after the set-top box switches channels (S920).

제1 RTP 패킷은 셋톱박스가 채널 변경 후 처음으로 수신한 RTP 패킷을 지칭한다.The first RTP packet refers to the first RTP packet received by the set-top box after changing the channel.

캐싱 서버는 전환된 채널에 대해 저장된 RTP 패킷들로부터 제1 RTP 패킷의 시퀀스 번호에 선행하는 선행 RTP 패킷들을 선별한다(S930). The caching server selects preceding RTP packets preceding the sequence number of the first RTP packet from RTP packets stored for the switched channel (S930).

여기서, 선행 RTP 패킷들은 적어도 하나의 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함한다. 구체적으로, 선행 RTP 패킷들 중 첫 번째 RTP 패킷은 어느 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함한다. 나아가, 선행 RTP 패킷들 내에 다른 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함할 수 있다. 캐싱 서버는 전환된 채널에 대해 저장된 RTP 패킷들로부터 저장된 테이블을 기반으로 선행 RTP 패킷들을 선별할 수 있다.Here, preceding RTP packets include a TS packet corresponding to the starting point of at least one key frame. Specifically, the first RTP packet among the preceding RTP packets includes a TS packet corresponding to the starting point of a certain key frame. Furthermore, preceding RTP packets may include a TS packet corresponding to the starting point of another key frame. The caching server may select preceding RTP packets based on a table stored from RTP packets stored for the switched channel.

캐싱 서버는 저장된 테이블을 기반으로 저장된 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다(S940).The caching server detects TS packets containing information for descrambling of preceding RTP packets from stored RTP packets based on the stored table (S940).

여기서, 선행 RTP 패킷들의 디스크램블링을 위한 정보는 제어 워드를 포함하는 ECM, ECM이 포함된 TS 패킷의 PID를 제공하는 PMT, 및 PMT에 관련된 TS 패킷들의 PID들을 제공하되 기 설정된 PID를 가지는 TS 패킷에 포함된 PAT을 포함한다. 즉, 디스크램블링을 위한 정보를 포함하는 TS 패킷들은 PAT 관련 TS 패킷, PMT 관련 TS 패킷, 및 ECM 관련 TS 패킷을 포함한다.Here, the information for descrambling of preceding RTP packets includes an ECM including a control word, a PMT providing the PID of a TS packet including the ECM, and a TS packet providing PIDs of TS packets related to the PMT but having a preset PID. Includes PAT included in . That is, TS packets containing information for descrambling include PAT-related TS packets, PMT-related TS packets, and ECM-related TS packets.

캐싱 서버는 검출된 TS 패킷들을 포함하는 초기 RTP 패킷을 생성한다(S950).The caching server generates an initial RTP packet including the detected TS packets (S950).

초기 RTP 패킷은 페이로드에 검출된 TS 패킷들을 포함한다.The initial RTP packet includes detected TS packets in the payload.

초기 RTP 패킷은 선행 RTP 패킷들 중 첫 번째 선행 RTP 패킷의 시퀀스 번호보다 작은 값의 시퀀스 번호를 가진다. 초기 RTP 패킷은 선행 RTP 패킷들에 선행하는 TS 패킷들 중 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 RTP 패킷의 헤더의 정보를 포함할 수 있다. The initial RTP packet has a sequence number that is smaller than the sequence number of the first preceding RTP packet among preceding RTP packets. The initial RTP packet may include information of the header of the RTP packet including the TS packet corresponding to the start point of the key frame among the TS packets preceding the preceding RTP packets.

캐싱 서버는 초기 RTP 패킷 및 선행 RTP 패킷들을 캐싱 데이터로 구성한다(S960).The caching server configures the initial RTP packet and preceding RTP packets as caching data (S960).

캐싱 서버는 시퀀스 번호를 이용하여 초기 RTP 패킷이 선행 RTP 패킷들에 선행하도록 캐싱 데이터를 생성할 수 있다.The caching server can use the sequence number to generate caching data so that the initial RTP packet precedes the preceding RTP packets.

한편, 캐싱 서버는 초기 RTP 패킷과 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들을 삽입할 수 있다. 지연 RTP 패킷의 삽입은 셋톱박스의 선행 RTP 패킷들의 수신 시점과 디스크램블링 활성화 시점 간 시간간격을 줄이거나 없애기 위한 것이다. 한편, 캐싱 서버는 초기 RTP 패킷, 지연 RTP 패킷들, 및 선행 RTP 패킷들의 시퀀스 번호들이 순차적으로 증가하도록, 초기 RTP 패킷 및 지연 RTP 패킷들의 시퀀스 번호들을 설정할 수 있다.Meanwhile, the caching server may insert a preset number of delayed RTP packets between the initial RTP packet and preceding RTP packets. Insertion of delayed RTP packets is intended to reduce or eliminate the time interval between the reception of preceding RTP packets by the set-top box and the activation of descrambling. Meanwhile, the caching server may set the sequence numbers of the initial RTP packet and the delayed RTP packets so that the sequence numbers of the initial RTP packet, the delayed RTP packets, and the preceding RTP packets sequentially increase.

캐싱 서버는 캐싱 데이터를 셋톱박스에게 전송한다(S970).The caching server transmits the caching data to the set-top box (S970).

본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다.Various implementations of the systems and techniques described herein may include digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or these. It can be realized through combination. These various implementations may include being implemented as one or more computer programs executable on a programmable system. The programmable system includes at least one programmable processor (which may be a special purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. or may be a general-purpose processor). Computer programs (also known as programs, software, software applications or code) contain instructions for a programmable processor and are stored on a "computer-readable medium."

컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비일시적인(non-transitory) 매체일 수 있으며, 또한 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. These computer-readable recording media are non-volatile or non-transitory such as ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, and storage device. It may be a medium, and may further include a transitory medium such as a data transmission medium. Additionally, the computer-readable recording medium may be distributed in a computer system connected to a network, and the computer-readable code may be stored and executed in a distributed manner.

본 명세서의 흐름도/타이밍도에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 흐름도/타이밍도에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 흐름도/타이밍도는 시계열적인 순서로 한정되는 것은 아니다.In the flowchart/timing diagram of this specification, each process is described as being executed sequentially, but this is merely an illustrative explanation of the technical idea of an embodiment of the present disclosure. In other words, a person skilled in the art to which an embodiment of the present disclosure pertains may change the order described in the flowchart/timing diagram and execute one of the processes without departing from the essential characteristics of the embodiment of the present disclosure. Since the above processes can be applied in various modifications and variations by executing them in parallel, the flowchart/timing diagram is not limited to a time series order.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an illustrative explanation of the technical idea of the present embodiment, and those skilled in the art will be able to make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are not intended to limit the technical idea of the present embodiment, but rather to explain it, and the scope of the technical idea of the present embodiment is not limited by these examples. The scope of protection of this embodiment should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of rights of this embodiment.

310: 헤드엔드
320: IPTV 네트워크
330: 셋톱박스
340: 캐싱 서버
310: headend
320: IPTV network
330: Set-top box
340: Caching server

Claims (8)

채널 변경(change) 후 셋톱박스의 재생 지연을 줄이기 위한 캐싱 서버에 있어서,
복수의 채널들마다 복수의 전송 스트림(Transport Stream; TS) 패킷들을 포함하는 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 패킷들을 저장하고, 상기 RTP 패킷들의 구성 정보가 기록된 테이블을 저장하는 메모리;
셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 제1 RTP 패킷의 시퀀스 번호를 수신하는 통신부; 및
변경된 채널에 대해 저장된 RTP 패킷들로부터 상기 제1 RTP 패킷의 시퀀스 번호에 선행하는 선행 RTP 패킷들을 선별하고, 상기 테이블을 기반으로 상기 저장된 RTP 패킷들로부터 상기 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출하고, 상기 검출된 TS 패킷들을 포함하는 초기 RTP 패킷을 생성하고, 상기 초기 RTP 패킷, 상기 선행 RTP 패킷들, 및 상기 초기 RTP 패킷과 상기 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들을 캐싱 데이터로 구성하는 프로세서
를 포함하는 캐싱 서버.
In the caching server to reduce the playback delay of the set-top box after changing the channel,
A memory that stores Real-time Transport Protocol (RTP) packets including a plurality of Transport Stream (TS) packets for each of a plurality of channels, and stores a table in which configuration information of the RTP packets is recorded. ;
A communication unit that receives the sequence number of the first RTP packet among the RTP packets received by the set-top box after changing the channel; and
Selects preceding RTP packets preceding the sequence number of the first RTP packet from RTP packets stored for the changed channel, and includes information for descrambling of the preceding RTP packets from the stored RTP packets based on the table. Detecting TS packets, generating an initial RTP packet including the detected TS packets, and generating a preset number of initial RTP packets, the preceding RTP packets, and a predetermined number between the initial RTP packet and the preceding RTP packets. Processor that organizes delayed RTP packets into cached data
Caching server containing .
제1항에 있어서,
상기 선행 RTP 패킷들의 디스크램블링을 위한 정보는,
상기 선행 RTP 패킷들의 디스크램블링을 위한 제어 워드(Control Word; CW)를 포함하는 자격제어 메시지(Entitlement Control Message; ECM), 상기 ECM이 포함된 TS 패킷의 패킷 식별자(Packet Identification; PID)를 제공하는 프로그램 맵 테이블(Program Map Table; PMT), 및 상기 PMT에 관련된 TS 패킷들의 PID들을 제공하되 기 설정된 PID를 가지는 TS 패킷에 포함된 프로그램 관련 테이블(Program Association Table; PAT)을 포함하는 것인 캐싱 서버.
According to paragraph 1,
Information for descrambling of the preceding RTP packets is:
Providing an Entitlement Control Message (ECM) including a control word (CW) for descrambling of the preceding RTP packets, and a packet identifier (PID) of a TS packet including the ECM. A caching server that provides a Program Map Table (PMT) and PIDs of TS packets related to the PMT and includes a Program Association Table (PAT) included in TS packets with preset PIDs. .
제1항에 있어서,
상기 테이블은,
상기 RTP 패킷들의 시퀀스 번호들, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PMT 관련 TS 패킷 및 PAT 관련 TS 패킷을 포함하는지 여부가 기록된 것인 캐싱 서버.
According to paragraph 1,
The table is,
The caching server wherein the sequence numbers of the RTP packets and whether each RTP packet includes a key frame-related TS packet, an ECM-related TS packet, a PMT-related TS packet, and a PAT-related TS packet are recorded.
제1항에 있어서,
상기 선행 RTP 패킷들은,
적어도 하나의 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 것인 캐싱 서버.
According to paragraph 1,
The preceding RTP packets are:
A caching server that includes TS packets corresponding to the starting point of at least one key frame.
제1항에 있어서,
상기 초기 RTP 패킷은,
상기 선행 RTP 패킷들 중 첫 번째 선행 RTP 패킷의 시퀀스 번호보다 작은 값의 시퀀스 번호를 갖는 것인 캐싱 서버.
According to paragraph 1,
The initial RTP packet is,
A caching server having a sequence number smaller than the sequence number of the first preceding RTP packet among the preceding RTP packets.
제1항에 있어서,
상기 프로세서는,
상기 초기 RTP 패킷, 상기 지연 RTP 패킷들, 및 상기 선행 RTP 패킷들의 시퀀스 번호들이 순차적으로 증가하도록 설정하는 캐싱 서버.
According to paragraph 1,
The processor,
A caching server that sets sequence numbers of the initial RTP packet, the delayed RTP packets, and the preceding RTP packets to increase sequentially.
제1항에 있어서,
상기 프로세서는,
상기 통신부를 통해 상기 캐싱 데이터를 상기 셋톱박스에게 전송하는 캐싱 서버.
According to paragraph 1,
The processor,
A caching server that transmits the caching data to the set-top box through the communication unit.
채널 변경(change) 후 셋톱박스의 재생 지연을 줄이기 위한 컴퓨터 구현 방법에 있어서,
복수의 채널들마다 복수의 전송 스트림(Transport Stream; TS) 패킷들을 포함하는 실시간 전송 프로토콜(Real-time Transport Protocol; RTP) 패킷들, 및 상기 RTP 패킷들의 구성 정보가 기록된 테이블을 저장하는 단계;
셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 제1 RTP 패킷의 시퀀스 번호를 수신하는 단계;
변경된 채널에 대해 저장된 RTP 패킷들로부터 상기 제1 RTP 패킷의 시퀀스 번호에 선행하는 선행 RTP 패킷들을 선별하는 단계;
상기 테이블을 기반으로 상기 저장된 RTP 패킷들로부터 상기 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출하는 단계;
상기 검출된 TS 패킷들을 포함하는 초기 RTP 패킷을 생성하는 단계; 및
상기 초기 RTP 패킷, 상기 선행 RTP 패킷들, 및 상기 초기 RTP 패킷과 상기 선행 RTP 패킷들 사이에 기 설정된 개수의 지연 RTP 패킷들을 캐싱 데이터로 구성하는 단계
를 포함하는 방법.
In a computer implementation method for reducing playback delay of a set-top box after changing channels,
Storing a table in which Real-time Transport Protocol (RTP) packets, including a plurality of Transport Stream (TS) packets for each of a plurality of channels, and configuration information of the RTP packets are recorded;
Receiving, by the set-top box, a sequence number of a first RTP packet among RTP packets received after changing the channel;
Selecting preceding RTP packets preceding the sequence number of the first RTP packet from RTP packets stored for the changed channel;
detecting TS packets containing information for descrambling of the preceding RTP packets from the stored RTP packets based on the table;
generating an initial RTP packet including the detected TS packets; and
Configuring the initial RTP packet, the preceding RTP packets, and a preset number of delayed RTP packets between the initial RTP packet and the preceding RTP packets as caching data.
How to include .
KR1020220180634A 2022-12-21 2022-12-21 Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof Pending KR20240098670A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220180634A KR20240098670A (en) 2022-12-21 2022-12-21 Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220180634A KR20240098670A (en) 2022-12-21 2022-12-21 Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof

Publications (1)

Publication Number Publication Date
KR20240098670A true KR20240098670A (en) 2024-06-28

Family

ID=91669263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220180634A Pending KR20240098670A (en) 2022-12-21 2022-12-21 Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof

Country Status (1)

Country Link
KR (1) KR20240098670A (en)

Similar Documents

Publication Publication Date Title
US9338405B2 (en) Scrambled digital data item
CA2487319C (en) Seamless switching between multiple pre-encrypted video files
US8655156B2 (en) Auxiliary audio transmission for preserving synchronized playout with paced-down video
JP6317872B2 (en) Decoder for synchronizing the rendering of content received over different networks and method therefor
US20090022154A1 (en) Reception device, reception method, and computer-readable medium
JP6103940B2 (en) Signal transmission method for broadcasting video content, recording method and recording apparatus using the signal transmission
US20080137850A1 (en) Method and system for a generic key packet for mpeg-2 transport scrambling
US20090132825A1 (en) Apparatus and method for transmitting secure and/or copyrighted digital video broadcasting data over internet protocol network
JP2009527148A (en) System and method for providing media content over a communication network
US20190246148A1 (en) Method and system for scrambling broadcast with low latency
US8649514B2 (en) On-demand switched content encryption
JP6255271B2 (en) Receiving device, receiving method, transmitting device, and transmitting method
US8509435B2 (en) Method and system for a transport single key change point for all package identifier channels
KR102804370B1 (en) Method And Apparatus for Reducing Playback Delay of Video Streaming Service
KR20240098670A (en) Caching Server for Reducing Playback Delay of Set-Top Box After Change of Real-Time Streaming Channel, and Operation Method Thereof
KR20240098669A (en) Caching Server for Reducing Playback Delay of Set-Top Box After Channel Change, and Operation Method Thereof
US20150172734A1 (en) Multi-angle view processing apparatus
KR20240177045A (en) Caching Server for Providing Caching Data According to Channel Change of Set-Top Box, and Operation Method Thereof
JP6319828B1 (en) Client, system, method and program for establishing IP broadcast session
US20250126319A1 (en) Substitution method of at least one portion of a video stream and video receiver implementing the method
Joo et al. A New Approach for Rapid Channel Switching between Real-time CAS Channels using a Cache Server in a Commercial IPTV System
Yun et al. A synchronization and T-STD model for 3D video distribution and consumption over hybrid network

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20221221

PG1501 Laying open of application