WO2017003133A1 - 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 - Google Patents
멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 Download PDFInfo
- Publication number
- WO2017003133A1 WO2017003133A1 PCT/KR2016/006730 KR2016006730W WO2017003133A1 WO 2017003133 A1 WO2017003133 A1 WO 2017003133A1 KR 2016006730 W KR2016006730 W KR 2016006730W WO 2017003133 A1 WO2017003133 A1 WO 2017003133A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bitstream
- encrypted
- data
- multimedia data
- decoding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 230000008569 process Effects 0.000 claims description 49
- 238000004891 communication Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 description 140
- 238000010586 diagram Methods 0.000 description 40
- 238000006243 chemical reaction Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 241000209507 Camellia Species 0.000 description 8
- 241000270295 Serpentes Species 0.000 description 8
- 241001441724 Tetraodontidae Species 0.000 description 8
- 235000018597 common camellia Nutrition 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- QXOQNNAWFUXKMH-UHFFFAOYSA-N 1-(Malonylamino)cyclopropanecarboxylic acid Chemical compound OC(=O)CC(=O)NC1(C(O)=O)CC1 QXOQNNAWFUXKMH-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
- H04N21/23476—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Definitions
- the present invention relates to a method for providing data, and more particularly, to a method and apparatus for encrypting multimedia data, and a method and apparatus for decrypting.
- codecs for image compression include JPEG, JPEG 2000, lossless JPEG, PNG, and PMB.
- Codecs for image compression include motion JPEG, MPEG-1, MPEG-2, MPEG-4, and H. .263, H.264, HEVC, and the like.
- Codecs for audio compression include MPEG-1 Layer I, MPEG-1 Layer II, MPEG-1 Layer III, AAC, HE-AAC, and FLAC. Codecs for G.711 and G.718 , AMR, AMR-WB and the like.
- a first aspect of the present disclosure provides a method of generating an encrypted multimedia bitstream, comprising: obtaining processed multimedia data; Selecting an encryption target from the processed multimedia data; Encrypting the selected encryption target; Converting the processed multimedia data into encrypted multimedia data based on a result of the encrypting step; And generating an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- the codec characteristics of the compressed multimedia data bitstream can be encrypted and encrypted.
- FIG. 1 is a diagram for describing a method of encrypting a multimedia bitstream, according to some embodiments.
- FIG. 2 is a diagram for describing a method of generating an encrypted multimedia bitstream, according to some embodiments.
- FIG. 3 is a diagram for describing a method of obtaining an encrypted multimedia bitstream, based on a multimedia bitstream, according to some embodiments.
- FIG. 4 is a diagram for describing a method of converting a multimedia bitstream into an encrypted multimedia bitstream, according to some embodiments.
- FIG. 5 is a diagram for describing a method of generating an encrypted bitstream from an image, according to some embodiments.
- FIG. 6 is a diagram for describing a method of directly encrypting an encryption target without converting the encryption target into a bitstream, according to some embodiments.
- FIG. 7 is a diagram for describing a method of converting an encryption target into a bitstream and directly encrypting the converted bitstream, according to some embodiments.
- FIG. 8 is a diagram for describing a method of encrypting, by a device, an encryption target using a preset mapping table, according to some embodiments.
- FIG. 9 is a diagram for describing a method of encrypting a bitstream by applying a 128 bit AES CTR to the bitstream, according to some embodiments.
- FIG. 10 is a diagram for describing a method of encrypting a portion of a multimedia bitstream, according to some embodiments.
- 11 is a diagram representing an embodiment of a partially encrypted multimedia bitstream.
- FIG. 12 is a diagram for describing encryption compensation, according to some embodiments.
- 13 is a diagram for describing a method of decrypting an encrypted bitstream, according to some embodiments.
- FIG. 14 is a diagram for describing a method of decoding a decoding object and restoring an image, according to an exemplary embodiment.
- 15 is a diagram for describing a method of directly decoding a decoding target without converting the decoding target into a bitstream, according to some embodiments.
- FIG. 16 is a diagram for describing a method of converting a decoding object into a bitstream and directly decoding the converted bitstream, according to some embodiments.
- 17 is a diagram for describing a method of decoding, by the device 1000, a decoding object by using a preset mapping table, according to some embodiments.
- 18 is a diagram for describing decoding compensation, according to some embodiments.
- 19 is a block diagram illustrating a device in accordance with some embodiments.
- 20 is a detailed block diagram illustrating a device in accordance with some embodiments.
- a method for generating an encrypted multimedia bitstream comprising: obtaining processed multimedia data; Selecting an encryption target from the processed multimedia data; Encrypting the selected encryption target; Converting the processed multimedia data into encrypted multimedia data based on a result of the encrypting step; And generating an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- the encoding includes entropy encoding, and the encrypting step may be performed before the entropy encoding.
- the acquiring of the processed multimedia data may include obtaining a bitstream generated by encoding the multimedia data based on an arbitrary codec; And acquiring the processed multimedia data by performing entropy decoding on the obtained bitstream.
- the acquiring the processed multimedia data may include: acquiring multimedia data; Performing quantization on the obtained multimedia data; And acquiring the processed multimedia data based on a result of the quantization.
- the encrypting of the selected encryption target may directly encrypt the selected encryption target, except for the process of converting the selected encryption target into a bitstream.
- the encrypting of the selected encryption target may include: obtaining predetermined values corresponding to the selected encryption target based on a preset mapping table; Obtaining a bitstream by binary converting the predetermined values; Obtaining an encrypted bitstream by applying an encryption process to the obtained bitstream; And acquiring encrypted data corresponding to the encrypted bitstream based on the preset mapping table.
- obtaining a bitstream by binary converting the predetermined values may include determining bit size information of the predetermined values and converting the predetermined values to binary based on the determined bit size information. binary).
- the encryption process may directly encrypt the bitstream.
- a part of the processed multimedia data may be selected.
- the entire processed multimedia data may be selected.
- the method may also include obtaining metadata; Selecting an encryption target from the metadata; Encrypting the selected encryption target; Converting the metadata into encrypted metadata based on a result of the encrypting; And converting the meta data into an encrypted meta bitstream by encoding the encrypted meta data.
- a second aspect of the present invention provides a method of decrypting an encrypted multimedia bitstream, the method comprising: obtaining encrypted multimedia data by decoding the encrypted multimedia bitstream; Selecting a decryption target from the encrypted multimedia data; Decoding the selected decoding target; Converting the encrypted multimedia data into decrypted multimedia data based on a result of the decrypting step; And generating a decoded multimedia bitstream by encoding the decoded multimedia data.
- the decoding may include entropy decoding
- the encoding may include entropy encoding
- the encrypting may be performed after the entropy decoding and before the entropy encoding.
- the decrypting of the selected decryption target may directly encrypt the selected decryption target except for the process of converting the selected decryption target into a bitstream.
- the decoding of the selected decoding target may include: obtaining predetermined values corresponding to the selected decoding target based on a preset mapping table; Obtaining a bitstream by binary converting the predetermined values; Obtaining a decoded bitstream by applying a decoding process to the obtained bitstream; And obtaining decoded data corresponding to the decoded bitstream based on the preset mapping table.
- obtaining a bitstream by binary converting the predetermined values may include determining bit size information of the predetermined values and converting the predetermined values to binary based on the determined bit size information. binary).
- the decoding process may directly decode the bitstream.
- the selecting of the decryption target may include: searching for encrypted data among the encrypted multimedia data; And selecting a part of the retrieved data.
- the selecting of the decryption target may include: searching for encrypted data among the encrypted multimedia data; And selecting all of the retrieved data.
- the method also includes obtaining encrypted metadata; Selecting a decryption target from the encrypted metadata; Decoding the selected decoding target; Converting the encrypted metadata into decrypted metadata based on a result of the decrypting step; And generating the decoded multimedia bitstream by encoding the decoded meta data.
- the third aspect of the present invention provides an apparatus for generating an encrypted multimedia bitstream, wherein the processed multimedia data is acquired, an encryption target is selected from the processed multimedia data, and the encrypted encryption target is encrypted to encrypt the processed multimedia data.
- the present invention may provide an apparatus including an encryption unit configured to convert an encrypted multimedia data into encrypted multimedia data and to generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- the encoding includes entropy encoding, and the encrypting step may be performed before the entropy encoding.
- the apparatus may further include a communication unit for obtaining a bitstream generated by encoding multimedia data based on an arbitrary codec, and the encryption unit performing entropy decoding on the bitstream obtained by the communication unit, thereby processing the processed multimedia. Data can be obtained.
- the encryption unit may directly encrypt the selected encryption target, except for the process of converting the selected encryption target into a bitstream.
- the encryption unit obtains a bitstream by obtaining predetermined values corresponding to the selected encryption target based on a preset mapping table, and binary converting the predetermined values, thereby obtaining the obtained bitstream.
- the encryption process it is possible to obtain an encrypted bitstream, and to obtain encrypted data corresponding to the encrypted bitstream based on the preset mapping table.
- the encryption unit may determine bit size information of the predetermined values, and convert the predetermined values based on the determined bit size information.
- the encryption unit may be further configured to obtain metadata, select an encryption target from among the metadata, encrypt the selected encryption target, convert the metadata into encrypted metadata, and encode the encrypted metadata. Generated meta bitstream can be generated.
- the fourth aspect of the present invention provides an apparatus for decoding an encrypted multimedia bitstream, wherein the encrypted multimedia bitstream is decoded to obtain encrypted multimedia data, to select a decryption target from the encrypted multimedia data, and to select the selected decryption.
- a decryption unit configured to decrypt an object, convert the encrypted multimedia data into decrypted multimedia data based on a result of the decrypting step, and generate the decrypted multimedia bitstream by encoding the decrypted multimedia data.
- the decoding may include entropy decoding
- the encoding may include entropy encoding
- the encrypting may be performed after the entropy decoding and before the entropy encoding.
- the decryption unit may directly encrypt the selected decryption object except for the process of converting the selected decryption object into a bitstream.
- the decoder may obtain a bitstream by obtaining predetermined values corresponding to the selected decoding target based on a preset mapping table, and binaryly converting the predetermined values, thereby obtaining the obtained bitstream.
- the decoded bitstream may be obtained by applying a decoding process to the decoded bitstream, and the decoded data corresponding to the decoded bitstream may be obtained based on the preset mapping table.
- the decoder may determine bit size information of the predetermined values, and binary convert the predetermined values based on the determined bit size information.
- the decryption unit obtains encrypted metadata, selects a decryption target from among the encrypted metadata, decrypts the selected decryption target, and decrypts the encrypted metadata based on the decryption result.
- the decoded meta bitstream can be generated.
- FIG. 1 is a diagram for describing a method of encrypting a multimedia bitstream, according to some embodiments.
- the device 1000 may obtain processed multimedia data.
- the device 1000 may acquire the processed photo data by processing the obtained photo data.
- the device 1000 may obtain the processed picture data by obtaining the picture bitstream and decoding the obtained bitstream.
- the device 1000 may obtain processed photo data by entropy decoding the obtained bitstream.
- the device 1000 may select some of the processed multimedia data as an encryption target. For example, the device 1000 may acquire processed photo data by processing photo data composed of a plurality of blocks, and select data representing a face of a person from among the processed photo data as an encryption target.
- the device 1000 may directly encrypt the selected encryption target without converting it into a bitstream.
- the device 1000 may convert the selected encryption target into a bitstream and encrypt the encryption target in the form of a bitstream.
- the device 1000 may obtain the encrypted data by converting the encrypted bitstream into data.
- the device 1000 may obtain encrypted data by encrypting an encryption target.
- the device 1000 may convert the processed multimedia data into encrypted multimedia data by converting an encryption target from the processed multimedia data into encrypted data.
- the device 1000 may generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the device 1000 may convert the encrypted multimedia data into a combination of 1s and 0s using entropy encoding.
- the device 1000 may encrypt the encryption target selected before entropy encoding.
- the device 1000 may generate an encrypted multimedia bitstream usable by the existing decoding device by encrypting the encryption target before entropy encoding.
- FIG. 2 is a diagram for describing a method of generating an encrypted multimedia bitstream, according to some embodiments.
- the device 1000 may acquire processed multimedia data.
- the device 1000 may obtain multimedia data.
- the multimedia data means various data in which voice, text, picture, video, and the like are mixed.
- the multimedia data may include photo data, song data, video data, audio data, text data, flash data, and the like, but is not limited thereto.
- the device 1000 may obtain metadata.
- Meta data refers to data for describing multimedia data.
- the metadata may include a manufacturer of a camera, model information of a camera, or a combination thereof used in generating multimedia data.
- camera direction, date and time, camera focal length, camera flash on / off, camera ISO speed, camera shutter speed, camera position, and global positioning system (GPS) when multimedia data is generated Information may be included, but is not limited thereto.
- the metadata of the multimedia data may have various formats.
- the metadata of the multimedia data may have a MACC format, a Dublin core format, a tag format, or an exchangeable image file format, but is not limited thereto.
- the device 1000 may apply at least one sub coding module to multimedia data, metadata, or a combination thereof.
- the sub coding module refers to a sub module used when compressing by applying various codecs to multimedia data, metadata, or a combination thereof.
- the sub coding module may include a DCT transform module, a quantization module, a prediction module, an entropy coding module, an entropy decoding module, and the like, but are not limited thereto.
- the device 1000 may include a plurality of sub coding modules.
- the plurality of sub-coding modules may be implemented by one processor, each may be implemented by one processor, and may be implemented by a plurality of processors, but is not limited thereto.
- the device 1000 may obtain processed multimedia data by applying at least one sub coding module to the multimedia data.
- the device 1000 may obtain the processed multimedia data by applying the DCT conversion module and both and the module to the multimedia data.
- the device 1000 may obtain processed metadata by applying at least one sub-coding module to the metadata.
- the processed multimedia data may include various parameters generated in the process of encoding the multimedia data.
- the processed multimedia data may include a differential coded DC value, quantized samples, or AC coded samples, but is not limited thereto.
- the device 1000 may obtain processed multimedia data using the multimedia bitstream.
- the device 1000 may obtain a multimedia bitstream by directly encoding multimedia data.
- the device 1000 may receive a multimedia bitstream from an external device.
- the bitstream includes at least one bit group, and a bit means a unit of data.
- the multimedia bitstream refers to a bit stream generated by applying a codec to multimedia data and compressing the same
- the meta bitstream refers to converting meta data into a bitstream.
- a multimedia bitstream may include a group of bits, and the group of bits may represent a picture.
- the device 1000 may obtain processed multimedia data by applying a sub coding module to the multimedia bitstream.
- the device 1000 may obtain processed multimedia data by applying an entropy decoding module to the multimedia bitstream.
- the entropy decoding module refers to a module that performs entropy decoding.
- Entropy decoding refers to a coding method for converting a bit stream into data corresponding to the bit stream.
- Entropy decoding may include, but is not limited to, a Huffman method, an arithmetic transform coding method, and the like.
- the device 1000 may select an encryption target from the processed multimedia data.
- the device 1000 may select an encryption target.
- the device 1000 may select some of the processed multimedia data as an encryption target. In addition, the device 1000 may select all of the processed multimedia data as an encryption target.
- the device 1000 may acquire processed photo data by processing photo data composed of a plurality of blocks, and select data representing the first block among the processed photo data as an encryption target.
- the device 1000 may select an encryption target based on a preset criterion. For example, when a person included in the photo data is previously set as an encryption target, the device 1000 may process the photo data and select data representing a person from among the processed photo data as an encryption target.
- the device 1000 may select an encryption target based on a user input. For example, when a user inputs a person included in photo data as an encryption target, the device 1000 may process the photo data and select data representing a person from among the processed photo data as an encryption target.
- the selected encryption target may include various parameters.
- the selected encryption object may include a differential coded DC value, quantized samples, or AC coded samples, but is not limited thereto.
- the device 1000 may select metadata as an encryption target. For example, the device 1000 may select all meta data, some meta data, or processed meta data as an encryption target.
- the device 1000 may encrypt the selected encryption target.
- the device 1000 may directly encrypt the selected encryption target without converting it into a bitstream.
- the device 1000 may encrypt the encryption target by applying a predetermined function to values of parameters included in the encryption target.
- the device 1000 may encrypt the encryption target by exchanging parameters of the first block included in the encryption target based on a preset rule with the parameters of the second block.
- the device 1000 may encrypt the encryption target by changing the sign of values of parameters included in the encryption target.
- the device 1000 may encrypt the encryption target by changing the code of the parameters included in the processed multimedia data using a preset encryption key.
- the device 1000 may encrypt the encryption target by converting the selected encryption target into a bitstream, encrypting the bitstream, and converting the encrypted bitstream into data.
- the device 1000 may convert the encryption target selected from the processed multimedia data into a bitstream.
- the device 1000 may obtain predetermined values corresponding to the encryption target by mapping the encryption target to a preset mapping table.
- the device 1000 may obtain a bitstream corresponding to an encryption target by performing binary conversion on the obtained predetermined values.
- the device 1000 may perform binary conversion based on bit size information of each of predetermined values.
- the device 1000 may encrypt the obtained bitstream.
- the device 1000 may encrypt the obtained bitstream using an encryption method applicable to the bitstream.
- encryption methods applicable to the bitstream include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, and SEED.
- the device 1000 may obtain the encrypted data by converting the encrypted bitstream into data.
- the device 1000 may obtain the encrypted data by performing binary inverse transform on the encrypted bitstream to obtain predetermined values and mapping the predetermined values to a preset mapping table.
- the encrypted data may be limited to values in the range allowed by the codec.
- the data encrypted by the device 1000 may be limited to a range allowed by JPEG.
- the device 1000 may convert the processed multimedia data into encrypted multimedia data based on the result of the encrypting operation.
- the device 1000 may obtain encrypted data by encrypting an encryption target.
- the device 1000 may convert the processed multimedia data into encrypted multimedia data by converting an encryption target from the processed multimedia data into encrypted data.
- the device 1000 may convert the processed metadata into encrypted metadata by converting an encryption target from the processed metadata into encrypted data.
- the device 1000 may obtain encrypted data by encrypting data representing the first block. .
- the device 1000 may obtain encrypted photo data by converting data representing the first block from the processed photo data into encrypted data.
- the device 1000 may generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- the device 1000 may generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- the device 1000 may generate an encrypted meta bitstream by encoding the encrypted metadata.
- the device 1000 may generate encrypted multimedia data by converting the data representing the person from the processed photo data into encrypted data.
- an encrypted picture bitstream can be generated.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the device 1000 may convert the encrypted multimedia data into a combination of 1s and 0s using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the device 1000 may apply entropy coding corresponding to the codec applied to the multimedia bitstream to the encrypted multimedia data.
- the device 1000 may entropy encode multimedia data encrypted using CABAC.
- the device 1000 may encrypt the selected encryption target before entropy encoding.
- the device 1000 may generate an encrypted multimedia bitstream usable by the existing decoding device by encrypting the selected encryption target before entropy encoding.
- FIG. 3 is a diagram for describing a method of obtaining an encrypted multimedia bitstream, based on a multimedia bitstream, according to some embodiments.
- the device 1000 may obtain a multimedia bitstream.
- the device 1000 may receive the multimedia bitstream from an external device, and obtain the multimedia bitstream by encoding the multimedia data.
- the multimedia bitstream may include a plurality of bit groups.
- the plurality of bit groups may include a header region and a payload region, respectively.
- the device 1000 may obtain processed multimedia data by performing entropy decoding on the multimedia bitstream.
- the processed multimedia data may include a plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,...
- the device 1000 may select an encryption target from the processed multimedia data. For example, the device 1000 may select a portion of the plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,... Included in the processed multimedia data as an encryption target. In addition, the device 1000 may select all of the plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,... Included in the processed multimedia data as an encryption target.
- the device 1000 may encrypt the selected encryption target. For example, the device 1000 may directly encrypt the selected encryption target without converting the selected encryption target into a bitstream. In addition, the device 1000 may obtain the encrypted data by converting the selected encryption target into a bitstream, encrypting the bitstream, and converting the encrypted bitstream into data.
- the device 1000 may convert the processed multimedia data into encrypted multimedia data by encrypting the encryption target. For example, the device 1000 encrypts a plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,... Included in the processed multimedia data, thereby encrypting the encrypted data EVal1, EVal2. And encrypted multimedia data including EVal3, EVal4, EVal5, EVal6, .
- the device 1000 may generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the device 1000 may convert the parameter into a combination of 1 and 0 using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, fixed lenngth coding, CAVLC, CABAC, and the like.
- the device 1000 may obtain encrypted metadata using the same method as that of obtaining an encrypted multimedia bitstream.
- FIG. 4 is a diagram for describing a method of converting a multimedia bitstream into an encrypted multimedia bitstream, according to some embodiments.
- the device 1000 may obtain a multimedia bitstream.
- the device 1000 may receive the multimedia bitstream from an external device, and obtain the multimedia bitstream by encoding the multimedia data.
- the device 1000 may obtain processed multimedia data by performing entropy decoding on the multimedia bitstream.
- the processed multimedia data may include a plurality of parameters 70, -1, -1, 0, -1,...
- the device 1000 may select an encryption target from the processed multimedia data. For example, the device 1000 may select a portion of the plurality of parameters 70, -1, -1, 0, -1, ... included in the processed multimedia data as an encryption target. . In addition, the device 1000 may select all of the plurality of parameters 70, -1, -1, 0, -1,... Included in the processed multimedia data as an encryption target.
- the device 1000 may convert the encryption target into encrypted data by encrypting the selected encryption target. For example, the device 1000 may encrypt the plurality of parameters 70, -1, -1, 0, -1, ... included in the processed multimedia data, thereby encrypting the encrypted data 64, 1, 1, 0, 1, ...) can be obtained.
- the device 1000 may directly encrypt the selected encryption target without converting it into a bitstream.
- the device 1000 converts the selected encryption target 70, -1, -1, 0, -1, ... into a bitstream, encrypts the bitstream, and encrypts the encrypted stream.
- the encryption target can be converted into encrypted data (64, 1, 1, 0, 1, ).
- the device 1000 may generate an encrypted multimedia bitstream by encoding encrypted multimedia data including encrypted data.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the device 1000 may convert a plurality of parameters into a combination of 1 and 0 using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, fixed lenngth coding, CAVLC, CABAC, and the like.
- the device 1000 may convert the meta bitstream into an encrypted meta bitstream using the same method as the method of converting a multimedia bitstream into an encrypted multimedia bitstream.
- FIG. 5 is a diagram for describing a method of generating an encrypted bitstream from an image, according to some embodiments.
- the image data may be divided into a plurality of blocks.
- the image data may be divided into a plurality of blocks having sizes of 4 ⁇ 4, 8 ⁇ 8, and 16 ⁇ 16, but are not limited thereto.
- the photo data may be divided into a plurality of blocks having a size of 8 ⁇ 8.
- Each of the plurality of blocks having a size of 8 ⁇ 8 has 64 sample values.
- the device 1000 may apply a DCT transform to each of the plurality of blocks. As a result, the device 1000 may acquire DCT converted sample values.
- the device 1000 may quantize the DCT transformed sample values. As a result, the device 1000 may obtain quantized sample values.
- the device 1000 may obtain processed multimedia data by DC encoding and AC encoding the quantized sample values.
- the device 1000 may select an encryption target from the processed multimedia data. For example, the device 1000 may select some of the parameters representing the first block as an encryption target.
- the device 1000 may select parameters representing a block of some of the parameters representing the plurality of blocks as an encryption target.
- the device 1000 selects blocks included in a face of a person from among blocks included in the photo data as an encryption target and indicates blocks included in the face of the person among a plurality of blocks constituting the photo data. Parameters can be selected for encryption.
- the device 1000 may obtain encrypted multimedia data by encrypting a selected encryption target among the processed multimedia data.
- an encrypted multimedia bitstream can be obtained.
- FIG. 6 is a diagram for describing a method of directly encrypting an encryption target without converting the encryption target into a bitstream, according to some embodiments.
- the device 1000 may directly encrypt the encryption target without converting the encryption target into the bitstream.
- the device 1000 may directly encrypt the parameters.
- the device 1000 may encrypt the plurality of parameters to be encrypted by changing the codes of the plurality of parameters to be encrypted.
- the device 1000 may encrypt the plurality of parameters to be encrypted by changing the codes of the plurality of parameters to be encrypted using a predetermined encryption key.
- the device 1000 exchanges the plurality of parameters representing the first block with the parameters of the other block by a predetermined rule, thereby providing a plurality of the encryption targets.
- the parameters of can be encrypted.
- the device 1000 may encrypt the plurality of parameters to be encrypted by scrambling the plurality of parameters representing the first block with the parameters of another block. Can be.
- the device 1000 may encrypt the plurality of parameters to be encrypted by applying a specific function to the plurality of parameters to be encrypted.
- FIG. 7 is a diagram for describing a method of converting an encryption target into a bitstream and directly encrypting the converted bitstream, according to some embodiments.
- the device 1000 may encrypt the encryption target by converting the selected encryption target into a bitstream, encrypting the converted bitstream, and converting the encrypted bitstream into data.
- the device 1000 may obtain predetermined values corresponding to the selected encryption target based on the preset mapping table.
- the encryption target selected by the device 1000 may include a plurality of coefficients.
- the encryption target selected by the device 1000 may include a plurality of coefficients having one of values greater than -1023 and less than 1023.
- the device 1000 may determine a range of values of each of coefficients included in the selected encryption target, based on the mapping table.
- the mapping table sets the range of each of the coefficients to the zero range (0), the first range (-1, 1), the second range (-3, -2, 2, 3) and the third range (- 7, ...,-4, 4, ..., 7), fourth range (-15, ...,-8,8, ..., 15), fifth range (-31, .. .,-16,16, ..., 31), 6th range (-63 ...- 32, 32 ...
- the device 1000 may determine the range of each of the coefficients as one of the zero to eleventh ranges based on the mapping table.
- the device 1000 may change each time the mapping table, which is a reference for the range of the values of the coefficients included in the encryption target, is encrypted. In addition, the device 1000 may always determine the range of each value of the coefficients included in the encryption target by using the same mapping table.
- the device 1000 may generate, change, or delete the mapping table based on a user's input.
- the device 1000 may receive a mapping table from an external device and use a pre-stored mapping table.
- the mapping table held by the device 1000 may include various variables corresponding to each of the ranges included in the mapping table.
- the mapping table held by the device 1000 may include a maximum value variable MV.
- the maximum value variable MV means a maximum value that each of the divided regions may include.
- the mapping table held by the device 1000 includes 0 as the maximum value variable (MV) in the 0 area, 1 as the maximum value variable in the first area, and 3 as the maximum value variable in the second area. can do.
- the device 1000 may obtain a maximum value variable MV corresponding to the range of the determined value by mapping the range of the determined value of each of the coefficients to the mapping table.
- the device 1000 maps the zero range to the mapping table, thereby obtaining a maximum value variable 0 corresponding to the zero range. Can be obtained.
- the device 1000 corresponds to the mapping table so that the maximum value variable corresponding to the first range is 1. Can be obtained.
- the device 1000 corresponds to the mapping table so that the maximum value variable corresponding to the second range is 3. Can be obtained.
- the device 1000 may obtain a predetermined value based on a value of each of the coefficients included in the obtained encryption target and a maximum value variable MV corresponding to a range of the determined value of each of the coefficients.
- the device 1000 may obtain a predetermined value based on Equation 1.
- diff_val represents a value of a coefficient included in the encryption target
- val represents a predetermined value
- MV represents a maximum value variable corresponding to a range of determined values of each of the coefficients.
- the device 1000 may determine ⁇ the value of the first coefficient (Diff_val) + the maximum value variable (MV) ⁇ .
- a predetermined value val corresponding to the first coefficient may be obtained.
- the device 1000 sets the value of the first coefficient (diff_val) corresponding to the value of the first coefficient. Can be obtained by.
- the device 1000 may set the range of the value of the first coefficient based on the mapping table to the seventh range ( ⁇ 127). , ...,-64,64, ..., 127). In addition, the device 1000 may obtain 127 which is the maximum value variable MV corresponding to the seventh range from the mapping table.
- the device 1000 may correspond to Equation (1) with ⁇ 124, which is the first coefficient.
- the device 1000 may obtain a bitstream by binary converting predetermined values.
- the device 1000 may binary convert the obtained predetermined values.
- the device 1000 may represent 0 or 1 by binary converting the obtained predetermined value.
- the device 1000 may determine the bit size information of the obtained predetermined value. For example, the device 1000 may determine the bit size information based on a range of an encryption target value corresponding to the obtained predetermined value.
- the device 1000 may obtain a 7, which is bit size information of a predetermined value, by mapping the seventh range, which is the range of the value of the first coefficient, to the mapping table.
- the device 1000 may binary convert the obtained predetermined value based on the bit size information.
- the device 1000 may obtain an encrypted bitstream by applying an encryption process to the bitstream.
- the device 1000 may apply an encryption process to the bitstream.
- the device 1000 may encrypt the bitstream using an encryption process applicable to the bitstream.
- the encryption process applicable to the bitstream may include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED, and the like, but is not limited thereto.
- the device 1000 may obtain the encrypted bitstream by encrypting the bitstream.
- the device 1000 may obtain the encrypted bitstream “0001101” by encrypting the bitstream “0000011” obtained based on a predetermined value.
- the device 1000 may obtain encrypted data corresponding to the encrypted bitstream based on the preset mapping table.
- the device 1000 may obtain a predetermined value by applying a binary inverse transform on the encrypted bitstream.
- the device 1000 may obtain a predetermined value “13” by performing binary inverse conversion on “0001101”.
- the device 1000 may obtain various information corresponding to the encrypted bitstream by mapping the bit size information of the encrypted bitstream to the mapping table.
- the device 1000 may obtain the limit variable of the encrypted bitstream by mapping the bit size information of the encrypted bitstream to the mapping table.
- the device 1000 may map the bit size information “7” of the encrypted bitstream “0001101” to the mapping table, thereby limiting the threshold variable ““ corresponding to the encrypted bitstream ““ 0001101 ”. 64 ”).
- the device 1000 may obtain the maximum value variable MV of the encrypted data corresponding to the encrypted bitstream by mapping the bit size information of the encrypted bitstream to the mapping table.
- the maximum value variable (MV) means a maximum value that an area including encrypted data can contain.
- the device 1000 may use a predetermined value corresponding to the encrypted bitstream, a limit variable corresponding to the encrypted bitstream, and a maximum value variable MV corresponding to the encrypted bitstream. Encrypted data corresponding to the encrypted bitstream may be obtained.
- the device 1000 may obtain encrypted data using Equation 2.
- val2 represents a predetermined value corresponding to the encrypted bitstream
- limit represents a limit variable corresponding to the encrypted bitstream
- MV represents maximum value information corresponding to the encrypted bitstream.
- the device 1000 may determine the ⁇ val2) -encrypted bit.
- the maximum value information MV corresponding to the stream ⁇ may be determined as the encrypted data Eval corresponding to the encrypted bitstream.
- the device 1000 corresponds to the encrypted bitstream. It can be determined by the encrypted data (Eval).
- the device 1000 may obtain a predetermined value “13” by performing binary inverse conversion on “0001101”.
- the device 1000 maps the bit size information “7” of the encrypted bitstream “0001101” to the mapping table, thereby limiting the limit variable “64” corresponding to the encrypted bitstream “0001101”. ) Can be obtained.
- the device 1000 maps the bit size information “7” of the encrypted bitstream “0001101” to the mapping table, thereby providing the maximum value information (“127”) corresponding to the encrypted bitstream “0001101”. ”) Can be obtained.
- the device 1000 may encrypt the multimedia bitstream by encrypting each of the coefficients included in the encrypted object and performing entropy encoding after the encryption, while maintaining codec characteristics applied to the multimedia bitstream. .
- FIG. 8 is a diagram for describing a method of encrypting, by a device, an encryption target using a preset mapping table, according to some embodiments.
- the device 1000 may determine a range of values of each of the coefficients included in the selected encryption target, based on the preset mapping table.
- the mapping table sets the range of each of the coefficients to the zero range (0), the first range (-1, 1), the second range (-3, -2, 2, 3) and the third range (- 7, ...,-4, 4, ..., 7), fourth range (-15, ...,-8,8, ..., 15), fifth range (-31, .. .,-16,16, ..., 31), 6th range (-63 ...- 32, 32 ...
- the device 1000 may determine the range of each of the coefficients as one of the zero to eleventh ranges based on the mapping table.
- the device 1000 may set the range of the value of the first coefficient to the seventh range based on the mapping table. Can be obtained at 810.
- the device 1000 may obtain a maximum value variable MV corresponding to the range of the determined value by mapping the range of the determined value of each of the coefficients to a preset mapping table.
- the device 1000 may correspond to the seventh range to the preset mapping table, thereby increasing the maximum corresponding to the seventh range.
- a value variable 127 (820) may be obtained.
- the device 1000 may obtain a predetermined value based on a value of each of the coefficients included in the obtained encryption target and a maximum value variable MV corresponding to a range of the determined value of each of the coefficients.
- the device 1000 may set the range of the value of the first coefficient to the seventh range based on the mapping table. It may be determined at 810. In addition, the device 1000 may obtain 127 820, which is the maximum value variable Max_val corresponding to the seventh range 810, from the mapping table.
- the device 1000 Since the device 1000 is -124, which is the first coefficient among the plurality of coefficients included in the encryption target, is less than 0, the device 1000 adds 127 820, which is the maximum variable Max_val, to the value of the first coefficient, thereby adding the first coefficient.
- the device 1000 may binary convert the obtained predetermined values.
- the device 1000 may represent 0 or 1 by binary converting the obtained predetermined value.
- the device 1000 may determine the bit size information of the obtained predetermined value. For example, the device 1000 may determine the bit size information based on a range of an encryption target value corresponding to the obtained predetermined value.
- the device 1000 may obtain 7 830, which is bit size information of a predetermined value, by mapping a seventh range, which is a range of values of a first coefficient, to a mapping table.
- the device 1000 may binary convert the obtained predetermined value based on the bit size information.
- the device 1000 may apply an encryption process to the bitstream.
- the device 1000 may encrypt the bitstream using an encryption process applicable to the bitstream.
- the encryption process applicable to the bitstream may include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED, and the like, but is not limited thereto.
- the device 1000 may obtain the encrypted bitstream by encrypting the bitstream.
- the device 1000 may obtain the encrypted bitstream “0001101” by encrypting the bitstream “0000011” obtained based on a predetermined value.
- the device 1000 may obtain a predetermined value by applying a binary inverse transform on the encrypted bitstream.
- the device 1000 may obtain a predetermined value “13” by performing binary inverse conversion on “0001101”.
- the device 1000 may obtain various information corresponding to the encrypted bitstream by mapping the bit size information of the encrypted bitstream to the mapping table.
- the device 1000 may obtain the limit variable 840 of the encrypted bitstream by mapping bit size information of the encrypted bitstream to a mapping table. For example, the device 1000 may map the bit size information “7” of the encrypted bitstream “0001101” to the mapping table, thereby limiting the threshold variable ““ corresponding to the encrypted bitstream ““ 0001101 ”. 64 ”) 840 can be obtained.
- the device 1000 may obtain the maximum value variable MV of the encrypted data corresponding to the encrypted bitstream by mapping the bit size information of the encrypted bitstream to the mapping table.
- the maximum value variable (MV) refers to the maximum value that can be included in the range of values containing the encrypted data.
- the device 1000 maps the bit size information (“7”) of the encrypted bitstream (“0001101”) to the mapping table, thereby mapping the maximum value variable (MV) “127” (820). Can be obtained.
- the device 1000 may use a predetermined value corresponding to the encrypted bitstream, a limit variable corresponding to the encrypted bitstream, and a maximum value variable MV corresponding to the encrypted bitstream. Encrypted data corresponding to the encrypted bitstream may be obtained.
- the device 1000 may determine the ⁇ val2) -encrypted bit.
- the maximum value information MV corresponding to the stream ⁇ may be determined as the encrypted data Eval corresponding to the encrypted bitstream.
- the device 1000 may store the predetermined value val2 as the encrypted data Eval. Can be determined.
- a predetermined value “13” may be obtained by performing binary inverse conversion of “0001101”.
- the device 1000 maps the bit size information (“7”) 830 of the encrypted bitstream (“0001101”) to the mapping table, thereby limiting the limit variable corresponding to the encrypted bitstream (“0001101”). "64") 840 may be obtained.
- the device 1000 maps the bit size information (“7”) 830 of the encrypted bitstream (“0001101”) to the mapping table, thereby providing the maximum value information corresponding to the encrypted bitstream (“0001101”).
- (“127") 820 can be obtained.
- FIG. 9 is a diagram for describing a method of encrypting a bitstream by applying a 128 bit AES CTR to the bitstream, according to some embodiments.
- the device 1000 may use an AES method to encrypt an encryption target.
- the AES method available to the device 1000 may include various modes.
- the AES method may include, but is not limited to, ECB, CBC, PCBC, CFB, OFB, or CTR mode.
- the device 1000 may encrypt the encryption target using the CTR mode.
- the device 1000 may encrypt the counter value by encrypting the counter value and performing XOR operation on the encrypted counter value and the encryption object.
- the device 1000 may use counter values of various sizes. For example, the device 1000 may use a Counter value of 128 bits, a Counter value of 196 bits, or a Counter value of 256 bits, but is not limited thereto.
- the device 1000 may encrypt the bitstream by converting an object to be encrypted into the bitstream among the processed multimedia data, and applying the AES CTR_128 bits mode to the converted bitstream.
- AES CTR_128 bits mode refers to AES CTR mode using a counter value of 128 bits.
- the device 1000 may encrypt a counter value of 128 bits.
- the device 1000 may encrypt a counter value using an encryption key, but is not limited thereto.
- the device 1000 may encrypt the converted bitstream by performing XOR operation on the converted bitstream and the encrypted counter value.
- the device 1000 performs an Xor operation on a bitstream obtained by converting a first coefficient Val 1 of an object to be encrypted and an encrypted counter, thereby encrypting the encrypted bitstream EV 1 of the first coefficient Val 1. ) Can be obtained.
- the device 1000 may obtain the encrypted bitstream EV 2 of the second coefficient Val 2 by performing Xor operation on the bit stream in which the second coefficient Val 2 is converted and the encrypted counter. Can be.
- the device 1000 may obtain bit size information of the bitstream and use the bit size information of the obtained bitstream.
- the device 1000 when the device 1000 encrypts the current bitstream using the encrypted first counter value, the bits of the bit streams encrypted using the first counter value before the current bit stream. When the sum of the sizes and the sum of the bit sizes of the current bit stream exceeds 128, the device 1000 may encrypt the current bit stream using the encrypted second counter value.
- the device 1000 may determine the bit size of the bit streams encrypted using the second counter value before the current bit stream. If the sum of the sum and the bit size of the current bit stream exceeds 128, the device 1000 may encrypt the current bit stream using the encrypted third counter value.
- the device 1000 may minimize the process of encrypting the counter value by applying the AES CTR_128bits method using the bit size information. In addition, the device 1000 may reduce the operation degree of the encryption process by minimizing the process of encrypting the counter value.
- FIG. 10 is a diagram for describing a method of encrypting a portion of a multimedia bitstream, according to some embodiments.
- the device 1000 may obtain a multimedia bitstream.
- the device 1000 may receive the multimedia bitstream from an external device, and obtain the multimedia bitstream by encoding the multimedia data.
- the multimedia bitstream may include a plurality of bit groups.
- the plurality of bit groups may include a header region and a payload region, respectively.
- the device 1000 may obtain processed multimedia data by performing entropy decoding on the multimedia bitstream.
- the processed multimedia data may include a plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,...
- the device 1000 may select an encryption target from the processed multimedia data. For example, the device 1000 may select a portion of the plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,... Included in the processed multimedia data as an encryption target. In addition, the device 1000 may select all of the plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,... Included in the processed multimedia data as an encryption target.
- the device 1000 may select portions Val3, Val4, and Val5 as an encryption target from among a plurality of parameters included in the processed multimedia data.
- the device 1000 may encrypt the selected encryption target. For example, the device 1000 may directly encrypt the selected encryption target without converting the selected encryption target into a bitstream. In addition, the device 1000 may obtain the encrypted data by converting the selected encryption target into a bitstream, encrypting the bitstream, and converting the encrypted bitstream into data.
- the device 1000 may convert the processed multimedia data into encrypted multimedia data by encrypting the encryption target.
- the device 1000 may select an encryption object selected from a plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,..., In the processed multimedia data.
- an encryption object selected from a plurality of parameters Val1, Val2, Val3, Val4, Val5, Val6,..., In the processed multimedia data.
- By encrypting (Val3, Val4, Val5) encrypted multimedia data including the encrypted data EVal3, EVal4, EVal5 can be obtained.
- the device 1000 may generate an encrypted multimedia bitstream by encoding the encrypted multimedia data.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the device 1000 may convert the encrypted multimedia data into a combination of 1s and 0s using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, fixed lenngth coding, CAVLC, CABAC, and the like.
- 11 is a diagram representing an embodiment of a partially encrypted multimedia bitstream.
- the device 1000 may select an encryption target.
- the device 1000 may select some of the processed multimedia data as an encryption target. In addition, the device 1000 may select all of the processed multimedia data as an encryption target.
- the device 1000 may acquire processed photo data by processing photo data composed of a plurality of blocks, and select data representing the first block among the processed photo data as an encryption target.
- the device 1000 may select an encryption target based on a preset criterion. For example, when a person included in the photo data is previously set as an encryption target, the device 1000 may process the photo data and select data representing a person from among the processed photo data as an encryption target.
- the device 1000 may select an encryption target based on a user input. For example, when a user inputs a person included in photo data as an encryption target, the device 1000 may process the photo data and select data representing a person from among the processed photo data as an encryption target.
- the device 1000 may select a person included in the photo data as an encryption target.
- the device 1000 may obtain a photo bitstream which is partially encrypted by encrypting data representing a person included in the photo data.
- the device 1000 may encrypt the encryption target before entropy encoding.
- Existing decoding devices can decode an encrypted multimedia bitstream. For example, an existing decoding device can obtain multimedia data partially encrypted by decoding the encrypted multimedia bitstream. In addition, existing decoding devices can display multimedia data that is partially encrypted.
- FIG. 12 is a diagram for describing encryption compensation, according to some embodiments.
- the device 1000 may divide the multimedia data into a plurality of areas. For example, the device 1000 may divide the entire area of the multimedia data into an encrypted area and an unencrypted area.
- the device 1000 may select an encryption area of the multimedia data based on a user input.
- the device 1000 may select an encryption area of the multimedia data based on a preset criterion. For example, when a person included in the photo data is previously set as an encryption target, the device 1000 may select data representing a person from among the photo data as an encryption target.
- the device 1000 may divide the non-encrypted region of the multimedia data into an encryption neighboring region and another region.
- the encryption neighboring area refers to an area using the data included in the encryption area when the device 1000 encodes the multimedia data.
- the other area means an area excluding an encryption neighboring area from an unencrypted area.
- the second block included in the photo data and included in the non-encrypted region may be a portion of the first region included in the encrypted region. You can refer to the data.
- the device 1000 may divide the second block into an encryption neighboring area.
- the device 1000 when the device 1000 encrypts the encryption area in the multimedia data, the device 1000 may encrypt the encrypted area using the method described above with reference to FIGS. 2 to 10.
- the device 1000 may convert multimedia data into encrypted multimedia data by performing encryption on an encrypted region of the multimedia data and not encrypting other regions of the non-encrypted region.
- the device 1000 may perform encryption compensation on the encrypted neighboring area.
- Encryption compensation refers to a process of correcting data in an encrypted neighboring area when the device 1000 encrypts an encryption target.
- the device 1000 when the device 1000 encrypts an encrypted area included in the multimedia data, the data in the encrypted adjacent area referencing the encrypted area may cause an error because the data in the encrypted area is converted.
- the device 1000 may perform encryption compensation on data in the encrypted neighboring area to prevent an error in the encrypted neighboring area.
- 13 is a diagram for describing a method of decrypting an encrypted bitstream, according to some embodiments.
- the device 1000 may obtain encrypted multimedia data by decoding the encrypted media bitstream.
- the device 1000 may obtain an encrypted multimedia bitstream.
- the device 1000 may generate an encrypted multimedia bitstream and may receive from an external device.
- the device 1000 may obtain an encrypted meta bitstream.
- the device 1000 may generate an encrypted meta bitstream and may receive from an external device.
- the device 1000 may obtain encrypted multimedia data from the encrypted multimedia bitstream.
- the device 1000 may obtain encrypted metadata from the encrypted meta bitstream.
- the device 1000 may obtain encrypted multimedia data by performing entropy decoding on the encrypted multimedia bitstream.
- Entropy decoding refers to a coding method for converting a bit stream into data corresponding to the bit stream.
- Entropy decoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the device 1000 may select a decryption target from the encrypted multimedia data.
- the device 1000 may select a decoding target.
- the device 1000 may search the encrypted portion by analyzing the encrypted multimedia data, and select a decryption target from the encrypted portion.
- the device 1000 may search the encrypted part by analyzing the encrypted metadata, and select a decryption target from the encrypted part.
- the device 1000 may obtain picture data in which the first block and the second block are encrypted.
- the device 1000 may search for a portion representing the encrypted first block and the second block among the encrypted photo data, and select a decryption target among the portion representing the first block and the portion representing the second block.
- the device 1000 may select all of the encrypted portions of the encrypted multimedia data as the decryption target, and select some of the encrypted portions as the decryption target. For example, the device 1000 may select all or part of an encrypted portion of the encrypted multimedia data as a decryption target based on a predetermined criterion or a user input.
- the device 1000 may decode the selected decoding target.
- the device 1000 may decode the selected decoding target. For example, the device 1000 may decrypt the decryption target by using a decryption process corresponding to the encryption process used when encrypting the decryption target.
- the device 1000 may directly decode the selected decoding target without converting it into a bitstream.
- the device 1000 may decode the decoding target by applying a predetermined function to values of parameters included in the decoding target.
- the device 1000 may decode the decoding target by exchanging parameters of the first block included in the decoding target based on a preset rule with the parameters of the second block.
- the device 1000 may decode the decoding target by changing the sign of the values of the parameters included in the decoding target.
- the device 1000 may decode the object to be decrypted by changing the code of the parameters included in the processed multimedia data using a predetermined decryption key.
- the device 1000 may decode the decoding object by converting the selected decoding object into a bitstream, decoding the bitstream, and converting the decoded bitstream into data.
- the device 1000 may convert the decryption target selected from the encrypted multimedia data into a bitstream.
- the device 1000 may obtain predetermined values corresponding to the decoding target by mapping the decoding target to a preset mapping table.
- the device 1000 may obtain a bitstream corresponding to a decoding target by performing binary conversion on the obtained predetermined values.
- the device 1000 may perform binary conversion based on bit size information of each of predetermined values.
- the device 1000 may decode the obtained bitstream.
- the device 1000 may decode the obtained bitstream by using a decoding method applicable to the bitstream.
- decoding methods applicable to the bitstream include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, and SEED.
- the device 1000 may obtain the decoded data by converting the decoded bitstream into data.
- the device 1000 may obtain decoded data by performing binary inverse transform on the decoded bitstream to obtain predetermined values and mapping the predetermined values to a preset mapping table.
- the device 1000 may limit the decrypted data. For example, if the values of the decoded data deviate from the values of the data allowed in the existing decoding device, the device 1000 may correct the values of the decoded data to the values allowed in the existing decoding device.
- the device 1000 may convert the encrypted multimedia data into decrypted multimedia data based on the result of the decrypting operation.
- the device 1000 may obtain the decoded data by decoding the decoding target.
- the device 1000 may convert the encrypted multimedia data into decrypted multimedia data by converting the decryption target of the encrypted multimedia data into decrypted data.
- the device 1000 may convert the encrypted meta data into the decrypted metadata by converting the decryption target of the encrypted metadata into the decrypted data.
- the device 1000 may obtain decoded data by decoding data representing the first block. .
- the device 1000 may obtain decrypted photo data by converting data representing the first block from the encrypted photo data into decrypted data.
- the device 1000 may generate the decoded multimedia bitstream by encoding the decoded multimedia data.
- the device 1000 may generate the decoded multimedia bitstream by encoding the decoded multimedia data.
- the device 1000 may generate the decoded meta bitstream by encoding the decoded meta data.
- the device 1000 may generate the decrypted photo data by converting the data representing the person from among the encrypted photo data into decrypted data.
- the decoded photo bitstream may be generated.
- Encoding may include entropy encoding.
- Entropy encoding may convert data into a bitstream.
- the device 1000 may convert the decoded multimedia data into a combination of 1s and 0s using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- FIG. 14 is a diagram for describing a method of decoding a decoding object and restoring an image, according to an exemplary embodiment.
- the device 1000 may obtain an encrypted multimedia bitstream.
- the device 1000 may obtain an encrypted meta bitstream.
- the device 1000 may receive an encrypted multimedia bitstream from an external device and generate an encrypted multimedia bitstream.
- the device 1000 may obtain encrypted multimedia data by performing entropy decoding on the encrypted multimedia bitstream.
- the encrypted multimedia data may include a plurality of parameters 64, 1, 1, 0, 2,...
- the device 1000 may select a decryption target from the encrypted multimedia data. For example, the device 1000 may search for the encrypted portion among the plurality of parameters 64, 1, 1, 0, 2,... Included in the encrypted multimedia data.
- the decoding target can be selected from the list.
- the device 1000 may select all encrypted portions of the encrypted multimedia data as decryption targets, and select some of the encrypted portions as decryption targets. In addition, the device 1000 may select all or part of an encrypted portion of the encrypted multimedia data as a decryption target based on a predetermined criterion or a user input.
- the device 1000 may convert the decoding target into the decoded data by decoding the selected decoding target. For example, the device 1000 decrypts the encrypted data 64, 1, 1, 0, 1,... Included in the encrypted multimedia data, thereby decrypting the decrypted data 70, -1,. -1, 0, -1, ...) can be obtained.
- the device 1000 may decrypt the decryption object by using a decryption process corresponding to the encryption process used when encrypting the decryption object.
- the device 1000 may directly decode the selected decoding target without converting it into a bitstream.
- the device 1000 converts the decoding target 64, 1, 1, 0, 1,... Into a bitstream, decodes the bitstream, and converts the decoded bitstream into data.
- the decoding target can be converted into decoded data (70, -1, -1, 0, -1, ).
- the device 1000 may convert the encrypted multimedia data into the decrypted multimedia data based on the decrypted data, and restore the image by restoring sample values using the decrypted multimedia data.
- 15 is a diagram for describing a method of directly decoding a decoding target without converting the decoding target into a bitstream, according to some embodiments.
- the device 1000 may directly decode a decoding target without converting the decoding target into a bitstream.
- the device 1000 may directly decode the parameters.
- the device 1000 may decode a plurality of parameters to be decoded by changing a sign of each of a plurality of parameters to be decoded.
- the device 1000 may decode a plurality of parameters to be decoded by changing the codes of the plurality of parameters to be decoded using a predetermined decryption key.
- the device 1000 exchanges the plurality of parameters indicating the first block with the parameters of the other block by a predetermined rule, thereby providing a plurality of decoding targets. Can be decoded.
- the device 1000 may decode the plurality of parameters to be decrypted by scrambling the plurality of parameters representing the first block with the parameters of another block. Can be.
- the device 1000 may decode a plurality of parameters to be decoded by applying a specific function to a plurality of parameters to be decoded.
- FIG. 16 is a diagram for describing a method of converting a decoding object into a bitstream and directly decoding the converted bitstream, according to some embodiments.
- the device 1000 may decode the decoding object by converting the selected decoding object into a bitstream, decoding the converted bitstream, and converting the decoded bitstream into data.
- the device 1000 may obtain predetermined values corresponding to the selected decoding target based on the preset mapping table.
- the decoding target selected by the device 1000 may include a plurality of coefficients.
- the decoding object selected by the device 1000 may include a plurality of coefficients having one of values greater than ⁇ 1023 and less than 1023.
- the device 1000 may determine the range of each value of the coefficients included in the selected decoding target based on the mapping table.
- the mapping table sets the range of each of the coefficients to the zero range (0), the first range (-1, 1), the second range (-3, -2, 2, 3) and the third range (- 7, ...,-4, 4, ..., 7), fourth range (-15, ...,-8,8, ..., 15), fifth range (-31, .. .,-16,16, ..., 31), 6th range (-63 ...- 32, 32 ...
- the device 1000 may determine the range of each of the coefficients as one of the zero to eleventh ranges based on the mapping table.
- the device 1000 may change each time the decoding table decodes the mapping table, which is a reference of the range of values of the coefficients included in the decoding target. In addition, the device 1000 may always determine the range of each value of the coefficients included in the decoding target by using the same mapping table.
- the device 1000 may generate, change, or delete the mapping table based on a user's input.
- the device 1000 may receive a mapping table from an external device and use a pre-stored mapping table.
- the mapping table held by the device 1000 may include various variables corresponding to each of the ranges included in the mapping table.
- the mapping table held by the device 1000 may include a maximum value variable MV.
- the maximum value variable MV means a maximum value that each of the divided regions may include.
- the mapping table held by the device 1000 includes 0 as the maximum value variable (MV) in the 0 area, 1 as the maximum value variable in the first area, and 3 as the maximum value variable in the second area. can do.
- the device 1000 may obtain a maximum value variable MV corresponding to the range of the determined value by mapping the range of the determined value of each of the coefficients to the mapping table.
- the device 1000 may map the zero range to the mapping table, thereby obtaining a maximum value variable 0 corresponding to the zero range. Can be obtained.
- the device 1000 corresponds to the mapping table so that the maximum value variable corresponding to the first range is 1. Can be obtained.
- the device 1000 corresponds to the mapping table so that the maximum value variable corresponding to the second range is 3. Can be obtained.
- the device 1000 may obtain a predetermined value based on the obtained value of each of the coefficients included in the decoding target and the maximum value variable MV corresponding to the range of the determined value of each of the coefficients.
- the device 1000 may obtain a predetermined value based on Equation 3.
- E_val represents a value of the coefficient included in the decoding object
- val represents a predetermined value
- MV represents a maximum value variable corresponding to the range of the determined value of each of the coefficients.
- the device 1000 may determine ⁇ the value of the first coefficient E_val + the maximum value variable MV ⁇ . It may be obtained by a predetermined value (val) corresponding to the first coefficient.
- the device 1000 sets the value E_val of the first coefficient to a predetermined value val corresponding to the value of the first coefficient. Can be obtained by.
- the device 1000 may set the range of the value of the first coefficient based on the mapping table to the seventh range ( ⁇ 127). , ...,-64,64, ..., 127). In addition, the device 1000 may obtain 127 which is the maximum value variable MV corresponding to the seventh range from the mapping table.
- the device 1000 may map ⁇ 114, which is the first coefficient, to Equation (3).
- the device 1000 may obtain a bitstream by binary converting predetermined values.
- the device 1000 may binary convert the obtained predetermined values.
- the device 1000 may represent 0 or 1 by binary converting the obtained predetermined value.
- the device 1000 may determine the bit size information of the obtained predetermined value. For example, the device 1000 may determine the bit size information based on the range of the decoding target value corresponding to the obtained predetermined value.
- the device 1000 may obtain a 7, which is bit size information of a predetermined value, by mapping the seventh range, which is the range of the value of the first coefficient, to the mapping table.
- the device 1000 may binary convert the obtained predetermined value based on the bit size information.
- the device 1000 may obtain a decoded bitstream by applying a decoding process to the bitstream.
- the device 1000 may apply a decoding process to the bitstream. For example, the device 1000 may decode the bitstream using a decoding process applicable to the bitstream. In addition, the device 1000 may decrypt the decryption target by using a decryption process corresponding to the encryption process used when encrypting the decryption target.
- the decoding process applicable to the bitstream may include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED, and the like, but is not limited thereto.
- the device 1000 may obtain the decoded bitstream by decoding the bitstream.
- the device 1000 may obtain the decoded bitstream “0000011” by decoding the bitstream “0001101” obtained based on a predetermined value.
- the device 1000 may obtain decoded data corresponding to the decoded bitstream based on the preset mapping table.
- the device 1000 may obtain a predetermined value by applying a binary inverse transform to the decoded bitstream.
- the device 1000 may obtain a predetermined value “3” by performing binary inverse transformation on “0000011”.
- the device 1000 may obtain various information corresponding to the decoded bitstream by mapping bit size information of the decoded bitstream to a mapping table.
- the device 1000 may obtain the limit variable of the decoded bitstream by mapping the bit size information of the decoded bitstream to the mapping table.
- the device 1000 may correspond to the mapping table by the bit size information “7” of the decoded bitstream “0000011”, so that the limit variable ““ corresponding to the decoded bitstream “0000011” may be changed. 64 ”).
- the device 1000 may obtain the maximum value variable MV of the decoded data corresponding to the decoded bitstream by mapping the bit size information of the decoded bitstream to the mapping table.
- the maximum value variable MV refers to a maximum value that may be included in an area including the decoded data.
- the device 1000 may use a predetermined value corresponding to the decoded bitstream, a limit variable corresponding to the decoded bitstream, and a maximum value variable MV corresponding to the decoded bitstream. Decoded data corresponding to the decoded bitstream may be obtained.
- the device 1000 may obtain decoded data using Equation 4.
- val3 represents a predetermined value corresponding to the decoded bitstream
- limit represents a limit variable corresponding to the decoded bitstream
- MV represents maximum value information corresponding to the decoded bitstream.
- the device 1000 may determine ⁇ val3) -decoded bit.
- the maximum value information MV corresponding to the stream ⁇ may be determined as the decoded data D_val corresponding to the decoded bitstream.
- the device 1000 corresponds to the decoded bitstream.
- the decoded data D_val may be determined.
- the device 1000 may obtain a predetermined value “3” by performing binary inverse transformation on “0000011”.
- the device 1000 corresponds to the mapping table by the bit size information "7" of the decoded bitstream "0000011” to the mapping table, whereby the limit variable "64" corresponding to the decoded bitstream "0000011". ) Can be obtained.
- the device 1000 corresponds to the mapping table by the bit size information "7" of the decoded bitstream "0000011", so that the maximum value information ("127") corresponding to the decoded bitstream "0000011” is obtained. ”) Can be obtained.
- the device 1000 may decode each of the coefficients included in the decoding target before entropy encoding to decode the multimedia bitstream while maintaining the codec characteristic applied to the multimedia bitstream.
- 17 is a diagram for describing a method of decoding, by the device 1000, a decoding object by using a preset mapping table, according to some embodiments.
- the device 1000 may determine the range of the value of each of the coefficients included in the selected decoding target based on the preset mapping table.
- the mapping table sets the range of each of the coefficients to the zero range (0), the first range (-1, 1), the second range (-3, -2, 2, 3) and the third range (- 7, ...,-4, 4, ..., 7), fourth range (-15, ...,-8,8, ..., 15), fifth range (-31, .. .,-16,16, ..., 31), 6th range (-63 ...- 32, 32 ...
- the device 1000 may determine the range of each of the coefficients as one of the zero to eleventh ranges based on the mapping table.
- the device 1000 may set the range of the value of the first coefficient to the seventh range based on the mapping table. Can be acquired in 1710.
- the device 1000 may obtain a maximum value variable MV corresponding to the range of the determined value by mapping the range of the determined value of each of the coefficients to a preset mapping table.
- the device 1000 corresponds to the preset mapping table by mapping the seventh range to a maximum corresponding to the seventh range.
- a value variable 127 (1720) may be obtained.
- the device 1000 may obtain a predetermined value based on the obtained value of each of the coefficients included in the decoding target and the maximum value variable MV corresponding to the range of the determined value of each of the coefficients.
- the device 1000 may set the range of the value of the first coefficient to the seventh range based on the mapping table. (1710). In addition, the device 1000 may obtain 127 1720, which is the maximum value variable Max_val corresponding to the seventh range 1710, from the mapping table.
- the device 1000 Since the device 1000 has -114, which is the first coefficient among the plurality of coefficients included in the decoding target, is less than 0, the device 1000 adds 127 (1720), which is the maximum variable Max_val, to the value of the first coefficient, thereby adding the first coefficient.
- the device 1000 may binary convert the obtained predetermined values.
- the device 1000 may represent 0 or 1 by binary converting the obtained predetermined value.
- the device 1000 may determine the bit size information of the obtained predetermined value. For example, the device 1000 may determine the bit size information based on the range of the decoding target value corresponding to the obtained predetermined value.
- the device 1000 may obtain 7 1730, which is bit size information of a predetermined value, by mapping a seventh range, which is a range of values of a first coefficient, to a mapping table.
- the device 1000 may binary convert the obtained predetermined value based on the bit size information.
- the device 1000 may apply a decoding process to the bitstream.
- the device 1000 may decode the bitstream using a decoding process applicable to the bitstream.
- the decoding process applicable to the bitstream may include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, SEED, and the like, but is not limited thereto.
- the device 1000 may obtain the decoded bitstream by decoding the bitstream.
- the device 1000 may obtain the decoded bitstream “0000011” by decoding the bitstream “0001101” obtained based on a predetermined value.
- the device 1000 may obtain a predetermined value by applying a binary inverse transform to the decoded bitstream.
- the device 1000 may obtain a predetermined value “13” by performing binary inverse transformation on “0001101”.
- the device 1000 may obtain various information corresponding to the decoded bitstream by mapping bit size information of the decoded bitstream to a mapping table.
- the device 1000 may obtain the limit variable 1740 of the decoded bitstream by mapping bit size information of the decoded bitstream to a mapping table.
- the device 1000 may correspond to the mapping table by the bit size information “7” of the decoded bitstream “0000011”, so that the limit variable ““ corresponding to the decoded bitstream “0000011” may be changed.
- 64 ”) 1740 may be obtained.
- the device 1000 may obtain the maximum value variable MV of the decoded data corresponding to the decoded bitstream by mapping the bit size information of the decoded bitstream to the mapping table.
- the maximum value variable MV means a maximum value that may be included in a range of values including the decoded data.
- the device 1000 maps the bit size information “7” of the decoded bitstream “0000011” to a mapping table, thereby mapping the maximum value variable MV “127” 1720. Can be obtained.
- the device 1000 may use a predetermined value corresponding to the decoded bitstream, a limit variable corresponding to the decoded bitstream, and a maximum value variable MV corresponding to the decoded bitstream. Decoded data corresponding to the decoded bitstream may be obtained.
- the device 1000 may determine ⁇ val3) -decoded bit.
- the maximum value information MV corresponding to the stream ⁇ may be determined as the decoded data E_val corresponding to the decoded bitstream.
- the device 1000 corresponds to the decoded bitstream.
- the decoded data D_val may be determined.
- the predetermined value “3” may be obtained by performing binary inverse transformation on “0000011”.
- the device 1000 corresponds to the mapping table by bit size information (“7”) 1730 of the decoded bitstream “0000011”, so that the limit variable corresponding to the decoded bitstream “0000011” ( "64") 1740 may be obtained.
- the device 1000 corresponds to the mapping table by bit size information (“7”) 1730 of the decoded bitstream “0000011”, so that the maximum value information corresponding to the decoded bitstream “0000011” is obtained. (“127”) 1720 can be obtained.
- 18 is a diagram for describing decoding compensation, according to some embodiments.
- the device 1000 may divide the encrypted multimedia data into a plurality of areas. For example, the device 1000 may divide the entire area of the encrypted multimedia data into a decryption area and an undecryption area.
- the device 1000 may select a decryption area of the encrypted multimedia data based on a user input. In addition, the device 1000 may select a decryption area of the encrypted multimedia data based on a preset criterion.
- the device 1000 may divide the undecoded region of the multimedia data into a decoding adjacent region and another region.
- the decoding neighboring area refers to an area using the data included in the decoding area when the device 1000 encodes or decodes the multimedia data.
- the other region means the region other than the decoding neighboring region in the decoded region.
- a second block included in the picture data and included in the undecoded area may be a first block included in the decoding area. You can refer to the data of the area. In this case, the device 1000 may divide the second block into a decoding adjacent region.
- the device 1000 when the device 1000 decodes a decoding area in the multimedia data, the device 1000 may decode the method by using the method described above with reference to FIGS. 13 to 17.
- the device 1000 may convert the encrypted multimedia data into the decrypted multimedia data by performing decryption on the decryption region of the multimedia data and not decrypting the other region of the undecryption region.
- the device 1000 when decoding the multimedia data including the decoding neighbor region, the device 1000 may perform decoding compensation on the decoding neighbor region.
- the decoding compensation can receive the destream.
- the encryption unit 1020 of the device 1000 may obtain processed multimedia data by applying a sub coding module to the multimedia bitstream.
- the encryption unit 1020 of the device 1000 may obtain processed multimedia data by applying an entropy decoding module to the multimedia bitstream.
- the entropy decoding module refers to a module that performs entropy decoding.
- Entropy decoding refers to a coding method for converting a bit stream into data corresponding to the bit stream.
- Entropy decoding may include methods such as Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the device 1000 when the device 1000 decodes a decoding area included in the multimedia data, an error may occur in the data of the decoding adjacent area because the decoding adjacent area uses the data of the decoding area.
- the device 1000 may perform decoding compensation on the decoding neighbor region in order to prevent an error in the decoding neighbor region.
- 19 is a block diagram illustrating a device in accordance with some embodiments.
- the device 1000 may include a control unit 1010, an encryption unit 1020, and a decryption unit 1030.
- the controller 1010, the encryption unit 1020, and the decryption unit 1030 may be implemented by one processor.
- the controller 1010, the encryption unit 1020, and the decryption unit 1030 may be implemented by one processor, or may be implemented by a plurality of processors, but is not limited thereto.
- the encryption unit 1020 of the device 1000 may obtain multimedia data.
- the multimedia data means various data in which voice, text, picture, video, and the like are mixed.
- the multimedia data may include photo data, song data, video data, audio data, text data, flash data, and the like.
- the encryption unit 1020 of the device 1000 may obtain metadata.
- the encryption unit 1020 of the device 1000 may apply at least one sub coding module to the multimedia data.
- the sub-coding module means a sub-module used when compressing multimedia data by applying various codecs to the multimedia data.
- the sub coding module may include a DCT transform module, a quantization module, a prediction module, an entropy coding module, an entropy decoding module, and the like, but are not limited thereto.
- the encryption unit 1020 of the device 1000 may include a plurality of sub coding modules.
- the plurality of sub-coding modules may be implemented by one processor, each may be implemented by one processor, and may be implemented by a plurality of processors, but is not limited thereto.
- the encryption unit 1020 of the device 1000 may obtain processed multimedia data by applying at least one sub-coding module to multimedia data, metadata, or a combination thereof.
- the device 1000 may obtain the processed multimedia data by applying the DCT conversion module and both and the module to the multimedia data.
- the processed multimedia data may include various parameters generated in the process of encoding the multimedia data.
- the processed multimedia data may include a differential coded DC value, quantized samples, or AC coded samples, but is not limited thereto.
- the encryption unit 1020 of the device 1000 may obtain processed multimedia data using the multimedia bitstream.
- the encryption unit 1020 of the device 1000 may obtain a multimedia bitstream by directly encoding multimedia data.
- the encryption unit 1020 of the device 1000 is not a multimedia bit from an external device.
- the encryption unit 1020 of the device 1000 may select an encryption target.
- the encryption unit 1020 of the device 1000 may select some of the processed multimedia data as an encryption target. Also, the encryption unit 1020 of the device 1000 may select all of the processed multimedia data as an encryption target.
- the encryption unit 1020 of the device 1000 may acquire processed photo data by processing photo data composed of a plurality of blocks, and select data representing the first block among the processed photo data as an encryption target. have.
- the encryption unit 1020 of the device 1000 may select an encryption target based on a preset criterion. For example, when a person included in the photo data is previously set as an encryption target, the encryption unit 1020 of the device 1000 may process the photo data and select data representing a person from the processed photo data as an encryption target. have.
- the encryption unit 1020 of the device 1000 may select an encryption target based on a user input. For example, when the user inputs a person included in the photo data as an encryption target, the encryption unit 1020 of the device 1000 processes the photo data, and the data representing the person from the processed photo data is used as the encryption target. You can choose.
- the encryption unit 1020 of the device 1000 may select metadata as an encryption target.
- the device 1000 may select all meta data, some meta data, or processed meta data as an encryption target.
- the selected encryption target may include various parameters.
- the selected encryption object may include a differential coded DC value, quantized samples, or AC coded samples, but is not limited thereto.
- the encryption unit 1020 of the device 1000 may directly encrypt the selected encryption target without converting it into a bitstream.
- the encryption unit 1020 of the device 1000 may encrypt the encryption target by applying a predetermined function to the values of parameters included in the encryption target.
- the encryption unit 1020 of the device 1000 may encrypt the encryption target by exchanging parameters of the first block included in the encryption target based on a preset rule with the parameters of the second block. have.
- the encryption unit 1020 of the device 1000 may encrypt the encryption target by changing the sign of values of parameters included in the encryption target.
- the encryption unit 1020 of the device 1000 may encrypt the encryption target by changing the code of the parameters included in the processed multimedia data using a preset encryption key.
- the encryption unit 1020 of the device 1000 may encrypt the encryption target by converting the selected encryption target into a bitstream, encrypting the bitstream, and converting the encrypted bitstream into data. .
- the encryption unit 1020 of the device 1000 may convert the selected encryption target from the processed multimedia data into a bitstream.
- the encryption unit 1020 of the device 1000 may obtain predetermined values corresponding to the encryption target by mapping the encryption target to a preset mapping table.
- the encryption unit 1020 of the device 1000 may obtain a bitstream corresponding to an encryption target by performing binary conversion on the obtained predetermined values.
- the encryption unit 1020 of the device 1000 may perform binary conversion based on bit size information of each of predetermined values.
- the encryption unit 1020 of the device 1000 may encrypt the obtained bitstream.
- the device 1000 may encrypt the obtained bitstream using an encryption method applicable to the bitstream.
- encryption methods applicable to the bitstream include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, and SEED.
- the encryption unit 1020 of the device 1000 may obtain the encrypted data by converting the encrypted bitstream into data.
- the encryption unit 1020 of the device 1000 obtains predetermined values by performing binary inverse transformation on the encrypted bitstream and maps the predetermined values to a preset mapping table, thereby obtaining encrypted data. Can be.
- the encryption unit 1020 of the device 1000 may obtain encrypted data by encrypting an encryption target. Also, the encryption unit 1020 of the device 1000 may convert the processed multimedia data into encrypted multimedia data by converting an encryption target from the processed multimedia data into encrypted data. Also, the encryption unit 1020 of the device 1000 may convert the processed metadata into encrypted metadata by converting an encryption target from the processed metadata into encrypted data.
- the encryption unit 1020 of the device 1000 indicates the first block.
- encrypted data can be obtained.
- the encryption unit 1020 of the device 1000 may obtain encrypted photo data by converting data representing the first block from the processed photo data into encrypted data.
- the encryption unit 1020 of the device 1000 may generate an encrypted multimedia bitstream by encoding encrypted multimedia data.
- the encryption unit 1020 of the device 1000 may generate an encrypted meta bitstream by encoding the encrypted metadata.
- the encryption unit 1020 of the device 1000 selects data representing a person from among the processed photo data as an encryption target
- the encryption unit 1020 converts the data representing the person from the processed photo data into encrypted data and encrypts the multimedia.
- Data can be generated, and by encoding encrypted multimedia data, an encrypted photo bitstream can be generated.
- Encoding may include entropy encoding.
- Entropy encoding means a method of converting data into a bitstream.
- the encryption unit 1020 of the device 1000 may convert the encrypted multimedia data into a combination of 1s and 0s using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the encryption unit 1020 of the device 1000 may apply entropy coding corresponding to the codec applied to the multimedia bitstream to the encrypted multimedia data.
- the encryption unit 1020 of the device 1000 may apply entropy coding corresponding to the codec applied to the meta bitstream to the encrypted metadata.
- the device 1000 may entropy encode multimedia data encrypted using CABAC.
- the device 1000 may encrypt the selected encryption target before entropy encoding.
- the device 1000 may generate an encrypted multimedia bitstream usable by the existing decoding device by encrypting the selected encryption target before entropy encoding.
- the decryption unit 1030 of the device 1000 may obtain an encrypted multimedia bitstream and may obtain encrypted multimedia data from the encrypted multimedia bitstream.
- the decryption unit 1030 of the device 1000 may obtain encrypted multimedia data by performing entropy decoding on the encrypted multimedia bitstream.
- Entropy decoding refers to a coding method for converting a bit stream into data corresponding to the bit stream.
- Entropy decoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the device 1000 may obtain an encrypted meta bitstream.
- the device 1000 may generate an encrypted meta bitstream and may receive from an external device.
- the device 1000 may obtain encrypted metadata from the encrypted meta bitstream.
- the decoder 1030 of the device 1000 may select a decoding target.
- the decryption unit 1030 of the device 1000 may search the encrypted portion by analyzing the encrypted multimedia data as the decryption target.
- the decryption target can be selected from the encrypted portions.
- the device 1000 may search the encrypted part by analyzing the encrypted metadata, and select a decryption target from the encrypted part.
- the decryption unit 1030 of the device 1000 may obtain a picture bitstream in which the first block and the second block are encrypted.
- the decryption unit 1030 of the device 1000 may search for a portion representing the encrypted first block and the second block among the encrypted photo bitstream, and among the portions representing the first block and the portion representing the second block.
- the decoding target can be selected.
- the decryption unit 1030 of the device 1000 may select all encrypted portions of the encrypted multimedia data as decryption targets, and select some of the encrypted portions as decryption targets. In addition, the decryption unit 1030 of the device 1000 may select all or part of an encrypted portion of the encrypted multimedia data as a decryption target based on a preset criterion or a user input.
- the decoder 1030 of the device 1000 may decode the selected decoding target.
- the decryption unit 1030 of the device 1000 may decrypt the decryption object by using a decryption process corresponding to the encryption process used when encrypting the decryption object.
- the decoder 1030 of the device 1000 may directly decode the selected decoding target without converting it into a bitstream.
- the decoder 1030 of the device 1000 may decode the decoding target by applying a predetermined function to values of parameters included in the decoding target.
- the decoding unit 1030 of the device 1000 may decode the decoding target by exchanging parameters of the first block included in the decoding target based on a preset rule with the parameters of the second block. have.
- the decoding unit 1030 of the device 1000 may decode the decoding target by changing the sign of the values of the parameters included in the decoding target.
- the decryption unit 1030 of the device 1000 may decrypt the decryption target by changing the code of the parameters included in the encrypted multimedia data using a predetermined decryption key.
- the decoding unit 1030 of the device 1000 may decode the decoding object by converting the selected decoding object into a bitstream, decoding the bitstream, and converting the decoded bitstream into data. .
- the decryption unit 1030 of the device 1000 may convert the decryption target selected from the encrypted multimedia data into a bitstream.
- the decoder 1030 of the device 1000 may obtain predetermined values corresponding to the decoding target by mapping the decoding target to a preset mapping table.
- the decoder 1030 of the device 1000 may obtain a bitstream corresponding to the decoding target by performing binary conversion on the obtained predetermined values.
- the decoder 1030 of the device 1000 may perform binary conversion based on bit size information of each of predetermined values.
- the decoder 1030 of the device 1000 may decode the obtained bitstream.
- the device 1000 may decode the obtained bitstream by using a decoding method applicable to the bitstream. Examples of decoding methods applicable to the bitstream include AES, Blowfish, DES, Serpent, Twofish, Camellia, CAST-128, IDEA, RC2, RC5, and SEED.
- the decoder 1030 of the device 1000 may obtain the decoded data by converting the decoded bitstream into data. For example, the decoder 1030 of the device 1000 obtains predetermined values by performing binary inverse transform on the decoded bitstream, and maps the predetermined values to a preset mapping table to obtain decoded data. Can be.
- the decoding unit 1030 of the device 1000 may obtain the decoded data by decoding the decoding target. Also, the decryption unit 1030 of the device 1000 may convert the encrypted multimedia data into decrypted multimedia data by converting a decryption target among the encrypted multimedia data into decrypted data.
- the decoding unit 1030 of the device 1000 when the decoding unit 1030 of the device 1000 is the first block of photo data divided into a plurality of blocks, the decoding unit 1030 of the device 1000 indicates the first block. By decoding the data, it is possible to obtain the decoded data.
- the decryption unit 1030 of the device 1000 may obtain the decrypted photo data by converting data representing the first block from the encrypted photo data into decrypted data.
- the decryption unit 1030 of the device 1000 may convert the encrypted meta data into the decrypted metadata by converting the decryption target among the encrypted metadata into decrypted data.
- the decoder 1030 of the device 1000 may generate the decoded multimedia bitstream by encoding the decoded multimedia data.
- the device 1000 may generate the decoded meta bitstream by encoding the decoded meta data.
- the decrypted multimedia unit converts the data representing the person from the encrypted photo data into decrypted data.
- Data can be generated, and by decoding the decoded multimedia data, a decoded picture bitstream can be generated.
- Encoding may include entropy encoding.
- Entropy encoding may convert data into a bitstream.
- the decoder 1030 of the device 1000 may convert the decoded multimedia data into a combination of 1s and 0s using entropy encoding.
- Entropy encoding may include, but is not limited to, Huffman coding, arithmetic transform coding, run-length, CAVLC, CABAC, and the like.
- the decryption unit 1030 of the device 1000 may apply entropy coding corresponding to the codec applied to the encrypted multimedia bitstream to the decrypted multimedia data.
- the device 1000 may entropy encode the decrypted multimedia data using CABAC. have.
- the device 1000 may decode the selected decoding target before entropy encoding.
- the device 1000 may generate a decoded multimedia bitstream usable by the existing decoding device by decoding the selected decoding target before entropy encoding.
- 20 is a detailed block diagram illustrating a device in accordance with some embodiments.
- the device 1000 may include a user input unit 2200, an output unit 2210, and a sensing unit in addition to the control unit 1010, the encryption unit 1020, and the decryption unit 1030.
- the controller 2220 may further include a communication unit 2230, an A / V input unit 2240, and a storage unit 2250.
- the communication unit 2230 may include a short range communication unit 2231, a mobile communication unit 2232, and a broadcast receiving unit 2233.
- the short-range wireless communication unit 2231 includes a Bluetooth communication unit, a Bluetooth low energy (BLE) communication unit, a near field communication unit (Near Field Communication), a WLAN (Wi-Fi) communication unit, a Zigbee communication unit, an infrared ray ( IrDA (Infrared Data Association) communication unit, WFD (Wi-Fi Direct) communication unit, UWB (ultra wideband) communication unit, Ant + communication unit and the like, but may not be limited thereto.
- BLE Bluetooth low energy
- Wi-Fi Near Field Communication
- Zigbee communication unit an infrared ray ( IrDA (Infrared Data Association) communication unit
- WFD (Wi-Fi Direct) communication unit UWB (ultra wideband) communication unit
- Ant + communication unit and the like, but may not be limited thereto.
- the mobile communication unit 2232 transmits and receives a wireless signal with at least one of a base station, an external terminal, and a server on a mobile communication network.
- the wireless signal may include various types of data according to transmission and reception of a voice call signal, a video call call signal, or a text / multimedia message.
- the broadcast receiving unit 2233 receives a broadcast signal and / or broadcast related information from the outside through a broadcast channel.
- the broadcast channel may include a satellite channel and a terrestrial channel. According to an implementation example, the device 1000 may not include the broadcast receiver 2233.
- the communication unit 2230 may transmit encrypted data, and may also transmit encryption group information. Since this corresponds to the above description, the detailed description thereof will be omitted.
- the storage unit 2250 may store a program for processing and controlling the controller 1010, and may store data input to or output from the device 1000.
- the storage unit 2250 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory), Random Access Memory (RAM) Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM), Magnetic Memory, Magnetic It may include a storage medium of at least one type of disk, optical disk.
- 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
- Magnetic Memory Magnetic It may include a storage medium of at least one type of disk, optical disk.
- Programs stored in the storage unit 2250 may be classified into a plurality of modules according to their functions.
- the programs stored in the storage unit 2250 may be classified into a UI module 2251, a touch screen module 2252, a notification module 2253, and the like. have.
- the UI module 2251 may provide a specialized UI, GUI, or the like that is linked to the device 1000 for each application.
- the touch screen module 2252 may detect a touch gesture on a user's touch screen, and transmit information about the touch gesture to the controller 1010. According to some embodiments, the touch screen module 2252 may recognize and analyze a touch code.
- the touch screen module 2252 may be configured as separate hardware including a controller.
- Various sensors may be provided inside or near the touch screen to detect a touch or proximity touch of the touch screen.
- An example of a sensor for sensing a touch of a touch screen is a tactile sensor.
- the tactile sensor refers to a sensor that senses the contact of a specific object to the extent that a person feels or more.
- the tactile sensor may sense various information such as the roughness of the contact surface, the rigidity of the contact object, the temperature of the contact point, and the like.
- an example of a sensor for sensing a touch of a touch screen is a proximity sensor.
- the proximity sensor refers to a sensor that detects the presence or absence of an object approaching a predetermined detection surface or an object present in the vicinity without using a mechanical contact by using an electromagnetic force or infrared rays.
- Examples of the proximity sensor include a transmission photoelectric sensor, a direct reflection photoelectric sensor, a mirror reflection photoelectric sensor, a high frequency oscillation proximity sensor, a capacitive proximity sensor, a magnetic proximity sensor, and an infrared proximity sensor.
- the user's touch gesture may include tap, touch and hold, double tap, drag, pan, flick, drag and drop, and swipe.
- the notification module 2253 may generate a signal for notifying occurrence of an event of the device 1000. Examples of events occurring in the device 1000 include call signal reception, message reception, key signal input, and schedule notification.
- the notification module 2253 may output the notification signal in the form of a video signal through the display unit 2211, may output the notification signal in the form of an audio signal through the sound output unit 2212, or the vibration motor 2213. Through the notification signal may be output in the form of a vibration signal. Since the operation performed by the storage unit 2250 corresponds to the above description, a detailed description thereof will be omitted.
- the controller 1010 typically controls the overall operation of the device 1000.
- the controller 1010 may control overall components included in the device 1000 by executing a program stored in the device 1000. Since this corresponds to the above description, a detailed description thereof will be omitted.
- the user input receiver 2200 means a means for a user to input data for controlling the device 1000.
- the user input unit 2200 may include a key pad, a dome switch, a touch pad (contact capacitive type, pressure resistive layer type, infrared sensing type, surface ultrasonic conduction type, and integral type). Tension measurement method, piezo effect method, etc.), a jog wheel, a jog switch, and the like, but are not limited thereto.
- the output unit 2210 may output an audio signal, a video signal, or a vibration signal, and the output unit 2210 may include a display unit 2211, an audio output unit 2212, and a vibration motor 2213. have.
- the display unit 2211 displays and outputs information processed by the device 1000.
- the display unit 2211 may be used as an input device in addition to the output device.
- the display unit 2211 may include a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, and a three-dimensional display. 3D display, an electrophoretic display.
- the device 1000 may include two or more display units 2211 according to the implementation form of the device 1000. In this case, the two or more display units 2211 may be disposed to face each other using a hinge.
- the sound output unit 2212 outputs audio data received from the communication unit 2230 or stored in the storage unit 2250. Also, the sound output unit 2212 outputs a sound signal related to a function (for example, a call signal reception sound, a message reception sound, and a notification sound) performed by the device 1000.
- the sound output unit 2212 may include a speaker, a buzzer, and the like.
- the vibration motor 2213 may output a vibration signal.
- the vibration motor 2213 may output a vibration signal corresponding to the output of audio data or video data (eg, a call signal reception sound, a message reception sound, and the like).
- the vibration motor 2213 may output a vibration signal when a touch is input to the touch screen.
- the sensing unit 2220 may detect a state of the device 1000 or a state around the device 1000 and transmit the detected information to the controller 1010.
- the sensing unit 2220 may include a geomagnetic sensor 2221, an acceleration sensor 2222, a temperature / humidity sensor 2223, an infrared sensor 2224, a gyroscope sensor 2225, and a position sensor. (Eg, GPS) 2226, barometric pressure sensor 2227, proximity sensor 2228, and illumination sensor 2229, but are not limited thereto. Since functions of the respective sensors can be intuitively deduced by those skilled in the art from the names, detailed descriptions thereof will be omitted.
- the A / V input unit 2240 is for inputting an audio signal or a video signal, and may include a camera 2241 and a microphone 2242.
- the camera 6251 may obtain an image frame such as a still image or a moving image through an image sensor in a video call mode or a photographing mode.
- An image captured by the image sensor may be processed by the controller 1010 or a separate image processor (not shown).
- the image frame processed by the camera 2241 may be stored in the storage 2250 or transmitted to the outside through the communication unit 2230. Two or more cameras 2241 may be provided according to a configuration aspect of the terminal.
- the microphone 2242 receives an external sound signal and processes it into electrical voice data.
- the microphone 2242 may receive an acoustic signal from the device 1000 or the speaker.
- the microphone 2242 may use various noise canceling algorithms for canceling noise generated while receiving an external sound signal.
- the device comprises a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user interface such as a touch panel, a key, a button and the like.
- a user interface such as a touch panel, a key, a button and the like.
- Methods implemented by software modules or algorithms may be stored on a computer readable recording medium as computer readable codes or program instructions executable on the processor.
- the computer-readable recording medium may be a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optical reading medium (eg, CD-ROM). ) And DVD (Digital Versatile Disc).
- the computer readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- the medium is readable by the computer, stored in the memory, and can be executed by the processor.
- the invention can be represented by functional block configurations and various processing steps. Such functional blocks may be implemented in various numbers of hardware or / and software configurations that perform particular functions.
- the present invention relates to integrated circuit configurations such as memory, processing, logic, look-up table, etc., which may execute various functions by the control of one or more microprocessors or other control devices. It can be adopted.
- the present invention includes various algorithms implemented in data structures, processes, routines or other combinations of programming constructs, including C, C ++ It may be implemented in a programming or scripting language such as Java, an assembler, or the like.
- the functional aspects may be implemented with an algorithm running on one or more processors.
- the present invention may employ the prior art for electronic environment setting, signal processing, and / or data processing.
- Terms such as 'mechanism', 'element', 'means' and 'configuration' can be widely used and are not limited to mechanical and physical configurations.
- the term may include the meaning of a series of routines of software in conjunction with a processor or the like.
- connection or connection members of the lines between the components shown in the drawings by way of example shows a functional connection and / or physical or circuit connections, in the actual device replaceable or additional various functional connections, physical It may be represented as a connection, or circuit connections.
- 'essential', 'importantly' it may not be a necessary component for the application of the present invention.
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
본 발명은 데이터를 제공하는 방법에 관한 것으로, 특히 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화 하는 방법 및 장치에 관한 것이다.
현재 다양한 분야에서, 멀티미디어 데이터를 효율적으로 처리하기 위하여 압축이라는 기술을 적용한다.
현재 압축 효율을 높이기 위하여 다양한 코덱들이 개발되고 있다. 예를 들어, 이미지 압축을 위한 코덱으로는 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 측면은, 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서, 가공된 멀티미디어 데이터를 획득하는 단계; 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공할 수 있다.
압축된 멀티미디어 데이터 비트스트림의 코덱 특성을 유지한채 암호화/부호화할 수 있다.
도 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 측면은, 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서, 가공된 멀티미디어 데이터를 획득하는 단계; 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공할 수 있다.
또한, 상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 가공된 멀티미디어 데이터를 획득하는 단계는, 멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 단계; 및 상기 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 가공된 멀티미디어 데이터를 획득하는 단계는, 멀티미디어 데이터를 획득하는 단계; 상기 획득한 멀티미디어 데이터에 양자화를 수행하는 단계; 및 상기 양자화를 수행하는 단계의 결과에 기초하여 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 선택된 암호화 대상을 암호화하는 단계는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 선택된 암호화 대상을 암호화 하는 단계는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하는 단계; 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계; 상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하는 단계; 및 상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 암호화 프로세스는, 상기 비트스트림을 직접적으로 암호화 할 수 있다.
또한, 상기 암호화 대상을 선택하는 단계는, 상기 가공된 멀티미디어 데이터중 일부를 선택할 수 있다.
또한, 상기 암호화 대상을 선택하는 단계는, 상기 가공된 멀티미디어 데이터 전체를 선택할 수 있다.
또한, 상기 방법은 메타 데이터를 획득하는 단계; 상기 메타 데이터중에서 암호화 대상을 선택하는 단계; 상기 선택된 암호화 대상을 암호화 하는 단계; 상기 암호화 하는 단계의 결과에 기초하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하는 단계; 및 상기 암호화된 메타 데이터를 인코딩함으로써, 상기 메타 데이터를 암호화된 메타 비트스트림으로 변환하는 단계를 더 포함할 수 있다.
또한, 제 2 측면은 암호화된 멀티미디어 비트스트림을 복호화하는 방법에 있어서, 암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하는 단계; 상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하는 단계; 상기 선택된 복호화 대상을 복호화 하는 단계; 상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하는 단계; 및 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법을 제공할 수 있다.
또한, 상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며, 상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 선택된 복호화 대상을 복호화하는 단계는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 선택된 복호화 대상을 복호화 하는 단계는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하는 단계; 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계; 상기 획득한 비트스트림에 복호화 프로세스를 적용함으로써, 복호화된 비트스트림을 획득하는 단계; 및 상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득하는 단계를 포함할 수 있다.
또한, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하는 단계는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 복호화 프로세스는, 상기 비트스트림을 직접적으로 복호화 할 수 있다.
또한, 상기 복호화 대상을 선택하는 단계는, 상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및 상기 검색된 데이터중에서 일부를 선택 하는 단계를 더 포함할 수 있다.
또한, 상기 복호화 대상을 선택하는 단계는, 상기 암호화된 멀티미디어 데이터중 암호화된 데이터를 검색하는 단계; 및 상기 검색된 데이터 전부를 선택 하는 단계를 더 포함할 수 있다.
또한, 상기 방법은 암호화된 메타 데이터를 획득하는 단계; 상기 암호화된 메타 데이터중에서 복호화 대상을 선택하는 단계; 상기 선택된 복호화 대상을 복호화 하는 단계; 상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하는 단계; 및 상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 더 포함할 수 있다.
또한, 제 3측면은 암호화된 멀티미디어 비트스트림을 생성하는 장치에 있어서, 가공된 멀티미디어 데이터를 획득하고, 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하고, 상기 암호화된 멀티미디어 데이터를 인코딩함으로써 암호화된 멀티미디어 비트스트림을 생성하는 암호화부를 포함하는 장치를 제공할 수 있다.
또한, 상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 상기 장치는, 멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 통신부를 더 포함하고, 상기 암호화부는 통신부가 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득할 수 있다.
또한, 암호화부는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 암호화부는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 암호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득한 비트스트림에 암호화 프로세스를 적용함으로써, 암호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 암호화된 비트스트림에 대응되는 암호화 데이터를 획득할 수 있다.
또한, 상기 암호화부는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 암호화부는, 메타 데이터를 획득하고, 상기 메타 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 메타 데이터를 암호화된 메타 데이터로 변환 하고, 상기 암호화된 메타 데이터를 인코딩함으로써 암호화된 메타 비트스트림을 생성할 수 있다.
또한, 제 4측면은 암호화된 멀티미디어 비트스트림을 복호화하는 장치에 있어서, 암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하고, 상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 하는 단계의 결과에 기초하여 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하며, 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 복호화부를 포함하는 장치를 제공할 수 있다.
또한, 상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며, 상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행될 수 있다.
또한, 복호화부는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화할 수 있다.
또한, 상기 복호화부는, 기 설정된 맵핑 테이블에 기초하여 상기 선택된 복호화 대상에 대응되는 소정의 값들을 획득하고, 상기 소정의 값들을 바이너리(binary)변환 함으로써, 비트스트림을 획득하며, 상기 획득된 비트스트림에 복호화 프로세스를 적용함으로써 복호화된 비트스트림을 획득하고, 상기 기 설정된 맵핑 테이블에 기초하여 상기 복호화된 비트스트림에 대응되는 복호화 데이터를 획득할 수 있다.
또한, 상기 복호화부는, 상기 소정의 값들의 비트 크기 정보를 각각 결정하고, 상기 결정된 비트 크기 정보에 기초하여 상기 소정의 값들을 바이너리(binary)변환할 수 있다.
또한, 상기 복호화부는, 암호화된 메타 데이터를 획득하고, 상기 암호화된 메타 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 결과에 기초하여 상기 암호화된 메타 데이터를 복호화된 메타 데이터로 변환 하며, 상기 복호화된 메타 데이터를 인코딩함으로써, 복호화된 메타 비트스트림을 생성할 수 있다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 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)에 기초하여, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(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)를 이용하여, 암호화된 비트스트림에 대응되는 암호화된 데이터를 획득할 수 있다.
예를 들어, 디바이스(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)에 기초하여, 소정의 값을 획득할 수 있다.
예를 들어, 디바이스(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)를 이용하여, 복호화된 비트스트림에 대응되는 복호화된 데이터를 획득할 수 있다.
예를 들어, 디바이스(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)의 암호화부(1020)는 멀티미디어 비트스트림에 서브 코딩 모듈을 적용함으로써 가공된 멀티미디어 데이터를 획득할 수 있다. 예를 들어, 디바이스(1000)의 암호화부(1020)는 멀티미디어 비트스트림에 엔트로피 디코딩 모듈을 적용함으로써, 가공된 멀티미디어 데이터를 획득할 수 있다.
엔트로피 디코딩 모듈은 엔트로피 디코딩을 수행하는 모듈을 의미한다. 엔트로피 디코딩이란 비트 스트림을 비트 스트림에 대응되는 데이터로 변환하는 코딩 방법을 의미한다. 엔트로피 디코딩은, 허프만 코딩(Huffman coding), 산술 변환 코딩, Run-length, CAVLC, CABAC등의 방법을 포함할 수 있으며, 이에 한정바이스(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)는 암호화 대상으로, 가공된 멀티미디어 데이터중 일부를 선택할 수 있다. 또한, 디바이스(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 (15)
- 암호화된 멀티미디어 비트스트림을 생성하는 방법에 있어서,가공된 멀티미디어 데이터를 획득하는 단계;상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하는 단계;상기 선택된 암호화 대상을 암호화 하는 단계;상기 암호화 하는 단계의 결과에 기초하여, 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하는 단계; 및상기 암호화된 멀티미디어 데이터를 인코딩함으로써, 암호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법.
- 제 1 항에 있어서,상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 방법.
- 제 1 항에 있어서, 상기 가공된 멀티미디어 데이터를 획득하는 단계는,멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 단계; 및상기 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 단계를 포함하는 방법.
- 제 1 항에 있어서,상기 선택된 암호화 대상을 암호화하는 단계는, 상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 방법.
- 제 1항에 있어서, 상기 암호화 대상을 선택하는 단계는,상기 가공된 멀티미디어 데이터중 일부를 선택 하는 것을 특징으로 하는 방법.
- 암호화된 멀티미디어 비트스트림을 복호화하는 방법에 있어서,암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하는 단계;상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하는 단계;상기 선택된 복호화 대상을 복호화 하는 단계;상기 복호화 하는 단계의 결과에 기초하여, 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하는 단계; 및상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 단계를 포함하는 방법.
- 제 6 항에 있어서,상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며,상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 방법.
- 제 6 항에 있어서,상기 선택된 복호화 대상을 복호화하는 단계는, 상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 방법.
- 암호화된 멀티미디어 비트스트림을 생성하는 장치에 있어서,가공된 멀티미디어 데이터를 획득하고, 상기 가공된 멀티미디어 데이터중에서 암호화 대상을 선택하고, 상기 선택된 암호화 대상을 암호화 하여 상기 가공된 멀티미디어 데이터를 암호화된 멀티미디어 데이터로 변환 하고, 상기 암호화된 멀티미디어 데이터를 인코딩함으로써 암호화된 멀티미디어 비트스트림을 생성하는 암호화부를 포함하는 장치.
- 제 9 항에 있어서,상기 인코딩은 엔트로피 인코딩을 포함하고, 상기 암호화 하는 단계는 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 장치.
- 제 9 항에 있어서,상기 장치는,멀티미디어 데이터를 임의의 코덱에 기초하여 인코딩함으로써 생성된 비트스트림을 획득하는 통신부를 더 포함하고,상기 암호화부는 통신부가 획득한 비트스트림에 엔트로피 디코딩을 수행함으로써, 상기 가공된 멀티미디어 데이터를 획득하는 것을 특징으로 하는 장치.
- 제 9 항에 있어서,상기 암호화부는,상기 선택된 암호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 암호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 장치.
- 암호화된 멀티미디어 비트스트림을 복호화하는 장치에 있어서,암호화된 멀티미디어 비트스트림을 디코딩 함으로써, 암호화된 멀티미디어 데이터를 획득하고, 상기 암호화된 멀티미디어 데이터중에서 복호화 대상을 선택하며, 상기 선택된 복호화 대상을 복호화 하고, 상기 복호화 결과에 기초하여 상기 암호화된 멀티미디어 데이터를 복호화된 멀티미디어 데이터로 변환 하며, 상기 복호화된 멀티미디어 데이터를 인코딩함으로써, 복호화된 멀티미디어 비트스트림을 생성하는 복호화부를 포함하는 장치.
- 제 13 항에 있어서,상기 디코딩은 엔트로피 디코딩을 포함하고, 상기 인코딩은 엔트로피 인코딩을 포함하며,상기 암호화 하는 단계는 상기 엔트로피 디코딩 이후에 수행되고, 상기 엔트로피 인코딩 이전에 수행되는 것을 특징으로 하는 장치.
- 제 13 항에 있어서,상기 복호화부는,상기 선택된 복호화 대상을 비트스트림으로 변환하는 프로세스를 제외하고, 상기 선택된 복호화 대상을 직접적으로 암호화하는 것을 특징으로 하는 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16818166.7A EP3300373A4 (en) | 2015-07-02 | 2016-06-24 | Method and device for encoding multimedia data, and method and device for decoding same |
CN201680038934.1A CN107736029B (zh) | 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 (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0094932 | 2015-07-02 | ||
KR1020150094932A KR102077239B1 (ko) | 2015-07-02 | 2015-07-02 | 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017003133A1 true WO2017003133A1 (ko) | 2017-01-05 |
Family
ID=57609302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2016/006730 WO2017003133A1 (ko) | 2015-07-02 | 2016-06-24 | 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3970399B1 (en) * | 2019-05-13 | 2024-04-10 | 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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070006445A (ko) * | 2005-07-08 | 2007-01-11 | 삼성전자주식회사 | 하이브리드 엔트로피 부호화, 복호화 방법 및 장치 |
US20090129481A1 (en) * | 2002-05-14 | 2009-05-21 | Macinnis Alexander G | System and method for transcoding entropy-coded bitstreams |
US20130114668A1 (en) * | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Video decoder with enhanced cabac decoding |
US20140376720A1 (en) * | 2009-12-04 | 2014-12-25 | Sonic Ip, Inc. | Elementary Bitstream Cryptographic Material Transport Systems and Methods |
WO2015088296A1 (ko) * | 2013-12-15 | 2015-06-18 | 삼성전자 주식회사 | 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기 |
Family Cites Families (13)
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 |
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 |
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 | 富士通株式会社 | 画像暗号化/復号化装置、方法およびプログラム |
FR2932046B1 (fr) * | 2008-06-03 | 2010-08-20 | Thales Sa | Procede et systeme permettant de crypter visuellement les objets mobiles au sein d'un flux video compresse |
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 |
US20120308008A1 (en) * | 2011-05-31 | 2012-12-06 | Broadcom Corporation | Wireless Transmission of Protected Content |
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 | 삼성전자주식회사 | 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기 |
-
2015
- 2015-07-02 KR KR1020150094932A patent/KR102077239B1/ko active IP Right Grant
-
2016
- 2016-06-24 US US15/741,117 patent/US10931645B2/en active Active
- 2016-06-24 EP EP16818166.7A patent/EP3300373A4/en not_active Ceased
- 2016-06-24 WO PCT/KR2016/006730 patent/WO2017003133A1/ko active Application Filing
- 2016-06-24 CN CN201680038934.1A patent/CN107736029B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090129481A1 (en) * | 2002-05-14 | 2009-05-21 | Macinnis Alexander G | System and method for transcoding entropy-coded bitstreams |
KR20070006445A (ko) * | 2005-07-08 | 2007-01-11 | 삼성전자주식회사 | 하이브리드 엔트로피 부호화, 복호화 방법 및 장치 |
US20140376720A1 (en) * | 2009-12-04 | 2014-12-25 | Sonic Ip, Inc. | Elementary Bitstream Cryptographic Material Transport Systems and Methods |
US20130114668A1 (en) * | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Video decoder with enhanced cabac decoding |
WO2015088296A1 (ko) * | 2013-12-15 | 2015-06-18 | 삼성전자 주식회사 | 보안 통신방법 및 장치와 이를 채용하는 멀티미디어 기기 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3300373A4 * |
Also Published As
Publication number | Publication date |
---|---|
US10931645B2 (en) | 2021-02-23 |
CN107736029A (zh) | 2018-02-23 |
US20180191690A1 (en) | 2018-07-05 |
EP3300373A1 (en) | 2018-03-28 |
KR102077239B1 (ko) | 2020-02-13 |
EP3300373A4 (en) | 2018-05-16 |
KR20170004501A (ko) | 2017-01-11 |
CN107736029B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021086016A2 (en) | Apparatus and method for performing artificial intelligence (ai) encoding and ai decoding on image | |
WO2020080827A1 (en) | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same | |
WO2020080873A1 (en) | Method and apparatus for streaming data | |
WO2009128653A2 (ko) | 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치 | |
WO2016018004A1 (en) | Method, apparatus, and system for providing translated content | |
WO2020222588A1 (ko) | 적응적 모션 벡터 해상도를 이용한 비디오 신호 처리 방법 및 장치 | |
WO2021033867A1 (en) | Decoding apparatus and operating method of the same, and artificial intelligence (ai) up-scaling apparatus and operating method of the same | |
WO2015133712A1 (ko) | 영상 복호화 방법 및 그 장치, 영상 부호화 방법 및 그 장치 | |
WO2014081226A1 (ko) | 영상 디코딩 방법 및 이를 이용하는 장치 | |
WO2014003515A1 (ko) | 멀티미디어 시스템에서 적응적 미디어 구조 송신 방법 및 장치 | |
WO2014104725A1 (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
EP3811618A1 (en) | Method and apparatus for streaming data | |
WO2014107069A1 (ko) | 영상 부호화/복호화 방법 및 장치 | |
WO2020032609A1 (ko) | 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2021091178A1 (en) | Artificial intelligence (ai) encoding apparatus and operating method thereof and ai decoding apparatus and operating method thereof | |
WO2022158686A1 (ko) | 암호화된 정보에 기초하여, 인공지능 모델을 이용한 추론을 수행하는 전자 장치 및 그 동작 방법 | |
WO2020050695A1 (ko) | 영상 코딩 시스템에서 머지 후보 리스트를 사용하는 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2017003133A1 (ko) | 멀티미디어 데이터를 암호화하는 방법 및 장치, 복호화하는 방법 및 장치 | |
WO2021054697A1 (ko) | 영상의 ai 부호화 방법 및 장치, 영상의 ai 복호화 방법 및 장치 | |
WO2020032526A1 (ko) | 영상 코딩 시스템에서 컨스트럭티드 어파인 mvp 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
EP3811619A1 (en) | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same | |
WO2022097921A1 (ko) | 영상 내 관심 오브젝트 영역을 위한 ai 부호화 장치 및 방법, 및 ai 복호화 장치 및 방법 | |
WO2022177383A1 (ko) | Ai 기반의 영상의 부호화 및 복호화 장치, 및 이에 의한 방법 | |
WO2021251658A1 (en) | Method and apparatus for adaptive artificial intelligence downscaling for upscaling during video telephone call | |
WO2012177027A2 (ko) | 영상의 변환 방법 및 장치, 역변환 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16818166 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2016818166 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |