KR20080081190A - 데이터 스트림 처리 장치 및 방법 - Google Patents

데이터 스트림 처리 장치 및 방법 Download PDF

Info

Publication number
KR20080081190A
KR20080081190A KR1020087018105A KR20087018105A KR20080081190A KR 20080081190 A KR20080081190 A KR 20080081190A KR 1020087018105 A KR1020087018105 A KR 1020087018105A KR 20087018105 A KR20087018105 A KR 20087018105A KR 20080081190 A KR20080081190 A KR 20080081190A
Authority
KR
South Korea
Prior art keywords
frame
frames
stream
data stream
play
Prior art date
Application number
KR1020087018105A
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 KR20080081190A publication Critical patent/KR20080081190A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • 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
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4385Multiplex stream processing, e.g. multiplex stream decrypting
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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/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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • H04N21/44055Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption by partially decrypting, e.g. decrypting a video stream that has been partially encrypted
    • 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
    • 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
    • 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
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled

Abstract

데이터 스트림(1800)을 처리하기 위한 장치(2300)로서, 이 장치(2300)는 이웃한 프레임들(1902) 사이에 해독된 프레임 경계 부분들(1901)을 포함하는 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을, 프레임 경계 부분들(1901)에서 분할하기 위한 분할 유닛(2305), 분할된 프레임들(1902)을 미리결정된 복제 레이트에 따라 다수회 복제하기 위한 복제 유닛(2306), 및 복제된 분할된 프레임들(1902)를 연결하기 위한 연결 유닛(2307)을 포함한다.
데이터 스트림, 프레임, 분할 유닛, 복제유닛, 연결 유닛

Description

데이터 스트림 처리 장치 및 방법{A DEVICE FOR AND A METHOD OF PROCESSING A DATA STREAM}
본 발명은 데이터 스트림을 처리하기 위한 장치에 관한 것이다.
또한, 본 발명은 데이터 스트림을 처리하기 위한 방법에 관한 것이다.
또한, 본 발명은 프로그램 구성요소에 관한 것이다.
또한, 본 발명은 컴퓨터 판독가능한 매체에 관한 것이다.
전자 엔터테인먼트 장치들이 점점 더 중요해지고 있다. 특히, 점차 늘어나고 있는 사용자들은 하드 디스크 기반의 오디오/비디오 플레이어들 및 이외 엔터테인먼트 장비를 구입한다.
저장공간의 감소가 오디오/비디오 플레이어들의 분야에서 중요한 문제이기 때문에, 오디오 및 비디오 데이터는 흔히 압축하여, 그리고 보안의 이유로 암호화되어 저장된다.
MPEG2는 동화상들 및 연관된 오디오의 일반적인 부호화를 위한 표준이며 GOP("화상 그룹)" 구조라고 하는 특정된 순서로 배열될 수 있는 프레임 데이터로부터 비디오 스트림을 생성한다. MPEG2 비디오 비트 스트림은 화상들을 엔코딩한 일련의 데이터 프레임들로 구성된다. 화상을 엔코딩하는 3가지 방법들은 내부호화(I 화상), 순방향 예측(P 화상) 및 양방향 예측(B 화상)이다. 내부호화된 프레임(I-프레임)은 독립적으로 디코딩이 가능한 프레임이다. 순방향 예측 프레임(P-프레임)은 선행 I-프레임 혹은 P-프레임의 정보를 필요로 한다. 양방향 예측 프레임(B-프레임)은 선행 및/또는 후속 I-프레임 혹은 P-프레임의 정보에 의존적이다.
미디어 재생 장치에서 흥미있는 기능은 미디어 콘텐트가 정규 속도로 재생되는 정규 재생모드에서 미디어 콘텐트를 수정해서, 예를 들면 감소된 속도("저속 순방향(slow-forward"), 정지 화상, 혹은 그 반대로 재생되는 트릭-플레이(trick-play) 재생 모드로 전환하는 것이다.
US 2005/0157714 Al은 패킷 기반의 스크램블된 스트림을 처리하는 방법을 개시하고 있는데, 이 방법은 패킷 스트림에 복수의 스크램블된 패킷들을 수신하고, 스크램블된 패킷들 중 임의의 것을 역-스크램블하고, 역-스크램블된 패킷들 중 적어도 하나와 스크램블된 패킷들 중 적어도 하나를 포함하는 수정된 패킷 스트림을 전송하는 것을 포함한다.
본 발명의 목적은 데이터 스트림을 효율적으로 처리할 수 있게 하는 것이다.
위에 정의된 목적을 달성하기 위해서, 독립 청구항들에 따라, 데이터 스트림을 처리하기 위한 장치, 데이터 스트림을 처리하는 방법, 프로그램 구성요소 및 컴퓨터 판독가능한 매체가 제공된다.
본 발명의 실시예에 따라서, 이웃한 프레임들간에 해독된 프레임 경계 부분들을 포함하는 부분적으로 해독된(및 부분적으로 암호화된) 데이터 스트림의 이웃한 프레임들을, 프레임 경계 부분들에서 분할하는 분할 유닛, 분할된 프레임들을 미리결정된 복제 레이트(예를 들면, 트릭-플레이 율(factor), 예를 들면 "3")에 따라 다수회 복제하기 위한 복제 유닛, 및 상기 복제된 분할된 프레임들을 연결하기 위한 연결 유닛을 포함하는 데이터 스트림을 처리하는 장치가 제공된다.
본 발명의 또 다른 실시예에 따라서, 이웃한 프레임들간에 해독된 프레임 경계 부분들을 포함하는 부분적으로 해독된(및 부분적으로 암호화된) 데이터 스트림의 이웃한 프레임들을, 프레임 경계 부분들에서 분할하는 단계, 분할된 프레임들을 미리결정된 복제 레이트에 따라 다수회 복제하는 단계, 및 상기 복제된 분할된 프레임들을 연결하는 단계를 포함하는 데이터 스트림을 처리하는 방법이 제공된다.
이외에, 본 발명의 또 다른 실시예에 따라, 프로세서에 의해 실행될 때 컴퓨터 프로그램이 위에 언급된 방법을 제어 혹은 수행하게 구성되는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능한 매체가 제공된다.
또한, 본 발명의 또 다른 실시예에 따라서, 프로세서에 의해 실행될 때 위에 언급된 방법을 제어 혹은 수행하게 구성되는 프로그램 구성요소가 제공된다.
본 발명의 실시예들에 따른 데이터 처리는 컴퓨터 프로그램, 즉 소프트웨어에 의해서, 혹은 하나 이상의 특별한 전자 최적화 회로들, 즉 하드웨어에 의해서, 혹은 하이브리드 형태, 즉 소프트웨어 성분들 및 하드웨어 성분들에 의해서 실현될 수 있다.
본 발명의 실시예들에 따른 방책은 저속-순방향 혹은 저속-백워드 혹은 정지(stand sill), 보다 일반적인 슬로우 모션, 트릭-플레이 재현을 할 수 있게 하도록 서로 다른 프레임들이 경계 부분들에서 분할되고 이어서, 분할된 프레임들이 다시 연결될 수 있게, 부분적으로 해독되고 부분적으로 암호화된 데이터 스트림이 처리될 수 있는 잇점을 제공한다. 그러므로, 이웃한 프레임들 사이에 평문 부분들은 슬로우 모션 특징을 제공하기 위해 복수회로 여러 프레임들을 복제하고 적합한 사운드 및/또는 화상이 얻어질 수 있게 그 복제되는 프레임 시퀀스들을 조립하기 위해서, 서로 다른 프레임들을 분리시킬 위치들에 표시자들로서 작용할 수 있다.
본 발명의 실시예에 따라서, 프레임 분할 알고리즘 및 프레임들(분할 및 복제된)의 접착이 가능해지게 한다. 실시예에 따른 알고리즘에 의해서, 부분적으로 암호화된 "하이브리드" 저속-순방향 DVB("디지털 비디오 방송") 스트림은 완전히 암호화된 정규 플레이(예를 들면 MPEG) 스트림으로부터 생성될 수 있다. 이러한 절차는 화상 프레임 경계들을 내포하는 수송 스트림의 이들 암호화된 패킷들만을, 저속-순방향을 할 수 있게 이들의 대응하는 평문 패킷들로 선택적으로 대체하는 것을 포함할 수 있다. 또한, 패킷들은 화상 프레임 경계들에서 분할될 수 있고, 저속-순방향 스트림은 프레임들을 복제함으로써 생성될 수 있다. 화상 프레임 경계에서 패킷들은 필요하다면 스터프(stuff)될 수 있다. 이때, 화상 시작 코드가 두 개의 패킷들에 걸쳐 있는 장소들이 확인될 수 있고, 대응하는 정정이 이들에 적용될 수 있고, 이 프로세스는 접착이라 칭할 수 있다.
본 발명의 실시예에 따라서, MPEG 규격의 디코더에 대한 디지털 인터페이스를 구비한 MPEG 수송 스트림들을 위한 저장 장치가 제공되며, 이 디코더는 암호화된 DVB 스트림들의 저속-순방향 플레이 모드에 대해 MPEG 규격의 수송 스트림을 제공할 수 있다. 특별한 시나리오들에서, 평문 저속-순방향 스트림을 해독 및 생성하는 단순 프로세스는 모든 정보가 평문이 될 것이기 때문에, 부적합할 수 있다. 이것은 보안 관점에서 바람직하지 못할 수 있다. 또한, 소비자 장치 내에 DVB 암호화기의 사용은 허용되지 않을 수 있다. 이것은 암호화된 DVB 수송 스트림에 대해 처리가 수행되어야 함을 수반한다.
이에 따라, 본 발명의 실시예에 따라서, 대부분의 정보가 암호화된 상태에 있게 하면서도 저속-순방향 MPEG 규격의 수송 스트림을 생성하게 하는데 필요한 소량의(특히 최소량) 평문 정보를 포함하는 하이브리드 수송 스트림이 사용될 수 있다. 이 맥락에서 일 면은 암호화된 수송 스트림에 개개의 프레임들이 저속-순방향 모드를 제공하기 위해 복제된다는 것이다. 이것은 특별한 경우들에 있어서 패킷 경계들을 넘나드는 MPEG 화상 시작 코드들을 정정하기 위해 프레임 분할과 이에 이어 개개의 프레임들의 접착을 필요로 한다. 이 출원에서, 접착을 실현하는 가능성들이 개시된다.
이에 따라, 본 발명의 실시예들은 프레임들을 분리하기 위해서 패킷들의 분할을 포함할 수 있다. 이것은 원 I- 혹은 P-프레임들을 복제하기 위해 빈 프레임들을 사용하는 선택뿐만 아니라 B-프레임들을 복제하기 위해 프레임들을 복제하는 것을 포함할 수 있다.
또한, 부분적으로 암호화된 시작 코드로 시작하고, (비)암호화된 패킷에 있는 시작 코드 바이트들의 량을 판정하기 위해 알고리즘을 이행하는 것이 가능하다. 결국, 패킷들의 접착이 가능해질 수 있다. 패킷들을 연결한 결과로 예를 들면 4바이트의 미리결정된 임계값보다 더 많은 시작 코드가 된 경우엔 알고리즘은 제거할 바이트들의 량을 계산할 수도 있다. 패킷들을 연결한 결과로 예를 들면 4바이트의 미리결정된 임계값 미만의 시작 코드가 된 경우엔 가외의 접착 패킷들을 삽입하는 것이 가능하다.
그러므로, 본 발명의 실시예는, 패킷들의 분할 및 접착에 이르게 하는 것으로 스트림들을 암호화하기 위한 화상 시작 코드의 검출에 관한 것이다.
접착은 시작 코드의 부분이 있는 데이터 스트림의 위치들에서 수행될 수 있으며 가외의 패킷을 삽입하는 것을 포함할 수 있다. 어댑테이션 필드(AF)는 스터핑을 위해서, 특히 수송 스트림 레벨 스터핑을 위해 삽입될 수 있다. 대안적으로, 스트림에 하나의 이상의 평이한 "제로들"을 삽입하는 것을 포함하여, 기본(elementary) 스트림 레벨의 스터핑이 가능할 수 있다.
데이터 스트림 처리를 할 수 있게 하기 위해 해독되는, 데이터 스트림의 부분은 1% 미만 정도일 수 있으므로 스트림의 99% 이상은 암호화된 상태에 있을 수 있다.
다음에, 본 발명의 또 다른 실시예들이 기술될 것이다.
다음에서, 데이터 스트림을 처리하기 위한 장치의 실시예들이 설명될 것이다. 그러나, 이들 실시예들은 데이터 스트림을 처리하는 방법, 컴퓨터 판독가능한 매체 및 프로그램 구성요소에 대해 적용한다.
장치는 부분적으로 해독된 데이터 스트림을 형성하기 위해서, 암호화된(전체가 혹은 부분적으로) 데이터 스트림의 이웃한 프레임들 사이에 암호화된 프레임 경계 부분들을 해독된 프레임 경계 부분들로 선택적으로 대체하기 위한 해독 유닛을 포함할 수 있다. 즉, 이웃한 프레임들 사이에 암호화된 부분들이 대응하는 해독된 부분들로 대체되도록, 완전히 암호화된 데이터 스트림이 처리되는 것이 가능하다. 해독 유닛은 암호화된 콘텐트를 저장하는 저장 장치(예를 들면 하드디스크 혹은 플래시 메모리)와는 별도로 위치되어 있을 수 있고, 혹은 이러한 저장 장치에 일체화될 수도 있다. 이러한 저장 장치가, 하이브리드 스트림이라고도 할 수 있는 부분적으로 해독되고 부분적으로 암호화된 데이터 스트림을 이미 저장하는 것도 가능하다.
특히, 해독 유닛은 암호화된 데이터 스트림의 이웃한 프레임들 사이에 암호화된 프레임 경계 부분들만을 해독된 프레임 경계 부분들로 선택적으로 대체하고 그 외 모든 다른 프레임 부분들을 암호화된 상태로 유지하게 구성될 수 있다. 그러므로, 이들 평문 부분들에 기초하여 트릭-플레이 스트림의 생성을 가능하게 할 수 있도록, 암호화된 데이터 스트림의 단지 필요한 부분들만이 해독된다. 그러나, 스트림의 부분, 대부분의 경우들에 있어선 주 혹은 대부분은 고 레벨의 보안성이 얻어질 수 있게 암호화된 채로 둔다.
해독 유닛은 소량, 바람직하게는 최소량의 해독된 부분들로 트릭-플레이 스트림을 생성하기 위한 토대로서 부분적으로 해독된 데이터 스트림을 형성하기 위해서, 암호화된 프레임 경계 부분들을 해독된 프레임 경계 부분들로 선택적으로 대체하도록 구성될 수 있다. 이 실시예에 따라서, 특히저속-순방향 스트림 혹은 저속-역방향 스트림일 수 있는, 슬로우 모션 스트림같은 트릭-플레이 스트림을 생성하는데 필요한 그 부분들만이 선택적으로 해독된 거의 완전히 암호화된 데이터 스트림을 동시에 갖는 것이 가능하다.
분할유닛은 각 분할된 프레임의 시작부분에 평문 패킷을 삽입하게 구성될 수 있고 및/또는 분할된 패킷을 스터핑하게 구성될 수도 있다. 그러므로, 서로 다른 프레임들을 분할한 후에, 평문 패킷은 분할된 프레임들의 각각의 끝 및/또는 시작부분에 삽입될 수 있다. 이러한 패킷은 대응하는 프레임을 확인하거나 특징화하는데 필요한 정보를 내포할 수 있고 혹은 이웃한 프레임들간 경계를 단순히 스터핑을 할 수도 있다. 보다 상세히, 분할은 실제로는 삽입이 아니며, 분할된 패킷의 스터핑, 먼저 이전 프레임의 마지막 부분, 이어서 현 프레임의 제1 부분의 스터핑이다. 이것은 어댑테이션 필드로 스터핑 될 수도 있다.
이러한 평문 패킷은 헤더 및/또는 어댑테이션 필드(AF)를 포함할 수 있다. 어댑테이션 필드라는 용어는 MPEG 엔코딩의 필드에서 기원한다.
연결 유닛은 프레임 경계 부분(예를 들면 화상 시작 코드)이 2개의 프레임들에 걸쳐 있는 장소들을 확인한 것에 기초하여, 그리고 이러한 확인된 장소들을 정정한 것에 기초하여, 복제된 분할된 프레임들을 연결하게 구성될 수 있다. 그러므로, 슬로우 모션 트릭-플레이 맥락에서, 복제된 분할된 프레임들을 조립할 때 어떠한 가능한 문제들이든 접착 부분들을 삽입함으로써 제거 혹은 소거될 수 있다. 이것은 트릭-플레이 모드에서 재현의 질을 향상시킬 것이다.
연결 유닛은 특히, 분할된 프레임들의 프레임 경계 부분들의 부분의 크기를 판정하고 판정된 크기에 기초하여 상기 분할된 프레임들을 연결하도록 구성될 수 있다. 크기가 너무 큰 것으로 판정될 때, 예를 들면 4바이트의 임계값을 초과할 때, 프레임 경계 부분들 혹은 화상 시작 코드들은 미리결정된 임계값에 따라 있도록 대응하여 단축된다. 또 다른 경우에, 프레임 경계 부분들의 크기가 예를 들면 4바이트의 미리결정된 임계값보다 작을 때, 크기는 예를 들면 프레임 경계 부분들에 가외의 부분들을 삽입함으로써 대응하여 증가된다. 이러한 조치를 취함으로써, 화상 시작 코드들은 요망되는 길이로 재단될 수 있고, 이것은 전체 시스템의 제어성 및 동작성을 향상시킬 수 있다.
장치는 데이터 스트림을 저장하기 위한 저장 유닛을 포함할 수 있다. 이러한 저장 유닛은 하드디스크 혹은 메모리 카드일 수 있고, 이것은 예를 들면 오디오 및/또는 비디오 콘텐트를 포함하여, 데이터 스트림을 저장할 수 있다.
장치는 완전히 암호화된 데이터 스트림을 처리하게 구성될 수 있다. 즉, 전체 데이터 스트림은 완전히 암호화될 수 있고 그러므로 권한없는 액세스에 대해 보안이 될 수 있다. 이때, 이웃한 프레임들간에 특별히 정의된 부분들은 대응하는 평문 부분들에 의해 선택적으로 대치된다. 그러나, 처리가 수행되는 스트림이 부분적으로 혹은 완전히 디코딩되는 것은 본 발명의 맥락에 있다.
장치는 내부호화된 프레임(I-프레임), 순방향 예측 프레임(P-프레임) 및 양방향 예측 프레임(B-프레임)으로 구성된 그룹의 적어도 한 프레임을 처리하도록 구성될 수 있다. MPEG2에서, I-프레임은 독립적으로 디코딩가능한 프레임이다. P-프레임은 선행 I-프레임 혹은 P-프레임의 정보를 요구한다. B-프레임은 선행 및/또는 후속 I-프레임 혹은 P-프레임의 정보에 의존한다.
장치는 비디오 데이터 및/또는 오디오 데이터의 데이터 스트림을 처리하도록 구성될 수 있다. 그러나, 이러한 미디어 콘텐트는 본 발명의 실시예들에 따른 방법으로 처리될 수 있는 유일한 유형의 데이터가 아니다. 트릭-플레이 생성 및 유사 애플리케이션들은 비디오(오디오비쥬얼) 데이터 처리 및 (순수) 오디오 데이터 처리 둘 다에 대해 문제가 될 수도 있다.
장치는 디지털 데이터의 데이터 스트림을 처리하도록 또한 구성될 수 있다.
또한, 장치는 처리된 데이터 스트림을 재현 또는 재생하기 위한 재현 유닛을 포함하고, 재현 유닛은 연결 유닛에(이의 출력에) 연결될 수 있다. 이러한 재현 유닛은 오디오 및 비쥬얼 데이터 둘 다가 사람이 지각할 수 있게 재현될 수 있도록 스피커 혹은 이어폰 혹은 헤드폰 및/또는 광학 디스플레이 장치를 포함할 수 있다.
또한, 장치는 트릭-플레이 재현 모드에서 재현을 위해 데이터 스트림을 처리하기 위한 생성 유닛을 포함할 수 있다. 트릭-플레이 재현에서 재현을 위해 데이터 스트림을 생성하게 구성되는 이러한 트릭-플레이 생성 유닛은 사용자 인터페이스, 예를 들면 장치의 버튼들, 키보드 혹은 원격 제어기를 통해 대응하는 선택들을 선택함으로서 사용자에 의해 조정될 수 있다. 사용자에 의해 선택된 트릭-플레이 재현 모드는 슬로우 모션재현 모드(특히 저속-순방향 모드 혹은 저속-역방향 모드), 정지 모드, 고속 순방향 재현 모드, 고속 역방향 재현 모드, 정지 프레임 재현 모드, 즉시 재생 재현 모드, 및 역방향 재현 모드로 구성된 그룹 중 하나일 수 있다. 그러나 이외 다른 트릭-플레이 스트림들도 가능하다. 트릭-플레이 율에 따른 트릭-플레이에 있어서, 데이터의 일부만이 출력에 사용될 수 있고(예를 들면, 1보다 더 큰 트릭-플레이 율), 혹은 하나의 동일 콘텐트가 수회에 걸쳐 재생될 수도 있다(예를 들면 1보다 작은 트릭-플레이 율).
본 발명의 실시예들에 따른 장치는 MPEG2 데이터 스트림을 처리하게 구성될 수 있다. MPEG2는 MPEG(동화상 전문가 그룹)에 의해 동의된 오디오 및 비디오 부호화 표준들의 그룹에 대한 명칭이며 ISO/IEC 13818 국제 표준으로서 공포되었다. 예를 들면, MPEG2는 디지털 위성 및 케이블 TV를 포함한 방송신호들을 위한 오디오 및 비디오를 엔코딩하는데 사용되나, DVD용에 사용될 수도 있다.
본 발명의 실시예들에 따른 장치는 디지털 비디오 레코딩 장치, 네트워크 가능 장치, 조건부 액세스 시스템, 휴대 오디오 플레이어, 휴대 비디오 플레이어, 이동 전화, DVD 플레이어, CD 플레이어, 하드디스크 기반 미디어 플레이어, 인터넷 라디오 장치, 공용 엔터테인먼트 장치, 및 MP3 플레이어로 구성된 그룹 중 적어도 하나로서 실현될 수 있다. 그러나, 이들 애플리케이션들은 단지 예이다.
본 발명의 위에 정의된 면들 및 또 다른 면들은 이하 기술될 실시예의 예로부터 명백하며 실시예의 이들 예들을 참조하여 설명된다.
본 발명은 실시예의 예들로 발명이 제한되지 않으나 이들을 참조하여 이하 상세히 기술될 것이다.
도 1은 시간 스탬프된 수송 스트림 패킷을 도시한 것이다.
도 2는 내부호화된 I-프레임들 및 순방향 예측 프레임들을 가진 MPEG2 화상 그룹 구조를 도시한 것이다.
도 3은 내부호화된 프레임들, 순방향 예측 프레임들 및 양방향 예측 프레임들을 가진 MPEG2 화상 그룹 구조를 도시한 것이다.
도 4는 특징점 정보 파일 및 저장된 스트림 콘텐트의 구조를 도시한 것이다.
도 5는 평문 스트림에 대한 트릭-플레이를 위한 시스템을 도시한 것이다.
도 6은 트릭-플레이에서 시간 압축을 도시한 것이다.
도 7은 분수 거리를 가진 트릭-플레이를 도시한 것이다.
도 8은 저속 트릭-플레이를 도시한 것이다.
도 9는 일반적인 조건부 액세스 시스템 구조를 도시한 것이다.
도 10은 디지털 비디오 방송의 암호화된 수송 스트림 패킷을 도시한 것이다.
도 11은 도 10의 디지털 비디오 방송의 암호화된 수송 스트림 패킷의 수송 스트림 패킷 헤더를 도시한 것이다.
도 12는 전체적으로 암호화된 스트림에 트릭-플레이의 수행을 할 수 있게 하는 시스템을 도시한 것이다.
도 13은 완전 수송 스트림 및 부분적 수송 스트림을 도시한 것이다.
도 14는 스트림 유형 I 및 스트림 유형 II에 대한 자격 제어 메시지들을 도시한 것이다.
도 15는 해독기에 제어 워드들을 기입하는 것을 도시한 것이다.
도 16은 고속 순방향 모드에서 취급하는 자격 제어 메시지를 도시한 것이다.
도 17은 하나 혹은 2개의 제어 워드들의 검출을 도시한 것이다.
도 18 내지 도 22는 본 발명의 실시예에 따라 데이터 스트림을 처리하는 방 법을 수행하는 동안 얻어진 서로 다른 데이터 스트림들을 도시한 것이다.
도 23은 본 발명의 실시예에 따라 데이터 스트림을 처리하기 위한 장치를 도시한 것이다.
도 24는 본 발명의 실시예에 따라 데이터 스트림을 처리하기 위한 또 다른 장치를 도시한 것이다.
도 25는 프레임 경계에서 패킷의 분할을 도시한 것이다.
도 26은 정규 플레이 데이터의 해독 후에 저속-순방향 구성을 도시한 것이다.
도 27은 각 프레임 경계에 평문 패킷들을 가진 하이브리드 스트림을 도시한 것이다.
도 28은 저장된 하이브리드 스트림에 대한 저속-순방향 구성을 도시한 것이다.
도 29는 연결지점에서 불완전한 화상 시작 코드를 도시한 것이다.
도 30은 정규 플레이에서 레코딩의 영향을 도시한 것이다.
도 31은 저속-순방향 모드에서 재순서화의 영향을 도시한 것이다.
도 32는 앵커 프레임들 전에 빈 P-프레임들의 삽입을 도시한 것이다.
도 33은 역방향 예측 빈 B-프레임들의 사용을 도시한 것이다.
도 34는 순방향 예측 빈 B-프레임들의 사용을 도시한 것이다.
도 35는 프레임 당 한 PES 패킷에 대한 스트림의 분할을 도시한 것이다.
도 36은 PES 헤더의 시작에서 스트림의 분할을 도시한 것이다.
도 37은 화상 시작 코드의 시작에서 스트림의 분할을 도시한 것이다.
도 38은 화상 시작 코드 내에서 스트림의 분할을 도시한 것이다.
도 39는 연결지점에서 불완전한 화상 시작 코드를 도시한 것이다.
도 40은 n+m=4의 예를 도시한 것이다.
도 41은 n+m>4의 예를 도시한 것이다.
도 42는 n+m<4의 예를 도시한 것이다.
도 43은 DTS까지의 수정되지 않은 거리를 도시한 것이다.
도 44는 한 시리즈의 동등한 B-프레임들의 경계들에서 동일 오프셋을 도시한 것이다.
도 45는 B-프레임 데이터 길이를 도시한 것이다.
도 46은 B-프레임이 한 프레임 시간보다 큰 경우에 데이터의 중첩을 도시한 것이다.
도 47은 고르게 분포된 패킷들을 가진 B-프레임의 압축을 도시한 것이다.
도 48은 빈 프레임들의 배치를 도시한 것이다.
도 49는 빈 프레임들의 제1 패킷의 위치설정을 도시한 것이다.
도 50은 이전 프레임에 기초한 빈 프레임의 패킷 거리를 도시한 것이다.
도 51은 한 프레임 시간에 대해 고르게 분포된 빈 프레임의 패킷을 도시한 것이다.
도 52는 하이브리드 스트림으로의 전환을 위한 위치들을 도시한 것이다.
도 53은 전체가 암호화된 레코딩으로부터 보안의 트릭-플레이를 생성하는 것 을 도시한 것이다.
도 54는 완전히 평문 화상 시작 코드에 대한 버퍼링 요구를 도시한 것이다.
도 55는 I-프레임의 시작에서 실제적인 평문 영역을 도시한 것이다.
도 56은 실제적인 평문 영역들을 도시한 것이다.
도 57은 2개의 패킷들에 걸쳐 있는 화상 시작 코드를 도시한 것이다.
도 58은 부분적으로 암호화된 화상 시작 코드에 첨부되는 빈 P-프레임을 도시한 것이다.
도 59는 3가지 기준들에 대응하는 평문 데이터 영역들을 도시한 것이다.
도 60은 MPEG2에서 헤더 구조를 도시한 것이다.
도 61은 시퀀스 확장부 및 시퀀스 헤더 코드를 도시한 것이다.
도 62는 화상 부호화 확장부 및 화상 시작 코드를 도시한 것이다.
도 63은 2개의 패킷들에 걸쳐 퍼져 있는 시퀀스 헤더 코드를 도시한 것이다.
도면들은 개략적으로 도시되고 축척에 맞지는 않으며 도면들에서 동일 참조부호는 대응 요소들을 지칭한다. 본 발명의 대안적이지만 동등한 실시예들이 진정한 본 발명의 개념 내에서 가능하며 본 발명의 범위는 청구항들만에 의해 제한될 것임이 당업자들에게 명백할 것이다.
다음에서, 도 1 내지 도 13을 참조하여, 본 발명의 실시예에 따라 스트림들을 수송하기 위한 트릭-플레이 구현의 서로 다른 면들이 기술될 것이다.
특히, 일부가 혹은 전체가 암호화될 수도 있고 혹은 암호화되지 않을 수도 있는 MPEG2 엔코딩된 스트림에 트릭-플레이를 수행하는 몇가지 가능성들이 기술될 것이다. 다음 설명은 MPEG2 수송 스트림 포맷에 특정한 방법들을 대상으로 할 것이다. 그러나, 본 발명은 이 포맷으로 제약되지 않는다.
실험들은 실제로 확장부를 가진, 소위 시간 스탬프된 수송 스트림을 사용하여 행해졌다. 이것은 수송 스트림 패킷들을 포함하는데, 이들 모두에는 수송 스트림 패킷 도착 시간이 놓여지는 4바이트 헤더가 프리-펜드된다(pre-pended). 이 시간은 패킷의 제1 바이트가 레코딩 장치에 수신될 때 프로그램 클럭 기준(PCR) 시간-베이스의 값으로부터 도출될 수 있다. 이것은 스트림과 함께 타이밍 정보를 저장하는 적합한 방법이므로 스트림의 재생은 비교적 용이한 프로세스가 된다.
재생시 한 문제는 MPEG2 디코더 버퍼가 오버런 혹은 언더플로 되지 않게 해야 한다는 것이다. 입력 스트림이 디코더 버퍼 모델에 따른다면, 상대적 타이밍을 복구함으로써 출력 스트림도 그에 따르게 할 수 있다. 여기에 기술된 트릭-플레이 방법들 중 일부는 시간 스탬프와는 무관하며 시간 스탬프를 가진 수송 스트림 및 시간 스탬프가 없는 수송 스트림에 똑같이 수행된다.
도 1은 188 바이트의 총 길이(104)를 갖는 것으로서, 4 바이트의 길이(105)를 갖는 시간 스탬프(101), 패킷 헤더(102), 및 184 바이트의 길이(105)를 갖는 패킷 페이로드(103)를 포함하는 것인 시간 스탬프된 수송 스트림 패킷(100)를 도시한 것이다. 이 다음의 설명에서는 MEGP/DVB(디지털 비디오 방송) 규격의 트릭-플레이 스트림을 레코딩된 수송 스트림으로부터 생성할 가능성들의 개요를 제공할 것이며 완전히 평문이어서 데이터의 모든 비트가 조작될 수 있는 것들로부터 레코딩된 스 트림들부터, 완전히 암호화되어(예를 들면 DVB 방식에 따라) 조작을 위해 수송 스트림 헤더들 및 일부 테이블들만이 액세스될 수 있는 스트림들에 이르는 전체 범위를 포함하려는 것이다.
MPEG/DVB 수송 스트림에 대한 트릭-플레이를 생성할 때, 문제들은 콘텐트가 적어도 부분적으로 암호화될 때 일어날 수 있다. 통상적인 방법으로서 기본(elementary) 스트림 레벨까지 내리거나, 해독전에 임의의 패킷화된 기본 스트림(PES) 헤더들에 액세스하는 것조차도 가능하지 않을 수 있다. 또한, 이것은 화상 프레임들을 찾는 것이 가능하지 않음을 의미한다. 공지의 트릭-플레이 엔진들은 이 정보에 액세스하여 처리할 수 있을 필요가 있다.
이 설명의 틀 내에서, "ECM"이라는 용어는 자격 제어 메시지를 나타낸다. 이 메시지는 특히, 기밀 제공자 전유 정보를 포함할 수 있으며, 무엇보다도, MPEG 스트림을 해독하는데 필요한 암호화된 제어 워드들(CW)을 내포할 수 있다. 통상적으로, 제어 워드들은 10-20 초 내에 만기가 된다. ECM들은 수송 스트림에 패킷들에 내장된다.
이 설명의 틀 내에서, "키들(key)"이라는 용어는 특히, 스마트 카드에 저장될 수 있고, 수송 스트림에 내장될 수 있는 EMM들, 즉, 소위 "자격 관리 메시지들"을 사용하여 스마트 카드에 전송될 수 있는 데이터를 나타낸다. 이들 키들은 ECM에 있는 제어 워드들을 해독하기 위해 스마트 카드에 의해 사용될 수 있다. 이러한 키의 전형적인 유효 기간은 1 개월이다.
이 설명의 틀 내에서, "제어 워드들(CW)"이라는 용어는 특히, 실제 콘텐트를 해독하는데 필요한 해독 정보를 나타낸다. 제어 워드들은 스마트 카드에 의해 해독되고 이어서 해독 코어의 메모리에 저장될 수 있다.
평문 스트림들에 대한 트릭-플레이에 관계된 몇가지 면들이 이제 기술될 것이다.
생성된 어떠한 MPEG2이든 MPEG2 규격의 수송 스트림들인 것이 바람직하다. 이것은 디코더가 장치 내 일체화될 수 있을 뿐만 아니라 예를 들면 IEEE 1394 인터페이스와 같은 표준 디지털 인터페이스를 통해 접속될 수 있기 때문이다.
고 압축비들을 달성하기 위해 비디오의 시간적 용장성을 활용하는 MPEG2와 같은 비디오 부호화 기술을 사용할 때 일어날 수 있는 어떤 문제들도 고려되어야 한다. 프레임들은 더 이상 독립적으로 디코딩되지 않을 수 있다. 복수의 화상 그룹(GOPs)의 구조가 도 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)의 크기를 갖는다. 복수의 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) 전 및 후(디스플레이 순서로)의 기준 프레임들 둘 다가 필요하다. 디코더 내 버퍼 요구를 최소화하기 위해서, 압축된 프레임들은 재순서화될 수 있다. 따라서 전송에서, 기준 프레임들이 먼저 올 수도 있다. 재순서화된 스트림이, 전송될 때, 도 3에 아래 부분에 도시되었다. 재순서화는 직선의 화살표들(302)로 나타내었다. B-프레임(301)을 내포하는 스트림은 모든 B-프레임들(301)이 스킵될지라도 잘 보이는 트릭-플레이 화상을 줄 수 있다. 본 예에 있어서, 이것은 3x 순방향 트릭-플레이 속도가 되게 한다.
MPEG2 스트림이 암호화되지 않았을지라도(즉 평문), 트릭-플레이는 사소하지 않다. I-프레임들만에 기초한 저속-역방향의 가능성을 간단히 언급한다. 효율적인 프레임 기반의 저속-역방향은 그래도, MPEG2 GOP의 필요한 역순에 기인하여 더 어렵다. 슬로우 모션 순방향으로서도 알려진 저속 순방향은 정규 속도보다 더 느린 속도로 디스플레이 화상이 진행되는 모드이다. 저속 순방향의 기본적 형태는 트릭- 플레이 GOP들을 생성하는 고속-순방향 알고리즘을 이용하는 기술로 이미 가능하다. 고속-순방향 속도를 제로 내지 1 사이의 값으로 설정하는 것은 고속-순방향 트릭-프레임 GOP들의 복제에 기초하여 저속 순방향 스트림이 되어버린다. 평문 스트림에 있어서, 이것은 아무 문제가 아니지만 암호화된 스트림에 있어서 이것은 어떤 특정한 상태들에선 I-프레임의 일부의 해독을 잘못되게 할 수 있다. 이러한 문제를 해결하는 몇가지 선택들이 있지만 가장 적합한 방법은 고속-순방향 트릭-플레이 GOP를 복제하는 것이 아니라 빈 P-프레임들의 추가에 의해 트릭-플레이 GOP의 크기를 확장하는 것이다. 사실 이 기술은 고속-순방향/역방향을 위해 사용되는 트릭-플레이 GOP들에 기초하고 따라서 독립적으로 디코딩 가능한 I-프레임들에 기초하기 때문에, 저속-역방향을 할 수 있게 한다. 그러나, 이러한 종류의 I-프레임에 기반한 저속 순방향 혹은 저속-역방향을 이용하는 것은 다음의 이유로 바람직하지 않다. 정규 플레이에서 I-프레임들간의 거리는 약 1/2 초이고 저속 순방향/역방향에 있어서 이 거리는 슬로우 모션 율이 곱해진다. 따라서 이러한 유형의 저속 순방향 혹은 저속-역방향은 실제로는 소비자들이 익숙한 슬로우 모션이 아니라 사실 이것은 연속한 화상들 간에 큰 시간적 거리를 가진 슬라이드 쇼와 흡사하다.
정지화상 모드라고 하는 또 다른 트릭-플레이 모드에서, 디스플레이 화상은 정지된다. 이것은 정지화상 모드의 기간동안 I-프레임에 빈 P-프레임들을 추가함으로써 달성될 수 있다. 이것은 마지막 I-프레임으로부터 생긴 화상이 정지됨을 의미한다. 정규 플레이로부터 정지화상으로 전환할 때, 이것은 CPI 파일 내 데이터에 따라 가장 가까운 I-프레임일 수도 있다. 이 기술은 고속-순방향/역방향 모드들의 확장이며 특히 인터레이스 킬이 사용된다면 나은 정지화상들이 된다. 그러나, 정규 플레이 혹은 저속 순방향/역방향에서 정지화상으로 전환할 때 흔히 위치상의 정확성이 충분하지 않다.
정지화상 모드는 스텝 모드를 구현하게 확장될 수 있다. 스텝 명령은 스트림을 얼마간의 다음 혹은 이전 I-프레임들까지 전진시킨다. 스텝 크기는 최소 한 GOP이나 정수개의 GOP들과 동일한 보다 더 큰 값으로 설정될 수도 있다. 스텝 순방향 및 스텝 백워드는 둘 다 이 경우 I-프레임들만이 사용되기 때문에 가능하다.
또한, 저속 순방향은 매 프레임의 복제에 기초할 수 있는데, 이에 따라 슬로우 모션은 훨씬 더 부드러워진다. 저속 순방향의 최상의 형태는 시간적 분해능이 2배가 되고 인터레이스 아티팩트들이 전혀 없기 때문에 사실 프레임들이 아니라 필드들의 복제일 것이다. 그러나, 이것은 본질적으로 프레임 기반의 MPEG2 스트림들에 있어서 실제로는 불가능하며 이들이 대부분 암호화된 경우엔 훨씬 더 그러하다. 인터레이스 아티팩트들은 복제를 강행하기 위해 특별한 빈 프레임들을 사용함으로써 I- 및 P-프레임들에 있어선 현저하게 감소될 수 있다. 그렇지만 이러한 인터레이스 감소 기술은 B-프레임들에 대해선 가능하지 않다. I- 및 P-프레임들에 대해 인터레이스 킬의 사용이 이 경우 여전히 잇점이 있는지 아니면 사실 보는 사람에게 보다 성가신 화상에 이르게 하는지 여부는 실험들에 의해만 검증될 수 있다.
개개의 프레임들에 기초한 저속-역방향은 사실 시간적 예측들에 기인하여 MPEG 신호들에 있어선 매우 복잡하다. 한 완전한 GOP가 버퍼되고 역순이 되어야 한다. GOP 내 프레임들을 역 순서로 레코딩하는 것에 관해 알고 있는 간단한 방법은 없다. 따라서 거의 완전한 디코딩 및 엔코딩은 이들 둘 간에 프레임 순서의 역이 필요할 수도 있을 것이다. 이것은 MPEG 디코더 및 엔코더뿐만 아니라 완전한 디코딩된 GOP의 버퍼링을 요구한다.
정지화상 모드는 프레임 기반의 저속 순방향 모드의 확장으로서 정의될 수 있다. 이것은 프레임의 유형이 무엇이든 간에 정지화상 모드의 기간동안 현 프레임의 복제된 디스플레이에 기초한다. 이것은 사실 정규 플레이 스트림이 저속으로 되는 율을 나타낸다면 무한 슬로우 모션 율을 가진 저속 순방향인 것이다. 화상이 B-프레임에서 정지된다면 어떠한 인터레이스 킬도 가능하지 않다. 이러한 면에서 이 정지화상 모드는 트릭-플레이 GOP 기반의 정지 화상 모드보다 더 안 좋다. 이것은 다소 덜 정확한 정지 화상 위치를 대가로 I- 혹은 P-프레임에서 화상을 정지시키는 것만에 의해서 정정될 수 있다. 이 경우 시간적 기준 및 PTS에 불연속들이 회피될 수 있다. 또한, B-프레임들에 대해선 필요한 프레임 데이터 자체의 복제가 아니라 빈 프레임들의 삽입에 의해 I- 혹은 P-프레임의 복제가 강행되기 때문에 비트 레이트가 현저하게 감소된다. 따라서, 기술적으로 말하여, I- 혹은 P-프레임에서 화상을 정지시키는 것이 최상의 선택이다.
또한, 정지화상 모드는 스텝 모드에 확장될 수도 있다. 스텝 명령은 기본적으로 스트림을 다음 프레임까지 전진시킨다. 다음 P-프레임 혹은 얼마간의 다음 I-프레임까지 스텝함으로써 보다 큰 스텝 크기가 가능하다. 프레임 단위로 스텝 백워드는 가능하지 않다. 유일한 선택은 이전 I-프레임들 중 하나로 스텝 백워드하는 것이다.
두 유형의 정지화상 모드, 즉 트릭-플레이 GOP 기반 및 프레임 기반의 모드가 언급되었다. 제1 모드는 가장 논리적으로 고속-순방향/역방향에 연관되고 제2 모드는 저속 순방향에 관계된다. 어떤 모드에서 정지화상으로 전환할 때, 전환 지연을 최소화하기 위해서, 관계된 정지화상 모드를 선택하는 것이 바람직하다. 이들 두 방법들로부터 나온 스트림들은 이들 둘 다 앵커 프레임의 복제를 강행하기 위해 빈 프레임들의 삽입에 기초하기 때문에 매우 비슷해 보인다. 그러나, 상세한 스트림 구조 레벨에선 어떤 차이들이 있다.
다음에서, CPI(특징점 정보; "characteristic point information") 파일에 관계된 어떤 면들이 기술될 것이다.
스트림에서 I-프레임들을 찾는 것은 일반적으로 프레임 헤더들을 발견하기 위해서, 스트림을 파싱(parcing)하는 것을 요구한다. I-프레임이 시작하는 위치들을 파악하는 것은 레코딩이 행해지고 있는 동안에, 혹은 레코딩이 완료된 후 오프-라인으로, 혹은 사실은 오프-라인이지만 레코딩할 때에 관하여 작은 지연을 가진 반(semi) 온라인으로 행해질 수 있다. I-프레임 끝은 다음 P-프레임 혹은 B-프레임의 시작을 검출함으로써 발견될 수 있다. 이러한 방법으로 도출된 메타-데이터는 특징점 정보 파일 또는 CPI 파일로서 칭해질 수 있는 별도의, 그렇지만 결합된 파일에 저장될 수 있다. 이 파일은 수송 스트림 파일 내 각 I-프레임의 시작 및 결국엔 끝에의 포인터들을 내포할 수 있다. 각각의 개개의 레코딩은 그 자신의 CPI 파일을 구비할 수 있다.
특징점 정보 파일(400)의 구조를 도 4에 나타내었다.
CPI 파일(400) 외에도, 저장된 정보(401)가 도시되었다. CPI 파일(400)은 여기에 논의되지 않은 어떤 다른 데이터도 내포할 수 있다.
CPI 파일(400)로부터 데이터에 의해, 스트림 내 임의의 I-프레임(201)의 시작에 도약하는 것이 가능하다. CPI 파일(400)이 I-프레임들(201)의 끝도 내포한다면, 수송 스트림 파일로부터 독출할 데이터량을 정확히 알게 되어 완전한 I-프레임(201)을 얻게 된다. 어떤 이유로 I-프레임 끝을 모른다면, 전체 I-프레임(201)이 독출된 것을 확실하게 하기 위해서 전체 GOP 혹은 적어도 대부분의 GOP 데이터가 읽혀져야 한다. GOP의 끝은 다음 I-프레임(201)의 시작에 의해 주어진다. 측정들로부터 I-프레임의 량은 총 GOP데이터의 40% 이상일 수 있음이 알려졌다.
트릭-플레이 화상 리프레시 레이트를 감소시키는 것은 수회에 걸쳐 각 I-프레임(201)을 디스플레이함으로써 달성될 수 있음을 알았다. 이에 따라 비트 레이트가 감소될 것이다. 이것은 I-프레임들(201) 사이에 소위 빈 P-프레임들(202)을 추가함으로써 달성될 수도 있다. 이러한 빈 P-프레임(202)은 실제로는 비어있지 않고 이전 프레임을 복제할 것을 디코더에 지시하는 데이터를 내포할 수도 있다. 이것은 대부분의 경우에 I-프레임(201)에 비교하여 무시될 수 있는 제한된 비트 코스트를 갖는다. 실험들로부터, IPP 혹은 IPPP와 같은 트릭-플레이 GOP 구조들은 트릭-플레이 화상의 질에 수락될 수 있고 고 트릭-플레이 속도들에서도 잇점이 있음을 알았다. 결과적인 트릭-플레이 비트 레이트는 정규 플레이 비트 레이트와 동일 순서를 갖는다. 또한, 이들 구조들은 저장 장치로부터 유지할 필요 대역폭을 감소시킬 수 있음을 언급해 둔다.
여기에서 타이밍 문제들 및 스트림 구조에 관계된 어떤 면들이 기술될 것이다.
트릭-플레이 시스템(500)이 도 5에 개략적으로 도시되었다.
트릭-플레이 시스템(500)은 레코딩 유닛(501), I-프레임 선택 유닛(502), 트릭-플레이 생성 블록(503) 및 MPEG2 디코더(504)를 포함한다. 트릭-플레이 생성 블록(503)은 파싱 유닛(505), 가산 유닛(506), 패킷타이저 유닛(507), 테이블 메모리 유닛(508) 및 멀티플렉서(509)를 포함한다.
레코딩 유닛(501)은 I-프레임 선택 유닛(502)에 평문 MPEG2 데이터(510)를 제공한다. 멀티플렉서(509)는 MPEG2 디코더(504)에 MPEG2 DVB에 따르는 수송 스트림(511)을 제공한다.
I-프레임 선택기(502)는 저장 장치(501)로부터 특정의 I-프레임들(201)을 독출한다. 어떤 I-프레임들(201)이 선택될 것인가는 후술할 트릭-플레이 속도에 따른다. 불러들인 I-프레임들(201)은 디코딩 및 렌더링을 위해 MPEG-2 디코더(504)에 보내지게 될 MPEG-2/DVB에 준한 트릭-플레이 스트림을 구성하는데 사용된다.
트릭-플레이 스트림 내 I-프레임 패킷들의 위치는 원 수송 스트림의 상대적 타이밍에 결부될 수 없다. 트릭-플레이에서, 시간축은 속도 율에 의해 압축 혹은 확장될 수 있고 추가로 역 트릭-플레이를 위해 역순으로 될 수 있다. 그러므로, 원 시간 스탬프된 수송 스트림의 시간 스탬프들은 트릭-플레이 생성에 적합하지 않을 수 있다.
또한, 원 PCR 시간 베이스는 트릭-플레이에 있어선 교란될 수 있다. 무엇보 다도 먼저, 선택된 I-프레임(201) 내에서 PCR이 얻어질 수 있을 것인가가 보장되지 않는다. 그러나 훨씬 더 중요한 것은 PCR 시간 베이스의 주파수가 변경될 것이라는 것이다. MPEG2 명세에 따라, 이 주파수는 27MHz로부터 30 ppm 이내가 되어야 한다. 원 PCR 시간 베이스는 이 요건을 이행하지만, 트릭-플레이에 사용된다면 트릭-플레이 속도 율만큼 곱해져야 할 것이다. 역 트릭-플레이에 있어서 이것은 틀린 방향으로 진행하는 시간 베이스를 초래한다. 그러므로, 이전 PCR 시간 베이스는 제거되어야 하며 새로운 것이 트릭-플레이 스트림에 추가되어야 한다.
마지막으로, I-프레임들(201)은 정상적으로는 디코더(504)에게 프레임 디코딩을 언제 시작할 것인지와(디코딩 시간 스탬프, DTS) 이를 표현, 예를 들면 디스플레이를 언제 시작할 것인지를(프리젠테이션 시간 스탬프, PTS) 알려주는 2개의 시간 스탬프들을 내포한다. 디코딩 및 프리젠테이션은 DTS 및 PTS가 각각 스트림 내 PCR들에 의해 디코더(504)에서 재구성되는 PCR 시간 베이스와 같을 때 시작될 수 있다. 예를 들면 2개의 I-프레임들(201)의 PTS 값들 간 거리는 디스플레이 시간에서 이들의 공칭 거리에 대응한다. 트릭-플레이에서 이 시간 거리는 속도 율에 따라 압축 혹은 확장된다. 트릭-플레이에서 새로운 PCR 시간 베이스가 사용되기 때문에, 그리고 DTS 및 PTS에 대한 거리가 더 이상 정확하지 않기 때문에, I-프레임(201)의 원 DTS 및 PTS는 교체되어야 한다.
위에 언급된 복잡성을 해결하기 위해서, 먼저 I-프레임(201)은 파싱 유닛(505)에서 기본 스트림으로 파싱될 수 있다. 이어서 빈 P-프레임들(202)이 기본 스트림 레벨에 추가된다. 얻어진 트릭-플레이, GOP는 PES 패킷에 맵핑되고 수송 스 트림 패킷들로 패킷화된다. 이어서 PAT, PMT, 등과 같은 정정된 테이블들이 추가된다. 이 단계에서, DTS 및 PTS와 함께 새로운 PCR 시간 베이스가 포함된다. 수송 스트림 패킷들에는 정규 플레이에서 사용되는 것과 동일한 출력회로에 의해 트릭-플레이 스트림이 취급될 수 있게 PCR 시간 베이스에 결합되는 4바이트 시간 스탬프가 프리-펜드된다.
다음에서, 트릭-플레이 속도들에 관계된 어떤 면들이 기술될 것이다. 이 맥락에서, 먼저, 고정된 트릭-플레이 속도들이 다루어질 것이다.
전에 언급된 바와 같이, I-프레임(201) 다음에 2개의 빈 P-프레임들(202)이 이어지는, IPP와 같은 트릭-플레이 GOP 구조가 사용될 수 있다. 원 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)을 스킵함으로써 실현될 수 있다. 매 두 번째 I-프레임(201)이 취해진다면, 트릭-플레이 속도는 2배가 되고, 매 세 번째 I-프레임(201)이 취해진다면, 트릭-플레이 속도는 3배가 되고, 등등이 된다. 즉, 원 스트림의 사용된 I-프레임들(201)간의 거리는 2, 3, 등이다. 이 거리는 항시 정수일 수 있다. 트릭-플레이 생성에 사용되는 I-프레임들(201)간 거리를 D로 표기한다면(D=1은 매 I-프레임(201)이 사용됨을 의미한다), 일반적인 트릭-플레이 속도 율 N은 다음에 의해 주어진다.
N=D*G/T (2)
이것은 기본 속도의 모든 정수배들이 실현될 수 있어 수락가능한 한 세트의 속도들이 되게 함을 의미한다. 역 트릭-플레이에 대해선 D가 음이고 D=0은 정지화상으로 됨에 유의한다. 데이터는 순방향으로만 독출될 수 있을 뿐이다. 그러므로, 역 트릭-플레이에서, 데이터는 순방향으로 독출되고 D만큼 주어진 선행 I-프레임(201)을 가져오기 위해선 역방향으로 도약들이 행해진다. 또한, 트릭-플레이 GOP 크기 T가 클수록 기본 속도는 더 낮아지게 됨에 유의한다. 예를 들면, IPPP는 IPP보다 더 자세한 미립(finer grained)의 한 세트의 속도들이 된다.
도 6을 참조하여, 트릭-플레이에서 시간 압축이 설명될 것이다.
도 6은 T=3(IPP) 및 G=12에 대한 상황을 도시한 것이다. D=2에 있어서, 24 프레임들의 원 디스플레이 시간은 3 프레임들의 트릭-플레이 디스플레이 시간으로 압축되어 N=8이 된다. 주어진 예에서, 기본 속도는 정수이지만 이것은 반드시 정수인 것은 아니다. G=16 및 T=3인 경우, 기본 속도는 한 세트의 정수 트릭-플레이 속도들로 되지 않게 되는 16/3 = 5 1/3이다. 그러므로, IPPP 구조(T=4)가, 4x의 기본 속도가 되는 16의 GOP 크기에 더 적합하다. 12 및 16의 가장 일반적인 GOP 크기들에 들어맞는 단일 트릭-플레이 구조가 요망된다면, IPPP가 선택될 수 있다.
두 번째로, 임의의 트릭-플레이 속도들이 논의될 것이다.
어떤 경우들에 있어서, 위에 기술된 방법에 기인한 한 세트의 트릭-플레이 속도들은 만족스러우나, 어떤 경우들에 있어선 그렇지 않다. G=16 및 T=3의 경우에, 아마도 정수 트릭-플레이 속도 율들을 여전히 선호할 것이다. G=12 및 T=4의 경우이라도, 예를 들면 7x처럼 세트에서 속도를 얻을 수 없게 하는 것이 선호될 수도 있을 것이다. 이제, 트릭-플레이 속도 공식은 역으로 될 것이며 다음에 의해 주어지는 거리 D가 계산될 것이다.
D=N*T/G (3)
G=12, T=4 and N=7로 하고 위의 예를 사용하면 D=2 1/3이 된다. 고정된 수의 I-프레임들(201)을 스킵하는 대신에, 요구되는 속도에 어떤 I-프레임(201)이 최상으로 부합하는가의 사실에 근거하여 다음 I-프레임(201)을 선택하는 적응형 스킵 알고리즘이 사용될 수도 있을 것이다. 최상으로 부합하는 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)+l 사이에서 가변적이고, 평균 거리가 D와 같게 되게, 2개의 발생들 간의 비는 D의 분수에 따른다. 이것은 평균 트릭-플레이 속도가 N과 같음을 의미하나, 실제로 사용되는 프레임은 이상적인 프레임에 관하여 약간의 지터를 가짐을 의미한다. 이것에 대해 몇가지 실험들이 수행되었는데, 트릭-플레이 속도가 국부적으로 가변될 수 있을지라도, 이것은 시각적으로 교란하지 않는다. 일반적으로, 특히 다소 높은 트릭-플레이 속도들에서도 눈에 띄지 않는다. 또한, 도 7로부터 방법 A, B 혹은 C 어는 것을 선택하든지 근본적인 차이는 없음이 명백하다.
이 방법으로, 트릭-플레이 속도 N은 정수일 필요는 없으나 기본 속도 Nb 이 상의 임의의 수일 수 있다. 또한, 이 최소 미만의 속도들이 선택될 수 있는데, 그러나 그러면 화상 리프레시 레이트는 유효한 트릭-플레이 GOP 크기(T)가 2배가 되거나 훨씬 더 낮은 속도들에서도 3배 혹은 그 이상이 되기 때문에 국부적으로 낮아질 수 있다. 이것은 알고리즘이 1회 이상 동일 I-프레임(201)을 선택할 것이기 때문에, 트릭-플레이 GOP들의 복제에 기인한다.
도 8은 N=2/3 Nb에 상당하는 D=2/3에 대한 예를 도시한 것이다. 여기에서, I-프레임들(201)을 선택하기 위해 라운드 함수(round function)가 사용되고, 볼 수 있는 바와 같이 프레임들 2 및 4가 2번 선택된다.
어째든, 기술된 방법은 연속적으로 가변하는 트릭-플레이 속도를 가능하게 할 것이다. 역 트릭-플레이에 있어서는 N에 대해 음의 값이 선택된다. 도 7의 예에서, 이것은 간단히, 화살표들(700)이 다른 방향으로 가리키고 있음을 의미한다. 또한, 기술된 방법은 앞서 언급된 다수 세트들의 고정된 트릭-플레이 속도들을 포함할 것이며 이들은 특히 라운드 함수가 사용된다면 동일 질을 가질 것이다. 그러므로, 이 절에서 기술된 융통성 있는 방법은 속도들의 선택이 무엇이 되든지 항시 구현될 것임이 적절할 수도 있을 것이다.
트릭-플레이 화상의 리프레시 레이트에 관계된 어떤 면들이 논의될 것이다.
"리프레시 레이트"라는 용어는 특히, 새로운 화상들이 디스플레이되는 주파수를 나타낸다. 속도에 의존적이진 않을지라도, 이것이 T의 선택에 영향을 미칠 수 있기 때문에 여기에서 간략히 논의될 것이다. 원 화상의 리프레시 레이트를 R(25Hz 혹은 30Hz)로 표시하면, 트릭-플레이 화상의 리프레시 레이트(Rt)는 다음에 의해 주어진다.
Rt=R/T (4)
IPP (T=3) 혹은 IPPP (T=A)의 트릭-플레이 GOP 구조에서, 리프레시 레이트(Rt)는 유럽에 있어선 각각 8 1/3Hz, 6 1/4 Hz이고 미국에 있어선 각각 10Hz, 7 1/2Hz이다. 트릭-플레이 화상의 질의 판정이 다소 주관적 사안일지라도, 리프레시 레이트들이 저속들에 대해서 수락될 수 있고 더 높은 속도들에서도 잇점이 있다는 명백한 증거가 실험들로부터 있다.
다음에서, 암호화된 스트림 환경들에 관계된 어떤 면들이 기술될 것이다.
여기에서는 암호화된 수송 스트림들에 관한 어떤 정보는 암호화된 스트림들에 관한 트릭-플레이의 디스크립션을 위한 토대로서 제시된다. 방송을 위해 사용되는 조건부 액세스 시스템에 중점을 둔다.
도 9는 이제 기술될 조건부 액세스 시스템(900)을 도시한 것이다.
조건부 액세스 시스템(900)에서, 콘텐트(901)는 콘텐트 암호화 유닛(902)에 제공될 수 있다. 콘텐트(901)를 암호화한 후에, 콘텐트 암호화 유닛(902)은 콘텐트 해독 유닛(904)에 암호화된 콘텐트(903)를 공급한다. 이 명세서에서, ECM은 자격 제어 메시지들을 나타내는 것이라고 하였다. 또한, KMM은 키 관리 메시지를 나타내 고, GKM은 그룹 키 메시지들을 나타내고 EMM은 자격 제어 메시지들을 나타내려는 것이다. 제어 워드(906)는 콘텐트 암호화 유닛(902)에 그리고 ECM 생성 유닛(907)에 공급될 수 있다. ECM 생성 유닛(907)은 ECM을 생성하여 이를 스마트 카드(905)의 ECM 디코딩 유닛(908)에 제공한다. ECM 디코딩 유닛(908)은 ECM으로부터, 암호화된 콘텐트(903)를 해독하는데 필요하고 해독하기 위해 콘텐트 암호화 유닛(904)에 제공되는 해독 정보인 제어 워드를 생성한다.
또한, 권한부여 키(910)가 ECM 생성 유닛(907) 및 KMM 생성 유닛(911)에 제공되며, 후자는 KMM을 생성하여 이를 스마트 카드(905)의 KMM 디코딩 유닛(912)에 제공한다. KMM 디코딩 유닛(912)은 출력신호를 ECM 디코딩 유닛(908)에 제공한다.
또한, 그룹 키(914)가 KMM 생성 유닛(911)에, 그리고 사용자 키(918)가 더 제공될 수 있는 GKM 생성 유닛(915)에 제공될 수 있다. GKM 생성 유닛(915)은 GKM 신호(GKM)을 생성하여 이를 스마트 카드(905)의 GKM 디코딩 유닛(916)에 제공하며, GKM 디코딩 유닛(916)은 또 하나의 입력으로서 사용자 키(917)를 얻는다.
이 외에, EMM 신호를 생성하여 이를 EMM 디코딩 유닛(921)에 제공하는 EMM 생성 유닛(920)에 자격들(919)이 제공될 수 있다. 스마트 카드(905) 내 위치된 EMM 디코딩 유닛(921)은 대응하는 제어 정보를 ECM 디코딩 유닛(908)에 제공하는 자격 리스트 유닛(913)에 결합된다.
많은 경우들에 있어서, 콘텐트 제공자들 및 서비스 제공자들은 조건부 액세스(CA) 시스템을 통해 어떤 콘텐트 아이템들에의 액세스를 제어하기를 원한다.
이것을 달성하기 위해서, 방송된 콘텐트(901)는 CA 시스템(900)의 제어 하에 암호화된다. 수신기에서, 콘텐트는 액세스가 CA 시스템(900)에 의해 승인된다면 디코딩 및 렌더링 전에 해독된다.
CA 시스템(900)은 층구조의 계층을 사용한다(도 9 참조). CA 시스템(900)은 서버로부터 클라이언트로 콘텐트 해독 키(제어 워드(CW)(906, 909))를 ECM이라 하는 암호화된 메시지 형태로 전송한다. ECM들은 권한부여 키(AK)(910)를 사용하여 암호화된다. 보안의 이유로, CA 서버(900)는 KMM을 발행함으로써 권한부여 키(910)를 갱신할 수 있다. KMM은 사실 EMM의 특별한 유형이지만 명확성을 위해서 KMM이라는 용어가 사용될 수도 있다. KMM들은 또한, 예를 들면 EMM의 특별한 유형인 GKM을 보냄으로써 갱신되는 그룹 키(GK)(914)일 수 있는 키를 사용하여 암호화된다. 그러면 GKM들은 스마트 카드(905) 내 내장되고 제공자의 CA 시스템(900)만이 아는 고정된 고유키인 사용자 키(UK)(917, 918)로 암호화된다. 권한부여 키들 및 그룹 키들은 수신기의 스마트 카드(905)에 저장된다.
자격들(919)(예를 들면 보는 권한)이 EMM 형태로 개개의 고객들에게 보내져 보안장치(스마트 카드(905)) 내에 저장된다. 자격들(919)은 특정 프로그램에 결합된다. 자격 리스트(913)는 가입 유형에 따라 일 그룹의 프로그램들에의 액세스를 허락한다. ECM들은 특정 프로그램에 대해 자격(919)이 사용가능하다면 스마트 카드(905)에 의해 키들(제어 워드들)로만 처리된다. 자격 EMM들은 KMM들과 동일한 층 구조를 취하게 된다(도 9에 도시되지 않음).
MPEG2 시스템에서, 암호화된 콘텐트, ECM들 및 EMM들(KMM 및 GKM 유형들을 포함함)은 모두 단일의 MPEG2 수송 스트림에 멀티플렉스된다. 위에 설명은 CA 시스 템(900)의 전반적인 개요이다. 디지털 비디오 방송에서, 단지 암호화 알고리즘, 기/우(odd/even) 제어 워드 구조, ECM들 및 EMM들의 전역 구조 및 이들의 참조(referencing)가 정의된다. CA 시스템(900)의 상세한 구조, 및 ECM들과 EMM들의 페이로드들이 엔코딩되고 사용되는 방법은 제공자에 특유한 것이다. 스마트 카드도 제공자에 특유한 것이다. 그러나, 경험으로부터 많은 제공자들이 근본적으로 도 9의 전반적인 개요의 구조에 따른다는 것을 안다.
다음에서, DVB 암호화/해독 토픽이 논의될 것이다.
적용되는 암호화 및 해독 알고리즘은 DVB 표준화 기구에 의해 정의된다. 기본적으로 2가지 암호화 가능성들, 즉 PES 레벨 암호화 및 TS 레벨 암호화가 정의된다. 그러나, 실제로는 주로 TS 레벨 암호화 방법이 사용된다. 수송 스트림 패킷들의 암호화 및 해독은 패킷을 기반으로 행해진다. 이것은 새로운 수송 스트림 패킷이 수신될 때마다 암호화 및 해독 알고리즘이 다시 시작됨을 의미한다. 그러므로, 패킷들은 개별적으로 암호화 혹은 해독될 수 있다. 수송 스트림에서, 일부 스트림 부분들이 암호화되고(예를 들면, 오디오/비디오) 및 다른 부분들은 그렇지 않기 때문에(예를 들면, 테이블들) 암호화된 패킷 및 평문 패킷은 섞여있다. 한 스트림 부분 내에서도(예를 들면, 비디오), 암호화된 패킷과 평문 패킷이 섞여 있을 수 있다.
도 10을 참조하여, DVB 암호화된 수송 스트림 패킷(1000)이 기술될 것이다.
스트림 패킷(1000)은 188 바이트의 길이(1001)를 가지며 3부분들을 포함한다. 패킷 헤더(1002)는 4바이트의 크기(1003)를 갖는다. 패킷 헤더(1002)에 이어, 스트림 패킷(1000)엔 어댑테이션 필드(1004)가 포함될 수 있다. 그 후에, DVB 암호화된 패킷 페이로드(1005)가 보내질 수도 있다.
도 11은 도 10의 수송 스트림 패킷 헤더(1002)의 상세한 구조를 도시한 것이다.
수송 스트림 패킷 헤더(1002)는 동기화 유닛(SYNC)(1010), 패킷 내 수송 오류들을 나타낼 수 있는 수송 오류 표시자(TEI)(1011), 특히 후속 페이로드(1005)에 PES 패킷의 가능한 시작을 나타낼 수 있는 페이로드 유닛 시작 표시자(PLUSI)(1012), 수송의 우선도를 나타내는 수송 우선도 유닛(TPI)(1017), 패킷의 할당을 결정하는데 사용되는 패킷 식별자(PID)(1013), 수송 스트림 패킷을 해독하는데 필요한 CW를 선택하는데 사용되는 수송 스크램블링 제어(SCB)(1014), 어댑테이션 필드 제어(AFLD)(1015), 및 연속성 카운터(CC)(1016)를 포함한다. 이에 따라, 도 10 및 도 11은 암호화되었으며 다음의 서로 다른 부분들을 포함하는 MPEG2 수송 스트림 패킷(1000)을 나타낸다.
- 패킷 헤더(1002)는 평문이다. 이것은 패킷 식별자(PID) 번호, 어댑테이션 필드의 존재, 스크램블링 제어 비트들, 등과 같은 중요한 정보를 얻을 수 있게 한다.
- 어댑테이션 필드(1004) 또한 평문이다. 이것은 PCR과 같은 중요한 타이밍 정보를 내포할 수 있다.
- DVB 암호화된 패킷 페이로드(1005)는 DVB 알고리즘을 사용하여 암호화되었을 수도 있는 실제 프로그램 콘텐트를 내포한다.
방송된 프로그램을 해독하는데 필요한 정확한 CW를 선택하기 위해서, 수송 스트림 패킷 헤더를 파싱하는 것이 필요하다. 이 헤더의 개략적 개요가 도 11에 주어져 있다. 방송된 프로그램의 해독에 있어 중요한 필드는 스크램블링 제어 비트(SCB) 필드(1014)이다. 이 SCB 필드(1014)는 해독기가 방송된 프로그램을 해독하기 위해 어떤 CW를 사용해야 하는가를 나타낸다. 또한, 패킷의 페이로드가 암호화되었는지 아니면 평문인지를 나타낸다. 매 새로운 수송 스트림 패킷에 대해서, 이 SCB(1014)는 이것이 시간에 따라 변하고 패킷마다 변할 수 있기 때문에 파싱되어야 한다.
다음에서, 완전히 암호화된 스트림들에 트릭-플레이에 관계된 어떤 면들이 기술될 것이다.
이것이 흥미있는 토픽인 제1 이유는 평문 및 완전히 암호화된 스트림들에 트릭-플레이는 한 범위의 가능성들 중에서 양극단이라는 것이다. 또 따른 이유는 완전히 암호화된 스트림들을 레코딩하는데 필요할 수 있는 애플리케이션들이 존재한다는 것이다. 따라서, 완전히 암호화된 스트림에 트릭-플레이를 수행하기 위해 즉시 사용할 수 있는 기술을 갖추는 것이 유용할 것이다. 기본 원리는 저장 장치로부터 충분히 큰 한 블록의 데이터를 독출하고, 이를 해독하고, 블록에서 I-프레임을 선택하고 이와 함께 트릭-플레이 스트림을 구성하는 것이다.
이러한 시스템(1200)이 도 12에 도시되었다.
도 12는 완전히 암호화된 스트림에 대한 트릭-플레이의 기본 원리를 도시한 것이다. 이 목적을 위해서, 하드 디스크(1201)에 저장된 데이터는 수송 스트 림(1202)로서 해독기(1203)에 제공된다. 또한, 하드 디스크(1201)는 스마트 카드(1204)에 ECM을 제공하는데, 스마트 카드(1204)는 이 ECM으로부터 제어 워드들을 생성하여 이를 해독기(1203)에 보낸다.
제어 워드들을 사용하여, 해독기(1203)는 암호화된 수송 스트림(1202)을 해독하고 해독된 데이터를 I-프레임 검출기 및 필터(1205)에 보낸다. 이로부터, 데이터는 데이터를 셋탑박스(1207)에 전달하는 빈 P 프레임 삽입 유닛(1206)에 제공된다. 이로부터, 데이터는 텔레비전(1208)에 제공된다.
레코딩이 무엇을 내포하는가의 질문에 관하여 어떤 면들이 언급될 것이다.
단일 채널의 레코딩을 행할 때, 레코딩은 나중 단계에서 채널의 레코딩을 재생하는데 필요한 모든 데이터를 내포해야 한다. 어떤 한 트랜스폰더에 모든 것을 레코딩한 것에만 의지할 수 있으나, 이렇게 하면 레코딩하고자 할 프로그램을 재생하는데 필요한 것보다 훨씬 더 많이 레코딩할 것이다. 이것은 대역폭 및 저장공간 둘 다가 낭비될 것임을 의미한다. 따라서 이 대신 단지 패킷들만이 실제로 레코딩될 것이다. 각각의 프로그램에 대해서 이것은 PAT(프로그램 연관 테이블), CAT(조건부 액세스 테이블), 및 어떤 패킷들이 프로그램에 속하는가를 기술하는 PMT(프로그램 맵 테이블)뿐만 아니라 각 프로그램에 대해 자명하게 비디오 및 오디오 패킷들같은 모든 MPEG2 필수의 패킷들을 레코딩해야 함을 의미한다. 또한, CAT/PMT는 스트림의 해독에 필요한 CA 패킷들(ECM들)을 기술할 수도 있다. 레코딩이 해독후에 평문으로 되지 않는다면, 이들 ECM 패킷들도 레코딩되어야 한다.
행해진 레코딩이 풀(full) 멀티플렉스로부터 모든 패킷들로 구성되지 않는다 면, 레코딩은 소위 부분적 수송 스트림(1300)이 된다(도 13 참조). 또한, 도 13은 풀 수송 스트림(1301)을 도시한 것이다. DVB 표준은 부분적 수송 스트림(1300)이 플레이된다면, NIT(네트워크 정보 테이블), BAT(부케(bouquet) 연관 테이블) 등과 같은 모든 정규 DVB 필수의 테이블들이 제거될 것을 요구한다. 이들 테이블들 대신에, 부분적 스트림은 SIT(선택 정보 테이블) 및 DIT(불연속성 정보 테이블) 테이블들이 삽입되게 해야 한다.
다음에서, ECM들을 다루는 것에 관계된 어떤 면들이 기술될 것이다.
트릭-플레이 동안 다음 블록으로 도약하는 것은 스트림에서 뒤로 도약하는 것을 의미할 수 있다. 이것은 트릭-플레이 역방향에 대한 경우뿐만 아니라 적당한 속도들로 트릭-플레이 순방향에 대한 경우일 수도 있음이 설명될 것이다. 순방향 도약들인 순방향 트릭-플레이 및 본래 역방향 도약들인 역 트릭-플레이에 대한 상황이 이하 설명될 것이다.
이 데이터가 해독되어야 한다는 사실에 의해 야기되어 특정한 문제들이 일어날 수 있다. 조건부 액세스 시스템은 전송을 위해 설계될 수 있다. 정규 플레이에서, 전송된 스트림은 원 타이밍들을 사용하여 재구성될 수 있다. 그러나, 트릭-플레이는 변경된 타이밍들에 기인하여 암호화 메타데이터의 처리를 상당히 복잡하게 할 수 있다. 데이터는 트릭-플레이에 기인하여 시간적으로 압축 혹은 확장될 수 있으나, 스마트 카드의 레이턴시는 일정하게 그대로 있을 수 있다.
트릭-플레이 스트림을 생성하기 위해서, 언급된 데이터 블록들은 해독기를 거칠 수 있다. 이 해독기는 데이터 블록들을 해독하기 위해 암호화 과정에서 사용 된 제어 워드들을 필요로 한다. 또한, 이들 제어 워드들은 암호화되어 ECM들에 저장될 수 있다. 정규 셋탑박스(STB)에서, 이들 ECM들은 동조된 프로그램의 일부일 수 있다. 조건부 액세스 모듈은 ECM들을 추출하여 이들을 스마트 카드에 보낼 수 있으며, 카드가 이들 ECM들을 해독하기 위한 권리 혹은 권한을 갖고 있다면, 해독된 제어 워드들을 스마트 카드로부터 수신할 수 있다. 제어 워드들은 일반적으로 예를 들면 대략 10초의 비교적 짧은 수명을 갖는다. 이 수명은 수송 스트림 패킷 헤더들 내 스크램블링 제어 비트 SCB(1014)에 의해 나타낼 수 있다. 이것이 변한다면, 다음 제어 워드가 사용되어야 한다. 이 SCB 변경 혹은 토글이 도 14에 수직선으로 참조부호(1402)로 나타나 있다.
도 14를 참조하여, 특히 2개의 서로 다른 시나리오들 혹은 스트림 유형들이 구별될 수 있다.
도 14에 아래쪽 행(1401)에 도시된 스트림 유형 I에 따라서, 2개의 제어 워드들(CW)이 ECM마다 제공된다.
도 14에 위쪽 행(1400)에 도시된 스트림 유형 II에 따라서, 단지 하나의 제어 워드(CW)가 ECM마다 제공된다.
도 14는 참조부호(1403)로 나타낸 연이어 배열된 피리어드들(period) 혹은 세그먼트들(A, B, C)을 포함하는 2개의 데이터 스트림들(1400, 1401)을 도시한 것이다. 도 14의 위쪽 행(1400)에 도시된 시나리오에서, 근본적으로 대응하는 ECM 당 하나의 제어 워드가 제공된다. 이와는 반대로, 아래쪽 행(1401)에서 각 ECM은 2개의 제어 워드들, 즉 현 피리어드 혹은 ECM에 관계된 제어 워드, 및 추가로 후속되 는 피리어드 혹은 ECM의 제어 워드를 포함한다. 이에 따라, 제어 워드들의 제공에 관하여 얼마간에 중복성이 있다.
짧은 수명동안, 해독 정보의 아이템들이 수회에 걸쳐 전송될 수 있고, 따라서 이러한 제어 워드의 수명 도중에 이러한 채널에 동조하는 것이, 다음 제어 워드를 대기하는 것을 의미하지 않는다. 조건부 액세스 모듈은 이것이 발견하는 제1 고유 ECM을, 상당히 느린 프로세서를 구비할 수 있을 카드에의 트래픽을 감소 혹은 최소화하기 위해 스마트 카드에 보낼 뿐이다.
이것은 암호화된 스트림들에 대한 트릭-플레이의 제한이 있을 수 있음을 보여준다. 스마트 카드의 처리 능력의 제한된 속도로부터 오는, 내재적 상한 속도 한계가 있을 수 있다. 트릭-플레이에서, 10초의 제어 워드 수명은 트릭-플레이 속도 율로 압축 혹은 확장될 수 있다. 스마트 카드에 ECM을 보내고 해독된 제어 워드들을 수신하는 것은 대략 1/2초가 걸릴 수 있다. 제어 워드들이 ECM에 패킹되는 방법은 제공자에 특정한 것이며 도 14에 도시된 바와 같이, 특히 스트림 유형 I 및 스트림 유형 II에 대해 상이할 수 있다.
CW A는 피리어드 A를 암호화하는데 사용되었던 CW를 나타내며, CW B는 피리어드 B를 암호화하는데 사용되었던 CW를 나타내며, 등등이다. 수평으로, 전송 시간축이 작성되었다. ECM A는 피리어드 A의 대부분 동안 존재하는 ECM인 것으로 정의될 수 있다. 이 경우, ECM A는 현 피리어드 A 동안 CW를 유지하고 스트림 유형 I에 대해선 추가로 다음 피리어드 B 동안 유지함을 알 수 있다. 일반적으로, ECM은 현 피리어드 동안 적어도 CW를 유지할 수 있고 다음 피리어드 동안 CW를 유지할 수도 있을 것이다. 재핑(zapping)에 기인하여, 이것은 아마도 모든 혹은 많은 제공자들에 있어선 그러할 수 있다.
계속하기 전에, 해독기에 관해서 그리고 CW들을 어떻게 다를 수 있을 것인가 관한 더 많은 정보가 제공된다. 해독기는 하나는 "기수" CW용이고 다른 하나는 "우수" CW용인 2개의 레지스터들을 내포할 수 있다. "기수" 및 "우수"는 CW들 자신들의 값들이 기수 혹은 우수임을 의미할 필요가 없다. 용어들은 특히 스트림에서 2개의 계속되는 CW들 간을 구별하는데 사용된다. 패킷의 해독을 위해 어떤 CW가 사용되어야 하는가는 패킷 헤더 내 SCB(1014)에 의해 나타낸다. 따라서, 스트림을 암호화하는데 사용되는 CW들은 기수와 우수간에 교번하여 있다. 도 14에서 이것은, 예를 들면, CW A 및 CW B가 기수이고 반면에 CW B 및 CW D는 우수임을 의미한다. 스마트 카드에 의한 해독 후에, CW들은, 도 15에 나타낸 바와 같이, 해독기 내 대응하는 레지스터들에 기입되어 이전 값들을 덮어쓴다.
도 15는 우수 CW들(레지스터(1501)) 및 기수 CW들(레지스터(1502))을 내포하는 2개의 레지스터들(1501, 1502)를 도시한 것이다. 또한, 스마트 카드 레이턴시(1500), 즉 ECM으로부터 CW를 가져오거나 해독하기 위해 스마트 카드에 의해 필요로 되는 시간이 도 15에 도시되었다.
스트림 유형 I의 경우에, 각 ECM은 2개의 CW들을 유지하며, 결국 레지스터들(1501, 1502) 둘 다는 ECM의 해독 후에 덮어씌여질 수 있다. 레지스터들(1501, 1502) 중 하나는 활성이고 다른 하나는 비활성이다. 어느 것이 활성인가는 SCB(1014)에 달려있다. 예에서, SCB(1014)는 피리어드 B 동안 우수 레지스터(1501) 가 활성 레지스터임을 나타낼 것이다. 활성 레지스터는 이미 유지하고 있는 것이 그 특정 피리어드의 나머지를 해독하는데 필요하기 때문에 이와 동일한 CW으로 덮어씌여질 뿐이다. 그러므로, 비활성 레지스터만이 새로운 값으로 덮어씌여질 수 있다.
트릭-플레이에서 피리어드 B를 면밀히 살펴본다. ECM은 이 피리어드의 시작에서 따라서 SCB 토글(1402)이 교차되는 때에 스마트 카드에 보내지는 것으로 가정한다. 문제는 이어서 스마트 카드에 어떤 ECM이 보내질 수 있을 것인가하는 것이다.
이 ECM은 피리어드 C의 시작에서, 사용을 위해 스마트 카드에 의한 적시의 해독이 될 수 있게 CW C를 유지해야 한다.
또한, 해독기에서 CW들의 정확한 이용성에 교란이 됨이 없이 CW B를 유지할 수 있다.
다시 도 14를 보면, 스트림 유형 I에 대해서 이것은 ECM B를 보내는 것을 의미하고 스트림 유형 II에 대해서는 피리어드 B의 시작에서 ECM C를 보내는 것을 의미함을 알 수 있다. 일반적으로, 현 ECM은 2개의 CW들을 유지하는 경우에 보내질 수 있고, 단지 하나의 CW만을 유지한다면 한 피리어드 미리 보내질 수 있다. 그렇지만 한 피리어드 미리 ECM을 보내는 것은 내포된 ECM들에 모순될 있고, 따라서 이들 내장된 ECM들은 이 경우 스트림으로부터 제거되어야 한다. 보다 일반화된 방법에 있어서 원 ECM들은 트릭-플레이 생성 회로 혹은 소프트웨어에 의해 스트림으로부터 항시 제거되는 것이 바람직하다. 그러나, 이것이 항시 맞을 수는 없다.
도 16은 고속 순방향 모드에서 ECM 취급을 도시한 것이다.
SCB 토글들(1402)에 의해 분리된 후속되는 복수의 피리어드들(1403)에서, 복수의 데이터 블록들(1600)이 재현되는데, 스위칭(1601)은 서로 다른 데이터 블록들간에 일어난다.
스트림 유형 I에 있어서, ECM B는 피리어드 A와 피리어드 B 사이의 경계에서 보내진다. 스트림 유형 II에 있어서, ECM C는 B는 피리어드 A와 피리어드 B 사이의 경계에서 보내진다. 또한, 스트림 유형 I에 따라서, ECM C는 피리어드 B와 피리어드 C 사이의 경계에서 보내진다. 스트림 유형 II에 있어서, ECM D는 피리어드 B와 피리어드 C 사이의 경계에서 보내진다.
정확한 순간에 트릭-플레이에 ECM들이 이용될 수 있게 하기 위해서, ECM들은 별도의 파일에 저장될 수 있다. 이 파일에는 어떤 피리어드에 ECM이 속하는가가(레코딩된 스트림의 어떤 부분) 나타나 있을 수 있다. MPEG 스트림 파일 내 패킷들에는 번호가 매겨져 있을 수 있다. 피리어드(SCB 토글(1402))의 제1 패킷의 번호가 이 동일 피리어드(1403)에 대한 ECM과 함께 저장될 수 있다. ECM 파일은 스트림의 레코딩 동안 생성될 수 있다.
ECM 파일은 레코딩 동안 생성될 수 있는 파일이다. 스트림에서, 비디오 데이터를 해독하는데 필요한 제어 워드들을 내포할 수 있는 ECM 패킷들이 위치하여 있을 수 있다. 모든 ECM은 어떤 기간동안, 예를 들면 10초 동안 사용될 수 있고, 이 기간동안 수회에 걸쳐 전송(복제)될 수 있다(예를 들면 100번). ECM 파일은 이러한 기간의 매 제1 새로운 ECM을 내포할 수 있다. ECM 데이터는 이 파일에 기입될 수 있고, 어떤 메타데이터를 동반할 수 있다. 우선, 일련번호(1부터 카운트 업 한다)가 주어질 수 있다. 제2 필드로서, ECM 파일은 SCB 토글의 위치를 내포할 수 있다. 이것은 이 ECM을 사용하여 이의 콘텐트를 정확하게 해독할 수 있는 제1 패킷을 나타낼 수 있다. 이어서 이 SCB 토글의 시간적 위치가 제3 필드로서 이어질 수 있다. 이들 3개의 필드들 다음엔 ECM 데이터 자신이 이어진다.
ECM 파일에 저장된 SCB 토글들을 사용할 때, 이러한 토글이 교차되는지를 도약 동안일지라도 검출하기는 용이할 수 있다. 정확한 ECM을 보내기 위해서, ECM들이 하나인지 아니면 2개인지를 아는 것이 요구될 수 있다. 기본적으로, 이것은 제공자에 특정하고 비밀이기 때문에 알지 못한다. 그러나, 이것은 여러 순간들에 ECM들을 보내고 디스플레이 상에서 결과들을 관찰함으로써 실험적으로 쉽게 판정될 수 있다. 저장 장치 자체에서 구현에 특히 적합한 대안적 방법은 다음과 같다. SCB 토글 순간에 스마트 카드에 한 단일 ECM을 보내고, 스트림을 해독하고 다가오는 2개의 피리어드들에서 PES 헤더들에 대해 체크한다. GOP 당 하나의 PES 헤더로, 각 피리어드에서는 약 20개의 PES 헤더들이 있다. PES 헤더의 위치는 패킷의 평문 헤더 내 PLUSI 비트가 이의 존재를 나타낼 수 있기 때문에 쉽게 검출될 수 있다. 정확한 PES 헤더들이 제1 피리어드 동안에만 발견된다면(스마트 카드의 레이턴시 후에), ECM은 하나의 CW를 내포한다. 이들이 제2 피리어드 동안에도 발견된다면, 이것은 2개의 CW들을 내포한다. 이러한 상황이 도 17에 도시되었다.
도 17은 하나의 CW 검출과 2개의 CW 검출에 대한 상황을 도시한 것이다. 알 수 있는 바와 같이, 암호화된 콘텐트(1700)의 서로 다른 피리어드들(1403)이 제공 된다. 스마트 카드 레이턴시(1500)로, ECM A는 대응하는 CW들을 생성하기 위해 해독될 수 있다. 암호화된 콘텐트(1700)를 해독함으로써, 해독된 콘텐트(1701)가 생성될 수 있다. 도 17에는 PEG 헤더들(1702), 즉 피리어드 A(좌측)에 PES 헤더 A와 피리어드 B(우측)에 PES 헤더 B도 도시되었다.
도 17에 한 CW에 대한 피리어드 B의 영역(1703)은 데이터가 틀린 키로 해독되고 이에 따라 스크램블링되었음을 나타낸다. 이러한 체크는 레코딩하는 동안 행해질 수도 있을 것이며, 이 경우 예를 들면 20 내지 30초가 걸릴 것이다. 이것은 오프라인으로 행해질 수도 있을 것이며, PLUSI들에 의해 나타내어진 단지 두 개의 패킷들(각 피리어드에 하나)이 체크되어야 할 것이기 때문에, 매우 빠를 수도 있었을 것이다. 만일 적절한 PES 헤더들이 입수될 수 없는 경우에는, 대신 화상 헤더들이 사용될 수도 있을 것이다. 사실, 임의의 공지된 정보가 검출에 사용될 수도 있다. 어째든, 하나/두개의 CW 표시가 ECM 파일에 저장될 수 있다.
다음에서, 특히 저속 순방향 스트림들을 처리하는 것에 관계된 어떤 면들이 기술될 것이다.
다음에, 트릭-플레이 GOP 기반의 저속 순방향, 정지화상 및 스텝 모드가 설명될 것이다.
슬로우 모션 순방향라 칭해질 수 있는 저속 순방향은 디스플레이 화상이 정규속도보다 느리게 진행하는 모드이다. 한 형태의 저속 순방향은 도 7 및 도 8을 참조하여 위에 설명된 기술로 이미 가능하다. 고속-순방향 속도를 제로와 1사이의 값으로 설정하는 것은 고속-순방향 트릭-플레이 GOP들의 복제에 근거하여 저속 순 방향 스트림이 된다. 평문 스트림에 대해서, 이것은 적합한 해결책이지만 암호화된 스트림에 대해선 어떤 특정한 상태들에서 I-프레임의 일부의 잘못된 해독에 이르게 할 수 있다. 이 문제를 해결하는 한 선택은 고속-순방향 트릭-플레이 GOP를 복제하는 것이 아니라 빈 P-프레임들의 추가에 의해 트릭-플레이 GOP의 크기를 확장하는 것이다. 이 기술은 사실 저속-역방향이 고속-순방향/역방향을 위해 사용되는 트릭-플레이 GOP들에 기초하고 따라서 독립적으로 디코딩 가능한 I-프레임들에 기초하기 때문에, 저속-역방향도 할 수 있게 한다.
이러한 I-프레임에 기초한 저속 순방향 혹은 저속-역방향은 다음의 이유로 특별한 경우들에선 부적당할 수 있다. 정규 플레이에서 I-프레임들간에 거리는 약 1/2초이며 저속 순방향/역방향에 있어선 슬로우 모션 율로 곱해진다. 따라서, 이러한 유형의 저속 순방향 혹은 저속-역방향은 정확히 슬로우 모션으로서 일반적으로 이해되는 것은 아니라 사실 연속한 화상들간에 큰 시간적 거리를 가진 슬라이드 쇼에 더 유사하다.
정지화상 모드에서, 디스플레이 화상은 정지될 수 있다. 이것은 정지화상 모드의 기간동안 빈 P-프레임들을 I-프레임에 추가함으로써 달성될 수 있다. 이것은 마지막 I-프레임에서 온 화상이 중지됨을 의미한다. 정규 플레이에서 정지화상으로 전환할 때, 이것은 CPI 파일 내 데이터에 따라 가장 가까운 I-프레임일 수 있다. 이 기술은 고속-순방향/역방향 모드들의 확장이며 특히 인터레이스 킬이 사용된다면 좋은 정지화상들이 된다. 그러나, 정규 플레이 혹은 저속 순방향/역방향에서 정지화상으로 전환할 때 위치 정확성은 항시 만족스럽지 않다.
정지화상 모드는 스텝 모드를 구현하기 위해 확장될 수 있다. 스텝 명령은 스트림을 몇몇의 다음 혹은 이전 I-프레임에 전진시킨다. 스텝 크기는 최소한 한 GOP이지만 정수개의 GOP들과 동일한 더 큰 값으로 설정될 수도 있다. I-프레임들만이 사용되기 때문에 이 경우 스텝 순방향 및 스텝 백워드 둘 다 가능하다.
저속 순방향 스트림의 구성을 위해 많은 고찰들이 적용된다. 예를 들면, 기본 스트림 레벨에서 저속 순방향 스트림의 구성은 완전 평문 데이터에만 수행될 수 있다. 결국, 저속 순방향 스트림은 정규 플레이 스트림이 원래 암호화되었을지라도 완전 평문이 될 것이다. 이러한 상황은 저작권 소유자에겐 수락되지 못할 수도 있다. 또한, 이것은 모든 정보, 즉 각각 및 모든 프레임이 저속 순방향 스트림에서 평문으로 존재하고 실제 고속-순방향/역방향 스트림들에 대한 경우인 바와 같이 단지 프레임들의 부분집합이 아니기 때문에 고속-순방향/역방향 스트림의 경우에서보다 더 좋지 않다. 그러므로, 평문 정규 플레이 스트림은 평문 저속 순방향 스트림으로부터 쉽게 재구성될 수 있다. 따라서, 정규 플레이 스트림이 암호화된다면 저속 순방향 스트림은 암호화될 것이다. DVB 암호화기가 소비자 장치에서 허용될 수 없기 때문에 이것은 원래 전송된 암호화된 스트림으로부터 암호화된 데이터 패킷들을 사용하여 수송 스트림 레벨에서 저속 순방향 스트림이 구성된다면 실현될 수 있을 뿐이다.
다음에서, 도 18 내지 도 63을 참조하여, 본 발명의 실시예들에 따라 시스템에서 데이터 스트림을 처리할 수 있는 시스템들이 기술될 것이다.
다음에 기술된 시스템들은 도 1 내지 도 17을 참조하여 기술된 시스템들 중 어느 것의 틀 내에서 그리고 그 어느 시스템과 조합하여 구현될 수 있다.
다음에서, 도 18 내지 도 22를 참조하여, 본 발명의 실시예에 따라 데이터 스트림을 처리하는 방법이 기술될 것이다.
도 18은 완전 암호화된 MPEG2 데이터 스트림(1800), 즉 보안의 이유로 데이터 소스에서 재생 장치로 보내지는 동안 완전히 엔코딩되는 데이터 스트림이다.
저속 순방향 트릭-플레이 모드, 즉, 암호화된 데이터 스트림(1800)에 관계된 미디어 콘텐트의 슬로우 모션 재생을 제공하기 위해서, 다음에 보다 상세히 기술될 다양한 조작 단계들이 수행될 수 있다.
제1 단계로서, 도 19에서 볼 수 있는 바와 같이, 부분적으로 해독되고 부분적으로 암호화된 하이브리드 데이터 스트림(1900)을 형성하기 위해, 완전 암호화된 MPEG2 데이터 스트림(1800)이 처리된다. 하이브리드 데이터 스트림(1900)은 부분적으로 해독되고 부분적으로 암호화된 하이브리드 데이터 스트림(1900)을 형성하기 위해서, 암호화된 데이터 스트림(1800)의 이웃한 암호화된 프레임들(1902) 사이에 암호화된 프레임 경계 부분들(1901)을 대응하는 해독된 프레임 경계 부분들(1901)로 선택적으로 바꿈으로써 얻어질 수 있다. 구체적으로, 해독된 프레임 경계 부분들(1901)의 부분은 화상 시작 코드 부분들(1903)에 의해 형성된다. 프레임 경계 부분(1901)은 개별적으로 해독될 수 있는 최소 부분일 수 있고, 이의 일부는 (요망되는) 화상 시작 코드 부분(1903)이다. 이 절차는 비디오 콘텐트의 후속 프레임들 사이에 화상 시작 코드들(1903)을(완전히 혹은 부분적으로) 내포하는 패킷들(1901)이 평문이 되고(즉 부분들(1901)이 해독되고), 반면 데이터 스트림(1900)의 남은(대부 분의 경우에 주요) 부분,즉 실제 오디오 혹은 비디오 콘텐트(1902)가 암호화된 상태로 남아 있도록 수행될 수 있다. 그러나, 화상 시작 코드들(1903)은 다음에 기술되는 바와 같이, 트릭-플레이 진행을 가능하게 하기 위해서, 디코딩되어 존재한다.
도 20으로부터 취해질 수 있는 바와 같이, 하이브리드 데이터 스트림(1900)은 프레임 경계 부분들(1901)/화상 시작 코드 부분들(1903)에서 하이브리드 데이터 스트림(1900)의 이웃한 프레임들(1902)을 분할함으로써 더 처리된다. 즉, 연속적이고 인접하는 하이브리드 데이터 스트림(1900)은 각각의 프레임 경계 부분(1901) 및 대응하는 프레임(1902)을 포함하는 서로 다른 부분들로 분리된다.
또한, 도 21로부터 취해질 수 있는 바와 같이, 분할 프레임들(2000)의 일부, 즉 B-프레임들은 미리결정된 저속 순방향 레이트에 따라, 다수회, 본 실시예에서는 3회 복제된다. 앵커 프레임들(I-프레임들 및 P-프레임들)은 빈 프레임들(2001)을 사용하여 복제된다. 본 경우에, 저속 순방향 레이트 율은 3이다. 이것은 암호화된 데이터 스트림(1800)의 비디오 콘텐트가 정규 플레이 동작 모드에 비해 1/3의 속도로 저속 순방향 모드에서 재현될 것임을 의미한다.
트릭-플레이 스트림을 달성하기 위해서 앵커 프레임들(빈 프레임들을 삽입하는 대신에)을 복수회 복제하는 것도 가능함을 언급해 둔다.
개개의 부분적으로 암호화되고 부분적으로 해독된 부분들(2000)의 복수회 복제에 의해서, 그리고 이어서 복제된 분할된 프레임들(2000)을 서로 연결함으로써, 상이한 다수 그룹들의 화상 시작 코드(1901) 및 프레임(1902)으로부터 오는 이웃한 부분들이 적합하게 서로간에 들어맞지 않게 되는 것을 발생할 수도 있다. 이러한 목적으로, 이들 부분들은 도 22에 도시된 바와 같이 하이브리드 데이터 스트림(2201)을 트릭-플레이에 적합하게 되도록, 요망된다면, 연결부분들(2200)을 선택적으로 수정함으로써 함께 접착된다.
다음에서, 도 23을 참조하여, 본 발명의 실시예에 따른 처리 장치(2300)가 기술될 것이다.
처리장치(2300)에 의해서, 도 18 내지 도 22를 참조하여 기술된 다양한 방법 단계들을 수행하는 것이 가능하다.
도 23은 재현될 암호화된 오디오비쥬얼 콘텐트가 저장되는 하드디스크(2301)를 도시한 것이다.
처리장치(2300)는 중앙 처리 유닛(CPU)(2302)과 같은 제어유닛에 의해 제어될 수 있고 이 중앙 처리 유닛은 사용자 인터페이스(2303)에 의해 사용자에 의해 제어될 수 있다. 사용자 인터페이스(2303)에 의해서, 사용자는 처리장치(2300)의 동작을 제어할 수도 있는데, 예를 들면, 정규 플레이 모드 혹은 저속 순방향 모드와 같은 트릭-플레이 조작 모드를 개시할 수 있다.
대응하는 제어신호가 중앙 처리 유닛(2303)에서 하드디스크(2301)로 보내질 때, 암호화된 형태로 오디오비쥬얼 콘텐트가 하드디스크(2301)에서 해독기(2304)로 보내진다. 해독기(2304)는 부분적으로 해독된 데이터 스트림(1900)을 발생하기 위해서, 암호화된 데이터 스트림(1800)의 이웃한 프레임들(1902)간에 암호화된 프레임 경계 부분들을 해독된 프레임 경계 부분들(1901)로 선택적으로 대체시키도록 구성된다.
부분적으로 해독된 데이터 스트림(1900)은 프레임 경계 부분들(1901)에서, 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을 분할하기 위해 분할유닛(2305)에 공급된다. 한 시퀀스의 분리된 하이브리드 스트림 부분들(2000)은 마이크로프로세서(2302)에 의해서 및/또는 사용자 인터페이스(2303)를 조작하는 사용자에 의해서 정의 혹은 결정될 수 있는 미리결정된 복제 레이트에 따라 분할 프레임들(2000)을 다수회(예로서의 도 18 내지 도 22에서 3회) 복제하기 위해 복제 유닛(2306)에 공급된다.
그러면 도 21에 도시된 개개의 부분들은 트릭-플레이가 가능한 스트림(2201)을 생성하기 위해서 복제 유닛(2306)으로부터, 도 21의 복제된 분할 프레임들을 연결하는 접착 유닛 혹은 연결 유닛(2307)에 공급될 수 있다.
이 스트림은 스피커들을 구비한 모니터같은 재현 유닛(2308)에 공급될 수 있는데, 이 콘텐트의 재현은 마이크로프로세서(2302)의 제어 하에 및/또는 사용자 인터페이스(2303)를 통해 사용자의 제어 하에 가능하다.
재생을 위해서, 암호화된 데이터 스트림(2201)을 해독하기 위해 재현 유닛(2308) 내에 또 하나의 해독 유닛(도시되지 않음)이 예상되는 것이 가능하다.
해독 유닛(2304)은 암호화된 데이터 스트림(1800)의 이웃한 프레임들(1902)간에 암호화된 프레임 경계 부분들만을, 프레임 경계 부분들(1901)을 내포하는 해독된 패킷들로 선택적으로 대체하며, 암호화된 그 외 모든 다른 부분들(1902)을 유지한다. 이것은 트릭-플레이 스트림(2201)을 생성하기 위해 평문으로 있어야 하는 단지 선택된 부분들만이 해독되기 때문에, 고 수준의 보안을 보증한다.
후술하는 바와 같이, 분할유닛(2305)은 2개의 연속한 프레임들의 데이터를 포함할 수 있는 평문 패킷을, 각각이 프레임들 중 하나로부터의 데이터만을 내포하고 패킷들 각각을 스터핑하는 2개의 패킷들로 전환시킬 수 있다. 접착 유닛(2307)은 프레임 경계 부분(1901)이 두 개의 프레임들(1902)에 걸쳐 놓인 위치들(2200)을 확인한 것에 기초하여, 그리고 이 확인된 위치들을 정정한 것에 기초하여 도 21의 복제된 분할 프레임들을 연결할 수 있다.
이러한 정정은 프레임 경계 부분들(1901)의 크기의 부분들의 판정을 포함할 수 있다. 크기가 너무 크다면, 단축될 수도 있고, 크기가 작다면, 길이가 증가될 수도 있다.
프레임들(1902)은 내부호화된 프레임들(I-프레임들), 순방향 예측 프레임들(P-프레임들) 혹은 양방향 예측 프레임들(B-프레임들)일 수 있다. 처리된 콘텐트(1800)는 비디오 데이터 및/또는 오디오 데이터의 데이터 스트림일 수 있다. 재현 유닛(2308)은 연결 유닛(2307)에 연결된 데이터 스트림을 재현할 수 있다. 암호화된 데이터 스트림(1800)은 암호화된 MPEG2 데이터 스트림일 수 있다.
다음에서, 도 24를 참조하면, 본 발명의 또 다른 실시예에 따라 데이터 처리 장치(2400)가 기술될 것이다.
데이터 처리 장치(2400)는 도 24의 경우에 어떠한 해독 유닛(2304)도 예견되지 않는 점에서 데이터 처리 장치(2300)와는 구별된다. 이 경우, 하이브리드 데이터 스트림(1900)은 하드디스크(2301)로부터 직접 제공된다. 이것은 해독 유닛(2304)이 하드디스크(2301) 내에 일체화되든지 아니면 데이터가 도 19에 도시된 방식으로 하드디스크(2301)에 이미 저장됨을 의미한다.
다음에서, 본 발명의 실시예들에 따라 저속 순방향 트릭-플레이 재현에 관한 더 상세한 것이 설명될 것이다.
다음에, 스트림을 개별적 프레임들로 분할하는 것이 설명될 것이다.
수송 레벨에서 저속 순방향 스트림을 구성할 수 있기 위해서, 각각의 개개의 프레임이 한 시리즈의 수송 스트림 패킷들로서 사용될 수 있는 것이 잇점이 있다. 프레임당 한 PES 패킷의 경우에 이것은 용이하다. PES 패킷은 PES 및 수송 스트림 패킷들이 정렬되어 있기 때문에 한 시리즈의 수송 스트림 패킷들 내 내포된다. GOP당 한 PES 패킷의 경우에 이것은 I-프레임의 시작에 대한 경우일 뿐이다. 그 외 모든 다른 프레임 경계들은 대부분 패킷 내 어떤 곳에 위치된다. 이 패킷은 2개의 프레임들로부터의 정보를 내포한다. 따라서, 먼저 이 패킷은 2개의 패킷들로 분할될 수 있고, 첫 번째 것은 제1 프레임으로부터의 데이터를 내포하고 두 번째 것은 다음 프레임으로부터의 데이터를 내포한다. 분할로부터 오는 2개의 패킷들 각각엔 어댑테이션 필드(AF)가 스터핑될 수 있다.
이 상황이 도 25에 나타나 있다.
도 25는 프레임 경계에서 패킷의 분할을 도시한 것이다. 특히, 도 25는 각각이 헤더(2501) 및 프레임 부분(2502)을 포함하는 복수의 TS 패킷들(2500)을 도시한 것이다. 도 25에 도시된 데이터 스트림의 중앙 부분으로부터 취해질 수 있는 바와 같이, 헤더(2501) 및 2개의 후속되는 프레임들(2502)을 포함하는 패킷은 2개의 개별적인 부분으로 분할되고 그 각각은 별도의 헤더(2501)와 이에 이어진 어댑테이션 필드(2503)와 이에 이어진 대응하는 프레임(2502)을 갖는다.
패킷들의 분할은 평문 스트림에 있어선 어렵지 않다. 제1 선택은 도 26에 도시된 바와 같이 정규 플레이를 완전히 해독하는 것이다. 도 26은 정규 플레이 데이터의 해독 후에 저속 순방향 구성을 도시한 것이다. 하드디스크(2601)로부터 암호화된 정규 플레이 데이터(2600)는 평문 스트림(2603)을 생성하는 해독기(2602)에 공급된다. 평문 스트림(2603)은 도 25에 도시된 방식으로 서로 다른 프레임들을 분할하기 위한 프레임 분할 유닛(2604)에 공급된다. 이어서, 이 데이터는 저속 순방향 스트림을 구성하는 저속 순방향 구성유닛(2605)에 공급되고, 이어서 셋탑박스(2606)에 공급된다.
저장된 완전히 암호화된 스트림(2600) 혹은 저장된 하이브리드 스트림의 해독 및 저속 순방향 모드는 해독기(2602)에 의해 스트림에서 어떠한 스트림 데이터도 스킵되거나 이중으로 되지 않기 때문에 어렵지 않다. 저장된 스트림(2600)(완전히 암호화된 혹은 하이브리드)은 단순히 해독기(2602)를 통해 정규 레이트보다 느리게 공급되며 이것은 내장된 ECM들(자격 제어 메시지들)에 아무 문제들이 없음을 의미한다. 해독기 유닛(2602)로부터 오는 평문 스트림(2603)은 패킷들을 분할하거나 혹은 사실 프레임 분할 유닛(2604)에서 임의의 필요한 스트림 조작을 수행하기 위해 사용될 수 있다. 결과적인 저속 순방향 스트림은 이 경우 평문 스트림이다.
암호화된 정규 플레이 스트림으로부터 암호화된 저속 순방향 스트림의 구성은 소비자 장치들에서 DVB(디지털 비디오 방송) 암호화기들의 사용이 특별한 경우들에선 허용되지 않을 수 있기 때문에 수송 레벨에서 수행된다. 이것을 위해서, 모 든 프레임 경계들에서 단지 몇 개의 평문 패킷들(2700, 2702)을 가진 하이브리드 스트림(도 27 참조)이 필요하다. 또한 도 27은 I-프레임들(2703), B-프레임들(2704) 혹은 P-프레임들(2705)에 속하는 암호화된 패킷들(2701)을 도시한 것이다.
이하, 저장된 스트림이 완전히 암호화된다면 저장 장치의 재생측에서 이러한 스트림이 어떻게 생성될 수 있을 것인가가 기술될 것이다. 이 경우, 도 26에 해독기 유닛(2602)은 필요한 패킷들만을 해독하는 선택적 유형일 수 있다. 그러나, 바람직하게 스트림은 도 28에 나타낸 바와 같이 하이브리드 스트림으로서 이미 저장된다.
도 28은 저장된 하이브리드 스트림(2800)에 대한 저속 순방향 구성을 도시한 것이다. 도 28에 도시된 어레이에서, 하드디스크(2601)와 프레임 분할유닛(2604)간에 어떠한 해독 유닛(2602)도 예견되지 않는다. 그러나, 해독 유닛(2801)은 셋탑박스(2606)에서 예견될 수 있다.
하이브리드 스트림에서 평문 패킷들(2700, 2702)은 이제, 두 개의 프레임들로부터의 데이터를 내포하는 패킷들의 분할을 할 수 있게 할 것이다. 이것은 후술하는 기준에 의해 보장될 수 있다. 그러나, 시퀀스 헤더 코드 혹은 화상 시작 코드의 어떤 부분은 여전히 암호화된 패킷 내 위치하여 있을 수 있다. 이 경우, 이상적인 분할은 쉽게 가능하지 않다. 사실, 분할은 암호화된 패킷과 평문 패킷간에 행해질 수 있다. 이들 문제들에 대한 해결책들이 이하 보다 상세히 기술될 것이다. 이 상황에서 단지 빈 P-프레임들만이 I-프레임에 연결되고 그 역도 그러하다. 프레임 기반의 저속 순방향에 있어서, B-프레임들을 B-프레임들에의 연결하는 다른 유형들의 연결이 고찰될 수도 있다. 이것은 도 29를 참조하여 명료하게 되는 바와 같이 이들 프레임 경계들에서 어떤 종류의 접착 알고리즘으로 귀결될 수 있다.
도 29는 이전 프레임(2900), 현 프레임(2912) 및 다음 프레임(2901)을 나타낸 데이터 스트림을 도시한 것이다. 이전 프레임(2900)의 끝에, 3바이트의 화상 시작 코드(2902)가 제공된다. 또한, 현 프레임(2912)의 시작부분에 1 바이트의 화상 시작 코드(2903)가 예견된다. 이제 다음 프레임(2901)로 가면, 전의 패킷의 프레임 끝은 1바이트의 화상 시작 코드(2904)를 포함한다. 다음 프레임(2901)의 시작부분에, 3바이트의 화상 시작 코드(2905)가 제공된다. 도 29는 연결지점에 불완전한 화상 시작 코드가 있을 수 있음을 보여준다. 이것은 연결 영역(2906)에서 접착을 필요하게 할 수 있다. 이에 따라, 접착은 B-프레임(2907)과 B-프레임(2908)의 복제 사이에서 수행되어야 한다.
도 29는 특히, 패킷 헤더(2909), 평문 데이터(2910) 및 암호화된 데이터(2911)를 도시한 것이다. 도 29의 예에서, B-프레임의 시작과 끝에 1바이트의 화상 시작 코드만이 있다. 결국, 연결지점에서 2바이트들이 빠져 있다. 이하 보다 상세히 기술될 접착 알고리즘은 이러한 문제를 치유할 수 있다. 이 접착에 있어서, 화상 시작 코드가 어떻게 분할되는지를 알아야 한다. 이 정보는 이하 보다 상세히 기술된 방법으로 얻어질 수 있다.
다음에서, 프레임들의 복제가 보다 상세히 기술될 것이다.
저속-순방향 모드에서, 디코더는 저속 순방향 율에 따라 화상의 디스플레이 을 복제할 것이 어떻게해서든 강행되어야 한다. 빈 P-프레임들은 I-프레임으로부터 오는 화상의 복제를 강행하는데 사용될 수 있다. 또한, 이 기술은 P-프레임들로부터 오는 화상들에 대해 적용될 수 있다. 그러나, 이 기술은 빈 P-프레임들이 항시 I-프레임 혹은 P-프레임인 앵커 프레임을 가리키고 있기 때문에 B-프레임들에 쉽게 적용될 수 없다. 이것은 사실 임의의 유형의 빈 프레임에 대한 경우이다. 따라서, B-프레임으로부터 오는 화상의 복제는 다른 방법으로 실현되어야 한다. 가능한 방법은 B-프레임 데이터 자체를 복제하는 것이다. 복제된 B-프레임들은 원 B-프레임과 동일한 앵커 프레임들을 가리키기 때문에 결과적인 화상들은 동일할 것이다. B-프레임에 대한 데이터량은 통상적으로 빈 P-프레임에 대한 데이터량보다 훨씬 많으나 일반적으로 I-프레임에 대한 것보다는 현저하게 적다. 어째든, 전송은 슬로우 모션 율로 곱해지므로 적어도 평균하여 증가하는 비트 레이트일 필요는 없다.
I-프레임 혹은 P-프레임으로부터 오는 화상들의 복제를 강행하는데 사용되는 빈 프레임들은 인터레이스 킬 유형일 수 있고 따라서 이들 화상들에 대한 인터레이스 아티팩트들을 감소시킬 수 있다. 그러나 이러한 감소는 B-프레임들로부터 오는 화상들에 대해서는 복제가 빈 프레임에 의해 강행되지 않고 B-프레임 데이터 자체의 복제에 의해 강행되기 때문에 쉽게 가능하지 않다. 따라서, B-프레임들은 원 인터레이스 효과들을 가질 것이다. I-프레임들 및 P-프레임들에 대해 인터레이스 킬이 사용될 것이라면 이것은 인터레이스 효과들을 가진 화상과 갖지 않는 화상이, 디스플레이되는 화상들의 스트림에 순차적으로 나타나기 때문에 매우 어색하게 보일 수도 있을 것이다. 현재, 저속 순방향 스트림을 구성하기 위해 인터레이스 킬 없이 빈 프레임들만을 사용하는 것이 더 나을 수도 있을 것으로 여겨진다.
I- 및 P-프레임들의 복제는 원 I-프레임 혹은 P-프레임 다음에 빈 P-프레임들에 대한 전송 스트림에서 삽입에 의해 강행될 수 있다. 이러한 방법은 빈 P-프레임들이 후속되는 I-프레임들을 포함하는 고속 순방향/역방향 스트림에 대해 사용될 수 있다. 그러나, 이 방법은 B-프레임들을 가진 저장된 전송 스트림으로부터 구성된 저속 순방향 스트림에 대한 경우에서와 같이, B-프레임들도 포함하는 스트림에 대해선 절대적으로 맞지 않을 수 있다. 전송 데이터로부터 디스플레이 스트림으로 재순서화에 기인하여, I-프레임들 및 P-프레임들은 틀린 위치에서 복제될 것이며 이에 따라 프레임들의 정상적인 디스플레이 순서를 교란시킬 것이다. 이것이 도 30 및 도 31에 도시되었다.
도 30은 정규 플레이에서 재순서화의 영향을 도시한 것이다. 도 30은 전송 순서(3000) 및 디스플레이 순서(3001)를 도시한 것이다. 특히, 도 30은 정규 플레이에서 재순서화의 영향을 도시한 것이다. 위쪽 라인은 I-프레임들(2703), P-프레임들(2705) 및 B-프레임들(2704)을 포함하는 12 프레임들의 GOP 크기를 가진 정규 플레이 천이 스트림(3000)을 도시한 것이다. 다음 전송 GOP의 제1의 4개의 프레임들이 명확성을 위해 도시되었다. 도 30의 아래쪽 라인은 디스플레이 순서로 재순서화한 후에 스트림(3001)을 도시한 것이다. 인덱스는 디스플레이 프레임 순서를 나타낸다. MPEG2 표준 ISO/IEC 13818-2:1995(E)(특히 24쪽 및 25쪽 참조)에 따라, 재순서화는 다음과 같이 수행될 수 있다.
- B-프레임들은 이들의 원 위치를 유지한다;
- 앵커 프레임들(즉 I-프레임들 및 P-프레임들)은 다음 앵커 프레임의 위치로 시프트된다.
도 31은 저속 순방향 모드에서 재순서화의 영향을 도시한 것이다. 특히, 도 31은 전송 순서(3100), 재순서화(3101) 후에 순서 및 디스플레이되는 화상들(3102)의 순서를 도시한 것이다. 정규 플레이 스트림으로부터 구성된 저속 순방향 스트림을 보다 상세히 살펴보면, 3개의 슬로우 모션 율을 취했을 때 도 31의 맨 위에 라인은 이 경우에 있어서 슬로우 모션 스트림의 제1 부분의 전송 순서(3100)를 나타낸다. 빈 P-프레임들은 I-프레임들 및 P-프레임들 다음에 삽입될 수 있고, B-프레임들이 복제될 수 있다. 도 31의 중간 라인은 재순서화의 영향을 나타낸다. 도 31의 맨 밑에 라인은 이 경우 빈 P-프레임들에 의해 I-프레임들 및 P-프레임들이 어떻게 복제되는가를 나타낸다. 빈 P-프레임은 자체가 빈 P-프레임일 수도 있을 이전 앵커 프레임으로부터 오는 화상의 복제인 디스플레이 화상이 될 수 있다. 인덱스에 의해 나타내어진 정규 디스플레이 순서(3102)는 프레임(14)의 디스플레이가 2부분들로 분할되기 때문에 교란됨을 도 31에서 보아 알 수 있다. 마지막 시간 프레임(14)만이 정확한 위치에 디스플레이된다. 이것은 B-프레임들이 잘못 디코딩될 수 있음을 의미한다.
다음에서, 이러한 결함들을 어떻게 정정할 것인가에 대한 몇가지 선택들이 기술될 것이다. 한 가능성이 도 32에 도시되었다. 도 32는 앵커 프레임들 전의 빈 P-프레임들의 삽입을 도시한 것이다. 도 32에서 3개의 행들은 도 31의 3개의 라인들과 유사하다. 도 32에서, 빈 P-프레임들은 맨 위에 라인(3100)에 나타낸 바와 같 이 저장 장치로부터 추출된 전송된 스트림에서 앵커 프레임들 전에 삽입된다. 재순서화된 스트림(3101)에서, 빈 P-프레임들은 앵커 프레임들 다음에 위치된다. 이것은 도 32의 디스플레이 화상들(3102)로부터 명백한 바와 같이 앵커 프레임들의 정확한 복제를 위해 이들이 그래야 하는 경우이다.
그러나, 빈 P-프레임들을 피하기 위해서 이것이 왜 적합할 수 있는지에 대한 논의가 있다. 하나는 GOP 내 오류들의 전파에 관계된다. P-프레임들은 이전 앵커 프레임에 의존하며 B-프레임들은 주위 앵커 프레임들에 의존한다. 셋탑박스로 전송동안 데이터 오류는 부호화 오류들 및 따라서 화상에 교란들을 초래한다. 이 오류가 앵커 프레임이라면 이것은 후속되는 P-프레임들이 이 앵커 프레임에 의존하기 때문에 GOP의 끝까지 전파한다. 또한, B-프레임들은 이들이 디코딩을 위해서, 교란된 주위 앵커 프레임들로부터의 화상들을 사용하기 때문에 영향을 받는다. 이것은 GOP의 끝을 향하여 화상 교란들이 점차적으로 증가하는 결과를 가질 수 있다. 이것은 GOP 크기가 매우 크고 따라서 시간적으로 매우 길 수 있는 저속 순방향에 있어선 특히 중요할 수 있다. 한편, B-프레임에 데이터 오류는 이외 어떤 다른 프레임들도 그에 의존하지 않기 때문에 매우 제한된 영향만을 미친다. 따라서, 화상 교란들은 이 B-프레임 및 이의 복제들로 제약된다. 디지털 인터페이스에서 데이터 오류들이 일어나지 않아야 한다고 논할 수도 있을 것이지만 빈 P-프레임들의 사용을 방지하는데 있어 제2의 잇점이 있을 수 있다. 이들이 인터레이스 킬 유형이라면 이들은 본래 디코딩된 화상에서 변하여 후속 프레임들에 대해 디코딩 오류들을 초래한다. 따라서 인터레이스 킬은 가능하지 않을 수 있다.
빈 프레임들의 구성에 대해서, 몇가지 유형들의 빈 B-프레임들이 구성될 수 있다. 이들은 어떠한 추가의 오류 전파도 야기되지 않으며 인터레이스 킬이 사용될 수 있다는 잇점을 가질 수 있다.
빈 B-프레임들의 가능한 유형들은 순방향 예측의 빈 B-프레임들(Bf 프레임들이라 함) 및 역방향 예측의 빈 B-프레임들(Bb 프레임들이라 함)이다.
B-프레임은 통상적으로 양방향으로 예측이지만, 단일 방향 예측 B-프레임들도 존재할 수 있다. 후자의 경우에 이들은 순방향이거나 역방향 예측일 수 있다. 순방향 예측은 엔코딩 동안 다음 B-프레임들을 예측하기 위해 앵커 프레임이 사용됨을 의미한다. 따라서, 순방향 예측 B-프레임으로부터 오는 화상은 이전 앵커 프레임으로부터 디코딩할 동안 재구성된다. 이것은 Bf-프레임이 이전 앵커 프레임의 복제를 강행함을 의미한다. 그러므로, 이것은 빈 P- 혹은 Pe-프레임과 동일한 효과를 갖는다. Bb-프레임은 반대되는 효과를 갖는다. 이것은 앵커 프레임에 이어 이 프레임의 디스플레이를 강행한다. 두 유형들의 빈 B-프레임들에 대해서, 인터레이스 킬 버전도 가능하다.
다음에서, 저속 순방향 스트림의 구성을 위해 이러한 빈 B-프레임들을 사용하는 방법이 기술될 것이다.
Bb-프레임들에 기초한 첫 번째 가능성이 도 33에 도시되었다.
Bb-프레임들은 앵커 프레임들 전에 삽입되고 재순서화 동안에 이들의 위치를 유지한다. 앵커 프레임들은 다음 앵커 프레임의 위치로 시프트된다. Bb 프레임은 레코딩된 스트림에서 그에 이어 앵커 프레임의 디스플레이를 강행한다.
또 다른 선택은 도 34에 도시된 바와 같이 Bf-프레임들의 사용이다.
Bf-프레임들은 전송 스트림에서 앵커 프레임들 다음에 삽입된다. 재순서화된 스트림에서 앵커 프레임들의 복제된 디스플레이는 이들 다음에 오는 Bf-프레임들에 의해 강행된다.
Bf-프레임들의 사용은 고속-순방향 및 고속-역방향 스트림들의 구성을 위한 빈 P-프레임들의 사용과 유사하다. 사실, Bf-프레임들의 사용도 가능하며 이 경우 그에 따라 트릭-플레이 생성이 더욱 일반화된다. 그러나, Bf-프레임들이 고속-순방향 및 고속-역방향을 위해 사용될 때, 재순서화의 영향이 고려되어야 한다. 이것은 PTS/DTS 및 시간 기준과 같은 고속-순방향/역방향에서 어떤 파라미터들이 적합하게 선택되어야 함을 의미한다.
다음에, 개개의 프레임들의 접착이 기술될 것이다.
특히, 불완전한 화상 시작 코드들의 경우에 프레임들의 접착이 논의될 것이다. 저속 순방향 스트림에서 연결지점에서 요구되는 접착 활동들을 결정하기 위해서, 먼저 원 스트림이 개개의 프레임들로 명백히 어디에서 분할되는지가 분명해야 한다. 다음에서, GOP당 혹은 프레임당 한 PES 패킷의 실제 상황이 고찰될 것이다.
프레임당 한 PES 패킷의 경우에, 원 스트림은 도 35에 나타낸 바와 같이, PLUSI에 의해 패킷과 선행 패킷 간에 분할될 수 있다.
도 35에서, 프레임당 한 PES 패킷에 대한 스트림의 분할이 도시되었다. 도 35에 도시된 데이터 스트림들은 평문 패킷 헤더들(3500), 어댑테이션 필드들(3501), 평문 데이터(3502), 암호화된 데이터(3503) 및 평문 PES 헤더(3504)를 포함한다. 또한, PLUSI 프레즌트(present)는 참조부호 3505로 표기되었고 PES 헤더는 참조부호 3506으로 표기되었다.
개개의 프레임들은 다수의 완전한 원래의 패킷들을 포함한다. 따라서 어떠한 패킷 분할도 필요하지 않다. 또한, 이 프레임 분할은 완전히 암호화된 스트림에 수행될 수도 있을 것이지만, 저속 순방향 스트림의 구성을 위해선 어떤 평문 데이터에의 액세스가 여전히 필요하다. PLUSI로 패킷의 시작에서 분할은 두 패킷들에 걸쳐져 있는 어떠한 화상 시작 코드들도 없음을 의미한다. 각각의 개개의 프레임은 그 자신의 정확하고 완전한 화상 시작 코드를 내포한다. 그러므로, 이 경우엔 어떠한 접착 활동도 필요하지 않다.
그러나, GOP 당 한 PES 패킷의 경우에, 상황은 다르다. 프레임들간에 분할은 PES 헤더가 선행하여 있지 않는한, 새로운 프레임의 화상 시작 코드에서 행해진다.
다음 알고리즘은 분할 지점을 결정하는데 사용될 수 있다.
1. 원 스트림은 PLUSI 비트가 셋 된 패킷, 화상 시작 코드 및 화상 부호화 확장부에 대해 동시에 탐색된다.
2. PLUSI 비트가 셋 된 패킷(도 36 참조, 화상 시작 코드(3600) 및 화상 코드 확장부(3601)을 포함한다)에 먼저 접하게 되면, 분할은 이 패킷의 시작에서 행해진다. 이어서, 화상 부호화 확장부에 대해 스트림을 탐색한다. 이것이 발견된 후에, 1.에서 기술된 바와 같이 탐색이 계속된다.
3. 화상 시작 코드에 먼저 접하게 되면, 분할은 화상 시작 코드의 시작에서 행해진다. 대부분의 경우에 이것은 화상 시작 코드를 내포하는 패킷은 2개의 패킷 들 중 제1 패킷이 이전 프레임에 할당되고 제2 패킷은 후속 프레임에 할당되는 이들 2개의 패킷들로 분할되어야 함을 의미한다(화상 시작 코드(3600)의 시작에서 스트림의 분할을 도시한 도 37을 참조한다. 여기서 어댑테이션 필드의 삽입 장소들은 참조부호 3700으로 표기되었다). 이들 두 패킷들에는 어댑테이션 필드(3700)로 스터핑된다. 이어서 제2 패킷의 페이로드는 화상 시작 코드(3600)로 시작한다. 원 패킷의 레코딩 시간 스탬프는 분할에 기인한 두 패킷들 각각에 카피된다. 분할 혹은 원 패킷으로부터의 2개의 패킷들이 2개의 프레임들의 연결지점에 사용될 것인지 여부는 이하 설명되는 바와 같이 특정 상황에 따른다. 이어서, 화상 코딩 확장부(3601)에 대해 스트림이 탐색된다. 이것을 발견한 후에, 탐색은 1.에 기술된 바와 같이 계속된다.
4. 화상 부호화 확장부에 먼저 접하게 되면, 화상 시작 코드는 이것이 부분적으로 암호화되어 있기 때문에 검출할 수 없다. 이것은 현 평문 영역이 화상 시작 코드의 몇 개의 바이트들로 시작함을 의미한다. 이 경우 분할은 현 평문 영역의 제1 평문 패킷의 시작에서 행해진다(화상 시작 코드(3600) 내에 스트림의 분할을 도시하고, 화상 코드 확장부(3601)뿐만 아니라 화상 시작 코드(3800)의 바이트들을 도시한 도 38을 참조). 1.에 기술된 탐색은 화상 부호화 확장부(3601)를 발견한 후에 계속된다.
기술된 알고리즘은 프레임 당 한 PES 패킷을 가진 스트림에 대해 정확한 분할 지점들을 갖게 할 것이다. 또한, 알고리즘은 위에 언급된 하이브리드 스트림들뿐만 아니라 평문 스트림들에의 적용을 위해 설계된다.
접착은 주어진 알고리즘의 4.로부터만 비롯될 수 있는 불완전한 화상 시작 코드들의 경우에만 필요하다. 따라서, 4.만이 비이상적 분할 지점을 가져온다. 화상 시작 코드는 항시 발견되기 때문에 평문 스트림은 이상적인 분할 지점들만을 내포한다. 따라서 이 경우엔 어떠한 접착도 필요하지 않다. 그러나 하이브리드 스트림들은 비이상적 분할 지점들을 내포할 것이다. 아래 기술된 방법은 비이상적 분할 지점들의 어느 일 측에 얼마나 많은 바이트들의 화상 시작 코드가 있는지를 판정하는데 사용될 수 있다. 비이상적 분할 지점의 영향들이 이하 상세히 설명될 것이다.
다음에, 임의의 유형의 빈 P-프레임들이 이러한 비이상적 분할 지점에 삽입되는 상황이 고찰될 것이다. 제1 빈 프레임을 취급하는 방법이 이하 설명될 것이다. 분할지점 다음에 화상 시작 코드의 부분과 동일한 다수의 바이트들은 제1 빈 프레임의 화상 시작 코드로부터 제거된다. 중간 빈 프레임들은 변경되지 않는다. 마지막 빈 프레임은 후속 프레임의 화상 시작 코드의 빠진 부분에 대해 정정되어야 한다. 따라서, 이 빠진 부분은 마지막 빈 프레임의 끝에 추가될 수 있다. 이상적인 분할 지점들에 삽입되는 빈 프레임들에 어떠한 변경들도 필요하지 않다.
다음에서, B-프레임들의 복제가 고찰될 것이다. B-프레임이 양측에 이상적인 분할 지점들을 갖는 경우에, 복제를 위해 어떠한 접착 action도 필요하지 않다. 그러나, 비이상적 분할 지점이 프레임의 어느 일측에 있다면, 접착 action들이 필요할 수 있고 혹은 잇점이 있을 수 있다. 원 프레임 및 이의 복제는 한 시리즈의 이상적 B-프레임들을 형성한다. 여기에서는 프레임이 정규 플레이 스트림에서와 동일한 프레임에 연결되거나 빈 프레임에 연결되기 때문에 상기 시리즈의 시작 혹은 끝 에서 어떠한 접착 action도 필요하지 않다. 제1 경우에 데이터의 정규 순서가 이 지점에서 복구되기 때문에 어떠한 불연속도 없다. 제2 경우에 대한 해결책이 위에 주어졌다. 따라서 B-프레임의 끝이 동일 B-프레임의 시작에 연결되는 중간 연결지점들이 고찰되어야 한다. 여기 기술된 예는 도 29를 참조하여 위에 주어진 예를 참조하며 명확성을 위해 도 39에 보다 상세히 복제된다.
도 39는 연결지점에서 불완전한 화상 시작 코드를 도시한 것이다.
정확한 접착을 위해서 B-프레임의 끝 및 시작에서 화상 시작 코드(MPEG2 내에 시작 코드는 길이가 4바이트일 수 있다)의 바이트 수를 아는 것이 필요하다. 끝에 바이트 수를 n으로 표기하고 시작에서 바이트 수를 m으로 표기하면, 이상적인 분할 지점에 있어서 n=0 및 m=4이다. 비이상적 분할 지점의 경우에, 한 프레임에 대한 수 n 및 후속 프레임에 대한 수 m은 이하 예시되는 방법으로 결정될 수 있다.
분할이 화상 시작 코드의 시작에서 행해져 n=0이 되었을 수도 있기 때문에 n은 결코 4와 같을 수 없음이 명백하다. 한편, m은 이 경우 화상 시작 코드가 완전히 이전 프레임 내에 있고 분할이 이상적 위치에서 행해져 이에 따라 m=4이 되었을 수도 있기 때문에 m은 결코 0이 될 수 없다. 따라서 0<n< 3 및 1<m<4은 일반적인 상황이다.
하나의 동일 프레임 N에 대해 수 n 및 m을 얻기 위해서, 이들 수들은 프레임 주위의 두 개의 분할 지점들의 정보로부터 추출되어야 한다. 따라서, n 및 m은 이제 복제되어야 하는 B-프레임의 끝 및 시작에서 화상 시작 코드의 바이트 수를 나타낸다. 결국, 이들은 중간 연결지점 전 후에 화상 시작 코드의 바이트 수를 나타 낸다.
다음에, n+m=4인 것으로 가정될 것이다. 이것은 B-프레임 주변의 두 분할 지점들이 동일할 때의 경우이다. 그러나, 이 경우 어떠한 접착 action도 필요하지 않음이 이미 알려져 있다. 그러나, 이것은 두 분할지점이 동일하지 않을 때의 경우일 수도 있다. 이것은 도 40에 도시된 상황이다.
그러므로 도 40은 n+m=4의 예를 도시한 것이다.
프레임 N의 마지막 패킷은 참조부호 4000으로 표기되었고, 도 40은 또한 참조부호 4001로 표기된 프레임 N의 제1 패킷을 도시한다. 경계(4002)에서 어떠한 접착 action도 필요하지 않다. 화상 시작 코드(n=3)의 바이트들은 참조부호 4003으로 표기되었고, 한 바이트의 화상 시작 코드(m=1)는 참조번호 4004로 표시된다.
n+m=4라는 사실은 정확한 량의 화상 시작 코드 바이트들이 연결지점에 있고 어떠한 접착 action도 필요하지 않음을 의미한다.
그러나, 도 41은 n+m>4의 상황을 나타낸다.
이것은 연결지점에 1, 2, 혹은 3바이트로 너무 많이 있음을 의미한다. 이 경우, n+m-4와 동일한 다수의 바이트들이 제2 프레임의 시작에서 제거된다. 이것은 이들 평문 바이트들을 스터핑 바이트들을 내포하는 어댑테이션 필드(AF)로 대체함으로써 달성된다. 어댑테이션 필드가 이미 있다면, 이의 길이는 m+n-4로 증가되어야 하며, 폐기될 데이터는 표준에 따라 16진수 FF값을 갖는 스터핑 바이트들로 대체된다.
n+m>4 및 n<3인 특별한 경우들에 있어서, 이것은 또한 접착을 하지 않는 것 이 가능하다. 효과적으로, 기본 스트림 스터핑을 얻는다.
접착 action이 필요한 지점은 참조부호 4100으로 표기된다. 예에서, 화상 시작 코드(n=2)의 바이트들은 참조부호 4101로 표기되었다. 화상 시작 코드(m=3)의 바이트들은 참조부호 4102로 표기되었다. 또한, 화상 시작 코드(n=2)의 바이트들은 참조부호 4103로 표기되었고 화상 시작 코드(m=2)의 바이트들은 참조부호 4104로 표기되었다. 어댑테이션 필드들(n+m-4)을 사용하여 대체된 바이트들의 위치는 참조부호 4105로 표기된다.
도 42를 참조하면, n+m<4인 것으로 가정한다.
이것은 연결지점에서 화상 시작 코드로부터 1, 2 혹은 3 바이트들이 빠진 것을 의미한다. 이 경우 어떤 바이트 혹은 바이트들이 빠졌는지를 알아야 한다. n 및 m 둘 다를 알기 때문에, 빠진 바이트들이 유일무이하게 확인될 수 있다. 빠진 바이트들은 어댑테이션 필드로 더 스터핑 되는 새로운 패킷 내에 놓여진다. 이 접착 패킷은 2개의 프레임들 사이에 놓여진다. 이 접착 패킷은 참조부호 4200으로 표기되었다. 참조부호 4201은 화상 시작 코드(n=2)의 바이트들을 나타내고, 참조부호 4202는 화상 시작 코드(m=1)의 바이트들을 나타낸다. 참조부호 4204는 삽입된 바이트들(4-n-m)을 나타낸다. 참조부호 4205는 화상 시작 코드(m=1)의 바이트들을 나타낸다.
다음에서, 시간 스탬프들을 사용하여 프레임들 및 패킷들의 위치설정이 기술될 것이다.
이 설명은 각 패킷에 프리-펜드 된 레코딩 시간 스탬프들을 사용하여 저속 순방향의 시간축에 프레임들 및 패킷들의 배치를 다룬다. 이것은 원 정규 플레이 프레임들의 배치부터 시작한다. 이어서 B-프레임들의 복제 및 압축이 기술된다. 이어서, 빈 프레임들의 배치가 설명된다. 마지막으로, PCR들의 어떤 문제가 논의된다.
다음에, 원 정규 플레이 프레임들의 위치설정이 설명될 것이다.
디코딩 문제들은 필요한 데이터가 수신되기 전에 디코딩이 시작한다면 일어날 수 있다. 이러한 가능한 디코딩 문제는 이 프레임의 DTS까지 프레임 데이터의 끝의 거리가 저속 순방향 및 정규 플레이 스트림에 대해 동일하다면 저속 순방향 스트림에 대해 회피될 수 있다. 이것은 대응하는 DTS의 프레임 데이터의 시작에서 거리를 정규 플레이 스트림과 동일하게 유지하고 원 정규 플레이 스트림으로부터와 동일한 패킷 거리에 이 프레임의 패킷들을 배치함으로서 달성될 수 있다.
이 상황은 DTS까지 수정되지 않은 거리를 도시한 도 43에 도시되었다. DTS까지의 거리는 도 43에 도시된 것보다 훨씬 더 클 수 있다.
도 43은 참조부호 4300으로 표기된 정규 플레이에서의 상황을 도시하며 참조부호 4301로 표기된 저속 순방향에서의 상황을 도시한다.
프레임 데이터의 시작 순간은 이 프레임의 시작에서 시스템 시간 카운터의 값에 의해 주어진다. 이것은 가상 PCR 값(PCRS)에 의해 지정된다. 첨자 N 및 S는 재순서화된 정규 플레이 스트림에서 원래의 값과 저속 순방향 스트림에서 새로운 값을 각각 나타낸다. 프레임의 시작에 대한 배치 규칙은 다음에 의해 주어진다.
DTSS - PCRSS = DTSN - PCRSN (5)
이것은 다음으로 다시 쓸 수 있다.
DTSS - DTSN = PCRSS - PCRSN (6)
정규 플레이 스트림에서 원 위치에 관하여 저속 순방향 스트림에서 프레임의 오프셋은 다음에 의해 주어진다.
offset = PCRSS - PCRSN (7)
이것은 다음으로 전환될 수 있다.
offset = DTSS- DTSN (8)
필요한 DTS 값들은 각각의 저속 순방향 프레임에 대해서, 그리고 필요하다면 DTS를 갖지 않는 GOP 내 정규 플레이 프레임들에 대해 계산될 수 있다. 저속 순방향 스트림에만이 아니라 정규 플레이 스트림 내 모든 원 프레임들의 DTS가 입수될 수 있으므로, 이들 프레임들의 오프셋은 이들의 새로운 DTS 값과 원 DTS 값간에 차이로서 계산될 수 있다. 이 오프셋은 프레임을 위치설정하고 이 프레임의 데이터 내에 있는 PCRS의 PCR 값을 정정하는데 사용된다. 후자는 오프셋이 원 PCR 베이스에 간단히 더해지므로, 용이하다. PCR 확장부는 변경되지 않는다. 이것은 이들 두 경우에 정정은 오프셋과 동일하기 때문에 DTS와 PCR간에 어떠한 드리프트도 야기되지 않을 수 있다. 새로운 PCR 베이스 값과 원래의 값간에 관계는 다음에 의해 주어진다.
PCRbaseS = PCRbaseN + offset (9)
프레임의 위치설정은 다소 더 어렵다. 위치설정은 모든 패킷들에 프리-펜드 되는 4바이트 레코딩 시간 스탬프(TST)의 정정에 의해 달성된다. 이 목적을 위해서, 오프셋은 90kHz 내지 27 Mhz 기준으로 다시 계산될 수 있다. 간단한 선택은 오프셋에 300을 곱하는 것이 될 것이다. 그러나, 여기에서는 정규 플레이에서 저속 순방향로 전환할 때 PCR 클럭 주파수에 가능한 도약이 고려되어야 한다. 이러한 도약은 시간 스탬프 카운터의 클럭이 레코딩동안 PCR들에 록(lock)되어야 하는 바와 같이 록 되었다면, 결코 일어나지 않을 것이다. 그러나 한 혹은 또 다른 이유로 시간 스탬프들이 PCR들에 록 되지 않을지라도, 추가의 곱 율 M을 사용함으로써, 도약하는 PCR 클럭 주파수가 여전히 회피될 수 있다. 이때 이 율은 시간 스탬들과, 레 코딩된 정규 플레이 스트림에 PCR을 내포하는 최신의 2개의 패킷들의 PCR 값들과의 비와 같다. 최신이라는 것은 현 프레임의 시작 전에 마지막 2개의 PCR 패킷들을 의미한다. 이 비는 록 된 시간 스탬프의 이상적인 경우에서 1과 같다. 이들 적어도 2개의 PCR 패킷들을 P(k-i) 및 Pk으로 표기하면, 프레임의 모든 패킷들의 시간 스탬프들에 대한 오프셋은 다음에 의해 주어진다.
TSToffset = 300 x offset x M (10)
여기서
M= (TSTN{Pk} - TSTN{P(k-i)}) / (PCRN{Pk} - PCRN{P(k-i))}) (11)
이다.
이 식에서 PCR 값들은 사실 27MHz 클럭에 기초하여 총 PCR 값이다. 이것은 다음의 방식으로 PCR 베이스 및 확장부로부터 계산될 수 있다.
PCR = 300 x PCRbase + PCRext (12)
패킷들 P(k-i)과 Pk 사이의 TST 혹은 PCR 값들에 랩(wrap)이 있다면 M의 계산에서 이상한 결과들이 일어날 수 있는 것이 명백하다. 이것은 간단히 회피될 수 있 다. 패킷 Pk에 대한 값이 패킷 P(k-i)에 대한 것보다 작다면, 한 범위의 TST 혹은 PCR에 대응하는 값이 이 감산에 앞서 페킷 Pk에 대한 값에 더해져야 한다. 이것은 TST 및 PCR에 대한 레지스터들이 정규로 필요로 되는 것보다 1비트 더 넓어야 함을 의미한다. TST에 대해서 이것은 이 상태가 일어났을 때 추가의 비트가 1에 설정되고 그렇지 않다면 0에 설정됨을 의미한다. 나머지 비트들은 원 TST 비트들과 항시 동일하다.
계산된 TST 오프셋은 이 프레임의 모든 패킷들의 시간 스탬프들을 정정하는데 사용된다. 이것은 레코딩된 시간 스탬들에 오프셋 값이 더해짐을 의미한다.
다음에서, B-프레임들의 복제가 설명될 것이다.
B-프레임으로부터 비롯된 디스플레이된 화상의 복제는 B-프레임 데이터의 복제에 의해 강행된다. 이것은 저속 순방향 스트림에서 한 시리즈의 동일한 B-프레임들로 된다. 이 시리즈의 제1 프레임의 배치는 원 정규 플레이 프레임들의 위치설정을 처리하는 경우에서와 유사하다. 나머지 프레임들은 복제된 B-프레임들이라 한다. 이들은 제1 프레임과 동일한 방식으로 취급될 수 있는데, 이것은 저속 순방향 스트림에서 DST값과 원 레코딩된 스트림에서 DTS값간에 차이로서 오프셋이 계산됨을 의미한다. 레코딩된 프레임의 DTS는 완전한 한 시리즈의 동일한 B-프레임들에 대해 동일하다. 저속 순방향 스트림에서, 프레임의 DTS는 델타만큼 증가된 이전 프레임의 DTS와 항시 같다. 이것은 BL이 이전 B-프레임을 나타내는 다음 식에 의해, 복제된 B-프레임들(BR)의 오프셋이 계산될 수 있음을 의미한다.
offset{BR} = offset{BL} + Delta (13)
이때 오프셋은 아마도 현 PCR들 및 특정 BR 프레임의 패킷의 시간 스탬프들(변환 후)을 정정하기 위해 앞에 기술된 방식으로 사용된다.
도 44는 한 시리즈의 동일 B-프레임들의 경계들에서 동일 오프셋을 도시한 것이다. 정규 플레이(참조부호 4400) 및 저속 순방향(참조부호 4401)에 대한 상황이 나타나 있다.
이 연결지점에서 어떠한 빈 프레임들도 삽입되지 않는다면 시리즈의 제1 B-프레임의 오프셋이 저속 순방향 스트림 내 선행 프레임의 오프셋과 동일하지 않음을 보일 수 있다. 2가지 상황들이 이 요건을 충족한다. 제1 상황은 B-프레임이 빈 프레임들의 사전 삽입의 경우에 이전 앵커 프레임에 연결될 때이다. 제2 상황은 B-프레임이 이전 B-프레임에 연결될 때이다. 도 44는 두 B-프레임들의 연결에 대한 영향을 설명한다. 위와 같은 것이 시리즈의 끝에 대해서도 사실 그러하다. 또한, 여기에서는 연결지점 주위의 2개의 프레임들의 오프셋은 이 지점에서 어떠한 빈 프레임들도 삽입되지 않는다면 동일하다. 또한, 도 44는 2개의 연결된 B-프레임들에 대해 이것을 보여준다. 다른 상황은 Bf-프레임들의 후-삽입이 사용되는 경우에 후속되는 앵커 프레임에 B-프레임의 연결이다.
이것은 이러한 연결지점 주위에 두 개의 프레임들이 정규 플레이 스트림에서 와 동일한 방식으로 연결됨을 의미한다. 이러한 이유로 원 패킷들은 이러한 연결지점에서 항시 사용되며 패킷이 2개의 프레임들로부터의 정보를 내포하는 경우에 분할로부터 비롯되는 2개의 패킷들은 결코 그렇지 않다. 또한, (이미 위에 설명된 바와 같이) 이러한 지점에서 어떠한 접착도 필요하지 않음이 명백하다. 이외 모든 다른 연결지점들에 분할로부터 2개의 패킷들이 있다면 이들이 사용된다.
다음에서, B-프레임들의 시간 압축이 예시될 것이다.
B-프레임들의 기간은 통상적으로 1 프레임 시간미만이 될 것으로 예상될 수도 있을 것이다. 평균하여 이것은 사실이지만 때때로 B-프레임들의 전송시간은 한 프레임 시간보다 더 클 수 있다. 대략 30초의 기간을 갖는 측정에서, 1.4 프레임 시간들의 B-프레임이 검출되었다. 이 측정은 도 45에 도시되었다. 평균 B-프레임 데이터 길이는 0.6 프레임들과 같으나, 통상적으로 B-프레임 데이터의 기간은 1 프레임 시간보다 크다.
도 45는 초 단위로 시간이 작도된 횡축(4501)을 갖는 도(4500)이다. 도(4500)의 종축(4502)을 따라 프레임 시간들의 수로 프레임의 길이가 작도되었다.
TSToffset으로 B-프레임들의 패킷들의 시간 스탬프의 정정에 의해 이들 패킷들을 위치설정함으로써 B-프레임의 기간이 1 프레임 시간보다 작은 한 정확한 결과로 이어질 것이다. 그러나, 저속 순방향 스트림에서 B-프레임이 1 프레임 시간보다 크다면, 이것의 끝은 프레임들의 시작이 1 프레임 시간의 거리를 갖고 놓여지기 때문에 후속되는 프레임과 겹칠 것이다. 이것은 마지막 복제된 B-프레임이 후속 프레임과 결코 겹치지 않을 것이기 때문에 완전히 맞는 것은 아니다. 1 프레임 시간보 다 큰 B-프레임에 대한 상황이 도 46에서 명료해진다. 도 46은 B-프레임이 1 프레임 시간보다 큰 경우 데이터의 중첩을 예시한 것이다.
도 46은 정규 플레이 상황(4600), 압축이 없는 저속 순방향 상황(4601), 및 압축된 저속 순방향 상황(4602)을 도시한 것이다. 프레임 시간은 참조부호 4603으로 표시되었다. B-프레임들은 참조부호 4604를 가지며, 다음 프레임들은 참조부호 4605를 가지며, 이전 프레임들은 참조부호 4606을 가지며 압축된 B-프레임들은 4607로 표기되었다. 또한, 이웃한 프레임들 간에 중첩들은 참조부호 4608로 표기되었다.
이전 및 다음 프레임들의 유형은 기술된 효과에 어떠한 영향도 미치지 않는다. 따라서 이들은 앵커 프레임, B-프레임 혹은 심지어는 빈 프레임일 수 있다.
이것은 마지막을 제외한 한 시리즈의 동일 B-프레임들의 모든 B-프레임들은 시간적으로 압축될 필요가 있음을 의미한다. 이 압축은 로컬 비트 레이트를 총 정규 플레이 스트림의 약 최대 비트 레이트의 레벨까지도 증가시킬 수 있다. 가능한한 이러한 증가를 제한시키기 위해서, B-프레임의 패킷들은 가용 프레임 시간에 걸쳐 고르게 분포된다. B-프레임의 제1 패킷의 시간 스탬프는 앞에서 주어진 오프셋 규칙들에 의해 계산된다. B-프레임의 패킷들을 Pj로 표기한다면, -여기서 지수 j는 B-프레임 내 패킷 수이다-, 저속 순방향 스트림에서 압축된 B-프레임의 제1 패킷의 시간 스탬프는 다음에 의해 주어진다.
TSTS{P1}= TSTN{P1} + TSToffset (14)
프레임의 후속 패킷들에 대한 시간 스탬프의 증분은 한 프레임 시간을 프레임의 총 패킷들 수로 나눈 것에 대응하는 값과 같다. 접착 패킷 및 PCR 패킷처럼, B-프레임의 끝에서 추가의 패킷들은 이러한 수로 포함되어야 한다. 이 패킷들의 수를 Nb로 표시하고, 압축된 B-프레임의 패킷들간의 거리를 db로 표기하면, 이 거리는 다음에 의해 주어진다.
db= 300 x Delta / Nb (15)
압축된 B-프레임 및 저속 순방향 스트림의 나머지 패킷들의 시간 스탬프들은 다음에 의해 주어진다.
TSTS{Pj} = TSTS{P(j-1)} + db (16)
비이상적인 경우에, 거리의 계산을 위한 곱 율 300는 압축된 B-프레임의 마지막 패킷과 후속 프레임의 제1 패킷 간에 패킷 거리로 이어질 수 있다. 이것은 율 300을 취하지 않고 대신에 오프셋에 대해 기술된 바와 동일한 방식으로 델타를 전 환함으로써 해결될 수도 있을 것이다. 그러나, 실제적인 해결책은 실제 패킷들의 수보다 큰 Nb의 값을 취하는 것이다. 도 47은 불규칙한 패킷 거리와 한 프레임 시간보다 큰 기간을 가진 B-프레임이 한 프레임 시간의 기간과 일정한 패킷 거리를 가진 B-프레임으로 어떻게 압축되는가를 나타낸 것이다. 한 프레임시간은 300 x Delta의 시간 스탬프에 증분에 대응한다. Nb가 실제 패킷 수보다 큰 것이 되도록 선택된다는 사실은 압축된 B-프레임의 끝에 얼마간의 빈 공간을 초래한다.
그러므로, 도 47은 고르게 분포된 패킷들을 가진 B-프레임들의 압축을 도시한다.
도 47은 비압축된 상태(4700), 압축된 상태(4701)를 나타내며, B-프레임(4702) 및 한 프레임 시간(4703)에 압축된 B-프레임을 나타낸다.
모든 경우들에서 그리고 압축이 필요할 경우에만 B-프레임들에 대한 동일한 패킷 분배 방법을 사용하는 것이 가능하다. 그러나, 대부분의 경우들에 있어서 이것은 B-프레임이 확장됨을 의미한다. B-프레임의 제1 패킷에 TSToffset의 적용은 DTS까지 이 패킷의 거리가 정규 플레이 스트림과 같음을 의미한다. 이때 확장에 의해, B-프레임 데이터의 끝과 대응하는 DTS간에 시간 거리는 원래보다 작아지게 된다. 그러나, 프레임의 DTS는 프레임 데이터의 시작의 한 프레임 시간보다 결코 먼저 일 수는 없음이 이해될 수 있다. 이유는 다음과 같다. 프레임 및 원 스트림의 DTS는 정의에 의해서 항시 이전 프레임의 DTS보다 나중의 한 프레임 시간이다. 이 이전 프레임의 DTS는 이 프레임의 데이터의 끝보다 결코 먼저가 될 수 없고 따라서 결코 현 프레임의 데이터의 시작전이 될 수 없다. 이것은 임의의 프레임의 DTS가 이 프레임에 대한 데이터의 시작보다 적어도 한 프레임 시간 나중임을 의미한다. 또한, 이것은 프레임 데이터가 한 프레임 시간 내에 고르게 분포되어있을지라도 DTS는 항시 이 프레임 데이터의 끝 다음에 있음을 의미한다. 따라서, 기술된 동일 패킷 분포는 마지막 복제된 것을 제외하고 모든 B-프레임들에 적용되어야 한다. 간단하게 하기 위해서, 확장되었을 뿐만 아니라 압축된 프레임은 압축된 프레임이라 명명될 수 있다.
접착은 한 시리즈의 동일한 B-프레임들의 B-프레임들 간에만 필요하다. 따라서, 가능한 추가의 접착 패킷은 압축된 B-프레임의 끝에만 추가되고 결코 다른 어떤 곳에 추가되지 않을 것이다. 추가의 PCR 패킷은 마지막 복제된 B-프레임의 끝 지점엔 여유가 없기 때문에 이를 제외하고 B-프레임들의 끝에 추가된다. 또한, 이것은 추가의 PCR들이, 압축된 B-프레임들의 끝에만 추가됨을 의미한다. 따라서, 이들 패킷들은 모두 압축 알고리즘에 포함되기 때문에 이들 패킷들에 대해 어떠한 특별한 배치 알고리즘도 필요하지 않다.
B-프레임들의 압축으로부터 결과는 프레임 데이터 내 PCR의 값의 정정이 이러한 B-프레임에 대해 더 이상 정정이 아니라는 것이다. 이 PCR 값이 이 경우 어떻게 정정되는가와 압축된 B-프레임의 끝에 추가된 PCR들의 값이 어떻게 계산되는가는 다음에 기술될 것이다. 다음에, 빈 프레임들의 삽입이 기술될 것이다.
삽입되는 빈 프레임들이 어디에 위치되는지 결정되어야 한다. 저속 순방향 스트림에서 다른 프레임들의 위치를 보면 특히 보다 큰 슬로우 모션 율들에 대해 서, 주된 시간 갭은 빈 프레임들이 삽입될 지점에 존재하는 것이 명백하다. 과도한 PCR 거리에 따른 문제들을 피하기 위해서, 빈 프레임들은 이 영역 내 분포되어야 하며 각 빈 프레임은 PCR을 내포해야 한다. 이러한 이유로 연속한 빈 프레임들간에 거리는 한 프레임 시간이 되도록 선택된다. 제1 빈 프레임은 이전 프레임에 직접 연결된다. 이것이 도 48에 도시되었다.
도 48은 빈 프레임들의 배치를 보인 것으로 한 시퀀스의 이전 프레임(4800), 빈 프레임(4801), 프레임 시간(4802) 다음에 또 하나의 빈 프레임(4801)이 놓여진다, 등등. 다음 프레임은 참조부호 4803으로 표기되었다.
배치 알고리즘은 선 혹은 후 삽입 혹은 빈 프레임의 유형과는 무관하다. 그러나, 빈 프레임의 제1 패킷의 배치와 나머지 패킷들의 배치 간에 구별되어야 한다.
다음에서, 빈 프레임의 제1 패킷의 배치가 설명될 것이다.
도 49로부터 취해질 수 있는 바와 같이, 빈 프레임들의 제1 패킷의 위치설정이 여기에서 기술된다. 이전 프레임(4900) 다음엔 복수의 빈 프레임들(4901, 4902, 4903), 등등이 이어진다. 빈 프레임의 제1 패킷은 FPi으로 표기하였는데 여기에서 i는 한 시퀀스의 빈 프레임들 내에 빈 프레임의 프레임 번호이다.
제1 빈 프레임의 제1 패킷인 FP1의 배치부터 시작하여, 이 패킷에 대한 시간 스탬프를 도출하기 위해 몇 가지 선택들이 존재한다. 하나는 선행 프레임의 마지막 패킷의 저속 순방향 시간 스탬프에 값 d를 더하는 것이다. 이 마지막 패킷을 다시 PL이라 표기하면, 제1 빈 프레임의 제1 패킷의 시간 스탬프는 다음에 의해 주어진다.
TSTS{FP1}=TSTS{PL} + d (17)
d의 값은 몇가지 방법들로 선택될 수 있다. 가능성은 d에 대한 값으로서 선행 프레임의 마지막 2개의 패킷들의 시간 스탬들간 차이를 사용하는 것이다. 그러면 시간 스탬프들은 압축된 프레임이 빈 프레임들을 어째든 결코 선행하지 않을 것이기 때문에 저속 순방향 스트림으로부터 혹은 원 레코딩된 스트림으로부터 취해질 수 있다. 이전 프레임의 마지막 두 패킷들을 PL-1 및 PL로 표기하면 d의 값은 다음에 의해 주어진다.
d = TST{PL} - TST{P(L-1)} (18)
d의 계산을 위한 시간 스탬프들이 저속 순방향 스트림으로부터 취해진다면, FP1의 계산에 대한 공식은 다음과 같이 쓸 수 있다.
TSTS{FPL} = 2 x TSTS{PL} - TSTS{P(L-1)} (19)
후속되는 빈 프레임들의 제1 패킷들의 시간 스탬프들은 한 프레임 시간에 대응하는 값을 FP1의 시간 스탬프에 복제된 가산에 의해 획득된다. 이 값은 이 경우 300 x Delta가 되게 선택될 수 있다. 그러면 후속되는 빈 프레임들의 제1 패킷들의 시간 스탬프들은 다음에 의해 주어진다.
TSTS{FPi} = TSTS{FP(i-1)} + 300 x Delta (20)
다음에서, 빈 프레임의 나머지 패킷들의 배치가 설명될 것이다.
빈 프레임의 패킷들을 Pj로 표기하고 여기서 j는 이 빈 프레임 내 패킷 번호이다. P1는 FP에 의해 위에 표기된 빈 프레임의 제1 패킷이다.
나머지 패킷들의 위치는 빈 프레임의 제1 패킷으로부터 도출된다. 이를 위해서, 패킷들간 거리에 관하여 판단되어야 한다. 이것은 사실 가용한 충분한 공간이 있기 때문에 거리가 너무 짧지 않는 한 중요하진 않다. 여기에서는 2가지 선택들이 언급될 것이다.
제1 선택은 앞에서 언급된 d의 값을 다시 사용하는 것이다. 이때 이 값은 빈 프레임들 내 패킷들의 시간 스탬프들을 증분시키는데 사용된다. 이들 시간 스탬프 들은 다음에 의해 주어진다.
TSTS{Pj} = TSTS(P(j-1)} + d (21)
이것은 한 시퀀스의 이전 프레임(5000), 제1 빈 프레임(5001) 및 제2 빈 프레임(5002)을 도시한 도 50에 도시되었다. 그러므로, 도 50은 이전 프레임에 기초하여 빈 프레임들의 패킷 거리를 도시한 것이다.
제2 선택은 한 프레임 시간 상에 고르게 빈 프레임의 패킷들을 분배시키는 것이다. 이 경우에 증분은 빈 프레임의 패킷 수로 나눈 한 프레임 시간에 대응하는 값과 같다. 이 패킷수를 Ne로 표기하고, 패킷들간의 거리를 de로 표기하면, 거리는 다음에 의해 주어진다.
de= 300 x Delta / Ne (22)
빈 프레임 내 패킷들의 시간 스탬프들은 다음에 의해 주어진다.
TSTS{Pj} = TSTS(P(j-1)} + de (23)
이 상황은 이전 프레임(5000) 및 이에 제1 빈 프레임(5001) 및 제2 빈 프레임(5002)이 이어지는 것을 도시한 도 51에 도시되었다.
그러므로, 도 51은 한 프레임 시간에 걸쳐 고르게 분포된 빈 프레임의 패킷들을 도시한 것이다.
다음에, PCR들에 관계된 어떤 면들이 설명된다.
먼저, 저속 순방향 스트림에 어떠한 추가의 PCR들도 삽입되지 않는 것으로 가정될 수 있다. I-프레임이 보통은 한 프레임 시간보다 훨씬 더 크기 때문에, 이것이 PCR을 내포하게 될 것이다. P-프레임들에 있어서, 확률은 이미 감소된다. B-프레임들은 대부분 한 프레임 시간보다 작으므로, 다수의 B-프레임들은 PCR을 내포하지 않을 것이다. 이것은 B-프레임들이 복제될지라도 PCR 내에 큰 갭들이 저속 순방향 스트림에서 발생할 것임을 의미한다. 일반적으로, PCR들 사이의 최대 거리가 슬로우 모션 율만큼 증가된다고 할 수 있다. 이것은 명백히 저속 순방향 스트림에서 추가의 PCR들의 삽입을 요구한다.
프레임 데이터에 내포된 원 PCR들 외에도, 추가의 PCR들이 빈 프레임에 그리고 B-프레임의 끝에 추가되어야 한다. 후자는 이 지점에 공간이 전혀 없기 때문에 마지막 복제된 B-프레임의 끝을 제외하고 유지한다. 이들 조치로 문제가 될 수준까지는 아니지만 최대 거리가 DVB 표준의 요건을 초과하는 것이 여전히 가능하다. 일반적으로, 상황은 고속-순방향/고속-역방향보다 훨씬 더 유리할 수 있다.
프레임들에 내포되는 PCR들의 정정은 적어도 압축들이 없는 프레임들에 대해서, 앞에서 기술되었다. 압축된 B-프레임 내에 PCR들에 대한 것만이 아니라 빈 프 레임들에 그리고 B-프레임들의 끝에 추가의 PCR들의 PCR 값을 계산하기 위한 그외 어떤 다른 방법이 잇점이 있다. 제1 선택은, PCR 값이 이들 PCR들을 내포하는 두 패킷들의 실제 저속 순방향 시간 스탬프들간 차이로 정정된 저속 순방향 스트림 내 이전 PCR의 값과 같다는 규칙이다. 현 PCR 및 이전 PCR을 내포하는 패킷들을 각각 Pc 및 P(c-1)로 표기하면, 저속 순방향 스트림 내 현 PCR은 다음에 의해 주어진다.
PCRS{Pc} = PCRS{P(c-1)} + TSTS{Pc} - TSTS{P(c-1)} (24)
또한, 여기에서 PCR은 베이스 및 확장부로부터 계산된 총 PCR을 나타낸다. 이 공식은 이상적인 경우에 있어선 완벽하나 주파수 변동들에 이르게 하고 따라서 비이상적인 경우엔 상당한 PCR 지터를 유발한다. 이것은 앞에서 계산된 정정 율 M을 적용함으로써 회피된다. 현 PCR은 다음에 의해 주어졌다.
PCRS{Pc} = PCRS{P(c-1)} + (TSTS{Pc} - TSTS{P(c-1)})/M (25)
패킷 내에 삽입되어야 하는 PCR 베이스 및 확장부는 다음과 같이 PCR 값들로부터 계산된다.
PCRbase = int(PCR/300) (26)
PCRext = PCR - 300 x PCRbase (27)
공식들(26), (27)은 사실, 모든 PCR 값들, 따라서 비압축된 원 프레임들에 내포된 PCR들의 값들을 포함하여 이들을 조절하는데 사용될 수도 있을 것이다. 그러나, 정정 율을 사용한 계산은 누적될 수 있는 라운드 오류들을 유발할 수 있어 DTS에 관하여 PCR 시간 베이스의 저속 드리프트를 초래할 수 있다. 그러므로, 이 드리프트를 제로로 리셋하기 위해서, 비압축된 프레임들에 내포된 PCR들의 정정은 앞에서 기술된 바와 같은 오프셋 값의 추가에 의해 수행되어야 한다.
다음에서, 하이브리드 스트림이 어디에 만들어질 수 있는가가 기술될 것이다.
여기에 기술된 하이브리드 스트림은 몇몇의 장소들에서 생성될 수 있다. 이들은 사실 평문 I-프레임들을 가진 스트림에 대해 가능한 동일한 위치들이다.
1. 위상방송의 경우에 방송국 혹은 업링크에서;
2. 케이블 네트워크의 경우에 케이블 헤드-엔드에서;
3. 보안 권한위임된 도메인의 경우 댁내 게이트웨이에서;
4. 저장 장치의 레코딩측에서. 그러나, 소수의 평문 패킷들만을 가진 스트림에 대해선, 다섯 번째의 위치가 가능하다. 즉:
5. 저장 장치의 재생측에서;
도 52는 하이브리드 스트림으로의 전환을 위한 가능한 위치들을 도시한 것이다.
도 52의 상황은 방송국(5200)이 신호를 위성접시(5201)에 방송하는 것이다. 위성접시(5201)는 신호들을 위성(5202)에 전송할 수 있으며, 또 하나의 위성접시(5203)는 이들 신호들을 수신할 수 있다. 이어서, 신호들은 케이블 헤드엔드(5204)에 공급될 수 있고 이로부터 저장 장치(5205)에 공급될 수 있다. 아니면, 신호들은 댁내 게이트웨이(5206)에 그리고 이로부터 저장 장치(5207)에 공급될 수 있다. 대안적으로, 신호들은 위성접시(5203)에서 저장 장치(5208)에 공급될 수 있다. 도 52의 위치들 1 내지 5에서, 하이브리드 스트림으로의 전환이 가능하다.
위치들 1 및 2는 여기에서는 제공자가 제한된 영향을 미칠 수 있기 때문에 실현하기가 어려울 수도 있을 것이다. 저장 장치에 있어서 사실 하이브리드 스트림으로의 변환이 위치들 1, 2 혹은 3에서 실현되든지간에 차이가 없다. 선택 3은 좋은 대안이다. 권한위임된 도메인들을 위한 댁내 게이트웨이들에서 제공자의 위치를 개선할 수도 있을 것이다. 모든 3가지 경우들에서 저장 장치는 이의 레코딩 입력에서 하이브리드 스트림을 수신한다. 이것은 적어도 정규 플레이 및 트릭-플레이 생성에 있어선 아니지만 저장 장치에서는 어떠한 해독 및 스마트 카드도 필요하지 않음을 의미한다. 그러나, 키 프레임들의 검출 등을 사용하는 저장 장치 내에 메타데이터 추출 기능이 있는 경우엔 해독이 여전히 필요하다.
하이브리드 스트림을 구성할 매우 확실한 위치는 저장 장치의 레코딩측에서인, 경우 4일 수도 있을 것이다. 이것이 레코딩측에서 부분적 해독을 요구할 수도 있을지라도 트릭-플레이 생성을 위해서 어떠한 해독도 필요하지 않다는 잇점을 여전히 갖는다. 어째든, 레코딩된 스트림은 하이브리드 스트림인 것이 바람직하다.
모든 패킷들을 암호화하여 레코딩이 행해지는 5의 경우에서 보안 트릭-플레이를 생성하는 것이 여전히 가능하다. 전체 해독 대신에 필요한 이들 패킷들만을 해독하고 나머지는 암호화된 상태로 두는 것도 가능하다(도 53 참조).
도 53은 전체가 암호화된 레코딩으로부터 보안 트릭-플레이를 생성하는 것을 도시한 것이다. 레코딩 장치(5300)는 암호화된 MPEG2 데이터(5301)를 제공하고 이를 블록 선택기 유닛(5302)에 공급한다. 이로부터 데이터가, 부분적으로 암호화된 MPEG2 데이터(5304)를 생성하는 해독기(5303)에 공급된다. 이 부분적으로 암호화된 MPEG2 데이터는 프레임 선택기(5305)에 제공되고 이로부터 데이터가 트릭-플레이 생성 유닛(5306)에 공급된다. 트릭-플레이 생성 유닛(5306)은 MPEG2 DVB 규격의 수송 스트림의 부분적으로 암호화된 데이터(5307)를 생성하고 이것은 이어서 MPEG2 디코더 혹은 해독기(5308)에 공급될 수 있다.
그러나, 이들 패킷들 및 평문들로 레코딩에 의해 가능하였을 사전에 CPI(도 4 참조)을 생성하는 잇점은 사용될 수 없다. 그러나, 거의 암호화된 트릭-플레이 스트림을 생성하는 것은 여전히 가능하다. 시스템은 트릭-플레이 구성 유닛이 수송 스트림 레벨에서 구성되는 암호화된 스트림을 생생하도록, 그리고 ECM들의 삽입이 선택이 아닌 필수이도록 구성된다.
다음에서, 평문으로 해야 할 패킷들을 선택하는 방법이 설명될 것이다.
하이브리드 스트림이 구성될 때 어떤 패킷들이 평문으로 있어야 할지를 판단 해야 한다. 필요로 되는 평문 데이터의 검출 및 선택을 할 수 있기 위해서 먼저 비디오 스트림이 완전히 해독될 수 있다. 이어서, 이 데이터의 위치가 평문 스트림에서 결정되고 이것이 위치된 평문 패킷들은 암호화된 패킷들 및 원 스트림을 대체시켜 하이브리드 스트림을 형성한다.
선택된 평문 데이터에 대해, 3가지 기준들이 사용될 수 있다.
1. DTS/PTS 및 PES 헤더는 이들이 있다면 변경될 수도 있다. 이 목적을 위해서, 모든 PES 헤더 데이터는 평문으로 할 수 있다. 이것은 PLUSI 비트가 셋 된 것에서부터 PES 헤더의 마지막 바이트를 내포하는 것에 이르는 패킷들 모두가 평문으로 됨을 의미한다.
2. 시퀀스 헤더 및 시퀀스 확장부로부터의 어떤 정보가 필요할 수도 있다. 이 목적을 위해서, 시퀀스 헤더부터 화상 시작 코드까지의 모든 데이터는 평문으로 한다. 시퀀스 헤더 및 화상 시작 코드는 4바이트 코드에 대해 체크함으로써 검출된다. 이들 4바이트는 반드시 하나의 동일 패킷에 위치하는 것은 아니다. 시퀀스 헤더 및 화상 시작 코드는 4바이트의 마지막이 발견될 때 검출된다. 하이브리드 스트림의 구성을 위한 과도한 버퍼링을 피하기 위해서, 시퀀스 헤더의 제4 바이트를 내포하는 것에서부터 화상 시작 코드의 제4 바이트를 내포하는 것에 이르는 범위의 패킷들 모두를 평문으로 한다. 이것은 결과적인 하이브리드 스트림에서 시퀀스 헤더 및 화상 시작 코드를 탐색할 때 어떤 특유한 상황들에 이르게 할 수 있다. 이것이 이하 설명될 것이다.
3. 화상 시작 코드는 프레임 경계들을 검출하는데 필요하다. 따라서 화상 시 작 코드를 내포하는 패킷은 평문으로 되어 있어야 한다. 화상 시작 코드 다음에 2개의 바이트들도 평문이어야 한다. 이들 바이트들은 변경될 필요가 있을 수도 있을 시간 기준, 및 I-프레임, P-프레임, 혹은 B-프레임을 식별하는 화상 부호화 유형을 내포한다. 또한, 화상 코드 확장부로부터 어떤 정보가 필요하다. 이 목적을 위해서, 화상 시작 코드로부터 화상 코드 확장부의 끝까지의 모든 데이터를 평문으로 한다. 화상 시작 코드는 네 번째 바이트가 발견될 때 검출된다. 과도한 버퍼링을 피하기 위해서, 화상 시작 코드의 제4 바이트를 내포하는 것에서부터 화상 코딩 확장부의 마지막 바이트를 내포하는 것 이르는 범위의 패킷들 모두가 평문으로 될 것이다. 이에 따라 모든 프레임 경계들에 패킷들은 평문이 될 것이며 이것은 특정 트릭-플레이 스트림들의 구성에 필요한 것 이상이다. 그러나, 슬로우 모션 순방향 스트림의 구성엔 필요하다.
과도한 버퍼링이 의미하는 것과 이것이 무엇을 야기하는지에 대한 질문에 관해서, 하이브리드 스트림이 구성될 경우, 원 암호화된 그리고 해독된 스트림으로부터의 패킷들이 한 스트림으로 결합되어야 한다고 말할 수 있다. 실시간으로 행해진다면, 어떤 버퍼링이 필요할 수도 있다. 화상 시작 코드가 2개의 비디오 패킷들에 걸쳐 있다고 가정하면, 이 4개 바이트들의 화상 시작 코드는 암호화된 스트림에서 그리고 마지막 바이트가 발견될 때 검출된다. 완전한 화상 시작 코드 및 평문을 갖는다는 것은 이 마지막 바이트를 가진 비디오 패킷만이 아니라 선행 비디오 패킷도 평문이어야 함을 의미한다.
그 외의 데이터는 이들 2개의 비디오 패킷들 사이에 있을 수 있고 정규로는 그러할 것이다. 기본적으로, 이것은 큰 량의 패킷들일 수 있다. 도 54는 I-프레임의 끝에 화상 시작 코드가 2개의 비디오 패킷들에 걸쳐 있는 상황의 예를 도시한 것이다.
특히, 도 54는 화상 시작 코드(5402)의 부분을 포함하는 I-프레임(5401)을 포함하는 버퍼(5400)를 도시한 것이다. 이어서 오디오 패킷들(5403)이 이어진다. 여전히 버퍼(5400)에는 PSI 블록(5404) 및 데이터 블록(5405)이 포함된다. 화상 시작 코드 검출 순간(5406), 화상 시작 코드(5407)의 부분 및 후속되는 P-프레임(5408)도 도 54에 도시되었다.
도 54의 경우에, 이들 두 비디오 패킷들만이 아니라 이들 두 비디오 패킷들 사이에 다른 데이터와 함께 모든 패킷들도 버퍼되어야 한다. 화상 시작 코드가 예에서 보여졌을지라도, 시퀀스 헤더 코드에 대해서도 동일한 논의가 유효함은 명백하다. 주어진 기준들은 필요한 버퍼링을 단지 하나의 패킷으로 감소시킨다.
3가지 정의된 기준들 중 하나가 충족된다면, 대응하는 패킷들은 평문이 될 것이다. 3가지 기준들의 조합은 흔히 각 프레임 경계에서 단지 하나 평문 패킷만이 될 것이다. 그러나, 어떤 스트림들에 대한 어떤 실제적인 경우들에 있어서, 몇 개의 패킷들이 있을 수 있다. 사실, 이론적으로 많은 수의 패킷들이 있을 수도 있다.
제1 예는 GOP당 한 PES 패킷에 예를 들면 12 프레임들의 GOP 크기의 I-프레임들 및 P-프레임들만으로 구성된 스트림이다. 수행된 실험들에서, I-프레임의 시작에 평문 패킷들의 수는 항시 하나였다. I-프레임의 끝 및 사실 이외 모든 다른 프레임 경계들에서 평문 패킷들의 수는 보통 하나였으나 종종 2개였다. I-프레임의 시작에서 PES 헤더부터 화상 코드 확장부까지의 모든 것은 한 패킷 내에 있다. 이외 다른 프레임 경계들에서 평문 패킷은 화상 시작 코드부터 화상 부호화 확장부의 끝까지의 모든 데이터를 내포한다. 이 데이터는 2개의 패킷들에 걸쳐 있을 수 있다.
제2 예는 I-프레임들, P-프레임들 및 IBP 구조를 가진 B-프레임들을 포함하는 스트림이며, 우수 값들로 가변하는 GOP 크기는 프레임 당 한 PES 패킷에서 2 내지 12의 범위이다. 이 스트림이 사실 평문 스트림일지라도 여기에서는 암호화된 것처럼 사용된다. I-프레임의 시작에서 평문 패킷들의 수는 대부분 2개일 것이며 I-프레임의 끝 및 이외 다른 프레임 경계들에서는 항시 하나일 것이다. I-프레임의 시작에서 2개의 패킷들은 주로 양자화 테이블 및 시퀀스 헤더의 존재에 기인한다. I-프레임의 끝 및 이외의 프레임 경계들에서, PEG 헤더부터 화상 부호화 확장부까지의 데이터는 모두 한 패킷 내에 있다.
PES 구조에 기인하여 이것은 평문인 I-프레임의 마지막 패킷이 아니라 사실 다음 프레임의 제1 패킷인 것에 유의한다. 이것은 다른 시나리오들에서도 일어날 수 있다. 그러나, 이것은 I-프레임의 마지막 패킷이 이 경우 I-프레임 데이터만을 내포하고 소거될 필요가 없기 때문에 문제가 없다.
또한, 실제로 3개의 선택 기준들의 조합이 각 프레임 경계에서 하나의 인접한 평문 비디오 영역으로 되는 것에 유의한다. 이론적으로, 이것은 이 경우일 필요는 없다. 기준 2 및 3의 조합은 항시 인접한 영역이 되게 하나 이론적으로 평문 PES 헤더 영역은 분리된 것이 될 수 있다.
다음에서, 필요한 정보를 하이브리드 스트림에서 발견하는 방법이 설명될 것이다.
실제로 각 프레임 경계에 하나의 인접한 평문 영역이 있다. I-프레임(GOP)의 시작에서 평문 데이터는 PES 헤더의 제1 바이트부터 적어도 화상 부호화 확장부의 마지막 바이트까지 이어진다.
예가 도 55에 주어진다.
도 55는 I-프레임의 시작에 실제적인 평문 영역을 도시한다. 도 55에 도시된 데이터 시퀀스는 PES 헤더(5500), 시퀀스 헤더(5501), 시퀀스 확장부(5502), GOP 헤더(5503), 화상 시작 코드(5504), 화상 헤더(5505), 또 하나의 화상 헤더(5506), 화상 코드 확장부(5507), 및 I-프레임 데이터(5508)를 포함한다.
성분들(5500 내지 5505)은 제1 I-프레임(5509)에 관계되고 성분들(5506 내지 5508)은 제2 I-프레임 패킷(5510)에 관계된다.
모든 필요한 데이터는 이 영역에 있고 PLUSI로 마킹된 패킷에서 시작하는 스트림의 그 부분을 파싱함으로써 쉽게 발견될 수 있다.
I-프레임의 끝에서 2가지 가능성들이 있다.
1. 프레임 당 한 PES 패킷의 경우에 I-프레임의 끝 (다음에) 평문 영역 에지는 제1 바이트의 PES 헤더부터 시작하여 적어도 화상 부호화 확장부의 마지막 바이트까지 이어진다. 모든 필요한 데이터는 쉽게 발견되며 I-프레임의 마지막 패킷의 어떠한 소거도 필요하지 않다(도 56에 좌측 참조).
2. GOP당 한 PES 패킷의 경우에 I-프레임의 끝 다음엔 어떠한 PES 헤더도 없 다. 실제로, 이 위치엔 어떠한 시퀀스 헤더도 없다. 이 경우 화상 부호화 확장부의 마지막 바이트까지 화상 시작 코드의 제4 바이트를 내포하는 패킷들은 평문이다(도 56에 우측 참조). 4바이트의 화상 시작 코드는 예를 들면 한 패킷에 제1의 3개의 바이트들과 다음 패킷에 마지막 바이트로, 2개의 패킷들에 걸쳐 있을 수도 있을 것이다. 이 경우 제1의 3개의 바이트들은 여전히 암호화된다. 이것은 이 화상 시작 코드가 검출될 수 없음을 내포하는 것으로 보인다.
도 56은 실제 평문 영역들을 도시한 것이다. 도 56의 시퀀스에서, I-프레임(5600)의 끝과, PLUSI 프레즌트(5601), PES 헤더(5602), 화상 시작 코드(5603), 화상 헤더(5604), 화상 부호화 확장부(5605), P-프레임 혹은 B-프레임 데이터(5606), 마지막 I-프레임 데이터(5607), I-프레임의 끝(5608), 화상 시작 코드(5609), 화상 헤더(5610), 화상 코드 확장부(5611), 및 P-프레임 혹은 B-프레임 데이터(5612)가 도시되었다.
사실 각 프레임 경계들에 평문 영역이 있다. 따라서, I-프레임의 끝을 검출한다는 것은 I-프레임에 대한 것 다음에 제1 화상 코드에 대한 탐색을 의미한다. 암호화된 데이터에서 일치가 있다고 잘못 확정하는 오 확정(false positive) 일치를 피하기 위해서 평문 비디오 패킷만이 이 코드에 대해 탐색되어야 함이 명백할 것이다. 패킷의 페이로드가 평문인지 아닌지는 패킷 헤더 내 스크램블링 제어 비트들에 의해 나타내어진다. 검출은 주어진 한 시퀀스의 4개의 바이트들이 (0x00 0x00 0x01 0x00)로 발견될 때만 확정적인 일치를 준다. 시퀀스는 프레임의 유형을 무시하는 화상 시작 코드에 대응한다. 불행하게도, 화상 시작 코드는 수송 스트림 패킷 경계들에 정렬되어야 할 필요가 없다. 이것은 화상 시작 코드가 2개의 패킷들에 걸쳐 있었다면, 이들 패킷들 중 제2 패킷만이 평문일 것임을 의미한다.
이것이 도 57에 도시되었다.
문제는 참조부호 5700으로 표기된 두 부분들이 오 확정 일치를 주는지 여부이다. 도 57에서, 패킷 헤더는 참조부호 5701로 표기되고, 패킷 페이로드 평문은 참조부호 5702로 표기되고 암호화된 패킷 페이로드는 참조부호 5703으로 표기된다.
맨 위에 라인(5704)은 제2 패킷 내 완전하게 위치되는 화상 시작 코드를 나타낸다. 맨 밑에 라인(5705)에 있어서 이것은 완전히 제1 패킷 내에 있다. 나머지 라인들(5706)은 퍼져있는 화상 시작 코드에 대한 3가지 가능성들을 나타낸다.
부분적으로 암호화된 화상 시작 코드를 검출하는 것이 불가능함을 예상할 수도 있을 것이다. 그러나, 이 딜레마로부터 벗어나는 방법이 있다. 각 평문 영역은 화상 시작 코드 혹은 적어도 이의 마지막 바이트를 내포할 것이다. 따라서, 평문 영역에서 어떠한 화상 시작 코드도 발견되지 않는다면, 이 영역은 화상 시작 코드의 마지막 바이트들 중 일부부터 시작할 것임을 알게 된다. 이 바이트들의 수는 도 57에 도시된 바와 같이 1, 2 혹은 3일 수 있다. 사실 얼마나 많은 바이트들이 있는지를 정확하게 검출하는 것이 가능하다. 이러한 면에서 화상 부호화 유형의 3개의 비트들은 MPEG2 표준에 의해 금지되기 때문에 결코 모두가 제로가 될 수 없음에 유의하는 것이 중요하다. 그러므로, 도 57에서 0xYY로 나타낸 화상 시작 코드의 제2 바이트는 결코 0x00이 될 수 없다. 따라서, 평문 영역이 0x00 0x01 0x00로 시작한다면 이들은 화상 시작 코드의 마지막 3개의 바이트들이다. 0x01 0x00로 시작한다 면 이들은 마지막 2개의 바이트들이다. 0x00로 시작하나 0x00 0x01 0x00로 시작하지 않는다면 단지 마지막 바이트만이 있다. 이러한 식으로 해서 화상 시작 코드가 어디에 위치되어 있는지를 정확히 알게 되고 이 다음의 데이터가 파싱될 수 있다. 화상 유형은 필요하거나 요망된다면 바이트 0xYY로부터 읽혀질 수 있다.
또한, 화상 시작 코드가 2개의 패킷들에 걸쳐 있을 경우 I-프레임이 아닌 모든 데이터를 제거함으로써 I-프레임의 마지막 패킷을 소거하는 것이 가능하지 않은 것으로 여겨진다고 할 수 있다. 이것은 사실 화상 시작 코드의 암호화된 부분을 제거하는 것이 가능하지 않기 때문에 맞는 것이다. 그러나, 트릭-플레이 스트림 구성에서 빈 P-프레임은 I-프레임의 끝에 첨부될 것이다. 이 빈 P-프레임은 화상 시작 코드부터 시작할 것이다. 따라서, 화상 시작 코드의 암호화된 바이트들은 이들 바이트들 중 얼마나 많은 바이트들이 마지막 암호화된 패킷의 끝에 있는지를 알기 때문에 다시 사용될 수 있다. 이 수의 바이트들은 I-프레임 다음에 추가될 제1의 빈 P-프레임의 화상 시작 코드로부터 제거된다.
도 58은 이러한 상황의 예를 도시한 것이다.
도 58에서, 부분적으로 암호화된 화상 시작 코드에 첨부된 빈 P-프레임이 도시되었다. 화상 시작 코드는 참조부호 5800으로 표기되었다. 시간 기준(5801)도 도 58에 도시되었다. 또한, 화상 부호화 유형은 참조부호 5802로 표기되었다. 빈 프레임 데이터는 참조부호 5803으로 표기되었다.
실제로 예상될 상황들이 위에 기술되었으나 이론적으로 어떤 추가의 상황들이 일어날 수 있다. 이것은 기준들 2 및 3에 의한 평문 PES 헤더 영역 및 평문 영 역들이 이론적으로는 연결될 필요는 없으나 암호화된 비디오 패킷들에 의해 분리될 수 있다는 사실에 기인한다. 명확성을 위해서, 인접한 평문 영역은 한 시퀀스의 비디오 패킷들이 평문이지만 그 외 다른 암호화된 패킷들이 그 사이에 있을 수 있음을 의미함을 언급해 둔다.
기준들에 따라 액세스될 필요가 있는 3개의 중요한 데이터 영역들이 있다.
1. PES 헤더 정보;
2. 시퀀스 헤더 및 시퀀스 확장부 내 정보;
3. 화상 시작 코드부터 화상 부호화 확장부까지의 정보
이들 3개의 데이터 영역들이 도 59에 도시되었다.
도 59는 3개의 기준들에 대응하는 평문 데이터를 도시한 것이다. 제1 스킴은 PLUSI 프레즌트(5900) 및 PES 헤더(5901)를 나타낸다. 제2 이미지는 시퀀스 헤더 코드(5910), 시퀀스 헤더(5911), 시퀀스 확장부 코드(5912) 및 시퀀스 확장부(5913)를 나타낸다. 화상 시작 코드(5914)도 도시되었다.
도 59에서 세 번째 이미지는 화상 시작 코드(5920), 화상 헤더(5921), 화상 부호화 확장부 코드(5922) 및 화상 부호화 확장부(5923)을 나타낸다.
3개의 항목들은 이 데이터를 찾아 정확하게 전달하기 위해 스트림에서 발견되어야 한다.
1. 패킷 헤더 내 PLUSI 비트;
2. 시퀀스 헤더 코드 (OxOO 0x00 0x01 0xB3);
3. 화상 시작 코드 (0x00 0x00 0x01 0x00).
항목 1을 찾는 것은 PLUSI 비트들 및 패킷 헤더를 찾는 것만에 의해 용이하며 이것이 1로 설정되어 있다면, 패킷은 PES 헤더부터 시작할 것이며, 이어서 이것은 전달될 수 있다. 항목들 2 및 3에 대한 상황은 시퀀스 헤더 코드 및 화상 시작 코드가 두 패킷들에 걸쳐 있을 수 있어 부분적으로 암호화된 코드들로 될 수 있기 때문에 보다 복잡하다. 그러므로, 이들 코드들의 직접적인 검출은 데이터의 일부 유실로 이어질 것이다. 그러나, 이 문제에 대한 해결책이 있다. MPEG2에서, 시퀀스 확장부 및 화상 부호화 확장부의 존재는 도 60에 도시된 바와 같이 필수이다.
도 60은 시퀀스 헤더 유닛(6000), 시퀀스 확장부 유닛(6001), 확장부 및 사용자 유닛(6002), 화상 그룹 헤더 유닛(6003), 사용자 유닛(6004), 화상 헤더 유닛(6005), 화상 코딩 확장부 유닛(6006), 사용자 유닛(6007), 화상 데이터 유닛(6008) 및 시퀀스 끝 유닛(6009)을 포함하는 MPEG2에서의 헤더 구조를 도시한 것이다.
평문 패킷들에 대한 기준들이 공식화되는 방법은 이들 확장부들이 완전히 평문에 있을 것임을 보증할 수 있다. 이들은 먼저 0x00 0x00 0x01 0xB5인 확장부 시작 코드를 탐색함으로써 발견될 수 있다. 다음 4개의 비트들은 확장부 시작 코드 식별자이다. 이들 4개의 비트들은 시퀀스 확장부에 대해선 0001이고 화상 코딩 확장부에 대해선 1000이다. 시퀀스 확장부가 존재하여 있다면, 시퀀스 헤더 코드도 있을 것이며 동등하게, 화상 코드 확장부가 있다면 화상 시작 코드도 있을 것이다. 이것은 다음과 같이 된다:
시퀀스 확장부가 평문 영역에서 발견되고 시퀀스 헤더 코드가 이 동일 영역에서 검출되지 않는다면, 시퀀스 헤더 코드는 2개의 패킷들에 걸쳐 있을 것이며 시퀀스 헤더 코드의 마지막 바이트 혹은 바이트들은 있을 수 있는 PES 헤더를 무시하고 이 평문 영역의 제1 바이트들이다(시퀀스 헤더 코드(6100), 시퀀스 헤더(6101) 및 시퀀스 확장부(6102)를 나타낸 도 61을 참조).
화상 코딩 확장부가 평문 영역에서 발견되고 화상 시작 코드가 이 동일 영역에서 검출되지 않는다면, 화상 시작 코드들은 2개의 패킷들에 걸쳐 있을 것이며 화상 시작 코드의 마지막 바이트 혹은 바이트들은 있을 수 있는 PES 헤더를 무시하고 이 평문 영역의 제1 바이트들이다(화상 시작 코드(6200), 시퀀스 헤더(6201) 및 시퀀스 확장부(6202)를 나타낸 도 62를 참조).
이들 두 상황들이 한 평문 영역에서 동시에 결코 일어날 수 없는 것에 유의한다. 시퀀스 확장부 및 화상 코딩 확장부 둘 다가 존재한다면, 이들 사이에 위치된 화상 시작 코드는 불가피하게 완전히 평문으로 있을 것이다. 이 경우 시퀀스 헤더 코드만이 부분적으로 암호화될 수 있다. 물론, 시퀀스 헤더 코드 혹은 화상 시작 코드가 완전히 평문으로 되어 있고 따라서 간단하게 검출된다면, 대응하는 데이터의 전달은 즉시 시작할 수 있다. 그러나, 위의 상황들 중 하나에 마주친다면, 정확한 전달이 시작될 수 있기 전에 이들 코드들 중 얼마나 많은 바이트들이 평문 영역의 시작에 혹은 PEG 헤더 다음에 있는지를 먼저 알아야 한다. 화상 시작 코드에 대해 이것을 검출하는 방법은 시퀀스 헤더 코드에 대해 적용될 수 있다.
도 63은 2개의 패킷들에 걸쳐 있는 시퀀스 헤더 코드를 도시한 것이다.
시퀀스 헤더 코드에 대한 상황이 도 63에 도시되었다. 평문은 제4 바이트 이후부터만 보증된다. 이 바이트는 0x00 0x00 0x01 0xB3인 시퀀스 헤더 코드의 마지막 바이트이다. 따라서 시퀀스 헤더 코드가 존재하나 이 영역에서 검출되지 않는다면, 이의 마지막 바이트들 중 일부는 이 영역의 시작에 혹은 PEG 헤더 다음에 존재해야 한다. 화상 시작 코드에서와 같이 이들 바이트들 중 얼마나 많은 바이트들이 있는지를 정확하게 검출하는 것이 가능하다. 검출은 PES 헤더를 무시한 영역에서 제1 평문 바이트에서 시작할 것이다. 제1 바이트들이 0x00 0x01 0xB3이라면 3개의 바이트들이 있으며, 이들이 0x01 0xB3이라면 2개의 바이트들이 있으며 제1 바이트가 0xB3이라면 이 한 바이트만이 있다. 바이트의 수 및 따라서 시퀀스 헤더 코드의 마지막 바이트의 위치를 알 때 화상 시작 코드는 이 코드에 이어진 데이터의 정확한 전달을 할 수 있게 한다.
명세서에서 사용되는 약어 목록이 표 1에 제공된다.
AFLD 어댑테이션 필드 제어
BAT 부케(Bouquet) 연관 테이블 1
CA 조건부 액세스
CAT 조건부 액세스 테이블
CC 연속성 카운터
CW 제어 워드
CPI 특징점 정보
DIT 불연속 정보 테이블
DTS 디코딩 시간 스탬프
DVB 디지털 비디오 방송
ECM 자격 제어 메시지들
EMM 자격 관리 메시지들
GK 그룹 키
GKM 그룹 키 메시지
GOP 화상 그룹
HDD 하드 디스크 드라이브
KMM 키 관리 메시지
MPEG 동화상 전문가 그룹
NIT 네트워크 정보 테이블
PAT 프로그램 연관 테이블
PCR 프로그램 클럭 기준
PES 패킷화된 기본 스트림
PID 패킷 식별자
PLUSI 페이로드 유닛 시작 표시자
PMT 프로그램 맵 테이블
PTS 프리젠테이션 시간 스탬프
SIT 선택 정보 테이블
SCB 스크램블링 제어 비트들
STB 셋탑박스
SYNC 동기화 유닛
TEI 수송 오류 표시자
TPI 수송 우선도 유닛
TS 수송 스트림
UK 사용자 키
표 1 트릭-플레이에 관계된 용어들의 약어들
위에 언급된 실시예들은 본 발명을 제한하기보다는 예시하는 것이며 당업자들은 첨부된 청구항들에 의해 정의된 본 발명의 범위 내에서 많은 대안적 실시예들을 설계할 수 있을 것임에 유의한다. 또한, 기술된 실시예들 중 어느 것이든 예를 들면 배터리 혹은 누산기와 같은 내부 전류 공급과 같은 내재적 특징들을 포함한다. 청구항들에서, 괄호 내 임의의 참조부호들은 청구항들을 제한하는 것으로 해석되지 않을 것이다. "포함하다"라는 단어는 임의의 청구항 혹은 명세서 전반에 걸쳐 열거된 것들 이외의 요소들 혹은 단계들의 존재를 배제하지 않는다. 요소의 단수 참조는 이러한 요소들의 복수의 참조를 배제하지 않으며, 그 반대도 그러하다. 몇몇의 수단을 나열하는 장치 청구항에서, 이들 수단 중 몇 개는 하나의 동일 하드웨 어 아이템에 의해 실현될 수 있다. 어떤 조치들이 상호 서로 다른 종속 청구항들에서 인용된다는 사실이, 이들 조치들의 조합이 잇점을 얻기 위해 사용될 수 없다는 것을 나타내지 않는다. "데이터" 및 "콘텐트"라는 용어들은 텍스트에서 상호교환적으로 사용되었으나 같은 것으로서 이해해야 한다.

Claims (24)

  1. 데이터 스트림(1800)을 처리하는 장치(2300)에 있어서,
    이웃한 프레임들(1902)간에 해독된 프레임 경계 부분들(1901)을 포함하는 적어도 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을, 상기 프레임 경계 부분들(1901)에서 분할하는 분할 유닛(2305);
    분할된 프레임들(1902)을 미리결정된 복제 레이트(replication rate)에 따라 다수회 복제하기 위한 복제 유닛(2306); 및
    상기 복제된 분할된 프레임들(1902)을 연결하기 위한 연결 유닛(2307)을 포함하는, 데이터 스트림 처리 장치(2300).
  2. 제1항에 있어서, 상기 부분적으로 해독된 데이터 스트림(1900)을 형성하기 위해, 암호화된 데이터 스트림(1800)의 이웃한 프레임들(1902) 사이의 암호화된 프레임 경계 부분들을, 상기 해독된 프레임 경계 부분들(1901)로 선택적으로 대체하기 위한 해독 유닛(2304)을 포함하는, 데이터 스트림 처리 장치(2300).
  3. 제2항에 있어서, 상기 해독 유닛(2304)은 암호화된 데이터 스트림(1800)의 이웃한 프레임들(1902) 사이의 상기 암호화된 프레임 경계 부분들만을 상기 해독된 프레임 경계 부분들(1901)로 선택적으로 대체하고, 그 외 모든 다른 프레임 부분들(1902)을 암화화된 채로 유지하도록 구성된, 데이터 스트림 처리 장치(2300).
  4. 제2항에 있어서, 감소된 혹은 최소량의 해독된 부분들을 가진 트릭-플레이 스트림(trick-play stream; 2201)을 생성하기 위한 기초로서 상기 부분적으로 해독된 데이터 스트림(1900)을 형성하기 위해서, 상기 암호화된 프레임 경계 부분들을 상기 해독된 프레임 경계 부분들(1901)로 선택적으로 대체하도록 구성된, 데이터 스트림 처리 장치(2300).
  5. 제1항에 있어서, 상기 분할 유닛(2306)은 평문 패킷(plaintext packet; 1901)을 각각의 분할된 프레임(1902)의 시작부분에 삽입하도록 구성된, 데이터 스트림 처리 장치(2300).
  6. 제5항에 있어서, 상기 평문 패킷(1901)은 헤더 및/또는 어댑테이션 필드(Adaptation Field)를 포함하는, 데이터 스트림 처리 장치(2300).
  7. 제1항에 있어서, 상기 연결 유닛(2307)은 프레임 경계 부분(1901)이 2개의 프레임들(1902)에 걸쳐져 있는 위치들을 확인한 것에 기초하여 그리고 상기 확인된 위치들을 정정한 것에 기초하여, 상기 복제된 분할된 프레임들(1902)을 연결하도록 구성된, 데이터 스트림 처리 장치(2300).
  8. 제1항에 있어서, 상기 연결 유닛(2307)은 상기 분할된 프레임들(1902)의 적 어도 상기 프레임 경계 부분들(1901)의 부분의 크기를 판정하고 상기 판정된 크기에 기초하여 상기 분할된 프레임들(1902)을 연결하도록 구성된, 데이터 스트림 처리 장치(2300).
  9. 제8항에 있어서, 상기 연결 유닛(2307)은 상기 판정된 크기가 미리결정된 임계값을 초과한 경우 적어도 상기 프레임 경계 부분들(1901)의 부분의 상기 크기를 감소시키도록 구성된, 데이터 스트림 처리 장치(2300).
  10. 제8항에 있어서, 상기 연결 유닛(2307)은 상기 판정된 크기가 미리결정된 임계값 미만인 경우 적어도 상기 프레임 경계 부분들(1901)의 부분의 상기 크기를 증가시키도록 구성된, 데이터 스트림 처리 장치(2300).
  11. 제10항에 있어서, 상기 연결 유닛(2307)은 상기 데이터 스트림(1800)에 가외의 부분(extra portion)을 삽입함으로써 적어도 상기 프레임 경계 부분들(1901)의 부분의 상기 크기를 증가시키도록 구성된, 데이터 스트림 처리 장치(2300).
  12. 제1항에 있어서, 상기 데이터 스트림(1800)을 저장하기 위한 저장 유닛(2301)을 포함하는, 데이터 스트림 처리 장치(2300).
  13. 제1항에 있어서, 전체가 암호화된 데이터 스트림(1800)을 처리하게 구성된, 데이터 스트림 처리 장치(2300).
  14. 제1항에 있어서, 내부호화된 프레임, 순방향 예측 프레임 및 양방향 예측 프레임으로 구성된 그룹의 적어도 하나의 프레임을 포함하는 데이터 스트림(1800)을 처리하도록 구성된, 데이터 스트림 처리 장치(2300).
  15. 제1항에 있어서, 비디오 데이터 혹은 오디오 데이터의 데이터 스트림(1800)을 처리하도록 구성된, 데이터 스트림 처리 장치(2300).
  16. 제1항에 있어서, 디지털 데이터의 데이터 스트림(1800)을 처리하도록 구성된, 데이터 스트림 처리 장치(2300).
  17. 제1항에 있어서, 상기 처리된 데이터 스트림(2201)을 재현(reproduction)하기 위한 재현 유닛(2308)을 포함하고, 상기 재현 유닛(2308)은 상기 연결 유닛(2307)에 접속되는, 데이터 스트림 처리 장치(2300).
  18. 제1항에 있어서, 트릭-플레이 재현 모드에서 재현을 위해 상기 데이터 스트림(1800)을 처리하기 위한 생성 유닛(2302)을 포함하는, 데이터 스트림 처리 장치(2300).
  19. 제18항에 있어서, 상기 트릭-플레이 재현 모드는 저속-순방향 재현 모드, 저속-역방향 재현 모드, 정지 재현 모드, 스텝 재현 모드, 및 즉시 재생 재현 모드로 구성된 그룹 중 하나인, 데이터 스트림 처리 장치(2300).
  20. 제1항에 있어서, MPEG2 암호화된 데이터 스트림(1800)을 처리하게 구성된, 데이터 스트림 처리 장치(2300).
  21. 제1항에 있어서,
    디지털 비디오 레코딩 장치;
    네트워크 가능 장치;
    조건부 액세스 시스템;
    휴대 오디오 플레이어;
    휴대 비디오 플레이어;
    이동 전화;
    DVD 플레이어;
    CD 플레이어;
    하드디스크 기반 미디어 플레이어;
    인터넷 라디오 장치;
    컴퓨터;
    텔레비전 장치;
    공용 엔터테인먼트 장치; 및
    MP3 플레이어로 구성된 그룹 중 적어도 하나로서 실현되는, 데이터 스트림 처리 장치(2300).
  22. 데이터 스트림(1800)을 처리하는 방법에 있어서,
    이웃한 프레임들(1902)간에 해독된 프레임 경계 부분들(1901)을 포함하는 적어도 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을, 상기 프레임 경계 부분들(1901)에서 분할하는 단계;
    분할된 프레임들(1902)을 미리결정된 복제 레이트에 따라 다수회 복제하는 단계; 및
    상기 복제된 분할된 프레임들(1902)을 연결하는 단계를 포함하는, 데이터 스트림 처리 방법.
  23. 데이터 스트림(1800)을 처리하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능한 매체로서, 상기 컴퓨터 프로그램은 프로세서(2302)에 의해 실행될 때,
    이웃한 프레임들(1902)간에 해독된 프레임 경계 부분들(1901)을 포함하는 적어도 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을, 상기 프레임 경계 부분들(1901)에서 분할하는 단계;
    분할된 프레임들(1902)을 미리결정된 복제 레이트에 따라 다수회 복제하는 단계; 및
    상기 복제된 분할된 프레임들(1902)를 연결하는 단계를 제어 혹은 수행하게 구성되는, 컴퓨터 판독가능한 매체.
  24. 데이터 스트림(1800)을 처리하는 프로그램 구성요소로서, 상기 프로그램 구성요소는, 프로세서(2302)에 의해 실행될 때,
    이웃한 프레임들(1902)간에 해독된 프레임 경계 부분들(1901)을 포함하는 적어도 부분적으로 해독된 데이터 스트림(1900)의 이웃한 프레임들(1902)을, 상기 프레임 경계 부분들(1901)에서 분할하는 단계;
    분할된 프레임들(1902)을 미리결정된 복제 레이트에 따라 다수회 복제하는 단계; 및
    상기 복제된 분할된 프레임들(1902)를 연결하는 단계를 제어 혹은 수행하게 구성되는, 프로그램 구성요소.
KR1020087018105A 2005-12-23 2006-11-28 데이터 스트림 처리 장치 및 방법 KR20080081190A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05112870 2005-12-23
EP05112870.0 2005-12-23

Publications (1)

Publication Number Publication Date
KR20080081190A true KR20080081190A (ko) 2008-09-08

Family

ID=37949667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087018105A KR20080081190A (ko) 2005-12-23 2006-11-28 데이터 스트림 처리 장치 및 방법

Country Status (7)

Country Link
US (2) US8170210B2 (ko)
EP (1) EP1967002B1 (ko)
JP (1) JP2009521163A (ko)
KR (1) KR20080081190A (ko)
CN (1) CN101346992B (ko)
AT (1) ATE516666T1 (ko)
WO (1) WO2007072248A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US8325799B2 (en) * 2004-12-28 2012-12-04 Nec Corporation Moving picture encoding method, device using the same, and computer program
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
ES2709208T3 (es) 2007-01-05 2019-04-15 Sonic Ip Inc Sistema de distribución de vídeo que incluye reproducción progresiva
US8179979B2 (en) * 2007-05-01 2012-05-15 Intel Corporation Detection and compensation of discontinuities in data stream
EP2186340B1 (en) * 2007-08-09 2016-01-06 GVBB Holdings S.A.R.L A video data reproduction system
US8233768B2 (en) 2007-11-16 2012-07-31 Divx, Llc Hierarchical and reduced index structures for multimedia files
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US8059455B2 (en) * 2008-05-09 2011-11-15 Sandisk Il Ltd. Partial scrambling to reduce correlation
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
US20100057583A1 (en) * 2008-08-28 2010-03-04 The Directv Group, Inc. Method and system for ordering video content using a link
EP2192773A1 (en) * 2008-12-01 2010-06-02 Irdeto Access B.V. Content decryption device and encryption system using an additional key layer
JP4987034B2 (ja) * 2008-12-26 2012-07-25 三菱電機株式会社 映像表示装置
JP5229066B2 (ja) * 2009-03-31 2013-07-03 日本電気株式会社 動画配信装置、動画受信装置、動画配信方法、動画受信方法、および、プログラム
JP5279589B2 (ja) * 2009-04-13 2013-09-04 キヤノン株式会社 映像記録再生装置およびその制御方法
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US20120134529A1 (en) * 2010-11-28 2012-05-31 Pedro Javier Vazquez Method and apparatus for applying of a watermark to a video during download
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US8687807B2 (en) * 2011-01-26 2014-04-01 Nagrastar, L.L.C. Cascading dynamic crypto periods
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
JP5938655B2 (ja) * 2012-01-11 2016-06-22 パナソニックIpマネジメント株式会社 再生装置、撮像装置およびプログラム
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9355279B1 (en) * 2013-03-29 2016-05-31 Secturion Systems, Inc. Multi-tenancy architecture
JP2014232924A (ja) * 2013-05-28 2014-12-11 ソニー株式会社 受信装置、パケット境界決定方法及びコンピュータプログラム
KR102103903B1 (ko) * 2013-08-13 2020-05-29 삼성전자주식회사 송신 장치, 수신 장치 및 그 데이터 처리 방법
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
US20150350622A1 (en) 2014-05-30 2015-12-03 Apple Inc. Packed i-frames
US9397833B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
US9397832B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
MX2017006830A (es) * 2014-11-25 2017-11-23 Arris Entpr Llc Detección de rellenador durante parada, pausa, retroceso y avance rápidos (trickplay).
KR102012682B1 (ko) 2015-01-06 2019-08-22 디브이엑스, 엘엘씨 디바이스들간에 콘텐트를 인코딩 및 공유하기 위한 시스템들 및 방법들
CN105049941B (zh) * 2015-06-24 2017-06-30 广州酷狗计算机科技有限公司 一种多媒体文件的处理方法及装置
EP3112985A1 (en) * 2015-06-30 2017-01-04 Nokia Technologies Oy An apparatus for video output and associated methods
GB2543080A (en) * 2015-10-08 2017-04-12 Starfish Tech Ltd Digital media splicing system and method
US10142707B2 (en) * 2016-02-25 2018-11-27 Cyberlink Corp. Systems and methods for video streaming based on conversion of a target key frame
US10586067B2 (en) * 2017-02-22 2020-03-10 International Business Machines Corporation System and method of protecting digitally transferred data
CN110609822B (zh) * 2018-06-15 2023-02-28 伊姆西Ip控股有限责任公司 数据流处理方法、设备和计算机程序产品
CN110009945A (zh) * 2019-04-19 2019-07-12 潘巧娃 一种智能图书
US11637776B2 (en) * 2021-04-27 2023-04-25 Realtek Singapore Pte Ltd. Network device and packet replication method
CN115982786B (zh) * 2023-03-20 2024-01-05 马云生 通过频率混淆实现的多芯片并行加密方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157391A (en) * 1994-01-10 2000-12-05 International Business Machines Corporation Method and apparatus for providing slow motion video at normal motion play speed
GB9417138D0 (en) * 1994-08-23 1994-10-12 Discovision Ass Data rate conversion
US6389218B2 (en) * 1998-11-30 2002-05-14 Diva Systems Corporation Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence
JP2001024994A (ja) * 1999-07-07 2001-01-26 Matsushita Electric Ind Co Ltd 送信装置、受信装置、記録装置及びプログラム記録媒体
JP2001103444A (ja) * 1999-10-01 2001-04-13 Matsushita Electric Ind Co Ltd パケット暗号化装置およびプログラム記録媒体
DE60013624T2 (de) 1999-10-07 2005-10-13 Thomson Licensing S.A. Trickwiedergabesignalerzeugung für einen digitalen videorekorder
IL132859A (en) 1999-11-10 2008-07-08 Nds Ltd Data stream processing system
US6658199B1 (en) * 1999-12-16 2003-12-02 Sharp Laboratories Of America, Inc. Method for temporally smooth, minimal memory MPEG-2 trick play transport stream construction
JP2002016919A (ja) * 2000-04-28 2002-01-18 Sony Corp 情報送信方法及び装置、情報受信方法及び装置、情報記録方法及び装置、並びに、情報記録再生方法及び装置
JP4337248B2 (ja) * 2000-08-31 2009-09-30 ソニー株式会社 画像情報の伝送装置、伝送システムおよび伝送方法
US6963612B2 (en) 2001-08-31 2005-11-08 Stmicroelectronic, Inc. System for detecting start codes in MPEG video streams and method of operating the same
JP2003078877A (ja) * 2001-09-06 2003-03-14 Fujitsu Ltd 画像処理装置
JP2003143553A (ja) * 2001-11-01 2003-05-16 Matsushita Electric Ind Co Ltd 情報処理装置
WO2003071799A2 (en) * 2002-02-22 2003-08-28 Nds Limited Scrambled packet stream processing
US20050207576A1 (en) * 2002-06-12 2005-09-22 Koninkijke Philips Electronic N.V. Method and apparatus for processing a stream that contains encrypted information
CN1396742A (zh) * 2002-08-02 2003-02-12 清华大学 基于流媒体技术的播放器变速播放实现方法
GB2404467A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital content
US20050222847A1 (en) * 2004-03-18 2005-10-06 Singhal Manoj K System and method for time domain audio slow down, while maintaining pitch
US8677504B2 (en) * 2005-07-14 2014-03-18 Qualcomm Incorporated Method and apparatus for encrypting/decrypting multimedia content to allow random access
US20070083467A1 (en) * 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data

Also Published As

Publication number Publication date
CN101346992A (zh) 2009-01-14
ATE516666T1 (de) 2011-07-15
CN101346992B (zh) 2010-12-22
US20080317246A1 (en) 2008-12-25
JP2009521163A (ja) 2009-05-28
WO2007072248A3 (en) 2007-10-25
EP1967002B1 (en) 2011-07-13
US20120213363A1 (en) 2012-08-23
US8170210B2 (en) 2012-05-01
WO2007072248A2 (en) 2007-06-28
EP1967002A2 (en) 2008-09-10

Similar Documents

Publication Publication Date Title
US8170210B2 (en) Device for and a method of processing data stream
RU2407214C2 (ru) Устройство и способ обработки потока данных, имеющего последовательность пакетов и информацию синхронизации, относящуюся к пакетам
US20080304810A1 (en) Device for and a Method of Processing an Input Data Stream Comprising a Sequence of Input Frames
US20080170687A1 (en) Device for and a Method of Processing an Encrypted Data Stream
US9390754B2 (en) Video trick mode system
US20080212774A1 (en) Device for and a Method of Processing an Encrypted Data Stream in a Cryptographic System
KR100821575B1 (ko) 디지털 비디오 기록물의 데이터 처리 장치 및 방법과, 데이터 처리 방법에 의해 생성되는 기록물을 기록한 컴퓨터가 판독할 수 있는 기록매체와, 데이터 재생장치 및 데이터 재생방법 및, 데이터 재생방법에 의해 편집된 데이터 시퀀스를 재생하는 신호를 기록한 컴퓨터로 판독할 수 있는 기록매체
WO2006114761A1 (en) A device for and a method of detecting positions of intra-coded frames in a data stream
JP2010508733A (ja) 資源の効率的な使用によるデジタル・ビデオ・レコーダにおけるトリック再生機能の実行
WO2007072257A1 (en) A device for and a method of processing an encrypted data stream
WO2007072252A2 (en) Creation of &#39;trick-play&#39; 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
WO2007072419A2 (en) A device for and a method of processing a data stream
WO2007072242A1 (en) A device for and a method of processing an encrypted data stream
JP2008153955A (ja) 映像記録再生装置、その特殊再生方法
MX2007012939A (en) A device for and a method of processing an encrypted data stream for trick play

Legal Events

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