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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2183—Cache memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
- H04N21/23473—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by pre-encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/6437—Real-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
Description
본 발명의 실시예들은 실시간 스트리밍 채널의 변경 후 셋톱박스의 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법, 특히 채널 변경 직후 디스크램블링 준비로 인한 재생 지연을 줄이기 위한 캐싱 서버 및 그의 동작 방법에 관한 것이다.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
헤드엔드(110)는 콘텐츠 제공장치로서, IPTV 백본 망(120), 라우터(130), 및 스위치(140)를 이용하여 복수의 셋톱박스들에게 모든 TV 채널의 콘텐츠(contents)를 멀티캐스트 방식으로 전송한다.The
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-
한편, 셋톱박스(150)는 사용자로부터 채널 변경 신호를 수신할 때, 변경된 채널의 세션 연결을 수립하고, 방송 스트림을 이미지, 오디오 또는 데이터로 변환하는 데 소요되는 시간으로 인해, 변경된 채널의 방송 스트림을 곧바로 출력하기 어려울 수 있다. 즉, 채널 변경에 따른 재생 지연이 존재한다. Meanwhile, when the set-
구체적으로, 채널 변경에 따른 재생 지연은 세션 연결 지연, 버퍼링 지연, 및 변환 지연을 포함한다. 세션 연결 지연은 셋톱박스(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-
재생 지연 중 버퍼링 지연을 줄이기 위해, 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
하지만, 캐싱 서버 기반 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-
제한수신 시스템은 디지털 방송에서 시청 권한을 가입자 별로 조정하기 위한 시스템이다. 제한수신 시스템이 적용된 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-
도 2는 ECM 기반 제한수신 시스템을 개략적으로 나타낸 구성도이다.Figure 2 is a configuration diagram schematically showing an ECM-based conditional access system.
도 2를 참조하면, 헤드엔드(220) 내 제어워드 생성기(224)는 제어워드를 생성한다. 제어워드는 스크램블링 및 디스크램블링에 사용된다.Referring to FIG. 2, the
스크램블러(222)는 제어워드를 이용하여 원본 데이터 스트림(210)을 스크램블링한다. The
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
헤드엔드(220)는 스크램블링된 데이터 스트림 및 ECM을 이용하여 스크램블링된 전송 스트림(Transport Stream, TS)을 구성하고, 스크램블링된 전송 스트림을 셋톱박스(230)에게 전송한다. 구체적으로, TS 패킷의 페이로드가 스크램블링된다.The
셋톱박스(230)는 스크램블링된 전송 스트림으로부터 ECM을 검출한다. 구체적으로, TS 패킷의 헤더로부터 ECM이 검출된다. 셋톱박스(230) 내 ECM 복호화기(234)는 ECM을 해독함으로써, 제어워드를 추출한다. Set-
디스크램블러(232)는 추출된 제어워드를 이용하여 스크램블링된 데이터 스트림을 디스크램블링함으로써, 원본 데이터 스트림(210)과 동일한 복원 데이터 스트림(240)을 얻을 수 있다. The
이후, 셋톱박스(230)는 디스크램블링된 데이터 스트림(240)을 디코딩하고, 렌더링하여 사용자에게 출력한다.Afterwards, the set-
이처럼, 제한수신 시스템에 따르면, 가입자별 시청 권한을 제어할 수 있다.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-
구체적으로, 캐싱 서버(160)는 채널 변경 후 수신한 방송 스트림을 스크램블링된 상태로 버퍼에 저장한다. 버퍼링 지연을 줄이기 위해, 캐싱 서버(160)는 셋톱박스(150)의 채널 변경 이전의 캐싱 데이터를 셋톱박스(150)에게 제공한다. 하지만, 캐싱 데이터도 스크램블링된 상태이므로, 캐싱 데이터를 디스크램블링하기 위해, 셋톱박스(150)는 캐싱 데이터 내 ECM을 검출해야 한다. 특히, 셋톱박스(150)는 ECM의 위치를 탐색하기 위한 정보를 먼저 탐색하는데 상당한 시간이 소요된다. 이후, 셋톱박스(150)는 ECM을 이용하여 제어워드를 검출한다. 셋톱박스(150)는 제어워드를 이용하여 디스크램블러를 활성화하고, 활성화된 디스크램블러는 캐싱 데이터를 디스크램블링한다. Specifically, the
여기서, 셋톱박스는 디스크램블링 비활성화로 인해 캐싱 데이터의 앞부분을 재생하지 못하고, 캐싱 데이터의 나머지 부분을 디스크램블링 활성화 시점까지 저장한 채로 대기해야 한다. 즉, 디스크램블링 활성화 시점까지 재생 지연이 발생한다. 종래 기술에 따르면, 캐싱 서버(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
버퍼링 지연과 함께 셋톱박스의 디스크램블링 준비 시간을 줄이기 위해, 본 발명의 일 실시예에 따른 캐싱 서버는 저장된 방송 스트림으로부터 디스크램블링을 위한 정보를 미리 검출하고, 검출된 디스크램블링 정보를 캐싱 데이터의 앞쪽에 포함시켜 제공한다. 셋톱박스는 캐싱 데이터 내 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
헤드엔드(310)는 방송 스트림의 형태로 콘텐츠를 제공하는 장치이다.The
헤드엔드(310)는 라우터들(미도시) 및 스위치들(미도시)을 이용하여 복수의 셋톱박스들에게 멀티캐스트 방식으로 데이터를 전송할 수 있다. The
헤드엔드(310)는 RTP(Real-Time Transport Stream) 방식을 이용할 수 있다. 헤드엔드(310)는 모든 TV 채널들의 MPEG-2 TS 패킷들을 RTP 패킷화하고, RTP 패킷들을 기반으로 IP(Internet Protocol) 패킷들을 생성하고, IP 패킷들을 셋톱박스(330)에게 전송한다. The
도 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
구체적으로, 헤드엔드(310)는 셋톱박스(330)에게 전송하는 방송 스트림을 스크램블링한다. 헤드엔드(310)는 제어워드를 이용하여 방송 스트림을 스크램블링하고, 제어워드 정보를 포함하는 ECM을 생성하고, 스크램블링된 방송 스트림 및 ECM을 TS 패킷들로 구성하고, TS 패킷들로부터 RTP 패킷들을 생성하고, RTP 패킷들을 셋톱박스(330)에게 전송한다. 헤드엔드(310)는 복수의 채널들 각각에 대해 RTP 패킷들을 전송한다. Specifically, the
셋톱박스(330)는 스위치들 및 라우터들을 통해 IPTV 네트워크(320)에 연결되고, 헤드엔드(310)의 멀티캐스트 전송에 따라 TV 채널의 RTP 패킷들을 수신하고, RTP 패킷들 내 스크램블링된 TS 패킷들을 디스크램블링, 디코딩 및 렌더링하여 사용자 인터페이스를 통해 오디오, 이미지, 비디오 또는 데이터 등을 출력한다.The set-
구체적으로, 셋톱박스(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-
캐싱 서버(340)는 셋톱박스(330)의 버퍼링 지연을 줄이기 위해, 캐싱 데이터를 미리 생성하고, 셋톱박스(330)의 요청에 따라 캐싱 데이터를 제공한다. 특히, 캐싱 서버(340)는 셋톱박스(330)의 디스크램블링 활성화 시간을 단축시키기 위해 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 생성할 수 있다. In order to reduce the buffering delay of the set-
구체적으로, 캐싱 서버(340)는 복수의 채널들의 스크램블링된 TS 패킷들을 포함하는 RTP 패킷들을 저장한다. 채널들 각각에 대해 캐싱 서버(340)는 기 설정된 양의 RTP 패킷들을 저장한다. Specifically, the
캐싱 서버(340)는 채널들마다 RTP 패킷 내 스크램블링된 TS 패킷들로부터 키 프레임의 시작 지점에 대응되는 TS 패킷과, 디스크램블링 관련 TS 패킷들을 검출한다. 여기서, 키 프레임은 거의 압축이 되지 않은 프레임으로서, 주기적으로 또는 장면 전환 시점에서 화질을 개선하는 데 기여하는 프레임이다. 키 프레임은 I 프레임 또는 IDR 프레임 중 하나일 수 있다. 키 프레임의 시작 지점에 대응되는 TS 패킷은 키 프레임 데이터를 포함하는 TS 패킷들 중 키 프레임의 시작 지점에 해당하는 TS 패킷을 가리킨다. 디스크램블링 관련 TS 패킷들은 PAT 관련 TS 패킷, PMT 관련 TS 패킷, 및 ECM 관련 TS 패킷을 포함한다. The
캐싱 서버(340)는 TS 패킷들의 구성 정보를 분석하고, TS 패킷들의 구성 정보가 기록된 테이블을 생성한다. 구체적으로, 테이블은 각 RTP 패킷의 시퀀스 번호, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PAT 관련 TS 패킷 및 PMT 관련 TS 패킷을 포함하는지 여부가 기록된 테이블이다.The
캐싱 서버(340)는 기 작성된 테이블을 기반으로 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 생성하고, 캐싱 데이터를 셋톱박스(330)에게 제공한다.The
이하에서는, IPTV 시스템의 채널 변경에 따른 재생 지연을 줄이기 위한 동작을 설명한다.Below, an operation to reduce playback delay due to channel change in the IPTV system will be described.
셋톱박스(330)는 현재 채널 상에서 수신되는 RTP 패킷 내 TS 패킷들을 오디오, 비디오, 또는 데이터로 변환한다. The set-
이후, 셋톱박스(330)는 사용자가 원하는 음성과 영상을 제공하는 채널로의 채널 변경 신호를 입력 받는다. 셋톱박스(330)는 헤드엔드(310)의 수신한 시스템 정보(System Information) 데이터베이스로부터 변경 채널 주소 정보를 획득한다. Afterwards, the set-
셋톱박스(330)는 변경 채널 주소 정보에 대응하는 RTP 패킷들을 수신한다. The set-
셋톱박스(330)는 변경 채널의 RTP 패킷들 중 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 캐싱 서버(340)에게 전송한다. 도 3에서, 셋톱박스(330)는 2-2 RTP 패킷을 처음으로 수신하는 것으로 가정한다. 셋톱박스(330)는 2-2 RTP 패킷의 시퀀스 번호를 캐싱 서버(340)에게 전송한다.The set-
제1 RTP 패킷의 시퀀스 번호를 수신한 때, 캐싱 서버(340)는 변경된 채널에 대해 저장된 RTP 패킷들로부터 제1 RTP 패킷에 선행하는 선행 RTP 패킷들을 선별한다. Upon receiving the sequence number of the first RTP packet, caching
이후, 캐싱 서버(340)는 저장된 RTP 패킷들의 구성 정보가 기록된 테이블을 기반으로, 선행 RTP 패킷들에 선행하는 RTP 패킷들 중 디스크램블링 관련 TS 패킷을 포함하는 디스크램블링 관련 RTP 패킷들을 식별하고, 디스크램블링 관련 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다. Thereafter, the
캐싱 서버(340)는 검출된 디스크램블링 관련 TS 패킷들을 기반으로 초기 RTP 패킷을 생성한다. 초기 RTP 패킷은 초기 RTP 헤더와 초기 RTP 페이로드를 포함하고, 초기 RTP 페이로드는 검출된 디스크램블링 관련 TS 패킷들을 포함한다. 나아가, 초기 RTP 페이로드는 RTP 패킷당 TS 패킷들의 개수를 위해 널(NULL) 패킷들을 더 포함할 수 있다.The
캐싱 서버(340)는 초기 RTP 패킷 및 선행 RTP 패킷들을 포함하는 캐싱 데이터를 생성한다. 초기 RTP 패킷과 선행 RTP 패킷들은 순차적으로 증가하는 시퀀스 번호들을 갖는다. 도 3에서, 캐싱 데이터는 2-1 RTP 패킷으로 표현된다.
캐싱 서버(340)는 캐싱 데이터를 셋톱박스(330)에게 전송한다. 빠른 전송을 위해, 캐싱 서버(340)는 셋톱박스(330)에게 캐싱 데이터를 유니캐스트 방식으로 전송할 수 있다.The
셋톱박스(330)는 캐싱 데이터로부터 ECM을 검출한다. 캐싱 데이터의 가장 앞부분에 디스크램블링 관련 TS 패킷들이 포함되어 있으므로, 셋톱박스(330)는 복수의 RTP 패킷들로부터 디스크램블링 정보를 검출할 필요 없이, 캐싱 데이터로부터 ECM을 쉽고 빠르게 검출할 수 있다. Set-
셋톱박스(330)는 ECM으로부터 제어워드를 획득하고, 제어워드를 이용하여 셋톱박스(330) 내 디스크램블러의 설정을 초기화함으로써, 디스크램블링을 활성화한다. 셋톱박스(330)는 디스크램블러로부터 디스크램블링 활성화 신호를 수신하면, 선행 RTP 패킷들 및 헤드엔드로부터 수신한 멀티캐스팅 데이터를 디스크램블러에게 순차적으로 전송한다. 디스크램블러는 제어워드를 이용하여 선행 RTP 패킷들 내 TS 패킷들을 디스크램블링한다. 도 3에서, 디스크램블러는 2-1 RTP 패킷과 2-2 RTP 패킷을 순차적으로 디스크램블링한다. 선행 RTP 패킷들 및 멀티캐스팅 데이터는 디스크램블링, 디코딩 및 렌더링을 통해 재생된다.The set-
요약하면, 캐싱 서버(340)는 셋톱박스(330)가 ECM을 검출하기 쉽도록 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 제공함으로써, 버퍼링 지연을 줄임과 함께 셋톱박스의 디스크램블링 활성화 시점을 앞당길 수 있다.In summary, the
도 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
통신부(510)는 IPTV 네트워크 및 셋톱박스에 대한 액세스를 제공한다. 캐싱 서버(500)는 통신부(510)를 통해 다른 장치들과 통신할 수 있다.
통신부(510)는 셋톱박스가 채널 변경 후 수신한 RTP 패킷들의 정보를 수신한다. 특히, 통신부(510)는 셋톱박스가 변경된 채널 상에서 수신한 RTP 패킷들 중 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 수신한다.The
메모리(520)는 프로세서(530)로 하여금 본 발명의 일 실시예에 따른 캐싱 데이터 생성 방법을 수행하도록 하는 프로그램을 저장할 수 있다. The
메모리(520)는 단일 메모리 또는 복수의 메모리들일 수 있다. 메모리(520)는 휘발성 메모리 및 비휘발성 메모리 중 적어도 하나를 포함할 수 있다.
메모리(520)는 복수의 채널들마다 TS 패킷들을 포함하는 RTP 패킷들을 저장한다. 나아가, 메모리(520)는 채널별로 RTP 패킷들의 구성 정보가 기록된 테이블을 저장한다. 테이블에는 각 RTP 패킷의 시퀀스 번호, 및 각 RTP 패킷이 키 프레임 관련 TS 패킷, ECM 관련 TS 패킷, PAT 관련 TS 패킷 및 PMT 관련 TS 패킷을 포함하는지 여부가 기록된다.The
도 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
테이블(610)은 RTP 패킷들의 시퀀스 번호들(612), 제1 참조 오프셋들(614), 및 RTP 패킷들의 구성 정보(616)를 나타낸다.Table 610 shows
패킷 저장부(620)는 제2 참조 오프셋들(622) 및 RTP 패킷들(624)을 저장한다.The
RTP 패킷들의 시퀀스 번호들(612)은 캐싱 서버에서 수신된 RTP 패킷들의 시퀀스 번호들을 포함한다. RTP 패킷들의 시퀀스 번호들(612)은 수신 순서대로 설정된다. RTP 패킷들의 시퀀스 번호들(612)의 불연속이 발생한 지점은 RTP 패킷이 손실된 지점이다. Sequence numbers of
제1 참조 오프셋들(614)과 제2 참조 오프셋들(622)은 메모리(520) 내 저장 위치를 나타낸다. First reference offsets 614 and second reference offsets 622 represent storage locations within
RTP 패킷들의 구성 정보(616)는 각 RTP 패킷이 IDR 프레임 관련 TS 패킷을 포함하는지 여부, ECM 관련 TS 패킷을 포함하는지 여부, PAT 관련 TS 패킷을 포함하는지 여부, 및 PMT 관련 TS 패킷을 포함하는지 여부에 관한 정보를 포함한다.The
다시 도 5를 참조하면, 메모리(520)는 키 프레임 관련 TS 패킷들 및 디스크램블링 관련 TS 패킷들을 미리 저장할 수 있다.Referring again to FIG. 5, the
프로세서(530)는 적어도 하나의 명령어들을 실행할 수 있는 적어도 하나의 코어를 포함할 수 있다. 프로세서(530)는 메모리(520)에 저장된 명령어들을 실행할 수 있다. 프로세서(530)는 단일 프로세서 또는 복수의 프로세서들일 수 있다. The
프로세서(530)는 셋톱박스가 수신한 제1 RTP 패킷에 대한 선행 RTP 패킷들과, 선행 RTP 패킷들의 디스크램블링 관련 TS 패킷들을 포함하는 초기 RTP 패킷을 포함하는 캐싱 데이터를 생성하고, 캐싱 데이터를 셋톱박스에게 전송한다.The
구체적으로, 프로세서(530)는 셋톱박스가 채널 변경 후 수신한 RTP 패킷들 중 가장 처음으로 수신한 제1 RTP 패킷의 시퀀스 번호를 수신한다.Specifically, the
제1 RTP 패킷의 시퀀스 번호를 수신한 때, 프로세서(530)는 변경된 채널에 대해 저장된 RTP 패킷들로부터 제1 RTP 패킷에 선행하는 선행 RTP 패킷들을 선별한다. Upon receiving the sequence number of the first RTP packet,
구체적으로, 프로세서(530)는 변경된 채널에 대해 저장된 RTP 패킷들의 구성 정보가 기록된 테이블에 기초하여, 제1 RTP 패킷에 선행하는 RTP 패킷들 중 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷들을 식별한다. 여기서, 키 프레임 관련 TS 패킷은 키 프레임의 시작 지점에 대응되는 TS 패킷을 가리킨다. 프로세서(530)는 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷들 중 하나의 RTP 패킷과, 상기 하나의 RTP 패킷과 제1 RTP 패킷 사이의 RTP 패킷들을 선행 RTP 패킷들로서 선별한다. Specifically, the
캐싱 데이터의 디코딩 및 렌더링 단위를 위해, 선행 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
이후, 프로세서(530)는 저장된 RTP 패킷들의 구성 정보가 기록된 테이블을 기반으로, 저장된 RTP 패킷들로부터 선행 RTP 패킷들의 디스크램블링을 위한 정보를 포함하는 TS 패킷들을 검출한다. Thereafter, the
구체적으로, 프로세서(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
프로세서(530)는 초기 RTP 헤더를 생성하고, 디스크램블링 관련 TS 패킷들을 포함하는 초기 RTP 페이로드를 생성하고, 초기 RTP 헤더와 초기 RTP 페이로드를 결합함으로써 초기 RTP 패킷을 생성한다. 여기서, 프로세서(530)는 저장된 테이블에 기초하여, 선행 RTP 패킷들에 선행하는 RTP 패킷들 중 키 프레임 관련 TS 패킷을 포함하는 RTP 패킷을 식별하고, 식별된 RTP 패킷의 헤더를 초기 RTP 헤더로 이용할 수 있다. The
프로세서(530)는 초기 RTP 패킷이 선행 RTP 패킷들에 선행하도록 캐싱 데이터를 구성할 수 있다. 프로세서(530)는 상기 식별된 RTP 패킷의 헤더의 시퀀스 번호를 선행 RTP 패킷들의 시퀀스 번호에 앞서도록 조정한다. 이에 따라, 초기 RTP 패킷은 선행 RTP 패킷들의 시퀀스 번호들보다 작은 시퀀스 번호를 가지며, 선행 RTP 패킷들에 선행하는 TS 패킷들 중 키 프레임의 시작 지점에 대응되는 TS 패킷을 포함하는 RTP 패킷의 헤더의 정보를 포함한다.
이후, 프로세서(530)는 캐싱 데이터를 셋톱박스에게 전송한다.Afterwards, the
한편, 본 발명의 일 실시예에 따르면, 프로세서(530)는 기 설정된 개수 또는 기 설정된 시간구간에 대응되는 지연 RTP 패킷들을 초기 RTP 패킷과 선행 RTP 패킷들 사이에 삽입할 수 있다. 이는 도 8에서 자세히 설명한다.Meanwhile, according to one embodiment of the present invention, the
이처럼, 캐싱 서버(500)는 헤드엔드로부터 수신한 RTP 패킷들을 단순히 셋톱박스에게 전달하는 것이 아니라, RTP 패킷들로부터 디스크램블링 관련 TS 패킷들을 추출하고, 디스크램블링 관련 TS 패킷들을 포함하는 캐싱 데이터를 셋톱박스에게 전송함으로써, 셋톱박스로 하여금 디스크램블링 관련 TS 패킷들을 검출하는 데 소요되는 시간을 줄일 수 있다. 이로써, 셋톱박스의 디스크램블링 활성화 시점이 앞당겨지고, 재생 지연이 줄어들 수 있다.In this way, the
도 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
도 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,
캐싱 서버는 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
캐싱 서버는 초기 RTP 페이로드(740)에 초기 RTP 헤더를 결합함으로써, 초기 RTP 패킷(750)을 생성한다.The caching server generates an
여기서, 초기 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
이때, 캐싱 서버는 초기 RTP 패킷(750)이 선행 RTP 패킷들에 선행하도록 캐싱 데이터(760)를 구성할 수 있다.At this time, the caching server may configure the
캐싱 데이터(760)의 첫 번째 RTP 패킷의 시퀀스 번호는 10번이고, 마지막 RTP 패킷의 시퀀스 번호는 n번이다. 여기서, n은 24일 수 있다. n+1번 RTP 패킷은 제1 RTP 패킷이 된다.The sequence number of the first RTP packet of the
캐싱 서버는 전술한 과정을 통해 생성된 캐싱 데이터(760)를 셋톱박스에게 전송한다.The caching server transmits the
셋톱박스는 캐싱 데이터(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
한편, 디스크램블링 활성화 속도가 빠른 경우, 셋톱박스가 초기 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
반면, 디스크램블링 활성화 속도가 느린 경우, 디스크램블러가 활성화 시점이 셋톱박스가 초기 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
도 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
캐싱 서버는 디스크램블러가 활성화 시점과 셋톱박스가 초기 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
다른 실시예에서, 캐싱 서버는 지연 RTP 패킷들을 기 설정된 시간구간에 대응되는 개수만큼 캐싱 데이터(810)에 추가할 수 있다.In another embodiment, the caching server may add the number of delayed RTP packets to the
지연 RTP 패킷들(812)의 삽입에 따라, 캐싱 서버는 지연 RTP 패킷들(812)의 시퀀스 번호들을 설정하고, 초기 RTP 패킷의 시퀀스 번호를 조정한다. 초기 RTP 패킷의 조정된 시퀀스 번호는 8번이고, 지연 RTP 패킷들(812)의 시퀀스 번호들은 9번 및 10번이다.According to the insertion of the delayed
셋톱박스는 지연 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
도 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)
복수의 채널들마다 복수의 전송 스트림(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 .
상기 선행 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. .
상기 테이블은,
상기 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.
상기 선행 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.
상기 초기 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.
상기 프로세서는,
상기 초기 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.
상기 프로세서는,
상기 통신부를 통해 상기 캐싱 데이터를 상기 셋톱박스에게 전송하는 캐싱 서버.According to paragraph 1,
The processor,
A caching server that transmits the caching data to the set-top box through the communication unit.
복수의 채널들마다 복수의 전송 스트림(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 .
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) |
-
2022
- 2022-12-21 KR KR1020220180634A patent/KR20240098670A/en active Pending
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 |