KR102077239B1 - 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 - Google Patents

멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 Download PDF

Info

Publication number
KR102077239B1
KR102077239B1 KR1020150094932A KR20150094932A KR102077239B1 KR 102077239 B1 KR102077239 B1 KR 102077239B1 KR 1020150094932 A KR1020150094932 A KR 1020150094932A KR 20150094932 A KR20150094932 A KR 20150094932A KR 102077239 B1 KR102077239 B1 KR 102077239B1
Authority
KR
South Korea
Prior art keywords
bitstream
encrypted
data
multimedia data
decoding
Prior art date
Application number
KR1020150094932A
Other languages
English (en)
Other versions
KR20170004501A (ko
Inventor
이남숙
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150094932A priority Critical patent/KR102077239B1/ko
Priority to CN201680038934.1A priority patent/CN107736029B/zh
Priority to EP16818166.7A priority patent/EP3300373A4/en
Priority to PCT/KR2016/006730 priority patent/WO2017003133A1/ko
Priority to US15/741,117 priority patent/US10931645B2/en
Publication of KR20170004501A publication Critical patent/KR20170004501A/ko
Application granted granted Critical
Publication of KR102077239B1 publication Critical patent/KR102077239B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/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/4408Processing 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 encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
    • 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/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명의 일 실시예는 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서, 가공된 멀티미디어 데이터를 획득하는 단계; 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공한다.

Description

멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치{Method and apparatus for multimedia data encryption and decryption}
본 발명은 데이터를 제공하는 방법에 관한 것으로, 특히 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화 하는 방법 및 장치에 관한 것이다.
현재 다양한 분야에서, 멀티미디어 데이터를 효율적으로 처리하기 위하여 압축이라는 기술을 적용한다.
현재 압축 효율을 높이기 위하여 다양한 코덱들이 개발되고 있다. 예를 들어, 이미지 압축을 위한 코덱으로는 JPEG, JPEG 2000, 무손실 JPEG, PNG, PMB 등이 있고, 영상 압축을 위한 코덱으로는, 모션 JPEG, MPEG-1, MPEG-2, MPEG-4, H.263, H.264, HEVC 등이 있다. 또한, 오디오 압축을 위한 코덱으로는 MPEG-1 레이어 I, MPEG-1 레이어 II, MPEG-1 레이어 III, AAC, HE-AAC, FLAC등이 있으며, 을 위한 코덱으로는 G.711, G.718, AMR, AMR-WB 등이 있다.
멀티미디어 데이터의 압축에는 멀티미디어의 종류마다 다른 압축 방식을 사용하고 있으며, 동일한 종류의 멀티미디어 데이터의 압축이라고 하더라도 압축 효율을 위하여 다양한 압축 방식을 사용하고 있다.
IoT 시대에 개인 정보 보호에 대한 이슈가 대두 되면서, 멀티미디어 컨텐츠에 대한 암호화/복호화에 대한 필요가 증가하고 있다. 특히, 압축된 멀티미디어 데이터 비트스트림에 대해, 코덱 특성을 유지한채 암호화/부호화 하는 기술에 대한 필요가 증가하고 있다.
압축된 멀티미디어 데이터 비트스트림에 대해, 코덱 특성을 유지한채 암호화/부호화 하는 방법 및 기술을 제공하고자 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서, 가공된 멀티미디어 데이터를 획득하는 단계; 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공할 수 있다.
또한, 상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 가공된 멀티미디어 데이터를 획득하는 단계는, 멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 단계; 및 상기 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 가공된 멀티미디어 데이터를 획득하는 단계는, 멀티미디어 데이터를 획득하는 단계; 상기 획득한 멀티미디어 데이터에 양자화를 수행하는 단계; 및 상기 양자화를 수행하는 단계의 결과에 기초하여 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 선택된 암호화 대상을 암호화하는 단계는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 선택된 암호화 대상을 암호화 하는 단계는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하는 단계; 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계; 상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하는 단계; 및 상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 암호화 프로세스는, 상기 비트스트림을 직접적으로 암호화 할 수 있다.
또한, 상기 암호화 대상을 선택하는 단계는, 상기 가공된 멀티미디어 데이터중 일부를 선택할 수 있다.
또한, 상기 암호화 대상을 선택하는 단계는, 상기 가공된 멀티미디어 데이터 전체를 선택할 수 있다.
또한, 상기 방법은 메타 데이터를 획득하는 단계; 상기 메타 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하는 단계; 및 상기 암호화된 메타 데이터를 인코딩함으로써, 상기 메타 데이터를 암호화된 메타 비트스트림으로 변환하는 단계를 더 포함할 수 있다.
또한, 제 2 측면은 암호화된 멀티미디어 비트스트림을 복호화하는 방법에 있어서, 암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하는 단계; 상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하는 단계; 상기 선택된 복호화 대상을 복호화 하는 단계; 상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공할 수 있다.
또한, 상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며, 상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 선택된 복호화 대상을 복호화하는 단계는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 선택된 복호화 대상을 복호화 하는 단계는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하는 단계; 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계; 상기 획득한 비트스트림에 복호화 프로세스를 적용함으로써, 복호화된 비트스트림을 획득하는 단계; 및 상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 복호화 프로세스는, 상기 비트스트림을 직접적으로 복호화 할 수 있다.
또한, 상기 복호화 대상을 선택하는 단계는, 상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및 상기 검색된 데이터중에서 일부를 선택 하는 단계를 더 포함할 수 있다.
또한, 상기 복호화 대상을 선택하는 단계는, 상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및 상기 검색된 데이터 전부를 선택 하는 단계를 더 포함할 수 있다.
또한, 상기 방법은 암호화된 메타 데이터를 획득하는 단계; 상기 암호화된 메타 데이터중에서 복호화 대상을 선택하는 단계; 상기 선택된 복호화 대상을 복호화 하는 단계; 상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하는 단계; 및 상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 더 포함할 수 있다.
또한, 제 3측면은 암호화된 멀티미디어 비트스트림을 생성하는 장치에 있어서, 가공된 멀티미디어 데이터를 획득하고, 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하고, 상기 암호화된 멀티미디어 데이터를 인코딩함으로써 암호화된 멀티미디어 비트스트림을 생성하는 암호화부를 포함하는 장치를 제공할 수 있다.
또한, 상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 장치는, 멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 통신부를 더 포함하고, 상기 암호화부는 통신부가 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득할 수 있다.
또한, 암호화부는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 암호화부는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득할 수 있다.
또한, 상기 암호화부는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 암호화부는, 메타 데이터를 획득하고, 상기 메타 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하고, 상기 암호화된 메타 데이터를 인코딩함으로써 암호화된 메타 비트스트림을 생성할 수 있다.
또한, 제 4측면은 암호화된 멀티미디어 비트스트림을 복호화하는 장치에 있어서, 암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하고, 상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 하는 단계의 결과에 기초하여 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하며, 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 복호화부를 포함하는 장치를 제공할 수 있다.
또한, 상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며, 상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 복호화부는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 복호화부는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득된 비트스트림에 복호화 프로세스를 적용함으로써 복호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득할 수 있다.
또한, 상기 복호화부는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 복호화부는, 암호화된 메타 데이터를 획득하고, 상기 암호화된 메타 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 결과에 기초하여 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하며, 상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 메타 비트스트림을 생성할 수 있다.
도 1은 일부 실시예에 따른, 멀티 미디어 비트스트림을 암호화하는 방법을 설명하기 위한 도면이다.
도 2는 일부 실시예에 따른, 암호화된 멀티미디어 비트스트림을 생성하는 방법을 설명하기 위한 도면이다.
도 3은 일부 실시예에 따른, 멀티미디어 비트스트림에 기초하여, 암호화된 멀티미디어 비트스트림을 획득하는 방법을 설명하기 위한 도면이다.
도 4는 일부 실시예에 따라, 멀티미디어 비트스트림을 암호화된 멀티미디어 비트스트림으로 변환하는 방법을 설명하기 위한 도면이다.
도 5는 일부 실시예에 따라, 이미지로부터 암호화된 비트스트림을 생성하는 방법을 설명하기 위한 도면이다.
도 6은 일부 실시예에 따라, 암호화 대상을 비트스트림으로 변환하지 않고 직접 암호화 하는 방법을 설명하기 위한 도면이다.
도 7은 일부 실시예에 따라, 암호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 직접 암호화 하는 방법을 설명하기 위한 도면이다.
도 8은 일부 실시예에 따라, 디바이스(1000)가 기 설정된 맵핑 테이블을 이용하여 암호화 대상을 암호화하는 방법을 설명하기 위한 도면이다.
도 9는 일부 실시예에 따라, 디바이스(1000)가 비트스트림에 128 bit AES CTR을 적용함으로써, 비트스트림을 암호화하는 방법을 설명하기 위한 도면이다.
도 10은 일부 실시예에 따라, 멀티미디어 비트스트림중 일부를 암호화 하는 방법을 설명하기 위한 도면이다.
도 11은 일부가 암호화된 멀티미디어 비트스트림의 일 실시예를 표현한 도면인다.
도 12는 일부 실시예에 따라, 암호화 보상을 설명하기 위한 도면이다.
도 13은 일부 실시예에 따라, 암호화된 비트스트림을 복호화하는 방법을 설명하기 위한 도면이다.
도 14는 일부 실시예에 따라, 복호화 대상을 복호화하고, 영상을 복원하는 방법을 설명하기 위한 도면이다.
도 15는 일부 실시예에 따라, 복호화 대상을 비트스트림으로 변환하지 않고 직접 복호화 하는 방법을 설명하기 위한 도면이다.
도 16은 일부 실시예에 따라, 복호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 직접 복호화 하는 방법을 설명하기 위한 도면이다.
도 17은 일부 실시예에 따라, 디바이스(1000)가 기 설정된 맵핑 테이블을 이용하여 복호화 대상을 복호화하는 방법을 설명하기 위한 도면이다.
도 18은 일부 실시예에 따라, 복호화 보상을 설명하기 위한 도면이다.
도 19는 일부 실시예에 따른, 디바이스를 설명하기 위한 블록도이다.
도 20는 일부 실시예에 따른, 디바이스를 설명하기 위한 세부 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 일부 실시예에 따른, 멀티 미디어 비트스트림을 암호화하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 가공된 멀티미디어 데이터를 획득할 수 있다.
예를 들어, 디바이스(1000)는 획득한 사진 데이터를 가공함으로써, 가공된 사진 데이터를 획득할 수 있다.
또한, 디바이스(1000)는 사진 비트스트림을 획득하고, 획득한 비트스트림을 디코딩 함으로써, 가공된 사진 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 획득한 비트스트림을 엔트로피 디코딩 함으로써, 가공된 사진 데이터를 획득할 수 있다.
디바이스(1000)는 암호화 대상으로, 가공된 멀티미디어 데이터중 일부를 선택할 수 있다. 예를 들어, 디바이스(1000)는 복수의 블록으로 구성된 사진 데이터를 가공함으로써 가공된 사진 데이터를 획득하고, 가공된 사진 데이터 중에서 사람의 얼굴을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하지 않고, 직접 암호화할 수 있다.
또한, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하고, 비트스트림 형태의 암호화 대상을 암호화할 수 있다. 이 경우, 디바이스(1000)는 암호화된 비트스트림을 데이터로 변환함으로써, 암호화된 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 대상을 암호화 함으로써, 암호화된 데이터를 획득할 수 있다. 또한, 디바이스(1000)는 가공된 멀티미디어 데이터중 암호화 대상을 암호화된 데이터로 변환함으로써, 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다.
디바이스(1000)는 암호화된 멀티 미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 암호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 엔트로피 인코딩 이전에 선택된 암호화 대상을 암호화할 수 있다. 디바이스(1000)는 엔트로피 인코딩 이전에 암호화 대상을 암호화 함으로써, 기존의 디코딩 디바이스에서 이용가능한 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
도 2는 일부 실시예에 따른, 암호화된 멀티미디어 비트스트림을 생성하는 방법을 설명하기 위한 도면이다.
단계 S210에서, 디바이스(1000)는 가공된 멀티미디어 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 데이터를 획득할 수 있다. 멀티미디어 데이터는, 음성, 문자, 그림, 동영상등이 혼합된 다양한 데이터를 의미한다. 예를 들어, 멀티미디어 데이터는, 사진 데이터, 노래 데이터, 동영상 데이터, 오디오 데이터, 텍스트 데이터, 플래쉬 데이터등을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 메타 데이터를 획득할 수 있다. 메타 데이터는 멀티미디어 데이터를 설명하기 위한 데이터를 의미한다. 예를 들어, 메타 데이터는 멀티미디어 데이터 생성시 이용된 카메라의 제조사, 카메라의 모델 정보, 또는 이들의 조합을 포함할 수 있다. 또한, 멀티미디어 데이터가 생성될 때의 카메라 방향, 날짜와 시간, 카메라 초점 거리, 카메라의 플래시 On/Off 여부, 카메라의 ISO 속도, 카메라의 셔터 속도, 카메라의 위치, GPS(Global Positioning System)등의 정보를 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 멀티 미디어 데이터의 메타 데이터는 다양한 포맷을 가질 수 있다. 예를 들어, 멀티 미디어 데이터의 메타 데이터는 MARC(Machine Readable Cataliging) 포맷, 더블린 코어 포맷, 태그 포맷, 또는 교환 이미지 파일 포맷(Exchangeable image file format)등을 가질 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 멀티미디어 데이터, 메타 데이터, 또는 이들의 조합에 적어도 하나의 서브 코딩 모듈을 적용할 수 있다. 서브 코딩 모듈이란, 멀티미디어 데이터, 메타 데이터, 또는 이들의 조합에 다양한 코덱을 적용하여 압축하는때 이용되는 서브 모듈을 의미한다. 예를 들어, 서브 코딩 모듈은, DCT변환 모듈, 양자화 모듈, 예측 모듈, 엔트로피 코딩 모듈, 엔트로피 디코딩 모듈등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 복수개의 서브 코딩 모듈을 포함할 수 있다. 복수의 서브 코딩 모듈은 하나의 프로세서에 의해 구현될 수 있고, 각각 하나의 프로세서에 의해 구현될 수 있으며, 복수개의 프로세서에 의해 구현될 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 멀티미디어 데이터에 적어도 하나의 서브 코딩 모듈을 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 DCT 변환 모듈 및 양자와 모듈을 멀티미디어 데이터에 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
또한, 디바이스(1000)는 메타 데이터에 적어도 하나의 서브 코딩 모듈을 적용함으로써, 가공된 메타 데이터를 획득할 수 있다.
가공된 멀티미디어 데이터는 멀티미디어 데이터를 인코딩 하는 과정에서 발생되는 다양한 파라미터를 포함할 수 있다. 예를 들어, 가공된 멀티미디어 데이터는 디프런셜 코딩(Differential coding)된 DC value, 양자화된 샘플들, AC 부호화된 샘플들을 포함할 수 있으며, 이에 한정되지 않는다.
다른 실시예에 따르면, 디바이스(1000)는 멀티미디어 비트스트림을 이용하여 가공된 멀티미디어 데이터를 획득할 수 있다.
디바이스(1000)는 멀티미디어 데이터를 직접 인코딩 함으로써, 멀티미디어 비트스트림을 획득할 수 있다. 또한, 디바이스(1000)는 외부의 디바이스로부터 멀티미디어 비트스트림을 수신할 수 있다.
비트스트림은 적어도 하나의 비트 그룹을 포함하며, 비트는 데이터의 단위를 의미한다. 또한, 멀티미디어 비트스트림은 멀티미디어 데이터에 코덱을 적용하여 압축함으로써 생성된 비트 스트림를 의미하며, 메타 비트스트림은 메타 데이터를 비트스트림으로 변환한 것을 의미한다. 예를 들어, 멀티미디어 비트스트림은 비트들의 그룹을 포함할 수 있고, 비트들의 그룹은 사진을 나타낼 수 있다.
디바이스(1000)는 멀티미디어 비트스트림에 서브 코딩 모듈을 적용함으로써 가공된 멀티미디어 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 멀티미디어 비트스트림에 엔트로피 디코딩 모듈을 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
엔트로피 디코딩 모듈은 엔트로피 디코딩을 수행하는 모듈을 의미한다. 엔트로피 디코딩이란 비트 스트림을 비트 스트림에 대응되는 데이터로 변환하는 코딩 방법을 의미한다. 엔트로피 디코딩은, 허프만(huffman) 방법, 산술 변환 코딩 방법등을 포함할 수 있으며, 이에 한정되지 않는다.
단계 S230에서, 디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 대상을 선택할 수 있다.
예를들어, 디바이스(1000)는 암호화 대상으로, 가공된 멀티미디어 데이터중 일부를 선택할 수 있다. 또한, 디바이스(1000)는 암호화 대상으로, 가공된 멀티미디어 데이터 전부를 선택할 수 있다.
예를 들어, 디바이스(1000)는 복수의 블록으로 구성된 사진 데이터를 가공함으로써 가공된 사진 데이터를 획득하고, 가공된 사진 데이터 중에서 제 1 블록을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 기 설정된 기준에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사진 데이터에 포함된 사람이 암호화 대상으로 기 설정된 경우, 디바이스(1000)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
또한, 디바이스(1000)는 사용자의 입력에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사용자가 사진 데이터에 포함된 사람을 암호화 대상으로 입력한 경우, 디바이스(1000)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
일부 실시예에 따르면, 선택된 암호화 대상은 다양한 파라미터를 포함할 수 있다. 예를 들어, 선택된 암호화 대상은 디프런셜 코딩(Differential coding)된 DC value, 양자화된 샘플들,또는 AC 부호화된 샘플들을 포함할 수 있으며, 이에 한정되지 않는다.
또한, 디바이스(1000)는 메타 데이터를 암호화 대상으로 선택할 수 있다. 예를 들어, 디바이스(1000)는 메타 데이터 전체, 메타 데이터중 일부, 또는 가공된 메타 데이터를 암호화 대상으로 선택할 수 있다.
단계 S250에서, 디바이스(1000)는 선택된 암호화 대상을 암호화할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하지 않고, 직접 암호화할 수 있다.
예를 들어, 디바이스(1000)는 암호화 대상에 포함된 파라미터들의 값에 소정의 함수를 적용시킴으로써, 암호화 대상을 암호화할 수 있다.
다른 예를 들면, 디바이스(1000)는 암호화 대상에 포함된 제 1 블록의 파라미터들을, 제 2 블록의 파라미터들과 기 설정된 규칙에 기초하여 교환함으로써, 암호화 대상을 암호화할 수 있다.
또한, 디바이스(1000)는 암호화 대상에 포함된 파라미터들의 값의 부호를 변경함으로써, 암호화 대상을 암호화할 수 있다.
또한, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 파라미터들의 부호를 기 설정된 암호화키를 이용해 변경함으로써, 암호화 대상을 암호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하고, 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화 대상을 암호화할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터 중에서 선택된 암호화 대상을 비트스트림으로 변환할 수 있다.
예를 들어, 디바이스(1000)는 암호화 대상을 기 설정된 맵핑 테이블에 맵핑시킴으로써 암호화 대상에 대응되는 소정의 값들을 획득할 수 있다. 또한 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary)변환 함으로써, 암호화 대상에 대응되는 비트스트림을 획득할 수 있다.
디바이스(1000)는 바이너리 변환을 수행할때, 소정의 값들 각각의 비트 크기 정보에 기초하여 바이너리 변환을 수행할 수 있다.
디바이스(1000)는 획득한 비트스트림을 암호화 할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 암호화 방법을 이용하여 획득한 비트스트림을 암호화할 수 있다. 비트스트림에 적용할 수 있는 암호화 방법에는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등이 있으며, 이에 한정되지 않는다.
디바이스(1000)는 암호화된 비트스트림을 데이터로 변환함으로써, 암호화된 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 비트스트림에 바이너리 역변환을 수행하여 소정의 값들을 획득하고, 소정의 값들을 기 설정된 맵핑 테이블에 맵핑함으로써, 암호화된 데이터를 획득할 수 있다.
일부 실시예에 따르면, 암호화된 데이터는 코덱에서 허용되는 범위의 값으로 제한될 수 있다. 예를 들어, 디바이스(1000)가 JPEG으로 코딩된 멀티미디어 비트스트림을 암호화한 경우, 디바이스(1000)에 의해 암호화된 데이터는 JPEG에서 허용하는 범위로 제한될 수 있다.
단계 S270에서, 디바이스(1000)는 암호화 하는 단계의 결과에 기초하여 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 대상을 암호화 함으로써, 암호화된 데이터를 획득할 수 있다. 또한, 디바이스(1000)는 가공된 멀티미디어 데이터중 암호화 대상을 암호화된 데이터로 변환함으로써, 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다. 또한, 디바이스(1000)는 가공된 메타데이터중 암호화 대상을 암호화된 데이터로 변환함으로써, 가공된 메타데이터를 암호화된 메타데이터로 변환할 수 있다.
예를 들어, 디바이스(1000)가 선택한 암호화 대상이 복수의 블록으로 구분되는 사진 데이터중 제 1 블록인 경우, 디바이스(1000)는 제 1 블록을 나타내는 데이터를 암호화함으로써, 암호화 데이터를 획득할 수 있다. 디바이스(1000)는 가공된 사진 데이터중에서 제 1 블록을 나타내는 데이터를 암호화 데이터로 변환함으로써, 암호화된 사진 데이터를 획득할 수 있다.
단계 S290에서, 디바이스(1000)는 암호화된 멀티미디어 데이터를 인코딩 함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
디바이스(1000)는 암호화된 멀티 미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 데이터를 인코딩함으로써, 암호화된 메타 비트스트림을 생성할 수 있다.
예를 들어, 디바이스(1000)는 가공된 사진 데이터 중에서 사람을 나타내는 데이터를 암호화 대상으로 선택한 경우, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화된 데이터로 변환하여 암호화된 멀티미디어 데이터를 생성할 수 있고, 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 사진 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 암호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 비트스트림에 적용된 코덱과 대응되는 엔트로피 코딩을, 암호화된 멀티미디어 데이터에 적용할 수 있다.
예를 들어, 멀티미디어 비트스트림에 적용된 코덱이 H.265이고, H.265에서 이용되는 엔트로피 코딩 방법이 CABAC인 경우, 디바이스(1000)는 CABAC을 이용하여 암호화된 멀티미디어 데이터를 엔트로피 인코딩할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 암호화 대상을 암호화할 수 있다. 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 암호화 대상을 암호화 함으로서, 기존의 디코딩 디바이스에서 이용가능한 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
도 3은 일부 실시예에 따른, 멀티미디어 비트스트림에 기초하여, 암호화된 멀티미디어 비트스트림을 획득하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 멀티미디어 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 외부 디바이스로부터 멀티미디어 비트스트림을 수신할 수 있고, 멀티미디어 데이터를 인코딩 함으로써, 멀티미디어 비트스트림을 획득할 수 있다.
멀티미디어 비트스트림은 복수의 비트 그룹을 포함할 수 있다. 또한, 복수의 비트 그룹은 각각 헤더 영역과 페이로드 영역을 포함할 수 있다.
디바이스(1000)는 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다. 가공된 멀티미디어 데이터는 복수의 파라미터들(Val1, Val2, Val3, Val4, Val5, Val6, ......)을 포함할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 선택할 수 있다. 예를 들어, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......)중에서, 일부를 암호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......) 전부를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 선택된 암호화 대상을 암호화할 수 있다. 예를 들어, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환 하지 않고, 직접 암호화할 수 있다. 또한, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하고, 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화된 데이터를 획득할 수 있다.
디바이스(1000)는 암호화 대상을 암호화 함으로서, 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다. 예를 들어, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......)를 암호화 함으로써, 암호화된 데이터(EVal1, EVal2, EVal3, EVal4, EVal5, EVal6, ......)를 포함하는 암호화된 멀티미디어 데이터를 획득할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터를 인코딩 함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 파라미터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, 고정 길이 코딩(fixed lenngth coding), CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 멀티미디어 비트스트림을 획득하는 방법과 동일한 방법을 이용하여, 암호화된 메타 데이터를 획득할 수 있다.
도 4는 일부 실시예에 따라, 멀티미디어 비트스트림을 암호화된 멀티미디어 비트스트림으로 변환하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 멀티미디어 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 외부 디바이스로부터 멀티미디어 비트스트림을 수신할 수 있고, 멀티미디어 데이터를 인코딩 함으로써, 멀티미디어 비트스트림을 획득할 수 있다.
디바이스(1000)는 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다. 가공된 멀티미디어 데이터는 복수의 파라미터들(70, -1, -1, 0, -1,......)을 포함할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 선택할 수 있다. 예를 들어, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(70, -1, -1, 0, -1,......)중에서, 일부를 암호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(70, -1, -1, 0, -1,......) 전부를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 선택된 암호화 대상을 암호화 함으로써, 암호화 대상을 암호화된 데이터로 변환할 수 있다. 예를 들어, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(70, -1, -1, 0, -1,......)를 암호화 함으로써, 암호화된 데이터(64, 1, 1, 0, 1, ......)를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하지 않고, 직접 암호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상(70, -1, -1, 0, -1,......)을 비트스트림으로 변환하고, 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화 대상을 암호화된 데이터(64, 1, 1, 0, 1, ......)로 변환할 수 있다.
디바이스(1000)는 암호화된 데이터를 포함하는 암호화된 멀티미디어 데이터를 인코딩 함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 복수의 파라미터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, 고정 길이 코딩(fixed lenngth coding), CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 비트스트림을 암호화된 멀티미디어 비트스트림으로 변환하는 방법과 동일한 방법을 이용하여, 메타 비트스트림을 암호화된 메타 비트스트림으로 변환할 수 있다.
도 5는 일부 실시예에 따라, 이미지로부터 암호화된 비트스트림을 생성하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 이미지 데이터는 복수의 블록으로 구분될 수 있다. 예를들어, 이미지 데이터는 4X4, 8X8, 16X16의 크기를 갖는 복수의 블록으로 구분될 수 있으며, 이에 한정되지 않는다.
도 5를 참조할때, 사진 데이터는 8X8의 크기를 갖는 복수의 블록으로 구분될 수 있다. 8X8의 크기를 갖는 복수의 블록 각각은 64개의 샘플값을 갖는다.
일부 실시예에 따르면, 디바이스(1000)는 복수의 블록 각각에 DCT변환을 적용할 수 있다. 그 결과, 디바이스(1000)는 DCT 변환된 샘플값들을 획득살 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 DCT변환된 샘플값들을 양자화 할 수 있다. 그 결과, 디바이스(1000)는 양자화된 샘플값들을 획득할 수 있다.
디바이스(1000)는 양자화된 샘플값들을 DC부호화 및 AC부호화 함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 선택할 수 있다. 예를 들어, 디바이스(1000)는 제 1 블록을 나타내는 파라미터들중에서 일부를 암호화 대상으로 선택할 수 있다.
또한, 디바이스(1000)는 복수의 블록을 나타내는 파라미터들중 일부의 블록을 나타내는 파라미터들을 암호화 대상으로 선택할 수 있다.
예를 들어, 디바이스(1000)는 사진 데이터에 포함된 블록들중 사람의 얼굴에 포함된 블록들을 암호화 대상으로 선택하고, 사진 데이터를 구성하는 복수의 블록들중 사람의 얼굴에 포함된 블록들을 나타내는 파라미터들을 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터중 선택된 암호화 대상을 암호화 함으로써, 암호화된 멀티미디어 데이터를 획득할 수 있다. 또한, 암호화된 멀티미디어 데이터에 엔트로피 코딩을 적용함으로서, 암호화된 멀티미디어 비트스트림을 획득할 수 있다.
도 6은 일부 실시예에 따라, 암호화 대상을 비트스트림으로 변환하지 않고 직접 암호화 하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 대상을 비트스트림으로 변환하지 않고, 직접 암호화 할 수 있다.
예를 들어, 디바이스(1000)는 암호화 대상이 복수의 파라미터인 경우, 파라미터들을 직접 암호화할 수 있다. 예를 들어, 디바이스(1000)는 암호화 대상인 복수의 파라미터 각각의 부호를 변경함으로서, 암호화 대상인 복수의 파라미터를 암호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 암호화 대상인 복수의 파라미터 각각의 부호를 기 설정된 암호화키를 이용해 변경함으로써, 암호화 대상인 복수의 파라미터를 암호화 할 수 있다.
또한 예를 들어, 디바이스(1000)는 암호화 대상이 제 1 블록을 나타내는 복수의 파라미터인 경우, 제 1 블록을 나타내는 복수의 파라미터를 다른 블록의 파라미터들과 소정의 규칙에 의하여 교환함으로써, 암호화 대상인 복수의 파라미터를 암호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 암호화 대상이 제 1 블록을 나타내는 복수의 파라미터인 경우, 제 1 블록을 나타내는 복수의 파라미터를 다른 블록의 파라미터들과 스크램블링 함으로서, 암호화 대상인 복수의 파라미터를 암호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 암호화 대상인 복수의 파라미터에 특정 함수를 적용하여 변경함으로써, 암호화 대상인 복수의 파라미터를 암호화할 수 있다.
도 7은 일부 실시예에 따라, 암호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 직접 암호화 하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화 대상을 암호화할 수 있다.
단계 S710에서, 디바이스(1000)는 기 설정된 맵핑 테이블에 기초하여 선택된 암호화 대상에 대응되는 소정의 값들을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)가 선택한 암호화 대상은 복수의 계수를 포함할 수 있다. 예를 들어, 디바이스(1000)가 선택한 암호화 대상은 -1023보다 크고 1023보다 작은 값들중 하나의 값을 갖는 복수의 계수를 포함할 수 있다.
일부 실시예에 다르면, 디바이스(1000)는 맵핑 테이블을 기준으로, 선택된 암호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
예를 들어, 맵핑 테이블은 계수들 각각의 범위를 제 0 범위(0), 제 1 범위(-1,1), 제 2 범위(-3,-2,2,3), 제 3범위(-7,...,-4, 4,...,7), 제 4범위(-15,...,-8,8,...,15), 제 5범위(-31,...,-16,16,...,31), 제 6범위(-63...-32, 32...63), 제 7범위(-127,...,-64,64,...,127), 제 8범위(-255,...,-128,128,...,255), 제 9범위(-511,...,-256,256,...,511), 제 10범위(-1023,...,-512,512,...,1023), 제 11범위(-2047,...,-1024,1024,...,2047)로 구분할 수 있다. 디바이스(1000)는 맵핑 테이블에 기초하여, 계수들 각각의 범위를 제 0 범위 부터 제 11범위중 하나로 결정할 수 있다.
디바이스(1000)는 암호화 대상에 포함된 계수들 각각의 값의 범위의 기준이 되는 맵핑 테이블을 암호화 할때마다 변경할 수 있다. 또한, 디바이스(1000)는 항상 동일한 맵핑 테이블을 이용하여 암호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
디바이스(1000)는 맵핑 테이블을 사용자의 입력에 기초하여 생성, 변경, 또는 삭제할 수 있다. 또한, 디바이스(1000)는 외부의 디바이스로부터 맵핑 테이블을 수신할 수 있으며, 미리 저장된 맵핑 테이블을 이용할 수 있다.
디바이스(1000)가 보유한 맵핑 테이블은 맵핑 테이블에 포함된 범위들 각각에 대응되는 다양한 변수를 포함할 수 있다. 예를 들어, 디바이스(1000)가 보유한 맵핑 테이블은 최대값 변수(MV)를 포함할 수 있다. 최대 값 변수(MV)는 구분된 영역들 각각이 포함할 수 있는 최대값을 의미한다.
예를 들어, 디바이스(1000)가 보유한 맵핑 테이블은, 제 0 영역의 최대값 변수(MV)로 0을, 제 1 영역의 최대값 변수는 1을, 제 2 영역의 최대값 변수로 3을 포함할 수 있다.
디바이스(1000)는 계수들 각각의 결정된 값의 범위를 맵핑 테이블에 대응시킴으로서, 결정된 값의 범위에 대응되는 최대값 변수(MV)를 획득할 수 있다.
예를 들어, 암호화 대상에 포함된 제 1 계수의 값의 범위가 제 0 범위인 경우, 디바이스(1000)는 제 0 범위를 맵핑 테이블에 대응시킴으로써, 제 0 범위에 대응되는 최대값 변수인 0을 획득할 수 있다.
다른예를 들어, 암호화 대상에 포함된 제 1 계수의 값의 범위가 제 1 범위인 경우, 디바이스(1000)는 제 1 범위를 맵핑 테이블에 대응시킴으로써, 제 1 범위에 대응되는 최대값 변수인 1을 획득할 수 있다.
다른예를 들어, 암호화 대상에 포함된 제 2 계수의 값의 범위가 제 2 범위인 경우, 디바이스(1000)는 제 2 범위를 맵핑 테이블에 대응시킴으로써, 제 2 범위에 대응되는 최대값 변수인 3을 획득할 수 있다.
디바이스(1000)는 획득한 암호화 대상에 포함된 계수들 각각의 값과, 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수(MV)에 기초하여, 소정의 값을 획득할 수 있다.
If(diff_val<0){ val = diff_val + MV }
else { val = diff_val } ... 식 (1)
예를 들어, 디바이스(1000)는 식(1)에 기초하여, 소정의 값을 획득할 수 있다. diff_val은 암호화 대상에 포함된 계수의 값을 나타내고, val은 소정의 값을 나타내며, MV는 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수를 나타낸다.
예를 들어, 디바이스(1000)는 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값(diff_val)이 0보다 작은 경우, { 제 1 계수의 값(Diff_val) + 최대 값 변수(MV) }을 제 1 계수에 대응되는 소정의 값(val)으로 획득할 수 있다. 또한, 디바이스(1000)는 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 0보다 큰 경우, 제 1 계수의 값(diff_val)을 제 1 계수의 값에 대응되는 소정의 값(val)으로 획득할 수 있다.
예를 들어, 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -124인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(-127,...,-64,64,...,127)로 획득할 수 있다. 또한, 디바이스(1000)는 제 7 범위에 대응되는 최대값 변수(MV)인 127을 맵핑 테이블로부터 획득할 수 있다.
디바이스(1000)는 제 1 계수인 -124를 식 (1)에 대응시킬 수 있다. 디바이스(1000)는 제 1 계수를 식 (1)에 대응시킴으로써, 소정의값(val=-124+127=3)을 획득할 수 있다.
단계 S730에서, 디바이스(1000)는 소정의 값들을 바이너리(binary) 변환함으로써, 비트스트림을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary) 변환할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값을 바이너리 변환 함으로써, 0또는 1로서 표현할 수 있다.
디바이스(1000)는 획득한 소정의 값의 비트 크기 정보를 결정할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값과 대응되는 암호화 대상의 값의 범위에 기초하여, 비트 크기 정보를 결정할 수 있다.
예를 들어, 디바이스(1000)는 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -124인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(-127,...,-64,64,...,127)로 획득하고, 제 1 계수에 대응되는 소정의값(val=3)을 획득할수 있다.
또한, 디바이스(1000)는 획득한 소정의 값(val=3)의 비트 크기 정보를 소정의 값에 대응되는 제 1 계수의 값의 범위에 기초하여 획득할 수 있다.
예를 들어, 디바이스(1000)는 제 1 계수의 값의 범위인, 제 7 범위를 맵핑 테이블에 맵핑 시킴으로써, 소정의 값의 비트 크기 정보인 7을 획득할 수 있다.
디바이스(1000)는 획득한 소정의 값을 비트 크기 정보에 기초하여 바이너리(binary) 변환할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값(val=3)을 7비트를 이용하여 바이너리 변환 할 수 있다. 예를 들어, 디바이스(1000)는 소정의 값(val=3)을 “0000011”로 변환할 수 있다.
단계 S750에서, 디바이스(1000)는 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 비트스트림에 암호화 프로세스를 적용할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 암호화 프로세스를 이용하여 비트스트림을 암호화할 수 있다.
비트스트림에 적용할 수 있는 암호화 프로세스는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 비트스트림을 암호화 함으로써, 암호화된 비트스트림을 획득할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값에 기초하여 획득한 비트스트림 “0000011”을 암호화 함으로써, 암호화된 비트스트림”0001101”을 획득할 수 있다.
단계 S770에서, 디바이스(1000)는 기 설정된 맵핑 테이블에 기초하여 암호화된 비트스트림에 대응되는 암호화 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 비트스트림에 바이너리 역변환을 적용함으로써, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림이 “0001101”인 경우, “0001101”을 바이너리 역변환 함으로써, 소정의값 “13”을 획득할 수 있다.
디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑 시킴으로써, 암호화된 비트스트림에 대응되는 다양한 정보를 획득할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑시킴으로써, 암호화된 비트스트림의 한계 변수를 획득할수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 한계 변수(“64”)를 획득할 수 있다.
또한, 디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑 테이블에 맵핑 시킴으로써, 암호화된 비트스트림에 대응 되는 암호화된 데이터의 최대값 변수(MV)를 획득할 수 있다. 최대 값 변수(MV)는 암호화된 데이터가 포함된 영역이 포함할 수 있는 최대값을 의미한다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값, 암호화된 비트스트림에 대응되는 한계 변수, 및 암호화된 비트스트림에 대응되는 최대 값 변수(MV)를 이용하여, 암호화된 비트스트림에 대응되는 암호화된 데이터를 획득할 수 있다.
If(val2<limit){ Eval = val2 - MV }
else { Eval = val2 } ... 식 (2)
예를 들어, 디바이스(1000)는 식(2)를 이용하여 암호화된 데이터를 획득할 수 있다. val2은 암호화된 비트스트림에 대응되는 소정의값, limit은 암호화된 비트스트림에 대응되는 한계 변수, MV는 암호화된 비트스트림에 대응되는 최대 값 정보를 의미한다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값(val2)이 암호화된 비트스트림에 대응되는 한계 변수(limit)보다 작은 경우, {소정의값(val2)-암호화된 비트스트림에 대응되는 최대값 정보(MV)}를 암호화된 비트스트림에 대응되는 암호화된 데이터(Eval)로 결정할 수 있다.
또한, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값(val2)이 암호화된 비트스트림에 대응되는 한계 변수(limit)보다 큰 경우, 소정의 값(val2)을 암호화된 비트스트림에 대응되는 암호화된 데이터(Eval)로 결정할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림이 “0001101”인 경우, “0001101”을 바이너리 역변환 함으로써, 소정의값 “13”을 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 한계 변수(“64”)를 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 최대 값 정보(“127”)를 획득할 수 있다.
이 경우, 소정의값(“13”)은 한계 변수(“64”)보다 작으므로, 디바이스(1000)는 암호화된 비트스트림(“0001101”)에 대응되는 암호화 데이터(Eval)로서, “-114(13-127=-114)”를 획득할 수 있다.
디바이스(1000)는 암호화된 대상에 포함된 계수들 각각을 암호화 하고, 암호화 이후에 엔트로피 인코딩을 수행함으로써, 기존에 멀티미디어 비트스트림에 적용된 코덱 특성을 유지한 상태로, 멀티미디어 비트스트림을 암호화할 수 있다.
도 8은 일부 실시예에 따라, 디바이스(1000)가 기 설정된 맵핑 테이블을 이용하여 암호화 대상을 암호화하는 방법을 설명하기 위한 도면이다.
일부 실시예에 다르면, 디바이스(1000)는 기 설정된 맵핑 테이블을 기준으로, 선택된 암호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
예를 들어, 맵핑 테이블은 계수들 각각의 범위를 제 0 범위(0), 제 1 범위(-1,1), 제 2 범위(-3,-2,2,3), 제 3범위(-7,...,-4, 4,...,7), 제 4범위(-15,...,-8,8,...,15), 제 5범위(-31,...,-16,16,...,31), 제 6범위(-63...-32, 32...63), 제 7범위(-127,...,-64,64,...,127), 제 8범위(-255,...,-128,128,...,255), 제 9범위(-511,...,-256,256,...,511), 제 10범위(-1023,...,-512,512,...,1023), 제 11범위(-2047,...,-1024,1024,...,2047)로 구분할 수 있다. 디바이스(1000)는 맵핑 테이블에 기초하여, 계수들 각각의 범위를 제 0 범위 부터 제 11범위중 하나로 결정할 수 있다.
도 8을 참조할때, 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -124인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(810)로 획득할 수 있다
디바이스(1000)는 계수들 각각의 결정된 값의 범위를 기 설정된 맵핑 테이블에 대응시킴으로서, 결정된 값의 범위에 대응되는 최대값 변수(MV)를 획득할 수 있다.
도 8을 참조할때, 암호화 대상에 포함된 제 1 계수의 값의 범위가 제 7 범위인 경우, 디바이스(1000)는 제 7 범위를 기 설정된 맵핑 테이블에 대응시킴으로써, 제 7 범위에 대응되는 최대값 변수인 127(820)을 획득할 수 있다.
디바이스(1000)는 획득한 암호화 대상에 포함된 계수들 각각의 값과, 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수(MV)에 기초하여, 소정의 값을 획득할 수 있다.
도 8을 참조할때, 암호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -124인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(810)로 결정할 수 있다. 또한, 디바이스(1000)는 제 7 범위(810)에 대응되는 최대값 변수(Max_val)인 127(820)을 맵핑 테이블로부터 획득할 수 있다.
디바이스(1000)는 암호화 대상에 포함된 복수의 계수중 제 1 계수인 -124이 0보다 작으므로, 제 1 계수의 값에 최대값 변수(Max_val)인 127(820)을 더함으로써, 제 1 계수에 대응되는 소정의 값(-124+127= “3”)을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary) 변환할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값을 바이너리 변환 함으로써, 0또는 1로서 표현할 수 있다.
디바이스(1000)는 획득한 소정의 값의 비트 크기 정보를 결정할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값과 대응되는 암호화 대상의 값의 범위에 기초하여, 비트 크기 정보를 결정할 수 있다.
도 8을 참조할때, 디바이스(1000)는 제 1 계수의 값의 범위인, 제 7 범위를 맵핑 테이블에 맵핑 시킴으로써, 소정의 값의 비트 크기 정보인 7(830)을 획득할 수 있다.
디바이스(1000)는 획득한 소정의 값을 비트 크기 정보에 기초하여 바이너리(binary) 변환할 수 있다.
도 8을 참조할때, 디바이스(1000)는 소정의 값(val=3)을 7비트를 이용하여 바이너리 변환 할 수 있다. 예를 들어, 디바이스(1000)는 소정의 값(val=3)을 “0000011”로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 비트스트림에 암호화 프로세스를 적용할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 암호화 프로세스를 이용하여 비트스트림을 암호화할 수 있다.
비트스트림에 적용할 수 있는 암호화 프로세스는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 비트스트림을 암호화 함으로써, 암호화된 비트스트림을 획득할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값에 기초하여 획득한 비트스트림 “0000011”을 암호화 함으로써, 암호화된 비트스트림”0001101”을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 비트스트림에 바이너리 역변환을 적용함으로써, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림이 “0001101”인 경우, “0001101”을 바이너리 역변환 함으로써, 소정의값 “13”을 획득할 수 있다.
디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑 시킴으로써, 암호화된 비트스트림에 대응되는 다양한 정보를 획득할 수 있다.
도 8을 참조할때, 디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑시킴으로써, 암호화된 비트스트림의 한계 변수(840)를 획득할수 있다. 예를 들어, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 한계 변수(“64”)(840)를 획득할 수 있다.
또한, 디바이스(1000)는 암호화된 비트스트림의 비트 크기 정보를 맵핑 테이블에 맵핑 시킴으로써, 암호화된 비트스트림에 대응 되는 암호화된 데이터의 최대값 변수(MV)를 획득할 수 있다. 최대 값 변수(MV)는 암호화된 데이터가 포함된 값의 범위가 포함할 수 있는 최대값을 의미한다.
도 8을 참조할때, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 최대 값 변수(MV) “127”(820)을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값, 암호화된 비트스트림에 대응되는 한계 변수, 및 암호화된 비트스트림에 대응되는 최대 값 변수(MV)를 이용하여, 암호화된 비트스트림에 대응되는 암호화된 데이터를 획득할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값(val2)이 암호화된 비트스트림에 대응되는 한계 변수(limit)보다 작은 경우, {소정의값(val2)-암호화된 비트스트림에 대응되는 최대값 정보(MV)}를 암호화된 비트스트림에 대응되는 암호화된 데이터(Eval)로 결정할 수 있다.
또한, 디바이스(1000)는 암호화된 비트스트림에 대응되는 소정의값(val2)이 암호화된 비트스트림에 대응되는 한계 변수(limit)보다 큰 경우, 소정의값(val2)을 암호화된 데이터(Eval)로 결정할 수 있다.
도 8을 참조할때, 암호화된 비트스트림이 “0001101”인 경우, “0001101”을 바이너리 역변환 함으로써, 소정의값 “13”을 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)(830)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 한계 변수(“64”)(840)를 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 비트스트림(“0001101”)의 비트크기 정보(“7”)(830)를 맵핑테이블에 대응시킴으로써, 암호화된 비트스트림(“0001101”)에 대응되는 최대 값 정보(“127”)(820)를 획득할 수 있다.
이 경우, 소정의값(“13”)은 한계 변수(“64”)(840)보다 작으므로, 디바이스(1000)는 암호화된 비트스트림(“0001101”)에 대응되는 암호화 데이터(Eval)로서, “-114(13-127=-114)”를 획득할 수 있다.
도 9는 일부 실시예에 따라, 디바이스(1000)가 비트스트림에 128 bit AES CTR을 적용함으로써, 비트스트림을 암호화하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)가 암호화 대상을 암호화하기 위해, AES 방법을 이용할 수 있다.
디바이스(1000)가 이용할 수 있는 AES 방법은 다양한 모드를 포함할 수 있다. 예를 들어, AES방법은 ECB, CBC, PCBC, CFB, OFB, 또는 CTR 모드를 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 CTR모드를 이용하여 암호화 대상을 암호화할 수 있다. 예를 들어, 디바이스(1000)는 Counter값을 암호화 하고, 암호화된 Counter값과 암호화대상을 XOR연산 함으로써, 암호화 대상을 암호화할 수 있다.
디바이스(1000)는 다양한 크기의 Counter값을 이용할 수 있다. 예를 들어, 디바이스(1000)는 128 bits의 Counter값, 196 bits의 Counter값, 또는 256 bits의 Counter값을 이용할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림에 AES CTR_128 bits 모드를 적용함으로서, 비트스트림을 암호화할 수 있다. AES CTR_128 bits 모드는 128 bits의 Counter값을 이용하는 AES CTR모드를 의미한다.
디바이스(1000)는 128 bits의 Counter 값을 암호화할 수 있다. 예를 들어, 디바이스(1000)는 암호화키를 이용하여 Counter값을 암호화할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 변환된 비트스트림과 암호화된 Counter값을 XOR연산 함으로써, 변환된 비트스트림을 암호화할 수 있다.
도 9를 참조할때, 디바이스(1000)는 암호화 대상중 제 1 계수(Val 1)가 변환된 비트스트림과 암호화된 Counter를 Xor연산 함으로써, 제 1 계수(Val 1)의 암호화 비트스트림(EV 1)을 획득할 수 있다.
또한, 디바이스(1000)는 암호화 대상중 제 2 계수(Val 2)가 변환된 비트스트림과 암호화된 Counter를 Xor연산 함으로써, 제 2 계수(Val 2)의 암호화된 비트스트림(EV 2)을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 CTR 모드를 이용하여 암호화 하는 경우, 비트스트림의 비트 크기 정보를 획득하고, 획득한 비트스트림의 비트 크기 정보를 이용할 수 있다.
예를 들어, 디바이스(1000)가 암호화된 제 1 카운터(Counter) 값을 이용하여 현재 비트스트림을 암호화 하는때, 현재 비트 스트림 이전에 제 1 카운터(Counter) 값을 이용하여 암호화된 비트 스트림들의 비트 크기의 합과 현재 비트 스트림의 비트 크기의 합이 128을 초과하는 경우, 디바이스(1000)는 암호화된 제 2 카운터(Counter)값을 이용하여 현재 비트스트림을 암호화할 수 있다.
또한, 디바이스(1000)가 암호화된 제 2 카운터(Counter) 값을 이용하여 현재 비트스트림을 암호화 하는때, 현재 비트 스트림 이전에 제 2 카운터(Counter) 값을 이용하여 암호화된 비트 스트림들의 비트 크기의 합과 현재 비트 스트림의 비트 크기의 합이 128을 초과하는 경우, 디바이스(1000)는 암호화된 제 3 카운터(Counter)값을 이용하여 현재 비트스트림을 암호화할 수 있다.
도 9를 참조할때, 제 1 카운터(Counter) 값을 이용하여 현재 비트스트림(Val_i+1)을 암호화하는때, 현재 비트 스트림 이전에 제 1 카운터(Counter) 값을 이용하여 암호화된 비트 스트림들(Val_1, Val_2, ... , Val_i)의 비트 크기의 합과 현재 비트 스트림(Val_i+1)의 비트 크기의 합이 128을 초과하는 경우, 디바이스(1000)는 암호화된 제 2 카운터(Counter)값을 이용하여 현재 비트스트림(Val_i+1)을 암호화할 수 있다.
일부 실시예에 따르며면, 디바이스(1000)는 비트 크기 정보를 이용하여 AES CTR_128bits방법을 적용함으로써, Counter값을 암호화하는 프로세스를 최소화할 수 있다. 또한, 디바이스(1000)는 Counter값을 암호화하는 프로세스를 최소화함으로써, 암호화 프로세스의 연산도를 감소시킬 수 있다.
도 10은 일부 실시예에 따라, 멀티미디어 비트스트림중 일부를 암호화 하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 멀티미디어 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 외부 디바이스로부터 멀티미디어 비트스트림을 수신할 수 있고, 멀티미디어 데이터를 인코딩 함으로써, 멀티미디어 비트스트림을 획득할 수 있다.
멀티미디어 비트스트림은 복수의 비트 그룹을 포함할 수 있다. 또한, 복수의 비트 그룹은 각각 헤더 영역과 페이로드 영역을 포함할 수 있다.
디바이스(1000)는 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다. 가공된 멀티미디어 데이터는 복수의 파라미터들(Val1, Val2, Val3, Val4, Val5, Val6, ......)을 포함할 수 있다.
디바이스(1000)는 가공된 멀티미디어 데이터중에서 암호화 대상을 선택할 수 있다. 예를 들어, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......)중에서, 일부를 암호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......) 전부를 암호화 대상으로 선택할 수 있다.
도 10을 참조할때, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터중에서, 일부(Val3, Val4, Val5)를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 선택된 암호화 대상을 암호화할 수 있다. 예를 들어, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환 하지 않고, 직접 암호화할 수 있다. 또한, 디바이스(1000)는 선택된 암호화 대상을 비트스트림으로 변환하고, 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화된 데이터를 획득할 수 있다.
디바이스(1000)는 암호화 대상을 암호화 함으로서, 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다.
예를 들어, 도 10을 참조할때, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 복수의 파라미터(Val1, Val2, Val3, Val4, Val5, Val6, ......)중에서 선택된 암호화 대상(Val3, Val4, Val5)를 암호화 함으로써, 암호화된 데이터(EVal3, EVal4, EVal5)를 포함하는 암호화된 멀티미디어 데이터를 획득할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터를 인코딩 함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 암호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, 고정 길이 코딩(fixed lenngth coding), CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
도 11은 일부가 암호화된 멀티미디어 비트스트림의 일 실시예를 표현한 도면인다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 대상을 선택할 수 있다.
예를들어, 디바이스(1000)는 암호화 대상으로, 가공된 멀티미디어 데이터중 일부를 선택할 수 있다. 또한, 디바이스(1000)는 암호화 대상으로, 가공된 멀티미디어 데이터 전부를 선택할 수 있다.
예를 들어, 디바이스(1000)는 복수의 블록으로 구성된 사진 데이터를 가공함으로써 가공된 사진 데이터를 획득하고, 가공된 사진 데이터 중에서 제 1 블록을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 기 설정된 기준에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사진 데이터에 포함된 사람이 암호화 대상으로 기 설정된 경우, 디바이스(1000)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
또한, 디바이스(1000)는 사용자의 입력에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사용자가 사진 데이터에 포함된 사람을 암호화 대상으로 입력한 경우, 디바이스(1000)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 사진 데이터에 포함된 사람을 암호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)는 사진 데이터에 포함된 사람을 나타내는 데이터를 암호화 함으로써, 일부가 암호화된 사진 비트스트림을 획득할 수 있다. 이 경우, 디바이스(1000)는 엔트로피 인코딩 이전에 암호화 대상을 암호화 할 수 있다.
기존의 디코딩 디바이스는 암호화된 멀티미디어 비트스트림을 디코딩할 수 있다. 예를 들어, 기존의 디코딩 디바이스는 암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 일부가 암호화된 멀티미디어 데이터를 획득할 수 있다. 또한, 기존의 디코딩 디바이스는 일부가 암호화된 멀티미디어 데이터를 디스플레이할 수 있다.
도 12는 일부 실시예에 따라, 암호화 보상을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 데이터를 복수의 영역으로 구분할 수 있다. 예를 들어, 디바이스(1000)는 멀티미디어 데이터의 전체 영역을 암호화 영역과 비암호화 영역으로 구분할 수 있다.
디바이스(1000)는 멀티미디어 데이터의 암호화 영역을 사용자의 입력에 기초하여 선택할 수 있다. 또한, 디바이스(1000)는 멀티 미디어 데이터의 암호화 영역을 기 설정된 기준에 기초하여 선택할 수 있다. 예를 들어, 사진 데이터에 포함된 사람이 암호화 대상으로 기 설정된 경우, 디바이스(1000)는 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
디바이스(1000)는 멀티미디어 데이터의 비암호화 영역을 암호화 인접 영역과 그 외 영역으로 구분할 수 있다. 암호화 인접 영역이란, 디바이스(1000)가 멀티미디어 데이터를 인코딩 하는때, 암호화 영역에 포함된 데이터를 이용하는 영역을 의미한다. 그 외 영역은 비암호화 영역에서 암호화 인접 영역을 제외한 영역을 의미한다.
예를 들어, 디바이스(1000)가 복수의 블록을 포함하는 사진 데이터에 코덱을 적용하여 인코딩하는때, 사진 데이터에 포함되고 비암호화 영역에 포함된 제 2 블록은 암호화 영역에 포함된 제 1 영역의 데이터를 참조할 수 있다. 이 경우, 디바이스(1000)는 제 2 블록을 암호화 인접 영역으로 구분할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 데이터중에서 암호화 영역을 암호화하는 경우, 도 2 부터 도 10에서 상술한 방법을 이용하여 암호화할 수 있다.
예를 들어, 디바이스(1000)는 멀티미디어 데이터중에서 암호화 영역에 대해서는 암호화를 수행하고, 비암호화 영역중 그 외 영역에 대해서는 암호화 하지 않음으로서, 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화 인접 영역을 포함한 멀티미디어 데이터를 암호화 하는 경우, 암호화 인접 영역에 대해 암호화 보상을 수행할 수 있다.
암호화 보상은, 디바이스(1000)가 암호화 대상을 암호화 하는때, 암호화 인접 영역의 데이터를 보정하는 프로세스를 의미한다.
예를 들어, 디바이스(1000)가 멀티미디어 데이터에 포함된 암호화 영역을 암호화 하는 경우, 암호화 영역의 데이터가 변환되기 때문에 암호화 영역을 참조하는 암호화 인접 영역의 데이터가 오류를 발생시킬 수 있다. 디바이스(1000)는 암호화 인접 영역에 대한 오류의 발생을 방지하기 위해서, 암호화 인접 영역의 데이터에 암호화 보상을 수행할 수 있다.
도 13은 일부 실시예에 따라, 암호화된 비트스트림을 복호화하는 방법을 설명하기 위한 도면이다.
단계 S1310에서, 디바이스(1000)는 암호화된 미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 멀티미디어 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 멀티미디어 비트스트림을 생성할 수 있고, 외부의 디바이스로부터 수신할 수 있다.
또한, 디바이스(1000)는 암호화된 메타 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 메타 비트스트림을 생성할 수 있고, 외부의 디바이스로부터 수신할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 비트스트림으로부터 암호화된 멀티미디어 데이터를 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 비트스트림으로부터 암호화된 메타 데이터를 획득할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 암호화된 멀티미디어 데이터를 획득할 수 있다. 엔트로피 디코딩이란 비트 스트림을 비트 스트림에 대응되는 데이터로 변환하는 코딩 방법을 의미한다. 엔트로피 디코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
단계 S1330에서, 디바이스(1000)는 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화 대상을 선택할 수 있다.
예를들어, 디바이스(1000)는 암호화된 멀티미디어 데이터를 분석하여, 암호화된 부분을 검색할 수 있고, 암호화된 부분중에서 복호화 대상을 선택할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 데이터를 분석하여, 암호화된 부분을 검색할 수 있고, 암호화된 부분중에서 복호화 대상을 선택할 수 있다.
예를 들어, 디바이스(1000)는 제 1 블록 과 제 2블록이 암호화된 사진 데이터를 획득할 수 있다. 디바이스(1000)는 암호화된 사진 데이터중에서, 암호화된 제 1 블록과 제 2 블록을 나타내는 부분을 검색할 수 있고, 제 1 블록을 나타내는 부분과 제 2 블록을 나타내는 부분중 복호화 대상을 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 멀티미디어 데이터중 암호화된 부분 전부를 복호화 대상으로 선택할 수 있고, 암호화된 부분중 일부를 복호화 대상으로 선택할 수 있다. 예를 들어, 디바이스(1000)는 기 설정된 기준, 또는 사용자 입력에 기초하여 암호화된 멀티 미디어 데이터중 암호화된 부분 전체 또는 일부를 복호화 대상으로 선택할 수 있다.
단계 S1350에서, 디바이스(1000)는 선택된 복호화 대상을 복호화할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 복호화 대상을 복호화할 수 있다. 예를 들어, 디바이스(1000)는 복호화 대상을 암호화할때 이용된 암호화 프로세스에 대응되는 복호화 프로세스를 이용하여, 복호화 대상을 복호화 할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 복호화 대상을 비트스트림으로 변환하지 않고, 직접 복호화할 수 있다.
예를 들어, 디바이스(1000)는 복호화 대상에 포함된 파라미터들의 값에 소정의 함수를 적용시킴으로써, 복호화 대상을 복호화할 수 있다.
다른 예를 들면, 디바이스(1000)는 복호화 대상에 포함된 제 1 블록의 파라미터들을, 제 2 블록의 파라미터들과 기 설정된 규칙에 기초하여 교환함으로써, 복호화 대상을 복호화할 수 있다.
또한, 디바이스(1000)는 복호화 대상에 포함된 파라미터들의 값의 부호를 변경함으로써, 복호화 대상을 복호화할 수 있다.
또한, 디바이스(1000)는 가공된 멀티미디어 데이터에 포함된 파라미터들의 부호를 기 설정된 복호화키를 이용해 변경함으로써, 복호화 대상을 복호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)는 선택된 복호화 대상을 비트스트림으로 변환하고, 비트스트림을 복호화 하고, 복호화된 비트스트림을 데이터로 변환함으로써, 복호화 대상을 복호화할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터 중에서 선택된 복호화 대상을 비트스트림으로 변환할 수 있다.
예를 들어, 디바이스(1000)는 복호화 대상을 기 설정된 맵핑 테이블에 맵핑시킴으로써 복호화 대상에 대응되는 소정의 값들을 획득할 수 있다. 또한 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary)변환 함으로써, 복호화 대상에 대응되는 비트스트림을 획득할 수 있다.
디바이스(1000)는 바이너리 변환을 수행할때, 소정의 값들 각각의 비트 크기 정보에 기초하여 바이너리 변환을 수행할 수 있다.
디바이스(1000)는 획득한 비트스트림을 복호화 할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 복호화 방법을 이용하여 획득한 비트스트림을 복호화할 수 있다. 비트스트림에 적용할 수 있는 복호화 방법에는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등이 있으며, 이에 한정되지 않는다.
디바이스(1000)는 복호화된 비트스트림을 데이터로 변환함으로써, 복호화된 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 복호화된 비트스트림에 바이너리 역변환을 수행하여 소정의 값들을 획득하고, 소정의 값들을 기 설정된 맵핑 테이블에 맵핑함으로써, 복호화된 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화된 데이터를 제한할 수 있다. 예를 들어, 복호화된 데이터의 값들이 기존의 디코딩 디바이스에서 허용되는 데이터의 값들을 벗어나는 경우, 디바이스(1000)는 복호화된 데이터의 값들을 기존의 디코딩 디바이스에서 허용되는 값으로 보정할 수 있다.
단계 S1370에서, 디바이스(1000)는 복호화 하는 단계의 결과에 기초하여 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화 대상을 복호화 함으로써, 복호화된 데이터를 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 멀티미디어 데이터중 복호화 대상을 복호화된 데이터로 변환함으로써, 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 데이터중 복호화 대상을 복호화된 데이터로 변환함으로써, 암호화된 메타 데이터를 복호화된 메타 데이터로 변환할 수 있다.
예를 들어, 디바이스(1000)가 선택한 복호화 대상이 복수의 블록으로 구분되는 사진 데이터중 제 1 블록인 경우, 디바이스(1000)는 제 1 블록을 나타내는 데이터를 복호화함으로써, 복호화 데이터를 획득할 수 있다. 디바이스(1000)는 암호화된 사진 데이터중에서 제 1 블록을 나타내는 데이터를 복호화 데이터로 변환함으로써, 복호화된 사진 데이터를 획득할 수 있다.
단계 S1390에서, 디바이스(1000)는 복호화된 멀티미디어 데이터를 인코딩 함으로써, 복호화된 멀티미디어 비트스트림을 생성할 수 있다.
디바이스(1000)는 복호화된 멀티 미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성할 수 있다. 또한, 디바이스(1000)는 복호화된 메타 데이터를 인코딩함으로써, 복호화된 메타 비트스트림을 생성할 수 있다.
예를 들어, 디바이스(1000)는 암호화된 사진 데이터 중에서 사람을 나타내는 데이터를 복호화 대상으로 선택한 경우, 암호화된 사진 데이터중에서 사람을 나타내는 데이터를 복호화된 데이터로 변환하여 복호화된 사진 데이터를 생성할 수 있고, 복호화된 사진 데이터를 인코딩함으로써, 복호화된 사진 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환할 수 있다. 예를 들어, 디바이스(1000)는 엔트로피 인코딩을 이용하여, 복호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
도 14는 일부 실시예에 따라, 복호화 대상을 복호화하고, 영상을 복원하는 방법을 설명하기 위한 도면이다.
디바이스(1000)는 암호화된 멀티미디어 비트스트림을 획득할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 외부 디바이스로부터 암호화된 멀티미디어 비트스트림을 수신할 수 있고, 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 암호화된 멀티미디어 데이터를 획득할 수 있다. 암호화된 멀티미디어 데이터는 복수의 파라미터들(64, 1, 1, 0, 2,......)을 포함할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 멀티미디어 데이터에 포함된 복수의 파라미터(64, 1, 1, 0, 2,......)중에서, 암호화된 부분을 검색할 수 있고, 검색된 부분중에서 복호화 대상을 선택할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터중 암호화된 부분 전부를 복호화 대상으로 선택할 수 있고, 암호화된 부분중 일부를 복호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)는 기 설정된 기준, 또는 사용자 입력에 기초하여 암호화된 멀티 미디어 데이터중 암호화된 부분 전체 또는 일부를 복호화 대상으로 선택할 수 있다.
디바이스(1000)는 선택된 복호화 대상을 복호화 함으로써, 복호화 대상을 복호화된 데이터로 변환할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 멀티미디어 데이터에 포함된 암호화된 데이터(64, 1, 1, 0, 1, ......)을 복호화 함으로써, 복호화된 데이터(70, -1, -1, 0, -1,......)를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화 대상을 암호화할때 이용된 암호화 프로세스에 대응되는 복호화 프로세스를 이용하여, 복호화 대상을 복호화 할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 복호화 대상을 비트스트림으로 변환하지 않고, 직접 복호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)는 복호화 대상(64, 1, 1, 0, 1, ......)을 비트스트림으로 변환하고, 비트스트림을 복호화 하고, 복호화된 비트스트림을 데이터로 변환함으로써, 복호화 대상을 복호화된 데이터(70, -1, -1, 0, -1,......)로 변환할 수 있다.
디바이스(1000)는 복호화된 데이터에 기초하여, 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환할 수 있고, 복호화된 멀티미디어 데이터를 이용하여 샘플값들을 복원함으로써, 영상을 복원할 수 있다.
도 15는 일부 실시예에 따라, 복호화 대상을 비트스트림으로 변환하지 않고 직접 복호화 하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 복호화 대상을 비트스트림으로 변환하지 않고, 직접 복호화 할 수 있다.
예를 들어, 디바이스(1000)는 복호화 대상이 복수의 파라미터인 경우, 파라미터들을 직접 복호화할 수 있다. 도 15를 참조할때, 디바이스(1000)는 복호화 대상인 복수의 파라미터 각각의 부호를 변경함으로서, 복호화 대상인 복수의 파라미터를 복호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 복호화 대상인 복수의 파라미터 각각의 부호를 기 설정된 복호화키를 이용해 변경함으로써, 복호화 대상인 복수의 파라미터를 복호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 복호화 대상이 제 1 블록을 나타내는 복수의 파라미터인 경우, 제 1 블록을 나타내는 복수의 파라미터를 다른 블록의 파라미터들과 소정의 규칙에 의하여 교환함으로써, 복호화 대상인 복수의 파라미터를 복호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 복호화 대상이 제 1 블록을 나타내는 복수의 파라미터인 경우, 제 1 블록을 나타내는 복수의 파라미터를 다른 블록의 파라미터들과 스크램블링 함으로서, 복호화 대상인 복수의 파라미터를 복호화할 수 있다.
또한 예를 들어, 디바이스(1000)는 복호화 대상인 복수의 파라미터에 특정 함수를 적용하여 변경함으로써, 복호화 대상인 복수의 파라미터를 복호화할 수 있다.
도 16은 일부 실시예에 따라, 복호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 직접 복호화 하는 방법을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 선택된 복호화 대상을 비트스트림으로 변환하고, 변환된 비트스트림을 복호화 하고, 복호화된 비트스트림을 데이터로 변환함으로써, 복호화 대상을 복호화할 수 있다.
단계 S1610에서, 디바이스(1000)는 기 설정된 맵핑 테이블에 기초하여 선택된 복호화 대상에 대응되는 소정의 값들을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)가 선택한 복호화 대상은 복수의 계수를 포함할 수 있다. 예를 들어, 디바이스(1000)가 선택한 복호화 대상은 -1023보다 크고 1023보다 작은 값들중 하나의 값을 갖는 복수의 계수를 포함할 수 있다.
일부 실시예에 다르면, 디바이스(1000)는 맵핑 테이블을 기준으로, 선택된 복호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
예를 들어, 맵핑 테이블은 계수들 각각의 범위를 제 0 범위(0), 제 1 범위(-1,1), 제 2 범위(-3,-2,2,3), 제 3범위(-7,...,-4, 4,...,7), 제 4범위(-15,...,-8,8,...,15), 제 5범위(-31,...,-16,16,...,31), 제 6범위(-63...-32, 32...63), 제 7범위(-127,...,-64,64,...,127), 제 8범위(-255,...,-128,128,...,255), 제 9범위(-511,...,-256,256,...,511), 제 10범위(-1023,...,-512,512,...,1023), 제 11범위(-2047,...,-1024,1024,...,2047)로 구분할 수 있다. 디바이스(1000)는 맵핑 테이블에 기초하여, 계수들 각각의 범위를 제 0 범위 부터 제 11범위중 하나로 결정할 수 있다.
디바이스(1000)는 복호화 대상에 포함된 계수들 각각의 값의 범위의 기준이 되는 맵핑 테이블을 복호화 할때마다 변경할 수 있다. 또한, 디바이스(1000)는 항상 동일한 맵핑 테이블을 이용하여 복호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
디바이스(1000)는 맵핑 테이블을 사용자의 입력에 기초하여 생성, 변경, 또는 삭제할 수 있다. 또한, 디바이스(1000)는 외부의 디바이스로부터 맵핑 테이블을 수신할 수 있으며, 미리 저장된 맵핑 테이블을 이용할 수 있다.
디바이스(1000)가 보유한 맵핑 테이블은 맵핑 테이블에 포함된 범위들 각각에 대응되는 다양한 변수를 포함할 수 있다. 예를 들어, 디바이스(1000)가 보유한 맵핑 테이블은 최대값 변수(MV)를 포함할 수 있다. 최대 값 변수(MV)는 구분된 영역들 각각이 포함할 수 있는 최대값을 의미한다.
예를 들어, 디바이스(1000)가 보유한 맵핑 테이블은, 제 0 영역의 최대값 변수(MV)로 0을, 제 1 영역의 최대값 변수는 1을, 제 2 영역의 최대값 변수로 3을 포함할 수 있다.
디바이스(1000)는 계수들 각각의 결정된 값의 범위를 맵핑 테이블에 대응시킴으로서, 결정된 값의 범위에 대응되는 최대값 변수(MV)를 획득할 수 있다.
예를 들어, 복호화 대상에 포함된 제 1 계수의 값의 범위가 제 0 범위인 경우, 디바이스(1000)는 제 0 범위를 맵핑 테이블에 대응시킴으로써, 제 0 범위에 대응되는 최대값 변수인 0을 획득할 수 있다.
다른예를 들어, 복호화 대상에 포함된 제 1 계수의 값의 범위가 제 1 범위인 경우, 디바이스(1000)는 제 1 범위를 맵핑 테이블에 대응시킴으로써, 제 1 범위에 대응되는 최대값 변수인 1을 획득할 수 있다.
다른예를 들어, 복호화 대상에 포함된 제 2 계수의 값의 범위가 제 2 범위인 경우, 디바이스(1000)는 제 2 범위를 맵핑 테이블에 대응시킴으로써, 제 2 범위에 대응되는 최대값 변수인 3을 획득할 수 있다.
디바이스(1000)는 획득한 복호화 대상에 포함된 계수들 각각의 값과, 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수(MV)에 기초하여, 소정의 값을 획득할 수 있다.
If(E_val<0){ val = E_val + MV }
else { val = E_val } ... 식 (3)
예를 들어, 디바이스(1000)는 식(3)에 기초하여, 소정의 값을 획득할 수 있다. E_val은 복호화 대상에 포함된 계수의 값을 나타내고, val은 소정의 값을 나타내며, MV는 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수를 나타낸다.
예를 들어, 디바이스(1000)는 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값(E_val)이 0보다 작은 경우, { 제 1 계수의 값(E_val) + 최대 값 변수(MV) }을 제 1 계수에 대응되는 소정의 값(val)으로 획득할 수 있다.
또한, 디바이스(1000)는 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 0보다 큰 경우, 제 1 계수의 값(E_val)을 제 1 계수의 값에 대응되는 소정의 값(val)으로 획득할 수 있다.
예를 들어, 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -114인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(-127,...,-64,64,...,127)로 획득할 수 있다. 또한, 디바이스(1000)는 제 7 범위에 대응되는 최대값 변수(MV)인 127을 맵핑 테이블로부터 획득할 수 있다.
디바이스(1000)는 제 1 계수인 -114를 식 (3)에 대응시킬 수 있다. 디바이스(1000)는 제 1 계수를 식 (3)에 대응시킴으로써, 소정의값(val=13)을 획득할 수 있다.
단계 1630에서, 디바이스(1000)는 소정의 값들을 바이너리(binary) 변환함으로써, 비트스트림을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary) 변환할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값을 바이너리 변환 함으로써, 0또는 1로서 표현할 수 있다.
디바이스(1000)는 획득한 소정의 값의 비트 크기 정보를 결정할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값과 대응되는 복호화 대상의 값의 범위에 기초하여, 비트 크기 정보를 결정할 수 있다.
예를 들어, 디바이스(1000)는 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -114인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(-127,...,-64,64,...,127)로 획득하고, 제 1 계수에 대응되는 소정의값(val=13)을 획득할수 있다.
또한, 디바이스(1000)는 획득한 소정의 값(val=13)의 비트 크기 정보를 소정의 값에 대응되는 제 1 계수의 값의 범위에 기초하여 획득할 수 있다.
예를 들어, 디바이스(1000)는 제 1 계수의 값의 범위인, 제 7 범위를 맵핑 테이블에 맵핑 시킴으로써, 소정의 값의 비트 크기 정보인 7을 획득할 수 있다.
디바이스(1000)는 획득한 소정의 값을 비트 크기 정보에 기초하여 바이너리(binary) 변환할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값(val=13)을 7비트를 이용하여 바이너리 변환 할 수 있다. 예를 들어, 디바이스(1000)는 소정의 값(val=13)을 “0001101”로 변환할 수 있다.
단계 S1650에서, 디바이스(1000)는 비트스트림에 복호화 프로세스를 적용함으로써, 복호화된 비트스트림을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 비트스트림에 복호화 프로세스를 적용할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 복호화 프로세스를 이용하여 비트스트림을 복호화할 수 있다. 또한, 디바이스(1000)는 복호화 대상을 암호화할때 이용된 암호화 프로세스에 대응되는 복호화 프로세스를 이용하여, 복호화 대상을 복호화 할 수 있다.
비트스트림에 적용할 수 있는 복호화 프로세스는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 비트스트림을 복호화 함으로써, 복호화된 비트스트림을 획득할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값에 기초하여 획득한 비트스트림 “0001101”을 복호화 함으로써, 복호화된 비트스트림”0000011”을 획득할 수 있다.
단계 S1670에서, 디바이스(1000)는 기 설정된 맵핑 테이블에 기초하여 복호화된 비트스트림에 대응되는 복호화 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화된 비트스트림에 바이너리 역변환을 적용함으로써, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림이 “0000011”인 경우, “0000011”을 바이너리 역변환 함으로써, 소정의값 “3”을 획득할 수 있다.
디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑 시킴으로써, 복호화된 비트스트림에 대응되는 다양한 정보를 획득할 수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑시킴으로써, 복호화된 비트스트림의 한계 변수를 획득할수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 한계 변수(“64”)를 획득할 수 있다.
또한, 디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑 테이블에 맵핑 시킴으로써, 복호화된 비트스트림에 대응 되는 복호화된 데이터의 최대값 변수(MV)를 획득할 수 있다. 최대 값 변수(MV)는 복호화된 데이터가 포함된 영역이 포함할 수 있는 최대값을 의미한다.
일부 실시예에 따르면, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값, 복호화된 비트스트림에 대응되는 한계 변수, 및 복호화된 비트스트림에 대응되는 최대 값 변수(MV)를 이용하여, 복호화된 비트스트림에 대응되는 복호화된 데이터를 획득할 수 있다.
If(val3<limit){ D_val = val3 - MV }
else { D_val = val3 } ... 식 (4)
예를 들어, 디바이스(1000)는 식(4)를 이용하여 복호화된 데이터를 획득할 수 있다. val3은 복호화된 비트스트림에 대응되는 소정의값, limit은 복호화된 비트스트림에 대응되는 한계 변수, MV는 복호화된 비트스트림에 대응되는 최대 값 정보를 의미한다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값(val3)이 복호화된 비트스트림에 대응되는 한계 변수(limit)보다 작은 경우, {소정의값(val3)-복호화된 비트스트림에 대응되는 최대값 정보(MV)}를 복호화된 비트스트림에 대응되는 복호화된 데이터(D_val)로 결정할 수 있다.
또한, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값(val3)이 복호화된 비트스트림에 대응되는 한계 변수(limit)보다 큰 경우, 소정의값(val3)을 복호화된 비트스트림에 대응되는 복호화된 데이터(D_val)로 결정할 수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림이 “0000011”인 경우, “0000011”을 바이너리 역변환 함으로써, 소정의값 “3”을 획득할 수 있다. 또한, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 한계 변수(“64”)를 획득할 수 있다. 또한, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 최대 값 정보(“127”)를 획득할 수 있다.
이 경우, 소정의값(“3”)은 한계 변수(“64”)보다 작으므로, 디바이스(1000)는 복호화된 비트스트림(“0000011”)에 대응되는 복호화 데이터(D_val)로서, “-124(3-127=-124)”를 획득할 수 있다.
디바이스(1000)는 복호화 대상에 포함된 계수들 각각을 엔트로피 인코딩 이전에 복호화 함으로써, 기존에 멀티미디어 비트스트림에 적용된 코덱 특성을 유지한 상태로, 멀티미디어 비트스트림을 복호화할 수 있다.
도 17은 일부 실시예에 따라, 디바이스(1000)가 기 설정된 맵핑 테이블을 이용하여 복호화 대상을 복호화하는 방법을 설명하기 위한 도면이다.
일부 실시예에 다르면, 디바이스(1000)는 기 설정된 맵핑 테이블을 기준으로, 선택된 복호화 대상에 포함된 계수들 각각의 값의 범위를 결정할 수 있다.
예를 들어, 맵핑 테이블은 계수들 각각의 범위를 제 0 범위(0), 제 1 범위(-1,1), 제 2 범위(-3,-2,2,3), 제 3범위(-7,...,-4, 4,...,7), 제 4범위(-15,...,-8,8,...,15), 제 5범위(-31,...,-16,16,...,31), 제 6범위(-63...-32, 32...63), 제 7범위(-127,...,-64,64,...,127), 제 8범위(-255,...,-128,128,...,255), 제 9범위(-511,...,-256,256,...,511), 제 10범위(-1023,...,-512,512,...,1023), 제 11범위(-2047,...,-1024,1024,...,2047)로 구분할 수 있다. 디바이스(1000)는 맵핑 테이블에 기초하여, 계수들 각각의 범위를 제 0 범위 부터 제 11범위중 하나로 결정할 수 있다.
도 17을 참조할때, 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -114인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(1710)로 획득할 수 있다
디바이스(1000)는 계수들 각각의 결정된 값의 범위를 기 설정된 맵핑 테이블에 대응시킴으로서, 결정된 값의 범위에 대응되는 최대값 변수(MV)를 획득할 수 있다.
도 17을 참조할때, 복호화 대상에 포함된 제 1 계수의 값의 범위가 제 7 범위인 경우, 디바이스(1000)는 제 7 범위를 기 설정된 맵핑 테이블에 대응시킴으로써, 제 7 범위에 대응되는 최대값 변수인 127(1720)을 획득할 수 있다.
디바이스(1000)는 획득한 복호화 대상에 포함된 계수들 각각의 값과, 계수들 각각의 결정된 값의 범위에 대응되는 최대값 변수(MV)에 기초하여, 소정의 값을 획득할 수 있다.
도 17을 참조할때, 복호화 대상에 포함된 복수의 계수중 제 1 계수의 값이 -114인 경우, 디바이스(1000)는 맵핑 테이블을 기준으로 하여, 제 1 계수의 값의 범위를 제 7범위(1710)로 결정할 수 있다. 또한, 디바이스(1000)는 제 7 범위(1710)에 대응되는 최대값 변수(Max_val)인 127(1720)을 맵핑 테이블로부터 획득할 수 있다.
디바이스(1000)는 복호화 대상에 포함된 복수의 계수중 제 1 계수인 -114가 0보다 작으므로, 제 1 계수의 값에 최대값 변수(Max_val)인 127(1720)을 더함으로써, 제 1 계수에 대응되는 소정의 값(-114+127= “13”)을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 획득한 소정의 값들을 바이너리(binary) 변환할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값을 바이너리 변환 함으로써, 0또는 1로서 표현할 수 있다.
디바이스(1000)는 획득한 소정의 값의 비트 크기 정보를 결정할 수 있다. 예를 들어, 디바이스(1000)는 획득한 소정의 값과 대응되는 복호화 대상의 값의 범위에 기초하여, 비트 크기 정보를 결정할 수 있다.
도 17을 참조할때, 디바이스(1000)는 제 1 계수의 값의 범위인, 제 7 범위를 맵핑 테이블에 맵핑 시킴으로써, 소정의 값의 비트 크기 정보인 7(1730)을 획득할 수 있다.
디바이스(1000)는 획득한 소정의 값을 비트 크기 정보에 기초하여 바이너리(binary) 변환할 수 있다.
도 17을 참조할때, 디바이스(1000)는 소정의 값(val=13)을 7비트를 이용하여 바이너리 변환 할 수 있다. 예를 들어, 디바이스(1000)는 소정의 값(val=13)을 “0001101”로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 비트스트림에 복호화 프로세스를 적용할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 복호화 프로세스를 이용하여 비트스트림을 복호화할 수 있다.
비트스트림에 적용할 수 있는 복호화 프로세스는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)는 비트스트림을 복호화 함으로써, 복호화된 비트스트림을 획득할 수 있다.
예를 들어, 디바이스(1000)는 소정의 값에 기초하여 획득한 비트스트림 “0001101”을 복호화 함으로써, 복호화된 비트스트림”0000011”을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화된 비트스트림에 바이너리 역변환을 적용함으로써, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림이 “0000011”인 경우, “0001101”을 바이너리 역변환 함으로써, 소정의값 “13”을 획득할 수 있다.
디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑 시킴으로써, 복호화된 비트스트림에 대응되는 다양한 정보를 획득할 수 있다.
도 17을 참조할때, 디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑테이블에 맵핑시킴으로써, 복호화된 비트스트림의 한계 변수(1740)를 획득할수 있다. 예를 들어, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 한계 변수(“64”)(1740)를 획득할 수 있다.
또한, 디바이스(1000)는 복호화된 비트스트림의 비트 크기 정보를 맵핑 테이블에 맵핑 시킴으로써, 복호화된 비트스트림에 대응 되는 복호화된 데이터의 최대값 변수(MV)를 획득할 수 있다. 최대 값 변수(MV)는 복호화된 데이터가 포함된 값의 범위가 포함할 수 있는 최대값을 의미한다.
도 17을 참조할때, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)를 맵핑테이블에 대응시킴으로써, 최대 값 변수(MV) “127”(1720)을 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값, 복호화된 비트스트림에 대응되는 한계 변수, 및 복호화된 비트스트림에 대응되는 최대 값 변수(MV)를 이용하여, 복호화된 비트스트림에 대응되는 복호화된 데이터를 획득할 수 있다.
예를 들어, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값(val3)이 복호화된 비트스트림에 대응되는 한계 변수(limit)보다 작은 경우, {소정의값(val3)-복호화된 비트스트림에 대응되는 최대값 정보(MV)}를 복호화된 비트스트림에 대응되는 복호화된 데이터(E_val)로 결정할 수 있다.
또한, 디바이스(1000)는 복호화된 비트스트림에 대응되는 소정의값(val3)이 복호화된 비트스트림에 대응되는 한계 변수(limit)보다 큰 경우, 소정의 값(val3)을 복호화된 비트스트림에 대응되는 복호화된 데이터(D_val)로 결정할 수 있다.
도 17을 참조할때, 복호화된 비트스트림이 “0000011”인 경우, “0000011”을 바이너리 역변환 함으로써, 소정의값 “3”을 획득할 수 있다. 또한, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)(1730)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 한계 변수(“64”)(1740)를 획득할 수 있다. 또한, 디바이스(1000)는 복호화된 비트스트림(“0000011”)의 비트크기 정보(“7”)(1730)를 맵핑테이블에 대응시킴으로써, 복호화된 비트스트림(“0000011”)에 대응되는 최대 값 정보(“127”)(1720)를 획득할 수 있다.
이 경우, 소정의값(“33”)은 한계 변수(“64”)(1740)보다 작으므로, 디바이스(1000)는 복호화된 비트스트림(“0000011”)에 대응되는 복호화 데이터(D_val)로서, “-124(3-127=-124)”를 획득할 수 있다.
도 18은 일부 실시예에 따라, 복호화 보상을 설명하기 위한 도면이다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 멀티미디어 데이터를 복수의 영역으로 구분할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 멀티미디어 데이터의 전체 영역을 복호화 영역과 비복호화 영역으로 구분할 수 있다.
디바이스(1000)는 암호화된 멀티미디어 데이터의 복호화 영역을 사용자의 입력에 기초하여 선택할 수 있다. 또한, 디바이스(1000)는 암호화된 멀티 미디어 데이터의 복호화 영역을 기 설정된 기준에 기초하여 선택할 수 있다.
디바이스(1000)는 멀티미디어 데이터의 비복호화 영역을 복호화 인접 영역과 그 외 영역으로 구분할 수 있다. 복호화 인접 영역이란, 디바이스(1000)가 멀티미디어 데이터를 인코딩 또는 디코딩하는때, 복호화 영역에 포함된 데이터를 이용하는 영역을 의미한다. 그 외 영역은 비복호화 영역에서 복호화 인접 영역을 제외한 영역을 의미한다.
예를 들어, 디바이스(1000)가 복수의 블록을 포함하는 사진 데이터에 코덱을 적용하여 인코딩 또는 디코딩하는때, 사진 데이터에 포함되고 비복호화 영역에 포함된 제 2 블록은 복호화 영역에 포함된 제 1 영역의 데이터를 참조할 수 있다. 이 경우, 디바이스(1000)는 제 2 블록을 복호화 인접 영역으로 구분할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 멀티미디어 데이터중에서 복호화 영역을 복호화하는 경우, 도 13 부터 도 17에서 상술한 방법을 이용하여 복호화할 수 있다.
예를 들어, 디바이스(1000)는 멀티미디어 데이터중에서 복호화 영역에 대해서는 복호화를 수행하고, 비복호화 영역중 그 외 영역에 대해서는 복호화 하지 않음으로서, 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 복호화 인접 영역을 포함한 멀티미디어 데이터를 복호화 하는 경우, 복호화 인접 영역에 대해 복호화 보상을 수행할 수 있다.
복호화 보상은, 디바이스(1000)가 복호화 대상을 복호화 하는때, 복호화 인접 영역의 데이터를 보정하는 프로세스를 의미한다.
예를 들어, 디바이스(1000)가 멀티미디어 데이터에 포함된 복호화 영역을 복호화 하는 경우, 복호화 인접 영역은 복호화 영역의 데이터를 이용하기 때문에 복호화 인접 영역의 데이터에 오류가 발생할 수 있다. 디바이스(1000)는 복호화 인접 영역에 대한 오류의 발생을 방지하기 위해서, 복호화 인접 영역에 복호화 보상을 수행할 수 있다.
도 19는 일부 실시예에 따른, 디바이스를 설명하기 위한 블록도이다.
일부 실시예에 따르면, 디바이스(1000)는 제어부(1010), 암호화부(1020), 및 복호화부(1030)를 포함할 수 있다. 제어부(1010), 암호화부(1020), 및 복호화부(1030)는 하나의 프로세서에 의해 구현될 수 있다. 또한, 제어부(1010), 암호화부(1020), 및 복호화부(1030)는 각각 하나의 프로세서에 의해 구현될 수 있고, 복수의 프로세서에 의해 구현될 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 멀티미디어 데이터를 획득할 수 있다. 멀티미디어 데이터는, 음성, 문자, 그림, 동영상등이 혼합된 다양한 데이터를 의미한다. 예를 들어, 멀티미디어 데이터는, 사진 데이터, 노래 데이터, 동영상 데이터, 오디오 데이터, 텍스트 데이터, 플래쉬 데이터등을 포함할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 메타 데이터를 획득할 수 있다.
디바이스(1000)의 암호화부(1020)는 멀티미디어 데이터에 적어도 하나의 서브 코딩 모듈을 적용할 수 있다. 서브 코딩 모듈이란, 멀티미디어 데이터에 다양한 코덱을 적용하여 멀티미디어 데이터를 압축하는때 이용되는 서브 모듈을 의미한다. 예를 들어, 서브 코딩 모듈은, DCT변환 모듈, 양자화 모듈, 예측 모듈, 엔트로피 코딩 모듈, 엔트로피 디코딩 모듈등을 포함할 수 있으며, 이에 한정되지 않는다.
디바이스(1000)의 암호화부(1020)는 복수개의 서브 코딩 모듈을 포함할 수 있다. 복수의 서브 코딩 모듈은 하나의 프로세서에 의해 구현될 수 있고, 각각 하나의 프로세서에 의해 구현될 수 있으며, 복수개의 프로세서에 의해 구현될 수 있으며, 이에 한정되지 않는다.
디바이스(1000)의 암호화부(1020)는 멀티미디어 데이터, 메타 데이터, 또는 이들의 조합에 적어도 하나의 서브 코딩 모듈을 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)는 DCT 변환 모듈 및 양자와 모듈을 멀티미디어 데이터에 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
가공된 멀티미디어 데이터는 멀티미디어 데이터를 인코딩 하는 과정에서 발생되는 다양한 파라미터를 포함할 수 있다. 예를 들어, 가공된 멀티미디어 데이터는 디프런셜 코딩(Differential coding)된 DC value, 양자화된 샘플들, AC 부호화된 샘플들을 포함할 수 있으며, 이에 한정되지 않는다.
다른 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 멀티미디어 비트스트림을 이용하여 가공된 멀티미디어 데이터를 획득할 수 있다.
디바이스(1000)의 암호화부(1020)는 멀티미디어 데이터를 직접 인코딩 함으로써, 멀티미디어 비트스트림을 획득할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 외부의 디바이스로부터 멀티미디어 비트스트림을 수신할 수 있다.
디바이스(1000)의 암호화부(1020)는 멀티미디어 비트스트림에 서브 코딩 모듈을 적용함으로써 가공된 멀티미디어 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)의 암호화부(1020)는 멀티미디어 비트스트림에 엔트로피 디코딩 모듈을 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
엔트로피 디코딩 모듈은 엔트로피 디코딩을 수행하는 모듈을 의미한다. 엔트로피 디코딩이란 비트 스트림을 비트 스트림에 대응되는 데이터로 변환하는 코딩 방법을 의미한다. 엔트로피 디코딩은, 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 암호화 대상을 선택할 수 있다.
예를들어, 디바이스(1000)의 암호화부(1020)는 암호화 대상으로, 가공된 멀티미디어 데이터중 일부를 선택할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 암호화 대상으로, 가공된 멀티미디어 데이터 전부를 선택할 수 있다.
예를 들어, 디바이스(1000)의 암호화부(1020)는 복수의 블록으로 구성된 사진 데이터를 가공함으로써 가공된 사진 데이터를 획득하고, 가공된 사진 데이터 중에서 제 1 블록을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
디바이스(1000)의 암호화부(1020)는 기 설정된 기준에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사진 데이터에 포함된 사람이 암호화 대상으로 기 설정된 경우, 디바이스(1000)의 암호화부(1020)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
또한, 디바이스(1000)의 암호화부(1020)는 사용자의 입력에 기초하여 암호화 대상을 선택할 수 있다. 예를 들어, 사용자가 사진 데이터에 포함된 사람을 암호화 대상으로 입력한 경우, 디바이스(1000)의 암호화부(1020)는 사진 데이터를 가공하고, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화 대상으로 선택할 수 있다.
또한, 디바이스(1000)의 암호화부(1020)는 메타 데이터를 암호화 대상으로 선택할 수 있다. 예를 들어, 디바이스(1000)는 메타 데이터 전체, 메타 데이터중 일부, 또는 가공된 메타 데이터를 암호화 대상으로 선택할 수 있다.
일부 실시예에 따르면, 선택된 암호화 대상은 다양한 파라미터를 포함할 수 있다. 예를 들어, 선택된 암호화 대상은 디프런셜 코딩(Differential coding)된 DC value, 양자화된 샘플들,또는 AC 부호화된 샘플들을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 선택된 암호화 대상을 비트스트림으로 변환하지 않고, 직접 암호화할 수 있다.
예를 들어, 디바이스(1000)의 암호화부(1020)는 암호화 대상에 포함된 파라미터들의 값에 소정의 함수를 적용시킴으로써, 암호화 대상을 암호화할 수 있다.
다른 예를 들면, 디바이스(1000)의 암호화부(1020)는 암호화 대상에 포함된 제 1 블록의 파라미터들을, 제 2 블록의 파라미터들과 기 설정된 규칙에 기초하여 교환함으로써, 암호화 대상을 암호화할 수 있다.
또한, 디바이스(1000)의 암호화부(1020)는 암호화 대상에 포함된 파라미터들의 값의 부호를 변경함으로써, 암호화 대상을 암호화할 수 있다.
또한, 디바이스(1000)의 암호화부(1020)는 가공된 멀티미디어 데이터에 포함된 파라미터들의 부호를 기 설정된 암호화키를 이용해 변경함으로써, 암호화 대상을 암호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 선택된 암호화 대상을 비트스트림으로 변환하고, 비트스트림을 암호화 하고, 암호화된 비트스트림을 데이터로 변환함으로써, 암호화 대상을 암호화할 수 있다.
디바이스(1000)의 암호화부(1020)는 가공된 멀티미디어 데이터 중에서 선택된 암호화 대상을 비트스트림으로 변환할 수 있다.
예를 들어, 디바이스(1000)의 암호화부(1020)는 암호화 대상을 기 설정된 맵핑 테이블에 맵핑시킴으로써 암호화 대상에 대응되는 소정의 값들을 획득할 수 있다. 또한 디바이스(1000)의 암호화부(1020)는 획득한 소정의 값들을 바이너리(binary)변환 함으로써, 암호화 대상에 대응되는 비트스트림을 획득할 수 있다.
디바이스(1000)의 암호화부(1020)는 바이너리 변환을 수행할때, 소정의 값들 각각의 비트 크기 정보에 기초하여 바이너리 변환을 수행할 수 있다.
디바이스(1000)의 암호화부(1020)는 획득한 비트스트림을 암호화 할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 암호화 방법을 이용하여 획득한 비트스트림을 암호화할 수 있다. 비트스트림에 적용할 수 있는 암호화 방법에는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등이 있으며, 이에 한정되지 않는다.
디바이스(1000)의 암호화부(1020)는 암호화된 비트스트림을 데이터로 변환함으로써, 암호화된 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)의 암호화부(1020)는 암호화된 비트스트림에 바이너리 역변환을 수행하여 소정의 값들을 획득하고, 소정의 값들을 기 설정된 맵핑 테이블에 맵핑함으로써, 암호화된 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 암호화 대상을 암호화 함으로써, 암호화된 데이터를 획득할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 가공된 멀티미디어 데이터중 암호화 대상을 암호화된 데이터로 변환함으로써, 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 가공된 메타 데이터중 암호화 대상을 암호화된 데이터로 변환함으로써, 가공된 메타 데이터를 암호화된 메타 데이터로 변환할 수 있다.
예를 들어, 디바이스(1000)의 암호화부(1020)가 선택한 암호화 대상이 복수의 블록으로 구분되는 사진 데이터중 제 1 블록인 경우, 디바이스(1000)의 암호화부(1020)는 제 1 블록을 나타내는 데이터를 암호화함으로써, 암호화 데이터를 획득할 수 있다. 디바이스(1000)의 암호화부(1020)는 가공된 사진 데이터중에서 제 1 블록을 나타내는 데이터를 암호화 데이터로 변환함으로써, 암호화된 사진 데이터를 획득할 수 있다.
디바이스(1000)의 암호화부(1020)는 암호화된 멀티 미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 암호화된 메타 데이터를 인코딩함으로써, 암호화된 메타 비트스트림을 생성할 수 있다.
예를 들어, 디바이스(1000)의 암호화부(1020)는 가공된 사진 데이터 중에서 사람을 나타내는 데이터를 암호화 대상으로 선택한 경우, 가공된 사진 데이터중에서 사람을 나타내는 데이터를 암호화된 데이터로 변환하여 암호화된 멀티미디어 데이터를 생성할 수 있고, 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 사진 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환하는 방법을 의미한다. 예를 들어, 디바이스(1000)의 암호화부(1020)는 엔트로피 인코딩을 이용하여, 암호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)의 암호화부(1020)는 멀티미디어 비트스트림에 적용된 코덱과 대응되는 엔트로피 코딩을, 암호화된 멀티미디어 데이터에 적용할 수 있다. 또한, 디바이스(1000)의 암호화부(1020)는 메타 비트스트림에 적용된 코덱과 대응되는 엔트로피 코딩을, 암호화된 메타 데이터에 적용할 수 있다.
예를 들어, 멀티미디어 비트스트림에 적용된 코덱이 H.265이고, H.265에서 이용되는 엔트로피 코딩 방법이 CABAC인 경우, 디바이스(1000)는 CABAC을 이용하여 암호화된 멀티미디어 데이터를 엔트로피 인코딩할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 암호화 대상을 암호화할 수 있다. 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 암호화 대상을 암호화 함으로서, 기존의 디코딩 디바이스에서 이용가능한 암호화된 멀티미디어 비트스트림을 생성할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 비트스트림을 획득할 수 있고, 암호화된 멀티미디어 비트스트림으로부터 암호화된 멀티미디어 데이터를 획득할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 비트스트림에 엔트로피 디코딩을 수행함으로써, 암호화된 멀티미디어 데이터를 획득할 수 있다. 엔트로피 디코딩이란 비트 스트림을 비트 스트림에 대응되는 데이터로 변환하는 코딩 방법을 의미한다. 엔트로피 디코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)는 암호화된 메타 비트스트림을 획득할 수 있다. 예를 들어, 디바이스(1000)는 암호화된 메타 비트스트림을 생성할 수 있고, 외부의 디바이스로부터 수신할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 비트스트림으로부터 암호화된 메타 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 복호화 대상을 선택할 수 있다.
예를들어, 디바이스(1000)의 복호화부(1030)는 복호화 대상으로, 암호화된 멀티미디어 데이터를 분석하여, 암호화된 부분을 검색할 수 있다. 또한, 암호화된 부분중에서 복호화 대상을 선택할 수 있다. 또한, 디바이스(1000)는 암호화된 메타 데이터를 분석하여, 암호화된 부분을 검색할 수 있고, 암호화된 부분중에서 복호화 대상을 선택할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 제 1 블록 과 제 2블록이 암호화된 사진 비트스트림을 획득할 수 있다. 디바이스(1000)의 복호화부(1030)는 암호화된 사진 비트스트림 중에서, 암호화된 제 1 블록과 제 2 블록을 나타내는 부분을 검색할 수 있고, 제 1 블록을 나타내는 부분과 제 2 블록을 나타내는 부분중 복호화 대상을 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 데이터중 암호화된 부분 전부를 복호화 대상으로 선택할 수 있고, 암호화된 부분중 일부를 복호화 대상으로 선택할 수 있다. 또한, 디바이스(1000)의 복호화부(1030)는 기 설정된 기준, 또는 사용자 입력에 기초하여 암호화된 멀티 미디어 데이터중 암호화된 부분 전체 또는 일부를 복호화 대상으로 선택할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 선택된 복호화 대상을 복호화할 수 있다. 예를 들어, 디바이스(1000)의 복호화부(1030)는 복호화 대상을 암호화할때 이용된 암호화 프로세스에 대응되는 복호화 프로세스를 이용하여, 복호화 대상을 복호화 할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 선택된 복호화 대상을 비트스트림으로 변환하지 않고, 직접 복호화할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 복호화 대상에 포함된 파라미터들의 값에 소정의 함수를 적용시킴으로써, 복호화 대상을 복호화할 수 있다.
다른 예를 들면, 디바이스(1000)의 복호화부(1030)는 복호화 대상에 포함된 제 1 블록의 파라미터들을, 제 2 블록의 파라미터들과 기 설정된 규칙에 기초하여 교환함으로써, 복호화 대상을 복호화할 수 있다.
또한, 디바이스(1000)의 복호화부(1030)는 복호화 대상에 포함된 파라미터들의 값의 부호를 변경함으로써, 복호화 대상을 복호화할 수 있다.
또한, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 데이터에 포함된 파라미터들의 부호를 기 설정된 복호화키를 이용해 변경함으로써, 복호화 대상을 복호화할 수 있다.
다른 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 선택된 복호화 대상을 비트스트림으로 변환하고, 비트스트림을 복호화 하고, 복호화된 비트스트림을 데이터로 변환함으로써, 복호화 대상을 복호화할 수 있다.
디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 데이터 중에서 선택된 복호화 대상을 비트스트림으로 변환할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 복호화 대상을 기 설정된 맵핑 테이블에 맵핑시킴으로써 복호화 대상에 대응되는 소정의 값들을 획득할 수 있다. 또한, 디바이스(1000)의 복호화부(1030)는 획득한 소정의 값들을 바이너리(binary)변환 함으로써, 복호화 대상에 대응되는 비트스트림을 획득할 수 있다.
디바이스(1000)의 복호화부(1030)는 바이너리 변환을 수행할때, 소정의 값들 각각의 비트 크기 정보에 기초하여 바이너리 변환을 수행할 수 있다.
디바이스(1000)의 복호화부(1030)는 획득한 비트스트림을 복호화 할 수 있다. 예를 들어, 디바이스(1000)는 비트스트림에 적용할 수 있는 복호화 방법을 이용하여 획득한 비트스트림을 복호화할 수 있다. 비트스트림에 적용할 수 있는 복호화 방법에는, AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED등이 있으며, 이에 한정되지 않는다.
디바이스(1000)의 복호화부(1030)는 복호화된 비트스트림을 데이터로 변환함으로써, 복호화된 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)의 복호화부(1030)는 복호화된 비트스트림에 바이너리 역변환을 수행하여 소정의 값들을 획득하고, 소정의 값들을 기 설정된 맵핑 테이블에 맵핑함으로써, 복호화된 데이터를 획득할 수 있다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 복호화 대상을 복호화 함으로써, 복호화된 데이터를 획득할 수 있다. 또한, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 데이터중 복호화 대상을 복호화된 데이터로 변환함으로써, 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 선택한 복호화 대상이 복수의 블록으로 구분되는 사진 데이터중 제 1 블록인 경우, 디바이스(1000)의 복호화부(1030)는 제 1 블록을 나타내는 데이터를 복호화함으로써, 복호화 데이터를 획득할 수 있다. 디바이스(1000)의 복호화부(1030)는 암호화된 사진 데이터중에서 제 1 블록을 나타내는 데이터를 복호화 데이터로 변환함으로써, 복호화된 사진 데이터를 획득할 수 있다.
또한, 디바이스(1000)의 복호화부(1030)는 암호화된 메타 데이터중 복호화 대상을 복호화된 데이터로 변환함으로써, 암호화된 메타 데이터를 복호화된 메타 데이터로 변환할 수 있다.
디바이스(1000)의 복호화부(1030)는 복호화된 멀티 미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성할 수 있다. 또한, 디바이스(1000)는 복호화된 메타 데이터를 인코딩함으로써, 복호화된 메타 비트스트림을 생성할 수 있다.
예를 들어, 디바이스(1000)의 복호화부(1030)는 암호화된 사진 데이터 중에서 사람을 나타내는 데이터를 복호화 대상으로 선택한 경우, 암호화된 사진 데이터중에서 사람을 나타내는 데이터를 복호화된 데이터로 변환하여 복호화된 멀티미디어 데이터를 생성할 수 있고, 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 사진 비트스트림을 생성할 수 있다.
인코딩은 엔트로피 인코딩을 포함할 수 있다. 엔트로피 인코딩은, 데이터를 비트스트림으로 변환할 수 있다. 예를 들어, 디바이스(1000)의 복호화부(1030)는 엔트로피 인코딩을 이용하여, 복호화된 멀티미디어 데이터를 1과 0의 조합으로 변환할 수 있다.
엔트로피 인코딩은 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정되지 않는다.
일부 실시예에 따르면, 디바이스(1000)의 복호화부(1030)는 암호화된 멀티미디어 비트스트림에 적용된 코덱과 대응되는 엔트로피 코딩을, 복호화된 멀티미디어 데이터에 적용할 수 있다.
예를 들어, 암호화된 멀티미디어 비트스트림에 적용된 코덱이 H.265이고, H.265에서 이용되는 엔트로피 코딩 방법이 CABAC인 경우, 디바이스(1000)는 CABAC을 이용하여 복호화된 멀티미디어 데이터를 엔트로피 인코딩할 수 있다.
일부 실시예에 따르면, 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 복호화 대상을 복호화할 수 있다. 디바이스(1000)는 엔트로피 인코딩 이전에, 선택된 복호화 대상을 복호화 함으로서, 기존의 디코딩 디바이스에서 이용가능한 복호화된 멀티미디어 비트스트림을 생성할 수 있다.
도 20는 일부 실시예에 따른, 디바이스를 설명하기 위한 세부 블록도이다.
도 20에 도시된 바와 같이 일부 실시예에 따른 디바이스(1000)는, 제어부(1010), 암호화부(1020),및 복호화부(1030)외에도, 사용자 입력부(2200), 출력부(2210), 센싱부(2220), 통신부(2230), A/V 입력부(2240), 저장부(2250)를 더 포함할 수도 있다.
통신부(2230)는, 근거리 통신부(2231), 이동 통신부(2232), 방송 수신부(2233)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(2231)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거라 자기장 통신부(Near Field Communication), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(2232)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(2233)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(1000)는 방송 수신부(2233)를 포함하지 않을 수도 있다.
또한, 통신부(2230)는, 암호화된 데이터를 송신할 수 있으며, 암호화 그룹 정보 또한 송신할 수 있다. 이는 앞서 설명한 내용과 대응되므로 자세한 내용은 생략한다.
저장부(2250)는, 제어부(1010)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(1000)로 입력되거나 디바이스(1000)로부터 출력되는 데이터를 저장할 수도 있다.
저장부(2250)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
저장부(2250)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(2251), 터치 스크린 모듈(2252), 알림 모듈(2253) 등으로 분류될 수 있다.
UI 모듈(2251)은, 애플리케이션 별로 디바이스(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(2252)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(1010)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(2252)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(2252)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
터치스크린의 터치 또는 근접 터치를 감지하기 위해 터치스크린의 내부 또는 근처에 다양한 센서가 구비될 수 있다. 터치스크린의 터치를 감지하기 위한 센서의 일례로 촉각 센서가 있다. 촉각 센서는 사람이 느끼는 정도로 또는 그 이상으로 특정 물체의 접촉을 감지하는 센서를 말한다. 촉각 센서는 접촉면의 거칠기, 접촉 물체의 단단함, 접촉 지점의 온도 등의 다양한 정보를 감지할 수 있다.
또한, 터치스크린의 터치를 감지하기 위한 센서의 일례로 근접 센서가 있다.
근접 센서는 소정의 검출면에 접근하는 물체, 혹은 근방에 존재하는 물체의 유무를 전자계의 힘 또는 적외선을 이용하여 기계적 접촉이 없이 검출하는 센서를 말한다. 근접 센서의 예로는 투과형 광전 센서, 직접 반사형 광전 센서, 미러 반사형 광전 센서, 고주파 발진형 근접 센서, 정전용량형 근접 센서, 자기형 근접 센서, 적외선 근접 센서 등이 있다. 사용자의 터치 제스처에는 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 드래그 앤드 드롭, 스와이프 등이 있을 수 있다.
알림 모듈(2253)은 디바이스(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 디바이스(1000)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(2253)은 디스플레이부(2211)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(2212)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(2213)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다. 저장부(2250)가 수행하는 동작은 앞서 설명한 내용과 대응되므로 자세한 설명은 생략한다.
제어부(1010)는 통상적으로 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1010)는 디바이스(1000)에 저장된 프로그램을 실행함으로써, 디바이스(1000)가 포함하는 구성요소들을 전반적으로 제어할 수 있다. 이는 앞서 설명한 바와 대응되므로, 자세한 설명은 생략한다.
사용자 입력 수신부(2200)는, 사용자가 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(2200)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
출력부(2210)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(2210)는 디스플레이부(2211), 음향 출력부(2212), 및 진동 모터(2213)를 포함할 수 있다.
디스플레이부(2211)는 디바이스(1000)에서 처리되는 정보를 표시 출력한다.
한편, 디스플레이부(2211)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(2211)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(2211)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 디바이스(1000)의 구현 형태에 따라 디바이스(1000)는 디스플레이부(2211)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(2211)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
음향 출력부(2212)는 통신부(2230)로부터 수신되거나 저장부(2250)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(2212)는 디바이스(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(2212)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
진동 모터(2213)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(2213)는 오디오 데이터 또는 비디오 데이터(예컨대, 호신호 수신음, 메시지 수신음 등)의 출력에 대응하는 진동 신호를 출력할 수 있다. 또한, 진동 모터(2213)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.
센싱부(2220)는, 디바이스(1000)의 상태 또는 디바이스(1000) 주변의 상태를 감지하고, 감지된 정보를 제어부(1010)로 전달할 수 있다.
센싱부(2220)는, 지자기 센서(Magnetic sensor)(2221), 가속도 센서(Acceleration sensor)(2222), 온/습도 센서(2223), 적외선 센서(2224), 자이로스코프 센서(2225), 위치 센서(예컨대, GPS)(2226), 기압 센서(2227), 근접 센서(2228), 및 광센서(illuminance sensor)(2229) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
A/V(Audio/Video) 입력부(2240)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(2241)와 마이크로폰(2242) 등이 포함될 수 있다. 카메라(6251)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(1010) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
카메라(2241)에서 처리된 화상 프레임은 저장부(2250)에 저장되거나 통신부(2230)를 통하여 외부로 전송될 수 있다. 카메라(2241)는 단말기의 구성 태양에 따라 2개 이상이 구비될 수도 있다.
마이크로폰(2242)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(2242)은 디바이스(1000) 또는 화자로부터 음향 신호를 수신할 수 있다. 마이크로폰(2242)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 삭제하기 위한 다양한 잡음 삭제 알고리즘을 이용할 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. ‘매커니즘’, ‘요소’, ‘수단’, ‘구성’과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, ‘필수적인’, ‘중요하게’ 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 ‘상기’의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (34)

  1. 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서,
    멀티미디어 데이터를 획득하는 단계;
    상기 멀티미디어 데이터에 인코딩, 디코딩, 양자화, 또는 소정의 변환 중 적어도 하나를 수행하여, 복수의 파라미터를 포함하는 가공된 멀티미디어 데이터를 획득하는 단계;
    상기 가공된 멀티미디어 데이터 중에서, 상기 복수의 파라미터 중 적어도 하나를 포함하는 암호화 대상을 선택하는 단계;
    상기 선택된 암호화 대상을 암호화 하는 단계;
    상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및
    상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 암호화된 멀티미디어 비트스트림을 생성하는 단계는,
    상기 암호화된 멀티미디어 데이터를 엔트로피 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 것이고,
    상기 암호화 하는 단계는, 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 가공된 멀티미디어 데이터를 획득하는 단계는,
    상기 획득된 멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 단계; 및
    상기 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함하는 방법.
  4. 제 1 항에 있어서, 상기 가공된 멀티미디어 데이터를 획득하는 단계는,
    상기 획득한 멀티미디어 데이터에 양자화를 수행하는 단계; 및
    상기 양자화를 수행하는 단계의 결과에 기초하여 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 선택된 암호화 대상을 암호화하는 단계는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서, 상기 선택된 암호화 대상을 암호화 하는 단계는,
    기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하는 단계;
    상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계;
    상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하는 단계; 및
    상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득하는 단계를 포함하는 방법.
  7. 제 6항에 있어서, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는,
    상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환하는 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서, 상기 암호화 프로세스는, 상기 비트스트림을 직접적으로 암호화 하는 것을 특징으로 하는 방법.
  9. 제 1항에 있어서, 상기 암호화 대상을 선택하는 단계는 ,
    상기 가공된 멀티미디어 데이터중 일부를 선택 하는 것을 특징으로 하는 방법.
  10. 제 1항에 있어서, 상기 암호화 대상을 선택하는 단계는 ,
    상기 가공된 멀티미디어 데이터 전체를 선택 하는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서, 상기 방법은
    메타 데이터를 획득하는 단계;
    상기 메타 데이터중에서 암호화 대상을 선택하는 단계;
    상기 선택된 암호화 대상을 암호화 하는 단계;
    상기 암호화 하는 단계의 결과에 기초하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하는 단계; 및
    상기 암호화된 메타 데이터를 인코딩함으로써, 상기 메타 데이터를 암호화된 메타 비트스트림으로 변환하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 암호화된 멀티미디어 비트스트림을 복호화하는 방법에 있어서,
    암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 복수의 파라미터를 포함하는 암호화된 멀티미디어 데이터를 획득하는 단계;
    상기 암호화된 멀티미디어 데이터 중에서, 상기 복수의 파라미터 중 적어도 하나를 포함하는 복호화 대상을 선택하는 단계;
    상기 선택된 복호화 대상을 복호화 하는 단계;
    상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하는 단계; 및
    상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법.
  13. 제 12 항에 있어서,
    상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며,
    상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 방법.
  14. 제 12 항에 있어서,
    상기 선택된 복호화 대상을 복호화하는 단계는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 방법.
  15. 제 12항에 있어서, 상기 선택된 복호화 대상을 복호화 하는 단계는,
    기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하는 단계;
    상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계;
    상기 획득한 비트스트림에 복호화 프로세스를 적용함으로써, 복호화된 비트스트림을 획득하는 단계; 및
    상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득하는 단계를 포함하는 방법.
  16. 제 15항에 있어서, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는,
    상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환하는 것을 특징으로 하는 방법.
  17. 제 15 항에 있어서, 상기 복호화 프로세스는, 상기 비트스트림을 직접적으로 복호화 하는 것을 특징으로 하는 방법.
  18. 제 12항에 있어서, 상기 복호화 대상을 선택하는 단계는 ,
    상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및
    상기 검색된 데이터중에서 일부를 선택 하는 단계를 더 포함 하는 방법.
  19. 제 12항에 있어서, 상기 복호화 대상을 선택하는 단계는 ,
    상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및
    상기 검색된 데이터 전부를 선택 하는 단계를 더 포함 하는 방법.
  20. 제 12 항에 있어서 상기 방법은,
    상기 방법은 암호화된 메타 데이터를 획득하는 단계;
    상기 암호화된 메타 데이터중에서 복호화 대상을 선택하는 단계;
    상기 선택된 복호화 대상을 복호화 하는 단계;
    상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하는 단계; 및
    상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 암호화된 멀티미디어 비트스트림을 생성하는 장치에 있어서,
    멀티미디어 데이터를 획득하고, 상기 멀티미디어 데이터에 인코딩, 디코딩, 양자화, 또는 소정의 변환 중 적어도 하나를 수행하여, 복수의 파라미터를 포함하는 가공된 멀티미디어 데이터를 획득하고, 상기 가공된 멀티미디어 데이터 중에서 상기 복수의 파라미터 중 적어도 하나를 포함하는 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하고, 상기 암호화된 멀티미디어 데이터를 인코딩함으로써 암호화된 멀티미디어 비트스트림을 생성하는 암호화부를 포함하는 장치.
  22. 제 21 항에 있어서, 상기 장치는,
    상기 암호화된 멀티미디어 데이터를 엔트로피 인코딩함으로써 상기 암호화된 멀티미디어 비트스트림을 생성하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 장치.
  23. 제 21 항에 있어서, 상기 장치는,
    멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 통신부를 더 포함하고,
    상기 암호화부는 통신부가 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 것을 특징으로 하는 장치.
  24. 제 21 항에 있어서, 암호화부는,
    상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 장치.
  25. 제 21항에 있어서, 상기 암호화부는,
    기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득하는 것을 특징으로 하는 장치.
  26. 제 25항에 있어서, 상기 암호화부는,
    상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환하는 것을 특징으로 하는 장치.
  27. 제 21항에 있어서, 상기 암호화부는,
    메타 데이터를 획득하고, 상기 메타 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하고, 상기 암호화된 메타 데이터를 인코딩함으로써 상기 메타 데이터를 암호화된 메타 비트스트림으로 변환하는 것을 특징으로 하는 장치.
  28. 암호화된 멀티미디어 비트스트림을 복호화하는 장치에 있어서,
    암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 복수의 파라미터를 포함하는 암호화된 멀티미디어 데이터를 획득하고, 상기 암호화된 멀티미디어 데이터 중에서 상기 복수의 파라미터 중 적어도 하나를 포함하는 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 결과에 기초하여 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하며, 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 복호화부를 포함하는 장치.
  29. 제 28 항에 있어서,
    상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며,
    상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 장치.
  30. 제 28 항에 있어서 복호화부는,
    상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 장치.
  31. 제 28 항에 있어서 상기 복호화부는,
    기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득된 비트스트림에 복호화 프로세스를 적용함으로써 복호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득하는것을 특징으로 하는 장치.
  32. 제 31항에 있어서, 상기 복호화부는,
    상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환하는 것을 특징으로 하는 장치.
  33. 제 28항에 있어서, 상기 복호화부는, 암호화된 메타 데이터를 획득하고, 상기 암호화된 메타 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 결과에 기초하여 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하며, 상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 메타 비트스트림을 생성하는 것을 특징으로 하는 장치.
  34. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020150094932A 2015-07-02 2015-07-02 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 KR102077239B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150094932A KR102077239B1 (ko) 2015-07-02 2015-07-02 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치
CN201680038934.1A CN107736029B (zh) 2015-07-02 2016-06-24 对多媒体数据进行编码的方法和设备以及对多媒体数据进行解码的方法和设备
EP16818166.7A EP3300373A4 (en) 2015-07-02 2016-06-24 Method and device for encoding multimedia data, and method and device for decoding same
PCT/KR2016/006730 WO2017003133A1 (ko) 2015-07-02 2016-06-24 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치
US15/741,117 US10931645B2 (en) 2015-07-02 2016-06-24 Method and device for encoding multimedia data, and method and device for decoding same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150094932A KR102077239B1 (ko) 2015-07-02 2015-07-02 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170004501A KR20170004501A (ko) 2017-01-11
KR102077239B1 true KR102077239B1 (ko) 2020-02-13

Family

ID=57609302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150094932A KR102077239B1 (ko) 2015-07-02 2015-07-02 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치

Country Status (5)

Country Link
US (1) US10931645B2 (ko)
EP (1) EP3300373A4 (ko)
KR (1) KR102077239B1 (ko)
CN (1) CN107736029B (ko)
WO (1) WO2017003133A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220311596A1 (en) * 2019-05-13 2022-09-29 Pii Guard Aps A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext
EP4052136A4 (en) * 2019-10-28 2023-11-01 Atombeam Technologies Inc. SYSTEM AND METHODS FOR EFFICIENT BANDWIDTH CRYPTOGRAPHIC DATA TRANSFER

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110075842A1 (en) * 2008-06-03 2011-03-31 Thales Method and System Making It Possible to Visually Encrypt the Mobile Objects Within A Compressed Video Stream

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100439521B1 (ko) 2001-06-19 2004-07-12 주식회사 넷앤티비 헤더 정보 암호화에 의한 멀티미디어 컨텐츠 보호 방법
US20040037421A1 (en) 2001-12-17 2004-02-26 Truman Michael Mead Parital encryption of assembled bitstreams
US7469012B2 (en) * 2002-05-14 2008-12-23 Broadcom Corporation System and method for transcoding entropy-coded bitstreams
US7801820B2 (en) 2003-01-13 2010-09-21 Sony Corporation Real-time delivery of license for previously stored encrypted content
US20040228401A1 (en) * 2003-05-12 2004-11-18 Chen Sherman (Xuemin) Method and system for protecting image data in frame buffers of video compression systems
KR20070006445A (ko) 2005-07-08 2007-01-11 삼성전자주식회사 하이브리드 엔트로피 부호화, 복호화 방법 및 장치
US20070083467A1 (en) 2005-10-10 2007-04-12 Apple Computer, Inc. Partial encryption techniques for media data
JP4348381B2 (ja) * 2007-05-30 2009-10-21 富士通株式会社 画像暗号化/復号化装置、方法およびプログラム
KR100930303B1 (ko) 2009-03-19 2009-12-08 주식회사 파수닷컴 디지털 미디어 콘텐츠 보호 시스템 및 방법
IL199486A0 (en) 2009-06-22 2011-08-01 Nds Ltd Partial encryption using variable block-size parameters
JP5723888B2 (ja) * 2009-12-04 2015-05-27 ソニック アイピー, インコーポレイテッド 基本ビットストリーム暗号材料伝送システムおよび方法
US20120308008A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Wireless Transmission of Protected Content
US9088796B2 (en) 2011-11-07 2015-07-21 Sharp Kabushiki Kaisha Video decoder with enhanced CABAC decoding
US9532055B2 (en) * 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
US9230340B2 (en) * 2012-05-04 2016-01-05 Semiconductor Components Industries, Llc Imaging systems with programmable fixed rate codecs
KR102295661B1 (ko) * 2013-12-15 2021-08-30 삼성전자주식회사 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기
EP3082291B1 (en) * 2013-12-15 2022-05-25 Samsung Electronics Co., Ltd. Secure communication method and apparatus and multimedia device employing same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110075842A1 (en) * 2008-06-03 2011-03-31 Thales Method and System Making It Possible to Visually Encrypt the Mobile Objects Within A Compressed Video Stream

Also Published As

Publication number Publication date
EP3300373A4 (en) 2018-05-16
EP3300373A1 (en) 2018-03-28
KR20170004501A (ko) 2017-01-11
US20180191690A1 (en) 2018-07-05
WO2017003133A1 (ko) 2017-01-05
CN107736029B (zh) 2021-08-24
CN107736029A (zh) 2018-02-23
US10931645B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
US8509434B2 (en) Method and apparatus for protecting scalable video coding contents
US11575938B2 (en) Cascaded prediction-transform approach for mixed machine-human targeted video coding
JP6272630B2 (ja) ビデオ符号化及び復号の方法及び技術装置
JP2007526507A (ja) スケーラブルメディアを記述するデータを生成するための方法
CN113796014A (zh) 对点云编码的属性进行编码的方法
CN112106371A (zh) 用于视频编码的方法和装置
KR20140134692A (ko) 무선 디스플레이 스크린으로 콘텐츠를 제공하기 위한 시스템 및 방법
CN113711586B (zh) 视频编解码方法、装置、计算机设备及存储介质
US20220217389A1 (en) Encoder and decoder with support of sub-layer picture rates in video coding
US11310514B2 (en) Encoding method and apparatus using non-encoding region, block-based encoding region, and pixel-based encoding region
WO2015194179A1 (en) Bitstream partitions operation
US20170063958A1 (en) Systems and methods for constraining a bitstream
JP2007534230A (ja) プログレッシブ暗号化されたスケーラブルデータ列をスケーリングするための方法
KR102077239B1 (ko) 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치
CN113826387A (zh) 在编码视频流中进行分层随机访问的方法
KR100859897B1 (ko) 스케일러블 비디오 부호화 콘텐츠의 보호 방법 및 그 장치
JP2021521756A (ja) メディア符号化及び復号における複数のコンフォーマンスポイントのための技術
CN114616801B (zh) 视频编码的方法、装置、设备以及存储介质
CN117319657A (zh) 视频解码方法、编码方法、电子设备及存储介质
JP2010021931A (ja) 映像送信装置及び映像受信装置
CN114073084B (zh) 视频编解码方法、装置和存储介质
Arunkumar et al. Implementation of encrypted image compression using resolution progressive compression scheme
JP2006345454A (ja) 画像符号化装置及び画像復号化装置及びそれらの方法及びプログラム及び記憶媒体
WO2015136945A1 (en) Systems and methods for constraining a bitstream
JP5610981B2 (ja) 画像暗号化装置及び画像復号装置及び画像暗号化方法及び画像復号方法及び画像暗号化プログラム及び画像復号プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right