KR20030043622A - Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream - Google Patents

Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream Download PDF

Info

Publication number
KR20030043622A
KR20030043622A KR1020020064008A KR20020064008A KR20030043622A KR 20030043622 A KR20030043622 A KR 20030043622A KR 1020020064008 A KR1020020064008 A KR 1020020064008A KR 20020064008 A KR20020064008 A KR 20020064008A KR 20030043622 A KR20030043622 A KR 20030043622A
Authority
KR
South Korea
Prior art keywords
data
key
inverse
dpcm
encoding
Prior art date
Application number
KR1020020064008A
Other languages
Korean (ko)
Other versions
KR100552666B1 (en
Inventor
이신준
정석윤
장의선
우상옥
한만진
김도균
장경자
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP02258173A priority Critical patent/EP1322119B1/en
Priority to JP2002344725A priority patent/JP4002502B2/en
Priority to EP10185988.2A priority patent/EP2302930B1/en
Priority to CN200610110089.2A priority patent/CN1941910B/en
Priority to EP10185978.3A priority patent/EP2302929B1/en
Priority to US10/305,123 priority patent/US7809203B2/en
Publication of KR20030043622A publication Critical patent/KR20030043622A/en
Application granted granted Critical
Publication of KR100552666B1 publication Critical patent/KR100552666B1/en
Priority to US12/923,038 priority patent/US8705610B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

PURPOSE: A system for encoding/decoding key data and key value data of coordinate interpolator and a recording medium storing bit streams obtained by encoding the coordinate interpolator are provided to encode animation key data with high efficiency and encode key value data in consideration of time and spatial correlations. CONSTITUTION: A bit stream recorded in a recording medium includes key data encoding/decoding information and key value data encoding/decoding information. The key data encoding/decoding information includes inverse DND calculation information that extends the range of differential data generated by entropy-decoding the key data bit stream, the first inverse DPCM calculation information for converting the differential data for which inverse DND calculation has been carried out into quantized key data, and the first inverse quantization information used for inverse quantization that inverse-quantizes the quantized key data to generate restored key data. The key value data encoding/decoding information includes previous decoding information of previously encoded key value data that is entropy-decoded from key value data bit stream, the second inverse DPCM calculation information used for converting previously decoded differential data into quantized key value data, and the second inverse quantization information used for inverse quantization for inverse-quantizing the quantized key value data to generate restored key data.

Description

좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화 장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을 기록한 기록 매체{Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream}An apparatus for encoding / decoding key and key value data of a coordinate interpolator, and a recording medium for recording a bitstream encoding the coordinate interpolator. {Encoding / decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream}

본 발명은 합성 이미지의 부호화 및 복호화 장치 및 방법에 관한 것이다. 구체적으로, 본 발명은 키 프레임 기반의 그래픽 애니메이션 방식에서, 객체의 위치를 x, y, 및 z 성분을 포함하는 정점들의 좌표로 표현하는 좌표 인터폴레이터의 부호화 및 복호화 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for encoding and decoding composite images. Specifically, the present invention relates to an apparatus and method for encoding and decoding a coordinate interpolator that expresses a position of an object in coordinates of vertices including x, y, and z components in a key frame-based graphic animation scheme.

3 차원 애니메이션 표현 기법은 3차원 컴퓨터 게임 또는 컴퓨터의 가상 현실 환경에서 사용되는 것으로 익히 알려져 있다. VRML(Virtual Reality Modelling Language)는 3차원 애니메이션을 표현하는 대표적인 예이다.It is well known that the 3D animation representation technique is used in a 3D computer game or a virtual reality environment of a computer. VRML (Virtual Reality Modeling Language) is a representative example of 3D animation.

MPEG-4 BIFS(Binary Format for Scene) 및 VRML(Virtual Reality Modelling Language)와 같은 국제 멀티미디어 표준들은 인터폴레이터 노드를 이용한 키 프레임 기반의 3 차원 애니메이션을 지원한다. MPEG-4 BIFS 및 VRML 에는 여러 종류의 인터폴레이터가 있는데, 그 중 대표적인 것이 스칼라 인터폴레이터, 위치 인터폴레이터, 좌표 인터폴레이터, 회전 인터폴레이터, 법선 인터폴레이터 및 색 인터폴레이터이다. 각 인터폴레이터의 종류, 기능 및 특징은 아래의 표 1 에 나타내었다.International multimedia standards such as MPEG-4 BIFS (Binary Format for Scene) and VRML (Virtual Reality Modeling Language) support key frame-based three-dimensional animation using interpolator nodes. There are several types of interpolators in MPEG-4 BIFS and VRML, among which are scalar interpolators, position interpolators, coordinate interpolators, rotation interpolators, normal interpolators, and color interpolators. The types, functions, and features of each interpolator are shown in Table 1 below.

종 류Kinds 특 징Characteristic 기 능function 스칼라 인터폴레이터Scalar interpolator 스칼라 변화량의 선형 삽입Linear Insertion of Scalar Variance 넓이, 반경, 강도 등의 표현Representation of area, radius, strength, etc. 위치 인터폴레이터Position interpolator 3차원 좌표상의 선형 삽입Linear insertion in three-dimensional coordinates 3차원 공간상의 평행 이동Parallel translation in three dimensions 회전 인터폴레이터Rotary interpolator 3차원 좌표축과 회전량의 선형삽입Linear Insertion of 3D Coordinate Axis and Rotation Amount 3차원 공간상의 회전Rotation in 3D Space 좌표 인터폴레이터Coordinate interpolator 3차원 모델의 좌표 변화량과 선형 삽입Coordinate Variation and Linear Insertion in 3D Models 3차원 모핑(morphing)3D morphing 법선 인터폴레이터Normal interpolator 3차원 법선 좌표의 선형 삽입Linear insertion of three-dimensional normal coordinates 3차원 법선 벡터의 변화 표현Change representation of 3D normal vector 색 인터폴레이터Color interpolator 색상 정보의 선형 삽입Linear insertion of color information 색상 변화량의 표현Representation of the amount of color change

상기 표 1 에 기재된 인터폴레이터 중 하나인 좌표 인터폴레이터는 키 프레임 기반의 애니메이션의 3차원 객체에 포함되는 각 정점의 위치 정보를 나타내기 위해서 사용되고, 키(Key) 및 키 값(Key-Value) 필드로 구성된다. 키 필드는 (-∞,+∞) 범위에서 키 프레임이 위치하는 시간을 불연속적인 숫자로 표현한다. 키 값 필드는 각각의 키가 나타내는 시간에 3차원 객체에 포함되는 각 정점의 위치 정보를 나타내며, 각 정점은 x, y 및 z 의 세 가지 성분을 갖는다. 따라서, 키 값 필드는 키 필드와 동일한 개수의 키 값을 포함한다. 이러한, 키 프레임 기반의 애니메이션 방식에서, 소정의 키 프레임은 시간축상의 임의의 시간에 위치하고, 각 키 프레임간의 애니메이션 데이터는 선형 보간 방법에 의해서 보간된다.The coordinate interpolator, which is one of the interpolators described in Table 1, is used to indicate position information of each vertex included in a three-dimensional object of a key frame-based animation, and includes a key and a key-value field. It consists of. The key field represents the time when the key frame is located in the range (−∞, + ∞) as a discrete number. The key value field represents position information of each vertex included in the 3D object at the time indicated by each key, and each vertex has three components, x, y, and z. Thus, the key value field contains the same number of key values as the key field. In such a key frame-based animation scheme, a predetermined key frame is located at an arbitrary time on the time axis, and animation data between each key frame is interpolated by a linear interpolation method.

MPEG-4 BIFS 및 VRML 는 선형 보간을 이용하므로, 선형 인터폴레이터를 이용하여 매끄럽고 자연스러운 애니메이션을 구현하기 위해서는 매우 많은 양의 키 데이터와 키 값 데이터가 요구된다. 또한, 이러한 매끄럽고 자연스러운 애니메이션을 저장하거나 전송하기 위해서는 대용량의 저장장치 및 많은 시간이 필요하다. 따라서, 이들 인터폴레이터의 저장 및 전송을 위해서는 인터폴레이터를 압축하는 것이 효과적이다.Since MPEG-4 BIFS and VRML use linear interpolation, a very large amount of key data and key value data is required for smooth and natural animation using a linear interpolator. In addition, storing or transmitting such smooth and natural animations requires a large amount of storage and a lot of time. Therefore, compressing the interpolator is effective for storing and transmitting these interpolators.

MPEG-4 BIFS 에서는 인터폴레이터 노드를 부호화하고 복호화하는 방법으로 PMFC(Predictive MF Coding)이라 칭해지는 방법이 있다. 도 1 에 도시된 종래의 부호화 장치와 같이, PMFC 방법은 양자화기, DPCM(Differential Pulse Code Modulation) 및 엔트로피 부호화기를 이용하여 좌표 인터폴레이터의 키 및 키 값 데이터를 부호화한다. 양자화기 및 DPCM 모듈은 키 및 키 값 데이터의 중복성을 제거하고, DPCM 모듈의 출력은 엔트로피 부호화기로 출력된다. 그러나, 이 방법은 일반적인 DPCM 연산에 의해서 얻어진 차분 데이터를 엔트로피 부호화하므로 부호화 효율이 높지 않다. 또한, 종래의 부호화 장치는 3차원 객체의 모양을 구성하는 각 정점간의 공간적인 상관관계만을 고려할 뿐, 키 프레임 방식의 애니메이션 방식에서 상당한 비중을 차지하는 시간적인 상관관계는 전혀 고려하지 않으므로, 부호화 효율이 높지 않다.In MPEG-4 BIFS, there is a method called Predictive MF Coding (PMFC) as a method of encoding and decoding an interpolator node. Like the conventional encoding apparatus shown in FIG. 1, the PMFC method encodes the key and key value data of the coordinate interpolator using a quantizer, a differential pulse code modulation (DPCM), and an entropy encoder. The quantizer and the DPCM module remove redundancy of the key and key value data, and the output of the DPCM module is output to the entropy encoder. However, this method entropy encodes differential data obtained by a general DPCM operation, so that the coding efficiency is not high. In addition, the conventional encoding apparatus only considers the spatial correlation between the vertices constituting the shape of the three-dimensional object, and does not consider the temporal correlation, which occupies a considerable weight in the key frame animation method, so that the encoding efficiency is low. Not high.

본 발명이 이루고자 하는 제 1 기술적 과제는 키 데이터의 성질을 고려하여 데이터의 중복성을 제거함으로써 고효율로 에니메이션 키 데이터 압축하는 키 데이터 부호화기, 및 공간적인 상관관계 뿐 아니라 시간적인 상관관계도 고려하여 키 값 데이터를 부호화하는 키 값 데이터 부호화기를 포함하는 좌표 인터폴레이터의 부호화 장치를 제공하는 것이다.SUMMARY OF THE INVENTION The first technical problem to be solved by the present invention is a key data encoder which compresses animation key data with high efficiency by removing data redundancy in consideration of the nature of key data, and a key value in consideration of not only spatial correlation but also temporal correlation. An apparatus for encoding a coordinate interpolator including a key value data encoder for encoding data is provided.

본 발명의 제 2 기술적 과제는 상술한 본 발명의 좌표 인터폴레이터 부호화 장치에 의해서 부호화된 비트스트림을 복호화하는 복호화 장치를 제공하는 것이다.The second technical problem of the present invention is to provide a decoding apparatus for decoding a bitstream encoded by the above-described coordinate interpolator encoding apparatus of the present invention.

본 발명이 이루고자 하는 제 3 기술적 과제는 높은 압축율과 고화질의 애니메이션을 제공할 수 있는, 본 발명의 좌표 인터폴레이터의 부호화 방법 및 장치에 의해서 부호화되어 본 발명의 복호화 방법 및 장치에 의해서 복호화되는 비트스트림을 기록한 기록 매체를 제공하는 것이다.The third technical problem to be solved by the present invention is a bitstream encoded by the encoding method and apparatus of the coordinate interpolator of the present invention, which can provide high compression ratio and high quality animation, and is decoded by the decoding method and apparatus of the present invention. It is to provide a recording medium recording the recording.

도 1 은 종래의 좌표 인터폴레이터 노드의 부호화/복호화 장치의 구성을 도시하는 블록도이다.1 is a block diagram showing a configuration of a coding / decoding apparatus of a conventional coordinate interpolator node.

도 2 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치의 구성을 도시하는 블록도이다.2 is a block diagram showing the configuration of a coordinate interpolator encoding apparatus according to a preferred embodiment of the present invention.

도 3a 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기의 구성을 도시하는 블록도이다.3A is a block diagram showing the configuration of a key data encoder according to a preferred embodiment of the present invention.

도 3b 은 도 3a 에 도시된 DND 처리부의 구성을 도시하는 블록도이다.FIG. 3B is a block diagram showing the configuration of the DND processing unit shown in FIG. 3A.

도 4a 내지 도 4e 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화 방법을 설명하는 흐름도이다.4A to 4E are flowcharts illustrating a key data encoding method according to a preferred embodiment of the present invention.

도 5 은 encodeSignedAAC 함수의 일예를 도시하는 도면이다.5 is a diagram illustrating an example of the encodeSignedAAC function.

도 6a 내지 도 6j 는 본 발명의 바람직한 실시예에 따른 키 데이터를 부호화하기 위한 연산들이 수행된 후의 키 데이터를 도시하는 도면들이다.6A to 6J are diagrams showing key data after operations for encoding key data are performed according to a preferred embodiment of the present invention.

도 7a 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 키 값 데이터 부호화기의 구성을 도시하는 블록도이고, 도 7b 는 바람직한 실시예에 따른 좌표 인터폴레이터 키 값 데이터의 부호화 방법을 설명하는 흐름도이다.7A is a block diagram showing the configuration of a coordinate interpolator key value data encoder according to a preferred embodiment of the present invention, and FIG. 7B is a flowchart illustrating a method of encoding coordinate interpolator key value data according to a preferred embodiment.

도 8a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 부호화기의 DPCM 처리부의 구성을 도시하는 블록도이고, 도 8b 는 사전 부호화기의 구성을 도시하는 블록도이다.8A is a block diagram showing the configuration of a DPCM processing unit of a key value data encoder according to the preferred embodiment of the present invention, and FIG. 8B is a block diagram showing the configuration of a pre-encoder.

도 9a 는 본 발명의 바람직한 실시예에 따른 양자화 방법을 설명하는 흐름도이고, 도 9b는 DPCM 연산 방법을 설명하는 흐름도이며, 도 9c 는 사전 부호화 방법을 설명하는 흐름도이고, 도 9d 는 본 발명의 키 값 데이터 부호화기의 엔트로피 부호화 방법을 설명하는 흐름도이다.9A is a flowchart illustrating a quantization method according to a preferred embodiment of the present invention, FIG. 9B is a flowchart illustrating a DPCM calculation method, FIG. 9C is a flowchart illustrating a precoding method, and FIG. 9D is a key of the present invention. It is a flowchart explaining the entropy encoding method of the value data encoder.

도 10a 내지 도 10c 는 본 발명의 양자화된 키 값 데이터, DPCM 연산된 키 값 데이터 및 순환 양자화된 키 값 데이터를 각각 도시하는 도면이다.10A to 10C are diagrams illustrating quantized key value data, DPCM computed key value data, and cyclic quantized key value data of the present invention, respectively.

도 11a 는 본 발명의 바람직한 실시에에 따른 DPCM 모드 부호화 방법을 설명하는 도면이고, 도 11b 는 발생 모드 부호화 방법을 설명하는 도면이며, 도 11c 는 증가 모드 부호화 방법을 설명하는 도면이다.FIG. 11A illustrates a DPCM mode encoding method according to a preferred embodiment of the present invention, FIG. 11B illustrates a generation mode encoding method, and FIG. 11C illustrates an incremental mode encoding method.

도 12 는 본 발명의 좌표 인터폴레이터 복호화 장치의 구성을 도시하는 블록도이다.12 is a block diagram showing the configuration of a coordinate interpolator decoding apparatus of the present invention.

도 13 은 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기의 구성을 도시하는 블록도이다.13 is a block diagram showing the construction of a key data decoder according to a preferred embodiment of the present invention.

도 14a 는 본 발명의 바람직한 실시예에 따른 키 데이터 복호화 방법을 설명하는 흐름도이고, 도 14b 는 도 14a 의 제 S14500 단계의 상세 흐름도이다.14A is a flowchart illustrating a key data decryption method according to a preferred embodiment of the present invention, and FIG. 14B is a detailed flowchart of step S14500 of FIG. 14A.

도 15a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화 장치의 구성을 도시하는 블록도이고, 도 15b 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화 방법을 설명하는 흐름도이다.15A is a block diagram showing a configuration of a key value data decrypting apparatus according to a preferred embodiment of the present invention, and FIG. 15B is a flowchart illustrating a key value data decrypting method according to a preferred embodiment of the present invention.

도 16a 는 본 발명의 바람직한 실시예에 따른 사전 복호화기의 구성을 도시하는 블록도이고, 도 16b 는 본 발명의 키 값 데이터 복호화기의 역 DPCM 처리부의 구성을 도시하는 블록도이다.FIG. 16A is a block diagram showing the configuration of a pre-decoder according to a preferred embodiment of the present invention, and FIG. 16B is a block diagram showing the configuration of an inverse DPCM processing unit of the key value data decoder of the present invention.

도 17a 는 본 발명의 바람직한 실시예에 따른 사전 복호화 방법을 설명하는 흐름도이고, 도 17b 는 역 DPCM 연산 방법을 설명하는 흐름도이다.17A is a flowchart for explaining a pre-decoding method according to a preferred embodiment of the present invention, and FIG. 17B is a flowchart for explaining an inverse DPCM calculation method.

도 18a 은 좌표 인터폴레이터의 각 정점과 각 정점의 성분 데이터의 비트스트림 구조를 도시한 도면이다.FIG. 18A illustrates a bitstream structure of each vertex of the coordinate interpolator and component data of each vertex. FIG.

도 18b 는 본 발명의 엔트로피 복호화기에 이용되는 decodeSignedQuasiAAC() 함수를 구현한 프로그램 코드의 일예를 도시한 도면이다.18B is a diagram illustrating an example of program code implementing the decodeSignedQuasiAAC () function used in the entropy decoder of the present invention.

도 19a 는 DPCM 모드 복호화 방법을 설명하는 도면이고, 도 19b 는 발생 모드 복호화 방법을 설명하는 도면이며, 도 19c 는 증가 모드 복호화 방법을 설명하는 도면이다.19A is a diagram illustrating a DPCM mode decoding method, FIG. 19B is a diagram illustrating a generation mode decoding method, and FIG. 19C is a diagram illustrating an incremental mode decoding method.

상술한 제 1 기술적 과제를 달성하기 위한 본 발명의 좌표 인터폴레이터 부호화 장치는, 좌표 인터폴레이터의 키 데이터들을 소정의 양자화 비트로 양자화하는 제 1 양자화기, 양자화된 키 데이터들의 차분 데이터들을 생성하는 제 1 DPCM 처리부, 차분 데이터들과 차분 데이터들의 최대값 및 최소값과의 관계에 따라서 차분 데이터들의 범위를 줄이는 DND 연산을 수행하는 DND 처리부, 및 DND 처리부로부터 입력된 차분 데이터를 부호화하는 제 1 엔트로피 부호화기를 포함하는 키 데이터 부호화기; 좌표 인터폴레이터의 키 값 데이터를 소정의 양자화 비트수로 양자화하는 제 2 양자화기, 양자화된 키 값 데이터의 각 정점 성분에 대해서 소정 모드의 DPCM 연산을 수행하여 각 정점 좌표의 시간적 변화에 따른 차분 데이터 및 공간적 변화에 따른 차분 데이터를 생성하는 제 2 DPCM 처리부, DPCM 연산된 각 정점 성분의 차분 데이터 및 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 심볼의 위치를 나타내는 인덱스를 생성하는 사전 부호화기, 및 심볼 및 인덱스를 엔트로피 부호화하는 제 2 엔트로피 부호화기를 포함하는 키 값 데이터 부호화기; 및 키 데이터 부호화기 및 키 값 데이터 부호화기에서 부호화된 비트스트림의 복호화에 필요한 정보를 부호화하는 헤더 부호화기를 포함한다.According to an aspect of the present invention, there is provided a coordinate interpolator encoding apparatus, including: a first quantizer for quantizing key data of a coordinate interpolator with predetermined quantization bits, and a first quantizer for generating differential data of quantized key data A DPCM processing unit, a DND processing unit for performing a DND operation to reduce the range of the differential data according to the relationship between the difference data and the maximum and minimum values of the differential data, and a first entropy encoder for encoding the differential data input from the DND processing unit. A key data encoder; A second quantizer that quantizes key value data of the coordinate interpolator to a predetermined number of quantized bits, and performs differential mode DPCM operation on each vertex component of the quantized key value data to obtain differential data according to a temporal change of each vertex coordinate. And a second DPCM processor for generating differential data according to a spatial change, a pre-encoder for generating a symbol representing a differential data of each vertex component computed by DPCM and a DPCM operation mode performed on the differential data, and an index indicating a symbol position; A key value data encoder comprising a second entropy encoder for entropy encoding the symbol and the index; And a header encoder for encoding information necessary for decoding the bitstream encoded by the key data encoder and the key value data encoder.

상술한 제 2 기술적 과제를 이루기 위한 본 발명의 복호화 장치는 입력된 비트스트림으로부터 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 출력하는 헤더 복호화기; 입력된 비트스트림을 엔트로피 복호화하여, 복호화된 키 데이터의 차분 데이터를 출력하는 제 1 엔트로피 복호화기, 헤더 복호화기로부터 판독된 DND 차수에 따라서 엔트로피 복호화된 키 데이터의 차분 데이터에 역 DND 연산을 수행하여 차분 데이터의 범위를 확장하는 역 DND 처리부, 역 DND 처리부로부터 입력된 차분 데이터에 헤더 복호화기로부터 입력된 DPCM 차수만큼 역 DPCM 연산을 수행하여 양자화된 키 데이터를 출력하는 제 1 역 DPCM 처리부, 및 양자화된 키 데이터를 역 양자화하여 복호화된 키 데이터를 출력하는 제 1 역 양자화기를 포함하는 키 데이터 복호화기; 및 입력된 비트스트림을 엔트로피 복호화하여 DPCM 연산된 키 값 데이터의 차분 데이터의 심볼들, 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 제 2 엔트로피 복호화기, 헤더 복호화기로부터 입력된 사전 복호화 모드 정보에 따라서 사전 복호화 연산을 수행하여 키 값 데이터의 차분 데이터를 생성하는 사전 복호화기, DPCM 연산 모드에 따라서 사전 복호화기로부터 입력된 키 프레임간의 차분 데이터 및 각 정점간의 차분 데이터를 복원하여 양자화된 데이터를 생성하는 제 2 역 DPCM 처리부, 및 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 제 2 역 양자화기를 포함하는 키 값 데이터 복호화기를 포함한다.The decryption apparatus of the present invention for achieving the above-mentioned second technical problem comprises: a header decoder for decoding and outputting header information necessary for decrypting key and key value data from an input bitstream; Entropy-decodes the input bitstream and performs an inverse DND operation on the difference data of the entropy-decrypted key data according to the DND order read from the first entropy decoder and the header decoder to output the difference data of the decrypted key data. An inverse DND processor for extending the range of the differential data, a first inverse DPCM processor for performing inverse DPCM operations on the difference data input from the inverse DND processor by the DPCM order input from the header decoder, and outputting the quantized key data; and quantization A key data decoder comprising a first inverse quantizer for inversely quantizing the keyed data and outputting the decrypted key data; And a second entropy decoder that entropy decodes the input bitstream to generate data to be pre-decrypted, including symbols of differential data of DPCM-operated key value data, an index indicating the position of the symbols, and a DPCM operation mode. Pre-decoder for performing pre-decoding operation according to the pre-decryption mode information input from the decoder to generate differential data of key value data, difference data between key frames inputted from the pre-decoder according to DPCM operation mode, and between each vertex And a second inverse DPCM processor configured to recover differential data to generate quantized data, and a second inverse quantizer to inversely quantize the quantized data to generate reconstructed key value data.

상술한 본 발명의 제 3 기술적 과제를 이루기 위한 본 발명의 기록 매체에 기록되는 비트스트림은 키 데이터를 부호화한 키 데이터 부호화/복호화 정보 및 키 값 데이터를 부호화한 키 값 데이터 부호화/복호화 정보를 포함하고, 키 데이터 부호화/복호화 정보는 키 데이터 비트스트림을 엔트로피 복호화하여 생성된 차분 데이터의 범위를 확장시키는 역 DND 연산을 수행할 회수를 나타내는 역 DND 차수 및 각 역 DND 차수에서의 역 DND 연산에 이용되는 최대값 및 최소값을 포함하는 역 DND 연산 정보, 역 DND 연산이 수행된 차분 데이터를 양자화된 키 데이터로 변환하는 역 DPCM 연산의 회수 및 각 회수의 역 DPCM 연산에 이용되는 인트라 키 데이터를 포함하는 제 1 역 DPCM 연산 정보, 및 양자화된 키 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 1 역 양자화 정보를 포함하며; 키 값 데이터 부호화/복호화 정보는, 키 값 데이터 비트스트림으로부터 엔트로피 복호화된, 사전 부호화된 키 값 데이터의 차분 데이터를 나타내는 심볼에 관한 정보, 심볼의 위치를 나타내는 제 1 위치 인덱스, 및 제 1 위치 인덱스에 수행될 사전 복호화 방법을 나타내는 사전 복호화 모드를 포함하는 사전 복호화 정보, 사전 복호화된 각 정점 성분의 차분 데이터를 양자화된 키 값 데이터로 변환하는 역 DPCM 연산에 이용되는 역 DPCM 연산 모드의 조합을 나타내는 심볼의 위치를 나타내는 제 2 위치 인덱스를 포함하는 제 2 역 DPCM 연산 정보, 및 양자화된 키 값 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 2 역 양자화 정보를 포함한다.The bitstream recorded on the recording medium of the present invention for achieving the third technical problem of the present invention described above includes key data encoding / decoding information encoding key data and key value data encoding / decoding information encoding key value data. The key data encoding / decoding information is used for an inverse DND operation representing an inverse DND order representing the number of times to perform an inverse DND operation that entropy-decodes the key data bitstream and extending a range of differential data generated. Inverse DND operation information including the maximum value and the minimum value, including the number of reverse DPCM operations for converting the difference data on which the inverse DND operation is performed into quantized key data, and the intra key data used for each reverse DPCM operation. Inverse quantization for inversely quantizing the first inverse DPCM operation information and the quantized key data to generate reconstructed key data It comprises a first inverse quantization information used, and; The key value data encoding / decoding information includes information about a symbol representing difference data of pre-encoded key value data, entropy decoded from the key value data bitstream, a first position index indicating a symbol position, and a first position index. Pre-decryption information including a pre-decryption mode indicating a pre-decryption method to be performed, and a combination of inverse DPCM operation modes used for inverse DPCM operation for converting difference data of each pre-decoded vertex component into quantized key value data. Second inverse DPCM operation information including a second position index indicating a position of a symbol, and second inverse quantization information used for inverse quantization for inversely quantizing quantized key value data to generate reconstructed key data.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치를 설명한다.Hereinafter, a coordinate interpolator encoding apparatus according to a preferred embodiment of the present invention will be described with reference to the accompanying drawings.

도 2 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치의 구성을 도시하는 블록도이다.2 is a block diagram showing the configuration of a coordinate interpolator encoding apparatus according to a preferred embodiment of the present invention.

도 2를 참조하면, 본 발명의 좌표 인터폴레이터 부호화 장치는 입력된 좌표 인터폴레이터의 키 데이터를 부호화하는 키 데이터 부호화기(300), 입력된 좌표 인터폴레이터의 키 값 데이터를 부호화하는 키 값 데이터 부호화기(700), 및 키 데이터 부호화기(300) 및 키 값 데이터 부호화기(700)에서 부호화된 키 및 키 값 데이터의 복호화에 필요한 정보를 부호화하는 헤더 부호화기(500)를 포함한다.2, a coordinate interpolator encoding apparatus of the present invention includes a key data encoder 300 for encoding key data of an input coordinate interpolator, and a key value data encoder for encoding key value data of an input coordinate interpolator ( 700, and a header encoder 500 for encoding information necessary for decoding the key and key value data encoded by the key data encoder 300 and the key value data encoder 700.

이하, 도 3a 내지 도 6j 를 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기(700)를 설명한다.Hereinafter, a key data encoder 700 according to an exemplary embodiment of the present invention will be described with reference to FIGS. 3A to 6J.

도 3a 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기의 구성을도시하는 블록도이다.3A is a block diagram showing the configuration of a key data encoder according to a preferred embodiment of the present invention.

본 발명의 키 데이터 부호화기(700)는 선형 키 부호화기(310), 양자화기(320), DPCM 처리부(330), 쉬프팅부(340), 폴딩 처리부(350), DND 처리부(360) 및 엔트로피 부호화기(370)를 포함한다.The key data encoder 700 of the present invention includes a linear key encoder 310, a quantizer 320, a DPCM processor 330, a shifting unit 340, a folding processor 350, a DND processor 360, and an entropy encoder ( 370).

선형 키 부호화기(310)는 전체 키 데이터의 범위에서 키 데이터가 선형으로 증가하는 영역을 식별하여 부호화한다. 양자화기(320)는 양자화 오차를 최소화하는 방법을 이용하여 입력된 키 데이터를 양자화한다. DPCM 처리부(330)는 양자화된 키 데이터를 수신하고, 키 데이터의 차분 데이터를 생성한다. 쉬프팅부(340)는 모든 차분 데이터에서 가장 높은 빈도수의 차분 데이터를 감산한다. 폴딩 처리부(350)는 모든 차분 데이터를 양수 또는 음수의 영역으로 이동시킨다. DND 처리부(360)는 디바이드, 디바이드-업, 및 디바이드-다운의 3가지 연산을 선택적으로 수행하여 키 데이터의 차분 데이터의 범위를 줄인다. 키 데이터에 대한 엔트로피 부호화기(370)는 비트플레인 단위로 차분 데이터를 부호화하는 SignedAAC 및 UnsignedAAC 함수를 이용하여 차분 데이터들을 부호화한다.The linear key encoder 310 identifies and encodes an area where the key data increases linearly in the range of the entire key data. The quantizer 320 quantizes the input key data using a method of minimizing the quantization error. The DPCM processor 330 receives the quantized key data and generates difference data of the key data. The shifting unit 340 subtracts the highest frequency difference data from all the difference data. The folding processor 350 moves all difference data to a positive or negative region. The DND processor 360 selectively performs three operations of divide, divide up, and divide down to reduce the range of difference data of the key data. The entropy encoder 370 for the key data encodes the differential data using SignedAAC and UnsignedAAC functions that encode the differential data in bitplane units.

이하, 도 4a 을 더 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기(700)를 설명한다. 도 4a 은 본 발명의 키 데이터 부호화 방법을 설명한 흐름도이다.Hereinafter, the key data encoder 700 according to an exemplary embodiment of the present invention will be described with reference to FIG. 4A. 4A is a flowchart illustrating a key data encoding method of the present invention.

키 데이터가 부호화기로 입력되면, 전체 키 데이터의 개수 및 각 키 데이터의 자리수와 같은 정보는 헤더 부호화기(500)로 입력되어 부호화되고, 선형 키 부호화기(310)는 입력된 키 데이터들에서 선형 키 영역, 즉, 일정한 시간 간격으로키 프레임이 존재하고 키 데이터가 동일한 차를 갖게 되어, 키 데이터가 선형으로 변화하는 영역이 있는지를 검색하고, 검색된 선형 영역을 먼저 부호화한다(S4000).When the key data is input to the encoder, information such as the total number of key data and the number of digits of each key data is input to the header encoder 500 and encoded, and the linear key encoder 310 is a linear key region in the input key data. That is, the key frame is present at regular time intervals and the key data have the same difference, so that there is an area where the key data changes linearly, and the searched linear area is first encoded (S4000).

3Dmax, Maya 와 같은 유명 3D 응용 소프트웨어들은 특정 영역이 일정한 시간 간격을 갖는 키를 이용하여 키 프레임 기반의 애니메이션을 생성한다. 이러한 경우에, 선형 키 데이터 영역은 선형 영역이 시작되는 키 데이터, 종료되는 키 데이터 및 사이에 존재하는 키 프레임의 개수만 알면 간단하게 키 데이터를 부호화할 수 있기 때문에, 인터폴레이터에서 특정 영역의 키의 부호화를 위해서 선형 예측을 이용하는 것은 매우 유용하다.Popular 3D application software, such as 3Dmax and Maya, generate key frame-based animation using keys with specific time intervals. In such a case, the linear key data area can simply encode the key data by knowing only the key data at which the linear area begins, the key data at the end, and the number of key frames present in between, so that the key of a specific area in the interpolator It is very useful to use linear prediction for the coding of.

선형 예측에 이용되는 수식은 다음의 수학식 1 과 같다.The equation used for the linear prediction is shown in Equation 1 below.

여기서, tS는 부분적으로 선형인 영역이 시작되는 키의 데이터를 나타내고, tE는 부분적으로 선형인 영역이 종료되는 키의 데이터를 나타내며, S 는 tS의 인덱스를 E 는 tE의 인덱스를 각각 나타낸다. S 번째 키 데이터 및 E 번째 키 데이터에 대응되는 특정 영역에서 수학식 1 에 따라 선형적으로 예측된 키 데이터와 실제 키 데이터간의 오차는 다음 수학식 2 에 따라서 계산할 수 있다.Where t S represents the data of the key at which the partially linear region begins, t E represents the data of the key at the end of the partially linear region, S is the index of t S , and E is the index of t E. Represent each. In a specific region corresponding to the S-th key data and the E-th key data, an error between the key data linearly predicted according to Equation 1 and the actual key data may be calculated according to Equation 2 below.

만약, 수학식 2 에 의해서 계산된 오차값들 중 최대 오차값이 소정의 임계값 이하라면, ti는 [tS,tE]구간 및 소정의 오차내에서 유사 선형(co-linear)이라고 할 수 있다. 최대 오차값과 특정 영역이 유사 선형인지의 여부는 다음의 수학식 3 에 의해서 결정된다.If the maximum error value among the error values calculated by Equation 2 is less than or equal to a predetermined threshold, t i may be called a co-linearity within the interval [t S , t E ] and the predetermined error. Can be. Whether the maximum error value and the specific region are pseudolinear is determined by Equation 3 below.

만약,라면, ti는 [tS,tE]구간에서 유사 선형이다. 여기서, nBits는 부호화에 이용되는 부호화 비트수를 나타낸다.if, T i is pseudo-linear in the interval [t S , t E ]. Here, nBits represents the number of encoded bits used for encoding.

일단, 선형 키 부호화기(310)는 부분적으로 선형인 영역을 찾게되면, 영역의 시작점의 키 데이터 및 종료점의 키 데이터는 실수 변환부(315)로 출력하고, 선형 키 영역에 포함되는 키의 개수는 헤더 부호화기(500)로 출력하여 부호화한다. 이러한, 선형 부호화를 이용함으로써 부호화할 데이터의 양을 크게 줄일 수 있음을 알 수 있다. 시작 키 데이터 및 종료 키 데이터는 실수 변환부(315)에서 후술하는 실수 변환과정에 의해서 부호화된다.Once the linear key encoder 310 finds a partially linear region, the key data of the starting point of the region and the key data of the ending point are output to the real number converting unit 315, and the number of keys included in the linear key region is It is output to the header encoder 500 and encoded. It can be seen that by using such linear encoding, the amount of data to be encoded can be greatly reduced. The start key data and the end key data are encoded by the real conversion process described later by the real conversion unit 315.

실수 변환부(315)는 시작 키 데이터와 종료 키 데이터를 부호화하기 위해서 2진수 체계로 표현된 키 데이터를 10진수 체계로 변환한다.The real number converting unit 315 converts the key data represented by the binary system to the decimal system in order to encode the start key data and the end key data.

컴퓨터는 실수(floating-point number)를 32 비트의 2진수 형태로 저장한다. 실수(floating-point number)가 2진수 형태로 입력되면, 실수 변환부(315)는 실수를 10진수 체계의 크기(이하, "맨티사(mantissa)"라 칭함) 및 10 의 거듭 제곱(이하, "지수(exponent)"라 칭함)의 형식으로 변환한다.Computers store floating-point numbers in 32-bit binary form. When a floating-point number is input in binary form, the real number converting unit 315 may convert the real number to the size of the decimal system (hereinafter referred to as "mantissa") and power of 10 (hereinafter, referred to as "mantissa"). To an "exponent" format.

예를 들어, 실수 12.34를 컴퓨터에서 2진수 형태로 표현하면, 다음과 같다.For example, if the real number 12.34 is represented in binary form on a computer,

이 수를 전술한 수학식 4 에 따라서 10진수로 표현하면, 다음과 같다.This number is expressed as a decimal number according to the above equation (4), as follows.

십진수 체계의 맨티사와 지수를 비트스트림에 포함시키기 위해서는 각각이 필요한 비트수를 계산하여야 한다. 먼저, 지수는 -38 ~ 38 사이 범위의 값을 갖으므로, 지수는 부호(sign)를 포함하여 7 비트로 표현될 수 있다. 또한, 맨티사는 자리수에 따라서 필요한 비트의 수가 결정된다. 맨티사의 값과 이에 필요한 비트수(단, 부호 비트는 제외)를 다음의 표 2 에 나타내었다.In order to include the mantis and exponents of the decimal system into the bitstream, each must calculate the number of bits required. First, since the exponent has a value in the range of -38 to 38, the exponent may be represented by 7 bits including a sign. Mantis yarn also determines the number of bits required depending on the number of digits. The values of Mantisa and the number of bits required (except sign bits) are shown in Table 2 below.

한편, 상술한 과정에 의해서 검색되어 변환된 선형 키 영역의 시작 키 데이터와 종료 키 데이터는 도 4b 에 도시된 부호화 과정에 따라서 부호화되고, 헤더 부호화기(500)로 출력되어 비트스트림에 저장된다.Meanwhile, the start key data and the end key data of the linear key region searched and converted by the above-described process are encoded according to the encoding process shown in FIG. 4B, and are output to the header encoder 500 and stored in the bitstream.

도 4b 는 실수 변환부(315)가 입력된 2개의 실수(floating-point number)를 부호화하는 과정을 도시한다. 도 4b를 참조하여, 실수 변환부(315)가 변환된 실수를 부호화하는 과정을 설명한다.4B illustrates a process of encoding the two floating-point numbers inputted by the real conversion unit 315. Referring to FIG. 4B, a process of encoding the converted real number by the real number converting unit 315 will be described.

실수 변환부(315)는 선형 키 부호화기(310)로부터 원래 키 데이터의 자리수(original key digit, Kd), 선형 영역이 시작되는 키 데이터(Start key, S), 선형 영역이 종료되는 키 데이터(end key, E)를 입력받아 상술한 수학식 4 에 의해서 키 데이터들을 변환한다(S4040).The real number converting unit 315 receives the original key digit (Kd) of the original key data, the key data (Start key, S) at which the linear region starts, and the key data (end, at which the linear region ends) from the linear key encoder (310). Key, E) is received and key data are converted by Equation 4 (S4040).

실수 변환부(315)는 우선 S 를 부호화하는데, S의 자릿수가 Kd 와 다른지를 판단하여, 자리수가 다르면, S의 자릿수를 구하여 헤더 부호화기(500)로 출력한다(S4042). 이 때, 실수 변환부(315)는 Digit() 함수를 이용하여 S 의 자리수를 구한다.The real number converting unit 315 firstly S For encoding, if the number of digits of S is different from Kd, and if the number of digits is different, the number of digits of S is obtained and output to the header encoder 500 (S4042). At this time, the real number conversion unit 315 obtains the number of digits in S using the Digit () function.

그 후, 실수 변환부(315)는 S 의 자리수가 7 보다 크면, 소정의 비트수를(본 발명에서는, IEEE 표준 754의 floating-point number 방식으로 32bit을 사용)이용하여, S 의 자리수가 비트스트림에 포함되도록 헤더 부호화기(500)로 출력한다(S4043).After that, if the number of digits in S is larger than 7, the real number converting unit 315 uses a predetermined number of bits (in the present invention, 32 bits are used in the floating-point number method of the IEEE standard 754). The header encoder 500 outputs the header encoder 500 to be included in the stream (S4043).

한편, S 의 자리수가 0 이 아니고 7보다 작으면, 실수 변환부(315)는 S 의 부호를 헤더 부호화기(500)로 출력하고(S4044), S의 멘티사의 절대값의 부호화에 필요한 비트수를 상기 표 4 로부터 구하고, 구해진 비트수로 멘티사의 절대값을 헤더 부호화기(500)로 출력한다(S4045). 그 후, S의 지수를 구하고, 부호를 헤더 부호화기(500)로 출력하고, 지수를 소정의 비트수로(본 발명의 실시예에서는 6 bit로) 헤더 부호화기(500)로 출력한다(S4046). 이와 같은 키 데이터의 변환으로 인해 비트스트림에 포함되는 비트수는 대폭 감소된다.On the other hand, if the number of digits in S is less than 0 and less than 7, the real number converting unit 315 outputs the sign of S to the header encoder 500 (S4044), and calculates the number of bits necessary for encoding the absolute value of the mentee of S. The absolute value of the Mentissa Co. is obtained from the table 4, and is output to the header encoder 500 using the obtained number of bits (S4045). Thereafter, the index of S is obtained, the code is output to the header encoder 500, and the index is output to the header encoder 500 at a predetermined number of bits (6 bits in the embodiment of the present invention) (S4046). Due to the conversion of the key data, the number of bits included in the bitstream is greatly reduced.

한편, S 의 자리수가 0 이면 시작 키 데이터의 부호화 과정은 종료되고, 종료 키 데이터를 변환하기 위한 과정으로 진행한다. 왜냐하면, 자릿수가 0 이면 실수(floating-point number)는 0을 의미하므로 더 이상의 부호화과정이 필요 없기 때문이다.On the other hand, if the digit of S is 0, the encoding process of the start key data is terminated, and the process proceeds to converting the end key data. This is because if the number of digits is 0, the floating-point number means 0 and no further encoding process is necessary.

실수 변환부(315)는 시작 키 데이터를 변환하여 부호화한 후 종료 키 데이터 E를 변환한다. E 의 변환은 S 의 변환과 같은 과정을 반복하되, 단 E의 지수가 S의 지수와 같은 값을 가지는지를 판별하여(S4047), 양 값이 동일하면 이를 나타내는 플래그(flag) 비트만을 헤더 부호화기(500)로 출력하고, 다르면 플래그(flag)비트와 E의 지수를 S의 지수와 같은 방식으로 헤더 부호화기(500)로 출력한다(S4048).The real number converting unit 315 converts and encodes the start key data and then converts the end key data E. The conversion of E is repeated in the same process as the conversion of S, except that whether the exponent of E has the same value as the exponent of S (S4047). 500, and if different, the flag bits and the exponent of E are outputted to the header encoder 500 in the same manner as the exponent of S (S4048).

한편, 입력 키 데이터에서 선형 영역을 제외한 키 데이터들은 양자화기(320)로 입력되어 소정의 양자화 비트 사이즈인 nKeyQBit 에 따라서 양자화된다.On the other hand, the key data excluding the linear region from the input key data are input to the quantizer 320 and quantized according to nKeyQBit, which is a predetermined quantization bit size.

그러나, 복호화기에서 양자화된 키 데이터를 복호화하여 이용할 때에는, 원래의 키 데이터와 양자화된 키 데이터간의 오차로 인해 원래의 키 데이터가 완전히 복원될 수 는 없다. 따라서, 본 발명의 양자화기(320)는 단순히 입력되는 키 데이터에서 최대값 및 최소값을 구하고, 구해진 값들을 이용하여 양자화할 수 있을 뿐 아니라, 양자화 오차 최소화부(325)를 포함하여, 양자화 오차를 최소화할 수 있도록 수정된 최대값 및 최소값을 이용하여 양자화할 수 있다.However, when decrypting and using the quantized key data in the decoder, the original key data may not be completely recovered due to an error between the original key data and the quantized key data. Accordingly, the quantizer 320 of the present invention may not only obtain a maximum value and a minimum value from the input key data, and quantize using the obtained values, and also include a quantization error minimization unit 325 to correct the quantization error. It can be quantized using the maximum and minimum values modified to be minimized.

양자화 오차 최소화부(325)는 양자화 오차를 최소화하기 위해서 입력된 데이터에 대해서 미리 양자화 및 역양자화를 수행하여, 양자화의 오차가 최소가 되는 양자화의 범위를 제어하는 방법을 이용한다(S4100).In order to minimize the quantization error, the quantization error minimizing unit 325 performs a quantization and inverse quantization on the input data in advance, and uses a method of controlling the range of quantization in which the error of quantization is minimized (S4100).

구체적으로 살펴보면, 고정된 양자화에 이용될 최대값을 Max 라하고, 조절되는 양자화에 이용될 최소값을 Min라하며, Xi를 입력 값, nQuantBit를 양자화에 이용되는 비트수라 할 때, 양자화된 입력값, 역양자화된 값, 및 오차 ei는 각각 다음의 수학식 5 에 의해서 계산한다.Specifically, the maximum value to be used for fixed quantization is called Max, the minimum value to be used for controlled quantization is Min, and when X i is the input value and nQuantBit is the number of bits used for quantization, the quantized input value , Dequantized value , And error e i are respectively calculated by the following equation (5).

오차의 합(∑ei)을 감소시키는 방법에는 두 가지가 있는데, 하나는 오차의 합이 최소가 될 때까지 Min 값을 조절하는 것이며, 다른 하나는 다음과 같다.There are two ways to reduce the sum of errors (∑e i ). One is to adjust the Min value until the sum of the errors is minimal.

먼저, Δx 가 입력 데이터의 기본 스텝 사이즈이고, n 이 임의의 정수이며, εi가 영평균 난수 노이즈(zero mean random noise)라 할 때, 입력 키 데이터 시퀀스 Xi를 Xi=(i+n)Δx+εi와 같이 표현되는 양자화된 값이라고 가정한다.First, when Δx is the basic step size of the input data, n is a random integer, and ε i is zero mean random noise, the input key data sequence X i is defined as X i = (i + n Assume that Δx + ε i is a quantized value.

그 후, di≡Xi- Xi-1= Δx +(εii-1) 라 할 때, Δ'x = E[di] 이고, 최소값 Min = Max - Δ'x * (2nQuantBit-1) 과 같다.After that, d i ≡X i - X i -1 = Δx + (ε i -ε i-1) referred to as, and Δ'x = E [d i], the minimum value Min = Max - Δ'x * ( 2 nQuantBit -1)

이러한 과정을 통해서 구해진 양자화 오차를 최소로 만드는 Min 값은 Max 값과 양자화기(320)로 입력되어 키 데이터의 양자화에 이용된다.The Min value that minimizes the quantization error obtained through this process is input to the Max value and the quantizer 320 and used for quantization of key data.

양자화 오차가 최소가되는 최대값(Max) 및 최소값(Min)을 수신한 양자화기(320)는 다음의 수학식 6 을 이용하여 키 데이터(fKeyi)의 양자화를 수행한다(S4200).The quantizer 320 that has received the maximum value Max and the minimum value Min at which the quantization error is minimum performs quantization of the key data fKey i using Equation 6 (S4200).

여기서, i 는 양자화된 키 데이터의 인덱스를, nQKeyi는 양자화된 데이터의 정수 배열을, fKeyi는 입력 키 데이터로서의 실수(float) 배열을, fKeyMax 및 fKeyMin 은 양자화오차 최소화부(325)에서 수신된 최대값(Max) 및 최소값(Min)을, nKeyQBit 는 양자화 비트 사이즈를 각각 나타낸다. 한편, 상기 수학식 6에서 사용된 함수 floor(v) 는 실수 v를 입력받아 v 이하의 최대 정수를 출력하는 함수이다.Here, i is an index of quantized key data, nQKey i is an integer array of quantized data, fKey i is a float array as input key data, and fKeyMax and fKeyMin are received by the quantization error minimizer 325. NKeyQBit represents the quantized bit size, respectively. Meanwhile, the function floor (v) used in Equation 6 is a function of receiving a real number v and outputting a maximum integer less than or equal to v.

한편, 본 발명의 양자화기(320)는 상술한 양자화오차를 최소화하는 알고리즘을 이용하지 않고, 간단하게, 입력된 키 데이터 중에서 최대값(fKeyMax)과 최소값(fKeyMin)을 구하여 양자화를 수행할 수도 있다.Meanwhile, the quantizer 320 of the present invention may perform quantization by simply obtaining a maximum value fKeyMax and a minimum value fKeyMin among the input key data without using the above-described algorithm for minimizing the quantization error. .

본 발명의 양자화 과정을 설명한 도 4c를 참조하여, 양자화과정을 자세히 살펴본다.The quantization process will be described in detail with reference to FIG. 4C, which describes the quantization process of the present invention.

양자화기(320)는 키 데이터를 입력받고(S4210), 양자화오차 최소화부(325)로부터 최대값 및 최소값이 입력되었는지 여부를 조사한다(S4220).The quantizer 320 receives key data (S4210) and checks whether the maximum value and the minimum value are input from the quantization error minimization unit 325 (S4220).

양자화기(320)는 양자화오차 최소화부(325)로부터 최대값(MAX) 및 최소값(MIN)이 입력되었으면, 양자화에 이용할 최대값(fKeyMax) 및 최소값(fKeyMin)을 MAX 와 MIN 으로 설정하고(S4230), 설정된 최대값 및 최소값을 상술한 실수 변환부(315)로 출력한다. 양자화에 이용될 최대값 및 최소값은 상술한 실수 변환 과정을 통해서 변환되고 부호화되어 헤더 부호화기(500)로 출력되므로써, 복호화에 이용할 수 있도록 최대값과 최소값이 헤더에 포함된다.When the maximum value MAX and the minimum value MIN are input from the quantization error minimizer 325, the quantizer 320 sets the maximum value fKeyMax and the minimum value fKeyMin to be used for quantization as MAX and MIN (S4230). ), The set maximum value and the minimum value are outputted to the real number conversion unit 315 described above. The maximum and minimum values to be used for quantization are transformed, encoded, and output to the header encoder 500 through the real conversion process described above, so that the maximum and minimum values are included in the header for use in decoding.

양자화기(320)는 양자화오차 최소화부(325)로부터 입력된 값이 없으면, 입력된 키 데이터 중에서 첫 번째 키 데이터(fKey0)를 최소값(fKeyMin)으로, 마지막 키 데이터(fKeyN-1)를 최대값(fKeyMax)으로 설정한다(S4240).If there is no value input from the quantization error minimizing unit 325, the quantizer 320 converts the first key data fKey 0 to the minimum value fKeyMin among the input key data, and the last key data fKey N-1 . The maximum value (fKeyMax) is set (S4240).

그 후, 양자화기(320)는 설정된 최대값이 1보다 작고, 최소값이 0보다 큰 값인지를 판단하여(S4250), 그렇지 않으면, 최대값과 최소값을 상술한 실수 변환부(315)로 출력하고 상술한 과정을 통해서 변환하여 부호화한 후, 헤더 부호화기(500)로 출력하여 복호화에 이용할 수 있도록 최대값과 최소값을 키 헤더에 포함시킨다(S4260).Thereafter, the quantizer 320 determines whether the set maximum value is less than 1 and the minimum value is greater than 0 (S4250). Otherwise, the quantizer 320 outputs the maximum value and the minimum value to the real number converter 315 described above. After converting and encoding through the above-described process, the maximum value and the minimum value are included in the key header to be output to the header encoder 500 for use in decoding (S4260).

한편, 최대값과 최소값이 제 S9250 단계의 조건을 만족하면, 최대값과 최소값을 복호화에 이용할 수 있도록 키 헤더 데이터에 포함할지의 여부를 나타내는 플래그를 조사한다(S4270). 만약, 플래그가 최대값과 최소값을 키 헤더에 포함하도록 설정되어 있다면, 상술한 제 S9260 단계를 수행하여 최대값(fKeyMax) 및 최소값(fKeyMin)을 부호화한 후 헤더 부호화기(500)로 출력하고, 그렇지 않다면, 양자화기(320)는 최대값과 최소값을 키 헤더에 포함시키지 않게 된다.On the other hand, if the maximum value and the minimum value satisfy the condition of step S9250, a flag indicating whether or not the maximum value and the minimum value are included in the key header data so as to be used for decryption is checked (S4270). If the flag is set to include the maximum value and the minimum value in the key header, after performing the above-described step S9260, the maximum value fKeyMax and the minimum value fKeyMin are encoded and output to the header encoder 500. If not, the quantizer 320 will not include the maximum and minimum values in the key header.

최대값과 최소값을 키 헤더에 포함시키지 않는 경우는, 키 데이터 부호화기(700) 및 키 데이터 복호화기가 서로 최대값을 1 로 최소값을 0으로 설정하여 부호화 및 복호화를 수행할 것을 규약한 경우에 해당되므로, 양자화기(320)는 최소값(fKeyMin)을 0 으로, 최대값(fKeyMax)을 1 로 각각 설정한다(S4280). 이렇게 설정된 양자화에 이용되는 최대값과 최소값은 이미 복호화기에 알려져 있으므로별도로 키 헤더에 포함시키지 않는다.When the maximum value and the minimum value are not included in the key header, the key data encoder 700 and the key data decoder correspond to cases where encoding and decoding are performed by setting the maximum value to 1 and the minimum value to 0. The quantizer 320 sets the minimum value fKeyMin to 0 and the maximum value fKeyMax to 1, respectively (S4280). The maximum and minimum values used for the quantization thus set are already known to the decoder and are not separately included in the key header.

한편, 양자화기(320)는 상술한 과정을 통해서 설정된 fKeyMax 및 fKeyMin를 상기 수학식 6 에 대입하여 입력된 키 데이터들을 양자화하고, 양자화된 키 데이터를 DPCM 처리부(330)로 출력한다(S4290).Meanwhile, the quantizer 320 quantizes the input key data by substituting the fKeyMax and fKeyMin set through the above process into Equation 6, and outputs the quantized key data to the DPCM processor 330 (S4290).

양자화된 키 데이터들을 수신한 DPCM 처리부(330)는 소정 회수의 DPCM을 수행하여 최소의 산포도가 생성되는 차수 및 인트라 키 데이터는 헤더 부호화기(500)로 출력하고, DPCM 연산이 수행된 키 데이터의 차분 데이터들을 쉬프팅부(340)로 출력한다(S4300).Upon receiving the quantized key data, the DPCM processor 330 performs a predetermined number of DPCMs, outputs the order and intra key data for which the minimum scatter is generated, to the header encoder 500, and the difference of the key data on which the DPCM operation is performed. The data are output to the shifting unit 340 (S4300).

도 4d 을 참조하여 DPCM 처리과정을 살펴보면, DPCM 처리부(330)는 입력된 키 데이터에 대해서 먼저 소정의 회수만큼 DPCM 연산을 수행하고, DPCM 이 수행된 회수는 DPCM 차수로서 저장한다(S4310). 본 발명의 바람직한 실시예에서는 3회의 DPCM 연산을 수행하였다.Referring to FIG. 4D, the DPCM processing process is performed. The DPCM processing unit 330 first performs a DPCM operation on the input key data by a predetermined number of times, and stores the number of times that the DPCM is performed as a DPCM order (S4310). In a preferred embodiment of the present invention, three DPCM operations were performed.

그 후, DPCM 처리부(330)는 각 차수의 DPCM 연산 결과에 대해서 산포도를 계산한다(S4320). 이때의 산포도를 나타내는 통계값으로서 분산, 표준편차, 및 사분편차등이 이용될 수 있고, 본 발명의 바람직한 실시예에서는 사분 편차가 산포도로서 사용된다.Thereafter, the DPCM processing unit 330 calculates a scatter diagram for the DPCM calculation result of each order (S4320). A variance, standard deviation, quadrant deviation, etc. may be used as a statistical value representing a scatter plot at this time, and a quadrant deviation is used as a scatter plot in a preferred embodiment of the present invention.

각 차수의 DPCM 연산 결과에 대한 산포도가 계산되면, DPCM 처리부(330)는 산포도가 최소가 되는 DPCM 차수 및 해당 차수의 DPCM 결과를 선택하여, DPCM 연산 결과는 쉬프팅부(340)로 출력하고, DPCM 차수, 각 차수의 인트라 키 데이터 및 그 외의 DPCM 연산에서 필요한 정보들은 헤더 부호화기(500)로 출력한다(S4330). 다만, 본 발명의 바람직한 실시예에서는 키의 개수가 5보다 작으면, 1 차 DPCM 만을 수행하였다. 예컨대, 1 차 DPCM 이 수행될 때에는, 다음의 수학식 7을 이용하여 DPCM 연산을 수행하였다.When the scatter plot for the DPCM calculation result of each order is calculated, the DPCM processing unit 330 selects the DPCM order with the minimum scatter degree and the DPCM result of the corresponding order, and outputs the DPCM calculation result to the shifting unit 340. The order, intra key data of each order, and other information required for DPCM operation are output to the header encoder 500 (S4330). However, in the preferred embodiment of the present invention, if the number of keys is less than 5, only the first DPCM is performed. For example, when primary DPCM is performed, a DPCM operation is performed using Equation 7 below.

Δi=nQKeyi+1- nQKeyi Δ i = nQKey i + 1 -nQKey i

여기서 i 는 양자화된 키 데이터의 인덱스를, nQKeyi는 정수 배열을, Δi는 차분 데이터를 각각 나타낸다.I is an index of quantized key data, nQKey i is an integer array, and Δ i is differential data.

한편, DPCM 처리부(330)는 선택된 DPCM 결과, 및 DPCM 된 키 데이터의 차분 데이터를 부호화할 때 필요한 비트수를 계산하여, 소정의 기억장소(본 발명의 실시예에서는 nQStep_DPCM)에 저장한다(S4340). 다만, 부호화에 필요한 비트수를 계산하는 단계는 후술할 부호화할 키 데이터를 선택하는 단계에서 수행할 수 있음은 당업자에게 자명할 것이다.On the other hand, the DPCM processing unit 330 calculates the number of bits required for encoding the selected DPCM result and the difference data of the DPCM-keyed data, and stores them in a predetermined storage location (nQStep_DPCM in the embodiment of the present invention) (S4340). . However, it will be apparent to those skilled in the art that the calculating of the number of bits required for encoding may be performed at the step of selecting key data to be encoded, which will be described later.

DPCM 결과를 수신한 쉬프팅부(340)는 입력된 차분 데이터들 중에서 가장 빈도수가 높은 차분 데이터(이하, 모드라 함)를 선택하여 모든 차분 데이터에서 모드를 감산하므로써, 부호화될 데이터들이 0 주변에 집중적으로 분포되도록 하여 부호화에 필요한 비트수를 줄인다(S4400).Upon receiving the DPCM result, the shifting unit 340 selects the highest frequency differential data (hereinafter, referred to as a mode) among the input differential data and subtracts the mode from all the differential data, thereby concentrating data to be encoded around 0. The number of bits required for encoding is reduced by being distributed in step S4400.

쉬프팅 연산은 모든 양자화된 키 데이터의 차분 데이터에 모드(nKeyShift)를 감산함으로써 수행된다. 이러한 쉬프팅 연산은 다음의 수학식 8 로 표현된다.The shifting operation is performed by subtracting the mode nKeyShift from the difference data of all the quantized key data. This shifting operation is represented by Equation 8 below.

shift(nQKeyi)=nQKeyi-nKeyShiftshift (nQKey i ) = nQKey i -nKeyShift

i 는 양자화된 키 데이터의 인덱스를 나타내고, nQKeyi는 정수 배열을 나타내며, nKeyShift는 모드값을 나타낸다. 쉬프팅 연산이 수행된 후에는, 키 데이터의 차분 데이터 중 최고 많은 빈도를 나타내는 차분 데이터는 0 이 되므로, 부호화에 필요한 비트수를 대폭 줄일 수 있다.i represents the index of the quantized key data, nQKey i represents the integer array, and nKeyShift represents the mode value. After the shifting operation is performed, the difference data indicating the highest frequency among the difference data of the key data becomes 0, so that the number of bits required for encoding can be greatly reduced.

쉬프팅 연산이 수행된 키 데이터들은 폴딩(fold)처리부(350) 및 DND 처리부(360)로 출력되고, 모드값(nKeyShift)은 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.The key data on which the shifting operation is performed are output to the fold processing unit 350 and the DND processing unit 360, and the mode value nKeyShift is output to the header encoder 500 and included in the key header.

쉬프팅된 데이터를 수신한 폴딩 처리부(350)는 DND 연산을 수행하기 위한 전처리 단계로서 폴딩 연산을 수행하여, 폴딩 연산된 키 데이터를 DND 처리부(360)로 출력한다(S4500).The folding processing unit 350 receiving the shifted data performs a folding operation as a preprocessing step for performing a DND operation, and outputs the folded operation key data to the DND processing unit 360 (S4500).

폴딩 연산은 0 을 중심으로 음수 영역과 양수 영역으로 다양하게 분포되는 차분 데이터를 양수 영역 또는 음수 영역으로 집중시켜 차분 데이터의 범위를 줄이기 위한 것으로, 본 실시예에서는 다음의 수학식 9 에 의해서 폴딩 연산을 수행하여 차분 데이터의 분포를 양수 영역으로 집중시켰다.The folding operation is to reduce the range of the differential data by concentrating the differential data distributed in the negative area and the positive area around 0 to the positive area or the negative area. In the present embodiment, the folding operation is performed by Equation 9 below. Was performed to concentrate the distribution of the differential data into the positive region.

fold(nQKeyi)=2nQkeyi,(nQkeyi≥0 인 경우)fold (nQKey i ) = 2nQkey i , (if nQkey i ≥0)

=2|nQKeyi|-1,(nQkeyi< 0 인 경우)= 2 | nQKey i | -1, if nQkey i <0

여기서, i 는 양자화된 키 데이터의 인덱스를 나타내고, nQKeyi는 정수 배열을 나타낸다. 폴딩 연산에 의해서, 쉬프팅된 키 데이터의 차분 데이터 중 양수인 데이터는 짝수인 양수로, 음수인 데이터는 홀수인 양수로 각각 변환된다.Where i represents the index of the quantized key data and nQKey i represents the integer array. By the folding operation, positive data among the difference data of the shifted key data is converted into even positive numbers and negative data into odd positive numbers, respectively.

폴딩 처리부(350)는 폴딩 연산이 수행된 데이터를 부호화할 때 필요한 비트수를 계산하여 소정의 기억장소(nQStep_fold)에 저장한다. 제 S9300 단계에서와 같이, 부호화에 필요한 비트수의 계산은 후술할 엔트로피 부호화할 차분 데이터를 선택하는 단계에서 수행할 수 있음은 당업자에게 자명할 것이다. 한편, 폴딩 처리부(350)에서 폴딩연산이 수행된 데이터는 DND 처리부(360)로 출력된다.The folding processor 350 calculates the number of bits necessary for encoding the data on which the folding operation is performed and stores the number of bits in a predetermined storage location nQStep_fold. As in the step S9300, it will be apparent to those skilled in the art that the calculation of the number of bits required for encoding may be performed at the step of selecting difference data to be entropy encoded, which will be described later. Meanwhile, data in which the folding operation is performed by the folding processing unit 350 is output to the DND processing unit 360.

DND 처리부(360)는 엔트로피 부호화 효율을 높이기 위해서, 입력된 키 데이터의 차분 데이터들에 대해서 DND 연산을 소정의 회수만큼 수행하여 데이터의 범위를 줄인다(S4600).In order to increase entropy encoding efficiency, the DND processor 360 reduces the data range by performing a DND operation on the difference data of the input key data by a predetermined number of times (S4600).

도 3b를 참조하여 DND 처리부(360)를 살펴보면, DND 처리부는 DND 연산을 수행하는 DND 연산부(362), 부호화 비트수에 따라서 엔트로피 부호화할 차분 데이터를 선택하는 제 1 차분 데이터 선택부(364), 제 1 차분 데이터 선택부에서 DND 연산이 수행된 차분 데이터가 선택되면 DND 연산이 수행된 차분 데이터에 쉬프트-업 연산을 수행하는 쉬프트-업 연산부(366), 및 DND 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터 중 에서 산포도가 더 작은 차분 데이터를 선택하여 엔트로피 부호화기(370)로 출력하는 제 2 차분 데이터 선택부(368)를 포함한다.Referring to FIG. 3B, the DND processor 360 may include a DND operator 362 performing a DND operation, a first difference data selector 364 for selecting differential data to be entropy encoded according to the number of encoded bits. When the difference data on which the DND operation is performed is selected in the first difference data selector, the shift-up operation unit 366 performs a shift-up operation on the difference data on which the DND operation is performed, and the difference data and the shift-up on the DND operation. The second difference data selector 368 selects difference data having a smaller dispersion from among the calculated difference data and outputs the difference data to the entropy encoder 370.

먼저, DND 연산부(362)에서 수행되는 DND 연산에 대해서 살펴본다.First, the DND operation performed by the DND calculator 362 will be described.

폴딩 연산된 차분 데이터가 DND 연산부(362)로 입력되면, 입력된 차분 데이터들은 절반으로 나눠지고, 상위 범위에 위치하는 차분 데이터들은 디바이드 함수에 의해서 음수 영역으로 이동된다. 디바이드 함수는 다음의 수학식 10 과 같이 정의된다.When the fold difference data is input to the DND calculator 362, the input difference data is divided in half, and the difference data located in the upper range is moved to the negative region by the divide function. The divide function is defined as in Equation 10 below.

divide(nQKeyj,nKeyMax)divide (nQKey j , nKeyMax)

= nQKeyj- (nKeyMax+1),(nQKeyj> nKeyMax/2 인 경우)= nQKey j- (nKeyMax + 1), (if nQKey j > nKeyMax / 2)

= nQKeyj,(nQKeyj≤ nKeyMax/2 인 경우)= nQKey j , if nQKey j ≤ nKeyMax / 2

여기서, j 는 입력된 차분 데이터의 인덱스이고, nQKeyj는 정수 배열을, nKeyMax 는 입력된 폴딩연산된 차분 데이터 중 최대값을 각각 나타낸다. 차분 데이터의 분포가 전체 차분 데이터가 차지하는 범위의 경계 영역에 집중되어 있는 경우에, DND 연산은 데이터의 전체 영역을 대폭 감소시키는 효과가 있다.Here, j is an index of the input difference data, nQKey j is an integer array, and nKeyMax is the maximum value of the input folding calculated difference data, respectively. When the distribution of the difference data is concentrated in the boundary region of the range occupied by the entire difference data, the DND operation has an effect of greatly reducing the entire region of the data.

디바이드 연산후에 산포도가 계산되는데, 이 경우에 최소한의 부호화 비트 사이즈가 선택되도록 부호화에 필요한 비트 사이즈가 산포도로서 이용된다.The scatter diagram is calculated after the divide operation, in which case the bit size necessary for encoding is used as the scatter diagram so that the minimum coded bit size is selected.

디바이드 연산이 수행된 후에, 디바이드 연산과 유사한 다른 DND 연산인 디바이드-업 연산 또는 디바이드-다운 연산이 수행되는데, 수행될 연산은 디바이드 연산후의 데이터의 양수측 및 음수측 범위의 크기에 따라서 결정된다.After the divide operation is performed, a divide-up operation or a divide-down operation, which is another DND operation similar to the divide operation, is performed, and the operation to be performed is determined according to the size of the positive side and the negative side range of the data after the divide operation.

양수측의 범위가 더 크면, 다음의 수학식 11 로 정의되는 디바이드-다운 연산이 수행된다.If the range on the positive side is larger, the divide-down operation defined by Equation 11 below is performed.

divide-down(nQKeyj,nKeyMax)divide-down (nQKey j , nKeyMax)

= -2(nKeyMax-nQKeyj+1)+1,(nQKeyj> nKeyMax/2 인 경우)= -2 (nKeyMax-nQKey j +1) +1, (when nQKey j > nKeyMax / 2)

= nQKeyj,(0 ≤nQKeyj≤nKeyMax/2 인 경우) = NQKey j, (0 ≤nQKey j ≤nKeyMax / 2 if)

= 2nQKeyj,(nQKeyj< 0 인 경우)= 2nQKey j , if nQKey j <0

한편, 음수측의 범위가 더 크면, 다음의 수학식 12로 정의되는 디바이드-업 연산이 수행된다.On the other hand, if the range of the negative side is larger, the divide-up operation defined by Equation 12 below is performed.

divide-up(nQKeyj,nKeyMin)divide-up (nQKey j , nKeyMin)

= nQKeyj,(nQKeyj> 0 인 경우)= nQKey j , if nQKey j > 0

= 2nQKeyj,(nKeyMin/2 ≤nQKeyj≤0 인 경우)= 2nQKey j , (when nKeyMin / 2 ≤ nQKey j0 )

= 2(nKeyMin-nQKeyj-1)+1,(nQKeyj< nKeyMin/2 인 경우)= 2 (nKeyMin-nQKey j -1) +1, (when nQKey j <nKeyMin / 2)

상기 수학식들에서, j 는 양자화된 키 데이터의 인덱스이고, nQKeyj는 정수 배열이며, nKeyMax 는 nQKeyj의 최대값이고, nKeyMin 는 nQKeyj의 최소값이다.In the above equation, j is the index of quantized key data, nQKey j indicates an integer array, nKeyMax is a maximum value of nQKey j, nKeyMin is a minimum value of nQKey j.

이하, DND 연산부(362)의 연산수행 과정을 도시한 도 4e 을 참조하여, DND 연산과정을 살펴본다.Hereinafter, the DND calculation process will be described with reference to FIG. 4E, which illustrates the operation of the DND calculator 362.

DND 연산부(362)는 폴딩 처리부(350)로부터 키 데이터의 차분 데이터가 입력되면, 입력된 차분 데이터들 중에서 최대값(nKeyMax) 및 최소값(nKeyMin)을 구한다(S4610). 그 후, DND 연산부(362)는 최대값과 최소값의 절대값을 비교하고(S4620), 최대값이 최소값의 절대값보다 크거나 같으면, 구해진 최대값을현재 DND 연산 차수의 최대값으로 설정한다(S4622).When the difference data of the key data is input from the folding processor 350, the DND calculator 362 obtains a maximum value nKeyMax and a minimum value nKeyMin among the input difference data (S4610). Thereafter, the DND calculator 362 compares the absolute value of the maximum value with the minimum value (S4620). If the maximum value is greater than or equal to the absolute value of the minimum value, the DND calculator 362 sets the obtained maximum value to the maximum value of the current DND calculation order ( S4622).

DND 연산부(362)는 DND 연산 차수가 1 인지를 조사하여(S4624), 차수가 1 이면 상술한 수학식 10 에 최대값(nKeyMax)을 대입하여 DND 연산부(362)로 입력된 차분 데이터에 대해서 디바이드 연산을 수행한다(S4630).The DND calculator 362 checks whether the DND calculation order is 1 (S4624), and if the order is 1, substitutes the maximum value nKeyMax in Equation 10 described above, and divides the difference data input to the DND calculation unit 362. The operation is performed (S4630).

디바이드 연산을 수행한 DND 연산부(362)는 부호화에 필요한 비트 사이즈를 구하기 위한 함수 getQBit()를 이용하여, 디바이드 연산을 수행하여 줄어든 차분 데이터 범위를 부호화하기 위해서 필요한 비트 사이즈를 측정한다(S4640). 그 후, 현재의 DND 연산 차수가 1 이면(S4650), 상기 값을 DND 연산후에 최소 부호화 비트 사이즈를 나타내는 값(nQBitDND)으로 일단 저장하고, DND 차수를 1 증가시킨다(S4655).After performing the divide operation, the DND operation unit 362 measures a bit size required for encoding the reduced differential data range by performing the divide operation by using a function getQBit () for obtaining a bit size required for encoding (S4640). After that, if the current DND operation order is 1 (S4650), the value is stored once as a value (nQBitDND) indicating the minimum coded bit size after the DND operation, and the DND order is increased by one (S4655).

그 후, DND 연산부(362)는 상술한 과정을 다시 수행하는데, 제 S9624 단계에서 차수가 1 이 아니면, 상기 수학식 11 에 nKeyMax 값을 대입하여 디바이드-다운 연산을 수행한다(S4634). DND 연산부(362)는 디바이드-다운 연산이 수행된 차분 데이터의 부호화에 필요한 비트수를 계산하고(S4640), 이 값이 이전 차수의 DND 연산에서 저장된 부호화에 필요한 최소값(nQBitDND)보다 작으면(S4652), DND 연산후에 부호화에 필요한 최소비트 사이즈를 이 값으로 대체한다(S4658).Thereafter, the DND calculator 362 performs the above-described process again. If the degree is not 1 in step S9624, the divide-down operation is performed by substituting nKeyMax in Equation 11 (S4634). The DND calculating unit 362 calculates the number of bits necessary for encoding the differential data on which the divide-down operation is performed (S4640), and if this value is smaller than the minimum value (nQBitDND) required for encoding stored in the DND operation of the previous order (S4652). After the DND operation, the minimum bit size required for encoding is replaced with this value (S4658).

한편, 제 S9620 단계에서, 최소값의 절대값이 최대값보다 더 크다면, 당해 차수의 최대값을 입력된 최소값으로 갱신하고(S4623), 최소값을 상기 수학식 12 에 대입하여 디바이드-업 연산을 수행한다(S4638). 그 후, DND 연산부(362)는 디바이드-업 연산이 수행된 차분 데이터의 부호화에 필요한 비트수를 계산하고(S4640),이 값이 이전 차수의 DND 연산에서 저장된 부호화에 필요한 최소값(nQBitDND)보다 작으면(S4652), DND 연산후에 부호화에 필요한 최소비트 사이즈를 이 값으로 대체한다(S4658).On the other hand, in step S9620, if the absolute value of the minimum value is larger than the maximum value, the maximum value of the order is updated to the input minimum value (S4623), and the divide-up operation is performed by substituting the minimum value in Equation 12 above. (S4638). Thereafter, the DND calculating unit 362 calculates the number of bits necessary for encoding the differential data on which the divide-up operation is performed (S4640), and this value is smaller than the minimum value (nQBitDND) required for encoding stored in the DND operation of the previous order. If it is (S4652), after the DND operation, the minimum bit size necessary for encoding is replaced with this value (S4658).

DND 연산부(362)는 소정의 회수가 될 때까지 상술한 과정을 반복하는데, DND 연산을 수행하는 회수는 가변적이다. 예컨대, 본 실시예는 DND 연산을 수행하는 회수를 7 회로 설정하였다. DND 연산 연산부(362)는 부호화에 필요한 최소 비트 사이즈(nQBitDND) 및 그때의 DND 연산된 차분 데이터를 제 1 차분 데이터 선택부(364)로 출력하고, 그 때의 차수를 헤더 부호화기(500)로 출력하여 비트스트림에 포함시킨다.The DND calculation unit 362 repeats the above-described process until a predetermined number of times, and the number of times of performing the DND operation is variable. For example, in this embodiment, the number of times to perform the DND operation is set to seven circuits. The DND arithmetic operation unit 362 outputs the minimum bit size (nQBitDND) required for encoding and the difference data calculated at that time to the first difference data selection unit 364, and outputs the order at that time to the header encoder 500. To include in the bitstream.

제 1 차분 데이터 선택부(364)는 쉬프팅 연산된 차분 데이터, 폴딩 연산된 차분 데이터 및 DND 연산된 차분 데이터를 입력받아, 어떤 연산 수행 결과를 엔트로피 부호화할 것이지를 결정한다.The first difference data selector 364 receives the shifted difference data, the folding difference data, and the DND calculated difference data, and determines which calculation result is to be entropy encoded.

도 4a을 다시 참조하며, 제 1 차분 데이터 선택부(364)는 DND 연산후에 부호화에 필요한 최소 비트수(nQBitDND)가 DPCM 연산후의 부호화 비트 사이즈(nQStep-DPCM)보다 크거나 같으면(S4700), DPCM 연산의 결과를 선택하고 쉬프팅 연산을 수행한 후, 쉬프팅된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화한다(S4710). 이 경우에, DND 차수는 -1 로 설정되고 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.Referring back to FIG. 4A, if the minimum number of bits (nQBitDND) required for encoding after the DND operation is greater than or equal to the coded bit size (nQStep-DPCM) after the DPCM operation (S4700), the DPCM After selecting the result of the operation and performing the shifting operation, the shifted difference data is output to the entropy encoder 370 to be entropy encoded (S4710). In this case, the DND order is set to -1 and output to the header encoder 500 to be included in the key header.

그러나, nQBitDND 가 DPCM 후의 부호화 비트 사이즈보다 작지만, 폴딩 연산후의 부호화 비트 사이즈보다 크거나 같으면(S4720), 제 1 차분 데이터선택부(364)는 폴딩연산된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화한다(S4730). 이 경우에, DND 차수는 0 으로 설정되고 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.However, if nQBitDND is smaller than the coded bit size after DPCM, but is greater than or equal to the coded bit size after the folding operation (S4720), the first difference data selection unit 364 outputs the folded operation difference data to the entropy encoder 370. Entropy encoding is performed (S4730). In this case, the DND order is set to 0 and output to the header encoder 500 to be included in the key header.

만약, DND 연산된 후의 차분 데이터의 부호화 비트수가 가장 적다면, 제 1 차분 데이터 선택부(364)는 DND 연산된 차분 데이터를 쉬프트-업 연산부(366)로 출력하고, 쉬프트-업 연산부(366)은 차분 데이터를 입력받아, DND 연산된 차분 데이터에 대해서 제 1 산포도를 계산하고(S4740), 아울러, DND 연산된 차분 데이터에 대해서 다음의 수학식 13 으로 정의되는 쉬프트-업 연산을 수행한 후(S4800), 쉬프트-업 연산된 차분 데이터들의 제 2 산포도를 다시 계산한다(S4810).If the number of encoded bits of the difference data after the DND operation is the smallest, the first difference data selection unit 364 outputs the DND calculated difference data to the shift-up operation unit 366, and the shift-up operation unit 366. Receives the difference data, calculates a first scatter diagram on the DND-operated difference data (S4740), and performs a shift-up operation defined by Equation 13 on the DND-calculated difference data ( In operation S4810, the second scatter diagram of the shift-up difference data is calculated again.

shift-up(nQKeyj, nKeyMax)shift-up (nQKey j , nKeyMax)

= nQKeyj,(nQKeyj≥0)= nQKey j , (nQKey j ≥0)

= nKeyMax - nQKeyj,(nQKeyj< 0)= nKeyMax-nQKey j , (nQKey j <0)

여기에서 j 는 양자화된 키 데이터의 차분 데이터의 인덱스이고, nQKeyj는 정수 배열이며, nKeyMax 는 차분 데이터 중에 최대값을 각각 나타낸다.Here j is the index of the difference data of the quantized key data, nQKey j is an integer array, nKeyMax represents the maximum value among the difference data, respectively.

DND 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터를 입력받은 제 2 차분 데이터 선택부(368)는 제 1 산포도 및 제 2 산포도의 크기를 비교하여(S4900) 쉬프트-업 연산후의 제 2 산포도가 DND 연산 후의 제 1 산포도보다 작으면, 쉬프트-업 연산이 수행된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화하고(S4910), DND 연산에서 사용된 최대값(nKeyMax) 및 최소값(nKeyMin), 그리고, 쉬프트-업 연산에서 사용된 최대값(nKeyMax)을 헤더 부호화기(500)로 출력하여 키 헤더에 포함시킨다.The second difference data selection unit 368 receiving the DND-calculated difference data and the shift-up calculated difference data compares the magnitudes of the first scatter plot and the second scatter plot (S4900) to determine the second scatter plot after the shift-up calculation. If smaller than the first scatter diagram after the DND operation, the shift-up operation outputs the difference data to the entropy encoder 370 to entropy-encode (S4910), and the maximum value (nKeyMax) and minimum value (nKeyMin) used in the DND operation are performed. Then, the maximum value nKeyMax used in the shift-up operation is output to the header encoder 500 and included in the key header.

그러나, DND 연산 후의 제 1 산포도가 쉬프트-업 연산후의 제 2 산포도보다 더 작으면, 제 2 차분 데이터 선택부(368)는 DND 연산이 수행된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화하고(S4920), DND 연산에서 사용된 최대값(nKeyMax) 및 최소값(nKeyMin)만이 헤더 부호화기(500)로 출력된다. 본 발명의 바람직한 실시예에서는 전술한 제 1 및 제 2 산포도로서 표준편차를 이용하였다.However, if the first scatter diagram after the DND operation is smaller than the second scatter diagram after the shift-up operation, the second difference data selector 368 outputs the difference data on which the DND operation is performed to the entropy encoder 370 to entropy encode the same. In operation S4920, only the maximum value nKeyMax and the minimum value nKeyMin used in the DND operation are output to the header encoder 500. In a preferred embodiment of the present invention, standard deviation is used as the above-mentioned first and second scatter plots.

엔트로피 부호화기(370)는 부호화할 차분 데이터의 성질에 따라서 2가지 함수 연산을 수행하여 차분 데이터를 부호화한다. 예컨대, DPCM 이 수행되고 쉬프팅 연산이 수행된 차분 데이터 및 디바이드 연산이 수행된 차분 데이터는 양수 및 음수를 모두 갖게 되므로, 차분 데이터의 부호를 포함하는 부호화를 수행하고, 폴딩 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터는 양수값만을 가지므로 부호를 포함하지 않는 부호화를 수행한다.The entropy encoder 370 encodes the difference data by performing two function operations according to the nature of the difference data to be encoded. For example, since the DPCM is performed and the differential data on which the shifting operation is performed and the differential data on which the divide operation is performed have both positive and negative numbers, encoding including the sign of the differential data is performed, and the folding calculated differential data and the shift- Since the up-computed difference data has only positive values, encoding is performed without sign.

본 발명의 바람직한 실시예는 부호를 포함하는 부호화함수로서 encodeSignedAAC 함수를 이용하고, 부호를 포함하지 않는 부호화함수로서 encodeUnsignedAAC 함수를 이용하여 차분 데이터를 부호화한다.According to a preferred embodiment of the present invention, differential data is encoded by using the encodeSignedAAC function as an encoding function including a sign, and by using the encodeUnsignedAAC function as an encoding function not including a sign.

도 5 은 encodeSignedAAC 함수의 일예를 도시하는 도면이다. 도 8 을 참조하면, 입력 값이 74 이고, 이 값에 대한 부호화 비트수가 8 이라면, 이 값의 부호는 0 이고, 이 값의 이진수는 1001010 이 된다. 부호 및 모든 비트 플레인은 다음과 같이 과정을 통해서 부호화된다.5 is a diagram illustrating an example of the encodeSignedAAC function. Referring to Fig. 8, if the input value is 74 and the number of encoded bits for this value is 8, the sign of this value is 0, and the binary number of this value is 1001010. The code and all bit planes are encoded by the following process.

제 1 단계: 이진수를 MSB 에서부터 LSB로 비트플레인 단위로 부호화한다.Step 1: Encode the binary number from MSB to LSB in bitplane units.

제 2 단계: 부호화중에 현재 부호화되는 비트가 0이 아닌지를 검사한다.Step 2: During encoding, it is checked whether a bit currently encoded is not zero.

제 3 단계: 만약, 첫 번째 0 이 아닌 값이라면, 이진수의 현재 부호화 비트를 부호화한 후에 부호를 부호화한다.Third step: If the first non-zero value, the code is encoded after encoding the current encoding bit of the binary number.

제 4 단계: 이진수의 잔여 비트를 부호화한다.Step 4: Encode the remaining bits of the binary number.

encodeUnsignedAAC 함수는 부호없는 값을 값들에 대한 컨택스트를 이용하여 적응 산술 부호화 비트스트림으로 부호화한다. 이것은 부호 컨택스트가 있다는 점을 제외하면, 전술한 encodeSignedAAC 함수의 처리과정과 유사하다.The encodeUnsignedAAC function encodes an unsigned value into an adaptive arithmetic encoded bitstream using a context for the values. This is similar to the processing of the encodeSignedAAC function described above, except that there is a sign context.

도 6a 내지 도 6j 는 본 발명의 바람직한 실시예에 따른 연산들이 수행된 후의 키 데이터를 도시하는 도면들이다. 도 6a 내지 도 6j에서 횡축은 각 키 데이터의 인덱스를 나타내고, 종축은 키 데이터의 값을 나타낸다.6A-6J illustrate key data after operations are performed in accordance with a preferred embodiment of the present invention. 6A to 6J, the horizontal axis represents the index of each key data, and the vertical axis represents the value of the key data.

도 6a 는 본 발명의 부호화기로 입력된 원래 키 데이터를 도시한 도면이다. 도 6a 에 도시된 키 데이터가 양자화기(320)로 출력되어 9비트의 양자화 비트로 양자화되면, 도 6b 에 도시된 양자화된 키 데이터가 얻어진다. 양자화된 키 데이터에 대해서 DPCM을 수행하면, 도 6c 와 같은 키 데이터의 차분 데이터를 얻게된다.6A illustrates original key data input to an encoder of the present invention. When the key data shown in FIG. 6A is output to the quantizer 320 and quantized with 9 bits of quantization bits, quantized key data shown in FIG. 6B is obtained. When DPCM is performed on the quantized key data, difference data of the key data as shown in FIG. 6C is obtained.

그 후, 양자화된 키 데이터의 차분 데이터를 약 7 의 모드값으로 쉬프팅하면, 도 6d 에 도시된 키 데이터의 차분 데이터를 얻을 수 있고, 쉬프팅된 차분 데이터에 폴딩 연산을 수행하면, 도 6e 에 도시된 바와 같이 모두 양수로 변환된 데이터를 얻을 수 있다.Thereafter, shifting the difference data of the quantized key data to a mode value of about 7 yields the difference data of the key data shown in FIG. 6D, and performing a folding operation on the shifted difference data, as shown in FIG. 6E. As can be seen, all of the data converted to positive numbers can be obtained.

폴딩된 데이터에 DND 연산을 수행한 데이터를 도 6f 내지 12h 에 도시하였다.Data performing a DND operation on the folded data is illustrated in FIGS. 6F to 12H.

폴딩된 데이터에 대해서 먼저 DND 연산 중 디바이드 연산을 수행한 후의 차분 데이터를 도 6f 에 도시하였다. 도시된 바와 같이 양수측의 범위는 0~28 이고, 음수측의 범위는 0 ~ -29 이므로 음수측의 범위가 더 크다. 따라서, 도 9f 에 도시된 데이터에 대해서 디바이드-업 연산이 수행되고, 디바이드-업 연산의 결과를 도 6g 에 도시하였다.The difference data after performing the divide operation among the DND operations with respect to the folded data is shown in FIG. 6F. As shown, the positive side is in the range of 0 to 28, and the negative side is in the range of 0 to -29, so the negative side is larger. Therefore, the divide-up operation is performed on the data shown in FIG. 9F, and the result of the divide-up operation is shown in FIG. 6G.

디바이드-업 연산에 의해서 키 데이터의 음수측 범위는 양수측 범위에 비해서 상당히 줄어들고, DND의 다음 차수에서 디바이드-업 연산된 차분 데이터에 대해서 디바이드-다운 연산이 수행된다. 도 6h 는 도 6g 의 차분 데이터에 대해서 디바이드-다운 연산을 수행한 결과를 도시한 도면이다. 한편, 디바이드-다운 연산된 키 데이터에 대해서 쉬프트-업 연산을 수행한 결과를 도 6i 에 도시하였다.By the divide-up operation, the negative side range of the key data is considerably reduced compared to the positive side range, and the divide-down operation is performed on the differential data which is divide-up operation in the next order of DND. FIG. 6H illustrates a result of performing a divide-down operation on the difference data of FIG. 6G. Meanwhile, the result of performing the shift-up operation on the divide-down operation key data is shown in FIG. 6I.

상술한 도 6a 내지 도 6g 까지는 키 데이터 및 차분 데이터의 범위가 점점 줄어드는 것을 알 수 있다. 그러나, 쉬프트-업 연산 결과를 도시한 도 9i 와 도 9h를 비교하여 보면, 쉬프트-업 연산 수행후의 부호화될 차분 데이터의 범위가 더 증가했음을 알 수 있다. 따라서, 최종적으로 부호화할 키 데이터의 차분 데이터는 디바이드-다운 연산이 수행된 차분 데이터인 것을 도 9j를 통해서 알 수 있다.6A to 6G described above, it can be seen that the range of the key data and the difference data is gradually reduced. However, comparing FIG. 9I and FIG. 9H showing the result of the shift-up operation, it can be seen that the range of differential data to be encoded after the shift-up operation is further increased. Accordingly, it can be seen from FIG. 9J that the difference data of the key data to be finally encoded is the difference data on which the divide-down operation is performed.

한편, 헤더 부호화기(500)에서 부호화되어 키 헤더에 저장되는 정보들을 살펴본다.On the other hand, it looks at the information encoded in the header encoder 500 and stored in the key header.

부호화될 키 데이터들이 입력되면, 헤더 부호화기(500)는 입력 키 데이터들로부터 키 데이터의 자리수 및 부호화될 전체 키의 개수를 입력받아 부호화한다. 그 후, 헤더 부호화기(500)는 선형 키 부호화기(310)로부터 선형 키 부호화된 선형 키 영역이 있는지를 나타내는 정보 및 선형 키 영역의 키 데이터의 개수를 입력받고, 실수 변환부(315)로부터 실수 변환된 선형 키 영역의 시작 키 데이터 및 종료 키 데이터를 입력받는다.When the key data to be encoded is input, the header encoder 500 receives and encodes the number of digits of the key data and the total number of keys to be encoded from the input key data. Thereafter, the header encoder 500 receives information indicating whether there is a linear key coded linear key region and the number of key data of the linear key region from the linear key encoder 310, and converts the real number from the real transform unit 315. Start key data and end key data of the linear key region are received.

아울러, 실수 변환부(315)가 양자화 오차 최소화부(325)로부터 양자화 오차가 최소화되는 최대값 및 최소값을 입력받아 실수 변환한 경우에는, 변환된 최대값 및 최소값은 역 양자화에 이용될 수 있도록 실수 변환부(315)로부터 헤더 부호화기(500)로 입력되어 키 헤더에 포함된다. 또한, 양자화에 이용된 양자화 비트 사이즈도 헤더 부호화기(500)로 입력되어 키 헤더에 포함된다.In addition, when the real number conversion unit 315 receives a maximum value and a minimum value for minimizing the quantization error from the quantization error minimization unit 325 and performs real conversion, the converted maximum value and the minimum value may be used for inverse quantization. It is input to the header encoder 500 from the converter 315 and included in the key header. In addition, the quantization bit size used for quantization is also input to the header encoder 500 and included in the key header.

또한, 헤더 부호화기(500)는 DPCM 처리부(330)로부터 DPCM 연산 수행 차수 및 각 차수에서의 인트라 키(intra Key) 데이터를 입력받고, 쉬프팅부(340)로부터 쉬프팅연산에 이용된 모드값을 입력받으며, DND 처리부(360)로부터 쉬프트-업 연산이 수행되었는지 여부, 산포도가 최소가 되는 DND 차수 및 각 DND 차수에서의 최대값 및 최소값을 입력받는다. 마지막으로, 헤더 부호화기(500)는 엔트로피 부호화기(370)로부터 부호화에 이용된 부호화 비트수를 입력받아 키 헤더로 부호화한다.In addition, the header encoder 500 receives a DPCM operation execution order and intra key data in each order from the DPCM processor 330, and receives a mode value used for the shifting operation from the shifting unit 340. The DND processor 360 receives input of whether a shift-up operation is performed, a DND degree at which a scatter diagram is minimum, and a maximum value and a minimum value at each DND degree. Finally, the header encoder 500 receives the number of encoded bits used for encoding from the entropy encoder 370 and encodes the key header.

이하, 첨부된 도 7a 내지 도 11c를 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 값 데이터 부호화기 및 부호화 방법을 설명한다.Hereinafter, a key value data encoder and an encoding method of a coordinate interpolator according to a preferred embodiment of the present invention will be described with reference to FIGS. 7A to 11C.

도 7a 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 값 데이터 부호화기의 구성을 도시하는 블록도이고, 도 7b 는 본 발명의 바람직한 실시예에 따른 부호화 방법을 설명하는 흐름도이다.FIG. 7A is a block diagram showing a configuration of a key value data encoder of a coordinate interpolator according to a preferred embodiment of the present invention, and FIG. 7B is a flowchart illustrating an encoding method according to a preferred embodiment of the present invention.

도 7a를 참조하면, 본 발명의 키 값 데이터 부호화기(700)는 입력된 좌표 인터폴레이터 키 값 데이터의 각 정점의 각 성분 데이터를 소정의 양자화 비트수로 양자화하는 양자화기(710), 양자화된 각 정점의 성분 데이터에 대해서 소정의 DPCM 연산을 수행하는 DPCM 처리부(720), 차분 데이터를 심볼 및 심볼의 위치를 나타내는 인덱스로 변환하는 사전 부호화기(750), 및 입력된 차분 데이터의 심볼 및 인덱스를 엔트로피 부호화하는 엔트로피 부호화기(760)를 포함한다.Referring to FIG. 7A, a key value data encoder 700 of the present invention includes a quantizer 710 for quantizing each component data of each vertex of input coordinate interpolator key value data to a predetermined number of quantization bits, and a quantized angle. DPCM processing unit 720 that performs a predetermined DPCM operation on the component data of the vertex, a pre-encoder 750 for converting the difference data into an index indicating a symbol and a symbol position, and entropy of a symbol and an index of the input difference data. An entropy encoder 760 is encoded.

이하, 도 7b를 참조하여 본 발명의 부호화 방법을 설명한다.Hereinafter, the encoding method of the present invention will be described with reference to FIG. 7B.

좌표 인터폴레이터의 키 값 데이터는 N ×M 크기의 매트릭스 형태로 양자화기(710)로 입력된다(S9000). 아래의 표 3 에 입력된 좌표 인터폴레이터의 키 값 데이터의 일예를 기재하였다.The key value data of the coordinate interpolator is input to the quantizer 710 in the form of a matrix of size N × M (S9000). An example of key value data of a coordinate interpolator input in Table 3 below is described.

1One 22 ... j... j MM 1One x(1,1),y(1,1) z(1,1)x (1,1), y (1,1) z (1,1) x(1,2),y(1,2) z(1,2)x (1,2), y (1,2) z (1,2) x(1,M),y(1,M) z(1,M)x (1, M), y (1, M) z (1, M) 22 x(2,1),y(2,1) z(2,1)x (2,1), y (2,1) z (2,1) x(2,2),y(2,2) z(2,2)x (2,2), y (2,2) z (2,2) x(2,M),y(2,M) z(2,M)x (2, M), y (2, M) z (2, M) ...i... i x(i,j),y(i,j) z(i,j)x (i, j), y (i, j) z (i, j) NN x(N,1),y(N,1) z(N,1)x (N, 1), y (N, 1) z (N, 1) x(N,2),y(N,2) z(N,2)x (N, 2), y (N, 2) z (N, 2) x(N,M),y(N,M) z(N,M)x (N, M), y (N, M) z (N, M)

상기 표 3 에서 N 은 키 데이터의 개수(키 프레임의 개수)를 나타내며, M 은 각 키 프레임에서 정점의 개수를 나타낸다.In Table 3, N represents the number of key data (the number of key frames), and M represents the number of vertices in each key frame.

본 발명의 키 값 데이터 부호화기(700)는 좌표 인터폴레이터의 키 값 데이터를 부호화하기 위한 두가지 모드로 동작하는데, 하나는 정점(Vertex) 모드이고, 다른 하나는 전치(Transpose) 모드이다. 상기 표 3 에는 정점 모드에서 양자화기(710)가 양자화할 키 값 데이터의 구조를 기재하였다. 본 발명의 키 값 데이터 부호화기(700)는 전치 모드에서 상기 표 3 에 기재된 입력된 키 값 데이터를 양자화하기에 앞서 M ×N 행렬로 변환한다. 전치 변환된 데이터 행렬은 키 값 데이터의 복호화 과정에서 역 양자화된 후, 복호화된 키 값 데이터를 다시 N ×M 행렬로 전환하여 입력된 키 값 데이터와 동일한 키 값 데이터가 복원된다.The key value data encoder 700 of the present invention operates in two modes for encoding key value data of a coordinate interpolator, one of which is a vertex mode and the other of a transpose mode. Table 3 above describes the structure of key value data to be quantized by the quantizer 710 in the vertex mode. The key value data encoder 700 of the present invention converts the input key value data described in Table 3 above into an M × N matrix in the transpose mode. After the pre-transformed data matrix is inversely quantized in the process of decrypting the key value data, the decoded key value data is converted back to an N × M matrix to restore the same key value data as the input key value data.

도 7b를 참조하면, 양자화기(710)는 외부로부터 입력된 키 값 데이터의 부호화 모드가 전치 모드인지를 조사하고(S9100), 전치 모드라면 입력된 N ×M 의 키 값 데이터 행렬을 M ×N 행렬로 변환한다(S9200).Referring to FIG. 7B, the quantizer 710 checks whether the encoding mode of the key value data input from the outside is the pre-mode (S9100). If the pre-mode is selected, the quantizer 710 checks the input N × M key value data matrix M × N. Convert to a matrix (S9200).

그 후, 양자화기(710)는 소정의 양자화 비트수로 입력된 또는 변환된 키 값 데이터 행렬의 각 성분의 데이터를 양자화하여, 양자화된 각 성분의 키 값 데이터를 DPCM 처리부(720)로 출력하고, 양자화에 이용된 입력 데이터의 각 성분의 최소값들 및 최대 범위는 10진수 체계의 실수로 변환하여 키 값 헤더 부호화기로 출력한다(S9300).Thereafter, the quantizer 710 quantizes the data of each component of the input or transformed key value data matrix with a predetermined number of quantization bits, and outputs the key value data of each quantized component to the DPCM processor 720. The minimum values and the maximum range of each component of the input data used for quantization are converted into real numbers of the decimal system and output to the key value header encoder (S9300).

DPCM 처리부(720)는 입력된 양자화된 키 값 데이터에 대해서 시간 DPCM 연산, 공간 DPCM 연산 및 시공간 DPCM 연산을 수행하고, 각각의 DPCM 연산 결과에 대해서 순환 양자화를 수행하여, 순환 양자화된 각 차분 데이터 중에서 가장 엔트로피가 작은 차분 데이터를 사전 부호화기(750)로 출력한다(S9400).The DPCM processor 720 performs a time DPCM operation, a spatial DPCM operation, and a space-time DPCM operation on the input quantized key value data, and performs cyclic quantization on the respective DPCM operation results, thereby selecting each of the cyclic quantized difference data. The difference data having the smallest entropy is output to the pre-encoder 750 (S9400).

사전 부호화기(750)는 입력된 차분 데이터에 대응되는 사전 심볼(Si,j) 및 위치 인덱스(Ii,j)를 생성하여 출력한다(S9600). 구체적으로, 사전 부호화기(750)는 입력된 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 위치 인덱스를 생성하고, 차분 데이터를 차분 데이터에 존재하는 값을 나타내는 심볼 또는 심볼 플래그, 및 심볼들의 위치를 나타내는 인덱스로 생성하여 엔트로피 부호호기로 출력한다.The precoder 750 generates and outputs a dictionary symbol S i, j and a position index I i, j corresponding to the input difference data (S9600). Specifically, the pre-encoder 750 generates a symbol and a position index indicating a DPCM operation mode performed on the input differential data, and generates a symbol or symbol flag indicating a value present in the differential data, and positions of the symbols. The index is created and output to the entropy coder.

엔트로피 부호화기(760)는 입력된 키 값 데이터 성분의 심볼 및 인덱스를 엔트로피 부호화하여 비트스트림을 생성한다(S9800).The entropy encoder 760 generates a bitstream by entropy encoding a symbol and an index of the input key value data component (S9800).

이하, 전술한 각 단계를 도 8a 내지 도 11c를 더 참조하여 상세히 설명한다.Hereinafter, each step described above will be described in detail with reference to FIGS. 8A to 11C.

도 9a를 참조하면, 양자화기(710)는 입력된 각 성분 데이터의 최대값 및 최소값을 선정한다(S9320).Referring to FIG. 9A, the quantizer 710 selects a maximum value and a minimum value of each component data input (S9320).

양자화기(710)는 선정된 각 성분의 데이터의 최대값 및 최소값을 이용하여 각 성분 데이터의 범위를 계산하고, 모든 성분 데이터의 범위 중 최대 범위를 결정한다(S9340).The quantizer 710 calculates a range of each component data by using the maximum and minimum values of the selected data of each component, and determines the maximum range of the ranges of all component data (S9340).

양자화기(710)는 각 성분의 최소값 및 결정된 모든 성분의 최대 범위를 이용하여 다음의 수학식 14 에 따라서 각 성분의 키 값 데이터를 양자화한다(S9360).The quantizer 710 quantizes the key value data of each component according to the following Equation 14 using the minimum value of each component and the maximum range of all determined components (S9360).

수학식 14 에서 i 는 키 데이터를 나타내고, j 는 정점을 나타내며, nKVQBit 는 양자화 비트 사이즈를 나타낸다. 또한, fMin_X, fMin_Y, 및 fMin_Z 는 각 성분 데이터의 최소값을 나타내고, fMax는 각 성분 데이터의 범위 중 최대 범위를 나타낸다.In Equation 14, i denotes key data, j denotes a vertex, and nKVQBit denotes a quantization bit size. In addition, fMin_X, fMin_Y, and fMin_Z represent the minimum value of each component data, and fMax represents the maximum range of the range of each component data.

양자화기(710)는 양자화된 각 성분의 키 값 데이터를 DPCM 처리부(720)로 출력하고, 전술한 각 성분의 최소값들(fMin_X, fMin_Y, 및 fMin_Z) 및 최대 범위(fMax)를 상술한 수학식 4 및 표 2 에 따라서 10진수 체계의 실수로 변환하여 키 값 헤더 부호화기(500)로 출력한다.The quantizer 710 outputs key value data of each quantized component to the DPCM processor 720, and describes the above-described minimum values fMin_X, fMin_Y, and fMin_Z and the maximum range fMax of each component. According to 4 and Table 2, the result is converted to a real number in the decimal system and output to the key value header encoder 500.

이하, 도 8a 및 도 9b를 참조하여, 본 발명의 키 값 데이터 부호화기의 DPCM 처리부 및 DPCM 연산 방법을 설명한다.Hereinafter, the DPCM processing unit and the DPCM calculation method of the key value data encoder of the present invention will be described with reference to FIGS. 8A and 9B.

본 발명의 키 값 데이터 부호화기의 DPCM 처리부(720)의 구성을 도시한 블록도인 도 8a을 참조하면, 본 발명의 DPCM 처리부(720)는 양자화기(710)로부터 입력된 각 성분 데이터에 대해서 시간 DPCM 연산, 공간 DPCM 연산 및 시공간 DPCM 연산을 수행하는 DPCM 연산부(730), DPCM 연산부(730)로부터 입력된 차분 데이터의 범위를 감소시키는 순환 양자화기(740), 순환 양자화기(740)로부터 입력된 차분 데이터들 중 하나를 선택하여 출력하는 DPCM 모드 선택부(745)를 포함한다. 또한, DPCM 연산부(730)는 입력된 양자화된 각 성분 데이터에 대해서 시간 DPCM 연산을수행하는 시간 DPCM 연산부(731), 양자화된 각 성분의 데이터에 대해서 공간 DPCM 연산을 수행하는 공간 DPCM 연산부(733), 및 양자화된 각 성분 데이터에 대해서 시간 및 공간 DPCM 연산을 수행하는 시공간 DPCM 연산부(735)를 포함한다.Referring to FIG. 8A, which is a block diagram showing the configuration of the DPCM processing unit 720 of the key value data encoder of the present invention, the DPCM processing unit 720 of the present invention performs time for each component data input from the quantizer 710. DPCM operation unit 730 for performing DPCM operation, spatial DPCM operation and space-time DPCM operation, input from cyclic quantizer 740 and cyclic quantizer 740 to reduce the range of differential data input from DPCM calculation unit 730 And a DPCM mode selector 745 for selecting and outputting one of the difference data. In addition, the DPCM calculating unit 730 performs a time DPCM calculating unit 731 for performing a time DPCM operation on the inputted quantized component data, and a spatial DPCM calculating unit 733 performing a spatial DPCM operation on the data of each quantized component. And a space-time DPCM calculation unit 735 which performs a temporal and spatial DPCM operation on each quantized component data.

본 발명의 키 값 데이터의 DPCM 연산 방법을 설명하는 상세 흐름도인 도 9b를 참조하면, 양자화기(710)로부터 입력된 양자화된 각 성분의 데이터는 시간 DPCM 연산부(731), 공간 DPCM 연산부(733), 및 시공간 DPCM 연산부(735)로 각각 입력되어 DPCM 연산이 수행된다(S9420).Referring to FIG. 9B, which is a detailed flowchart illustrating a DPCM calculation method of key value data according to the present invention, the data of each quantized component input from the quantizer 710 includes a time DPCM calculation unit 731 and a spatial DPCM calculation unit 733. , And are input to the space-time DPCM calculating unit 735, respectively, to perform DPCM operation (S9420).

시간 DPCM 연산부(731)는 현재 키 프레임의 각 정점의 각 성분 데이터와 이전 키 프레임의 각 정점의 각 성분 데이터간의 차를 계산한다. 시간 DPCM 연산은 다음의 수학식 15 로 표현된다.The time DPCM calculating unit 731 calculates a difference between each component data of each vertex of the current key frame and each component data of each vertex of the previous key frame. The time DPCM operation is represented by the following equation (15).

상기 수학식 15 에서 i 는 키 데이터를 j 는 정점의 인덱스를 각각 나타낸다.In Equation 15, i represents key data and j represents an index of a vertex.

한편, 공간 DPCM 연산부(733)는 동일한 키 프레임의 각 정점간의 차를 계산한다. 구체적으로, 공간 DPCM 연산부(733)는 공간 DPCM 연산을 수행할 현재 정점 이전에 공간 DPCM 연산이 수행된 정점들에 대해서, 다음의 수학식 16 을 이용하여 엔트로피를 계산한다.On the other hand, the spatial DPCM calculating unit 733 calculates the difference between each vertex of the same key frame. In detail, the spatial DPCM calculator 733 calculates entropy for vertices in which the spatial DPCM operation is performed before the current vertex to perform the spatial DPCM operation, using Equation 16 below.

상기 수학식 16 에서 Pi는 정점에서 심볼이 발생할 확률로서 Fi/N 이며, 여기서 Fi는 정점에서 그 심볼이 발생하는 회수이고, N 은 키 데이터의 개수이다.In Equation 16, P i is F i / N as a probability of generating a symbol at a vertex, where F i is the number of times the symbol occurs at the vertex, and N is the number of key data.

공간 DPCM 연산부(733)는 정점들 중 엔트로피가 가장 낮은 정점을 기준 정점으로 결정하고, 현재 공간 DPCM 연산이 수행될 정점 및 기준 정점의 성분 데이터간의 차분 데이터를 계산한다. 공간 DPCM 연산은 다음의 수학식 17 로 표현된다.The spatial DPCM calculator 733 determines a vertex having the lowest entropy among the vertices as the reference vertex, and calculates difference data between the vertex to which the current spatial DPCM operation is to be performed and the component data of the reference vertex. The spatial DPCM operation is represented by the following equation (17).

한편, 시공간 DPCM 연산부(735)는 현재 키 프레임의 각 정점에 대해서 공간 DPCM 연산을 수행하고, 현재 키 프레임의 각 정점에 대응되는 이전 키 프레임의 각 정점에 대해서 현재 키 프레임의 각 정점의 기준 정점에 대응되는 정점을 기준 정점으로 공간 DPCM 연산을 수행한 후, 현재 키 프레임의 정점에 대응되는 차분 데이터와 이전 프레임의 정점에 대응되는 차분 데이터간의 차를 계산한다. 즉, 공간 DPCM 연산된 결과에 대해서 시간 DPCM 연산을 수행한다. 시공간 DPCM 연산은 다음의 수학식 18 로 표현된다.Meanwhile, the space-time DPCM calculating unit 735 performs a spatial DPCM operation on each vertex of the current key frame, and a reference vertex of each vertex of the current key frame with respect to each vertex of the previous key frame corresponding to each vertex of the current key frame. After performing a spatial DPCM operation based on the vertex corresponding to the vertex, a difference between the difference data corresponding to the vertex of the current key frame and the difference data corresponding to the vertex of the previous frame is calculated. That is, a time DPCM operation is performed on the result of the spatial DPCM operation. The space-time DPCM operation is represented by the following equation (18).

다만, 공간 DPCM 연산 및 시공간 DPCM 연산 중에또는가 양자화된 최소값보다 작다면, 이 값들 대신에 양자화된 최소값이 DPCM 연산에 이용된다. 또한, 공간 DPCM 연산 및 시공간 DPCM 연산 중에또는가 양자화된 최대값보다 크다면, 이 값들 대신에 양자화된 최대값이 DPCM 연산에 이용된다.However, during the space DPCM operation and the space-time DPCM operation or If is less than the quantized minimum value, the quantized minimum value is used for the DPCM operation instead of these values. In addition, during the space DPCM operation and the space-time DPCM operation or If is greater than the quantized maximum value, the quantized maximum value is used for the DPCM operation instead of these values.

DPCM 연산부(730)는 계산된 차분 데이터들을 순환 양자화기(740)로 출력하고, 순환 양자화기(740)는 시간 DPCM 연산된 차분 데이터, 공간 DPCM 연산된 차분 데이터, 및 시공간 DPCM 연산된 차분 데이터 각각에 대해서 순환 양자화를 수행하고, 순환 양자화된 각 차분 데이터를 DPCM 모드 선택부(745)로 출력한다(S9440).The DPCM calculator 730 outputs the calculated difference data to the cyclic quantizer 740, and the cyclic quantizer 740 is a time DPCM calculated difference data, a spatial DPCM calculated difference data, and a space-time DPCM calculated difference data, respectively. Cyclic quantization is performed on the output signal, and each cyclic quantized difference data is output to the DPCM mode selection unit 745 (S9440).

도 10a 는 양자화기(710)의 출력의 일예를 도시하고, 도 10b 는 도 10a 에 도시된 양자화된 데이터에 DPCM 연산이 수행된 결과를 도시한다. 도 10b 에 도시된 바와 같이, 양자화된 값에 DPCM 연산이 수행되면 부호화될 데이터의 범위는 2배까지 증가할 수 있다. 순환 양자화의 목적은 양자화된 값의 데이터 범위를 유지하면서 DPCM 연산을 수행하는 것이다.FIG. 10A shows an example of the output of the quantizer 710, and FIG. 10B shows the result of the DPCM operation being performed on the quantized data shown in FIG. 10A. As shown in FIG. 10B, when a DPCM operation is performed on a quantized value, the range of data to be encoded may increase by twice. The purpose of cyclic quantization is to perform DPCM operations while maintaining the data range of quantized values.

이를 위해서, 순환 양자화는 DPCM 연산된 차분 데이터의 최대값이 DPCM 연산된 최소값과 순환적으로 연결되어 있다고 가정한다. 따라서, 두 개의 연속된 양자화된 차분 데이터간의 선형 DPCM 결과가 DPCM 연산된 차분 데이터의 최대값의 절반보다 크면 차분 데이터의 최대 범위를 감산하여 크기가 더 작은 값으로 나타내고, 두 개의 연속된 양자화된 차분 데이터간의 선형 DPCM 결과가 DPCM 연산된 차분데이터의 최소값의 절반보다 작으면 차분 데이터의 최대 범위를 합산하여 크기가 더 작은 값으로 나타낸다.For this purpose, cyclic quantization assumes that the maximum value of the DPCM calculated difference data is cyclically connected with the minimum value calculated by the DPCM. Therefore, if the linear DPCM result between two consecutive quantized differential data is greater than half of the maximum value of the DPCM-calculated differential data, the maximum range of the differential data is subtracted and represented as a smaller value, and the two consecutive quantized differential differences are obtained. If the linear DPCM result between the data is less than half of the minimum value of the difference data calculated by DPCM, the maximum range of the difference data is summed and represented as a smaller value.

순환 양자화기(740)의 순환 양자화 연산은 다음의 수학식 19 로 표현된다.The cyclic quantization operation of the cyclic quantizer 740 is represented by the following equation (19).

상기 수학식 19 에서 nQMax 는 DPCM 연산된 차분 데이터 중 최대값을 나타내고, nQMin 은 DPCM 연산된 차분 데이터 중 최소값을 나타낸다. 도 10b 에 도시된 DPCM 연산된 데이터에 대해서 순환 양자화를 수행한 결과가 도 10c 에 도시되어 있다.In Equation 19, nQMax represents the maximum value of the DPCM-calculated difference data, and nQMin represents the minimum value of the DPCM-calculated difference data. The result of performing cyclic quantization on the DPCM computed data shown in FIG. 10B is shown in FIG. 10C.

순환 양자화기(740)는 순환 양자화된 각 차분 데이터를 DPCM 모드 선택부(745)로 출력한다.The cyclic quantizer 740 outputs each cyclic quantized difference data to the DPCM mode selector 745.

DPCM 모드 선택부(745)는 각 정점에 대해서 입력된 시간, 공간 및 시공간 DPCM 연산된 차분 데이터의 엔트로피를 상술한 수학식 16 에 따라서 계산한다(S9460).The DPCM mode selection unit 745 calculates the entropy of the temporal, spatial and spatiotemporal DPCM-calculated difference data for each vertex according to Equation 16 described above (S9460).

그 후, DPCM 모드 선택부(745)는 계산된 엔트로피가 가장 적은 DPCM 연산 결과를 각 정점의 DPCM 연산 모드로서 선택하고, 선택된 DPCM 모드에 따른 차분 데이터 및 DPCM 모드 정보를 사전 부호화기(750)로 출력한다(S9480).Thereafter, the DPCM mode selection unit 745 selects a DPCM calculation result having the smallest entropy as the DPCM operation mode of each vertex, and outputs differential data and DPCM mode information according to the selected DPCM mode to the pre-encoder 750. (S9480).

이하, 도 8b 및 도 9c를 참조하여 본 발명의 사전 부호화기(750) 및 사전 부호화 방법을 설명한다.Hereinafter, the precoder 750 and the precoding method of the present invention will be described with reference to FIGS. 8B and 9C.

본 발명의 사전 부호화기(750)의 구성을 도시한 블록도인 도 8b를 참조하면, 사전 부호화기(750)는 입력된 각 정점의 각 성분 데이터에 수행된 DPCM 연산 모드를 부호화하는 DPCM 모드 부호화기(752), 입력된 각 정점의 각 성분의 차분 데이터 값을 나타내는 심볼과 심볼의 위치를 나타내는 인덱스를 생성하는 발생 모드 부호화기(756), 입력된 각 정점의 각 성분의 차분 데이터의 심볼에 대응되는 설정 플래그 및 심볼의 위치를 나타내는 인덱스를 생성하는 증가 모드 부호화기(758), 및 입력된 각 정점의 각 성분의 차분 데이터를 표현하기 위한 심볼 테이블의 크기 및 심볼 플래그 테이블의 크기를 계산하여 DPCM 모드 부호화기(752)로부터 입력된 차분 데이터를 발생 모드 부호화기(756) 또는 증가 모드 부호화기(758)로 출력하는 테이블 사이즈 계산부(754)를 포함한다.Referring to Fig. 8B, which is a block diagram showing the configuration of the pre-encoder 750 of the present invention, the pre-encoder 750 encodes a DPCM mode encoder 752 for encoding a DPCM operation mode performed on each component data of each input vertex. ), A generation mode encoder 756 for generating a symbol representing a difference data value of each component of each input vertex and an index indicating a position of the symbol, and a setting flag corresponding to a symbol of difference data of each component of each input vertex. And an incremental mode encoder 758 for generating an index indicating a symbol position, and a DPCM mode encoder 752 by calculating a size of a symbol table and a size of a symbol flag table for representing difference data of each component of each input vertex. And a table size calculator 754 for outputting the difference data inputted from the &lt; RTI ID = 0.0 &gt;) to the generation mode encoder 756 or the incremental mode encoder 758.

먼저, 사전 부호화기(750)는 DPCM 모드 부호화기(752)에서, 입력된 각 정점의 차분 데이터의 양자화 선택 플래그(Quantization Selection Value)의 값이 1 인지를 조사하여, 플래그 값이 1 이면, 후술할 과정을 수행한다. 그러나, 플래그 값이 0 이라면, 이것은 해당 정점의 모든 키 프레임에서의 양자화된 값이 동일하는 것을 의미하므로, 사전 부호화 과정을 생략하고 양자화된 값(QMin)을 키 값 헤더로서 부호화한다.First, the pre-encoder 750 checks whether the DPCM mode encoder 752 checks whether the value of the quantization selection flag of the difference data of each vertex is 1, and if the flag value is 1, the process will be described later. Do this. However, if the flag value is 0, this means that the quantized values in all key frames of the vertex are the same, so that the pre-coding process is omitted and the quantized value QMin is encoded as the key value header.

본 발명의 사전 부호화 방법을 설명하는 도 9c를 참조하면, DPCM 처리부(720)에서 생성된 각 정점의 각 성분의 차분 데이터는 먼저 DPCM 모드 부호화기(752)로 입력되고, DPCM 모드 부호화기(752)는 입력된 각 정점의 각 성분 데이터의 DPCM 모드를 나타내는 심볼 및 심볼의 위치를 나타내는 인덱스를 생성한다(S9620).Referring to FIG. 9C illustrating a precoding method of the present invention, difference data of each component of each vertex generated by the DPCM processing unit 720 is first input to the DPCM mode encoder 752, and the DPCM mode encoder 752 In operation S9620, a symbol representing a DPCM mode of each component data of each input vertex and an index indicating a symbol position are generated.

도 11a 는 본 발명의 DPCM 모드 부호화기(752)가 DPCM 모드를 부호화하는 방법을 예시하는 도면이다.11A is a diagram illustrating how the DPCM mode encoder 752 of the present invention encodes a DPCM mode.

도 11a를 참조하면, DPCM 모드 부호화기(752)는 각 정점에 대해서 각 성분의 DPCM 모드의 조합과 이에 대응되는 심볼을 나타내는 테이블을 미리 준비한다. 시간 DPCM 연산을 T, 공간 DPCM 연산을 S, 시공간 DPCM 연산을 T+S 라고 표시할 때, 각 정점의 DPCM 모드의 조합은 아래의 표 4 에 기재된 바와 같다.Referring to FIG. 11A, the DPCM mode encoder 752 prepares in advance a table representing a combination of DPCM modes of each component and a symbol corresponding thereto for each vertex. When the time DPCM operation is denoted by T, the space DPCM operation is denoted by S, and the space time DPCM operation is denoted by T + S, the combination of DPCM modes of each vertex is as shown in Table 4 below.

심볼symbol DPCM 모드DPCM mode 심볼symbol DPCM 모드DPCM mode 심볼symbol DPCM 모드DPCM mode 00 (T, T, T)(T, T, T) 99 (S, T, T)(S, T, T) 1818 (T+S, T, T)(T + S, T, T) 1One (T, T, S)(T, T, S) 1010 (S, T, S)(S, T, S) 1919 (T+S, T, S)(T + S, T, S) 22 (T, T, T+S)(T, T, T + S) 1111 (S, T, T+S)(S, T, T + S) 2020 (T+S, T, T+S)(T + S, T, T + S) 33 (T, S, T)(T, S, T) 1212 (S, S, T)(S, S, T) 2121 (T+S, S, T)(T + S, S, T) 44 (T, S, S)(T, S, S) 1313 (S, S, S)(S, S, S) 2222 (T+S, S, S)(T + S, S, S) 55 (T, S, T+S)(T, S, T + S) 1414 (S, S, T+S)(S, S, T + S) 2323 (T+S, S, T+S)(T + S, S, T + S) 66 (T, T+S, T)(T, T + S, T) 1515 (S, T+S, T)(S, T + S, T) 2424 (T+S, T+S, T)(T + S, T + S, T) 77 (T, T+S, S)(T, T + S, S) 1616 (S, T+S, S)(S, T + S, S) 2525 (T+S, T+S, S)(T + S, T + S, S) 88 (T, T+S, T+S)(T, T + S, T + S) 1717 (S, T+S, T+S)(S, T + S, T + S) 2626 (T+S, T+S, T+S)(T + S, T + S, T + S)

각 정점은 x, y, 및 z 의 세 가지 성분을 포함하므로, DPCM 모드의 조합은 27 가지로 고정된다.Since each vertex contains three components, x, y, and z, the combination of DPCM modes is fixed at 27.

한편, 도 11a 에 도시된 바와 같이, 입력된 각 정점의 차분 데이터는 각 성분의 DPCM 연산 모드의 조합에 따라서 상기 표 4 에 기재한 어느 하나의 심볼에 대응된다. DPCM 모드 부호화기(752)는 입력된 각 정점의 DPCM 모드를 표 4 에 기재된 심볼에 대응시키고, 해당 심볼이 차분 데이터에 존재함을 나타내도록 플래그를 설정한다.On the other hand, as shown in Fig. 11A, the input difference data of each vertex corresponds to any one of the symbols shown in Table 4 according to the combination of DPCM operation modes of each component. The DPCM mode encoder 752 maps the DPCM mode of each input vertex to the symbol described in Table 4, and sets a flag to indicate that the symbol exists in the differential data.

DPCM 모드 부호화기(752)는 입력된 각 정점의 DPCM 모드 조합에 대응되는 심볼들을 일렬로 정렬하고, 크기가 작은 심볼부터 인덱스를 생성한다.The DPCM mode encoder 752 arranges the symbols corresponding to the DPCM mode combinations of the input vertices in a line, and generates an index from the small symbols.

입력된 차분 데이터에 대응되는 DPCM 모드의 심볼열은 도 11a 에 도시된 바와 같이, (4, 1, 5, 1, 4, 5) 이다. 이 때, 가장 크기가 작은 심볼은 1 (T, T, S) 이므로, DPCM 모드 부호화기(752)는 데이터 열에서 심볼 1 이 있는 위치를 나타내는 인덱스를 생성하는데, 심볼 1 이 있는 위치는 1 로 설정한다. 따라서 인덱스는 (0, 1, 0, 1, 0, 0) 이 된다.The symbol string of the DPCM mode corresponding to the input difference data is (4, 1, 5, 1, 4, 5), as shown in FIG. 11A. At this time, since the smallest symbol is 1 (T, T, S), the DPCM mode encoder 752 generates an index indicating the position of symbol 1 in the data string, and the position of symbol 1 is set to 1. do. Thus, the index is (0, 1, 0, 1, 0, 0).

그 후, DPCM 모드 부호화기(752)는 심볼열 중에서 1 다음으로 크기가 작은 심볼 4 (T, S, S) 가 있는 위치를 나타내는 인덱스를 생성하는데, 심볼 4 가 있는 위치는 1 로 설정한다. 다만, 이 경우에 심볼 1 이 있는 위치는 고려하지 않는다. 따라서, 생성된 인덱스는 (1, 0, 1, 0)이 된다. 그 후, DPCM 모드 부호화기(752)는 나머지 심볼 5 (T, S, T+S) 가 있는 위치를 나타내는 인덱스를 생성한다. 따라서, 심볼 5를 나타내는 인덱스는 (1,1) 이 된다.Thereafter, the DPCM mode encoder 752 generates an index indicating the position of the next smaller symbol 4 (T, S, S) in the symbol string, and sets the position of the symbol 4 to 1. In this case, however, the position of symbol 1 is not considered. Thus, the generated index is (1, 0, 1, 0). The DPCM mode encoder 752 then generates an index indicating the position where the remaining symbol 5 (T, S, T + S) is located. Therefore, the index representing symbol 5 becomes (1,1).

DPCM 모드 부호화기(752)는 설정된 플래그 및 인덱스를 테이블 사이즈 계산부(754)로 출력한다.The DPCM mode encoder 752 outputs the set flag and the index to the table size calculator 754.

도 8b 및 도 9c를 다시 참조하면, 테이블 사이즈 계산부(754)는 입력된 차분 데이터를 발생 모드 부호화할 때 이용되는 심볼 테이블의 사이즈(A), 및 입력된 차분 데이터를 증가 모드 부호화할 때 이용되는 미리 설정된 심볼 테이블의 각 심볼에 대응되는 심볼 플래그의 크기를 계산한다(S9640).Referring back to FIGS. 8B and 9C, the table size calculation unit 754 uses the size A of the symbol table used when generating the mode difference encoding the input difference data, and the incremental mode encoding the input difference data. The size of the symbol flag corresponding to each symbol of the preset symbol table is calculated (S9640).

테이블 사이즈 계산부(754)는 발생 모드 부호화기(756)에 이용될 심볼 테이블의 크기(A=S*(AQP+1))와 증가 부호화 모드 부호화기에 이용될 심볼 테이블에 대응되는 심볼 플래그의 크기(B=2(AQP+1)-1)를 비교한다(S9660). 여기서, S 는 차분 데이터에 포함되는 심볼의 개수이고, AQP 는 심볼을 표현하기 위한 비트 사이즈이다.The table size calculator 754 determines the size of the symbol table to be used in the generation mode encoder 756 (A = S * (AQP + 1)) and the size of the symbol flag corresponding to the symbol table to be used in the incremental coding mode encoder. B = 2 (AQP + 1) −1) is compared (S9660). Here, S is the number of symbols included in the difference data, and AQP is the bit size for representing the symbol.

테이블 사이즈 계산부(754)는 A 가 B 보다 더 작으면 입력된 각 정점의 차분 데이터를 발생 모드 부호화기(756)로 출력하고, B 가 A 보다 더 작으면 입력된 각 정점의 차분 데이터를 증가 모드 부호화기(758)로 출력한다.The table size calculator 754 outputs the difference data of each input vertex to the generation mode encoder 756 when A is smaller than B, and increases the difference data of each input vertex when B is smaller than A. Output to encoder 758.

이하, 도 11b를 더 참조하여 본 발명의 발생 모드 부호화기(756)의 처리 과정을 설명한다.Hereinafter, the process of the generation mode encoder 756 of the present invention will be described with reference to FIG. 11B.

발생 모드 부호화기(756)는 입력된 차분 데이터에서 발생한 차분 값에 대응되는 심볼과 심볼의 위치를 나타내는 위치 인덱스를 생성한다(S9680).The generation mode encoder 756 generates a symbol corresponding to the difference value generated from the input difference data and a position index indicating the position of the symbol (S9680).

도 11b를 참조하면, 입력된 차분 데이터가 (3,7,3,7,-4,7,3,-4,3,7,-4,-4) 라 할 때, 발생 모드 부호화기(756)는 입력된 각 정점의 차분 데이터의 차분 값에 대응되는 심볼(3, 7, -4)을 순서대로 기재한 테이블을 작성한다.Referring to FIG. 11B, when the input difference data is (3,7,3,7, -4,7,3, -4,3,7, -4, -4), the generation mode encoder 756 Creates a table in which the symbols (3, 7, -4) corresponding to the difference values of the difference data of the input vertices are sequentially described.

발생 모드 부호화기(756)는 입력된 차분 데이터 열에서 첫 번째 심볼인 3을 부호화한 후, 이 후의 키 프레임에서 3 이 나타나는 위치를 1 로 설정하고, 3이 나타나지 않은 위치는 0으로 설정하여 위치 인덱스를 생성한다. 심볼 3 에 대해서 생성된 인덱스는 (0 1 0 0 0 1 0 1 0 0 0)이 된다.The generation mode encoder 756 encodes the first symbol 3 in the input differential data string, and then sets a position where 3 appears in a subsequent key frame to 1 and sets a position where 3 does not appear to 0 to a position index. Create The index created for symbol 3 is (0 1 0 0 0 1 0 1 0 0 0).

또한, 발생 모드 부호화기(756)는 다음 심볼인 7 에 대해서 인덱스를 생성하는데, 이 때, 도 11b에 도시된 바와 같이, 이전 심볼의 위치는 고려하지 않는다. 따라서, 심볼 7 에대한 인덱스는 (1 0 1 0 1 0 0) 이 된다.In addition, the generation mode encoder 756 generates an index for the next symbol, 7, where the position of the previous symbol is not considered, as shown in FIG. 11B. Thus, the index for symbol 7 is (1 0 1 0 1 0 0).

발생 모드 부호화기(756)에서 생성되는 인덱스는 부호화되지 않은 심볼의 위치만을 고려하므로, 마지막 심볼 -4 의 위치 인덱스는 (1 1 1)이 된다.Since the index generated by the generation mode encoder 756 considers only the positions of the uncoded symbols, the position index of the last symbol -4 becomes (1 1 1).

한편, 도 11b에 도시된 예에서는 bSoleKV 플래그가 모드 0으로 설정되었다. bSoleKV 플래그는 차분 데이터에 포함된 심볼이 한번만 발생하는지를 나타내는 플래그로서, 만약, 심볼이 한번만 발생하여 인덱스가 모두 0 이라면, 해당 심볼에 대한 bSoleKV 플래그는 1 로 설정되고, 인덱스는 부호화되지 않는다. 발생 모드 부호화기(756)는 차분 데이터를 엔트로피 부호화하기 위해서 각 심볼, 심볼의 인덱스, 및 bSoleKV 플래그를 엔트로피 부호화기(760)로 출력한다.On the other hand, in the example shown in Fig. 11B, the bSoleKV flag is set to mode 0. The bSoleKV flag is a flag indicating whether a symbol included in the differential data occurs only once. If a symbol occurs only once and the indices are all 0, the bSoleKV flag for the symbol is set to 1, and the index is not encoded. The generation mode encoder 756 outputs each symbol, an index of a symbol, and a bSoleKV flag to the entropy encoder 760 in order to entropy encode differential data.

이하, 도 11c를 참조하여 본 발명의 증가 모드 부호화기(758)의 처리 과정을 설명한다.Hereinafter, a process of the incremental mode encoder 758 of the present invention will be described with reference to FIG. 11C.

증가 모드 부호화기(758)는 심볼 값 대신에 심볼이 존재하는지 여부를 나타내는 플래그 및 심볼의 위치를 나타내는 위치 인덱스를 생성한다(S9690).The incremental mode encoder 758 generates a flag indicating whether a symbol exists instead of a symbol value and a position index indicating a position of the symbol (S9690).

증가 모드 부호화기(758)는 차분 데이터에 존재할 심볼들을 테이블로 미리 생성한다. 테이블은 심볼들의 절대값의 오름차순으로 생성되고, 동일한 절대값 중 양수가 음수보다 상위에 위치한다. 따라서, 테이블에 기재되는 심볼의 순서는 0, 1, -1, 2, -2, 3, -3 ... 이 된다. 심볼 테이블의 심볼에 대응되는 심볼 플래그의 사이즈는 상술한 바와 같이 2(AQP+1)-1 로 계산되는데, 예컨대, AQP 가 2 라면 심볼 플래그로 나타낼 수 있는 심볼의 개수는 7 이 된다. 또한, 심볼 플래그는 각 심볼에 대응되는 값이 차분 데이터에 존재하면 1 로 설정되며, 플래그가 1 로 설정된 심볼에 대해서만 위치 인덱스가 생성된다.Incremental mode encoder 758 pre-generates the symbols to be present in the differential data in a table. The table is created in ascending order of the absolute values of the symbols, with a positive number above the same absolute value being higher than a negative number. Therefore, the order of the symbols described in the table is 0, 1, -1, 2, -2, 3, -3 .... The size of the symbol flag corresponding to the symbol in the symbol table is calculated as 2 (AQP + 1) -1 as described above. For example, when AQP is 2, the number of symbols that can be represented by the symbol flag is 7. In addition, the symbol flag is set to 1 when a value corresponding to each symbol exists in the differential data, and a position index is generated only for the symbol in which the flag is set to 1.

도 11c를 참조하면, 증가 모드 부호화기(758)로 입력된 차분 데이터가 도 11c 에 도시된 바와 같을 때, 차분 데이터에 존재하는 심볼은 (-1, 2, -3) 이므로, 심볼 플래그는 (0, 0, 1, 1, 0, 0, 1) 의 순서로 설정된다.Referring to FIG. 11C, when the difference data input to the incremental mode encoder 758 is as shown in FIG. 11C, the symbol present in the difference data is (−1, 2, −3), and thus the symbol flag is (0). , 0, 1, 1, 0, 0, 1).

증가 모드 부호화기(758)는 심볼 테이블의 상위에 위치하는 심볼에 대응되는 위치 인덱스를 먼저 생성한다. 도 11c 에 도시된 바와 같이, 증가 모드 부호화기(758)는 심볼 테이블의 최상위 심볼인 -1 이 있는 위치를 1 로 설정하고, 그 외의 위치를 0 으로 설정하여 인덱스를 (1 0 1 0 0 0 1 0 1 0 0 0) 으로 생성한다.The incremental mode encoder 758 first generates a position index corresponding to a symbol located above the symbol table. As shown in FIG. 11C, the incremental mode encoder 758 sets the index (1 0 1 0 0 0 1) by setting the position of the highest symbol of the symbol table to -1 and setting the other position to 0. 0 1 0 0 0).

그 후, 증가 모드 부호화기(758)는 심볼 -1 의 위치를 고려하지 않고, 나머지 위치에 대해서 인덱스를 (0 0 1 0 1 0 1 1)로 생성한다. 마지막으로, 증가 모드 부호화기(758)는 이전에 부호화된 심볼들의 위치를 고려하지 않고 심볼 -3 의 인덱스를 (1 1 1 1) 로 생성한다. 증가 모드 부호화기(758)는 차분 데이터를 엔트로피 부호화하기 위해서 플래그의 순서와 각 심볼의 위치 인덱스를 엔트로피 부호화기(760)로 출력한다.The incremental mode encoder 758 then generates an index (0 0 1 0 1 0 1 1) for the remaining positions without considering the position of the symbol -1. Finally, incremental mode encoder 758 generates the index of symbol -3 as (1 1 1 1) without considering the position of previously encoded symbols. The incremental mode encoder 758 outputs an order of flags and a position index of each symbol to the entropy encoder 760 in order to entropy encode differential data.

한편, 본 발명의 발생 모드 부호화기(756) 및 증가 모드 부호화기(758)에서 생성된 인덱스는 모두 nTrueOne 이라 칭해지는 플래그를 갖는다. 이 플래그는 원래의 위치 인덱스가 반전되었는지를 나타내는 것으로, 이 플래그가 0 으로 설정되면 현재의 위치 인덱스는 원래의 위치 인덱스 값이 반전된 것임을 나타낸다. 이렇게 위치 인덱스를 반전시키는 이유는 인덱스에 1 이 많이 포함된 경우에 반전시킴으로써 0 의 개수를 증가시켜 산술 부호화 효율을 높이기 위함이다.On the other hand, the indexes generated by the generation mode encoder 756 and the incremental mode encoder 758 of the present invention both have a flag called nTrueOne. This flag indicates whether the original position index is reversed. If this flag is set to 0, the current position index indicates that the original position index value is reversed. The reason for inverting the position index is to increase arithmetic coding efficiency by increasing the number of zeros by inverting when 1 is included in the index.

이하, 도 9d를 참조하여 본 발명의 엔트로피 부호화 방법을 설명한다.Hereinafter, the entropy encoding method of the present invention will be described with reference to FIG. 9D.

본 발명의 엔트로피 부호화기(760)는 증가 모드 부호화기(758)로부터 차분 데이터의 심볼을 나타내는 플래그 및 위치 인덱스를 입력받아 엔트로피 부호화하고, 발생 모드 부호화기(756)으로부터 차분 데이터의 심볼 및 위치 인덱스를 입력받아, 심볼을 encodeSignedQuasiAAC() 함수를 이용하여 부호화한다.The entropy encoder 760 of the present invention receives a flag and a position index indicating a symbol of difference data from the incremental mode encoder 758 and entropy encodes it, and receives a symbol and a position index of the difference data from the generation mode encoder 756. The symbol is encoded using the encodeSignedQuasiAAC () function.

encodeSignedQuasiAAC() 함수는 입력된 값과 부호에 대한 컨택스트를 이용하여 적응 산술 부호화된 비트스트림을 생성하는데, 이 함수는 0 이 아닌 첫 번째 비트를 부호화한 후에 부호가 부호화되고, 나머지 비트들은 제로 컨택스트를 이용하여 부호화된다.The encodeSignedQuasiAAC () function generates an adaptive arithmetic-encoded bitstream using the input value and the context for the sign, which encodes the first non-zero bit and then encodes the remaining bits. Is encoded using a test string.

도 9d 는 encodeSignedQuasiAAC() 함수를 이용한 심볼의 부호화 과정을 설명하는 흐름도이다.9D is a flowchart illustrating a symbol encoding process using the encodeSignedQuasiAAC () function.

엔트로피 부호화기(760)는 부호화할 차분 데이터의 심볼과 각 심볼의 비트 사이즈(QBit)를 입력받는다(S9810).The entropy encoder 760 receives a symbol of difference data to be encoded and a bit size QBit of each symbol (S9810).

엔트로피 부호화기(760)는 먼저 입력된 비트 사이즈에서 2를 감산하여 변수 i 에 저장한다(S9820).The entropy encoder 760 first subtracts 2 from the input bit size and stores it in the variable i (S9820).

그 후, 엔트로피 부호화기(760)는 엔트로피 부호화할 값(nValue)의 절대값을 변수 val에 저장한 후, val 에 i 만큼 SR(Shift Right)연산을 수행하고, SR 연산이 수행된 결과와 "1" 과의 and 연산을 수행하여 결과를 bit 변수에 저장한다(S9830). 이 단계가 처음 수행하면, 엔트로피 부호화될 입력 값 중에서 부호(sign)를 제외한 첫 번째 비트가 검출되고, 이후 단계에서 첫 비트 다음으로 한 비트씩 독출된다.Thereafter, the entropy encoder 760 stores the absolute value of the value (nValue) to be entropy encoded in the variable val, performs SR (Shift Right) operation on val, and performs the SR operation with "1. "And operation to store the result in the bit variable (S9830). When this step is performed for the first time, the first bit of the input value to be entropy encoded except for the sign is detected, and in the subsequent step, the first bit is read one bit after the first bit.

엔트로피 부호화기(760)는 val 값이 1 이하인지 여부를 조사하고(S9840),val 이 1 보다 크면 qf_encode() 함수를 이용하여 bit 값을 제로 컨택스트에 따라서 부호화한다(S9850). 한편, val 값이 1 이하이면, qf_encode() 함수를 이용하여 bit 값을 i 번째 컨택스트에 따라서 부호화한다(S9860).The entropy encoder 760 checks whether the val value is 1 or less (S9840). If val is greater than 1, the entropy encoder 760 encodes the bit value according to the zero context (S9850) using the qf_encode () function. On the other hand, if the val value is 1 or less, the bit value is encoded according to the i th context using the qf_encode () function (S9860).

엔트로피 부호화기(760)는 val 값이 1 이하라면, val 값이 1 인지를 다시 조사하고(S9870), val 값이 1 이라면 nValue 값의 부호(sign)를 설정하고(S9880), 설정된 부호 및 부호 컨택스트에 따라서 부호화한다(S9890).If the val value is 1 or less, the entropy encoder 760 checks again whether the val value is 1 (S9870), and if the val value is 1, sets a sign of the nValue value (S9880), and sets the set sign and sign contact. The encoding is performed according to the text (S9890).

한편, 엔트로피 부호화기(760)는 한 비트의 부호화 과정이 종료되면, i를 1 만큼 감소하고(S9900), 감소된 i 가 0보다 작은지를 조사하여(S9910), i 가 0보다 작아질 때까지 상술한 제 S483 단계 내지 S490 단계를 반복하여 입력된 값을 엔트로피 부호화한다.On the other hand, when the encoding process of one bit is finished, the entropy encoder 760 decreases i by 1 (S9900), checks whether the reduced i is less than 0 (S9910), and then describes i until it becomes smaller than 0. Steps S483 to S490 are repeated to entropy-encode the input value.

결과적으로 상술한 과정에 따라서, 엔트로피 부호화기(760)는 입력된 값의 0 이 아닌 첫 번째 값은 해당 비트 위치의 컨택스트에 따라서 부호화하고, 그 후의 비트들은 모두 제로 컨택스트에 따라서 부호화한다.As a result, according to the above-described process, the entropy encoder 760 encodes the first non-zero value of the input value according to the context of the corresponding bit position, and encodes all subsequent bits according to the zero context.

이하, 도 7a를 다시 참조하여 본 발명의 키 값 헤더 부호화기(500)에서 키 값 헤더로 부호화되는 정보를 설명한다.Hereinafter, referring to FIG. 7A again, information encoded by the key value header in the key value header encoder 500 according to the present invention will be described.

키 값 헤더 부호화기(500)는 입력 좌표 인터폴레이터를 입력받아 데이터의 모드, 각 키 프레임의 정점의 개수, 정점의 개수를 부호화하는데 필요한 비트수, 및 각 실수들의 최대 유효 자리수를 부호화한다.The key value header encoder 500 receives an input coordinate interpolator and encodes a mode of data, the number of vertices of each key frame, the number of bits required to encode the number of vertices, and the maximum significant digit of each real number.

한편, 키 값 헤더 부호화기(500)는 양자화기(710)로부터 양자화 비트수, 양자화에 필요한 각 정점의 각 성분의 최소값 및 최대 범위, 및 양자화된 후의 각 정점의 각 성분의 최대값 및 최소값을 부호화한다.Meanwhile, the key value header encoder 500 encodes the number of quantization bits, the minimum and maximum ranges of each component of each vertex required for quantization, and the maximum and minimum values of each component of each vertex after quantization from the quantizer 710. do.

또한, 키 값 헤더 부호화기(500)는 DPCM 처리부(720)로부터 각 정점의 각 성분 데이터에 수행된 DPCM 연산 모드를 입력받으며, 사전 부호화기(750)로부터 사전 부호화 모드를 입력받아 부호화한다.In addition, the key value header encoder 500 receives a DPCM operation mode performed on each component data of each vertex from the DPCM processor 720, and receives a pre-coding mode from the pre-encoder 750 to encode the same.

지금까지 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 및 키 값 데이터 부호화장치에 관하여 설명하였다. 이하에서는, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 및 키 값 데이터를 부호화한 비트스트림을 복호화하는 방법 및 장치에 관하여 설명한다.The key and key value data encoding apparatus of the coordinate interpolator according to the preferred embodiment of the present invention has been described so far. Hereinafter, a method and apparatus for decoding a bitstream in which the key and key value data of the coordinate interpolator according to the preferred embodiment of the present invention will be described with reference to the accompanying drawings.

도 12 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 복호화 장치의 구성을 도시하는 블록도이다.12 is a block diagram showing a configuration of a coordinate interpolator decoding apparatus according to a preferred embodiment of the present invention.

본 발명의 복호화 장치는 입력된 비트스트림에서 키 데이터를 복호화하는 키 데이터 복호화기(1300), 입력된 비트스트림에서 키 값 데이터를 복호화하는 키 값 데이터 복호화기(1500), 및 입력된 비트스트림에서 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 키 데이터 복호화기(1300) 및 키 값 데이터 복호화기(1500)로 제공하는 헤더 복호화기(1500)를 포함한다.The decryption apparatus of the present invention includes a key data decoder 1300 for decoding key data in an input bitstream, a key value data decoder 1500 for decoding key value data in an input bitstream, and an input bitstream. And a header decoder 1500 for decrypting header information necessary for decrypting key and key value data and providing the same to the key data decoder 1300 and the key value data decoder 1500.

이하, 도 13 내지 도 14b 를 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기(1300) 및 복호화 방법을 설명한다.Hereinafter, a key data decoder 1300 and a decryption method according to a preferred embodiment of the present invention will be described with reference to FIGS. 13 to 14B.

도 13 은 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기(1300)의 구성을 도시하는 블록도이다. 본 발명의 키 데이터 복호화기는 부호화된 비트스트림을 수신하여, 복호화된 키 데이터로 재구성한다.13 is a block diagram showing the configuration of a key data decoder 1300 according to a preferred embodiment of the present invention. The key data decoder of the present invention receives an encoded bitstream and reconstructs the decrypted key data.

본 발명의 키 데이터 복호화기(1300)는 엔트로피 복호화기(1310), 역DND 처리부(1320), 역폴딩 처리부(1330), 역쉬프팅부(1340), 역DPCM 처리부(1350), 역양자화기(1360), 선형 키 복호화기(1380) 및 실수 역변환부(1370)를 포함한다.The key data decoder 1300 of the present invention includes an entropy decoder 1310, an inverse DND processor 1320, an inverse folding processor 1330, an inverse shifting unit 1340, an inverse DPCM processor 1350, and an inverse quantizer ( 1360, a linear key decoder 1380, and a real inverse transform unit 1370.

도 14a 는 본 발명의 바람직한 실시예에 따른 키 데이터 복호화 방법을 설명하는 흐름도이다.14A is a flowchart illustrating a key data decryption method according to a preferred embodiment of the present invention.

먼저, 입력 비트스트림은 헤더 복호화기(1800) 및 엔트로피 복호화기(1310)로 입력된다.First, the input bitstream is input to the header decoder 1800 and the entropy decoder 1310.

헤더 복호화기(1800)는 각 복호화 단계별로 필요한 정보를 복호화하여 각 단계에 제공하는데, 헤더 복호화기(1800)에서 복호화되는 정보는 각 단계마다 설명한다(S14000).The header decoder 1800 decodes the information necessary for each decoding step and provides the information to each step. The information decoded by the header decoder 1800 will be described for each step (S14000).

비트스트림을 입력받은 엔트로피 복호화기(1310)는 헤더 복호화기(1800)로부터 복호화할 차분 데이터의 개수와 부호화에 이용된 비트수, 즉, 복호화할 비트수를 입력받아, 비트스트림을 엔트로피 복호화한다(S14100). 이 때, 복호화할 차분 데이터의 개수는 주어진 키 데이터의 개수에서 DPCM 연산의 인트라 키 데이터의 개수만큼 감산한 개수가 된다.The entropy decoder 1310 receiving the bitstream receives the number of differential data to be decoded and the number of bits used for encoding, that is, the number of bits to be decoded, from the header decoder 1800 to entropy decode the bitstream ( S14100). At this time, the number of difference data to be decrypted is the number obtained by subtracting the number of intra key data of the DPCM operation from the number of given key data.

엔트로피 복호화기(1310)는 비트스트림을 복호화할 때, 비트스트림에 포함된 소정의 정보(본 실시예에서는 bSignedAACFlag)를 참조하여 부호화된 차분 데이터가 음수를 포함하였는지 식별하고, 음수를 포함하였다면 decodeSignedAAC() 함수를 사용하여 복호화하고, 음수를 포함하지 않았다면 decodeUnsignedAAC() 함수를 사용하여 복호화한다. 이렇게 해서 복호화된 차분 데이터는 역 DND 처리부(1320)로 전달된다.When the entropy decoder 1310 decodes the bitstream, the entropy decoder 1310 refers to predetermined information included in the bitstream (bSignedAACFlag in this embodiment) to identify whether the encoded differential data includes a negative number. Decode using the) function, or decodeUnsignedAAC () if it did not contain a negative number. The difference data decoded in this way is transferred to the inverse DND processing unit 1320.

엔트로피 복호화된 차분 데이터를 수신한 역 DND 처리부(1320)는 헤더 복호화기(1800)로부터 DND 차수 및 각 DND 차수에서의 최대값(nKeyMax)을 입력받는다.The inverse DND processor 1320 receiving the entropy-decoded difference data receives a DND order and a maximum value nKeyMax in each DND order from the header decoder 1800.

만약, DND 차수가 -1 이라면, 이것은 부호화기가 DND 연산된 차분 데이터 대신에 DPCM 연산되고 쉬프팅된 차분 데이터를 엔트로피 부호화하였다는 것을 나타내므로, 역 쉬프팅 연산을 수행하는 과정으로 바로 진행한다. 한편, DND 차수가 0 이라면, 이것은 부호화기가 DND 연산된 차분 데이터 대신에 폴딩된 차분 데이터를 엔트로피 부호화하였다는 것을 나타내므로, 역폴딩 연산을 수행하는 과정으로 바로 진행한다. 그러나, DND 차수가 0보다 크다면, 역 DND 연산을 수행하게 된다(S14200).If the DND order is -1, this indicates that the encoder has entropy-coded the DPCM-operated shifted differential data instead of the DND-operated differential data, and thus proceeds directly to the process of performing the inverse shifting operation. On the other hand, if the DND order is 0, this indicates that the encoder entropy-coded the folded difference data instead of the DND-operated difference data, and thus proceeds directly to the process of performing the reverse folding operation. However, if the DND order is greater than zero, an inverse DND operation is performed (S14200).

먼저, 역 DND 처리부(1320)는 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었는지를 판단한다(S14300). 본 발명의 바람직한 실시예에서는 비트스트림에 포함된 nKeyInvertDown 값이 0 보다 큰 값인지 여부를 조사함으로써, 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었는지 여부를 판단한다.First, the inverse DND processor 1320 determines whether differential data on which the shift-up operation is performed is encoded (S14300). In a preferred embodiment of the present invention, by checking whether the value of nKeyInvertDown included in the bitstream is greater than 0, it is determined whether the difference data on which the shift-up operation is performed is encoded.

만약, 쉬프트-업 연산이 수행되지 않은 차분 데이터가 부호화되었다면, 역 DND 처리부(1320)는 역 DND 연산을 수행하는 과정으로 진행한다. 그러나, 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었다면, 쉬프트-업 연산으로 인해 양수의 영역로 이동된 차분 데이터를 다시 원래의 음수영역으로 환원한다(S14400). 본 발명의 실시예는 다음의 수학식 20 으로 표현되는 쉬프트-다운(이하, "인버트-다운(invert-down)"과 동일한 의미로 사용됨) 연산을 수행하여 쉬프트-업연산된 차분 데이터를 복원한다.If the difference data on which the shift-up operation is not performed is encoded, the inverse DND processing unit 1320 proceeds to a process of performing an inverse DND operation. However, if the differential data on which the shift-up operation is performed is encoded, the differential data moved to the positive region due to the shift-up operation is reduced back to the original negative region (S14400). An embodiment of the present invention restores the shift-up calculated differential data by performing a shift-down operation (hereinafter, used in the same sense as “invert-down”) represented by Equation 20 below. .

invert-down(v)invert-down (v)

=v,(if v ≤ nKeyInvertDown) = v, (if v ≤ nKeyInvertDown)

= nKeyInvertDown - v ,(if v > nKeyInvertDown)= nKeyInvertDown-v, (if v> nKeyInvertDown)

여기서, nKeyInvertDown은 쉬프트-업 연산에서의 최대값(nKeyMax)와 동일한 값이 이용된다. 쉬프트-다운 연산에 의해서 nKeyInvertDown을 초과하는 차분 데이터들은 -1 이하의 음수값으로 변환된다.Here, nKeyInvertDown uses the same value as the maximum value nKeyMax in the shift-up operation. By shift-down operation, difference data exceeding nKeyInvertDown is converted to a negative value of -1 or less.

쉬프트-다운 연산이 수행된 차분 데이들에 대해서 각 DND 차수에서의 nKeyMax 값에 따라서 역 디바이드-다운 또는 역 디바이드-업 연산이 선택적으로 수행된다.The reverse divide-down or reverse divide-up operation is selectively performed on the difference days on which the shift-down operation is performed according to the nKeyMax value in each DND order.

도 14b을 더 참조하여, 본 역 DND 연산 과정을 살펴보면, 역 DND 처리부(1320)는 부호화과정에서 수행된 DND 연산의 차수의 회수만큼 역 DND 연산을 수행한다. 즉, 역 DND 처리부(1320)는 역 DND 차수의 초기값을 DND 차수로 설정하고, 역 DND 연산을 수행할 때마다 1씩 감산하고 역 DND 차수가 1 이 될 때까지 역 DND 연산을 수행한다. 먼저, 역 DND 처리부(1320)는 각 차수에서의 nKeyMax 값을 조사하여 nKeyMax 값이 0 이상인지를 판단한다(S14510).Referring to FIG. 14B, the inverse DND operation process will be described. The inverse DND processing unit 1320 performs an inverse DND operation by the number of orders of the DND operation performed in the encoding process. That is, the inverse DND processor 1320 sets the initial value of the inverse DND order to the DND order, subtracts one by one each time the inverse DND operation is performed, and performs the inverse DND operation until the inverse DND order becomes one. First, the inverse DND processing unit 1320 examines the nKeyMax value in each order to determine whether the nKeyMax value is greater than or equal to zero (S14510).

nKeyMax 값이 0 보다 작다면, 부호화 과정에서 디바이드-업 연산이 수행되었음을 의미하므로, 역 DND 처리부(1320)는 역 디바이드-업 연산을 수행하여 차분 데이터의 범위를 음수 영역으로 확장한다(S14530). 본 발명의 바람직한 실시예는다음의 수학식 21 과 같은 역 디바이드-업 연산을 이용하였다.If the nKeyMax value is less than 0, it means that the divide-up operation is performed in the encoding process, and thus, the inverse DND processing unit 1320 extends the range of the difference data to the negative region by performing the inverse divide-up operation (S14530). The preferred embodiment of the present invention utilizes an inverse divide-up operation such as

inverse-divide-up(v)inverse-divide-up (v)

= v (if, v≥0)= v (if, v≥0)

= (nKeyMaxi-1)-(v-1)/2 (if v<0, v mod 2 ≠0)= (nKeyMax i -1)-(v-1) / 2 (if v <0, v mod 2 ≠ 0)

= v/2 (if v<0, v mod 2 = 0)= v / 2 (if v <0, v mod 2 = 0)

그러나, 만약, nKeyMax 가 0 이상이라면, 역 DND 처리부(1320)는 역 DND 연산의 차수가 1 인지를 조사한다. 역 DND 차수가 1 이 아니라면, 부호화할 때 디바이드-다운 연산이 수행되었음을 의미하므로, 역 DND 처리부(1320)는 역 디바이드-다운 연산을 수행하여 차분 데이터의 범위를 양수 영역으로 확장한다(S14570).However, if nKeyMax is equal to or greater than zero, the inverse DND processing unit 1320 checks whether the order of the inverse DND operation is one. If the inverse DND order is not 1, it means that the divide-down operation is performed at the time of encoding, and thus, the inverse DND processor 1320 extends the range of the differential data to the positive region by performing the inverse divide-down operation (S14570).

본 발명의 바람직한 실시예는 다음의 수학식 22 와 같은 역 디바이드-다운 연산을 이용하였다.The preferred embodiment of the present invention utilizes an inverse divide-down operation such as

inverse-divide-down(v)inverse-divide-down (v)

= v (if, v≥0)= v (if, v≥0)

= (nKeyMaxi+1)+(v-1)/2 (if v<0, v mod 2 ≠0)= (nKeyMax i +1) + (v-1) / 2 (if v <0, v mod 2 ≠ 0)

= v/2 (if v<0, v mod 2 = 0)= v / 2 (if v <0, v mod 2 = 0)

만약, nKeyMax 가 0 이상이고, 역 DND 연산의 차수가 1 이라면, 역 DND 처리부(1320)는 역 디바이드 연산을 수행함으로써 역 DND 연산을 종료하게된다(S14590). 본 발명의 바람직한 실시예는 다음의 수학식 23 과 같은 역 디바이드 연산을 이용하였다.If nKeyMax is equal to or greater than 0 and the order of the inverse DND operation is 1, the inverse DND processing unit 1320 ends the inverse DND operation by performing the inverse divide operation (S14590). The preferred embodiment of the present invention uses an inverse divide operation such as the following equation (23).

inverse-divide(v)inverse-divide (v)

= v ,(if v ≥0)= v, (if v ≥0)

= v+(nKeyMax0+ 1) ,(if v < 0)= v + (nKeyMax 0 + 1), (if v <0)

역 DND 연산이 수행된 키 데이터의 차분 데이터는 역 폴딩 처리부(1330)로 입력되고, 역 폴딩 처리부(1330)는 역폴딩 연산을 수행하여, 양수영역에만 위치하는 차분 데이터의 범위를 양수와 음수로 분리한다(S14600). 본 발명의 바람직한 실시예는 다음의 수학식 24 과 같은 역폴딩 연산을 이용하였다.The difference data of the key data on which the inverse DND operation is performed is input to the inverse folding processing unit 1330, and the inverse folding processing unit 1330 performs the inverse folding operation so that the range of the difference data located only in the positive region is positive and negative. Separate (S14600). In the preferred embodiment of the present invention, an inverse folding operation such as Equation 24 is used.

inverse-fold = (v+1)/(-2),(if v mod 2 ≠0)inverse-fold = (v + 1) / (-2), (if v mod 2 ≠ 0)

= v/2,(if v mod 2 = 0)= v / 2, (if v mod 2 = 0)

= 0 ,(if v = 0)= 0, (if v = 0)

역폴딩된 차분 데이터는 역 쉬프팅부(1340)로 출력되고, 역 쉬프팅부(1340)는 헤더 복호화기(1800)로부터 부호화기에서 이용된 모드(nKeyShift)를 입력받아, 다음의 수학식 25 에서와 같이 입력된 차분 데이터들에 모드를 합산한다(S14700).The reverse-folded difference data is output to the inverse shifting unit 1340, and the inverse shifting unit 1340 receives a mode (nKeyShift) used in the encoder from the header decoder 1800, as shown in Equation 25 below. The mode is added to the input difference data (S14700).

inverse-shift(v) = v + nKeyShiftinverse-shift (v) = v + nKeyShift

역 쉬프팅부(1340)로부터 차분 데이터를 입력받은 역 DPCM 처리부(1350)는키 헤더 부호화기(1800)로부터 DPCM 차수를 입력받아, 차분 데이터를 양자화된 키 데이터로 복원한다(S14800). 역 쉬프팅부(1340)는 다음의 수학식 26 을 이용하여 DPCM 차수만큼 역 DPCM 연산을 수행한다.The inverse DPCM processor 1350 that receives the difference data from the inverse shifting unit 1340 receives the DPCM order from the key header encoder 1800, and restores the difference data into quantized key data (S14800). The reverse shifting unit 1340 performs an inverse DPCM operation by the DPCM order using Equation 26 below.

v(i+1)=v(i)+delta(i)v (i + 1) = v (i) + delta (i)

여기서, i 는 차분 데이터 및 키 데이터의 인덱스를, v 는 정수 배열을, delta(i) 는 차분 데이터를 각각 나타낸다.Here, i denotes an index of difference data and key data, v denotes an integer array, and delta (i) denotes differential data.

역 DPCM 처리되어 생성된 양자화된 키 데이터는 역 양자화기(1360)로 입력되고, 역 양자화기(1360)는 헤더 복호화기(1800)로부터 양자화 비트 사이즈(nKeyQBit) 및 역 양자화에 이용될 최대값 및 최소값이 양자화과정에서 실수 변환부(205)에 의해서 부호화되었는지 여부를 입력받아, 다음의 수학식 27 을 이용하여 입력된 양자화된 키 데이터를 역 양자화된 키 데이터로 변환한다(S14900).The quantized key data generated by the inverse DPCM process is input to the inverse quantizer 1360, and the inverse quantizer 1360 receives a quantization bit size (nKeyQBit) and a maximum value to be used for inverse quantization from the header decoder 1800. Whether the minimum value is encoded by the real transform unit 205 during the quantization process is input, and the input quantized key data is converted into inverse quantized key data using Equation 27 (S14900).

부호화기에서 키 데이터를 양자화할 때, 양자화에 이용된 최대값 및 최소값이 실수 변환부(205)에서 변환되지 않았다면, 수학식 27 의 fKeyMin 및 fKeyMax 는 0 및 1 로 각각 설정된다. 그러나, 양자화에 이용된 최대값 및 최소값이 실수 변환부(205)에 의해서 변환되었다면, 역 양자화에 이용되는 최대값 및 최소값은 후술할 실수 역변환부(1370)에서 역 변환되어 입력되는 최소값 및 최대값이 각각 이용된다.When quantizing the key data in the encoder, fKeyMin and fKeyMax in Equation 27 are set to 0 and 1, respectively, if the maximum value and the minimum value used for the quantization have not been transformed in the real number conversion unit 205. However, if the maximum and minimum values used for quantization are converted by the real transform unit 205, the maximum and minimum values used for inverse quantization are inversely transformed and input by the real inverse transform unit 1370 to be described later. Are used respectively.

한편, 역양자화기(1360)에서 출력되는 복호화된 키 데이터는 선형 키 복호화기(1380)에서 복호화된 선형 키 데이터와 합산되어 복호화된 키 데이터를 구성한다.Meanwhile, the decrypted key data output from the inverse quantizer 1360 is added to the linear key data decrypted by the linear key decoder 1380 to form the decrypted key data.

이하, 선형 키 복호화과정을 설명한다(S15000).Hereinafter, a linear key decryption process will be described (S15000).

헤더 복호화기(1800)는 비트스트림으로부터 키 헤더 정보를 복호화해서 선형 키에 관한 정보가 있으면, 선형 키 영역의 시작 키와 종료 키를 복호화하기 위해서 필요한 정보를 실수 역변환부(1370)로 출력하고, 선형 키 복호화기(1380)로 선형 키로 부호화된 키의 개수를 출력한다.If the header decoder 1800 decrypts the key header information from the bitstream and has information about the linear key, the header decoder 1800 outputs the information necessary for decoding the start key and the end key of the linear key region to the real inverse transform unit 1370, The linear key decoder 1380 outputs the number of keys encoded with the linear key.

선형 키 복호화에 이용될 시작 키 및 종료 키 정보를 입력받은 실수 역변환부(1370)는 10진수 체계로 표현된 시작 키 및 종료 키를 다시 2 진수 체계로 역변환하여 선형키 복호화기(1380)로 출력한다.The real inverse transform unit 1370 that receives the start key and the end key information to be used for the linear key decryption converts the start key and the end key represented by the decimal system back to the binary system and outputs the linear key decoder 1380. do.

복호화할 2개의 실수를 fKeyMin과 fKeyMax라고 하면, 첫 번째 값 fKeyMin을 역변환하는 과정은 다음과 같다.If two real numbers to be decoded are called fKeyMin and fKeyMax, the process of inverting the first value fKeyMin is as follows.

헤더 복호화기(1800)는 fKeyMin의 자릿수를 비트스트림으로부터 읽어드린다. 만약에 자릿수가 0이면 fKeyMin의 값을 0으로 설정한 후, fKeyMax의 값을 복호화하기 위해서 fKeyMax 의 자리수를 비트스트림으로부터 판독한다. 만약에 자릿수가 8이상이면 IEEE 표준 754 방식에 따라서 부호화된 것이므로, 실수(floating-point number)를 32bit만큼 읽어드린 후, fKeyMax의 값을 복호화하는 과정으로 진행한다.The header decoder 1800 reads the number of digits of fKeyMin from the bitstream. If the number of digits is 0, the value of fKeyMin is set to 0, and the number of digits of fKeyMax is read from the bitstream to decode the value of fKeyMax. If the number of digits is 8 or more, the code is encoded according to the IEEE standard 754 method. After reading the floating-point number by 32 bits, the process proceeds to decoding the value of fKeyMax.

그러나, 만약에 자릿수가 1 과 7 사이의 값을 가지면, 헤더 복호화기(1800)는 부호 비트를 비트스트림으로부터 판독한다. 본 발명의 실시예에서는, 부호비트가 1 이면 MinKeyMantissaSign를 -1로, 0 이면 MinKeyMantissaSign를 1 로 설정하여 부호를 판독한다. 그리고, mantissa를 상술한 표 4 의 자릿수와 필요한 비트수의 관계를 참조하여 필요한 비트수를 얻은 후, 그 비트수만큼 비트스트림으로부터 판독하고, 판독된 값을 nMinKeyMantissa에 저장한다. 그 후, 비트스트림으로부터 1 비트만큼 판독하여 MinKeyExponentSign에 저장하되, MinKeyMantissaSign과 같은 방식으로 저장한다. 그리고 비트스트림으로부터 6bit만큼의 exponent값을 판독하여 nMinKeyExponent에 저장한다.However, if the digit has a value between 1 and 7, the header decoder 1800 reads the sign bit from the bitstream. In the embodiment of the present invention, if the sign bit is 1, MinKeyMantissaSign is set to -1, and if it is 0, MinKeyMantissaSign is set to 1 to read the sign. Then, mantissa is obtained by referring to the relationship between the number of digits in Table 4 and the required number of bits, and then the necessary number of bits is read from the bitstream by that number of bits, and the read value is stored in nMinKeyMantissa. Thereafter, 1 bit is read from the bitstream and stored in MinKeyExponentSign, but stored in the same manner as MinKeyMantissaSign. An exponent value of 6 bits is read from the bitstream and stored in nMinKeyExponent.

실수 역변환부(1370)는 헤더 복호화기(1800)로부터 입력된 값을 다음의 수학식 28 에 대입하여 fKeyMin을 복원한다.The real inverse transform unit 1370 restores fKeyMin by substituting the value input from the header decoder 1800 into Equation 28 below.

fKeyMax를 복원하는 과정은 fKeyMin과 동일하다. 다만, fKeyMax의 exponent를 비트스트림으로부터 판독하기 전에, fKeyMax 의 exponent로 fKeyMin과 동일한 exponent가 이용되었는지를 판독하여, 동일한 값이 이용되었으면, fKeyMin의 exponent를 사용하고, 그렇지 않으면 fKeyMin의 exponent를 비트스트림으로부터 판독하는 방식과 동일하게 fKeyMax 의 exponent를 판독한다.Restoring fKeyMax is the same as fKeyMin. However, before reading the exponent of fKeyMax from the bitstream, read whether the same exponent as fKeyMin is used as the exponent of fKeyMax, and if the same value is used, use the exponent of fKeyMin; The exponent of fKeyMax is read in the same manner as the read method.

한편, 실수 역변환부(1370)로부터 선형 키 영역의 시작 키와 종료 키를 입력받은 선형 키 복호화기(1380)는 다음의 수학식 29 를 이용하여 선형 키 영역을 복호화한다.Meanwhile, the linear key decoder 1380 that receives the start key and the end key of the linear key region from the real inverse transform unit 1370 decodes the linear key region using Equation 29 below.

여기서, fKeyMin 및 fKeyMax 는 선형 키 영역의 시작 및 종료 키 데이터를 의미한다.Here, fKeyMin and fKeyMax mean start and end key data of the linear key area.

이하, 도 15a 및 도 15b를 참조하여 본 발명의 부호화된 좌표 인터폴레이터의 키 값 데이터를 복호화하는 키 값 데이터 복호화기 및 복호화 방법을 설명한다.Hereinafter, a key value data decoder and a decryption method for decoding key value data of the encoded coordinate interpolator of the present invention will be described with reference to FIGS. 15A and 15B.

도 15a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화기의 구성을 도시하는 블록도이고, 도 15b 는 본 발명의 바람직한 실시예에 따는 복호화 방법을 설명하는 흐름도이다.15A is a block diagram showing the configuration of a key value data decoder according to a preferred embodiment of the present invention, and FIG. 15B is a flowchart illustrating a decryption method according to a preferred embodiment of the present invention.

도 15a를 참조하면, 본 발명의 키 값 데이터 복호화기(1500)는 입력된 비트스트림을 엔트로피 복호화하여, DPCM 연산된 차분 데이터의 심볼, 심볼 설정 플래그, 상기 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 엔트로피 복호화기(1505), 사전 복호화될 데이터의 심볼 및 심볼의 위치를 나타내는 인덱스에 따라서 소정의 차분 데이터를 생성하는 사전 복호화기(1510), DPCM 연산 모드에 따라서 차분 데이터에 소정의 역 DPCM 연산을 수행하여 양자화된 데이터를 생성하는 역 DPCM 처리부(1530), 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 역 양자화기(1550), 및 비트스트림으로부터 좌표 인터폴레이터의 복호화에 필요한 정보를 복호화하여 사전 복호화기(1510), 역 DPCM 처리부(1530), 및 역 양자화기(1550)로 출력하는 키 값 헤더 복호화기(1800)를 포함한다.Referring to FIG. 15A, the key value data decoder 1500 of the present invention entropy-decodes an input bitstream to perform a symbol for a DPCM-operated differential data, a symbol setting flag, an index indicating a position of the symbols, and a DPCM operation. An entropy decoder 1505 for generating pre-decoded data including a mode, a pre-decoder 1510 for generating predetermined differential data according to an index indicating a symbol of the pre-decoded data and a symbol position, and a DPCM operation mode An inverse DPCM processor 1530 for performing a predetermined inverse DPCM operation on the differential data to generate quantized data, an inverse quantizer 1550 for inversely quantizing the quantized data to generate reconstructed key value data, and bits Decode the information necessary for decoding the coordinate interpolator from the stream to predecoder 1510, inverse DPCM processing unit 1530, and inverse quantum And a key value header decoder 1800 outputs to the group (1550).

도 15b를 참조하여, 본 발명의 복호화 방법을 설명한다.A decoding method of the present invention will be described with reference to FIG. 15B.

좌표 인터폴레이터를 부호화한 비트스트림은 엔트로피 복호화기(1505)로 입력되면(S1710), 엔트로피 복호화기(1505)는 비트스트림을 복호화하여, 비트스트림이 발생 모드로 부호화된 경우에는 사전 복호화기(1510)로 각 정점의 심볼 및 심볼의 위치 인덱스를 출력하고, 증가 모드로 부호화된 경우에는 심볼의 존재여부를 나타내는 심볼 플래그 및 심볼의 위치를 나타내는 인덱스를 사전 복호화기(1510)로 출력한다(S1720).When the bitstream encoding the coordinate interpolator is input to the entropy decoder 1505 (S1710), the entropy decoder 1505 decodes the bitstream, and when the bitstream is encoded in the generation mode, the predecoder 1510. The symbol of each vertex and the position index of the symbol are outputted, and if the symbol is encoded in the incremental mode, the symbol flag indicating the existence of the symbol and the index indicating the position of the symbol are output to the predecoder 1510 (S1720). .

사전 복호화기(1510)는 입력된 사전 부호화 모드에 따라서 입력된 심볼 및 인덱스를 발생 모드 복호화하거나, 입력된 심볼 플래그 및 인덱스를 증가 모드 복호화하여 차분 데이터를 생성하고, 생성된 차분 데이터를 역 DPCM 처리부(1530)로 출력한다(S1730).The predecoder 1510 generates a differential mode by generating a mode decoded input symbol and an index according to the input precoding mode, or incrementally decodes the input symbol flag and an index, and inverses the DPCM processing unit. Output to step 1530 (S1730).

역 DPCM 처리부(1530)는 입력된 차분 데이터에 대해서 각 정점별로, 복호화된 DPCM 모드에 따라서 역 순환 양자화 및 역 시간 DPCM 연산, 역 공간 DPCM 연산, 및 역 시공간 DPCM 연산 중 하나의 연산을 수행하여 양자화된 키 값 데이터를 역 양자화기(1550)로 출력한다(S1740).The inverse DPCM processor 1530 quantizes the input differential data by performing one of an inverse cyclic quantization and an inverse time DPCM operation, an inverse space DPCM operation, and an inverse space-time DPCM operation for each vertex according to the decoded DPCM mode. The obtained key value data is output to the inverse quantizer 1550 (S1740).

역 양자화기(1550)는 입력된 양자화된 키 값 데이터를 키 값 헤더 복호화기(1800)로부터 입력된 각 성분 데이터의 최소값 및 최대 범위를 이용하여역 양자화한다(S1750).The inverse quantizer 1550 dequantizes the input quantized key value data using the minimum value and the maximum range of each component data input from the key value header decoder 1800 (S1750).

또한, 역 양자화기(1550)는 역 양자화된 키 값 데이터 행렬이 부호화될 때, 전치행렬로 변환되었는지를 조사하여(S1760), 전치 행렬로 변환되었다면, 전치 행렬을 역 변환한다(S1765).In addition, when the inverse quantized key value data matrix is encoded, the inverse quantizer 1550 checks whether the inverse quantized key value data matrix has been converted (S1760).

역 양자화기(1550)는 복원된 좌표 인터폴레이터의 키 값 데이터를 출력한다(S1770).The inverse quantizer 1550 outputs key value data of the restored coordinate interpolator (S1770).

이하, 도 16a 내지 도 17b를 더 참조하여 본 발명의 키 값 데이터 복호화 장치 및 방법을 상세히 설명한다.Hereinafter, the key value data decrypting apparatus and method of the present invention will be described in detail with reference to FIGS. 16A to 17B.

엔트로피 복호화기(1505)는 입력 비트스트림으로부터 DPCM 모드를 나타내는 비트스트림을 먼저 복호화하고, bSelFlag, nKVACodingBit, nQMin, 및 nQMax 등의 데이터 배열을 복호화한다.The entropy decoder 1505 first decodes the bitstream indicating the DPCM mode from the input bitstream, and decodes data arrays such as bSelFlag, nKVACodingBit, nQMin, and nQMax.

부호화 과정에서 bSelFlag 은 초기에 1 로 설정되고, nKVACodingBit은 초기에 0 으로 설정된다. 만약, bSelFlag 가 1 인 상태로 복호화된다면 엔트로피 복호화기(1505)는 다른 데이터 어레이를(nKVACodingBit, nQMin, nQMax) 복호화한다. 그러나, bSelFlag 가 0 인 상태로 복호화된다면 엔트로피 복호화기(1505)는 nQMin 어레이만을 복호화한다.BSelFlag is initially set to 1 and nKVACodingBit is initially set to 0 in the encoding process. If the bSelFlag is decoded with 1, the entropy decoder 1505 decodes another data array (nKVACodingBit, nQMin, nQMax). However, if bSelFlag is decrypted with 0, the entropy decoder 1505 only decodes the nQMin array.

엔트로피 복호화기(1505)는 상기 어레이들을 복호화한 후 사전 부호화 모드를 나타내는 nDicModeSelect를 복호화하는데, nDicModeSelect 값에 따라서 복호화할 비트스트림은 2 가지 종류로 분류된다.The entropy decoder 1505 decodes the nDicModeSelect indicating the pre-coding mode after decoding the arrays. The bitstream to be decoded is classified into two types according to the nDicModeSelect value.

도 18a 은 좌표 인터폴레이터의 각 정점과 각 정점의 성분 데이터의 비트스트림 구조를 도시한 도면이다. 도 18a 에 도시된 바와 같이 복호화된 nDicModeSelect 값이 0 이면, 비트스트림 구조는 발생 모드 부호화기에서 부호화된 심볼 및 인덱스등의 정보를 포함하고, nDicModeSelect 값이 1 이면, 비트스트림 구조는 증가 모드 부호화기에 부호화된 심볼의 존재 여부를 나타내는 심볼 플래그 및 위치 인덱스등의 정보를 포함한다.FIG. 18A illustrates a bitstream structure of each vertex of the coordinate interpolator and component data of each vertex. FIG. If the decoded nDicModeSelect value is 0 as shown in FIG. 18A, the bitstream structure includes information such as symbols and indexes encoded in the generation mode encoder, and if the nDicModeSelect value is 1, the bitstream structure is encoded in the incremental mode encoder. It contains information such as a symbol flag and a position index indicating whether a symbol is present.

본 발명의 엔트로피 복호화기는 도 18b 에 도시된 프로그램 코드로 구현되는 decodeSignedQuasiAAC() 함수를 이용하였다. 이 함수는 적응 산술 부호화된 비트스트림을 부호 및 값에 대한 컨택스트를 이용하여 복호화한다. 이 함수는 부호 비트 이후에 판독되는 비트에 대해서 제로 컨택스트를 이용하여 복호화한다. 엔트로피 복호화기는 복호화된 데이터를 사전 복호화기(1510)로 출력한다.The entropy decoder of the present invention used the decodeSignedQuasiAAC () function implemented with the program code shown in FIG. 18B. This function decodes an adaptive arithmetic coded bitstream using contexts for sign and value. This function decodes using a zero context for the bit read after the sign bit. The entropy decoder outputs the decoded data to the predecoder 1510.

도 16a 는 본 발명의 사전 복호화기(1510)의 구성을 도시하는 블록도이고, 도 17a 는 사전 복호화 방법을 설명하는 흐름도이다.16A is a block diagram showing the configuration of a predecoder 1510 of the present invention, and FIG. 17A is a flowchart for explaining a predecoding method.

도 16a 에 도시된 바와 같이, 본 발명의 사전 복호화기(1510)는 입력된 각 정점의 DPCM 모드를 복원하는 DPCM 모드 복호화기(1512), 입력된 각 정점의 사전 부호화 모드를 선택하는 사전 모드 선택부(1514), 사전 모드 선택부(1514)로부터 각 정점의 각 성분의 심볼 및 심볼의 위치 인덱스를 입력받아 차분 데이터를 복원하는 발생 모드 복호화기(1516), 및 사전 모드 선택부(1514)로부터 심볼 플래그 및 심볼 위치 인덱스를 입력받아 차분 데이터를 복원하는 증가 모드 복호화기(1518)를 포함한다.As shown in Fig. 16A, the pre-decoder 1510 of the present invention includes a DPCM mode decoder 1512 for reconstructing the DPCM mode of each input vertex, and a pre-mode selection for selecting a pre-coding mode of each input vertex. 1515, generation mode decoder 1516 which receives the symbol of each component of each vertex and the position index of the symbol from dictionary mode selector 1514, and restores the differential data, and from dictionary mode selector 1514. And an incremental mode decoder 1518 that receives the symbol flag and the symbol position index and restores the differential data.

도 17a를 참조하면, 엔트로피 복호화된 각 정점의 심볼, 심볼 플래그, 및 위치 인덱스를 포함하는 성분 데이터들은 DPCM 모드 복호화기(1512)로 입력된다(S1731).Referring to FIG. 17A, component data including a symbol, a symbol flag, and a position index of each entropy decoded vertex are input to a DPCM mode decoder 1512 (S1731).

DPCM 모드 복호화기(1512)는 입력된 차분 데이터를 역 DPCM 처리부(1530)로 출력하기에 앞서, 역 DPCM 처리부(1530)에서 각 정점의 각 성분의 차분 데이터에 대해서 수행될 역 DPCM 연산 모드를 복호화한다(S1732).The DPCM mode decoder 1512 decodes the inverse DPCM operation mode to be performed on the difference data of each component of each vertex in the inverse DPCM processing unit 1530 before outputting the input difference data to the inverse DPCM processing unit 1530. (S1732).

이하, 도 19a를 참조하여 DPCM 모드 복호화 방법을 설명한다.Hereinafter, a DPCM mode decoding method will be described with reference to FIG. 19A.

DPCM 모드 복호화 방법은 각 정점의 각 성분의 DPCM 모드의 조합을 나타내는 심볼의 숫자가 27 개로 고정되고, 따라서 심볼 테이블의 크기가 27 로 고정된다는 점을 제외하면, 후술할 증가 모드 복호화 방법과 동일하다.The DPCM mode decoding method is the same as the incremental mode decoding method described later, except that the number of symbols representing the combination of DPCM modes of each component of each vertex is fixed to 27, and thus the size of the symbol table is fixed to 27. .

DPCM 모드 복호화기(1512)는 입력된 DPCM 모드 플래그를 입력받아, 플래그에 대응되는 심볼을 입력된 인덱스에 따라서 데이터 열에 기록하게 된다.The DPCM mode decoder 1512 receives the input DPCM mode flag, and records a symbol corresponding to the flag in the data string according to the input index.

예컨대, 도 19a 에 도시된 바에 따르면, 입력된 DPCM 모드 플래그에 대응되는 심볼은 1 (T T S), 4 (T S S), 및 5 (T S T+S) 이고, 각 심볼에 대응되는 인덱스는 (0 1 0 1 0 0), (1 0 1 0), 및 (1 1)이다. 따라서, 심볼 1 에 대응되는 인덱스에 따라서 심볼 1을 기록하면 데이터 열은 (X 1 X 1 X X) 가 되고, 심볼 4 에 대응되는 인덱스에 따라서 심볼 4를 기록하면 데이터 열은 (4 1 X 1 4 X) 가 되며, 심볼 5 에 대응되는 인덱스에 따라서 심볼 5를 기록하면 데이터 열은 (4 1 5 1 4 5)가 된다.For example, as shown in FIG. 19A, the symbols corresponding to the input DPCM mode flags are 1 (TTS), 4 (TSS), and 5 (TS T + S), and the index corresponding to each symbol is (0 1). 0 1 0 0), (1 0 1 0), and (1 1). Therefore, if symbol 1 is recorded according to the index corresponding to symbol 1, the data string becomes (X 1 X 1 XX), and if symbol 4 is recorded according to the index corresponding to symbol 4, the data string is (4 1 X 1 4). X), and when the symbol 5 is recorded according to the index corresponding to the symbol 5, the data string becomes (4 1 5 1 4 5).

복원된 데이터 열 (4 1 5 1 4 5)을 각 심볼에 대응되는 DPCM 모드로 변환하면, (T S S) (T T S) (T S T+S) (T T S) (T S S) (T S T+S) 이 된다. 따라서, 각정점의 각 성분에 어떠한 DPCM 연산이 수행되었는지 알 수 있다.Converting the recovered data stream (4 1 5 1 4 5) to the DPCM mode corresponding to each symbol, it becomes (TSS) (TTS) (TS T + S) (TTS) (TSS) (TS T + S). . Therefore, it is possible to know which DPCM operation is performed on each component of each vertex.

DPCM 모드 복호화기(1512)는 각 정점의 각 성분의 차분 데이터를 복호화된 DPCM 모드 정보와 함께 사전 모드 선택부(1514)로 출력한다.The DPCM mode decoder 1512 outputs difference data of each component of each vertex to the dictionary mode selector 1514 together with the decoded DPCM mode information.

사전 모드 선택부(1514)는 각 정점의 각 성분의 nDicModeSelect 값에 따라서 DPCM 모드 복호화기(1512)로부터 입력된 각 성분 데이터를 발생 모드 복호화기(1516) 또는 증가모드 복호화기로 출력한다(S1734).The dictionary mode selector 1514 outputs each component data input from the DPCM mode decoder 1512 to the generation mode decoder 1516 or the incremental mode decoder according to the nDicModeSelect value of each component of each vertex (S1734).

사전 모드 선택부(1514)는, nDicModeSelect 값이 0 이면 해당 정점의 성분 데이터를 발생 모드 복호화기(1516)로 출력하고, nDicModeSelect 값이 1 이면 해당 정점의 성분 데이터를 증가 모드 복호화기(1518)로 출력한다.If the nDicModeSelect value is 0, the dictionary mode selector 1514 outputs the component data of the vertex to the generation mode decoder 1516. If the nDicModeSelect value is 1, the dictionary mode selector 1514 outputs the component data of the vertex to the incremental mode decoder 1518. Output

발생 모드 복호화기(1516)는 입력된 각 성분의 심볼 데이터 및 위치 인덱스를 차분 데이터들로 복원한다(S1736).The generation mode decoder 1516 restores the input symbol data and the position index of each component into differential data (S1736).

발생 모드 복호화 방법을 예시하는 도 19b를 참조하면, 발생 모드 복호화기(1516)는 사전 모드 선택부(1514)로부터 심볼 데이터를 입력받고, bSoleKV 및 nTrueOne 플래그를 조사한다.Referring to FIG. 19B, which illustrates a generation mode decoding method, the generation mode decoder 1516 receives symbol data from a pre-mode selection unit 1514 and examines bSoleKV and nTrueOne flags.

bSoleKV 플래그가 입력된 심볼이 여러개 존재하는 것을 나타내고, nTrueOne 플래그가 이후 입력되는 위치 인덱스가 반전되지 않았음을 나타내면, 발생 모드 복호화기(1516)는 입력된 심볼을 위치 인덱스가 가리키는 위치의 데이터열에 삽입함으로써 차분 데이터를 복원한다.If the bSoleKV flag indicates that there are several symbols entered, and the nTrueOne flag indicates that the position index to be input afterwards is not inverted, the generation mode decoder 1516 inserts the input symbol into the data string at the position indicated by the position index. By doing so, the difference data is restored.

예컨대, 발생 모드 복호화기(1516)는 부호화될 때 발생된 순서대로 심볼 (3, 7, -4)을 입력받고, 입력된 각각의 심볼에 대응되는 인덱스 (0 1 0 0 0 1 0 1 0 00), (1 0 1 0 1 0 0) 및 (1 1 1)을 입력받는다.For example, the generation mode decoder 1516 receives the symbols (3, 7, -4) in the order in which they are generated when they are encoded, and indexes corresponding to each of the input symbols (0 1 0 0 0 1 0 1 0 00 ), (1 0 1 0 1 0 0) and (1 1 1).

발생 모드 복호화기(1516)는 첫 번째 심볼 3 을 복원될 차분 데이터열에 기록하고, 이후, 입력된 인덱스의 1 이 설정된 차분 데이터 열의 위치에 심볼 3을 기록한다. 따라서, 도 19a 에 도시된 바와 같이, 심볼 3 의 발생 모드 부호화과정이 종료되면, 차분 데이터 열은 (3 x 3 x x x 3 x 3 x x x)로 채워진다.The generation mode decoder 1516 records the first symbol 3 in the differential data string to be restored, and then records the symbol 3 at the position of the differential data string in which 1 of the input index is set. Therefore, as shown in FIG. 19A, when the generation mode encoding process of symbol 3 is finished, the differential data sequence is filled with (3 x 3 x x x 3 x 3 x x x).

발생모드 복호화기는 다음 심볼 7을 복원한다. 다만, 심볼 7을 복원할 때, 차분 데이터 열에서 이전 심볼 3 이 기록된 위치는 고려하지 않는다. 따라서, 심볼 7 에 대응되는 인덱스는 (0 1 0 1 0 0 0 1 0 0)이 아닌 (1 0 1 0 1 0 0)이 된다.The generation mode decoder restores the next symbol 7. However, when restoring the symbol 7, the position where the previous symbol 3 is recorded in the differential data string is not taken into account. Therefore, the index corresponding to the symbol 7 becomes (1 0 1 0 1 0 0) rather than (0 1 0 1 0 0 0 1 0 0).

발생 모드 복호화기(1516)는 심볼 7을 이미 복원된 심볼 3 이 기록되지 않은 첫 번째 위치에 기록하고, 그 후, 심볼 7 에 대응되는 인덱스가 1 로 설정된 위치에 심볼 7을 기록한다. 따라서, 심볼 7 이 복원된 차분 데이터 열은 (3 7 3 7 x 7 3 x 3 7 x x) 이 된다.The generation mode decoder 1516 records the symbol 7 at the first position where the symbol 3, which has already been restored, is not recorded, and then records the symbol 7 at the position at which the index corresponding to the symbol 7 is set to 1. Therefore, the differential data sequence from which the symbol 7 is restored becomes (3 7 3 7 x 7 3 x 3 7 x x).

발생 모드 복호화기(1516)는 마지막 심볼 -4를 인덱스 (1 1 1) 에 따라서 복원하고, 최종 복원된 차분 데이터 열은 (3 7 3 7 -4 7 3 -4 3 7 4 -4) 이 된다.The generation mode decoder 1516 restores the last symbol -4 according to the index (1 1 1), and the last reconstructed differential data string becomes (3 7 3 7 -4 7 3 -4 3 7 4 -4). .

한편, 상술한 bSoleKV 가 1 로 설정되었다면, 이것은 입력된 심볼이 오직 1 개만 차분 데이터에 존재한다는 것을 의미하므로, 입력된 심볼에 대응되는 위치 인덱스는 존재하지 않고, 따라서, 발생 모드 복호화기(1516)는 입력된 심볼을 심볼이 기록되지 않은 차분 데이터 열의 첫 번째 위치에 기록하고, 다음 심볼의 복원 과정을 수행한다.On the other hand, if the above-described bSoleKV is set to 1, this means that only one input symbol exists in the difference data, and therefore, there is no position index corresponding to the input symbol, and thus, the generation mode decoder 1516. Writes the input symbol at the first position of the differential data string in which the symbol is not recorded, and performs a restoration process of the next symbol.

한편, 증가 모드 복호화기(1518)는 입력된 각 성분의 심볼 플래그 및 위치 인덱스를 차분 데이터들로 복원한다(S1736). 이하, 증가 모드 복호화 방법의 일예를 도시하는 도 19c를 참조하여, 증가 모드 복호화 방법을 설명한다.On the other hand, the incremental mode decoder 1518 restores the input symbol flag and the position index of each component to differential data (S1736). Hereinafter, an incremental mode decoding method will be described with reference to FIG. 19C showing an example of the incremental mode decoding method.

증가 모드 복호화기(1518)는 사전 모드 선택부(1514)로부터 심볼의 존재여부를 나타내는 심볼 플래그, 위치 인덱스가 반전되었는지를 나타내는 nTrueOne 플래그, 및 위치 인덱스를 입력받는다.The incremental mode decoder 1518 receives a symbol flag indicating whether a symbol exists, an nTrueOne flag indicating whether a position index is inverted, and a position index from the dictionary mode selector 1514.

증가 모드 복호화기(1518)는 입력된 심볼 플래그로부터 차분 데이터에 포함되는 심볼들을 복호화하는데, 증가 모드 부호화 방법에서 설명한 바와 같이, 심볼 테이블은 크기의 오름차순으로 정리되며, 양수가 음수보다 상위에 위치한다 (i.e. 0, 1, -1, 2, -2, 3, -3 등등). 또한, 심볼 플래그의 사이즈는 2(nKVCodingBit+1)-1 이며, nKVCodingBit 은 엔트로피 복호화기(1505)에서 복호화된 양자화 비트수를 나타낸다. 따라서, 심볼 플래그가 (0 0 1 1 0 0 1) 라면, 증가 모드 복호화기(1518)는 차분 데이터에 존재하는 심볼로서 -1, 2 및 -3을 복호화한다.The incremental mode decoder 1518 decodes the symbols included in the differential data from the input symbol flag. As described in the incremental mode encoding method, the symbol table is arranged in ascending order of magnitude, and a positive number is higher than a negative number. (ie 0, 1, -1, 2, -2, 3, -3, etc.). In addition, the size of the symbol flag is 2 (nKVCodingBit + 1) −1, and nKVCodingBit represents the number of quantized bits decoded by the entropy decoder 1505. Thus, if the symbol flag is (0 0 1 1 0 0 1), the incremental mode decoder 1518 decodes -1, 2 and -3 as symbols present in the differential data.

또한, 심볼 플래그 다음에 입력된 인덱스는 (1 0 1 0 0 0 1 0 1 0 0 0), (0 0 1 0 1 0 1 1), (1 1 1 1) 이고, 이들은 심볼 (-1, 2, 3) 에 각각 대응된다.Also, the indexes entered after the symbol flags are (1 0 1 0 0 0 1 0 1 0 0 0), (0 0 1 0 1 0 1 1), (1 1 1 1), and these are symbols (-1, 2 and 3) respectively.

증가 모드 복호화기(1518)는 첫 번째 심볼 -1 에 대응되는 인덱스(1 0 1 0 0 0 1 0 1 0 0 0)에서 1 로 설정된 위치에 -1을 기록한다. 따라서, 첫 번째 심볼에 대해서 복원된 차분 데이터 열은 (-1 x -1 x x x -1 x -1 x x x) 와 같다.The incremental mode decoder 1518 writes -1 at a position set to 1 at an index (1 0 1 0 0 0 1 0 1 0 0 0) corresponding to the first symbol -1. Thus, the differential data sequence reconstructed for the first symbol is equal to (−1 × −1 ××× −1 × −1 ×× x).

그 후, 증가 모드 복호화기(1518)는 두 번째 심볼 2 를 인덱스 (0 0 1 0 1 0 1 1) 의 1 이 설정된 위치에 기록하여 심볼 2를 복원한다. 다만, 이 경우에도 첫번째 심볼 -1 이 기록된 위치는 고려하지 않으므로, 심볼 2 까지 기록된 차분 데이터 열은 (-1 x -1 x 2 x -1 2 -1 x 2 2)와 같다.The incremental mode decoder 1518 then writes the second symbol 2 to the position where index 1 (0 0 1 0 1 0 1 1) is set to recover symbol 2. However, even in this case, since the position where the first symbol -1 is written is not considered, the difference data string recorded up to symbol 2 is equal to (-1 x -1 x 2 x -1 2 -1 x 2 2).

증가 모드 복호화기(1518)는 마지막 심볼 -3 을 인덱스 (1 1 1 1)의 1 이 설정된 위치에 기록하여, 심볼 -3 을 복원한다. 최종 복원된 차분 데이터 열은 (-1 -3 -1 -3 2 -3 -1 2 -1 -3 2 2)와 같다.The incremental mode decoder 1518 writes the last symbol -3 at a position where 1 of the index (1 1 1 1) is set, and restores the symbol -3. The final reconstructed differential data string is equal to (-1 -3 -1 -3 2 -3 -1 2 -1 -3 2 2).

상술한 발생 모드 복호화기(1516) 및 증가 모드 복호화기(1518)는 각 정점의 각 성분의 차분 데이터를 복원하여, 복원된 차분 데이터를 역 DPCM 처리부(1530)로 출력한다(S1739).The generation mode decoder 1516 and the increment mode decoder 1518 described above restore the difference data of each component of each vertex, and output the restored difference data to the inverse DPCM processing unit 1530 (S1739).

도 16b 는 본 발명의 역 DPCM 처리부(1530)의 구성을 도시하는 블록도이고, 도 17b 는 역 DPCM 연산 방법을 설명하는 흐름도이다.FIG. 16B is a block diagram showing the configuration of the reverse DPCM processing unit 1530 of the present invention, and FIG. 17B is a flowchart for explaining the reverse DPCM calculation method.

도 16b를 참조하면, 본 발명의 역 DPCM 처리부(1530)는 입력된 차분 데이터에 역 시간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 좌표 인터폴레이터의 키 값 데이터를 출력하는 역 시간 DPCM 연산부(1542), 입력된 차분 데이터에 역 공간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 키 값 데이터를 출력하는 역 공간 DPCM 연산부(1544), 입력된 차분 데이터에 역 시공간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 키 값 데이터를 출력하는 역 시공간 DPCM 연산부(1546), 및 입력된 각 정점의 DPCM 모드에 따라서 사전 복호화기(1510)로부터 입력된 차분 데이터를 역 시간 DPCM 연산부(1542), 역 공간 DPCM 연산부(1544), 및 역 시공간 DPCM 연산부(1546) 중 어느 하나로 출력하는 역 DPCM 모드 선택부(1535)를 포함한다.Referring to FIG. 16B, an inverse DPCM processing unit 1530 of the present invention outputs key value data of a quantized coordinate interpolator by performing inverse time DPCM operation and inverse cyclic quantization on input difference data. ), An inverse spatial DPCM operation unit 1544 that outputs quantized key value data by performing inverse spatial DPCM operation and inverse cyclic quantization on the input difference data, and performs inverse space-time DPCM operation and inverse cyclic quantization on the input difference data An inverse time-space DPCM operation unit 1546 for outputting quantized key value data, and inverse time DPCM operation unit 1542 and an inverse space DPCM operation unit for differential data input from the predecoder 1510 according to the DPCM mode of each vertex inputted. 1544, and an inverse DPCM mode selection unit 1535 for outputting to any one of the inverse space-time DPCM calculating unit 1546.

도 17b를 참조하면, 역 DPCM 모드 선택부(1535)는 사전 복호화기(1510)의 DPCM 모드 복호화기(1512)에서 복원된 각 정점의 각 성분의 DPCM 연산 모드에 따라서 입력된 차분 데이터에 수행될 역 DPCM 연산을 결정하고, 각 정점의 각 성분의 차분 데이터를 결정된 역 DPCM 연산 모드에 따라서 출력한다(S1742).Referring to FIG. 17B, an inverse DPCM mode selector 1535 may be performed on differential data input according to a DPCM operation mode of each component of each vertex restored by the DPCM mode decoder 1512 of the predecoder 1510. The inverse DPCM operation is determined, and the difference data of each component of each vertex is output according to the determined inverse DPCM operation mode (S1742).

각 DPCM 연산부는 입력된 차분 데이터에 대해서 역 DPCM 연산 및 역 순환 양자화를 동시에 수행한다.Each DPCM calculator performs inverse DPCM operation and inverse cyclic quantization on the input difference data.

역 시간 DPCM 연산부(1542)는 입력된 차분 데이터에 대해서 다음의 수학식 30 에 따라서 역 시간 DPCM 연산을 수행하고(S1744), 역 공간 DPCM 연산부(1544)는 다음의 수학식 31 에 따라서 역 공간 DPCM 연산을 수행하며(S1746), 역 시공간 DPCM 연산부(1546)는 다음의 수학식 32 에 따라서 역 시공간 DPCM 연산을 수행한다(S1748).The inverse time DPCM operation unit 1542 performs an inverse time DPCM operation on the input difference data according to Equation 30 below (S1744), and the inverse space DPCM operation unit 1544 performs the inverse space DPCM according to Equation 31 below. In operation S1746, the inverse space-time DPCM calculating unit 1546 performs an inverse space-time DPCM operation according to Equation 32 below (S1748).

상기 수학식들에서는 i 번째 키 프레임의 j 번째 정점의 양자화된 키값 데이터를 나타내고,는 i 번째 키 프레임의 j 번째 정점의 차분 데이터를 나타내며, Ref 는 기준 정점을 나타낸다.In the above equations Denotes quantized key value data of the j th vertex of the i th key frame, Denotes the difference data of the j-th vertex of the i-th key frame, and Ref represents the reference vertex.

상기 수학식 31 및 수학식 32 에서,또는가 양자화된 최소값 보다 작으면 양자화된 최소값을 상기 값들 대신에 사용하고,또는가 양자화된 최대값보다 크면 양자화된 최대값을 상기 값들 대신에 사용한다.In Equation 31 and Equation 32, or Is less than the quantized minimum, use the quantized minimum instead of the above values, or If is greater than the quantized maximum, then the quantized maximum is used instead of the values.

역 DPCM 연산을 수행한 각 DPCM 연산부는 다음의 수학식 33 을 이용하여 역 DPCM 연산을 수행하며, 동시에 역 순환 양자화를 수행하여 부호화과정에서 감소된 차분 데이터의 범위를 확장한다.Each DPCM operation unit performing the inverse DPCM operation performs an inverse DPCM operation using Equation 33 below, and simultaneously performs inverse cyclic quantization to expand the range of the differential data reduced in the encoding process.

상기 수학식 33 에서와 동일한 입력 값이고,,또는와 같은 이전에 역 순환 양자화된 값들이다. 또한, nQMax 는 차분 데이터들 중 최대값을 나타내고, nQMin 은 차분 데이터들 중 최소값을 나타낸다.In Equation 33 Is Is the same input value as Is , or Previously inverse cyclic quantized values, such as In addition, nQMax represents the maximum value of the difference data, and nQMin represents the minimum value of the difference data.

역 DPCM 처리부(1530)는 각 정점의 각 성분에 대해서 역 DPCM 연산 및 역 순환 양자화된 양자화된 키 값 데이터를 역 양자화기(1550)로 출력한다(S1749).The inverse DPCM processor 1530 outputs an inverse DPCM operation and an inverse cyclic quantized quantized key value data for each component of each vertex to the inverse quantizer 1550 (S1749).

도 15b를 다시 참조하면, 역 양자화기(1550)는 키 값 헤더 복호화기(1800)로부터 입력된 각 성분 데이터의 최소값(fMin_X, fMin_Y, 및 fMin_Z) 및 최대 범위값(fMax)을 상기 수학식 4 의 관계에 따라서 2 진수 체계의 실수로 변환한 후, 이 값들을 이용하여 다음의 수학식 34 에 따라서 입력된 양자화된 키 값 데이터를 역 양자화한다.Referring back to FIG. 15B, the inverse quantizer 1550 calculates the minimum values fMin_X, fMin_Y, and fMin_Z and the maximum range value fMax of each component data input from the key value header decoder 1800. After converting to a real number of a binary system according to the relation of, and using these values, the input quantized key value data is inversely quantized according to Equation 34 below.

상기 수학식 34 에서 nKVQBits 는 역 양자화에 이용되는 양자화 비트 사이즈이다.In Equation 34, nKVQBits is a quantization bit size used for inverse quantization.

한편, 역 양자화기(1550)는 역 양자화된 각 정점의 각 성분의 키 값 데이터를 표 3 에 기재된 행렬 형식으로 출력하여야 한다. 따라서, 역 양자화기(1550)는 키 값 데이터를 출력하기 전에 역 양자화된 키 값 데이터의 모드가 전치 모드인지를 조사한다(S1760). 만약, 역 양자화된 키 값 데이터가 전치 모드라면, 역 양자화기(1550)는 전치 행렬을 역 변환하여 복호화된 좌표 인터폴레이터의 키 값 데이터를 출력한다(S1765).Meanwhile, the inverse quantizer 1550 should output key value data of each component of each inverse quantized vertex in the matrix format described in Table 3. Accordingly, the inverse quantizer 1550 checks whether the mode of the inverse quantized key value data is a pre-mode before outputting the key value data (S1760). If the inverse quantized key value data is the pre-mode, the inverse quantizer 1550 inversely transforms the prematrix to output key value data of the decoded coordinate interpolator (S1765).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명의 좌표 인터폴레이터 부호화 장치는 단조 증가하는 키 데이터의 성질을 이용하여 키 데이터를 부호화하는 키 데이터 부호화기를 포함하여 고효율로 애니메이션 키 데이터를 부호화할 수 있고, 공간적인 상관관계 뿐 아니라 시간적인 상관관계도 고려하여 키 값 데이터를 부호화하는 키 값 데이터 부호화기를 포함하여 고효율로 키 값 데이터를 부호화할 수 있어, 적은 데이터 양으로 고화질의 애니메이션을 복원할 수 있다.The coordinate interpolator encoding apparatus of the present invention can encode animation key data with high efficiency by including a key data encoder for encoding key data by using a monotonically increasing property of key data, and not only spatial correlation but also temporal correlation. The key value data can be encoded with high efficiency, including a key value data encoder for encoding the key value data in consideration of the relationship, so that high quality animation can be restored with a small amount of data.

Claims (21)

키 프레임 기반의 그래픽 에니메이션 방식에서, 키 프레임의 시간축상의 위치를 나타내는 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 키 프레임상의 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화하는 장치로서,In a key frame-based graphic animation scheme, the key data includes key data representing a position on a time axis of a key frame, and key value data representing a position of an object on a key frame in coordinates of vertices including x, y, and z components. An apparatus for encoding a coordinate interpolator, 좌표 인터폴레이터의 키 데이터들을 소정의 양자화 비트로 양자화하는 제 1 양자화기,A first quantizer for quantizing the key data of the coordinate interpolator into predetermined quantization bits, 상기 양자화된 키 데이터들의 차분 데이터들을 생성하는 제 1 DPCM 처리부,A first DPCM processor configured to generate differential data of the quantized key data; 상기 차분 데이터들과 상기 차분 데이터들의 최대값 및 최소값과의 관계에 따라서 상기 차분 데이터들의 범위를 줄이는 DND 연산을 수행하는 DND 처리부, 및A DND processor for performing a DND operation to reduce the range of the difference data according to the relationship between the difference data and the maximum and minimum values of the difference data, and 상기 DND 처리부로부터 입력된 차분 데이터를 부호화하는 제 1 엔트로피 부호화기를 포함하는 키 데이터 부호화기;A key data encoder including a first entropy encoder for encoding difference data input from the DND processor; 좌표 인터폴레이터의 키 값 데이터를 소정의 양자화 비트수로 양자화하는 제 2 양자화기,A second quantizer for quantizing the key value data of the coordinate interpolator to a predetermined number of quantization bits, 양자화된 키 값 데이터의 각 정점 성분에 대해서 소정 모드의 DPCM 연산을 수행하여 각 정점 좌표의 시간적 변화에 따른 차분 데이터 및 공간적 변화에 따른 차분 데이터를 생성하는 제 2 DPCM 처리부,A second DPCM processing unit performing DPCM operation of a predetermined mode on each vertex component of the quantized key value data to generate difference data according to temporal change of each vertex coordinate and difference data according to spatial change; DPCM 연산된 각 정점 성분의 차분 데이터 및 상기 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 상기 심볼의 위치를 나타내는 인덱스를 생성하는 사전 부호화기, 및A pre-encoder for generating differential data of each vertex component computed by DPCM and a symbol representing a DPCM operation mode performed on the differential data and an index indicating a position of the symbol; and 상기 심볼 및 인덱스를 엔트로피 부호화하는 제 2 엔트로피 부호화기를 포함하는 키 값 데이터 부호화기; 및A key value data encoder comprising a second entropy encoder for entropy encoding the symbols and indices; And 상기 키 데이터 부호화기 및 상기 키 값 데이터 부호화기에서 부호화된 비트스트림의 복호화에 필요한 정보를 부호화하는 헤더 부호화기를 포함하는 것을 특징으로 하는 부호화 장치.And a header encoder for encoding information necessary for decoding the bitstream encoded by the key data encoder and the key value data encoder. 제 1 항에 있어서, 상기 키 데이터 부호화기는The method of claim 1, wherein the key data encoder 입력되는 전체 키 데이터들 중 키 데이터들이 선형으로 증가하는 영역을 식별하여 부호화하는 선형 키 부호화기를 더 포함하는 것을 특징으로 하는 부호화 장치.And a linear key encoder for identifying and encoding an area in which key data increases linearly among all input key data. 제 1 항에 있어서, 상기 키 데이터 부호화기는The method of claim 1, wherein the key data encoder 상기 제 1 DPCM 처리부로부터 입력된 차분 데이터들 중 가장 빈도수가 높은 차분 데이터(모드)를 구하고, 상기 차분 데이터들에서 상기 모드를 감산하는 쉬프팅부, 및A shifting unit for obtaining differential data (mode) having the highest frequency among the differential data input from the first DPCM processing unit, and subtracting the mode from the differential data; and 상기 쉬프팅 연산된 차분 데이터들을 양수 또는 음수 영역으로 변환하는 폴딩 처리부를 더 포함하고,The apparatus may further include a folding processor configured to convert the shifted difference data into a positive or negative region. 상기 DND 처리부는 부호화에 필요한 비트수에 따라서 상기 쉬프팅부로부터 입력된 차분 데이터, 상기 폴딩 처리부로부터 입력된 차분 데이터, 및 DND 연산된 차분 데이터 중 하나를 선택하여 출력하는 것을 특징으로 하는 부호화 장치.And the DND processing unit selects and outputs one of differential data input from the shifting unit, differential data input from the folding processing unit, and DND calculated differential data according to the number of bits required for encoding. 제 1 항에 있어서, 상기 제 2 DPCM 처리부는The method of claim 1, wherein the second DPCM processing unit 상기 양자화된 키 값 데이터의 각 정점 성분에 대해서 키 프레임간의 제 1 차분 데이터를 생성하는 시간 DPCM 연산, 동일한 키 프레임내의 정점간의 제 2 차분 데이터를 생성하는 공간 DPCM 연산, 및 키 프레임 및 정점간의 제 3 차분 데이터를 생성하는 시공간 DPCM 연산을 각각 수행하는 DPCM 연산부;A time DPCM operation for generating first difference data between key frames for each vertex component of the quantized key value data, a spatial DPCM operation for generating second difference data between vertices within the same key frame, and a first between key frame and vertex A DPCM operation unit which performs a space-time DPCM operation for generating third-order data; 상기 DPCM 연산부로부터 입력된 제 1 내지 제 3 차분 데이터에 대해서, 차분 데이터의 범위를 감소시키는 순환 양자화를 수행하는 순환 양자화기; 및A cyclic quantizer for performing cyclic quantization for reducing the range of the difference data with respect to the first to third difference data inputted from the DPCM calculating unit; And 부호화에 필요한 비트수에 따라서 순환 양자화된 제 1 내지 제 3 차분 데이터 중 하나를 선택하여 출력하는 DPCM 모드 선택부를 포함하는 것을 특징으로 하는 부호화 장치.And a DPCM mode selector for selecting and outputting one of the first to third differential data cyclically quantized according to the number of bits required for encoding. 제 1 항에 있어서, 상기 사전 부호화기는The method of claim 1, wherein the pre-encoder 상기 각 정점에 대해서, 각 정점 성분 데이터에 대해서 수행된 DPCM 모드의 조합을 나타내는 심볼들 및 상기 심볼들의 위치를 나타내는 인덱스를 생성하는 DPCM 모드 부호화기; 및A DPCM mode encoder generating, for each vertex, symbols representing a combination of DPCM modes performed on each vertex component data and an index representing the position of the symbols; And 입력된 각 정점 성분의 차분 데이터에 대응되는 심볼들 및 상기 심볼들의 위치를 나타내는 인덱스를 생성하는 발생 모드 부호화기를 포함하는 것을 특징으로 하는 부호화 장치.And a generation mode encoder for generating indexes representing the positions of the symbols and symbols corresponding to the difference data of the respective vertex components. 키 프레임 기반의 그래픽 에니메이션 방식에서, 키 프레임의 시간축상의 위치를 나타내는 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 키 프레임상의 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화한 비트스트림을 복호화하는 장치로서,In a key frame-based graphic animation scheme, the key data includes key data representing a position on a time axis of a key frame, and key value data representing a position of an object on a key frame in coordinates of vertices including x, y, and z components. An apparatus for decoding a bitstream encoding a coordinate interpolator, 입력된 비트스트림으로부터 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 출력하는 헤더 복호화기;A header decoder for decoding and outputting header information necessary for decrypting key and key value data from an input bitstream; 입력된 비트스트림을 엔트로피 복호화하여, 복호화된 키 데이터의 차분 데이터를 출력하는 제 1 엔트로피 복호화기,A first entropy decoder for entropy decoding the input bitstream and outputting differential data of the decrypted key data, 상기 헤더 복호화기로부터 판독된 DND 차수에 따라서 상기 엔트로피 복호화된 키 데이터의 차분 데이터에 역 DND 연산을 수행하여 차분 데이터의 범위를 확장하는 역 DND 처리부,An inverse DND processing unit for performing an inverse DND operation on the difference data of the entropy-decrypted key data according to the DND order read from the header decoder to expand a range of the difference data; 상기 역 DND 처리부로부터 입력된 차분 데이터에 상기 헤더 복호화기로부터 입력된 DPCM 차수만큼 역 DPCM 연산을 수행하여 양자화된 키 데이터를 출력하는 제 1 역 DPCM 처리부, 및A first inverse DPCM processor for performing inverse DPCM operations on difference data input from the inverse DND processor by the DPCM order input from the header decoder to output quantized key data; and 상기 양자화된 키 데이터를 역 양자화하여 복호화된 키 데이터를 출력하는 제 1 역 양자화기를 포함하는 키 데이터 복호화기; 및A key data decoder comprising a first inverse quantizer for inversely quantizing the quantized key data and outputting the decrypted key data; And 입력된 비트스트림을 엔트로피 복호화하여 DPCM 연산된 키 값 데이터의 차분 데이터의 심볼들, 상기 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 제 2 엔트로피 복호화기,A second entropy decoder that entropy decodes the input bitstream to generate data to be pre-decrypted including symbols of differential data of DPCM-operated key value data, an index indicating the positions of the symbols, and a DPCM operation mode; 상기 헤더 복호화기로부터 입력된 사전 복호화 모드 정보에 따라서 사전 복호화 연산을 수행하여 키 값 데이터의 차분 데이터를 생성하는 사전 복호화기,A pre-decoder for generating differential data of key value data by performing a pre-decryption operation according to the pre-decryption mode information inputted from the header decoder; 상기 DPCM 연산 모드에 따라서 상기 사전 복호화기로부터 입력된 키 프레임간의 차분 데이터 및 각 정점간의 차분 데이터를 복원하여 양자화된 데이터를 생성하는 제 2 역 DPCM 처리부, 및A second inverse DPCM processing unit for generating quantized data by restoring difference data between key frames and difference data between respective vertices according to the DPCM operation mode; and 상기 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 제 2 역 양자화기를 포함하는 키 값 데이터 복호화기를 포함하는 것을 특징으로 하는 복호화 장치.And a key value data decoder comprising a second inverse quantizer for inversely quantizing the quantized data to generate reconstructed key value data. 제 6 항에 있어서, 상기 키 데이터 복호화기는The method of claim 6, wherein the key data decryptor 상기 역 DND 처리부로부터 차분 데이터를 입력받아 상기 헤더 복호화기로부터 입력된 상기 DND 차수에 따라서 차분 데이터의 범위를 음수와 양수로 분리하는 역 폴딩연산을 수행하거나, 바이패스 하는 역 폴딩 처리부; 및A reverse folding processing unit for receiving the difference data from the inverse DND processing unit and performing a reverse folding operation for separating the difference data into a negative number and a positive number according to the DND order input from the header decoder; And 상기 역 DND 처리부 또는 상기 역 폴딩 처리부로부터 입력된 차분 데이터에 상기 헤더 복호화기로부터 수신된 소정의 모드를 합산하여 차분 데이터의 범위를 이동시키는 역 쉬프팅부를 더 포함하며,The apparatus may further include an inverse shifting unit configured to add a predetermined mode received from the header decoder to the difference data input from the inverse DND processing unit or the inverse folding processing unit to move a range of the difference data. 상기 제 1 역 DPCM 처리부는 상기 역 쉬프팅부로부터 입력된 차분 데이터를 복원하여 양자화된 키 데이터를 출력하는 것을 특징으로하는 복호화 장치.And the first inverse DPCM processing unit restores the difference data inputted from the inverse shifting unit and outputs quantized key data. 제 6 항에 있어서, 상기 제 2 역 DPCM 처리부는The method of claim 6, wherein the second reverse DPCM processing unit 동일한 정점의 키 프레임간의 차분 데이터에 대해서 역 DPCM 연산을 수행하는 역 시간 DPCM 연산부;An inverse time DPCM operation unit performing an inverse DPCM operation on difference data between key frames of the same vertex; 동일한 키 프레임내의 각 정점과 상기 각 정점에 대응되는 기준 정점간의 차분 데이터에 대해서 역 DPCM 연산을 수행하는 역 공간 DPCM 연산부; 및An inverse spatial DPCM calculating unit performing an inverse DPCM operation on difference data between each vertex in the same key frame and a reference vertex corresponding to each vertex; And 상기 DPCM 연산 모드에 따라서 차분 데이터를 상기 역 시간 DPCM 연산부 또는 상기 역 공간 DPCM 연산부로 출력하는 역 DPCM 모드 선택부를 포함하는 것을 특징으로 하는 복호화 장치.And an inverse DPCM mode selector configured to output difference data to the inverse time DPCM operation unit or the inverse spatial DPCM operation unit according to the DPCM operation mode. 키 프레임 기반의 그래픽 애니메이션 방식에서, 키 프레임의 시간축상의 위치 정보인 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화한 비트스트림으로서,In a key frame-based graphic animation scheme, a coordinate interpolator including key data, which is position information on a time axis of a key frame, and key value data representing a position of an object in coordinates of vertices including x, y, and z components. Is a bitstream encoded by 상기 비트스트림은 키 데이터를 부호화한 키 데이터 부호화/복호화 정보 및 키 값 데이터를 부호화한 키 값 데이터 부호화/복호화 정보를 포함하고,The bitstream includes key data encoding / decoding information encoding key data and key value data encoding / decoding information encoding key value data. 상기 키 데이터 부호화/복호화 정보는The key data encoding / decoding information is 상기 키 데이터 비트스트림을 엔트로피 복호화하여 생성된 차분 데이터의 범위를 확장시키는 역 DND 연산을 수행할 회수를 나타내는 역 DND 차수 및 각 역 DND 차수에서의 역 DND 연산에 이용되는 최대값 및 최소값을 포함하는 역 DND 연산 정보,An inverse DND order indicating the number of times to perform an inverse DND operation that extends the range of differential data generated by entropy decoding the key data bitstream, and a maximum value and a minimum value used for an inverse DND operation in each inverse DND order. Inverse DND operation information, 상기 역 DND 연산이 수행된 차분 데이터를 양자화된 키 데이터로 변환하는 역 DPCM 연산의 회수 및 각 회수의 역 DPCM 연산에 이용되는 인트라 키 데이터를 포함하는 제 1 역 DPCM 연산 정보, 및First reverse DPCM operation information including a number of inverse DPCM operations for converting the difference data on which the inverse DND operation is performed into quantized key data and intra key data used for each inverse DPCM operation, and 상기 양자화된 키 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 1 역 양자화 정보를 포함하며,First inverse quantization information used for inverse quantization for inversely quantizing the quantized key data to generate reconstructed key data; 상기 키 값 데이터 부호화/복호화 정보는The key value data encoding / decoding information is 상기 키 값 데이터 비트스트림으로부터 엔트로피 복호화된, 사전 부호화된 키 값 데이터의 차분 데이터를 나타내는 심볼에 관한 정보, 상기 심볼의 위치를 나타내는 제 1 위치 인덱스, 및 상기 제 1 위치 인덱스에 수행될 사전 복호화 방법을 나타내는 사전 복호화 모드를 포함하는 사전 복호화 정보,Information about a symbol representing differential data of pre-encoded key value data, entropy decoded from the key value data bitstream, a first position index indicating a position of the symbol, and a pre-decoding method to be performed on the first position index Pre-decoding information including a pre-decoding mode indicating a 사전 복호화된 각 정점 성분의 차분 데이터를 양자화된 키 값 데이터로 변환하는 역 DPCM 연산에 이용되는 역 DPCM 연산 모드의 조합을 나타내는 심볼의 위치를 나타내는 제 2 위치 인덱스를 포함하는 제 2 역 DPCM 연산 정보, 및Second inverse DPCM operation information including a second position index indicating a position of a symbol indicating a combination of inverse DPCM operation modes used for inverse DPCM operation for converting difference data of each pre-decoded vertex component into quantized key value data , And 상기 양자화된 키 값 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 2 역 양자화 정보를 포함하는 것을 특징으로 하는 비트스트림.And second inverse quantization information used for inverse quantization for inversely quantizing the quantized key value data to generate reconstructed key data. 제 9 항에 있어서, 상기 역 DND 연산 정보는10. The apparatus of claim 9, wherein the inverse DND operation information is 상기 역 DND 연산이 수행될 차분 데이터에 쉬프트 다운 연산을 수행할지 여부를 나타내는 플래그를 더 포함하는 것을 특징으로 하는 비트스트림.And a flag indicating whether to perform a shift down operation on the difference data on which the inverse DND operation is to be performed. 제 9 항에 있어서, 상기 제 1 역 양자화 정보는10. The method of claim 9, wherein the first inverse quantization information is 상기 양자화된 키 데이터의 역 양자화에 이용되는 역 양자화 비트 사이즈, 및 양자화된 키 데이터의 최대값 및 최소값을 포함하는 것을 특징으로 하는 비트스트림.And an inverse quantization bit size used for inverse quantization of the quantized key data, and a maximum and minimum value of the quantized key data. 제 11 항에 있어서,The method of claim 11, 상기 양자화된 키 데이터의 최대값 및 최소값은 양자화된 키 데이터의 양자화 오차를 최소화하는 양자화된 키 데이터의 최대값 및 최소값인 것을 특징으로 하는 비트스트림.And the maximum and minimum values of the quantized key data are the maximum and minimum values of the quantized key data that minimize the quantization error of the quantized key data. 제 9 항에 있어서, 상기 키 데이터 부호화/복호화 정보는10. The method of claim 9, wherein the key data encoding / decoding information is 상기 비트스트림에 포함된 선형 키 영역의 복호화를 위한 선형 키 복호화 정보를 더 포함하며, 상기 선형 키 복호화 정보는The apparatus further includes linear key decryption information for decrypting a linear key region included in the bitstream, wherein the linear key decryption information is 키 데이터 중에서 키 데이터가 선형으로 증가하는 선형 키 영역의 존재 여부를 나타내는 플래그, 상기 선형 키 영역에 포함되는 키 데이터의 개수, 상기 선형 키 영역의 시작 키 데이터 및 종료 키 데이터를 포함하는 것을 특징으로 하는 비트스트림.Among the key data, a flag indicating whether or not the linear key region linearly increases, the number of key data included in the linear key region, the start key data and the end key data of the linear key region, characterized in that it comprises Bitstream. 제 13 항에 있어서,The method of claim 13, 상기 시작 키 데이터의 및 종료 키 데이터는 10 진수 형식의 가수 및 지수로 부호화된 것을 특징으로 하는 비트스트림.And the start key data and the end key data are encoded with mantissa and exponent in decimal format. 제 9 항에 있어서, 상기 사전 복호화 정보는The method of claim 9, wherein the pre-decryption information is 상기 사전 복호화 모드가 발생 모드인 경우에는 상기 차분 데이터에 존재하는 차분 값에 대응되는 심볼 및 상기 심볼의 위치를 나타내는 위치 인덱스를 포함하고,When the pre-decoding mode is the generation mode, and includes a symbol corresponding to the difference value present in the difference data and a position index indicating the position of the symbol, 상기 사전 복호화 모드가 증가 모드인 경우에는 상기 차분 데이터에 존재하는 차분 값이 소정의 심볼 테이블에 존재하지를 나타내는 심볼 플래그 및 상기 심볼 플래그에 대응되는 심볼의 위치를 나타내는 위치 인덱스를 포함하는 것을 특징으로 하는 비트스트림.If the pre-decoding mode is an incremental mode, a symbol flag indicating whether a difference value present in the difference data exists in a predetermined symbol table and a position index indicating a position of a symbol corresponding to the symbol flag are included. Bitstream. 제 9 항에 있어서, 상기 제 2 역 DPCM 연산 정보는10. The apparatus of claim 9, wherein the second inverse DPCM operation information is 각 정점 성분에 수행될 역 DPCM 연산 모드의 조합을 나타내는 테이블에 포함되는 심볼들 중 각 정점 성분의 차분 데이터에 수행될 역 DPCM 연산에 대응되는 심볼의 존재여부를 나타내는 역 DPCM 모드 플래그를 더 포함하는 것을 특징으로 하는 비트스트림.And further including an inverse DPCM mode flag indicating whether a symbol corresponding to an inverse DPCM operation to be performed on differential data of each vertex component among symbols included in a table indicating a combination of inverse DPCM operation modes to be performed on each vertex component. And a bitstream. 제 16 항에 있어서, 상기 역 DPCM 연산 모드의 조합은17. The combination of claim 16, wherein the combination of inverse DPCM operation modes is 각 정점의 각 성분의 차분 데이터에 대해서 수행될 역 시간 DPCM 연산, 역 공간 DPCM 연산, 및 역 시공간 DPCM 연산의 조합을 나타내는 것을 특징으로 하는 비트스트림.And a combination of inverse time DPCM operations, inverse space DPCM operations, and inverse space time DPCM operations to be performed on the differential data of each component of each vertex. 제 17 항에 있어서, 상기 제 2 역 DPCM 연산 정보는18. The apparatus of claim 17, wherein the second inverse DPCM operation information is 상기 역 DPCM 모드 플래그에 의해서 차분 데이터에 수행될 역 DPCM 연산이 역 공간 DPCM 연산 또는 역 시공간 DPCM 연산인 경우에, 역 공간 DPCM 연산 또는 역 시공간 DPCM 연산이 수행될 정점에 대응하는 기준 정점을 나타내는 기준 정점 플래그를 더 포함하는 것을 특징으로 하는 비트스트림.If the inverse DPCM operation to be performed on the differential data by the inverse DPCM mode flag is an inverse space DPCM operation or an inverse space-time DPCM operation, a criterion indicating a reference vertex corresponding to a vertex to be performed in the inverse space DPCM operation or an inverse space-time DPCM operation And a vertex flag. 제 9 항에 있어서, 상기 제 2 역 양자화 정보는10. The method of claim 9, wherein the second inverse quantization information is 역 양자화를 수행할 키 값 데이터의 정점을 나타내는 정점 선택 플래그, 상기 정점 선택 플래그에 따라서 선택된 정점 성분의 키 값 데이터의 역 양자화에 이용될 키 값 데이터 중 최소값 및 최대 범위, 및 상기 선택된 정점의 키 값 데이터의 역 양자화에 이용되는 역 양자화 비트 사이즈를 포함하는 것을 특징으로 하는 비트스트림.A vertex selection flag indicating a vertex of key value data to be inverse quantized, a minimum value and a maximum range of key value data to be used for inverse quantization of key value data of a vertex component selected according to the vertex selection flag, and a key of the selected vertex A bitstream comprising an inverse quantization bit size used for inverse quantization of value data. 제 19 항에 있어서, 상기 제 2 역 양자화 정보는20. The apparatus of claim 19, wherein the second inverse quantization information is 역 양자화될 키 값 데이터에 포함되는 정점의 개수, 상기 키 값 데이터의 최대 유효 자리수, 각 정점의 각 성분 데이터의 최대값들 중 최대값 및 최소값, 및각 정점의 각 성분 데이터의 최소값들 중 최대값 및 최소값을 더 포함하는 것을 특징으로 하는 비트스트림.The number of vertices included in the key value data to be inverse quantized, the maximum number of significant digits of the key value data, the maximum and minimum values of the maximum value of each component data of each vertex, and the maximum value of the minimum values of each component data of each vertex. And a minimum value. 제 9 항에 있어서, 상기 키 값 데이터 부호화/복호화 정보는10. The method of claim 9, wherein the key value data encoding / decoding information is 상기 키 값 데이터의 부호화 방식이 전치 모드인지 또는 정점 모드인지를 나타내는 플래그를 더 포함하는 것을 특징으로 하는 비트스트림.And a flag indicating whether the encoding method of the key value data is a pre mode or a vertex mode.
KR1020020064008A 2001-11-27 2002-10-19 Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream KR100552666B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP02258173A EP1322119B1 (en) 2001-11-27 2002-11-27 Apparatus for encoding and decoding key data and keyvalue data of coordinate interpolator and recording medium
JP2002344725A JP4002502B2 (en) 2001-11-27 2002-11-27 Coordinate interpolator encoding / decoding apparatus and method
EP10185988.2A EP2302930B1 (en) 2001-11-27 2002-11-27 Coding and decoding of a bitstream with a coordinate interpolator
CN200610110089.2A CN1941910B (en) 2001-11-27 2002-11-27 Method and apparatus for encoding coordinate built in symbol and decoding bit data flow
EP10185978.3A EP2302929B1 (en) 2001-11-27 2002-11-27 Coding and decoding of a bitstream with a coordinate interpolator
US10/305,123 US7809203B2 (en) 2001-11-27 2002-11-27 Apparatus for encoding and decoding key data and key value data of coordinate interpolator and recording medium containing bitstream into which coordinate interpolator is encoded
US12/923,038 US8705610B2 (en) 2001-11-27 2010-08-30 Apparatus for encoding and decoding key data and key value data of coordinate interpolator and recording medium containing bitstream into which coordinate interpolator is encoded

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US33313001P 2001-11-27 2001-11-27
US60/333,130 2001-11-27
US33454101P 2001-12-03 2001-12-03
US60/334,541 2001-12-03
US34210101P 2001-12-26 2001-12-26
US60/342,101 2001-12-26
US36959702P 2002-04-04 2002-04-04
US60/369,597 2002-04-04
KR10-2002-0073044A KR100499135B1 (en) 2001-11-27 2002-11-22 Encoding/decoding method and apparatus for orientation interpolator

Publications (2)

Publication Number Publication Date
KR20030043622A true KR20030043622A (en) 2003-06-02
KR100552666B1 KR100552666B1 (en) 2006-02-20

Family

ID=27532390

Family Applications (8)

Application Number Title Priority Date Filing Date
KR10-2002-0063852A KR100480787B1 (en) 2001-11-27 2002-10-18 Encoding/decoding method and apparatus for key value of coordinate interpolator node
KR1020020064008A KR100552666B1 (en) 2001-11-27 2002-10-19 Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream
KR1020020064007A KR100552665B1 (en) 2001-11-27 2002-10-19 Key data encoding/decoding method and apparatus
KR1020020067679A KR100543697B1 (en) 2001-11-27 2002-11-02 Method and apparatus for encoding/decoding the data
KR1020020070496A KR100537500B1 (en) 2001-11-27 2002-11-13 Encoding/decoding method and apparatus for key value of orientation interpolator node
KR1020020070659A KR100552710B1 (en) 2001-11-27 2002-11-14 Encoding/decoding method and apparatus for position interpolator
KR10-2002-0073044A KR100499135B1 (en) 2001-11-27 2002-11-22 Encoding/decoding method and apparatus for orientation interpolator
KR1020050100897A KR100561875B1 (en) 2001-11-27 2005-10-25 Decoding method and apparatus for position interpolator

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR10-2002-0063852A KR100480787B1 (en) 2001-11-27 2002-10-18 Encoding/decoding method and apparatus for key value of coordinate interpolator node

Family Applications After (6)

Application Number Title Priority Date Filing Date
KR1020020064007A KR100552665B1 (en) 2001-11-27 2002-10-19 Key data encoding/decoding method and apparatus
KR1020020067679A KR100543697B1 (en) 2001-11-27 2002-11-02 Method and apparatus for encoding/decoding the data
KR1020020070496A KR100537500B1 (en) 2001-11-27 2002-11-13 Encoding/decoding method and apparatus for key value of orientation interpolator node
KR1020020070659A KR100552710B1 (en) 2001-11-27 2002-11-14 Encoding/decoding method and apparatus for position interpolator
KR10-2002-0073044A KR100499135B1 (en) 2001-11-27 2002-11-22 Encoding/decoding method and apparatus for orientation interpolator
KR1020050100897A KR100561875B1 (en) 2001-11-27 2005-10-25 Decoding method and apparatus for position interpolator

Country Status (6)

Country Link
US (1) US7446771B2 (en)
EP (2) EP2278808B1 (en)
JP (1) JP3905834B2 (en)
KR (8) KR100480787B1 (en)
CN (3) CN1294540C (en)
ES (1) ES2381777T3 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857110B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857107B1 (en) * 2005-09-14 2008-09-05 엘지전자 주식회사 Method and apparatus for decoding an audio signal
US7646319B2 (en) 2005-10-05 2010-01-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7653533B2 (en) 2005-10-24 2010-01-26 Lg Electronics Inc. Removing time delays in signal paths
US7660358B2 (en) 2005-10-05 2010-02-09 Lg Electronics Inc. Signal processing using pilot based coding
US7672379B2 (en) 2005-10-05 2010-03-02 Lg Electronics Inc. Audio signal processing, encoding, and decoding
US7696907B2 (en) 2005-10-05 2010-04-13 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7752053B2 (en) 2006-01-13 2010-07-06 Lg Electronics Inc. Audio signal processing using pilot based coding
US7751485B2 (en) 2005-10-05 2010-07-06 Lg Electronics Inc. Signal processing using pilot based coding
US7761303B2 (en) 2005-08-30 2010-07-20 Lg Electronics Inc. Slot position coding of TTT syntax of spatial audio coding application
US7788107B2 (en) 2005-08-30 2010-08-31 Lg Electronics Inc. Method for decoding an audio signal
US7987097B2 (en) 2005-08-30 2011-07-26 Lg Electronics Method for decoding an audio signal
US8090586B2 (en) 2005-05-26 2012-01-03 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8185403B2 (en) 2005-06-30 2012-05-22 Lg Electronics Inc. Method and apparatus for encoding and decoding an audio signal
US8577483B2 (en) 2005-08-30 2013-11-05 Lg Electronics, Inc. Method for decoding an audio signal

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4002502B2 (en) * 2001-11-27 2007-11-07 三星電子株式会社 Coordinate interpolator encoding / decoding apparatus and method
DE102004049156B4 (en) * 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding scheme for a temporally variable graphic model representing data stream
JP2009500656A (en) 2005-06-30 2009-01-08 エルジー エレクトロニクス インコーポレイティド Apparatus and method for encoding and decoding audio signals
CA2613731C (en) 2005-06-30 2012-09-18 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
CN101283398B (en) * 2005-10-05 2012-06-27 Lg电子株式会社 Method and apparatus for signal processing and encoding and decoding method, and apparatus thereof
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
KR100949979B1 (en) * 2006-03-30 2010-03-29 엘지전자 주식회사 A method and apparatus for decoding/encoding a video signal
TW201028018A (en) * 2009-01-07 2010-07-16 Ind Tech Res Inst Encoder, decoder, encoding method and decoding method
US8700410B2 (en) * 2009-06-18 2014-04-15 Texas Instruments Incorporated Method and system for lossless value-location encoding
CN107071452B (en) * 2011-06-28 2019-03-05 日本电气株式会社 To the decoded method of video quantizing parameter
US9792017B1 (en) 2011-07-12 2017-10-17 Domo, Inc. Automatic creation of drill paths
US9202297B1 (en) 2011-07-12 2015-12-01 Domo, Inc. Dynamic expansion of data visualizations
US10001898B1 (en) 2011-07-12 2018-06-19 Domo, Inc. Automated provisioning of relational information for a summary data visualization
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
CN103268067B (en) * 2013-05-03 2016-02-10 哈尔滨工业大学 A kind of satellite based on intending hypercomplex number and plan hypercomplex number kinematical equation points to tracking and controlling method
SE538512C2 (en) 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
KR20180031766A (en) * 2015-07-30 2018-03-28 메르크 파텐트 게엠베하 Material for organic electroluminescence device
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
CN110688092B (en) * 2019-09-04 2021-08-17 湖南遥昇通信技术有限公司 Random number generation method, device, equipment and storage medium
US20200327454A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Secured deployment of machine learning models

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4125861A (en) * 1977-08-18 1978-11-14 Bell Telephone Laboratories, Incorporated Video signal encoding
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
JP3048578B2 (en) * 1988-11-17 2000-06-05 キヤノン株式会社 Encoding and decoding device
AU9015891A (en) * 1990-11-30 1992-06-25 Cambridge Animation Systems Limited Animation
JPH0583700A (en) * 1991-09-18 1993-04-02 Nec Corp Dpcm forecasting coding circuit
KR960013062A (en) * 1994-09-30 1996-04-20 김광호 Quantization Coefficient Transmitter
JP3305140B2 (en) * 1994-12-28 2002-07-22 キヤノン株式会社 Encoding device and method
KR0171118B1 (en) * 1995-03-20 1999-03-20 배순훈 Apparatus for encoding video signal
JP3649469B2 (en) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント Animation data creation method and creation apparatus
US5757668A (en) * 1995-05-24 1998-05-26 Motorola Inc. Device, method and digital video encoder of complexity scalable block-matching motion estimation utilizing adaptive threshold termination
JPH09182082A (en) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> Movement compensation prediction encoding method for moving image and device therefor
KR970064261A (en) * 1996-02-09 1997-09-12 모리시타 요우이치 A contour coding method, a contour decoding method, and a recording medium recording the contour coding apparatus, the contour decoding apparatus and the method using the method
KR100197602B1 (en) * 1996-04-29 1999-06-15 윤종용 Revolving motion estimation method and image encoding/decoding apparatus using it
KR970078657A (en) * 1996-05-20 1997-12-12 구자홍 Video data compression device
JPH09326990A (en) * 1996-06-07 1997-12-16 Matsushita Electric Ind Co Ltd Video editor
KR0182182B1 (en) * 1996-08-30 1999-04-15 삼성전자주식회사 Adaptive differential pcm compression circuit
KR100212552B1 (en) * 1996-12-23 1999-08-02 전주범 Method and apparatus for coding counter image
JPH10215458A (en) * 1997-01-31 1998-08-11 Matsushita Electric Ind Co Ltd Image compression and expansion device and missed frame interpolation method
US5818463A (en) * 1997-02-13 1998-10-06 Rockwell Science Center, Inc. Data compression for animated three dimensional objects
JPH1198512A (en) * 1997-09-18 1999-04-09 Sanyo Electric Co Ltd Image coder and image coding method
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
KR20000052205A (en) * 1999-01-30 2000-08-16 김영환 Method for processing moving picture of digital signal processor
KR100292803B1 (en) * 1999-07-06 2001-06-15 정선종 Method and Apparatus for compressing vertex position of 3D mesh model
US6891565B1 (en) 1999-07-16 2005-05-10 Sarnoff Corporation Bitstream testing method and apparatus employing embedded reference data
WO2001041156A1 (en) * 1999-12-01 2001-06-07 Ivast, Inc. Optimized bifs encoder
JP2001285868A (en) 2000-03-29 2001-10-12 Victor Co Of Japan Ltd Device and method for changing-over animation code string
KR100612828B1 (en) * 2000-10-20 2006-08-18 삼성전자주식회사 Coding apparatus and method for orientation interpolator node
KR100561835B1 (en) * 2000-11-23 2006-03-16 삼성전자주식회사 Method and apparatus for compression and restoration of animation path using linear approximation
US6559848B2 (en) * 2000-12-13 2003-05-06 Intel Corporation Coding and decoding three-dimensional data
US6704890B1 (en) 2000-12-22 2004-03-09 Nortel Networks Limited Skew compensating interface for operation with arbitrary data
KR100580616B1 (en) * 2001-02-28 2006-05-16 삼성전자주식회사 Coding method of the information for the deformation of 3D object and coding apparatus thereof
KR100561836B1 (en) * 2001-07-07 2006-03-16 삼성전자주식회사 A coding method of the key value data in the information of the deformation to 3D animation object

Cited By (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090586B2 (en) 2005-05-26 2012-01-03 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8150701B2 (en) 2005-05-26 2012-04-03 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8170883B2 (en) 2005-05-26 2012-05-01 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8214220B2 (en) 2005-05-26 2012-07-03 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8185403B2 (en) 2005-06-30 2012-05-22 Lg Electronics Inc. Method and apparatus for encoding and decoding an audio signal
US8214221B2 (en) 2005-06-30 2012-07-03 Lg Electronics Inc. Method and apparatus for decoding an audio signal and identifying information included in the audio signal
US7987097B2 (en) 2005-08-30 2011-07-26 Lg Electronics Method for decoding an audio signal
US7831435B2 (en) 2005-08-30 2010-11-09 Lg Electronics Inc. Slot position coding of OTT syntax of spatial audio coding application
US7765104B2 (en) 2005-08-30 2010-07-27 Lg Electronics Inc. Slot position coding of residual signals of spatial audio coding application
US7783494B2 (en) 2005-08-30 2010-08-24 Lg Electronics Inc. Time slot position coding
US8165889B2 (en) 2005-08-30 2012-04-24 Lg Electronics Inc. Slot position coding of TTT syntax of spatial audio coding application
US8577483B2 (en) 2005-08-30 2013-11-05 Lg Electronics, Inc. Method for decoding an audio signal
US8103514B2 (en) 2005-08-30 2012-01-24 Lg Electronics Inc. Slot position coding of OTT syntax of spatial audio coding application
US8103513B2 (en) 2005-08-30 2012-01-24 Lg Electronics Inc. Slot position coding of syntax of spatial audio application
US7788107B2 (en) 2005-08-30 2010-08-31 Lg Electronics Inc. Method for decoding an audio signal
US7792668B2 (en) 2005-08-30 2010-09-07 Lg Electronics Inc. Slot position coding for non-guided spatial audio coding
US8082158B2 (en) 2005-08-30 2011-12-20 Lg Electronics Inc. Time slot position coding of multiple frame types
US8060374B2 (en) 2005-08-30 2011-11-15 Lg Electronics Inc. Slot position coding of residual signals of spatial audio coding application
US7761303B2 (en) 2005-08-30 2010-07-20 Lg Electronics Inc. Slot position coding of TTT syntax of spatial audio coding application
US7822616B2 (en) 2005-08-30 2010-10-26 Lg Electronics Inc. Time slot position coding of multiple frame types
KR100857105B1 (en) * 2005-09-14 2008-09-05 엘지전자 주식회사 Method and apparatus for decoding an audio signal
KR100857106B1 (en) * 2005-09-14 2008-09-08 엘지전자 주식회사 Method and apparatus for decoding an audio signal
US9747905B2 (en) 2005-09-14 2017-08-29 Lg Electronics Inc. Method and apparatus for decoding an audio signal
KR100857107B1 (en) * 2005-09-14 2008-09-05 엘지전자 주식회사 Method and apparatus for decoding an audio signal
KR100857108B1 (en) * 2005-09-14 2008-09-05 엘지전자 주식회사 Method and apparatus for decoding an audio signal
KR100857116B1 (en) * 2005-10-05 2008-09-08 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857111B1 (en) * 2005-10-05 2008-09-08 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857115B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7743016B2 (en) 2005-10-05 2010-06-22 Lg Electronics Inc. Method and apparatus for data processing and encoding and decoding method, and apparatus therefor
KR100857112B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857117B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7751485B2 (en) 2005-10-05 2010-07-06 Lg Electronics Inc. Signal processing using pilot based coding
US7756701B2 (en) 2005-10-05 2010-07-13 Lg Electronics Inc. Audio signal processing using pilot based coding
US7756702B2 (en) 2005-10-05 2010-07-13 Lg Electronics Inc. Signal processing using pilot based coding
KR100857121B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7684498B2 (en) 2005-10-05 2010-03-23 Lg Electronics Inc. Signal processing using pilot based coding
US7680194B2 (en) 2005-10-05 2010-03-16 Lg Electronics Inc. Method and apparatus for signal processing, encoding, and decoding
US7774199B2 (en) 2005-10-05 2010-08-10 Lg Electronics Inc. Signal processing using pilot based coding
US7675977B2 (en) 2005-10-05 2010-03-09 Lg Electronics Inc. Method and apparatus for processing audio signal
US7672379B2 (en) 2005-10-05 2010-03-02 Lg Electronics Inc. Audio signal processing, encoding, and decoding
US7671766B2 (en) 2005-10-05 2010-03-02 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7663513B2 (en) 2005-10-05 2010-02-16 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7660358B2 (en) 2005-10-05 2010-02-09 Lg Electronics Inc. Signal processing using pilot based coding
KR100857120B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857119B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857109B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7646319B2 (en) 2005-10-05 2010-01-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US8068569B2 (en) 2005-10-05 2011-11-29 Lg Electronics, Inc. Method and apparatus for signal processing and encoding and decoding
KR100878832B1 (en) * 2005-10-05 2009-01-14 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857110B1 (en) * 2005-10-05 2008-09-05 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7696907B2 (en) 2005-10-05 2010-04-13 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857113B1 (en) * 2005-10-05 2008-09-08 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
KR100857114B1 (en) * 2005-10-05 2008-09-08 엘지전자 주식회사 Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7653533B2 (en) 2005-10-24 2010-01-26 Lg Electronics Inc. Removing time delays in signal paths
US7840401B2 (en) 2005-10-24 2010-11-23 Lg Electronics Inc. Removing time delays in signal paths
US7761289B2 (en) 2005-10-24 2010-07-20 Lg Electronics Inc. Removing time delays in signal paths
US7742913B2 (en) 2005-10-24 2010-06-22 Lg Electronics Inc. Removing time delays in signal paths
US7716043B2 (en) 2005-10-24 2010-05-11 Lg Electronics Inc. Removing time delays in signal paths
US7865369B2 (en) 2006-01-13 2011-01-04 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7752053B2 (en) 2006-01-13 2010-07-06 Lg Electronics Inc. Audio signal processing using pilot based coding

Also Published As

Publication number Publication date
CN1428742A (en) 2003-07-09
KR100543697B1 (en) 2006-01-20
KR20030043657A (en) 2003-06-02
KR100552665B1 (en) 2006-02-20
KR20050109413A (en) 2005-11-21
CN1294540C (en) 2007-01-10
KR100561875B1 (en) 2006-03-17
JP3905834B2 (en) 2007-04-18
KR20030043655A (en) 2003-06-02
CN1438613A (en) 2003-08-27
KR100499135B1 (en) 2005-07-04
JP2003248839A (en) 2003-09-05
CN1441387A (en) 2003-09-10
US20030128883A1 (en) 2003-07-10
KR100552710B1 (en) 2006-02-20
ES2381777T3 (en) 2012-05-31
EP2278808B1 (en) 2012-10-10
KR20030043621A (en) 2003-06-02
EP1320264A3 (en) 2005-06-01
EP2278808A1 (en) 2011-01-26
EP1320264B1 (en) 2012-03-21
US7446771B2 (en) 2008-11-04
KR100537500B1 (en) 2006-01-09
CN1187716C (en) 2005-02-02
EP1320264A2 (en) 2003-06-18
CN1277239C (en) 2006-09-27
KR100480787B1 (en) 2005-04-07
KR20030043620A (en) 2003-06-02
KR20030043690A (en) 2003-06-02
KR100552666B1 (en) 2006-02-20
KR20030043634A (en) 2003-06-02

Similar Documents

Publication Publication Date Title
KR100552666B1 (en) Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream
JP4002502B2 (en) Coordinate interpolator encoding / decoding apparatus and method
US7809204B2 (en) Method and apparatus for encoding and decoding key value data of coordinate interpolator
CA2392644C (en) Coding and decoding apparatus of key data for graphic animation and method thereof
JP3953411B2 (en) Coordinate interpolator key value data encoding / decoding method and apparatus
JP4104615B2 (en) Method and apparatus for encoding and decoding key data
KR20110071483A (en) Apparatus and method for processing depth image using bit depth reduction
JP4205426B2 (en) Key value data decoding method for rotary interpolator
JP4629014B2 (en) Method and apparatus for encoding / decoding position interpolator
JPS62193382A (en) System and device for encoding and decoding picture signal

Legal Events

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

Payment date: 20130115

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150116

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee