KR102447259B1 - 캐싱 데이터 제공 방법 및 시스템 - Google Patents

캐싱 데이터 제공 방법 및 시스템 Download PDF

Info

Publication number
KR102447259B1
KR102447259B1 KR1020200149461A KR20200149461A KR102447259B1 KR 102447259 B1 KR102447259 B1 KR 102447259B1 KR 1020200149461 A KR1020200149461 A KR 1020200149461A KR 20200149461 A KR20200149461 A KR 20200149461A KR 102447259 B1 KR102447259 B1 KR 102447259B1
Authority
KR
South Korea
Prior art keywords
auxiliary information
caching
channel
information
value
Prior art date
Application number
KR1020200149461A
Other languages
English (en)
Other versions
KR20220063512A (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 KR1020200149461A priority Critical patent/KR102447259B1/ko
Priority to PCT/KR2021/015001 priority patent/WO2022103017A1/ko
Publication of KR20220063512A publication Critical patent/KR20220063512A/ko
Application granted granted Critical
Publication of KR102447259B1 publication Critical patent/KR102447259B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/2362Generation or processing of Service Information [SI]
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)

Abstract

캐싱 데이터 제공 방법 및 시스템을 개시한다.
본 실시예는 캐싱 서버에서 스트림에 CAS(Conditional Access System)가 적용되어 스크램블된 값들로 인해 TS 패킷의 페이로드 확인이 불가능할 때, 셋탑 박스로부터 주기적 또는 비주기적으로 미리 수신된 보조 정보 또는 서버 자체적으로 미리 추출한 보조 정보를 기반으로, 스크램블링된 서비스 스트림에 대하여 디스크램블링 과정 없이필요한 구간만큼을 추출한 캐싱 데이터를 생성하여 제공하도록 하는 캐싱 데이터 제공 방법 및 시스템을 제공한다.

Description

캐싱 데이터 제공 방법 및 시스템{Method And System for Providing Caching Data}
본 발명의 일 실시예는 캐싱 데이터 제공 방법 및 시스템에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
일반적인 디지털 케이블방송 네트워크는 크게 지역 케이블 방송국과 가입자 측을 케이블 네트워크가 연결하고 있는 구조로 이루어져 있다.
가입자 측의 장비는 케이블 모뎀과 MPEG(Moving Picture Experts Group) 디코더를 포함하는 셋탑 박스와 TV 등을 포함한다. 지역 케이블 방송국은 방송 채널 정보를 송신하는 SI(System Information) 서버, CA(Certificate Authority) 서버, CMTS(Cable Modem Termination System), 디지털 방송 서버, 방송용 헤드엔드 등의 장치를 포함한다.
디지털 케이블 방송 네트워크를 이용하여 사용자가 채널을 변경하는 방법은 다음과 같다.
셋탑 박스는 사용자가 원하는 음성과 영상을 시청하기 위하여 사용자가 채널을 먼저 선택한다. 셋탑 박스는 사용자가 선택한 채널의 주파수, 음성 및 영상에 해당하는 PID(Packet Identifier)를 헤드엔드에서 전송하는 PAT(Program Association Table), PMT(Program Map Table)를 파싱해서 알아낸다. 셋탑 박스는 PID를 획득한 후 방송용 헤드엔드에서 전송되는 방송 데이터 중 획득된 PID와 일치하는 데이터만을 디코딩하여 사용자에게 디스플레이한다.
셋탑 박스는 입력받은 채널에 대응하는 주파수 혹은 주소를 헤드엔드에서 전송하는 SI(System Information) 데이터베이스를 이용하여 검색한다. 셋탑 박스는 검색된 주파수/주소로 튜닝/Join을 수행한 후 튜닝/Join된 주파수/주소를 이용하여 수신되는 데이터 중 PAT와 PMT 정보를 필터링한다.
셋탑 박스는 필터링한 PAT와 PMT를 파싱하여 PAT와 PMT에 포함되어 있는 PID를 추출한다. 셋탑 박스는 PID를 포함하는 데이터만을 MPEG 디코더를 이용하여 디코딩한 후 디스플레이한다.
채널을 변경하기 위하여 셋탑 박스는 채널 변경 요청받은 채널에 따른 주파수/주소를 검색한 후 튜닝/Join 과정, PAT와 PMT의 필터링 및 파싱 과정을 모두 수행하여야 하므로 채널 변환까지 소요되는 시간이 길어지는 문제가 있다.
또한 서비스에 CAS(Conditional Access System)가 적용되어 서비스 스트림이 스크램블링 되어 있는 경우, 특정 정보를 이용한 서비스를 디스크램블링 이전에는 이용할 수 없는 경우도 발생한다.
본 실시예는 캐싱 서버에서 스트림에 CAS(Conditional Access System)가 적용되어 스크램블된 값들로 인해 TS 패킷의 페이로드 확인이 불가능할 때, 셋탑 박스로부터 주기적 또는 비주기적으로 미리 수신된 보조 정보 또는 서버 자체적으로 미리 추출한 보조 정보를 기반으로, 스크램블링된 서비스 스트림에 대하여 디스크램블링 과정 없이필요한 구간만큼을 추출한 캐싱 데이터를 생성하여 제공하도록 하는 캐싱 데이터 제공 방법 및 시스템을 제공하는 데 목적이 있다.
본 실시예의 일 측면에 의하면, 미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신하고, 상기 스트림을 디스크램블(Descramble)하여 보조 정보를 생성하고, 상기 보조 정보를 주기적 또는 비주기적으로 전송하는 셋탑 박스(STB); 및 상기 셋탑 박스로부터 상기 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 저장하다가 상기 셋탑 박스로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 상기 보조 정보 값을 참조하여 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 상기 셋탑 박스의 캐싱 데이터 응답으로 전송하는 캐싱 서버;를 포함하는 것을 특징으로 하는 캐싱 데이터 제공 시스템을 제공한다.
본 실시예의 다른 측면에 의하면, 외부서버로부터 CAS 해제 키값을 수신하는 CAS 해제키 수신부; 미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신하고, 상기 CAS 해제 키값을 이용하여 상기 스트림을 디스크램블(Descramble)하는 CAS 해제부; 상기 디스크램블한 정보로부터 보조 정보를 추출하는 보조 정보 추출부; 상기 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 보조 정보 DB에 저장하는 보조정보 업데이트 제어부; 및 상기 셋탑 박스로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 상기 보조 정보를 참조하여 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 상기 셋탑 박스의 캐싱 데이터 요청에 대한 응답으로 전송하는 캐싱 데이터 생성 모듈을 포함하는 것을 특징으로 하는 캐싱 서버를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 캐싱 서버에서 스트림에 CAS의 스크램블된 값들로 인해 TS 패킷의 페이로드 확인이 불가능할 때, 셋탑 박스로부터 주기적 또는 비주기적으로 수신된 보조 정보 또는 서버 자체적으로 사전에 추출한 보조 정보를 기반으로, 캐싱 데이터 생성시 서비스 스트림에 대한 디스크램블링 과정 없이 필요한 구간만큼을 추출한 캐싱 데이터를 생성하여 제공할 수 있는 효과가 있다.
본 실시예에 의하면, 캐싱 서버가 CAS가 해제된 정보를 테이블화하여 저장하고 있으므로, 서버측 입장에서 계산 복잡도를 줄일 수 있고, CAS가 설정된 정보를 처리할 수 있는 효과가 있다.
도 1은 캐싱 서버를 이용하여 스트림 서비스를 제공하는 구조를 나타낸 도면이다.
도 2는 캐싱 서버를 이용하여 고속 채널 전환 서비스를 제공하는 구조를 나타낸 도면이다.
도 3은 스트림 서비스를 제공하는 캐싱 서버와 셋탑 박스를 나타낸 도면이다.
도 4는 제1 실시예에 따른 셋탑 박스에서 추출한 보조 정보를 이용하여 캐싱 데이터를 제공하는 구조를 나타낸 도면이다.
도 5는 제2 실시예에 따른 캐싱 서버에서 자체적으로 추출한 보조 정보를 이용하여 캐싱 데이터를 제공하는 구조를 나타낸 도면이다.
도 6a는 캐싱 서버에서 보조 정보를 이용하여 캐싱 데이터를 추출하는 방법을 나타낸 예시 도면이다.
도 6b는 캐싱 서버에서 보조 정보를 이용하여 캐싱 데이터를 추출하는 방법을 나타낸 다른 예시 도면이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 캐싱 서버를 이용하여 스트림 서비스를 제공하는 구조를 나타낸 도면이다.
셋탑 박스(110)는 미디어 서비스 네트워크로부터 서비스 스트림을 수신하여 출력한다. 셋탑 박스(110)는 캐싱 클라이언트와 응용 시스템을 포함한다. 셋탑 박스(110)는 응용 시스템을 이용하여 서비스 스트림을 수신한다. 셋탑 박스(110)는 캐싱 클라이언트를 이용하여 캐싱 서버(120)로 캐싱 데이터 리퀘스트(Request)를 전송하고, 리퀘스트(Request)에 대응하는 리스폰스(Response)를 수신한다.
셋탑 박스(110)는 고속으로 데이터를 처리하거나 복구하기 위해서 여유 시간 내에 캐싱 서버(120)로부터 수신된 정보를 이용하여 기 저장된 정보를 대체하여 사용한다.
셋탑 박스(110)는 미디어 서비스 네트워크로부터 서비스 스트림을 수신하다가 리모컨으로부터 채널 전환 신호(1번 채널 → 2번 채널)를 입력받는다. 셋탑 박스(110)는 채널 전환 신호에 대응하는 전환 채널 주소 정보(2번 채널)를 미디어 서비스 네트워크로 요청한 후 미디어 서비스 네트워크로부터 전환 채널 주소 정보에 대응하는 전환 채널 스트림 데이터(2번 채널)를 수신한다. 예를 들어서, 일반적으로 셋탑 박스(110)는 채널 전환 신호(1번 채널 → 2번 채널)를 입력받고, 채널 전환 신호(2번 채널)에 대응하는 서비스 스트림 중 첫번째 출력 프레임(일반적으로 I 프레임(Intra Frame))을 출력하는데 까지 대략 2.5초 정도 소요된다.
도 2는 캐싱 서버를 이용하여 고속 채널 전환 서비스를 제공하는 구조를 나타낸 도면이다.
셋탑 박스(210)는 리모컨으로부터 채널 전환 신호(1번 채널 → 2번 채널)를 입력받으면, 고속 채널 전환을 위해 채널 전환 신호(2번 채널)에 대응하는 추가 특징 정보(인덱스, 예를들면 최초 수신되는 전환 채널(2번 채널) 스트림의 일부 혹은 특징값)를 추출한다. 셋탑 박스(210)는 채널 전환 신호에 대응하는 전환 채널 정보(2번 채널)와 함께 추가 특징 정보(인덱스)를 캐싱 서버(220)로 전송한다.
캐싱 서버(220)는 서비스 공급망 또는 미디어 서비스 네트워크로 캐싱 서비스를 제공할 서비스 채널 주소들을 요청한 후 서비스 공급망 또는 미디어 서비스 네트워크로부터 서비스 채널 주소들에 대응하는 스트림 데이터들을 수신하여 기 설정된 시간(예컨대, 3초) 분량만큼 각 채널들을 캐싱하고 있다.
캐싱 서버(220)는 셋탑 박스(210)로부터 수신된 전환 채널 정보(2번 채널)와 추가 특징 정보(인덱스)를 이용하여, 캐싱하고 있는 각 채널에 대한 캐싱 정보로부터, 셋탑 박스(210)로부터 수신된 전환 채널(2번 채널)에 대한 캐싱 정보를 확인하고, 이 캐싱 정보에서 추가 특징 정보(인덱스)와 매칭되는 위치를 찾아 현재 위치로 확정한 후, 이로부터 특정 위치에 해당하는 캐싱 스트림 데이터를 추출하여 셋탑 박스(210)로 전송한다.
캐싱 서버(220)는 캐싱하고 있는 각 채널에 대한 캐싱 정보로부터 전환 채널(2번 채널)에 대한 캐싱 정보를 확인하고, 이 캐싱 정보에서 추가 특징 정보(인덱스)와 매칭되는 현재 위치로부터 특정 위치에 해당하는 캐싱 스트림 데이터를 셋탑 박스(210)로 전송하므로 고속으로 채널이 전환되도록 한다.
도 3은 스트림 서비스를 제공하는 캐싱 서버와 셋탑 박스를 나타낸 도면이며 CAS가 적용 되어 있지 않거나 일부에만 부분적으로 적용되어 있는 경우의 스트림에 대한 캐싱 서비스 처리 구조이다.
캐싱 서버(320)는 MLR(Media Los Recovery), 고속 채널 전환 등을 수행할 때, 수신된 스트림의 PTS(Presentation Time Stamp)-PCR(Program Clock Reference) 갭 값 등, 캐싱 데이터 생성에 필요한 값을 보조 정보로 산출한 후 해당값을 이용하여 캐싱 데이터의 범위를 결정하거나, 스트림 내의 PCR, PTS 등의 값을 조정할 수 있다.
다시 말해, 캐싱 서버(320)는 서비스 채널 주소에 대응하는 스트림 데이터를 수신하여 기 설정된 시간 분량만큼 캐싱하고, 캐싱되고 있는 캐싱 정보로부터 추가 특징 정보(인덱스)에 매칭되는 위치를 찾아 현재 위치로 설정하고, 보조 정보에 기반하여 현재 위치로부터 특정 위치 혹은 범위를 결정하거나, 해당 위치 혹은 범위에 존재하는 스트림 내의 PCR, PTS등의 값을 조정한다.
캐싱 서버(320)는 수신하는 스트림에 CAS(Conditional Access System)가 일부에만 부분적으로 걸려 있는 경우, CAS가 걸려 있지 않은 부분을 이용하여 보조 정보를 취득하면 된다. 캐싱 서버(320)는 수신하는 스트림 전체에 CAS가 걸려 있는 경우, CAS를 디스크램블(Descramble)할 수 있는 키 값을 수신한 후 디스크램블 알고리즘을 수행해야 CAS를 해제할 수 있다. 이때, CAS를 디스크램블(Descramble)할 수 있는 키 값은 일반적으로 3rd 파티 서버에는 저장되지 않고, 클라이언트 단말기 또는 셋탑 박스(310) 내에만 저장된다. 따라서, 서버에서는 키값 없이 수신하는 스트림의 CAS를 해제할 수 없으므로, PTS-PCR 갭 값 등의 보조 정보를 산출하기 어렵다.
캐싱 서버(320)는 고속 채널 전환을 위해 특정 범위(예를 들면, α 혹은 1GOP(Group Of Pictures) + α, 혹은 2GOP(Group Of Pictures) + α)까지를 캐싱 스트림 데이터로 추출한다. 전환 채널에 대한 캐싱 정보로부터 현재 위치를 확정하고, 이로부터 가장 가까운 I frame까지를 α라 가정하면, α에서 추가적인 1개의 GOP(Group Of Pictures)까지를 1GOP + α, α에서 추가적인 2개의 GOP(Group Of Pictures)까지를 2GOP + α 등으로 정의한다. 캐싱 서버(320)는 전환 채널 캐싱 정보에서, 보조 정보에 기반하여 α 혹은 1GOP + α 혹은 2GOP + α 등의 캐싱 데이터 범위를 결정하고, 이를 캐싱 데이터로 추출하여 셋탑 박스(310)로 전송한다. 스트림 내의 TS 패킷 구조 내의 TS 헤더에 4 바이트(Bytes)가 할당되고, 페이로드(Payload)에 184 바이트가 할당된다.
캐싱 서버(320)는 인덱스를 이용하는 경우, 스트림 내의 TS 패킷 구조 중 인덱스에 대응되는 위치(현재 위치)를 찾은 다음에, 해당 위치 앞에 존재하는 RAI(Random Access Indicator)를 찾는다. 이후 캐싱 서버(320)는 검색된 RAI 앞에 위치하는 첫 번째 RAI 위치, 두 번째 RAI 위치 등을 찾을 수 있다. 캐싱 서버(320)는 첫 번째 RAI 위치와 두 번째 RAI 위치 등을 검색하는 경우 불필요한 구간을 많이 포함하게 될 수 있으므로,보조 정보에 기반하여 최적의 캐싱 데이터 범위를 결정하여야 한다..
캐싱 서버(320)는 스트림에 CAS가 설정되어 있으면, 스크램블링 되어 있는 페이로드에 포함되어 있는 PTS 등의 값을 얻을 수 없어, PTS-PCR 갭 등의 보조정보를 산출할 수 없다. PCR은 TS 패킷 구조의 TS 헤더에 존재한다. PTS는 TS 패킷 구조의 페이로드에 존재한다. 여기서, PTS는 비디오 PTS와 오디오 PTS가 별도로 존재하는 데 페이로드에 할당된 184 바이트 내에 존재한다.
캐싱 서버(320)는 PTS를 확인하기 위해서 페이로드를 확인해야 하나, 페이로드에는 CAS가 적용되어 스크램블 되어 있어서 페이로드 확인이 불가능하다.
이러한 경우 도 4에서와 같이, 미리 셋탑박스(410)로부터 주기적/비주기적으로 캐싱 데이터 생성에 필요한 정보를 보조 정보로서 수신하여 데이터베이스화 하였다가, 캐싱 데이터 생성시 필요한 값을 참조하거나, 도 5에서와 같이, 미리 캐싱 서버(520) 내 보조 정보 추출부(526)로부터 주기적/비주기적으로 캐싱 데이터 생성에 필요한 정보를 보조 정보로서 획득하여 데이터베이스화 하였다가, 캐싱 데이터 생성시 필요한 값을 참조하도록 할 수 있다.
캐싱 서버(320)는 PCR과 비디오 PTS의 갭과 PCR과 오디오 PTS의 갭 중 더 먼쪽의 갭 값을 보조 정보로 설정할 수 있다.
캐싱 서버(320)는 셋탑 박스(310)로부터 전환 채널 정보를 수신하기 전부터 복수의 셋탑 박스(310)와 통신하는 복수의 채널 모두에 대해서 상시적으로 캐싱을 수행하고 있다. 캐싱 서버(320)는 상시적으로 전체 서비스 채널에 대하여 캐싱을 수행하고, 이들 캐싱 정보 중, 전환 채널 정보에 대응하는 채널 캐싱 정보에 대하여 보조 정보를 기반으로하여 결정되는 적정구간만큼 추출한 캐싱 데이터를 생성하여 셋탑 박스(310)로 전송한다.
셋탑 박스(310)는 채널 전환 후 수신한 정상 서비스 스트림 데이터 앞부분에, 캐싱 서버로부터 수신한 캐싱 데이터를 붙인다. 셋탑 박스(310)는 채널 전환 후 수신한 초기 데이터를 인덱스로 전송한 후 인덱스의 앞부분에 해당하는 캐싱 데이터를 수신하였으므로, 캐싱 데이터를 앞부분에 추가한다. 셋탑 박스(310)는 캐싱 데이터를 앞부분에 추가한 데이터를 이용하여 채널을 빠르게 전환한다.
도 4는 제1 실시예에 따른 셋탑 박스에서 추출한 보조 정보를 이용하여 캐싱 데이터를 제공하는 구조를 나타낸 도면이다.
셋탑 박스(410)는 주기적(예컨대, 하루에 한번) 또는 비주기적으로 캐싱 서버(420)로 보조 정보를 전송하여 캐싱 서버(420)에서 보조정보 테이블을 형성하도록 한다. 셋탑 박스(410)는 스트림을 수신하여 디코딩한 후 화면에 영상을 출력하므로, 스트림에 설정된 CAS를 디스크램블한 상태이므로 TS 패킷 구조의 페이로드에 존재하는 비디오 PTS와 오디오 PTS 등을 확인할 수 있다.
다시 말해, 셋탑 박스(410)는 스트림에 설정된 CAS를 디스크램블한 상태로 서비스 화면을 출력하므로, TS 패킷 구조의 TS 헤더에 존재하는 PCR을 확인하고, TS 패킷 구조의 페이로드의 CAS를 디스크램블하여 페이로드에 존재하는 비디오 PTS와 오디오 PTS 등보조 정보 생성에 필요한 정보를 확인한다.
예를 들면, 셋탑 박스(410)는 페이로드에 존재하는 비디오 PTS와 오디오 PTS 각각을 이용하여 비디오 PTS-PCR 갭 값 및 오디오 PTS-PCR 갭 값 중 큰 값을 보조 정보로 하여 주기적 또는 비주기적으로 캐싱 서버(420)로 전송한다. 캐싱 서버(420)는 셋탑 박스(410)로부터 보조 정보를 주기적 또는 비주기적으로 수신한 후 내부 DB에 저장한다. 캐싱 서버(420)는 전환 채널에 대한 보조 정보를 필요 시 내부 DB로부터 확인할 수 있다.
여기서, 셋탑 박스(410)는 특정 시점에서의 PCR과 그 때의 비디오 PTS의 갭 값과 특정 시점에서의 PCR과 그 때의 오디오 PTS의 갭 값을 얻은 후, 그 중 큰 값을 보조 정보로 캐싱 서버(420)로 전송할 수 있다. 다시 말해, 셋탑 박스(410)는 특정 시점에 PCR과 비디오 PTS의 갭을 확인하고, PCR과 오디오 PTS의 갭을 확인하여 보조 정보를 생성 후 캐싱 서버로 전송한다. 셋탑 박스(410)는 이러한 방식으로 셋탑박스에서 얻을 수 있는 다양한 보조 정보를 주기적 또는 비주기적으로 캐싱 서버(420)로 전송하여 캐싱 서버(420)가 일종의 테이블을 형성하도록 한다.
캐싱 서버(420)는 셋탑 박스(410)로부터 전환 채널 정보를 수신하면, DB에서 해당 채널에 대하여 가장 최근에 업데이트된 PTS-PCR 갭 값을 확인하고, 해당 채널의 캐싱 정보의 현재 위치로부터 PTS-PCR 갭 값에 대응하는 위치를 찾아가기 위해, TS 패킷 구조의 TS 헤더에 존재하는 현재 위치의 PCR을 확인하고, 그 PCR을 기준으로, 해당 채널에 대한 보조 정보인 PTS-PCR 갭 값만큼 이전 시간 방향에 대응하는 위치를 찾아간다.
캐싱 서버(420)는 현재 위치 PCR 기준으로 PTS-PCR 갭 값(보조 정보)에 대응하는 이전 시간 위치에서 적절한 위치(예를들면, 이전 시간 방향으로 가장 가까운 위치(도 6a) 혹은 방향에 관계 없이 가장 가까운 위치(도 6b) 등)의 RAI(Random Access Indicator)을 찾고, RAI로 표시된 I 프레임(Intra Frame)부터 현재 위치까지의 데이터를 추출하여 캐싱 데이터로서 셋탑 박스(410)로 전송하여 고속 채널 전환이 이루어지도록 한다.
캐싱 서버(420)는 복수의 셋탑 박스(410)와 통신하는 채널이 복수 개(예컨대, 200개)가 존재하더라도 통신하는 셋탑 박스(410)의 개수와 무관하게 채널별로 보조 정보를 데이터베이스, 테이블 등과 같은 형태로 저장한다. 예를 들면, 고속 채널 전환 서비스를 위해서는 채널별 헤드엔드의 인코더 특성에 따른 PTS-PCR의 갭 값 정보를 보조 정보값 테이블 형태로 저장한다.
캐싱 서버(420)는 주기적(예컨대, 하루에 한번) 또는 비주기적으로 셋탑 박스(410)로부터 보조 정보를 수신한다. 캐싱 서버(420)는 수신된 보조 정보가 DB에 기 저장된 정보와 동일한 경우 DB에 기 저장된 정보에 대한 업데이트를 미수행한다. 캐싱 서버(420)는 수신된 보조 정보가 DB에 기 저장된 정보와 비동일한 경우 DB에 기 저장된 정보에 대한 업데이트를 수행한다.
캐싱 서버(420)는 스트림에 CAS의 스크램블된 값들로 인해 TS 패킷의 페이로드 확인이 불가능할 때, 셋탑 박스(410)로부터 주기적 또는 비주기적으로 수신된 보조 정보를 기반으로 필요한 구간만큼 추출한 캐싱 데이터를 생성한다.
예컨대, 고속 채널 전환 서비스일 경우, 캐싱 서버(420)는 셋탑 박스(410)로부터 전환 채널 정보를 수신하면, 해당 전환 채널에 대한 보조 정보인 PTS-PCR의 갭 값을 내부 데이터베이스로부터 확인한 후, 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 셋탑 박스(410)로 전송하거나, 기타 다른 목적으로 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 셋탑 박스(410)로 전송한다.
셋탑 박스(410)는 채널별 보조 정보(예, PTS-PCR 갭 값 정보)를 주기적 또는 비주기적으로 캐싱 서버(420)에 업데이트한다. 캐싱 서버(420)는 셋탑 박스(410)로부터 수신된 채널별 보조 정보(예, PTS-PCR 갭 값 정보)를 DB화해서 저장한다. 캐싱 서버(420)는 DB화해서 저장된 정보를 캐싱 데이터를 생성할 때 이용한다. 캐싱 서버(420)는 셋탑 박스(410)로부터 수신된 보조 정보를 기 저장된 정보와 비교해서 업데이트한다.
캐싱 서버(420)는 캐싱 데이터 생성을 보조하는 보조 정보를 셋탑 박스(410)로부터 수신한 후 보유한다. 캐싱 서버(420)는 주기적으로 셋탑 박스(410)로부터 보조 정보를 업데이트 받는다. 캐싱 서버(420)는 주기적/비주기적으로 셋탑 박스(410)로 보조 정보의 업데이트를 요청할 수도 있다. 셋탑 박스(410)는 캐싱 데이터를 수신하여 처리할 때, 캐싱 데이터의 길이 혹은 내용 등이 부적절하다고 판단되는 경우, 해당 채널에 대한 보조 정보를 다시 구하여, 캐싱 서버(420)로 전송하고, 캐싱 서버(420)는 이 값에 대한 업데이트를 수행한다.
캐싱 서버(420)는 캐싱 데이터를 생성하기 위한 보조 정보(예컨대, 고속 채널 전환 서비스일 경우, PTS-PCR의 갭 값)를 셋탑 박스(410)로부터 주기적(예컨대, 1시간에 1번) 또는 비주기적(예컨대, 셋탑 박스에서 캐싱 데이터가 부적절하다고 판단되는 경우)으로 수신하여 저장하고 있다가, 이 값을 기반으로 필요한 구간만큼 추출한 캐싱 데이터를 생성한다.
캐싱 서버(420)는 보조 정보 데이터베이스의 초기값을 적절히 설정하여 서비스 초기에 효율적인 대응이 가능하도록 한다. 예컨대, 고속 채널 전환 서비스일 경우, 캐싱 서버(420)는 보조 정보 데이터베이스의 초기값으로, 1xGOP 길이값, 0.5xGOP 길이값 등 적절한 값으로 설정할 수 있다. 또한, 캐싱 서버(420)는 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정하고, 이를 업데이트 없이 사용하거나, 필요 시에만 업데이트하여 사용할 수도 있다.
시청 채널 요청/수신부(412)는 미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신한다.
보조 정보 추출부(414)는 스트림을 디스크램블(Descramble)하여 보조 정보를 생성한다. 보조 정보 추출부(414)는 스트림 내의 스크램블(Scramble)된 부분을 디스크램블(Descramble)하여 PTS(Presentation Time Stamp), PSI(Program Specific Information) 등의 스트림 정보를 추출하고, 이를 기반으로 목적에 맞는보조 정보를 생성한다. 보조 정보 송신부(416)는 보조 정보를 주기적 또는 비주기적으로 캐싱 서버(420)로 전송한다.
보조정보 업데이트 제어부(422)는 셋탑 박스(410)로부터 보조 정보를 수신하여 보조 정보 DB(424)에 저장한다. 이후 보조정보 업데이트 제어부(422)는 새로 수신한 보조 정보와 기 저장된 보조 정보를 비교한다.
보조정보 업데이트 제어부(422)는 새로 수신한 보조 정보와 기 저장된 보조 정보가 비동일한 값일 경우 기 저장된 정보를 새로 수신한 보조 정보로 업데이트한다. 보조정보 업데이트 제어부(422)는 새로 수신한 보조 정보와 기 저장된 보조 정보가 동일한 값일 경우 기 저장된 정보에 대한 업데이트를 미수행한다.
셋탑 박스(410)가 캐싱 서버로부터 수신한 캐싱 데이터가 적절한 캐싱 데이터가 아닐 경우, 비주기적으로 셋탑 박스(410)가 보조 정보를 다시 추출하여 캐싱 서버로 전송한다. 이후 보조정보 업데이트 제어부(422)는 셋탑 박스(410)로부터 비주기적인 보조 정보를 수신한 후 수신된 보조 정보와 기 저장된 정보 간에 비동일한 값이 존재하는 경우에 기 저장된 정보를 보조 정보로 업데이트한다.
보조정보 업데이트 제어부(422)는 복수의 셋탑 박스(410)와 통신하는 채널이 복수 개(예컨대, 200개)가 존재하더라도 통신하는 셋탑 박스(410)의 개수와 무관하게 채널별로 보조 정보를 저장 및 업데이트 한다. 예를 들면, 고속 채널 전환 서비스를 위해서는 채널별 헤드엔드(Headend)의 인코더(Encoder) 특성에 따른 보조 정보값(PTS-PCR 갭 값 등)을 데이터베이스화하여 저장 및 업데이트 한다.
캐싱 데이터 생성 모듈(426)은 셋탑 박스(410)로부터 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 저장하다가 셋탑 박스(410)로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 보조 정보 값을 확인하여 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 셋탑 박스(410)의 캐싱 응답으로 전송한다.
캐싱 데이터 생성 모듈(426)은 셋탑 박스(410)로부터 고속 채널 전환 서비스 에 대한 캐싱 데이터 요청을 수신한 경우, 해당 채널에 대한 캐싱 정보 내의 현재 위치에서의 TS 패킷 구조의 TS 헤더 내의 PCR(Program Clock Reference)을 확인한다. 캐싱 데이터 생성 모듈(426)은 해당 채널에 대한 보조 정보(PTS-PCR 갭 값)를 참조하여, 현재 위치의 PCR을 기준으로 해당 채널에 대한 보조 정보(PTS-PCR 갭) 값에 해당하는 이전 시간 구간을 포함하는 적절한 만큼의 정보를 추출하여 캐싱 데이터로 생성한 후 셋탑 박스(410)로 전송한다.캐싱 데이터 생성 모듈(426)은 셋탑 박스(410)로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 값(예, PTS-PCR 갭에 해당하는 값)을 확인하고, 이 보조 정보를 기반으로 캐싱 데이터를 생성한다.
캐싱 데이터 생성 모듈(426)은 현재 위치로부터 보조 정보(예, PTS-PCR 갭 값)에 해당하는 만큼의 이전 시간 위치를 찾아가기 위해, 현재 위치에서 가장 가까운 PCR을 찾고, 그 PCR값을 기준으로 보조 정보(예, PTS-PCR 갭)값 만큼 이전 시간에 해당하는 위치를 확인하고, 그 위치로부터 가장 가까운 RAI(Random Access Indicator) 위치(도 6b) 혹은 이전 시간 방향으로 첫 번째 RAI(Random Access Indicator) 위치(도 6a)를 찾는다. 캐싱 데이터 생성 모듈(426)은 이렇게 찾은 RAI로 표시된 I 프레임(Intra Frame) 위치로부터 현재 위치까지의 데이터를을 추출하여 캐싱 데이터로서 셋탑 박스(410)로 전송하여 고속 채널 전환이 이루어지도록 한다.
도 5는 제2 실시예에 따른 캐싱 서버에서 자체적으로 추출한 보조 정보를 이용하여 캐싱 데이터를 제공하는 구조를 나타낸 도면이다.
제2 실시예에 따른 캐싱 서버(520)는 수신된 키 값을 이용하여 스크램블된 스트림을 디스크램블하고, 이 디스크램블된 스트림 데이터로부터 보조 정보(예, PTS-PCR 갭 값)를 구하고 이를 DB화해서 저장한다.
캐싱 서버(520)는 전환 채널 정보를 수신한 후 PTS-PCR 갭 값 정보를 계산하기까지 시간이 소요되므로, 평소에 전 채널에 대하여 백그라운드에서 보조 정보(예, PTS-PCR 갭 값)를 주기적/비주기적으로 얻어 DB화 한다.
기본적으로 캐싱 서버(520)는 모든 스트림에 대해서 수신된 키 값을 이용하여 PTS-PCR 갭 값 정보를 DB화해서 저장하는 것이 아니라, 전체 스트림 중 일부 스트림에 대해서 수신된 키 값(예컨대, 1시간에 한번 1초 구간에 해당하는 키값)을 이용하여 보조 정보(예, PTS-PCR 갭 값)를 구하여 이를 DB화해서 저장할 수 있다.
캐싱 서버(520)는 DB화해서 저장된 보조 정보를 캐싱 데이터를 생성할 때 이용한다. 캐싱 서버(520)는 자체적으로 CAS 해제 후에 보조 정보를 구하여 기 저장된 보조 정보와 비교해서 업데이트한다.
캐싱 서버(520)는 미리 전 서비스 채널에 대하여 CAS(Conditional Access System)를 해제한 보조 정보를 보유(정기/비정기 업데이트 시행)한다. 캐싱 서버(520)는 캐싱 데이터 요청을 받으면, 해당 채널에 대한 보조 정보를 확인하고, 이를 기반으로 필요한 구간을 추출하여 캐싱 데이터를 생성한다.
CAS 해제키 수신부(522)는 외부서버로부터 CAS 해제 키값을 수신한다. 물론 캐싱 서버(520)가 CAS 해제 키를 항시 내부 보유하고, 이를 이용하여 CAS를 해제할 수도 있다. CAS 해제부(524)는 미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신한다. CAS 해제부(524)는 CAS 해제 키값을 이용하여 스트림을 디스크램블(Descramble)한다.
보조 정보 추출부(526)는 디스크램블한 정보로부터 보조 정보를 추출한다. 보조 정보 추출부(526)는 스트림 내의 TS 패킷 구조 내의 TS 헤더와 페이로드(Payload)로부터 PCR, PTS(Presentation Time Stamp), PSI(Program Specific Information) ) 등의 스트림 정보를 추출하고, 이를 기반으로 목적에 맞는보조 정보를 생성한다.
보조정보 업데이트 제어부(527)는 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 보조 정보 DB(528)에 저장한다. 보조정보 업데이트 제어부(527)는 주기적(예컨대, 하루에 한번)으로 보조 정보 추출부(526)로부터 보조 정보를 수신한 후 새로 수신한 보조 정보와 기 저장된 정보를 비교한다.
보조정보 업데이트 제어부(527)는 보조 정보에 비동일한 값이 존재하는 경우 기 저장된 정보를 새로 수신한 보조 정보로 업데이트한다. 보조정보 업데이트 제어부(527)는 새로 수신한 보조 정보와 기 저장된 정보가 동일한 값을 갖는 경우 기 저장된 정보에 대한 업데이트를 미수행한다.
보조정보 업데이트 제어부(527)는, 기 저장된 보조 정보를 이용하여 생성한 캐싱 데이터가 부적절하다고 판단된 경우, 비주기적으로 보조 정보 추출부(526)로 보조 정보를 다시 전송하기를 요청한다. 이후 보조 정보 업데이트 제어부(527)는 보조 정보 추출부(526)로부터 비주기적으로 보조 정보를 수신한 후 새로 수신한 보조 정보와 기 저장된 정보 간에 비동일한 값이 존재하는 경우에 기 저장된 정보를 새로 수신한 보조 정보로 업데이트한다.
보조정보 업데이트 제어부(527)는 복수의 셋탑 박스(510)와 통신하는 채널이 복수 개(예컨대, 200개)가 존재하더라도 통신하는 셋탑 박스(510)의 개수와 무관하게 채널별로 보조 정보를 저장 및 업데이트 한다. 예를 들면, 고속 채널 전환 서비스를 위해서는 채널별 헤드엔드(Headend)의 인코더(Encoder) 특성에 따른 보조 정보값(PTS-PCR 갭 값 등)을 데이터베이스화하여 저장 및 업데이트 한다.
캐싱 서버(520)는 보조 정보 데이터베이스의 초기값을 적절히 설정하여 서비스 초기에 효율적인 대응이 가능하도록 한다. 예컨대, 고속 채널 전환 서비스일 경우, 캐싱 서버(520)는 보조 정보 데이터베이스의 초기값으로, 1xGOP 길이값, 0.5xGOP 길이값 등 적절한 값으로 설정할 수 있다. 또한, 캐싱 서버(520)는 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정하고, 이를 업데이트 없이 사용하거나, 필요 시에만 업데이트하여 사용할 수도 있다.
캐싱 데이터 생성 모듈(529)은 셋탑 박스(510)로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 보조 정보 를 기반으로 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 셋탑 박스(510)의 캐싱 응답으로 전송한다.
캐싱 데이터 생성모듈(529)은 셋탑 박스(510)로부터 고속 채널 전환 서비스 에 대한 캐싱 데이터 요청을 수신한 경우, 캐싱 정보 내의 TS 패킷 구조의 TS 헤더 내의 PCR(Program Clock Reference)을 확인하여 현재 위치를 확인하고, 보조 정보로 부터 PTS-PCR 갭 값을 확인한다. 이후 캐싱 데이터 생성모듈(529)은 현재 위치에서 이전 시간 방향으로 PTS-PCR 갭 값에 해당하는 구간을 포함하는 적절한 만큼의 정보를 추출하여 캐싱 데이터로 생성한 후 셋탑 박스(510)로 전송한다.
캐싱 데이터 생성모듈(529)은 셋탑 박스(510)로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 값(예, PTS-PCR 갭에 해당하는 값)을 확인하고, 이 보조 정보를 기반으로 캐싱 데이터를 생성한다.
캐싱 데이터 생성모듈(529)은 현재 위치로부터 보조 정보(예, PTS-PCR 갭 값)에 해당하는 만큼의 이전 시간 위치를 찾아가기 위해, 현재 위치에서 가장 가까운 PCR을 찾고, 그 PCR을 기준으로 보조 정보(예, PTS-PCR 갭 값)값 만큼 이전 시간에 해당하는 위치를 확인하고, 그 위치로부터 가장 가까운 RAI(Random Access Indicator) 위치(도 6b) 혹은 이전 시간 방향으로 첫 번째 RAI(Random Access Indicator) 위치(도 6a)를 찾는다. 캐싱 데이터 생성모듈(529)은 RAI로 표시된 I 프레임(Intra Frame) 위치로부터 현재 위치까지의 데이터를 추출하여 캐싱 데이터로서 셋탑 박스(510)로 전송하여 고속 채널 전환이 이루어지도록 한다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110, 210, 310, 410, 510: 셋탑 박스
120, 220, 320, 420, 520: 캐싱 서버

Claims (26)

  1. 미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신하고, 상기 스트림을 디스크램블(Descramble)하여 해당 채널에 대한 채널 별 보조 정보를 생성하고, 상기 채널 별 보조 정보를 주기적 또는 비주기적으로 전송하는 셋탑 박스(STB); 및
    상기 셋탑 박스로부터 상기 채널 별 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 저장하다가 상기 셋탑 박스로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 상기 채널 별 보조 정보 값을 참조하여 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 상기 셋탑 박스의 캐싱 데이터 응답으로 전송하는 캐싱 서버;를 포함하 전송하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  2. 제1항에 있어서,
    상기 캐싱 서버는,
    주기적으로 상기 셋탑 박스로부터 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보를 비교하고, 상기 보조 정보에 비동일한 값이 존재하는 경우 기 저장된 정보를 상기 보조 정보로 업데이트하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  3. 제1항에 있어서,
    상기 캐싱 서버는,
    주기적으로 상기 셋탑 박스로부터 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보를 비교하고, 상기 보조 정보와 기 저장된 정보가 동일한 값을 갖는 경우 기 저장된 정보에 대한 업데이트를 미수행하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  4. 제1항에 있어서,
    상기 캐싱 서버는,
    상기 셋탑 박스가 캐싱 서버로부터 수신한 캐싱 데이터가 적절한 캐싱 데이터가 아닐 경우, 비주기적으로 상기 셋탑 박스가 상기 보조 정보를 다시 캐싱 서버로 전송하고, 캐싱 서버는 상기 셋탑 박스로부터 비주기적으로 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보 간에 비동일한 값이 존재하는 경우에만 기 저장된 정보를 상기 보조 정보로 업데이트하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  5. 제1항에 있어서,
    상기 캐싱 서버는,
    복수의 상기 셋탑 박스와 통신하는 채널이 복수 개가 존재하더라도 통신하는 상기 셋탑 박스의 개수와 무관하게, 전체 서비스 채널의 채널별 보조 정보를 데이터베이스화하여 저장하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  6. 제1항에 있어서,
    상기 셋탑 박스는
    상기 스트림 내의 TS 패킷 구조 내의 TS 헤더와 페이로드(Payload) 중 상기 페이로드에만 CAS 적용을 위해 스크램블(Scramble)되므로, 상기 페이로드를 디스크램블(Descramble)하여 PTS(Presentation Time Stamp), PSI(Program Specific Information), PTS-PCR 갭값을 포함하는 상기 보조 정보를 생성하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  7. 제1항에 있어서,
    상기 캐싱 서버는,
    상기 셋탑 박스로부터 고속 채널 전환을 위한 캐싱 데이터 요청을 수신한 경우, 상기 스트림 내의 TS 패킷 구조의 TS 헤더 내의 현재 위치의 PCR(Program Clock Reference)을 확인하고, 상기 보조 정보 중 PTS-PCR 갭값을 참조하여, 상기 현재 위치의 PCR을 기준으로 상기 PTS-PCR 갭 값에 해당하는 이전 시간 구간을 포함하는 적절한 만큼의 정보를 추출하여 상기 캐싱 데이터로 생성한 후 상기 셋탑 박스로 전송하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  8. 제7항에 있어서,
    상기 캐싱 서버는,
    상기 셋탑 박스로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 상기 PTS-PCR 갭값을 확인하고, 현재 위치로부터 상기 PTS-PCR 갭값에 해당하는 만큼의 이전 시간 위치를 찾아가기 위해, 현재 위치에서 가장 가까운 PCR을 찾고, 그 PCR값을 기준으로 상기 PTS-PCR 갭값만큼 이전 시간에 해당하는 위치를 확인하고, 상기 이전 시간에 해당하는 위치로부터 이전 시간 방향으로 첫 번째 RAI(Random Access Indicator)를 찾고, 상기 RAI로 표시된 I 프레임(Intra Frame)부터 현재 위치까지의 데이터를 추출하여 상기 캐싱 데이터로서 상기 셋탑 박스로 전송하여 고속 채널 전환이 이루어지도록 하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  9. 제7항에 있어서,
    상기 캐싱 서버는,
    상기 셋탑 박스로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 상기 PTS-PCR 갭 값을 확인하고, 현재 위치로부터 상기 PTS-PCR 갭 값에 해당하는 만큼의 이전 시간 위치를 찾아가기 위해 현재 위치에서 가장 가까운 PCR을 찾고, 상기 가장 가까운 PCR을 기준으로 상기 PTS-PCR 갭 값만큼 이전 시간에 해당하는 위치를 확인하고, 상기 이전 시간에 해당하는 위치로부터 가장 가까운 RAI(Random Access Indicator)를 찾고, 상기 RAI로 표시된 I 프레임(Intra Frame)부터 현재 위치까지의 데이터를 추출하여 상기 캐싱 데이터로서 상기 셋탑 박스로 전송하여 고속 채널 전환이 이루어지도록 하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  10. 제8항에 있어서,
    상기 캐싱 서버는,
    상기 보조 정보 데이터베이스의 초기값을 각 채널의 특성을 보편적으로 반영한 값으로 설정하여 서비스 초기에 보조 정보 업데이트 전이라도 캐싱 서비스가 이루어지도록 하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  11. 제10항에 있어서,
    상기 캐싱 서버는,
    상기 보조 정보 데이터베이스의 초기값으로, GOP 길이값을 기준으로 GOP 길이값에 특정 비율을 곱하여 얻어진 값을 설정하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  12. 제11항에 있어서,
    상기 캐싱 서버는,
    상기 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  13. 제12항에 있어서,
    상기 캐싱 서버는,
    상기 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정한 후 업데이트 없이 사용하거나, 필요 시에만 업데이트하는 것을 특징으로 하는 캐싱 데이터 제공 시스템.
  14. 외부서버로부터 CAS 해제 키값을 수신하는 CAS 해제키 수신부;
    미디어 서비스 네트워크로부터 CAS(Conditional Access System)가 적용되어 스크램블(Scramble)된 스트림(Stream)을 수신하고, 상기 CAS 해제 키값을 이용하여 상기 스트림을 디스크램블(Descramble)하는 CAS 해제부;
    상기 디스크램블된 정보로부터 해당 채널에 대한 채널 별 보조 정보를 추출하는 보조 정보 추출부;
    상기 채널 별 보조 정보를 주기적 또는 비주기적으로 수신하여 데이터베이스화하여 보조 정보 DB에 저장하는 보조정보 업데이트 제어부; 및
    셋탑 박스로부터 캐싱 데이터 요청이 있는 경우, 기 저장된 상기 채널 별 보조 정보를 참조하여 필요한 구간만큼 추출한 캐싱 데이터를 생성하여 상기 셋탑 박스의 캐싱 데이터 요청에 대한 응답으로 전송하는 캐싱 데이터 생성 모듈를 포함하는 것을 특징으로 하는 캐싱 서버.
  15. 제14항에 있어서,
    상기 보조정보 업데이트 제어부는,
    주기적으로 상기 보조 정보 추출부로부터 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보를 비교하고, 상기 보조 정보에 비동일한 값이 존재하는 경우 기 저장된 정보를 상기 보조 정보로 업데이트하는 것을 특징으로 하는 캐싱 서버.
  16. 제14항에 있어서,
    상기 보조정보 업데이트 제어부는,
    주기적으로 상기 보조 정보 추출부로부터 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보를 비교하고, 상기 보조 정보와 기 저장된 정보가 동일한 값을 갖는 경우 기 저장된 정보에 대한 업데이트를 미수행하는 것을 특징으로 하는 캐싱 서버.
  17. 제14항에 있어서,
    상기 보조정보 업데이트 제어부는,
    상기 보조 정보를 이용하여 생성된 캐싱 데이터가 부적절하다고 판단되는 경우, 비주기적으로 상기 보조 정보 추출부로 상기 보조 정보를 다시 추출하여 전송하기를 요청한 후 상기 보조 정보 추출부로부터 비주기적으로 상기 보조 정보를 수신한 후 상기 보조 정보와 기 저장된 정보 간에 비동일한 값이 존재하는 경우에만 기 저장된 정보를 상기 보조 정보로 업데이트하는 것을 특징으로 하는 캐싱 서버.
  18. 제14항에 있어서,
    상기 보조정보 업데이트 제어부는,
    복수의 셋탑 박스와 통신하는 채널이 복수 개가 존재하더라도 통신하는 셋탑 박스의 개수와 무관하게, 전체 서비스 채널의 채널별 보조 정보를 데이터베이스화하여 저장하는 것을 특징으로 하는 캐싱 서버.
  19. 제14항에 있어서,
    상기 보조 정보 추출부는
    상기 스트림 내의 TS 패킷 구조 내의 TS 헤더와 페이로드(Payload) 중 상기 페이로드에만 CAS 적용을 위한 스크램블(Scramble)되므로, 상기 페이로드를 디스크램블(Descramble)하여 PTS(Presentation Time Stamp), PSI(Program Specific Information), PTS-PCR 갭 값을 포함하는 상기 보조 정보를 생성하는 것을 특징으로 하는 캐싱 서버.
  20. 제19항에 있어서,
    상기 캐싱 데이터 생성모듈은,
    상기 셋탑 박스로부터 고속 채널 전환을 위한 캐싱 데이터 요청을 수신한 경우, 상기 스트림 내의 TS 패킷 구조의 상기 TS 헤더 내의 현재 위치의 PCR(Program Clock Reference)을 확인하고, 상기 보조 정보 중 PTS-PCR 갭값을 참조하여, 상기 현재 위치의 PCR을 기준으로 상기 PTS-PCR 갭 값에 해당하는 이전 시간 구간을 포함하는 적절한 만큼의 정보를 추출하여 상기 캐싱 데이터로 생성한 후 상기 셋탑 박스로 전송하는 것을 특징으로 하는 캐싱 서버.
  21. 제20항에 있어서,
    상기 캐싱 데이터 생성모듈은,
    상기 셋탑 박스로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 상기 PTS-PCR 갭값을 확인하고, 현재 위치로부터 상기 PTS-PCR 갭값에 해당하는 값 만큼의 이전 시간 위치를 찾아가기 위해, 현재 위치에서 가장 가까운 PCR을 찾고, 그 PCR값을 기준으로 상기 PTS-PCR 갭값 만큼 이전 시간에 해당하는 위치를 확인하고, 상기 이전 시간에 해당하는 위치로부터 이전 시간방향으로 첫 번째 RAI(Random Access Indicator)를 찾고, 상기 RAI로 표시된 I 프레임(Intra Frame)부터 현재 위치까지의 데이터를 추출하여 상기 캐싱 데이터로서 상기 셋탑 박스로 전송하여 고속 채널 전환이 이루어지도록 하는 것을 특징으로 하는 캐싱 서버.
  22. 제20항에 있어서,
    상기 캐싱 데이터 생성모듈은,
    상기 셋탑 박스로부터 전환 채널 정보를 수신하면, 보조 정보 데이터베이스에서 해당 채널에 대하여 기 저장된 보조 정보 중 가장 최근에 업데이트된 상기 PTS-PCR 갭 값을 확인하고, 현재 위치로부터 상기 PTS-PCR 갭 값에 해당하는 값 만큼의 이전 시간 위치를 찾아가기 위해, 현재 위치에서 가장 가까운 PCR을 찾고, 상기 가장 가까운 PCR을 기준으로 상기 PTS-PCR 갭 값 만큼 이전 시간에 해당하는 위치를 확인하고, 상기 이전 시간에 해당하는 위치 위치로부터 가장 가까운 RAI(Random Access Indicator)를 찾고, 상기 RAI로 표시된 I 프레임(Intra Frame)부터 현재 위치까지의 데이터를 추출하여 상기 캐싱 데이터로서 상기 셋탑 박스로 전송하여 고속 채널 전환이 이루어지도록 하는 것을 특징으로 하는 캐싱 서버.
  23. 제14항에 있어서,
    상기 캐싱 데이터 생성모듈은
    상기 보조 정보 데이터베이스의 초기값을 각 채널의 특성을 보편적으로 반영한 값으로 설정하여 서비스 초기에 보조 정보 업데이트 전이라도 캐싱 서비스가 이루어지도록 하는 것을 특징으로 하는 캐싱 서버.
  24. 제23항에 있어서,
    상기 캐싱 데이터 생성모듈은
    상기 보조 정보 데이터베이스의 초기값으로, GOP 길이값을 기준으로 GOP 길이값에 특정 비율을 곱하여 얻어진 값을 설정하는 것을 특징으로 하는 캐싱 서버.
  25. 제23항에 있어서,
    상기 캐싱 데이터 생성모듈은
    상기 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정하는 것을 특징으로 하는 캐싱 서버.
  26. 제 25항에 있어서,
    상기 캐싱 데이터 생성모듈은
    상기 보조 정보 데이터베이스의 초기값을 사전에 조사한 채널별 보조 정보 값으로 설정한 후 업데이트 없이 사용하거나, 필요 시에만 업데이트하는 것을 특징으로 하는 캐싱 서버.
KR1020200149461A 2020-11-10 2020-11-10 캐싱 데이터 제공 방법 및 시스템 KR102447259B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200149461A KR102447259B1 (ko) 2020-11-10 2020-11-10 캐싱 데이터 제공 방법 및 시스템
PCT/KR2021/015001 WO2022103017A1 (ko) 2020-11-10 2021-10-25 캐싱 데이터 제공 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200149461A KR102447259B1 (ko) 2020-11-10 2020-11-10 캐싱 데이터 제공 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20220063512A KR20220063512A (ko) 2022-05-17
KR102447259B1 true KR102447259B1 (ko) 2022-09-27

Family

ID=81601462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149461A KR102447259B1 (ko) 2020-11-10 2020-11-10 캐싱 데이터 제공 방법 및 시스템

Country Status (2)

Country Link
KR (1) KR102447259B1 (ko)
WO (1) WO2022103017A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101258987B1 (ko) * 2005-08-02 2013-04-26 삼성전자주식회사 방송 수신 장치 및 방송 수신 장치의 채널 전환 방법
KR101273891B1 (ko) * 2011-09-05 2013-06-17 (주)재플 재핑 데이터 제공 시스템, 제공 방법 및 그 방법을 위한 기록매체
KR101992533B1 (ko) * 2017-09-18 2019-06-25 쿠도커뮤니케이션 주식회사 실시간 iptv 방송에서의 채널 전환 시스템
KR102531337B1 (ko) * 2018-07-16 2023-05-11 주식회사 케이티 방송 채널을 제공하는 장치, 서버 및 방법
KR102150675B1 (ko) * 2018-11-08 2020-09-01 에스케이 텔레콤주식회사 시간 정보 변경을 이용한 미디어 서비스 채널 전환 방법 및 장치

Also Published As

Publication number Publication date
WO2022103017A1 (ko) 2022-05-19
KR20220063512A (ko) 2022-05-17

Similar Documents

Publication Publication Date Title
US9414111B2 (en) Caption data delivery apparatus and methods
US9363028B2 (en) Apparatus and methods for catalog data distribution
US8503447B2 (en) Broadcast receiver and channel information processing method
US10715571B2 (en) Self-adaptive streaming medium processing method and apparatus
CN101176342B (zh) 用于更快的数字电缆调谐的访问信息缓存方法和装置
US7688861B2 (en) Media channel switching
MXPA03006913A (es) Cambio rapido de canal digital.
CN102202229B (zh) 一种实时视频网关方法和装置
WO2001093585A1 (en) Universal digital broadcast system and methods
US20080307457A1 (en) Channel switching method and method and apparatus for implementing the method
US20020023267A1 (en) Universal digital broadcast system and methods
US20060090181A1 (en) Method and apparatus for pre-processing service information in open cable system
JP6333173B2 (ja) 受信装置および受信方法
EP1956844A2 (en) Method of transmitting/receiving digital contents and apparatus for receiving digital contents
EP2046033A2 (en) Broadcast receiver and system information processing method
KR20070008931A (ko) 디지털 방송 시스템의 채널 전환 장치 및 그 방법
US20100132007A1 (en) Accelerating channel change time with external picture property markings
US20220239972A1 (en) Methods and systems for content synchronization
KR101371016B1 (ko) 보조 채널을 이용한 방송 송수신 방법 및 장치
KR20150013110A (ko) 방송 프로그램과 관련한 양방향 서비스를 처리하는 장치 및 방법
KR100906981B1 (ko) 버퍼링 서버를 통한 iptv 채널 변경 속도 개선 방법
US8683515B2 (en) Receiver for accelerating channel change time
KR102447259B1 (ko) 캐싱 데이터 제공 방법 및 시스템
US20150067749A1 (en) Method and apparatus for providing extended tv data
KR100870181B1 (ko) 채널 주파수 및 pid를 캐싱하는 셋탑 박스의 채널 변경장치 및 그 제어 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant