KR20120050446A - 데이터 스트림의 인증 방법 - Google Patents

데이터 스트림의 인증 방법 Download PDF

Info

Publication number
KR20120050446A
KR20120050446A KR1020127003331A KR20127003331A KR20120050446A KR 20120050446 A KR20120050446 A KR 20120050446A KR 1020127003331 A KR1020127003331 A KR 1020127003331A KR 20127003331 A KR20127003331 A KR 20127003331A KR 20120050446 A KR20120050446 A KR 20120050446A
Authority
KR
South Korea
Prior art keywords
frames
data stream
data
encryption value
encryption
Prior art date
Application number
KR1020127003331A
Other languages
English (en)
Other versions
KR101489364B1 (ko
Inventor
라인홀트 뵘
알렉산더 그로에쉘
홀거 호에리흐
데니얼 홈
볼프강 아. 쉴트바흐
미하엘 슈그
올리버 바츠케
마틴 볼터스
토마스 지에글러
Original Assignee
돌비 인터네셔널 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 돌비 인터네셔널 에이비 filed Critical 돌비 인터네셔널 에이비
Publication of KR20120050446A publication Critical patent/KR20120050446A/ko
Application granted granted Critical
Publication of KR101489364B1 publication Critical patent/KR101489364B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00166Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software
    • G11B20/00173Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised contents recorded on or reproduced from a record carrier, e.g. music or software wherein the origin of the content is checked, e.g. determining whether the content has originally been retrieved from a legal disc copy or another trusted source
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00188Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised devices recording or reproducing contents to/from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H20/00Arrangements for broadcast or for distribution combined with broadcast
    • H04H20/28Arrangements for simultaneous broadcast of plural pieces of information
    • H04H20/30Arrangements for simultaneous broadcast of plural pieces of information by a single channel
    • H04H20/31Arrangements for simultaneous broadcast of plural pieces of information by a single channel using in-band signals, e.g. subsonic or cue signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/37Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/68Systems specially adapted for using specific information, e.g. geographical or meteorological information
    • H04H60/73Systems specially adapted for using specific information, e.g. geographical or meteorological information using meta-information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • 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/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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
    • 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/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • G11B2020/00028Advanced audio coding [AAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/50Aspects of broadcast communication characterised by the use of watermarks

Abstract

본 발명은 데이터 스트림들의 인증 및 검증을 위한 기술에 관련된 것이다. 특히, 본 발명은 돌비 펄스(Dolby Pulse), AAC 또는 HE AAC 비트스트림과 같은 데이터 스트림에 식별자를 삽입하는 것에 관련되며, 그러한 식별자에 기초한 데이터 스트림의 인증 및 검증과 관련된 것이다. 복수의 데이터 프레임들을 포함하는 데이터 스트림을 인코딩하기 위한 본 발명의 방법 및 시스템이 기술된다. 방법은 구성 정보 및 연속된 데이터 프레임들의 수 N의 압호화 값을 생성하는 단계를 포함한다. 여기서, 구성 정보는 데이터 스트림을 랜더링하는 정보를 포함한다. 그런 다음, 방법은 압호화 값을 N개의 이어지는 데이터 프레임들 다음의 데이터 스트림에 삽입한다.

Description

데이터 스트림의 인증 방법{AUTHENTICATION OF DATA STREAMS}
본 발명은 데이터 스트림들의 인증 및 검증을 위한 기술에 관련된 것이다. 특히, 본 발명은 돌비 펄스(Dolby Pulse), AAC 또는 HE AAC 비트스트림과 같은 데이터 스트림에 식별자를 삽입하는 것에 관련되며, 그러한 식별자에 기초한 데이터 스트림의 인증 및 검증과 관련된 것이다.
디지털 TV 및 라디오 시스템의 확장이 증가로, 데이터 스트림 예컨대, 비디오 데이터 및/또는 오디오 데이터를 포함하는 데이터 스트림은 더욱더 자주 브로드캐스트되어진다. 실제 비디오 및/또는 오디오 콘텐츠에 추가하여, 그러한 데이터 스트림은 스테레오 다운믹스 및 다른 구성들의 제어를 허용하는 것은 물론이요, 예컨대, 프로그램 음량 및 동적 범위의 수신측 제어를 허용하는 메타데이터를 더 포함한다.
전형적인 네트워크 시나리오들에서, 비디오 프레임들 및/또는 오디오 프레임들과, 그들과 관련된 메타데이터는 브로드캐스팅 헤드엔드 시스템에서 인코딩된다. 이러한 목적에 대해, Dolby E, Dolby Digital, AAC, HE AAC, DTS 또는 Dolby Pulse와 같은, 다양한 인코딩 스킴들이 사용될 수 있다. 이러한 인코딩 스킴들 중 몇몇, 특히, Dolby Pulse, AAC 및 HE AAC는 라디오(예, FM 주파수 밴드, DVB/T, ATSC), 뒤틀린 구리선(DSL), 동축 케이블(coaxial cables)(예, CATV) 또는 광학 섬유들과 같은 다양한 전송 매체 상의 전송에 특히 제대로 들어맞는다. 예컨대, TV 세트, 라디오 수신기, 퍼스널 컴퓨터 또는 셋탑 박스와 같은 수신기는 적합한 디코더를 가지고, 디코딩된 미디어 스트림을 제공한다. 추가로, 수신기는 일반적으로, 비디오 및/또는 오디오 데이터를 수반하는 메타데이터를 통해 시그날링하는 제어 구성들을 제공한다.
코딩/디코딩 스킴의 예들은 MPEG-4 AAC에 대한 ISO/IEC 14496-3 (2005) "Information technology - Coding of audio-visual objects - Part 3: Audio"에 정의되어 있으며, MPEG-2 AAC에 대해 ISO/IEC 13818-7 (2003) "Generic Coding of Moving Pictures and Associated Audio information - Part 7: Advanced Audio Coding (AAC)"에 정의되어 있다. 이들은 참조로써 본 문서에 포함된다.
인증 및/또는 식별에 대한 몇몇 기술들은 알려져 있다. 어떤 것은 코딩된 멀티미디어 데이터 내의 데이터 인증 및/또는 식별을 내장하는 것에 의존한다. 이러한 기술들은 또한 워터마킹으로 알려져 있으며, 특히, 저작권 보호를 위해 설계된다. 인증 및/또는 식별자에 대한 더한 기술은 디지털 사인이며, 여기서, 분리된 인증 데이터가 이메일과 같은, 데이터 파일들과 함께 제공되며, 인증 및 식별에 대한 목적으로 사용된다.
데이터 스트림들의 수신기가 데이터 스트림의 인코더를 식별할 수 있도록 하기 위하여, 데이터 스트림과 함께 인증 수단을 제공하는 것이 요구된다. 이는 데이터 스트림의 무결성을 검증하는 데에 이득이 될 수 있다. 추가로, 이는 플레이백(played back) 또는 처리되는 데이터 스트림을 고려한 수신기의 정확한 구성을 보장하는 데에 이득이 될 수 있다. 게다가, 이는 적합하게 인증 및/또는 검증된 데이터 스트림에 대해 서비스가 추가된 값 또는 특별 제어 기능들을 구현하도록 하는 데에 이득이 될 수 있다. 이들 및 다른 이슈는 제안된 발명의 문헌에서 다루어질 것이다.
본 발명의 목적은 데이터 스트림의 인증 방법 및 장치를 제공함에 있다.
제안된 방법 및 시스템은 데이터 스트림 내에서 메타데이터로써 제공되는 식별자를 이용한다. 그러한 데이터 스트림은 바람직하게 유선 또는 무선 전송 매체 상에 전송되는 데이터 스트림이다. 하지만, 데이터 스트림은 또한, CD, DVD 또는 플래시 메모리와 같은, 데이터 스토리지 매체로 제공될 수도 있다. 식별자는 수신측의 디코더가 데이터 스트림이 신뢰되는 인코더로부터 데이터를 수신된 것인지 여부를 판별하도록 할 수 있다. 즉, 전송 및/또는 인코딩 측에서 정당한 인코더로부터 수신된 것인지 여부를 판별하도록 할 수 있다. 그러한 검증은, 디코더가 인코더들의 다른 형식들에 호환되면 특히, 이득이 될 수 있다. 예시적인 방법에 의해, 돌비 펄스(Dolby Pulse) 디코더는 HE-AAC 버전 2 인코더와 호환될 수 있다. 그러한 시나리오에서, 트래픽, 즉, 데이터 스트림들이 적합한 돌비 펄스 인코더로부터 유래되면, 돌비 펄스 디코더가 어떤 추가의 비-표준 또는 비-의무적인 구성을 제공하도록 요구될 수 있다. 그러한 식별자를 사용하는 것에 의해, 돌비 펄스 디코더는 적합한 돌비 펄스 인코더로부터 생성된 데이터 스트림 또는 비트스트림과 어떤 임의의 HE-AAC 버전 2 호환 인코더에 의해 생성된 데이터 스트림 또는 비트스트림을 구별할 수 있다. 그런, 추가 구성, 예컨대, 동적 메타데이터의 사용은 데이터 스트림이 신뢰되는 인코더로부터 유래되면, 디코더에 의해 고려되는 것이 보장된다. 이렇게 함으로써, 정확한 추가 구성들의 정확한 기능이 보장될 수 있다.
식별자의 추가 이득은 디코더가 비트스트림이 정확한 방식으로 수신되었고, 비트스트림이 전송 동안, 수정되거나, 또는, 변경되지 않았음을 검증할 수 있는 것이다. 다른 말로, 식별자는 디코더가 수신된 비트스트림의 무결성을 검증할 수 있도록 한다.
게다가, 식별자는 디코더가 적합하게 미디어/멀티미디어 신호를 랜더링하기 위하여, 올바른 절차, 예컨대, 플레이 백(play back), 구성을 설정하는 것을 보장한다. 예에 의한 방법에 의해, 그러한 구성은 미디어 신호가 플레이 백(played back)되는 샘플링 주파수에서 유도될 수 있다. 그러한 구성은 플레이 백에서 사용되어지는, 예컨대, 2 채널 스테레오, 다른 서라운드 사운드 세팅들, 등의 채널 구성에서 유도될 수 있다. 추가 구성 측면은 개별 코딩 스킴에서 사용되어지는, AAC의 경우에서, 예컨대, 1024 샘플 프레임들 또는 960 샘플 프레임들과 같은, 프레임 길이에서 유도될 수 있다.
인코더 식별 및 인증 목적을 제외하고, 식별자는 데이터 스트림의 페이로드의 인증을 검증하는 데에 사용될 수 있다. 이러한 목적에 있어, 식별자는 쉽게 지어낼 수 있지 않아야 하며, 보호된 세그먼트의 조작은 식별될 수 있어야 한다. 게다가, 이는 디코더가 비교적 짧은 시간 간격들에서 비트스트림의 인증을 식별하는 것이 요구된다. 스트림이 1초를 초과하지 않을 때, 디코더 또는 디코딩 디바이스가 인증 비트스트림을 식별할 때까지가 최대 시간인 것이 바람직하다. 추가로, 디코더의 식별자의 검증에 의해 도입되는 복잡도는 낮게 유지되어야 한다. 즉, 디코더 복잡도 증가는 무시되어야 한다. 마지막으로, 식별자에 의해 도입되는 전송 오버헤드는 낮게 유지되어야 한다.
실시예에 따르면, 상술한 이득들은 암호화 값 또는 다음의 방법에 따라 유도된 식별자의 사용에 의해 달성될 수 있다. 식별자는 하나 이상의 데이터 프레임들의 그룹에 대해 일-방식 함수를 적용하여 인코더에서 판별될 수 있다. 프레임은 전형적으로 예컨대, 미디어 스트림의 샘플들의 주어진 수를 포함하는, 오디오 스트림 및/또는 비디오 스트림의 어떤 세그먼트와 관련된 데이터를 포함한다. 예에 의하면, 오디오 스트림의 프레임은 오디오 데이터의 1024 샘플들 및 대응하는 메타데이터를 포함할 수 있다.
전술한 바와 같이, 식별자를 판별하기 위한 목적으로, 몇 개의 프레임들이 그룹화된다. 각 그룹에서 프레임들의 수는 인코더에 의해 선택되며, 전형적으로, 인코더에 의해 사전에 알려지지 않아야만 한다. 일-방향 함수는, SHA-I와 같은 다른 해시 함수들이 MD5 대신 사용될 수 있지만, HMAC-MD5(해시 메시지 인증 코드) 암호화 해시 함수가 되는 것이 바람직하다. 적합한 암호화 해시 함수를 선택하기 위한 가능한 기준은 이의 크기가 될 수 있다. 이는 요구되는 전송 오버헤드를 감소시키기 위하여, 작아야 한다. 함호화 해시 함수의 크기는 전형적으로 이의 비트 수에 의해 주어진다.
프레임들의 그룹에 대한 식별자가 예컨대, HMAC-MD5 절차를 이용하여 산출되어지면, 프레임들의 다음 그룹의 프레임에, 예컨대, 삽입되어진, 관련되어질 수 있다. 예시적인 방법에 의해, 식별자는 데이터 필드 또는 프레임의 구문 요소에 기록될 수 있다. 바람직하게, 식별자는 후속의 프레임들의 그룹의 제1 프레임에 삽입된다. 이는 식별자가 이코더/디코더에 대한 추가 레이턴시의 도입 없이, 원-패스 오퍼레이션으로 산출되어지도록 한다. 이는 특히 실시간 미디어 전송에 이득이 된다. 식별자를 포함하는 데이터 스트림은, 그러면, 대응하는 수신기들/디코더들에 전송되어진다.
수신기에서, 삽입된 식별자는 인코더 식별, 인증, 검증 및/또는 구성 목적을 위해 사용되어진다. 수신기는 전형적으로 디코더를 포함한다. 이 디코더는 프레임들의 그룹에 동기된다. 즉, 이는 식별자를 포함하는 프레임들을 판별한다. 식별자를 포함하는 2개의 연속된 프레임들의 사이의 거리에 기초하여, 식별자를 산출하는 데에 사용되어지는 프레임들의 그룹 당 프레임들의 수가 결정될 수 있다. 다른 말로, 이는 디코더가, 대응하는 인코더로부터의 통지(notification) 없이, 프레임들의 그룹의 길이를 결정하도록 한다.
디코더는 수신된 프레임들의 그룹에 대한 식별자를 산출할 수 있다. 수신된 프레임들의 그룹에 기초하여 산출된 식별자는 검증 식별자라고 칭한다. 식별자는 연속된 프레임들의 그룹의 제1 프레임에 삽입된다고 가정한다. 그러면, 각 프레임들의 그룹은 앞선 프레임들의 그룹에 대한 식별자를 포함하는 첫 번째(제1) 프레임으로 시작하며, 이는 현재 프레임들의 그룹에 대한 식별자를 포함하는 다음 프레임에 앞선 프레임으로 끝난다. 현재 프레임들의 그룹에 대해 검증 식별자는 상술한 바와 같은 방법에 따라 산출될 수 있다.
추가 단계에서, 디코더는 후속 프레임들의 그룹의 각 프레임으로부터 인코더에 의해 전송된 식별자를 추출할 수 있다. 다시, 만약, 인코더에서, 식별자가 연속되는 프레임들의 그룹의 제1 프레임에 삽입되어 있다면, 수신기는 또한, 제1 프레임으로부터 식별자를 추출한다. 데이터 스트림으로부터 추출된 식별자는 검증 식별자, 즉, 수신된 데이터 스트림에 기초한 디코더에 의해 산출된 식별자와 비교할 수 있다. 양쪽 식별자들이 매치되면, 디코더는 전형적으로, 전송 동안 에러가 발생하지 않았으며, 프레임들의 그룹이 온전히 수신되었고, 프레임들의 그룹이 전송 동안 수정되지 않았으며, 프레임들의 그룹이 신뢰되거나 및/또는 정당한 인코더로부터 수신된 것으로 추정할 수 있다. 추가로, 양쪽의 식별자가 매치되면, 디코더는 임시 비트스트림이 디코딩되었을 때, 가능하지 않았던, 하나 이상의 코덱 특정 구성들 또는 개선을 선택할 수 있다. 예에 의하면, 추가 서비스들이 디코더가 돌비 펄스 특정 비트스트림으로 식별한 경우에는 가능하다. 반면, 그러한 추가 서비스들이 표준 HE-AAC 버전 2로 인코딩된 비트스트림에 대해서는 가능하지 않다.
그럼에도 불구하고, 디코더는 표준 HE-AAC 버전 2로 인코딩된 비트스트림을 디코딩할 수 있다. 하지만, 추가 서비스는 이용할 수 없다.
미디어 스트림을 정확하게 디코딩 및/또는 플레이 백하기 위한 적합한 구성은 디코더에 설정되어야 하는 점을 추가로 언급한다. 그러한 경우, 검증 식별자와 전송된 식별자의 매칭은 디코더가 정확한 구성 설정을 사용하는 것을 나타낸다.
만약, 다른 한편, 식별자, 즉, 검증 식별자 및 전송된 식별자가 매치되지 않으면, 디코더는, 그러면, 전송 동안 에러가 발생하였거나, 프레임들의 그룹이 온전하게 수신되지 않았거나, 프레임들의 그룹이 전송 동안 수정되었거나, 또는, 프레임들의 그룹이 신뢰되는 인코더로부터 수신되지 않은 것으로 추정할 수 있다. 이러한 경우, 디코더는 완전히 사용되지 않거나, 또는 대안적인 특정 구성들 또는 개선들이 사용되지 않는다.
식별자는 또한 디코더에 잘못된 구성 설정이 설정되었음을 알리기 위하여 사용되어짐을 언급한다. 그러한 경우, 검증 식별자 및 전송된 식별자간의 미스매치는, 프레임들의 그룹이 신뢰되는 인코더로부터 온전히 수신되었음에도 불구하고, 디코더가 잘못된 구성 설정을 사용한다는 사실에 기인한 것일 수 있다. 이는 그러한 경우에서 고려될 수 있다. 즉, 디코더는 이의 구성을 설정을 수정하고, 검증 식별자가 전송된 식별자와 매치될 때까지 대응하는 검증 식별자를 판별하도록 동작하도록 할 수 있다. 이는 디코더가 실제로 이의 구성을 수신된 비트스트림의 요구사항에 맞춰 설정하도록 하는 것이다.
다음에서, 제안된 방법의 다른 양상들이 설명된다. 제1 양상에 따르면, 복수의 데이터 프레임을 포함하는 데이터 스트림을 인코딩하기 위한 방법이 설명된다. 데이터 스트림들은 오디오, 비디오, 및/또는 다른 미디어 및 멀티미디어가 될 수 있다. 특히, 데이터 스트림은 Dolby Pulse, AAC 또는 HE-AAC 데이터 스트림이 될 수 있다. 데이터 스트림들은 전형적으로, 몇 개의 데이터 샘플들을 포함하며, 데이터 스트림의 몇 개의 세그먼트를 커버하는 데이터 프레임들로 조직된다. 예시적인 방식에 의해, 프레임은 44.1 kHz의 샘플링 레이트에서 샘플링된 오디오 신호의 1024 샘플들을 포함할 수 있다. 즉, 이는 약 23ms의 세그먼트를 커버한다. 샘플들은 상수 또는 변수 비트 레이트에서 인코딩될 수 있고, 프레임 내의 실제 비트들의 수는 다양할 수 있다.
방법은 제1 메시지를 형성하기 위하여 연속된 데이터 프레임들의 수 N을 그룹핑하는 단계를 포함할 수 있다. 연속된 데이터 프레임들의 수 N은 데이터 레이트 오버헤드 고려에 따라 전형적으로 선택된다. 일반적으로 오버헤드는 수 N이 증가함에 따라 감소된다. N은 바람직하게 1 보다 크다. N에 대한 전형적인 값은 약 20이다. 바람직한 실시예에서, N은, 적합한 디코더를 가지는 대응하는 디코더에서 플레이 백될 때, N개의 연속된 프레임들이 대응하는 신호의 0.5 초를 커버하도록 선택될 수 있다. 그룹핑하는 단계는 그들 본래의, 즉, 스트림, 순서로 N개의 연속된 프레임들을 연결하는 것을 포함하는 것을 언급한다.
추가 단계에서, 제1 메시지가 제2 메시지를 형성하기 위하여, 구성 정보로 그룹핑될 수 있다. 그러한 구성 정보는 데이터 스트림의 외부의 정보를 포함하며, 이는 전형적으로 데이터 스트림, 특히, 수신 측에서 데이터 스트림을 랜더링하기 위한 정보에 관련된다. 구성 정보는 데이터 스트림을 처리하기 위하여 사용되는 각 수신기 및/또는 디코더의 설정들에 관련된 정보를 포함한다. 그러한 구성 정보는 전형적으로 전송되거나, 또는, 데이터 스트림에 포함되지 않으며, 이는 또한 대역외(out-of-band) 데이터로 나타낼 수 있다. 이는 대역내 데이터로 나타낼 수 있는 데이터 스트림에 반대이다.
구성 정보는 다양한 방법으로, 제1 메시지에 그룹핑될 수 있다. 이는 제1 메시지에 연결될 수 있다. 즉, 제1 메시지의 시작 및/또는 끝에 배치될 수 있다. 구성 정보는 또한 제1 메시지 내의 어떤 위치에 배치될 수 있다. 예컨대, 연속된 프레임들의 일부 또는 전부 사이에 배치될 수도 있다.
구성 정보에 대한 전형적인 실시예는 기초 아날로그 미디어 스트림을 샘플링하기 위해 사용되어지는 샘플링 레이트의 지시자를 포함할 수 있다. 구성 정보는 또한 모노, 2 채널 스테리오 또는 5.1 서라운드 사운드 채널 구성과 같은 오디오 코딩 시스템의 채널 구성의 지시자를 포함할 수 있다. 이는 또한 예컨대, 데이터 프레임 당 960, 1024 또는 2048 샘플들과 같은, 데이터 프레임에서 샘플들의 수의 지시자를 포함할 수 있다.
방법은 제1 및/도는 제2 메시지의 암호화 값을 생성하는 단계를 더 포함한다. 암호화 값은 또한 식별자로써 나타낼 수 있다. 암호화 값은 키 값 및 암호화 해시 함수를 이용하여 생성할 수 있다. 특히, 암호화 값은 제1 및/또는 제2 메시지에 대한 HMAC-MD5 값을 산출하는 것에 의해 생성될 수 있다. 게다가, 암호화 값의 생성은 예컨대, 16, 24, 32, 48 또는 64 비트들로 절삭하는 것과 같이, HMAC-MD5 값을 절삭하는 것을 포함할 수 있다. 이는 데이터 스트림에서 암호화 값에 대해 요구되는 오버헤드를 감소하기 위한 관점에서 이득이 될 수 있다.
게다가, 방법은 암호화 값을 N개의 연속된 데이터 프레임들에 후속하는 데이터 스트림에 삽입하는 것을 포함한다. 바람직하게, 암호화 값은 대응하는 디코더에서 빠른 디코딩 및 인코더 인증과 검증을 하도록 하기 위하여, N개의 데이터 프레임들 다음의 제1 프레임에 삽입된다. N개의 연속된 데이터 프레이들에 후속하는 동기 지시자를 삽입하는 것이 유익하다. 여기서, 동기 지시자는 암호화 값이 삽입되었음을 나타낸다. 그러한 동기 지시자는 대응하는 디코더에서 암호화 값의 추출의 편의를 제공하도록 암호화 값의 부근에 배치될 수 있다.
본 발명의 실시에에서, 데이터 스트림은 MPEG4-AAC 또는 MPEG2-AAC 스트림이며, 암호화 값은 데이터 스트림 요소 <DSE>로서 삽입된다. 그러한 데이터 스트림 요소 <DSE>는 프레임의 끝 <TERM> 요소의 앞에 삽입될 수 있다. 게다가, 그러한 데이터 스트림 요소 <DSE>의 컨텐츠는 대응하는 디코더에서 데이터 스트림 요소 <DSE>, 특히, 암호화 값 및/또는 동기 지시자의 추출을 단순화하기 위하여, 데이터 스트림의 바이트 바운더리에 정렬되는 것이 바람직하다.
암호화 값을 생성하는 단계는 N개의 연속된 프레임들의 그룹의 개별 프레임들에서 반복적으로 수행되는 것이 바람직하다. 이 목적에 따라, 시작 상태를 이용하는 N개의 연속된 프레이들의 각각에 대해 임시 암호화 값이 생성될 수 있다. 시작 상태는 앞선 반복의 임시 암호화 값이 될 수 있다. 예시적인 것에 의해, 임시 암호화 값은 제1 프레임에 대해 생성될 수 있다. 그러면, 이 임시 암호화 값은 제2 프레임의 임시 암호화 값을 생성하기 위한 시작 상태로서 사용될 수 있다. 이 프로세스는 N번째 프레임이 임시 암호화 값이 생성될 때까지 반복된다. 이 후자(마지막의) 임시 암호화 값은 전형적으로 N개의 연속된 프레임들의 그룹의 암호화 값으로 나타낸다. 구성 정보를 고려하기 위하여, 첫 번째 반복의 시작 상태는 구성 정보의 임시 암호화 값이 될 수 있다.
바람직한 실시예에서, N개의 연속된 데이터 프레임들의 블록의 암호화 값은 앞선 N개의 연속된 데이터 프레임들의 블록의 암호화 값을 포함하는 N개의 연속된 데이터 프레임의 블록 상에 생성될 수 있다. 이렇게 함에 의해, 연결된(interconnected) 암호화 값의 스트림이 생성될 수 있다.
다른 양상에 따르면, 방법은 데이터 스트림의 비디오 및/또는 오디오 인코더 간에 상호작용(interacting)하는 단계를 포함할 수 있다. 이는 통합되는 방식에서 암호화 값의 생성하는 것과 함께, 비디오 및/또는 오디오 인코딩을 수행하는 것에 의해 구현될 수 있다. 특히, 데이터 스트림의 비디오 및/또는 오디오 인코더 사이의 상호작용과 암호화 값의 생성은 암호화 값을 포함하는 데이터 스트림의 비트 레이트가 미리 결정된 값을 초과하지 않게 비디오 및/또는 오디오 인코더에 대한 최대 비트 레이트를 설정하도록 할 수 있다. 이는 만약, 기초 데이터 스트림 코덱이 완전한 데이터 스트림에 대한 상위 비트 레이트 제한 설정하는 경우, 특히 유리할 수 있다.
또 다른 양상에 따라, 디코더 및/또는 수신기에서 데이터 스트림을 검증하기 위한 방법이 설명된다. 기술된 방법 및 시스템은 스토리지 매체 상에 제공되는 데이터 스트림들과 함께, 전송된 데이터 스트림들의 콘텍스트에서 적용할 수 있다. 전술한 바와 같이, 데이터 스트림은 전형적으로, 복수의 데이터 프레임들과 이전의 연속된 데이터 프레임들의 수 N에 관계된 암호화 값을 포함한다. 레퍼런스는 이 문헌에서 만들어진, 특히, 데이터 스트림 및 이의 프레임들의 구조 및 N에 대한 가능한 값들을 고려하여 만들어졌다.
방법은 제1 메시지를 형성하기 위하여, N개의 연속된 데이터 프레이들을 추출하는 단계를 포함한다. 방법은 또한, 값 N을 판별하기 위한 단계를 포함한다. 이는 복수의 N개의 연속된 데이터 프레이들 및 관련된 암호화 값을 포함하는 데이터 스트림에서 이루어진다. N개의 연속된 데이터 프레이들이 프레임들의 그룹으로 나타내어지면, 그러한 데이터 스트림은 전형적으로, 각 프레임들의 그룹에 관련된 암호화 값 및 복수의 프레임들의 그룹을 포함한다. 그러한 경우들에서, 수 N은 2개의 연속된 암호화 값들 사이의 프레임들의 수로서 결정될 수 있다.
제2 암호화 값을 산출하기 위해 사용되는 현재 프레임들의 그룹은 앞선 프레임들의 그룹의 암호화 값을 포함한다. 대안적으로, 앞선 프레임들의 그룹의 암호화 값과 어떤 관련된 동기 지시자 및/또는 구문 요소는 먼저, 제2 암호화 값을 산출하기 전, 현재 프레임들의 그룹으로부터 제거될 수 있다. 후자(마지막) 솔루션은 하나의 프레임들의 그룹으로부터 다음까지의 확산으로부터 변경 및 차이를 방지하기 위해, 바람직하다.
방법은 제2 메시지를 생성하기 위하여, 제1 메시지를 구성 정보와 함께 그룹핑하는 단계를 더 포함한다. 여기서, 구성 정보는 데이터 스트림을 랜더링 하기 위한 것과 같은, 데이터 스트림 외부의 정보를 포함한다. 그룹핑하는 단계와 구성 정보를 고려한 다양 양상이 전술되었다. 이러한 양상들은 디코더에서 동일하게 적용할 수 있다.
방법은 제1 및/또는 제2 메시지의 제2 암호화 값을 생성하는 것에 의해, 데이터 스트림으로부터 암호화 값을 추출하는 것에 의해, 그리고, 제2 암호화 값과 암호화 값을 비교하는 것에 의해, 진행된다. 제2 암호화 값은, 또한, 검증 암호화 값 또는 검증 식별자로 나타낼 수 있다.
제2 암호화 값은 암호화 값의 생성의 콘텍스트에서 설명된 바와 같이, 반복적인 방식으로 생성되어질 수 있음을 언급한다.
바람직한 실시예에서, 제2 암호화 값을 생성하기 위해 사용되는 방법에 대응하는 방법에 따라, 암호화 값은 구성 정보 및 N개의 연속된 데이터 프레임들로부터 대응하는 인코더 및/또는 전송기에서 생성된다. 다른 말로, 대응하는 인코더에서 암호화 값을 생성하기 위한 방법은 디코더에서 제2 암호화 값을 생성하기 위한 방법에 대응한다. 특히, 암호화 값 및 제2 암호화 값은 고유의 키 값 및/또는 고유의 암호화 해시 함수를 이용하여 생성된다.
게다가, 인코더에서 암호화 값을 생성하기 위해 사용되는 N개의 연속된 프레임들의 세트는 디코더에서 제2 암호화 값을 생성하기 위해 사용되는 N개의 연속된 프레임들의 세트에 대응한다. 앞서 언급한 바와 같이, 암호화 값 및 제2 암호화 값은 선행하는 N개의 연속된 프레임들의 세트의 암호화 값을 포함하거나, 또는 포함하지 않는 N개의 연속된 프레임들의 세트 상에서 결정될 수 있다. 동일한 규칙이 인코더 및 디코더에서 적용될 수 있다.
디코더 및 인코더에서 사용되는 프레임들의 세트가 동일할지라도, 예컨대, 프레임들의 전송 동안 변형이 발생하였거나, 데이터 스트림의 저장 매체 상에서 에러로 인해, 디코더 및 인코더에서 프레임들의 콘텐츠는 다를 수 있다.
다른 양상에 따르면, 방법은 암호화 값이 제2 암호화 값에 대응하면, 플래그를 설정하는 단계; 및/또는 플래그가 설정되면, 수신기 및/또는 디코더에서 비주얼 지시자를 제공하는 단계;를 포함할 수 있다. 유사한 방식으로, 암호화 값이 제2 암호화 값에 대응하지 않거나, 데이터 스트림으로부터 어떤 암호화 값도 추출되지 않으면, 플래그 및/또는 비주얼 지시자는 제거될 수 있다. 이는 데이터 스트림의 인증에 관한 정보를 가지는 데이터 스트림의 뷰어/리스너 및 디코더의 사용자에게 제공하는 것에서 유리하다.
다른 양상에 따라, 본 발명의 문헌에서 전술한 방법에 따라 생성되고 삽입되는 암호화 값을 포함하는 데이터 스트림이 설명된다.
다른 양상에 따라, 복수의 데이터 프레임들을 포함하는 데이터 스트림을 인코딩하도록 동작하는 인코더가 설명된다. 인코더는 본 발명의 문헌에서 설명된 방법의 단계를 실행하도록 동작한다. 특히, 인코더는 제1 메시지를 형성하기 위한 연속된 데이터 프레임의 수 N을 그룹핑하도록 동작하는 프로세서를 포함할 수 있다; 여기서, N은 1 보다 크다; 프로세서는 제1 메시지를 제2 메시지를 형성하기 위해 구성 정보와 그룹핑한다; 여기서, 구성 정보는 데이터 스트림을 랜더링하기 위한 데이터 스트림 외부의 정보를 포함한다; 프로세서는 제2 메시지의 암호화 값을 생성한다; 그리고, 프로세서는 N개의 연속된 데이터 프레임들에 후속의 데이터 스트림에 암호화 값을 삽입한다.
다른 양상에 따라, 복수의 데이터 프레임들과, 선행하는 연속된 데이터 프레이들의 수 N에 관련된 암호화 값을 포함하는 데이터 스트림을 검증하도록 동작하는 디코더가 설명된다. 여기서, N은 1 보다 크다. 디코더는 본 발명의 문헌에서 설명된 방법의 단계를 실행하도록 동작한다. 특히, 디코더는 제1 메시지를 형성하기 위해 N개의 연속된 데이터 프레임들을 추출하도록 동작한다. 디코더는 제1 메시지를 제2 메시지를 형성하기 위해 구성 정보와 그룹핑한다; 여기서, 구성 정보는 데이터 스트림을 랜더링하기 위한 정보를 포함한다; 디코더는 제2 메시지의 제2 암호화 값을 생성한다; 디코더는 데이터 스트림으로부터 암호화 값을 추출한다; 그리고, 디코더는 제2 암호화 값과 암호화 값을 비교한다.
다른 양상에 따라, 소프트웨어 프로그램이 설명된다. 소프트웨어 프로그램은 프로세서 상에서 실행되며, 컴퓨팅 장치 상에서 수행될 때, 본 발명의 문헌에서 설명된 방법의 단계를 수행한다.
다른 양상에 따라, 저장 매체(storage medium)가 설명된다. 저장 매체는 프로세서 상에서 실행되고, 컴퓨팅 디바이스 상에서 실행될 때, 본 발명의 실시예에 따른 방법을 수행하는 소프트웨어 프로그램을 포함한다.
다른 양상에 따라, 컴퓨터 프로그램 제품이 설명된다. 컴퓨터 프로그램 제품은 컴퓨터 상에서 실행될 때 본 발명의 문헌에서 설명된 방법의 단계들을 수행하기 위한 실행가능한 명령을 포함한다.
다른 양상에 따라, 수신된 데이터 스트림을 디코딩하기 위한 셋탑 박스, 휴대형 전자 장치(예, 모바일 텔레폰, PDA, 스마트폰 등) 또는 컴퓨터(예, 데스크탑 컴퓨터, 랩탑, 등)가 설명된다. 데이터 스트림은 오디오 신호를 포함할 수 있다. 셋탑 박스는, 바람직하게, 본 발명의 문헌에서 설명된 측면에 따른 디코더를 포함한다.
다른 양상에 따라, 데이터 스트림을 전송하기 위한 브로드캐스팅 시스템이 설명된다. 데이터 스트림은 오디오 신호를 포함할 수 있다. 브로드캐스팅 시스템은 바람직하게, 본 발명의 문헌에서 설명된 측면에 따른 인코더를 포함한다.
다른 양상에 따라, 연결점(splicing point)에서 제1 및 제2 비트스트림을 연결하기 위한 방법이 설명된다. 2개의 비트스트림 각각은 복수의 데이터 프레임들 및 데이터 프레임들의 주어진 수에 관련된 암호화 값을 포함할 수 있다. 제1 비트스트림은 매 N1개의 연속된 프레임들에 대해 암호화 값을 포함할 수 있고, 반면, 제2 비트스트림은 매 N2개의 연속된 프레임들에 대해 암호화 값을 포함할 수 있다. N1 및 N2의 수는 동일할 수 있다. 즉, 2개의 비트스트림은 동일한 암호화 반복 주기를 가진다. 또는 N1 및 N2의 수는 다를 수 있다. 즉, 암호화 값이 비트스트림에 포함된 후의 프레임들의 수는 다를 수 있다.
연결 방법은 제1 및 제2 비트스트림으로부터 연결된 비트스트림을 생성하는 단계를 포함한다. 여기서, 연결된 비트스트림은 제1 및 제2 비트스트림으로부터 적어도 일부의 복수의 데이터 프레임들을 포함한다. 다른 말로 제2 비트스트림 또는 제2 비트스트림의 일부는 연결점에서 제1 비트스트림 또는 제1 비트스트림의 일부에 접속된다.
연결된 비트스트림은 본 발명의 문헌에 설명된 방법에 따라 생성되고, 삽입되는 암호화 값을 포함한다. 유리하게도, 연결된 비트스트림의 암호화 값들은, 비트스트림 인증의 간섭이 수신기/디코더에서 인식될 수 없도록, 자연스럽게 연결점을 커버한다. 이는 연결점 이후 연결된 비트스트림에 대해 명확하게 새로운 암호화 값을 생성하는 것에 의해 이루어질 수 있다.
새로운 암호화 값은 연결점에서 시작되는 연결된 비트스트림의 섹션에서 연속된 프레임들의 적어도 어떤 수로 생성될 수 있다. 몇몇의 경우, 제2 비트스트림의 암호화 값은 재사용되고, 새로운 암호화 값이 포함된 섹션 이후의 연결된 비트스트림에 복사될 수 있다. 이는, 다음 그룹의 제1 프레임에 포함된 앞선 프레임들의 그룹의 암호화 값이 다음 그룹의 암호화 값의 산출에 대해 고려되지 않고, 그 그룹은 독립적으로 취급될 수 있고, 즉, 암호화 값들에서 변화가 하나의 그룹에서 다음의 그룹으로 확산되지 않을 때, 개별적으로 적용된다.
본 발명의 문헌에서 설명된 방법에 따른 암호화 값의 명백한 생성은 제1 비트스트림 및 제2 비트스트림 사이의 바운더리에서 특히 유리할 수 있다. 즉, 첫 번째 비트스트림의 마지막 프레임에 대해, 그리고, 연결된 비트스트림에 포함된 제2 비트스트림의 첫 번째 프레임에 대해, 특히, 유리하다. 일반적으로, 2개의 비트스트림을 연결할 때, 제1 비트스트림의 마지막 프레임들의 수는 전형적으로, N1과 동일하거나, 작다. 및/또는, 제1 암호화 값이 포함되기 전 제2 비트스트림으로부터 취해진 프레임들의 수는 전형적으로 N2와 같거나, 또는 작다. 다른 말로, 연결점은 전형적으로 제1 및 제2 비트스트림의 그룹 바운더리에 위치하지 않는다.
연결(concatenation) 또는 연결(splicing) 방법의 다른 양상에 따라, 새로운 암호화 값은 첫 번째 비트스트림의 마지막 프레임들에 대해 생성되고, 연결된 비트스트림의 다음 프레임에 삽입된다. 이는 두 번째 비트스트림으로부터 취해지는 첫 번째 프레임이다. 새로운 암호화 값은 완전한 첫 번째 비트스트림에 대해 고려된다. 그러면, 새로운 암호화 값은 제2 비트스트림에 대해 생성되고, 적합한 위치들에서 연결된 비트스트림에 포함된다. 이는 만약, 두 번째 비트스트림으로부터 얻어진 첫 번째 프레임에 삽입되는 추가된 암호화 값없이, 두 번째 비트스트림으로부터 프레임들에 대해 생성된 첫 번째 암호화 값 및 첫 번째 비트스트림으로부터 프레임들에 대해 생성된 마지막 암호화 값 사이에 프레임들의 수가 시스템에 의해 허용되는 최대 수를 초과한다면, 특히, 이롭다.
연결점이 제1 및 제2(첫번째 및 두 번째) 비트스트림의 프레임들의 그룹에 정렬되지 않는 경우에, 연결 방법은 제1 및 제2 비트스트림으로부터 취해진 프레임들을 포함하는 혼합된 그룹을 위한 암호화 값을 생성할 수 있다. 이미 언급한 바와 같이, 암호화 값은 각 암호화 값을 산출하기 위해 사용되는 프레임들의 그룹에 따른 다음 프레임에 포함될 수 있다.
다른 양상에 따라, 접속기(splicer) 및/또는 브로드캐스팅 헤드엔드가 설명된다. 접속기 및/또는 브로드캐스팅 헤드엔드는 각각이 복수의 데이터 프레임 및 데이터 프레임들의 주어진 수에 관련된 암호화 값을 포함하는 제1 및 제2 비트스트림을 연결하도록 동작한다. 이 장치는 본 발명의 문헌에서 설명된 구성의 어떤 조합을 가지는 디코더를 포함할 수 있다. 이 디코더는 관련된 암호화 값들, 두 번째 비트스트림의 첫 번째 프레임 및 첫 번째 비트스트림의 마지막 프레임을 디코딩하기 위하여 사용될 수 있다. 접속기 및/또는 브로드캐스팅 헤드엔드는 본 발명의 문헌에서 설명된 구성의 어떤 조합을 가지는 인코더를 더 포함할 수 있다. 인코더는 두 번째 비트스트림의 첫 번째 프레임들 및 첫 번째 비트스트림의 마지막 프레임들을 인코딩하기 위하여 사용될 수 있다. 추가로, 접속기 및/또는 브로드캐스팅 헤드엔드는 디코딩 및 인코딩되지 않은 첫 번째 및 두 번째 비트스트림의 관련된 암호화 값 및 프레임들을 포워딩하기 위한 포워딩 유닛을 포함할 수 있다. 다른 말로, 포워딩 유닛은 연결된 비트스트림 상의 관련된 암호화 값들 및 프레임들을 복사 또는, 포워딩, 또는 캐리오버(carry over)할 수 있다.
접속기는 완전한 데이터 스트림을 디코딩 및 인코딩하도록 동작할 수 있음을 언급한다. 즉, 접속기는 수신되는 데이터 스트림들의 암호화 값을 디코딩하고, 전송되는 데이터 스트림에 대해 암호화 값들을 생성할 수 있다. 이는 암호화 값들을 통해 비트스트림의 계속되는 연결(interconnection)을 생성하기 위하여 유리하다. 사실, 복수의 비트스트림들은 디코딩될 수 있으며, 복수의 비트스트림들의 부분들을 포함하는 연결된 비트스트림은 계속해서 연결된(interconnected) 암호화 값들로 인코딩된다. 이러한, 연결된 비트스트림의 수신기는 연결된 비트스트림을 단일의 신뢰되는 인코더로부터 유래한 비트스트림으로 간주할 수 있다.
암호화 값들을 포함하는 비트스트림들의 디코딩 및/또는 인코딩의 목적에 있어, 접속기는 데이터 스트림의 기초 코덱을 인지할 필요가 없음을 언급한다. 예시적인 방법에 의해, 접속기는 데이터 스트림들의 암호화 값들을 추출 및/또는 생성하기 위하여, HE-AAC 디코딩/인코딩을 수행할 수 있을 필요는 없다. 어떤 경우에서, 예컨대, 새로운 암호화 값이 앞서 아무런 암호화 값도 없었던 프레임에 삽입될 때, 새로운 암호화 값에 대해 비트스트림에서 공간을 창출하기 위하여, 특히, 비트스트림 요구사항을 만족시키기 위하여, 데이터 스트림의 디코딩 및 후속의 재-인코딩이 필요하다.
본 발명의 문헌에서 설명된 바와 같은 바람직한 실시예를 포함하는 방법 및 시스템은 본 문헌에서 밝힌 다른 방법 및 시스템과의 조합 또는 단독으로 사용될 수 있다. 더욱이, 본 발명의 실시예에 따라 설명된 방법 및 시스템의 모든 측면은 임의로 조합할 수 도 있다. 특히, 청구범위의 구성들은 서로 임의적인 방식으로 조합될 수 있다. 추가로, 방법 단계의 순서는 다양한 순서로 재구성될 수 있다.
상술한 바와 같은 본 발명에 따르면, 개별 프레임별로 프로세스를 반복 실시함으로써, 인코딩 프로세스는 낮은 지연, 낮은 계산 복잡도(low computational complexity) 및 낮은 메모리 요구에서 프레임별로 수행될 수 있으며, 또한, 식별자의 디코딩은 낮은 지연, 낮은 계산 복잡도 및 낮은 메모리 요구사항으로 수행될 수 있는 이점이 있다.
이하, 첨부된 도면을 참조로 하여 예시적인 방식에 따라 본 발명이 아래에서 설명된다.
도 1은 본 발명에 따른 식별자를 판별하기 위한 방법의 예를 도시한다;
도 2a 및 도 2b는 인코더에서 식별자 생성 및 반복을 위한 예시적인 방법의 흐름도를 보인다;
도 3은 디코더에서 취해지는 예시적인 인증 및 검증 단계의 흐름도를 보인다;
도 4는 인코더 및 디코더의 예시적인 실시예를 도시한다;
도 5는 브로드캐스팅 시스템에서 식별자의 사용을 위한 예를 도시한다; 그리고,
도 6 및 도 7은 연결된 비트스트림을 형성하기 위한 비트스트림의 연결의 예들을 도시한다.
다음의 실시예는 예시적인 방법에 의해 설명되었으며, 본 특허 문서의 범위를 제한하는 것은 아니다. 본 발명은 AAC(Advanced Audio Coding)의 콘텍스트(context)에 대해서 설명될 것이며, 특히, MPEG-2 AAC 및 MPEG-4 AAC의 콘텍스트에 대해서 설명될 것이다. 하지만, 본 발명은 또한 다른 미디어 코딩 스킴, 특히, 오디오, 비디오 및/또는 멀티미디어 코팅 스킴에도 적용될 수 있다. 게다가, 복수의 인코더들로부터 조합된 비트스트림을 제공하는 스플라이서(splicer)에 적용될 수도 있다.
도 1은 비트스트림(100) 및 이 비트스트림(100)에 대한 식별자를 판별하기 위한 방법을 도시한다. 그러한 비트스트림들에 대한 예들은 기초 코덱으로 AAC, HE-AAC(High Efficiency - Advanced Audio Coding), Dolby Pulse, MPEG-4 AVC/H.264, MPEG-2 Video 또는 MPEG-4 Video으로 인코딩된 비디오 및/또는 오디오 비트스트림들이다. 그러한 기초 코덱 및 그들의 형식은 예컨대, MPEG-4 AAC에 대한 ISO/IEC 14496-3 표준, MPEG-2 AAC에 대한 ISO/IEC 13818-7 표준, MPEG-4 AVC/H.264에 대한 ISO/IEC 14496-10 표준, MPEG-2 Video에 대한 ISO/IEC 13818-2 표준 및 MPEG-4 Video에 대한 ISO/IEC 14496-2 표준에 정의된다. 이러한 표준은 참조에 의해 통합된다. 이러한 코덱에서, 데이터 스트림들은 소위, 프레임들로 정렬된다. 여기서, 프레임들은 일정 수의 미디어 샘플들을 포함한다. 다른 코덱들은 프레임 당 다른 수의 샘플들을 사용할 수 있다. 전형적인 예들은 프레임 당 960, 1024 또는 2048 샘플들이다.
실제 미디어 데이터에 추가로, 프레임들은 소위 메타데이터를 더 포함한다. 메타데이터는 예컨대, 프로그램 음량(program loudness), 또는 동적 범위(dynamic range)와 같은, 추가 제어 정보를 전달할 수 있다.
도 1은 프레임들(101, 102, 103에서 106까지)의 연속을 보인다. 시간 축은 왼쪽에서 오른쪽으로 진행하고, 그러한 프레임(101)은 프레임(106) 전에 프로세싱된다. 앞서 개괄한 바와 같이, 각 프레임은 미디어 데이터 및 추가 메타데이터를 포함할 수 있다. 포함될 수 있는 각 프레임과 가능한 데이터 필드들 또는 요소들의 구조는 인코딩 스킴에 의해 정의된다. 예시적인 방법에 의해, MPEG-4 AAC 프레임 또는 MPEG-2 AAC 프레임은 1024 또는 960 샘플들의 시간 기간에 대한 오디오 데이터를 포함할 수 있다. 이는 정보 및 다른 데이터와 관련된 것이다. 이의 구문 및 구조는 앞서 언급된 MPEG-4에 대한 AAC ISO/IEC 14496-3 표준의 섹션 4.4 및 4.5 그리고 앞서 언급된 MPEG-2 AAC에 대한 ISO/IEC 13818-7 표준의 섹션 6 및 8에 정의되어있다. 이 섹션들은 참조로써 본 문헌에 통합된다.
MPEG-4 AAC 또는 MPEG-2 AAC 프레임은 다음과 같은, 다른 구문 요소들을 포함할 수 있다.
● single_channel_element(), SCE로 축약되며, 이는 단일 오디오 채널에 대한 코딩된 데이터를 포함하는 비트스트림의 구문 요소이다.
● a channel_pair_element(), CPE로 축약되며, 이는 채널들의 쌍에 대한 데이터를 포함하는 비트스트림 페이로드의 구문 요이다.
● a coupling_channel_element(), CCE로 축약되며, 이는 커플링 채널에 대한 오디오 데이터를 포함하는 구분 요소이다.
● a lfe_channel_element(), LFE로 축약되며, 이는 저 샘플링 주파수 증대 채널을 포함하는 구문 요소이다.
● a program_config_element(), PCE로 축약되며, 이는 프로그램 구성 데이터를 포함하는 구문 요소이다.
● a fill_element(), FIL로 축약되며, 이는 필 데이터(fill data)를 포함하는 구문 요소이다.
● a data_stream_element(), DSE로 축약되며, 이는 보조 데이터(auxiliary data)를 포함하는 구문 요소이다.
● TERM 구문 요소는 원 데이터 블록 또는 프레임의 끝을 나타낸다.
이러한 구문 요소들은 미디어 데이터 및 관련된 제어 데이터를 특정하기 위하여, 프레임 또는 원 데이터 블록 내에서 사용되어진다. 예시적인 형태로, 모노 오디오 신호의 2개의 프레임들이 구문 요소들 <SCE><TERM><SCE><TERM>을 통해 특정되어질 수 있다. 스테레오 오디오 신호의 2개의 프레임들이 구문 요소들 <CPE><TERM><CPE><TERM>에 의해 특정되어 질 수 있다. 5.1 채널 오디오 신호의 2개의 프레임들이 구문 요소들 <SCE><CPE><CPE><LFE><TERM><SCE><CPE><CPE><LFE> <TERM>에 의해 특정되어 질 수 있다.
제안된 방법은 일정 수 N의 그러한 프레임들을 그룹화하고, 그렇게 함으로써, 프레임들(111, 112, 및 113)의 그룹들을 형성한다. 도 1은 N=5 프레임들(103 내지 105)을 포함하는 프레임들의 완전한 그룹을 보인다. 프레임들의 그룹의 5개의 프레임들(112)은 제1 메시지를 형성하기 위하여 연결(concatenated)된다.
해시 함수 H(.)의 블록 크기에 대해 추가의 제로(0)들이 오른쪽에 패딩되는 암호화 해시 함수 H(.) 및 "비밀" 키 K를 이용하여, 제1 메시지의 해시 메시지 인증 코드(ΗMAC, hash message authentication code)가 판별될 수 있다. 기호 ∥은 연결 연산을 나타내며, 기호
Figure pct00001
는 익스클루시브오아(XOR, exclusive or) 연산을 나타내고, 그리고, 외부 패딩 opad = 0x5c5c5c...5c5c과 내부 패팅 ipad = 0x363636...3636은 해시 함수의 블록 사이즈의 길이의 상수라고 놓을 때, 제1 메시지의 HMAC 값은 다음의 수학식과 같이 될 수 있다.
HMAC(m) = H((K
Figure pct00002
opad) ∥ H((K
Figure pct00003
ipad) ∥ m)),
여기서, m은 메시지이며, 또한, 제1 메시지로 나타내어진다. MD5 또는 SHA-1 해시 함수들로 사용되어지는 블록 크기는 전형적으로 512 비트이다. HMAC 동작의 출력의 크기는 기초 해시 함수의 출력의 크기, 즉, SHA-I의 경우에 160 비트 또는 MD5의 경우에 128 비트와 같다.
제1 메시지의 HMAC 값, 즉, 프레임들의 그룹(112)의 연결된 프레임들(103 내지 105)의 HMAC 값은 프레임들의 그룹(112)의 식별자로 사용된다. 식별자의 길이를 감소시키기 위하여, HMAC 값은 절삭(truncated)된다. 예컨대, 16, 24, 32, 48 또는 64 비트로 절삭(truncated)될 수 있다. 하지만, 이러한 절삭 동작은 전형적으로 해시 메시지 인증 코드(HMAC)의 보안에 영향을 미침을 언급한다. 식별자가 데이터 스트림에 삽입되는 것처럼, 제안된 방법은 바람직하게, HMAC 값의 절삭된 버전을 식별자로 사용하는 것이 바람직하다.
도 1에 보인바와 같이, 프레임들의 그룹(112)의 식별자(122)는 다음 프레임들의 그룹(113)에 삽입된다. 바람직하게, 식별자(122)는 이어지는 프레임들의 그룹(113)의 제1 프레임(106)에 삽입된다. 유사한 방식으로, 식별자(121)는 선행하는 프레임들의 그룹(111)에 대한 판별하고, 식별자들의 그룹(112)의 제1 프레임(103)에 삽입된다.
프레임들의 그룹(112)의 식별자(122)는 앞의 프레임들의 그룹(111)의 식별자(121)를 포함하는 제1 메시지 m에 기초하여 산출되거나, 또는, 이전 프레임들의 그룹(111)의 식별자(121)를 포함하지 않은 제1 메시지 m에 기초하여 산출될 수 있다. 후자의 경우, 식별자(121)로 간주되는 정보는 식별자(122)를 판별하기에 앞서, 제1 메시지 m으로부터 제거될 필요가 있을 수 있다. 이는 인코더와 디코더가 제1 메시지 m을 정의하기 위한 동일한 방법을 적용하는 것을 보장하기 위하여 필요할 수 있다. 바람직한 실시예에서, 식별자(122)는 이전 프레임들의 그룹(111)의 식별자(121)를 포함하는 제1 메시지 m에 기초하여 판별된다. 이를 위하여, 식별자는 연속해서 연결될 수 있고, 이에 의해, 연결된 비트스트림이 생성될 수 있으며, 이는 예컨대, 비트스트림의 어떤 비트스트림의 프레임들의 그룹들로 교체되거나, 변경되는 것에 의해 변결될 수 없도록하는 연결된 비트스트림이 생성될 수 있다. 이러한 결과, 완전한 데이터 스트림 또는 비트스트림의 인증이 보장될 수 있다. 다른 측면에서, 이는 여전히, 식별자가 연결되더라도, 수신기가 부분적으로 오류가 발생한 비트스트림에 재동기(resynchronize)되는 것이 보장될 수 있다.
바람직한 실시예에서, 식별자는 단일 data_stream_element()에 배치되며, data_stream_element()는 <DSE>로 축약되며, 이는 ISO/IEC 14496-3의 MPEG-4 AAC에 대한 테이블 4.10 또는, MPEG-2 AAC에 대한 ISO/IEC 13818-7의 테이블 24에 정의된다. 이 문서는 참조로써 통합된다. 디코더의 동기를 용이하게 하기 위하여, AAC 프레임은 식별자를 유지하는 오직 하나의 data_stream_element(), <DSE>를 포함할 수 있다. 따라서, 디코더는 2개의 수신된 식별자들 사이의 거리로, 프레임들의 그룹의 길이를 판단할 수 있다. 다시 말해서, AAC 프레임은 몇 개의 data_stream_element(), <DSE>을 포함할 수 있지만, 식별자를 포함하는 data_stream_element(), <DSE>은 오직 하나만을 포함한다. 바람직한 실시예에서, <DSE>의 위치는 AAC 프레임의 끝인 <TERM> 요소 바로 전이다.
식별자의 빠른 추출을 허용하기 위하여, DSE의 바이트-정렬 구성이 사용될 수 있다. 이러한 목적을 위하여, DSE는 전형적으로 DSE에 포함된 데이터가 바이트 정렬된 것을 표시하는 필드 또는 비트를 포함한다. 이는 DSE의 실제 데이터가 바이트의 시작의 비트 위치에서 시작되는 것을 표시한다.
비트스트림 또는 데이터 스트림은 다중 <DSE>를 포함할 수 있다. 어느 하나의 <DSE>와 다른 <DSE>를 구분하기 위하여, 각 <DSE>는 전형적으로 요소 인스탄스 태그를 포함한다. 이는 MPEG-4 AAC에 대해 ISO/EEC 14496-3의 섹션 4.5.2.1.1 및 MPEG-2 AAC에 대해 ISO/IEC 13818-7, Section 8.2.2에 정의되어 있으며, 양자는 모두 참조로써 본 발명에 포함된다. 식별자를 포함하는 data_stream_element()의 요소 인스탄스 태그의 값은 값, 즉, ISO/IEC 표준에 적용되는 일반 규칙들을 특정하는 것을 제한하지 않음을 언급한다. 다시 말해서, 바람직하게, MPEG-4 AAC에 대한 ISO/IEC 14496-3 문서 및 MPEG-2 AAC에 대한 ISO/IEC 13818-7 문서에 제시된 것에 따른 전송되는 식별자를 포함하는 <DSE>에 대한 요소 인스탄스 태그에 대해 어떤 특별한 규칙들도 없다.
앞서 보인바와 같은 가능한 스트림들의 예들을 유추에서, 2 채널 오디오 프로그램에 대한 데이터 스트림은 구문 요소 <CPE><FIL><DSE><TERM><CPE><FIL><DSE><TERM>...를 포함한다. SBR(Spectral Band Replication)를 가지는 2 채널 오디오 프로그램은 구문 요소 <CPE><SBR(CPE)><FIL><DSE><TERM><CPE><SBR(CPE)><FIL> <DSE><TERM>...를 포함할 수 있으며, 여기서, <SBR(CPE)>는 SBR를 특정하는 구문 요소이다. 5.1 채널 오디오 프로그램은 구문 요소 <SCE><CPE><CPE><LFE><FIL><DSE><TERM><SCE><CPE><CPE><LFE><FIL> <DSE><TERM>....로 구성될 수 있다.
바람직한 실시예에서, <DSE> 요소에 배치되는 식별자 필드는 식별자 동기 필드 및 식별자 값 필드를 포함한다. 식별자 동기 필드는 개별 <DSE> 요소가 식별자를 포함한다는 사실에 기초하여, 빠른 식별을 허용하기 위하여 사용될 수 있다. 예시적인 형태로, 인코더는 <DSE> 요소가 식별자 필드를 포함하는 것을 나타내기 위하여, 예컨대, 이진 패턴과 같은, 미리 정의된 값으로 이 필드를 설정한다. 디코더는 이 필드를 식별자 값의 유효성을 검증하기 위하여 사용할 수 있다. 다른 말로, 디코더는 수신된 데이터 스트림이 앞서 언급된 인증, 검증 및 가능한 구성의 목적들에 대해 사용될 수 있는 식별자를 포함한다는 것에 대한 정보를 얻는다.
바람직한 실시예에서, 식별자 값 필드는 본 문서에서 개설된 바와 같이 판별되는 식별자 값을 포함한다. 이 필드는 식별자, 즉, HMAC 값의 절삭된 버전에 대한 요구되는 비트들의 수를 포함한다. 개괄한 바와 같이, 식별자는 전형적으로 N을 커버(cover)하며, 여기서, N>1이다. AAC 프레임 및 모든 N*AAC 프레임은 식별자를 포함한다. 즉, 이는 앞서 설명된 바와 같은 식별자 요소를 포함하는 <DSE> 요소를 포함한다. 전형적으로, 이는 커버된(covered) AAC 프레임들의 수 N을 결정하는 인코더이다. 디코더는 이 값을 대응하는 식별자들을 포함하는 2개의 AAC 프레임들 사이의 프레임들 간의 거리에 의해 판별할 수 있다.
앞서 개요를 설명한 바와 같이, 식별자는 또한 디코더가 정확한 구성 세팅들을 사용하는 것을 보장하기 위하여 사용될 수 있다. 이 목적에 대해, 식별자는 확장된 메시지에 기초하여 생성될 수 있다. 이 메시지는 N개의 후속의 프레임들의 연속을 포함할 뿐만 아니라, 구성 데이터(configuration data)도 포함한다. 다른 말로, 앞서 설명한 바와 같이 N개의 후속되는 프레임들을 포함하는 제1 메시지는 구성 데이터를 더 포함한다. 그러한 구성 데이터는 a samplingFrequencylndex, 즉, 오디오 신호의 기초 샘플링 주파수의 지시자, channelConfiguration, 즉, 채널 구성에 사용되는 지시자 및 frameLengthFlag, 사용된 프레임 길이의 지시자를 포함한다. 또한, 다른 구성 파라미터들은 또한 가능하다.
이러한 파라미터, 즉, AAC(코어) 샘플링 레이트 또는 "samplingFrequencylndex", 채널 구성, 그리고, AAC 변환 길이 지시 또는 "frameLengthFlag"는 구성 워드를 형성하기 위하여 사용될 수 있다. 이 구성 워드는 또한, 미리 결정된 크기를 가져오기 위하여 패딩 비트들을 포함한다.
바람직한 실시예에서, 파라미터들 "samplingFrequencylndex" 및 "channelConfiguration"은 개별 ISO/IEC 표준(예, ISO/IEC 14496-3의 섹션 1.6.2.1)에 설명되는 "AudioSpecificConfig"의 동일한 명칭의 요소와 같이 동일한 의미 및 값을 가진다. 바람직한 실시예에서, 파라미터 "frameLengthFlag"는 개별 ISO/IEC 표준(예, ISO/IEC 14496-3의 표 4.1, 섹션 4.4.1)에 설명되는 "GASpecificConfig"의 동일한 명칭의 요소와 같이 동일한 의미 및 값을 가진다.
구성 워드 및 N개의 AAC 프레임은 메시지 m을 형성하기 위하여 연결된다. 이는 또한 제2 메시지로써 불리며, 제1 메시지에 추가된 구성 워드를 포함한다. 이는 N개의 AAC 프레임들의 연결을 포함한다.
m = (configuration_word ∥ AACframel ∥ AACframe2 ∥ ... ∥ AACframeN);
여기서, ∥는 연결을 나타낸다. 앞서 보인 예에서, 구성 워드는 제1 메시지의 처음에 배치된다. 구성 워드는 다른 위치들, 예컨대, 제1 메시지의 끝에 배치되는 것을 언급한다.
상술한 바와 같은, 유추되는 방식에서, 메시지 mHMAC 값, 예컨대, HMAC-MD5 코드, 메시지 m 상의 HMAC(m)는 "비밀" 키를 이용하여 계산된다. 비밀키 K는 예컨대, 주어진 ASCII 코드 또는 어떤 다른 비밀 값이 될 수 있고, 메시지 m의 HMAC 값은 전술한 HMAC 공식을 이용하여 산출될 수 있다.
메시지 m의 HMAC 값은 순차적인 방식으로 결정된다. 이는 제1 단계에서, 구성 워드의 HMAC 값이 판별될 수 있음을 의미한다. 이는 AAC 프레임 1의 HMAC 값의 판별에 대한 시작 상태로서 제1 HMAC 값을 산출한다. 이 동작의 출력은 AAC 프레임 2의 HMAC 값의 판별에 대한 시작 상태인 제2 HMAC 값이다. 결국, AAC 프레임 N의 HMAC 값은 시작 상태로써, AAC 프레임 N-1의 HMAC 값을 이용하여 판별된다. 메시지 m, 즉, 구성 워드 및/또는 프레임들의 시퀀스에 걸친 m에 HMAC 값의 그러한 순차적인 결정을 이용하는 것에 의해, 비트스트림에 의해 초래되는 지연이 증가되는 것 없이, 식별자를 생성하는 것이 가능하다. 게다가, 식별자 및/또는 HMAC 값을 생성하기 위한 메모리 요구는 낮게 유지된다. 즉, 128 비트 값, 비트스트림의 현재 프레임 및 시작 상태만이 저장되는 것이 요구된다. 완전한 메시지 m의 저장 및 생성이 요구되지 않는다.
추가 식별자로 인한 비트스트림에서 오버해드를 감소시키기 위하여, HMAC 값은 LSB(least significant bits)를 버리는 것에 의해 비트의 수가 감소되도록 128 비트로부터 절삭된다. 예시적인 방법에서, HMAC 값 "9el07d9d372bb6826bd81d3542a419d6"은 "9elO7d9d"으로 절삭될 수 있다. 절삭의 정도는 바람직하게 요구되는 비트 레이트 오버헤드와 식별자의 보안 사이의 절충에 의해 선택된다. 가능한 식별자의 길이는 예컨대, 16, 24, 32, 48, 64, 80 또는 96이 될 수 있다. 절삭된 HMAC 값은 DSE 요소의 식별자 값 필드에 삽입되는 식별자이다.
다음에서, 인코딩 절차를 고려하여 더 상세한 설명이 제공된다. 이미 언급된 바와 같이, 이는 전형적으로 디코더이며, 디코더는 하나의 식별자에 의해 커버되는 AAC 프레임들의 수 N을 결정한다. 예와 같이, 디코더가 1 초에 지나지 않는 프레임들의 그룹의 길이에 동기를 맞출 수 있다는 것을 보장하는 것이 바람직하다. 2개의 식별자는 디코더가 프레임들의 그룹의 길이에 동기를 맞추기 위해 요구된다. 프레임들의 그룹의 길이는 식별자를 포함하는 두 개 프레임들 사이의 프레임들의 수에 의해 주어진다. 이는 디코더가 적어도 2개의 식별자들을 요구되는 시간 간격 내에서 수신하는 것이 보장돼야만 한다. 그러므로, 인코더는 N AAC 프레임의 시간 표현이 초과되지 않거나, 또는, 0.5 초 만큼의 작은 초과만이 있도록, 값 N을 선택해야만 한다. N AAC 프레임들의 시간 표현은 선택된 AAC(core) 샘플 비율에 종속되기 때문에, 인코더에 의해 선택된 값 N은 선택된 AAC(core) 샘플 비율에 따라 다양한 값을 가질 수 있다.
식별자에 의해 도입되는 비트 레이트 오버헤드를 최소화하기 위하여, 인코더는 N AAC 프레임들의 시간 표현이 0.5 초를 초과하지 않는 제한을 만족하는 N의 큰 값을 선택할 수 있다. 어떤 어플리케이션에서, N AAC 프레임들의 시간 표현에 대해 0.5초를 다소 초과하는 것은 수용할 수 있다. 이러한 어플리케이션에서, 인코더는 이것이 어떤 경우에 있어서 0.5 초를 다소 초과하는 N AAC 프레임들의 시간 표현이 될 지라도, N AAC 프레임들의 시간 표현이 0.5 초에 가능한 가깝게 되도록 N의 값을 선택할 수 있다. 식별자의 전송에 의해 도입되는 오버헤드는 (비트의 수에서) 프레임들의 그룹의 길이 전체와 식별자를 포함하는 DSE의 길이 사이의 비율을 산정하는 것에 의해 결정될 수 있다.
게다가, SBR 헤더와 같은 다른 구성 요소들의 첨가에 식별자의 첨가를 정렬하는 것이 바람직하다. 이는 디코더가 간단하게 비트스트림에 동기를 맞추도록 하고, 단일 프레임을 디코딩하는 동안 모든 구성 워드들의 수신을 허용하도록 한다.
제1 생성된 AAC 프레임은 더미 식별자를 포함하는 것을 강조한다. 제1 식별자의 목적은 디코더에 식별자를 포함하는 AAC 프레임 시퀀스의 시작을 시그날링하는 것이 될 수 있다. 하지만, 디코더는 식별자가 실제 미디어 데이터에 기초하지 않는 것처럼, 인증 및 검증을 수행하기 위한 위치에 있지 않을 수 있다.
도 1에 관련되어 설명된 바와 같이, 처음(제1) 계산된 식별자는 AAC 프레임들 1 내지 N을 커버하고, AAC 프레임 N+1에 저장된다. 다음 식별자는 AAC 프레임들 N+1 내지 2N을 커버하고, AAC 프레임 2N+1에 저장된다. 기타, 이와 같이 계속된다.
도 2a는 인코딩 절차의 흐름도를 도시한다. 201 단계에서, 인코더는 프레임들의 그룹에 포함된 프레임들의 수 N을 제공하는 것에 의해 개시(initializing)된다. 더욱이, 키 K가 제공된다. 다음의 202 단계에서, 프레임들의 그룹에서 N 프레임들이 제1 메시지를 제공하기 위하여 연결된다. 그런 다음, 203 단계에서 제2 메시지를 생산하기 위하여, 제1 메시지는 제2 메시지 구성 워드와 연결된다. 204 단계에서, 식별자는 제2 메시지로 계산된 HMAC의 절삭된 버전으로 판별된다. 이 식별자는 이어지는 프레임들의 그룹의 제1 프레임에 배치된다(205 단계). 마지막으로, 프레임들의 그룹은 206 단게에서 전송된다. 전송되는 프레임들의 그룹은 앞서 전송된 프레임들의 그룹의 식별자이 포함됨을 언급한다. 202 단계 내지 206 단계는 완전한 데이터 스트림이 전송될 때까지 반복된다.
이미 언급된 바와 같이, 상술한 프로세스는 순차로 반복되는 방식으로 수행될 수 있다. 이는 식별자가 구성 워드(configuration_word)와 N 프레임들을 처음 연결하고, 그러한 완전히 연결된 메시지에 대한 HMAC 연산을 수행할 필요 없이, 프레임 별로 결정될 수 있음을 의미한다. 이는 도 2b에 도시되었다. 반복 프로세스는 시작 상태를 설정하는 것에 의해 207 단계에서 개시된다. 시작 상태는 128 비트 메모리에 저장되는, 구성 워드(configuration_word)의 HMAC 값이 될 수 있다. 그러면, HMAC 값은 처음의 N 프레임들에 대해 결정될 수 있다(208 단계). HMAC 값의 결과는 128 비트 메모리에 저장되고, 제2 프레임의 HMAC 값의 계산을 위한 시작 상태로 사용된다(208 단계). 이 절차는 N번째 프레임의 HMAC 값이 판별될 때까지 반복되며, N-1 번째 프레임의 HMAC 값은 128 비트 메모리로부터 취해지며, 시작 상태로서 사용된다(208 단계). 식별자는 N 번째 프레임의 HMAC 값의 절삭된 버전으로 판별된다(210 단계). 206 단계의 대안으로, 각 프레임은 전체 프레임들의 그룹을 버퍼링하지 않고 HMAC 값 산출에 대한 절차 후에, 즉시 전송될 수 있다. 그런 다음, 식별자는 N+1 번째 프레임이 더해지고, 그 프레임과 함께 전송된다. 그러면, 그 프레임은 다음 N 프레임들에 대한 HMAC 값의 반복 계산에 사용되는 제1 프레임이 된다. 그러한 반복 프로세스를 이용하는 것에 의해, 인코딩 프로세스는 낮은 지연, 낮은 계산 복잡도(low computational complexity) 및 낮은 메모리 요구에서 프레임별로 수행된다.
다음에서, 디코딩 절차를 고려한 더 상세한 설명이 제공된다. 전형적으로, 디코더는 디코딩을 위한 스트림이 유효한 식별자를 포함하지 않는다고 가정하고 시작한다. 즉, 미디어 비트스트림 내의 유효한 식별자가 존재하는 것을 나타내는 지시자는 처음부터 "거짓(false)" 값으로 설정될 것이며, 전형적으로, 유효한 식별자를 처음 수신할 때 참(true) 값으로 설정된다. 이는 수신된 비트스트림이 인증되고 유효한 비트스트림임을 사용자에게 나타내는 LED와 같은, 비주얼 지시자에 의해, 예컨대, 셋톱 박스와 같은 수신기에서 나타낼 수 있다. 결과에 의해, 식별자는 사용자에게 수신된 데이터 스트림의 품질을 나타내기 위하여 사용되어질 수 있다.
다른 측면에서, 디코더에서 지시자가 "참(true)"로 설정되면, 하지만, Nmax 프레임들 이상을 제외하고, 비트 스트림 내의 식별자를 고려한 갱신이 없으면, 지시자는 "거짓(false)"으로 재설정된다. 다른 말로, 디코더는, 초과되지 않는 N에 대한 최대값(예컨대, Nmax)을 인지할 수 있다. 만약 디코더가 Nmax 프레임들 이상에 대한 유효한 식별자를 검출할 수 없으면, 그러면, 이는 디코더에게, 수신된 비트스트림이 더 이상 정당한 인코더로부터 시초된 것이 아닐 수도 있음을 알리거나, 또는, 수신된 비트스트림이 변경되었음을 알리는 것이다. 결과적으로, 디코더는 개별 지시자를 "거짓"으로 설정한다. 이는 전형적으로, 비주얼 지시자(예, LED)가 리셋되도록 하는 결과를 가져온다.
식별자 디코딩 프로세스는 도 3에 도시되었고, 다음과 같이 설명될 수 있다.
● 디코더는 300 단계에서 시작하고, "ID Verified" 플래그를 클리어(clear)한다.
● 다음으로, 301 단계에서, 내부 메모리 상태(128 비트)가 개시된다.
● 디코더는 프레임이 수신될 때까지 대기하고(302 단계), 비트스트림 식별자의 존재에 대해 수신된 프레임을 303 단계에서 검사한다. 프레임 내의 식별자의 존재는 앞서 상세하게 설명된 식별자 동기 필드의 수단에 의해 검출될 수 있다. 디코더는 304 단계에서 식별자가 검출되면, 307 단계에서 <DSE>의 각 필드로부터 식별자 값(identifier_value)을 추출한다.
다음으로, 검증 식별자는 308 단계에서 128 비트 상태에 포함된 HMAC 값을 절삭하는 것에 의해 생성된다.
● 디코더는 309 단계에서 검증 식별자 및 비트스트림 식별자를 비교하는 것을 계속한다. 만약, 양쪽 모두의 식별자가 일치하지 않는 것으로 판별되면(310 단계), 비트스트림이 신뢰되는(entrusted) 인코더로부터 시초되지 않았음을 나타내기 위하여, "ID Verified" 플래그는 311 단계에서 클리어된다. 식별자가 동일한 경우에, 312 단계에서 "ID Verified" 플래그는 비트스트림 식별자는 검증되었으며, 비트스트림은 신뢰되는(entrusted) 인코더로부터 수신되었음으로 유효한 것으로 판단되어짐을 알리도록 설정된다. 이 경우, 디코더의 추가 구성들이 활성화될 수 있고, 사용자는 비트스트림의 검증 상태에 대해 정보를 얻을 수 있다. 대안적으로, 어떤 구성들은 만약, 비트스트림이 신뢰되는(entrusted) 인코더로부터 시초된 것이 아니라고 판별된 경우, 비활성화되고, 이를 사용자에게 알릴 수 있다.
● 디코딩 프로세스는 313 단계에서 128 비트 내부 메모리 상태를 개시하는 것에 의해 계속된다.
● 다음으로, 현재 프레임에 대한 128 비트 HMAC 값이 314 단계에서 산출되고, 산출된 HMAC 값으로 128 비트 HMAC 값이 315 단계에서 갱신된다. 그런 다음, 디코더는 302 단계로 진행하여 다른 프레임의 수신을 대기한다.
● 만약, 식별자가 프레임에 제공되는 없으면(304 단계의 판별에 의해), 디코더는 305 단계로 진행하여, 식별자가 마지막 Nmax 프레임들 내에 존재하는지 여부를 판별한다.
● 마지막 Nmax 프레임들 내에 식별자가 존재하지 않는 경우, Nmax 프레임들의 최대 수가 식별자의 수신 없이 패스(passed)된 것임으로, 디코더는 "ID verified" 플래그를 306 단계에서 클리어한다. 그런 다음, 디코더는 302 단계로 돌아가서 다른 프레임을 기다린다.
● 만약, 305 단계의 판단에 의해, 식별자가 마지막 Nmax 프레임들 내에 존재하면, 디코더는 314 단계로 진행하여, 현재 프레임에 대한 128 비트 HMAC 값을 산출한다.
전술한 바와 같이, 디코더는 순차로 반복되는 프로세스에서 검증 식별자를 판별할 수 있다. 이는 현재 프레임만으로 처리되고, 검증 식별자를 판별하기 위해 처음 연결된 프레임들의 세트가 요구되지 않음을 의미한다. 결과적으로, 식별자의 디코딩은 낮은 지연, 낮은 계산 복잡도 및 낮은 메모리 요구사항으로 수행될 수 있다.
도 4는 데이터 스트림의 인코더(400) 및 디코더(410)의 실시예를 도시한다. 아날로그 데이터 스트림(405), 예컨대, 오디오 스트림은 A/D 컨버터(analog-to-digital converter, 402)를 이용하여 디지털 데이터 스트림(406)으로 변환된다. 디지털 데이터 스트림(406)은 예컨대, Dolby E, Dolby Digital, AAC, HE AAC, DTS 또는 Dolby Pulse와 같은, 오디오 인코더(403)을 이용하여 인코딩된다. 오디오 인코더(403)은 전형적으로 디지털 데이터 스트림(406)을 오디오 프레임들로 세그먼트화하고, 데이터 압축을 제공한다. 게다가, 오디오 인코더(403)는 메타데이터를 추가할 수 있다. 오디오 디코더(403)의 출력은 복수의 데이터 프레임들을 포함하는 데이터 스트림(407)이다. 계속해서, 데이터 스트림(407)은 추가의 프레임 인코더(404)에 입력된다. 프레임 인코더(404)는 식별자 또는 압호화 값을 데이터 스트림(407)에 추가한다. 프레임 인코더(404)는 앞서 설명한 바와 같은 본 발명의 실시예에 따른 동작을 수행한다.
전형적으로 순차적인 방식으로, 식별자는 판별되고, 추가되고, 이에 따라, 오디오 디코더(403)로부터 수신된 각 프레임이 프레임 인코더(404)에 의해 직접 처리된다. 바람직하게, 오디오 인코더(403) 및 프레임 인코더(404)는 조인트 인코더(401)을 형성한다. 이는 디지털 신호 프로세서(DSP)로 구현될 수 있다. 오디오 이코딩 측면들 및 식별자 생성 측면들에서, 이 방법은 반복된다. 특히, 이는 오디오 스트림의 인코딩 동안 식별자에 의해 발생되는 추가 오버헤드를 고려하는 것이 요구된다. 이는 오디오 비트스트림에 대해 이용 가능한 비트 레이트가 감소됨을 의미한다. 오디오 코더 및 식별자 생성 사이의 그러한 인터렉션(interaction)은 어떤 인코딩 스킴, 예, HE-AAC의 모든 대역 및/또는 비트 레이트 제한이 있는 것을 사용하게 될 수 있다.
조인트 인코더(401)는 복수의 프레임들 및 관련된 식별자들을 포함하는 데이터 스트림(408)을 출력한다. 데이터 스트림(408)은 전형적으로 다양한 전송 미디어 및/또는 저장 미디어를 이용하는 관련된 디코더 및/또는 수신기(410)에 제공된다. 이는 데이터 스트림(408)과 관련되어 변경되어 데이터 스트림(418)로서 디코더(410)에 도달한다. 데이터 스트림(418)은 본 발명에서 설명된 바와 같은 방법 및 시스템에 따라 데이터 스트림(418)을 검증 및 인증하는 프레임 디코더(414)에 입력된다. 프레임 디코더(414)는 식별자 및 대응하는 데이터 필드 또는 정적 요소 없이 전형적으로 데이터 스트림(418)에 대응하는 데이터 스트림(417)을 출력한다. 데이터 스트림(417)은 오디오 디코더(413)에서 디코딩된다. 여기서, 압축해제되고, 추가된 메타데이터가 제거된다. 앞서 설명된 바와 같이, 프레임 디코딩은 전형적으로 프로세싱이 프레임별로 수행되도록 순차로 반복되는 방식으로 수행된다.
다른 디코딩/수신 컴포넌트는 조인트 디코더를 형성하기 위하여, 그룹화될 수 있다. 예시적인 방법에서, 프레임 디코더(414) 및 오디오 디코더(413)는 조인트 디코더/수신기(411)을 형성할 수 있으며, 이는 디지털 신호 프로세서(DSP)로 구현될 수 있다. 앞서 설명된 바와 같이, 이는 오디오 디코더 및 식별자 검증 사이의 상호작용을 수용하기 위하여, 이득이 될 수 있다. 결국, 조인트 디코더/수신기(411)는 D/A(digital-to-analog) 컨버터(412)를 이용하여 아날로그 오디오 신호(415)를 디지털 데이터 스트림(416)으로 변환하여 출력한다.
본 발명에서, 용어 "인코더(encoder)"는 완전한 인코더(400) 조인트 인코더(401) 또는 프레임 인코더(404)를 지칭하는 것일 수 있다. 용어 "디코더(decoder)"는 완전한 디코더(410), 조인트 디코더(411) 또는 프레임 디코더(414)를 지칭하는 것일 수 있다. 다른 측면에서, 소위, "비신뢰 인코더(untrusted encoder)"는 인코더이며, 이는 식별자를 전혀 생성하지 않거나, 본 발명에서 설명된 바와 같은 방법에 따른 식별자를 생성하지 않는다.
도 5는 브로드캐스팅 헤드엔드(headend)(504)를 포함하는 예시적인 브로드캐스팅 시스템(500)을 도시한다. 헤드엔드(504)는 또한 다른 인코더들로부터 유래된 비트스트림들(501, 502 및 503)을 결합하도록 동작하는 접속기(스플라이서, splicer) 또는 접속 수단을 포함한다. 무선 브로드캐스팅 시스템 내에서, 그러한 다른 비트스트림들(501, 502 및 503)은 다른 오디오 인코더들에 의해 전형적으로 인코딩된 다른 오디오 비트스트림들이 될 수 있다. 비트스트림(501, 502, 및 503)은 다른 가려진(shaded) 블록들에 의해 나타내어지는 복수의 프레임들로 구성된다. 도시된 예에서, 비트스트림(501)은 5개의 프레임들을 포함하며, 비트스트림(502)은 4개의 프레임들을 포함하고, 비트스트림(503)은 6개의 프레임들을 포함한다. 접속기 및/또는 헤드엔드(504)는 조인트 비트스트림(505)를 생성하기 위하여 비트스트림을 결합하도록 동작한다. 예에서 보인 바와 같이, 이는 비트스트림(501)을 비트스트림(503)에 부착하고, 비트스트림(502)을 비트스트림(501)에 부착함에 의해 달성될 수 있다. 하지만, 도 5에 보인 바와 같이, 이는 원래의(original) 비트스트림들(501, 502, 503)의 오직 선택된 부분들, 예컨대, 오디오 비트스트림들의 오직 일부들만이 요구될 수 있다. 가령, 결합된 비트스트림(505)은 비트스트림(501)의 3개의 프레임들에 따르고, 비트스트림(502)의 2개의 프레임들에 따라, 비트스트림(503)의 오직 2개의 프레임들을 포함한다.
원래의 비트스트림들(501, 502, 503)은 식별자를 포함할 수 있다. 즉, 비트스트림들(501, 502, 503)은 신뢰되는 인코더로부터 유래될 수 있다. 식별자 각각은 프레임들의 다른 수 N에 기초할 수 있다. 일반성의 결여 없이, 비트스트림들(501 및 503)의 식별자는 2개의 프레임들을 포함하는 프레임들의 그룹에 대해 판별될 수 있다고 가정한다. 다른 한편, 비트스트림(502)은 신뢰되는 인코더로부터 유래되지 않았으며, 그러므로, 식별자를 포함하지 않는다.
수신되는 비트스트림(501 및 503)이 신뢰되는 인코더로부터 유래되면, 접속기 및/또는 헤드엔드(504)는 또한 식별자를 포함하는 비트스트림(505)을 브로드캐스트하는 것이 요구된다. 그러한 식별자는 신뢰되는 인코더로부터 유래되는 비트스트림(505)의 모든 부분들에 대해 비트스트림(505) 내에서 전송되어져야만 한다. 다른 한편, 신뢰되는 인코더로부터 유래되지 않은 비트스트림(505)의 부분들, 즉, 비트스트림(502)로부터 취해진 부분들은 식별자를 포함하지 않는다.
이 목적을 달성하기 위하여, 접속기 및/또는 헤드엔드(504)는 식별자의 인코딩 및/또는 디코딩을 수행하도록 동작할 수 있다. 도 5에 보인 바와 같이, 나가는(outgoing) 비트스트림(505)의 처음 2 프레임들은 비트스트림(503)으로부터 유래된다. 이러한 처음 두 개의 프레임들이 프레임들의 그룹에 대응하면, 이 프레임들의 그룹의 식별자는 비트스트림(505)의 3번째 프레임에 배치될 수 있다. 이는 도 1에 관련되어 설명되었다. 다른 한편, 만약, 2개의 프레임들이 프레임들의 다른 그룹에 속하면, 헤드엔드(504)는 다음과 같이 동작한다.
● 비트스트림(503)이 신뢰되는 인코더로부터 유래되었는지 여부를 검증한다. 그리고,
● 출력되는 비트스트림(503)의 프레임들, 즉, 비트스트림(505)의 첫 번째 2개의 프레임들에 대한 새로운 식별자를 생성한다.
전송되는(outgoing) 비트스트림(505) 상의 식별자를 생성하기 위하여 사용되는 수 N은 수신되는(incoming) 비트스트림(501 및 503) 상의 식별자를 생성하기 위해 사용되는 수 N과 동일한 수가 될 필요는 없다. 이는 비트스트림(501)의 콘텍스트에 보여질 수 있다. 이러한 오직 3개의 프레임들은 전송되는 비트스트림(505)에 포함된다. 처음(제1) 식별자는 처음 2개의 프레임들에 대해 생성될 수 있다. 반면, 두 번째(제2) 식별자는 3번째 프레임에 대해 생성될 수 있다. 다른 말로, N은 처음 2개의 프레임들에 대해 2가 될 수 있으며, N은 3번째 프레임에 대해 1이 될 수 있다. 일반적으로, N은 그러므로, 비트스트림(505) 내에서 교환될 수 있다고 말할 수 있다. 이는 N이 디코더에서 독립적으로 판별될 수 있다는 사실에 기인한다. 바람직하게, 전송되는 비트스트림(505)에 대해 사용되는 수 N은 수신되는 비트스트림들(501 및 503)에 대해 사용되는 수 N에 비해 작거나 또는 같다.
게다가, 수신되는 비트스트림(502)은 식별자를 포함하지 않는 것에 유의하여야 한다. 즉, 비트스트림(502)은 신뢰되는 인코더로부터 유래되지 않는다. 결과적으로, 접속기 및/또는 헤드엔드(504)는 비트스트림(502)로부터 유래되는 프레임들에 대해 비트스트림(505)에서 식별자를 제공하지 않는다. 앞서 설명된 바와 같이, 디코더는 전형적으로 비트스트림(505)에서 식별자의 부재를 감지하도록 동작한다. 만약, 식별자를 포함하지 않는 프레임의 수가 미리 설정된 최대 수 Nmax를 초과하면, 디코더는 비트스트림(505)이 신뢰되는 인코더로부터 수신되지 않았음을 감지할 수 있다.
도 5의 예에서 보인 바와 같이, 비트스트림(505)은 신뢰되는 인코더로부터 유래되는 부분과 신뢰되지 않는 다른 부분으로 만들어질 수 있다. 결과적으로, 비트스트림(505)은 유효한 식별자를 포함하는 부분과 유효한 식별자를 포함하지 않는 부분을 포함할 수 있다. 접속기 및/또는 헤드엔드(504)는 다음과 같이 동작한다.
● 식별자를 포함하는 수신되는 비트스트림을 검출하는 단계;
● 전송되는 비트스트림으로서 식별자를 포함하는 비트스트림을 포워딩하는 단계;
● 식별자에 기초하여 수신되는 비트스트림을 인증하는 단계; 및
● 새로운 식별자로 비트스트림을 인코딩하는 단계;
다른 말로, 접속기 및/또는 헤드엔드(504)는 본 발명에서 설명된 바와 같은 인코더 및/또는 디코더의 구성을 포함할 수 있다. 즉, 접속기 및/또는 헤드엔드(504)는 수신되는 비트스트림을 수신할 때 디코더와 같이 동작하고, 전송되는 비트스트림을 생성할 때, 인코더와 같이 동작한다. 게다가, 이는 인증 및 재인코딩을 수행함이 없이, 식별자를 포함하는 비트스트림을 포워딩하도록 동작될 수 있다. 이 포워딩 동작은 동일한 비트스트림의 계속되는 전송에 대해서 수행될 수 있다. 반면, 디코딩 및 재인코딩은 바람직하게 다른 인코더들로부터의 비트스트림들 사이의 경계에서 사용되어 질 수 있다. 포워딩 동작을 이용함에 의해, 접속기 및/또는 헤드엔드(504)의 계산 부하(computational load)는 감소될 수 있다.
포워딩 동작은 선행하는 프레임들의 그룹의 식별자가 현재의 프레임들의 그룹의 식별자 값에 영향을 주지 않는 경우에 사용될 수 있다. 그러한 경우들에서, 프레임들의 그룹 및 그들에 연관된 식별자는 전송되는 비트스트림에 직접 포워딩될 수 있는 독립 엔티티처럼 보여질 수 있다. 다른 한편, 계속해서 연결된 식별자들이 사용되면, 현재의 프레임들의 그룹의 식별자는 앞선 프레이들의 그룹의 식별자에 종속되며, 따라서, 접속기는 바람직하게, 전송되는 비트스트림에 대해 연속으로 연결되는 식별자들의 스트림을 생성하기 위하여 전체 비트스트림을 재인코딩해야 하다. 이는 인증되지 않은 파티가 전송되는 비트스트림의 세그먼트들로 교체될 수 없음을 보장한다.
대부분 경우 인스턴스 접속기의 재인코딩은 새로운 식별자들의 생성을 제한하는 점을 언급한다. 비트스트림 자체, 즉, 특히 오디오 인코딩에는 전형적으로 영향을 미치지 않는다. 결과적으로, 비트스트림의 재인코딩은 낮은 계산 복잡도로 수행될 수 있다.하지만, 함호화 값이 어떤 암호화 값도 미리 실려 있지 않은 프레임 내로 삽입되면, 오디오 재인코딩을 수행하는 것이 필요하다.
도 6은 바람직한 실시에에 따른 수신되는 비트스트림들(1 내지 4)을 전송되는 연결된 비트스트림으로 연결시키는 것을 도시한다. 예로 도시된 바와 같이, 수신되는 비트스트림(1)은 암호화 값의 생성을 위한 4 프레임들의 그룹들을 형성한다. 비트스트림 아래에 각진 화살표는 프레임들의 그룹의 암호화 값이 다음 그룹의 첫 번째 프레임에 삽입되는 것을 나타낸다. 암호화 값이 삽입된 프레임들은 도면에서 해칭되었다. 수신되는 비트스트림(2) 프레임들의 그룹들은 6개의 프레임들을 포함하며, 수신되는 비트스트림(3)의 프레임들의 그룹들은 5개의 프레임들을 포함한다. 수신되는 비트스트림(4)은 암호화 값들이 없으며, 검증되거나 신뢰되지 않는다.
도면에서 수직선은 연결점들(splicing points)을 나타낸다. 도면으로부터 알 수 있는 바와 같이, 전송되는 비트스트림은 수신되는 비트스트림(1)에 대응하는 제1 섹션(I), 수신되는 비트스트림(2)에 대응하는 제2 섹션(II), 수신되는 비트스트림(3)에 대응하는 제3 섹션(III), 수신되는 비트스트림(4)에 대응하는 제4 섹션(IV)을 포함하며, 각 섹션들은 연결점들에서 이어진다. 첫 번째(제1) 연결점 까지, 암호화 값들을 포함하는 수신되는 비트스트림(1)은 연결된 비트스트림으로 복사될 수 있다. 하지만, 제2 섹션(II)에서 첫 번째(제1) 암호화 값은 재산출이 필요하다. 왜냐하면, 연결로 인하여, 이는 비트스트림(2)의 대응하는 암호화 값 보다 다른 데이터 프레임들에 관련되기 때문이다. 상세하게, 이 암호화 값은 5 프레임들에 기초하여 생성되며, 하나는 수신되는 비트스트림(1)에 속하며(연결점 이전의 것), 4개는 수신되는 비트스트림(2)에 속한다(연결점 이후의 것). 암호화 값들의 재산출은 비트스트림 아래의 화살표 및 변경된 해칭에 의해 나타낸다. 연결된 비트스트림에 재산출된 암화화 값의 변화의 전파(전달, propagation)에 의하여, 다음의 비트스트림(2)의 암호화 값 또한 재산출이 필요하다.
두 번째(제2) 연결점에서, 선택된 비트스트림은 2로부터 3으로 변경된다. 제3 비트스트림(3)의 첫 번째 프레임의 암호화 값은 비트스트림(2)의 앞 6개 프레임들에 기초하여 재산출된다. 연결점에서, 신뢰되지 않는 비트스트림(4)이 선택되며, 어떤 암호화 값들도 연결된 비트스트림의 섹션(IV)에 삽입되지 않는다. 대안적으로, 암호화 값은 연결된 비트스트림의 신뢰되는 섹션이 끝날 때, 연결된 비트스트림에 복사되는 비트스트림(3)의 마지막 프레임들에 대해 생성될 수 있다. 이 추가 암호화 값은 바람직하게, 섹션(IV)의 첫 번째 프레임에 삽입되며, 이는 도면에서 점선의 원으로 나타내었다. 비트 레이트 요구에 따라, 추가 암화화 값을 삽입하기 위한 공간을 생성하기 위해 이 프레임을 재인코딩하는 것이 필요할 수도 있다.
도 7은 수신되는 비트스트림(1 및 2)를 전송되는 비트스트림으로 연결하는 다른 예를 도시한다. 여기서, 연결점은 첫 번째(제1) 비트스트림 내에서 암호화 값을 전달하는 프레임의 바로 이전이며, 두 번째(제2) 비트스트림 내에서 암호화 값을 전달하는 프레임의 바로 이후이다. 이것이 제1 및 제2 비트스트림으로부터 암화화 값들의 위치들이 취해지면, 암호화 값들의 많은 갭이 연결된 비트스트림에 초래될 것이다. 연결된 비트스트림의 이 섹션에서 암호화 값들 사이의 거리가 비트스트림 내에서 신뢰의 상실을 나타냄이 없이 디코더가 수용하는 최대값 Nmax을 초과할 수 있다. 그러므로 추가 암호화 값을 연결점, 예컨대, 제2 비트스트림의 첫 번째 프레임에 삽입하는 것이 바람직하다. 이에 따라, 그룹들에서 프레임들의 수가 Nmax를 초과하지 않을 수 있다. 다시, 비트 레이트 제약에 따라, 추가 암호화 값을 비트스트림에 삽입하기 위한 공간을 생성하기 위해 이 프레임을 재인코딩하는 것이 필요할 수 있다. 밝힌 바와 같이, 이러한 경우에, 연결된 비트스트림에서 추가 암호화 값은 비트스트림(1)의 동일한 6개의 프레임들과 연관되기 때문에, 암호화 값은 연결점 다음의 비트스트림(1)의 첫 번째 프레임으로부터 복사되어야 할 수 있다. 하지만, 추가 암호화 값이 포함되는 프레임의 데이터 콘텐츠는 비트스트림(2)에 속한다. (정확하게, 이는 연결점 다음의 비트스트림(2)의 첫 번째 프레임에 대응한다.)
본 발명은 식별자 또는 암호화 값을 데이터 스트림에 도입되는 것을 허용하는 방법 및 시스템을 설명한다. 이 식별자는 데이터 스트림을 인증하고 검증하는 데에 사용될 수 있다. 게다가, 식별자는 플레이 백(played back)되거나, 또는 프로세스되는 데이터 스트림에 대한 디코더의 정확한 구성 설정을 보장하는 데에 사용될 수 있다. 특히, 방법 및 시스템은 추가 데이터 즉, 식별자를 HE AAC 비트스트림에 추가하며, 이 식별자는 이 비트스트림이 정당한 인코더 또는 전송기로부터 유래된 것임을 인증한다. 이는 리시버에게 HE AAC 비트스트림이 어떤 스펙(specification) 및/또는 어떤 퀄러티 표준에 적합함을 나타내게 할 수 도 있다. 이 식별자는 바람직하게 HMAC-MD5 연산으로부터 유도된다.
본 발명의 방법 및 시스템은 멀티미디어 파일들 및 멀티미디어 스트림들의 인증을 위해 사용되고, 그들은 또한 일반적인 인증을 해치지 않고 몇 개의 보호된 스트림들의 연결을 검출할 수 있다. 이는 완전한 스트림이 일관성에 대해 검사되는 것이 아니라, 연속된 프레임들의 세트에 대한 것임을 의미한다. 이는 전형적인 브로드캐스팅 시나리오들을 지원한다. 즉, 소위 "연결(splicing)", 여기서, 자주, 디바이스는 실제 출력 스트림을 생성하기 위하여, 다른 비트스트림 인코더 사이에 스위치된다. 게다가, 본 발명의 방법 및 시스템은 대역내(in-band) 및 대역외(out-of-band) 정보를 보호하기 위하여 사용된다. 여기서, 대역내 정보는 전형적으로 미디어 데이터 및 연관된 메타데이터를 포함한다. 그리고, 대역외 데이터는 전형적으로 구성 데이터를 포함한다. 그러므로 본 발명의 방법 및 시스템은 멀티미디어 스트림의 디코딩 및/또는 정확한 플레이백을 제어 및/또는 검출하도록 한다.
본 문헌에서 본 발명의 방법 및 시스템은 소프트웨어, 펌웨어 및/또는 하드웨어로 구현될 수 있다. 어떤 컴포넌트는 예컨대, 디지털 신호 프로세서(DSP, digital signal processor) 또는 마이크로프로세서 상에서 운영되는 소프트웨어로 구현될 수 있다. 다른 컴포넌트는 예컨대, 하드웨어로, 또는 주문형반도체(ASIC, application specific integrated circuits)로 구현될 수 있다. 설명된 방법 및 시스템에서 발생되는 신호들은 RAM(random access memory) 또는 광학저장매체(optical storage media)와 같은, 매체에 저장될 수 있다. 그 신호들은 라디오 네트워크, 위성 네트워크, 무선 네트워크 또는 예컨대, 인터넷과 같은, 유선 네트워크와 같은 네트워크를 통해 전달될 수 있다. 본 발명에서 설명되는 방법 및 시스템에 사용되는 전형적인 디바이스는 셋탑 박스들 또는 오디오 신호들을 디코딩하는 다른 고객 댁내 장치(customer premises equipment)가 될 수 있다. 인코딩 측면에서, 본 발명의 방법 및 시스템은 브로드캐스팅 스테이션, 예컨대, 비디오 및 오디오 헤드엔드 시스템에 사용될 수 있다.
400: 인코더 401: 조인트 인코더
402: A/D 컨버터 403: 오디오 인코더
404: 프레임 인코더 410: 디코더
411: 조인트 디코더 412: D/A 컨버터
413; 오디오 디코더 414: 프레임 디코더

Claims (49)

  1. 복수의 데이터 프레임들을 포함하는 데이터 스트림을 인코딩하기 위한 방법에 있어서,
    구성 정보 및 연속되는 데이터 프레임들의 수 N의 암호화 값을 생성하는 단계로서, 상기 구성 정보는 데이터 스트림을 랜더링하기 위한 정보를 포함하는, 단계; 및
    상기 암호화 값을 N 연속된 데이터 프레임에 후속하는 데이터 스트림에 삽입하는 단계;를 포함하는 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  2. 제1항에 있어서,
    제1 메시지를 생성하기 위하여 연속되는 데이터 프레임들의 수 N을 그룹핑하는 단계; 및
    제2 메시지를 생성하기 위하여 구성 정보와 함께 상기 제1 메시지를 그룹핑하는 단계로서, 상기 암호화 값은 제2 메시지로 생성되는 것을 특징으로 하는, 제1 메시지를 그룹핑하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  3. 제1항에 있어서,
    암호화 값을 생성하는 단계는
    N 연속된 프레임들 중 어느 하나의 임시 암호화 값을 생성하는 단계;를 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  4. 제1항에 있어서,
    암호화 값을 생성하는 단계는
    시작 상태를 이용하여 N 연속되는 프레임들의 각각의 임시 암호화 값을 반복하여 생성하는 단계;를 포함하며, 상기 시작 상태는 앞선 반복의 임시 암호화 값인 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  5. 제4항에 있어서,
    첫 번째 반복의 시작 상태는 구성 정보의 임시 암호화 값인 것을 특징으로 하는, 데이터 스트림을 인코딩하기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 프레임들의 수 N은 1 보다 큰 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 데이터 프레임은 비디오 및/또는 오디오 프레임들인 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 데이터 프레임들은 돌비 펄스(Dolby Pulse), AAC 또는 HE-AAC 프레임들인 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 구성 정보는
    샘플 레이트의 지시자;
    오디오 코딩 시스템의 채널 구성의 지시자; 및
    데이터 프레임에서 샘플들의 수의 지시자; 중
    적어도 하나를 포함하는 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 암호화 값은 키 값 및 암호화 해시 함수를 이용하여 생성되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  11. 제10항에 있어서,
    상기 암호화 값을 생성하는 단계는
    구성 정보 및 연속된 데이터 프레임의 수 N의 HMAC-MD5 값을 계산하는 단계를 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  12. 제11항에 있어서,
    상기 암호화 값을 생성하는 단계는
    암호화 값을 생산하기 위하여 HMAC-MD5를 절삭하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  13. 제12항에 있어서,
    상기 HMAC-MD5 값은
    16, 24, 32, 48, 64, 80, 96 또는 112 비트로 절삭되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    N 연속된 데이터 프레임의 상기 암호화 값은 다음 데이터 프레임에 삽입되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    N 연속된 데이터 프레임들에 후속으로 동기 지시자를 삽입하는 단계;를 더 포함하며,
    상기 동기 지시자는 상기 암호화 값이 삽입되었음을 나타내는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 데이터 스트림은 MPEG4 AAC 또는 MPEG2 AAC 스트림이며,
    상기 암호화 값은 데이터 스트림 요소 <DSE>로 삽입되는 것을 특징으로 하는 데이터 스트림을 인코딩하기 위한 방법.
  17. 제16항에 있어서,
    상기 데이터 스트림 요소 <DSE>는 프레임의 끝에서 <TERM> 요소의 앞에 삽입되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 데이터 스트림 요소 <DSE>의 콘텐츠는
    데이터 스트림의 바이트 경계에 정렬되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 생성하는 단계 및 상기 암호화 값을 삽입하는 단계는
    N 연속된 데이터 프레임들의 복수의 블록들에 대해 반복되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  20. 제19항에 있어서,
    N 연속된 데이터 프레임들의 블록의 암호화 값은
    N 연속된 데이터 프레임들의 이전 블록의 암호화 값을 포함하는 N 연속된 데이터 프레임들의 블록 상에 생성되는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    적합한 구성으로 플레이 백(played back)할 때,
    가능한 대응하는 신호의 미리 설정된 기간에 가깝게
    N 연속된 프레임들을 커버하도록 N을 선택하는 단계;를 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  22. 제21항에 있어서,
    상기 미리 설정된 기간이 초과되지 않도록 N을 선택하는 단계;를 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  23. 제21항 또는 제22항에 있어서,
    상기 미리 설정된 기간은 0.5 초인 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  24. 제7항에 있어서,
    데이터 스트림의 비디오 및/또는 오디오 인코더가 상호작용(interacting)하는 단계를 더 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  25. 제24항에 있어서,
    상기 데이터 스트림의 비디오 및/또는 오디오 인코더가 상호작용(interacting)하는 단계는
    암호화 값을 포함하는 데이터 스트림의 비트-레이트가 미리 결정된 값을 초과하지 않도록 비디오 및/또는 오디오 인코더에 대한 최대 비트-레이트를 설정하는 단계를 포함하는 것을 특징으로 하는
    데이터 스트림을 인코딩하기 위한 방법.
  26. 디코더에서 선행하는 연속된 데이터 프레임들의 수 N과 관련된 암호화 값 및 복수의 프레임들을 포함하는 데이터 스트림을 검증하기 위한 방법으로서,
    암호화 해시 함수를 이용하여 구성 정보 및 연속된 데이터 프레임의 수 N의 제2 암호화 값을 생성하는 단계로서, 상기 구성 정보는 데이터를 랜더링하기 위한 정보를 포함하는 것을 특징으로 하는, 제2 암호화 값을 생성하는 단계;
    상기 데이터 스트림의 프레임으로부터 암호화 값을 추출하는 단계; 및
    제2 암호화 값과 암호화 값을 비교하는 단계;를 포함하는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  27. 제26항에 있어서,
    제1 메시지를 형성하기 위하여 N 연속된 데이터 프레임들을 추출하는 단계;
    제2 메시지를 생성하기 위하여 구성 정보로 상기 제1 메시지를 그룹핑하는 단계;를 더 포함하며,
    상기 제2 암호화 값은 상기 제2 메시지로 생성되는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  28. 제26항에 있어서,
    상기 제2 암호화 값을 생성하는 단계는
    N 연속된 프레임들 중 하나의 임시 제2 암호화 값을 생성하는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  29. 제26항에 있어서,
    상기 제2 암호화 값을 생성하는 단계는
    시작 상태를 이용하여 N 연속된 프레임들 각각의 임시 제2 암호화 값을 반복하여 생성하는 단계;를 포함하며,
    상기 시작 상태는 앞선 반복의 임시 제2 암호화 값임을 특징으로 하는,
    데이터 스트림을 검증하기 위한 방법.
  30. 제29항에 있어서,
    첫 번째 반복의 상기 시작 상태는
    구성 정보의 임시 제2 암호화 값인 것을 특징으로 하는,
    데이터 스트림을 검증하기 위한 방법.
  31. 제26항 내지 제30항 중 어느 한 항에 있어서,
    상기 데이터 스트림은
    복수의 N 연속된 데이터 프레임들 및 관련된 암호화 값을 포함하며,
    상기 방법은
    2개의 연속된 암호화 값 사이의 프레임들의 수로, 수 N을 결정하는 단계;를 더 포함하는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  32. 제26항 내지 제31항 중 어느 한 항에 있어서,
    상기 암호화 값은 제2 암호화 값을 생성하기 위해 사용되는 방법에 대응하는 방법에 따라, N 연속된 데이터 프레임들 및 구성 정보로부터 대응하는 인코더에서 생성되는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  33. 제32항에 있어서,
    상기 암호화 값 및 상기 제2 암호화 값은
    고유의 키 값 및 고유의 암호화 해시 함수를 이용하여 생성되는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  34. 제26항 내지 제33항 중 어느 한 항에 있어서,
    상기 암호화 값이 상기 제2 암호화 값에 대응하면, 플래그를 설정하는 단계; 및
    상기 플래그가 설정되면 비주얼 지시자를 제공하는 단계;를 더 포함하는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  35. 제26항 내지 제34항에 있어서,
    만약, 암호화 값이 제2 암호화 값에 대응하지 않거나, 또는, 상기 데이터 스트림으로부터 추출할 수 있는 암호화 값이 없으면, 플래그를 클리어 하는 단계;를 더 포함하는 것을 특징으로 하는
    데이터 스트림을 검증하기 위한 방법.
  36. 제1항 내지 제25항 중 어느 한 항에 따른 방법에 따라 생성되고 삽입되는 암호화 값을 포함하는 것을 특징으로 하는 데이터 스트림.
  37. 복수의 데이터 프레임을 포함하는 데이터 스트림을 인코딩하도록 동작하는 인코더에 있어서,
    상기 인코더는 동작하는 프로세서를 포함하며,
    상기 프로세서는
    암호화 해시 함수를 이용하여 구성 정보 및 연속된 데이터 프레임들의 수 N의 암호화 값을 생성하되, 상기 구성 정보는 데이터 스트림을 랜더링하기 위한 정보를 포함하는 것을 특징으로 하며; 그리고,
    상기 암호화 값을 N 연속된 데이터 프레임에 후속하는 데이터 스트림에 삽입하는 것을 특징으로 하는
    데이터 스트림을 인코딩하도록 동작하는 인코더.
  38. 선행하는 연속된 데이터 프레임들의 수 N과 관련된 암호화 값 및 복수의 프레임들을 포함하는 데이터 스트림을 검증하도록 동작하는 디코더로서,
    상기 디코더는 프로세서를 포함하며,
    상기 프로세서는
    암호화 해시 함수를 이용하여 구성 정보 및 연속된 데이터 프레임의 수 N의 제2 암호화 값을 생성하며, 상기 구성 정보는 데이터를 랜더링하기 위한 정보를 포함하며;
    제2 암호화 값과 암호화 값을 비교하는; 것을 특징으로 하는
    데이터 스트림을 검증하도록 동작하는 디코더.
  39. 컴퓨팅 장치 상에 수행될 때, 프로세서 상에 수행되고, 제1항 내지 제35항 중 어느 한 항에 따른 방법의 단계를 실행하기 위한 소프트웨어 프로그램.
  40. 프로세서 상에 수행되고, 제1항 내지 제35항 중 어느 한 항에 따른 방법의 단계를 실행하기 위한 소프트웨어 프로그램을 포함하는 저장 매체.
  41. 컴퓨터 상에서 수행될 때, 제1항 내지 제35항 중 어느 한 항에 따른 방법을 수행하기 위한 실행 가능한 명령을 포함하는 컴퓨터 프로그램 제품.
  42. 오디오 신호를 포함하는 수신된 데이터 스트림을 디코딩하기 위한 셋탑 박스로서,
    수신된 데이터 스트림을 검증하기 위한 제38항에 따른 디코더를 포함하는 것을 특징으로 하는 셋탑 박스.
  43. 오디오 신호를 포함하는 수신된 데이터 스트림을 디코딩하기 위한 휴대용 전자 장치로서,
    수신된 데이터 스트림의 검증을 위하여 제38항에 따른 디코더를 포함하는 것을 특징으로 하는 휴대용 전자 장치.
  44. 오디오 신호를 포함하는 수신된 데이터를 디코딩하기 위한 컴퓨터로서,
    수신된 데이터 스트림의 검증을 위하여 제33항에 따른 디코더를 포함하는 것을 특징으로 하는 컴퓨터.
  45. 오디오 신호를 포함하는 데이터 스트림을 전송하기 위한 브로드캐스팅 시스템으로서, 제37항에 따른 인코더를 포함하는 브로드캐스팅 시스템.
  46. 각각 복수의 데이터 프레임들 및 데이터 프레임들의 주어진 수에 관련된 암호화 값을 포함하는 제1 및 제2 비트스트림을 연결하기 위한 방법으로서,
    상기 방법은,
    상기 제1 및 제2 비트스트림으로부터 연결된 비트스트림을 생성하는 단계;를 포함하며,
    상기 연결된 비트스트림은 제1 및 제2 비트스트림으로부터 복수의 데이터 프레임들의 적어도 일부를 포함하며,
    제1항 내지 제35항 중 어느 한 항에 따른 방법에 따라 삽입되고 생성된 암호화 값을 포함하는 것을 특징으로 하는
    제1 및 제2 비트스트림을 연결하기 위한 방법.
  47. 각각 복수의 데이터 프레임들 및 데이터 프레임들의 주어진 수에 관련된 암호화 값을 포함하는 제1 및 제2 비트스트림을 연결하도록 동작하는 접속기(splicer)로서,
    제1 비트스트림의 마지막 프레이들 및 제2 비트스트림의 제1 프레임들을 인코딩하기 위한 제37항에 따른 인코더를 포함하는 것을 특징으로 하는 접속기.
  48. 제47항에 있어서,
    디코딩 및 인코딩되지 않은 제1 및 제2 비트스트림의 관련된 암호화 값들과 포워딩 프레임들을 포워딩하기 위한 포워딩 유닛을 더 포함하는 것을 특징으로 하는 접속기.
  49. 제47항 또는 제48항에 있어서,
    상기 제1 및 제2 비트스트림의 신뢰 상태를 판별하기 위하여, 제1 비트스트림의 마지막 프레임, 제2 비트스트림의 제1 프레임 및 관련된 암호화 값들을 디코딩하기 위한 제33항에 따른 디코더; 및
    대응하는 제1 또는 제1 비트스트림이 인증되면, 인코더가 비트스트림의 일부에 암호화 값들을 삽입하도록 하는 제어 유닛;을 더 포함하는 것을 특징으로 하는 접속기.
KR1020127003331A 2009-08-07 2010-08-06 데이터 스트림의 인증 방법 KR101489364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US23229509P 2009-08-07 2009-08-07
US61/232,295 2009-08-07
PCT/EP2010/004827 WO2011015369A1 (en) 2009-08-07 2010-08-06 Authentication of data streams

Publications (2)

Publication Number Publication Date
KR20120050446A true KR20120050446A (ko) 2012-05-18
KR101489364B1 KR101489364B1 (ko) 2015-02-03

Family

ID=43014283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127003331A KR101489364B1 (ko) 2009-08-07 2010-08-06 데이터 스트림의 인증 방법

Country Status (18)

Country Link
US (1) US8885818B2 (ko)
EP (1) EP2462587B1 (ko)
JP (1) JP5542205B2 (ko)
KR (1) KR101489364B1 (ko)
CN (1) CN102576559B (ko)
AR (1) AR077680A1 (ko)
AU (1) AU2010280971B2 (ko)
BR (1) BR112012002831B1 (ko)
CA (1) CA2768327C (ko)
HK (1) HK1168461A1 (ko)
IL (1) IL217469A (ko)
MX (1) MX2012001558A (ko)
MY (1) MY152679A (ko)
RU (1) RU2509424C2 (ko)
SG (1) SG177605A1 (ko)
TW (1) TWI501580B (ko)
UA (1) UA104483C2 (ko)
WO (1) WO2011015369A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10244271B2 (en) 2015-06-17 2019-03-26 Sony Semiconductor Solutions Corporation Audio recording device, audio recording system, and audio recording method
WO2019093561A1 (ko) * 2017-11-07 2019-05-16 전자부품연구원 비디오 데이터의 위/변조 방지 장치 및 방법

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
TWI413110B (zh) 2009-10-06 2013-10-21 Dolby Int Ab 以選擇性通道解碼的有效多通道信號處理
WO2011048010A1 (en) 2009-10-19 2011-04-28 Dolby International Ab Metadata time marking information for indicating a section of an audio object
US9210456B1 (en) * 2012-03-07 2015-12-08 The Directv Group, Inc. Method and system for detecting unauthorized use of a user device using receiver identification in a network
US9813705B2 (en) * 2012-04-26 2017-11-07 Qualcomm Incorporated Parameter set coding
WO2014050597A1 (ja) * 2012-09-28 2014-04-03 シャープ株式会社 画像復号装置
ES2629195T3 (es) * 2013-01-21 2017-08-07 Dolby Laboratories Licensing Corporation Codificación y descodificación de una secuencia de bits según un nivel de confianza
KR101428770B1 (ko) * 2013-05-29 2014-08-08 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
US10263783B2 (en) * 2013-08-23 2019-04-16 Nec Corporation Method and system for authenticating a data stream
FR3015167A1 (fr) * 2013-12-13 2015-06-19 Orange Systeme de transport de donnees radio multipoint a multipoint
WO2016049895A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 配置的方法、配置的装置及设备
JP2016122917A (ja) * 2014-12-24 2016-07-07 パナソニックIpマネジメント株式会社 署名生成装置、署名検証装置、署名生成方法及び署名検証方法
CN107531676A (zh) 2015-04-13 2018-01-02 拜耳作物科学股份公司 N‑环烷基‑n‑(双杂环基亚乙基)‑(硫代)羧酰胺衍生物
EP3288025A4 (en) * 2015-04-24 2018-11-07 Sony Corporation Transmission device, transmission method, reception device, and reception method
EP3402301B1 (en) * 2015-05-19 2019-07-10 Telefonaktiebolaget LM Ericsson (publ) Methods, wireless communication device and radio network node for managing contention resolution
CN106610995B (zh) * 2015-10-23 2020-07-07 华为技术有限公司 一种创建密文索引的方法、装置及系统
TWI589153B (zh) * 2015-12-29 2017-06-21 晨星半導體股份有限公司 資料流的同步偵測方法
CN107040793A (zh) * 2016-02-04 2017-08-11 晨星半导体股份有限公司 数据流的同步检测方法
DE102016207642A1 (de) * 2016-05-03 2017-11-09 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Authentisieren eines Datenstroms
PL3568853T3 (pl) 2017-01-10 2021-06-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, enkoder audio, sposób dostarczania dekodowanego sygnału audio, sposób dostarczania enkodowanego sygnału audio, strumień audio, moduł dostarczania strumienia audio i program komputerowy używający identyfikator strumienia
US9870508B1 (en) * 2017-06-01 2018-01-16 Unveiled Labs, Inc. Securely authenticating a recording file from initial collection through post-production and distribution
US10956246B1 (en) * 2018-07-16 2021-03-23 Amazon Technologies, Inc. Isolated read channel management interfaces at streaming data service
JP7113589B2 (ja) * 2018-07-17 2022-08-05 株式会社デンソー 情報仲介装置、情報提供装置、及び情報取得装置
US11343108B2 (en) * 2019-06-12 2022-05-24 Arizona Board Of Regents On Behalf Of Northern Arizona University Generation of composite private keys
BR112021025587A2 (pt) * 2019-07-17 2022-02-01 Dolby Int Ab Gerenciamento de latência para entrega de conteúdo
US11431512B2 (en) 2019-10-16 2022-08-30 Microsoft Technology Licensing, Llc Cryptographic validation of media integrity
JP2023500632A (ja) * 2019-10-30 2023-01-10 ドルビー ラボラトリーズ ライセンシング コーポレイション 没入的音声およびオーディオ・サービスにおけるビットレート配分
US11838267B2 (en) * 2020-07-16 2023-12-05 Twistlock, Ltd. Distributed identity-based firewall policy evaluation

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463424A (en) 1993-08-03 1995-10-31 Dolby Laboratories Licensing Corporation Multi-channel transmitter/receiver system providing matrix-decoding compatible signals
ATE237197T1 (de) 1993-11-18 2003-04-15 Digimarc Corp Identifikations/beglaubigungskodierungsverfahre und -vorrichtung
US5646997A (en) 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US5915027A (en) 1996-11-05 1999-06-22 Nec Research Institute Digital watermarking
US6009176A (en) 1997-02-13 1999-12-28 International Business Machines Corporation How to sign digital streams
US7197156B1 (en) 1998-09-25 2007-03-27 Digimarc Corporation Method and apparatus for embedding auxiliary information within original data
US6904089B1 (en) * 1998-12-28 2005-06-07 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
WO2000054453A1 (en) 1999-03-10 2000-09-14 Digimarc Corporation Signal processing methods, devices, and applications for digital rights management
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
GB9929364D0 (en) * 1999-12-10 2000-02-02 Microbar Security Limited Improvements in or relating to coding techniques
US7058815B2 (en) 2001-01-22 2006-06-06 Cisco Technology, Inc. Method and system for digitally signing MPEG streams
US6996717B2 (en) * 2001-05-24 2006-02-07 Matsushita Electric Industrial Co., Ltd. Semi-fragile watermarking system for MPEG video authentication
WO2003024020A1 (en) 2001-09-10 2003-03-20 Entriq Limited Bvi Method and computer system to perform on the fly fingerprinting for media content
RU2308077C2 (ru) 2001-12-04 2007-10-10 Майкрософт Корпорейшн Способы и системы для криптографической защиты охраняемого содержимого
GB2392337B (en) 2002-07-19 2005-12-07 Matsushita Electric Ind Co Ltd Digital watermarking apparatus and application apparatus using the same
US7360093B2 (en) * 2002-07-22 2008-04-15 Xerox Corporation System and method for authentication of JPEG image data
US20040243820A1 (en) * 2003-05-14 2004-12-02 Kenichi Noridomi Information-embedding apparatus and method, tampering-detecting apparatus and method, and recording medium
JP2004364263A (ja) * 2003-05-14 2004-12-24 Matsushita Electric Ind Co Ltd 情報埋め込み装置、改ざん検出装置及びそれらの方法並びに記録媒体
GB0317571D0 (en) * 2003-07-26 2003-08-27 Koninkl Philips Electronics Nv Content identification for broadcast media
US7417989B1 (en) 2003-07-29 2008-08-26 Sprint Spectrum L.P. Method and system for actually identifying a media source in a real-time-protocol stream
US20060136728A1 (en) 2003-08-15 2006-06-22 Gentry Craig B Method and apparatus for authentication of data streams with adaptively controlled losses
GB0403331D0 (en) 2004-02-14 2004-03-17 Koninkl Philips Electronics Nv Watermark detection
US8539608B1 (en) * 2004-03-25 2013-09-17 Verizon Corporate Services Group Inc. Integrity checking at high data rates
JP2005318068A (ja) * 2004-04-27 2005-11-10 Kddi Corp コンテンツ認証データの電子透かし埋め込み方式および認証方式
JP4499631B2 (ja) 2005-08-31 2010-07-07 株式会社日立国際電気 画像受信装置及びプログラム
US7752449B1 (en) * 2006-02-22 2010-07-06 Avaya, Inc. System and method for generating a non-repudiatable record of a data stream
US20080005558A1 (en) 2006-06-29 2008-01-03 Battelle Memorial Institute Methods and apparatuses for authentication and validation of computer-processable communications
KR100781528B1 (ko) * 2006-06-29 2007-12-03 삼성전자주식회사 무결성을 보장하는 비디오 스트림을 제공하는 장치 및 그방법
US20080010466A1 (en) * 2006-07-10 2008-01-10 William Hopper Digital identifier chaining
WO2008046492A1 (en) 2006-10-20 2008-04-24 Dolby Sweden Ab Apparatus and method for encoding an information signal
US7930554B2 (en) * 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
JP5101964B2 (ja) 2007-09-25 2012-12-19 京セラ株式会社 受信装置
CN101855635B (zh) 2007-10-05 2013-02-27 杜比实验室特许公司 可靠地与媒体内容对应的媒体指纹
JP2009093506A (ja) 2007-10-11 2009-04-30 Sony Corp 信号処理装置、信号処理方法および信号処理プログラム
JP4584300B2 (ja) 2007-12-19 2010-11-17 富士通株式会社 電子署名プログラム、コンピュータにより読み取り可能な記録媒体、電子署名装置、電子署名方法
US8798776B2 (en) 2008-09-30 2014-08-05 Dolby International Ab Transcoding of audio metadata
BRPI0919880B1 (pt) 2008-10-29 2020-03-03 Dolby International Ab Método e aparelho para prover proteção contra o ceifamento de sinal de um sinal de áudio derivado de dados de áudio digital e transcodificador
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
CN103854651B (zh) 2009-12-16 2017-04-12 杜比国际公司 Sbr比特流参数缩混
TWI529703B (zh) 2010-02-11 2016-04-11 杜比實驗室特許公司 用以非破壞地正常化可攜式裝置中音訊訊號響度之系統及方法
TWI525987B (zh) 2010-03-10 2016-03-11 杜比實驗室特許公司 在單一播放模式中組合響度量測的系統

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10244271B2 (en) 2015-06-17 2019-03-26 Sony Semiconductor Solutions Corporation Audio recording device, audio recording system, and audio recording method
WO2019093561A1 (ko) * 2017-11-07 2019-05-16 전자부품연구원 비디오 데이터의 위/변조 방지 장치 및 방법

Also Published As

Publication number Publication date
TW201134135A (en) 2011-10-01
KR101489364B1 (ko) 2015-02-03
IL217469A0 (en) 2012-03-01
AU2010280971B2 (en) 2013-02-14
UA104483C2 (uk) 2014-02-10
MY152679A (en) 2014-10-31
IL217469A (en) 2015-02-26
CN102576559A (zh) 2012-07-11
WO2011015369A8 (en) 2012-03-01
AR077680A1 (es) 2011-09-14
JP2013500655A (ja) 2013-01-07
CA2768327C (en) 2015-10-27
WO2011015369A1 (en) 2011-02-10
MX2012001558A (es) 2012-04-10
AU2010280971A1 (en) 2012-02-09
US20120128151A1 (en) 2012-05-24
HK1168461A1 (zh) 2012-12-28
RU2509424C2 (ru) 2014-03-10
CA2768327A1 (en) 2011-02-10
JP5542205B2 (ja) 2014-07-09
TWI501580B (zh) 2015-09-21
SG177605A1 (en) 2012-02-28
BR112012002831A2 (pt) 2021-01-26
EP2462587A1 (en) 2012-06-13
BR112012002831B1 (pt) 2021-08-31
RU2012107995A (ru) 2013-09-20
EP2462587B1 (en) 2016-07-06
US8885818B2 (en) 2014-11-11
CN102576559B (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
KR101489364B1 (ko) 데이터 스트림의 인증 방법
US11075762B2 (en) Metadata transcoding
JP6929345B2 (ja) プログラム・ラウドネスおよび境界メタデータをもつオーディオ・エンコーダおよびデコーダ
JP2022050646A (ja) 複数のメディア処理ノードによる適応処理
CN110740390A (zh) 一种基于帧间提取生成关联摘要的视音频可信播放方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190111

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 6