KR20060116025A - 데이터 스케일링 방법 및 데이터 처리 방법 - Google Patents

데이터 스케일링 방법 및 데이터 처리 방법 Download PDF

Info

Publication number
KR20060116025A
KR20060116025A KR1020067016959A KR20067016959A KR20060116025A KR 20060116025 A KR20060116025 A KR 20060116025A KR 1020067016959 A KR1020067016959 A KR 1020067016959A KR 20067016959 A KR20067016959 A KR 20067016959A KR 20060116025 A KR20060116025 A KR 20060116025A
Authority
KR
South Korea
Prior art keywords
data
scalable
segment
encoded data
profile data
Prior art date
Application number
KR1020067016959A
Other languages
English (en)
Other versions
KR100805604B1 (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 KR20060116025A publication Critical patent/KR20060116025A/ko
Application granted granted Critical
Publication of KR100805604B1 publication Critical patent/KR100805604B1/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/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

데이터를 스케일링(예를 들면, 트랜스코딩)하는 방법(60, 70, 80)이 개시되어 있다. 인코딩된 데이터의 시퀀스를 액세스한다(61). 인코딩된 데이터는 데이터를 인코딩하는 데 이용된 인코딩 기법에 따라서 조직된다. 스케일 가능 속성값이 결정된다(62). 스케일 가능 속성은 인코딩된 데이터가 스케일링되는 방식을 식별한다. 스케일 가능 속성과 연관된 인코딩된 데이터의 세그먼트에 대한 참조가 액세스된다(63). 이 참조는 인코딩 기법의 체계를 넘어서는 것이다. 이러한 참조는 인코딩된 데이터의 시퀀스 내에서 세그먼트의 위치를 확인하기 위해 이용된다(64). 세그먼트는 인코딩 기법에 관한 정보를 필요로 하지 않고 발견된다. 인코딩된 데이터의 스케일링된 버전은 세그먼트를 이용하여 생성된다(65).

Description

데이터 스케일링 방법 및 데이터 처리 방법{METHODS FOR SCALING ENCODED DATA WITHOUT REQUIRING KNOWLEDGE OF THE ENCODING SCHEME}
본 발명의 실시예는 데이터를 스케일링(예를 들면, 트랜스코딩(transcoding))하는 방법에 관한 것이다.
데이터 전송 시스템은 시스템 설계자에게 여러 과제를 제기한다. 예컨대, 클라이언트는 서로 다른 디스플레이, 전력, 통신 및 계산 능력(computational capabilities)을 가질 수 있다. 또한, 시스템 내의 통신 링크는 서로 다른 최대 대역폭, 품질 레벨 및 시변적 특성(time-varying characteristics)을 가질 수 있다. 성공적인 데이터 전송 시스템은 시변적 특성을 갖는 이종 네트워크에 걸쳐 다수의 다양한 클라이언트에게 데이터 스트림을 전송할 수 있어야 한다.
도청자로부터 컨텐츠를 보호하기 위해 적절한 보안을 제공하는 것은 데이터 전송 시스템의 설계에 있어서 또 다른 중요한 고려 사항이다. 일반적으로 보안을 제공하기 위해서, 데이터는 암호화된 형태로 전달된다.
시스템 내의 중간 노드는 스트림 적응(stream adaptation), 또는 트랜스코 딩(trandcoding)을 실행하여, 서로 다른 다운스트림 클라이언트 능력 및 네트워크 조건에 대해 데이터 스트림을 스케일링하기 위해 이용될 수 있다. 트랜스코더(transcoder)는 입력으로서 압축 또는 인코딩된 데이터 스트림을 획득한 다음, 그것을 처리하여 출력으로서 다른 인코딩된 데이터 스트림을 생성한다. 트랜스코딩 동작의 예는 비트 레이트 감소(bit rate reduction), 레이트 쉐이핑(rate shaping), 공간 다운샘플링(spatial downsampling) 및 프레임 레이트 감소(frame rate reduction)를 포함한다. 트랜스코딩은 예를 들면, 화상의 공간 해상도를 특정 클라이언트의 디스플레이 능력으로 적응시키거나, 데이터 스트림의 비트 레이트를 동적으로 조정하여 네트워크 채널의 시변적 특성에 일치시키는 것에 의해 시스템의 스케일 가능성(scalability) 및 효율을 향상시킬 수 있다.
중간 노드는 로컬 및 다운스트림 네트워크 조건 및 다운스트림 클라이언트 능력에 관한 정보를 수집 및 업데이트한 다음, 해당 정보에 따라서 데이터를 스케일링할 수 있다. 이것은 소스에서 데이터를 스케일링하는 것보다 더 효과적일 수 있는데, 왜냐하면 소스가 네트워크 내부의 조건에 관한 최신 및 상세 정보를 수집하는 것이 더 어렵고, 특히 네트워크 내에서 소스로부터 비교적 멀리 떨어진 위치에서 더욱 어렵기 때문이다. 또한, 소스는 전송 경로의 초반부에 오로지 하나의 제어 포인트만을 제공하는 한편, 중간 트랜스코딩 노드는 전송 경로를 따라서 보다 중요한 위치에서 여러 추가적인 제어 포인트를 제공한다.
네트워크 트랜스코딩은 데이터 전송 시스템 내에서 스케일링 가능성을 활성화하지만, 또한 다수의 문제점을 제공한다. 트랜스코딩 프로세스는 트랜스코딩 노 드에 상당한 계산 부하를 부여할 수 있다. 계산 효율적인 트랜스코딩 알고리즘이 개발되었기는 하지만, 이들은 중간 네트워크 노드에서 수백 또는 수천의 스트림을 처리하는 데 있어서는 잘 맞지 않을 수 있다.
또한, 통상적인 트랜스코딩 동작은 일반적으로 암호화된 스트림이 트랜스코딩 전에 해독되도록 요구하기 때문에, 트랜스코딩은 전송 시스템의 보안에 위협이 될 수 있다. 트랜스코딩된 결과는 재암호화되지만, 다음의 트랜스코더에서 해독된다. 따라서 각각의 트랜스코더는 시스템의 보안에 있어서 가능한 보안 틈새를 제공한다. 이것은 단대단 보안(end-to-end security)이 요구될 때 허용될 수 없는 상황이다.
압축 또는 인코딩 기법은 데이터 내에서 중복된 정보를 감소시키기 위해 이용되어, 사실상 데이터의 양을 줄이는 것에 의해 데이터의 저장 및 분포를 용이하게 한다. JPEG(Joint Photographic Experts Group) 표준은 화상 데이터를 인코딩하는 하나의 보편적인 최신 기법을 설명한다. JPEG는 여러 관점에서 만족스럽기는 하지만, 상술된 현재의 요구 사항에 대해서는 한계가 존재한다. 새로운 표준인 JPEG2000 표준은 그러한 요구를 충족하기 위해 개발되었다. 그러나, JPEG2000 표준을 갖고도, 트랜스코딩에 있어서 암호화된 데이터의 해독화가 요구되고, 트랜스코딩 프로세스는 여전히 계산 집약적이다. 게다가, JPEG2000 등과 같은 새로운 표준의 도입은 클라이언트 장치뿐만 아니라 다수의 네트워크 노드 각각이 JPEG2000표준에 부합되기 위해서 업데이트되어야 한다는 것을 의미한다.
따라서, 보안이 유지되면서 계산 효율적인 방식으로 데이터의 스케일링(예를 들면, 트랜스코딩)을 가능하게 하는 방법 및/또는 시스템이 유용할 것이다. 레거시 장치(legacy devices)에서 이러한 목적을 달성할 수 있는 시스템 및/또는 방법이 유용할 것이다. 본 발명은 이러한 이점뿐만 아니라 다른 이점도 제공한다.
본 발명의 실시예는 데이터를 스케일링(예를 들면, 트랜스코딩)하는 방법에 관련된다. 일실시예에서, 인코딩된 데이터의 시퀀스가 액세스된다. 인코딩된 데이터는 데이터를 인코딩하는 데 이용되는 인코딩 기법에 따라서 조직된다. 스케일 가능 속성값이 결정된다. 스케일 가능 속성은 인코딩된 데이터가 스케일링될 방식을 식별한다. 스케일 가능 속성과 연관된 인코딩된 데이터의 세그먼트에 대한 참조가 액세스된다. 이러한 참조는 인코딩 기법의 체계(syntax)를 넘어서는 것이다. 이러한 참조는 인코딩된 데이터의 시퀀스 내에서 세그먼트의 위치를 확인하는 데 이용된다. 이 세그먼트는 장치에 의해 인코딩 기법에 관한 정보를 필요로 하지 않으면서 발견된다. 인코딩된 데이터의 스케일링된 버전은 세그먼트를 이용하여 생성된다.
본 명세서 내에 통합되고 그 일부를 형성하는 첨부된 도면은 본 발명의 실시예를 나타내고, 그 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
본 명세서에서 참조된 도면은 특별히 언급되지 않은 한 실제 축적대로 도시된 것으로 해석되어서는 안 된다.
도 1은 본 발명의 일실시예에 따른 데이터를 포함하는 비트 스트림의 일례를 도시하는 도면.
도 2는 본 발명의 일실시예에 따른 비트 스트림 내의 데이터 세그먼트의 일례를 도시하는 도면.
도 3은 본 발명의 일실시예에 따른 단순화된 데이터 전송 시스템 내의 기능 소자를 도시하는 블록도.
도 4a는 본 발명의 일실시예에 따라서 인코더 내부 및 외부로 흐르는 정보를 도시하는 도면.
도 4b는 본 발명의 제 2 실시예에 따라서 인코더 내부 및 외부로 흐르는 정보를 도시하는 도면.
도 5a는 본 발명의 일실시예에 따라서 데이터 스케일러(data scaler) 내부 및 외부로 흐르는 정보를 도시하는 도면.
도 5b는 본 발명의 제 2 실시예에 따라서 데이터 스케일러 내부 및 외부로 흐르는 정보를 도시하는 도면.
도 6은 데이터 본 발명의 일실시예에 따라서 데이터를 스케일링(예를 들면, 트랜스코딩)하는 프로세스를 나타내는 흐름도.
도 7은 본 발명의 일실시예에 따라서 데이터를 인코딩하는 프로세스를 나타내는 흐름도.
도 8은 데이터 본 발명의 일실시예에 따라서 데이터를 디코딩하는 프로세스 를 나타내는 흐름도.
도 9a는 본 발명의 일실시예에 따라서 데이터와 스케일 가능 매체를 결합하는 시스템을 도시하는 도면.
도 9b는 본 발명의 일실시예에 따라서 데이터와 스케일 가능 매체를 결합하는 시스템을 도시하는 도면.
도 10은 본 발명의 제 2 실시예에 따라서 데이터 스케일러 내부 및 외부로 흐르는 정보를 도시하는 도면.
도 11은 본 발명의 일실시예에 따라서 데이터와 스케일 가능 매체의 일부분을 연관시키는 방법에서 실행된 단계를 도시하는 도면.
도 12는 본 발명의 일실시예에 따라서 암호화된 스케일 가능 매체를 스케일링하는 방법에서 실행된 단계를 도시하는 흐름도.
도 13은 본 발명의 일실시예에 따라서 스케일 가능 매체를 디코딩하는 방법에서 실행된 단계를 도시하는 흐름도.
도 14는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 인코딩하는 방법을 도시하는 도면.
도 15a는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 절단(truncation)하는 것에 의한 트랜스코딩을 도시하는 도면.
도 15b는 본 발명의 다른 실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 절단하는 것에 의한 트랜스코딩을 도시하는 도면.
도 16a는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암 호화된 시퀀스를 절단하는 것에 의한 트랜스코딩을 도시하는 도면.
도 16b는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 절단하는 것에 의한 트랜스코딩을 도시하는 도면.
도 17은 일실시예에 따른 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 인코딩하는 방법에서 실행된 단계를 도시하는 흐름도.
도 18은 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 트랜스코딩하는 방법에서 실행된 단계를 도시하는 흐름도.
도 19는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 디코딩하는 방법에서 실행된 단계를 도시하는 흐름도.
도 20, 도 21 및 도 22는 본 발명의 실시예에 따른 인코더를 도시하는 블록도.
도 23, 도 24 및 도 25는 본 발명의 실시예에 따른 디코더를 도시하는 블록도.
도 26, 도 27, 도 28, 도 29, 도 30, 도 31 및 도 32는 본 발명의 실시예에 따른 트랜스코더를 도시하는 블록도.
다음으로 본 발명의 여러 실시예에 대해 상세하게 설명하는데, 그 예는 첨부된 도면에 도시되어 있다. 본 발명은 이러한 실시예와 관련하여 설명되었으나, 이들은 본 발명을 이러한 실시예로 한정하도록 의도되지 않았다는 것을 이해할 것이 다. 그 반대로, 본 발명은 첨부된 청구항에 정의된 본 발명의 정신 및 범주 내에 속할 수 있는 대체물, 변형물 및 등가물을 포함하도록 의도되었다. 또한, 본 발명에 대한 이하의 설명에서, 본 발명에 대한 명확한 이해를 제공하기 위해 여러 특정한 세부 사항이 제시되었다. 다른 예로서, 본 발명의 측면을 불필요하게 모호하게 하지 않도록, 공지된 방법, 절차, 구성 요소 및 회로에 대해서는 상세하게 설명하지 않았다.
개요
본 발명에 따른 실시예는 기본적으로 디지털 화상 데이터, 특히 정지 화상과 관련하여 설명되었다. 디지털 화상 데이터는 예를 들면 디지털 카메라를 이용한 "실제 세상"의 캡쳐로부터 생성될 수 있다. 디지털 화상 데이터는 또한 예를 들면, 페인트 프로그램(paint program), 스크린 캡쳐(screen capture), 또는 그래픽에서 비트맵 화상으로의 전환을 이용하여 컴퓨터로 생성될 수 있다. 그러나, 본 발명은 디지털 화상 데이터로 한정되지 않는다. 대신에, 본 발명의 실시예는 대화 기반의 데이터, 오디오 기반의 데이터, 비디오 기반의 데이터, 웹 페이지 기반의 데이터, 그래픽 데이터, 텍스트 기반의 데이터(예를 들면, 전자 문서(electronic documents) 등) 등을 이용하는 것에도 적합하다.
또한, 본 발명에 따른 실시예는 JPEG2000 표준과 부합되거나 실질적으로 부합되는 인코딩 기법을 이용하여 스케일 가능하게 인코딩되는 데이터에 대하여 설명한다. 그러나, 본 발명은 그것으로 한정되지 않는다. 일반적으로, 본 발명에 따 른 실시예는 스케일 가능하게 인코딩될 수 있는 임의의 데이터 구체적으로는, 스케일 가능 인코딩과 단계적인 암호화를 결합하는 임의의 데이터에 관련된다.
본 출원에서, 스케일 가능 인코딩은 오리지널 데이터를 입력으로 획득하고, 스케일 가능하게 인코딩된 데이터를 출력으로서 생성하는 프로세스로 정의되는데, 여기에서 스케일 가능하게 인코딩된 데이터는 그 일부분이 오리지널 데이터를 서로 다른 레벨의 품질, 해상도 등으로 재구성하기 위해 이용될 수 있다는 특성을 갖는다. 특히, 스케일 가능하게 인코딩된 데이터는 때때로 내장된(embedded) 비트 스트림으로서 간주된다. 비트 스트림의 일부분은 비트 스트림의 다른 부분으로부터 어떠한 정보도 요구하지 않으면서 오리지널 데이터의 기준선 품질 재구성(baseline-quality reconstruction)을 디코딩하기 위해 이용될 수 있다. 비트 스트림의 단계적으로 커지는 부분을 이용하여 오리지널 데이터의 향상된 재구성을 디코딩할 수 있다. JPEG2000은 스케일 가능 인코딩 기법의 일례이다. 본 발명의 실시예에 따라서 이용될 수 있는 다른 스케일 가능 인코딩 기법은 3D 하부 대역 코딩(subband coding) 및 MPEG-4 FGS(Moving Picture Experts Group-4 Fine Granularity Scalability)를 포함하지만 이것으로 한정되지 않는다.
본 출원에서, 단계적인 암호화는 오리지널 데이터(평문(plain text))를 입력으로서 획득하고, 단계적으로 암호화된 데이터(암호문(cipher text))를 출력으로서 생성하는 프로세서로 정의되는데, 여기에서 단계적으로 암호화된 데이터는 암호화된 데이터의 제 1 부분이 나머지의 오리지널 데이터로부터 정보를 요구하지 않으면서 단독으로 해독될 수 있다는 특징을 갖는다. 단계적으로 커지는 부분은 이러한 특징으로 해독될 수 있는데, 여기에서 해독화는 비트 스트림의 이후 부분이 아닌 비트 스트림의 이전 부분으로부터 데이터를 필요로 할 수 있다. 본 발명에 따라서 이용될 수 있는 단계적인 암호화 기법은 DES(Data Encryption Standard), 3DES(Triple-Des) 및 AES(Advanced Encryption Standard) 등과 같은 보편적인 암호화 원형을 포함하지만, 이것으로 한정되지 않는다.
JPEG2000 인코딩에 관한 일반적인 설명
일반적으로, 다수의 스테이지는 JPEG2000 표준에 부합되는 인코딩 프로세스를 구성한다. 이러한 스테이지는 본 명세서에서 1) 전처리(preprocessing), 2) 이산 웨이블렛 변환(discrete wavelet transformation), 3) 양자화(quantization) 4) 내장형 블록 코딩, 5) 레이트 제어 및 6) 비트 스트림 조직화로 지칭된다. 본 발명의 실시예는 이러한 스테이지로 한정되지 않고, 이하에 설명되는 JPEG2000 표준의 특정 사항으로도 한정되지 않는다. 사실상, 이하에 확인되는 바와 같이, 본 발명의 실시예는 JPEG2000 표준의 체계를 넘어서는 특징을 갖고, 보다 계산 효율적인 스케일링(예를 들면, 트랜스코딩) 프로세스가 되게 하며, JPEG2000 표준에 의해 인식되지 않을 가능성이 있는 장치에 의해 스케일링이 실행될 수 있게 한다.
JPEG2000은 무손실(lossless) 및 손실(lossy) 압축을 모두 허용하고, 본 명세서에서는 손실 압축에 집중한다. 전처리 동안에, 타일링(tiling)은 선택적으로 실행되어 오리지널 화상을 타일(tiles)로 분할할 수 있다. 또한, 전처리 동안에 입력된 데이터는 데이터가 제로 값에 중심을 둔 공칭 다이내믹 레인지(nominal dynamic range)를 갖도록 조정될 수 있다. 최종적으로 전처리 동안에 컬러 데이터는 Y, Cr 및 Cb 컬러 성분으로 변환될 수 있다.
이산 웨이블렛 변환 동안에, 화상 타일은 하이(high) 및 로우(low) 하부 대역으로 분해될 수 있다. 또한 타일은 코드 블록(code-blocks)(예를 들면, 64x64 또는 32x32 샘플)으로 분할될 수 있다. 보다 구체적으로, 각각의 하부 대역은 "구역(precincts)"으로 지칭되는 직사각형 블록으로 분할되고, 각각의 구역은 코드 블록으로 지칭되는 비중첩 직사각형으로 또한 분할된다.
웨이블렛 계수는 양자화 스테이지 동안에 양자화된다. 내장형 블록 코딩 스테이지에서, 각각의 코드 블록은 별도로 인코딩된다. 레이트 제어는 인코딩된 비트 스트림이 타겟 비트 레이트에 도달할 수 있도록 변경하는 프로세스이다. 각각의 인코딩된 코드 블록을 검사하여 타겟 비트 레이트를 달성하기 위해서 절단될 수 있는 범위를 결정할 수 있다.
비트 스트림 조직화에서, 인코딩된 데이터는 JPEG2000 표준 내에서 "패킷"으로 지칭되는 것으로 분리된다(JPEG2000 패킷의 컨텐츠는 JPEG2000 표준에 의해 제시되어 있음). 다음에 패킷은 순차화된 방식으로 함께 비트 스트림으로 다중화(multiplexed)된다. JPEG2000에 따른 "패킷"이라는 용어의 사용은 일반적으로 이 용어의 보다 통상적인 용도와는 상이하다는 것을 유의하라. 다시 말해서, JPEG2000 패킷은 비트 스트림으로 다중화되고, 다음에 비트 스트림은 예를 들면 네트워크를 거쳐 전달되는 데이터 패킷으로 패킷화될 수 있다.
JPEG2000에 따르면, 비트 스트림 내에서 데이터(예를 들면, JPEG2000 패킷)의 순서는 "진행(progression)"으로 지칭된다. 구역-성분-해상도-품질(precinct-component-resolution-quality) 또는 해상도-품질-성분-구역(resolution-quality-component-precinct) 등과 같이 패킷을 순차화하는 다수의 서로 다른 방식이 존재한다. JPEG2000에 따르면, "품질"은 그 대신에 "계층(layer)"으로서 지칭될 수 있다. 이러한 용어는 JPEG2000 표준에 친숙한 사람들에게 알려져 있다.
비트 스트림 내에서 데이터의 순서는 비트 스트림의 길이에 걸쳐 확장될 수 있다. 이와 다르게, 비트 스트림 내에서 데이터의 순서는 비트 스트림 내의 몇몇 포인트에서 다른 순서로 변경될 수 있다. 비트 스트림 내의 임의의 특정 포인트에서 데이터의 순서는 본 명세서의 논의에 있어서 중요한 사항은 아니고, 중요한 사항은 데이터가 인코딩 기법, 즉 JPEG2000 표준에 부합되거나 실질적으로 부합되는 인코딩 기법에 의해 규정된 특정한 순서대로 배열된다는 것이다.
도 1은 본 발명의 일실시예에 따라서 헤더(header)(11) 및 인코딩된 데이터(12)를 포함하는 JPEG2000 비트 스트림(10)의 일례이다. 헤더(11)는 코드 스트림 시작 마커(start of code stream marker : SOC), 화상 및 타일 크기 마커(image and tile size marker : SIZ), 코딩 스타일 디폴트 마커(coding style default marker : COD), 양자화 디폴트 마커(quantization default marker : QCD), 타일 부분 시작 마커(start of tile-part marker : SOT), 및 데이터 시작 마커(start of data marker : SOD)를 포함한다. 비트 스트림(10)은 또한 코드 스트림 종료 마커(end of code stream marker : EOC)를 포함한다. 각각의 이러한 마커에 의해 실 행되는 기능은 JPEG2000 표준에 친숙한 사람들에게 이해될 것이다.
도 1의 예에서, 인코딩된 데이터(12)는 구역-성분-해상도 진행에 따라서 순차화되지만, 앞서 설명된 바와 같이 상이한 진행을 이용할 수 있다. 도 1의 예에서, n개의 구역(P0, P1,..., Pn), 3개의 성분(C0, C1, C2), 및 3개의 해상도(R0, R1, R2)가 존재한다. (설명을 간단하게 하기 위해서, 품질은 진행에 포함하지 않는다) 인코딩된 데이터(12)는 최상위 중요도로부터 최하우 중요도로 순차화된다. 도 1의 예에서, 인코딩된 데이터(12)는 먼저 구역에 의해서, 다음으로 성분에 의해서, 그 다음에 해상도에 의해 순차화된다.
인코딩된 데이터의 비트 스트림을 디코딩하기 위해서, 사실상 상술된 인코더 프로세스와 반대의 프로세스를 이용한다. 인코딩된 비트 스트림은 예를 들면, 디스플레이 장치의 능력 및 다른 실제적인 고려 사항뿐만 아니라 시청자의 특정 관심사에 따라서 여러 서로 다른 방식으로 디코딩될 수 있다(예를 들면, 어떤 용도는 저해상도의 화상으로 충족될 수 있지만, 다른 것은 고해상도의 화상을 필요로 할 수 있음). JPEG2000에 따르면, 전체 비트 스트림을 디코딩하지 않고서도 원하는 화상 제품을 위해 요구되는 데이터를 위치 확인, 추출 및 디코딩할 수 있다. 그러나, 통상적으로 추출될 수 있는 비트는 JPEG2000의 체계에 의해 제한된다. 또한, 이러한 비트를 추출하기 위해서는, 데이터를 인코딩하는 데 이용되는 기법(예를 들면, JPEG2000에 부합되는 기법)에 대한 지식도 요구된다. 예를 들면, 추출할 비트를 찾기 위해서, 장치는 비트 스트림(10)을 판독하기 위해 JPEG2000을 인식해야만 한다. 앞서 확인되는 바와 같이, 본 발명의 실시예는 인코딩 기법에 대한 지식을 요구하지 않으면서 JPEG2000의 체계를 넘어서서 비트를 추출할 수 있게 한다.
인코딩 기법에 대한 지식을 요구하지 않는 인코딩된 데이터의 스케일링
도 1의 예에서, 인코딩된 데이터(12)는 0 내지 N으로 표시된 N개의 비트의 시퀀스를 포함한다. 본 발명의 실시예에 따르면, 비트의 서로 다른 세그먼트는 N개의 비트의 시퀀스 내에서 식별된다. 이러한 세그먼트는 도 1에서 데이터 세그먼트(13, 14, 15)로 확인된다. 도 1에 도시된 바와 같이, 데이터 세그먼트는 부분적 또는 전체적으로 서로 중첩될 수 있다. 또한, 임의의 다른 데이터 세그먼트와 중첩되지 않는 데이터 세그먼트가 존재할 수 있다. 예를 들면, 세그먼트(13, 14)는 중첩되지만, 세그먼트(15)는 세그먼트(13) 또는 세그먼트(14)와 중첩되지 않는다.
중요한 것은, 세그먼트(13, 14, 15)가 JPEG2000의 체계에 의해 제한되지 않는다는 것이다. 다시 말해서, 데이터 세그먼트의 시작 및 종료 포인트는 JPEG2000에 의해 지정된 비트 스트림(10)의 포맷에 무관하다. 따라서 예를 들면, 세그먼트(13)는 C0을 포함하는 비트 스트림(10)의 부분으로부터 C1을 포함하는 부분으로 확장된다. 또한, 세그먼트(13)는 P0-C0-R1 부분의 중간 내의 포인트에서 시작하고, P0-C1-R2 부분의 중앙에서 종료한다. 또한, 확인되는 바와 같이, 비트 스트림(10) 내에서 데이터 세그먼트(13, 14, 15)의 위치는 헤더(11) 내의 정보를 포함하여 비트 스트림(10)을 판독하지 않고도 결정될 수 있다.
일반적으로, 본 발명에 따른 데이터 세그먼트(예를 들면, 데이터 세그먼트(13, 14, 15))는 비트 스트림(10) 내의 어느 위치에서도 시작 및 종료 가능하고, 세그먼트는 서로 중첩될 수 있다. 임의의 개수의 이러한 데이터 세그먼트가 식별될 수 있고, 세그먼트는 인코딩된 데이터(12) 내에서 임의의 길이를 가질 수 있다. 따라서, 특정한 비트 또는 비트의 시퀀스는 하나 이상의 데이터 세그먼트의 구성원이 될 수 있다. 이러한 세그먼트가 반드시 인코딩된 데이터(12)의 전체 길이를 포함할 필요는 없다. 즉, 본 발명에 따라서 정의된 데이터 세그먼트 내에 포함되지 않는 인코딩된 데이터(12)의 하나 이상의 부분이 존재할 수 있다.
또한, 본 발명에 따라서 정의된 데이터 세그먼트는 독립적으로 디코딩 가능하고, 독립적으로 암호화 및 해독화 가능하고, 독립적으로 검사 가능하다는 중요한 특성을 갖는다. 즉, 각각의 데이터 세그먼트는 임의의 다른 세그먼트와 무관하게 디코딩될 수 있다. 마찬가지로, 각각의 데이터 세그먼트는 임의의 다른 세그먼트와 독립적으로 암호화 및 해독될 수 있다. 또한, 예를 들면, 체크섬(checksum)은 임의의 다른 세그먼트에 무관하게 각각의 데이터 세그먼트에 적용될 수 있다.
도 2는 본 발명의 일실시예에 따라서 비트 스트림 내의 데이터 세그먼트의 예를 도시한다. 앞서 설명된 바와 같이, 인코딩된 데이터(12)는 인코딩 기법에 따라서 순차화되고 포매팅된 N개의 비트를 포함한다. 본 발명의 실시예에 따르면, 다수의 세그먼트가 인코딩된 데이터(12) 내에서 식별된다.
도 2의 예에서, 인코딩된 데이터(12)는 b1, b2 및 b3으로 식별된 비트 및 r1, r2 및 r3으로 식별된 다른 비트를 포함한다(이러한 비트는 모두 인코딩된 데이터(12) 내에 위치하지만, 설명의 명료성을 위해서 이들을 별도로 도시하였다). 따라서, 예를 들면 세그먼트는 비트(0)로부터 비트(b1)로 연장되는 것으로 정의되고, 다른 세그먼트는 비트(b1)로부터 비트(b2)로 연장되는 것 등으로 정의될 수 있다. 그 대신에 세그먼트는 소정 비트 번호에서 시작되고, 소정 길이(비트로 측정됨)를 갖는 것으로 식별될 수 있다. 예를 들면, 데이터 세그먼트는 비트(0)에서 시작하고, b1 비트와 같은 길이를 갖는 것으로 정의되고, 다른 세그먼트는 비트(b1)에서 시작하고 (b2-b1) 비트의 길이를 갖는 것 등으로 식별될 수 있다. 또한, 세그먼트는 비트(b1)로부터 비트(b3)까지, 또는 비트(b1)로부터 N까지 확장될 수 있는 것 등과 같다. 즉, 상술된 바와 같이, 세그먼트는 임의의 길이를 갖고, 임의의 비트에서 시작하며 임의의 다른 비트에서 종료될 수 있고, 2개 이상의 세그먼트는 중첩될 수 있다. 예를 들면, 비트(r2) 내지 비트(r3)에 의해 정의된 데이터 세그먼트는 비트(b2) 내지 비트(b3)에 의해 정의된 데이터 세그먼트에 중첩된다. 세그먼트는 서로 다른 길이를 갖거나 갖게될 수 있다.
중요한 점은, 본 발명에 따라서 정의되고 도 2에 예시된 데이터 세그먼트가 인코딩된 데이터(12)에 대한 인코딩 기법에 의해 지정된 포맷에 무관한 시작 및 종료 포인트를 가진다는 것이다. 앞서 확인되는 바와 같이, 본 발명에 따라서 정의된 데이터 세그먼트는 데이터, 특히 인코딩된 데이터가 그 데이터를 인코딩하는 데 이용되었던 인코딩 기법에 대한 지식을 요구하지 않으면서 비트 스트림(10)으로부터 추출 또는 파싱(parsed)될 수 있게 한다. 또한, 해당 데이터가 암호화되었다면 데이터를 해독하지 않고서도 비트 스트림(10)(도 1)으로부터 데이터를 추출할 수 있다.
이러한 방식으로 데이터를 추출/파싱하는 기능은 앞서 확인된 바와 같이 데 이터 스케일링(예를 들면, 트랜스코딩) 및 디코딩(압축 해제)에 유리하게 적용될 수 있다. 예를 들면, 비트 레이트의 감소를 달성하기 위해서, 트랜스코딩 동작의 일부분으로서 비트(0) 내지 비트(b1) 및 비트(b2) 내지 비트(b3)의 범위를 갖는 2개의 데이터 세그먼트가 비트 스트림(10)으로부터 추출될 수 있다. 다음에 이러한 2개의 세그먼트는 인코딩된 데이터의 스케일링된 버전으로 결합되고, 데이터 전송 시스템을 통해 전송될 수 있다. 프레임 레이트의 감소를 달성하기 위해서, 예를 들면, 하나 이상의 데이터 세그먼트(예를 들면, r1 내지 r2의 범위를 갖는 데이터 세그먼트)를 마찬가지로 선택한다. 따라서, 비트(0) 내지 비트(N)의 범위를 갖는 단일 세트의 데이터(12)는 데이터 세그먼트로 조직화되어 다수의 서로 다른 스케일 가능 속성(예를 들면, 비트 레이트, 프레임 레이트 등)에 대해 스케일링이 실행될 수 있게 한다. 예를 들면, 단일 세트의 데이터(12)는 비트 레이트 감소에 관련된 제 1 세트의 데이터 세그먼트, 프레임 레이트 감소에 관련된 다른 세트의 데이터 세그먼트 등으로 조직화될 수 있다. 비트 레이트 감소를 위해 선택된 데이터 세그먼트의 세트는 프레임 레이트 감소를 위해 선택된 데이터 세그먼트의 몇몇 부분을 포함하거나 포함하지 않을 수 있고, 그 반대도 가능하다.
중요한 점은, 상기 예에서 비트 레이트 감소, 프레임 레이트 감소 등을 위해서 선택된 세그먼트가 인코딩 동안에 지능형으로 선택되어 화상 제품에 대한 영향의 실제적 범위를 최소화하면서 원하는 스케일링 결과를 달성한다는 점이다. 또한 도 2에 의해 도시된 것보다 데이터 세그먼트 길이에서의 훨씬 더 정밀한 입도(granularity)가 획득될 수 있다는 것을 인식하는 것이 중요하다. 결과적으로, 스케일링 동작은 더 정밀한 등급으로 실행될 수 있다.
도 3은 본 발명의 일실시예에 따른 단순화된 데이터 전송 시스템(30)의 기능 요소를 도시하는 블록도이다. 도 3의 예에서, 시스템(30)은 인코더(32), 트랜스코더(34), 제 1 디코더(36) 및 제 2 디코더(38)를 포함한다. 시스템(30)은 유사한 기능 소자뿐만 아니라 다른 타입의 기능 소자(예를 들면, 저장 소자, 패킷화기(packetizers), 스트리밍 소자(streaming elements) 등)를 포함하는 더 큰 시스템 또는 네트워크의 일부분일 수 있다. 본 실시예에서, 인코더(32)는 데이터를 인코딩(압축)하고, 트랜스코더(34)는 인코딩된 데이터를 트랜스코딩(예를 들면, 스케일링)하며, 디코더(36, 38)는 데이터를 디코딩(압축 해제)한다. 이러한 기능은 단일 장치에서 실행되거나, 소정 타입의 네트워크로 접속될 수 있는 하나 이상의 장치들 사이에서 분산될 수 있다.
또한, 소자(32, 34, 36, 38)는 설명된 것 이외의 다른 기능을 실행할 수 있다. 예를 들면, 인코더(32)는 또한 데이터를 암호화하고, 데이터를 검사하기 위한 체크섬 또는 암호화 체크섬을 계산할 수 있고, 인코더(32)는 또한 인코딩된 데이터를 다른 블록으로 전달하기 전에 인코딩된 데이터를 스케일링할 수 있으며, 디코더(38)는 인코딩된 데이터를 디코딩하기 전에 인코딩된 데이터를 스케일링할 수 있다. 일실시예에서, 인코더(32)는 JPEG2000 표준에 따른 인코딩 기법을 이용한다.
또한, 그 대신에 트랜스코더(34)는 스케일링된 버전의 인코딩된 데이터를 다른 트랜스코더에 전달할 수 있고, 다른 트랜스코더는 스케일링된 데이터를 스케일링하고, 그것을 또 다른 트랜스코더에 전달하는 등으로 실행될 수 있다. 또한, 디 코더(36)가 트랜스코더(34)로부터 스케일링된 데이터를 수신했다고 해도, 디코더(36)는 스케일링된 데이터를 추가적으로 스케일링할 수 있다. 게다가, 디코더(36, 38)는 최종 사용자 장치가 아닐 수 있다. 예를 들면, 디코더(36, 38)는 인코딩된 데이터를 디코딩하고, 디코딩된 데이터를 예를 들면, 화상 제품을 렌더링 및 디스플레이하는 이동 전화기로 전달할 수 있다.
또한, 데이터 스케일링 기능은 저장 장치 또는 드라이버에 의해 실행될 수 있다. 예를 들면, 저장 장치(예를 들면, 디스크 드라이브 또는 DVD 재생기)는 인코딩된 데이터를 스케일링하여, 오로지 적합한 데이터 세그먼트만을 실제 디코더로 전달할 수 있다. 이러한 방식으로, 리소스 또는 시간이 불필요한 정보를 전달하는 데 낭비되지 않는다. 이것은 또한 디코더가 이러한 처리를 실행할 필요성을 없애기 때문에 디코더를 단순화할 수 있다.
도 4a는 본 발명의 일실시예에 따라서 인코더(32) 내부 및 외부로 흐르는 정보를 나타낸다. 본 실시예에서, 인코더(32)는 입력 데이터(예를 들면, 인코딩될 화상 데이터 등과 같은 데이터)를 수신한다. 인코더(32)는 또한 스케일 가능 속성값을 수신한다.
본 출원에서, 스케일 가능 속성은 인코딩된 데이터가 후속적으로 스케일링되는 방법을 지정하는 값의 범위를 갖는 속성으로서 정의된다. 화상 데이터에 있어서, 스케일 가능 속성은 예를 들면, 비트 레이트, 프레임 레이트, 해상도, 컬러 또는 흑백(black and white), 관심 영역, 타일, 품질, 화상 객체 또는 전경 대 배경(foreground versus background)일 수 있다.
스케일 가능 속성값은 스케일 가능 속성에 대해 지정된 값이다. 예를 들면, 비트 레이트에 대한 스케일 가능 속성값은 최대 비트 레이트(B), 1/2 비트 레이트(B/2), 1/4 비트 레이트(B/4) 등을 포함할 수 있다.
스케일 가능 속성 및 값은 다른 타입의 데이터(예를 들면, 오디오 데이터, 그래픽 데이터 등)에 대해서도 마찬가지로 정의될 수 있다. 예를 들면, 오디오 데이터에 대한 스케일 가능 속성값은 오디오 트랙이 스테레오인지 모노인지 여부를 나타낼 수 있다. 전자 문서 및 텍스트 기반의 데이터는 또한 문서 또는 텍스트 기반의 데이터의 컨텐츠를 기술하는 스케일 가능 속성(예를 들면, 장(chapters), 단락(sections), 이미지, 그래프, 인덱스, 부록, 연관 소프트웨어, 추가적인 시청각(audiovisual) 자료 등)에 의해 조직화될 수 있다. 최종 사용자의 기호 또는 이용 가능한 저장 공간 등과 같은 장치 한도를 만족시키기 위해서, 컨텐츠의 크기뿐만 아니라 컨텐츠의 선택을 적응시킬 수 있는 것이 유리하다. 또한, 이러한 문서의 소정 부분은 기밀성의 이유 또는 상업적 이유(예를 들면, 독서 대금 지급)를 위해 암호화될 수 있지만, 이러한 문서의 다른 부분은 평문일 수 있다.
본 실시예에서, 인코더(32)는 JPEG2000에 기초한 인코딩 기법 등과 같은 인코딩 기법을 이용하여 입력 데이터를 인코딩한다. 상술된 바와 같이, 인코더(32)는 다른 기능을 제공할 수 있다. 인코딩 프로세스의 결과로서, 도 1의 비트 스트림(10)으로 예시된 것과 같은 비트 스트림 또는 이러한 비트 스트림을 포함하는 파일이 생성된다. 파일 또는 비트 스트림은 인코딩 기법에 따라서 조직화되는데, 다시 말해서 비트는 인코딩 기법에 의해 설정된 소정 순서로 배열된다. 인코더(32) 의 출력은 본 명세서에서 스케일 가능 데이터로 지칭되는 것을 포함하는데, 왜냐하면 인코딩된 데이터는 트랜스코더 또는 디코더에 의해 후속적으로 스케일링될 수 있기 때문이다.
인코더(32)의 다른 출력은 본 명세서에서 스케일 가능 프로파일 데이터로 지칭되는 것을 포함한다. 사실상, 스케일 가능 프로파일 데이터는 스케일 가능 속성 값과 스케일 가능한 인코딩된 데이터 내의 대응하는 데이터 세그먼트의 상호 참조를 포함한다. 예를 들면, 스케일 가능 프로파일 데이터는 이하의 표 1에 예시된 바와 같이(또한 도 2를 참조) 데이터 세그먼트 및 스케일 가능 속성값을 상호 참조하는 인덱스 또는 룩업 테이블의 형태를 가질 수 있다.
Figure 112006060231530-PCT00001
표 1의 형식은 오로지 예시적인 것이고, 스케일 가능 프로파일 데이터는 임의의 컴퓨터 판독 가능 형식으로 저장될 수 있다는 것을 이해할 것이다. 표 1에서, 비트는 그의 비트 번호에 의해 식별되지만, 다른 어드레싱 메커니즘을 이용할 수 있다. 또한, 그의 비트 범위에 의해 데이터 세그먼트를 식별하는 것 대신에, 다른 메커니즘을 이용하여 데이터 세그먼트를 식별할 수 있다. 일반적으로, 스케일 가능 프로파일 데이터는 스케일 가능 속성값과 도 1의 비트 스트림(10) 내의 하나 이상의 데이터 세그먼트를 상관하기에 충분한 정보를 포함한다.
또한, 표 1은 오로지 비트 레이트(B), 해상도(R) 및 품질(Q)만을 반영하였으나, 실제적으로 이러한 테이블은 사용자에 의해서 인코더(32)(도 3)에 대한 입력으로서 선택된 어떠한 스케일 가능 속성 및 스케일 가능 속성값도 포함할 수 있다. 또한, 스케일 가능 프로파일 데이터는 각각의 스케일 가능 속성값에 대한 데이터 세그먼트의 다수의 선택을 포함할 수 있다. 이것은 트랜스코더 또는 디코더에서 더 큰 유연성을 갖는 다운스트림을 제공할 수 있다. 예를 들면, 일실시예에서, 해상도 레벨 2(R2) 및 품질 레벨 2(Q2)에서 또는 해상도 레벨 1(R1) 및 품질 레벨 3(Q3)에서 1/2의 비트 레이트 감소가 달성될 수 있다. R1은 R2보다 우수할 수 있고, Q2는 Q3보다 우수할 수 있기 때문에, 해상도 및 품질의 상반 관계가 형성되기는 하지만 동일한 비트 레이트를 달성할 수 있다. 따라서, 스케일 가능 프로파일 데이터 내에서 각각의 스케일 가능 속성값에 대해 데이터 세그먼트의 다수의 선택을 포함함으로써, 다운스트림 노드(예를 들면, 트랜스코더 또는 디코더)에서의 사용자는 예를 들면 자신의 요구에 맞는 스케일링의 타입 및 범위를 선택할 수 있다.
일실시예에서, 스케일 가능 프로파일 데이터는 또한 어떤 세그먼트가 추출되었고 그에 따라 폐기되었는지에 따라서 생성될 왜곡(distortion)에 관한 정보를 포함한다. 왜곡은 통상적인 MSE(mean-squared error) 또는 인지 왜곡(perceptual distortion)과 관련하여 측정될 수 있다. 스케일러(예를 들면, 트랜스코더)는 어떤 세그먼트가 가장 중요하고 보존되어야 하는지(예를 들면, 추출되어야 하는지) 또한 어떤 세그먼트가 최소 중요성을 갖고 폐기될 수 있는지를 결정하기 위해 왜곡에 관한 정보를 이용할 수 있다. 데이터 세그먼트마다, 또는 세그먼트의 그룹마다, 또는 스케일 가능 속성값(예를 들면, 화상 해상도, 품질 레벨, 비트 레이트 등)마다 별도의 왜곡 파라미터가 존재할 수 있다. 따라서, 어떤 세그먼트를 추출 또는 폐기할 것인지에 대한 결정은 네트워크 성능 특성, 다운스트림 장치 능력 및 다른 인자에 따라서 선택된 스케일링의 타입 및 정도뿐만 아니라 최종 사용자의 요구에 맞는 스케일링의 타입 및 정도와 조합하여 연관된 왜곡을 고려하는 것에 의해 실행될 수 있다.
각각의 데이터 세그먼트, 세그먼트의 그룹 또는 스케일 가능 속성과 연관된 왜곡은 측정된 왜곡 또는 추정된 왜곡일 수 있다. 예를 들면, 특정 데이터 세그먼트의 폐기와 연관된 측정된 왜곡은 사실상, 비트 스트림으로부터 데이터 세그먼트를 누락시키고, 나머지 데이터 패킷을 디코딩할 때 생성될 수 있는 결과적인 왜곡을 계산하는 것에 의해 계산될 수 있다. 이러한 측정은 매체가 인코딩될 때 실행되거나 프리-인코딩된(pre-encoded) 데이터에 대해 실행될 수 있다. 프리-인코딩된 데이터에 있어서, 데이터 세그먼트는 인코딩된(압축된) 비트 스트림으로부터 누락될 수 있고, 나머지 데이터는 디코딩될 수 있으며, 결과적인 왜곡이 계산될 수 있다. 측정된 왜곡의 대안으로서, 추정된 왜곡은 예를 들면, 특정 데이터 세그먼트가 폐기되는 결과를 초래할 수 있는 왜곡의 표시를 제공하는 인코딩된 비트 스트림으로부터 정보를 추출하는 것에 의해 획득될 수 있다. 측정된 왜곡은 추정된 왜곡보다 정확하기는 하지만, 측정된 왜곡이 더 계산하기가 복잡하다.
예정된(predicted) 왜곡은 추측된(expected) 왜곡에 대응하는 하나의 숫자이거나, 추측된 왜곡의 분포 또는 사이의 소정값(예를 들면, 예를 들면, 하나의 표준 편차에 대응하는 공차 범위(tolerance band)를 갖는 추측된 왜곡)일 수 있다는 것을 유의하라. 이와 다르게, 왜곡에 대한 몇몇 형태의 누적 분포 함수가 결정될 수 있다.
도 4a의 실시예에서, 스케일 가능 데이터 및 스케일 가능 프로파일 데이터는 함께 저장된다. 예를 들면, 스케일 가능 프로파일 데이터는 스케일 가능 데이터를 포함하는 비트 스트림 또는 파일에 첨부될 수 있다. 다량의 스케일 가능 데이터가 존재하는 경우에, 스케일 가능 프로파일 데이터의 부분들은 비트 스트림 또는 파일 내에서 소정 간격을 두고 떨어져 있을 수 있다.
이와 다르게, 스케일 가능 프로파일 데이터는 도 4b에 도시된 바와 같이 스케일 가능 데이터와는 별도로 저장되고 취급될 수 있다. 도 4b의 실시예에서, 스케일 가능 프로파일 데이터가 스케일 가능 데이터와 함께 이동되어야 할 필요는 없다. 예를 들면, 도 2를 참조할 때, 스케일 가능 프로파일 데이터는 스케일 가능 데이터가 이동하는 경로와는 상이한 경로를 통해서 트랜스코더(34), 디코더(36) 또는 디코더(38)로 이동할 수 있다. 이와 다르게, 스케일 가능 프로파일 데이터 및 스케일 가능 데이터는 별도의 위치에 저장될 수 있고, 그 후에 필요한 경우에 트랜스코더(34), 디코더(36) 또는 디코더(38)에 의해 액세스 및 상관될 수 있다.
작동 중에, 도 4a 및 도 4b의 인코더(32)는 다음과 같이 기능한다. 일실시예에서, 스케일 가능 속성값은 사용자에 의해 입력된다. 이와 다르게, 스케일 가능 속성값은 네트워크 성능, 다운스트림 장치 능력 등에 관하여 인코더(32)에 의해 인식된 정보에 기초하여 자동적으로 선택될 수 있다. 이용 가능 대역폭 등과 같은 네트워크 성능 특성은 모니터링될 수 있고, 이러한 정보는 인코더(32)에 공급된다. 또한, 다운스트림 장치(최종 사용자 장치를 포함함)는 인코더(32)와 직접적으로 통신할 수 있다.
다음에 인코더(32)는 자신이 이용하는 인코딩 기법(예를 들면, JPEG2000 인코딩 기법)을 이용하여 통상적인 방식으로 입력 데이터를 인코딩한다. 또한, 인코더(32)는 인코딩된 비트 스트림(스케일 가능 데이터)에 대하여 스케일 가능 프로파일 데이터를 생성한다. 다시 말해서, 일실시예에서, 각각의 스케일 가능 속성의 입력값에 대하여, 인코더(32)는 인코딩된 데이터 내에서 대응하는 데이터 세그먼트를 식별한다.
중요한 점은, 본 발명의 실시예에 따르면, 인코더(32)에 의해 출력된 스케일 가능(인코딩된) 데이터는 인코더(32)에 의해 이용된 인코딩 기법에 관한 지식을 요구하지 않으면서 스케일링될 수 있다. 데이터가 JPEG2000 기법 또는 몇몇 다른 인코딩 기법을 이용하여 인코딩되었는지에 관계없이, 트랜스코더 또는 디코더는 오로지 스케일링의 타입과 연관된 데이터 세그먼트(들)를 비트 스트림(10)(도 1)으로부터 추출/파싱하기 위해 실행되어야 할 스케일링의 타입(예를 들면, 비트 레이트를 1/4로 감소시킴)만을 지정하기만 하면 된다.
일실시예에서, 인코더(32)는 특정한 스케일 가능 속성값에 대응하는 데이터 세그먼트의 여러 선택 또는 조합을 식별할 수 있다. 예를 들면, 1/2의 비트 레이트 감소(B/2)를 달성하기 위해서, 인코더(32)는 만족스러운 여러 개의 서로 다른 데이터 세그먼트의 조합을 식별할 수 있다. 화상 데이터에 있어서, 하나의 조합은 감소된 비트 레이트가 화상 제품의 모든 부분에 적용되는 결과를 초래할 수 있다. 다른 조합은 최대 비트 레이트(B)가 화상 제품 내의 관심 영역에 적용되게 하고, 더 큰 양만큼 감소된 비트 레이트(예를 들면, B/4)가 화상 제품의 다른 영역에 적용되게 함으로써, 평균 비트 레이트가 B/2가 되게 할 수 있다.
인코딩 스테이지에서, 인코더(32)는 지능(프로그래밍된 지능 또는 사용자 입력에 기초한 지능)을 적용하여 데이터 세그먼트의 어떤 조합(들)이 스케일 가능 프로파일 데이터 내에 포함되는지 결정할 수 있다. 이와 다르게, 모든 조합이 포함될 수 있고, 그러면 트랜스코더 또는 디코더는 사용자 입력 또는 네트워크 성능 특성 또는 최종 사용자 장치 능력에 기초하여 어떤 데이터 세그먼트의 조합이 이용되는지를 결정할 수 있다.
인코더(32)에 의해 인코딩된 비트 스트림 또는 파일 내에 최종적으로 포함된 데이터는 입력된 스케일 가능 속성값에 기초할 수 있다는 것을 유의하라. 예를 들면, 스케일 가능 데이터가 최대 비트 레이트 경우에 대응하는 데이터를 포함할 필요가 없는 경우를 가정한다. 그 대신에, 오로지 B/2 및 B/4의 경우만을 고려한다. 인코더(32)는 B/2 및 B/4에 대응하는 데이터 세그먼트를 식별하지만, 이러한 데이터 세그먼트는 모든 인코딩된 데이터를 포함하지 않는다. 다시 말해서, 스케일 가능 프로파일 데이터 내에는 B/2 또는 B/4로 인덱싱되지 않은 인코딩된 데이터의 몇몇 부분이 존재한다. 데이터의 이러한 부분이 다른 스케일 가능 속성과 연관되지 않는다면, 인코더(32)는 인코딩된 비트 스트림 또는 파일 내에 해당 데이터를 포함하지 않도록 결정할 수 있다.
다른 실시예에서, 다양한 스케일 가능 속성값과 연관된 데이터 세그먼트는 사전에 정의될 수 있다. 사실상, 표 1에 예시된 스케일 가능 프로파일 데이터는 데이터 인코딩 이전에 형성된다. 이 실시예에서, 데이터는 인코딩된 다음, 스케일 가능 프로파일 데이터에 의해 정의된 순서에 대응하는 순서대로 비트 스트림 내에 배치된다. 예를 들면, 도 2를 참조할 때, 스케일 가능 프로파일 데이터는 비트(0-b2)가 1/2만큼의 비트 레이트 감소(B/2)를 위해 보존되도록 정의할 수 있다. 따라서, 인코더(32)는 B/2와 연관된 데이터를 비트(0-b2)에 맞추기에 필요한 양만큼 데이터를 압축하고, 해당 데이터를 비트 스트림(10) 내의 그 위치 내에 배치할 것이다.
또 다른 실시예에서, 인코딩 기법에 따라서 조직화된 인코딩된 파일은 원하는 목표 및 스케일 가능 속성에 대한 지식에 기초하여 재조직(reorganized)화된 다음, 예를 들면, 저장 또는 스트리밍된다. 예컨대, 관련 데이터 세그먼트를 인코딩된 파일 내에 배치하기 위해서 스케일 가능 프로파일 데이터(예를 들면, 데이터 세그먼트 및 스케일 가능 속성의 상호 참조)를 이용하면, 첫 번째로 컬러 성분에 의해 조직화되고, 두 번째로 해상도에 의해 조직화된 인코딩된 파일을 획득하고, 그와 다르게 첫 번째로 해상도에 의해 조직화되고, 두 번째로 컬러 성분에 의해 순차화되도록 파일을 재조직화하는 것이 유리할 수 있다. 스케일 가능 프로파일 데이터를 이용함으로써, 인코딩 포맷의 세부 사항에 대한 지식을 요구하지 않으면서 재조직화가 실행될 수 있다.
도 5a는 본 발명의 일실시예에 따라서 데이터 스케일러(54) 내부 및 외부로 흐르는 정보를 나타낸다. 데이터 스케일러(54)는 도 3의 트랜스코더(34) 등과 같은 트랜스코더이거나, 스케일링 또는 파싱 기능을 실행하는 디코더(예를 들면, 도 3의 디코더(38))일 수 있다.
입력으로서, 도 5a의 데이터 스케일러(54)는 스케일 가능 데이터 및 스케일 가능 프로파일 데이터를 수신한다. 도 4a 및 도 4b와 관련하여 상술된 바와 같이, 스케일 가능 데이터 및 스케일 가능 프로파일 데이터는 (예를 들면, 동일한 비트 스트림 또는 파일 내에서) 함께 이동되거나 별개로 이동될 수 있다. 입력은 (예를 들면, 인코더(32)로부터) 데이터 스케일러(54)로 스트리밍되거나, 몇몇 타입의 저장 소자에서 데이터 스케일러(54)에 의해 검색될 수 있다.
스케일 가능 프로파일 데이터를 이용하면, 스케일러(54)는 스케일 가능 데이터를 파싱하고, 인코딩된 데이터의 스케일링된 버전을 생성할 수 있다. 예를 들면, 스케일러(54)가 1/4로 비트 레이트를 감소하고자 한다면, 원하는 비트 레이트 감소를 달성하기 위해서 인코딩된 데이터 내에서 어떤 비트가 선택될 수 있는지를 스케일 가능 프로파일 데이터로부터 결정할 수 있다(예를 들면, 표 1 참조). 다음에 스케일러(54)는 필요하지 않은 비트를 폐기하거나 식별된 데이터 세그먼트를 추출하고 그것을 새로운 비트 스트림 또는 파일로 결합하는 것에 의해서, 식별된 데이터 세그먼트를 이용하여 스케일링된 버전의 인코딩된 데이터를 생성할 수 있다.
상술된 바와 같이, 스케일러(54)에게 제공된 스케일 가능 프로파일 데이터는 각각의 스케일 가능 속성값에 대한 데이터 세그먼트의 다수의 선택을 포함할 수 있다(표 1과 관련된 설명 참조). 어떤 세그먼트(들)를 추출 또는 폐기할 것인지에 대한 결정은 최종 사용자의 요구에 맞는 스케일링의 타입 및 정도, 네트워크 성능 특성 및/또는 다운스트림 장치 능력에 따라서 선택된 스케일링의 타입 및 정도, 스케일 가능 프로파일 데이터 내에 포함된 왜곡 정보 또는 다른 인자, 및 그 조합을 고려하여 실행될 수 있다. 예를 들면, 스케일러(54)가 1/2로 비트 레이트를 감소하려 하지만, 그 비트 레이트 감소를 달성하기 위한 상이한 방법이 제시되었다면, 스케일러(54)는 최종 사용자 장치의 특성 및/또는 각각의 가능한 선택과 연관된 왜곡의 양을 고려하여 선택할 수 있다. 최종 사용자 장치가 컬러 디스플레이를 가능하게 하는 비교적 소형의 디스플레이 스크린을 갖는 이동 전화인 경우에, 스케일러(54)는 컬러 성분을 유지하면서 더 낮은 해상도로 비트 레이트 감소를 달성하거나, 왜곡의 양을 최소화하면서 원하는 비트 레이트 감소를 달성하는 데이터 세그먼트를 추출할 수 있다.
중요한 점은, 스케일러(54)가 데이터를 인코딩하는 데 이용된 인코딩 기법에 대한 지식을 요구하지 않으면서 그 기능을 실행할 수 있다는 것이다. 또한, 스케일러(54)는 데이터가 암호화된 경우에 인코딩된 데이터를 해독하지 않으면서 그 능을 실행할 수 있다. 스케일 가능 데이터를 파싱하기 위해서, 스케일러(54)는 간단하게 어떤 비트(세그먼트)를 추출할 것인지 식별하고, 이러한 비트(데이터 세그먼트)를 비트 스트림 또는 파일 내에 배치하며, 이러한 비트(데이터 세그먼트)를 추출한다. 스케일러(54)는 비트(데이터 세그먼트)를 배치하기 위해서 데이터 세그먼트 내의 비트를 판독할 필요가 없을 뿐만 아니라, 스케일러(54)는 헤더(11)(도 1) 내의 정보를 판독할 필요가 없다. 이와 같이, 스케일링 동작은 매우 귀찮은 계산 리소스없이 효과적으로 실행될 수 있다. 또한, 스케일러(54)는 데이터 세그먼트 내의 비트를 판독할 필요가 없기 때문에, 스케일러(54)는 인코딩 기법에 대한 지식을 필요로 하지 않는다. 따라서, 스케일링은 인코딩 기법이 비교적 새로운 것이고, 스케일러(54)가 인식하지 않는 경우에도 레거시 장치에 대해 실행될 수 있다. 특히, 스케일러(54)는 인코딩된 데이터를 스케일링하기 위해서 JPEG2000을 인식할 필요가 없다.
또한, 데이터 스케일링 기능은 인코딩 체계에 대한 지식을 필요로 하지 않으면서 저장 장치 또는 드라이버에 의해 실행될 수 있다. 예를 들면, 저장 장치(예를 들면, 디스크 드라이브 또는 DVD 재생기)는 인코딩된 데이터를 스케일링하여, 오로지 적절한 데이터 세그먼트만을 실제 디코더로 전달할 수 있다. 이러한 방식으로, 불필요한 정보를 전달하는 데 리소스 또는 시간이 낭비되지 않는다. 이것은 또한 디코더를 단순화하는데, 왜냐하면 디코더가 이러한 처리를 실행할 필요가 없어지기 때문이다.
스케일 가능 프로파일 데이터에 의해 지정된 데이터 세그먼트를 위치 확인 및 추출하기 위해서, 스케일러(54)는 여러 수단에 의해 스케일 가능 프로파일 데이터를 판독하는 능력을 가질 수 있다. 예를 들면, 드라이버는 스케일러(54)에 프리로딩(preloaded)되거나, 이러한 드라이버는 스케일 가능 프로파일 데이터를 구비할 수 있다. 이와 다르게, 스케일 가능 프로파일 데이터는 예를 들면, 스케일러(54)에 의해 판독 및 작용될 수 있는 XML(Extensible Markup Language) 등에 기초할 수 있다.
스케일링 동작의 결과로서, 스케일러(54)에 의해 수신된 스케일 가능 프로파일 데이터는 수정될 필요가 있을 것이다. 예를 들면, 인코딩된 데이터가 스케일링된 후, 스케일 가능 프로파일 데이터 내에서 참조된 몇몇 데이터 세그먼트는 인코딩된 데이터 내에 존재하지 않거나, 몇몇 스케일링 동작은 더 이상 불가능할 수도 있다. 또한, 스케일링 이후에 데이터 세그먼트가 다른 비트 번호로 식별될 수 있기 때문에, 몇몇 스케일링 동작은 그 연관된 데이터 세그먼트와 관련하여 재정의될 필요가 있을 것이다. 스케일 가능 프로파일 데이터를 수정해야 하는 다른 이유가 존재할 수 있다.
도 5b는 본 발명의 제 2 실시예에 따라서 데이터 스케일러(54) 내부 및 외부로 흐르는 정보를 도시하는데, 여기에서 스케일러(54)는 수정된 스케일 가능 프로파일 데이터를 생성한다. 스케일러(54)는 인코더(32)가 스케일 가능 프로파일 데이터를 생성했던 것과 거의 동일한 방식으로 스케일 가능 프로파일 데이터를 수정할 수 있다. 본 발명의 실시예에서, 수정된 스케일 가능 프로파일 데이터는 상술된 바와 같이 스케일링된 버전의 인코딩된 데이터와 함께, 또는 별도로 스케일러(54)로부터 출력된다.
도 6은 본 발명의 일실시예에 따라서 데이터를 스케일링(예를 들면, 트랜스코딩)하는 프로세스를 도시하는 흐름도(60)이다. 도 7은 본 발명의 일실시예에 따라서 데이터를 인코딩하는 프로세스를 도시하는 흐름도(70)이다. 도 8은 본 발명의 일실시예에 따라서 데이터를 디코딩하는 프로세스(80)를 도시하는 흐름도이다. 특정한 단계가 흐름도(60, 70, 80)에 도시되어 있기는 하지만, 이러한 단계는 예시적인 것이다. 다시 말해서, 본 발명의 실시예는 여러 다른 단계 또는 흐름도(60, 70, 80)에 언급된 단계의 변형을 실행하는 데 있어서도 적합하다. 흐름도(60, 70, 80) 내의 단계는 제시된 것과는 다른 순서로 실행될 수 있고, 흐름도(60, 70, 80) 내의 전체 단계가 실행되지는 않는다는 것을 이해할 것이다. 흐름도(60, 70, 80)에 의해 설명된 방법의 전체 또는 일부분은 예를 들면, 컴퓨터 시스템의 컴퓨터 사용 가능 매체 내에 상주하는 컴퓨터 판독 가능 및 컴퓨터 실행 가능 인스트럭션을 이용하여 구현될 수 있다.
일반적으로, 흐름도(60)는 도 5a 및 도 5b의 스케일러(54)(예를 들면, 도 3의 트랜스코더(34) 또는 디코더(38) 등)에 의해 구현될 수 있고, 흐름도(70)는 도 3, 도 4a 및 도 4b의 인코더(32)에 의해 구현될 수 있고, 흐름도(80)는 도 3의 디코더(36)에 의해 구현될 수 있다. 그러나, 상술된 바와 같이, 상이한 기능 블록은 서로 다른 기능을 실행할 수 있고, 하나의 장치는 다수의 기능을 실행하거나, 기능(들)은 다수의 장치에 걸쳐 분산될 수 있다.
먼저 도 6을 참조하면, 단계(61)에서, 인코딩된 데이터의 시퀀스가 (예를 들면, 비트 스트림 또는 파일 내에서) 액세스된다. 인코딩된 데이터는 데이터를 인코딩하는 데 이용되었던 인코딩 기법에 따라서 조직화된다. 일실시예에서, 인코딩 기법은 JPEG2000 표준에 기초한다. 인코딩된 데이터의 일부 또는 전부는 암호화될 수 있다.
단계(62)에서, 스케일 가능 속성값이 결정된다. 스케일 가능 속성은 인코딩된 데이터가 스케일링되는 방식을 식별한다. 스케일 가능 속성은 예를 들면, 비트 레이트(B)일 수 있고, 스케일 가능 속성값은 B/4일 수 있다.
일실시예에서, 스케일 가능 속성값은 스케일링 장치와 통신하는 다른 장치로부터 수신된다. 이러한 일실시예에서, 다른 장치가 스케일링된 버전의 인코딩된 데이터의 수신지가 될 때, 인코딩된 데이터는 다른 장치의 특성에 기초하여 스케일링된다. 이러한 특성을 결정하기 위해서, 스케일링 장치는 다른 장치의 특성을 제공하는 프로파일 정보를 액세스하고, 프로파일 정보에 따라서 스케일 가능 속성값을 선택한다. 이와 다르게, 스케일링 장치는 다른 장치로부터 프로파일 정보를 수신할 수 있고, 그에 따라서 스케일 가능 속성값을 결정한다.
단계(63)에서, 스케일 가능 속성과 연관된 인코딩된 데이터의 세그먼트에 대한 참조를 포함하는 정보(예를 들면, 스케일 가능 프로파일 데이터)가 액세스된다. 중요한 점은, 그 참조가 인코딩 기법의 체계를 넘어서는 것이라는 점이다.
일실시예에서, 참조 정보(예를 들면, 스케일 가능 프로파일 데이터)는 인코딩된 데이터의 시퀀스와 함께 저장된다. 다른 실시예에서, 참조 정보는 인코딩된 데이터의 시퀀스와 별도로 저장된다.
단계(64)에서, 스케일 가능 프로파일 데이터는 인코딩된 데이터 내에 세그먼트를 위치 확인하기 위해 이용된다. 중요한 점은, 스케일링 장치가 인코딩 기법에 관한 지식을 요구하지 않으면서 세그먼트를 발견한다는 것이다.
단계(65)에서, 스케일링된 버전의 인코딩된 데이터는 세그먼트를 이용하여 생성된다. 또한, 스케일링된 버전의 인코딩된 데이터는 암호화된 데이터를 해독하지 않고서 생성된다.
단계(66)에서, 일실시예에서는, 스케일링된 버전의 인코딩된 데이터가 다운스트림 장치로 전달된다.
단계(67)에서, 일실시예에서는, 수정된 참조 정보(예를 들면, 수정된 스케일 가능 프로파일 데이터)가 스케일링된 버전의 인코딩된 데이터에 기초하여 생성된다. 스케일링된 버전 내의 세그먼트는 인코딩 기법에 무관하게 스케일 가능 속성의 선택된 값과 연관되고, 그것에 의해 다른 장치가 스케일링된 버전 내에서 세그먼트의 위치를 확인하고, 인코딩 기법에 관한 지식을 요구하지 않으면서 스케일링된 버전을 스케일링할 수 있게 한다. 수정된 참조 정보는 스케일링된 버전의 인코딩된 데이터와 함께, 또는 별도로 저장될 수 있다.
다음으로 도 7을 참조하면, 단계(71)에서, 데이터는 인코딩 기법을 이용하여 인코딩되고, 파일 내에 저장된다. 일실시예에서, 인코딩 기법은 실질적으로 JPEG2000 표준과 부합된다.
단계(72)에서, 파일 내에서 데이터 세그먼트의 위치가 식별된다.
단계(73)에서, 데이터 세그먼트 및 선택된 스케일 가능 속성값이 인덱싱된다. 스케일 가능 속성은 인코딩된 데이터가 후속 스케일링 동작에서 스케일링되는 방법을 지정한다. 인덱스는 인코딩 기법에 무관하고, 장치가 인코딩 기법에 대한 지식을 요구하지 않으면서 세그먼트의 위치를 확인하고 인코딩된 데이터를 스케일링할 수 있게 한다. 일실시예에서, 선택된 스케일 가능 속성값은 인코딩 장치에 입력된다.
단계(74)에서, 데이터 세그먼트 및 선택된 스케일 가능 속성값의 인덱스를 포함하는 참조 정보가 저장된다. 일실시예에서, 인덱스는 인코딩된 데이터의 파일에 추가된다. 다른 실시예에서, 인덱스는 파일과 별도로 저장된다.
단계(75)에서, 일실시예에서는, 적어도 몇 개의 인코딩된 데이터가 암호화된다. 이러한 일실시예에서, 인코딩된 데이터의 각각의 데이터 세그먼트는 단계적으로 암호화된다.
다음으로 도 8을 참조하면, 단계(81)에서, 인코딩된 데이터의 시퀀스가 액세스된다. 인코딩된 데이터는 데이터를 인코딩하는 데 이용되었던 인코딩 기법에 따라서 순차화된다. 일실시예에서, 인코딩 기법은 실질적으로 JPEG2000 표준과 부합한다.
단계(82)에서, 디코딩 장치는 인코딩된 데이터가 디코딩을 위해 스케일링되는 방법을 결정한다.
단계(83)에서, 인코딩된 데이터의 소정 세그먼트를 식별하는 정보(예를 들면, 스케일 가능 프로파일 데이터)가 액세스된다. 이러한 정보는 인코딩 기법의 체계에 추가된다. 데이터 세그먼트는 인코딩된 데이터가 디코딩을 위해 스케일링되는 방법에 기초하여 식별된다.
보다 구체적으로, 일실시예에서, 스케일 가능 속성값이 결정된다. 이 값은 사용자 입력이거나, 디코딩 장치의 특성 및 능력에 기초하여 도출될 수 있다. 스케일 가능 속성값은 인코딩된 데이터가 스케일링되는 방법을 식별한다. 스케일 가능 프로파일 데이터는 스케일 가능 속성값으로부터 인코딩된 데이터 내의 소정의 데이터 세그먼트로의 참조를 포함한다.
단계(84)에서, 단계(83)에서의 정보를 이용하여 데이터 세그먼트를 인코딩된 데이터 내에서 발견한다. 중요한 점은, 디코딩 장치가 인코딩 기법에 대한 정보를 요구하지 않으면서 세그먼트의 위치를 확인한다는 점이다.
단계(85)에서, 단계(84)에서 확인된 데이터 세그먼트 내에 포함된 인코딩된 데이터는 디코딩된다. 인코딩된 데이터가 암호화되었다면, 데이터 세그먼트 내의 데이터는 또한 해독될 수 있다.
요약하자면, 본 발명의 실시예는 안전하고 계산 효율적인 방식으로 인코딩된 데이터의 스케일링(예를 들면, 트랜스코딩)을 가능하게 한다. 스케일링은 데이터를 인코딩하는 데 이용되는 기법에 대한 정보를 요구하지 않으면서 이루어질 수 있고, 그에 따라서 인코딩 기법이 비교적 새로운 것이고, 스케일링 장치가 인식하지 못하는 것일지라도 레거시 장치에서 스케일링이 실행될 수 있다.
보호 프로파일 데이터 생성 시스템 및 방법
도 9a는 본 발명의 일실시예에 따라서 데이터와 스케일 가능 매체를 결합하는 시스템을 도시한다. 도 9a는 본 발명의 일실시예에 따라서 인코더(32) 내부 및 외부로 흐르는 정보를 도시한다. 도 9a의 실시예에서, 데이터는 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해서 결합될 수 있는 스케일 가능 매체의 일부분을 식별하는 스케일 가능 매체와 연관된다. 그 후, 스케일 가능 매체는 암호화된다. 추가하여, 데이터는 스케일 가능 매체의 개별 부분을 암호화하는 데 이용되는 암호화 기법의 보호 속성을 식별하는 스케일 가능 매체의 개별 부분과 연관된다.
본 발명의 실시예에서, 인코더(32)는 입력된 데이터(예를 들면, 인코딩될 화상 데이터 등과 같은 데이터)를 수신한다. 인코더(32)는 또한 입력된 데이터를 암호화하는 데 이용된 암호화 기법의 속성을 상술하는 데이터를 수신한다.
본 출원에서, 보호 속성은 인코딩된 데이터를 보호하는 방법을 지정하는 범위 파라미터 및 연관된 값을 갖는 속성으로서 정의된다. 보호 속성은 암호화 원형(primitives), 암호화 모드, CCS, 및 스케일 가능 매체 세그먼트의 암호(crypto)의 매핑을 포함할 수 있지만 이것으로 한정되지는 않는다.
보호 속성값은 보호 속성에 대해 지정된 값이다. 예를 들면, 암호화 원형에 대한 보호 속성값은 DES, 3-DES, AEC 등을 포함할 수 있다. 보호 속성 및 값은 다른 타입의 데이터(예를 들면, 오디오 데이터, 그래픽 데이터 등)에 대해서도 유사하게 정의될 수 있다. 예를 들면, 오디오 데이터에 대한 보호 속성값은 오디오 트랙이 암호 그래픽(crypto-graphic) 체크섬으로서 MAC 또는 키 해시(keyed-hashes)를 이용하여 보호되는지 여부를 나타낼 수 있다.
앞서 논의된 바와 같이, 인코더(32)는 JPEG2000에 기초한 인코딩 기법 등과 같은 인코딩 기법을 이용하여 입력된 데이터를 인코딩한다. 상술된 바와 같이, 인코더(32)는 다른 기능을 제공할 수 있다. 인코딩 프로세스의 결과로서, 도 1의 비트 스트림(10)으로 예시된 것과 같은 비트 스트림 또는 이러한 비트 스트림을 포함하는 파일이 생성된다. 인코더(32)의 출력은 본 명세서에서 스케일 가능 데이터로 지칭되는 것을 포함하는데, 왜냐하면 인코딩된 데이터는 트랜스코더 또는 디코더에 의해 후속적으로 스케일링될 수 있기 때문이다.
다시 도 9a를 참조하면, 인코더(32)의 다른 출력은 본 명세서에서 보호 프로파일 데이터로 지칭되는 것을 포함한다. 본질적으로, 보호 프로파일 데이터는 보호 속성값과 스케일 가능 데이터 내의 대응하는 데이터 세그먼트의 상호 참조를 포함한다. 예를 들면, 보호 프로파일 데이터는 아래의 표 2를 참조하여 예시된 바와 같이 데이터 세그먼트와 보호 속성값을 상호 참조하는 인덱스 또는 룩업 테이블로서 구성될 수 있다(또한 도 2를 참조).
Figure 112006060231530-PCT00002
표 2의 형식은 오로지 예시적인 것이고, 보호 프로파일 데이터는 임의의 컴퓨터 판독 가능 형식으로 저장될 수 있다는 것을 이해할 것이다. 표 2에서, 바이트는 그의 바이트 번호에 의해 식별되지만, 다른 어드레싱 메커니즘을 이용할 수 있다. 또한, 그의 바이트, 비트 또는 블록(예를 들면 8바이트) 범위에 의해 데이터 세그먼트를 식별하는 것 대신에, 다른 메커니즘을 이용하여 데이터 세그먼트를 식별할 수 있다. 일반적으로, 보호 프로파일 데이터는 보호 속성값과 도 1의 비트 스트림(10) 내의 하나 이상의 데이터 세그먼트를 상관하기에 충분한 정보를 포함한다.
표 2는 사용자에 의해 인코더(32)(도 3)에 대한 입력으로서 선택된 임의의 보호 속성 및 보호 속성값을 포함할 수 있다는 것을 이해할 것이다. 또한, 특정 보호 속성이 적용될 데이터 세그먼트의 목록은 각각의 보호 속성값에 대한 데이터 세그먼트의 다수의 선택을 포함할 수 있다. 이것은 인코더에서 넓은 범위의 데이터 보호 유연성을 제공할 수 있다. 따라서, 보호 프로파일 데이터 내에서 각각의 보호 속성값에 대한 데이터 세그먼트의 다수의 선택의 포함을 허용하는 예시적인 실시예의 선택의 유연성은 사용자(예를 들면, 인코더에 입력을 제공하는 사용자)가 그의 요구에 맞는 보호의 타입 및 정도를 선택할 수 있게 한다.
인코더(32)에 의해 출력된 (인코딩 및 암호화된) 스케일 가능 데이터는 인코더(32)에 의해 이용된 인코딩 기법 또는 암호화 기법에 관한 지식을 요구하지 않으면서 스케일링될 수 있다는 것을 유의하라. 데이터가 JPEG2000 기법 또는 몇몇 다른 인코딩 기법을 이용하여 인코딩되었든지, 트랜스코더 또는 디코더는 비트 스트림(10)(도 1)으로부터 해당 타입의 스케일링과 연관된 데이터 세그먼트(들)를 추출/파싱하기 위해 실행될 스케일링의 타입(예를 들면, 비트 레이트를 1/4로 감소)을 지정하기만 하면 된다.
도 9a의 실시예에서, 스케일 가능 데이터 및 보호 프로파일 데이터는 함께 저장된다. 예를 들면, 보호 프로파일 데이터는 스케일 가능 데이터를 포함하는 비트 스트림 또는 파일에 첨부될 수 있다. 다량의 스케일 가능 데이터가 존재하는 경우에, 스케일 가능 프로파일 데이터의 부분은 비트 스트림 또는 파일 내에서 간격을 두고 위치될 수 있다.
이와 다르게, 보호 프로파일 데이터는 도 9b에 도시된 바와 같이 스케일 가능 데이터와는 별도로 저장 및 취급될 수 있다. 도 9b의 실시예에서, 스케일 가능 프로파일 데이터가 스케일 가능 데이터와 함께 이동할 필요는 없다. 예를 들면, 도 3을 참조할 때, 보호 프로파일 데이터는 스케일 가능 데이터가 이동하는 경로와는 상이한 경로를 따라서 트랜스코더(34), 디코더(36) 또는 디코더(38)로 전달될 수 있다. 이와 다르게, 보호 프로파일 데이터 및 스케일 가능 데이터는 별개의 위치에 저장되고, 그 후에 필요할 때마다 트랜스코더(34), 디코더(36) 또는 디코더(38)에 의해 액세스 및 상관될 수 있다.
작동 중에, 도 9a 및 도 9b의 인코더(32)는 다음과 같이 기능한다. 일실시예에서, 보호 속성값은 사용자에 의해 입력되고, 이것은 컨텐츠 생성기, 컨텐츠 분배기(distributor) 또는 컨텐츠 소비기(consumer)를 포함할 수 있다. 이와 다르게, 보호 속성값은 네트워크 성능, 다운스트림 장치 능력, DRM(digital right management) 정책, 보안 문제 또는 취약성(vulnerabilities) 등에 관하여 인코더(32)에 의해 인식된 정보에 기초하여 자동적으로 선택될 수 있다. 이용 가능 대역폭 등과 같은 네트워크 성능 특성은 모니터링될 수 있고, 그 정보는 인코더(32)로 공급된다. 또한, 다운스트림 장치(최종 사용자 장치를 포함)는 인코더(32)와 직접 통신할 수 있다.
다음에 인코더(32)는 자신이 이용하는 인코딩 기법(예를 들면, JPEG2000 인코딩 기법)을 이용하여 통상적인 방식으로 입력된 데이터를 인코딩한다. 또한, 인코더(32)는 인코딩된 비트 스트림(스케일 가능 데이터)에 대한 보호 프로파일 데이터를 생성한다. 다시 말해서, 일실시예에서, 각각의 입력된 보호 속성값에 대하여, 인코더(32)는 인코딩된 데이터 내에서 보호 속성이 연관될 수 있는 대응하는 데이터 세그먼트를 식별한다
일실시예에서, 인코더(32)는 특정한 보호 속성값과 연관된 데이터 세그먼트의 여러 선택 또는 조합을 식별할 수 있다. 예를 들면, 화상 제품 환경 내에서, 특정한 암호화 원형에 대하여 인코더(32)는 그 암호화 원형을 이용하여 암호화될 수 있는 데이터 세그먼트의 여러 상이한 조합을 식별할 수 있다. 일실시예에 따르면, 하나의 조합은 화상 제품의 모든 부분에 대해 동일한 암호화 원형이 적용되게 할 수 있다. 다른 조합은 화상 제품 내의 하나의 관심 영역에 하나의 암호화 원형이 적용되게 하고, 다른 암호화 원형이 화상 제품 내의 다른 관심 영역에 적용되게 할 수 있다.
인코딩 스테이지에서, 인코더(32)는 지능(프로그래밍된 지능 또는 사용자 입력에 기초한 지능)을 적용하여 데이터 세그먼트의 어떤 조합(들)이 보호 프로파일 데이터와 연관되는지 결정할 수 있다. 이와 다르게, 모든 조합은 보호 프로파일 데이터와 연관될 수 있고, 인코더는 사용자 입력 또는 네트워크 성능 특성, 최종 사용자 장치 능력, DRM(digital rights management) 정책 또는 보안 취약성 등과 같은 다른 고려 사항에 기초하여 어떤 데이터 세그먼트의 조합(예를 들면, 몇몇 조합 또는 전체의 조합)이 특정 보호 속성과 연관되는지를 결정할 수 있다.
다른 실시예에서, 여러 보호 속성값과 연관된 데이터 세그먼트는 미리 정의될 수 있다. 근본적으로, 표 1에 예시된 보호 프로파일 데이터는 데이터 인코딩 이전에 형성된 것이다. 이 실시예에서, 데이터는 보호 프로파일 데이터에 의해 정의된 방식에 대응하는 방식으로 인코딩된 다음 암호화된다. 예를 들어, 도 2를 참조하면, 보호 프로파일 데이터는 바이트(0-b2)가 보호 속성값(AES)을 갖는 암호화 원형을 이용하여 암호화되기 전에 미리 정의될 수 있다. 다음에 인코더는 그에 따라 이러한 바이트를 암호화할 수 있다.
도 10은 본 발명의 제 2 실시예에 따라서 데이터 스케일러(54) 내부 및 외부로 흐르는 정보를 도시하고, 여기에서 스케일러(54)는 수정된 보호 프로파일 데이터를 생성한다. 스케일러(54)는 인코더(32)가 보호 프로파일 데이터를 생성한 것과 거의 동일한 방식으로 보호 프로파일 데이터를 수정할 수 있다. 본 발명의 실시예에서, 수정된 스케일 가능 프로파일 데이터는 상술된 바와 같이 스케일링된 버전의 인코딩된 데이터와 함께 또는 별도로 스케일러(54)로부터 출력된다.
본 발명의 실시예에서, 스케일 가능 매체의 개별 부분과 연관된 보호 프로파일 데이터는 암호화 원형, 암호화 모드, 암호화 체크섬 및 표 2에 도시된 것과 같은 스케일 가능 매체에 대한 암호 매핑을 포함하지만, 이것으로 한정되지 않는 보호 속성을 식별한다. 또한, 보호 프로파일 데이터는 스케일 가능 매체의 개별 부분을 암호화하기 위해 이용되는 암호화 기법에서 이용된 암호화 알고리즘 및 암호화 기법의 해독화에 이용된다.
본 발명의 실시예에서, 스케일 가능 매체의 각각의 개별 부분은 스케일 가능 매체의 개별 부분을 해독하는 데 이용되는 서로 다른 키를 갖고, 서로 다른 암호화 알고리즘을 이용하며, 서로 다른 CCS를 이용할 수 있다. 각각의 키의 클래스는 각 클래스의 스케일 가능 매체를 해독하다 데 필요할 수 있다는 것을 이해할 것이다. 예를 들면, 제 1 키는 제 1 해상도를 갖는 파일 보유 매체에 대한 액세스를 획득하는 데 필요하지만, 제 2 키는 제 2 해상도를 갖는 파일 보유 매체에 대한 액세스를 획득하는 데 필요할 수 있다.
실시예에 따르면, 보호 프로파일 데이터의 파라미터는 시간에 따라 변할 수 있다. 보호 프로파일 데이터는 그와 연관된 데이터의 시퀀스에 대한 변경을 반영하기 위해 리매핑(remapped)될 수 있다는 것을 이해할 것이다.
도 11은 본 발명의 일실시예에 따른 스케일 가능 매체의 부분을 스케일링하는 방법에서 실행된 단계를 도시한다. 단계(1101)에서, 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합된 스케일 가능 매체의 부분을 식별하는 데이터는 스케일 가능 매체와 연관된다. 본 발명의 실시예에서, 스케일 가능 매체의 개별 부분과 연관된 스케일 가능 프로파일 데이터는 스케일 가능 매체와 결합되거나, 멀리 시그널링될 수 있다. 단계(1103)에서, 단계(1101)에서 식별된 스케일 가능 매체의 부분은 암호화된다. 일실시예에 따르면, 상술된 바와 같이, 스케일 가능 매체를 구성하는 스케일 가능 매체 부분은 동일한 기법 또는 상이한 기법을 이용하여 암호화될 수 있다.
단계(1105)에서, 스케일 가능 매체의 식별된 부분을 암호화하는 데 이용된 암호화 기법의 보호 속성을 식별하는 데이터는 스케일 가능 매체의 식별된 부분과 연관된다. 본 발명의 실시예에서, 스케일 가능 매체의 개별 부분과 연관된 보호 프로파일 데이터는 스케일 가능 매체에 결합되거나 멀리 시그널링될 수 있다.
도 12는 본 발명의 일실시예에 따라서 디코딩없이 암호화된 스케일 가능 매체를 스케일링하는 방법에서 실행된 단계를 도시하는 흐름도이다. 단계(1201)에서, 암호화된 스케일 가능 매체와 연관되고, 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합될 암호화된 스케일 가능 매체의 부분을 식별하는 데이터가 액세스된다. 단계(1203)에서, 암호화된 스케일 가능 매체의 하나 이상의 부분 및 연관된 암호화 체크섬은 송신 가능 데이터 시퀀스로 결합된다. 단계(1205)에서, 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합될 스케일 가능 매체의 부분을 식별하는 스케일 가능 매체와 연관된 데이터는 리매핑된다.
단계(1207)에서, 스케일 가능 매체의 부분을 암호화하기 위해 이용된 암호화 시스템의 보호 속성을 식별하는 스케일 가능 매체의 부분과 연관된 데이터가 리매핑된다. 암호화된 스케일 가능 매체의 하나 이상의 부분 및 연관된 암호화 체크섬은 스케일링된 버전의 암호화된 스케일 가능 매체를 구성할 수 있다는 것을 이해할 것이다.
도 13은 본 발명의 일실시예에 따라서 스케일 가능 매체를 디코딩하는 방법에서 실행된 단계를 도시하는 흐름도이다. 단계(1301)에서, 스케일 가능 매체의 부분을 암호화하기 위해 이용된 암호화 시스템의 보호 속성을 식별하는 스케일 가능 매체의 부분과 연관된 데이터가 액세스된다. 단계(1303)에서, 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합될 스케일 가능 매체의 부분을 식별하는 스케일 가능 매체와 연관된 데이터가 액세스된다.
단계(1305)에서, 스케일 가능 매체의 부분은 암호화하기 위해 이용된 암호화 시스템의 보호 속성을 식별하는 스케일 가능 매체의 부분과 연관된 데이터에 기초하여 해독된다. 단계(1307)에서, 스케일 가능 매체의 부분은 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합될 스케일 가능 매체의 부분을 식별하는 스케일 가능 매체와 연관된 데이터에 기초하여 디코딩된다.
요약하자면, 스케일 가능 매체의 부분과 데이터를 연관시키는 방법이 개시되어 있다. 데이터는 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 조합될 스케일 가능 매체의 부분을 식별하는 스케일 가능 매체와 연관된다. 데이터는 스케일 가능 매체의 부분을 암호화하기 위해 이용된 암호화 기법의 보호 속성을 식별하는 스케일 가능 매체의 부분과 연관된다.
인코딩 기법에 관한 지식없이 단계적으로 암호화된 데이터의 스케일링
도 14는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 인코딩하는 방법을 도시한다. 도 14의 실시예에서, 데이터(예를 들면, 도 4a 및 도 4b를 참조하여 설명된 스케일 가능 프로파일 데이터)는 데이터의 단계적으로 암호화된 시퀀스의 스케일링된 버전을 생성하기 위해 조합될 스케일 가능 데이터의 시퀀스의 조합 가능 부분을 식별하는 스케일 가능 데이터의 시퀀스와 연관된다. 본 발명의 실시예에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 스케일링된 버전은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스에 대한 인코딩 기법에 관한 지식없이 스케일링된다. 또한, 암호화 체크섬(CCS)은 계산되고, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 조합 가능 부분과 연관될 수 있다. 도 14는 참조 부호(312)에서 세그먼트(304, 305, 306, 307)(예를 들면, 조합 가능 부분)로 분리된 매체 컨텐츠(301)의 단계적으로 암호화된 시퀀스를 도시한다.
각각의 세그먼트(예를 들면, 조합 가능 부분)는 적어도 하나의 독자적 디코딩 가능 부분을 포함할 수 있다는 것을 이해할 것이다. 도 14의 실시예에서, 독자적 디코딩 가능 부분은 A, B, C 및 D로 표시되고, 각각의 세그먼트는 오로지 하나의 독자적 디코딩 가능 부분만을 포함한다. 다른 실시예에서, 하나 이상의 독자적 디코딩 가능 부분은 세그먼트 내에 포함될 수 있다.
실시예에 따르면, 암호화 체크섬은 각각의 세그먼트(304, 305, 306, 307)에 대해 계산될 수 있다. 도 14의 실시예에서는, 참조 부호(313)에서, 암호화 체크섬의 계산 후에, 각각의 식별된 세그먼트(304, 305, 306, 307)가 대응하는 암호화 체크섬(314, 315, 316, 317)과 연관된다. 식별된 세그먼트(예를 들면, 조합 가능 부분) 및 그 연관된 암호화 체크섬은 매체 세그먼트(321, 322, 323, 324)로 결합된다.
본 발명의 실시예에서, 각 세그먼트의 길이는 그 길이에 그 연관된 CCS를 더한 것이 네트워크를 위해 허용 가능한 최대 매체 세그먼트 페이로드 크기 또는 허용 가능한 MTU(maximum transmittable unit)보다 작게 되도록 선택된다는 것을 이해할 것이다. 본 명세서에 언급된 바와 같이, 매체 세그먼트는 단일 절단 가능 유닛 또는 복수의 절단 가능 유닛을 포함할 수 있다. 도 14에는 4개의 매체 세그먼트가 도시되어 있으나, 임의의 개수의 세그먼트가 이용될 수 있다는 것도 유의하라.
"독자적 디코딩 가능 부분" 및 "절단 가능 유닛(truncatable unit)"의 용어는 본 명세서의 실시예의 설명에서 다른 의미를 가질 수 있다는 것을 이해할 것이다. 매체 세그먼트의 독자적 디코딩 가능 부분은 매체 세그먼트 페이로드의 다른 부분의 디코딩을 요구하지 않으면서 디코딩될 수 있는 매체 세그먼트의 페이로드의 부분이다. 또한, 암호화되었다면, 독자적 디코딩 가능 부분은 페이로드의 나머지를 해독할 필요 없이 해독될 수 있다. 절단 가능 유닛은 나머지 매체 세그먼트에 악영향을 주지 않으면서도 해독화를 실행하거나 실행하지 않으면서 매체 세그먼트로부터 절단될 수 있는 매체 세그먼트 페이로드의 일부분이다. 이러한 용어는 어느 정도 교환 가능하게 이용될 수 있지만, 본 명세서의 설명 내에서 이들은 그 별개의 의미를 유지한다는 것을 이해할 것이다.
도 15a는 본 발명의 일실시예에 따라서 스케일 가능 매체 컨텐츠의 단계적으로 암호화된 시퀀스의 절단에 의한 트랜스코딩을 도시한다. 도 15a에 도시된 실시예에서, 매체 컨텐츠(411)는 412에서, 각각 하나 이상의 독자적 디코딩 가능 부분(A, B 등)을 포함하는 세그먼트로 분리된다. 도 14를 참조하여 논의된 바와 같이, 매체 세그먼트의 페이로드는 하나 이상의 독자적 디코딩 가능 부분을 포함할 수 있다. 또한, 몇몇 실시예에 따르면, 독자적 디코딩 가능 부분은 독자적 절단 가능 유닛을 더 포함할 수 있다.
도 15a의 실시예에서, 암호화 체크섬은 우선 순위대로 매체 세그먼트(413)의 각각의 디코딩 가능 부분 또는 절단 가능 유닛에 대하여, 또한 전체 선행 패킷 페이로드에 대해서 계산된다. 먼저, 암호화 체크섬(415)은 CCS(A)(415)에서 생성된 제 1 절단 가능 유닛(A)(예를 들면, 참조 부호(403) 등)에 대해 계산된다. 그 후에, 암호화 체크섬(416)은 독자적 디코딩 가능 부분(A)(예를 들면, 참조 부호(403) 등), 암호화 체크섬 CCS(A)(예를 들면, 참조 부호(415) 등) 및 독자적 디코딩 가능 부분(B)(예를 들면, 참조 부호(404))을 포함하는 전체의 선행 매체 세그먼트 페이로드에 대해 계산된다. 도 4a에서 결과적인 체크섬은 CCS(A,CCS(A),B)(416)로서 도시되어 있다. 제 3 독자적 디코딩 가능 부분이 포함되었다면, 다음의 암호화 체크섬은 다음과 같이 표현될 수 있다는 것을 이해할 것이다.
Figure 112006060231530-PCT00003
본 실시예에서, 트랜스코더-판독 가능 헤더(414)는 매체 세그먼트(413)와 연관될 수 있다. 예시적인 실시예에 따르면, 트랜스코더 판독 가능 헤더는 매체 세그먼트(413) 등과 같은 스케일 가능 매체 세그먼트 내의 절단 포인트의 위치 및 원하는 스케일 가능 속성을 보유하도록 스케일링된 매체를 생성하기 위해 추출될 수 있는 스케일 가능 매체 세그먼트 데이터(예를 들면, 매체 세그먼트)의 세그먼트를 식별하는 스케일 가능 프로파일 데이터 등과 같은 정보를 포함할 수 있다. 다른 실시예에서, 스케일 가능 프로파일 데이터는 스케일 가능 매체 세그먼트 내의 중간, 종료점 또는 상이한 위치에서 상주할 수 있다.
본 실시예에서, 트랜스코딩 세션이 실행될 때(예를 들면, 417), 트랜스코더는 원하는 스케일링 결과를 획득하기 위해서 선택된 절단 가능 유닛을 절단할 수 있다. 예시적인 실시예에 따르면, 트랜스코딩된 매체 세그먼트가 암호화되면, 이러한 형태의 트랜스코딩을 실행하기 위해 해독화가 요구되지 않는다. 도 14a에 도시된 예에서, 절단 가능 유닛(B) 및 그와 연관된 암호화 체크섬(416)은 절단된다. 절단되지 않고, 해독되지 않은 나머지 매체 세그먼트(418)는, 필요한 암호화 체크섬(CCS(A))(415), 독자적 디코딩 가능 부분(A)(403) 및 헤더(414)를 그대로 유지하면서 전달된다.
도 15a에 도시된 본 발명의 실시예에서, 임의의 개수의 절단 가능 유닛 및 그 연관된 암호화 체크섬은 트랜스코딩 조건을 만족시키기 위해(예를 들면, 원하는 스케일 가능 속성을 획득하기 위해) 필요에 따라 매체 세그먼트로부터 절단될 수 있다. 각각의 경우에, 절단 가능 유닛, 그 연관된 암호화 체크섬 및 그 암호화 체크섬이 절단된 유닛에 대한 계산을 포함하는 후속 절단 가능 유닛은 또한 절단된다.
도 15b는 본 발명의 다른 실시예에 따른 스케일 가능 매체 컨텐츠의 단계적으로 암호화된 시퀀스의 절단에 의한 트랜스코딩을 도시한다. 도 15b의 실시예에서, 매체 컨텐츠(421)는 참조 부호(422)에서 상술된 바와 같이 A, B, C, D 등으로 도시된 임의의 개수의 독자적 디코딩 가능 부분을 포함하는 세그먼트로 분리된다. 이러한 예에서, 몇몇 세그먼트는 각 부분의 크기에 기인하여 다른 세그먼트보다 더 많은 독자적 디코딩 가능 부분을 포함할 수 있다는 것을 유의하라(도 15b 참조). 도 15b의 실시예에서, 다수의 독자적 디코딩 가능 부분의 선택은 매체 세그먼트의 최대 크기에 기초하여 예측된다. 예를 들면, 독자적 디코딩 가능 부분(A)(예를 들면, 참조 부호(433)), 독자적 디코딩 가능 부분(B)(예를 들면, 참조 부호(434)) 및 독자적 디코딩 가능 부분(C)(예를 들면, 참조 부호(435))은 하나의 세그먼트로 결합되는 한편, 독자적 디코딩 가능 부분(D)(436)은 그 자체로 동일한 크기의 세그먼트를 구성한다.
도 15b에 도시된 실시예에서, 암호화 체크섬은 각각의 독자적 디코딩 가능 부분에 대해 계산된다. 이러한 실시예에 따르면, 암호화 체크섬의 계산은 다른 독자적 디코딩 가능 부분에 무관하게 이루어진다. 매체 세그먼트(423)는 독자적 디코딩 가능 부분(A)(예를 들면, 참조 부호(433)) 및 CCS(A)(예를 들면, 참조 부호(425)), 독자적 디코딩 가능 부분(B)(예를 들면, 참조 부호(434)) 및 CCS(B)(예를 들면, 참조 부호(426)), 및 독자적 디코딩 가능 부분(C)(예를 들면, 참조 부호(435)) 및 CCS(C)(예를 들면, 참조 부호(427))의 조합으로 형성된다.
도 15b에 도시된 실시예에서, 매체 세그먼트(423)의 트랜스코딩(428)은 선택된 독자적 디코딩 가능 부분 또는 절단 가능 유닛과, 그 연관된 암호화 체크섬의 절단을 포함한다. 도 15b에 도시된 예에서, 절단 가능 유닛(C)(예를 들면, 참조 부호(435)) 및 CCS(C)(예를 들면, 참조 부호(427))는 절단된다. 이 실시예에서, 트랜스코더-판독 가능 헤더(424)는 그대로 유지되고 절단 포인트와 관련된 그의 정보를 유지한다. 그러므로, 절단된 매체 세그먼트(429)는 절단 가능 유닛(B)(예를 들면, 참조 부호(434)) 및 CCS(B)(예를 들면, 참조 부호(426)) 또는 절단 가능 유닛(A)(예를 들면, 참조 부호(433)) CCS(A)(예를 들면, 참조 부호(425))을 절단하는 것에 의해 후속 절단됨으로써 트랜스코딩되도록 이용 가능하다.
이러한 방식으로, 원하는 트랜스코딩 결과를 획득하기 위해서 어떠한 매체 세그먼트도 해독화 및 재암호화할 필요 없이 네트워크 내의 임의의 원하는 포인트에서 트랜스코딩이 발생할 수 있다. 각각의 절단 이후에, 해독되지 않은 나머지의 매체 세그먼트는 그 필수적 암호화 체크섬을 유지하고, 데이터의 보안은 그대로 유지된다.
몇몇 실시예에서, 트랜스코딩은 매체 컨텐츠에서 전체 매체 세그먼트를 소거하는 것에 의해 실행될 수 있다는 것을 이해할 것이다. 또한, 매체 세그먼트 검증(verification) 등을 위해 암호화되지 않은 매체 스트림 내에서 암호화 체크섬이 이용될 수 있다는 것을 유의하라.
도 16a는 본 발명의 일실시예에 따라서 스케일 가능 매체 컨텐츠의 단계적으로 암호화된 시퀀스의 트랜스코딩을 도시한다. 도 16a의 실시예에서, 매체 컨텐츠(500)(스케일 가능 데이터 부분(A, B, C 등)으로 구성됨)는 절단 가능 유닛(예를 들면, 참조 부호(502))으로 분리된다(예를 들면, 참조 부호(501)). 보안이 유지된 매체 스트림 내에서 각각의 매체 세그먼트 페이로드는 암호화되고(예를 들면, 참조 부호(503)), 독립적인 암호화 체크섬(CCS)이 첨부된다. 도 16a를 참조하면, 암호화 체크섬은 CCS(A)(예를 들면, 참조 부호(506)), CCS(B)(예를 들면, 참조 부호(507)), 및 CCS(C)(예를 들면, 참조 부호(508))로서 표시된다. 예시적인 실시예에 따르면, 암호화된 절단 가능 유닛은, 그와 연관된 암호화 체크섬과 함께 결합되어 적절한 길이의 송신 가능 매체 세그먼트를 형성한다(도 16a 참조).
본 명세서에서 암호화 체크섬은 여러 서로 다른 타입을 가질 수 있다는 것을 유의하라. 공통 체크섬은 암호화된 매체 세그먼트 내에 포함된 데이터의 지문(fingerprint)을 제공하는 공지된 해시 함수(hash function)를 포함할 수 있고, 수신된 데이터의 인증성 및 해독된 데이터의 유효성을 보장할 수 있다. 암호화 체크섬 능력을 제공하기 위해 이용 가능한 체크섬 함수의 다른 예는 MAC(Message Authentication Codes), MD4 & MD5(Message Digest algorithms), SHA(Secure Hash Algorithm) 등과 같은 키 해시, RIPEMD(RACE Integrity Primitives Evaluation Message Digest), 및 HMAC(keyed-Hashing for Message Authentication)를 포함한다. 또한, 몇몇 구현에서, 디지털 서명 기법도 이용될 수 있다.
본 발명의 다른 실시예에서, 데이터 세그먼트를 절단 가능 유닛으로 분리하는 것은 SSS(secure scalable streaming)으로 지칭된다. 각각의 매체 세그먼트는 매체 세그먼트 내에 포함된 헤더 내에서 정의될 수 있는 적절한 절단 포인트에서 매체 세그먼트를 절단하는 것에 의해 트랜스코딩될 수 있다. 예를 들면, 트랜스코딩 동안에, 매체 세그먼트에서 하나 이상의 절단 가능 유닛을 절단 또는 제거하는 것에 의해 비트 레이트 감소, 프레임 레이트 감소 등이 이루어진다.
도 16a의 실시예에서, 트랜스코더-판독 가능 헤더(505)는 송신 가능 매체 세그먼트로 기록 및 결합된다. 도 16a를 참조하여 앞서 논의된 바와 같이, 트랜스코더-판독 가능 헤더(예를 들면, 스케일 가능 프로파일 데이터, 보호 프로파일 데이터 등)는 매체 세그먼트를 수반하는 매체 세그먼트 페이로드에 관련된 정보를 포함하지만, 매체 세그먼트의 페이로드의 컨텐츠에 대해서는 공개하지 않는다. 트랜스코더-판독 가능 헤더를 판독함으로써, 트랜스코더는 도 16a의 참조 부호(510)에서 표시된 바와 같이, 소거된 부분 또는 나머지 매체 세그먼트를 해독하지 않으면서, 송신 가능 매체 세그먼트의 부분을 소거(예를 들면 참조 부호(509))하거나 "스케일 다운(scale down)"할 수 있다. 도시된 예에서, 독자적 디코딩 가능 부분(B)과 그 연관된 암호화 체크섬은, 독자적 디코딩 가능 부분(A 또는 C) 또는 그 연관된 암호화 체크섬에 영향을 주지 않으면서 소거된다. 결과적으로, 스트리밍된 매체 데이터의 단대단 보안(end-to-end security)이 유지되고, 스트리밍된 매체의 수신기는 트랜스코딩된 데이터의 무결성을 입증할 수 있다.
도 16a 및 도 16b에 도시된 실시예에서, 트랜스코딩이 완료된 후에, 새로운 트랜스코더-판독 가능 헤더(511)는 새롭게 구성된 매체 세그먼트(510)의 컨텐츠를 반영하도록 기록될 수 있다. 이전의 트랜스코더-판독 가능 헤더에서와 마찬가지로, 포함된 매체 세그먼트 페이로드의 시작 및 종료 포인트와, 매체 세그먼트 페이로드 우선 순위에 관한 정보는 포함될 수 있지만, 컨텐츠를 나타내는 정보는 포함되지 않는다. 또한, 새로운 트랜스코더-판독 가능 헤더가 매체 세그먼트 페이로드를 해독하거나 CCS를 평가하는 키를 갖지 않는 트랜스코더에 의해 기록될 수 있기 때문에, 새로운 트랜스코더-판독 가능 헤더는 매체 세그먼트 페이로드의 컨텐츠를 표시할 수 없다.
새로운 트랜스코더-판독 가능 헤더를 가지고, 가능한 다른 트랜스코딩 및 스케일링이 다른 다운스트림 위치에서 실행될 수 있다. 매체 세그먼트 페이로드 크기 및 위치에 추가하여, 매체 세그먼트 페이로드 우선 순위가 트랜스코더-판독 가능 헤더에 포함될 수 있다. 예를 들면, 웹 페이지 소유자에 의해 폐기 가능하다고 고려된 웹 페이지의 구성 요소를 식별하는 것과 같은 우선 순위 정보가 포함될 수 있다. 대형 데스크탑 컴퓨터보다 더 낮은 디스플레이 능력을 갖는 휴대형 장치로 전송하는 경우에, 복잡한 웹 페이지 내의 대부분의 정보가 손실될 수 있다. 하위 우선 순위 정보를 초기 트랜스코딩에서 제거 가능하게 함으로써, 이러한 소형 장치에 데이터를 전송할 때 유용한 대역폭이 다른 용도를 위해 보존될 수 있다.
본 발명의 실시예는 스트리밍되지 않은 매체 세그먼트를 처리할 수 있다. 도 16b는 블록 형태로 다른 실시예의 프로세스를 도시한다. 여기에서, 저장된 데이터는 암호화 체크섬을 침해하지 않으면서 처리된다. 세그먼트(A, B, C)를 포함하는 더 큰 매체 세그먼트(514)는 저장 매체(521)로부터 획득된다. 도 16b의 예에서, 데이터는 저장 공간을 감소시키기 위해 사실상 압축된다. 이것은 트랜스코딩(519)에 의해 데이터의 세그먼트, 이 경우에는 세그먼트(B)와 그 연관된 CCS(517)를 제거하는 것에 의해 이루어진다. 이러한 트랜스코딩의 결과로 더 작은 매체 세그먼트(522)가 획득된다. 이러한 방식으로 트랜스코딩은 세그먼트(A, C)를 그대로 유지하고, 특히, CCS(A)(516) 및 CCS(C)(518)가 훼손되지 않는다는 것을 유의하라. 이후의 동작이 필요한 경우에, 트랜스코더-판독 가능 헤더(515)는 새로운 트랜스코더 판독 가능 헤더(511)에 의해 대체될 수 있다.
본 발명의 실시예에 의해 제공된 트랜스코딩 기법은 스트리밍된 데이터로 한정되지 않지만, 저장된 데이터로 이용될 수도 있다는 것을 유의하라. 추가적으로, 트랜스코딩 기법은 암호화된 데이터뿐만 아니라 암호화되지 않은 데이터에 대해서도 유용하다. 어느 경우에나, 트랜스코딩은 암호화 체크섬의 훼손없이, 인코딩된 데이터를 판독할 필요없이 실행될 수 있다.
본 실시예에서, 매체 세그먼트는 하나 이상의 세그먼트 및 그 연관된 암호화 체크섬이 통신 매체 세그먼트에 맞춰질 수 있게 하는 임의의 적절한 분할일 수 있다. 적절히 분리된 독자적 디코딩 가능 부분의 일례는 JPEG(Joint Picture Expert Group)에 의해 개발된 압축 표준, 예를 들면 JPEG-2000으로 송신될 수 있는 것과 같은 고도로 상세한 압축 화상의 일부분이다.
여러 예에서, 송신되는 제 1 데이터는 고도로 픽셀화된 화상을 생성하기에 충분한 데이터를 포함한다는 것을 이해할 것이다. 다음에 나중에 송신된 데이터는 화상 디테일을 연속적으로 세분화(refines)한다. 대형 디스플레이 상에 이러한 화상을 표시하는 것은 강화된 디테일의 사용을 가능하게 한다. 그러나, 휴대형 컴퓨터 상의 디스플레이는 제 1 세분화 이후의 화상과, 최종 및 최고 디테일한 세분화 이후의 화상 사이에 차이를 나타내지 못할 것이다. 결과적으로, 수신기가 디테일을 이용하지 못한다면, 로직 트랜스코드(logical transcode)는 스트림으로부터 최고 디테일한 데이터를 제거할 수 있을 것이다. 송신된 데이터의 몇몇 예에서, 단일 패킷은 여러 레벨의 디테일을 포함하는 데이터를 포함할 수 있다. 그러나, 몇몇 더 큰 화상은 모든 필수적 데이터를 전달하기 위해 여러 매체 세그먼트를 요구할 수 있다.
도 17 내지 도 19는 그 인코딩 기법에 관한 지식없이 단계적으로 암호화된 데이터를 스케일링하는 방법에서 실행된 단계를 나타내는 흐름도이다. 흐름도 내에서는 특정 단계가 개시되어 있으나, 이러한 단계는 예시적인 것이다. 다시 말해서, 본 발명의 실시예는 여러 다른 단계 또는 흐름도 내에 언급된 단계의 변형을 실행하는 데 있어서도 적합하다. 흐름도 내의 단계는 제시된 것과는 상이한 순서로 실행될 수 있고, 흐름도 내의 모든 단계가 실행되지는 않는다는 것을 이해할 것이다. 흐름도에 의해 표시된 방법의 전체 또는 일부분은 예를 들면, 컴퓨터 시스템의 컴퓨터 사용 가능 매체 내에 상주하는 컴퓨터 판독 가능 및 컴퓨터 실행 가능 인스트럭션을 이용하여 구현될 수 있다.
도 17은 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 인코딩하는 방법에서 실행된 단계를 도시하는 흐름도이다. 단계(1701)에서, 원하는 스케일 가능 속성을 보유하도록 스케일링된 스케일 가능 데이터의 소정 버전의 단계적으로 암호화된 시퀀스를 생성하기 위해 조합될 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분을 식별하는 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된다. 일실시예에 따르면, 스케일링된 버전의 스케일 가능 데이터의 단계적으로 암호화된 시퀀스는 디코딩 없이 스케일링된다. 단계(1705)에서, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 부분에 대해 계산된다. 단계(1707)에서, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 부분과 연관된다.
도 18은 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 트랜스코딩하는 방법에서 실행된 단계를 도시하는 흐름도이다. 단계(1801)에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 액세스되고, 이 데이터는 원하는 스케일 가능 속성을 보유하도록 스케일링된 버전의 데이터 시퀀스를 생성하기 위해 조합될 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분을 식별한다. 일실시예에 따르면, 스케일링된 버전의 스케일 가능 데이터의 단계적으로 암호화된 시퀀스는 디코딩되지 않고 스케일링된다. 단계(1803)에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 하나 이상의 조합 가능 부분 및 그 연관된 암호화 체크섬은 송신 가능 데이터 시퀀스로 조합된다.
도 19는 본 발명의 일실시예에 따라서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 디코딩하는 방법에서 실행된 단계를 도시하는 흐름도이다. 단계(1901)에서, 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스가 액세스된다. 단계(1903)에서, 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스와 연관된 데이터가 액세스되고, 이 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분이 원하는 스케일 가능 속성을 획득하도록 스케일링되는 방식을 식별한다. 본 실시예에서, 스케일링은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 디코딩하지 않고 이루어진다.
단계(1905)에서, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 조합 가능 부분의 컨텐츠를 인증하기 위해 이용된다. 단계(1907)에서, 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스는 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스와 연관된 데이터에 기초하여 디코딩된다. 이러한 데이터는 인코딩되고 단계적으로 암호화된 스케일 가능 데이터의 조합 가능 부분이 원하는 스케일 가능 속성을 달성하도록 스케일링되는 방식을 식별한다.
실시예에 따르면, 단계적으로 암호화된 스케일 가능 데이터의 적어도 하나의 조합 가능 부분 및 암호화 체크섬은 암호화될 수 있다. 예시적인 실시예에서, 적어도 하나의 조합 가능 부분은 단계적으로 암호화된 스케일 가능 데이터를 구성하는 다른 조합 가능 부분과 독립적으로 해독될 수 있다. 또한, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 각각의 조합 가능 부분에 대해 계산될 수 있다.
실시예에 따르면, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 조합 가능 부분은 상기 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 포함하는 다른 부분과 독립적으로 해독될 수 있다. 본 실시예에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스는 복수의 조합 가능 부분을 포함한다. 또한, 제 1 암호화 체크섬은 상기 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 제 1 조합 가능 부분에 대해 계산될 수 있고, 제 2 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 제 2 조합 가능 부분, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 제 1 조합 가능 부분 및 제 1 암호화 체크섬의 조합에 대해 계산될 수 있다.
실시예에 따르면, 암호화 체크섬은 해시 함수를 이용하여 계산될 수 있다. 또한, 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬과 연관된 정보를 포함할 수 있다. 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 트랜스코딩을 가능하게 한다는 것을 이해할 것이다.
실시예에 따르면, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬은 트랜스코더 판독 가능 헤더와 독립적으로 암호화될 수 있다. 또한, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터에 무관하게 해독될 수 있다. 또한, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬에 대해 독립적으로 판독될 수 있다.
실시예에 따르면, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 중 하나에 기초하여 계산될 수 있다. 암호화 체크섬은 복수의 조합 가능 부분 및 연관된 체크섬에 기초하여 계산될 수 있다. 또한, 암호화 체크섬은 해시 함수를 이용하여 계산될 수 있다. 다른 실시예에서, 암호화 체크섬은 메시지 다이제스트 함수(message digest function)를 이용하여 계산될 수 있다.
실시예에 따르면, 암호화 체크섬은 메시지 인증 코드 함수(message authentication code function)를 이용하여 계산될 수 있다. 다른 실시예에서, 암호화 체크섬은 메시지 인증용 키 해싱 함수(keyed-hashing-for-message-authentication function)를 이용하여 계산될 수 있다. 또 다른 실시예에서, 암호화 체크섬은 디지털 서명 함수를 이용하여 계산될 수 있다.
실시예에 따르면, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬과 무관하게 기록될 수 있다. 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 각각의 조합 가능 부분은 패킷 내에서 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 다른 조합 가능 부분에 무관하게 송신 가능 패킷으로부터 추출될 수 있다는 것을 이해할 것이다.
본 실시예에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬과 연관된 정보를 포함한다. 일실시예에 따르면, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 데이터 패킷의 트랜스코딩을 가능하게 한다.
스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬은 트랜스코더 판독 가능 헤더에 무관하게 암호화될 수 있다는 것을 이해할 것이다. 일실시예에서, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬은 스케일 가능 데이터의 인코딩되고 단계적으로 암호화된 시퀀스와 연관된 데이터에 무관하게 해독될 수 있다. 또한, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 연관된 데이터는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분 및 암호화 체크섬과 무관하게 판독될 수 있다.
요약하자면, 본 발명의 방법은 그 암호화 기법에 대한 지식을 구비하지 않고 스케일 가능 데이터의 단계적 암호화 시퀀스를 스케일링하고 스케일 가능 데이터의 단계적으로 암호화된 시퀀스를 스케일링하는 방법을 제공한다. 이러한 방법은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 스케일링된 버전을 생성하기 위해서 조합될 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 조합 가능 부분을 식별하는 스케일 가능 데이터의 단계적으로 암호화된 시퀀스와 데이터를 연관시키는 것을 포함한다. 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 스케일링된 버전은 원하는 스케일 가능 속성을 보유하도록 스케일링된다. 또한, 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 스케일링된 버전은 디코딩되지 않고 스케일링된다. 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 조합 가능 부분에 대해 계산되고, 암호화 체크섬은 스케일 가능 데이터의 단계적으로 암호화된 시퀀스의 적어도 하나의 조합 가능 부분과 연관된다.
인코더
도 20은 본 발명의 일실시예에 따른 스케일 가능 매체 인코더를 도시하는 블록도이다.
실시예에 따르면, 스케일 가능 매체 인코더(2020)는 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 인코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등과 같은 임의의 장치이다. 휴대형 통신 장치의 예는 포켓 퍼스널 컴퓨터, 랩탑, 디지털 카메라, 비디오 카메라 및 휴대 전화기를 포함하지만 이것으로 한정되지 않는다. 정지형 컴퓨팅 장치의 예는 퍼스널 컴퓨터, 텔레비전 및 서버를 포함하지만 이것으로 한정되지 않는다. 서버는 ASIC 서버일 수 있다. 디지털 화상 캡쳐 장치의 예는 디지털 카메라 및 비디오 카메라를 포함하지만 이것으로 한정되지는 않는다.
실시예에 따르면, 스케일 가능 매체 인코더(2020)는 매체 데이터(2012), 스케일 가능 속성 기준(2014), 및 보호 속성 기준(2016)을 수신한다. 스케일 가능 속성 기준(2014)은 상술된 바와 같이 스케일 가능 매체 인코더(2020)가 다른 장치에 의해 추출될 수 있는 스케일 가능 매체(2052)의 세그먼트를 생성하기 위해 이용할 수 있는 스케일 가능 속성을 열거할 수 있다. 스케일 가능 속성의 예는 상술된 바와 같이 해상도, 비트 레이트, 컬러 등을 포함하지만 이것으로 한정되지는 않는다. 세그먼트를 추출할 수 있는 장치의 예는 변환기(translators) 및 디코더를 포함하지만 이것으로 한정되지 않는다.
또 다른 실시예에서는, 도 20에 도시된 바와 같이, 스케일 가능 매체 인코더(2020)가 매체 데이터(2012)를 수신하도록 구성된 매체 데이터 수신기(2022)를 포함한다. 일실시예에 따르면 매체 데이터(2012)는 JPEG 2000 포맷의 화상 등과 같은 스케일 가능 매체 또는 사진의 스캐닝된 화상 등과 같은 스케일링되지 않은 화상일 수 있다.
스케일 가능 매체 인코더(2020)는 도 20에 도시된 바와 같이, 일실시예에 따라서 매체 데이터 수신기(2022)에 결합된 스케일 가능 매체 생성기(2024)를 더 포함한다. 예를 들면, 일실시예에서, 매체 데이터(2012)가 스케일링되지 않은 화상일 경우에 스케일 가능 매체 생성기(2024)는 스케일 가능 매체(2052)를 생성할 수 있다.
또한 도 20을 참조하면, 스케일 가능 매체 인코더(2020)는 또한 일실시예에서 스케일 가능 매체 생성기(2024)에 결합되고, 스케일 가능 매체(2052)를 출력하는 데 적합한 스케일 가능 매체 출력기(2026)를 포함한다.
도 20에 도시된 바와 같은 스케일 가능 매체 인코더(2020)는 일실시예에 따라서 스케일 가능 속성 기준(2014)을 수신하도록 구성되는 스케일 가능 속성 기준 수신기(2032)를 더 포함한다. 또 다른 실시예에서, 스케일 가능 속성 기준 수신기(2032)는 상술된 바와 같이 변환기 또는 디코더 등과 같은 다른 장치가 스케일 가능 매체(2052)를 추출하여 하나 이상의 스케일 가능 속성에 대한 원하는 결과를 달성하게 하는 세그먼트를 포함할 수 있는 스케일 가능 프로파일 데이터(2054)를 생성하기에 적합한 스케일 가능 프로파일 데이터 생성기(2034)에 결합된다. 또 다른 실시예에서, 스케일 가능 프로파일 데이터 생성기(2034)는 스케일 가능 프로파일 데이터(2054)를 출력하기에 적합한 스케일 가능 프로파일 데이터 출력기(2036)에 결합되어 있다.
또한 도 20을 참조하면, 일실시예에 따른 스케일 가능 매체 인코더(2020)는 상술된 바와 같이 보호 속성 기준(2016)을 수신하도록 구성된 보호 속성 기준 수신기(2042)를 더 포함한다. 또 다른 실시예에 따르면, 보호 속성 기준 수신기(2042)는 상술된 실시예에 따라서 스케일 가능 매체 인코더(2020)에 의해 수신된 보호 속성 기준(2016)에 적어도 부분적으로 기초하여 보호 프로파일 데이터(2056)를 생성할 수 있는 보호 프로파일 데이터 생성기(2044)에 결합된다. 보호 프로파일 데이터 생성기(2044)는 다른 실시예에 따라서 보호 프로파일 데이터(2056)를 출력할 수 있는 보호 프로파일 데이터 출력기(2046)에 결합된다. 또 다른 실시예에서, 스케일 가능 매체(2052)는 상술된 실시예에 따라서 보호 프로파일 데이터(2056)를 이용하여 암호화될 수 있다. 또 다른 실시예에서, 스케일 가능 매체(2052)는 암호화되지 않을 수 있다. 여기에는 적용 가능한 다수의 보호 메커니즘이 존재한다. 예를 들면, 암호화 체크섬은 무결성 검사 또는 인증을 위한 디지털 서명 등에 적용될 수 있다.
일실시예에 따르면, 스케일 가능 속성 기준 수신기(2032) 및/또는 보호 속성 기준 수신기(2042)는 GUI(generalized user interfaces)일 수 있다. 예를 들면, 사용자는 해상도, 비트 레이트 등과 같은 속성을 입력하기 위해 GUI를 이용하여, 상술된 실시예에 따라서 스케일 가능 매체 생성기(2024)가 이러한 속성에 대한 스케일 가능 프로파일 데이터(2054)를 생성하는 방법을 나타낸다. 마찬가지로, 사용자는 데이터 암호화 표준(DES), ECB(Electronic Code Book) 등과 같은 암호화 모드 등의 속성을 입력하기 위해 GUI를 이용하여 보호 프로파일 데이터 생성기(2044)가 상술된 실시예에 따라서 스케일 가능 매체(2052)의 부분이 이러한 속성으로 보호되어야 하거나 보호되는 방식을 나타내는 보호 프로파일 데이터(2056)를 생성하는 방식을 나타낼 수 있다.
실시예에 따르면, 스케일 가능 매체 인코더(2020)에 의해 실행된 처리는 복잡하거나 단순할 수 있다. 예를 들면, 스케일 가능 매체 인코더(2020)의 스케일 가능 매체 생성기(2024)는 상술된 바와 같이 여러 대안적 방식 또는 소수 개의 대안에 의해 스케일링될 수 있는 스케일 가능 매체(2052)를 생성할 수 있다.
매체 데이터(2012), 스케일 가능 속성 기준(2014), 및/또는 보호 속성 기준(2016)은 일실시예에 따라서 네트워크를 이용하여 스케일 가능 매체 인코더(2020)에 통신할 수 있다. 다른 실시예에서, 매체 데이터(2012), 스케일 가능 속성 기준(2014), 및/또는 보호 속성 기준(2016)은 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 직접 액세스 저장 장치(direct access storage device : DASD) 등과 같은 저장 장치로부터 스케일 가능 매체 인코더(2020)에 의해 검색될 수 있다.
도 20에 도시된 바와 같이, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056)는 일실시예에 따르면 네트워크를 통해서 트랜스코더 또는 디코더 등과 같은 다른 장치에 송신될 수 있다. 다른 실시예에 따르면, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056)는 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 직접 액세스 저장 장치(DASD) 등과 같은 저장 장치를 이용하여 트랜스코더 또는 디코더 등과 같은 다른 장치로 송신될 수 있다.
또 다른 실시예에서, 2개 이상의 출력기(2026, 2036, 2046)는 조합될 수 있다. 예를 들면, 스케일 가능 매체 출력기(2052) 및 스케일 가능 프로파일 데이터 출력기(2036)는 하나의 출력기로 조합될 수 있다. 마찬가지로, 스케일 가능 매체 출력기(2026) 및 보호 프로파일 데이터 출력기(2046)는 하나의 출력기로 조합될 수 있다. 이와 다르게 전체 3개의 출력기(2026, 2036, 2046)가 하나의 출력기로 조합될 수 있다.
일실시예에 따르면 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)는 별개의 파일이거나 임의의 조합의 단일 파일로 함께 결합될 수 있다. 예를 들면, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)는 함께 단일 파일을 형성할 수 있다. 제 2 예에서, 스케일 가능 매체(2052) 및 스케일 가능 프로파일 데이터(2054)가 함께 하나의 파일을 형성하는 한편, 보호 프로파일 데이터(2056)는 별개의 파일이 될 수 있다. 제 3 예에서, 스케일 가능 매체(2052) 및 보호 프로파일 데이터(2056)가 함께 하나의 파일을 형성하는 한편, 스케일 가능 프로파일 데이터(2054)는 별개의 파일이 될 수 있다.
도 21은 본 발명의 다른 실시예에 따른 스케일 가능 매체 인코더를 도시하는 블록도이다. 도 21은 보호 속성 기준(2016)을 수신하는 보호 속성 기준 수신기(2042), 보호 프로파일 데이터 생성기(2044) 및 보호 프로파일 데이터(2056)를 출력하는 보호 프로파일 데이터 출력기(2046)를 포함하지 않는다는 점을 제외하고는 도 20에 도시된 스케일 가능 매체 인코더(2020)와 유사한 스케일 가능 매체 인코더(2120)를 도시한다.
일실시예에서, 스케일 가능 매체(2052)를 암호화하는 프로세스는 웹 페이지를 이용하여 실행될 수 있다. 예를 들면, 스케일 가능 매체 인코더(2120)는 보호 속성 기준 수신기(2042), 보호 프로파일 데이터 생성기(2044), 및 보호 프로파일 데이터 출력기(2046)를 포함하지 않기 때문에, 스케일 가능 매체(2052)는 웹 페이지 등과 같이 스케일 가능 매체 인코더(2020) 이외의 몇몇 다른 위치에서 보호 프로파일 데이터(2056)를 이용하여 암호화될 수 있다.
도 22는 본 발명의 다른 실시예에 따른 스케일 가능 매체 인코더를 나타내는 블록도이다. 도 22는 스케일 가능 매체 인코더(2220)가 스케일 가능 속성 기준(2014)을 수신하는 스케일 가능 속성 기준 수신기(2032), 스케일 가능 프로파일 데이터 생성기(2034) 및 스케일 가능 프로파일 데이터(2054)를 출력하는 스케일 가능 프로파일 데이터 출력기(2036)를 포함하지 않는다는 점을 제외하고는 도 20에 도시된 스케일 가능 매체 인코더(2020)와 유사한 스케일 가능 매체 인코더(2220)를 도시한다.
디코더
도 23은 본 발명의 일실시예에 따른 디코더를 도시하는 블록도이다. 일실시예에 따르면, 디코더(2320)는 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 디코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등의 임의의 장치이다.
전형적으로, 사용자는 텔레비전, PDA, DVD 재생기 또는 컴퓨터 모니터 등과 같은 클라이언트 장치와 대화하여, 하나 이상의 화상이 클라이언트 장치 상에 디스플레이되도록 요청한다. 디코더(2320)는 클라이언트 장치(2380)와 통신하거나 그 일부분이 될 수 있다. 사용자가 볼 수 있도록 클라이언트 장치(2380)에 화상을 제공하는 것의 일부로서, 디코더(2320) 및 클라이언트(2380)는 화상을 디스플레이하는 클라이언트(2380)의 능력 및/또는 화상을 바라보는 방법에 대한 사용자의 요구에 대해 통신할 수 있다. 이러한 통신의 일부분으로서, 디코더(2320)는 원하는 스케일 가능 속성(2372)을 요청할 수 있다. 예를 들면, 원하는 스케일 가능 속성(2372)은 클라이언트(2380)가 취급할 수 있는 대역폭 또는 사용자가 화상을 흑백으로 보기 원하는지 컬러로 보기 원하는지 여부를 나타낼 수 있다. 클라이언트(2380)는 원하는 스케일 가능 속성(2374)을 디코더(2320)로 리턴할 수 있다. 클라이언트 장치의 다른 예는 휴대형 통신 장치, 정지형 컴퓨팅 장치 및 디지털 화상 캡쳐 장치를 포함하지만 이것으로 한정되지 않는다.
JPEG 2000 파일 또는 MPEG 파일 등과 같이 스케일 가능 매체를 디코딩 및/또는 해독할 수 없는 여러 레거시 디코더가 존재한다. 일실시예에 따르면, 디코더(2320)는 레거시 장치이다. 스케일 가능 매체 수신기(2330), 스케일 가능 프로파일 데이터 수신기(2340), 보호 프로파일 데이터 수신기(2350), 및 렌더러(2362) 등과 같은 소프트웨어 또는 구성 요소를 레거시 디코더(2320)에 설치함으로써, 상술된 실시예에 따르면 그 레거시 디코더(2320)는 스케일 가능 매체(2052)를 디코딩 및/또는 해독할 수 있게 된다. 예를 들면, 렌더러(2362)는 스케일 가능 매체(2052)를 디코딩 및/또는 해독하여 클라이언트(2380)가 볼 수 있도록 렌더링된 매체 데이터(2376)를 제공한다.
도 23에 도시된 바와 같이, 스케일 가능 매체 수신기(2330)는 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)를 수신하도록 구성된다. 일실시예에 따르면, 스케일 가능 매체 수신기(2330)는 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)를 수신하도록 구성된 수신기(2330, 2340, 2350)를 포함한다. 수신기(2330, 2340, 2350)는 다른 실시예에 따르면 렌더러(2362)에 결합된다. 상술된 실시예에 따르면, 렌더러(2362)는 스케일 가능 프로파일 데이터(2054)에 기초하여 스케일 가능 매체(2052)의 부분을 추출함으로써 스케일 가능 프로파일 데이터(2054)를 이용하여 스케일 가능 매체(2052)를 디코딩 및/또는 보호 프로파일 데이터(2056)를 이용하여 스케일 가능 매체(2052)를 해독한다.
또 다른 실시예에서, 2개 이상의 수신기(2330, 2340, 2350)는 조합될 수 있다. 예를 들면, 스케일 가능 매체 수신기(2330) 및 스케일 가능 프로파일 데이터 수신기(2340)는 하나의 수신기로 조합될 수 있다. 마찬가지로, 스케일 가능 매체 수신기(2330) 및 보호 프로파일 데이터 수신기(2350)는 하나의 수신기로 조합될 수 있다. 이와 다르게, 3개의 수신기 모두(2330, 2340, 2350)가 하나의 수신기로 조합될 수 있다.
스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)는 일실시예에 따르면 별개의 파일이거나 임의의 조합의 단일 파일로 조합될 수 있다. 예를 들면, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)는 함께 단일 파일을 이룰 수 있다. 제 2 예에서, 스케일 가능 매체(2052) 및 스케일 가능 프로파일 데이터(2054)는 함께 단일 파일을 형성하는 한편, 보호 프로파일 데이터(2056)는 별개의 파일이 될 수 있다. 제 3 예에서, 스케일 가능 매체(2052) 및 보호 프로파일 데이터(2056)는 함께 하나의 파일을 형성하는 한편, 스케일 가능 프로파일 데이터(2054)는 별개의 파일이 될 수 있다.
도 24는 본 발명의 다른 실시예에 따른 디코더를 도시하는 블록도이다. 도 24는 그 디코더(2420)가 보호 프로파일 데이터(2056)를 수신하는 보호 프로파일 데이터 수신기(2350)를 포함하지 않는다는 점을 제외하고는 도 23에 도시된 디코더(2320)와 유사한 디코더(2420)를 도시한다. 그러므로 일실시예에 따르면, 도 23에 도시된 렌더러(2362)와는 다르게, 도 24의 렌더러(2462)는 보호 프로파일 데이터(2350)로 스케일 가능 매체(2052)를 해독하지 않는다. 그러나, 또 다른 실시예에서, 렌더러(2462)는 다른 기법을 이용하여 스케일 가능 매체(2052)를 해독할 수 있다.
도 25는 본 발명의 또 다른 실시예에 따른 디코더를 도시하는 블록도이다. 도 25는 스케일 가능 프로파일 데이터(2054)를 수신하는 스케일 가능 프로파일 데이터 수신기를 포함하지 않는 디코더(2520)를 도시한다. 그러므로 일실시예에 따르면, 도 25 내의 렌더러(2562)는 스케일 가능 프로파일 데이터(2054)를 필요로 하지 않으면서 스케일 가능 매체(2052)를 파싱하는 로직을 포함할 수 있다. 예를 들어, 스케일 가능 매체(2052)가 JPEG 2000 파일이라고 가정하면, 렌더러(2562)는 스케일 가능 매체(2052)에 대한 컨텐츠의 테이블을 판독하여, 스케일 가능 매체(2052)를 해독하기 위해 스케일 가능 매체(2052)의 어떤 세그먼트가 보호 프로파일 데이터(2056)와 연관된 암호화 매핑에서 참조되는 세그먼트에 대응하는지를 판정할 수 있다. 그러나, 또 다른 실시예에서, 렌더러(2462)는 다른 기법을 이용하여 스케일 가능 매체(2052)를 해독할 수 있다. 또 다른 실시예에서, 렌더러(2462)는 스케일 가능 매체(2052)와 연관된 컨텐츠의 테이블을 완전히 인식하지 않을 수 있지만, 컨텐츠의 테이블의 소정 측면을 파싱하기 위한 최소량의 로직만을 가질 수 있다.
실시예에 따르면, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056) 중 어느 하나는 네트워크를 통해 디코더(2320, 2420, 2520)에 통신할 수 있다. 다른 실시예에 따르면, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056) 중 어느 하나는 저장 장치로부터 디코더(2320, 2420, 2520)에 의해 검색될 수 있다. 저장 장치는 디코더(2320, 2420, 2520)의 일부분일 수 있다.
실시예에 따르면, 디코더(2320, 2420, 2520)는 네트워크를 통해 클라이언트(2380)에 렌더링된 매체 데이터(2376)를 송신할 수 있다. 또 다른 실시예에서, 렌더링된 매체 데이터(2376)는 클라이언트(2380)에 의해 후속적으로 검색되는 저장 장치에 저장될 수 있다. 저장 장치는 디코더(2320, 2420, 2520)의 일부분일 수 있다.
이 단락에서 디코더(2320, 2420, 2520)의 논의는 디코더(2320, 2420, 2520)가 클라이언트(2380)에 화상을 전달하기 전에 인코더, 트랜스코더 및 가능한 다른 디코더를 포함하는 장치의 체인의 맨 끝에 존재하는 것으로 가정하였다. 일실시예에 따르면, 렌더러(2362, 2462, 2562)는 스케일 가능 매체(2052)를 압축 해제하고 클라이언트(2380)에게 화상을 제공하기 위해서 스케일 가능 매체(2052)와 연관된 컨텐츠의 테이블을 파싱하기에 충분한 로직을 구비할 수 있다.
트랜스코더
JPEG 2000 파일 또는 MPEG 파일 등과 같이 스케일 가능 매체를 트랜스코딩할 수 없는 레거시 장치가 존재한다. 이 단락에서, 여러 소프트웨어, 하드웨어 및/또는 마이크로코드 성분으로 레거시 장치를 업그레이드하여 레거시 장치가 스케일 가능 매체를 트랜스코딩할 수 있게 하는 여러 방법이 논의되어야 한다.
도 26은 본 발명의 일실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 트랜스코딩 유닛(2620)은 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 트랜스코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등의 임의의 장치일 수 있다. 이전에 설명된 디코더와 마찬가지로, 트랜스코딩 유닛(2620)은 일실시예에 따르면 장치(2670)로부터 원하는 스케일 가능 속성(2372)을 요청할 수 있다. 이러한 경우에, 장치(2670)는 원하는 스케일 가능 속성(2374)을 제공할 수 있다. 일실시예에 따르면, 장치(2670)는 다른 것들 중에서도 다른 트랜스코딩 유닛, 디코더, 또는 클라이언트 장치일 수 있다.
도 26에 도시된 바와 같이, 일실시예에 따르면 트랜스코딩 유닛(2620)은 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)를 수신한다. 다른 실시예에 따르면, 트랜스코딩 유닛(2620)은 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)에 대한 동작을 실행하여 새로운 스케일 가능 매체(2662), 새로운 스케일 가능 매체 데이터(2664), 및 새로운 보호 프로파일 데이터(2666)를 생성한다. 또한, 또 다른 실시예에 따르면 트랜스코딩 유닛(2620)은 상술된 실시예에 따라서 스케일 가능 프로파일 데이터(2054)에 기초하여 스케일 가능 매체(2052)로부터 세그먼트를 추출하고, 이러한 세그먼트를 결합하여 인코더(2650)에 통신하는 트랜스코딩된 매체(2640)를 생성할 수 있는 트랜스코더(2630)를 포함한다.
일실시예에 따르면 인코더(2650)는 스케일 가능 매체이거나 비트 맵 등과 같이 스케일링되지 않은 데이터일 수 있는 트랜스코딩된 매체(2640)를 수신한다. 일실시예에 따르면 인코더(2650)는 스케일링되지 않은 비트 맵을 획득하여 새로운 스케일 가능 매체(2662)를 생성할 수 있는 JPEG 2000 또는 MPEG 인코더 등과 같은 스케일 가능 매체 인코더일 수 있다. 다른 실시예에서, 인코더(2650)는 오로지 소정 속성에 대한 스케일 가능 매체(2662)를 생성하기에 충분한 로직을 구비할 수 있다.
또한, 도 26에 도시된 바와 같이, 일실시예에 따르면 인코더(2650)는 새로운 스케일 가능 프로파일 데이터(2664) 및 새로운 보호 프로파일 데이터(2666)를 생성하는 스케일 가능 프로파일 데이터 생성기(2654) 및 보호 프로파일 데이터 생성기(2656)를 포함한다. 일실시예에서, 인코더(2650)는 트랜스코딩된 매체(2640)를 분석함으로써 스케일 가능 프로파일 데이터(2664) 및 보호 프로파일 데이터(2666)를 생성한다. 다른 실시예에서, 인코더(2650)는 상술된 바와 같이 스케일 가능 속성 기준(2014) 및/또는 보호 속성 기준(2016) 등과 같은 입력을 수신하여, 스케일 가능 프로파일 데이터(2664) 및 보호 프로파일 데이터(2666)를 생성한다.
또 다른 실시예에서, 인코더(2650)는 새로운 스케일 가능 프로파일 데이터(2054) 내에 표시된 세그먼트와 연관된 오프셋을 변경하는 것에 의해 새로운 스케일 가능 프로파일 데이터(2664)를 생성하여, 상술된 실시예에 따라서 소정의 세그먼트가 스케일 가능 매체(2052)로부터 추출되었다는 것을 반영하기 위해 새로운 스케일 가능 프로파일 데이터(2664)를 생성한다. 또 다른 실시예에서, 인코더(2650)는 어떤 트랜스코딩 동작이 실행되었는지, 예를 들면, 상술된 실시예에 따라서 어떤 세그먼트가 추출되었는지를 표시하는 것에 의해 새로운 스케일 가능 프로파일 데이터(2664)를 생성한다.
마찬가지로, 다른 실시예에 따르면, 인코더(2650)는 보호 프로파일 데이터(2666)를 생성하기 위해서 보호 프로파일 데이터(2056)와 연관된 암호화 매핑을 수정하는 것에 의해 새로운 보호 프로파일 데이터(2666)를 생성할 수 있다. 일실시예에서, 암호화 매핑은 상술된 실시예에 따라서 스케일 가능 프로파일 데이터(2054)에 대해 스케일 가능 매체(2052)로부터 추출된 세그먼트와 연관된 오프셋을 변경하는 것에 의해 수정될 수 있다. 다른 실시예에서, 암호화 매핑은 상술된 실시예에 따라서 어떤 트랜스코딩 동작이 스케일 가능 매체(2052)에 실행되었는지를 표시함으로써 수정될 수 있다.
도 27은 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 트랜스코딩 유닛(2720)은 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 트랜스코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등과 같은 임의의 장치일 수 있다.
도 27은 스케일 가능 프로파일 데이터(2054)를 수신하는 스케일 가능 프로파일 데이터 수신기를 포함하지 않는 트랜스코딩 유닛(2720)을 도시한다. 그러므로 일실시예에 따르면, 도 27의 트랜스코더(2730)는 스케일 가능 프로파일 데이터(2054)를 필요로 하지 않으면서 스케일 가능 매체(2052)를 파싱하는 로직을 포함할 수 있다. 예를 들면, 스케일 가능 매체(2052)가 JPEG 2000 파일이라고 가정하면, 트랜스코더(2730)는 스케일 가능 매체(2052)에 대한 컨텐츠의 테이블을 판독하여 스케일 가능 매체(2052)를 트랜스코딩하고, 트랜스코딩된 매체(2640)를 생성하기 위해 보호 프로파일 데이터(2056)와 연관된 암호화 매핑 내에서 참조된 세그먼트에 어떤 스케일 가능 매체(2052)의 세그먼트가 대응하는지를 판독할 수 있다. 트랜스코더(2730)는 컨텐츠 테이블의 소정 특성을 파싱하기 위한 최소량의 로직만을 구비할 수 있다.
트랜스코딩 유닛(2720)은 일실시예에 따르면, 스케일 가능 매체 또는 비트 맵 등과 같은 스케일링되지 않은 데이터일 수 있는 트랜스코딩된 매체(2640)를 수신하는 인코더(2750)를 더 포함한다. 인코더(2750)는 일실시예에 따르면 스케일링되지 않은 비트 맵을 획득하여 새로운 스케일 가능 매체(2662)를 생성할 수 있는 JPEG 2000 또는 MPEG 인코더 등과 같은 스케일 가능 매체 인코더일 수 있다. 다른 실시예에서, 인코더(2750)는 오로지 소정 속성에 대한 스케일 가능 매체(2662)를 생성하기에 충분한 로직만을 구비할 수 있다.
도 27에 도시된 바와 같이, 인코더(2750)는 일실시예에 따라서 새로운 보호 프로파일 데이터(2666)를 생성하는 보호 프로파일 데이터 생성기(2656)를 포함한다. 일실시예에서, 보호 프로파일 데이터 생성기(2656)는 트랜스코딩된 매체(2640)를 분석함으로써 보호 프로파일 데이터(2666)를 생성한다. 다른 실시예에서, 보호 프로파일 데이터 생성기(2656)는 상술된 바와 같이 보호 속성 기준(2016) 등과 같은 입력을 수신하여 보호 프로파일 데이터(2666)를 생성할 수 있다.
도 28은 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 트랜스코딩 유닛(2820)은 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 트랜스코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등과 같은 임의의 장치일 수 있다.
일실시예에 따르면, 전형적으로 트랜스코딩 유닛이 트랜스코딩 유닛에게 수신된 스케일 가능 매체 데이터(2052) 등의 매체 데이터를 해독하지 않기 때문에, 트랜스코딩 유닛은 보호 프로파일 데이터(2656)를 필요로 하지 않는다. 예를 들면, 도 28은 트랜스코딩 유닛(2820)이 보호 프로파일 데이터 수신기(2626)를 포함하지 않는다는 것을 제외하고는 도 26에 도시된 트랜스코딩 유닛(2620)과 유사한 트랜스코딩 유닛(2820)을 도시한다. 그러므로 일실시예에 따르면, 도 28에 도시된 트랜스코더(2830)는 보호 프로파일 데이터(2056)를 파싱할 로직을 필요로 하지 않는다.
트랜스코딩 유닛(2820)은 일실시예에 따르면, 스케일 가능 매체 또는 비트 맵 등과 같은 스케일링되지 않은 데이터일 수 있는 트랜스코딩된 매체(2640)를 수신하는 인코더(2850)를 더 포함한다. 인코더(2850)는 일실시예에 따라서 스케일링되지 않은 비트 맵을 획득하여 새로운 스케일 가능 매체(2662)를 생성할 수 있는 JPEG 2000 또는 MPEG 인코더 등과 같은 스케일 가능 매체 인코더일 수 있다. 다른 실시예에서, 인코더(2850)는 오로지 소정 속성에 대해 스케일 가능 매체(2662)를 생성하기에 충분한 로직만을 가질 수 있다.
인코더(2850)는 일실시예에 따라서 새로운 스케일 가능 프로파일 데이터(2664)를 생성하는 스케일 가능 프로파일 데이터 생성기(2654)를 포함한다. 일실시예에서, 스케일 가능 프로파일 데이터 생성기(2654)는 트랜스코딩된 매체(2640)를 분석함으로써 스케일 가능 프로파일 데이터(2664)를 생성한다. 다른 실시예에서, 스케일 가능 프로파일 데이터 생성기(2654)는 상술된 바와 같이 스케일 가능 속성 기준(2014) 등과 같은 입력을 수신하여 스케일 가능 프로파일 데이터(2664)를 생성할 수 있다.
도 29는 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 트랜스코딩 유닛(2920)은 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 트랜스코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등의 임의의 장치일 수 있다. 트랜스코딩 유닛(2620)과 마찬가지로, 트랜스코딩 유닛은 일실시예에 따르면 각각의 수신기(2622, 2624, 2626)를 가지고 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)를 수신한다. 추가 트랜스코딩 유닛(2920)은 다른 실시예에 따르면 제각기의 출력기(2942, 2944, 2946)를 가지고 스케일 가능 매체(2662), 스케일 가능 프로파일 데이터(2664), 및 보호 프로파일 데이터(2666)를 출력한다.
도 29에 도시된 바와 같이, 일실시예에 따르면, 트랜스코딩 유닛(2920)은 상술된 실시예에 따라서 스케일 가능 프로파일 데이터(2054)에 기초하여 스케일 가능 매체(2052)로부터 세그먼트를 추출하여 새로운 스케일 가능 매체(2662)를 생성하는 트랜스코더(2930)를 포함한다. 또한, 다른 실시예에 따르면, 트랜스코더(2930)는 스케일 가능 프로파일 데이터(2054)를 처리하여 새로운 스케일 가능 프로파일 데이터(2664)를 생성한다.
일실시예에서, 트랜스코더(2930)는 새로운 스케일 가능 프로파일 데이터(2054) 내에 표시된 세그먼트와 연관된 오프셋을 변경함으로써 새로운 스케일 가능 프로파일 데이터(2664)를 생성하여, 상술된 실시예에 따라 스케일 가능 매체(2052)로부터 소정의 세그먼트가 추출되었다는 것을 반영하기 위해 스케일 가능 프로파일 데이터(2664)를 생성한다. 다른 실시예에서, 트랜스코더(2930)는 상술된 실시예에 따라서 어떤 트랜스코딩 동작이 실행되었는지, 예를 들면, 어떤 세그먼트가 스케일 가능 매체(2052)로부터 추출되었는지를 표시하는 것에 의해 새로운 스케일 가능 프로파일 데이터(2664)를 생성한다.
트랜스코더(2930)는 보호 프로파일 데이터(2666)를 생성하기 위해 보호 프로파일 데이터(2056)와 연관된 암호화 매핑을 수정함으로써 새로운 보호 프로파일 데이터(2666)를 생성할 수 있다. 일실시예에서, 암호화 매핑은 상술된 실시예에 따라서 스케일 가능 프로파일 데이터(2054)에 기초하여 스케일 가능 매체(2052)로부터 추출된 세그먼트와 연관된 오프셋을 변경함으로써 수정될 수 있다. 다른 실시예에서, 암호화 매핑은 상술된 실시예에 따라서 어떤 트랜스코딩 동작이 실행되었는지를 표시하는 것에 의해 수정될 수 있다.
도 30은 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 트랜스코딩 유닛(3020)은 JPEG 2000 또는 MPEG 등과 같은 임의의 타입의 스케일 가능 매체를 트랜스코딩할 수 있는 휴대형 통신 장치, 정지형 컴퓨팅 장치, 또는 디지털 화상 캡쳐 장치 등의 임의의 장치일 수 있다.
도 30은 스케일 가능 프로파일 데이터(2054)를 수신하는 스케일 가능 프로파일 데이터 수신기를 포함하지 않는 트랜스코딩 유닛(3020)을 도시한다. 그러므로, 일실시예에 따르면, 도 30의 트랜스코더(3030)는 스케일 가능 프로파일 데이터(2054)를 필요로 하지 않으면서 스케일 가능 매체(2052)를 파싱하는 로직을 포함할 수 있다. 예를 들어, 스케일 가능 매체(2052)가 JPEG 2000 파일이라고 가정하면, 트랜스코더(3030)는 스케일 가능 매체(2052)에 대한 컨텐츠 테이블을 판독하여 상술된 바와 같이 어떤 스케일 가능 매체(2052)의 세그먼트가 암호화 매핑을 수정하기 위해 보호 프로파일 데이터(2056)와 연관된 암호화 매핑에서 참조된 세그먼트에 대응하는지를 판정할 수 있다. 또 다른 실시예에서, 트랜스코더(3030)는 스케일 가능 매체(2052)와 연관된 컨텐츠 테이블을 완전히 인식하지 않지만, 오로지 컨텐츠 테이블의 소정 특성을 파싱하기 위한 최소량의 로직만을 가질 수 있다.
도 31은 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 도 31은 트랜스코딩 유닛(3120)이 보호 프로파일 데이터 수신기(2626)를 포함하지 않는다는 것을 제외하고는 도 29에 도시된 트랜스코딩 유닛(2920)과 유사한 트랜스코딩 유닛(3120)을 도시한다. 그러므로 일실시예에 따른, 도 28에 도시된 트랜스코더(2830)는 상술된 실시예에 따라서 보호 프로파일 데이터를 파싱하거나 보호 프로파일 데이터의 암호화 매핑을 수정하기 위한 로직을 필요로 하지 않는다.
도 32는 본 발명의 다른 실시예에 따른 트랜스코딩 유닛을 도시하는 블록도이다. 도 32는 트랜스코딩 유닛(3220)이 보호 수정자(3232)를 갖는 트랜스코더(3230)를 포함한다는 것을 제외하고는 도 29에 도시된 트랜스코딩 유닛(2920)과 유사한 트랜스코딩 유닛(3220)을 도시한다. 일실시예에 따르면, 보호 수정자(3232)는 상술된 실시예에 따라서 보호를 수정하거나 보호를 추가할 수 있다. 도 32는 단지 다른 실시예에 따른 보호 수정자(3232)만을 도시하였으나, 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)은 또한 보호 수정자를 포함할 수 있다.
또 다른 실시예에서, 스케일 가능 속성 기준(2014) 및/또는 보호 속성 기준(2016) 등과 같은 입력은 인코더(2650, 2750, 2850)(도 26 내지 도 28)에 의해 수신되어 스케일 가능 프로파일 데이터(2664) 및/또는 보호 프로파일 데이터(2666)를 생성할 수 있다.
일실시예에 따르면, 스케일 가능 프로파일 데이터(2054) 및/또는 보호 프로파일 데이터(2056)는 암호화될 수 있는데, 이 경우에 데이터(2054, 2056)를 수신하는 어떤 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)도 데이터(2054, 2056)를 해독하는 키를 필요로 할 것이다.
JPEG 2000 파일 또는 MPEG 파일 등과 같은 스케일 가능 매체를 트랜스코딩할 수 없는 레거시 트랜스코더가 존재한다. 일실시예에 따르면, 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)은 레거시 장치이다. 수신기(2622, 2624, 2626), 트랜스코더(2630, 2730, 2830, 2930, 3030, 3130, 3230), 인코더(2650, 2750, 2850), 및 출력기(2942, 2944, 2946) 등과 같은 소프트웨어, 하드웨어 및/또는 마이크로코드 성분을 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)에 설치함으로써, 상술된 실시예에 따르면 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)은 스케일 가능 매체(2052)를 트랜스코딩할 수 있게 될 것이다.
일실시예에 따르면, 스케일 가능 매체(2052)는 암호화된다. 예를 들면, 스케일 가능 프로파일 데이터(2054)는 상술된 실시예에 따라서 트랜스코더(2630, 2830, 2930, 3130, 3230)(도 26, 도 28, 도 29, 도 31, 도 32)가 스케일 가능 매체(2052)로부터 세그먼트를 추출할 수 있게 한다. 이를 위하여, 트랜스코더(2630, 2830, 2930, 3130, 3230)는 스케일 가능 매체(2052)를 암호 해제하기 위한 키를 수신할 수 있다. 다른 실시예에 따르면, 스케일 가능 매체(2052)는 암호화되지 않는다.
스케일 가능 매체 데이터(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056)는 일실시예에 따르면, 인코더 또는 다른 트랜스코더 등과 같은 다른 장치로부터 네트워크를 이용하여 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)에 통신할 수 있다. 다른 실시예에서, 스케일 가능 매체 데이터(2052), 스케일 가능 프로파일 데이터(2054), 및/또는 보호 프로파일 데이터(2056)는 저장 장치에서 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)에 의해 검색될 수 있다. 또 다른 실시예에서, 저장 장치는 각 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)의 일부분이 될 수 있다
스케일 가능 매체(2662), 스케일 가능 프로파일 데이터(2664), 및/또는 보호 프로파일 데이터(2666)(도 26 내지 도 32)는 일실시예에 따르면 네트워크를 이용하여 다른 트랜스코더 또는 디코더 등과 같은 다른 장치에 전송될 수 있다.
다른 실시예에 따르면, 스케일 가능 매체(2662), 스케일 가능 프로파일 데이터(2664), 및/또는 보호 프로파일 데이터(2666)는 저장 장치에 저장될 수 있는데, 이 저장 장치는 트랜스코더 또는 디코더 등과 같은 다른 장치가 그 데이터를 검색할 수 있게 한다. 또 다른 실시예에서, 저장 장치는 각 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)의 일부분이 될 수 있다.
또 다른 실시예에서, 2개 이상의 수신기(2622, 2624, 2626)(도 26 내지 도 32)는 하나의 수신기로 조합될 수 있다. 예를 들면, 스케일 가능 매체 수신기(2622) 및 스케일 가능 프로파일 데이터 수신기(2624)는 하나의 수신기로 조합될 수 있다. 마찬가지로, 스케일 가능 매체 수신기(2622) 및 보호 프로파일 데이터 수신기(2626)는 하나의 수신기로 조합될 수 있다. 이와 다르게 전체 3개의 수신기(2622, 2624, 2626)가 하나의 수신기로 조합될 수 있다.
또 다른 실시예에서, 2개 이상의 출력기(2942, 2944, 2946)(도 29, 도 30, 도 31, 도 32)는 하나의 출력기로 조합될 수 있다. 예를 들면, 스케일 가능 매체 출력기(2942) 및 스케일 가능 프로파일 데이터 출력기(2944)는 하나의 출력기로 조합될 수 있다. 마찬가지로, 스케일 가능 매체 출력기(2942) 및 보호 프로파일 데이터 출력기(2946)는 하나의 출력기로 조합될 수 있다. 이와 다르게, 전체 3개의 출력기(2942, 2944, 2946)가 하나의 출력기로 조합될 수 있다.
또 다른 실시예에서, 생성기(2654, 2656)(도 29, 도 30, 도 31, 도 32)는 하나의 생성기로 조합될 수 있다.
상술된 바와 같이, 스케일 가능 매체(2052), 스케일 가능 프로파일 데이터(2054), 및 보호 프로파일 데이터(2056)(도 26 내지 도 32)는 일실시예에 따르면, 별개의 파일로 존재하거나, 임의의 조합의 단일 파일로 함께 조합될 수 있다.
다른 실시예에 따르면, 스케일 가능 매체(2052)의 보안을 유지하기 위해서, 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)은 스케일 가능 매체(2052)를 암호화하는 데 이용되었던 키를 수신하지 않는다. 이러한 경우에, 오로지 디코더(2320, 2420, 2520)만이 스케일 가능 매체(2052)를 해독하기 위한 키를 수신할 것이다.
인코더(2020, 2120, 2220)(도 20 내지 도 22) 및 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32)은 일실시예에 따르면 단일 장치 내에 존재할 수 있다. 인코더(2020, 2120, 2220)(도 20 내지 도 22) 및 디코더(2320, 2420, 2520)(도 23 내지 도 25)는 다른 실시예에 따르면 단일 장치 내에 존재할 수 있다. 또 다른 실시예에서, 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32) 및 디코더(2320, 2420, 2520)(도 23 내지 도 25)는 단일 장치 내에 존재할 수 있다. 인코더(2020, 2120, 2220)(도 20 내지 도 22), 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220)(도 26 내지 도 32), 및 디코더(2320, 2420, 2520)(도 23 내지 도 25)는 그 전체 3개가 단일 장치 내에 존재할 수 있다.
도 26 내지 도 32에 도시된 인코더(2020, 2120, 2220), 트랜스코딩 유닛(2620, 2720, 2820, 2920, 3020, 3120, 3220), 및 디코더(2320, 2420, 2520)와 연관된 기능은 이동될 수 있고, 당업자라면 이해할 수 있는 여러 방식으로 조합될 수 있다.
본 발명의 실시예는 위와 같이 설명되었다. 본 발명은 특정 실시예로 설명되었으나, 본 발명은 이러한 실시예로 한정되는 것으로 파악되어서는 안되고, 이하의 청구항에 따라서 파악되어야 할 것이다.

Claims (10)

  1. 데이터를 스케일링하기 위해 장치에 의해 이용되는 방법(60)으로서,
    상기 데이터를 인코딩하기 위해 이용된 인코딩 기법에 따라서 조직되는 인코딩된 데이터의 시퀀스를 액세스하는 단계(61)와,
    상기 인코딩된 데이터가 스케일링되는 방식을 식별하는 스케일 가능 속성의 값을 결정하는 단계(62)와,
    상기 스케일 가능 속성과 연관된 상기 인코딩된 데이터의 세그먼트에 대한 참조-상기 참조는 상기 인코딩 기법의 체계(syntax)를 넘어서는 것임-를 포함하는 정보를 액세스하는 단계(63)와,
    상기 정보를 사용하여 상기 세그먼트를 상기 인코딩된 데이터 내에 배치하는 단계(64) - 상기 세그먼트는 상기 장치에 의해 상기 인코딩 기법에 대한 지식없이도 확인됨 - 와,
    상기 세그먼트를 이용하여 상기 인코딩된 데이터의 스케일링된 버전을 생성하는 단계(65)
    를 포함하는 데이터 스케일링 방법.
  2. 제 1 항에 있어서,
    상기 인코딩된 데이터의 상기 스케일링된 버전을 제 2 장치에 전달하는 단 계(66)
    를 더 포함하는 데이터 스케일링 방법.
  3. 제 1 항에 있어서,
    상기 인코딩된 데이터의 상기 스케일링된 버전을 저장하는 단계(67)와,
    상기 스케일링된 버전 내의 세그먼트와, 상기 스케일링된 버전의 인코딩된 데이터가 후속 스케일링 동작에서 스케일링될 방식을 지정하는 스케일 가능 속성의 선택된 값을 연관시키는 단계(67) - 상기 연관 단계는 상기 인코딩 기법에 무관하고, 다른 장치가 상기 인코딩 기법에 관한 지식을 요구하지 않으면서 상기 스케일링된 버전 내에서 상기 세그먼트의 위치를 확인할 수 있게 하고, 상기 스케일링된 버전을 스케일링할 수 있게 함 - 와,
    상기 스케일링된 버전의 상기 세그먼트 및 상기 스케일 가능 속성을 인덱싱하는 정보를 저장하는 단계를 포함하는 단계(67)
    를 더 포함하는 데이터 스케일링 방법.
  4. 제 1 항에 있어서,
    상기 정보는 상기 인코딩된 데이터의 시퀀스와 함께 저장되는
    데이터 스케일링 방법.
  5. 제 1 항에 있어서,
    상기 정보는 상기 인코딩된 데이터의 시퀀스와 별도로 저장되는
    데이터 스케일링 방법.
  6. 제 1 항에 있어서,
    상기 정보는 한 세그먼트에 대해서, 그 세그먼트가 상기 스케일링된 버전에 포함되지 않을 경우에 발생할 것으로 예상되는 왜곡의 양을 나타내는 정보를 더 포함하는
    데이터 스케일링 방법.
  7. 제 1 항에 있어서,
    상기 인코딩 기법은 상기 JPEG2000 표준에 실질적으로 부합되는
    데이터 스케일링 방법.
  8. 제 1 항에 있어서,
    상기 인코딩된 데이터의 적어도 일부분은 암호화되는
    데이터 스케일링 방법.
  9. 제 1 항에 있어서,
    상기 데이터는 디지털 이미지 데이터, 대화 기반의 데이터, 오디오 기반의 데이터, 비디오 기반의 데이터, 웹 페이지 기반의 데이터, 그래픽 데이터, 텍스트 기반의 데이터로 이루어진 그룹에서 선택되는
    데이터 스케일링 방법.
  10. 데이터 처리 방법(70)으로서,
    인코딩 기법을 이용하여 데이터를 인코딩하는 단계(71)와,
    인코딩된 데이터를 저장하는 파일 내에서 세그먼트의 위치를 식별하는 단계(72)와,
    상기 세그먼트와, 인코딩된 데이터가 후속 스케일링 동작에서 스케일링될 방식을 지정하는 스케일 가능 속성의 선택된 값을 인덱싱하는 단계(73)-상기 인덱싱 단계는 상기 인코딩 기법에 무관하고, 장치가 상기 인코딩 기법에 관한 지식을 요구하지 않으면서 상기 세그먼트의 위치를 확인할 수 있게 하고, 인코딩된 데이터를 스케일링할 수 있게 함-와,
    상기 세그먼트 및 상기 스케일 가능 속성의 선택된 값의 인덱스를 포함하는 정보를 저장하는 단계(74)
    를 포함하는 데이터 처리 방법.
KR1020067016959A 2004-02-13 2005-02-11 데이터 스케일링 방법 및 데이터 처리 방법 KR100805604B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/779,120 2004-02-13
US10/779,120 US7075460B2 (en) 2004-02-13 2004-02-13 Methods for scaling encoded data without requiring knowledge of the encoding scheme

Publications (2)

Publication Number Publication Date
KR20060116025A true KR20060116025A (ko) 2006-11-13
KR100805604B1 KR100805604B1 (ko) 2008-02-20

Family

ID=34838316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016959A KR100805604B1 (ko) 2004-02-13 2005-02-11 데이터 스케일링 방법 및 데이터 처리 방법

Country Status (4)

Country Link
US (2) US7075460B2 (ko)
EP (1) EP1714492A1 (ko)
KR (1) KR100805604B1 (ko)
WO (1) WO2005081537A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168287A1 (en) * 2003-07-16 2007-07-19 Digital Networks North America, Inc. Method and apparatus for distributing media in a pay per play architecture with remote playback
JP2005117447A (ja) * 2003-10-09 2005-04-28 Nec Corp 動画記録装置、動画記録方法および動画記録プログラム
US7504968B2 (en) * 2004-02-13 2009-03-17 Hewlett-Packard Development Company, L.P. Media data decoding device
DE102005001287A1 (de) * 2005-01-11 2006-07-20 Siemens Ag Verfahren und Vorrichtung zur Verarbeitung von skalierbaren Daten
US7916961B2 (en) * 2005-09-06 2011-03-29 Megachips Corporation Compression encoder, compression encoding method and program
JP4785687B2 (ja) * 2006-09-15 2011-10-05 キヤノン株式会社 映像制御装置及びその方法
US8120515B2 (en) * 2006-09-29 2012-02-21 Agiledelta, Inc. Knowledge based encoding of data with multiplexing to facilitate compression
US20080101409A1 (en) * 2006-10-26 2008-05-01 Hewlett-Packard Development Company Lp Packetization
US20090049236A1 (en) * 2007-08-15 2009-02-19 Hitachi, Ltd. System and method for data protection management for network storage
KR101445603B1 (ko) * 2007-08-27 2014-09-29 삼성전자주식회사 디스플레이 장치의 화면 크기에 기초한 적응적 영상 처리장치 및 영상 스케일링 방법
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR20110105710A (ko) * 2010-03-19 2011-09-27 삼성전자주식회사 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치
WO2013090120A1 (en) 2011-12-15 2013-06-20 Dolby Laboratories Licensing Corporation Backwards-compatible delivery of digital cinema content with extended dynamic range
US9197888B2 (en) 2012-03-13 2015-11-24 Dolby Laboratories Licensing Corporation Overlapped rate control for video splicing applications
WO2014056546A1 (en) * 2012-10-12 2014-04-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. File sytem, computer and method
US9564136B2 (en) * 2014-03-06 2017-02-07 Dts, Inc. Post-encoding bitrate reduction of multiple object audio
US20170026653A1 (en) * 2015-07-21 2017-01-26 Shengli Xie Method for scalable transmission of video tract
US11166057B2 (en) * 2016-11-10 2021-11-02 University Of Louisiana At Lafayette System for high performance on-demand video transcoding
US10943573B2 (en) * 2018-05-17 2021-03-09 Mediatek Inc. Audio output monitoring for failure detection of warning sound playback
US11522810B2 (en) * 2018-10-25 2022-12-06 University Of Louisiana At Lafayette System for request aggregation in cloud computing services

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2698744B1 (fr) * 1992-11-30 1995-01-13 Alcatel Radiotelephone Procédé d'ajustement optimal de trames de paroles et station d'émission/réception de base mettant en Óoeuvre ce procédé.
US5729556A (en) * 1993-02-22 1998-03-17 Texas Instruments System decoder circuit with temporary bit storage and method of operation
JPH0916149A (ja) * 1995-04-28 1997-01-17 Canon Inc 文字処理装置、文字処理方法、及び、メモリ
US6401132B1 (en) * 1999-08-03 2002-06-04 International Business Machines Corporation Subchaining transcoders in a transcoding framework
KR100844816B1 (ko) * 2000-03-13 2008-07-09 소니 가부시끼 가이샤 간결한 트랜스코딩 힌트 메타데이터를 생성하는 방법 및장치
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
KR100554164B1 (ko) * 2003-07-11 2006-02-22 학교법인연세대학교 서로 다른 celp 방식의 음성 코덱 간의 상호부호화장치 및 그 방법
US7675970B2 (en) * 2004-01-12 2010-03-09 General Instrument Corporation Method and apparatus for processing a bitstream in a digital video transcoder

Also Published As

Publication number Publication date
EP1714492A1 (en) 2006-10-25
WO2005081537A1 (en) 2005-09-01
US7057535B2 (en) 2006-06-06
US7075460B2 (en) 2006-07-11
KR100805604B1 (ko) 2008-02-20
US20050179567A1 (en) 2005-08-18
US20050204109A1 (en) 2005-09-15

Similar Documents

Publication Publication Date Title
KR100812909B1 (ko) 매체 데이터 디코딩 장치
KR100805604B1 (ko) 데이터 스케일링 방법 및 데이터 처리 방법
US6989773B2 (en) Media data encoding device
US8832434B2 (en) Methods for generating data for describing scalable media
US7797454B2 (en) Media data transcoding devices
JP4869938B2 (ja) データの完全性を保証するための方法及び装置
KR101002100B1 (ko) 보호 매체 콘텐츠에 대한 액세스 특권의 다수 레벨 제어를위한 방법
WO2005081534A1 (en) Methods for scaling a progressively encrypted sequence of scalable data
US8838954B2 (en) Media processing devices for adaptive delivery of on-demand media, and methods thereof
KR20040088365A (ko) 스케일 가능한 미디어를 위한 스케일 가능하고 에러탄력적인 drm
Babel et al. Preserving data integrity of encoded medical images: the LAR compression framework
JP2010021931A (ja) 映像送信装置及び映像受信装置
Apostolopoulos et al. Security applications for jpeg 2000 imagery

Legal Events

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

Payment date: 20130201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160201

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170213

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee