KR100552666B1 - 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체 - Google Patents

좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체 Download PDF

Info

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

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화 장치, 및 본 발명의 좌표 인터폴레이터를 부호화한 비트스트림을 기록한 기록 매체를 개시한다.
본 발명의 기록 매체에 기록되는 비트스트림은 키 데이터를 부호화한 키 데이터 부호화/복호화 정보 및 키 값 데이터를 부호화한 키 값 데이터 부호화/복호화 정보를 포함하고, 키 데이터 부호화/복호화 정보는, 키 데이터 비트스트림을 엔트로피 복호화하여 생성된 차분 데이터의 범위를 확장시키는 역 DND 연산 정보, 역 DND 연산이 수행된 차분 데이터를 양자화된 키 데이터로 변환하는 제 1 역 DPCM 연산 정보, 및 양자화된 키 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 1 역 양자화 정보를 포함하며; 키 값 데이터 부호화/복호화 정보는, 키 값 데이터 비트스트림으로부터 엔트로피 복호화된 사전 부호화된 키 값 데이터의 사전 복호화 정보, 사전 복호화된 각 정점 성분의 차분 데이터를 양자화된 키 값 데이터로 변환하는 제 2 역 DPCM 연산 정보, 및 양자화된 키 값 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 2 역 양자화 정보를 포함한다.

Description

좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화 장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을 기록한 기록 매체{Encoding/decoding apparatus for coordinate interpolator, and recordable medium containing coordinate interpolator encoded bit stream}
도 1 은 종래의 좌표 인터폴레이터 노드의 부호화/복호화 장치의 구성을 도시하는 블록도이다.
도 2 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치의 구성을 도시하는 블록도이다.
도 3a 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기의 구성을 도시하는 블록도이다.
도 3b 은 도 3a 에 도시된 DND 처리부의 구성을 도시하는 블록도이다.
도 4a 내지 도 4e 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화 방법을 설명하는 흐름도이다.
도 5 은 encodeSignedAAC 함수의 일예를 도시하는 도면이다.
도 6a 내지 도 6j 는 본 발명의 바람직한 실시예에 따른 키 데이터를 부호화하기 위한 연산들이 수행된 후의 키 데이터를 도시하는 도면들이다.
도 7a 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 키 값 데이 터 부호화기의 구성을 도시하는 블록도이고, 도 7b 는 바람직한 실시예에 따른 좌표 인터폴레이터 키 값 데이터의 부호화 방법을 설명하는 흐름도이다.
도 8a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 부호화기의 DPCM 처리부의 구성을 도시하는 블록도이고, 도 8b 는 사전 부호화기의 구성을 도시하는 블록도이다.
도 9a 는 본 발명의 바람직한 실시예에 따른 양자화 방법을 설명하는 흐름도이고, 도 9b는 DPCM 연산 방법을 설명하는 흐름도이며, 도 9c 는 사전 부호화 방법을 설명하는 흐름도이고, 도 9d 는 본 발명의 키 값 데이터 부호화기의 엔트로피 부호화 방법을 설명하는 흐름도이다.
도 10a 내지 도 10c 는 본 발명의 양자화된 키 값 데이터, DPCM 연산된 키 값 데이터 및 순환 양자화된 키 값 데이터를 각각 도시하는 도면이다.
도 11a 는 본 발명의 바람직한 실시에에 따른 DPCM 모드 부호화 방법을 설명하는 도면이고, 도 11b 는 발생 모드 부호화 방법을 설명하는 도면이며, 도 11c 는 증가 모드 부호화 방법을 설명하는 도면이다.
도 12 는 본 발명의 좌표 인터폴레이터 복호화 장치의 구성을 도시하는 블록도이다.
도 13 은 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기의 구성을 도시하는 블록도이다.
도 14a 는 본 발명의 바람직한 실시예에 따른 키 데이터 복호화 방법을 설명하는 흐름도이고, 도 14b 는 도 14a 의 제 S14500 단계의 상세 흐름도이다.
도 15a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화 장치의 구성을 도시하는 블록도이고, 도 15b 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화 방법을 설명하는 흐름도이다.
도 16a 는 본 발명의 바람직한 실시예에 따른 사전 복호화기의 구성을 도시하는 블록도이고, 도 16b 는 본 발명의 키 값 데이터 복호화기의 역 DPCM 처리부의 구성을 도시하는 블록도이다.
도 17a 는 본 발명의 바람직한 실시예에 따른 사전 복호화 방법을 설명하는 흐름도이고, 도 17b 는 역 DPCM 연산 방법을 설명하는 흐름도이다.
도 18a 은 좌표 인터폴레이터의 각 정점과 각 정점의 성분 데이터의 비트스트림 구조를 도시한 도면이다.
도 18b 는 본 발명의 엔트로피 복호화기에 이용되는 decodeSignedQuasiAAC() 함수를 구현한 프로그램 코드의 일예를 도시한 도면이다.
도 19a 는 DPCM 모드 복호화 방법을 설명하는 도면이고, 도 19b 는 발생 모드 복호화 방법을 설명하는 도면이며, 도 19c 는 증가 모드 복호화 방법을 설명하는 도면이다.
본 발명은 합성 이미지의 부호화 및 복호화 장치 및 방법에 관한 것이다. 구체적으로, 본 발명은 키 프레임 기반의 그래픽 애니메이션 방식에서, 객체의 위 치를 x, y, 및 z 성분을 포함하는 정점들의 좌표로 표현하는 좌표 인터폴레이터의 부호화 및 복호화 장치 및 방법에 관한 것이다.
3 차원 애니메이션 표현 기법은 3차원 컴퓨터 게임 또는 컴퓨터의 가상 현실 환경에서 사용되는 것으로 익히 알려져 있다. VRML(Virtual Reality Modelling Language)는 3차원 애니메이션을 표현하는 대표적인 예이다.
MPEG-4 BIFS(Binary Format for Scene) 및 VRML(Virtual Reality Modelling Language)와 같은 국제 멀티미디어 표준들은 인터폴레이터 노드를 이용한 키 프레임 기반의 3 차원 애니메이션을 지원한다. MPEG-4 BIFS 및 VRML 에는 여러 종류의 인터폴레이터가 있는데, 그 중 대표적인 것이 스칼라 인터폴레이터, 위치 인터폴레이터, 좌표 인터폴레이터, 회전 인터폴레이터, 법선 인터폴레이터 및 색 인터폴레이터이다. 각 인터폴레이터의 종류, 기능 및 특징은 아래의 표 1 에 나타내었다.
종 류 특 징 기 능
스칼라 인터폴레이터 스칼라 변화량의 선형 삽입 넓이, 반경, 강도 등의 표현
위치 인터폴레이터 3차원 좌표상의 선형 삽입 3차원 공간상의 평행 이동
회전 인터폴레이터 3차원 좌표축과 회전량의 선형삽입 3차원 공간상의 회전
좌표 인터폴레이터 3차원 모델의 좌표 변화량과 선형 삽입 3차원 모핑(morphing)
법선 인터폴레이터 3차원 법선 좌표의 선형 삽입 3차원 법선 벡터의 변화 표현
색 인터폴레이터 색상 정보의 선형 삽입 색상 변화량의 표현
상기 표 1 에 기재된 인터폴레이터 중 하나인 좌표 인터폴레이터는 키 프레임 기반의 애니메이션의 3차원 객체에 포함되는 각 정점의 위치 정보를 나타내기 위해서 사용되고, 키(Key) 및 키 값(Key-Value) 필드로 구성된다. 키 필드는 (- ∞,+∞) 범위에서 키 프레임이 위치하는 시간을 불연속적인 숫자로 표현한다. 키 값 필드는 각각의 키가 나타내는 시간에 3차원 객체에 포함되는 각 정점의 위치 정보를 나타내며, 각 정점은 x, y 및 z 의 세 가지 성분을 갖는다. 따라서, 키 값 필드는 키 필드와 동일한 개수의 키 값을 포함한다. 이러한, 키 프레임 기반의 애니메이션 방식에서, 소정의 키 프레임은 시간축상의 임의의 시간에 위치하고, 각 키 프레임간의 애니메이션 데이터는 선형 보간 방법에 의해서 보간된다.
MPEG-4 BIFS 및 VRML 는 선형 보간을 이용하므로, 선형 인터폴레이터를 이용하여 매끄럽고 자연스러운 애니메이션을 구현하기 위해서는 매우 많은 양의 키 데이터와 키 값 데이터가 요구된다. 또한, 이러한 매끄럽고 자연스러운 애니메이션을 저장하거나 전송하기 위해서는 대용량의 저장장치 및 많은 시간이 필요하다. 따라서, 이들 인터폴레이터의 저장 및 전송을 위해서는 인터폴레이터를 압축하는 것이 효과적이다.
MPEG-4 BIFS 에서는 인터폴레이터 노드를 부호화하고 복호화하는 방법으로 PMFC(Predictive MF Coding)이라 칭해지는 방법이 있다. 도 1 에 도시된 종래의 부호화 장치와 같이, PMFC 방법은 양자화기, DPCM(Differential Pulse Code Modulation) 및 엔트로피 부호화기를 이용하여 좌표 인터폴레이터의 키 및 키 값 데이터를 부호화한다. 양자화기 및 DPCM 모듈은 키 및 키 값 데이터의 중복성을 제거하고, DPCM 모듈의 출력은 엔트로피 부호화기로 출력된다. 그러나, 이 방법은 일반적인 DPCM 연산에 의해서 얻어진 차분 데이터를 엔트로피 부호화하므로 부호화 효율이 높지 않다. 또한, 종래의 부호화 장치는 3차원 객체의 모양을 구성 하는 각 정점간의 공간적인 상관관계만을 고려할 뿐, 키 프레임 방식의 애니메이션 방식에서 상당한 비중을 차지하는 시간적인 상관관계는 전혀 고려하지 않으므로, 부호화 효율이 높지 않다.
본 발명이 이루고자 하는 제 1 기술적 과제는 키 데이터의 성질을 고려하여 데이터의 중복성을 제거함으로써 고효율로 에니메이션 키 데이터 압축하는 키 데이터 부호화기, 및 공간적인 상관관계 뿐 아니라 시간적인 상관관계도 고려하여 키 값 데이터를 부호화하는 키 값 데이터 부호화기를 포함하는 좌표 인터폴레이터의 부호화 장치를 제공하는 것이다.
본 발명의 제 2 기술적 과제는 상술한 본 발명의 좌표 인터폴레이터 부호화 장치에 의해서 부호화된 비트스트림을 복호화하는 복호화 장치를 제공하는 것이다.
본 발명이 이루고자 하는 제 3 기술적 과제는 높은 압축율과 고화질의 애니메이션을 제공할 수 있는, 본 발명의 좌표 인터폴레이터의 부호화 방법 및 장치에 의해서 부호화되어 본 발명의 복호화 방법 및 장치에 의해서 복호화되는 비트스트림을 기록한 기록 매체를 제공하는 것이다.
상술한 제 1 기술적 과제를 달성하기 위한 본 발명의 좌표 인터폴레이터 부호화 장치는, 좌표 인터폴레이터의 키 데이터들을 소정의 양자화 비트로 양자화하는 제 1 양자화기, 양자화된 키 데이터들의 차분 데이터들을 생성하는 제 1 DPCM 처리부, 차분 데이터들과 차분 데이터들의 최대값 및 최소값과의 관계에 따라서 차 분 데이터들의 범위를 줄이는 DND 연산을 수행하는 DND 처리부, 및 DND 처리부로부터 입력된 차분 데이터를 부호화하는 제 1 엔트로피 부호화기를 포함하는 키 데이터 부호화기; 좌표 인터폴레이터의 키 값 데이터를 소정의 양자화 비트수로 양자화하는 제 2 양자화기, 양자화된 키 값 데이터의 각 정점 성분에 대해서 소정 모드의 DPCM 연산을 수행하여 각 정점 좌표의 시간적 변화에 따른 차분 데이터 및 공간적 변화에 따른 차분 데이터를 생성하는 제 2 DPCM 처리부, DPCM 연산된 각 정점 성분의 차분 데이터 및 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 심볼의 위치를 나타내는 인덱스를 생성하는 사전 부호화기, 및 심볼 및 인덱스를 엔트로피 부호화하는 제 2 엔트로피 부호화기를 포함하는 키 값 데이터 부호화기; 및 키 데이터 부호화기 및 키 값 데이터 부호화기에서 부호화된 비트스트림의 복호화에 필요한 정보를 부호화하는 헤더 부호화기를 포함한다.
상술한 제 2 기술적 과제를 이루기 위한 본 발명의 복호화 장치는 입력된 비트스트림으로부터 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 출력하는 헤더 복호화기; 입력된 비트스트림을 엔트로피 복호화하여, 복호화된 키 데이터의 차분 데이터를 출력하는 제 1 엔트로피 복호화기, 헤더 복호화기로부터 판독된 DND 차수에 따라서 엔트로피 복호화된 키 데이터의 차분 데이터에 역 DND 연산을 수행하여 차분 데이터의 범위를 확장하는 역 DND 처리부, 역 DND 처리부로부터 입력된 차분 데이터에 헤더 복호화기로부터 입력된 DPCM 차수만큼 역 DPCM 연산을 수행하여 양자화된 키 데이터를 출력하는 제 1 역 DPCM 처리부, 및 양자화된 키 데이터를 역 양자화하여 복호화된 키 데이터를 출력하는 제 1 역 양자화 기를 포함하는 키 데이터 복호화기; 및 입력된 비트스트림을 엔트로피 복호화하여 DPCM 연산된 키 값 데이터의 차분 데이터의 심볼들, 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 제 2 엔트로피 복호화기, 헤더 복호화기로부터 입력된 사전 복호화 모드 정보에 따라서 사전 복호화 연산을 수행하여 키 값 데이터의 차분 데이터를 생성하는 사전 복호화기, DPCM 연산 모드에 따라서 사전 복호화기로부터 입력된 키 프레임간의 차분 데이터 및 각 정점간의 차분 데이터를 복원하여 양자화된 데이터를 생성하는 제 2 역 DPCM 처리부, 및 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 제 2 역 양자화기를 포함하는 키 값 데이터 복호화기를 포함한다.
상술한 본 발명의 제 3 기술적 과제를 이루기 위한 본 발명의 기록 매체에 기록되는 비트스트림은 키 데이터를 부호화한 키 데이터 부호화/복호화 정보 및 키 값 데이터를 부호화한 키 값 데이터 부호화/복호화 정보를 포함하고, 키 데이터 부호화/복호화 정보는 키 데이터 비트스트림을 엔트로피 복호화하여 생성된 차분 데이터의 범위를 확장시키는 역 DND 연산을 수행할 회수를 나타내는 역 DND 차수 및 각 역 DND 차수에서의 역 DND 연산에 이용되는 최대값 및 최소값을 포함하는 역 DND 연산 정보, 역 DND 연산이 수행된 차분 데이터를 양자화된 키 데이터로 변환하는 역 DPCM 연산의 회수 및 각 회수의 역 DPCM 연산에 이용되는 인트라 키 데이터를 포함하는 제 1 역 DPCM 연산 정보, 및 양자화된 키 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 1 역 양자화 정보를 포함하며; 키 값 데이터 부호화/복호화 정보는, 키 값 데이터 비트스트림으로부터 엔트로 피 복호화된, 사전 부호화된 키 값 데이터의 차분 데이터를 나타내는 심볼에 관한 정보, 심볼의 위치를 나타내는 제 1 위치 인덱스, 및 제 1 위치 인덱스에 수행될 사전 복호화 방법을 나타내는 사전 복호화 모드를 포함하는 사전 복호화 정보, 사전 복호화된 각 정점 성분의 차분 데이터를 양자화된 키 값 데이터로 변환하는 역 DPCM 연산에 이용되는 역 DPCM 연산 모드의 조합을 나타내는 심볼의 위치를 나타내는 제 2 위치 인덱스를 포함하는 제 2 역 DPCM 연산 정보, 및 양자화된 키 값 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 2 역 양자화 정보를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치를 설명한다.
도 2 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 부호화 장치의 구성을 도시하는 블록도이다.
도 2를 참조하면, 본 발명의 좌표 인터폴레이터 부호화 장치는 입력된 좌표 인터폴레이터의 키 데이터를 부호화하는 키 데이터 부호화기(300), 입력된 좌표 인터폴레이터의 키 값 데이터를 부호화하는 키 값 데이터 부호화기(700), 및 키 데이터 부호화기(300) 및 키 값 데이터 부호화기(700)에서 부호화된 키 및 키 값 데이터의 복호화에 필요한 정보를 부호화하는 헤더 부호화기(500)를 포함한다.
이하, 도 3a 내지 도 6j 를 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기(700)를 설명한다.
도 3a 는 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기의 구성을 도시하는 블록도이다.
본 발명의 키 데이터 부호화기(700)는 선형 키 부호화기(310), 양자화기(320), DPCM 처리부(330), 쉬프팅부(340), 폴딩 처리부(350), DND 처리부(360) 및 엔트로피 부호화기(370)를 포함한다.
선형 키 부호화기(310)는 전체 키 데이터의 범위에서 키 데이터가 선형으로 증가하는 영역을 식별하여 부호화한다. 양자화기(320)는 양자화 오차를 최소화하는 방법을 이용하여 입력된 키 데이터를 양자화한다. DPCM 처리부(330)는 양자화된 키 데이터를 수신하고, 키 데이터의 차분 데이터를 생성한다. 쉬프팅부(340)는 모든 차분 데이터에서 가장 높은 빈도수의 차분 데이터를 감산한다. 폴딩 처리부(350)는 모든 차분 데이터를 양수 또는 음수의 영역으로 이동시킨다. DND 처리부(360)는 디바이드, 디바이드-업, 및 디바이드-다운의 3가지 연산을 선택적으로 수행하여 키 데이터의 차분 데이터의 범위를 줄인다. 키 데이터에 대한 엔트로피 부호화기(370)는 비트플레인 단위로 차분 데이터를 부호화하는 SignedAAC 및 UnsignedAAC 함수를 이용하여 차분 데이터들을 부호화한다.
이하, 도 4a 을 더 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 부호화기(700)를 설명한다. 도 4a 은 본 발명의 키 데이터 부호화 방법을 설명한 흐름도이다.
키 데이터가 부호화기로 입력되면, 전체 키 데이터의 개수 및 각 키 데이터의 자리수와 같은 정보는 헤더 부호화기(500)로 입력되어 부호화되고, 선형 키 부호화기(310)는 입력된 키 데이터들에서 선형 키 영역, 즉, 일정한 시간 간격으로 키 프레임이 존재하고 키 데이터가 동일한 차를 갖게 되어, 키 데이터가 선형으로 변화하는 영역이 있는지를 검색하고, 검색된 선형 영역을 먼저 부호화한다(S4000).
3Dmax, Maya 와 같은 유명 3D 응용 소프트웨어들은 특정 영역이 일정한 시간 간격을 갖는 키를 이용하여 키 프레임 기반의 애니메이션을 생성한다. 이러한 경우에, 선형 키 데이터 영역은 선형 영역이 시작되는 키 데이터, 종료되는 키 데이터 및 사이에 존재하는 키 프레임의 개수만 알면 간단하게 키 데이터를 부호화할 수 있기 때문에, 인터폴레이터에서 특정 영역의 키의 부호화를 위해서 선형 예측을 이용하는 것은 매우 유용하다.
선형 예측에 이용되는 수식은 다음의 수학식 1 과 같다.
Figure 112002034342899-pat00001
여기서, tS 는 부분적으로 선형인 영역이 시작되는 키의 데이터를 나타내고, tE는 부분적으로 선형인 영역이 종료되는 키의 데이터를 나타내며, S 는 tS 의 인덱스를 E 는 tE 의 인덱스를 각각 나타낸다. S 번째 키 데이터 및 E 번째 키 데이터에 대응되는 특정 영역에서 수학식 1 에 따라 선형적으로 예측된 키 데이터와 실제 키 데이터간의 오차는 다음 수학식 2 에 따라서 계산할 수 있다.
Figure 112002034342899-pat00002
만약, 수학식 2 에 의해서 계산된 오차값들 중 최대 오차값이 소정의 임계값 이하라면, ti 는 [tS,tE]구간 및 소정의 오차내에서 유사 선형(co-linear)이라고 할 수 있다. 최대 오차값과 특정 영역이 유사 선형인지의 여부는 다음의 수학식 3 에 의해서 결정된다.
Figure 112002034342899-pat00003
만약,
Figure 112002034342899-pat00004
라면, ti 는 [tS,tE]구간에서 유사 선형이다. 여기서, nBits는 부호화에 이용되는 부호화 비트수를 나타낸다.
일단, 선형 키 부호화기(310)는 부분적으로 선형인 영역을 찾게되면, 영역의 시작점의 키 데이터 및 종료점의 키 데이터는 실수 변환부(315)로 출력하고, 선형 키 영역에 포함되는 키의 개수는 헤더 부호화기(500)로 출력하여 부호화한다. 이러한, 선형 부호화를 이용함으로써 부호화할 데이터의 양을 크게 줄일 수 있음을 알 수 있다. 시작 키 데이터 및 종료 키 데이터는 실수 변환부(315)에서 후술하는 실수 변환과정에 의해서 부호화된다.
실수 변환부(315)는 시작 키 데이터와 종료 키 데이터를 부호화하기 위해서 2진수 체계로 표현된 키 데이터를 10진수 체계로 변환한다.
컴퓨터는 실수(floating-point number)를 32 비트의 2진수 형태로 저장한다. 실수(floating-point number)가 2진수 형태로 입력되면, 실수 변환부(315)는 실수 를 10진수 체계의 크기(이하, "맨티사(mantissa)"라 칭함) 및 10 의 거듭 제곱(이하, "지수(exponent)"라 칭함)의 형식으로 변환한다.
Figure 112002034342899-pat00005
예를 들어, 실수 12.34를 컴퓨터에서 2진수 형태로 표현하면, 다음과 같다.
Figure 112002034342899-pat00006
이 수를 전술한 수학식 4 에 따라서 10진수로 표현하면, 다음과 같다.
Figure 112002034342899-pat00007
십진수 체계의 맨티사와 지수를 비트스트림에 포함시키기 위해서는 각각이 필요한 비트수를 계산하여야 한다. 먼저, 지수는 -38 ~ 38 사이 범위의 값을 갖으므로, 지수는 부호(sign)를 포함하여 7 비트로 표현될 수 있다. 또한, 맨티사는 자리수에 따라서 필요한 비트의 수가 결정된다. 맨티사의 값과 이에 필요한 비트수(단, 부호 비트는 제외)를 다음의 표 2 에 나타내었다.
Figure 112002034342899-pat00008
한편, 상술한 과정에 의해서 검색되어 변환된 선형 키 영역의 시작 키 데이터와 종료 키 데이터는 도 4b 에 도시된 부호화 과정에 따라서 부호화되고, 헤더 부호화기(500)로 출력되어 비트스트림에 저장된다.
도 4b 는 실수 변환부(315)가 입력된 2개의 실수(floating-point number)를 부호화하는 과정을 도시한다. 도 4b를 참조하여, 실수 변환부(315)가 변환된 실수를 부호화하는 과정을 설명한다.
실수 변환부(315)는 선형 키 부호화기(310)로부터 원래 키 데이터의 자리수(original key digit, Kd), 선형 영역이 시작되는 키 데이터(Start key, S), 선형 영역이 종료되는 키 데이터(end key, E)를 입력받아 상술한 수학식 4 에 의해서 키 데이터들을 변환한다(S4040).
실수 변환부(315)는 우선 S 를 부호화하는데, S의 자릿수가 Kd 와 다른지를 판단하여, 자리수가 다르면, S의 자릿수를 구하여 헤더 부호화기(500)로 출력한다(S4042). 이 때, 실수 변환부(315)는 Digit() 함수를 이용하여 S 의 자리 수를 구한다.
그 후, 실수 변환부(315)는 S 의 자리수가 7 보다 크면, 소정의 비트수를(본 발명에서는, IEEE 표준 754의 floating-point number 방식으로 32bit을 사용)이용하여, S 의 자리수가 비트스트림에 포함되도록 헤더 부호화기(500)로 출력한다(S4043).
한편, S 의 자리수가 0 이 아니고 7보다 작으면, 실수 변환부(315)는 S 의 부호를 헤더 부호화기(500)로 출력하고(S4044), S의 멘티사의 절대값의 부호화에 필요한 비트수를 상기 표 4 로부터 구하고, 구해진 비트수로 멘티사의 절대값을 헤더 부호화기(500)로 출력한다(S4045). 그 후, S의 지수를 구하고, 부호를 헤더 부호화기(500)로 출력하고, 지수를 소정의 비트수로(본 발명의 실시예에서는 6 bit로) 헤더 부호화기(500)로 출력한다(S4046). 이와 같은 키 데이터의 변환으로 인해 비트스트림에 포함되는 비트수는 대폭 감소된다.
한편, S 의 자리수가 0 이면 시작 키 데이터의 부호화 과정은 종료되고, 종료 키 데이터를 변환하기 위한 과정으로 진행한다. 왜냐하면, 자릿수가 0 이면 실수(floating-point number)는 0을 의미하므로 더 이상의 부호화과정이 필요 없기 때문이다.
실수 변환부(315)는 시작 키 데이터를 변환하여 부호화한 후 종료 키 데이터 E를 변환한다. E 의 변환은 S 의 변환과 같은 과정을 반복하되, 단 E의 지수가 S의 지수와 같은 값을 가지는지를 판별하여(S4047), 양 값이 동일하면 이를 나타내는 플래그(flag) 비트만을 헤더 부호화기(500)로 출력하고, 다르면 플래그(flag) 비트와 E의 지수를 S의 지수와 같은 방식으로 헤더 부호화기(500)로 출력한다(S4048).
한편, 입력 키 데이터에서 선형 영역을 제외한 키 데이터들은 양자화기(320)로 입력되어 소정의 양자화 비트 사이즈인 nKeyQBit 에 따라서 양자화된다.
그러나, 복호화기에서 양자화된 키 데이터를 복호화하여 이용할 때에는, 원래의 키 데이터와 양자화된 키 데이터간의 오차로 인해 원래의 키 데이터가 완전히 복원될 수 는 없다. 따라서, 본 발명의 양자화기(320)는 단순히 입력되는 키 데이터에서 최대값 및 최소값을 구하고, 구해진 값들을 이용하여 양자화할 수 있을 뿐 아니라, 양자화 오차 최소화부(325)를 포함하여, 양자화 오차를 최소화할 수 있도록 수정된 최대값 및 최소값을 이용하여 양자화할 수 있다.
양자화 오차 최소화부(325)는 양자화 오차를 최소화하기 위해서 입력된 데이터에 대해서 미리 양자화 및 역양자화를 수행하여, 양자화의 오차가 최소가 되는 양자화의 범위를 제어하는 방법을 이용한다(S4100).
구체적으로 살펴보면, 고정된 양자화에 이용될 최대값을 Max 라하고, 조절되는 양자화에 이용될 최소값을 Min라하며, Xi 를 입력 값, nQuantBit를 양자화에 이용되는 비트수라 할 때, 양자화된 입력값
Figure 112002034342899-pat00009
, 역양자화된 값
Figure 112002034342899-pat00010
, 및 오차 ei 는 각각 다음의 수학식 5 에 의해서 계산한다.
Figure 112002034342899-pat00011
Figure 112002034342899-pat00012
Figure 112002034342899-pat00013
오차의 합(∑ei)을 감소시키는 방법에는 두 가지가 있는데, 하나는 오차의 합이 최소가 될 때까지 Min 값을 조절하는 것이며, 다른 하나는 다음과 같다.
먼저, Δx 가 입력 데이터의 기본 스텝 사이즈이고, n 이 임의의 정수이며, εi 가 영평균 난수 노이즈(zero mean random noise)라 할 때, 입력 키 데이터 시퀀스 Xi를 Xi=(i+n)Δx+εi 와 같이 표현되는 양자화된 값이라고 가정한다.
그 후, di ≡Xi - Xi-1 = Δx +(εi i-1) 라 할 때, Δ'x = E[di] 이고, 최소값 Min = Max - Δ'x * (2nQuantBit-1) 과 같다.
이러한 과정을 통해서 구해진 양자화 오차를 최소로 만드는 Min 값은 Max 값과 양자화기(320)로 입력되어 키 데이터의 양자화에 이용된다.
양자화 오차가 최소가되는 최대값(Max) 및 최소값(Min)을 수신한 양자화기(320)는 다음의 수학식 6 을 이용하여 키 데이터(fKeyi)의 양자화를 수행한다(S4200).
Figure 112002034342899-pat00014
여기서, i 는 양자화된 키 데이터의 인덱스를, nQKeyi 는 양자화된 데이터의 정수 배열을, fKeyi 는 입력 키 데이터로서의 실수(float) 배열을, fKeyMax 및 fKeyMin 은 양자화오차 최소화부(325)에서 수신된 최대값(Max) 및 최소값(Min)을, nKeyQBit 는 양자화 비트 사이즈를 각각 나타낸다. 한편, 상기 수학식 6에서 사용된 함수 floor(v) 는 실수 v를 입력받아 v 이하의 최대 정수를 출력하는 함수이다.
한편, 본 발명의 양자화기(320)는 상술한 양자화오차를 최소화하는 알고리즘을 이용하지 않고, 간단하게, 입력된 키 데이터 중에서 최대값(fKeyMax)과 최소값(fKeyMin)을 구하여 양자화를 수행할 수도 있다.
본 발명의 양자화 과정을 설명한 도 4c를 참조하여, 양자화과정을 자세히 살펴본다.
양자화기(320)는 키 데이터를 입력받고(S4210), 양자화오차 최소화부(325)로부터 최대값 및 최소값이 입력되었는지 여부를 조사한다(S4220).
양자화기(320)는 양자화오차 최소화부(325)로부터 최대값(MAX) 및 최소값(MIN)이 입력되었으면, 양자화에 이용할 최대값(fKeyMax) 및 최소값(fKeyMin)을 MAX 와 MIN 으로 설정하고(S4230), 설정된 최대값 및 최소값을 상술한 실수 변환부(315)로 출력한다. 양자화에 이용될 최대값 및 최소값은 상술한 실수 변환 과정을 통해서 변환되고 부호화되어 헤더 부호화기(500)로 출력되므로써, 복호화에 이용할 수 있도록 최대값과 최소값이 헤더에 포함된다.
양자화기(320)는 양자화오차 최소화부(325)로부터 입력된 값이 없으면, 입력된 키 데이터 중에서 첫 번째 키 데이터(fKey0)를 최소값(fKeyMin)으로, 마지막 키 데이터(fKeyN-1)를 최대값(fKeyMax)으로 설정한다(S4240).
그 후, 양자화기(320)는 설정된 최대값이 1보다 작고, 최소값이 0보다 큰 값인지를 판단하여(S4250), 그렇지 않으면, 최대값과 최소값을 상술한 실수 변환부(315)로 출력하고 상술한 과정을 통해서 변환하여 부호화한 후, 헤더 부호화기(500)로 출력하여 복호화에 이용할 수 있도록 최대값과 최소값을 키 헤더에 포함시킨다(S4260).
한편, 최대값과 최소값이 제 S9250 단계의 조건을 만족하면, 최대값과 최소값을 복호화에 이용할 수 있도록 키 헤더 데이터에 포함할지의 여부를 나타내는 플래그를 조사한다(S4270). 만약, 플래그가 최대값과 최소값을 키 헤더에 포함하도록 설정되어 있다면, 상술한 제 S9260 단계를 수행하여 최대값(fKeyMax) 및 최소값(fKeyMin)을 부호화한 후 헤더 부호화기(500)로 출력하고, 그렇지 않다면, 양자화기(320)는 최대값과 최소값을 키 헤더에 포함시키지 않게 된다.
최대값과 최소값을 키 헤더에 포함시키지 않는 경우는, 키 데이터 부호화기(700) 및 키 데이터 복호화기가 서로 최대값을 1 로 최소값을 0으로 설정하여 부호화 및 복호화를 수행할 것을 규약한 경우에 해당되므로, 양자화기(320)는 최소값(fKeyMin)을 0 으로, 최대값(fKeyMax)을 1 로 각각 설정한다(S4280). 이렇게 설정된 양자화에 이용되는 최대값과 최소값은 이미 복호화기에 알려져 있으므로 별도로 키 헤더에 포함시키지 않는다.
한편, 양자화기(320)는 상술한 과정을 통해서 설정된 fKeyMax 및 fKeyMin를 상기 수학식 6 에 대입하여 입력된 키 데이터들을 양자화하고, 양자화된 키 데이터를 DPCM 처리부(330)로 출력한다(S4290).
양자화된 키 데이터들을 수신한 DPCM 처리부(330)는 소정 회수의 DPCM을 수행하여 최소의 산포도가 생성되는 차수 및 인트라 키 데이터는 헤더 부호화기(500)로 출력하고, DPCM 연산이 수행된 키 데이터의 차분 데이터들을 쉬프팅부(340)로 출력한다(S4300).
도 4d 을 참조하여 DPCM 처리과정을 살펴보면, DPCM 처리부(330)는 입력된 키 데이터에 대해서 먼저 소정의 회수만큼 DPCM 연산을 수행하고, DPCM 이 수행된 회수는 DPCM 차수로서 저장한다(S4310). 본 발명의 바람직한 실시예에서는 3회의 DPCM 연산을 수행하였다.
그 후, DPCM 처리부(330)는 각 차수의 DPCM 연산 결과에 대해서 산포도를 계산한다(S4320). 이때의 산포도를 나타내는 통계값으로서 분산, 표준편차, 및 사분편차등이 이용될 수 있고, 본 발명의 바람직한 실시예에서는 사분 편차가 산포도로서 사용된다.
각 차수의 DPCM 연산 결과에 대한 산포도가 계산되면, DPCM 처리부(330)는 산포도가 최소가 되는 DPCM 차수 및 해당 차수의 DPCM 결과를 선택하여, DPCM 연산 결과는 쉬프팅부(340)로 출력하고, DPCM 차수, 각 차수의 인트라 키 데이터 및 그 외의 DPCM 연산에서 필요한 정보들은 헤더 부호화기(500)로 출력한다(S4330). 다 만, 본 발명의 바람직한 실시예에서는 키의 개수가 5보다 작으면, 1 차 DPCM 만을 수행하였다. 예컨대, 1 차 DPCM 이 수행될 때에는, 다음의 수학식 7을 이용하여 DPCM 연산을 수행하였다.
Δi=nQKeyi+1 - nQKeyi
여기서 i 는 양자화된 키 데이터의 인덱스를, nQKeyi 는 정수 배열을, Δi는 차분 데이터를 각각 나타낸다.
한편, DPCM 처리부(330)는 선택된 DPCM 결과, 및 DPCM 된 키 데이터의 차분 데이터를 부호화할 때 필요한 비트수를 계산하여, 소정의 기억장소(본 발명의 실시예에서는 nQStep_DPCM)에 저장한다(S4340). 다만, 부호화에 필요한 비트수를 계산하는 단계는 후술할 부호화할 키 데이터를 선택하는 단계에서 수행할 수 있음은 당업자에게 자명할 것이다.
DPCM 결과를 수신한 쉬프팅부(340)는 입력된 차분 데이터들 중에서 가장 빈도수가 높은 차분 데이터(이하, 모드라 함)를 선택하여 모든 차분 데이터에서 모드를 감산하므로써, 부호화될 데이터들이 0 주변에 집중적으로 분포되도록 하여 부호화에 필요한 비트수를 줄인다(S4400).
쉬프팅 연산은 모든 양자화된 키 데이터의 차분 데이터에 모드(nKeyShift)를 감산함으로써 수행된다. 이러한 쉬프팅 연산은 다음의 수학식 8 로 표현된다.
shift(nQKeyi)=nQKeyi-nKeyShift
i 는 양자화된 키 데이터의 인덱스를 나타내고, nQKeyi 는 정수 배열을 나타내며, nKeyShift는 모드값을 나타낸다. 쉬프팅 연산이 수행된 후에는, 키 데이터의 차분 데이터 중 최고 많은 빈도를 나타내는 차분 데이터는 0 이 되므로, 부호화에 필요한 비트수를 대폭 줄일 수 있다.
쉬프팅 연산이 수행된 키 데이터들은 폴딩(fold)처리부(350) 및 DND 처리부(360)로 출력되고, 모드값(nKeyShift)은 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.
쉬프팅된 데이터를 수신한 폴딩 처리부(350)는 DND 연산을 수행하기 위한 전처리 단계로서 폴딩 연산을 수행하여, 폴딩 연산된 키 데이터를 DND 처리부(360)로 출력한다(S4500).
폴딩 연산은 0 을 중심으로 음수 영역과 양수 영역으로 다양하게 분포되는 차분 데이터를 양수 영역 또는 음수 영역으로 집중시켜 차분 데이터의 범위를 줄이기 위한 것으로, 본 실시예에서는 다음의 수학식 9 에 의해서 폴딩 연산을 수행하여 차분 데이터의 분포를 양수 영역으로 집중시켰다.
fold(nQKeyi)=2nQkeyi ,(nQkeyi ≥0 인 경우)
=2|nQKeyi|-1 ,(nQkeyi < 0 인 경우)
여기서, i 는 양자화된 키 데이터의 인덱스를 나타내고, nQKeyi 는 정수 배 열을 나타낸다. 폴딩 연산에 의해서, 쉬프팅된 키 데이터의 차분 데이터 중 양수인 데이터는 짝수인 양수로, 음수인 데이터는 홀수인 양수로 각각 변환된다.
폴딩 처리부(350)는 폴딩 연산이 수행된 데이터를 부호화할 때 필요한 비트수를 계산하여 소정의 기억장소(nQStep_fold)에 저장한다. 제 S9300 단계에서와 같이, 부호화에 필요한 비트수의 계산은 후술할 엔트로피 부호화할 차분 데이터를 선택하는 단계에서 수행할 수 있음은 당업자에게 자명할 것이다. 한편, 폴딩 처리부(350)에서 폴딩연산이 수행된 데이터는 DND 처리부(360)로 출력된다.
DND 처리부(360)는 엔트로피 부호화 효율을 높이기 위해서, 입력된 키 데이터의 차분 데이터들에 대해서 DND 연산을 소정의 회수만큼 수행하여 데이터의 범위를 줄인다(S4600).
도 3b를 참조하여 DND 처리부(360)를 살펴보면, DND 처리부는 DND 연산을 수행하는 DND 연산부(362), 부호화 비트수에 따라서 엔트로피 부호화할 차분 데이터를 선택하는 제 1 차분 데이터 선택부(364), 제 1 차분 데이터 선택부에서 DND 연산이 수행된 차분 데이터가 선택되면 DND 연산이 수행된 차분 데이터에 쉬프트-업 연산을 수행하는 쉬프트-업 연산부(366), 및 DND 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터 중 에서 산포도가 더 작은 차분 데이터를 선택하여 엔트로피 부호화기(370)로 출력하는 제 2 차분 데이터 선택부(368)를 포함한다.
먼저, DND 연산부(362)에서 수행되는 DND 연산에 대해서 살펴본다.
폴딩 연산된 차분 데이터가 DND 연산부(362)로 입력되면, 입력된 차분 데이터들은 절반으로 나눠지고, 상위 범위에 위치하는 차분 데이터들은 디바이드 함수 에 의해서 음수 영역으로 이동된다. 디바이드 함수는 다음의 수학식 10 과 같이 정의된다.
divide(nQKeyj,nKeyMax)
= nQKeyj - (nKeyMax+1) , (nQKeyj > nKeyMax/2 인 경우)
= nQKeyj , (nQKeyj ≤ nKeyMax/2 인 경우)
여기서, j 는 입력된 차분 데이터의 인덱스이고, nQKeyj 는 정수 배열을, nKeyMax 는 입력된 폴딩연산된 차분 데이터 중 최대값을 각각 나타낸다. 차분 데이터의 분포가 전체 차분 데이터가 차지하는 범위의 경계 영역에 집중되어 있는 경우에, DND 연산은 데이터의 전체 영역을 대폭 감소시키는 효과가 있다.
디바이드 연산후에 산포도가 계산되는데, 이 경우에 최소한의 부호화 비트 사이즈가 선택되도록 부호화에 필요한 비트 사이즈가 산포도로서 이용된다.
디바이드 연산이 수행된 후에, 디바이드 연산과 유사한 다른 DND 연산인 디바이드-업 연산 또는 디바이드-다운 연산이 수행되는데, 수행될 연산은 디바이드 연산후의 데이터의 양수측 및 음수측 범위의 크기에 따라서 결정된다.
양수측의 범위가 더 크면, 다음의 수학식 11 로 정의되는 디바이드-다운 연산이 수행된다.
divide-down(nQKeyj,nKeyMax)
= -2(nKeyMax-nQKeyj +1)+1 , (nQKeyj > nKeyMax/2 인 경우)
= nQKeyj , (0 ≤nQKeyj ≤nKeyMax/2 인 경우)
= 2nQKeyj , (nQKeyj < 0 인 경우)
한편, 음수측의 범위가 더 크면, 다음의 수학식 12로 정의되는 디바이드-업 연산이 수행된다.
divide-up(nQKeyj,nKeyMin)
= nQKeyj , (nQKeyj > 0 인 경우)
= 2nQKeyj , (nKeyMin/2 ≤nQKeyj ≤0 인 경우)
= 2(nKeyMin-nQKeyj -1)+1, (nQKeyj < nKeyMin/2 인 경우)
상기 수학식들에서, j 는 양자화된 키 데이터의 인덱스이고, nQKeyj 는 정수 배열이며, nKeyMax 는 nQKeyj 의 최대값이고, nKeyMin 는 nQKeyj 의 최소값이다.
이하, DND 연산부(362)의 연산수행 과정을 도시한 도 4e 을 참조하여, DND 연산과정을 살펴본다.
DND 연산부(362)는 폴딩 처리부(350)로부터 키 데이터의 차분 데이터가 입력되면, 입력된 차분 데이터들 중에서 최대값(nKeyMax) 및 최소값(nKeyMin)을 구한다(S4610). 그 후, DND 연산부(362)는 최대값과 최소값의 절대값을 비교하고(S4620), 최대값이 최소값의 절대값보다 크거나 같으면, 구해진 최대값을 현재 DND 연산 차수의 최대값으로 설정한다(S4622).
DND 연산부(362)는 DND 연산 차수가 1 인지를 조사하여(S4624), 차수가 1 이면 상술한 수학식 10 에 최대값(nKeyMax)을 대입하여 DND 연산부(362)로 입력된 차분 데이터에 대해서 디바이드 연산을 수행한다(S4630).
디바이드 연산을 수행한 DND 연산부(362)는 부호화에 필요한 비트 사이즈를 구하기 위한 함수 getQBit()를 이용하여, 디바이드 연산을 수행하여 줄어든 차분 데이터 범위를 부호화하기 위해서 필요한 비트 사이즈를 측정한다(S4640). 그 후, 현재의 DND 연산 차수가 1 이면(S4650), 상기 값을 DND 연산후에 최소 부호화 비트 사이즈를 나타내는 값(nQBitDND)으로 일단 저장하고, DND 차수를 1 증가시킨다(S4655).
그 후, DND 연산부(362)는 상술한 과정을 다시 수행하는데, 제 S9624 단계에서 차수가 1 이 아니면, 상기 수학식 11 에 nKeyMax 값을 대입하여 디바이드-다운 연산을 수행한다(S4634). DND 연산부(362)는 디바이드-다운 연산이 수행된 차분 데이터의 부호화에 필요한 비트수를 계산하고(S4640), 이 값이 이전 차수의 DND 연산에서 저장된 부호화에 필요한 최소값(nQBitDND)보다 작으면(S4652), DND 연산후에 부호화에 필요한 최소비트 사이즈를 이 값으로 대체한다(S4658).
한편, 제 S9620 단계에서, 최소값의 절대값이 최대값보다 더 크다면, 당해 차수의 최대값을 입력된 최소값으로 갱신하고(S4623), 최소값을 상기 수학식 12 에 대입하여 디바이드-업 연산을 수행한다(S4638). 그 후, DND 연산부(362)는 디바이드-업 연산이 수행된 차분 데이터의 부호화에 필요한 비트수를 계산하고(S4640), 이 값이 이전 차수의 DND 연산에서 저장된 부호화에 필요한 최소값(nQBitDND)보다 작으면(S4652), DND 연산후에 부호화에 필요한 최소비트 사이즈를 이 값으로 대체한다(S4658).
DND 연산부(362)는 소정의 회수가 될 때까지 상술한 과정을 반복하는데, DND 연산을 수행하는 회수는 가변적이다. 예컨대, 본 실시예는 DND 연산을 수행하는 회수를 7 회로 설정하였다. DND 연산 연산부(362)는 부호화에 필요한 최소 비트 사이즈(nQBitDND) 및 그때의 DND 연산된 차분 데이터를 제 1 차분 데이터 선택부(364)로 출력하고, 그 때의 차수를 헤더 부호화기(500)로 출력하여 비트스트림에 포함시킨다.
제 1 차분 데이터 선택부(364)는 쉬프팅 연산된 차분 데이터, 폴딩 연산된 차분 데이터 및 DND 연산된 차분 데이터를 입력받아, 어떤 연산 수행 결과를 엔트로피 부호화할 것이지를 결정한다.
도 4a을 다시 참조하며, 제 1 차분 데이터 선택부(364)는 DND 연산후에 부호화에 필요한 최소 비트수(nQBitDND)가 DPCM 연산후의 부호화 비트 사이즈(nQStep-DPCM)보다 크거나 같으면(S4700), DPCM 연산의 결과를 선택하고 쉬프팅 연산을 수행한 후, 쉬프팅된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화한다(S4710). 이 경우에, DND 차수는 -1 로 설정되고 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.
그러나, nQBitDND 가 DPCM 후의 부호화 비트 사이즈보다 작지만, 폴딩 연산후의 부호화 비트 사이즈보다 크거나 같으면(S4720), 제 1 차분 데이터 선택부(364)는 폴딩연산된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화한다(S4730). 이 경우에, DND 차수는 0 으로 설정되고 헤더 부호화기(500)로 출력되어 키 헤더에 포함된다.
만약, DND 연산된 후의 차분 데이터의 부호화 비트수가 가장 적다면, 제 1 차분 데이터 선택부(364)는 DND 연산된 차분 데이터를 쉬프트-업 연산부(366)로 출력하고, 쉬프트-업 연산부(366)은 차분 데이터를 입력받아, DND 연산된 차분 데이터에 대해서 제 1 산포도를 계산하고(S4740), 아울러, DND 연산된 차분 데이터에 대해서 다음의 수학식 13 으로 정의되는 쉬프트-업 연산을 수행한 후(S4800), 쉬프트-업 연산된 차분 데이터들의 제 2 산포도를 다시 계산한다(S4810).
shift-up(nQKeyj , nKeyMax)
= nQKeyj , (nQKeyj ≥0)
= nKeyMax - nQKeyj , (nQKeyj < 0)
여기에서 j 는 양자화된 키 데이터의 차분 데이터의 인덱스이고, nQKeyj는 정수 배열이며, nKeyMax 는 차분 데이터 중에 최대값을 각각 나타낸다.
DND 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터를 입력받은 제 2 차분 데이터 선택부(368)는 제 1 산포도 및 제 2 산포도의 크기를 비교하여(S4900) 쉬프트-업 연산후의 제 2 산포도가 DND 연산 후의 제 1 산포도보다 작으면, 쉬프트-업 연산이 수행된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트 로피 부호화하고(S4910), DND 연산에서 사용된 최대값(nKeyMax) 및 최소값(nKeyMin), 그리고, 쉬프트-업 연산에서 사용된 최대값(nKeyMax)을 헤더 부호화기(500)로 출력하여 키 헤더에 포함시킨다.
그러나, DND 연산 후의 제 1 산포도가 쉬프트-업 연산후의 제 2 산포도보다 더 작으면, 제 2 차분 데이터 선택부(368)는 DND 연산이 수행된 차분 데이터를 엔트로피 부호화기(370)로 출력하여 엔트로피 부호화하고(S4920), DND 연산에서 사용된 최대값(nKeyMax) 및 최소값(nKeyMin)만이 헤더 부호화기(500)로 출력된다. 본 발명의 바람직한 실시예에서는 전술한 제 1 및 제 2 산포도로서 표준편차를 이용하였다.
엔트로피 부호화기(370)는 부호화할 차분 데이터의 성질에 따라서 2가지 함수 연산을 수행하여 차분 데이터를 부호화한다. 예컨대, DPCM 이 수행되고 쉬프팅 연산이 수행된 차분 데이터 및 디바이드 연산이 수행된 차분 데이터는 양수 및 음수를 모두 갖게 되므로, 차분 데이터의 부호를 포함하는 부호화를 수행하고, 폴딩 연산된 차분 데이터 및 쉬프트-업 연산된 차분 데이터는 양수값만을 가지므로 부호를 포함하지 않는 부호화를 수행한다.
본 발명의 바람직한 실시예는 부호를 포함하는 부호화함수로서 encodeSignedAAC 함수를 이용하고, 부호를 포함하지 않는 부호화함수로서 encodeUnsignedAAC 함수를 이용하여 차분 데이터를 부호화한다.
도 5 은 encodeSignedAAC 함수의 일예를 도시하는 도면이다. 도 8 을 참조하면, 입력 값이 74 이고, 이 값에 대한 부호화 비트수가 8 이라면, 이 값의 부 호는 0 이고, 이 값의 이진수는 1001010 이 된다. 부호 및 모든 비트 플레인은 다음과 같이 과정을 통해서 부호화된다.
제 1 단계: 이진수를 MSB 에서부터 LSB로 비트플레인 단위로 부호화한다.
제 2 단계: 부호화중에 현재 부호화되는 비트가 0이 아닌지를 검사한다.
제 3 단계: 만약, 첫 번째 0 이 아닌 값이라면, 이진수의 현재 부호화 비트를 부호화한 후에 부호를 부호화한다.
제 4 단계: 이진수의 잔여 비트를 부호화한다.
encodeUnsignedAAC 함수는 부호없는 값을 값들에 대한 컨택스트를 이용하여 적응 산술 부호화 비트스트림으로 부호화한다. 이것은 부호 컨택스트가 있다는 점을 제외하면, 전술한 encodeSignedAAC 함수의 처리과정과 유사하다.
도 6a 내지 도 6j 는 본 발명의 바람직한 실시예에 따른 연산들이 수행된 후의 키 데이터를 도시하는 도면들이다. 도 6a 내지 도 6j에서 횡축은 각 키 데이터의 인덱스를 나타내고, 종축은 키 데이터의 값을 나타낸다.
도 6a 는 본 발명의 부호화기로 입력된 원래 키 데이터를 도시한 도면이다. 도 6a 에 도시된 키 데이터가 양자화기(320)로 출력되어 9비트의 양자화 비트로 양자화되면, 도 6b 에 도시된 양자화된 키 데이터가 얻어진다. 양자화된 키 데이터에 대해서 DPCM을 수행하면, 도 6c 와 같은 키 데이터의 차분 데이터를 얻게된다.
그 후, 양자화된 키 데이터의 차분 데이터를 약 7 의 모드값으로 쉬프팅하면, 도 6d 에 도시된 키 데이터의 차분 데이터를 얻을 수 있고, 쉬프팅된 차분 데이터에 폴딩 연산을 수행하면, 도 6e 에 도시된 바와 같이 모두 양수로 변환된 데 이터를 얻을 수 있다.
폴딩된 데이터에 DND 연산을 수행한 데이터를 도 6f 내지 12h 에 도시하였다.
폴딩된 데이터에 대해서 먼저 DND 연산 중 디바이드 연산을 수행한 후의 차분 데이터를 도 6f 에 도시하였다. 도시된 바와 같이 양수측의 범위는 0~28 이고, 음수측의 범위는 0 ~ -29 이므로 음수측의 범위가 더 크다. 따라서, 도 9f 에 도시된 데이터에 대해서 디바이드-업 연산이 수행되고, 디바이드-업 연산의 결과를 도 6g 에 도시하였다.
디바이드-업 연산에 의해서 키 데이터의 음수측 범위는 양수측 범위에 비해서 상당히 줄어들고, DND의 다음 차수에서 디바이드-업 연산된 차분 데이터에 대해서 디바이드-다운 연산이 수행된다. 도 6h 는 도 6g 의 차분 데이터에 대해서 디바이드-다운 연산을 수행한 결과를 도시한 도면이다. 한편, 디바이드-다운 연산된 키 데이터에 대해서 쉬프트-업 연산을 수행한 결과를 도 6i 에 도시하였다.
상술한 도 6a 내지 도 6g 까지는 키 데이터 및 차분 데이터의 범위가 점점 줄어드는 것을 알 수 있다. 그러나, 쉬프트-업 연산 결과를 도시한 도 9i 와 도 9h를 비교하여 보면, 쉬프트-업 연산 수행후의 부호화될 차분 데이터의 범위가 더 증가했음을 알 수 있다. 따라서, 최종적으로 부호화할 키 데이터의 차분 데이터는 디바이드-다운 연산이 수행된 차분 데이터인 것을 도 9j를 통해서 알 수 있다.
한편, 헤더 부호화기(500)에서 부호화되어 키 헤더에 저장되는 정보들을 살펴본다.
부호화될 키 데이터들이 입력되면, 헤더 부호화기(500)는 입력 키 데이터들로부터 키 데이터의 자리수 및 부호화될 전체 키의 개수를 입력받아 부호화한다. 그 후, 헤더 부호화기(500)는 선형 키 부호화기(310)로부터 선형 키 부호화된 선형 키 영역이 있는지를 나타내는 정보 및 선형 키 영역의 키 데이터의 개수를 입력받고, 실수 변환부(315)로부터 실수 변환된 선형 키 영역의 시작 키 데이터 및 종료 키 데이터를 입력받는다.
아울러, 실수 변환부(315)가 양자화 오차 최소화부(325)로부터 양자화 오차가 최소화되는 최대값 및 최소값을 입력받아 실수 변환한 경우에는, 변환된 최대값 및 최소값은 역 양자화에 이용될 수 있도록 실수 변환부(315)로부터 헤더 부호화기(500)로 입력되어 키 헤더에 포함된다. 또한, 양자화에 이용된 양자화 비트 사이즈도 헤더 부호화기(500)로 입력되어 키 헤더에 포함된다.
또한, 헤더 부호화기(500)는 DPCM 처리부(330)로부터 DPCM 연산 수행 차수 및 각 차수에서의 인트라 키(intra Key) 데이터를 입력받고, 쉬프팅부(340)로부터 쉬프팅연산에 이용된 모드값을 입력받으며, DND 처리부(360)로부터 쉬프트-업 연산이 수행되었는지 여부, 산포도가 최소가 되는 DND 차수 및 각 DND 차수에서의 최대값 및 최소값을 입력받는다. 마지막으로, 헤더 부호화기(500)는 엔트로피 부호화기(370)로부터 부호화에 이용된 부호화 비트수를 입력받아 키 헤더로 부호화한다.
이하, 첨부된 도 7a 내지 도 11c를 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 값 데이터 부호화기 및 부호화 방법을 설명한다.
도 7a 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 값 데이터 부호화기의 구성을 도시하는 블록도이고, 도 7b 는 본 발명의 바람직한 실시예에 따른 부호화 방법을 설명하는 흐름도이다.
도 7a를 참조하면, 본 발명의 키 값 데이터 부호화기(700)는 입력된 좌표 인터폴레이터 키 값 데이터의 각 정점의 각 성분 데이터를 소정의 양자화 비트수로 양자화하는 양자화기(710), 양자화된 각 정점의 성분 데이터에 대해서 소정의 DPCM 연산을 수행하는 DPCM 처리부(720), 차분 데이터를 심볼 및 심볼의 위치를 나타내는 인덱스로 변환하는 사전 부호화기(750), 및 입력된 차분 데이터의 심볼 및 인덱스를 엔트로피 부호화하는 엔트로피 부호화기(760)를 포함한다.
이하, 도 7b를 참조하여 본 발명의 부호화 방법을 설명한다.
좌표 인터폴레이터의 키 값 데이터는 N ×M 크기의 매트릭스 형태로 양자화기(710)로 입력된다(S9000). 아래의 표 3 에 입력된 좌표 인터폴레이터의 키 값 데이터의 일예를 기재하였다.
1 2 ... j M
1 x(1,1),y(1,1) z(1,1) x(1,2),y(1,2) z(1,2) x(1,M),y(1,M) z(1,M)
2 x(2,1),y(2,1) z(2,1) x(2,2),y(2,2) z(2,2) x(2,M),y(2,M) z(2,M)
... i x(i,j),y(i,j) z(i,j)
N x(N,1),y(N,1) z(N,1) x(N,2),y(N,2) z(N,2) x(N,M),y(N,M) z(N,M)
상기 표 3 에서 N 은 키 데이터의 개수(키 프레임의 개수)를 나타내며, M 은 각 키 프레임에서 정점의 개수를 나타낸다.
본 발명의 키 값 데이터 부호화기(700)는 좌표 인터폴레이터의 키 값 데이터를 부호화하기 위한 두가지 모드로 동작하는데, 하나는 정점(Vertex) 모드이고, 다른 하나는 전치(Transpose) 모드이다. 상기 표 3 에는 정점 모드에서 양자화기(710)가 양자화할 키 값 데이터의 구조를 기재하였다. 본 발명의 키 값 데이터 부호화기(700)는 전치 모드에서 상기 표 3 에 기재된 입력된 키 값 데이터를 양자화하기에 앞서 M ×N 행렬로 변환한다. 전치 변환된 데이터 행렬은 키 값 데이터의 복호화 과정에서 역 양자화된 후, 복호화된 키 값 데이터를 다시 N ×M 행렬로 전환하여 입력된 키 값 데이터와 동일한 키 값 데이터가 복원된다.
도 7b를 참조하면, 양자화기(710)는 외부로부터 입력된 키 값 데이터의 부호화 모드가 전치 모드인지를 조사하고(S9100), 전치 모드라면 입력된 N ×M 의 키 값 데이터 행렬을 M ×N 행렬로 변환한다(S9200).
그 후, 양자화기(710)는 소정의 양자화 비트수로 입력된 또는 변환된 키 값 데이터 행렬의 각 성분의 데이터를 양자화하여, 양자화된 각 성분의 키 값 데이터를 DPCM 처리부(720)로 출력하고, 양자화에 이용된 입력 데이터의 각 성분의 최소값들 및 최대 범위는 10진수 체계의 실수로 변환하여 키 값 헤더 부호화기로 출력한다(S9300).
DPCM 처리부(720)는 입력된 양자화된 키 값 데이터에 대해서 시간 DPCM 연산, 공간 DPCM 연산 및 시공간 DPCM 연산을 수행하고, 각각의 DPCM 연산 결과에 대해서 순환 양자화를 수행하여, 순환 양자화된 각 차분 데이터 중에서 가장 엔트로피가 작은 차분 데이터를 사전 부호화기(750)로 출력한다(S9400).
사전 부호화기(750)는 입력된 차분 데이터에 대응되는 사전 심볼(Si,j) 및 위치 인덱스(Ii,j)를 생성하여 출력한다(S9600). 구체적으로, 사전 부호화기(750)는 입력된 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 위치 인덱스를 생성하고, 차분 데이터를 차분 데이터에 존재하는 값을 나타내는 심볼 또는 심볼 플래그, 및 심볼들의 위치를 나타내는 인덱스로 생성하여 엔트로피 부호호기로 출력한다.
엔트로피 부호화기(760)는 입력된 키 값 데이터 성분의 심볼 및 인덱스를 엔트로피 부호화하여 비트스트림을 생성한다(S9800).
이하, 전술한 각 단계를 도 8a 내지 도 11c를 더 참조하여 상세히 설명한다.
도 9a를 참조하면, 양자화기(710)는 입력된 각 성분 데이터의 최대값 및 최소값을 선정한다(S9320).
양자화기(710)는 선정된 각 성분의 데이터의 최대값 및 최소값을 이용하여 각 성분 데이터의 범위를 계산하고, 모든 성분 데이터의 범위 중 최대 범위를 결정한다(S9340).
양자화기(710)는 각 성분의 최소값 및 결정된 모든 성분의 최대 범위를 이용하여 다음의 수학식 14 에 따라서 각 성분의 키 값 데이터를 양자화한다(S9360).
Figure 112002034342899-pat00015
Figure 112002034342899-pat00016
Figure 112002034342899-pat00017
수학식 14 에서 i 는 키 데이터를 나타내고, j 는 정점을 나타내며, nKVQBit 는 양자화 비트 사이즈를 나타낸다. 또한, fMin_X, fMin_Y, 및 fMin_Z 는 각 성분 데이터의 최소값을 나타내고, fMax는 각 성분 데이터의 범위 중 최대 범위를 나타낸다.
양자화기(710)는 양자화된 각 성분의 키 값 데이터를 DPCM 처리부(720)로 출력하고, 전술한 각 성분의 최소값들(fMin_X, fMin_Y, 및 fMin_Z) 및 최대 범위(fMax)를 상술한 수학식 4 및 표 2 에 따라서 10진수 체계의 실수로 변환하여 키 값 헤더 부호화기(500)로 출력한다.
이하, 도 8a 및 도 9b를 참조하여, 본 발명의 키 값 데이터 부호화기의 DPCM 처리부 및 DPCM 연산 방법을 설명한다.
본 발명의 키 값 데이터 부호화기의 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)를 포함한다.
본 발명의 키 값 데이터의 DPCM 연산 방법을 설명하는 상세 흐름도인 도 9b를 참조하면, 양자화기(710)로부터 입력된 양자화된 각 성분의 데이터는 시간 DPCM 연산부(731), 공간 DPCM 연산부(733), 및 시공간 DPCM 연산부(735)로 각각 입력되어 DPCM 연산이 수행된다(S9420).
시간 DPCM 연산부(731)는 현재 키 프레임의 각 정점의 각 성분 데이터와 이전 키 프레임의 각 정점의 각 성분 데이터간의 차를 계산한다. 시간 DPCM 연산은 다음의 수학식 15 로 표현된다.
Figure 112002034342899-pat00018
상기 수학식 15 에서 i 는 키 데이터를 j 는 정점의 인덱스를 각각 나타낸다.
한편, 공간 DPCM 연산부(733)는 동일한 키 프레임의 각 정점간의 차를 계산한다. 구체적으로, 공간 DPCM 연산부(733)는 공간 DPCM 연산을 수행할 현재 정점 이전에 공간 DPCM 연산이 수행된 정점들에 대해서, 다음의 수학식 16 을 이용하여 엔트로피를 계산한다.
Figure 112002034342899-pat00019
상기 수학식 16 에서 Pi 는 정점에서 심볼이 발생할 확률로서 Fi/N 이며, 여기서 Fi 는 정점에서 그 심볼이 발생하는 회수이고, N 은 키 데이터의 개수이다.
공간 DPCM 연산부(733)는 정점들 중 엔트로피가 가장 낮은 정점을 기준 정점으로 결정하고, 현재 공간 DPCM 연산이 수행될 정점 및 기준 정점의 성분 데이터간의 차분 데이터를 계산한다. 공간 DPCM 연산은 다음의 수학식 17 로 표현된다.
Figure 112002034342899-pat00020
한편, 시공간 DPCM 연산부(735)는 현재 키 프레임의 각 정점에 대해서 공간 DPCM 연산을 수행하고, 현재 키 프레임의 각 정점에 대응되는 이전 키 프레임의 각 정점에 대해서 현재 키 프레임의 각 정점의 기준 정점에 대응되는 정점을 기준 정점으로 공간 DPCM 연산을 수행한 후, 현재 키 프레임의 정점에 대응되는 차분 데이터와 이전 프레임의 정점에 대응되는 차분 데이터간의 차를 계산한다. 즉, 공간 DPCM 연산된 결과에 대해서 시간 DPCM 연산을 수행한다. 시공간 DPCM 연산은 다음의 수학식 18 로 표현된다.
Figure 112002034342899-pat00021
다만, 공간 DPCM 연산 및 시공간 DPCM 연산 중에
Figure 112002034342899-pat00022
또는
Figure 112002034342899-pat00023
가 양자화된 최소값보다 작다면, 이 값들 대신에 양자화된 최소값이 DPCM 연산에 이용된다. 또한, 공간 DPCM 연산 및 시공간 DPCM 연산 중에
Figure 112002034342899-pat00024
또는
Figure 112002034342899-pat00025
가 양자화된 최대값보다 크다면, 이 값들 대신에 양자화된 최대값이 DPCM 연산에 이용된다.
DPCM 연산부(730)는 계산된 차분 데이터들을 순환 양자화기(740)로 출력하고, 순환 양자화기(740)는 시간 DPCM 연산된 차분 데이터, 공간 DPCM 연산된 차분 데이터, 및 시공간 DPCM 연산된 차분 데이터 각각에 대해서 순환 양자화를 수행하고, 순환 양자화된 각 차분 데이터를 DPCM 모드 선택부(745)로 출력한다(S9440).
도 10a 는 양자화기(710)의 출력의 일예를 도시하고, 도 10b 는 도 10a 에 도시된 양자화된 데이터에 DPCM 연산이 수행된 결과를 도시한다. 도 10b 에 도시된 바와 같이, 양자화된 값에 DPCM 연산이 수행되면 부호화될 데이터의 범위는 2배까지 증가할 수 있다. 순환 양자화의 목적은 양자화된 값의 데이터 범위를 유지하면서 DPCM 연산을 수행하는 것이다.
이를 위해서, 순환 양자화는 DPCM 연산된 차분 데이터의 최대값이 DPCM 연산된 최소값과 순환적으로 연결되어 있다고 가정한다. 따라서, 두 개의 연속된 양자화된 차분 데이터간의 선형 DPCM 결과가 DPCM 연산된 차분 데이터의 최대값의 절반보다 크면 차분 데이터의 최대 범위를 감산하여 크기가 더 작은 값으로 나타내고, 두 개의 연속된 양자화된 차분 데이터간의 선형 DPCM 결과가 DPCM 연산된 차분 데이터의 최소값의 절반보다 작으면 차분 데이터의 최대 범위를 합산하여 크기가 더 작은 값으로 나타낸다.
순환 양자화기(740)의 순환 양자화 연산은 다음의 수학식 19 로 표현된다.
Figure 112002034342899-pat00026
상기 수학식 19 에서 nQMax 는 DPCM 연산된 차분 데이터 중 최대값을 나타내고, nQMin 은 DPCM 연산된 차분 데이터 중 최소값을 나타낸다. 도 10b 에 도시된 DPCM 연산된 데이터에 대해서 순환 양자화를 수행한 결과가 도 10c 에 도시되어 있다.
순환 양자화기(740)는 순환 양자화된 각 차분 데이터를 DPCM 모드 선택부(745)로 출력한다.
DPCM 모드 선택부(745)는 각 정점에 대해서 입력된 시간, 공간 및 시공간 DPCM 연산된 차분 데이터의 엔트로피를 상술한 수학식 16 에 따라서 계산한다(S9460).
그 후, DPCM 모드 선택부(745)는 계산된 엔트로피가 가장 적은 DPCM 연산 결과를 각 정점의 DPCM 연산 모드로서 선택하고, 선택된 DPCM 모드에 따른 차분 데이터 및 DPCM 모드 정보를 사전 부호화기(750)로 출력한다(S9480).
이하, 도 8b 및 도 9c를 참조하여 본 발명의 사전 부호화기(750) 및 사전 부 호화 방법을 설명한다.
본 발명의 사전 부호화기(750)의 구성을 도시한 블록도인 도 8b를 참조하면, 사전 부호화기(750)는 입력된 각 정점의 각 성분 데이터에 수행된 DPCM 연산 모드를 부호화하는 DPCM 모드 부호화기(752), 입력된 각 정점의 각 성분의 차분 데이터 값을 나타내는 심볼과 심볼의 위치를 나타내는 인덱스를 생성하는 발생 모드 부호화기(756), 입력된 각 정점의 각 성분의 차분 데이터의 심볼에 대응되는 설정 플래그 및 심볼의 위치를 나타내는 인덱스를 생성하는 증가 모드 부호화기(758), 및 입력된 각 정점의 각 성분의 차분 데이터를 표현하기 위한 심볼 테이블의 크기 및 심볼 플래그 테이블의 크기를 계산하여 DPCM 모드 부호화기(752)로부터 입력된 차분 데이터를 발생 모드 부호화기(756) 또는 증가 모드 부호화기(758)로 출력하는 테이블 사이즈 계산부(754)를 포함한다.
먼저, 사전 부호화기(750)는 DPCM 모드 부호화기(752)에서, 입력된 각 정점의 차분 데이터의 양자화 선택 플래그(Quantization Selection Value)의 값이 1 인지를 조사하여, 플래그 값이 1 이면, 후술할 과정을 수행한다. 그러나, 플래그 값이 0 이라면, 이것은 해당 정점의 모든 키 프레임에서의 양자화된 값이 동일하는 것을 의미하므로, 사전 부호화 과정을 생략하고 양자화된 값(QMin)을 키 값 헤더로서 부호화한다.
본 발명의 사전 부호화 방법을 설명하는 도 9c를 참조하면, DPCM 처리부(720)에서 생성된 각 정점의 각 성분의 차분 데이터는 먼저 DPCM 모드 부호화기(752)로 입력되고, DPCM 모드 부호화기(752)는 입력된 각 정점의 각 성분 데이 터의 DPCM 모드를 나타내는 심볼 및 심볼의 위치를 나타내는 인덱스를 생성한다(S9620).
도 11a 는 본 발명의 DPCM 모드 부호화기(752)가 DPCM 모드를 부호화하는 방법을 예시하는 도면이다.
도 11a를 참조하면, DPCM 모드 부호화기(752)는 각 정점에 대해서 각 성분의 DPCM 모드의 조합과 이에 대응되는 심볼을 나타내는 테이블을 미리 준비한다. 시간 DPCM 연산을 T, 공간 DPCM 연산을 S, 시공간 DPCM 연산을 T+S 라고 표시할 때, 각 정점의 DPCM 모드의 조합은 아래의 표 4 에 기재된 바와 같다.
심볼 DPCM 모드 심볼 DPCM 모드 심볼 DPCM 모드
0 (T, T, T) 9 (S, T, T) 18 (T+S, T, T)
1 (T, T, S) 10 (S, T, S) 19 (T+S, T, S)
2 (T, T, T+S) 11 (S, T, T+S) 20 (T+S, T, T+S)
3 (T, S, T) 12 (S, S, T) 21 (T+S, S, T)
4 (T, S, S) 13 (S, S, S) 22 (T+S, S, S)
5 (T, S, T+S) 14 (S, S, T+S) 23 (T+S, S, T+S)
6 (T, T+S, T) 15 (S, T+S, T) 24 (T+S, T+S, T)
7 (T, T+S, S) 16 (S, T+S, S) 25 (T+S, T+S, S)
8 (T, T+S, T+S) 17 (S, T+S, T+S) 26 (T+S, T+S, T+S)
각 정점은 x, y, 및 z 의 세 가지 성분을 포함하므로, DPCM 모드의 조합은 27 가지로 고정된다.
한편, 도 11a 에 도시된 바와 같이, 입력된 각 정점의 차분 데이터는 각 성분의 DPCM 연산 모드의 조합에 따라서 상기 표 4 에 기재한 어느 하나의 심볼에 대응된다. DPCM 모드 부호화기(752)는 입력된 각 정점의 DPCM 모드를 표 4 에 기재된 심볼에 대응시키고, 해당 심볼이 차분 데이터에 존재함을 나타내도록 플래그를 설정한다.
DPCM 모드 부호화기(752)는 입력된 각 정점의 DPCM 모드 조합에 대응되는 심볼들을 일렬로 정렬하고, 크기가 작은 심볼부터 인덱스를 생성한다.
입력된 차분 데이터에 대응되는 DPCM 모드의 심볼열은 도 11a 에 도시된 바와 같이, (4, 1, 5, 1, 4, 5) 이다. 이 때, 가장 크기가 작은 심볼은 1 (T, T, S) 이므로, DPCM 모드 부호화기(752)는 데이터 열에서 심볼 1 이 있는 위치를 나타내는 인덱스를 생성하는데, 심볼 1 이 있는 위치는 1 로 설정한다. 따라서 인덱스는 (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) 이 된다.
DPCM 모드 부호화기(752)는 설정된 플래그 및 인덱스를 테이블 사이즈 계산부(754)로 출력한다.
도 8b 및 도 9c를 다시 참조하면, 테이블 사이즈 계산부(754)는 입력된 차분 데이터를 발생 모드 부호화할 때 이용되는 심볼 테이블의 사이즈(A), 및 입력된 차분 데이터를 증가 모드 부호화할 때 이용되는 미리 설정된 심볼 테이블의 각 심볼에 대응되는 심볼 플래그의 크기를 계산한다(S9640).
테이블 사이즈 계산부(754)는 발생 모드 부호화기(756)에 이용될 심볼 테이 블의 크기(A=S*(AQP+1))와 증가 부호화 모드 부호화기에 이용될 심볼 테이블에 대응되는 심볼 플래그의 크기(B=2(AQP+1)-1)를 비교한다(S9660). 여기서, S 는 차분 데이터에 포함되는 심볼의 개수이고, AQP 는 심볼을 표현하기 위한 비트 사이즈이다.
테이블 사이즈 계산부(754)는 A 가 B 보다 더 작으면 입력된 각 정점의 차분 데이터를 발생 모드 부호화기(756)로 출력하고, B 가 A 보다 더 작으면 입력된 각 정점의 차분 데이터를 증가 모드 부호화기(758)로 출력한다.
이하, 도 11b를 더 참조하여 본 발명의 발생 모드 부호화기(756)의 처리 과정을 설명한다.
발생 모드 부호화기(756)는 입력된 차분 데이터에서 발생한 차분 값에 대응되는 심볼과 심볼의 위치를 나타내는 위치 인덱스를 생성한다(S9680).
도 11b를 참조하면, 입력된 차분 데이터가 (3,7,3,7,-4,7,3,-4,3,7,-4,-4) 라 할 때, 발생 모드 부호화기(756)는 입력된 각 정점의 차분 데이터의 차분 값에 대응되는 심볼(3, 7, -4)을 순서대로 기재한 테이블을 작성한다.
발생 모드 부호화기(756)는 입력된 차분 데이터 열에서 첫 번째 심볼인 3을 부호화한 후, 이 후의 키 프레임에서 3 이 나타나는 위치를 1 로 설정하고, 3이 나타나지 않은 위치는 0으로 설정하여 위치 인덱스를 생성한다. 심볼 3 에 대해서 생성된 인덱스는 (0 1 0 0 0 1 0 1 0 0 0)이 된다.
또한, 발생 모드 부호화기(756)는 다음 심볼인 7 에 대해서 인덱스를 생성하는데, 이 때, 도 11b에 도시된 바와 같이, 이전 심볼의 위치는 고려하지 않는다. 따라서, 심볼 7 에대한 인덱스는 (1 0 1 0 1 0 0) 이 된다.
발생 모드 부호화기(756)에서 생성되는 인덱스는 부호화되지 않은 심볼의 위치만을 고려하므로, 마지막 심볼 -4 의 위치 인덱스는 (1 1 1)이 된다.
한편, 도 11b에 도시된 예에서는 bSoleKV 플래그가 모드 0으로 설정되었다. bSoleKV 플래그는 차분 데이터에 포함된 심볼이 한번만 발생하는지를 나타내는 플래그로서, 만약, 심볼이 한번만 발생하여 인덱스가 모두 0 이라면, 해당 심볼에 대한 bSoleKV 플래그는 1 로 설정되고, 인덱스는 부호화되지 않는다. 발생 모드 부호화기(756)는 차분 데이터를 엔트로피 부호화하기 위해서 각 심볼, 심볼의 인덱스, 및 bSoleKV 플래그를 엔트로피 부호화기(760)로 출력한다.
이하, 도 11c를 참조하여 본 발명의 증가 모드 부호화기(758)의 처리 과정을 설명한다.
증가 모드 부호화기(758)는 심볼 값 대신에 심볼이 존재하는지 여부를 나타내는 플래그 및 심볼의 위치를 나타내는 위치 인덱스를 생성한다(S9690).
증가 모드 부호화기(758)는 차분 데이터에 존재할 심볼들을 테이블로 미리 생성한다. 테이블은 심볼들의 절대값의 오름차순으로 생성되고, 동일한 절대값 중 양수가 음수보다 상위에 위치한다. 따라서, 테이블에 기재되는 심볼의 순서는 0, 1, -1, 2, -2, 3, -3 ... 이 된다. 심볼 테이블의 심볼에 대응되는 심볼 플래그의 사이즈는 상술한 바와 같이 2(AQP+1)-1 로 계산되는데, 예컨대, AQP 가 2 라면 심볼 플래그로 나타낼 수 있는 심볼의 개수는 7 이 된다. 또한, 심볼 플래그는 각 심볼에 대응되는 값이 차분 데이터에 존재하면 1 로 설정되며, 플래그가 1 로 설정된 심볼에 대해서만 위치 인덱스가 생성된다.
도 11c를 참조하면, 증가 모드 부호화기(758)로 입력된 차분 데이터가 도 11c 에 도시된 바와 같을 때, 차분 데이터에 존재하는 심볼은 (-1, 2, -3) 이므로, 심볼 플래그는 (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) 으로 생성한다.
그 후, 증가 모드 부호화기(758)는 심볼 -1 의 위치를 고려하지 않고, 나머지 위치에 대해서 인덱스를 (0 0 1 0 1 0 1 1)로 생성한다. 마지막으로, 증가 모드 부호화기(758)는 이전에 부호화된 심볼들의 위치를 고려하지 않고 심볼 -3 의 인덱스를 (1 1 1 1) 로 생성한다. 증가 모드 부호화기(758)는 차분 데이터를 엔트로피 부호화하기 위해서 플래그의 순서와 각 심볼의 위치 인덱스를 엔트로피 부호화기(760)로 출력한다.
한편, 본 발명의 발생 모드 부호화기(756) 및 증가 모드 부호화기(758)에서 생성된 인덱스는 모두 nTrueOne 이라 칭해지는 플래그를 갖는다. 이 플래그는 원래의 위치 인덱스가 반전되었는지를 나타내는 것으로, 이 플래그가 0 으로 설정되면 현재의 위치 인덱스는 원래의 위치 인덱스 값이 반전된 것임을 나타낸다. 이렇게 위치 인덱스를 반전시키는 이유는 인덱스에 1 이 많이 포함된 경우에 반전시킴으로써 0 의 개수를 증가시켜 산술 부호화 효율을 높이기 위함이다.
이하, 도 9d를 참조하여 본 발명의 엔트로피 부호화 방법을 설명한다.
본 발명의 엔트로피 부호화기(760)는 증가 모드 부호화기(758)로부터 차분 데이터의 심볼을 나타내는 플래그 및 위치 인덱스를 입력받아 엔트로피 부호화하고, 발생 모드 부호화기(756)으로부터 차분 데이터의 심볼 및 위치 인덱스를 입력받아, 심볼을 encodeSignedQuasiAAC() 함수를 이용하여 부호화한다.
encodeSignedQuasiAAC() 함수는 입력된 값과 부호에 대한 컨택스트를 이용하여 적응 산술 부호화된 비트스트림을 생성하는데, 이 함수는 0 이 아닌 첫 번째 비트를 부호화한 후에 부호가 부호화되고, 나머지 비트들은 제로 컨택스트를 이용하여 부호화된다.
도 9d 는 encodeSignedQuasiAAC() 함수를 이용한 심볼의 부호화 과정을 설명하는 흐름도이다.
엔트로피 부호화기(760)는 부호화할 차분 데이터의 심볼과 각 심볼의 비트 사이즈(QBit)를 입력받는다(S9810).
엔트로피 부호화기(760)는 먼저 입력된 비트 사이즈에서 2를 감산하여 변수 i 에 저장한다(S9820).
그 후, 엔트로피 부호화기(760)는 엔트로피 부호화할 값(nValue)의 절대값을 변수 val에 저장한 후, val 에 i 만큼 SR(Shift Right)연산을 수행하고, SR 연산이 수행된 결과와 "1" 과의 and 연산을 수행하여 결과를 bit 변수에 저장한다(S9830). 이 단계가 처음 수행하면, 엔트로피 부호화될 입력 값 중에서 부호(sign)를 제외한 첫 번째 비트가 검출되고, 이후 단계에서 첫 비트 다음으로 한 비트씩 독출된다.
엔트로피 부호화기(760)는 val 값이 1 이하인지 여부를 조사하고(S9840), val 이 1 보다 크면 qf_encode() 함수를 이용하여 bit 값을 제로 컨택스트에 따라서 부호화한다(S9850). 한편, val 값이 1 이하이면, qf_encode() 함수를 이용하여 bit 값을 i 번째 컨택스트에 따라서 부호화한다(S9860).
엔트로피 부호화기(760)는 val 값이 1 이하라면, val 값이 1 인지를 다시 조사하고(S9870), val 값이 1 이라면 nValue 값의 부호(sign)를 설정하고(S9880), 설정된 부호 및 부호 컨택스트에 따라서 부호화한다(S9890).
한편, 엔트로피 부호화기(760)는 한 비트의 부호화 과정이 종료되면, i를 1 만큼 감소하고(S9900), 감소된 i 가 0보다 작은지를 조사하여(S9910), i 가 0보다 작아질 때까지 상술한 제 S483 단계 내지 S490 단계를 반복하여 입력된 값을 엔트로피 부호화한다.
결과적으로 상술한 과정에 따라서, 엔트로피 부호화기(760)는 입력된 값의 0 이 아닌 첫 번째 값은 해당 비트 위치의 컨택스트에 따라서 부호화하고, 그 후의 비트들은 모두 제로 컨택스트에 따라서 부호화한다.
이하, 도 7a를 다시 참조하여 본 발명의 키 값 헤더 부호화기(500)에서 키 값 헤더로 부호화되는 정보를 설명한다.
키 값 헤더 부호화기(500)는 입력 좌표 인터폴레이터를 입력받아 데이터의 모드, 각 키 프레임의 정점의 개수, 정점의 개수를 부호화하는데 필요한 비트수, 및 각 실수들의 최대 유효 자리수를 부호화한다.
한편, 키 값 헤더 부호화기(500)는 양자화기(710)로부터 양자화 비트수, 양자화에 필요한 각 정점의 각 성분의 최소값 및 최대 범위, 및 양자화된 후의 각 정 점의 각 성분의 최대값 및 최소값을 부호화한다.
또한, 키 값 헤더 부호화기(500)는 DPCM 처리부(720)로부터 각 정점의 각 성분 데이터에 수행된 DPCM 연산 모드를 입력받으며, 사전 부호화기(750)로부터 사전 부호화 모드를 입력받아 부호화한다.
지금까지 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 및 키 값 데이터 부호화장치에 관하여 설명하였다. 이하에서는, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터의 키 및 키 값 데이터를 부호화한 비트스트림을 복호화하는 방법 및 장치에 관하여 설명한다.
도 12 는 본 발명의 바람직한 실시예에 따른 좌표 인터폴레이터 복호화 장치의 구성을 도시하는 블록도이다.
본 발명의 복호화 장치는 입력된 비트스트림에서 키 데이터를 복호화하는 키 데이터 복호화기(1300), 입력된 비트스트림에서 키 값 데이터를 복호화하는 키 값 데이터 복호화기(1500), 및 입력된 비트스트림에서 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 키 데이터 복호화기(1300) 및 키 값 데이터 복호화기(1500)로 제공하는 헤더 복호화기(1500)를 포함한다.
이하, 도 13 내지 도 14b 를 참조하여 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기(1300) 및 복호화 방법을 설명한다.
도 13 은 본 발명의 바람직한 실시예에 따른 키 데이터 복호화기(1300)의 구성을 도시하는 블록도이다. 본 발명의 키 데이터 복호화기는 부호화된 비트스트림을 수신하여, 복호화된 키 데이터로 재구성한다.
본 발명의 키 데이터 복호화기(1300)는 엔트로피 복호화기(1310), 역DND 처리부(1320), 역폴딩 처리부(1330), 역쉬프팅부(1340), 역DPCM 처리부(1350), 역양자화기(1360), 선형 키 복호화기(1380) 및 실수 역변환부(1370)를 포함한다.
도 14a 는 본 발명의 바람직한 실시예에 따른 키 데이터 복호화 방법을 설명하는 흐름도이다.
먼저, 입력 비트스트림은 헤더 복호화기(1800) 및 엔트로피 복호화기(1310)로 입력된다.
헤더 복호화기(1800)는 각 복호화 단계별로 필요한 정보를 복호화하여 각 단계에 제공하는데, 헤더 복호화기(1800)에서 복호화되는 정보는 각 단계마다 설명한다(S14000).
비트스트림을 입력받은 엔트로피 복호화기(1310)는 헤더 복호화기(1800)로부터 복호화할 차분 데이터의 개수와 부호화에 이용된 비트수, 즉, 복호화할 비트수를 입력받아, 비트스트림을 엔트로피 복호화한다(S14100). 이 때, 복호화할 차분 데이터의 개수는 주어진 키 데이터의 개수에서 DPCM 연산의 인트라 키 데이터의 개수만큼 감산한 개수가 된다.
엔트로피 복호화기(1310)는 비트스트림을 복호화할 때, 비트스트림에 포함된 소정의 정보(본 실시예에서는 bSignedAACFlag)를 참조하여 부호화된 차분 데이터가 음수를 포함하였는지 식별하고, 음수를 포함하였다면 decodeSignedAAC() 함수를 사용하여 복호화하고, 음수를 포함하지 않았다면 decodeUnsignedAAC() 함수를 사용하여 복호화한다. 이렇게 해서 복호화된 차분 데이터는 역 DND 처리부(1320)로 전 달된다.
엔트로피 복호화된 차분 데이터를 수신한 역 DND 처리부(1320)는 헤더 복호화기(1800)로부터 DND 차수 및 각 DND 차수에서의 최대값(nKeyMax)을 입력받는다.
만약, DND 차수가 -1 이라면, 이것은 부호화기가 DND 연산된 차분 데이터 대신에 DPCM 연산되고 쉬프팅된 차분 데이터를 엔트로피 부호화하였다는 것을 나타내므로, 역 쉬프팅 연산을 수행하는 과정으로 바로 진행한다. 한편, DND 차수가 0 이라면, 이것은 부호화기가 DND 연산된 차분 데이터 대신에 폴딩된 차분 데이터를 엔트로피 부호화하였다는 것을 나타내므로, 역폴딩 연산을 수행하는 과정으로 바로 진행한다. 그러나, DND 차수가 0보다 크다면, 역 DND 연산을 수행하게 된다(S14200).
먼저, 역 DND 처리부(1320)는 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었는지를 판단한다(S14300). 본 발명의 바람직한 실시예에서는 비트스트림에 포함된 nKeyInvertDown 값이 0 보다 큰 값인지 여부를 조사함으로써, 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었는지 여부를 판단한다.
만약, 쉬프트-업 연산이 수행되지 않은 차분 데이터가 부호화되었다면, 역 DND 처리부(1320)는 역 DND 연산을 수행하는 과정으로 진행한다. 그러나, 쉬프트-업 연산이 수행된 차분 데이터가 부호화되었다면, 쉬프트-업 연산으로 인해 양수의 영역로 이동된 차분 데이터를 다시 원래의 음수영역으로 환원한다(S14400). 본 발명의 실시예는 다음의 수학식 20 으로 표현되는 쉬프트-다운(이하, "인버트-다운(invert-down)"과 동일한 의미로 사용됨) 연산을 수행하여 쉬프트-업 연산된 차분 데이터를 복원한다.
invert-down(v)
= v ,(if v ≤ nKeyInvertDown)
= nKeyInvertDown - v ,(if v > nKeyInvertDown)
여기서, nKeyInvertDown은 쉬프트-업 연산에서의 최대값(nKeyMax)와 동일한 값이 이용된다. 쉬프트-다운 연산에 의해서 nKeyInvertDown을 초과하는 차분 데이터들은 -1 이하의 음수값으로 변환된다.
쉬프트-다운 연산이 수행된 차분 데이들에 대해서 각 DND 차수에서의 nKeyMax 값에 따라서 역 디바이드-다운 또는 역 디바이드-업 연산이 선택적으로 수행된다.
도 14b을 더 참조하여, 본 역 DND 연산 과정을 살펴보면, 역 DND 처리부(1320)는 부호화과정에서 수행된 DND 연산의 차수의 회수만큼 역 DND 연산을 수행한다. 즉, 역 DND 처리부(1320)는 역 DND 차수의 초기값을 DND 차수로 설정하고, 역 DND 연산을 수행할 때마다 1씩 감산하고 역 DND 차수가 1 이 될 때까지 역 DND 연산을 수행한다. 먼저, 역 DND 처리부(1320)는 각 차수에서의 nKeyMax 값을 조사하여 nKeyMax 값이 0 이상인지를 판단한다(S14510).
nKeyMax 값이 0 보다 작다면, 부호화 과정에서 디바이드-업 연산이 수행되었음을 의미하므로, 역 DND 처리부(1320)는 역 디바이드-업 연산을 수행하여 차분 데이터의 범위를 음수 영역으로 확장한다(S14530). 본 발명의 바람직한 실시예는 다음의 수학식 21 과 같은 역 디바이드-업 연산을 이용하였다.
inverse-divide-up(v)
= v (if, v≥0)
= (nKeyMaxi-1)-(v-1)/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).
본 발명의 바람직한 실시예는 다음의 수학식 22 와 같은 역 디바이드-다운 연산을 이용하였다.
inverse-divide-down(v)
= v (if, v≥0)
= (nKeyMaxi+1)+(v-1)/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 과 같은 역 디바이드 연산을 이용하였다.
inverse-divide(v)
= v ,(if v ≥0)
= v+(nKeyMax0 + 1) ,(if v < 0)
역 DND 연산이 수행된 키 데이터의 차분 데이터는 역 폴딩 처리부(1330)로 입력되고, 역 폴딩 처리부(1330)는 역폴딩 연산을 수행하여, 양수영역에만 위치하는 차분 데이터의 범위를 양수와 음수로 분리한다(S14600). 본 발명의 바람직한 실시예는 다음의 수학식 24 과 같은 역폴딩 연산을 이용하였다.
inverse-fold = (v+1)/(-2) ,(if v mod 2 ≠0)
= v/2 ,(if v mod 2 = 0)
= 0 ,(if v = 0)
역폴딩된 차분 데이터는 역 쉬프팅부(1340)로 출력되고, 역 쉬프팅부(1340)는 헤더 복호화기(1800)로부터 부호화기에서 이용된 모드(nKeyShift)를 입력받아, 다음의 수학식 25 에서와 같이 입력된 차분 데이터들에 모드를 합산한다(S14700).
inverse-shift(v) = v + nKeyShift
역 쉬프팅부(1340)로부터 차분 데이터를 입력받은 역 DPCM 처리부(1350)는 키 헤더 부호화기(1800)로부터 DPCM 차수를 입력받아, 차분 데이터를 양자화된 키 데이터로 복원한다(S14800). 역 쉬프팅부(1340)는 다음의 수학식 26 을 이용하여 DPCM 차수만큼 역 DPCM 연산을 수행한다.
v(i+1)=v(i)+delta(i)
여기서, i 는 차분 데이터 및 키 데이터의 인덱스를, v 는 정수 배열을, delta(i) 는 차분 데이터를 각각 나타낸다.
역 DPCM 처리되어 생성된 양자화된 키 데이터는 역 양자화기(1360)로 입력되고, 역 양자화기(1360)는 헤더 복호화기(1800)로부터 양자화 비트 사이즈(nKeyQBit) 및 역 양자화에 이용될 최대값 및 최소값이 양자화과정에서 실수 변환부(205)에 의해서 부호화되었는지 여부를 입력받아, 다음의 수학식 27 을 이용하여 입력된 양자화된 키 데이터를 역 양자화된 키 데이터로 변환한다(S14900).
Figure 112002034342899-pat00027
부호화기에서 키 데이터를 양자화할 때, 양자화에 이용된 최대값 및 최소값이 실수 변환부(205)에서 변환되지 않았다면, 수학식 27 의 fKeyMin 및 fKeyMax 는 0 및 1 로 각각 설정된다. 그러나, 양자화에 이용된 최대값 및 최소값이 실수 변환부(205)에 의해서 변환되었다면, 역 양자화에 이용되는 최대값 및 최소값은 후술할 실수 역변환부(1370)에서 역 변환되어 입력되는 최소값 및 최대값이 각각 이용 된다.
한편, 역양자화기(1360)에서 출력되는 복호화된 키 데이터는 선형 키 복호화기(1380)에서 복호화된 선형 키 데이터와 합산되어 복호화된 키 데이터를 구성한다.
이하, 선형 키 복호화과정을 설명한다(S15000).
헤더 복호화기(1800)는 비트스트림으로부터 키 헤더 정보를 복호화해서 선형 키에 관한 정보가 있으면, 선형 키 영역의 시작 키와 종료 키를 복호화하기 위해서 필요한 정보를 실수 역변환부(1370)로 출력하고, 선형 키 복호화기(1380)로 선형 키로 부호화된 키의 개수를 출력한다.
선형 키 복호화에 이용될 시작 키 및 종료 키 정보를 입력받은 실수 역변환부(1370)는 10진수 체계로 표현된 시작 키 및 종료 키를 다시 2 진수 체계로 역변환하여 선형키 복호화기(1380)로 출력한다.
복호화할 2개의 실수를 fKeyMin과 fKeyMax라고 하면, 첫 번째 값 fKeyMin을 역변환하는 과정은 다음과 같다.
헤더 복호화기(1800)는 fKeyMin의 자릿수를 비트스트림으로부터 읽어드린다. 만약에 자릿수가 0이면 fKeyMin의 값을 0으로 설정한 후, fKeyMax의 값을 복호화하기 위해서 fKeyMax 의 자리수를 비트스트림으로부터 판독한다. 만약에 자릿수가 8이상이면 IEEE 표준 754 방식에 따라서 부호화된 것이므로, 실수(floating-point number)를 32bit만큼 읽어드린 후, fKeyMax의 값을 복호화하는 과정으로 진행한다.
그러나, 만약에 자릿수가 1 과 7 사이의 값을 가지면, 헤더 복호화기(1800)는 부호 비트를 비트스트림으로부터 판독한다. 본 발명의 실시예에서는, 부호비트가 1 이면 MinKeyMantissaSign를 -1로, 0 이면 MinKeyMantissaSign를 1 로 설정하여 부호를 판독한다. 그리고, mantissa를 상술한 표 4 의 자릿수와 필요한 비트수의 관계를 참조하여 필요한 비트수를 얻은 후, 그 비트수만큼 비트스트림으로부터 판독하고, 판독된 값을 nMinKeyMantissa에 저장한다. 그 후, 비트스트림으로부터 1 비트만큼 판독하여 MinKeyExponentSign에 저장하되, MinKeyMantissaSign과 같은 방식으로 저장한다. 그리고 비트스트림으로부터 6bit만큼의 exponent값을 판독하여 nMinKeyExponent에 저장한다.
실수 역변환부(1370)는 헤더 복호화기(1800)로부터 입력된 값을 다음의 수학식 28 에 대입하여 fKeyMin을 복원한다.
Figure 112002034342899-pat00028
fKeyMax를 복원하는 과정은 fKeyMin과 동일하다. 다만, fKeyMax의 exponent를 비트스트림으로부터 판독하기 전에, fKeyMax 의 exponent로 fKeyMin과 동일한 exponent가 이용되었는지를 판독하여, 동일한 값이 이용되었으면, fKeyMin의 exponent를 사용하고, 그렇지 않으면 fKeyMin의 exponent를 비트스트림으로부터 판독하는 방식과 동일하게 fKeyMax 의 exponent를 판독한다.
한편, 실수 역변환부(1370)로부터 선형 키 영역의 시작 키와 종료 키를 입 력받은 선형 키 복호화기(1380)는 다음의 수학식 29 를 이용하여 선형 키 영역을 복호화한다.
Figure 112002034342899-pat00029
여기서, fKeyMin 및 fKeyMax 는 선형 키 영역의 시작 및 종료 키 데이터를 의미한다.
이하, 도 15a 및 도 15b를 참조하여 본 발명의 부호화된 좌표 인터폴레이터의 키 값 데이터를 복호화하는 키 값 데이터 복호화기 및 복호화 방법을 설명한다.
도 15a 는 본 발명의 바람직한 실시예에 따른 키 값 데이터 복호화기의 구성을 도시하는 블록도이고, 도 15b 는 본 발명의 바람직한 실시예에 따는 복호화 방법을 설명하는 흐름도이다.
도 15a를 참조하면, 본 발명의 키 값 데이터 복호화기(1500)는 입력된 비트스트림을 엔트로피 복호화하여, DPCM 연산된 차분 데이터의 심볼, 심볼 설정 플래그, 상기 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 엔트로피 복호화기(1505), 사전 복호화될 데이터의 심볼 및 심볼의 위치를 나타내는 인덱스에 따라서 소정의 차분 데이터를 생성하는 사전 복호화기(1510), DPCM 연산 모드에 따라서 차분 데이터에 소정의 역 DPCM 연산을 수행하여 양자화된 데이터를 생성하는 역 DPCM 처리부(1530), 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 역 양자화기(1550), 및 비트스 트림으로부터 좌표 인터폴레이터의 복호화에 필요한 정보를 복호화하여 사전 복호화기(1510), 역 DPCM 처리부(1530), 및 역 양자화기(1550)로 출력하는 키 값 헤더 복호화기(1800)를 포함한다.
도 15b를 참조하여, 본 발명의 복호화 방법을 설명한다.
좌표 인터폴레이터를 부호화한 비트스트림은 엔트로피 복호화기(1505)로 입력되면(S1710), 엔트로피 복호화기(1505)는 비트스트림을 복호화하여, 비트스트림이 발생 모드로 부호화된 경우에는 사전 복호화기(1510)로 각 정점의 심볼 및 심볼의 위치 인덱스를 출력하고, 증가 모드로 부호화된 경우에는 심볼의 존재여부를 나타내는 심볼 플래그 및 심볼의 위치를 나타내는 인덱스를 사전 복호화기(1510)로 출력한다(S1720).
사전 복호화기(1510)는 입력된 사전 부호화 모드에 따라서 입력된 심볼 및 인덱스를 발생 모드 복호화하거나, 입력된 심볼 플래그 및 인덱스를 증가 모드 복호화하여 차분 데이터를 생성하고, 생성된 차분 데이터를 역 DPCM 처리부(1530)로 출력한다(S1730).
역 DPCM 처리부(1530)는 입력된 차분 데이터에 대해서 각 정점별로, 복호화된 DPCM 모드에 따라서 역 순환 양자화 및 역 시간 DPCM 연산, 역 공간 DPCM 연산, 및 역 시공간 DPCM 연산 중 하나의 연산을 수행하여 양자화된 키 값 데이터를 역 양자화기(1550)로 출력한다(S1740).
역 양자화기(1550)는 입력된 양자화된 키 값 데이터를 키 값 헤더 복호화기(1800)로부터 입력된 각 성분 데이터의 최소값 및 최대 범위를 이용하여 역 양자화한다(S1750).
또한, 역 양자화기(1550)는 역 양자화된 키 값 데이터 행렬이 부호화될 때, 전치행렬로 변환되었는지를 조사하여(S1760), 전치 행렬로 변환되었다면, 전치 행렬을 역 변환한다(S1765).
역 양자화기(1550)는 복원된 좌표 인터폴레이터의 키 값 데이터를 출력한다(S1770).
이하, 도 16a 내지 도 17b를 더 참조하여 본 발명의 키 값 데이터 복호화 장치 및 방법을 상세히 설명한다.
엔트로피 복호화기(1505)는 입력 비트스트림으로부터 DPCM 모드를 나타내는 비트스트림을 먼저 복호화하고, bSelFlag, nKVACodingBit, nQMin, 및 nQMax 등의 데이터 배열을 복호화한다.
부호화 과정에서 bSelFlag 은 초기에 1 로 설정되고, nKVACodingBit은 초기에 0 으로 설정된다. 만약, bSelFlag 가 1 인 상태로 복호화된다면 엔트로피 복호화기(1505)는 다른 데이터 어레이를(nKVACodingBit, nQMin, nQMax) 복호화한다. 그러나, bSelFlag 가 0 인 상태로 복호화된다면 엔트로피 복호화기(1505)는 nQMin 어레이만을 복호화한다.
엔트로피 복호화기(1505)는 상기 어레이들을 복호화한 후 사전 부호화 모드를 나타내는 nDicModeSelect를 복호화하는데, nDicModeSelect 값에 따라서 복호화할 비트스트림은 2 가지 종류로 분류된다.
도 18a 은 좌표 인터폴레이터의 각 정점과 각 정점의 성분 데이터의 비트스 트림 구조를 도시한 도면이다. 도 18a 에 도시된 바와 같이 복호화된 nDicModeSelect 값이 0 이면, 비트스트림 구조는 발생 모드 부호화기에서 부호화된 심볼 및 인덱스등의 정보를 포함하고, nDicModeSelect 값이 1 이면, 비트스트림 구조는 증가 모드 부호화기에 부호화된 심볼의 존재 여부를 나타내는 심볼 플래그 및 위치 인덱스등의 정보를 포함한다.
본 발명의 엔트로피 복호화기는 도 18b 에 도시된 프로그램 코드로 구현되는 decodeSignedQuasiAAC() 함수를 이용하였다. 이 함수는 적응 산술 부호화된 비트스트림을 부호 및 값에 대한 컨택스트를 이용하여 복호화한다. 이 함수는 부호 비트 이후에 판독되는 비트에 대해서 제로 컨택스트를 이용하여 복호화한다. 엔트로피 복호화기는 복호화된 데이터를 사전 복호화기(1510)로 출력한다.
도 16a 는 본 발명의 사전 복호화기(1510)의 구성을 도시하는 블록도이고, 도 17a 는 사전 복호화 방법을 설명하는 흐름도이다.
도 16a 에 도시된 바와 같이, 본 발명의 사전 복호화기(1510)는 입력된 각 정점의 DPCM 모드를 복원하는 DPCM 모드 복호화기(1512), 입력된 각 정점의 사전 부호화 모드를 선택하는 사전 모드 선택부(1514), 사전 모드 선택부(1514)로부터 각 정점의 각 성분의 심볼 및 심볼의 위치 인덱스를 입력받아 차분 데이터를 복원하는 발생 모드 복호화기(1516), 및 사전 모드 선택부(1514)로부터 심볼 플래그 및 심볼 위치 인덱스를 입력받아 차분 데이터를 복원하는 증가 모드 복호화기(1518)를 포함한다.
도 17a를 참조하면, 엔트로피 복호화된 각 정점의 심볼, 심볼 플래그, 및 위 치 인덱스를 포함하는 성분 데이터들은 DPCM 모드 복호화기(1512)로 입력된다(S1731).
DPCM 모드 복호화기(1512)는 입력된 차분 데이터를 역 DPCM 처리부(1530)로 출력하기에 앞서, 역 DPCM 처리부(1530)에서 각 정점의 각 성분의 차분 데이터에 대해서 수행될 역 DPCM 연산 모드를 복호화한다(S1732).
이하, 도 19a를 참조하여 DPCM 모드 복호화 방법을 설명한다.
DPCM 모드 복호화 방법은 각 정점의 각 성분의 DPCM 모드의 조합을 나타내는 심볼의 숫자가 27 개로 고정되고, 따라서 심볼 테이블의 크기가 27 로 고정된다는 점을 제외하면, 후술할 증가 모드 복호화 방법과 동일하다.
DPCM 모드 복호화기(1512)는 입력된 DPCM 모드 플래그를 입력받아, 플래그에 대응되는 심볼을 입력된 인덱스에 따라서 데이터 열에 기록하게 된다.
예컨대, 도 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)가 된다.
복원된 데이터 열 (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 연산이 수행되었는지 알 수 있다.
DPCM 모드 복호화기(1512)는 각 정점의 각 성분의 차분 데이터를 복호화된 DPCM 모드 정보와 함께 사전 모드 선택부(1514)로 출력한다.
사전 모드 선택부(1514)는 각 정점의 각 성분의 nDicModeSelect 값에 따라서 DPCM 모드 복호화기(1512)로부터 입력된 각 성분 데이터를 발생 모드 복호화기(1516) 또는 증가모드 복호화기로 출력한다(S1734).
사전 모드 선택부(1514)는, nDicModeSelect 값이 0 이면 해당 정점의 성분 데이터를 발생 모드 복호화기(1516)로 출력하고, nDicModeSelect 값이 1 이면 해당 정점의 성분 데이터를 증가 모드 복호화기(1518)로 출력한다.
발생 모드 복호화기(1516)는 입력된 각 성분의 심볼 데이터 및 위치 인덱스를 차분 데이터들로 복원한다(S1736).
발생 모드 복호화 방법을 예시하는 도 19b를 참조하면, 발생 모드 복호화기(1516)는 사전 모드 선택부(1514)로부터 심볼 데이터를 입력받고, bSoleKV 및 nTrueOne 플래그를 조사한다.
bSoleKV 플래그가 입력된 심볼이 여러개 존재하는 것을 나타내고, nTrueOne 플래그가 이후 입력되는 위치 인덱스가 반전되지 않았음을 나타내면, 발생 모드 복호화기(1516)는 입력된 심볼을 위치 인덱스가 가리키는 위치의 데이터열에 삽입함으로써 차분 데이터를 복원한다.
예컨대, 발생 모드 복호화기(1516)는 부호화될 때 발생된 순서대로 심볼 (3, 7, -4)을 입력받고, 입력된 각각의 심볼에 대응되는 인덱스 (0 1 0 0 0 1 0 1 0 0 0), (1 0 1 0 1 0 0) 및 (1 1 1)을 입력받는다.
발생 모드 복호화기(1516)는 첫 번째 심볼 3 을 복원될 차분 데이터열에 기록하고, 이후, 입력된 인덱스의 1 이 설정된 차분 데이터 열의 위치에 심볼 3을 기록한다. 따라서, 도 19a 에 도시된 바와 같이, 심볼 3 의 발생 모드 부호화과정이 종료되면, 차분 데이터 열은 (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)이 된다.
발생 모드 복호화기(1516)는 심볼 7을 이미 복원된 심볼 3 이 기록되지 않은 첫 번째 위치에 기록하고, 그 후, 심볼 7 에 대응되는 인덱스가 1 로 설정된 위치에 심볼 7을 기록한다. 따라서, 심볼 7 이 복원된 차분 데이터 열은 (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) 이 된다.
한편, 상술한 bSoleKV 가 1 로 설정되었다면, 이것은 입력된 심볼이 오직 1 개만 차분 데이터에 존재한다는 것을 의미하므로, 입력된 심볼에 대응되는 위치 인덱스는 존재하지 않고, 따라서, 발생 모드 복호화기(1516)는 입력된 심볼을 심볼이 기록되지 않은 차분 데이터 열의 첫 번째 위치에 기록하고, 다음 심볼의 복원 과정을 수행한다.
한편, 증가 모드 복호화기(1518)는 입력된 각 성분의 심볼 플래그 및 위치 인덱스를 차분 데이터들로 복원한다(S1736). 이하, 증가 모드 복호화 방법의 일예를 도시하는 도 19c를 참조하여, 증가 모드 복호화 방법을 설명한다.
증가 모드 복호화기(1518)는 사전 모드 선택부(1514)로부터 심볼의 존재여부를 나타내는 심볼 플래그, 위치 인덱스가 반전되었는지를 나타내는 nTrueOne 플래그, 및 위치 인덱스를 입력받는다.
증가 모드 복호화기(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을 복호화한다.
또한, 심볼 플래그 다음에 입력된 인덱스는 (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) 에 각각 대응된다.
증가 모드 복호화기(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) 와 같다.
그 후, 증가 모드 복호화기(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)와 같다.
증가 모드 복호화기(1518)는 마지막 심볼 -3 을 인덱스 (1 1 1 1)의 1 이 설정된 위치에 기록하여, 심볼 -3 을 복원한다. 최종 복원된 차분 데이터 열은 (-1 -3 -1 -3 2 -3 -1 2 -1 -3 2 2)와 같다.
상술한 발생 모드 복호화기(1516) 및 증가 모드 복호화기(1518)는 각 정점의 각 성분의 차분 데이터를 복원하여, 복원된 차분 데이터를 역 DPCM 처리부(1530)로 출력한다(S1739).
도 16b 는 본 발명의 역 DPCM 처리부(1530)의 구성을 도시하는 블록도이고, 도 17b 는 역 DPCM 연산 방법을 설명하는 흐름도이다.
도 16b를 참조하면, 본 발명의 역 DPCM 처리부(1530)는 입력된 차분 데이터에 역 시간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 좌표 인터폴레이터의 키 값 데이터를 출력하는 역 시간 DPCM 연산부(1542), 입력된 차분 데이터에 역 공간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 키 값 데이터를 출력하는 역 공간 DPCM 연산부(1544), 입력된 차분 데이터에 역 시공간 DPCM 연산 및 역 순환 양자화를 수행하여 양자화된 키 값 데이터를 출력하는 역 시공간 DPCM 연산부(1546), 및 입력된 각 정점의 DPCM 모드에 따라서 사전 복호화기(1510)로부터 입력된 차분 데이터를 역 시간 DPCM 연산부(1542), 역 공간 DPCM 연산부(1544), 및 역 시공간 DPCM 연산부(1546) 중 어느 하나로 출력하는 역 DPCM 모드 선택부(1535)를 포함한다.
도 17b를 참조하면, 역 DPCM 모드 선택부(1535)는 사전 복호화기(1510)의 DPCM 모드 복호화기(1512)에서 복원된 각 정점의 각 성분의 DPCM 연산 모드에 따라서 입력된 차분 데이터에 수행될 역 DPCM 연산을 결정하고, 각 정점의 각 성분의 차분 데이터를 결정된 역 DPCM 연산 모드에 따라서 출력한다(S1742).
각 DPCM 연산부는 입력된 차분 데이터에 대해서 역 DPCM 연산 및 역 순환 양자화를 동시에 수행한다.
역 시간 DPCM 연산부(1542)는 입력된 차분 데이터에 대해서 다음의 수학식 30 에 따라서 역 시간 DPCM 연산을 수행하고(S1744), 역 공간 DPCM 연산부(1544)는 다음의 수학식 31 에 따라서 역 공간 DPCM 연산을 수행하며(S1746), 역 시공간 DPCM 연산부(1546)는 다음의 수학식 32 에 따라서 역 시공간 DPCM 연산을 수행한다(S1748).
Figure 112002034342899-pat00030
Figure 112002034342899-pat00031
Figure 112002034342899-pat00032
상기 수학식들에서
Figure 112002034342899-pat00033
는 i 번째 키 프레임의 j 번째 정점의 양자화된 키 값 데이터를 나타내고,
Figure 112002034342899-pat00034
는 i 번째 키 프레임의 j 번째 정점의 차분 데이터를 나타내며, Ref 는 기준 정점을 나타낸다.
상기 수학식 31 및 수학식 32 에서,
Figure 112002034342899-pat00035
또는
Figure 112002034342899-pat00036
가 양자화된 최소값 보다 작으면 양자화된 최소값을 상기 값들 대신에 사용하고,
Figure 112002034342899-pat00037
또는
Figure 112002034342899-pat00038
가 양자화된 최대값보다 크면 양자화된 최대값을 상기 값들 대신에 사용한다.
역 DPCM 연산을 수행한 각 DPCM 연산부는 다음의 수학식 33 을 이용하여 역 DPCM 연산을 수행하며, 동시에 역 순환 양자화를 수행하여 부호화과정에서 감소된 차분 데이터의 범위를 확장한다.
Figure 112002034342899-pat00039
상기 수학식 33 에서
Figure 112002034342899-pat00040
Figure 112002034342899-pat00041
와 동일한 입력 값이고,
Figure 112002034342899-pat00042
Figure 112002034342899-pat00043
,
Figure 112002034342899-pat00044
또는
Figure 112002034342899-pat00045
와 같은 이전에 역 순환 양자화된 값들이다. 또한, nQMax 는 차분 데이터들 중 최대값을 나타내고, nQMin 은 차분 데이터들 중 최소값을 나타낸다.
역 DPCM 처리부(1530)는 각 정점의 각 성분에 대해서 역 DPCM 연산 및 역 순환 양자화된 양자화된 키 값 데이터를 역 양자화기(1550)로 출력한다(S1749).
도 15b를 다시 참조하면, 역 양자화기(1550)는 키 값 헤더 복호화기(1800)로부터 입력된 각 성분 데이터의 최소값(fMin_X, fMin_Y, 및 fMin_Z) 및 최대 범위값(fMax)을 상기 수학식 4 의 관계에 따라서 2 진수 체계의 실수로 변환한 후, 이 값들을 이용하여 다음의 수학식 34 에 따라서 입력된 양자화된 키 값 데이터를 역 양자화한다.
Figure 112002034342899-pat00046
상기 수학식 34 에서 nKVQBits 는 역 양자화에 이용되는 양자화 비트 사이즈이다.
한편, 역 양자화기(1550)는 역 양자화된 각 정점의 각 성분의 키 값 데이터를 표 3 에 기재된 행렬 형식으로 출력하여야 한다. 따라서, 역 양자화기(1550)는 키 값 데이터를 출력하기 전에 역 양자화된 키 값 데이터의 모드가 전치 모드인지를 조사한다(S1760). 만약, 역 양자화된 키 값 데이터가 전치 모드라면, 역 양자화기(1550)는 전치 행렬을 역 변환하여 복호화된 좌표 인터폴레이터의 키 값 데이터를 출력한다(S1765).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명의 좌표 인터폴레이터 부호화 장치는 단조 증가하는 키 데이터의 성질을 이용하여 키 데이터를 부호화하는 키 데이터 부호화기를 포함하여 고효율로 애니메이션 키 데이터를 부호화할 수 있고, 공간적인 상관관계 뿐 아니라 시간적인 상관관계도 고려하여 키 값 데이터를 부호화하는 키 값 데이터 부호화기를 포함하 여 고효율로 키 값 데이터를 부호화할 수 있어, 적은 데이터 양으로 고화질의 애니메이션을 복원할 수 있다.

Claims (31)

  1. 키 프레임 기반의 그래픽 에니메이션 방식에서, 키 프레임의 시간축상의 위치를 나타내는 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 키 프레임상의 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화하는 장치로서,
    좌표 인터폴레이터의 키 데이터들을 소정의 양자화 비트로 양자화하는 제 1 양자화기,
    상기 양자화된 키 데이터들의 차분 데이터들을 생성하는 제 1 DPCM 처리부,
    상기 차분 데이터들과 상기 차분 데이터들의 최대값 및 최소값과의 관계에 따라서 상기 차분 데이터들의 범위를 줄이는 DND 연산을 수행하는 DND 처리부, 및
    상기 DND 처리부로부터 입력된 차분 데이터를 부호화하는 제 1 엔트로피 부호화기를 포함하는 키 데이터 부호화기;
    좌표 인터폴레이터의 키 값 데이터를 소정의 양자화 비트수로 양자화하는 제 2 양자화기,
    양자화된 키 값 데이터의 각 정점 성분에 대해서 소정 모드의 DPCM 연산을 수행하여 각 정점 좌표의 시간적 변화에 따른 차분 데이터 및 공간적 변화에 따른 차분 데이터를 생성하는 제 2 DPCM 처리부,
    DPCM 연산된 각 정점 성분의 차분 데이터 및 상기 차분 데이터에 수행된 DPCM 연산 모드를 나타내는 심볼 및 상기 심볼의 위치를 나타내는 인덱스를 생성하는 사전 부호화기, 및
    상기 심볼 및 인덱스를 엔트로피 부호화하는 제 2 엔트로피 부호화기를 포함하는 키 값 데이터 부호화기; 및
    상기 키 데이터 부호화기 및 상기 키 값 데이터 부호화기에서 부호화된 비트스트림의 복호화에 필요한 정보를 부호화하는 헤더 부호화기를 포함하는 것을 특징으로 하는 부호화 장치.
  2. 제 1 항에 있어서, 상기 키 데이터 부호화기는
    입력되는 전체 키 데이터들 중 키 데이터들이 선형으로 증가하는 영역을 식별하여 부호화하는 선형 키 부호화기를 더 포함하는 것을 특징으로 하는 부호화 장치.
  3. 제 1 항에 있어서, 상기 키 데이터 부호화기는
    상기 제 1 DPCM 처리부로부터 입력된 차분 데이터들 중 가장 빈도수가 높은 차분 데이터(모드)를 구하고, 상기 차분 데이터들에서 상기 모드를 감산하는 쉬프팅부, 및
    상기 쉬프팅 연산된 차분 데이터들을 양수 또는 음수 영역으로 변환하는 폴딩 처리부를 더 포함하고,
    상기 DND 처리부는 부호화에 필요한 비트수에 따라서 상기 쉬프팅부로부터 입력된 차분 데이터, 상기 폴딩 처리부로부터 입력된 차분 데이터, 및 DND 연산된 차분 데이터 중 하나를 선택하여 출력하는 것을 특징으로 하는 부호화 장치.
  4. 제 1 항에 있어서, 상기 제 2 DPCM 처리부는
    상기 양자화된 키 값 데이터의 각 정점 성분에 대해서 키 프레임간의 제 1 차분 데이터를 생성하는 시간 DPCM 연산, 동일한 키 프레임내의 정점간의 제 2 차분 데이터를 생성하는 공간 DPCM 연산, 및 키 프레임 및 정점간의 제 3 차분 데이터를 생성하는 시공간 DPCM 연산을 각각 수행하는 DPCM 연산부;
    상기 DPCM 연산부로부터 입력된 제 1 내지 제 3 차분 데이터에 대해서, 차분 데이터의 범위를 감소시키는 순환 양자화를 수행하는 순환 양자화기; 및
    부호화에 필요한 비트수에 따라서 순환 양자화된 제 1 내지 제 3 차분 데이터 중 하나를 선택하여 출력하는 DPCM 모드 선택부를 포함하는 것을 특징으로 하는 부호화 장치.
  5. 제 1 항에 있어서, 상기 사전 부호화기는
    상기 각 정점에 대해서, 각 정점 성분 데이터에 대해서 수행된 DPCM 모드의 조합을 나타내는 심볼들 및 상기 심볼들의 위치를 나타내는 인덱스를 생성하는 DPCM 모드 부호화기; 및
    입력된 각 정점 성분의 차분 데이터에 대응되는 심볼들 및 상기 심볼들의 위 치를 나타내는 인덱스를 생성하는 발생 모드 부호화기를 포함하는 것을 특징으로 하는 부호화 장치.
  6. 키 프레임 기반의 그래픽 에니메이션 방식에서, 키 프레임의 시간축상의 위치를 나타내는 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 키 프레임상의 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화한 비트스트림을 복호화하는 장치로서,
    입력된 비트스트림으로부터 키 및 키 값 데이터의 복호화에 필요한 헤더 정보를 복호화하여 출력하는 헤더 복호화기;
    입력된 비트스트림을 엔트로피 복호화하여, 복호화된 키 데이터의 차분 데이터를 출력하는 제 1 엔트로피 복호화기,
    상기 헤더 복호화기로부터 판독된 DND 차수에 따라서 상기 엔트로피 복호화된 키 데이터의 차분 데이터에 역 DND 연산을 수행하여 차분 데이터의 범위를 확장하는 역 DND 처리부,
    상기 역 DND 처리부로부터 입력된 차분 데이터에 상기 헤더 복호화기로부터 입력된 DPCM 차수만큼 역 DPCM 연산을 수행하여 양자화된 키 데이터를 출력하는 제 1 역 DPCM 처리부, 및
    상기 양자화된 키 데이터를 역 양자화하여 복호화된 키 데이터를 출력하는 제 1 역 양자화기를 포함하는 키 데이터 복호화기; 및
    입력된 비트스트림을 엔트로피 복호화하여 DPCM 연산된 키 값 데이터의 차 분 데이터의 심볼들, 상기 심볼들의 위치를 나타내는 인덱스, 및 DPCM 연산 모드를 포함하는 사전 복호화될 데이터를 생성하는 제 2 엔트로피 복호화기,
    상기 헤더 복호화기로부터 입력된 사전 복호화 모드 정보에 따라서 사전 복호화 연산을 수행하여 키 값 데이터의 차분 데이터를 생성하는 사전 복호화기,
    상기 DPCM 연산 모드에 따라서 상기 사전 복호화기로부터 입력된 키 프레임간의 차분 데이터 및 각 정점간의 차분 데이터를 복원하여 양자화된 데이터를 생성하는 제 2 역 DPCM 처리부, 및
    상기 양자화된 데이터를 역 양자화하여 복원된 키 값 데이터를 생성하는 제 2 역 양자화기를 포함하는 키 값 데이터 복호화기를 포함하는 것을 특징으로 하는 복호화 장치.
  7. 제 6 항에 있어서, 상기 키 데이터 복호화기는
    상기 역 DND 처리부로부터 차분 데이터를 입력받아 상기 헤더 복호화기로부터 입력된 상기 DND 차수에 따라서 차분 데이터의 범위를 음수와 양수로 분리하는 역 폴딩연산을 수행하거나, 바이패스 하는 역 폴딩 처리부; 및
    상기 역 DND 처리부 또는 상기 역 폴딩 처리부로부터 입력된 차분 데이터에 상기 헤더 복호화기로부터 수신된 소정의 모드를 합산하여 차분 데이터의 범위를 이동시키는 역 쉬프팅부를 더 포함하며,
    상기 제 1 역 DPCM 처리부는 상기 역 쉬프팅부로부터 입력된 차분 데이터를 복원하여 양자화된 키 데이터를 출력하는 것을 특징으로하는 복호화 장치.
  8. 제 6 항에 있어서, 상기 제 2 역 DPCM 처리부는
    동일한 정점의 키 프레임간의 차분 데이터에 대해서 역 DPCM 연산을 수행하는 역 시간 DPCM 연산부;
    동일한 키 프레임내의 각 정점과 상기 각 정점에 대응되는 기준 정점간의 차분 데이터에 대해서 역 DPCM 연산을 수행하는 역 공간 DPCM 연산부; 및
    상기 DPCM 연산 모드에 따라서 차분 데이터를 상기 역 시간 DPCM 연산부 또는 상기 역 공간 DPCM 연산부로 출력하는 역 DPCM 모드 선택부를 포함하는 것을 특징으로 하는 복호화 장치.
  9. 키 프레임 기반의 그래픽 애니메이션 방식에서, 키 프레임의 시간축상의 위치 정보인 키 데이터, 및 x, y, 및 z 성분을 포함하는 정점들의 좌표로 객체의 위치를 표현하는 키 값 데이터를 포함하는 좌표 인터폴레이터를 부호화하는 방법에 있어서,
    키 데이터를 부호화한 키 데이터 부호화/복호화 정보를 생성하는 단계; 및
    키 값 데이터를 부호화한 키 값 데이터 부호화/복호화 정보를 생성하는 단계를 포함하고,
    상기 키 데이터 부호화/복호화 정보는
    상기 키 데이터 비트스트림을 엔트로피 복호화하여 생성된 차분 데이터의 범위를 확장시키는 역 DND 연산을 수행할 회수를 나타내는 역 DND 차수 및 각 역 DND 차수에서의 역 DND 연산에 이용되는 최대값 및 최소값을 포함하는 역 DND 연산 정보;
    상기 역 DND 연산이 수행된 차분 데이터를 양자화된 키 데이터로 변환하는 역 DPCM 연산의 회수 및 각 회수의 역 DPCM 연산에 이용되는 인트라 키 데이터를 포함하는 제 1 역 DPCM 연산 정보; 및
    상기 양자화된 키 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 1 역 양자화 정보를 포함하며,
    상기 키 값 데이터 부호화/복호화 정보는
    상기 키 값 데이터 비트스트림으로부터 엔트로피 복호화된, 사전 부호화된 키 값 데이터의 차분 데이터를 나타내는 심볼에 관한 정보, 상기 심볼의 위치를 나타내는 제 1 위치 인덱스, 및 상기 제 1 위치 인덱스에 수행될 사전 복호화 방법을 나타내는 사전 복호화 모드를 포함하는 사전 복호화 정보;
    사전 복호화된 각 정점 성분의 차분 데이터를 양자화된 키 값 데이터로 변환하는 역 DPCM 연산에 이용되는 역 DPCM 연산 모드의 조합을 나타내는 심볼의 위치를 나타내는 제 2 위치 인덱스를 포함하는 제 2 역 DPCM 연산 정보; 및
    상기 양자화된 키 값 데이터를 역 양자화하여 복원된 키 데이터를 생성하는 역 양자화에 이용되는 제 2 역 양자화 정보를 포함하는 것을 특징으로 하는 부호화 방법.
  10. 제 9 항에 있어서, 상기 역 DND 연산 정보는
    상기 역 DND 연산이 수행될 차분 데이터에 쉬프트 다운 연산을 수행할지 여부를 나타내는 플래그를 더 포함하는 것을 특징으로 하는 부호화 방법.
  11. 제 9 항에 있어서, 상기 제 1 역 양자화 정보는
    상기 양자화된 키 데이터의 역 양자화에 이용되는 역 양자화 비트 사이즈, 및 양자화된 키 데이터의 최대값 및 최소값을 포함하는 것을 특징으로 하는 부호화 방법.
  12. 제 11 항에 있어서, 상기 양자화된 키 데이터의 최대값 및 최소값은
    양자화된 키 데이터의 양자화 오차를 최소화하는 양자화된 키 데이터의 최대값 및 최소값인 것을 특징으로 하는 부호화 방법.
  13. 제 9 항에 있어서, 상기 키 데이터 부호화/복호화 정보는
    상기 비트스트림에 포함된 선형 키 영역의 복호화를 위한 선형 키 복호화 정보를 더 포함하며,
    상기 선형 키 복호화 정보는
    키 데이터 중에서 키 데이터가 선형으로 증가하는 선형 키 영역의 존재 여부를 나타내는 플래그, 상기 선형 키 영역에 포함되는 키 데이터의 개수, 상기 선형 키 영역의 시작 키 데이터 및 종료 키 데이터를 포함하는 것을 특징으로 하는 부호화 방법.
  14. 제 13 항에 있어서, 상기 시작 키 데이터의 및 종료 키 데이터는
    10 진수 형식의 가수 및 지수로 부호화된 것을 특징으로 하는 부호화 방법.
  15. 제 9 항에 있어서, 상기 사전 복호화 정보는
    상기 사전 복호화 모드가 발생 모드인 경우에는 상기 차분 데이터에 존재하는 차분 값에 대응되는 심볼 및 상기 심볼의 위치를 나타내는 위치 인덱스를 포함하고,
    상기 사전 복호화 모드가 증가 모드인 경우에는 상기 차분 데이터에 존재하는 차분 값이 소정의 심볼 테이블에 존재하지를 나타내는 심볼 플래그 및 상기 심볼 플래그에 대응되는 심볼의 위치를 나타내는 위치 인덱스를 포함하는 것을 특징으로 하는 부호화 방법.
  16. 제 9 항에 있어서, 상기 제 2 역 DPCM 연산 정보는
    각 정점 성분에 수행될 역 DPCM 연산 모드의 조합을 나타내는 테이블에 포함되는 심볼들 중 각 정점 성분의 차분 데이터에 수행될 역 DPCM 연산에 대응되는 심볼의 존재여부를 나타내는 역 DPCM 모드 플래그를 더 포함하는 것을 특징으로 하는 부호화 방법.
  17. 제 16 항에 있어서, 상기 역 DPCM 연산 모드의 조합은
    각 정점의 각 성분의 차분 데이터에 대해서 수행될 역 시간 DPCM 연산, 역 공간 DPCM 연산, 및 역 시공간 DPCM 연산의 조합을 나타내는 것을 특징으로 하는 부호화 방법.
  18. 제 17 항에 있어서, 상기 제 2 역 DPCM 연산 정보는
    상기 역 DPCM 모드 플래그에 의해서 차분 데이터에 수행될 역 DPCM 연산이 역 공간 DPCM 연산 또는 역 시공간 DPCM 연산인 경우에, 역 공간 DPCM 연산 또는 역 시공간 DPCM 연산이 수행될 정점에 대응하는 기준 정점을 나타내는 기준 정점 플래그를 더 포함하는 것을 특징으로 하는 부호화 방법.
  19. 제 9 항에 있어서, 상기 제 2 역 양자화 정보는
    역 양자화를 수행할 키 값 데이터의 정점을 나타내는 정점 선택 플래그, 상기 정점 선택 플래그에 따라서 선택된 정점 성분의 키 값 데이터의 역 양자화에 이용될 키 값 데이터 중 최소값 및 최대 범위, 및 상기 선택된 정점의 키 값 데이터의 역 양자화에 이용되는 역 양자화 비트 사이즈를 포함하는 것을 특징으로 하는 부호화 방법.
  20. 제 19 항에 있어서, 상기 제 2 역 양자화 정보는
    역 양자화될 키 값 데이터에 포함되는 정점의 개수, 상기 키 값 데이터의 최대 유효 자리수, 각 정점의 각 성분 데이터의 최대값들 중 최대값 및 최소값, 및 각 정점의 각 성분 데이터의 최소값들 중 최대값 및 최소값을 더 포함하는 것을 특징으로 하는 부호화 방법.
  21. 제 9 항에 있어서, 상기 키 값 데이터 부호화/복호화 정보는
    상기 키 값 데이터의 부호화 방식이 전치 모드인지 또는 정점 모드인지를 나타내는 플래그를 더 포함하는 것을 특징으로 하는 부호화 방법.
  22. 제 9 항 내지 제 21 항 중 어느 한 항에 기재된 방법에 의해 생성된 키 데이터 부호화/복호화 정보와 키 값 데이터 부호화/복호화 정보를 기록한 기록 매체.
  23. 키 프레임 기반의 그래픽 에니메이션 방식에서, 좌표 인터폴레이터를 부호화한 비트스트림을 복호화하는 방법에 있어서,
    키 프레임의 시간축상의 위치를 나타낸 키 데이터에 대한 정보를 가지는 키헤더를 복호화하는 단계;
    키 프레임상의 객체의 위치를 x, y, 및 z 성분을 포함하는 정점들의 좌표로 표현한 키 값 데이터에 대한 정보를 가지는 키값헤더를 복호화 하는 단계;
    상기 복호화된 키헤더에 따라 키 데이터를 복호화하는 단계; 및
    상기 복호화된 키값헤더에 따라 엔트로피 복호화, 사전 복호화, 역 DPCM, 역양자화를 수행하여 상기 키 값 데이터를 복호화하는 단계를 포함하는 것을 특징으로 하는 복호화 방법.
  24. 제23항에 있어서, 상기 키헤더는
    양자화 비트 사이즈(nKeyQBit);
    키 데이터로부터 복호화할 키 데이터의 개수(nNumberOfKey);
    키 데이터의 자리수(nKeyDigit);
    상기 키 데이터 중 키 데이터가 선형으로 증가하는 영역의 존재 여부를 나타내는 선형키 플래그(bIsLinearKeySubRegion);
    상기 선형키 플래그가 1인 경우, 선형키 영역의 시작 및 종료를 나타내는 시작키 데이터 및 종료키 데이터(lKey);
    양자화 오차를 최소화할 수 있도록, 상기 키 데이터의 최대값 및 최소값을 조정하는 여부를 나타내는 양자화 오차 조정 플래그(bRangeFlag);
    상기 양자화 오차 조정 플래그가 1인 경우, 역양자화 시 이용될 수 있도록 조정된 최대값 및 최소값(keyMinMax);
    DPCM 수행 회수를 나타내는 DPCM 차수(nKDPCMOrder);
    DPCM 수행을 위한 기준이 되는 값으로서, 상기 DPCM 차수에 상응하는 갯수의 키데이터(nQIntraKey);
    상기 DPCM 차수에 상응하는 갯수의 키데이터 부호 비트(nQIntraKeySign);
    DPCM 수행 결과 빈도수가 가장 많은 키 데이터 값을 기준으로 전체 키데이터 값의 쉬프트 여부를 나타내는 쉬프트 플래그(bShiftFlag);
    상기 키데이터의 쉬프트 정도를 나타내는 쉬프트 값(nKeyShift);
    상기 쉬프트 값의 부호비트(nKeyShiftSign);
    DPCM 수행 결과의 범위를 조정하기 위한 DND(Divide-and-divide) 수행 횟수를 나타내는 DND 차수(nDNDOrder);
    DND 연산에 이용되며, 상기 DND 차수에 상응하는 갯수의 최대값 및/또는 최소값(nKeyMax);
    상기 최대값 및/또는 최소값을 구별하며, 상기 DND 차수에 상응하는 갯수의 부호비트(nKeyMaxSign);
    DND 결과의 인버트다운 여부를 나타내는 플래그(bKeyInvertDownFlag);
    인버트 다운되는 양을 나타내는 인버트다운 값(nKeyInvertDown); 및
    엔트로피 부호화할 때 사용한 signed AAC 또는 unsigned AAC를 구별하는 플래그(bSignedAACFlag)를 포함함을 특징으로 하는 위치 인터폴레이터 복호화 방법.
  25. 제24항에 있어서, 상기 키데이터를 복호화하는 단계는
    상기 키헤더에 포함된 bSignedAACFlag 정보가 signed AAC를 나타내면 역 signed AAC를 수행하고, unsigned AAC를 나타내면 역 unsigned AAC를 수행하여 엔트로피 복호화하는 단계;
    상기 엔트로피 복호화 결과에 상기 기준 키데이터(IntraKey)를 부가하는 단계;
    상기 DND 차수(nDNDOrder)가 일차 이상일 경우 역 DND를 수행하는 단계;
    상기 역DND결과에 대해 nKeyShift 값 만큼 역쉬프트하는 단계;
    상기 역 쉬프트된 데이터를 상기 DPCM 차수(nKDPCMOrder)에 따라 역 DPCM 수행하는 단계;
    상기 역 DPCM 결과를 상기 키헤더의 양자화비트 사이즈에 따라 역 양자화하되, 상기 키헤더에 포함된 양자화 오차를 최소화할 수 있도록, 상기 키 데이터의 최대값 및 최소값이 조정된 경우 이를 이용하여 역양자화하는 단계; 및
    선형키 영역이 존재하는 경우, 상기 키헤더에 포함된 선형 키 영역의 시작키 데이터 및 종료키 데이터를 이용하여 선형키 데이터를 복호화하고 상기 역 양자화된 키데이터와 합산하는 선형키 복호화 단계를 포함함을 특징으로 하는 복호화 방법.
  26. 제25항에 있어서, 상기 역DND를 수행하는 단계는
    상기 DND 차수(nDNDOrder)가 일차 이상일 경우, nKeyInvertDown 이 -1 이면 부호화의 쉬프트 업 역과정에 해당하는 인버트 다운을 수행하지 않고, 그렇지 않으면 인버트 다운을 수행하는 단계;
    DND 차수에 해당하는 횟수만큼 역 DND를 수행하되, 상기 역 DND는 nKeyMax 값이 양수이면 역 divide down 을 수행하고 음수이면 역 divide up 을 수행하고, 마지막 회수에서는 nKeyMax 값이 양수이면 역 divide 를 수행하는 단계; 및
    DND 차수가 -1 이 아닌 경우에는 역 폴딩을 수행하는 단계를 포함함을 특징으로 하는 복호화 방법.
  27. 제23항에 있어서, 상기 키값헤더는
    상기 키 값 데이터의 부호화 방식이 전치 모드인지 또는 정점 모드인지를 나타내는 플래그(bTranspose);
    양자화 비트수(nKVQBit);
    상기 키 값 데이터의 정점의 개수(nNumberOfCoord);
    상기 키 값 데이터의 최대 유효 자리수(nKVDigit);
    상기 키 값 데이터의 최대값 및 최소값(kVMinMax);
    상기 키 값 데이터의 x 성분 차분 데이터들의 정점들 각각에 대한 최대값들 중 최대값 및 최소값(nXQMaxOfMax, nXQMinOfMax);
    상기 키 값 데이터의 y 성분 차분 데이터들의 정점들 각각에 대한 최대값들 중 최대값 및 최소값(nYQMaxOfMax, nYQMinOfMax);
    상기 키 값 데이터의 z 성분 차분 데이터들의 정점들 각각에 대한 최대값들 중 최대값 및 최소값(nZQMaxOfMax, nZQMinOfMax);
    상기 키 값 데이터의 x 성분 차분 데이터들의 정점들 각각에 대한 최소값들 중 최대값 및 최소값(nXQMaxOfMin, nXQMinOfMin);
    상기 키 값 데이터의 y 성분 차분 데이터들의 정점들 각각에 대한 최소값들 중 최대값 및 최소값(nYQMaxOfMin, nYQMinOfMin); 및
    상기 키 값 데이터의 z 성분 차분 데이터들의 정점들 각각에 대한 최소값들 중 최대값 및 최소값(nZQMaxOfMin, nZQMinOfMin)를 포함하는 것을 특징으로 하는 복호화 방법.
  28. 제27항에 있어서, 상기 엔트로피 복호화 단계는
    상기 키값헤더에 포함된 bTranspose 플래그에 따라 상기 키 값 데이터의 구조를 설정하는 단계;
    DPCM 연산모드를 나타내는 심볼 및 그의 위치를 나타내는 인덱스, 키 값 데이터의 차분 데이터를 나타내는 심볼 및 그의 위치를 나타내는 인덱스를 상기 비트스트림으로부터 엔트로피 복호화하는 단계;
    상기 정점들 각각의 x 성분 데이터에 대해, 상기 키값헤더에 포함된 nXQMaxOfMin 값이 nXQMinOfMax 이하인 경우에는 사전 복호화 수행 여부에 대한 정보를 가지는 플래그(bSelFlag)를 상기 비트스트림으로부터 엔트로피 복호화하고, 상기 키값헤더에 포함된 nXQMaxOfMin 값이 nXQMinOfMax를 초과하는 경우에는 상기 bSelFlag 플래그를 1로 설정하는 단계;
    상기 정점들 각각의 y 성분 데이터에 대해, 상기 키값헤더에 포함된 nYQMaxOfMin 값이 nYQMinOfMax 이하인 경우에는 사전 복호화 수행 여부에 대한 정보를 가지는 플래그(bSelFlag)를 상기 비트스트림으로부터 엔트로피 복호화하고, 상기 키값헤더에 포함된 nYQMaxOfMin 값이 nYQMinOfMax를 초과하는 경우에는 상기 bSelFlag 플래그를 1로 설정하는 단계;
    상기 정점들 각각의 z 성분 데이터에 대해, 상기 키값헤더에 포함된 nZQMaxOfMin 값이 nZQMinOfMax 이하인 경우에는 사전 복호화 수행 여부에 대한 정보를 가지는 플래그(bSelFlag)를 상기 비트스트림으로부터 엔트로피 복호화하고, 상기 키값헤더에 포함된 nZQMaxOfMin 값이 nZQMinOfMax를 초과하는 경우에는 상기 bSelFlag 플래그를 1로 설정하는 단계;
    상기 정점들 중 DPCM 모드가 공간 또는 시공간상 모드인 정점들 각각에 대해, 역 DPCM의 수행을 위한 참조 정점에 대한 정보(nRefVertex)를 엔트로피 복호화하는 단계;
    상기 정점들 각각에 대해, 상기 bSelFlag 플래그가 1인 경우에는 상기 비트스트림으로부터 차분 데이터의 최대값(nQMax)과 최소값(nQMin)을 엔트로피 복호화하고, 상기 bSelFlag 플래그가 0인 경우에는 상기 비트스트림으로부터 상기 차분 데이터의 값(nQMin)을 엔트로피 복호화하는 단계; 및
    상기 정점들 각각의 x, y, z 성분들에 대해, 상기 비트스트림으로부터 사전 복호화 모드에 대한 정보를 가지는 플래그(nDicModeSelect)를 엔트로피 복호화하는 단계를 포함하는 것을 특징으로 하는 복호화 방법.
  29. 제28항에 있어서, 상기 사전 복호화 단계는
    상기 엔트로피 복호화된 DPCM 연산모드를 나타내는 심볼 및 그의 위치를 나타내는 인덱스를 사전 복호화하여, DPCM 연산 모드를 구하는 단계; 및
    상기 엔트로피 복호화된 키 값 데이터의 차분 데이터를 나타내는 심볼 및 그의 위치를 나타내는 인덱스를 사전 복호화하여, 키 값 데이터의 차분 데이터를 구하는 단계를 포함하고,
    상기 키 값 데이터의 차분 데이터를 구하는 단계는
    상기 nDicModeSelect 플래그가 1인 경우에는 발생 모드 사전 복호화를 수행하고, 0인 경우에는 증가 모드 사전 복호화를 수행하는 것을 특징으로 하는 복호화 방법.
  30. 제29항에 있어서, 상기 역 DPCM 단계는
    상기 구해진 DPCM 연산 모드가 시간 DPCM인 경우에는 상기 사전 복호화된 차분 데이터에 대해 역 시간 DPCM을 수행하고, 상기 구해진 DPCM 연산 모드가 공간 DPCM인 경우에는 상기 사전 복호화된 차분 데이터에 대해 역 공간 DPCM을 수행하고, 상기 구해진 DPCM 연산 모드가 시공간 DPCM인 경우에는 상기 사전 복호화된 차분 데이터에 대해 역 시공간 DPCM을 수행하는 것을 특징으로 하는 복호화 방법.
  31. 제27항에 있어서, 상기 역 양자화 단계는
    상기 키값헤더에 포함된 nKVQBit와 kVMinMax를 이용하여, 상기 역 DPCM이 수행된 키 값 데이터에 대해 역 양자화를 수행하는 것을 특징으로 하는 복호화 방법.
KR1020020064008A 2001-11-27 2002-10-19 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체 KR100552666B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2002344725A JP4002502B2 (ja) 2001-11-27 2002-11-27 座標インタポレータの符号化/復号化装置及びその方法
CN200610110089.2A CN1941910B (zh) 2001-11-27 2002-11-27 编码坐标内插符、解码比特数据流的装置及方法
EP10185978.3A EP2302929B1 (en) 2001-11-27 2002-11-27 Coding and decoding of a bitstream with a coordinate interpolator
EP10185988.2A EP2302930B1 (en) 2001-11-27 2002-11-27 Coding and decoding of a bitstream with a coordinate interpolator
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
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 (ko) 2001-11-27 2002-11-22 회전 인터폴레이터 부호화/복호화 방법 및 장치

Publications (2)

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

Family

ID=27532390

Family Applications (8)

Application Number Title Priority Date Filing Date
KR10-2002-0063852A KR100480787B1 (ko) 2001-11-27 2002-10-18 좌표 인터폴레이터의 키 값 데이터 부호화/복호화 방법 및 장치
KR1020020064007A KR100552665B1 (ko) 2001-11-27 2002-10-19 키 데이터 부호화/복호화 방법 및 장치
KR1020020064008A KR100552666B1 (ko) 2001-11-27 2002-10-19 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체
KR1020020067679A KR100543697B1 (ko) 2001-11-27 2002-11-02 데이터 부호화/복호화 방법 및 장치
KR1020020070496A KR100537500B1 (ko) 2001-11-27 2002-11-13 회전 인터폴레이터의 키 값 데이터 부호화 및 복호화 방법및 장치
KR1020020070659A KR100552710B1 (ko) 2001-11-27 2002-11-14 위치 인터폴레이터 부호화/복호화 방법 및 장치
KR10-2002-0073044A KR100499135B1 (ko) 2001-11-27 2002-11-22 회전 인터폴레이터 부호화/복호화 방법 및 장치
KR1020050100897A KR100561875B1 (ko) 2001-11-27 2005-10-25 위치 인터폴레이터 복호화 방법 및 장치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR10-2002-0063852A KR100480787B1 (ko) 2001-11-27 2002-10-18 좌표 인터폴레이터의 키 값 데이터 부호화/복호화 방법 및 장치
KR1020020064007A KR100552665B1 (ko) 2001-11-27 2002-10-19 키 데이터 부호화/복호화 방법 및 장치

Family Applications After (5)

Application Number Title Priority Date Filing Date
KR1020020067679A KR100543697B1 (ko) 2001-11-27 2002-11-02 데이터 부호화/복호화 방법 및 장치
KR1020020070496A KR100537500B1 (ko) 2001-11-27 2002-11-13 회전 인터폴레이터의 키 값 데이터 부호화 및 복호화 방법및 장치
KR1020020070659A KR100552710B1 (ko) 2001-11-27 2002-11-14 위치 인터폴레이터 부호화/복호화 방법 및 장치
KR10-2002-0073044A KR100499135B1 (ko) 2001-11-27 2002-11-22 회전 인터폴레이터 부호화/복호화 방법 및 장치
KR1020050100897A KR100561875B1 (ko) 2001-11-27 2005-10-25 위치 인터폴레이터 복호화 방법 및 장치

Country Status (6)

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

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809203B2 (en) * 2001-11-27 2010-10-05 Samsung Electronics Co., Ltd. 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
DE102004049156B4 (de) 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
EP1905004A2 (en) 2005-05-26 2008-04-02 LG Electronics Inc. Method of encoding and decoding an audio signal
WO2007004831A1 (en) 2005-06-30 2007-01-11 Lg Electronics Inc. Method and apparatus for encoding and decoding an audio signal
US8082157B2 (en) 2005-06-30 2011-12-20 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
AU2006266655B2 (en) 2005-06-30 2009-08-20 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
JP5108767B2 (ja) 2005-08-30 2012-12-26 エルジー エレクトロニクス インコーポレイティド オーディオ信号をエンコーディング及びデコーディングするための装置とその方法
US8577483B2 (en) 2005-08-30 2013-11-05 Lg Electronics, Inc. Method for decoding an audio signal
JP5173811B2 (ja) 2005-08-30 2013-04-03 エルジー エレクトロニクス インコーポレイティド オーディオ信号デコーディング方法及びその装置
US7788107B2 (en) 2005-08-30 2010-08-31 Lg Electronics Inc. Method for decoding an audio signal
WO2007032648A1 (en) * 2005-09-14 2007-03-22 Lg Electronics Inc. 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
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
US7751485B2 (en) 2005-10-05 2010-07-06 Lg Electronics Inc. Signal processing using pilot based coding
ES2478004T3 (es) 2005-10-05 2014-07-18 Lg Electronics Inc. Método y aparato para decodificar una señal de audio
CN101283254B (zh) * 2005-10-05 2011-07-06 Lg电子株式会社 信号处理的方法和装置以及编码和解码方法及其装置
KR100857111B1 (ko) * 2005-10-05 2008-09-08 엘지전자 주식회사 신호 처리 방법 및 이의 장치, 그리고 인코딩 및 디코딩방법 및 이의 장치
US7672379B2 (en) 2005-10-05 2010-03-02 Lg Electronics Inc. Audio signal processing, encoding, and decoding
US7653533B2 (en) 2005-10-24 2010-01-26 Lg Electronics Inc. Removing time delays in signal paths
US7752053B2 (en) 2006-01-13 2010-07-06 Lg Electronics Inc. Audio signal processing using pilot based coding
KR100934674B1 (ko) * 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon 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
KR101727449B1 (ko) * 2011-06-28 2017-04-14 닛본 덴끼 가부시끼가이샤 영상 양자화 파라미터 복호 방법
US9202297B1 (en) * 2011-07-12 2015-12-01 Domo, Inc. Dynamic expansion of data visualizations
US9792017B1 (en) 2011-07-12 2017-10-17 Domo, Inc. Automatic creation of drill paths
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 (zh) * 2013-05-03 2016-02-10 哈尔滨工业大学 一种基于拟四元数与拟四元数运动学方程的卫星指向跟踪控制方法
SE538512C2 (sv) 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 (ko) * 2015-07-30 2018-03-28 메르크 파텐트 게엠베하 유기 전계발광 소자용 재료
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
CN110688092B (zh) * 2019-09-04 2021-08-17 湖南遥昇通信技术有限公司 一种随机数生成方法、装置、设备及存储介质
US20200327454A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Secured deployment of machine learning models

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186722A (ja) * 1994-12-28 1996-07-16 Canon Inc 符号化装置及び方法
KR960036706A (ko) * 1995-03-20 1996-10-28 배순훈 비디오신호 부호화 장치
KR20010008944A (ko) * 1999-07-06 2001-02-05 정선종 3차원 메쉬모델의 정점위치 압축방법 및 장치

Family Cites Families (29)

* 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 (ja) * 1988-11-17 2000-06-05 キヤノン株式会社 符号化及び復号化装置
EP0559714A1 (en) * 1990-11-30 1993-09-15 Cambridge Animation Systems Limited Animation
JPH0583700A (ja) * 1991-09-18 1993-04-02 Nec Corp Dpcm予測符号化回路
KR960013062A (ko) * 1994-09-30 1996-04-20 김광호 양자화 계수값 전송장치
JP3649469B2 (ja) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント アニメーションデータの作成方法および作成装置
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 (ja) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> 動画像の動き補償予測符号化方法とその装置
KR970064261A (ko) * 1996-02-09 1997-09-12 모리시타 요우이치 윤곽 부호화 방법, 윤곽 복호화 방법, 및 그의 방법을 이용한 윤곽 부호화 장치, 윤곽 복호화 장치 및 그의 방법을 기록한 기록 매체
KR100197602B1 (ko) * 1996-04-29 1999-06-15 윤종용 회전 움직임 추정 방법 및 이를 이용한 영상부호화/복호화장치
KR970078657A (ko) * 1996-05-20 1997-12-12 구자홍 비디오 데이타 압축 장치
JPH09326990A (ja) * 1996-06-07 1997-12-16 Matsushita Electric Ind Co Ltd 映像編集装置
KR0182182B1 (ko) * 1996-08-30 1999-04-15 삼성전자주식회사 적응차분 펄스부호변조 압축회로
KR100212552B1 (ko) * 1996-12-23 1999-08-02 전주범 이산적 사인 변환을 이용한 윤곽선 영상 신호 부호화 방법 및 그 장치
JPH10215458A (ja) * 1997-01-31 1998-08-11 Matsushita Electric Ind Co Ltd 画像圧縮伸長装置および欠落フレーム補間方法
US5818463A (en) * 1997-02-13 1998-10-06 Rockwell Science Center, Inc. Data compression for animated three dimensional objects
JPH1198512A (ja) * 1997-09-18 1999-04-09 Sanyo Electric Co Ltd 画像符号化装置及び画像符号化方法
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
KR20000052205A (ko) * 1999-01-30 2000-08-16 김영환 디지털 신호처리장치에서의 동화상 처리방법
US6891565B1 (en) * 1999-07-16 2005-05-10 Sarnoff Corporation Bitstream testing method and apparatus employing embedded reference data
AU1937701A (en) * 1999-12-01 2001-06-12 Mikael Bourges-Sevenier Optimized bifs encoder
JP2001285868A (ja) * 2000-03-29 2001-10-12 Victor Co Of Japan Ltd 動画像符号列切替装置及び動画像符号列切替方法
KR100590522B1 (ko) * 2000-10-20 2006-06-15 삼성전자주식회사 오리엔테이션 보간 노드의 부호화 장치 및 방법
KR100561835B1 (ko) * 2000-11-23 2006-03-16 삼성전자주식회사 선형 근사화를 이용한 애니메이션 궤적의 압축 및 복원 방법, 이 방법을 수행하는 장치
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
KR100561836B1 (ko) * 2001-07-07 2006-03-16 삼성전자주식회사 3차원 애니메이션 객체의 형태 변환 정보에 대한 키 값부호화 방법 및 그 장치
KR100580616B1 (ko) * 2001-02-28 2006-05-16 삼성전자주식회사 삼차원 객체의 형태 변형 정보에 대한 부호화 방법 및 그장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186722A (ja) * 1994-12-28 1996-07-16 Canon Inc 符号化装置及び方法
KR960036706A (ko) * 1995-03-20 1996-10-28 배순훈 비디오신호 부호화 장치
KR20010008944A (ko) * 1999-07-06 2001-02-05 정선종 3차원 메쉬모델의 정점위치 압축방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Coding with ASCII: compact, yet text-based 3D content. - 위치 인터폴레이터 키 및 키값 부호화 방법.(3, 4절 참조) *

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100552666B1 (ko) 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체
JP4002502B2 (ja) 座標インタポレータの符号化/復号化装置及びその方法
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
KR20110071483A (ko) 비트 심도 감소를 이용한 깊이 영상 처리 장치 및 방법
JP3953411B2 (ja) 座標インタポレータのキー値データ符号化/復号化方法及び装置
JP4104615B2 (ja) キーデータの符号化及び復号化方法、並びに装置
JP4205426B2 (ja) 回転インタポレータのキー値データ復号化方法
JP4629014B2 (ja) 位置インタポレータの符号化/複合化方法、及び装置
KR20030004943A (ko) 3차원 애니메이션 객체의 형태 변환 정보에 대한 키 값부호화 방법 및 그 장치
JPS62193382A (ja) 画像信号符号化復号化方式とその装置

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