KR101668093B1 - 데이터 인코딩 및 디코딩 방법 및 장치 - Google Patents

데이터 인코딩 및 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR101668093B1
KR101668093B1 KR1020100057374A KR20100057374A KR101668093B1 KR 101668093 B1 KR101668093 B1 KR 101668093B1 KR 1020100057374 A KR1020100057374 A KR 1020100057374A KR 20100057374 A KR20100057374 A KR 20100057374A KR 101668093 B1 KR101668093 B1 KR 101668093B1
Authority
KR
South Korea
Prior art keywords
data
quantizer
quantizers
inverse
unit
Prior art date
Application number
KR1020100057374A
Other languages
English (en)
Other versions
KR20110137436A (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 KR1020100057374A priority Critical patent/KR101668093B1/ko
Priority to US13/100,494 priority patent/US8525706B2/en
Publication of KR20110137436A publication Critical patent/KR20110137436A/ko
Application granted granted Critical
Publication of KR101668093B1 publication Critical patent/KR101668093B1/ko

Links

Images

Classifications

    • 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/3082Vector coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

데이터 인코딩 및 디코딩 방법 및 장치가 제공된다. 데이터 인코딩 방법 및 장치로는 데이터를 입력 받고, 양자화 구간의 크기는 동일하며 양자화기의 오프셋 값은 서로 다른 값을 가지는 복수 개의 양자화기 중 하나의 양자화기를 결정하고, 결정된 양자화기와 관련된 구분자 및 양자화된 계수를 전송한다. 데이터 디코딩 방법 및 장치로는 양자화기와 관련된 구분자 및 양자화된 계수를 입력 받고, 구분자를 이용하여 복수 개의 양자화기 중 하나의 양자화기를 결정하고, 결정된 양자화기를 이용하여 양자화된 계수를 역양자화하여 복원된 데이터를 획득한다.

Description

데이터 인코딩 및 디코딩 방법 및 장치{Method and Apparatus for encoding and decoding data}
아래의 실시 예들은 데이터의 인코딩 및 디코딩 방법 및 장치의 관한 것으로서, 인코더가 복수 개의 양자화기들(quantisers)을 이용하여 데이터를 압축하여 디코더로 전송하면, 디코더는 복수 개의 역양자화기들(dequantisers)을 이용하여 디코더로부터 수신한 데이터를 복원하는 방법 및 장치에 관한 것이다.
데이터를 인코딩하기 위한 방법으로, 인코더는 양자화기를 이용하여 음성 또는 영상 데이터를 양자화된 계수(quantized coefficient)로 압축하여 디코더로 전송한다.
디코더는 양자화된 계수를 인코더로부터 수신하고, 수신한 양자화된 계수를 디코더의 역양자화기에 적용하여 복원된 데이터를 생성한다. 이 경우, 인코더에서 입력된 원래의(original) 데이터와 디코더에서 출력된 복원된(reconstructed) 데이터 사이에는 양자화 구간의 크기(quantization step size)보다 작은 값의 오차가 발생될 수 있다.
예시적 일 실시 예에 따르면, 데이터 인코딩 장치는 데이터를 입력 받는 입력부, 상기 데이터에 양자화 구간의 크기(quantization step size)는 동일하며, 양자화기의 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 양자화기를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수(quantized coefficient)를 획득하는 양자화부, 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 양자화기 결정부 및 상기 결정된 양자화기에서 획득한 상기 양자화된 계수 및 상기 결정된 양자화기를 나타내는 구분자(indicator)를 결합하여 데이터 스트림(data stream)을 생성하는 다중화부를 포함한다.
상기 양자화기 결정부는 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 역양자화하여 상기 복수 개의 양자화기 각각에 대응되는 복원된 값(reconstructed value)을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
상기 양자화부는 상기 데이터가 소정의(predetermined) 블록 내의 데이터인 경우, 상기 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다.
상기 구분자는 상기 소정의 블록 단위로 결정될 수 있다.
상기 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 양자화부는 상기 데이터에 복수 개의 양자화기를 적용하는 경우, 상기 복수 개의 양자화기에 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용한 후, 상기 데이터에 상기 스케일링 정보가 적용된 복수 개의 양자화기를 적용하고, 상기 다중화부는 데이터 스트림을 생성하는 경우, 상기 스케일링 정보를 더 결합하여 데이터 스트림을 생성할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 인코딩 장치는 데이터를 입력 받는 입력부, 상기 데이터에 양자화 구간의 크기는 동일하며 양자화기의 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 양자화기를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득하는 양자화부, 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 양자화기 결정부 및 상기 결정된 양자화기에서 획득한 상기 양자화된 계수 및 상기 결정된 양자화기의 오프셋 정보를 결합하여 데이터 스트림을 생성하는 다중화부를 포함한다.
상기 양자화기 결정부는 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 역양자화하여 상기 복수 개의 양자화기 각각에 대응되는 복원된 값(reconstructed value)을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
상기 양자화부는 상기 데이터가 소정의(predetermined) 블록 내의 데이터인 경우, 상기 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다.
상기 오프셋 정보는 상기 소정의 블록 단위로 결정될 수 있다.
상기 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 오프셋 정보는 상기 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나일 수 있다.
상기 양자화부는 상기 데이터에 복수 개의 양자화기를 적용하는 경우, 상기 복수 개의 양자화기에 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용한 후, 상기 데이터에 상기 스케일링 정보가 적용된 복수 개의 양자화기를 적용하고, 상기 다중화부는 데이터 스트림을 생성하는 경우, 상기 스케일링 정보를 더 결합하여 데이터 스트림을 생성할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 디코딩 장치는 데이터 스트림으로부터 양자화된 계수 및 양자화기에 대응하는 구분자(indicator)를 분리하는(de-multiplexing) 역다중화부, 상기 구분자를 이용하여 양자화 구간의 크기는 동일하며 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 역양자화기 중에서 하나의 역양자화기를 결정하고, 상기 결정된 역양자화기에 상기 양자화된 계수를 적용하여 복원된(reconstructed) 데이터를 획득하는 역양자화부 및 상기 복원된 데이터를 출력하는 출력부를 포함한다.
상기 데이터 스트림에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우, 상기 역양자화부는 상기 소정의 블록 내의 복수 개의 데이터에 동일한 역양자화기를 적용할 수 있다.
상기 구분자는 상기 소정의 블록 단위로 결정될 수 있다.
상기 복원된 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 역다중화부는 상기 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 분리하고, 상기 역양자화부는 상기 결정된 역양자화기에 상기 양자화 계수를 적용하여 복원된 데이터를 획득하는 경우, 상기 결정된 역양자화기에 상기 스케일링 정보 및 상기 양자화 계수를 적용하여 복원된 데이터를 획득할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 디코딩 장치는 데이터 스트림으로부터 양자화된 계수 값 및 양자화기의 오프셋 정보를 분리하는 역다중화부, 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된(reconstructed) 데이터를 획득하는 역양자화부, 상기 복원된 데이터를 출력하는 출력부를 포함한다.
상기 데이터 스트림은 소정의 블록 단위로 인코딩된 데이터가 포함되고, 상기 오프셋 정보는 상기 소정의 블록 단위로 결정될 수 있다.
상기 역양자화부는 블록 단위로 인코딩된 데이터를 디코딩하기 위한 복수 개의 역양자화기를 포함하고, 상기 역양자화부는 상기 복수 개의 역양자화기에 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 상기 복원된 데이터를 획득할 수 있다.
상기 역양자화부는 상기 블록 단위로 인코딩된 데이터를 디코딩하기 위한 복수 개의 역양자화기를 포함하고, 상기 역다중화부는 복수 개의 오프셋 정보를 더 분리하며, 상기 역양자화부는 상기 복수 개의 역양자화기 각각에 상기 복수 개의 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 상기 복원된 데이터를 획득할 수 있다.
상기 복원된 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 오프셋 정보는 상기 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나일 수 있다.
상기 역양자화부는, 상기 오프셋 정보를 이용하여 상기 역양자화부에 포함된 역양자화기의 오프셋 값을 조정하고, 상기 양자화된 계수를 상기 오프셋 값이 조정된 상기 역양자화기에 적용하여 상기 복원된 데이터를 획득할 수 있다.
상기 역양자화부는, 상기 오프셋 정보를 이용하여 상기 양자화된 계수를 조절하고, 상기 조절된 양자화된 계수를 상기 역양자화부에 포함된 역양자화기에 적용하여 상기 복원된 데이터를 획득할 수 있다.
상기 오프셋 값을 획득하기 위한 정보는 상기 역양자화부에 포함된 역양자화기의 역양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 상기 오프셋 값을 대표하는 값일 수 있다.
상기 역다중화부는 상기 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 분리하고, 상기 역양자화부는 상기 스케일링 정보 및 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된 데이터를 획득할 수 있다.
예시적 실시 예에 따르면, 데이터 인코딩 방법은 데이터를 입력 받는 단계, 상기 데이터에 양자화 구간의 크기는 동일하며 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 양자화기를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득하는 단계, 상기 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 단계 및 상기 결정된 양자화기에서 획득한 상기 양자화된 계수 및 상기 결정된 양자화기를 나타내는 구분자(indicator)를 결합하여 데이터 스트림(data stream)을 생성하는 단계를 포함한다.
상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 단계는, 상기 양자화된 계수를 역양자화하여 복원된 값(reconstructed value)을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
상기 데이터가 소정의(predetermined) 블록 내의 데이터인 경우, 상기 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다.
상기 구분자는 상기 소정의 블록 단위로 결정될 수 있다.
상기 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 양자화된 계수를 획득하는 단계는, 상기 데이터에 복수 개의 양자화기를 적용하는 경우, 상기 복수 개의 양자화기에 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용하는 단계를 포함하고, 상기 데이터 스트림을 생성하는 단계는 상기 스케일링 정보를 결합하여 데이터 스트림을 생성하는 단계를 포함할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 인코딩 방법은 데이터를 입력 받는 단계, 상기 데이터에 양자화기의 양자화 구간의 크기는 동일하며 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 양자화기를 적용하여 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득하는 단계, 상기 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 단계 및 상기 결정된 양자화기에서 획득한 상기 양자화된 계수 및 상기 결정된 양자화기의 오프셋 정보를 결합하여 데이터 스트림(data stream)을 생성하는 단계를 포함한다.
상기 복수 개의 양자화기의 양자화 구간의 크기는 동일하며 상기 복수 개의 양자화기의 오프셋(offset) 값은 서로 다른 값을 가질 수 있다.
상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 단계는, 상기 양자화된 계수를 역양자화하여 복원된 값(reconstructed value)을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
상기 데이터가 소정의(predetermined) 블록 내의 데이터인 경우, 상기 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다.
상기 오프셋 정보는 상기 소정의 블록 단위로 결정될 수 있다.
상기 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 오프셋 정보는 상기 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나일 수 있다.
상기 양자화된 계수를 획득하는 단계는, 상기 데이터에 복수 개의 양자화기를 적용하는 경우, 상기 복수 개의 양자화기에 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용하는 단계를 포함하고, 상기 데이터 스트림을 생성하는 단계는 상기 스케일링 정보를 결합하여 데이터 스트림을 생성하는 단계를 포함할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 디코딩 방법은 데이터 스트림으로부터 양자화된 계수 및 양자화기에 대응하는 구분자(indicator)를 분리하는(de-multiplexing) 단계, 상기 구분자를 이용하여 양자화 구간의 크기는 동일하며 오프셋(offset) 값은 서로 다른 값을 가지는 복수 개의 역양자화기 중에서 하나의 역양자화기를 결정하는 단계, 상기 결정된 역양자화기에 상기 양자화된 계수를 적용하여 복원된(reconstructed) 데이터를 획득하는 단계 및 상기 복원된 데이터를 출력하는 단계를 포함한다.
상기 데이터 스트림에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우, 상기 소정의 블록 내의 복수 개의 데이터에 동일한 역양자화기를 적용할 수 있다.
상기 구분자는 상기 소정의 블록 단위로 결정될 수 있다.
상기 복원된 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 분리하는 단계는, 상기 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 분리하는 단계를 포함하고, 상기 복원된 데이터를 획득하는 단계는, 상기 결정된 역양자화기에 상기 양자화된 계수를 적용하는 경우, 상기 스케일링 정보를 적용할 수 있다.
예시적 다른 일 실시 예에 따르면, 데이터 디코딩 방법은 데이터 스트림으로부터 양자화 계수 및 양자화기의 오프셋 정보를 분리하는 단계, 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된(reconstructed) 데이터를 획득하는 단계 및 상기 복원된 데이터를 출력하는 출력하는 단계를 포함할 수 있다.
상기 데이터 스트림은 소정의 블록 단위로 인코딩된 데이터가 포함되고, 상기 오프셋 정보는 상기 소정의 블록 단위로 결정될 수 있다.
상기 데이터 스트림이 소정의 블록 단위로 인코딩된 데이터를 포함하는 경우, 상기 복원된 데이터를 획득하는 단계는, 상기 양자화된 계수를 역양자화하기 위하여 복수 개의 역양자화기에 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된 데이터를 획득할 수 있다.
상기 오프셋 정보는 복수 개이고, 상기 데이터 스트림이 소정의 블록 단위로 인코딩된 데이터를 포함하는 경우, 상기 복원된 데이터를 획득하는 단계는, 상기 양자화된 계수를 역양자화하기 위하여 복수 개의 역양자화기 각각에 상기 복수 개의 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 상기 복원된 데이터를 획득할 수 있다.
상기 복원된 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값일 수 있다.
상기 오프셋 정보는 상기 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나일 수 있다.
상기 복원된 데이터를 획득하는 단계는, 상기 오프셋 정보를 이용하여 상기 역양자화부에 포함된 역양자화기의 오프셋 값을 조정하는 단계 및 상기 양자화된 계수를 상기 오프셋 값이 조정된 상기 역양자화기에 적용하여 상기 복원된 데이터를 획득하는 단계를 포함한다.
상기 복원된 데이터를 획득하는 단계는, 상기 오프셋 정보를 이용하여 상기 양자화된 계수를 조절하는 단계 및 상기 조절된 양자화된 계수를 상기 역양자화부에 포함된 역양자화기에 적용하여 상기 복원된 데이터를 획득하는 단계를 포함할 수 있다.
상기 오프셋 값을 획득하기 위한 정보는 상기 역양자화부에 포함된 역양자화기의 역양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 상기 오프셋 값을 대표하는 값일 수 있다.
상기 분리하는 단계는, 상기 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 분리하는 단계를 포함하고, 상기 복원된 데이터를 획득하는 단계는, 상기 스케일링 정보를 적용하는 단계를 포함할 수 있다.
도 1은 관련 기술에 따른 양자화기의 양자화 과정을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 인코더를 나타내는 구성도이다.
도 3은 본 발명의 일 실시 예에 따른 디코더를 나타내는 구성도이다.
도 4는 본 발명의 일 실시 예에 따른 복수 개의 양자화기의 양자화 과정을 나타내는 도면이다.
도 5는 본 발명의 일 실시 예에 따른 인코더(200)의 인코딩 방법을 나타낸 흐름도이다.
도 6은 본 발명의 다른 일 실시 예에 따른 인코더(200)의 인코딩 방법을 나타낸 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 디코더(300)의 디코딩 방법을 나타낸 흐름도이다.
도 8은 본 발명의 다른 일 실시 예에 따른 디코더(300)의 디코딩 방법을 나타낸 흐름도이다.
이하에서, 예시적 실시 예들의 이러한 또는 다른 측면들이, 첨부된 도면을 참조하여 상세히 설명된다. 그러나, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. 
예시적인 실시 예에 따른 인코더는 데이터를 복수 개의 양자화기에 각각 적용하여 양자화된 계수들을 획득한다. 다음으로 인코더는 양자화된 계수들을 역양자화하여 복원된 값(reconstructed value)과 원래의 데이터 간의 오차를 계산하고, 오차가 가장 작은 양자화된 계수를 출력한 양자화기를 결정한다. 이때 인코더의 복수 개의 양자화기의 양자화 구간의 크기는 동일하며, 복수 개의 양자화기의 오프셋 값은 서로 다른 값을 가질 수 있다. 다시 인코더는 양자화된 계수와 결정된 양자화기를 나타내는 구분자(indicator) 또는 결정된 양자화기의 오프셋 값을 결합하여 데이터 스트림을 생성한다. 생성된 데이터 스트림은 소정의 채널을 통하여 디코더로 전송될 수 있다.
예시적인 실시 예에 따른 디코더는 인코더로부터 수신한 구분자를 이용하여 복수 개의 역양자화기 중에서 하나를 선택하거나 또는 인코더로부터 수신한 오프셋 값을 이용하여 하나의 역양자화기의 오프셋 값을 조정한다. 다음으로 디코더는 구분자에 의하여 선택된 역양자화기에 인코더로부터 수신한 양자화된 계수를 적용하여 복원된 데이터를 획득한다. 또는 디코더는 오프셋 값이 조정된 역양자화기에 인코더로부터 수신한 양자화된 계수를 적용하여 복원된 데이터를 획득한다. 디코더에 의하여 복원된 데이터가 영상 데이터일 경우, 디코더는 디스플레이부를 통하여 영상 데이터를 사용자에게 제공할 수 있다.
도 1은 관련 기술에 따른 양자화기의 양자화 과정을 나타내는 도면이다.
도 1의 양자화기(100)는 연속적인 양자화 결정 레벨들(consecutive decision levels)(110, 120, 130, 140)을 가지고 있으며, 양자화 결정 레벨들 간의 간격의 크기는 양자화 구간의 크기(quantization step size)로서 ?(113)의 크기를 가진다. 양자화기(100)가 입력 받은 원래의(original) 데이터가 양자화 결정 레벨(110)과 양자화 결정 레벨(120)의 간격 내에 포함될 경우, 양자화기(100)는 원래의 데이터에 대응하는 양자화 대표 값(112)으로 복원될 수 있는 양자화된 계수를 출력할 수 있다. 원래의 데이터에 대응하는 양자화 대표 값(112)은 양자화 결정 레벨들(110, 120) 간의 중간 값 또는 양자화 결정 레벨 간의 메디안(median) 값으로 표현될 수 있다.
양자화 과정에 발생되는 오차는 양자화기(100)가 입력 받은 원래의 데이터와 양자화된 계수로부터 획득된 복원된 값의 차이로부터 계산될 수 있다. 도 1에서 원래의 데이터가 양자화 결정 레벨(110)과 양자화 결정 레벨(120)의 간격 내에 포함되고, 원래의 데이터의 복원된 값으로 양자화 대표 값(112)이 획득될 경우, 원래의 데이터와 복원된 값 간의 오차의 범위는 0 값부터 △/2(111) 값 사이가 될 수 있다. 예를 들어, 10 bit의 크기를 갖는 데이터를 128개의 대표 값을 갖는 양자화기에 적용할 경우, 양자화 구간의 크기는 8이며, 오차의 범위는 0값부터 4값까지의 사이의 값이 될 수 있다.
원래의 데이터가 블록 단위로 구성된 데이터일 경우, 블록 단위의 원래의 데이터와 복원된 블록 단위의 값 사이의 오차는 더욱 커질 수 있다. 예를 들어, 10bit의 크기를 갖는 4개의 데이터로 구성된 블록을 128개의 대표 값을 갖는 양자화기에 적용할 경우, 오차의 범위는 0값부터 16값까지의 사이의 값이 될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 인코더를 나타내는 구성도이다.
도 2를 참조하면 인코더(200)는 입력부(210), 양자화부(220), 양자화기 결정부(230) 및 다중화부(240)을 포함한다.
인코더는 영상 또는 음성 등의 데이터를 부호화하여 압축하는 장치로서, 예를 들어, 인코더는 카메라, 캠코더, 셋톱 박스, 녹음기, 컴퓨터 등과 같은 장치가 될 수 있다.
일 실시 예에 따른 인코더(200)는 입력부(210), 양자화부(220), 양자화기 결정부(230) 및 다중화부(240)를 포함한다.
입력부(210)는 데이터를 입력 받는 수단이다. 입력부가 입력을 받는 데이터로는 정지 영상, 동영상, 음성, 텍스트, 주파수 형태의 데이터 등 다양한 포맷을 가진 데이터를 포함할 수 있다. 또한 입력부는 전처리가 수행된 데이터를 입력 받을 수도 있다. 전처리가 수행된 데이터는 입력부(210)가 데이터를 입력 받기 전에 가공된 데이터로서, 예를 들면 현재 부호화 대상인 현재(current) 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터(predictive) 간의 차이 값인 잔차(residual) 데이터 등이 될 수 있다.
입력부(210)는 블록 단위의 전처리가 수행된 데이터를 입력 받을 수도 있다. 블록 단위의 전처리가 수행된 데이터로는 현재 블록과 예측 블록 간의 차이 값으로 구성된 잔차 블록을 포함할 수 있다. 블록 단위의 데이터는 양자화부(220), 양자화기 결정부(230) 또는 다중화부(240)에서 블록 단위로 처리될 수 있다.
양자화부(220)는 입력부(210)가 수용한 원래의 데이터에 복수 개의 양자화기들(221, 222, 223)을 적용하여 복수 개의 양자화기(221, 222, 223) 각각에 대응되는 양자화된 계수를 획득한다. 여기에서 원래의 데이터가 적용되는 복수 개의 양자화기(221, 222, 223) 각각의 양자화 구간의 크기는 서로 동일하며, 복수 개의 양자화기(221, 222, 223)의 오프셋 값은 서로 다른 값을 가진다.
오프셋 값은 양자화 구간의 크기가 동일한 복수 개의 양자화기(221, 222, 223)가 교차된(interleaved) 경우, 각각의 양자화기의 양자화 구간 간의 차이 값이 될 수 있다. 여기에서, 복수 개의 양자화기(221, 222, 223)는 고유의 오프 셋 값을 가질 수 있다.
예를 들어, 두 개의 양자화기의 양자화 구간 간의 차이 값이 △/2인 경우 하나의 양자화기를 기준으로 오프셋 값을 0으로 정한다면, 다른 양자화기의 오프셋 값은 △/2가 될 수 있다. 또한 세 개의 양자화기 중 하나의 양자화기를 기준으로 나머지 두 개의 양자화기의 차이 값이 각각 △/2, △/3인 경우, 각 양자화기의 오프셋 값은 각각 0, △/2 및 △/3이 될 수 있다. 한편, 양자화기의 양자화 구간들은 선형적으로(linear) 구획되어 있을 수도 있으며, 비 선형적(non-linear)으로 구획되어 있을 수 있다.
양자화부(220)는 복수 개의 양자화기(221, 222, 223) 각각에 대응되는 양자화된 계수를 출력하기 위하여, 입력 받은 원래의 데이터가 소정의 양자화 결정 레벨들 간의 간격 내에 포함되는지를 판단한다. 원래의 데이터가 소정의 양자화 결정 레벨들 간의 간격에 포함되는 경우, 양자화부(220)는 원래의 데이터를 양자화 결정 레벨들 간의 간격으로 나눈 몫인 양자화된 계수를 출력한다. 여기서 양자화된 계수의 값은 서로 동일하거나 또는 서로 다를 수 있다.
양자화부(220)는 입력 받은 원래의 데이터가 소정의 블록 내에 포함되는 데이터인 경우, 양자화부(220)는 블록 내에 모든 데이터에 동일한 양자화기를 적용할 수 있다. 또한 블록 내에 복수 개의 데이터 중 일부의 데이터에 동일한 양자화기를 적용할 수 있다.
양자화부(220)는 복수 개의 양자화기(221, 222, 223)의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용할 수도 있다. 양자화부(220)는 스케일링 정보가 적용된 복수 개의 양자화기(221, 222, 223)에 원래의 데이터를 적용하여 원래의 데이터와 관련된 양자화된 계수를 출력할 수 있다.
스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다. 스케일링 정보는 복수 개의 양자화기(221, 222, 223) 각각에 동일한 값이 적용될 수 있으며, 복수 개의 양자화기(221, 222, 223) 각각에 서로 다른 값이 적용될 수도 있다. 스케일링 값은 자연수 또는 실수 값이 될 수 있다. 한편, 양자화부(220)는 데이터가 소정의 블록 내의 데이터인 경우, 블록 내에 복수 개의 데이터 중 일부의 데이터에 동일한 스케일링 정보가 적용된 양자화기를 적용할 수 있다. 또는 양자화부(220)는 블록 내에 모든 데이터에 동일한 스케일링 정보가 적용된 양자화기를 적용할 수 있다.
양자화기 결정부(230)는 복수 개의 양자화기(221, 222, 223) 각각에 대응되는 양자화된 계수를 이용하여 복수 개의 양자화기(221, 222, 223) 중에서 하나의 양자화기를 결정한다. 예를 들면 양자화기 결정부(230)는 복수 개의 양자화기(221, 222, 223) 각각에 대응되는 양자화된 계수를 역양자화하여 복수 개의 양자화기(221, 222, 223) 각각에 대응되는 복원된 값을 획득하고, 복원된 값과 원래의 데이터 간의 오차에 따라 하나의 양자화기를 결정한다. 복원된 값과 원래의 데이터 간의 오차를 계산하기 위한 방법으로는 SAD(Sum of Absolute Differences) 또는 SSD(Squared Sum of Differences)와 같은 방식을 포함할 수 있다.
양자화기 결정부(230)는 복수 개의 양자화기(221, 222, 223)로부터 획득된 각각의 오차를 비교하여 가장 작은 오차를 가진 양자화기를 결정한다. 그리고 결정된 양자화기와 관련된 정보를 다중화부(240)로 전송할 수 있다.
양자화기 결정부(230)는 양자화기와 관련된 정보로 결정된 양자화기를 나타내는 구분자 또는 결정된 양자화기의 오프셋 정보를 포함할 수 있다. 상기 구분자는 디코더에서 인코더로부터 수신한 양자화된 계수를 역양자화하고 복원된 데이터를 획득하기 위한 역양자화기를 검색하는데 이용될 수 있다.
양자화기 오프셋 정보는 양자화기의 오프셋 값과 관련된 정보로서 결정된 양자화기의 오프셋 값 또는 오프셋 값을 획득하기 위한 정보 중 하나가 될 수 있다. 오프셋 값은 보통 양자화기의 양자화 구간의 크기인 △보다 작은 값으로 0부터 △/2값 사이를 가질 수 있다.
오프셋 값을 획득하기 위한 정보로는 결정된 양자화기의 양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 오프셋 값을 대표하는 값을 포함할 수 있다. 예를 들면, 양자화 구간의 크기 △값이 16이고, 양자화 오프셋 값이 8이라면 양자화 구간의 크기를 소정의 크기로 분할하는 값은 16 / 8의 값인 2가 될 수 있다. 또한 양자화 오프셋 값인 8은 인코더와 디코더 간의 약속을 통하여 8을 대표하는 소정의 값으로 나타낼 수도 있다.
양자화기 결정부(230)는 입력부(210)로부터 수용한 원래의 데이터가 소정의 블록 내에 포함되는 데이터인 경우, 구분자 또는 오프셋 정보를 블록 단위로 결정할 수도 있다. 예를 들어, 양자화기 결정부(230)는 복수 개의 양자화기(221, 222, 223) 각각에 블록 내의 데이터들을 적용하여 복원된 데이터를 획득한다. 그리고 양자화기 결정부(230)는 복수 개의 양자화기(221, 222, 223) 각각에 대응하는 블록 내의 데이터와 복원된 데이터 간의 오차를 비교하여, 가장 작은 오차를 가지는 양자화기와 관련된 정보를 다중화부(240)로 전송할 수 있다.
다중화부(240)는 결정된 양자화기에 대응되는 양자화된 계수 및 결정된 양자화기를 나타내는 구분자 또는 결정된 양자화기의 오프셋 정보를 결합하여 데이터 스트림을 생성한다. 또한 다중화부(240)는 양자화부(220)에서 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 결합하여 데이터 스트림을 생성할 수 있다. 다중화부(240)는 생성된 데이터 스트림을 채널을 통하여 디코더로 전송할 수 있다.
다중화부(240)는 소정의 블록 내에 포함된 데이터에 대해서 블록마다 하나의 구분자 또는 오프셋 정보를 전송할 수 있다. 블록 단위로 하나의 구분자 또는 오프셋 정보를 전송할 경우, 데이터 단위로 양자화 정보를 보내는 것보다 적은 양의 오버헤드가 소요되며 이러한 오버헤드의 감소는 데이터의 전송율을 증가시킬 수 있다.
도 3은 본 발명의 일 실시 예에 따른 디코더를 나타내는 구성도이다.
도 3를 참조하면 디코더(300)는 역다중화부(310), 역양자화부(320) 및 출력부(330)을 포함한다.
디코더(300)는 인코더(200)로부터 수신한 압축된 데이터를 정지 영상, 동영상, 텍스트 또는 음성 등과 같은 다양한 포맷의 데이터로 복호화하는 장치로서, 예를 들면 디코더는 카메라, 캠코더, 셋톱 박스, 티브이, MP3 플레이어, 컴퓨터 등과 같은 다양한 장치가 될 수 있다.
일 실시 예에 따른 디코더(300)는 역다중화부(310), 역양자화부(320) 및 출력부(330)을 포함한다.
역다중화부(310)는 인코더(200)로부터 데이터 스트림을 수신하고, 데이터 스트림으로부터 양자화된 계수 값을 분리한다. 또한 역다중화부(310)는 양자화기에 대응하는 구분자 또는 양자화기의 오프셋 정보 중 적어도 하나를 분리할 수 있다. 또한 역다중화부(310)는 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 분리할 수 있다. 스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다.
역다중화부(310)는 수용한 데이터에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우 각각의 블록마다 하나의 구분자 또는 하나 이상의 오프셋 정보를 분리할 수 있다.
역양자화부(320)는 역다중화부(310)로부터 분리된 구분자를 이용하여 복수 개의 역양자화기(321, 322, 323) 중에서 하나의 역양자화기를 결정하고, 구분자에 의하여 결정된 역양자화기에 양자화된 계수 값을 적용하여 복원된 데이터를 획득할 수 있다. 여기에서 복수 개의 역양자화기(321, 322, 323) 각각의 양자화 구간의 크기는 동일하며 복수 개의 역양자화기(321, 322, 323)의 오프셋(offset) 값은 서로 다른 값을 가진다.
복수 개의 역양자화기(321, 322, 323)의 각각의 양자화 구간의 크기가 동일하고 복수 개의 역양자화기(321, 322, 323)의 오프셋(offset) 값이 서로 다른 값을 가지기 위하여, 복수 개의 역양자화기(321, 322, 323)는 서로 교차(interleaved) 배치되고 오프셋(offset) 값의 범위는 복수 개의 역양자화기(321, 322, 323) 중 하나의 양자화기의 역양자화 구간의 크기보다 작을 수 있다. 이때 복수 개의 역양자화기(321, 322, 323) 각각의 양자화 구간의 크기들은 선형적으로(linear) 구획되어 있을 수도 있으며, 비 선형적으로 구획되어 있을 수 있다. 또한 복수 개의 역양자화기(321, 322, 323) 중 적어도 하나의 역양자화기는 디코더의 저장부(미도시)에 저장되어 구분자에 의하여 선택되거나, 인코더로부터 전송될 수도 있다.
역양자화부(320)는 역다중화부(210)가 수용한 데이터 스트림에 소정의 블록 단위로 인코딩 된 데이터가 포함된 경우, 소정의 블록 내의 복수 개의 데이터 중 일부의 데이터에 동일한 역양자화기를 적용할 수 있다. 또한 역양자화부(320)는 블록 내의 모든 데이터에 동일한 역양자화기를 적용할 수도 있다.
역양자화부(320)는 구분자에 의하여 결정된 역양자화기에 양자화된 계수를 적용하여 복원된 데이터를 획득한다. 예를 들어, 역양자화부(320)는 구분자에 의하여 결정된 역양자화기의 역양자화 구간의 크기와 양자화된 계수를 곱하여 복원된 데이터를 획득할 수 있다.
역양자화부(320)는 구분자에 의하여 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위하여 역다중화부(310)로부터 수용한 스케일링 정보를 적용할 수도 있다. 예를 들어, 역양자화부(320)는 복수 개의 역양자화기(321, 322, 323) 중 구분자에 의하여 결정된 역양자화기에 스케일링 정보를 적용하고, 스케일링 정보가 적용된 역양자화기에 역다중화부(310)를 통하여 획득한 양자화된 계수를 적용하여 복원된 데이터를 획득할 수 있다. 스케일링 정보는 역양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다. 한편, 역양자화부(320)는 역다중화부(310)가 수용한 데이터 스트림에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우, 블록 내에 복수 개의 데이터 중 일부의 데이터에 동일한 스케일링 정보가 적용된 역양자화기를 적용하거나 또는 블록 내에 모든 데이터에 동일한 스케일링 정보가 적용된 역양자화기를 적용할 수 있다.
역양자화부(320)는 역다중화부(310)로부터 분리된 오프셋 정보를 적용하여 양자화된 계수를 역양자화하고 복원된 데이터를 획득할 수 있다.
오프셋 정보는 오프셋과 관련된 정보로서, 예를 들면 오프셋 정보는 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나를 포함할 수 있다. 여기에서 오프셋 값을 획득하기 위한 정보는 역양자화부(320)에 포함된 역양자화기의 역양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 상기 오프셋 값을 대표하는 값을 포함할 수 있다.
역양자화부(320)는 오프셋 정보를 이용하여 복원된 데이터를 획득하는 경우, 먼저 오프셋 정보를 이용하여 역양자화부(320)에 포함된 역양자화기의 오프셋 값을 조정하고, 양자화된 계수를 오프셋 값이 조정된 역양자화기에 적용하여 복원된 데이터를 획득할 수 있다. 또한 역양자화부(320)는 먼저 오프셋 정보를 이용하여 양자화된 계수를 조절하고, 조절된 양자화된 계수를 역양자화부(320)에 포함된 역양자화기에 적용하여 복원된 데이터를 획득할 수 있다.
역양자화부(320)는 역다중화부(310)가 수용한 데이터 스트림에 복수 개의 양자화된 계수를 포함하고 있는 블록 단위로 인코딩된 데이터가 포함된 경우, 하나의 역양자화기에 복수 개의 양자화된 계수 값을 적용할 수 있다. 또한 역양자화부(320)는 복수 개의 양자화된 계수 값에 복수 개의 역양자화기(321, 322, 323)를 적용할 수도 있다.
역양자화부(320)는 블록 단위로 인코딩된 데이터를 디코딩하기 위하여 복수 개의 역양자화기(321, 322, 323)를 적용하는 경우, 먼저 복수 개의 역양자화기(321, 322, 323)에 하나의 오프셋 정보를 적용하여 복수 개의 역양자화기(321, 322, 323) 각각의 오프셋을 조절하고, 조절된 복수 개의 역양자화기(321, 322, 323)에 블록 단위로 인코딩된 데이터를 적용하여 블록 단위의 복원된 데이터를 획득할 수 있다. 또한 역양자화부(320)는 블록 단위로 인코딩된 데이터에 먼저 하나의 오프셋 정보를 적용하여 인코딩된 데이터와 관련된 복수 개의 양자화된 계수를 조절하고, 복수 개의 역양자화기(321, 322, 323)에 상기 조절된 복수 개의 양자화된 계수)를 적용하여 블록 단위의 복원된 데이터를 획득할 수 있다.
역양자화부(320)는 블록 단위로 인코딩된 데이터를 디코딩하기 위하여 복수 개의 역양자화기(321, 322, 323)를 적용하는 경우, 먼저 복수 개의 역양자화기(321, 322, 323)에 복수 개의 오프셋 정보를 적용하여 복수 개의 역양자화기(321, 322, 323)의 오프셋을 조절하고, 조절된 복수 개의 역양자화기(321, 322, 323)에 블록 단위로 인코딩된 데이터를 적용하여 블록 단위의 복원된 데이터를 획득할 수 있다. 또한 역양자화부(320)는 블록 단위로 인코딩된 각각의 데이터에 먼저 복수 개의 오프셋 정보를 각각 적용하여 인코딩된 데이터와 관련된 복수 개의 양자화된 계수 값을 조절하고, 복수 개의 역양자화기(321, 322, 323)에 상기 조절된 복수 개의 양자화된 계수 값를 적용하여 블록 단위의 복원된 데이터를 획득할 수 있다.
출력부(330)는 데이터를 출력하는 수단이다. 출력부(330)가 출력하는 데이터로는 정지 영상, 동영상, 음성, 텍스트, 주파수 형태의 데이터 등 다양한 포맷을 가진 데이터를 포함할 수 있다. 또한 디코더(300)가 전처리가 수행된 압축된 데이터를 수신한 경우, 출력부(330)는 전처리가 수행된 복원된 데이터를 출력할 수도 있다. 예를 들면, 전처리가 수행된 데이터는 현재 부호화 대상인 현재 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터 간의 차이 값인 잔차 데이터를 포함할 수 있다.
출력부(330)는 블록 단위의 데이터를 출력할 수도 있다. 블록 단위의 데이터는 복수 개의 데이터들이 결합된 데이터로서, 역다중화부(310) 및 역양자화부(320)에서 블록 단위로 처리될 수 있다. 블록 단위의 데이터로 현재 블록과 예측 블록의 차이 값으로 구성된 잔차 블록을 포함할 수 있다.
일측에 따른 복수 개의 양자화기를 나타내는 수학식은 다음과 같다.
Figure 112010038861630-pat00001
수학식 1은 본 발명의 일측에 따른 양자화 과정을 나타낸 식으로서, Quant(X, i)는 입력부(210)로부터 입력 받은 데이터 X값을 i번째 양자화기에 적용한 결과에 따른 양자화된 계수 값이고, △는 양자화 구간의 크기이며, Fi는 i번째 양자화기의 오프셋 값이다. 수학식 1에서 양자화된 계수 값인 Quant(X, i)는 데이터 X값을 오프셋 값만큼 이동하고 양자화 구간의 크기 △로 나눈 몫으로부터 획득될 수 있다.
Figure 112010038861630-pat00002
수학식 2는 본 발명의 일측에 따른 수학식 1에 대응하는 역양자화 과정을 나타낸 식으로서, DeQuant(X′, i)는 양자화된 계수 값 X'를 i번째 역양자화기에 적용하여 복원된 데이터 값이고, △는 양자화 구간의 크기이며, Fi는 i번째 양자화기의 오프셋 값이다. 수학식 2에서 복원된 데이터 값인 DeQuant(X′, i)는 양자화된 계수 값 X'에 양자화 구간의 크기 △를 곱하고 오프셋 값만큼 이동함으로써 획득될 수 있다.
수학식 1과 수학식 2에 있어서 오프셋 값이 각각 0 또는 △/2인 경우, 본 발명의 일측에 따른 양자화 및 역양자화 과정은 도 4와 같다.
도 4는 본 발명의 일측에 따른 양자화부(220)에 포함된 복수 개의 양자화기(400, 450)의 양자화 및 양자화기 결정 과정을 보여주는 도면이다.
도 4의 복수 개의 양자화기(400, 450) 각각은 서로 교차되어 있으며, 복수 개의 양자화기(400, 450) 각각의 양자화 구간의 크기는 △로 동일하고, 복수 개의 양자화기(400, 450)의 오프셋 값은 △/ 2의 크기만큼 차이를 가진다.
도 4의 복수 개의 양자화기(400, 450) 중 제1 양자화기(400)는 연속적인 양자화 결정 레벨들(410, 420, 430, 440)로 구획되어 있다. 또한 도 4에는 제1 양자화기(400)가 입력 받은 원래의 데이터(421, 433) 및 원래의 데이터에 대응되는 복원된 데이터(412, 423, 431)들이 도시되어 있다.
도 4의 복수 개의 양자화기(400, 450) 중 제2 양자화기(450)는 연속적인 양자화 결정 레벨들(460, 470, 480)로 구획되어 있다. 또한 도 4에는 제2 양자화기(450)가 입력 받은 원래의 데이터(463, 481) 및 원래의 데이터에 대응되는 복원된 데이터(461, 483)들이 도시되어 있다.
구체적으로, 제1 양자화기(400)에 양자화 결정 레벨(420)과 양자화 결정 레벨(430) 사이에 포함되는 원래의 데이터(421)가 입력되었을 경우, 원래의 데이터(421)가 역양자화 과정을 통하여 복원되는 데이터(423)가 도 4에 도시되어 있다. 한편, 제2 양자화기(450)에 양자화 결정 레벨(460)과 양자화 결정 레벨(470) 사이에 포함되는 원래의 데이터(463)가 입력되었을 경우, 원래의 데이터(463)가 역양자화 과정을 통하여 복원되는 데이터(461)가 도 4에 도시되어 있다.
양자화기 결정부(230)는 상술한 데이터와 복원된 데이터 간의 오차를 계산할 수 있다. 예를 들어, 양자화기 결정부(230)는 제1 양자화기(400)에 데이터 (421)가 수용되고 대응되는 복원 데이터(423)를 획득하는 경우, 데이터(4210)와 복원 데이터(423) 간의 오차인 e1(422)을 획득할 수 있다. 또한 양자화기 결정부(230)는 제2 양자화기(450)로 제1 양자화기(400)에 입력된 데이터(421)와 동일한 데이터(463)가 수용되고 데이터(463)에 대응되는 복원된 데이터(461)를 획득하는 경우, 데이터(463)과 복원된 데이터(461) 간의 오차로서 △/2 - e1(462)을 획득할 수 있다.
다음으로 양자화기 결정부(230)는 제1 양자화기(400)에서 획득된 오차인 e1(422)와 제2 양자화기(450)에서 획득된 오차인 △/2 - e1(462)를 비교하여 오차가 더 작은 제2 양자화기(450)와 관련된 정보를 다중화부(240)로 전송할 수 있다. 제2 양자화기(450)와 관련된 정보로는 제2 양자화기(450)를 나타내는 구분자나 또는 제2 양자화기의 오프셋 값이 될 수 있다.
양자화기 결정부(230)는 입력부(210)가 수용한 데이터가 소정의 블록 내에 포함되는 복수 개의 데이터인 경우, 각 양자화기에 복수 개의 데이터들을 적용하여 블록마다 가장 작은 오차를 가진 양자화기를 결정할 수 있다. 예를 들어, 제1 양자화기(400)에 복수 개의 데이터(421, 433)을 적용하는 경우, 복수 개의 데이터(421, 433)와 복원된 데이터(423, 431) 간의 오차는 각각 e1(422)과 e2(432)이고, 복수 개의 데이터(421, 433)가 포함되어 있는 블록의 오차는 e1(422)과 e2(432)를 합한 값이 될 수 있다. 또한 제2 양자화기(450)로 제1 양자화기(400)에 입력된 복수 개의 데이터(421, 433)와 동일한 복수 개의 데이터 (463, 481)을 적용하는 경우, 복수 개의 데이터(421, 433)와 복원된 데이터(461, 483) 간의 오차는 각각 △/2 - e1(462)과 △/2 - e2(482)이고, 복수 개의 데이터(463, 481)가 포함되어 있는 블록의 오차는 △/2 - e1(462)과 △/2 - e2(482)를 합한 값이 될 수 있다.
양자화기 결정부(230)는 제1 양자화기(400) 및 제2 양자화기(450)로부터 획득한 블록의 간의 오차를 서로 비교하여 작은 오차를 가진 양자화기와 관련된 구분자 또는 오프셋 정보를 블록 단위로 다중화부(240)로 전송할 수 있다.
도 4에서 제1 양자화기(400)와 관련된 양자화 및 역양자화 과정은 다음의 수학식으로 나타낼 수 있다.
Figure 112010038861630-pat00003
수학식 3에서 Quant(X, i)는 양자화된 계수 값이고, X는 입력 받는 데이터 값이며, ?는 양자화 구간의 크기이다. 수학식 3에서 양자화된 계수 값 Quant(X, i)는 데이터 X값을 양자화 구간의 크기 △로 나눈 몫으로부터 획득될 수 있다.
Figure 112010038861630-pat00004
수학식 4는 수학식 3에 대응하는 역양자화 과정을 나타낸 식으로서, DeQuant(X′, i)는 복원된 데이터 값이고, X'는 인코더로부터 수신한 양자화된 계수 값이며, △는 역양자화 구간의 크기이다. 복원된 데이터 값 DeQuant(X′, i)은 양자화된 계수 값 X'에 역양자화 구간의 크기 △를 곱하고, 다시 양자화 오프셋 값인 △/2을 더하여 획득될 수 있다.
한편, 도 4에서 제2 양자화기(450)의 양자화 과정은 다음의 수학식으로 나타낼 수 있다.
Figure 112010038861630-pat00005
수학식 5에서 Quant(X, i)는 양자화된 계수 값이고, X는 입력 받는 데이터 값이며, △는 양자화 구간의 크기이다. 수학식 5에서 양자화된 계수 값 Quant(X, i)는 데이터 X값에 양자화 오프셋 값인 △/2을 더하고, 양자화 구간의 크기 △로 나눈 몫으로부터 획득될 수 있다.
Figure 112010038861630-pat00006
수학식 6은 수학식 5에 대응하는 역양자화 과정을 나타낸 식으로서, DeQuant(X′, i)는 복원된 데이터 값이고, X'는 인코더로부터 수신한 양자화 대표 값이며, △는 역양자화 구간의 크기이다. 복원된 데이터 값 X'은 양자화된 계수 값 X'에 역양자화 구간의 크기 △를 곱하여 획득될 수 있다.
오프셋 값이 다른 복수 개의 양자화기를 서로 보완하여 사용하는 경우, 양자화 오차를 최대한 줄일 수 있다. 예를 들면, 도 4의 제1 양자화기(400)와 제2 양자화기(450)와 같이 오프셋 값의 차이가 △/2인 두 개의 양자화기를 고려할 경우, 하나의 양자화기에서 발생한 오차가 e이면 다른 양자화기의 오차는 △/2 - e로 나타낼 수 있다. 만약 블록 내의 N개의 데이터가 도 4의 제1 양자화기(400) 및 제2 양자화기(450)에 적용되는 경우, 하나의 양자화기에서 발생한 N개의 데이터들의 오차는 ei(=0, i = 1, 2,..., N-1, N)이고, 다른 양자화기에서 발생한 N개의 데이터들의 오차는 △/2 - ei(=0, i = 1, 2,..., N-1, N)로 나타낼 수 있다. 이때, 각 양자화기의 오차들의 합은 다음의 식으로 나타낼 수 있다.
Figure 112010038861630-pat00007
수학식 7에서 SADQ1은 블록 내의 N개의 데이터가 도 4의 제1 양자화기(400)에 적용되었을 경우 오차들의 절대 합이며, SADQ2은 블록 내의 N개의 데이터가 도 4의 제2 양자화기(450)에 적용되었을 경우 오차들의 절대 합을 나타낸다. 여기에서 각 양자화기의 SAD의 합은 최대 오차로서 N·△/2이고, 따라서 각각의 양자화기에서 적은 오차를 가지는 양자화기를 각각 선택할 경우 블록의 SAD는 0부터 N·△/4 사이에서 존재할 수 있다.
본 발명의 일 실시 예에 따른 인코더(200)의 인코딩 방법에 대하여 도 5 내지 도 6을 참조하여 설명한다.
도 5는 본 발명의 일 실시 예에 따른 인코더(200)의 인코딩 방법을 나타낸 흐름도이다.
일 실시 예에 따른 인코더(200)는 데이터를 입력 받는다(510). 인코더(200)는 전처리가 수행된 데이터를 입력 받을 수도 있다. 예를 들면 , 전처리가 수행된 데이터로는 현재 부호화 대상인 현재 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터 간의 차이 값인 잔차 데이터 등이 될 수 있다. 또한 인코더(200)는 블록 단위의 전처리가 수행된 데이터를 입력 받을 수도 있다. 블록 단위의 전처리가 수행된 데이터로는 현재 블록과 예측 블록 간의 차이 값으로 구성된 잔차 블록을 포함할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(510)에서 입력 받은 데이터에 복수 개의 양자화기를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득한다(520). 여기에서 복수 개의 양자화기의 양자화 구간의 크기는 동일하며 복수 개의 양자화기의 오프셋 값은 서로 다른 값을 가질 수 있다.
인코더(200)는 단계(510)에서 입력 받은 데이터가 소정의 블록 내의 데이터인 경우, 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다. 또한 블록 내에 복수 개의 데이터 중 일부의 데이터에 동일한 양자화기를 적용할 수 있다.
인코더(200)는 복수 개의 양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용할 수도 있다. 또한 인코더(200)는 스케일링 정보가 적용된 복수 개의 양자화기에 단계(510)에서 입력 받은 데이터를 적용하여 양자화된 계수를 출력할 수 있다. 스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(520)에서 획득한 양자화된 계수를 이용하여 복수 개의 양자화기 중에서 하나의 양자화기를 결정한다(530). 예를 들면, 인코더(200)는 양자화된 계수를 역양자화하여 복원된 값을 획득하고, 복원된 값과 데이터 간의 오차에 따라 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(530)에서 획득한 양자화된 계수 및 결정된 양자화기를 나타내는 구분자를 결합하여 데이터 스트림을 생성한다(540). 또한 인코더(200)는 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 결합하여 데이터 스트림을 생성할 수 있다. 한편 인코더(200)는 단계(510)에서 입력 받은 데이터가 소정의 블록 내에 포함된 데이터인 경우, 블록마다 하나의 구분자 정보를 전송할 수 있다.
도 6은 본 발명의 다른 일 실시 예에 따른 인코더(200)의 인코딩 방법을 나타낸 흐름도이다.
일 실시 예에 따른 인코더(200)는 데이터를 입력 받는다(610). 인코더(200)는 전처리가 수행된 데이터를 입력 받을 수도 있다. 예를 들면, 전처리가 수행된 데이터로는 현재 부호화 대상인 현재 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터 간의 차이 값인 잔차 데이터 등이 될 수 있다. 한편, 인코더(200)는 블록 단위의 전처리가 수행된 데이터를 입력 받을 수도 있다. 블록 단위의 전처리가 수행된 데이터로는 현재 블록과 예측 블록 간의 차이 값으로 구성된 잔차 블록을 포함할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(610)에서 입력 받은 데이터에 복수 개의 양자화기를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득한다(620). 여기에서 복수 개의 양자화기의 양자화 구간의 크기는 동일하며 복수 개의 양자화기의 오프셋 값은 서로 다른 값을 가진다.
인코더(200)는 단계(610)에서 입력 받은 데이터가 소정의 블록 내의 데이터인 경우, 소정의 블록 내에 복수 개의 데이터에 동일한 양자화기를 적용할 수 있다. 또한 블록 내에 복수 개의 데이터 중 일부의 데이터에 동일한 양자화기를 적용할 수 있다.
인코더(200)는 복수 개의 양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 적용할 수도 있다. 또한 인코더(200)는 스케일링 정보가 적용된 복수 개의 양자화기에 단계(610)에서 입력 받은 데이터를 적용하여 양자화된 계수를 출력할 수 있다. 스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(620)에서 획득한 양자화된 계수를 이용하여 복수 개의 양자화기 중에서 하나의 양자화기를 결정한다(630). 예를 들면 인코더(200)는 양자화된 계수를 역양자화하여 복원된 값을 획득하고, 복원된 값과 데이터 간의 오차에 따라 복수 개의 양자화기 중에서 하나의 양자화기를 결정할 수 있다.
일 실시 예에 따른 인코더(200)는 단계(630)에서 획득한 양자화된 계수 및 결정된 양자화기의 오프셋 정보를 결합하여 데이터 스트림을 생성한다(640). 오프셋 정보는 상기 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나가 될 수 있다. 오프셋 값을 획득하기 위한 정보로는 결정된 양자화기의 양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 오프셋 값을 대표하는 값을 포함할 수 있다.
인코더(200)는 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 결합하여 데이터 스트림을 생성할 수 있다. 한편, 인코더(200)는 단계(610)에서 입력 받은 데이터가 소정의 블록 내에 포함된 데이터인 경우, 블록마다 하나의 오프셋 정보를 전송할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 디코더(300)의 디코딩 방법을 나타낸 흐름도이다.
일 실시 예에 따른 디코더(300)는 인코더(200)로부터 데이터 스트림을 수신하고, 데이터 스트림으로부터 양자화된 계수 값 및 양자화기에 대응하는 구분자를 분리한다(710). 또한 디코더(300)는 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 분리할 수 있다. 스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다. 한편, 디코더(300)는 인코더(200)로부터 수용한 데이터에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우 각각의 블록마다 하나의 구분자 정보를 분리할 수 있다.
일 실시 예에 따른 디코더(300)는 단계(710)에서 획득한 구분자를 이용하여 복수 개의 역양자화기 중에서 하나의 역양자화기를 결정한다(720). 여기에서 복수 개의 역양자화기 각각의 양자화 구간의 크기는 동일하며 복수 개의 역양자화기의 오프셋 값은 서로 다른 값을 가진다. 디코더(300)는 단계(710)에서 획득한 데이터 스트림에 소정의 블록 단위로 인코딩 된 데이터가 포함된 경우, 소정의 블록 내의 복수 개의 데이터 중 일부의 데이터에 동일한 역양자화기를 적용할 수 있다. 또한 디코더(300)는 블록 내의 모든 데이터에 동일한 역양자화기를 적용할 수도 있다.
일 실시 예에 따른 디코더(300)는 단계(720)에서 결정된 역양자화기에 양자화된 계수를 적용하여 복원된 데이터를 획득한다(730). 예를 들어, 디코더(300)는 구분자에 의하여 결정된 역양자화기의 역양자화 구간의 크기와 양자화된 계수를 곱하여 복원된 데이터를 획득할 수 있다.
디코더(300)는 구분자에 의하여 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위하여 스케일링 정보를 적용할 수도 있다. 예를 들어, 디코더(300)는 복수 개의 역양자화기 중 구분자에 의하여 결정된 역양자화기에 스케일링 정보를 적용하고, 스케일링 정보가 적용된 역양자화기에 양자화된 계수를 적용하여 복원된 데이터를 획득할 수 있다. 스케일링 정보는 역양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다.
일 실시 예에 따른 디코더(300)는 복원된 데이터를 출력한다(740). 또한 디코더(300는 전처리가 수행된 압축된 데이터를 수신한 경우, 전처리가 수행된 복원된 데이터를 출력할 수도 있다. 예를 들면, 전처리가 수행된 데이터는 현재 부호화 대상인 현재 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터 간의 차이 값인 잔차 데이터를 포함할 수 있다. 한편, 디코더(300)는 블록 단위의 데이터를 출력할 수도 있다. 블록 단위의 데이터는 복수 개의 데이터들이 결합된 데이터로서, 예를 들면 현재 블록과 예측 블록의 차이 값으로 구성된 잔차 블록을 포함할 수 있다.
도 8은 본 발명의 다른 일 실시 예에 따른 디코더(300)의 디코딩 방법을 나타낸 흐름도이다.
일 실시 예에 따른 디코더(300)는 인코더(200)로부터 데이터 스트림을 수신하고, 데이터 스트림으로부터 양자화된 계수 값 및 양자화기의 오프셋 정보를 분리한다(810). 오프셋 정보는 오프셋과 관련된 정보로서, 예를 들면 오프셋 정보는 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나를 포함할 수 있다. 또한 디코더(300)는 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 분리할 수 있다. 스케일링 정보는 양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다. 한편, 디코더(300)는 인코더(200)로부터 수용한 데이터에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우 각각의 블록마다 하나의 오프셋 정보를 분리할 수 있다.
일 실시 예에 따른 디코더(300)는 단계(810)에서 획득한 오프셋 정보를 적용하여 양자화된 계수를 역양자화하고 복원된 데이터를 획득한다(820). 오프셋 정보는 오프셋과 관련된 정보로서, 예를 들면 오프셋 정보는 양자화기의 오프셋 값 또는 상기 오프셋 값을 획득하기 위한 정보 중 어느 하나를 포함할 수 있다. 오프셋 값을 획득하기 위한 정보는 디코더(300)에 포함된 역양자화기의 역양자화 구간의 크기를 소정의 크기로 분할하는 값 또는 상기 오프셋 값을 대표하는 값을 포함할 수 있다.
디코더(300)는 오프셋 정보를 이용하여 복원된 데이터를 획득하는 경우, 먼저 오프셋 정보를 이용하여 디코더(300)에 포함된 역양자화기의 오프셋 값을 조정하고, 양자화된 계수를 오프셋 값이 조정된 역양자화기에 적용하여 복원된 데이터를 획득할 수 있다. 또한 디코더(300)는 먼저 오프셋 정보를 이용하여 양자화된 계수를 조절하고, 조절된 양자화된 계수를 디코더(300)에 포함된 역양자화기에 적용하여 복원된 데이터를 획득할 수 있다.
디코더(300)는 단계(810)에서 획득한 데이터 스트림에 복수 개의 양자화된 계수를 포함하고 있는 블록 단위로 인코딩된 데이터가 포함된 경우, 하나의 역양자화기에 블록 단위의 복수 개의 양자화된 계수 값을 적용할 수 있다. 또는 디코더(300)는 양자화된 계수를 역양자화하기 위하여 복수 개의 역양자화기에 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된 데이터를 획득할 수 있다. 또한 디코더(300)는 양자화된 계수를 역양자화하기 위하여 복수 개의 역양자화기 각각에 상기 복수 개의 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 상기 복원된 데이터를 획득할 수 있다.
디코더(300)는 구분자에 의하여 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위하여 단계(810)에서 획득한 스케일링 정보를 적용할 수도 있다. 예를 들어, 디코더(300)는 디코더(300)에 포함된 역양자화기에 스케일링 정보를 적용하고, 스케일링 정보가 적용된 역양자화기에 양자화된 계수를 적용하여 복원된 데이터를 획득할 수 있다. 스케일링 정보는 역양자화 구간의 크기를 넓히거나 또는 좁히기 위한 정보로서 스케일링 값 또는 스케일링 값을 대표하는 값을 포함할 수 있다.
일 실시 예에 따른 디코더(300)는 복원된 데이터를 출력한다(740). 디코더(300)는 전처리가 수행된 압축된 데이터를 수신한 경우, 전처리가 수행된 복원된 데이터를 출력할 수도 있다. 예를 들면, 전처리가 수행된 데이터는 현재 부호화 대상인 현재 데이터와 현재 데이터와 인접한 범위에서 찾아진 예측 데이터 간의 차이 값인 잔차 데이터를 포함할 수 있다. 한편, 디코더(300)는 블록 단위의 데이터를 출력할 수도 있다. 블록 단위의 데이터는 복수 개의 데이터들이 결합된 데이터로서, 예를 들면 현재 블록과 예측 블록의 차이 값으로 구성된 잔차 블록을 포함할 수 있다.
상기에서 설명된 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (19)

  1. 데이터 인코딩 장치에 있어서,
    데이터를 입력 받는 입력부;
    상기 데이터에 복수 개의 양자화기 - 상기 복수 개의 양자화기 각각은 고유의 오프셋 값을 가짐 - 를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수(quantized coefficient)를 획득하는 양자화부;
    상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 양자화기 결정부; 및
    상기 결정된 양자화기에 대응되는 상기 양자화된 계수 및 상기 결정된 양자화기를 나타내는 구분자(indicator)를 결합하여 데이터 스트림(data stream)을 생성하는 다중화부를 포함하고,
    상기 복수 개의 양자화기의 양자화 구간의 크기(quantization step size)는 동일하며, 상기 복수 개의 양자화기의 오프셋(offset) 값은 서로 다른 값을 가지는 데이터 인코딩 장치.
  2. 제1항에 있어서,
    상기 양자화기 결정부는,
    상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 역양자화하여 상기 복수 개의 양자화기 각각에 대응되는 복원된 값(reconstructed value)을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 데이터 인코딩 장치.
  3. 데이터 인코딩 장치에 있어서,
    데이터를 입력 받는 입력부;
    상기 데이터에 복수 개의 양자화기 - 상기 복수 개의 양자화기 각각은 고유의 오프셋 값을 가짐 - 를 적용하여 상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 획득하는 양자화부;
    상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 이용하여 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 양자화기 결정부; 및
    상기 결정된 양자화기에 대응되는 양자화된 계수 및 상기 결정된 양자화기의 오프셋 정보를 결합하여 데이터 스트림을 생성하는 다중화부를 포함하고,
    상기 복수 개의 양자화기의 양자화 구간의 크기는 동일하며 상기 복수 개의 양자화기의 오프셋(offset) 값은 서로 다른 값을 가지는 데이터 인코딩 장치.
  4. 제3항에 있어서,
    상기 양자화기 결정부는,
    상기 복수 개의 양자화기 각각에 대응되는 양자화된 계수를 역양자화하여 상기 복수 개의 양자화기 각각에 대응되는 복원된 값을 획득하고, 상기 복원된 값과 상기 데이터 간의 오차에 따라 상기 복수 개의 양자화기 중에서 하나의 양자화기를 결정하는 데이터 인코딩 장치.
  5. 데이터 디코딩 장치에 있어서,
    데이터 스트림으로부터 양자화된 계수 및 양자화기에 대응하는 구분자를 분리하는(de-multiplexing) 역다중화부;
    상기 구분자를 이용하여 복수 개의 역양자화기 - 상기 복수 개의 양자화기 각각은 고유의 오프셋 값을 가짐 - 중에서 하나의 역양자화기를 결정하고, 상기 결정된 역양자화기에 상기 양자화된 계수를 적용하여 복원된 데이터를 획득하는 역양자화부; 및
    상기 복원된 데이터를 출력하는 출력부를 포함하고,
    상기 복수 개의 역양자화기 각각의 양자화 구간의 크기는 동일하며 상기 복수 개의 역양자화기의 오프셋 값은 서로 다른 값을 가지는 데이터 디코딩 장치.
  6. 제5항에 있어서,
    상기 데이터 스트림에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우, 상기 역양자화부는 상기 소정의 블록 내의 복수 개의 데이터에 동일한 역양자화기를 적용하는 데이터 디코딩 장치.
  7. 제6항에 있어서,
    상기 구분자는 상기 소정의 블록 단위로 결정된 데이터 디코딩 장치.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 복원된 데이터는 현재(current) 데이터와 예측(predictive) 데이터의 차이 값인 데이터 디코딩 장치.
  9. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 역다중화부는 상기 결정된 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 분리하고,
    상기 역양자화부는 상기 결정된 역양자화기에 상기 양자화된 계수를 적용하여 복원된 데이터를 획득하는 경우, 상기 결정된 역양자화기에 상기 스케일링 정보 및 상기 양자화된 계수를 적용하여 복원된 데이터를 획득하는 데이터 디코딩 장치.
  10. 데이터 디코딩 장치에 있어서,
    데이터 스트림으로부터 양자화된 계수 및 양자화기의 오프셋 정보를 분리하는 역다중화부;
    상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된 데이터를 획득하는 역양자화부; 및
    상기 복원된 데이터를 출력하는 출력부를 포함하는 데이터 디코딩 장치.
  11. 제10항에 있어서,
    상기 데이터 스트림은 소정의 블록 단위로 인코딩된 데이터가 포함되고, 상기 오프셋 정보는 상기 소정의 블록 단위로 결정된 데이터 디코딩 장치.
  12. 제10항에 있어서,
    상기 역양자화부는 블록 단위로 인코딩된 데이터를 디코딩하기 위한 복수 개의 역양자화기를 포함하고,
    상기 역양자화부는 상기 복수 개의 역양자화기에 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 상기 복원된 데이터를 획득하는 데이터 디코딩 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 역양자화부는,
    상기 오프셋 정보를 이용하여 상기 역양자화부에 포함된 역양자화기의 오프셋 값을 조정하고, 상기 양자화된 계수를 상기 오프셋 값이 조정된 상기 역양자화기에 적용하여 상기 복원된 데이터를 획득하는 데이터 디코딩 장치.
  14. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 역양자화부는,
    상기 오프셋 정보를 이용하여 상기 양자화된 계수를 조절하고, 상기 조절된 양자화된 계수를 상기 역양자화부에 포함된 역양자화기에 적용하여 상기 복원된 데이터를 획득하는 데이터 디코딩 장치.
  15. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 역다중화부는 역양자화기의 양자화 구간의 크기를 조절하기 위한 스케일링 정보를 더 분리하고,
    상기 역양자화부는 상기 스케일링 정보 및 상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된 데이터를 획득하는 데이터 디코딩 장치.
  16. 데이터 디코딩 장치의 데이터 디코딩 방법에 있어서,
    데이터 스트림으로부터 양자화된 계수 및 양자화기에 대응하는 구분자를 분리하는 단계;
    상기 구분자를 이용하여 복수 개의 역양자화기 - 상기 복수 개의 양자화기 각각은 고유의 오프셋 값을 가짐 - 중에서 하나의 역양자화기를 결정하는 단계;
    상기 결정된 역양자화기에 상기 양자화된 계수를 적용하여 복원된 데이터를 획득하는 단계; 및
    상기 복원된 데이터를 출력하는 단계를 포함하고,
    상기 복수 개의 역양자화기의 양자화 구간의 크기는 동일하며 상기 복수 개의 역양자화기의 오프셋 값은 서로 다른 값을 가지는 데이터 디코딩 방법.
  17. 제16항에 있어서,
    상기 데이터 스트림에 소정의 블록 단위로 인코딩된 데이터가 포함된 경우, 상기 소정의 블록 내의 복수 개의 데이터에 동일한 역양자화기를 적용하는 데이터 디코딩 방법.
  18. 데이터 디코딩 방법에 있어서,
    데이터 스트림으로부터 양자화 계수 및 양자화기의 오프셋 정보를 분리하는 단계;
    상기 오프셋 정보를 적용하여 상기 양자화된 계수를 역양자화하고, 복원된(reconstructed) 데이터를 획득하는 단계; 및
    상기 복원된 데이터를 출력하는 출력하는 단계를 포함하는 데이터 디코딩 방법.
  19. 제18항에 있어서,
    상기 데이터 스트림은 소정의 블록 단위로 인코딩된 데이터가 포함되고, 상기 오프셋 정보는 상기 소정의 블록 단위로 결정된 것인 데이터 디코딩 방법.
KR1020100057374A 2010-06-17 2010-06-17 데이터 인코딩 및 디코딩 방법 및 장치 KR101668093B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100057374A KR101668093B1 (ko) 2010-06-17 2010-06-17 데이터 인코딩 및 디코딩 방법 및 장치
US13/100,494 US8525706B2 (en) 2010-06-17 2011-05-04 Method and apparatus for encoding and decoding data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100057374A KR101668093B1 (ko) 2010-06-17 2010-06-17 데이터 인코딩 및 디코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110137436A KR20110137436A (ko) 2011-12-23
KR101668093B1 true KR101668093B1 (ko) 2016-10-21

Family

ID=45328141

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100057374A KR101668093B1 (ko) 2010-06-17 2010-06-17 데이터 인코딩 및 디코딩 방법 및 장치

Country Status (2)

Country Link
US (1) US8525706B2 (ko)
KR (1) KR101668093B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10271052B2 (en) * 2014-03-14 2019-04-23 Qualcomm Incorporated Universal color-space inverse transform coding
US10225561B2 (en) * 2015-10-08 2019-03-05 Mediatek Inc. Method and apparatus for syntax signaling in image and video compression
US11095896B2 (en) * 2017-10-12 2021-08-17 Qualcomm Incorporated Video coding with content adaptive spatially varying quantization
TWI726822B (zh) 2019-10-08 2021-05-01 創未來科技股份有限公司 訊號轉換裝置
WO2021263251A1 (en) * 2021-02-19 2021-12-30 Innopeak Technology, Inc. State transition for dependent quantization in video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100262206B1 (ko) 1996-01-10 2000-07-15 가네꼬 히사시 오디오신호에대한인코딩시스템및디코딩시스템
US20040064310A1 (en) 2001-05-07 2004-04-01 Yutaka Banba Sub-band adaptive differential pulse code modulation/encoding apparatus, sub-band adaptive differential pulse code modulation/encoding method, wireless transmission system, sub-band adaptive differential pulse code modulation/decoding apparatus, sub-band adaptive differential pulse code modulation/decoding method, and wirel

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3013876B2 (ja) 1995-01-31 2000-02-28 日本ビクター株式会社 変換符号化装置
JP3255022B2 (ja) * 1996-07-01 2002-02-12 日本電気株式会社 適応変換符号化方式および適応変換復号方式
US20020049586A1 (en) * 2000-09-11 2002-04-25 Kousuke Nishio Audio encoder, audio decoder, and broadcasting system
JP3900000B2 (ja) * 2002-05-07 2007-03-28 ソニー株式会社 符号化方法及び装置、復号方法及び装置、並びにプログラム
JP4876574B2 (ja) * 2005-12-26 2012-02-15 ソニー株式会社 信号符号化装置及び方法、信号復号装置及び方法、並びにプログラム及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100262206B1 (ko) 1996-01-10 2000-07-15 가네꼬 히사시 오디오신호에대한인코딩시스템및디코딩시스템
US20040064310A1 (en) 2001-05-07 2004-04-01 Yutaka Banba Sub-band adaptive differential pulse code modulation/encoding apparatus, sub-band adaptive differential pulse code modulation/encoding method, wireless transmission system, sub-band adaptive differential pulse code modulation/decoding apparatus, sub-band adaptive differential pulse code modulation/decoding method, and wirel

Also Published As

Publication number Publication date
US20110309958A1 (en) 2011-12-22
KR20110137436A (ko) 2011-12-23
US8525706B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
US9167273B2 (en) Video encoding apparatus and a video decoding apparatus
KR101428487B1 (ko) 멀티 채널 부호화 및 복호화 방법 및 장치
US8818539B2 (en) Audio encoding device, audio encoding method, and video transmission device
KR102140388B1 (ko) 복호 장치, 복호 방법, 및 기록 매체
KR101668093B1 (ko) 데이터 인코딩 및 디코딩 방법 및 장치
US8300959B2 (en) Transport stream structure of image data having additional information inserted, and method and apparatus for transmission and reception thereof
KR20150066565A (ko) 감소된 복잡성 변환기 snr 계산
JP2023076610A (ja) 音場の高次アンビソニックス表現を符号化するために必要とされるサイド情報の符号化を改善する方法および装置
EP1310943B1 (en) Speech coding apparatus, speech decoding apparatus and speech coding/decoding method
CN108701466B (zh) 使用预测器模型的信号编码器、解码器和方法
KR101642965B1 (ko) 비트 심도 감소를 이용한 깊이 영상 처리 장치 및 방법
WO2016052836A1 (ko) 향상된 예측 필터를 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2014196113A1 (ja) 時系列データ符号化装置、方法およびプログラム、並びに時系列データ再符号化装置、方法およびプログラム
AU2019202533B2 (en) Dynamic Image Decoding Device
AU2020223783B2 (en) Dynamic Image Decoding Device
JP5724338B2 (ja) 符号化装置および符号化方法、復号装置および復号方法、並びにプログラム
CA3048386C (en) Video encoding apparatus, video decoding apparatus and related methods
JP2008268792A (ja) オーディオ信号符号化装置およびそのビットレート変換装置
KR20150100232A (ko) 인코딩 방법 및 그 시스템

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
FPAY Annual fee payment

Payment date: 20190927

Year of fee payment: 4