KR20070122577A - 패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법 - Google Patents

패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법 Download PDF

Info

Publication number
KR20070122577A
KR20070122577A KR1020077027542A KR20077027542A KR20070122577A KR 20070122577 A KR20070122577 A KR 20070122577A KR 1020077027542 A KR1020077027542 A KR 1020077027542A KR 20077027542 A KR20077027542 A KR 20077027542A KR 20070122577 A KR20070122577 A KR 20070122577A
Authority
KR
South Korea
Prior art keywords
data stream
stream
packets
encrypted
frame
Prior art date
Application number
KR1020077027542A
Other languages
English (en)
Inventor
로랜드 맨더스
에릭 무어스
알베르트 리크카에르트
Original Assignee
코닌클리케 필립스 일렉트로닉스 엔.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20070122577A publication Critical patent/KR20070122577A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • 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
    • H04N21/26606Channel 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 for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4623Processing of entitlement messages, e.g. ECM [Entitlement Control Message] or EMM [Entitlement Management Message]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400)로서, 상기 디바이스(3400)는 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하기 위한 해독 유닛(3402); 해독된 데이터 스트림(3403)에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하기 위한 검출 유닛(3404); 및 검출된 위치 정보에 기초하여, 해독된 데이터 스트림(3403)의 대응하는 부분들로써 암호화된 데이터 스트림(3401)의 부분들을 교체하기 위한 교체 유닛(3405)을 포함한다.
트릭 플레이 재생 모드, 포워드 예측 프레임, 제어 워드, 패킷 헤더

Description

패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법{A device for and method of processing a data stream having a sequence of packets and timing information related to the packets}
본 발명은 암호화된 데이터 스트림을 처리하는 디바이스에 관한 것이다.
이 외에도, 본 발명은 암호화된 데이터 스트림을 처리하는 방법에 관한 것이다.
또한, 본 발명은 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하기 위한 디바이스에 관한 것이다.
본 발명은 또한, 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 방법에 관한 것이다.
또한, 본 발명은 프로그램 요소에 관한 것이다.
또한, 본 발명은 컴퓨터 판독가능 매체에 관한 것이다.
전자 엔터테인먼트 디바이스들(electronic entertainment devices)은 점점 더 중요해지고 있다. 특히, 다수의 증가하는 사용자들은 하드디스크 기반의 오디오/비디오 플레이어들 및 다른 엔터테인먼트 설비를 구입한다.
저장 공간의 감소가 오디오/비디오 플레이어 분야에서 중요한 이슈이므로, 오디오 및 비디오 데이터는 종종, 압축된 방식으로 저장되고, 안전 상의 이유로, 암호화된 방식으로 저장된다.
MPEG2는 동화상들 및 연관된 오디오의 일반적인 코딩을 위한 표준이며, GOP("Group Of Pictures") 구조라고 불리는 특정한 순서로 배열될 수 있는 프레임 데이터의 비디오 스트림 출력을 생성한다. MPEG2 비디오 비트스트림은 화상들을 부호화하는 일련의 데이터 프레임들로 이뤄진다. 화상을 인코딩하는 3가지 방식은 인트라 코딩(I picture), 포워드 예측(forward predictive)(P picture) 및 양방향 예측(B picture)이다. 인트라 코딩된 프레임(I-frame)은 특정한 화상에 연관되고, 대응하는 데이터를 포함한다. 포워드 예측 프레임(P-frame)은 선행하는 I-frame 또는 P-frame의 정보를 필요로 한다. 양방향 예측 프레임(B-frame)은 선행 및 후속하는 I-frame 또는 P-frame의 정보에 의존한다.
정상 재생 모드(normal reproduction mode)로부터 스위칭하는 것은 미디어 플레이백 디바이스에서 흥미로운 기능이며, 여기서 미디어 콘텐트는 트릭 플레이 재생 모드(trick-play reproduction mode)에 대해 정상 속도로 플레이백되고, 미디어 콘텐트는 수정된 방식, 예컨대 증가된 속도("빠른 포워드(fast forward)")로 플레이백된다.
하지만, 트릭 플레이 스트림을 생성하기 위해서는, 호환된 방식으로 데이터를 처리하는 것이 필요할 수 있다.
WO 03/107664 A1은 I 프레임들의 시작들과 끝들(ends)이 검출되는, 암호화된 데이터 정보를 포함하는 스트림을 처리하는 방법 및 장치를 개시한다. 검출에 응답하여, 대응하는 패킷이 암호화되는지가 제어된다.
본 발명의 목적은 효과적인 방식으로 데이터 스트림을 처리하는 것이다.
상기 목적을 달성하기 위해, 독립청구항들에 따라, 암호화된 데이터 스트림을 처리하는 디바이스 및 방법, 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 디바이스 및 방법, 프로그램 요소, 및 컴퓨터 판독가능 매체가 제공된다.
본 발명의 예시적인 실시예에 따라, 암호화된 데이터 스트림을 처리하는 디바이스가 제공되고, 상기 디바이스는 암호화된 데이터 스트림으로부터 해독된 데이터 스트림을 생성하기 위한 해독 유닛, 해독된 데이터 스트림에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하기 위한 검출 유닛, 및 검출된 위치 정보에 기초하여, 해독된 데이터 스트림의 대응하는 부분들로써 암호화된 데이터 스트림의 부분들을 교체하기 위한 교체 유닛을 포함한다.
본 발명의 또 다른 예시적인 실시예에 따라, 암호화된 데이터 스트림을 처리하는 방법이 제공되며, 상기 방법은 암호화된 데이터 스트림으로부터 해독된 데이터 스트림을 생성하는 단계, 해독된 데이터 스트림에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하는 단계, 및 검출된 위치 정보에 기초하여, 해독된 데이터 스트림의 대응하는 부분들로써 암호화된 데이터 스트림의 부분들을 교체하는 단계를 포함한다.
본 발명의 또 다른 예시적인 실시예에 따라, 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 디바이스가 제공되며, 상기 디바이스는 데이터 스트림 상의 패킷들을 균일하게 분배하기 위한 분배 유닛, 및 패킷들의 균일한 분배로 조정되는 수정된 타이밍 정보로써 데이터 스트림의 타이밍 정보를 교체하기 위한 교체 유닛을 포함한다.
본 발명의 또 다른 예시적인 실시예에 따라, 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 방법이 제공되고, 여기서 상기 방법은 데이터 스트림 상의 패킷들을 균일하게 분배하는 단계, 및 패킷들의 균일한 분배로 조정되는 수정된 타이밍 정보로써 데이터 스트림의 타이밍 정보를 교체하는 단계를 포함한다.
이 외에도, 본 발명의 또 다른 예시적인 실시예에 따라, 컴퓨터 판독가능 매체가 제공되며, 여기서 컴퓨터 프로그램이 저장되고, 프로그램에 의해 실행될 때 컴퓨터 프로그램은 상술한 방법들 중 어느 하나를 제어하거나 실행하도록 적응된다.
또한, 본 발명의 또 다른 예시적인 실시예에 따라, 프로그램 요소가 제공되며, 여기서, 프로세서에 의해 실행될 때 프로그램 요소는 상술한 방법들 중 어느 하나를 제어하거나 실행하도록 적응된다.
본 발명에 따른 데이터 처리는 컴퓨터 프로그램, 즉 소프트웨어에 의해 또는 하나 이상의 특별한 전자 최적화 회로들, 즉 하드웨어에 의해, 또는 하이브리드 형태, 즉 소프트웨어 성분들과 하드웨어 성분들에 의해 구현될 수 있다.
본 발명에 따른 특징들은 특별히, 데이터 스트림의 추가적인 사용을 위해 요구되는 데이터 스트림 내의 데이터만을 선택적으로 교체시킴으로써 효과적인 방식으로 데이터 스트림의 처리가 수행될 수 있다는 이점을 갖는다. 달리 말해서, 기존 데이터 스트림은 얻어진 데이터 스트림이 특정한 타깃 애플리케이션 예컨대 트릭 플레이 생성을 위한 기초로서 사용될 수 있도록 단지 부분적으로 수정된다(바람직하게는, 가능한 한 소수의 수정들만이 수행됨). 그러므로, 본 발명의 실시예들의 공통적인 특징은 데이터 스트림의 특정한 부분들의 선택적 교체에 관한 것이다.
본 발명의 한 특징에 따라, 이것은 특별히, 암호화된 데이터 스트림을 완벽하게 해독함으로써, 그리고, 완전히 해독된 데이터 스트림에 I 프레임 위치들을 검출함으로써, 그리고 암호화된 데이터 스트림에서 이들 부분들만을 선택적으로 교체함으로써 구현될 수 있고, 상기 부분들은 I 프레임들의 위치에 관련된다. 이러한 조치를 취함으로써, 이들 부분들만이 해독되는 것이 보장될 수 있으며, 이에 대해, 암호화된 측과 해독된 측의 혼합인 처리된 데이터 스트림이 트릭 플레이 생성을 위한 기초로서 사용될 수 있도록, 비암호화된 전송이 절대적으로 필요하다. 그러므로, 효과적인 처리 및 높은 수준의 보안이 동시에 달성될 수 있다.
그러므로, 암호화된 원 정상 플레이 스트림(encrypted original normal stream)의 경우에(부분적으로는 MPEG 표준에서), 디지털 비디오 방송(DVB) 암호화된 트릭 플레이 스트림은 DVB 암호화 엔진(예컨대, 가정에서)의 사용이 허용되지 않는 시나리오에서도 생성될 수 있다.
본 발명의 이러한 특징의 예시적인 실시예에 따라, 데이터 패킷들을 포함하는 암호화된 비디오 전송 스트림으로부터 하이브리드 스트림을 생성하는 방법이 제공되며, 여기서, 암호화된 비디오 전송 스트림의 해독된 전송 스트림이 우선 생성된다. 이어서, I 프레임들이 해독된 전송 스트림에서 검출될 수 있으며, 여기서, I 프레임(들)의 시작 및 끝에 대한 포인터들이 식별될 수 있다. 더욱이, I 프레임들의 시작 및 끝에 대한 포인터들의 위치들에서, 해독된 전송 스트림의 대응하는 해독된 패킷들이 전송 스트림에서 암호화된 패킷들을 교체할 수 있다.
그러므로, 하이브리드 전송 스트림(즉, 평문인 몇몇 패킷들을 갖는 기본적으로 암호화된 전송 스트림)이 생성될 수 있다. 본 명세서에서, (이 하이브리드 스트림으로부터 유효한 MPEG2 트릭 플레이 전송 스트림을 생성할 수 있도록) 최소한 평문이어야 하는 전송 스트림의 패킷들이 생성되거나 선택될 수 있다. 또한, 트릭 플레이 전송 스트림을 구성하는데 필요한 여러 가지 중요한 필드들의 검출이 실행될 수 있다. 그러므로, (DVB) 암호화된 트릭 플레이 스트림은 가정에서 (DVB) 암호화 엔진을 사용하는 것이 허용되지 않는 경우에도 생성될 수 있다.
본 발명에 따른 시스템의 예시적인 응용 분야들은 디지털 비디오 레코딩 디바이스들(예컨대, HDD 조합들, DVD+RW 등등), 트릭 플레이를 사용하는 네트워크 인에이블된 디바이스들(network enabled devices)이다.
본 발명의 설명된 특징에 따라, 임의의 프레임(I 프레임, P 프레임, 또는 B 프레임)에 대해 평문이어야 하는 데이터의 최소량은 그것으로부터 암호화된 트릭 플레이 스트림의 생성을 허용하기 위해 추정될 수 있다. 그 외에도, 어느 전송 스트림 패킷들이 평문이어야 하고 암호화될 수 있는지를 결정하는 것이 가능하다. 이 결정 및 대응하는 변환(특별히는, 해독)은 방송에서 또는 스트림을 수신하는 저장 디바이스에서 행해지도록 의도된다.
더욱이, 본 발명에 따라, 트릭 플레이 스트림이 이 스트림으로부터 생성될 때 수신기 끝에서 다시 부분적으로(하지만, 대부분의 경우에는 완전히) 암호화된 스트림의 프레임 경계들을 검출하는 것이 가능하다. 이것은 암호화된 트릭 플레이 스트림을 생성하는 것을 가능하게 한다. 그러므로, 암호화된 전송 스트림이 생성될 수 있고, 이를 위해, 프레임 위치들이 검출될 수 있다.
본 발명의 설명된 특징에 따라, 암호화된 스트림으로 시작하는 것이 가능하고, 변경될 필요가 있는 이들 패킷들만이 해독될 수 있다. 그것들은, 특히 암호기가 사용될 수 없는 시나리오에서, 일반적으로 재암호화될 수 없다. 이 동작을 수행하기 위해, 스트림은 헤더들을 찾기 위해 가장 먼저 해독될 수 있다. 실제로, 설명된 특징은 입력으로서 암호화된 스트림 및 평문을 사용할 수 있다. 헤더 검출에 기초하여, 입력 스트림이 출력으로 보내지도록 선택이 행해질 수 있다. 전체 처리가 IC 에서와 같이 보안 환경에서 수행될 수 있어, 평문 스트림은 액세스될 수 없다. 이것은 시스템이 암호화된 입력 스트림 및 몇몇 평문 패킷들을 갖는 대부분의 암호화된 출력 스트림을 가질 수 있다는 것을 의미한다. 몇몇 경우들에서, 헤더 정보를 포함하는 패킷들 모두가 평문일 수는 없는데, 왜냐하면, 이들 부분들만이 변경되어야 하는 평문일 필요가 있으며, 필연적으로 완전한 헤더일 필요는 없기 때문이다. 이것은 특별히, 예컨대, 화상 시작 코드가 두 개의 패킷들로 나눠질 때 명백하다. 이 경우에, 화상 시작 코드의 일부는 여전히 암호화될 수 있다. 평문으로 될 필요가 있는 패킷들을 선택하기 위해 알고리즘이 제공될 수 있다. 이 알고리즘은 부분적으로 암호화된 화상 시작 코드들을 야기하지만, 메모리 요구를 최소화할 수 있다. 평문의 완전한 화상 시작 코드를 놓는 것은 보다 큰 버퍼 메모리를 필요하게 한다.
본 발명에 따른 또 다른 특징에 따라, 패킷들의 시퀀스 및 이들 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림은 데이어 스트림의 패킷들을 스무싱(smoothing)하거나 균일하게 분배함으로써, 그리고, 스무스된 데이터 스트림에 관련된 타이밍 정보를 생성 및 통합하여 데이터 스트림의 타이밍 정보를 교체 및 업데이트함으로써 처리될 수 있다. 하지만, 교체는 분배 전에 수행될 수 있다. 스무스된 데이터 스트림의 호환을 위해 데이터 스트림의 일부를 대응하는 타이밍 정보 요구사항들(timing information requirements)로 교체함으로써, 트릭 플레이 생성의 일부로서 기능할 수 있는 수정된 데이터 스트림이 생성된다.
본 발명의 이러한 특징에 따라, 비디오 스트림으로부터 트릭 플레이 스트림을 생성하는 방법이 제공되며, 여기서, 비디오 스트림은 패킷들에서 기원된 GOP(Group Of Pictures)로 구성될 수 있고, 상기 패킷들은 GOP 시간 윈도우 내에 전송된다. 설명된 방법에 따라, PCR(Program Clock Reference) 패킷들은 GOP 시간 윈도우 및 GOP의 패킷들의 총 수로부터 떨어진 패킷 시간 거리에 기초하여 계산될 수 있다. 또한, 각각의 트릭 플레이 GOP의 시작에 PCR 패킷을 부가하여 트릭 플레이 스트림의 시간 베이스(time base)를 생성할 수 있다.
존재한다면, DTS(Decoding Time Stamp) 및/또는 PTS(Presentation Time Stamp)는 대응하여 시간 베이스에 대해 적응될 수 있다.
암호화된 트릭 플레이 스트림의 예시적인 경우에, ECM(Entitlement Control Messages)은 수신기(예컨대, 셋톱 박스, STB)에 의해 해독기를 인에이블하기 위해 이 트릭 플레이 스트림에 제공될 수 있다. 예를 들어, ECM은 트릭 플레이 스트림의 이전 트릭 플레이 GOP의 끝에 부가될 수 있다.
본 발명의 설명된 특징에 따라, 전송 스트림 레벨에 대한 트릭 플레이 스트림(암호화되거나 평문이거나, 또는 그 둘의 혼합임)은 (특별히, 어떠한 리멀티플렉싱(re-multiplexing) 없이) 정상 플레이를 위해 사용되는 것과 동일한 출력 회로에 의해 처리될 수 있다. 또한, 전송 스트림 레벨로 트릭 플레이를 구성하기 위해 적은 프로세싱 자원들로도 충분할 수 있다. 더욱이, 본 발명의 예시적인 실시예에 다른 트릭 플레이 방법은 선첨부된 패킷 도착 시간 스탬프들(pre-pended packet arrival time stamps)을 가지거나 그것이 없이 전송 스트림들에 대해 사용될 수 있다.
그러므로, 본 발명의 예시적인 실시예에 따라, 전송 스트림 레벨에 대한 트릭 플레이 스트림 구성은 리멀티플렉싱 없이 인에이블된다. 이를 위해, 트릭 플레이 스트림은 전송 스트림 밖에서 생성될 수 있고, 여기서 패킷들은 트릭 플레이 스트림 GOP에 대해 스무스되고, 타이밍 정보는 새로운 시간 베이스 정보(예컨대, PTS, DTS, PCR)에 의해 교체될 수 있고, ECM은 암호화된 트릭 플레이 스트림(예컨대, 트릭 플레이 GOP의 끝)에 부가될 수 있다.
이하에서, 본 발명의 예시적인 실시예에 따른 또 다른 몇몇 특징들이 설명된다.
전송 스트림 패킷들은 하나의 트릭 플레이 GOP("TP GOP")에 대해 스무스될 수 있다. 또한, TP GOP들 간의 전송 시간에서의 거리는 일정할 수 있고, 프레임들 및 GOP의 총 디스플레이 시간과 정확히 같다. 부가적인 PCR 패킷은 각 GOP의 시작에 제공될 수 있다. PES 패킷 크기는 TP GOP당 하나의 DTS/PTS가 되는 하나의 TP GOP와 같을 수 있다. 이 외에, DTS는 다음 TP GOP의 PCR 베이스(base)와 같거나 그보다 클 수 있다. 예를 들어, 그것은 다음 TP GOP의 PCR 베이스와 같을 수 있다. 다음 TP GOP의 PCR 베이스는 일정한 델타 값 플러스 현재 TP GOP 플러스의 PCR 베이스와 같을 수 있다. 이 외에, 그것은 어느 ECM이 수행성능을 개선하거나 최적화하기 위한 스트림 내의 포인트에 삽입되는지를 정확하게 정의할 수 있다. SCB(Scrambling Control Bits) 토글에 의존하여, 이 위치는 GOP 경계들 및 때로는 I 프레임 데이터 내에 있을 수 있다.
일정하고, GOP에서 프레임들의 총 디스플레이 시간과 같은 TP GOP들 간의 전송 시간에서의 거리의 선택, 및 각각의 TP GOP의 시작에서 부가적인 PCR 패킷의 제공은 PCR 확장(extension)이 0으로 세팅될 수 있으므로, PCR들의 생성에 대한 간단한 메커니즘을 이끌어낼 수 있고, 보다 복잡한 모듈로 3000 계산(modulo 300 calculation)에 대한 필요성을 제거한다. 더욱이, 후속 PCR들 간의 차는 고정된 델타 값일 수 있고, 델타 값은 또한 알고리즘의 단순화에 기여할 수 있다.
하나의 TP GOP와 같은 PES 패킷 크기를 제공하기 위해, 그리고, 다음 TP GOP의 PCR 베이스와 같거나 그보다 큰 DTS를 제공함으로써, 동일한 고정된 델타가 PCT들용으로서 사용될 수 있으므로, 단순한 알고리즘이 DTR 값들의 생성을 위해 얻어진다. 실제로, DTR는 다음 TP GOP에 삽입되어야 하는 PCR과 같을 수 있다. 또한, 달리 말해서, PCR는 이전 TP GOP의 DTR과 같을 수 있다. 이것은 실제 계산이 2번이 아닌 1번 실행되어야 한다는 것을 의미한다.
ECM의 삽입은 수정된 데이터 스트림의 구조를 최적화할 수 있게 한다.
또한, 암호화된 정상 플레이 스트림으로부터 암호화된 트릭 플레이 스트림을 구성하는 것이 이로울 수 있다. 이것은 빠른 포워드 또는 리버스, 심지어는 느린 포워드에 대해서도 특별히 이로울 수 있다. 더욱이, 트릭 플레이 스트림에 대한 암호화 방법이 정상 플레이에 대한 것과 동일한 것이 이로울 수 있다.
종속청구항들을 참조하여, 본 발명의 추가 예시적인 실시예들이 설명된다.
다음으로, 암호화된 데이터 스트림을 처리하기 위한 디바이스의 예시적인 실시예들이 설명된다. 이들 실시예들은 또한 암호화된 데이터 스트림을 처리하는 방법, 컴퓨터 판독가능 매체, 및 프로그램 요소에 적용될 수 있다.
검출 유닛은 해독된 데이터 스트림에서 적어도 하나의 포워드 예측 프레임(P-frame) 및/또는 적어도 하나의 양방향 예측 프레임(B-frame)의 위치 정보를 검출하기 위해 적응될 수 있다. 달리 말해서, 부가적으로 또는 I 프레임 경계들의 검출 및 해독된 위치들로써 데이터 스트림의 대응하는 암호화된 위치들을 교체하는 것에 대한 대안으로서, P 프레임 및/또는 B 프레임 경계들이 검출될 수 있고, 대응하는 해독된 위치들에 의해 교체될 수 있다. 여러 가지 트릭 플레이 애플리케이션들을 위해, 모든 프레임 경계들을 찾는 것이 이로울 수 있다.
디바이스는 하이브리드 스트림을 레코딩하기 위해 적응될 수 있다. 원래 암호화된 위치 및 수정된 해독 부분을 포함하는 하이브리드 스트림은 디바이스에 저장될 수 있다.
디바이스의 검출 유닛은, 위치 정보로서, 해독된 데이터 스트림에서 적어도 하나의 인트라 코딩된 프레임들의 시작 위치 및 끝 위치를 검출하기 위해 적응될 수 있다. I 프레임의 시작 위치와 끝 위치만이 암호화된 데이터 스트림에서 디코딩된 방식으로 삽입되어야 한다. 이러한 조치를 위함으로써, 데이터 스트림에서 해독된 데이터의 양은 보안이 최대화될 수 있도록 최소화될 수 있다.
교체 유닛은 해독된 데이터 스트림에서 적어도 하나의 인트라 코딩된 프레임의 검출된 시작 위치 및 끝 위치에서 해독된 데이터 스트림의 대응하는 위치들로써 암호화된 데이터 스트림의 위치들을 교체하기 위해 적응될 수 있다. 특히, I 프레임들의 주요 부분은 높은 정도의 보안을 허용하도록 암호화될 수 있다.
또한, 부가 유닛은 교체 유닛 이전에 이미 처리된 데이터 스트림에 타이밍 정보를 부가하기 위해 적응될 수 있다. 예전 타이밍 정보가 원 데이터 스트림에 관련되므로, 트릭 플레이로의 변환은 타이밍 정보가 더 이상 트릭 플레이에 대해 정확하지 않을 수 있다는 결론을 가질 수 있다. 이를 위해, 타이밍 정보는 수정된 데이터 스트림에 따라 업데이트될 수 있다.
특히, 부가 유닛은 평문인 타이밍 정보를 부가하기 위해 적응될 수 있다. 이어서, 타이밍 정보 및 I 프레임들의 시작들 및 끝들은 평문으로 될 수 있고, 여기서, 데이터 스트림의 나머지는 여전히 암호화될 수 있다. 교체 유닛은 또한, 상기 양이 트릭 플레이 재생 모드에서 재생을 위해 데이터 스트림을 생성하는데 최소한으로 요구되는 해독된 데이터 스트림의 대응하는 위치들로써 암호화된 데이터 스트림의 데이터 량을 교체하기 위해 적응될 수 있다. 암호화된 데이터 스트림에서 해독된 데이터 콘텐트의 양을 최소화시킴으로써, 인증되지 않은 액세스의 위험이 최소화된다.
교체 유닛은 적어도 하나의 인트라 코딩된 프레임의 시작 위치 및 끝 위치 사이의 데이터가 해독된 데이터 스트림의 위치들을 대응시킴으로써 교체되는 것으로부터 자유로울 수 있는 방식으로 적응될 수 있다. I 프레임의 시작 및 끝에서만의 해독은 대부분의 I 프레임 데이터 블록을 암호화된 것으로 유지할 수 있게 하고, 필요한 위치들만이 해독되고 평문으로 전송가능하다. 부가 유닛은 트릭 플레이 생성 유닛에 위치되는 반면에, 교체 유닛은 레코딩 측에 위치될 수 있다. 교체 유닛은 부분적으로 암호화된 데이터 스트림의 헤더 유닛에서 PES 패킷 길이 표시자(packet length indicator), PTS(Presentation Time Stamp), 및/또는 DTS(Decoding Time Stamp)를 교체하기 위해 적응될 수 있다.
본 발명에 따른 디바이스는 비디오 데이터 또는 오디오 데이터의 암호화된 데이터 스트림을 처리하기 위해 적응될 수 있다. 하지만, 이러한 미디어 콘텐트는 본 발명에 따른 방법으로 처리될 수 있는 데이터 타입만이 아니다. 트릭 플레이 생성 및 유사한 애플리케이션들은 비디오 처리 및 (순수한) 오디오 처리 둘 모두에 대한 이슈이다.
본 발명에 따른 디바이스는 디지털 데이터의 암호화된 데이터 스트림을 처리하기 위해 적응될 수 있다.
또한, 디바이스는 교체 유닛의 출력에 기초하여, 트릭 플레이 재생 모드에서의 재생을 위해 데이터 스트림을 생성하기 위해 적응될 수 있다. 사용자는 사용자 인터페이스, 예컨대, 디바이스의 버튼들, 키패드, 또는 원격 제어장치에서 대응하는 옵션들을 선택함으로써 이러한 트릭 플레이를 조정할 수 있다. I 프레임들의 위치에 관련된 정보를 요구할 수 있는 사용자에 의해 선택된 트릭 플레이 재생 모드는 빠른 포워드 재생 모드, 빠른 리버스 재생 모드, 슬로우 모션 재생 모드, 프리즈 프레임 재생 모드(freeze frame reproduction mode), 순간 리플레이 재생 모드, 및 리버스 재생 모드로 구성되는 그룹 중 하나일 수 있다. 하지만, 다른 트릭 플레이 방식들도 가능하다. 트릭 플레이를 위해, 후속 데이터의 위치가 (예컨대, 비주얼 디스플레이 및/또는 음향 출력에 대한) 출력을 위해 사용되어야 한다. 데이터 스트림 내의 모든 데이터가 디스플레이가능 신호들을 생성하기 위해 다른 데이터(I 프레임들)로부터 독립적으로 사용될 수 있으므로, 독립적으로 사용가능한 데이터(I 프레임들)에 대한 지식이 요구될 수 있다.
본 발명에 따른 디바이스는 암호화된 MPEG2 데이터 스트림을 처리하기 위해 적응될 수 있다. MPEG2는, MPEG에 의해 동의되며, ISO/IEC 13818 국제 표준으로서 발행된 오디오 및 비디오 코딩 표준들의 그룹에 대한 호칭이다. MPEG2는 디지털 위성 및 케이블 TV를 포함하는 방송 신호들에 대한 오디오 및 비디오를 인코딩하는데 사용될 수 있고, 또한 DVD에 대해 사용될 수도 있다.
본 발명에 따른 디바이스는 디지털 비디오 레코딩 디바이스, 네트워크 인에이블된 디바이스, 조건 액세스 시스템, 휴대용 오디오 플레이어, 휴대용 비디오 플레이어, 모바일 폰, DVD 플레이어, CD 플레이어, 하드디스크 기반의 미디어 플레이어, 인터넷 무선 디바이스, 공용 엔터테인먼트 디바이스, 및 MP3 플레이어로 구성된 그룹 중 적어도 하나로서 구현될 수 있다. 하지만, 이들 애플리케이션들은 단지 예이다.
다음으로, 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 디바이스의 예시적인 실시예들이 설명된다. 이들 실시예들은 또한, 패킷들의 시퀀스 및 상기 패킷들과 관련된 타이밍 정보를 갖는 데이터 스트림을 처리하는 방법, 컴퓨터 판독가능 매체, 및 프로그램 요소들에 적용될 수 있다.
이 디바이스에서, 분배 유닛은 두 개의 후속하는 인트라 코딩된 프레임들 사이의 데이터 스트림의 부분에 관련된 패킷들을 분배한다. 방송 유닛에서, I 프레임과 관련된 서로 다른 패킷들은 비등거리 방식(non-equidistant manner)으로 제공될 수 있다. 분배 유닛은 패킷들을 등거리로 재배열시킬 수 있는데, 즉 시간 도메인에서 패킷들의 분배를 스무스(smooth)하게 한다. 이 스무스하게 하는 것은 특정한 I 프레임에 관련된 각 패킷 그룹에 대해 독립적으로 수행될 수 있다. 이러한 조치를 취함으로써, 로컬 비트 레이트(local bit rate)를 가능한 한 작게 유지하는 것이 가능하고, 여기서 평균 레이트는 동일하다.
교체 유닛은 처리된 데이터 스트림의 시작 위치에서 수정된 타이밍 정보를 배열하기 위해 적응될 수 있다. 이어서, 타이밍 정보는 패킷들에 선행하고, 그러므로, 이러한 타이밍 정보를 제공하기 위한 이로운 위치가 얻어진다.
교체 유닛은 수정된 타이밍 정보로서 PCR(Program Clock Reference), DTS(Deciding Time Stamp) 및/또는 PTS(Presentation Time Stamp)를 생성하기 위해 적응될 수 있다. DTS/PTS는 PCR에 의존한다.
특히, 디바이스는 암호화된 데이터 스트림을 처리하기 위해 적응되며, 암호화된 데이터 스트림을 해독하기 위해 처리된 데이터 스트림에 해독 정보를 삽입하기 위해 적응된 해독 정보 삽입 유닛을 포함할 수 있다. 예를 들어, ECM들은 해독 정보 삽입 유닛에 의해 해독 정보로서 삽입될 수 있다. 특히, 처리된 데이터 스트림의 끝에 해독 정보를 삽입하는 것이 이로울 수 있다. 보다 특별히는, 타이밍 정보가 실제 데이터 앞에 놓이는 것이 가능하고, ECM들이 데이터의 끝에 제공되어, 데이터는 타이밍 정보와 해독 정보에 의해 샌드위치된다.
위에서 이미 언급한 바와 같이, 디바이스는 비디오 데이터 또는 오디오 데이터의 데이터 스트림을 처리하기 위해 적응될 수 있다. 특히, 순수한 비주얼 데이터, 순수한 오디오 데이터, 또는 그 둘의 혼합 또는 조합이 본 발명에 따라 처리될 수 있다.
디바이스는 디지털 데이터의 데이터 스트림을 처리하기 위해 적응될 수 있다. 위에서 언급된 바와 같이, 트릭 플레이 생성이 가능하다. 트릭 플레이를 위한 서로 다른 예시적인 재생 모드들이 위에서 언급되었다.
또한 위에서 언급한 바와 같이, 암호화된 MPEG2 데이터 스트림을 처리하는 것이 가능하다. 또한, 본 발명의 디바이스가 이롭게 통합될 수 있다는 것이 위에서 설명되었다.
위에서 정의된 특징들 및 본 발명의 특징들은 여기에서 설명될 실시예들의 예들로부터 명백해지며, 실시예의 예들을 참조하여 설명된다.
본 발명은 실시예의 예들을 참조하여 이하에서 상세히 설명되지만, 본 발명이 그에 제한되지는 않는다.
도 1은 시간 스탬프된 전송 스트림 패킷(time-stamped transport stream packet)을 도시하는 도면.
도 2는 인트라 코딩된 프레임들 및 포워드 예측 프레임들을 갖는 화상 구조의 MPEG2 그룹을 도시하는 도면.
도 3은 인트라 코딩된 프레임들, 포워드 예측 프레임들, 및 양방향 예측 프레임들을 갖는 화상 구조의 MPEG2 그룹을 도시하는 도면.
도 4는 특징적인 포인트 정보 파일의 구조 및 저장된 스트림 콘텐트를 도시하는 도면.
도 5는 평문 스트림(plaintext stream)에 대한 트릭 플레이를 위한 시스템을 도시하는 도면.
도 6은 트릭 플레이에서의 시간 압축을 도시하는 도면.
도 7은 부분 거리를 갖는 트릭 플레이를 도시하는 도면.
도 8은 저속 트릭 플레이를 도시하는 도면.
도 9는 일반적인 조건 액세스 시스템 구조를 도시하는 도면.
도 10은 디지털 비디오를 방송하는 암호화된 전송 스트림 패킷을 도시하는 도면.
도 11은 도 10의 디지털 비디오를 방송하는 암호화된 전송 스트림 패킷의 전송 스트림 패킷 헤더를 도시하는 도면.
도 12는 완전히 암호화된 스트림에 대한 트릭 플레이를 수행하도록 허용하는 시스템을 도시하는 도면.
도 13은 완전 전송 스트림(full transport stream) 및 부분 전송 스트림(partial transport stream)을 도시하는 도면.
도 14는 스트림 변환을 위한 저장 디바이스와 방송기(broadcaster) 사이의 데이터 전송 시스템을 도시하는 도면.
도 15는 평문 레코딩에 대한 트릭 플레이를 도시하는 도면.
도 16은 완전히 암호화된 레코딩에 대한 트릭 플레이를 도시하는 도면.
도 17은 부분적으로 암호화된 레코딩에 대한 트릭 플레이를 도시하는 도면.
도 18은 완전한 평문 화상 시작 코드에 대한 버퍼링 요구를 도시하는 도면.
도 19는 I 프레임의 시작에서의 부분적인 평문 영역을 도시하는 도면.
도 20a 및 도 20b는 실제 평문 영역들을 도시하는 도면.
도 21은 두 개의 패킷들에 대한 화상 시작 코드 확산(picture start codes spread)을 도시하는 도면.
도 22는 부분적으로 암호화된 화상 시작 코드에 첨가된 빈(empty) P 프레임을 도시하는 도면.
도 23은 평문 데이터 영역들을 도시하는 도면.
도 24는 MPEG2 표준에서의 헤더 구조를 도시하는 도면.
도 25는 시퀀스 확장(sequence extension) 및 시퀀스 헤더 코드를 도시하는 도면.
도 26은 화상 코딩 확장 및 화상 시작 코드를 도시하는 도면.
도 27은 두 개의 패킷들에 대한 시퀀스 헤더 코드 확장을 도시하는 도면.
도 28은 트릭 플레이에서의 패킷 스무싱(packet smoothing)을 도시하는 도면.
도 29는 PCR 시간 베이스에 관련된 DTS 및 PTS를 도시하는 도면.
도 30은 트릭 플레이 GOP들 사이에 ECM들을 삽입하는 것을 도시하는 도면.
도 31은 I 프레임 내에 ECM들을 삽입하는 것을 도시하는 도면.
도 32는 방송 및 저장 디바이스 사이의 신호 경로 및 하이브리드 스트림으로의 변환을 위한 위치를 도시하는 도면.
도 33은 완전히 암호화된 레코딩으로부터 안전한 트릭 플레이를 생성하는 것을 도시하는 도면.
도 34a는 본 발명의 예시적인 실시예에 따라 암호화된 데이터 스트림을 처리하는 디바이스의 하이브리드 스트림 생성 블록 다이어그램.
도 34b는 본 발명에 따라 암호화된 데이터 스트림을 처리하는 디바이스의 트릭 플레이 스트림 생성 블록 다이어그램으로서, 도 34a의 하이브리드 스트림 생성 블록 다이어그램과 함께 사용될 수 있는, 상기 트릭 플레이 스트림 생성 블록 다이 어그램을 도시하는 도면.
도 35는 본 발명에 따른 예시적인 실시예에 따라 암호화된 데이터 스트림을 처리하는 방법의 서로 다른 스테이지들에서의 데이터 패킷들을 도시하는 도면.
도 36은 본 발명의 예시적인 실시예에 따라 패킷들에 관련된 타이밍 정보 및 패킷들의 시퀀스를 갖는 데이터 스트림을 처리하는 디바이스를 도시하는 도면.
도면에서의 설명은 개략적인 것이다. 서로 다른 도면들에서, 유사하거나 동일한 요소들에는 동일한 도면번호가 제공된다.
아래에서, 도 1 내지 도 13을 참조하여, 본 발명의 예시적인 실시예들에 따른 전송 스트림에 대한 트릭 플레이 구현의 서로 다른 특징들이 설명된다.
특히, MPEG2 인코딩된 스트림에 대한 트릭 플레이를 수행하는 여러 가지 가능성들이 설명되고, 부분적으로 또는 전체적으로 암호화될 수 있고, 암호화되지 않을 수 있다. 아래의 설명은 MPEG2 전송 스트림에 특정한 방법들을 대상으로 한다. 하지만, 본 발명은 이 포맷에 제한되지는 않는다.
실험들은 소위 시간 스탬프된 전송 스트림을 확장하여 실제로 행해졌다. 이것은 전송 스트림 패킷들을 포함하고, 그 패킷들 모두는 전송 스트림 패킷 도달 시간이 놓이는 4바이트 헤더로 미리 첨부(pre-pend)된다. 이 시간은 패킷의 제 1 바이트가 레코딩 디바이스에서 수신될 때 프로그램 클록 기준(PCR) 시간 베이스(time base)의 값으로부터 유도될 수 있다. 이것은 스트림의 플레이백이 비교적 쉽게 처리되도록, 스트림을 갖는 타이밍 정보를 저장하는 적절한 방법이다.
플레이백 동안의 한가지 문제는 MPEG2 디코더 버퍼가 오버런(overrun)하거나 언더플로우(underflow)하지 않도록 보장하는 것이다. 입력 스트림이 디코더 버퍼 모델에 호환하면, 적절한 타이밍을 검색하여, 출력 스트림이 또한 호환하도록 보장한다. 여기에서 설명되는 트릭 플레이 방법들의 일부는 시간 스탬프에 독립적이고, 시간 스탬프들을 갖거나 시간 스탬프 없이 전송 스트림들에 대해 동일하게 잘 동작한다.
도 1은 188바이트의 총 길이(104)를 갖는 시간 스탬프된 전송 스트림 패킷(100)을 도시하고, 4바이트의 길이(105)를 갖는 시간 스탬프(101), 패킷 헤더(102), 및 184 바이트의 길이를 갖는 패킷 페이로드(103)를 포함한다.
이에 따른 설명은 레코딩된 전송 스트림으로부터 MPEG/DVB(디지털 비디오 방송) 호환 트릭 플레이 스트림(compliant trick-play stream)을 생성하는 가능성들의 오버뷰(overview)를 제공하며, (예컨대 DVB 방식에 따라) 완전히 암호화된 스트림들에 대해 완전히 평문(그러므로, 데이터의 매 비트가 조작(manipulate)될 수 있음)인 스트림들로부터 기록된 스트림들의 완전 스펙트럼(full spectrum)을 커버하여, 헤더들 및 일부 테이블들만이 조작을 위해 액세스 가능하게 될 수 있다. 본 발명은 또한, 트릭 플레이 스트림을 생성하기 위해 조작될 필요가 있는 데이터만이 평문으로 되는, 이들 극한들(extremes) 사이의 해결책을 다룬다.
MPEG/DVB 전송 스트림에 대한 트릭 플레이를 생성할 때, 콘텐트가 적어도 부분적으로 암호화되는 경우에 문제점들이 발생할 수 있다. 일반적인 접근법이고 또는 해독 전에 임의의 패킷화된 기본 스트림(packetized elementary stream:PES)을 액세스하는, 기본 스트림 레벨로 하락할 가능성이 없다. 이것은 또한, 화상 프레임들을 찾는 것이 불가능하다는 의미이다. 알려진 트릭 플레이 엔진들은 이 정보를 액세스하고 처리하는 것을 필요로 한다.
본 설명에서, 용어 "ECM"은 자격 제어 메시지(Entitlement Control Message)를 나타낸다. 이 메시지는 특별히 비밀 제공자 특성 정보를 포함하고, 무엇보다도, MPEG 스트림을 해독하는데 필요한 암호화된 제어 워드들(CW)을 포함할 수 있다. 통상적으로, 제어 워드는 10-20초 내에 소멸한다. ECM들은 전송 스트림에서 패킷들에 실장된다.
본 설명에서, 용어 "키들(keys)"은 특별히, 스마트카드에 저장될 수 있고 EMM들 즉, 전송 스트림에 실장될 수 있는 소위 "자격 관리 메시지들(Entitlement Management Messages)"를 사용하는 스마트카드에 전송될 수 있는 데이터를 나타낸다. 이들 키들은 ECM에 존재하는 제어 워드들을 해독하기 위해 스마트카드에 의해 사용될 수 있다. 이러한 키의 예시적인 유효 기간은 1개월이다.
본 설명에서, 용어 "제어 워드들"(CW)은 특별히, 실제 콘텐트를 해독하는데 필요한 해독 정보를 나타낸다. 제어 워드들은 스마트카드에 의해 해독되고 해독 코어의 메모리에 저장될 수 있다.
이하에서, 평문 스트림에 대한 트릭 플레이에 관련된 몇몇 특징들이 설명된다.
MPEG2 스트림이 암호화되지 않는다 할지라도(즉, 평문을 말함), 트릭 플레이는 평범한 것이 아니다. 용이한 솔루션은 빠른 포워드 모드를 얻기 위해 디코더에 보다 빨리 데이터를 출력하는 것이지만, MPEG가 그것의 헤더들에 실장된 타이밍 관련 정보를 가지므로, 이것은 적절히 빠른 포워드를 얻을 것이라는 기대를 갖고 행해질 수는 없다. 그 대신에, 빠른 포워드를 수행하는 이 방법이 디스플레이 속도보다 빠른 프레임 속도를 부여할 수 있으므로, 드롭(drop)하기 위해 어떤 프레임들을 결정한다는 것은 어렵다.
또한, 이러한 스트림은 MPEG2 호환 전송 스트림이 아니다. 이것은 디코더가 저장 디바이스에 있다면 받아들여질 수 있지만, 신호가 표준 디지털 인터페이스에 의해 전송된다면, 문제가 될 수 있다. 또한, 비트 레이트는 전체 체인에서 극적으로 증가할 수 있다. 정상 플레이 스트림이 위성 방송으로부터 기원하는 단일 프로그램의 시간 스탬프된 전송 스트림이면, 정상 플레이에서 디코더에 대한 비트 레이트는 대략 40 Mbps이고, 패킷들은 (부분적 전송 스트림) 사이의 갭을 갖는 불규칙한 위치들에 있을 수 있다. 스트림이 트릭 플레이 팩터(trick-play factor)로 압축되면, 비트 레이트는 3x 트릭 플레이 속도에 대해 대략 120Mbps가 될 수 있다. 하드디스크 드라이브의 필요한 지속된 대역폭(sustained bandwidth)은 트릭 플레이 팩터에 따라 증가될 수 있다.
그래서, 정확한 양의 프레임들을 전달하는 것을 유지하는 것이 적절하지만, 높은 압출율을 달성하기 위해 비디오의 시간적인 리던던시(temporal redundancy)를 이용하는 MPEG와 같은 비디오 코딩 기술을 사용할 때 문제가 발생할 수 있다. 프레임들이 더 이상 독립적으로 디코딩될 수 없다.
복수의 화상 그룹들(GOP들)의 구조가 도 2에 도시되어 있다.
특히, 도 2는 I 프레임들(201) 및 P 프레임들(202)의 시퀀스를 갖는 여러 개의 MPEG2 GOP 구조들을 포함하는 스트림(200)을 도시한다. GOP 크기는 도면번호 203으로 나타내진다. GOP 크기(203)는 12개의 프레임들로 세팅되고, I 프레임들(201) 및 P 프레임들(202)만이 여기에 도시되어 있다.
MPEG에서, 제 1 프레임만이 다른 프레임들에 독립적으로 코딩되는 GOP 구조가 사용될 수 있다. 이것은 소위 인트라 코딩 또는 I 프레임(201)이다. 예측 프레임들 또는 P 프레임들(202)은 단방향 예측으로 코딩되고, 그것들이 도 2의 화살표들(204)로써 나타내지는 바와 같이 이전의 I 프레임(201) 또는 P 프레임(202)에만 의존한다는 것을 의미한다.
이러한 GOP 구조는 통상적으로, 12 또는 16개의 프레임들(201,202)의 크기를 갖는다. 2x 포워드의 트릭 플레이 속도가 요구되는 경우를 가정하자. 그래서, 예컨대, 매 제 2 프레임이 스킵(skip)된다. 이것은 디코딩 동안 재구성된 이전 프레임에 의존하므로 압축된 도메인에서 불가능하다. 그래서, 몇몇 압축된 프레임들을 드롭(drop)하고 타이밍 정보를 고정시키는 것은 옵션이 아니다.
그 대안은 전체 스트림을 우선 디코딩하고, 이어서 매 제 2 프레임을 스킵하고, 마지막으로, 남아있는 프레임들을 다시 인코딩하는 것이다. 이것은 트릭 플레이 회로 또는 소프트웨어의 수용 불가능한 복잡성을 야기할 수 있다. 그래서, 최상의 경우에, 몇몇 프레임들은 다른 프레임들이 의존하지 않는, GOP로부터 스킵될 수 있다. 12개의 프레임들의 GOP 크기를 갖는 2x의 트릭 플레이 속도의 예에 대해, 최종 6개의 P 프레임들만이 스킵될 수 있다. 이 경우에, 디스플레이되는 이미지들은 "점피(jumpy)" 성질로 이뤄질 수 있고, 여기서, 시간적으로 갑작스런 점프에 이어서, 짧은 정상 속도가 얻어진다. 특별히, 보다 높은 트릭 플레이 속도들에서, 이것은 유쾌할 수 없고, 일반적인 트릭 속도의 룩 앤 필(look and feel)을 뷰어(viewer)에게 제공하지 않는다.
복수의 화상 그룹들(GOP)의 또 다른 구조(300)가 도 3에 도시되어 있다.
특히, 도 3은 I 프레임들(201), P 프레임들(202) 및 B 프레임들(301)의 시퀀스를 갖는 MPEG2 GOP를 도시한다. GOP 크기는 도면번호 203으로 나타내진다.
도 3에 도시된 바와 같이, 양방향 예측 프레임들 또는 B 프레임들(301)을 포함하는 GOP 구조를 사용하는 것이 가능하다. 12개의 프레임들의 GOP 크기(203)가 본 예를 위해 선택된다. B 프레임들(301)은 양방향 예측으로 코딩되고, 곡선 화살표들(204)에 의해 몇몇 B 프레임들(301)에 대해 나타내지는 바와 같이, 그것들이 앞 및 다음 I 또는 P 프레임(201,202)에 의존한다는 것을 의미한다. 압축된 프레임들의 전송 순서는 그것들이 디스플레이되는 순서와 동일하지 않을 수 있다.
B 프레임(301)을 디코딩하기 위해, (디스플레이 순서에 있어) B 프레임(301) 전 및 후의 기준 프레임들 둘 모두가 필요하다. 디코더에서 버퍼 요구를 최소화하기 위해, 압축된 프레임들이 재순서화(reorder)될 수 있다. 그래서, 전송시에, 가장 먼저 기준 프레임들이 될 수 있다. 자체로 전송되는 재순서화된 스트림이 또한 도 3에서 하부에 도시되어 있다. 재순서화는 직선 화살표들(302)로써 나타내진다. B 프레임들(301)을 포함하는 스트림은 모든 B 프레임들(301)이 스킵되면 좋아 보이는 트릭 플레이 화상을 제공할 수 있다. 본 예에 대해, 이것은 3x 포워드의 트릭 플레이 속도를 야기한다.
스트림이 갖는 구조가 어떠하던지, 지금까지 설명된 솔루션들은 빠른 포워드 모드를 위해 트릭 플레이의 수용가능한 형태를 제공할 수 있다. 역방향에 대해, 프레임들은 시간적으로 재순서화되어야 하지만, MPEG가 높은 압축율을 달성하기 위해 연속 프레임들 사이의 시간적인 상관(temporal correlation)을 사용한다는 사실로 인해, 프레임들이 디코딩되어야 하는 순서가 고정된다. 그러므로, GOP는 우선, 포워드 방향으로 디코딩되어야 한다. 디코더에 전달되는 GOP들의 순서는 역전될 수 있고, GOP들은 높은 리버스 트릭 플레이 속도에 대해 스킵될 수 있다. 상술한 바와 같이 P 프레임들 또는 B 프레임들을 스킵함으로써 GOP들을 감소시키는 것이 이러한 경우에 가능하다. 어쨌든, 그 결과, 포워드 플레이 및 후방 점프들(backward jumps)의 디스플레이되는 시퀀스가 된다. 그러므로, 트릭 플레이 프레임들은 디코딩된 GOP로부터 선택되고 순서에 있어 역전되어야 하며, 그 후에, 프레임들이 다시 인코딩된다. 이어서, 앞의 GOP가 패치(fetch)되고 처리된다. 비록 가능하지만, 이러한 과정의 복잡성은 높을 수 있다.
앞에서의 사상의 결론은 트릭 플레이 생성에서 I 프레임들만을 사용하는 것이 적절한 솔루션일 수 있다는 것인데, 왜냐하면, 이들 프레임들은 독립적으로 디코딩되기 때문이다. 결국, 트릭 플레이 생성은 특히 역방향에 대해 보다 용이하게 될 수 있다. 부가적으로, I 프레임들만의 사용은 3x 또는 4x로 트릭 플레이 속도를 다운시킬 수 있다. 실제로 낮은 트릭 플레이 속도들에 대해, 상술된 보다 복잡한 기술들이 구현될 수 있다.
아래에서, CPI("characteristic point information") 파일과 관련된 몇몇 특징들이 설명된다.
프레임 헤더들을 찾기 위해, 스트림에서 I 프레임들을 찾는 것은 일반적으로 스트림을 분석하는 것을 필요로 한다. I 프레임이 시작하는 위치들을 로케이트(locate)하는 것은 레코딩이 행해지는 동안 행해질 수 있고, 또한 레코딩이 완성된 후에 오프라인으로 또는 실제로는 오프라인인 반 온라인으로 행해질 수 있지만, 레코딩의 순간에 대해 약간의 지연을 갖는다. I 프레임 끝은 다음 P 프레임 또는 B 프레임의 시작을 검출함으로써 발견될 수 있다. 이 방식으로 유도된 메타 데이터는 특징적인 포인트 정보 파일 또는 CPI 파일로서 나타내질 수 있는 개별이지만 결합된 파일에 저장될 수 있다. 이 파일은 전송 스트림 파일에서 각 I 프레임의 시작 및 결과적으로는 그 끝에 포인터들을 포함할 수 있다. 각각의 개별 레코딩은 자신의 CPI 파일을 가질 수 있다.
특징적인 포인트 정보 파일(401)의 구조는 도 4에 보여진다.
CPI 파일(400)과는 떨어져, 저장된 정보(401)가 도시된다. CPI 파일(400)은 또한 여기에서 논의되지 않은 몇몇 다른 데이터를 포함할 수 있다.
CPI 파일(400)로부터의 데이터로, 스트림에서 임의의 I 프레임(201)의 시작에 대해 점프하는 것이 가능하다. CPI 파일(400)이 또한 I 프레임들(201)의 끝을 포함하면, 전송 스트림 파일로부터 판독하기 위한 데이터의 양은 완전한 I 프레임(201)을 얻도록 정확하게 알려진다. 몇몇 이유로, I 프레임 끝이 알려지지 않으면, 전체 GOP 또는 적어도 GOP 데이터의 큰 부분은 전체 I 프레임(201)이 판독하도 록 하기 위해 판독되어야 한다. GOP의 끝이 다음 I 프레임(201)의 시작에 의해 제공된다. I 프레임 데이터의 양이 총 GOP 데이터의 40% 이상일 수 있다는 것은 측정에 의해 알려진다.
검색된 I 프레임들(201)로, MPEG2 전송 스트림 포맷에 따르는 새로운 트릭 플레이 스트림이 구성될 수 있다. 필요한 것은, MPEG 디코드에 대한 버퍼 문제들이 일어나지 않는 방식으로, 트릭 플레이 스트림에 대한 프레임들이 정확히 다시 멀티플렉스된다는 것이다. 이것이 올바른 솔루션인 듯 보이며, 그것은 아래에서 명백해지는 바와 같이 진부한 솔루션은 아니다.
다음으로, 트릭 플레이 시스템을 어떻게 구성하는지에 대하여 관련된 몇몇 특징들이 설명된다.
I 프레임(201)이 시작하고 뿐만 아니라 I 프레임(201)이 끝나는 패킷 위치를 기술하는, CPI 파일의 도움으로, 원(original) 스트림으로부터 모든 I 프레임들(201)로 액세스가 제공된다. 하지만, 적절하게 선택된 I 프레임들(201)을 I 프레임들(201)만의 하나의 큰 스트림에 연결시키는 결과, 아래에서 명백해지는 바와 같이, 유효 MPEG 스트림이 되지 않는다.
연구를 위한 제 1 포인트는 트릭 플레이 스트림의 비트 레이트이다. 예를 들어, 원 스트림은 12개의 프레임들의 GOP 크기(203) 및 4Mbps의 평균 비디오 비트 레이트를 갖는다. 비트 레이트는 실제 방송 스트림 상의 측정치로부터 추출될 수 있다. 트릭 플레이 스트림이 1 프레임 시간에 각각 디스플레이되는 I 프레임들(201)만으로 구성되면, 정상 플레이와 동일한 트릭 플레이 스트림의 리프레쉬 레 이트(refresh rate)를 야기한다. I 프레임(201) 데이터가 GOP 데이터의 40%라는 것이 상기된다. 이 숫자는 측정에 기인한 것이며, 그 평균은 대략 25%이다. 그래서, 평균적으로 데이터의 25%가 시간의 1/12로 압축되어, 3배 높은 비트 레이트를 야기한다. 그러므로, 평균 트릭 플레이 비트 레이트는 12Mbps이고, 약 20Mbps까지 피크를 갖는다. 이 간단한 예는 비트 레이트 효과 및 그것의 기원에 대한 약간의 필링(feeling)을 제공하도록 의도된다.
실제로, I 프레임(201)의 크기들은 알려져 있고, 측정에 의해 도출가능하다. 그러므로, 시간의 함수로서 I 프레임(201) 만의 트릭 플레이 스트림에 대한 비트 레이트는 정확하게 계산될 수 있다. 트릭 플레이 비트 레이트는 정상 플레이 비트 레이트보다 2 내지 3배 높을 수 있고, 때로는, 그것은 MPEG2 표준에 의해 허용되는 것보다 높을 수 있다. 이것이 적절한 비트 레이트 스트림에 대한 예이며, 보다 높은 비트 레이트들을 갖는 스트림들이 확실하게 마주치게 된다(encountered)는 것을 고려하면, 비트 레이트 감소의 일부 형태가 적용되어야 한다는 것이 명백하다. 예를 들어, 트릭 플레이 비트 레이트는 정상 플레이 비트 레이트에 비교될 수 있다. 이것은 스트림들이 디지털 인터페이스를 통해 디코더에 전달되는 경우에 특히 중요하다. 트릭 플레이로 인해 인터페이스로부터 대역폭에 대한 부가적인 요구사항이 회피된다. 제 1 옵션은 I 프레임들(201)의 크기를 줄이는 것이다. 하지만, 이것은 암호화된 스트림에 대한 트릭 플레이에 대하여 제한들 및 복잡성을 부가할 수 있다.
특정한 애플리케이션을 위해 적절할 수 있는 옵션은 각 I 프레임(210)을 여 러 번 디스플레이함으로써 트릭 플레이 화상 리프레쉬를 감소시키는 것이다. 비트 레이트는 따라서 감소될 수 있다. 이것은 I 프레임들(201) 사이에 소위 빈(empty) P 프레임들(202)을 부가함으로써 달성될 수 있다. 이러한 빈 P 프레임(202)은 실제로는 비어있지 않지만, 이전 프레임을 반복하도록 디코더에 지시하는 데이터를 포함할 수 있다. 이것은 많은 경우에 I 프레임(201)에 비해 무시될 수 있는 제한된 비트 코스트(bit cost)를 갖는다. 실험들로부터, IPP 또는 IPPP와 같은 트릭 플레이 GOP 구조들이 트릭 플레이 화상 품질을 위해 수용될 수 있고 심지어 높은 트릭 플레이 속도에서 이롭다는 것을 알았다. 얻어진 트릭 플레이 비트 레이트는 정상 플레이 비트 레이트와 동일한 순서로 이루어진다. 이러한 구조들은 저장 디바이스로부터 원하는 유지된 대역폭(sustained bandwidth)을 감소시킬 수 있다.
아래에서, 타이밍 이슈들 및 스트림 구성과 관련된 몇몇 특징들이 설명된다.
트릭 플레이 시스템(500)이 도 5에 개략적으로 도시된다.
트릭 플레이 시스템(500)은 레코딩 유닛(501), I 프레임 선택 유닛(502), 트릭 플레이 생성 블록(503), 및 MPEG2 디코더(504)를 포함한다. 트릭 플레이 생성 블록(503)은 분석 유닛(parsing unit:505), 부가 유닛(506), 패킷화기 유닛(packetizer unit:507), 테이블 메모리 유닛(508), 및 멀티플렉서(609)를 포함한다.
레코딩 유닛(501)은 평문 MPEG2 데이터(510)를 I 프레임 선택 유닛(502)에 제공한다. 멀티플렉서(509)는 MPEG2 DVB 호환 전송 스트림(511)을 MPEG2 디코더(504)에 제공한다.
I 프레임 선택기(502)는 저장 디바이스(501)로부터 특정한 I 프레임들(201)을 판독한다. I 프레임들(201)의 선택은 이하에서 설명되는 바와 같이 트릭 플레이 속도에 의존한다. 검색된 I 프레임들(201)은 디코딩 및 렌더링을 위한 MPEG2 디코더(504)에 전달되는 MPEG2/DVB 호환 트릭 플레이 스트림을 구성하는데 사용된다.
트릭 플레이 스트림에서의 I 프레임 패킷들의 위치는 원 전송 스트림의 적절한 타이밍에 결합될 수 없다. 트릭 플레이에서, 시간 베이스는 속도 팩터로 압축될 수 있고, 부가적으로는 리버스 트릭 플레이를 위해 반전된다. 그러므로, 원 시간 스탬프된 전송 스트림의 시간 스탬프들은 트릭 플레이 생성을 위해 적합하지 않을 수 있다.
더욱이, 원 PCR 시간 베이스는 트릭 플레이를 방해할 수 있다. 무엇보다도, 선택된 I 프레임(201) 내에서 PCR이 이용되는 것이 보장되지 않는다. 하지만, 보다 중요한 것은, PCR 시간 베이스의 주파수가 변경된다는 점이다. MPEG2 명세(specification)에 따라, 이 주파수는 27MHz로부터 30mmp내에 있다. 원 PCR 시간 베이스는 이러한 요구사항을 이행하지만, 트릭 플레이를 위해 사용되는 경우에, 그것은 트릭 플레이 속도 팩터에 의해 승산된다. 리버스 트릭 플레이에 대해, 이것은 잘못된 방향으로 이동하는 시간 베이스를 야기한다. 그러므로, 이전 PCR 시간 베이스는 제거되어야 하고, 새로운 것이 트릭 플레이 스트림에 부가된다.
마지막으로, I 프레임들(201)은 통상적으로, 프레임의 디코딩을 시작할 때(디코딩 시간 스탬프(decoding time stamp), DTS) 및 순간 디스플레이를 위해 그것(프리젠테이션 시간 스탬프(presentation time stamp), PTS)의 프리젠트를 시작 할 때에, 디코더(504)를 나타내는 두 개의 시간 스탬프들을 포함한다. 디코딩 및 프리젠테이션은 DTS 및 PTS가 스트림에서 PCR들에 의해 디코더(504)에서 재구성되는 PCR 시간 베이스에 대해 동일할 때 시작될 수 있다. 예컨대 2개의 I 프레임들(201)의 PTS 값들 사이의 거리는 디스플레이 시간에서 그것들의 명목상 거리(nominal distance)에 대응한다. 트릭 플레이에서, 이 시간 거리는 속도 팩터로 압축된다. 새로운 PCR 시간 베이스가 트릭 플레이에 사용되므로, 그리고 DTS와 PTS에 대한 거리가 더 이상 정확하지 않으므로, I 프레임(201)의 원 DTS와 PTS는 교체되어야 한다.
상술된 복잡성을 해결하기 위해, I 프레임(201)은 우선, 분석 유닛(505)에서 기본 스트림으로 분석될 수 있다. 이어서, 빈 P 프레임들(202)은 기본 스트림 레벨로 부가된다. 얻어진 트릭 플레이, GOP는 하나의 PES 패킷에 매핑되고, 전송 스트림 패킷들로 패킷화된다. 이어서, PAT, PMT 등과 같은 수정된 테이블들이 부가된다. 이 스테이지에서, DTS 및 PTS와 함께 새로운 PCR 시간 베이스가 포함된다. 전송 스트림 패킷들은 트릭 플레이 스트림이 정상 플레이를 위해 사용되는 것과 같이 동일한 출력 회로에 의해 처리될 수 있도록 PCR 시간 베이스에 결합되는 4 바이트 시간 스탬프로 미리 첨부(pre-pend)된다.
이하에서, 트릭 플레이 속도들과 관련된 몇몇 특징들이 설명된다.
본 명세서에서, 우선, 고정된 트릭 플레이 속도들이 논의된다.
상술한 바와 같이, IPP와 같은 트릭 플레이 GOP 구조가 사용될 수 있으며, 이것은 I 프레임(201)이 두 개의 빈 P 프레임들(202)에 선행한다. 원 GOP가 12개의 프레임들의 GOP 크기(203)를 갖고, 모든 원 I 프레임들(201)이 트릭 플레이를 위해 사용된다고 가정하자. 이것은 정상 플레이 스트림에서의 I 프레임들(201)이 12개의 프레임들의 거리를 갖고, 트릭 플레이 스트림에서의 동일한 I 프레임들(201)이 3 프레임들의 거리를 갖는다는 의미이다. 이것은 12/3 = 4x의 트릭 플레이 속도를 야기한다. 프레임들에서의 원 GOP 크기(203)가 G로써 표시되고, 프레임들에서의 트릭 플레이 GOP 크기가 T로써 표시되고, 트릭 플레이 속도 팩터가 Nb로써 표시되면, 일반적으로 트릭 플레이 속도는 다음과 같이 주어진다:
Nb = G/T (1)
Nb는 또한 기본 속도로서 표시된다. 원 스트림으로부터 I 프레임들(201)을 스킵함으로써 보다 높은 속도들이 구현될 수 있다. 매 제 2의 I 프레임(201)이 취해지면, 트릭 플레이는 2배가 된다. 매 제 3의 I 프레임(201)이 추해지면, 트릭 플레이 속도는 3배가 된다. 달리 말해서, 원 스트림의 사용된 I 프레임들(201) 간의 거리는 2,3 등등이다. 이 거리는 항상 정수이다. 트릭 플레이 생성에 사용되는 I 프레임들(201) 간의 거리가 D(D=1은 매 I 프레임(201)이 사용된다는 것을 의미함)로써 표시되고, 일반적인 트릭 플레이 속도 팩터(N)는 다음과 같이 주어진다:
N = D*G/T (2)
이것은 기본 속도의 모든 정수배들이 구현될 수 있음을 의미하고, 수용가능한 속도들의 세트를 야기한다. D가 리버스 트릭 플레이에 대해 네거티브(negative)이며, D=1의 결과, 정지 화상으로 된다는 것에 유의해야 한다. 데이터는 포워드 방 향으로만 판독될 수 있다. 그러므로, 리버스 트릭 플레이에서, 데이터는 포워드로 판독되고, D로써 주어진 선행하는 I 프레임(201)을 검색하기 위해 후방으로 점프가 행해진다. 또한, 보다 큰 트릭 플레이 GOP 크기(T)의 결과, 보다 낮은 기본 속도로 된다는 것에 유의해야 한다. 예를 들어, IPPP는 IPP보다 섬세하게 그레인된(grained) 속도 세트를 야기한다.
아래에서, 도 6을 참조하여, 트릭 플레이에서의 시간 압축(time compression)이 설명된다.
도 6은 T=3 및 G=12에 대한 상황을 도시한다. D=2에 대해, 23개 프레임들의 원 디스플레이 시간은 3개의 프레임들의 트릭 플레이 디스플레이 시간으로 압축되어, N=8이 되게 한다. 주어진 예에서, 기본 속도는 정수이지만, 이것은 그 경우에 필수적인 것은 아니다. G=16 및 T=3에 대해, 기본 속도는 정수 트릭 플레이 속도들의 세트가 아닌 16/3 = 5 1/3이다. 따라서, 4x의 기본 속도를 발생시키는 16 GOP 크기에 대해서는 IPPP 구조(T=4)가 보다 적합하다. 12 및 16의 가장 일반적인 GOP 크기들로 고정시키는 단일의 트릭 플레이 구조가 요구되는 경우에, IPPP가 선택될 수 있다.
두 번째로, 임의의 트릭 플레이 속도들이 논의된다.
몇몇 경우들에서, 상술한 방법으로부터 얻어지는 트릭 플레이 속도들의 세트는 만족스럽지만, 몇몇 경우에서는 그렇지 못하다. G=16 및 T=3의 경우에, 아마도, 정수 트릭 플레이 속도 팩터들이 선호된다. G=12 및 T=4인 경우에도, 예컨대 7x와 같은 세트에서 이용 불가능한 속도를 갖는 것이 선호될 수 있다. 이제, 트릭 플레 이 속도 공식은 거꾸로 될 것이고, 아래와 같이 주어지는 거리 D가 계산된다:
D = N*T/G (3)
G=12, T=4 및 N=7을 갖는 위의 예를 사용하면, D=2 1/3이 된다. 고정된 수의 I 프레임들(201)을 스킵하는 대신에, I 프레임(201)이 요구된 속도에 가장 잘 매칭한다는 사실에 기초하여 다음 I 프레임(291)을 선택하는 적응성 스킵핑 알고리즘(adaptive skipping algorithm)이 사용될 수 있다. 최상으로 매칭하는 I 프레임(201)을 선택하기 위해, 거리 D를 갖는 다음으로 이상적인 포인트(Ip)가 계산될 수 있고, 트릭 플레이 GOP를 구성하기 위해 이 이상적인 포인트에 가장 근접하는 I 프레임들(201) 중의 하나가 선택될 수 있다. 아래의 단계에서, D에 의해 마지막 이상적인 포인트를 증가시킴으로써 다음으로 이상적인 포인트가 계산된다.
부분 거리들을 갖는 트릭 플레이를 도시하는 도 7에 보여지는 바와 같이, I 프레임(201)을 선택하는 특별한 3가지 가능성들이 존재한다:
A. 이상적인 포인트에 가장 가까운 I 프레임; I=round(Ip)
B. 이상적인 포인트 이전의 마지막 I 프레임; I=int(Ip)
C. 이상적인 포인트 이후의 제 1의 I 프레임; I=int(Ip)+1
명백히 이해할 수 있는 바와 같이, 실제 거리는 int(D)와 int(D)+1 사이에서 변하고, 두 개의 발생 사이의 비는 평균 거리가 D와 같아지도록 D의 부분(fraction)에 의존한다. 이것은 평균 트릭 플레이 속도가 N과 같다는 것을 의미하지만, 실제 사용된 프레임이 이상적인 프레임에 대해 작은 지터(jitter)를 갖는다는 것을 의미한다. 이에 대해 여러 실험들이 수행되었고, 비록 트릭 플레이 속도 가 국부적으로 변할 수 있지만, 이것은 가시적으로 방해를 일으키지 않는다. 일반적으로는, 그것은 다소 높은 트릭 플레이 속도로 특별히 두드러진 것은 아니다. 또한, 그것이 방향 A, B, 또는 C를 선택하든지 간에 중요한 차이가 없게 된다는 것이 도 7로부터 명백하다.
이 방법으로, 트릭 플레이 속도(N)는 정수가 될 필요는 없지만, 기본 속도(Nb)보다 위인 임의의 수일 수 있다. 또한, 이 최소 아래의 속도들이 선택될 수 있지만, 화상 리프레쉬 레이트(picture refresh rate)는 유효한 트릭 플레이 GOP 크기(T)가 2배가 되고 또는 보다 낮은 속도들에서는 3배 이상이 되기 때문에 국부적으로 낮아질 수 있다. 이것은 트릭 플레이 GOP들의 반복으로 인한 것이며, 알고리즘은 한번 이상, 동일한 I 프레임(201)을 선택할 것이다.
도 8은 N=2/3Nb와 등가인 d=2/3에 대한 예를 도시한다. 여기서, 라운드 함수(round function)는 I 프레임들(201)을 선택하기 위해 사용되고, 프레임들(2,4)이 2번 선택된 것으로 보여질 수 있다.
어쨌든, 설명된 방법은 지속적으로 변하는 트릭 플레이 속도를 가능하게 한다. 리버스 트릭 플레이에 대해, 네거티브 값들이 N에 대해 선택된다. 도 7의 예에 대해, 이것은 단순히, 화살표들(700)이 다른 방향을 지시한다는 것을 의미한다. 설명된 방법은 또한, 앞에서 언급된 고정된 트릭 플레이 속도들의 세트들을 포함하고, 그것들은 특히 라운드 함수가 사용되는 경우에 동일한 품질을 갖는다. 그러므로, 이 섹션에서 설명되는 유연한 방법(flexible method)은 어떤 속도들을 선택하 던지 항상 구현된다.
이하에서, 트릭 플레이 화상의 리프레쉬 레이트에 관련된 몇몇 특징들이 논의된다.
용어 "리프레쉬 레이트(refresh rate)"는 특별히, 새로운 화상들이 디스플레이되는 주파수를 나타낸다. 비록 속도에 의존하지 않지만, 그것이 T의 선택에 영향을 미칠 수 있으므로 간단히 논의된다. 원 화상의 리프레쉬 레이트가 R(25hz 또는 30Hz)로써 나타내지면, 트릭 플레이 화상의 리프레쉬 레이트(Rt)는 다음과 같이 주어진다:
Rt = R/T (4)
IPP(T=3) 또는 IPPP(T=4)의 트릭 플레이 GOP 구조로, 리프레쉬 레이트(Rt)는 유럽에 대해서는 각각 8 1/3Hz, 6 1/4Hz이고, 미국에 대해서는 각각 10Hz, 7 1/2이다. 트릭 플레이 화상 품질의 판단이 다소 주관적인 문제이지만, 이들 리프레쉬 레이트들이 낮은 속도에 대해 수용가능하고 심지어 높은 속도들에서도 이롭다는 것은 실험으로부터 명백하다.
이하에서, 암호화된 스트림 환경들에 관련된 몇몇 특징들이 설명된다.
아래에서, 암호화된 스트림들에 대한 트릭 플레이를 설명하기 위한 기초로서, 암호화된 전송 스트림들에 관한 약간의 정보가 제공된다. 이것은 방송용으로 사용되는 조건 액세스 시스템에 초점이 맞춰진다.
도 9는 아래에서 설명되는 조건 액세스 시스템(900)을 도시한다.
조건 액세스 시스템(900)에서, 콘텐트(901)는 콘텐트 암호화 유닛(902)에 제공될 수 있다. 콘텐트(901)를 암호화한 후에, 콘텐트 암호화 유닛(902)은 암호화된 콘텐트(903)를 콘텐트 해독 유닛(904)에 공급한다.
제어 워드(906)는 콘텐트 암호화 유닛(902) 및 ECM 생성 유닛(907)에 공급될 수 있다. ECM 생성 유닛(907)은 ECM을 생성하고, 그것을 스마트카드(905)의 ECM 디코딩 유닛(908)에 제공한다. ECM 디코딩 유닛(908)은 암호화된 콘텐트(903)를 해독하기 위해 콘텐트 암호화 유닛(904)에 필요하고 그에 제공되는 해독 정보인 제어 워드를 ECM으로부터 생성한다.
또한, 인증키(910)는 ECM 생성 유닛(907) 및 KMM 생성 유닛(911)에 제공되고, 여기서, KMM 생성 유닛(911)은 KMM을 생성하고 그것을 스마트카드(905)의 KMM 디코딩 유닛(912)에 제공한다. KMM 디코딩 유닛(912)은 ECM 디코딩 유닛(908)에 출력 신호를 제공한다.
또한, 그룹 키(914)는 사용자 키(918)가 제공될 수 있는 GKM 생성 유닛(915) 및 KMM 생성 유닛(911)에 제공될 수 있다. GKM 생성 유닛(915)은 GKM 신호(GKM)를 생성하고, 그것을 스마트카드(905)의 GKM 디코딩 유닛(916)에 제공하며, GKM 디코딩 유닛(916)은 또 다른 입력으로서 사용자 키(917)를 받는다.
이 외에, 자격들(entitlements:919)은 EMM 신호를 생성하고 그것을 EMM 디코딩 유닛(921)에 제공하는 EMM 생성 유닛(920)에 제공될 수 있다. 스마트카드(905)에 위치되는 EMM 디코딩 유닛(921)은 대응하는 제어 정보를 ECM 디코딩 유닛(908)에 제공하는 자격 리스트 유닛(913)으로 카피된다.
ECM은 자격 제어 메시지들을 나타내고, KMM은 키 관리 메시지(Key Management Messages)를 나타내고, GKM은 그룹 키 메시지들을 나타내고, EMM은 자격 관리 메시지들을 나타낸다.
많은 경우들에서, 콘텐트 제공자들 및 서비스 제공자들은 조건 액세스(conditional access:CA) 시스템을 통해 임의의 콘텐트 아이템들에 대한 액세스를 제공하고자 한다.
이를 달성하기 위해, 방송된 콘텐트(901)는 CA 시스템(900)의 제어 하에서 암호화된다. 수신기에서, 콘텐트는 액세스가 CA 시스템(900)에 의해 허가되면 디코딩 및 렌더링 전에 해독된다.
CA 시스템(900)은 층상 계층을 사용한다(도 9 참조). CA 시스템(900)은 소위 ECM(Entitlement Control Message)인 암호화된 메시지의 형태로 서버에서 클라이언트로 콘텐트 해독 키(제어 워드 CW(906,909))를 전송한다. ECM들은 인증키(AK)(910)를 사용하여 암호화된다. 안전상의 이유로, CA 서버(900)는 KMM(Key Management Message)을 발행함으로써 인증키(910)를 새롭게 할 수 있다. KMM은 실제로, 특별한 타입의 EMM(Entitlement Management Message)이지만, 명료화하기 위해, 용어 KMM이 사용될 수 있다. KMM들은 또한, 특별한 타입의 EMM인 GKM(Group Key Message)을 전달함으로써 새롭게 되는 예컨대 그룹 키(GK)(914)일 수 있는 키를 사용하여 암호화된다. GKM들은 스마트카드(905)에 실장되고 제공자의 CA 시스템(900)에 의해 알려진 고정된 고유 키(fixed unique key)인 사용자 키(UK)(917,918)로 암호화된다. 인증키들 및 그룹 키들은 수신기의 스마트카 드(905)에 저장된다.
자격들(919)(예컨대, 보는 권리들)은 EMM의 형태로 개별 소비자들에게 전달되고, 보안 디바이스(스마트카드(905))에 국부적으로 저장된다. 자격들(919)은 특정 프로그램에 결합된다. 자격 리스트(913)는 가입 타입에 의존하여 프로그램들의 그룹으로 액세스를 제공한다. ECM들은 자격(919)이 특정 프로그램에 대해 이용가능하면 스마트카드(905)에 의해 키들(제어 워드들)로 처리된다. 자격 EMM들은 KMM들로서 이상적인 층상 구조로 된다.
MPEG2 시스템에서, 암호화된 콘텐트, ECM들 및 EMM들(KMM 및 GKM 타입들을 포함함)은 단일의 MPEG3 전송 스트림으로 모두 멀티플렉스된다.
위의 설명은 CA 시스템(900)의 일반화된 뷰(view)이다. 디지털 비디오 방송에서, 암호화 알고리즘, 홀수/짝수 제어 워드 구조, ECM들 및 EMM들의 범용 구조 및 그것들의 참조(referencing)만이 정의된다. CA 시스템(900)의 상세한 구조 및 ECM들 및 EMM들의 페이로드가 인코딩되고 사용되는 방식은 제공자마다 독특하다. 스타트카드 또한 제공자마다 독특하다. 하지만, 실험으로부터, 많은 제공자들이 필연적으로 도 9에 일반화된 뷰의 구조를 따른다는 것을 알 수 있다.
이하에서, DVM 암호화/해독 토픽들이 논의된다.
적용되는 암호화 및 해독 알고리즘은 DVB 표준화 조직(standardisation organisation)에 의해 정의된다. 원리적으로, 두 가지 암호화 가능성들은 즉 PES 레벨 암호화 및 TS 레벨 암호화로 정의된다. 하지만, 실제에서는, 주로 TS 레벨 암호화 방법이 사용된다. 전송 스트림 패킷들의 암호화 및 해독은 패킷 기반으로 행 해진다. 이것은 새로운 전송 스트림 패킷이 수신될 때마다 암호화 및 해독 알고리즘이 재시작된다는 것을 의미한다. 그러므로, 패킷들은 각각 암호화되거나 해독될 수 있다. 전송 스트림에서, 암호화되고 평문인 패킷들은 일부 스트림 부분들이 암호화되고(예컨대, 오디오/비디오) 나머지 부분들이 암호화되지 않으므로(예컨대, 테이블들) 혼합된다. 하나의 스트림 부분(예컨대, 비디오) 내에서도, 암호화되고 평문인 패킷들은 혼합될 수 있다.
이하에서, 도 10을 참조하여, DVB 암호화된 전송 스트림 패킷(1000)이 설명된다.
스트림 패킷(1000)은 188 바이트들의 길이(1001)를 가지며, 3 부분들을 포함한다. 패킷 헤더(1002)는 4 바이트의 크기(1003)를 갖는다. 패킷 헤더(1002)에 후속하여, 적응 필드(adaptation field)(1004)는 스트림 패킷(1000)에 포함될 수 있다. 그 후에, DVB 암호화된 패킷 페이로드(1005)가 전달될 수 있다.
도 11은 도 10의 전송 스트림 패킷 헤더(1002)의 상세한 구조를 도시한다.
전송 스트림 패킷 헤더(1002)는 동기화 유닛(SYNC)(1010), 패킷에서 전송 에러들을 표시할 수 있는 전송 에러 표시기(TEI)(1011), 특별히 후속 페이로드(1005)에서 PES 패킷의 가능한 시작을 표시할 수 있는 페이로드 유닛 시작 표시기(payload unit start indicator:PLUSI)(1012), 전송의 우선순위를 나타내는 전송 우선순위 유닛(TPI)(1017), 패킷의 할당을 결정하는데 사용되는 패킷 식별자(PID)(1013), 전송 스트림 패킷을 해독하는데 필요한 CW를 선택하는데 사용되는 전송 스크램블링 제어(transport scrambling control:SCB)(1014), 적응 필드 제 어(adaptation field control:AFLD)(1015), 및 연속성 카운터(continuity counter:CC)(1016)를 포함한다. 그러므로, 도 10 및 도 11은 암호화되고 서로 다른 부분들을 포함하는 MPEG2 전송 스트림 패킷(1000)을 도시한다:
- 패킷 헤더(1002)는 평문으로 되어 있다. 그것은 패킷 식별자(PID) 넘버, 적응 필드의 존재, 스크램블링 제어 비트들 등과 같은 중요한 정보를 얻도록 기능한다.
- 적응 필드(1004) 또한 평문으로 되어 있다. 그것은 PCR과 같은 중요한 타이밍 정보를 포함할 수 있다.
- DVB 암호화된 패킷 페이로드(1005)는 DVB 알고리즘을 사용하여 암호화될 수 있는 실제 프로그램 콘텐트를 포함한다.
방송된 프로그램을 해독하는데 필요한 정확한 CW를 선택하기 위해서는, 전송 스트림 패킷 헤더를 분석하는 것이 필요하다. 이 헤더의 개략적인 개요는 도 11에 주어진다. 방송된 프로그램의 해독에 대한 중요한 필드는 스크램블링 제어 비트들(SCB) 필드(1014)이다. 이 SCB 필드(1014)는 해독기가 방송된 프로그램을 해독하는데 어떤 CW를 사용해야 하는지를 나타낸다. 더욱이, 그것은 패킷의 페이로드가 암호화되거나 평문으로 되는지를 나타낸다. 모든 새로운 전송 스트림 패킷에 대해, 상기 SCB(1014)는 시간에 따라 변하고 패킷마다 변할 수 있으므로 분석되어야 한다.
이하에서, 완전히 암호화된 스트림들에 대한 트릭 플레이에 관련된 몇몇 특징들이 설명된다.
왜 이것이 흥미 있는 주제인지의 첫 번째 이유는, 평문 및 완전히 암호화된 스트림들에 대한 트릭 플레이가 가능성들의 범위에 대한 두 개의 극한들(extremes)이라는 점이다. 또 다른 이유는, 완전히 암호화된 스트림들을 레코딩하는데 필요한 애플리케이션들이 존재한다는 점이다. 그러므로, 완전히 암호화된 스트림에 대한 트릭 플레이를 수행하는 기술을 가까운 장래에 갖는 것이 유용하다. 기본 원리는 저장 디바이스로부터 충분히 큰 데이트 블록을 판독하고 그것을 해독하고, 블록에서 I 프레임을 선택하고, 그것과 함께 트릭 플레이 스트림을 구성하는 것이다.
이러한 시스템(1200)이 도 12에 도시되어 있다.
도 12는 완전히 암호화된 스트림에 대한 트릭 플레이의 기본 원리를 도시한다. 이를 위해, 하드디스크(1201)에 저장된 데이터는 전송 스트림(1202)으로서 해독기(1203)에 제공된다. 또한, 하드디스크(1201)는 스마트카드(1204)에 ECM를 제공하며, 스마트카드(1204)는 이 ECM으로부터 제어 워드들을 생성하고, 그것을 해독기(1203)에 전달한다.
제어 워드를 사용하여, 해독기(1203)는 암호화된 전송 스트림(1202)을 해독하고, 해독된 데이터를 I 프레임 검출기 및 필터(1205)에 보낸다. 그로부터, 데이터는 셋톱 박스(1207)에 데이터를 전달하는 삽입 빈 P 프레임 유닛(insert empty P frame unit:1206)에 제공된다. 그로부터, 데이터는 텔레비전(1208)에 제공된다.
이하에서, 몇몇 특징들은 레코딩이 포함하는 질문에 대하여 언급된다.
단일 채널의 레코딩을 행하여, 레코딩은 차후 스테이지에서 채널의 레코딩을 재생하는데 요구되는 데이터 모두를 포함해야 한다. 임의의 트랜스폰 더(transponder) 상의 모든 것을 디코딩하도록 재분류할 수 있지만, 이 방식은 기록되는 프로그램을 재생하는데 필요한 것보다 훨씬 더 많이 기록한다. 이것은 대역폭과 저장 공간 둘 모두가 낭비된다는 것을 의미한다. 그래서, 이 외에, 실제로 필요한 패킷들만이 기록되어야 한다. 각 프로그램에 대해, 이것은 PAT(program association table), CAT(conditional access table) 및 명백하게는 각각의 프로그램에 대해, 어느 패킷들이 프로그램에 속하는지를 설명하는 PMT(program map table)뿐만 아니라 비디오 오디오 패킷들과 같은 MPEG2 강제 패킷들(mandatory packets) 모두를 기록해야 한다는 것을 의미한다. 또한, CAT/PMT는 스트림 해독을 위해 필요한 CA 패킷들(ECM들)을 기술할 수 있다. 상기 레코딩이 해독화 후 평문으로 행해지지 않는 한, ECM 패킷들도 역시 레코딩되어야 한다.
수행된 레코딩이 완전 멀티플렉스로부터의 모든 패킷들로 구성되지 않으면, 레코딩은 소위 부분적인 전송 스트림(1300으로 된다(도 13 참조). 또한, 도 13은 완전 전송 스트림(1301)을 도시한다. DVB 표준은 부분적인 전송 스트림(1300)이 플레이되면, NIT(network information table), BAT(bouquet association table) 등과 같이 모든 정상 DVB 강제 테이블들은 제거된다. 이들 테이블들 대신에, 부분적인 스트림은 삽입된 SIT(selection information table) 및 DIT(discontinuity information table) 테이블들을 갖는다.
이하에서, 도 14 내지 도 32를 참조하여, 본 발명의 예시적인 실시예에 따른 암호화된 데이터 스트림을 처리할 수 있는 시스템들이 설명된다.
이하에서 설명되는 시스템들은 프레임에서 구현될 수 있고 도 1 내지 도 13 을 참조하여 설명된 시스템들 중 어느 시스템과 조합하여 구현될 수 있다.
이하에서, 하이브리드 스트림들에 대한 트릭 플레이에 관련된 특징들이 설명된다.
다음으로, 평문 I 프레임들이 논의된다.
I 프레임들(201)이 평문이고, 암호화된 나머지는 빠른 포워드/리버스와 같은 특별한 저장 기능의 관점에서 완전한 평문 스트림에 대한 대안이다.
이하에서, 도 14를 참조하여, 본 발명의 예시적인 실시예에 따른 방송기(1401)와 저장 디바이스들(1406,1408,1409) 사이에서 데이터를 전송하는 시스템(1400)이 설명된다.
방송기(1401)는 위성(1403)을 통해, 데이터가 위성 접시(1404)에 제공되는 곳으로부터 위성 접시(1402)에 데이터를 전송한다. 위성 접시(1404)로부터, 데이터는 케이블 헤드 끝(1405), 가정용 게이트웨이(residential gateway:1407), 및 저장 디바이스(1409)에 저장된다. 케이블 헤드 끝(1405)으로부터, 데이터는 또한, 저장 디바이스(1406)에 전송될 수 있다. 가정용 게이트웨이(1407)로부터, 데이터는 또한 저장 디바이스(1408)에 전송될 수 있다.
도 14에 도시된 바와 같이, I 프레임 평문 스트림이 어떻게 생성될 수 있는지가 특별히 4개의 서로 다른 방법들로 가능하다. "1"로 표기된 것과 같이, 방송기(1401)는 I 프레임 평문 스트림을 생성할 수 있다. "2"로 표기된 것과 같이, 케이블 헤드(1405)는 I 프레임 평문 스트림을 생성할 수 있다. "3"으로 표기된 것과 같이, 가정용 게이트웨이(1407)는 I 프레임 평문 스트림을 생성할 수 있다. "4"로 표기된 것과 같이, 저장 디바이스(1409)는 I 프레임 평문 스트림을 생성할 수 있다.
도 14에 도시된 바와 같이, 이러한 스트림이 구성되는 공급 체인에 여러 개의 장소들이 존재한다.
옵션들 "1" 및 "2"는 소비자 설비에서 액션들이 불필요한 양호한 상황들일 수 있다. "3"의 경우에서, 가정용 게이트웨이(1407)인 하나의 홈 디바이스만에 제한될 수 있다. 옵션 "4"는 가장 현실적인 것일 수 있다.
저장 유닛 자체의 입력에서, 스트림은 적어도 평문 I 프레임들을 포함할 수 있고, 나머지는 저장되는 전송의 종류에 의존하여 암호화되거나 평문일 수 있다. 이것은 모든 경우들에서 I 프레임 시작 포인트들 및 끝들에 관련된 CPI 데이터가 생성될 수 있다는 것을 의미한다. 트릭 플레이 동안 CPI 데이터를 사용하여 검색된 데이터만이 평문 I 프레임들을 포함한다. 이것은, 트릭 플레이 시스템에 대해, 완전 평문 스트림 및 이러한 하이브리드 스트림에 대한 트릭 플레이 사이에 차이가 없을 수 있다는 것을 의미한다.
이하에서, 평문 패킷들에 관련된 특징들이 설명된다.
한가지 가능성은, 생성된 트릭 플레이 스트림이 완전히 평문이라는 것이며, 여기서, 원 스트림은 평문이거나 (부분적으로) 암호화된다. 이것은 트릭 플레이 엔진 및 디코더/레코더가 하나로 되어 있거나 동일한 디바이스 내에 있으면 문제가 없다는 것이다. 하지만, 트릭 플레이 스트림이 서버 내에서 만들어지고, 네트워크를 가로질러 분배되면, 평문인 트릭 플레이 스트림을 갖는 것은 바람직하지 않을 수 있고 또는 콘텐트 제공자에 의해 허용되지 않을 수 있다. 이와 같은 것은 정상 플레이에 대해서도 동일하다.
이하에서, 도 15를 참조하여, 평문 레코딩에 대한 트릭 플레이에 관련된 시스템(1500)이 설명된다.
레코딩 유닛(1501)은 프레임 선택기 유닛(1503)에 접속되고, 프레임 선택기 유닛(1503)에 평문 MPEG2 데이터(1502)를 제공한다. 프레임 선택기 유닛(1503)에는, MPEG2 DVB 호환 전송 스트림(1505)을 MPEG2 디코더(1506)에 제공하는 트릭 플레이 생성 유닛(1504)이 결합된다.
원래 레코딩된 스트림이 도 15에서 설명된 바와 같이 평문이면, 트릭 플레이 스트림이 또한 평문인 것에 문제가 없다. 하지만, 완전히 암호화되는 동안 기록된 스트림에 대해서도, 트릭 플레이 스트림은 도 16에 도시된 바와 같이 완전히 평문으로 생성될 수 있다.
스트림(1500)에 부가하여, 시스템(1600)은 레코딩 디바이스(1501)로부터 암호화된 MPEG2 데이터(1601)가 제공되는 블록 선택기 유닛(1602)을 더 포함한다. 또한, 해독기 유닛(1603)은 블록 선택기 유닛(1602)과 프레임 선택기 유닛(1503) 사이에 제공된다.
이 상황에서, 평문 트릭 플레이 스트림은 바람직하지 않을 수 있다. 특정 환경하에서, 트릭 플레이 스트림이 완전히 암호화된 스트림으로부터 구성되지 않을 수 있으므로, 해독기를 단순히 스킵(skip)하는 것이 불가능할 수 있다. 생성된 평문 트릭 플레이 스트림을 다시 암호화되는 것이 솔루션일 수 있다. 키 스케줄(CW 들, ECM들, 등등) 및 암호화 알고리즘이 사용되는 것을 조정하는 것이 필요할 수 있다. 예를 들어, 소비자 디바이스에 DVB 암호화기를 부가하는 것이 허용되지 않을 수 있고, 그래서, 또 다른 암호화 포맷이 그러한 경우에 선택되어야 한다. 이것은 DES, 3DES, AES 등과 같은 또 다른 사이퍼(cipher)이다. 그것을 행한다는 것은, 현재 셋톱 박스들(STB들)이 트릭 플레이 스트림을 해독할 수 없다는 것을 의미한다. 그 이외에, 정상 플레이는 암호화 레벨에 대해 임의의 수정 없이 STB에 원래 DVB 암호화된 스트림을 스트리밍(streaming)함으로써 구현된다. 그래서, 적응된 박스는 또 다른 포맷을 해독하는데에만 필요한 것이 아니며, 또한, 수신된 스트림의 어느 일부에 대해 어느 포맷을 사용할지를 결정할 수 있어야 한다. 이것은 이러한 표시(indication)가 스트림 차제에 제공되지 않으므로 사소한 것이 아닐 수 있다. 본래, 트릭 플레이는 정상 플레이와는 다르게 처리되어야 한다.
바람직한 솔루션은 정상 플레이와 트릭 플레이 둘 모두가 DVB 암호화 포맷으로 되는 것이지만, DVB 암호화기를 사용하는 것이 허용되지 않는다.
이하에서, 암호화 문제에 대한 기본적인 솔루션이 설명된다.
가정에서 DVB 암호화 엔진의 사용이 허용되지 않는 시나리오에서도 DVB 암호화된 트릭 플레이 스트림을 생성하는 것이 어떻게 가능한지가 설명된다. 무엇보다도, 원 정상 플레이 스트림(original normal play stream)이 암호화되면 암호화된 트릭 플레이 스트림이 필요하다는 것에 유의하자. 이것을 명심하며, 트릭 플레이 스트림은 암호화된 정상 플레이 전송 스트림 패킷들로부터 직접 구성될 수 있다. 이것은 기본적인 스트림 레벨에 대한 트릭 플레이 스트림의 생성이 더 이상 불가능 할 수 있다는 것을 암시한다. 그것은 전송 스트림 레벨에 대해 직접 생성되어야 한다.
이 트릭 플레이 생성을 위해, 적어도, I 프레임들이 암호화된 정상 플레이 전송 스트림에 위치되는지를 아는 것이 필요하다. 이것은 스트림을 해독함으로써, I 프레임들을 검출함으로써, 암호화된 스트림에서 I 프레임의 시작과 끝에 포인터들을 생성함으로써 달성된다. 유효한 트릭 플레이 스트림의 생성이 없다면, 일부 패킷들의 암호화된 페이로드에서 일부 데이터를 변경하는 것이 필요할 수 있다. 이것은 이들 패킷들이 우선 해독되고 이어서 암호화되는 경우에만 수행될 수 있다. 하지만, 적응된 패킷들은 재암호화될 수 없다. 그러므로, 트릭 플레이 스트림에서의 일부 패킷들은 항상 평문으로 된다. 바람직하게는, 이들 패킷들은 이미 평문으로 레코딩되어 있다. 이들 평문 패킷들은 또한 CPI 파일에 저장되는 I 프레임 위치의 직접적인 검출을 가능하게 한다.
부분적으로 암호화된 레코딩에 대한 트릭 플레이가 도 17에 도시되어 있다.
도 17에 도시된 시스템(1700)에서, 도 15와 비교할 때, 프레임 선택기 유닛(1503)에는 레코딩 유닛(1501)에 의해 부분적으로 암호화된 MPEG2 데이터(1701)가 제공된다. 또한, 트릭 플레이 생성 유닛(1504)은 MPEG2 디코더 및 해독기 유닛(1703)을 제공하며, MPEG2 DVB 호환 전송 스트림(1702)은 부분적으로 암호화된다.
스트림에서의 평문 데이터의 양은 효과적으로 그것이 잘 보호된 암호화된 스트림이 되도록 최소화되어야 한다. 이하에서, 용어 "하이브리드 스트림(hybrid stream)"은 이러한 스트림을 나타낼 수 있다.
이하에서, 데이터 스트림의 어느 부분들이 최소로 평문으로 되는지가 설명된다.
위에서 언급한 바와 같이, 모든 것이 해독되는 것이 아니며, 실제로 필요한 것만이 해독된다. 해독이 필요한 것을 찾기 위해, 실제 방송 스트림은 분석된다.
- 평문 패킷 헤더에 위치되는, 연속성 카운터에서 불연속성들과 무관하게, 적응되는데 필요한 제 1의 것은 PES 헤더에서의 PTS/DTS 필드들이다. 그래서, 평문으로 될 이들 패킷들을 포함하는 전송 스트림 패킷이 필요하다. 이것은 또한, I 프레임들이 시작하는 곳에서의 패킷이 일반적으로 평문이라는 것을 의미한다.
- 잘못될 수 있는 다음의 것은 I 프레임으로부터 최종 패킷이고, 이것은 또한 다음 P 프레임 또는 B 프레임의 시작을 포함할 수 있다. 그래서, 그 패킷은 모든 비 I 프레임 데이터(non-I-frame data)를 제거하거나 패킷을 스터핑(stuffing)함으로써 고정될 수 있다. 그러므로, 이 패킷은 또한 평문으로 되어야 한다.
- 이들 둘 사이의 패킷들 모두는 현상대로(as is) 사용될 수 있고 여전히 암호화되어 있는 I 프레임 비디오 데이터를 포함한다.
- 정확한 빈 프레임들(empty frames)을 부가하기 위해, 화상의 해상도를 아는 것이 필요할 수 있고, 새로운 시간 베이스를 부가하기 위해, 프레임 레이트를 아는 것이 필요할 수 있다. 모든 필요한 데이터는 PES/ES 헤더 필드들에서 발견될 수 있다.
전체 PES/ES 헤더들이 PLUSI를 갖는 패킷 내에 있다고 보장되지는 않는다. 모든 헤더 데이터가 하나의 패킷 내에 있지 않으면, 다음 패킷(들)은 평문일 필요가 없어, 이하에서 설명되는 필드들에 대한 액세스가 존재한다.
PES 헤더에서, PLUSI 패킷에서 시작하도록 보장되면, 3개의 필드들을 변경할 필요가 있을 수 있다:
- PES_packet_length
- PES(presentation time stamp)
- DTS(decoding time stamp)
PTS 및 DTS는 필수적인 것은 아니다. 하지만, 그것들은 그것들이 제공될 때 변경되어야 한다.
빈 P 프레임들의 정확한 타입을 만들기 위해, 새로운 시간 베이스를 부가하기 위해, 그리고 I 프레임의 시간적인 기준을 수정하기 위해, ES 헤더들의 일부 데이터가 필요할 수 있다.
무엇보다, 시퀀스 헤더로부터, 아래의 것이 필요할 수 있다:
- Horizontal_size_value
- Vertical_size_value
- Frame_rate_code
시퀀스 확장에서, 중요시될 수 있는 하나의 플래그가 존재한다:
- 프로그레시브 시퀀스 플래그(Progressive sequence flag)
화상 헤더에서, 하나의 아이템은 변경될 필요가 있다:
- 시간적인 기준(Temporal reference)
마지막으로, 화상 코딩 확장으로부터, 아래 두 개의 필드들을 액세스하는 것이 필요할 수 있다.
- Picture_structure
- Top_field_first
이 데이터를 검색한 후에, 부가되어야 하는 빈 프레임의 타입을 결정하는 것이 가능하다. 위에서 모든 가능한 조합들에 대해 생성된 빈 프레임들을 포함하는 앞서 생성된 룩업 테이블을 사용하는 것이 가능하다. 비록, 명세들(specifications)은, 모든 이들 필드들이 각각의 GOP에 대해 제공될 것을 요구하지 않지만, 이들 필드들을 스킵(skip)한 방송 신호들이 존재하지 않는다고 믿어진다. 디코더 또한, 스테이션들(station)을 재핑(zapping) 후에 가능한 한 빨리 정확하게 데이터를 디코딩하기 위해 이들 헤더들에 액세스할 필요가 있다는 것이 그 이유가 될 수 있다.
각각의 I 프레임에 대해 평문으로 될 필요가 있는 모든 것은 적어도 시작에서의 하나와 끝에서의 하나인, 소수의 패킷들이다. 이것은 또한, 각각의 I 프레임의 정확한 위치를 쉽게 결정할 수 있다는 이점을 갖는다. 평문인 이들 패킷들만을 갖는 스트림들은 효과적으로 완벽하게 암호화된다. 각각의 I 프레임의 제 1 패킷은 일반적으로, 대부분의 비디오 데이터를 포함하지 않지만, (P)ES 헤더 데이터만으로 존재한다. I 프레임의 최종 패킷은 또한, 다음 P 프레임 또는 B 프레임의 일부 데이터를 포함할 수 있지만, 이것은 어쨌든 제거된다.
이하에서, 평문으로 되어야 하는 패킷들을 어떻게 선택하느냐가 설명된다.
하이브리드 스트림이 구성될 때, 패킷들이 평문으로 되어야 한다고 결정된다. 필요한 평문 데이터의 검출 및 선택을 인에이블하기 위해, 비디오 스트림이 우선 완전히 해독될 수 있다. 이어서, 이 데이터의 위치가 평문 스트림으로 결정될 수 있고, 그것이 위치되는 평문 패킷들은 하이브리드 스트림을 형성하기 위해 원 스트림에서 암호화된 패킷들을 교체할 수 있다.
평문 데이터를 선택하기 위해, 아래의 3가지 기준이 사용될 수 있다:
1. PES 헤더 내의 DTS/PTS는 그것들이 제공되면 변경될 수 있다. 이를 위해, PES 헤더 데이터 모두는 평문으로 될 수 있다. 이것은, PLUSI 비트 세트를 갖는 것에서 PES 헤더의 최종 바이트를 포함하는 것에 걸치는 패킷들이 모두 평문으로 될 수 있다는 것을 의미한다.
2. 시퀀스 헤더 및 시퀀스 확장으로부터의 일부 정보가 필요할 수 있다. 이를 위해, 시퀀스 헤더로부터 화상 시작 코드까지 모든 데이터는 평문으로 될 수 있다. 시퀀스 헤더와 화상 시작 코드는 4바이트 코드를 체크함으로써 검출될 수 있다. 이들 4 바이트들은 바로 그 패킷 및 동일한 패킷에 필연적으로 위치되지는 않는다. 시퀀스 헤더와 화상 시작 코드는 4 바이트에서 마지막이 발견될 때 검출된다. 하이브리드 스트림의 구성에 대해 과도한 버퍼링을 회피하기 위해, 시퀀스 헤더의 제 4 바이트를 포함하는 것에서 화상 시작 코드의 제 4 바이트를 포함하는 것에 걸치는 패킷들은 평문으로 될 수 있다. 이것은 얻어진 하이브리드 스트림에서 시퀀스 헤더와 화상 시작 코드를 찾을 때에 몇몇 특이한 상황들을 일으킬 수 있다.
3. 화상 시작 코드는 프레임 경계들을 검출하는데 필요할 수 있다. 그래서, 화상 시작 코드를 포함하는 패킷은 평문으로 되어야 한다. 화상 시작 코드에 이어지는 2 바이트들은 또한 평문으로 되어야 한다. 이들 바이트들은 변경될 필요가 있을 수 있는 시간적인 기준 및 I 프레임, P 프레임, 또는 B 프레임을 식별하는 화상 코딩 타입을 포함한다. 또한, 일부 정보가 화상 코딩 확장으로부터 필요할 수 있다. 이를 위해, 화상 시작 코드에서 화상 코딩 확장의 끝까지의 모든 데이터는 평문으로 될 수 있다. 화상 시작 코드는 제 4 바이트가 발견될 때 검출될 수 있다. 과도한 버퍼링을 회피하기 위해, 화상 시작 코드의 제 4 바이트를 포함하는 것에서 화상 코딩 확장의 최종 바이트를 포함하는 것에 걸치는 패킷들은 모두 평문으로 될 수 있다. 이것은 앞에서 논의된 트릭 플레이 스트림들의 구성을 위해 필요한 것보다 많은 모든 프레임 경계들 상에 평문 패킷들을 야기한다. 하지만, 그것은 슬로우 모션 포워드 스트림의 구성을 위해 필요할 수 있다.
이하에서, 과도한 버퍼링이 의미하는 것 및 그것을 일으키는 것이 설명된다. 하이브리드 스트림이 구성되면, 원래 암호화된 스트림 및 해독된 스트림으로부터의 패킷들은 하나의 스트림 내에서 조합될 수 있다. 실시간으로 행해지면, 약간의 버퍼링이 필요할 수 있다. 화상 시작 코드가 두 개의 비디오 패킷들에 걸쳐 확산된다고 가정할 수 있다. 이 4 바이트 화상 시작 코드는 최종 바이트가 발견되는 순간에 해독된 스트림에서 검출될 수 있다. 평문의 완전한 화상 시작 코드를 갖기 위해, 이 최종 바이트를 갖는 비디오 패킷들은 평문으로 되어야 하고 뿐만 아니라 선행하는 비디오 패킷 또한 평문으로 되어야 한다.
다른 데이터는 이들 두 개의 비디오 패킷들 사이에 있다. 원리적으로, 이것 은 큰 양의 패킷들일 수 있다.
이하에서, 도 18을 참조하여, 완전한 평문 화상 시작 코드를 위한 버퍼링 요구를 보여주는 시스템(1800)이 설명된다.
도 18에서, 버퍼(1800)는 그것의 끝에서 화상 시작 코드(1802)의 일부를 갖는 I 프레임(1801)으로 시작하는 것으로 도시된다. 이어서, 오디오 블록(1803)이 도시된다. 도 다른 오디오 블록(1804)이 도시된다. 또한, PSI 블록(1805) 및 데이터 블록(1806)이 도시된다. 화상 시작 코드 검출 순간(1807)에서, 화상 시작 코드(1808) 및 후속하는 P 프레임(1809)의 일부를 포함하는 블록이 시작된다.
도 18은 I 프레임의 끝에서 화상 시작 코드가 두 개의 비디오 패킷들에 걸쳐 확산되는 상황의 예를 도시한다. 이 경우에, 이들 두 개의 비디오 패킷들이 버퍼링될 뿐만 아니라, 또한, 이들 두 개의 비디오 패킷들 사이에서 다른 데이터를 갖는 모든 패킷들이 버퍼링된다. 화상 시작 코드가 그 예에서 도시되어 있지만, 동일한 논의가 시퀀스 헤더 코드에 대해 유효하다는 것은 명백하다. 주어진 기준은 하나의 패킷만에 대해 필요한 버퍼링을 감소시킨다. 정의된 3가지 기준 중 하나가 만족되면, 대응하는 패킷들은 평문으로 된다. 3가지 기준의 조합이 종종 각각의 프레임 경계에서 하나의 평문 패킷만을 유도한다. 하지만, 일부 스트림들에 대한 몇몇 실제적인 경우들에서, 그것은 또한 소수의 패킷들일 수 있다. 이론적으로, 그것은 많은 수의 패킷들일 수 있다.
제 1 예는 GOP당 하나의 PES 패킷 및 12개의 프레임들을 갖는 다수의 패킷들 크기를 갖는 I 프레임들 및 P 프레임들만으로 구성된 스트림이다. 수행된 실험들에 서, I 프레임의 시작에서의 평문 패킷들의 수는 항상 1이다. I 프레임의 끝에서 그리고 실제로 모든 다른 프레임 경계들에서의 평문 패킷의 수는 일반적으로 1이지만, 때로는 2 일 수 있다. I 프레임의 시작에서, PES 헤더에서 화상 코딩 확장으로의 모든 것은 하나의 패킷 내에 있다. 다른 프레임 경계들에서의 평문 패킷들은 화상 시작 코드에서 화상 코딩 확장의 끝까지의 모든 데이터를 포함한다. 이 데이터는 두 개의 패킷들에 걸쳐 확산될 수 있다.
제 2 예는 IBP 구조를 갖는 I 프레임들, P 프레임들, 및 B 프레임들, 2 내지 12에 걸치는 짝수 값들을 갖는 변하는 GOP 크기, 및 프레임당 하나의 PES 패킷으로 구성된 스트림이다. I 프레임의 시작에서의 평문 패킷들의 수는 대부분 2이고, I 프레임의 끝에서 그리고 다른 프레임 경계들에서는 항상 1이다. I 프레임의 시작에서의 두 개의 패킷들은 주로, 시퀀스 헤더에서 양자화 테이블(quantising table)의 존재로 인한 것이다. I 프레임의 끝 및 다른 프레임 경계들에서, PES 헤더에서 화상 코딩 확장으로의 데이터 모두가 하나의 패킷 내에 있다.
제 2 예에 대한 PES 구조로 인해, 그것이 평문인 I 프레임의 최종 패킷, 실제로는 다음 프레임의 제 1 패킷이 아니라는 것에 유의해야 한다. 제 1 예에 대해, 이것은 또한 때때로 일어날 수 있다. 이것은 문제가 아닌데, 왜냐하면 I 프레임의 최종 패킷만이 이 경우에 I 프레임을 포함하고, 클린 업(clean up)될 필요가 없기 때문이다. 또한, 실제로, 3개의 선택 기준의 조합이 각각의 프레임 경계에서 하나의 연속적인 평문 비디오 영역을 야기한다는 것에 유의해야 한다. 이론적으로, 이것이 그 경우일 필요는 없다. 기준 2와 3의 조합은 항상, 연속 영역을 야기하지만, 이론적으로, 평문 PES 헤더 영역은 개별적인 것일 수 있다.
이하에서, 하이브리드 스트림에서 필요한 정보를 어떻게 찾는지가 설명된다.
위에서 언급한 바와 같이, 각각의 프레임 경계에서 하나의 연속 평문 영역이 존재할 수 있다. I 프레임(GOP)의 시작에서, 평문 데이터는 헤더의 제 1 바이트에서부터 화상 코딩 확장의 최종 바이트까지에 걸친다. 예가 도 19에 주어진다. 모든 필요한 데이터는 이 영역 내에 있고, PLUSI로 마킹된 패킷에서 시작하는 스트림의 이 부분을 분석함으로써 쉽게 발견될 수 있다.
이하에서, 도 19를 참조하여, I 프레임의 시작에서의 실제적인 평문 영역이 설명된다.
도 19에 도시된 데이터 스트림은 제 1의 I 프레임 패킷(1900), 및 후속하는 제 2의 I 프레임 패킷(1901)을 포함한다. 제 1의 I 프레임 패킷(1900)은 PES 헤더(1902), 시퀀스 헤더(1903), 시퀀스 확장(1904), GOP 헤더(1905), 화상 시작 코드(1906), 및 화상 헤더(1907)를 포함한다. 또한, 제 2의 I 프레임 패킷(1901)은 화상 헤더(1907), 후속 화상 코딩 확장(1908), 및 I 프레임 데이터 블록(1909)을 포함한다.
이하에서, 도 20a 및 도 20b에 도시된 데이터 스트림이 설명된다.
도 20a의 데이터 스트림에서, I 프레임(2000)의 끝이 나타내진다. PLUSI(2001)는 PES 헤더(1902)에 선행하고, 이어서, 화상 시작 코드(1906)가 제공된다. 그 후에, 화상 헤더(1907)가 이어지고, 이어서, 화상 인코딩 확장(1908)이 이어진다. 계속해서, P 또는 B 프레임 데이터 블록(2003)이 이어진다.
도 20b의 데이터 스트림에서, 최종 I 프레임 데이터(2004)는 I 프레임(2005)의 끝에서 제거되고, 그 후에, 화상 시작 코드(1906), 화상 헤더(1907), 화상 코딩 확장(1908) 및 P 또는 B 프레임 데이터 블록(2003)이 이어진다.
I 프레임의 끝에는, 실제로 두 개의 가능성들이 존재한다.
1. 프레임당 하나의 PES 패킷인 경우에, I 프레임(2000)의 끝에서의(후에서의) 평문 영역은 PES 헤더(1902)의 제 1 바이트로 시작하고, 적어도 화상 코딩 확장(1908)의 최종 바이트에 이른다. 모든 필요한 데이터는 쉽게 발견될 수 있고, I 프레임의 최종 패킷의 클리닝(cleaning)이 필요 없다(도 20a 참조).
2. GOP당 하나의 PES 패킷인 경우에, I 프레임의 끝 이후에 PES 헤더가 존재하지 않는다. 실제로, 이 이치에서 시퀀스 헤더가 존재하지 않는다. 이 경우에, 화상 코딩 확장(1908)의 최종 바이트까지 화상 시작 코드(1906)의 제 4 바이트를 포함하는 패킷들은 평문이다(도 20b 참조). 4 바이트 화상 시작 코드(1906)는 두 개의 패킷들, 예컨대 한 패킷에서의 제 1의 3 바이트들 및 다음 패킷에서의 최종 바이트에 대해 확장된다. 이 경우에, 제 1의 3 바이트는 여전히 암호화될 수 있다. 이것은 이 화상 시작 코드(1906)가 하이브리드 스트림에서 검출될 수 없다는 것을 암시하는 것이다. 이러한 문제가 어떻게 해소될 수 있는지가 이하에서 설명된다.
실제, 각각의 프레임 경계에서 평문 영역이 존재할 수 있다. 그래서, I 프레임의 끝을 검출한다는 것은 I 프레임에 대한 검색 후의 제 1 화상 시작 코드에 대한 검색을 의미한다. 평문 비디오 패킷들만이 암호화된 데이터에서 잘못된 긍정적 매칭(false positive match)을 회피하기 위해 이 코드에 대해 검색되어야 한다는 것은 명백하다. 패킷의 페이로드가 평문인지 아닌지는 패킷 헤더에서 스크램블링 제어 비트에 의해 나타내진다. 검출은 4 바이트의 주어진 시퀀스가 발견될 때(0x00 0x00 0x01 0x00)에만 긍정적인 매칭을 제공한다. 이 시퀀스는 프레임의 타입에 무관한 화상 시작 코드에 대응한다. 불행히도, 화상 시작 코드는 전송 스트림 패킷 경계상에 정렬되지 않는다. 그것은, 화상 시작 코드가 두 개의 패킷들에 대해 확장되면, 이들 패킷들 중 제 2의 한 패킷만이 평문으로 된다는 것을 의미한다. 이 상황이 도 21에 도시되어 있다.
도 21에서, 패킷 헤더는 도면번호 2100으로 나타내지고, 패킷 페이로드 평문은 도면번호 2101로 나타내지고, 암호화된 패킷 페이로드는 도면번호 2102로 나타내진다.
상부 라인(2103)은 완전히 제 2 패킷에 위치되는 화상 시작 코드를 나타낸다. 하부 라인(2104)에 대해, 그것은 완전히 제 1 패킷에 존재한다. 나머지 라인들(2105)은 확산 화상 시작 코드에 대한 3가지 가능성들을 나타낸다. 하나는 부분적으로 암호화된 화상 시작 코드를 검출하는 것이 가능하다는 것을 기대할 수 있게 한다. 하지만, 이러한 딜레마에도 해법은 존재한다. 각각의 평문 영역은 적어도 그것의 최종 바이트 또는 화상 코드를 포함한다. 그래서, 화상 시작 코드가 평문 영역에서 발견되지 않으면, 이 영역이 화상 시작 코드의 최종 바이트의 일부로 시작해야 한다는 것이 알려진다. 이러한 수의 바이트는 도 21에 도시된 바와 같이, 1,2, 또는 3일 수 있다. 얼마나 많은 바이트가 존재하는지를 검출하는 것이 가능할 수 있다. 이러한 면에서, 화상 코딩 타입의 3 비트가 결코 모두 0일 수는 없는데, 왜냐하면, 이것은 구현된 표준에 의해 감춰지기 때문이다. 그러므로, 도 21의 0xYY에 의해 나타내진 화상 시작 코드 후의 제 2 바이트는 0x00일 수 없다. 그래서, 평문 영역이 0x00 0x01 0x00으로 시작하면, 이것들은 화상 시작 코드의 최종 3 바이트들이어야 한다. 만약 그것이 0x01 0x00으로 시작하면, 이것들은 최종 2 바이트이다. 그것이 0x00으로 시작하지만, 0x00 0x01 0x00으로 시작하지 않으면, 최종 바이트만이 존재한다. 이런 식으로, 화상 시작 코드가 어디에 위치되는지를 정확하게 알 수 있고, 그것에 이어지는 데이터가 분석될 수 있다. 필요하다면, 화상 타입은 바이트 0xYY로부터 판독될 수 있다.
화상 시작 코드가 두 개의 패킷들에 대해 확장되면, 모든 비 I 프레임 데이터(non I-frame data)를 제거함으로써 I 프레임의 최종 패킷을 클린 업하는 것이 가능하다고 말할 수 있다. 이것은 실제로, 화상 시작 코드의 암호화된 부분이 제거되지 않으므로 정확하다. 하지만, 트릭 플레이 스트림 구성에서, 빈 P 프레임은 I 프레임의 끝에 첨부된다. 이 빈 P 프레임은 화상 시작 코드로 시작한다. 그래서, 화상 시작 코드의 암호화된 바이트는 얼마나 많은 이들 바이트들이 최종 암호화된 패킷의 끝에 존재하는지를 알기 때문에 재사용될 수 있다. 이러한 수의 바이트들은 I 프레임 후에 부가되는 제 1의 빈 P 프레임의 화상 시작 코드로부터 제거된다.
도 22는 이러한 상황의 예를 도시하며, 특별히는, 화상 시작 코드(2200), 시간적인 기준(2201), 화상 코딩 타입(2202), 및 빈 프레임 데이터(2203)를 도시한다.
삽입된 빈 P 프레임 데이터는 저장 디바이스에서 DVB 암호화기의 부재시에 평문으로 되어야 한다. 실제로 예상되는 상황들이 위에 설명되어 있지만, 이론적으로 일부 부가적인 상황들이 일어날 수 있다. 이것은, 기준 2 및 3으로부터 얻어진 평문 영역 및 평문 PES 헤더 영역이 이론적으로 접속될 필요가 없지만, 암호화된 비디오 패킷들에 의해 분리될 수 있다는 사실로부터 기원한다. 명료화를 위해, 연속하는 평문 영역은 일련의 비디오 패킷들이 명문으로 되어 있지만, 다른 암호화된 패킷들이 그 사이에 있을 수 있다는 것을 의미한다.
상기 기준을 갖는 라인에서, 액세스될 수 있는 3개의 중요한 데이터 영역들이 존재한다:
1. PES 헤더 정보.
2. 시퀀스 헤더 및 시퀀스 확장에서의 정보.
3. 화상 시작 코드에서 화상 코드 확장으로의 정보.
이들 3개의 데이터 영역들은 도 23에 도시되어 있다.
도 23은 상술한 3개의 포인트들에 대응하는 평문 데이터 영역들을 도시한다. 제 1 포인트와 관련하여, PLUSI(2300)(페이로드 유닛 시작 표시기) 및 PES 헤더(2301)가 도시된다.
제 2 포인트에 따라, 화상 시작 코드(2306)뿐만 아니라, 시퀀스 확장(2302), 시퀀스 확장 코드(2303), 시퀀스 헤더(2304), 및 시퀀스 헤더 코드(2305)가 도시된다.
제 3 포인트를 참조하면, 화상 코딩 확장 코드(2309)와 화상 코딩 확장(2310)뿐만 아니라, 화상 시작 코드(2308) 및 화상 헤더(2307)가 도시된다.
3개의 아이템들은 이 데이터를 위치시키고 정확하게 분석하기 위해 스트림 내에서 발견되어야 한다:
1. 패킷 헤더에서의 PLUSI 비트(2300).
2. 시퀀스 헤더 코드(2305)(0x00 0x00 0x01 0xB3).
3. 화상 시작 코드(2308)(0x00 0x00 0x01 0x00).
아이템(1)을 찾는 것은 쉬운데, 왜냐하면, 그것은 패킷 헤더에서 PLUSI 비트(2300)만을 찾음으로써 충분하기 때문이며, 그것이 "1"로 설명되면, 패킷은 PES 헤더(2301)로 시작하고, 분석될 수 있다.
아이템들(2,3)에 대한 상황은 보다 복잡할 수 있는데, 왜냐하면, 시퀀스 헤더 코드(2305) 및 화상 시작 코드(2308)가 부분적으로 암호화된 코드들을 야기하는 두 개의 패킷들에 대해 확산될 수 있기 때문이다. 그러므로, 이들 코드들의 직접적인 검출은 약간의 데이터 손실을 야기한다. 그러나, 이 문제에 대한 해결책이 존재한다. MPEG2에서, 시퀀스 확장(2302) 및 화상 코딩 확장(2310)의 존재는 도 24에 도시된 바와 같이 의무적인 것이다.
도 24는 확장 및 사용자 데이터(2400)에 제공되는 시퀀스 확장(2302)과 결합된 시퀀스 헤더(2304)를 도시한다. 또한, 확장 및 사용자 데이터(2400)는 사용자 데이터(2402)에 결합된 GOP 헤더(2401)와 결합된다. 사용자 데이터(2402)는 화상 코딩 확장(2310)에 결합된 화상 헤더(2307)에 결합된다. 이 화상 코딩 확장(2310)은 사용자 데이터(2403)와 결합되고, 사용자 데이터(2403)는 화상 데이터(2404)에 결합된다. 이어서, 시퀀스 끝(2403)이 도달된다.
평문 패킷들에 대한 기준이 공식화되는 방식은 이들 확장들이 완전히 평문으로 되는 것을 보장한다. 그것들은, 0x00 0x00 0x01 0xB5인 확장 시작 코드를 우선 찾음으로써 발견될 수 있다. 다음의 4 비트들이 확장 시작 코드 식별자이다. 이들 4 비트들은 시퀀스 확장에 대해서는 0001이고, 화상 코딩 확장에 대해서는 1000이다. 시퀀스 확장이 존재하면, 시퀀스 헤더 코드 또한 존재할 수 있고, 이상적으로는, 화상 코딩 확장이 존재하면, 화상 시작 코드 또한 존재할 수 있다. 이것은 아래의 것을 야기한다:
- 시퀀스 확장(2302)이 평문 영역에서 발견되고, 시퀀스 헤더 코드(2304)가 이 동일한 영역에서 검출되지 않으면, 시퀀스 헤더 코드(2304)는 두 개의 패킷들에 대해 확산되어야 하고, 시퀀스 헤더 코드(2304)의 최종 바이트는 가능한 PES 헤더와 무관한 이 평문 영역의 제 1 바이트이다(도 25 참조).
- 화상 코딩 확장(2310)이 평문 영역에서 발견되고, 화상 시작 코드(2308)가 이 동일한 영역에서 검출되지 않으면, 화상 시작 코드(2308)는 두 개의 패킷들에 대해 확산되어야 하고, 화상 시작 코드(2308)의 최종 바이트는 가능한 PES 헤더에 무관한 이 평문 영역의 제 1 바이트이다(도 26 참조).
이들 2가지 상황들이 하나의 평문 영역에서 동시에 일어날 수 있다는 것에 유의해야 한다. 시퀀스 확장(2302) 및 화상 코딩 확장(2310) 둘 모두가 존재하면, 이들 두 개 사이에 위치되는 화상 시작 코드(2308)는 필연적으로 완전히 평문으로 된다. 이 경우, 시퀀스 헤더 코드(2305)만이 부분적으로 암호화될 수 있다. 물론, 시퀀스 헤더 코드(2305) 또는 화상 시작 코드(2308)가 완전히 평문으로 되고, 그에 따라, 직접적인 방식으로 검출되면, 대응하는 데이터의 분석은 즉시 시작될 수 있다. 하지만, 위의 상황들 중 하나를 접하게 되면(encountered), 우선적으로, 정확한 분석이 시작될 수 있기 전에 이들 코드들의 얼마나 많은 바이트들이 평문 영역의 시작에서 또는 PES 헤더 이후에 존재하는지를 알아야 한다. 화상 시작 코드(2308)에 대해 이것을 검출하는 방법은 앞에서 설명했다. 동일한 방법이 시퀀스 헤더 코드(2305)에 대해 적용될 수 있다.
시퀀스 헤더 코드(2305)에 대한 상황이 도 27에 도시되어 있다.
평문은 위로 제 4 바이트로부터 보장된다. 이 바이트는 0x00 0x00 0x01과 같은 시퀀스 헤더 코드(2305)의 최종 바이트이다. 그래서, 시퀀스 헤더 코드(2305)가 존재하지만, 이 영역에서 검출되지 않으면, 그 최종 바이트들의 일부는 이 영역의 시작에서 또는 PES 헤더 이후에 존재해야 한다. 화상 시작 코드(2308)로, 얼마나 많은 이들 바이트들이 존재하는지를 정확하게 검출하는 것이 가능하다. 검출은 PES 헤더와 무관한 영역에서 제 1 평문 바이트에서 시작한다. 제 1 바이트들이 0x00 0x01 0xB3이면, 3 바이트들이 존재하고, 그것들이 0x01 0xB3이면, 2 바이트들이 존재하며, 제 1 바이트가 0xB3이면, 단지 이 1 바이트가 존재한다. 바이트들의 수 및 시퀀스 헤더 코드(2305) 또는 화상 시작 코드(2308)의 최종 바이트의 위치를 알면, 이 코드에 이어지는 데이터를 정확히 분석할 수 있다.
이하에서, 전송 스트림 레벨에 대한 스트림 구성이 설명된다.
본 명세서에서, 패킷 포지셔닝(packet positioning)이 설명된다.
트릭 플레이 스트림에 대해 카피된 패킷들의 위치는 일반적으로, 트릭 플레 이에서 시간 베이스의 가능한 반전(리버스 모드) 및 압축으로 인해, 원 전송 스트림의 상대적인 타이밍에 결합되지 않을 수 있다. 그러므로, 원 패킷 도달 시간 스탬프된 전송 스트림(original packet arrival time stamped transport stream)의 선첨부된 패킷 도달 시간 스탬프들은 일반적으로, 트릭 플레이 생성을 위해 사용 불가능하다. 이것이, 설명된 트릭 플레이 방법이 또한 미리 첨부된 패킷 도달 시간 스탬프들 없이 전송 스트림에 대해 왜 사용될 수 있느냐의 이유이다. 원 상대적 타이밍(original relative timing)이 사용되지 않으므로, 또 다른 타이밍 메커니즘이 선택되어야 한다. 차후에 명확해지는 바와 같이, 이것을 행하는 적절한 방식은 도 28에 도시된 바와 같이 트릭 플레이 GOP에 대해 패킷 레이트를 스무스(smooth)하게 하는 것이다.
도 28은 트릭 플레이에 대한 패킷 스무싱(packet smoothing)을 개략적으로 도시한다.
이해할 수 있는 바와 같이, 방송 스트림(2800)은 I 프레임 데이터(2801), P/B 프레임 데이터(2802) 및 또 다른 I 프레임 데이터(2803)를 포함한다. I 프레임 데이터(2801)는 등거리로 제공되지 않지만, 도 28의 상부 로우(upper row)(2800)에서 볼 수 있는 바와 같이, 시간 도메인에서 순서화되지 않은 방식으로 분배된 다수의 패킷들을 포함한다.
하드디스크 상에 저장된 바와 같은 데이터 포맷은 도 28의 로우(2810)에 도시되어 있다. 여기서, P/B 프레임 데이터(2802) 및 또 다른 I 프레임 데이터(2803)뿐만 아니라, I 프레임 데이터(2801)의 다양한 신호 패킷들이 그 사이에 거리 없이 교대로 제공된다.
트릭 플레이 출력(2820)은 PAT(Program Association Table) 및 PMT(Program Map Table) 패킷들(2825)에 선행하는 PCR 패킷(2824)을 도시하는 도 28에서 설명된다. 이어서, I 프레임 데이터(2801)의 패킷들의 시퀀스는 스무스된 빈 P 프레임 데이터(2823)에 선행하는 스무스된 I 프레임 데이터(2822)로서 스무스된 방식으로 제공된다. 하지만, 스무스된 빈 B 프레임들 또한 부가적으로 또는 선택적으로 가능하다. 이어서, 또 다른 PCT 패킷(2824) 및 두 개의 PAT, PMT 패킷들(2825)은 스무스된 또 다른 I 프레임 데이터(2826)에 선행하여 제공된다. 스무스된 I 프레임 데이터(2822) 및 빈 P 프레임 데이터(2823)는 명목상의 GOP 시간 T/R(2821)에 의해 시간 도메인에서 이격된다.
I 프레임(2822)에 대한 패킷들의 수가 알려지는데, 실제로는, 빈 P 프레임들(2823) 및 일부 부가적인 패킷들(예컨대, PCR, ECM, SIT, DIT 등)에 대한 패킷들의 수가 알려진다. 총 패킷들은 1/Rt 또는 T/R과 같은 명목상의 GOP 시간(2821)에서 전송된다. 패킷 거리는 패킷들의 수 및 GOP 시간(2821)으로부터 계산된다. 실제로, 계산된 패킷 전송 순간(packet transmission moment)은 트릭 플레이 패킷들에 선첨부된 새로운 패킷 도달 시간 스탬프들로 변환될 수 있다. 이들 패킷 도달 시간 스탬프들은 패킷의 시작에서 새로운 PCR 트릭 플레이 시간 베이스의 계산된 값으로부터 유도될 수 있다. 이런 식으로, 생성된 트릭 플레이 스트림(2820)은 정상 플레이를 위해 사용될 수 있는 것과 동일한 출력 회로에 의해 처리될 수 있다. 새로운 PCT 트릭 플레이 시간 베이스가 이하에서 논의된다.
이하에서, PCR에 관련된 특징들이 설명된다.
원 PCR 시간 베이스는 일반적으로 트릭 플레이를 위해 사용될 수 없다. 무엇보다, PCR가 선택된 I 프레임 내에 존재한다는 것은 보장되지 않는다. 보다 중요하게는, PCR 시간 베이스의 주파수(frequency)는 더 이상 정확하지 않다. 이 빈도는 27MHz로부터 30ppm 내에 있지만, 트릭 플레이 속도 팩터에 의해 승산되며, 시간 베이스가 리버스 트릭 플레이에 대해 잘못된 방향으로 이동하게 한다.
그러므로, 이전 PCR 시간 베이스는 제거되어야 하고, 새로운 시간 베이스가 부가되어야 한다. 이전 PCR들은 그것들이 위치되는 적응 필드들을 클리닝함으로써 제거된다. 적응 필드들은 암호화되지 않는다. 새로운 PCR들은 도 28에 나타내진 바와 같이, 각각의 트릭 플레이 GOP(2821)의 시작에서 부가적인 PCR 패킷(2824)을 위치시킴으로써 부가된다. 이들 GOP들이 명목상의 GOP 시간(2821)에서 정확하게 전송되므로, PCT 값들 사이의 거리는 일정하고, 이 명목상의 GOP 시간(2821)으로부터 유도될 수 있다. 결국, 높은 타이밍 정확도를 갖는 새로운 PCR 시간 베이스의 부가는 매우 간단하다.
PCR(2824)은 두 개의 부분들, 즉 PCR 베이스(base) 및 PCR 확장(extension)으로 구성된다. PCR 확장은 9비트의 LSB 부분이고, 0 내지 299의 범위에 걸칠 수 있다. PCR 베이스는 33 비트의 크기를 갖는 MSB 부분이고 전체 영역이다. PCR 베이스의 주파수는 27MHz/300=90kHz이다. 거의 모든 프레임 레이트들은 이 90kHz에 맞는다. 이 레이트들에 대해, PCR 확장은 프레임 시간의 정수곱인 포인트들에 대해 상수이다. 명목상의 GOP 시간(2821)이 이러한 정수곱이므로, 새로운 시간 베이스의 모든 삽입된 PCR들의 PCR 확장은 0으로 설정될 수 있다. 23.976Hz 및 59.94Hz의 이심 레이트들(eccentric rates)만은 90KHz에 맞지 않는다. 하지만, 59.94Hz에 대해서는, PCR 확장은 프레임 시간의 짝수곱과 같은 거리에 대해 상수이고, 23.976Hz의 경우에는 4중 프레임 시간(fourfold frame time)에 대해 상수이다. IPPP(T=4) 트릭 플레이 GOP 구조로, PCR 확장에 대해 O의 고정된 값이 모든 프레임 레이트들에 대해 사용될 수 있고, 추가적으로, 새로운 PCR 시간 베이스의 삽입을 단순화한다.
전송된 스트림에서 후속 PCR들(2824) 간의 거리는, MPEG2 표준에 따라, 100ms를 초과하지 않는다. DVB 표준에서, 이 값은 보다 낮은, 즉 40ms이다. 단지 하나의 PCR(2824)만을 전달하면, 모든 트릭 플레이 GOP(2821)는 명백히 이러한 제한들을 위반한다. T=4 및 R=25인 최악의 상황에서, PCR들(2824) 간의 거리는 160ms이다. 실험들에서, 이 거리를 위반하는 문제점들이 발생하지는 않았다. 부가적인 PCR들(2824)은 스트림에 포함되지만, 이것은 보다 복잡하고, 모든 경우들에서 필요한 것으로 여겨지지는 않는다.
이하에서, DTS(Decoding Time Stamp) 및 PTS(Presentation Time Stamp)와 관련된 특징들이 논의된다.
프레임들은, 프레임(DTS)을 언제 디코딩하기 시작할지를 그리고 그것(PTS)을 언제 제공하기 시작할지를 디코더에 알릴 수 있는 두 개의 시간 스탬프들을 포함할 수 있다. 그것들은 DTS 및 PTS가 PCT 시간 베이스와 같을 때 시작되고, 스트림에서 PCR들에 의해 디코더에서 재구성된다. 새로운 PCR 시간 베이스가 트릭 플레이 스트 림에 부가되므로, 그리고 DTS 및 PTS에 대한 시간 거리들이 어쨌든 더 이상 정확하지 않기 때문에, 존재한다면, I 프레임의 DTS 및 PTS는 교체될 수 있다. DTS 및 PTS는 PES 헤더에 위치된다.
트릭 플레이 GOP를 구성하는 적어도 두 가지 방식들, 즉 프레임당 하나의 PES 패킷들 또는 GOP당 하나인 방법들이 존재한다. 부분적으로 암호화된 화상 시작 코드의 경우에, 프레임당 하나의 PES 패킷들은 실제로 사용될 수 없다. 그래서, 원 스트림이 프레임당 하나의 PES 패킷인 경우에도 GOP당 하나의 PES 패킷이 선택될 수 있다. 그러므로, 삽입된 빈 P 프레임들은 DTS 또는 PTS를 갖지 않는다. PES 패킷 길이는 그것의 원 값이 무엇이건 간에 0으로 설정된다.
I 프레임의 디코딩이 시작할 때를 고려해야 한다. 트릭 플레이 GOP의 패킷들은 일정한 GOP 시간에 대해 확산된다. 거의 모든 트릭 플레이 GOP는 I 프레임 데이터에 관련되며, 그래서, I 프레임의 끝은 다음 GOP의 시작에 근접한다. 그러므로, I 프레임의 디코딩은 다음 GOP의 시작에서 시작할 수 있다. 그래서, I 프레임의 DTS는 다음 GOP의 시작에서 PCR 시간 베이스에 대응하는 값으로 설정된다. DTS 및 PTS는 일반적으로, PCR 베이스에 대한 기준을 포함한다. 그러므로, DTS는 다음 GOP의 시작에 삽입되는 PCR 베이스와 동일하다.
또한, I 프레임의 제공이 시작될 때를 고려해야 한다. DTS와 PTS 사이의 1 프레임의 시간은 I 프레임들 및 P 프레임들을 갖는 스트림에 대해 적절하지 않지만, low_delay_flag가 설정되지 않으면 MPEG2 표준이 이러한 스트림에 대해 규정하는 것이다. 그래서, I 프레임의 PTS는 1 프레임 시간에 대응하는 값 플러스 DTS 값 으로 설정된다. 23.976Hz 및 59.94Hz의 프레임 레이트들에 대해, 이것은 1 프레임 시간에 근접한 값이다. 연속하는 트릭 플레이 GOP들의 시작 간의 PCR의 거리는 이미 계산된다. 이 거리는 PCR 베이스와 같은 개념을 가지며, 그러므로, DTS 및 PTS와 같다. PTS와 DTS 간의 오프셋 값은 트릭 플레이 GOP 크기에 의해 PCR 거리를 나눔으로써 계산될 수 있다. 이것은 실제로, 4로써 나누는 것이 필요한 IPPP(T=4) 구조의 경우에서 매우 간단하다. PCR 거리의 비트들은 PTS/DTS 오프셋을 계산하기 위해 두 개의 장소들에 의해 간단히 시프트(shift)된다. 이것은 도 29에 도시되어 있다.
도 29는, 시간(t)이 횡좌표(2901)를 따라 플로트되고, PCR 베이스가 세로좌표(2902)를 따라 플로트되는 다이어그램(2900)을 도시한다. 도 29는 T=4인 GOP 크기 및 R=25인 리프레쉬 레이트에 관련된다.
이하에서, ECM들(Entitlement Control Messages)의 삽입과 관련된 몇몇 특징들이 논의된다.
암호화된 트릭 플레이 스트림의 경우에, ECM들은 수신기(예컨대, STB)에 의해 해독을 인에이블하기 위해 이 스트림에 제공되어야 한다. 본 명세서에서, ECM들이 언제 삽입되어야 하는지 어디에 삽입되어야 하는지가 결정된다. 바람직한 경우에, 레코딩된 스트림이 필요한 평문 패킷들을 이미 포함하고 있고, 저장 디바이스로부터 판독된 데이터 블록은 I 프레임 데이터를 포함한다. 하지만, ECM 삽입 방법은 또한, 보다 큰 블록 크기들을 갖는 보다 일반적인 경우에 가능하다.
데이터 블록의 제 1 프레임은 트릭 플레이 GOP에 사용된다. 대부분의 ECM들 은 이들 I 프레임들 사이의 어디로, 실제로는 두 개의 트릭 플레이 GOP들 사이에 전달된다. 앞에서 설명한 바와 같이, 모든 트릭 플레이 GOP들은 시간적으로 동일한 길이를 가지며, GOP의 패킷들은 비트 레이트를 스무스하게 하기 위해 이 시간에 대해 확산될 수 있다. 이들 GOP들 사이에 ECM들을 삽입하는 것은, 필연적으로 로컬 비트 레이트를 증가시킨다. 트릭 플레이 GOP에 ECM을 실장하는 것이 양호할 수 있다. 이어서, ECM이 부가되는 GOP를 결정해야 한다. 특히, 아래의 두 가지 옵션들이 존재한다:
1. ECM은 이전 트릭 플레이 GOP의 끝에 부가될 수 있다.
2. ECM은 다음 트릭 플레이 GOP의 시작에 부가될 수 있다.
두 번째 옵션에서, 실제로 ECM은 다음 GOP의 제 1 패킷이 아닌데, 왜냐하면, 이것들이 타이밍 이유로 그 위치에 남게 되는 삽입된 PCR들이기 때문이다. 그래서, ECM은 이 경우에 제 2 패킷이다. 비록 실제에 있어, 두 개의 옵션들 간의 차이는 많은 경우들에 있어 무시 가능하고, 선택적인 위치가 그것이 ECM의 해독을 위해 이용가능한 시간을 최대화하기 때문에 옵션 1에 의해 주어진다.
이 상황은 도 30에 도시되어 있다.
도 30은 이미 도입된 성분들에 부가하여, SCB 토글(3000), ECM 패킷(3001), 및 I 프레임 데이터(3002)를 도시한다. 또한, 빈 P 프레임들(3003)이 도 30에 도시되어 있다.
포워드 트릭 플레이에 대해, SCB 토글(3000)이 I 프레임들 사이에 위치되는 것이 아니라 선택된 I 프레임 내의 어디에 위치되는 것이 때때로 발생할 수 있다. ECM(3001)은 SCB 토글(3000)이 교차될 때 전달되어야 한다. 이것은, 이 경우에 ECM(3001)이 I 프레임 내의 정확한 위치에 삽입되어야 한다는 것을 의미한다. 다시, 이를 행하기 위해 특별한 두 개의 옵션들이 존재한다:
1. ECM(3001)은 SCB 토글(3000)에 대해 I 프레임 패킷 전에 삽입될 수 있다.
2. ECM(3001)은 SCB 토글(3000)에 대해 I 프레임 패킷 후에 삽입될 수 있다.
SCB 토글(3000)을 갖는 패킷은 선행하는 암호화된 비디오 패킷 이외에 SCB 값을 갖는 암호화된 비디오 패킷이다. 몇몇 경우들에서, 옵션 1 또는 2가 사용되는지는 실질적인 문제가 아니지만, 이론적으로는, 최상의 위치는 일반적으로 SCB 토글(3000)을 갖는 패킷 앞이다. 이것은 한편으로는 이전 기간의 CW이 이 순간으로부터 더 이상 불필요하고 다른 한편으로는 ECM(3001)을 해독하는 시간이 최대화되기 때문이다.
옵션 1은 도 31에 도시되어 있다. 특별히, SCB 토글을 갖는 패킷(3100)은 도 31에 도시되어 있다.
모든 경우들에서, 삽입된 ECM들의 테이블 ID 및 PID 넘버는 바람직하게는, 두 방향들로 정상 플레이와 트릭 플레이 사이에서 스무스한 스위칭을 인에이블하는 원래의 것들이다. ECM 패킷 헤더 내의 연속성 카운터는 수정될 수 있다.
이하에서, 하이브리드 스트림을 생성하는 것에 대해, 몇몇 특징들이 논의된다.
여기에서 설명되는 하이브리드 스트림은 여러 장소들에서 생성될 수 있다. 본 명세서에서, 도 32를 참조하자.
실제로, 가능한 장소들은 평문 I 프레임들을 갖는 스트림에 대한 것과 동일한 위치들이다(도 14 및 대응하는 설명을 참조):
1'. 위성 방송의 경우에 방송기(1401) 또는 업링크에서.
2'. 케이블 네트워크의 경우에 케이블 헤드 엔드(head-end)(1405)에서.
3'. 보안 인증된 도메인의 경우에 가정용 게이트웨이(1407)에서,
4'. 저장 디바이스(1409)의 레코딩 측에서.
하지만, 소수의 평문 패킷들만을 갖는 스트림에 대해, 제 5 위치가 부가되어야 한다:
5'. 저장 디바이스(1406,1408,1409)의 플레이백 측에서.
가능한 위치들 1' 내지 5'가 도 32에 보여진다.
위치들 1' 및 2'는 제한된 영향이 존재하기 때문에 구현하는데 어려울 수 있다. 저장 디바이스에 대해, 실제로, 하이브리드 스트림으로의 변환이 위치들 1', 2', 또는 3'에서 구현되던 간에 차이가 없다. 그래서, 옵션 3'은 매우 중요한 선택일 수 있다. 모든 경우들에서, 저장 디바이스는 이 레코딩 입력에서 하이브리드 스트림을 수신할 수 있다. 이것은, 적어도 정상 플레이 및 트릭 플레이 생성을 제외한, 해독 및 스마트카드가 저장 디바이스에서 불필요하다는 것을 의미한다. 하지만, 해독은 메타데이터 추출 기능이 키 프레임들(key frames) 등의 검출을 사용하는 저장 디바이스 내에 제공되지 않으면 여전히 필요하다. 하이브리드 스트림을 구성하기 위한 적절한 위치는, 저장 디바이스의 레코딩 측에 있는 경우 4'일 수 있다. 비록 이것이 레코딩 측에서 부분적인 해독을 요구하지만, 해독이 트릭 플레이 생성을 위해 불필요하다는 이점을 갖는다. 어쨌든, 레코딩된 스트림이 하이브리드 스트림이라는 것이 바람직하다. 경우 5'에, 레코딩을 행하여 모든 패킷들이 암호화되고, 여기에서 설명되는 바와 같이 안전한 트릭 플레이를 생성하는 것이 여전히 가능하다. 도 16에서, 완전히 암호화된 스트림을 다루기 위한 기본적인 접근법이 도시되었다. 하지만, 완전한 해독 대신에, 필요한 이들 패킷들만을 해독하고, 나머지는 여전히 암호화된 채로 남겨두는 것이 가능하다(도 33 참조).
도 33은, 해독기(1603)가 부분적으로 암호화된 MPEG2 데이터(3300)를 출력하고, MPEG2 디코더(1506)가 부분적으로 해독된 MPEG2 호환 전송 스트림(3301)을 수신하는 MPEG2 디코더 및 해독기(3302)에 의해 교체된다는 점에서 시스템(1600)과는 상이한 시스템(3310)을 도시한다. 지배적으로 암호화된 트릭 플레이 스트림을 생성하는 것이 여전히 가능하다.
이하에서, 도 34a를 참조하여, 본 발명의 예시적인 실시예에 따라 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400)가 설명된다.
특히, 도 34a는 디바이스(3400)의 하이브리드 스트림 생성 블록 다이어그램을 도시한다. 도 34b는, 도 34a의 하이브리드 스트림 생성 블록 다이어그램과 함께 사용될 수 있는, 디바이스(3400)의 하이브리드 스트림 생성 블록 다이어그램을 도시한다.
디바이스(3400)는 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하는 해독 유닛(3402)을 포함한다.
또한, 디바이스(3400)는 해독된 데이터 스트림(3403)에서 I 프레임들의 위치 정보를 검출하는 검출 유닛(3404)을 포함한다. 특히, 검출 유닛(3404)은 위치 정보로서, 해독된 데이터 스트림(3403)에 포함된 I 프레임들 각각의 시작 위치 및 끝 위치를 검출한다.
또한, 디바이스(3400)는 검출 유닛(3404)에 의해 검출된 위치 정보에 기초하여, 교체 유닛(3405)의 제 2 입력에 제공되는 암호화된 데이터 스트림(3403)의 대응하는 부분들로써 교체 유닛(3405)의 제 1 입력에 제공되는 암호화된 데이터 스트림(3401)의 부분들을 교체하는 교체 유닛(3405)을 포함한다. 달리 말해서, 교체 유닛(3405)은 I 프레임들의 검출된 시작 위치 및 끝 위치에서 해독된 데이터 스트림(3403)의 대응하는 부분들로써 암호화된 데이터 스트림(3401)의 부분들을 교체한다. 결국, 하이브리드 데이터 스트림(3407)은 도 34a의 하이브리드 스트림 생성 블록 다이어그램의 교체 유닛(3405)의 출력에서 생성된다.
도 34a의 시스템의 출력에 제공되는 하이브리드 데이터 스트림(3407)은 도 34b의 시스템의 입력에 접속될 수 있다. 하지만, 하이브리드 데이터의 저장은 선택적으로 포함될 수 있다.
도 34b의 트릭 플레이 생성기 유닛은 선택적으로 (추가적인) 검출 유닛(3404)을 포함할 수 있다.
하이브리드 데이터 스트림(3407)은 트릭 플레이 재생 모드에서 재생을 위해 데이터 스트림(3409)을 생성하는 트릭 플레이 생성 유닛(3408)에 공급되고, 추가적인 검출 유닛(3404)에 공급될 수 있다. 또한, 추가적인 검출 유닛(3404)의 출력이 제공되는 부가 유닛(3406)이 도시되어 있다. 부가 유닛(3406)은 데이터 스트림에 타이밍 정보를 부가할 수 있다. 부가 유닛(3406)에 의해 부가된 데이터는 평문이다. 부가 유닛의 출력은 트릭 플레이 생성 유닛(3408)에 제공될 수 있다.
트릭 플레이 생성 유닛(3408)은 그의 입력들에 기초하여, 트릭 플레이 재생 모드에서 재생을 위해 데이터 스트림(3409)을 생성한다.
이 트릭 플레이 스트림(3409)은 재생 유닛(3410)에 제공된다.
부가 유닛(3406)은 또한, 테이블들, ECM 데이터 및/또는 빈 프레임들을 부가할 수 있다.
생성 유닛(3408)은 리멀티플렉싱(re-multiplexing), 타이밍 이슈들(timing issues), 리멀티플렉스된 패킷들의 스무싱 및/또는 프레임 패킷들의 클리닝 업을 처리할 수 있다.
검출 유닛(들)(3404)은 해독된 스트림(3403) 또는 하이브리드 스트림(3407) 내에서 프레임 경계들을 검출할 수 있다. 이러한 프레임 경계들은 I 프레임들, B 프레임들 및/또는 P 프레임들의 프레임 경계들일 수 있다.
도 34a, 도 34b의 상황은 상이한 데이터 스트림들을 도시하는 도 35를 참조하여 설명된다.
도 35에서, 암호화된 데이터 스트림(3401)이 도시되어 있다. 해독 유닛(3402)으로 보내진 후에, 완전히 해독된 데이터 스트림(3403)이 생성된다. 도 35는 검출 유닛(3404)에 의해 검출되는 해독된 데이터 스트림(3403) 내에서 검출된 시작 위치들(3500) 및 끝 위치들(3501)을 도시한다. 교체 유닛(3405)으로 보내진 후에, 암호화된 데이터 스트림(3401)의 시작 부분들(3500)과 끝 부분들(3501)에 관 련된 부분들은 해독된 부분들(3502)에 의해 교체된다. 부가 유닛(3406)은 스트림의 시작시에 타이밍 정보(3503)를 부가한다.
또한, 도 35에 도시된 바와 같이, ECM 정보는 데이터 스트림의 끝 부분에 부가될 수 있고, 도면번호 3504로 표시된다.
부가적으로 또는 선택적으로, I 프레임 경계들의 검출에 대해, B 프레임들 및/또는 P 프레임들의 경계들(즉, 시작 및/또는 끝 위치들)을 검출하는 것이 가능하다는 것에 유의하자.
이하에서, 도 36을 참조하여, 본 발명의 또 다른 예시적인 실시예에 따라 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트림(3601)을 처리하는 디바이스(3600)가 설명된다.
디바이스(3600)는 데이터 스트림(3601)에 대해 패킷들을 균일하게 또는 균질하게 분배하기 위한 분배 유닛(3602)을 포함한다. 스무싱 유닛으로서 나타내질 수 있는 이 분배 유닛(3602)은 도 28의 제 2 로우(row)에 도시된 것과 같은 I 프레임들의 등거리로 배열된 부분들을 생성한다.
교체 유닛(3603)은 패킷들의 균일한 분배에 대해 조정되는 수정된 타이밍 정보에 의해 더 이상 유효하지 않은 데이터 스트림의 타이밍 정보를 교체한다.
또한, 데이터 스트림에서 해독 정보로서 ECM을 삽입하는 해독 정보 삽입 유닛(3604)이 제공된다.
또한, 트릭 플레이 재생 모드에서 재생을 위해 데이터 스트림을 생성하는 트릭 플레이 생성 유닛(3605)이 제공된다. 재생을 위해 재생 유닛(3606)에 트릭 플레 이 데이터(3607)가 제공된다.
도 36의 성분들의 배열은 수정될 수 있음에 유의하자. 예를 들어, 교체 유닛(3603)과 분배 유닛(3602)의 위치들이 교환될 수 있다.
이하에서, 도 36의 신호 흐름 경로가 설명된다.
트릭 플레이 생성 유닛(3605)에는 데이터 스트림(3601)이 제공된다. 트릭 플레이 생성 유닛(3605)의 출력은 해독 정보 삽입 유닛(3604)의 입력에 결합된다. 해독 정보 삽입 유닛(3604)의 출력은 교체 유닛(3603)의 입력에 결합된다. 교체 유닛(3603)의 출력은 분배 유닛(3602)의 입력에 결합된다. 분배 유닛(3602)(여기에, 트릭 플레이 데이터(3607)가 제공됨)의 출력은 재생 유닛(3606)의 입력에 결합된다.
용어 "포함하는"은 다른 요소들 또는 단계들을 배제하는 것이 아니며, "a" 또는 "an"은 복수를 배제하는 것이 아님에 유의해야 한다. 또한, 서로 다른 실시예들과 연관하여 설명된 요소들은 조합될 수 있다.
청구범위에서의 도면번호들은 청구범위를 제한하는 것으로서 고려되지 않음에 유의해야 한다.

Claims (36)

  1. 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400)에 있어서,
    상기 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하기 위한 해독 유닛(3402);
    상기 해독된 데이터 스트림(3403)에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하기 위한 검출 유닛(3404); 및
    상기 검출된 위치 정보에 기초하여, 상기 해독된 데이터 스트림(3403)의 대응하는 부분들로 상기 암호화된 데이터 스트림(3401)의 부분들을 교체하기 위한 교체 유닛(3405)을 포함하는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  2. 제 1 항에 있어서,
    상기 검출 유닛(3404)은 상기 해독된 데이터 스트림(3403)에서 적어도 하나의 포워드 예측 프레임(forward predictive frame) 및/또는 적어도 하나의 양방향 예측 프레임(bi-directional predictive frame)의 위치 정보를 검출하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  3. 제 1 항에 있어서,
    하이브리드 스트림(hybrid stream)을 레코딩하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  4. 제 1 항에 있어서,
    상기 검출 유닛(3402)은 위치 정보로서, 상기 해독된 데이터 스트림(3403)에서 적어도 하나의 인트라 코딩된 프레임의 시작 위치(3500)와 끝 위치(3501)를 검출하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  5. 제 4 항에 있어서,
    상기 교체 유닛(3405)은 상기 적어도 하나의 인트라 코딩된 프레임의 검출된 시작 위치(3500) 및 끝 위치(3501)에서 상기 해독된 데이터 스트림(3403)의 대응하는 부분들로 상기 암호화된 데이터 스트림(3401)의 부분들을 교체하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  6. 제 1 항에 있어서,
    상기 교체 유닛(3405)에 의해 앞에서 이미 처리된 데이터 스트림에 타이밍 정보를 부가하기 위해 적응되는 부가 유닛(3406)을 포함하며,
    상기 타이밍 정보는 적어도 하나의 인트라 코딩된 프레임의 위치에 대한 기준을 포함하는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  7. 제 6 항에 있어서,
    상기 부가 유닛(3406)은 평문(plaintext)의 상기 타이밍 정보를 부가하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  8. 제 1 항에 있어서,
    상기 교체 유닛(3405)은 상기 해독된 데이터 스트림(3403)의 대응하는 부분들로 상기 암호화된 데이터 스트림(3401)의 데이터 양을 교체하기 위해 적응되며, 상기 양은 트릭 플레이 재생 모드(trick-play reproduction mode)에서의 재생을 위해 데이터 스트림(3409)을 생성하는데 최소한으로 요구되는 것인, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  9. 제 4 항에 있어서,
    상기 교체 유닛(3405)은 상기 적어도 하나의 인트라 코딩된 프레임의 시작 위치(3500)와 끝 위치(3501) 사이의 데이터가 상기 해독된 데이터 스트림(3403)의 대응하는 부분들로 교체되지 않는 방식으로 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  10. 제 1 항에 있어서,
    상기 교체 유닛(3405)은 상기 암호화된 데이터 스트림(3401)의 헤더 유닛에서 패킷화된 기본 스트림 패킷 길이 표시자(packetized elementary stream packet length indicator), 프리젠테이션 시간 스탬프(presentation time stamp), 및/또는 디코딩 시간 스탬프(decoding time stamp)를 교체하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  11. 제 1 항에 있어서,
    비디오 데이터 또는 오디오 데이터의 암호화된 데이터 스트림(3401)을 처리하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  12. 제 1 항에 있어서,
    디지털 데이터의 암호화된 데이터 스트림(3401)을 처리하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  13. 제 1 항에 있어서,
    상기 교체 유닛(3405)의 출력에 기초하여 트릭 플레이 재생 모드에서의 재생을 위해 데이터 스트림(3409)을 생성하도록 적응되는 트릭 플레이 생성 유닛(3408)을 포함하는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  14. 제 13 항에 있어서,
    상기 트릭 플레이 재생 모드는 빠른 포워드 재생 모드, 빠른 리버스 재생 모 드, 슬로우 모션 재생 모드(slow motion reproduction mode), 프리즈 프레임 재생 모드(freeze frame reproduction mode), 순간 리플레이 재생 모드(instant replay reproduction mode), 및 리버스 재생 모드로 구성되는 그룹 중 하나인, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  15. 제 1 항에 있어서, 암호화된 MPEG2 데이터 스트림을 처리하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  16. 제 1 항에 있어서,
    디지털 비디오 레코딩 디바이스, 네트워크 인에이블된 디바이스(network-enabled device), 조건 액세스 시스템(conditional access system), 휴대용 오디오 플레이어, 휴대용 비디오 플레이어, 모바일 폰, DVD 플레이어, CD 플레이어, 하드디스크 기반의 미디어 플레이어, 인터넷 무선 디바이스, 공용 엔터테인먼트 디바이스(public entertainment device), 및 MP3 플레이어로 구성된 그룹 중 적어도 하나로서 구현되는, 암호화된 데이터 스트림(3401)을 처리하기 위한 디바이스(3400).
  17. 암호화된 데이터 스트림(3401)을 처리하는 방법에 있어서,
    상기 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하는 단계, 상기 해독된 데이터 스트림에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하는 단계, 및 상기 검출된 위치 정보에 기초하여, 상기 해 독된 데이터 스트림(3403)의 대응하는 부분들로 상기 암호화된 데이터 스트림(3401)의 부분들을 교체하는 단계를 포함하는, 암호화된 데이터 스트림(3401)을 처리하는 방법.
  18. 암호화된 데이터 스트림(3401)을 처리하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때:
    상기 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하는 단계;
    상기 해독된 데이터 스트림(3403)에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하는 단계; 및
    상기 검출된 위치 정보에 기초하여, 상기 해독된 데이터 스트림(3403)의 대응하는 부분들로 상기 암호화된 데이터 스트림(3401)의 부분들을 교체하는 단계를 제어하거나 수행하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 매체.
  19. 암호화된 데이터 스트림(3401)을 처리하는 프로그램 요소에 있어서,
    상기 프로그램 요소는, 프로세서에 의해 실행될 때:
    상기 암호화된 데이터 스트림(3401)으로부터 해독된 데이터 스트림(3403)을 생성하는 단계;
    상기 해독된 데이터 스트림(3403)에서 적어도 하나의 인트라 코딩된 프레임의 위치 정보를 검출하는 단계; 및
    상기 검출된 위치 정보에 기초하여, 상기 해독된 데이터 스트림(3403)의 대응하는 위치들로 상기 암호화된 데이터 스트림(3401)의 부분들을 교체하는 단계를 제어하거나 수행하기 위해 적응되는, 암호화된 데이터 스트림(3401)을 처리하는 프로그램 요소.
  20. 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트림(3601)을 처리하는 디바이스(3600)에 있어서,
    상기 패킷들을 상기 데이터 스트림(3601)에 균일하게 분배하기 위한 분배 유닛(3602); 및
    상기 패킷들의 균일한 분배를 위해 조정되는 수정된 타이밍 정보로 상기 데이터 스트림(3601)의 타이밍 정보를 교체하기 위한 교체 유닛(3603)을 포함하는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  21. 제 20 항에 있어서,
    상기 분배 유닛(3602)은 두 개의 후속하는 인트라 코딩된 프레임들 사이에 상기 데이터 스트림(3601)의 일부분에 관련된 패킷들을 균일하게 분배하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  22. 제 20 항에 있어서,
    상기 교체 유닛(3603)은 처리된 데이터 스트림의 시작 위치에 상기 수정된 타이밍 정보를 배열하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  23. 제 20 항에 있어서,
    상기 교체 유닛(3603)은 상기 수정된 타이밍 정보로서 프로그램 클록 기준(Program Clock Reference), 디코딩 시간 스탬프(Decoding Time Stamp) 및/또는 프리젠테이션 시간 스탬프(Presentation Time Stamp)를 생성하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  24. 제 20 항에 있어서,
    암호화된 데이터 스트림(3601)을 처리하기 위해 적응되고,
    상기 디바이스(3600)는 상기 처리된 데이터 스트림에 해독 정보를 삽입하기 위해 적응된 해독 정보 삽입 유닛(3604)을 포함하는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  25. 제 24 항에 있어서,
    상기 해독 정보 삽입 유닛(3604)은 상기 해독 정보로서 자격 제어 메시지들(Entitlement Control Messages)을 삽입하기 위해 적응되는, 데이터 스트 림(3601)을 처리하는 디바이스(3600).
  26. 제 24 항에 있어서,
    상기 해독 정보 삽입 유닛(3604)은 상기 처리된 데이터 스트림의 끝에 상기 해독 정보를 삽입하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  27. 제 20 항에 있어서,
    비디오 데이터 또는 오디오 데이터의 데이터 스트림(3601)을 처리하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  28. 제 20 항에 있어서,
    디지털 데이터의 데이터 스트림(3601)을 처리하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  29. 제 20 항에 있어서,
    트릭 플레이 재생 모드에서의 재생을 위해 데이터 스트림(3607)을 생성하기 위해 적응된 트릭 플레이 생성 유닛(3605)을 포함하는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  30. 제 29 항에 있어서,
    상기 생성된 데이터 스트림의 서로 다른 화상들의 그룹이 시간에 있어 필수적으로 일정한 길이를 갖는 방식으로 상기 트릭 플레이 재생 모드에서의 재생을 위해 상기 데이터 스트림(3607)을 생성하도록 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  31. 제 29 항에 있어서,
    상기 트릭 플레이 재생 모드는 빠른 포워드 재생 모드, 빠른 리버스 재생 모드, 슬로우 모션 재생 모드, 프리즈 프레임 재생 모드, 순간 리플레이 재생 모드, 및 리버스 재생 모드로 구성되는 그룹 중 하나인, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  32. 제 20 항에 있어서,
    암호화된 MPEG2 데이터 스트림을 처리하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  33. 제 20 항에 있어서,
    디지털 비디오 레코딩 디바이스, 네트워크 인에이블된 디바이스, 조건 액세스 시스템, 휴대용 오디오 플레이어, 휴대용 비디오 플레이어, 모바일 폰, DVD 플레이어, CD 플레이어, 하드디스크 기반의 미디어 플레이어, 인터넷 무선 디바이스, 공용 엔터테인먼트 디바이스, 및 MP3 플레이어로 구성된 그룹 중 적어도 하나로서 구현되는, 데이터 스트림(3601)을 처리하는 디바이스(3600).
  34. 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트림(3601)을 처리하는 방법에 있어서,
    상기 패킷들을 상기 데이터 스트림(3601)에 균일하게 분배하는 단계; 및
    상기 패킷들의 균일한 분배를 위해 조정되는 수정된 타이밍 정보로 상기 데이터 스트림(3601)의 타이밍 정보를 교체하는 단계를 포함하는, 데이터 스트림(3601)을 처리하는 방법.
  35. 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트림(3601)을 처리하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때:
    상기 패킷들을 상기 데이터 스트림(3601)에 균일하게 분배하는 단계; 및
    상기 패킷들의 균일한 분배를 위해 조정되는 수정된 타이밍 정보로 상기 데이터 스트림(3601)의 타이밍 정보를 교체하는 단계를 제어하거나 수행하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 매체.
  36. 패킷들의 시퀀스 및 상기 패킷들에 관련된 타이밍 정보를 갖는 데이터 스트 림(3601)을 처리하는 프로그램 요소에 있어서,
    상기 프로그램 요소는, 프로세서에 의해 실행될 때:
    상기 패킷들을 상기 데이터 스트림(3601)에 균일하게 분배하는 단계; 및
    상기 패킷들의 균일한 분배를 위해 조정되는 수정된 타이밍 정보로 상기 데이터 스트림(3601)의 타이밍 정보를 교체하는 단계를 제어하거나 수행하기 위해 적응되는, 데이터 스트림(3601)을 처리하는 프로그램 요소.
KR1020077027542A 2005-04-26 2006-04-25 패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법 KR20070122577A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05103393.4 2005-04-26
EP05103393 2005-04-26

Publications (1)

Publication Number Publication Date
KR20070122577A true KR20070122577A (ko) 2007-12-31

Family

ID=37075854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077027542A KR20070122577A (ko) 2005-04-26 2006-04-25 패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법

Country Status (9)

Country Link
US (1) US20080273698A1 (ko)
EP (1) EP1878232A2 (ko)
JP (1) JP2008539638A (ko)
KR (1) KR20070122577A (ko)
CN (2) CN101945250A (ko)
BR (1) BRPI0609561A2 (ko)
MX (1) MX2007013256A (ko)
RU (1) RU2407214C2 (ko)
WO (1) WO2006114759A2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120099774A (ko) * 2009-12-14 2012-09-11 스미토모덴코 네트웍스 가부시키가이샤 콘텐츠 수신 장치, 콘텐츠 재생 장치, 콘텐츠 수신 재생 장치, 콘텐츠 수신 방법 및 프로그램
KR101401967B1 (ko) * 2007-12-04 2014-06-27 삼성전자주식회사 암호화된 데이터 스트림의 트릭 플레이 방법 및 장치
KR101483653B1 (ko) * 2014-03-31 2015-01-16 주식회사 알엠 널 프레임을 이용한 영상 암호화 시스템
WO2015122580A1 (ko) * 2014-02-12 2015-08-20 주식회사 포티스 디지털 저장장치가 구비된 기기에 사용되는 컨텐츠 상황 알림 장치
KR20190068345A (ko) * 2017-12-08 2019-06-18 삼성전자주식회사 영상처리장치 및 그 제어방법

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966551B2 (en) * 2007-11-01 2015-02-24 Cisco Technology, Inc. Locating points of interest using references to media frames within a packet flow
US7672399B2 (en) * 2005-03-02 2010-03-02 Rohde & Schwarz Gmbh & Co., Kg Apparatus, systems and methods for providing enhancements to ATSC networks using synchronous vestigial sideband (VSB) frame slicing
US8340098B2 (en) * 2005-12-07 2012-12-25 General Instrument Corporation Method and apparatus for delivering compressed video to subscriber terminals
WO2008036949A2 (en) * 2006-09-22 2008-03-27 Eg Technology. Inc. Methods and systems for transport stream time base correction
US8149817B2 (en) * 2007-02-01 2012-04-03 Rohde & Schwarz Gmbh & Co. Kg Systems, apparatus, methods and computer program products for providing ATSC interoperability
JP5189640B2 (ja) * 2007-08-09 2013-04-24 ジーブイビービー ホールディングス エス.エイ.アール.エル. ビデオデータの再生システム
US10277956B2 (en) * 2007-10-01 2019-04-30 Cabot Communications Method and apparatus for streaming digital media content and a communication system
JP5351039B2 (ja) 2007-11-01 2013-11-27 パナソニック株式会社 記録媒体、再生装置、記録装置、再生方法、及び記録方法
DE102008017290A1 (de) 2007-12-11 2009-06-18 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur Bildung eines gemeinsamen Datenstroms insbesondere nach dem ATSC-Standard
DE102007059959B4 (de) * 2007-12-12 2020-01-02 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur Übertragung von Daten zwischen einer zentralen Rundfunkstation und mindestens einem Sender
JP2009177619A (ja) * 2008-01-25 2009-08-06 Panasonic Corp 画像記録装置、画像再生装置、記録媒体、画像記録方法及びプログラム
US8700792B2 (en) 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
US20110023079A1 (en) 2008-03-20 2011-01-27 Mark Alan Schultz System and method for processing priority transport stream data in real time in a multi-channel broadcast multimedia system
DE102008056703A1 (de) 2008-07-04 2010-01-07 Rohde & Schwarz Gmbh & Co. Kg Verfahren und System zur Zeitsynchronisierung zwischen einer Zentrale und mehreren Sendern
US8355458B2 (en) 2008-06-25 2013-01-15 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer program products for producing a single frequency network for ATSC mobile / handheld services
US8752092B2 (en) 2008-06-27 2014-06-10 General Instrument Corporation Method and apparatus for providing low resolution images in a broadcast system
US8739034B2 (en) * 2008-08-13 2014-05-27 Myine Electronics, LLC Method and system for downloading and managing an edited media stream to a portable media device
DE102008059028B4 (de) * 2008-10-02 2021-12-02 Rohde & Schwarz GmbH & Co. Kommanditgesellschaft Verfahren und Vorrichtung zur Erzeugung eines Transportdatenstroms mit Bilddaten
BRPI0822222A2 (pt) 2008-11-04 2015-06-23 Thomson Licensing Sistema e método para agendamento de função de desvio em um sistema multimídia de difusão por múltiplos canais
WO2010051864A2 (en) * 2008-11-06 2010-05-14 Rohde & Schwarz Gmbh & Co. Kg Method and system for synchronized mapping of data packets in an atsc data stream
EP2192773A1 (en) * 2008-12-01 2010-06-02 Irdeto Access B.V. Content decryption device and encryption system using an additional key layer
JP5326602B2 (ja) * 2009-01-23 2013-10-30 富士通株式会社 サーバおよびコンテンツ配信方法
EP2234357B1 (en) 2009-03-21 2016-07-27 Rohde & Schwarz GmbH & Co. KG Method for improving the data rate of mobile data and the quality of channel estimation in an ATSC-M/H transport data stream
DE102009025219A1 (de) * 2009-04-07 2010-10-14 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur kontinuierlichen Anpassung von Kodierungsparametern an eine veränderliche Nutzdatenrate
DE102009057363B4 (de) * 2009-10-16 2013-04-18 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur effizienten Übertragung von überregional und regional auszustrahlenden Programm-und Servicedaten
US9357244B2 (en) 2010-03-11 2016-05-31 Arris Enterprises, Inc. Method and system for inhibiting audio-video synchronization delay
US20110271001A1 (en) * 2010-04-30 2011-11-03 Herve Brelay Methods & apparatuses for a projected pvr experience
US8989021B2 (en) 2011-01-20 2015-03-24 Rohde & Schwarz Gmbh & Co. Kg Universal broadband broadcasting
KR101803970B1 (ko) * 2011-03-16 2017-12-28 삼성전자주식회사 컨텐트를 구성하는 장치 및 방법
US8584167B2 (en) 2011-05-31 2013-11-12 Echostar Technologies L.L.C. Electronic programming guides combining stored content information and content provider schedule information
US9699456B2 (en) 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US8660412B2 (en) 2011-08-23 2014-02-25 Echostar Technologies L.L.C. System and method for dynamically adjusting recording parameters
US8437622B2 (en) 2011-08-23 2013-05-07 Echostar Technologies L.L.C. Altering presentation of received content based on use of closed captioning elements as reference locations
US8447170B2 (en) 2011-08-23 2013-05-21 Echostar Technologies L.L.C. Automatically recording supplemental content
US9621946B2 (en) 2011-08-23 2017-04-11 Echostar Technologies L.L.C. Frequency content sort
US8763027B2 (en) * 2011-08-23 2014-06-24 Echostar Technologies L.L.C. Recording additional channels of a shared multi-channel transmitter
US9357159B2 (en) 2011-08-23 2016-05-31 Echostar Technologies L.L.C. Grouping and presenting content
US9185331B2 (en) 2011-08-23 2015-11-10 Echostar Technologies L.L.C. Storing multiple instances of content
US8959566B2 (en) 2011-08-23 2015-02-17 Echostar Technologies L.L.C. Storing and reading multiplexed content
US8627349B2 (en) 2011-08-23 2014-01-07 Echostar Technologies L.L.C. User interface
US9445095B1 (en) * 2011-10-06 2016-09-13 Arris Enterprises, Inc. Compression of modified data captures for packets with encrypted or non-interesting content
US9088805B2 (en) * 2012-02-08 2015-07-21 Vixs Systems, Inc. Encrypted memory device and methods for use therewith
US8989562B2 (en) 2012-03-15 2015-03-24 Echostar Technologies L.L.C. Facilitating concurrent recording of multiple television channels
US9489981B2 (en) 2012-03-15 2016-11-08 Echostar Technologies L.L.C. Successive initialization of television channel recording
US8819722B2 (en) 2012-03-15 2014-08-26 Echostar Technologies L.L.C. Smartcard encryption cycling
US8959544B2 (en) 2012-03-15 2015-02-17 Echostar Technologies L.L.C. Descrambling of multiple television channels
US8793724B2 (en) 2012-11-08 2014-07-29 Eldon Technology Limited Image domain compliance
US9762955B2 (en) 2012-11-16 2017-09-12 At&T Mobility Ii Llc Substituting alternative media for presentation during variable speed operation
US9307021B2 (en) * 2013-02-27 2016-04-05 Comcast Cable Communications, Llc Adaptive media transmission processing
US10552126B2 (en) * 2013-03-15 2020-02-04 Teradata Us, Inc. Transitioning between code-based and data-based execution forms in computing systems and environments
JP6330804B2 (ja) * 2013-06-07 2018-05-30 ソニー株式会社 送信装置、伝送ストリームの送信方法および処理装置
RU2538943C1 (ru) * 2013-07-19 2015-01-10 Общество с ограниченной ответственностью "Завод Навигационного Оборудования" Способ передачи данных от мобильного устройства на главную эвм с использованием протокола ascii
US9628838B2 (en) 2013-10-01 2017-04-18 Echostar Technologies L.L.C. Satellite-based content targeting
EP2979207A4 (en) * 2013-10-10 2016-11-09 Yandex Europe Ag METHODS AND SYSTEMS FOR INDEXING SOURCE DATA FOR DATABASE DOCUMENTS AND FOR DOCUMENT LOCATION IN THE DATABASE
CN103596043B (zh) * 2013-11-14 2017-05-10 上海电力学院 一种数字电视中ts流转化为ps流的方法
JP5741677B2 (ja) * 2013-12-19 2015-07-01 株式会社ナカヨ 通信装置および通信方法
CA2968855C (en) * 2014-11-25 2021-08-24 Arris Enterprises Llc Filler detection during trickplay
US9756378B2 (en) 2015-01-07 2017-09-05 Echostar Technologies L.L.C. Single file PVR per service ID
US10142707B2 (en) * 2016-02-25 2018-11-27 Cyberlink Corp. Systems and methods for video streaming based on conversion of a target key frame
CN106874320A (zh) 2016-06-20 2017-06-20 阿里巴巴集团控股有限公司 分布式流式数据处理的方法和装置
CN106385633B (zh) * 2016-09-27 2019-12-10 深圳市九洲电器有限公司 一种个人视频录像方法及系统
US20200112710A1 (en) * 2017-03-17 2020-04-09 Lg Electronics Inc. Method and device for transmitting and receiving 360-degree video on basis of quality
US11064153B2 (en) * 2018-08-21 2021-07-13 Gopro, Inc. Methods and apparatus for encrypting camera media

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717816A (en) * 1993-01-13 1998-02-10 Hitachi America Ltd. Method and apparatus for the selection of data for use in VTR trick playback operation in a system using intra-coded video frames
US5377051A (en) * 1993-01-13 1994-12-27 Hitachi America, Ltd. Digital video recorder compatible receiver with trick play image enhancement
US5477397A (en) * 1993-02-23 1995-12-19 Matsushita Electric Corporation Of America Digital high definition television receiver with features that facilitate trick-play modes on a digital VCR
EP0728396B1 (en) * 1994-09-13 2002-01-16 Koninklijke Philips Electronics N.V. Recording and reproduction of a data reduced digital video signal on a longitudinal record carrier
US5867625A (en) * 1994-10-20 1999-02-02 Thomson Consumer Electronics, Inc. Digital VCR with trick play steam derivation
US5793927A (en) * 1995-06-07 1998-08-11 Hitachi America, Ltd. Methods for monitoring and modifying a trick play data stream to insure MPEG compliance
US6480664B1 (en) * 1995-06-07 2002-11-12 Hou-Chun Ting Trick mode VTR which generates trick play data from a stream of images containing intra-pictures and predictive pictures and selects specific DCT coefficients for intra-pictures
CN1209018A (zh) * 1997-08-19 1999-02-24 北海市自动化研究所 有线电视双向自动点播计费系统
GB9721662D0 (en) * 1997-10-14 1997-12-10 Philips Electronics Nv Encoded video signal formatting
BR9906523A (pt) * 1998-06-11 2000-07-25 Koninkl Philips Electonics N V Aparelho e processo para gravar um sinal de informação de vìdeo digital em um portador de gravação, e, portador de gravação
US7046910B2 (en) * 1998-11-20 2006-05-16 General Instrument Corporation Methods and apparatus for transcoding progressive I-slice refreshed MPEG data streams to enable trick play mode features on a television appliance
GB9930788D0 (en) * 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
JP2002016919A (ja) * 2000-04-28 2002-01-18 Sony Corp 情報送信方法及び装置、情報受信方法及び装置、情報記録方法及び装置、並びに、情報記録再生方法及び装置
US7054329B2 (en) * 2000-07-07 2006-05-30 Koninklijke Philips Electronics, N.V. Collision avoidance in IEEE 802.11 contention free period (CFP) with overlapping basic service sets (BSSs)
US6453115B1 (en) * 2000-08-31 2002-09-17 Keen Personal Media, Inc. Digital video recording system which generates an index data structure for displaying a video stream in trickplay mode
US7463737B2 (en) * 2001-08-15 2008-12-09 Digeo, Inc. System and method for conditional access key encryption
US7218635B2 (en) * 2001-08-31 2007-05-15 Stmicroelectronics, Inc. Apparatus and method for indexing MPEG video data to perform special mode playback in a digital video recorder and indexed signal associated therewith
US7242773B2 (en) * 2002-09-09 2007-07-10 Sony Corporation Multiple partial encryption using retuning
JP2005530414A (ja) 2002-06-12 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 暗号化情報を有するストリームを処理するための方法及び装置
US7539391B2 (en) * 2002-06-27 2009-05-26 Nxp B.V. Method and apparatus for trick-mode support of audio/video/data streams with conditional access
US20060277581A1 (en) * 2003-03-10 2006-12-07 Avraham Eliyahu Local entity and a method for providing media streams

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401967B1 (ko) * 2007-12-04 2014-06-27 삼성전자주식회사 암호화된 데이터 스트림의 트릭 플레이 방법 및 장치
KR20120099774A (ko) * 2009-12-14 2012-09-11 스미토모덴코 네트웍스 가부시키가이샤 콘텐츠 수신 장치, 콘텐츠 재생 장치, 콘텐츠 수신 재생 장치, 콘텐츠 수신 방법 및 프로그램
WO2015122580A1 (ko) * 2014-02-12 2015-08-20 주식회사 포티스 디지털 저장장치가 구비된 기기에 사용되는 컨텐츠 상황 알림 장치
KR101483653B1 (ko) * 2014-03-31 2015-01-16 주식회사 알엠 널 프레임을 이용한 영상 암호화 시스템
KR20190068345A (ko) * 2017-12-08 2019-06-18 삼성전자주식회사 영상처리장치 및 그 제어방법

Also Published As

Publication number Publication date
US20080273698A1 (en) 2008-11-06
WO2006114759A2 (en) 2006-11-02
MX2007013256A (es) 2008-01-22
JP2008539638A (ja) 2008-11-13
RU2407214C2 (ru) 2010-12-20
CN101945250A (zh) 2011-01-12
BRPI0609561A2 (pt) 2011-10-18
CN101167357A (zh) 2008-04-23
CN101167357B (zh) 2011-09-07
WO2006114759A3 (en) 2007-01-18
EP1878232A2 (en) 2008-01-16
RU2007143571A (ru) 2009-06-10

Similar Documents

Publication Publication Date Title
KR20070122577A (ko) 패킷들의 시퀀스 및 상기 패킷과 관련된 타이밍 정보를갖는 데이터 스트림을 처리하기 위한 디바이스 및 방법
EP1967002B1 (en) A device for and a method of processing a data stream
KR20080006628A (ko) 암호화된 데이터 스트림을 처리하는 디바이스 및 방법
US20080212774A1 (en) Device for and a Method of Processing an Encrypted Data Stream in a Cryptographic System
US20080304810A1 (en) Device for and a Method of Processing an Input Data Stream Comprising a Sequence of Input Frames
WO2006114761A1 (en) A device for and a method of detecting positions of intra-coded frames in a data stream
US8543724B2 (en) Methods and apparatuses for a projected PVR experience
WO2007072257A1 (en) A device for and a method of processing an encrypted data stream
US20110268427A1 (en) Methods and apparatuses for a projected pvr experience
WO2011158071A1 (en) Splicing of content
JP2009159625A (ja) デジタル放送用ストリームの蓄積方法
WO2007072252A2 (en) Creation of 'trick-play' streams for plaintext, partially, or fully encrypted video streams
WO2007072244A1 (en) A device for and a method of processing a data stream comprising a plurality of frames
US20110271001A1 (en) Methods & apparatuses for a projected pvr experience
WO2007072242A1 (en) A device for and a method of processing an encrypted data stream
WO2007072419A2 (en) A device for and a method of processing a data stream

Legal Events

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