KR100801326B1 - 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치 - Google Patents

케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치 Download PDF

Info

Publication number
KR100801326B1
KR100801326B1 KR1020060073129A KR20060073129A KR100801326B1 KR 100801326 B1 KR100801326 B1 KR 100801326B1 KR 1020060073129 A KR1020060073129 A KR 1020060073129A KR 20060073129 A KR20060073129 A KR 20060073129A KR 100801326 B1 KR100801326 B1 KR 100801326B1
Authority
KR
South Korea
Prior art keywords
value
bit
log base
input value
binary input
Prior art date
Application number
KR1020060073129A
Other languages
English (en)
Other versions
KR20080012088A (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 KR1020060073129A priority Critical patent/KR100801326B1/ko
Publication of KR20080012088A publication Critical patent/KR20080012088A/ko
Application granted granted Critical
Publication of KR100801326B1 publication Critical patent/KR100801326B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Abstract

로그 베이스 2 연산 처리시 소요되는 클럭 사이클을 줄일 수 있는 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법은 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계와, K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 포함한다. 로그 베이스 2 연산시 입력 값에 비례적으로 클럭 사이클이 소요되는 것이 아니라 어떠한 입력 값을 갖더라도 일정한 수의 클럭 사이클이 소요되므로 로그 베이스 2 연산 처리시 연산량을 크게 줄일 수 있다.

Description

케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록 매체 및 로그 베이스 2 연산 장치{METHOD OF PERFORMING LOG BASE 2 OPERATION IN K-BIT MICROPROCESSOR, SCALE FACTOR DECODING METHOD USING THE SAME, RECORD MEDIA RECORED PROGRAM FOR REALIZING THE SAME, AND APPARATUS FOR PERFORMING LOG BASE 2 OPERATION}
도 1은 일반 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서도이다.
도 2는 32-비트 RISC에서 입력 정수값에 대한 이진수로 표현된 코드와 CLZ의 값을 나타내는 도표이다.
도 3은 본 발명의 일실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 반올림을 적용하는 경우의 로그 베이스 2 연산 방법을 설명하는 순서도이다.
도 5는 32-비트 RISC에서 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다.
도 6은 본 발명의 일실시예에 따른 K-비트 RISC에서의 로그 베이스 2 연산 장치를 나타내는 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
610 : CLZ 처리부 620 : 연산부
본 발명은 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 관한 것으로, 더욱 상세하게는 로그 베이스 2 연산 처리시 소요되는 클럭 사이클을 줄일 수 있는 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 관한 것이다.
디지털 신호처리 분야에서는 수학적인 모델링 및 기타 초월 함수(log, exp, cos, sin 등)를 자주 이용한다. 그 중에서도 로그 연산 방법 중의 한 가지인 로그 베이스 2 (log2) 연산은 디지털 신호 처리 분야 중 스케일 펙터 디코딩(scale factor decoding) 등에서 사용된다.
로그 베이스 2 연산은 예를 들어 MP3(MPEG1 Audio layer-3) 파일 디코딩 또는 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩하는 경우에 사용된다.
스케일 펙터 처리 과정은 매 디코딩시마다 처리되는 과정으로서 연산량 부분에서도 약 15% 정도의 많은 점유율을 차지한다.
일반 디지털 신호 처리에서는 로그 베이스 2(log2)를 연산하기 위해 일반적으로 다음과 C 언어로된 소스 코드를 사용하여 프로그래밍한다.
[소스 코드 1]
int LOG2_Floor(int i)
{
int iLog2 = 0; 초기값 설정
while (((int)i >> iLog2) > 1) ; >>는 우측 쉬프트로서 ÷2 의미
iLog2++; iLog2를 1증가
return iLog2; iLog2값을 리턴
}
[소스 코드 2]
int LOG2_Ceil(int i)
{
int iLog2 = 0;
while (((int)1 << iLog2) > i); <<는 좌측 쉬프트로서 ×2 의미
iLog2++;
return iLog2;
}
예를 들어, log23을 연산하고자 하는 경우, 입력 i = 3 (십진수) = 0b11(이진 수)로 놓으면, 출력 값 iLog2는 소스 코드 1의 LOG2_Floor()를 사용하는 경우는 log23의 값(1.584…)에서 소수점이하값을 잘라낸 1이 얻어지고, 출력 값 iLog2는 소스 코드 2의 LOG2_Ceil()를 사용하는 경우는 log23의 값(1.584…)에 소수점값이 있는 경우 반올림하여 2가 얻어진다.
또한, 입력 i = 536870912 (십진수) = 0x20000000(16진수) = 0b100000000000000000000000000000(2진수)인 경우 출력 값 iLog2는 소스 코드 1의 LOG2_Floor()를 사용하는 경우와 소스 코드 2의 LOG2_Ceil()를 사용하는 경우 모두 29로 동일하다.
또한, 입력 i = 536871912(십진수) = 0x 200003E8(16진수) = 0b100000000000000000001111101000(2진수)인 경우 출력 값은 소스 코드 1의 LOG2_Floor()를 사용하는 경우는 29 이고, 소스 코드 2의 LOG2_Ceil()를 사용하는 경우는 30이다.
소스 코드 1 및 소스 코드 2를 실제로 32-bit RISC(Reduced Instruction Set Computer)인 ARM9E에서 수행한 경우 아래 소스 코드 3 및 소스 4의 어셈블러로 각각 컴파일 된다. 아래 소스 코드 3 및 4는 아뮬레이터(ARMULATOR)에서 크로스-어셈(CROSS-ASM)으로 분석한 코드이다.
[소스 코드 3]
[LOG2_Floor() 동작]
a1) MOV r1, r0 ; load input i
b1) MOV r0, #0 ; load 0
Go_to
c1) MOV r2, r1, ASR r0 ; i >> iLog2
d1) CMP r2, #1 ; if((i >> iLog2) > 1) (비교)
e1) ADDGT r0, r0, #1 ; iLog2++
f1) BGT Go_to ; jump to Go_to (분기)
g1) BX r14 ; return iLog2
[소스 코드 4]
[LOG2_Ceil() 동작]
a2) MOV r2, r0 ; load input i
b2) MOV r0, #0 ; load 0
c2) MOV r1, #1 ; load 1
Go_to
d2) MOV r3, r1, LSL r0 ; 1 << iLog2
e2) CMP r3, r2 ; if((1 << iLog2) < i) (비교)
f2) ADDLT r0, r0, #1 ; iLog2++
g2) BLT Go_to ; jump to Go_to (분기)
h2) BX r14 ; return iLog2
도 1은 일반 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서 도이다. 초기화 단계(10)는 입력값을 초기화하는 단계로서 상기 소스 코드 3의 a1) 및 b1) 단계를 포함하고, 소스 코드 4의 a2), b2) 및 c2) 단계를 포함한다. 비교 및 분기 처리 단계(단계 12)는 상기 소스 코드 3의 c1), d1), e1) 및 f1) 단계를 포함하고, 소스 코드 4의 d2), e2), f2) 및 g2) 단계를 포함한다.
상기와 같은 소스 코드 3 및 4에서의 동작을 32-bit RISC인 ARM9E에서 수행하는 경우 소요되는 사이클(cycle) 수는 다음과 같다.
먼저, 소스 코드 3에 나타난 LOG2_Floor()를 사용하는 경우(여기서, N은 2N에서의 지수 N을 의미함)는 다음의 사이클이 소요된다.
Step1) 입력 값 및 기타 초기화에 필요한 사이클은 7 사이클
Step2) 비교 및 분기에 필요한 7 사이클
Step3) 최종 소요 사이클 = 7 + 7*(N+1) (모든 경우)
그 다음, 소스 코드 4에 나타난 LOG2_Ceil()를 사용하는 경우(여기서, N은 2N에서의 지수 N을 의미함)는 다음의 사이클이 소요된다.
Step1) 입력 값 및 기타 초기화에 필요한 사이클은 7+1=8 사이클(소스 코드 4의 반올림 역할을 수행하는 "MOV r1, #1" 코드에 의해 1사이클 추가됨)
Step2) 비교 및 분기에 필요한 7 사이클
Step3) 최종 소요 사이클 = 8 + 7*(N+1) (입력값(i)가 2의 거듭제곱인 경우)
최종 소요 사이클 = 8 + 7*(N+2) (입력값(i)가 2의 거듭제곱이 아닌 경우)
여기서 비교와 분기의 횟수는 N에 비례하게 되므로 비교와 분기에 소요되는 총 사이클수는 입력값의 크기와 관계있는 N에 비례하게 된다.
따라서, 로그 베이스 2 연산을 종래의 WMA(Window Media Audio) 디코더의 프로페셔널 버전 스펙(professional version specification) 등에 개시된 바와 같이 비교/분기 루틴을 사용하여 구현하는 경우 필요한 비교 및 분기 루틴의 횟수에 비례하여 로그 베이스 2 연산에 소요되는 총 사이클 수가 증가하며, 입력값의 크기에 따라서 소요되는 총 사이클 수가 크게 증가하게된다.
그 결과, 로그 베이스 2 연산을 이용하여 스케일 팩터 디코딩 연산을 수행하는 WMA 디코딩 또는 MP3(MPEG1 Audio layer-3) 디코딩시 연산에 소요되는 사이클 수가 증가되어 연산 시간이 증가되므로 효율적인 디코딩을 수행할 수 없는 문제점이 있다.
따라서, 본 발명의 제1 목적은 K-비트(K는 자연수) 마이크로 프로세서에서 로그 베이스 2 연산 수행시 소요되는 클럭 사이클 수를 줄일 수 있는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 방법 및 이를 수행하는 프로그램을 기록한 기록 매체를 제공하는 것이다.
본 발명의 제2 목적은 상기 로그 베이스 2 연산 방법을 이용한 스케일 팩터 디코딩 방법 및 이를 수행하는 프로그램을 기록한 기록 매체를 제공하는 것이다.
또한, 본 발명의 제3 목적은 K-비트(K는 자연수) 마이크로 프로세서에서 로 그 베이스 2 연산 수행시 소요되는 클럭 사이클 수를 줄일 수 있는 로그 베이스 2 연산 장치를 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법은 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; 및 K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 포함한다. 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제1 이진값을 가지는 경우 K-1와 상기 선행 제로 카운트 연산값과의 차이값이 될 수 있다. 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제2 이진값을 가지는 경우 K와 상기 선행 제로 카운트 연산값과의 차이값이 될 수 있다. 상기 로그 베이스 2 연산 수행 방법은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용될 수 있다. 상기 로그 베이스 2 연산 수행 방법은 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩에 사용될 수 있다. 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)가 될 수 있다.
본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코 딩 방법은 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및 상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 포함한다.
본 발명의 제3 목적을 달성하기 위한 본 발명의 일측면에 따른 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치는 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 선행 제로 카운트 처리부; 및 K-1과 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 연산부를 포함한다. 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)가 될 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르 게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하 게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
종래의 디지털 신호 처리시 로그 베이스 2 (log2) 연산은 비교 루틴 및 분기 루틴을 포함하므로 많은 클럭 사이클을 필요로 한다. 본 발명에서는 디지털 신호 처리시 로그 베이스 2 (log2) 연산에 소요되는 클럭 사이클을 효율적으로 줄이기 위해 선행 제로 카운트(CLZ; Count Leading Zero) 연산을 이용한다. 예를 들어, 선행 제로 카운트(CLZ) 연산은 ARM9 시리즈 중 32-비트 RISC인 ARMv5E에서 제공되는 선행 제로 카운트(CLZ) 명령어를 이용하여 구현할 수 있다.
CLZ 연산은 최상위 비트에서 처음으로 1이 나온 비트(즉, 첫번째 유효 숫자) 사이에 0이 몇 개나 있는가를 카운트한다. 예를 들어, 다음과 같은 방식으로 동작된다.
PRE r1 = 0b 0000 0000 0000 0000 0000 0000 0001 0000
CLZ r0, r1
POST r0 = 27
상기 예를 살펴보면, 최상위 비트로부터 0이 27번 나온 후 처음으로 1이 나왔으므로 CLZ 연산 결과값 r0에는 27이 리턴된다. CLZ 연산은 첫번째 유효 숫자 앞에 0이 몇 개나 있는지 센다. 32-비트 RISC에서 사용되는 선행 제로 카운트 명령어에서는 첫번째 유효 숫자 앞에 0이 만약 한 비트도 없다면 32를 리턴한다.
도 2는 32-비트 RISC에서 입력 정수값에 대한 이진수로 표현된 코드와 CLZ의 값을 나타내는 도표이다. 도 2의 'x'는 '1' 또는 '0' 둘 중의 임의의 값을 가질 수 있다.
CLZ 명령어는 그 수를 정규화해야 하는 루틴에서 매우 유용하게 사용할 수 있다. 정수(integer)의 가장 중요한 비트인 첫번째 유효 숫자(leading one)이 알려진 비트 위치에 있을 때, 상기 정수는 "정규화되었다"고 한다. 예를 들어 정수 9를 이진값으로 표현하면 0b00001001이 되는데, 여기서 유효 숫자는 1001이고, 맨 왼에 있는 1이 바로 첫번째 유효 숫자(leading one)이다.
뉴톤-랩슨(Newton-Raphson) 나눗셈을 구현하거나 부동소수점 형식으로의 변환을 위해서는 정규화가 필요하다. 정규화는 알고리즘을 계산하거나 몇몇 스케줄링 루틴에서 사용되는 우선 순위 디코더에서도 유용하게 사용된다. 상기와 같은 어플리케이션에서는 정규화값과 정규화 값에 도달하는 데 필요한 시프트 값을 둘 다 알아야 한다.
CLZ 값은 정수를 정규화하기 위해 ARMv5E와 같은 32-비트 RISC에서는 첫 번째 유효 숫자가 31번째 비트에 위치하도록 왼쪽으로 시프트 할 때의 시프트할 갯수로 사용된다.
도 3은 본 발명의 일실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서도이고, 도 4는 본 발명의 다른 실시예에 따른 반올림을 적용하는 경우의 로그 베이스 2 연산 방법을 설명하는 순서도이다. 도 3 및 도 4는 K-비트 RISC(Reduced Instruction Set Computer)를 사용한 디지털 신호 처리시 로그 베이스 2 연산 방법을 예로 들어 설명한다. 여기서, K값은 예를 들어 32가 될 수 있다.
도 3을 참조하면, K-비트 입력값 (i)를 로드(load)한다(단계 301).
상기 입력값(i)의 최상위 비트에서 처음으로 1이 나온 비트를 나타내는 첫번째 유효 숫자 비트(leading one) 사이의 0의 개수를 카운트한다(단계 303).
그다음, (K-1)와 상기 0의 개수간의 차이값을 구한다(단계 305). 상기 (K-1)과 상기 0의 개수간의 차이값이 상기 입력값 (i)에 대한 log2i값이다.
도 4를 참조하면, K-비트 입력값 (i)를 로드(load)하고(단계 401), 상기 입력값(i)의 최상위 비트에서 처음으로 1이 나온 비트를 나타내는 첫번째 유효 숫자 비트(leading one) 사이의 0의 개수를 카운트한 후(단계 403), K와 상기 0의 개수와의 차이값을 산출한다(단계 405). 도 4는 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우에 반올림을 적용하여 1을 더해주므로 (K-1)와 상기 0의 개수와의 차이값을 구하는 대신 K와 상기 0의 개수간의 차이값을 구한다. 즉, 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우 K와 상기 0의 개수간의 차이값이 상기 입력값 (i)에 대해 반올림을 적용한 log2i값이다.
도 3의 선행 제로 카운트를 이용한 로그 베이스 2 연산 방법은 아래와 같이 인라인 어셈 함수로 구현할 수 있다.
[소스 코드 5]
__inline int LOG2_Floor(int i)
{
int iLog2;
__asm ; asm 이하의 { }에 포함된 코드는 어셈블리 코드임을 의미함
{
CLZ iLog2, i
}
return (31 - iLog2);
}
도 4의 선행 제로 카운트를 이용한 로그 베이스 2 연산 방법은 아래와 같이 인라인 어셈 함수로 구현할 수 있다.
[소스 코드 6]
__inline int LOG2_Ceil(int i)
{
int iLog2;
__asm ; asm 이하의 { }에 포함된 코드는 어셈블리 코드임을 의미함
{
CLZ iLog2, i
}
return (32 - iLog2);
}
소스 코드 5 및 6을 참조하면, 입력값 i가 입력되고, 선행 제로 카운트(CLZ) 처리를 통해 iLog2에 0의 개수가 저장된다. 선행 제로 카운트(CLZ) 값을 이용하여 소스 코드 5에 나타난 바와 같이 결과값(31 - iLog2)을 리턴 처리를 해 주면 원하는 로그 베이스2 연산 결과 (log2i)가 나온다. 소스 코드 6에서는 소정의 플래그(flag) 비트에 저장된 이진값이 LOG2_Ceil()함수를 실행하도록 지시하는 경우 반올림 처리를 위해 결과값(32 - iLog2)을 리턴 처리해주어 반올림 처리된 로그 베이스 2 연산 결과 (log2i)를 얻는다. 예를 들어, 상기 사용자에 의해 미리 설정된 플래그 비트의 이진값이 0인 경우는 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지지 않는 경우를 처리하는 LOG2_Floor()함수를 실행하는 경우를 나타내고, 상기 플래그 비트의 이진값이 1인 경우는 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우를 처리하는 LOG2_Ceil()함수를 실행하는 경우를 나타낼 수 있다.
종래의 도 1의 로그 베이스 2 연산 방법에 따르면 비교/분기의 횟수가 입력 값(i)에 비례하기 때문에 입력 값(i)에 따라 비례적으로 [7 + 7*(N+1)] 또는 [8 + 7*(N+1)] 또는 [8 + 7*(N+2)] 사이클을 소요하게 된다.
도 3 및 도 4의 본 발명의 실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법은 종래의 도 1의 로그 베이스 2 연산 방법과 비교하면, 기존의 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)가 없어지고, 반복적인 루프가 없이 직접 연산 처리가 되어 로그 베이스 2 연산 결과값을 산출할 수 있다.
본 발명의 실시예들에 따는 로그 베이스 2 연산 방법을 32-bit RISC에 적용 할 경우에 CLZ 연산을 이용하여 비교/분기 과정을 제거함으로써 로그 베이스 2 연산 결과를 도출할 때까지 입력 값의 크기에 상관없이 3 사이클을 소요된다. 왜냐하면, 입력값을 로드(load) 하는데 1 사이클, 선행 제로 카운트(CLZ) 명령어를 수행하는데 1 클럭 사이클, CLZ 처리한 결과값을 리턴 처리하는데 1 클럭 사이클을 소요하기 때문이다.
따라서, 본 발명의 실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 32-비트 RISC등을 이용한 디지털 신호 처리에 적용할 경우 로그 베이스 2 연산에 소요되는 클럭 사이클 수는 비교 루틴의 횟수, 분기 루틴의 횟수 및 입력값의 크기에 무관하게 일정한 값을 가진다. 즉, 본 발명의 실시예들에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법은 종래 입력 값에 비례적으로 클럭 사이클이 소요되는 것이 아니라, 어떠한 입력 값을 갖더라도 일정한 수의 클럭 사이클이 소요된다. 그결과, 로그 베이스 2 연산 처리시 연산량을 크게 줄일 수 있다.
도 5는 32-비트 RISC에서 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다. 도 5는 32-비트 RISC의 일종인 ARM946E-S를 사용하여 측정한 클럭 사이클 수를 나타낸다. N은 2N에서의 지수 N을 의미한다. 도 6은 도 5의 LOG2_Ceil()함수를 적용할 때 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다.
도 5 및 도 6에 도시된 바와 같이, 종래의 로그 베이스 2 연산은 N에 비례적으로 사이클이 증가하지만 제안된 연산은 N과는 상관없이 3 사이클이 소요된다.
도 5는 입력값(i)가 모두 2의 거듭 제곱인 경우만을 도시하였고, 도 6은 입력값(i)가 2의 거듭 제곱인 경우와 거듭 제곱이 아닌 경우를 모두 도시하였다. 도 6을 참조하면, LOG2_Ceil()함수를 적용할 때 입력값(i)가 1, 2, 4, 8, 16, …, 1024 와 같이 2의 거듭 제곱인 경우에는 소요되는 클럭 사이클수는 (8+7*(N+1))이고, 입력값(i)가 3, 5, 6, 7, 9, … 와 같이 2의 거듭 제곱이 아닌 경우에는 소요되는 클럭 사이클수는 (8+7*(N+2))이다.
도 7은 본 발명의 일실시예에 따른 K-비트 RISC에서의 로그 베이스 2 연산 장치를 나타내는 블록도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 로그 베이스 2 연산 장치는 CLZ 처리부(710) 및 연산부(720)을 포함한다.
CLZ 처리부(710)에서는 K-비트 입력값 i를 입력받아 선행 제로 카운트(CLZ) 연산을 수행한다. 구체적으로, CLZ 처리부(710)에서는 K-비트 입력값(i)의 최상위 비트에서 처음으로 1이 나온 비트를 나타내는 첫번째 유효 숫자 비트(leading one) 사이의 0의 개수를 카운트하여 CLZ 결과값을 출력한다.
연산부(720)에서는 CLZ 결과값을 입력받아 (K-1)과 CLZ 결과값과의 차이값을 산출한다. 즉, CLZ 결과값을 입력받아 (K-1)에서 CLZ 결과값을 빼준다. 또는, 연산부(720)에서는 사용자에 의해 미리 설정된 플래그(flag) 비트에 저장된 이진값이 소정값을 가지는 경우 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우 반올림을 적용하기 위하여 CLZ 결과값을 입력받아 K와 CLZ 결과값간의 차이값을 구한다. 예를 들어, 플래그(flag) 비트에 저장된 이진값이 1인 경우 상기 반올림을 적용하기 위하여 CLZ 결과값을 입력받아 K와 CLZ 결과값간의 차이값을 구할 수 있다.
로그 베이스 2 연산 장치는 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우에는 반올림을 적용하기 위하여 상기 (K-1)과 CLZ 결과값과의 차이값에 1을 가산하는 가산기(730)을 더 포함할 수도 있다.
본 발명의 실시예들에 따른 로그 베이스 2 연산은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용될 수 있다. MP3 디코더는 파서(parser), 허프만 디코딩(Huffman decoding)부, 역양자화(Inverse Quantization)부 및 IMDCT를 포함한다. 구체적으로, MP3 파일의 디코딩 과정은 먼저 외부로부터 입력되는 MP3 형식의 비트스트림을 입력버퍼에 담고, 입력버퍼의 데이터를 이용하여 스케일 팩터값을 읽고, 사이드 정보(side information) 및 스케일 팩터에 의해 허프만 디코딩, 역양자화 및 주파수 영역에서의 시간 영역으로의 변환(IMDCT)등을 수행한 다음 최종 오디오 데이터를 생성한다.
MP3 방식에서는 오디오 대역 전체에 대하여 양자화를 실시하지 않고 스케일 팩터 밴드(scalefactor band)라는 주파수 대역으로 나누어 영역 데이터를 스케일링하여 원래의 오디오 신호를 복구한다. 스케일 팩터는 밴드 단위로 나뉘어져 적용된 다. 스케일 팩터 복호부에서 사이드 정보로부터 역양자화의 스케일이 복호된다. 상기 역양자화(Inverse Quantization) 과정에서 스케일 팩터 디코딩을 하기 위한 사전 과정으로서 로그 베이스 2 연산을 적용하여 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하고, 쉬프터에서 메모리에 저장된 소정 개수의 스케일 팩터를 상기 로그 베이스 2 연산 결과값(스케일 팩터의 계수값)에 상응하는 횟수만큼 좌측으로 쉬프트 하여 원하는 다수의 스케일 팩터를 얻음으로써 스케일 팩터 디코딩을 수행한다.
하기의 소스 코드 7은 MP3 디코딩시 스케일 펙터 선택 정보(scfsi, scalefactor selection information)처리부에서 사용되는 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하는 루틴의 슈도-코드(Pseudo-Code)를 나타낸다.
[소스 코드 7]
Int mp3_Scfsi(A,B,C)
{
for i=0 to A do ; A는 입력인자로 Spectrum 값의 수
xr_sum = pow(abs(xr(i))); Spectrum을 이용하여 energy 계산
en_tot = log2_floor(xr_sum); total energy를 구함
for j=0 to B do ; B는 입력인자로 subband(sb) 수
top = lbl(j)+bw(j)-1; bandwidth별로 계산하기 위함
for k=lbl(j) to top do
energy = pow(abs(xr(i))); 각 bandwidth별 energy 계산
en(j) = log2_floor(energy); 각 band별 energy 계산
xm(j) = log2_floor(C(j)); 각 band 별 가용 가능한 왜곡(distortion) 값을 계산
}
상기 소스 코드 7은 스케일 펙터 디코딩을 하기 위한 사전 정보를 구하는 단계로서 알고리즘 변경에 의해 log2_floor 또는 log2_ceil을 사용할 수 있다.
또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 WMA 디코딩시 스케일 팩터 디코딩부에서 사용될 수 있다. 하기의 소스 코드 8은 WMA 디코딩시 스케일 펙터 처리 부에서 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하는 루틴의 슈도-코드(Pseudo-Code)를 나타낸다.
[소스 코드 8]
Int PreScaleCoeff(A,B,C,D)
{
for i=0 to A do ; A는 입력인자로 가변임
if(B==1)
maxQuantStep = m_qfltMaxQuantStep; 양자화 스텝의 최대값 선택
ctMaxVal >>= maxQuantStep; coefficient에 영향 주는 최대값 결정
cLeftShiftBits = C- LOG2_Ceil(ctMaxVal); ctMaxVal은 1부터 234까 지의 정수임. LOG2_Ceil(ctMaxVal) 결과값의 범위는 0~34임. C는 입력인자로 사용 가능한 계수의 최대치로서 1부터 30까지의 정수임. cLeftShiftBits은 계수를 생성시켜주는 쉬프트(shift)값임.
if (cLeftShiftBits >0) ; cLeftShiftBits가 양수인 경우의 처리
for j= 0 to iHi do
rgiCoefRecon[j] <<= cLeftShiftBits; scalefactor coefficient를 j개 만큼 cLeftShiftBits를 이용하여 만듦.
else ; cLeftShiftBits가 음수인 경우의 처리
for j= 0 to iHi do
rgiCoefRecon[j] >>= -cLeftShiftBits;
}
또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 WMA 디코딩시 패킷 헤더 디코딩과정에서도 사용될 수 있다. 또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 MP3 디코딩시 파서(parser)에서 패킷 헤더 디코딩하는 과정에서도 사용될 수 있다.
상기와 같은 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법, 상기 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법 및 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치에 따르면, 종래의 로그 베이스 2 연산 방법에서 사용되던 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)를 사용하지 않고 CLZ 연산을 이용하여 입력값에 대한 로그 베이스 2 연산 결과값을 산출할 수 있다.
따라서, 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)를 사용하지 않고 CLZ 연산을 이용하여 로그 베이스 2 연산 결과를 도출하므로 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법을 32-비트 RISC등에 적용할 경우 로그 베이스 2 연산에 소요되는 클럭 사이클 수는 비교 루틴의 횟수, 분기 루틴의 횟수 및 입력값의 크기에 무관하게 일정한 값을 가진다.
따라서, 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법은 종래 입력 값에 비례적으로 클럭 사이클이 소요되는 것이 아니라 어떠한 입력 값을 갖더라도 일정한 수의 클럭 사이클만이 소요되므로 로그 베이스 2 연산 처리시 연산량을 크게 줄일 수 있다. 특히, 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법을 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩 및 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 적용할 경우 연산량을 크게 줄일 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 있어서,
    K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; 및
    K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  2. 제1항에 있어서, 상기 K-비트 이진 입력값에 대하여 선행 제로 카운트 연산을 수행하는 단계는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫 번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  3. 제1항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제1 이진값을 가지는 경우 K-1와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마 이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  4. 제1항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제2 이진값을 가지는 경우 K와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  5. 제1항에 있어서, 상기 로그 베이스 2 연산 수행 방법은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  6. 제1항에 있어서, 상기 로그 베이스 2 연산 수행 방법은 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  7. 제1항에 있어서, 상기 K-비트 이진 입력값을 로드하는 단계를 더 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  8. 제1항에 있어서, 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.
  9. K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법에 있어서,
    K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계;
    K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및
    상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  10. 제9항에 있어서, 상기 K-비트 이진 입력값에 대하여 선행 제로 카운트 연산을 수행하는 단계는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  11. 제9항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과 값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제1 이진값을 가지는 경우 K-1와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  12. 제9항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제2 이진값을 가지는 경우 K와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  13. 제9항에 있어서, 상기 스케일 팩터 디코딩 방법은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  14. 제9항에 있어서, 상기 스케일 팩터 디코딩 방법은 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.
  15. 로그 베이스 2 연산을 수행하기 위해 K-비트 마이크로 프로세서에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 K-비트(K는 자연수) 마이크로 프로세서에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; 및
    K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 수행하는 프로그램을 기록한 기록 매체.
  16. 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법을 수행하기 위해 K-비트(K는 자연수) 마이크로 프로세서에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 K-비트 마이크로 프로세서에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계;
    K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및
    상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 수행하는 프로그램을 기록한 기록 매체.
  17. K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치에 있어서,
    K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 선행 제로 카운트 처리부; 및
    K-1과 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 연산부를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.
  18. 제17항에 있어서, 상기 선행 제로 카운트 처리부는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.
  19. 제17항에 있어서, 상기 로그 베이스 2 연산 장치는
    미리 설정된 플래그(flag) 비트에 저장된 이진값이 소정의 이진값을 가지는 경우 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값에 1을 가산하는 가산기를 더 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.
  20. 제17항에 있어서, 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.
KR1020060073129A 2006-08-02 2006-08-02 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치 KR100801326B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060073129A KR100801326B1 (ko) 2006-08-02 2006-08-02 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060073129A KR100801326B1 (ko) 2006-08-02 2006-08-02 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치

Publications (2)

Publication Number Publication Date
KR20080012088A KR20080012088A (ko) 2008-02-11
KR100801326B1 true KR100801326B1 (ko) 2008-02-19

Family

ID=39340457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060073129A KR100801326B1 (ko) 2006-08-02 2006-08-02 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치

Country Status (1)

Country Link
KR (1) KR100801326B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4531124A (en) 1980-12-05 1985-07-23 Thomson Csf Device for processing logarithmic signals, and its application to a frequency diversity radar
KR19980014822A (ko) * 1996-08-16 1998-05-25 김광호 로그값 계산회로
US5951629A (en) 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
KR20060081848A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 콘트래스트 확장 기능을 갖는 디스플레이 콘트롤러 및콘트래스트 확장 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4531124A (en) 1980-12-05 1985-07-23 Thomson Csf Device for processing logarithmic signals, and its application to a frequency diversity radar
KR19980014822A (ko) * 1996-08-16 1998-05-25 김광호 로그값 계산회로
US5951629A (en) 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
KR20060081848A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 콘트래스트 확장 기능을 갖는 디스플레이 콘트롤러 및콘트래스트 확장 방법

Also Published As

Publication number Publication date
KR20080012088A (ko) 2008-02-11

Similar Documents

Publication Publication Date Title
EP2159790B1 (en) Audio encoding method, audio decoding method, audio encoding device, audio decoding device, program, and audio encoding/decoding system
TWI397903B (zh) 編碼音訊之節約音量測量技術
JP6490846B2 (ja) 復号装置、及びその方法、プログラム、記録媒体
WO2006054583A1 (ja) オーディオ信号符号化装置および方法
EP2215722A2 (en) Apparatus and method for low complexity combinatorial coding of signals
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
RU2375743C2 (ru) Способ создания представления результата вычисления, линейно зависимого от квадрата значения
KR100771401B1 (ko) 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
KR102615901B1 (ko) 디지털 오디오 신호에서의 차분 데이터
EP1870880A2 (en) Signal processing method, signal processing apparatus and recording medium
US9425820B2 (en) Vector quantization with non-uniform distributions
US8593321B2 (en) Computation apparatus and method, quantization apparatus and method, and program
US20070033024A1 (en) Method and apparatus for encoding audio data
JP2010060989A (ja) 演算装置および方法、量子化装置および方法、オーディオ符号化装置および方法、並びにプログラム
US8332217B2 (en) Fast spectral partitioning for efficient encoding
KR20010042988A (ko) 음성 신호를 디코딩하기 위한 방법 및 장치
WO2000063886A1 (en) Using gain-adaptive quantization and non-uniform symbol lengths for audio coding
KR100801326B1 (ko) 케이-비트 마이크로 프로세서에서의 로그 베이스 2 연산수행 방법, 로그 베이스 2 연산을 이용한 스케일 팩터디코딩 방법, 이를 구현하기 위한 프로그램이 기록된 기록매체 및 로그 베이스 2 연산 장치
US8601039B2 (en) Computation apparatus and method, quantization apparatus and method, and program
KR20060084440A (ko) 오디오 인코딩에서 신속한 코드북 선택 방법
WO2019216187A1 (ja) ピッチ強調装置、その方法、およびプログラム
JP4822816B2 (ja) オーディオ信号符号化装置および方法
US6882976B1 (en) Efficient finite length POW10 calculation for MPEG audio encoding
US6785655B1 (en) Method for independent dynamic range control
Yen et al. An efficient implementation of a low-complexity MP3 algorithm with a stream cipher

Legal Events

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

Payment date: 20130221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 11