KR20080012088A - 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 - Google Patents

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 Download PDF

Info

Publication number
KR20080012088A
KR20080012088A KR1020060073129A KR20060073129A KR20080012088A KR 20080012088 A KR20080012088 A KR 20080012088A KR 1020060073129 A KR1020060073129 A KR 1020060073129A KR 20060073129 A KR20060073129 A KR 20060073129A KR 20080012088 A KR20080012088 A KR 20080012088A
Authority
KR
South Korea
Prior art keywords
value
bit
log base
zero count
input value
Prior art date
Application number
KR1020060073129A
Other languages
Korean (ko)
Other versions
KR100801326B1 (en
Inventor
서정국
Original Assignee
엠텍비젼 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠텍비젼 주식회사 filed Critical 엠텍비젼 주식회사
Priority to KR1020060073129A priority Critical patent/KR100801326B1/en
Publication of KR20080012088A publication Critical patent/KR20080012088A/en
Application granted granted Critical
Publication of KR100801326B1 publication Critical patent/KR100801326B1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A method for performing a log base 2 operation in a K-bit microprocessor, a scale factor decoding method using the same, a recording medium storing a program for the same, and a log base 2 operation device are provided to reduce operation quantity for the log base 2 operation largely through a CLZ(Count Leading Zero) operation by requiring a specific number of clock cycles irrespective of an input value. A CLZ processor(710) calculates a CLZ value by performing the CLZ operation for a K-bit binary input value. An operator(720) outputs a difference value between 'K-1' and the CLZ value as a log base 2 operation result value for the K-bit binary input value. The CLZ processor outputs the number of zeros between the MSB(Most Significant Bit) to a first effective number bit of the K-bit binary input value wherein the first effective number bit represents a bit having '1' at first. An adder(730) adds one to the log base 2 operation result value for the K-bit binary input value when a binary value stored in a predetermined flag bit has a predetermined binary value. The K-bit microprocessor is a 32-bit RISC(Reduced Instruction Set Computer).

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}A method of performing log base 2 operation in a K-bit microprocessor, a scale factor decoding method using log base 2 operation, a recording medium and a log base 2 operation device having a program for implementing the same 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 연산 방법을 설명하는 순서도이다. 1 is a flowchart illustrating a log base 2 calculation method in processing a general digital signal.

도 2는 32-비트 RISC에서 입력 정수값에 대한 이진수로 표현된 코드와 CLZ의 값을 나타내는 도표이다.FIG. 2 is a diagram showing the values of CLZ and code expressed in binary to input integer values in 32-bit RISC.

도 3은 본 발명의 일실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서도이다. 3 is a flowchart illustrating a log base 2 calculation method when processing a digital signal according to an embodiment of the present invention.

도 4는 본 발명의 다른 실시예에 따른 반올림을 적용하는 경우의 로그 베이스 2 연산 방법을 설명하는 순서도이다. 4 is a flowchart illustrating a log base 2 calculation method when rounding is applied according to another embodiment of the present invention.

도 5는 32-비트 RISC에서 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다.FIG. 5 is a diagram comparing clock cycles required when the conventional log base 2 operation method is processed in the 32-bit RISC and the log base 2 operation method according to the present invention.

도 6은 본 발명의 일실시예에 따른 K-비트 RISC에서의 로그 베이스 2 연산 장치를 나타내는 블록도이다. 6 is a block diagram illustrating an apparatus for calculating a log base 2 in a K-bit RISC according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

610 : CLZ 처리부 620 : 연산부610: CLZ processing unit 620: arithmetic unit

본 발명은 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 관한 것으로, 더욱 상세하게는 로그 베이스 2 연산 처리시 소요되는 클럭 사이클을 줄일 수 있는 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 관한 것이다. The present invention relates to a method of performing a log base 2 operation in a K-bit (K is a natural number) microprocessor. More particularly, the present invention relates to a K-bit (K is a natural number), which can reduce a clock cycle required in processing a log base 2 operation. A method for performing log base 2 operations in a microprocessor.

디지털 신호처리 분야에서는 수학적인 모델링 및 기타 초월 함수(log, exp, cos, sin 등)를 자주 이용한다. 그 중에서도 로그 연산 방법 중의 한 가지인 로그 베이스 2 (log2) 연산은 디지털 신호 처리 분야 중 스케일 펙터 디코딩(scale factor decoding) 등에서 사용된다. In the field of digital signal processing, mathematical modeling and other transcendental functions (log, exp, cos, sin, etc.) are often used. Among them, log base 2 (log 2 ), which is one of logarithmic methods, is used in scale factor decoding and the like in the field of digital signal processing.

로그 베이스 2 연산은 예를 들어 MP3(MPEG1 Audio layer-3) 파일 디코딩 또는 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩하는 경우에 사용된다. The log base 2 operation is used in case of scaling factor decoding, for example, in MPEG1 audio layer-3 (MP3) file decoding or window media audio (WMA) decoding.

스케일 펙터 처리 과정은 매 디코딩시마다 처리되는 과정으로서 연산량 부분에서도 약 15% 정도의 많은 점유율을 차지한다. The scale factor processing process is performed at every decoding process and occupies a large share of about 15% in the computational amount.

일반 디지털 신호 처리에서는 로그 베이스 2(log2)를 연산하기 위해 일반적으로 다음과 C 언어로된 소스 코드를 사용하여 프로그래밍한다. In general digital signal processing, to program log base 2 (log 2 ), programming is usually done using the following C source code.

[소스 코드 1][Source code 1]

int LOG2_Floor(int i)int LOG2_Floor (int i)

{{

int iLog2 = 0; 초기값 설정     int iLog2 = 0; Initial value setting

while (((int)i >> iLog2) > 1) ; >>는 우측 쉬프트로서 ÷2 의미      while (((int) i >> iLog2)> 1); >> means ÷ 2 as right shift

iLog2++; iLog2를 1증가          iLog2 ++; iLog2 increased by 1

return iLog2; iLog2값을 리턴      return iLog2; Returns iLog2 Value

} }

[소스 코드 2][Source code 2]

int LOG2_Ceil(int i)  int LOG2_Ceil (int i)

{{

int iLog2 = 0;      int iLog2 = 0;

while (((int)1 << iLog2) > i); <<는 좌측 쉬프트로서 ×2 의미      while (((int) 1 << iLog2)> i); << means × 2 left shift

iLog2++;          iLog2 ++;

return iLog2;      return iLog2;

} }

예를 들어, log23을 연산하고자 하는 경우, 입력 i = 3 (십진수) = 0b11(이진 수)로 놓으면, 출력 값 iLog2는 소스 코드 1의 LOG2_Floor()를 사용하는 경우는 log23의 값(1.584…)에서 소수점이하값을 잘라낸 1이 얻어지고, 출력 값 iLog2는 소스 코드 2의 LOG2_Ceil()를 사용하는 경우는 log23의 값(1.584…)에 소수점값이 있는 경우 반올림하여 2가 얻어진다. For example, if you want to compute log 2 3, you can put input i = 3 (decimal) = 0b11 (binary), and the output value iLog2 will be the value of log 2 3 if you use LOG2_Floor () in source code 1. 1 is obtained by truncating the decimal point value from (1.584…), and the output value iLog2 is rounded up if the value of log 2 3 (1.584…) has a decimal point when LOG2_Ceil () of source code 2 is used. Obtained.

또한, 입력 i = 536870912 (십진수) = 0x20000000(16진수) = 0b100000000000000000000000000000(2진수)인 경우 출력 값 iLog2는 소스 코드 1의 LOG2_Floor()를 사용하는 경우와 소스 코드 2의 LOG2_Ceil()를 사용하는 경우 모두 29로 동일하다.Also, if the input i = 536870912 (decimal) = 0x20000000 (hexadecimal) = 0b100000000000000000000000000000 (binary), the output value iLog2 uses LOG2_Floor () in source code 1 and LOG2_Ceil () in source code 2 All 29 are the same.

또한, 입력 i = 536871912(십진수) = 0x 200003E8(16진수) = 0b100000000000000000001111101000(2진수)인 경우 출력 값은 소스 코드 1의 LOG2_Floor()를 사용하는 경우는 29 이고, 소스 코드 2의 LOG2_Ceil()를 사용하는 경우는 30이다. Also, if input i = 536871912 (decimal) = 0x 200003E8 (hexadecimal) = 0b100000000000000000001111101000 (binary), the output value is 29 when using LOG2_Floor () in source code 1, and LOG2_Ceil () in source code 2 30 is used.

소스 코드 1 및 소스 코드 2를 실제로 32-bit RISC(Reduced Instruction Set Computer)인 ARM9E에서 수행한 경우 아래 소스 코드 3 및 소스 4의 어셈블러로 각각 컴파일 된다. 아래 소스 코드 3 및 4는 아뮬레이터(ARMULATOR)에서 크로스-어셈(CROSS-ASM)으로 분석한 코드이다. If source code 1 and source code 2 were actually run on ARM9E, a 32-bit Reduced Instruction Set Computer (RISC), they are compiled into assemblers of source code 3 and source 4, respectively. Source code 3 and 4 below is the code analyzed by CROSS-ASM in the ARMULATOR.

[소스 코드 3] [Source code 3]

[LOG2_Floor() 동작][LOG2_Floor () behavior]

a1) MOV r1, r0 ; load input i    a1) MOV r1, r0; load input i

b1) MOV r0, #0 ; load 0    b1) MOV r0, # 0; load 0

Go_toGo_to

c1) MOV r2, r1, ASR r0 ; i >> iLog2    c1) MOV r2, r1, ASR r0; i >> iLog2

d1) CMP r2, #1 ; if((i >> iLog2) > 1) (비교)    d1) CMP r2, # 1; if ((i >> iLog2)> 1) (compare)

e1) ADDGT r0, r0, #1 ; iLog2++    e1) ADDGT r0, r0, # 1; iLog2 ++

f1) BGT Go_to ; jump to Go_to (분기)    f1) BGT Go_to; jump to Go_to (branch)

g1) BX r14 ; return iLog2     g1) BX r14; return iLog2

[소스 코드 4] [Source code 4]

[LOG2_Ceil() 동작][LOG2_Ceil () behavior]

a2) MOV r2, r0 ; load input i    a2) MOV r2, r0; load input i

b2) MOV r0, #0 ; load 0    b2) MOV r0, # 0; load 0

c2) MOV r1, #1 ; load 1    c2) MOV r1, # 1; load 1

Go_toGo_to

d2) MOV r3, r1, LSL r0 ; 1 << iLog2    d2) MOV r3, r1, LSL r0; 1 << iLog2

e2) CMP r3, r2 ; if((1 << iLog2) < i) (비교)    e2) CMP r3, r2; if ((1 << iLog2) <i) (compare)

f2) ADDLT r0, r0, #1 ; iLog2++    f2) ADDLT r0, r0, # 1; iLog2 ++

g2) BLT Go_to ; jump to Go_to (분기)    g2) BLT Go_to; jump to Go_to (branch)

h2) BX r14 ; return iLog2     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) 단계를 포함한다.1 is a flowchart illustrating a log base 2 calculation method in processing a general digital signal. Initialization step 10 includes initializing an input value, including steps a1) and b1) of source code 3, and steps a2), b2) and c2) of source code 4. The comparing and branching step (step 12) includes steps c1), d1), e1) and f1) of source code 3 and includes steps d2), e2), f2) and g2) of source code 4. .

상기와 같은 소스 코드 3 및 4에서의 동작을 32-bit RISC인 ARM9E에서 수행하는 경우 소요되는 사이클(cycle) 수는 다음과 같다. The number of cycles required when the above operations in the source codes 3 and 4 are performed in the ARM9E which is a 32-bit RISC is as follows.

먼저, 소스 코드 3에 나타난 LOG2_Floor()를 사용하는 경우(여기서, N은 2N에서의 지수 N을 의미함)는 다음의 사이클이 소요된다. First, using LOG2_Floor () shown in source code 3, where N represents the exponent N at 2 N , the following cycle takes.

Step1) 입력 값 및 기타 초기화에 필요한 사이클은 7 사이클Step 1) 7 cycles for input value and other initialization

Step2) 비교 및 분기에 필요한 7 사이클 Step2) 7 cycles required for comparison and branching

Step3) 최종 소요 사이클 = 7 + 7*(N+1) (모든 경우)Step3) Final Cycle = 7 + 7 * (N + 1) (all cases)

그 다음, 소스 코드 4에 나타난 LOG2_Ceil()를 사용하는 경우(여기서, N은 2N에서의 지수 N을 의미함)는 다음의 사이클이 소요된다. Next, using LOG2_Ceil () shown in source code 4, where N means exponent N at 2 N , takes the following cycle.

Step1) 입력 값 및 기타 초기화에 필요한 사이클은 7+1=8 사이클(소스 코드 4의 반올림 역할을 수행하는 "MOV r1, #1" 코드에 의해 1사이클 추가됨)Step1) Input cycles and other cycles required for initialization are 7 + 1 = 8 cycles (added by one cycle by the code "MOV r1, # 1" which rounds source code 4)

Step2) 비교 및 분기에 필요한 7 사이클Step2) 7 cycles required for comparison and branching

Step3) 최종 소요 사이클 = 8 + 7*(N+1) (입력값(i)가 2의 거듭제곱인 경우)Step3) Final Cycle = 8 + 7 * (N + 1) (when input value (i) is a power of 2)

최종 소요 사이클 = 8 + 7*(N+2) (입력값(i)가 2의 거듭제곱이 아닌 경우)       Last Cycle = 8 + 7 * (N + 2) (if input (i) is not a power of 2)

여기서 비교와 분기의 횟수는 N에 비례하게 되므로 비교와 분기에 소요되는 총 사이클수는 입력값의 크기와 관계있는 N에 비례하게 된다. Since the number of comparisons and branches is proportional to N, the total number of cycles for comparisons and branches is proportional to N related to the magnitude of the input value.

따라서, 로그 베이스 2 연산을 종래의 WMA(Window Media Audio) 디코더의 프로페셔널 버전 스펙(professional version specification) 등에 개시된 바와 같이 비교/분기 루틴을 사용하여 구현하는 경우 필요한 비교 및 분기 루틴의 횟수에 비례하여 로그 베이스 2 연산에 소요되는 총 사이클 수가 증가하며, 입력값의 크기에 따라서 소요되는 총 사이클 수가 크게 증가하게된다. Therefore, log base 2 operations are logged in proportion to the number of comparison and branch routines required when implemented using a compare / branch routine as disclosed in the professional version specification of a conventional Window Media Audio (WMA) decoder. The total number of cycles required for the base 2 operation is increased, and the total number of cycles required for the base value is greatly increased.

그 결과, 로그 베이스 2 연산을 이용하여 스케일 팩터 디코딩 연산을 수행하는 WMA 디코딩 또는 MP3(MPEG1 Audio layer-3) 디코딩시 연산에 소요되는 사이클 수가 증가되어 연산 시간이 증가되므로 효율적인 디코딩을 수행할 수 없는 문제점이 있다.As a result, the WMA decoding or the MPEG1 Audio layer-3 (MP3) decoding, which performs the scale factor decoding operation using the log base 2 operation, increases the number of cycles required for the operation, thus increasing the computation time and thus preventing efficient decoding. There is a problem.

따라서, 본 발명의 제1 목적은 K-비트(K는 자연수) 마이크로 프로세서에서 로그 베이스 2 연산 수행시 소요되는 클럭 사이클 수를 줄일 수 있는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 방법 및 이를 수행하는 프로그램을 기록한 기록 매체를 제공하는 것이다. Accordingly, a first object of the present invention is to perform a log base 2 operation method in a K-bit microprocessor that can reduce the number of clock cycles required to perform log base 2 operation in a K-bit (K is a natural number) microprocessor, and to perform the same. It is to provide a recording medium in which a program is recorded.

본 발명의 제2 목적은 상기 로그 베이스 2 연산 방법을 이용한 스케일 팩터 디코딩 방법 및 이를 수행하는 프로그램을 기록한 기록 매체를 제공하는 것이다. A second object of the present invention is to provide a scale factor decoding method using the log base 2 calculation method and a recording medium on which a program for performing the same is recorded.

또한, 본 발명의 제3 목적은 K-비트(K는 자연수) 마이크로 프로세서에서 로 그 베이스 2 연산 수행시 소요되는 클럭 사이클 수를 줄일 수 있는 로그 베이스 2 연산 장치를 제공하는 것이다.It is also a third object of the present invention to provide a log base 2 operation apparatus capable of reducing the number of clock cycles required to perform log base 2 operations in a K-bit (K is a natural number) microprocessor.

상술한 본 발명의 제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)가 될 수 있다.According to an aspect of the present invention for achieving the above-described first object of the present invention, a method for performing log-base 2 operation in a K-bit (K is a natural number) microprocessor may include a K-bit binary input value, wherein a binary input value. Calculating a preceding zero count operation value by performing a preceding zero count operation on a natural number; And outputting a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value. The log base 2 operation result value for the K-bit binary input value is a difference value between K-1 and the preceding zero count operation value when a binary value stored in a preset flag bit has a first binary value. Can be. The log base 2 operation result value for the K-bit binary input value may be a difference between K and the preceding zero count operation value when a binary value stored in a preset flag bit has a second binary value. have. The log base 2 operation performing method may be used for scale factor decoding when decoding MP3 (MPEG1 Audio layer-3). The log base 2 operation performing method may be used to decode the scale factor when decoding the WMA (Window Media Audio). The K-bit microprocessor may be a 32-bit reduced instruction set computer (RISC).

본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코 딩 방법은 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및 상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 포함한다. According to an aspect of the present invention for achieving a second object of the present invention, a scale factor decoding method using a log-base 2 operation in a K-bit (K is a natural number) microprocessor is a K-bit binary input value. Performing a leading zero count operation on the binary input value being a natural number to produce a leading zero count operation value; Outputting a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value; And performing scale factor decoding based on the log base 2 operation result value.

본 발명의 제3 목적을 달성하기 위한 본 발명의 일측면에 따른 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치는 K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 선행 제로 카운트 처리부; 및 K-1과 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 연산부를 포함한다. 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)가 될 수 있다. Log-base 2 computing device in the K-bit (K is a natural number) microprocessor according to an aspect of the present invention for achieving the third object of the present invention is a K-bit binary input value, where the binary input value is a natural number A leading zero count processor for performing a leading zero count operation on-to calculate a leading zero count operation value; And an operation unit for outputting a difference value between K-1 and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value. The K-bit microprocessor may be a 32-bit reduced instruction set computer (RISC).

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르 게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

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

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하 게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

종래의 디지털 신호 처리시 로그 베이스 2 (log2) 연산은 비교 루틴 및 분기 루틴을 포함하므로 많은 클럭 사이클을 필요로 한다. 본 발명에서는 디지털 신호 처리시 로그 베이스 2 (log2) 연산에 소요되는 클럭 사이클을 효율적으로 줄이기 위해 선행 제로 카운트(CLZ; Count Leading Zero) 연산을 이용한다. 예를 들어, 선행 제로 카운트(CLZ) 연산은 ARM9 시리즈 중 32-비트 RISC인 ARMv5E에서 제공되는 선행 제로 카운트(CLZ) 명령어를 이용하여 구현할 수 있다. Log base 2 (log 2 ) operations in conventional digital signal processing require many clock cycles because they include a comparison routine and a branch routine. In the present invention, in order to efficiently reduce clock cycles required for log base 2 (log 2 ) operations in digital signal processing, a leading counting zero (CLZ) operation is used. For example, the leading zero count (CLZ) operation can be implemented using the leading zero count (CLZ) instruction provided in ARMv5E, a 32-bit RISC of the ARM9 series.

CLZ 연산은 최상위 비트에서 처음으로 1이 나온 비트(즉, 첫번째 유효 숫자) 사이에 0이 몇 개나 있는가를 카운트한다. 예를 들어, 다음과 같은 방식으로 동작된다. The CLZ operation counts how many zeros are between the most significant bit of the first bit (that is, the first significant digit). For example, it works in the following manner.

PRE r1 = 0b 0000 0000 0000 0000 0000 0000 0001 0000PRE r1 = 0b 0000 0000 0000 0000 0000 0000 000 1 0000

CLZ r0, r1CLZ r0, r1

POST r0 = 27POST r0 = 27

상기 예를 살펴보면, 최상위 비트로부터 0이 27번 나온 후 처음으로 1이 나왔으므로 CLZ 연산 결과값 r0에는 27이 리턴된다. CLZ 연산은 첫번째 유효 숫자 앞에 0이 몇 개나 있는지 센다. 32-비트 RISC에서 사용되는 선행 제로 카운트 명령어에서는 첫번째 유효 숫자 앞에 0이 만약 한 비트도 없다면 32를 리턴한다. In the above example, since 0 is 27 times from the most significant bit and 1 is first, 27 is returned in the CLZ operation result r0. The CLZ operation counts the number of zeros before the first significant digit. The leading zero count instruction used in 32-bit RISC returns 32 if there is no bit before the first significant digit.

도 2는 32-비트 RISC에서 입력 정수값에 대한 이진수로 표현된 코드와 CLZ의 값을 나타내는 도표이다. 도 2의 'x'는 '1' 또는 '0' 둘 중의 임의의 값을 가질 수 있다.FIG. 2 is a diagram showing the values of CLZ and code expressed in binary to input integer values in 32-bit RISC. 'X' of FIG. 2 may have any value of either '1' or '0'.

CLZ 명령어는 그 수를 정규화해야 하는 루틴에서 매우 유용하게 사용할 수 있다. 정수(integer)의 가장 중요한 비트인 첫번째 유효 숫자(leading one)이 알려진 비트 위치에 있을 때, 상기 정수는 "정규화되었다"고 한다. 예를 들어 정수 9를 이진값으로 표현하면 0b00001001이 되는데, 여기서 유효 숫자는 1001이고, 맨 왼에 있는 1이 바로 첫번째 유효 숫자(leading one)이다. The CLZ instruction is very useful for routines that need to normalize their numbers. When the first leading digit, the most significant bit of an integer, is at a known bit position, the integer is said to be "normalized." For example, the integer 9 can be represented as a binary value, which is 0b00001001, where the significant digit is 1001, and the leftmost 1 is the first leading digit.

뉴톤-랩슨(Newton-Raphson) 나눗셈을 구현하거나 부동소수점 형식으로의 변환을 위해서는 정규화가 필요하다. 정규화는 알고리즘을 계산하거나 몇몇 스케줄링 루틴에서 사용되는 우선 순위 디코더에서도 유용하게 사용된다. 상기와 같은 어플리케이션에서는 정규화값과 정규화 값에 도달하는 데 필요한 시프트 값을 둘 다 알아야 한다. Normalization is required to implement Newton-Raphson division or to convert to floating-point format. Normalization is also useful for priority decoders used in computing algorithms or in some scheduling routines. In such an application, both the normalization value and the shift value required to reach the normalization value must be known.

CLZ 값은 정수를 정규화하기 위해 ARMv5E와 같은 32-비트 RISC에서는 첫 번째 유효 숫자가 31번째 비트에 위치하도록 왼쪽으로 시프트 할 때의 시프트할 갯수로 사용된다. The CLZ value is used as the number of shifts when shifting left so that the first significant digit is located in the 31st bit in 32-bit RISC, such as ARMv5E.

도 3은 본 발명의 일실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 설명하는 순서도이고, 도 4는 본 발명의 다른 실시예에 따른 반올림을 적용하는 경우의 로그 베이스 2 연산 방법을 설명하는 순서도이다. 도 3 및 도 4는 K-비트 RISC(Reduced Instruction Set Computer)를 사용한 디지털 신호 처리시 로그 베이스 2 연산 방법을 예로 들어 설명한다. 여기서, K값은 예를 들어 32가 될 수 있다. 3 is a flowchart illustrating a log base 2 calculation method when processing a digital signal according to an embodiment of the present invention, and FIG. 4 illustrates a log base 2 calculation method when rounding is applied according to another embodiment of the present invention. It is a flow chart. 3 and 4 illustrate a log base 2 operation method in digital signal processing using a K-bit reduced instruction set computer (RISC) as an example. Here, the K value may be 32, for example.

도 3을 참조하면, K-비트 입력값 (i)를 로드(load)한다(단계 301). Referring to FIG. 3, the K-bit input value i is loaded (step 301).

상기 입력값(i)의 최상위 비트에서 처음으로 1이 나온 비트를 나타내는 첫번째 유효 숫자 비트(leading one) 사이의 0의 개수를 카운트한다(단계 303). The number of zeros between the first significant digit bit representing the first bit in the most significant bit of the input value i is counted (step 303).

그다음, (K-1)와 상기 0의 개수간의 차이값을 구한다(단계 305). 상기 (K-1)과 상기 0의 개수간의 차이값이 상기 입력값 (i)에 대한 log2i값이다. Then, the difference between K-1 and the number of zeros is obtained (step 305). The difference between (K-1) and the number of zeros is the log 2 i value for the input value (i).

도 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값이다. Referring to FIG. 4, the first significant digit bit (leading one) indicating the first bit of the first bit of the most significant bit of the input value (i) is loaded (step 401). After counting the number of zeros (), the difference value between K and the number of zeros is calculated (step 405). FIG. 4 adds 1 by applying rounding when the log base 2 calculation result log 2 i has a value below the decimal point. Therefore, instead of calculating the difference between (K-1) and the number of 0s, Find the difference between the numbers. That is, when the log base 2 calculation result log 2 i has a value below the decimal point, a difference value between K and the number of 0 is a log 2 i value obtained by applying rounding to the input value (i).

도 3의 선행 제로 카운트를 이용한 로그 베이스 2 연산 방법은 아래와 같이 인라인 어셈 함수로 구현할 수 있다. The log base 2 operation method using the preceding zero count of FIG. 3 may be implemented as an inline assembling function as follows.

[소스 코드 5][Source code 5]

__inline int LOG2_Floor(int i)__inline int LOG2_Floor (int i)

{{

int iLog2;      int iLog2;

__asm ; asm 이하의 { }에 포함된 코드는 어셈블리 코드임을 의미함      __asm; Code contained in {} below asm means assembly code

{      {

CLZ iLog2, i          CLZ iLog2, i

}      }

return (31 - iLog2);      return (31-iLog2);

} }

도 4의 선행 제로 카운트를 이용한 로그 베이스 2 연산 방법은 아래와 같이 인라인 어셈 함수로 구현할 수 있다. The logbase 2 operation method using the preceding zero count of FIG. 4 may be implemented as an inline assembling function as follows.

[소스 코드 6][Source code 6]

__inline int LOG2_Ceil(int i)__inline int LOG2_Ceil (int i)

{{

int iLog2;int iLog2;

__asm ; asm 이하의 { }에 포함된 코드는 어셈블리 코드임을 의미함      __asm; Code contained in {} below asm means assembly code

{      {

CLZ iLog2, i          CLZ iLog2, i

}      }

return (32 - iLog2);      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()함수를 실행하는 경우를 나타낼 수 있다.Referring to the source codes 5 and 6, an input value i is input, and the number of zeros is stored in iLog2 through a preceding zero count (CLZ) process. If the result value (31-iLog2) is returned as shown in source code 5 using the preceding zero count (CLZ) value, the desired log base 2 operation result (log 2 i) is obtained. In the source code 6, when the binary value stored in the predetermined flag bit instructs to execute the LOG2_Ceil () function, the result value (32-iLog2) is returned for rounding, and the rounded log base 2 operation result ( log 2 i) For example, if the binary value of the flag bit preset by the user is 0, this indicates a case of executing the LOG2_Floor () function to handle the case where the log base 2 operation result log 2 i does not have a decimal point value. When the binary value of the flag bit is 1, it may represent a case of executing the LOG2_Ceil () function for processing the case where the log base 2 operation result log 2 i has a decimal point value.

종래의 도 1의 로그 베이스 2 연산 방법에 따르면 비교/분기의 횟수가 입력 값(i)에 비례하기 때문에 입력 값(i)에 따라 비례적으로 [7 + 7*(N+1)] 또는 [8 + 7*(N+1)] 또는 [8 + 7*(N+2)] 사이클을 소요하게 된다. According to the conventional log base 2 calculation method of FIG. 1, since the number of comparison / branches is proportional to the input value (i), it is proportionally [7 + 7 * (N + 1)] or [according to the input value (i). 8 + 7 * (N + 1)] or [8 + 7 * (N + 2)] cycles.

도 3 및 도 4의 본 발명의 실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법은 종래의 도 1의 로그 베이스 2 연산 방법과 비교하면, 기존의 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)가 없어지고, 반복적인 루프가 없이 직접 연산 처리가 되어 로그 베이스 2 연산 결과값을 산출할 수 있다. The log base 2 calculation method in the digital signal processing according to the embodiment of the present invention of FIGS. 3 and 4 is an iterative loop composed of a conventional comparison routine and a branch routine, compared to the conventional log base 2 calculation method of FIG. 1. ), And it can be computed directly without repetitive loops to calculate the log base 2 result.

본 발명의 실시예들에 따는 로그 베이스 2 연산 방법을 32-bit RISC에 적용 할 경우에 CLZ 연산을 이용하여 비교/분기 과정을 제거함으로써 로그 베이스 2 연산 결과를 도출할 때까지 입력 값의 크기에 상관없이 3 사이클을 소요된다. 왜냐하면, 입력값을 로드(load) 하는데 1 사이클, 선행 제로 카운트(CLZ) 명령어를 수행하는데 1 클럭 사이클, CLZ 처리한 결과값을 리턴 처리하는데 1 클럭 사이클을 소요하기 때문이다. When the log base 2 operation method according to the embodiments of the present invention is applied to a 32-bit RISC, the size of the input value is determined until the log base 2 operation result is obtained by eliminating the comparison / branching process using the CLZ operation. It takes 3 cycles no matter what. This is because it takes one cycle to load the input value, one clock cycle to execute the preceding zero count (CLZ) instruction, and one clock cycle to return the CLZ-processed result.

따라서, 본 발명의 실시예에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법을 32-비트 RISC등을 이용한 디지털 신호 처리에 적용할 경우 로그 베이스 2 연산에 소요되는 클럭 사이클 수는 비교 루틴의 횟수, 분기 루틴의 횟수 및 입력값의 크기에 무관하게 일정한 값을 가진다. 즉, 본 발명의 실시예들에 따른 디지털 신호 처리시 로그 베이스 2 연산 방법은 종래 입력 값에 비례적으로 클럭 사이클이 소요되는 것이 아니라, 어떠한 입력 값을 갖더라도 일정한 수의 클럭 사이클이 소요된다. 그결과, 로그 베이스 2 연산 처리시 연산량을 크게 줄일 수 있다. Therefore, when the log base 2 calculation method is applied to digital signal processing using 32-bit RISC or the like when the digital signal is processed according to an embodiment of the present invention, the number of clock cycles required for the log base 2 operation is the number of comparison routines and branches. It has a constant value regardless of the number of routines and the size of the input value. That is, the log base 2 calculation method in the digital signal processing according to the embodiments of the present invention does not take a clock cycle proportionally to a conventional input value, but takes a certain number of clock cycles regardless of any input value. As a result, it is possible to greatly reduce the amount of computation during logbase 2 computation.

도 5는 32-비트 RISC에서 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다. 도 5는 32-비트 RISC의 일종인 ARM946E-S를 사용하여 측정한 클럭 사이클 수를 나타낸다. N은 2N에서의 지수 N을 의미한다. 도 6은 도 5의 LOG2_Ceil()함수를 적용할 때 종래의 로그 베이스 2 연산 방법을 처리하는 경우와 본 발명의 로그 베이스 2 연산 방법을 처리하는 경우의 소요되는 클럭 사이클을 비교한 도표이다. FIG. 5 is a diagram comparing clock cycles required when the conventional log base 2 operation method is processed in the 32-bit RISC and the log base 2 operation method according to the present invention. 5 shows the number of clock cycles measured using the ARM946E-S, which is a type of 32-bit RISC. N means exponent N at 2 N. FIG. 6 is a chart comparing clock cycles required when the logbase 2 calculation method of the present invention is processed with the logbase 2 calculation method of the present invention when the LOG2_Ceil () function of FIG. 5 is applied.

도 5 및 도 6에 도시된 바와 같이, 종래의 로그 베이스 2 연산은 N에 비례적으로 사이클이 증가하지만 제안된 연산은 N과는 상관없이 3 사이클이 소요된다.As shown in Figs. 5 and 6, the conventional log base 2 operation increases the cycle in proportion to N, but the proposed operation takes 3 cycles irrespective of N.

도 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))이다. FIG. 5 illustrates only the case where the input values i are all powers of two, and FIG. 6 illustrates both the case where the input values i are powers of two and non-power squares. Referring to FIG. 6, when the LOG2_Ceil () function is applied, the input value i is 1, 2, 4, 8, 16,... In the case of 2 power, such as 1024, the number of clock cycles required is (8 + 7 * (N + 1)), and the input value (i) is 3, 5, 6, 7, 9,... As shown in the following figure, the number of clock cycles required is not (8 + 7 * (N + 2)).

도 7은 본 발명의 일실시예에 따른 K-비트 RISC에서의 로그 베이스 2 연산 장치를 나타내는 블록도이다. 7 is a block diagram illustrating an apparatus for calculating a log base 2 in K-bit RISC according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일실시예에 따른 로그 베이스 2 연산 장치는 CLZ 처리부(710) 및 연산부(720)을 포함한다. Referring to FIG. 7, the log base 2 operation apparatus according to an embodiment of the present invention includes a CLZ processing unit 710 and an operation unit 720.

CLZ 처리부(710)에서는 K-비트 입력값 i를 입력받아 선행 제로 카운트(CLZ) 연산을 수행한다. 구체적으로, CLZ 처리부(710)에서는 K-비트 입력값(i)의 최상위 비트에서 처음으로 1이 나온 비트를 나타내는 첫번째 유효 숫자 비트(leading one) 사이의 0의 개수를 카운트하여 CLZ 결과값을 출력한다. The CLZ processor 710 receives the K-bit input value i and performs a preceding zero count (CLZ) operation. Specifically, the CLZ processor 710 outputs the CLZ result value by counting the number of zeros between the first significant digit bit representing the first one of the most significant bits of the K-bit input value i. do.

연산부(720)에서는 CLZ 결과값을 입력받아 (K-1)과 CLZ 결과값과의 차이값을 산출한다. 즉, CLZ 결과값을 입력받아 (K-1)에서 CLZ 결과값을 빼준다. 또는, 연산부(720)에서는 사용자에 의해 미리 설정된 플래그(flag) 비트에 저장된 이진값이 소정값을 가지는 경우 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우 반올림을 적용하기 위하여 CLZ 결과값을 입력받아 K와 CLZ 결과값간의 차이값을 구한다. 예를 들어, 플래그(flag) 비트에 저장된 이진값이 1인 경우 상기 반올림을 적용하기 위하여 CLZ 결과값을 입력받아 K와 CLZ 결과값간의 차이값을 구할 수 있다. The operation unit 720 receives the CLZ result value and calculates a difference value between the (K-1) and the CLZ result value. In other words, the CLZ result is input and the CLZ result is subtracted from (K-1). Alternatively, when the binary value stored in the flag bit preset by the user has a predetermined value, the operation unit 720 performs a CLZ result to apply rounding when the log base 2 calculation result log 2 i has a decimal point or less. Get the value and find the difference between K and CLZ. For example, when the binary value stored in the flag bit is 1, the difference value between K and the CLZ result may be obtained by receiving the CLZ result value to apply the rounding.

로그 베이스 2 연산 장치는 로그 베이스 2 연산 결과값 log2i이 소수점 이하값을 가지는 경우에는 반올림을 적용하기 위하여 상기 (K-1)과 CLZ 결과값과의 차이값에 1을 가산하는 가산기(730)을 더 포함할 수도 있다. The log base 2 computing device adds 1 to the difference between the above (K-1) and the CLZ result in order to apply rounding when the log base 2 calculation result log 2 i has a decimal point value 730. ) May be further included.

본 발명의 실시예들에 따른 로그 베이스 2 연산은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용될 수 있다. MP3 디코더는 파서(parser), 허프만 디코딩(Huffman decoding)부, 역양자화(Inverse Quantization)부 및 IMDCT를 포함한다. 구체적으로, MP3 파일의 디코딩 과정은 먼저 외부로부터 입력되는 MP3 형식의 비트스트림을 입력버퍼에 담고, 입력버퍼의 데이터를 이용하여 스케일 팩터값을 읽고, 사이드 정보(side information) 및 스케일 팩터에 의해 허프만 디코딩, 역양자화 및 주파수 영역에서의 시간 영역으로의 변환(IMDCT)등을 수행한 다음 최종 오디오 데이터를 생성한다. The log base 2 operation according to the embodiments of the present invention may be used for scale factor decoding during MP3 (MPEG1 audio layer-3) decoding. The MP3 decoder includes a parser, a Huffman decoding unit, an inverse quantization unit, and an IMDCT. Specifically, the decoding process of the MP3 file first contains the MP3 format bitstream input from the outside into the input buffer, reads the scale factor value using the data of the input buffer, and uses Huffman by side information and the scale factor. Decode, dequantize, and transform from frequency domain to time domain (IMDCT), etc., and then generate final audio data.

MP3 방식에서는 오디오 대역 전체에 대하여 양자화를 실시하지 않고 스케일 팩터 밴드(scalefactor band)라는 주파수 대역으로 나누어 영역 데이터를 스케일링하여 원래의 오디오 신호를 복구한다. 스케일 팩터는 밴드 단위로 나뉘어져 적용된 다. 스케일 팩터 복호부에서 사이드 정보로부터 역양자화의 스케일이 복호된다. 상기 역양자화(Inverse Quantization) 과정에서 스케일 팩터 디코딩을 하기 위한 사전 과정으로서 로그 베이스 2 연산을 적용하여 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하고, 쉬프터에서 메모리에 저장된 소정 개수의 스케일 팩터를 상기 로그 베이스 2 연산 결과값(스케일 팩터의 계수값)에 상응하는 횟수만큼 좌측으로 쉬프트 하여 원하는 다수의 스케일 팩터를 얻음으로써 스케일 팩터 디코딩을 수행한다. In the MP3 method, the original audio signal is recovered by scaling the region data by dividing it into a frequency band called a scale factor band without performing quantization on the entire audio band. The scale factor is divided into bands. In the scale factor decoding unit, the scale of inverse quantization is decoded from the side information. In the inverse quantization process, a log factor 2 operation is applied as a preliminary procedure for decoding the scale factor, and a coefficient value of the scale factor is obtained, and a shifter stores a predetermined number of scale factors stored in the memory. Scale factor decoding is performed by shifting the left side by the number of times corresponding to the log base 2 operation result value (the coefficient value of the scale factor) to obtain a plurality of desired scale factors.

하기의 소스 코드 7은 MP3 디코딩시 스케일 펙터 선택 정보(scfsi, scalefactor selection information)처리부에서 사용되는 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하는 루틴의 슈도-코드(Pseudo-Code)를 나타낸다. Source code 7 below represents a pseudo-code of a routine for obtaining a coefficient value of a scale factor used in a scale factor selection information (scfsi) processor in decoding MP3.

[소스 코드 7][Source code 7]

Int mp3_Scfsi(A,B,C)Int mp3_Scfsi (A, B, C)

{{

for i=0 to A do ; A는 입력인자로 Spectrum 값의 수    for i = 0 to A do; A is the number of Spectrum values

xr_sum = pow(abs(xr(i))); Spectrum을 이용하여 energy 계산      xr_sum = pow (abs (xr (i))); Calculation of energy using Spectrum

en_tot = log2_floor(xr_sum); total energy를 구함    en_tot = log 2_floor (xr_sum); Find total energy

for j=0 to B do ; B는 입력인자로 subband(sb) 수    for j = 0 to B do; B is the number of subband (sb) as input factors

top = lbl(j)+bw(j)-1; bandwidth별로 계산하기 위함      top = lbl (j) + bw (j) -1; To calculate by bandwidth

for k=lbl(j) to top do      for k = lbl (j) to top do

energy = pow(abs(xr(i))); 각 bandwidth별 energy 계산          energy = pow (abs (xr (i))); Calculation of energy for each bandwidth

en(j) = log2_floor(energy); 각 band별 energy 계산      en (j) = log 2_floor (energy); Calculation of energy for each band

xm(j) = log2_floor(C(j)); 각 band 별 가용 가능한 왜곡(distortion) 값을 계산      xm (j) = log 2_floor (C (j)); Calculate the available distortion values for each band

}}

상기 소스 코드 7은 스케일 펙터 디코딩을 하기 위한 사전 정보를 구하는 단계로서 알고리즘 변경에 의해 log2_floor 또는 log2_ceil을 사용할 수 있다.The source code 7 is a step of obtaining dictionary information for scale factor decoding and may use log2_floor or log2_ceil by an algorithm change.

또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 WMA 디코딩시 스케일 팩터 디코딩부에서 사용될 수 있다. 하기의 소스 코드 8은 WMA 디코딩시 스케일 펙터 처리 부에서 스케일 팩터(scalefactor)의 계수(coefficient) 값을 구하는 루틴의 슈도-코드(Pseudo-Code)를 나타낸다. Alternatively, the log base 2 operation according to the embodiments of the present invention may be used in the scale factor decoding unit during WMA decoding. Source code 8 below shows a pseudo-code of a routine for obtaining a coefficient value of a scale factor in a scale factor processing unit during WMA decoding.

[소스 코드 8][Source Code 8]

Int PreScaleCoeff(A,B,C,D)Int PreScale Coeff (A, B, C, D)

{{

for i=0 to A do ; A는 입력인자로 가변임    for i = 0 to A do; A is variable as input factor

if(B==1)       if (B == 1)

maxQuantStep = m_qfltMaxQuantStep; 양자화 스텝의 최대값 선택         maxQuantStep = m_qfltMaxQuantStep; Select maximum value of quantization step

ctMaxVal >>= maxQuantStep; coefficient에 영향 주는 최대값 결정         ctMaxVal >> = maxQuantStep; Determine maximum value affecting coefficient

cLeftShiftBits = C- LOG2_Ceil(ctMaxVal); ctMaxVal은 1부터 234까 지의 정수임. LOG2_Ceil(ctMaxVal) 결과값의 범위는 0~34임. C는 입력인자로 사용 가능한 계수의 최대치로서 1부터 30까지의 정수임. cLeftShiftBits은 계수를 생성시켜주는 쉬프트(shift)값임. cLeftShiftBits = C- LOG2_Ceil (ctMaxVal); ctMaxVal is an integer from 1 to 2 34 . LOG2_Ceil (ctMaxVal) The result range is 0 ~ 34. C is the maximum value of the coefficient that can be used as an input factor and is an integer from 1 to 30. cLeftShiftBits is a shift value that generates coefficients.

if (cLeftShiftBits >0) ; cLeftShiftBits가 양수인 경우의 처리       if (cLeftShiftBits> 0); Handling when cLeftShiftBits is Positive

for j= 0 to iHi do         for j = 0 to iHi do

rgiCoefRecon[j] <<= cLeftShiftBits; scalefactor coefficient를 j개 만큼 cLeftShiftBits를 이용하여 만듦.            rgiCoefRecon [j] << = cLeftShiftBits; By using j cLeftShiftBits scale factor coefficients.

else ; cLeftShiftBits가 음수인 경우의 처리       else; Handling when cLeftShiftBits is Negative

for j= 0 to iHi do         for j = 0 to iHi do

rgiCoefRecon[j] >>= -cLeftShiftBits;                     rgiCoefRecon [j] >> = -cLeftShiftBits;

}}

또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 WMA 디코딩시 패킷 헤더 디코딩과정에서도 사용될 수 있다. 또는, 본 발명의 실시예들에 따른 로그 베이스 2 연산은 MP3 디코딩시 파서(parser)에서 패킷 헤더 디코딩하는 과정에서도 사용될 수 있다.Alternatively, the log base 2 operation according to the embodiments of the present invention may be used in packet header decoding during WMA decoding. Alternatively, the log base 2 operation according to the embodiments of the present invention may be used in a packet header decoding process in a parser during MP3 decoding.

상기와 같은 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법, 상기 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법 및 K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치에 따르면, 종래의 로그 베이스 2 연산 방법에서 사용되던 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)를 사용하지 않고 CLZ 연산을 이용하여 입력값에 대한 로그 베이스 2 연산 결과값을 산출할 수 있다. A method of performing a log base 2 operation in the K-bit (K is a natural number) microprocessor, a scale factor decoding method using the log base 2 operation, and a log base 2 operation in a K-bit (K is a natural number) microprocessor. According to the apparatus, it is possible to calculate a log base 2 operation result value for an input value using a CLZ operation without using an iteration loop composed of a comparison routine and a branch routine used in the conventional log base 2 operation method. .

따라서, 비교 루틴 및 분기 루틴으로 이루어진 반복 루프(loop)를 사용하지 않고 CLZ 연산을 이용하여 로그 베이스 2 연산 결과를 도출하므로 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법을 32-비트 RISC등에 적용할 경우 로그 베이스 2 연산에 소요되는 클럭 사이클 수는 비교 루틴의 횟수, 분기 루틴의 횟수 및 입력값의 크기에 무관하게 일정한 값을 가진다. Therefore, the log base 2 operation method is derived using the CLZ operation without using an iterative loop composed of a comparison routine and a branch routine. Thus, the log base 2 operation method according to the embodiments of the present invention is applied to a 32-bit RISC or the like. When applied, the number of clock cycles required for logbase 2 operation is constant regardless of the number of comparison routines, number of branch routines, and size of input values.

따라서, 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법은 종래 입력 값에 비례적으로 클럭 사이클이 소요되는 것이 아니라 어떠한 입력 값을 갖더라도 일정한 수의 클럭 사이클만이 소요되므로 로그 베이스 2 연산 처리시 연산량을 크게 줄일 수 있다. 특히, 본 발명의 실시예들에 따른 로그 베이스 2 연산 방법을 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩 및 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 적용할 경우 연산량을 크게 줄일 수 있다.Accordingly, the log base 2 calculation method according to the embodiments of the present invention does not require clock cycles in proportion to the conventional input value, but only a certain number of clock cycles are required regardless of the input value. Can greatly reduce the amount of computation. Particularly, when the log base 2 operation method according to the embodiments of the present invention is applied to scale factor decoding in window media audio (WMA) decoding and scale factor decoding in MPEG1 audio layer-3 (MP3) decoding, the calculation amount can be greatly reduced. have.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.

Claims (20)

K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법에 있어서, A method for performing log base 2 operation in a K-bit (K is a natural number) microprocessor, K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; 및Performing a preceding zero count operation on the K-bit binary input value, where the binary input value is a natural number to produce a preceding zero count operation value; And K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법. And outputting a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value. To perform log base 2 operations on. 제1항에 있어서, 상기 K-비트 이진 입력값에 대하여 선행 제로 카운트 연산을 수행하는 단계는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫 번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.2. The method of claim 1, wherein performing a preceding zero count operation on the K-bit binary input value comprises: a first significant number representing a bit in which the binary number '1' first appears in the most significant bit of the K-bit binary input value; And outputting the number of '0's between bits as the preceding zero count operation value. 제1항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제1 이진값을 가지는 경우 K-1와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마 이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.The method of claim 1, wherein the log base 2 operation result value for the K-bit binary input value is K-1 and the preceding zero count operation when a binary value stored in a preset flag bit has a first binary value. A method of performing a log base 2 operation in a K-bit microprocessor, characterized in that it is a difference from a value. 제1항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제2 이진값을 가지는 경우 K와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.The method of claim 1, wherein the log base 2 operation result value for the K-bit binary input value is equal to K and the preceding zero count operation value when a binary value stored in a preset flag bit has a second binary value. The method of performing a log base 2 operation in a K-bit microprocessor, characterized in that the difference value of. 제1항에 있어서, 상기 로그 베이스 2 연산 수행 방법은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.The method of claim 1, wherein the log base 2 operation is used to decode the scale factor when decoding the MP3 (MPEG1 Audio layer-3). 제1항에 있어서, 상기 로그 베이스 2 연산 수행 방법은 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.2. The method of claim 1, wherein the method for performing log base 2 operation is used for scale factor decoding in window media audio (WMA) decoding. 제1항에 있어서, 상기 K-비트 이진 입력값을 로드하는 단계를 더 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.2. The method of claim 1, further comprising loading the K-bit binary input value. 제1항에 있어서, 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 수행 방법.The method of claim 1, wherein the K-bit microprocessor is a 32-bit reduced instruction set computer (RISC). K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법에 있어서, In the scale factor decoding method using log-base 2 operation in a K-bit (K is a natural number) microprocessor, K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; Performing a preceding zero count operation on the K-bit binary input value, where the binary input value is a natural number to produce a preceding zero count operation value; K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및Outputting a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value; And 상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법. And performing scale factor decoding on the basis of the log base 2 operation result value. 제9항에 있어서, 상기 K-비트 이진 입력값에 대하여 선행 제로 카운트 연산을 수행하는 단계는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 단계를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.10. The method of claim 9, wherein performing a preceding zero count operation on the K-bit binary input value comprises: a first significant digit bit representing a bit in which the binary number '1' first appears in the most significant bit of the K-bit binary input value; And a step of outputting the number of '0's as the preceding zero count operation value. 제9항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과 값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제1 이진값을 가지는 경우 K-1와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.10. The method of claim 9, wherein the log base 2 operation result value for the K-bit binary input value is K-1 and the preceding zero count operation when a binary value stored in a preset flag bit has a first binary value. A scale factor decoding method using log-based two operations in a K-bit microprocessor, characterized in that it is a difference from a value. 제9항에 있어서, 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값은 미리 설정된 플래그(flag) 비트에 저장된 이진값이 제2 이진값을 가지는 경우 K와 상기 선행 제로 카운트 연산값과의 차이값인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.10. The method of claim 9, wherein the log base 2 operation result value for the K-bit binary input value is equal to K and the preceding zero count operation value when a binary value stored in a preset flag bit has a second binary value. A scale factor decoding method using a log base 2 operation in a K-bit microprocessor, characterized in that the difference value of. 제9항에 있어서, 상기 스케일 팩터 디코딩 방법은 MP3(MPEG1 Audio layer-3) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.10. The method of claim 9, wherein the scale factor decoding method is used to decode the scale factor when decoding MP3 (MPEG1 audio layer-3). 제9항에 있어서, 상기 스케일 팩터 디코딩 방법은 WMA(Window Media Audio) 디코딩시 스케일 팩터 디코딩에 사용되는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법.10. The method of claim 9, wherein the scale factor decoding method is used to decode the scale factor during WMA (Window Media Audio) decoding. 로그 베이스 2 연산을 수행하기 위해 K-비트 마이크로 프로세서에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 K-비트(K는 자연수) 마이크로 프로세서에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, A program in which a program of instructions that can be executed by a K-bit microprocessor is tangibly implemented to perform a log base 2 operation, and a recording medium having recorded thereon a program that can be read by the K-bit (K is a natural number) microprocessor. To K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; 및Performing a preceding zero count operation on the K-bit binary input value, where the binary input value is a natural number to produce a preceding zero count operation value; And K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계를 수행하는 프로그램을 기록한 기록 매체.And recording a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value. 로그 베이스 2 연산을 이용한 스케일 팩터 디코딩 방법을 수행하기 위해 K-비트(K는 자연수) 마이크로 프로세서에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 K-비트 마이크로 프로세서에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, A program of instructions that can be executed by a K-bit (K is a natural number) microprocessor is tangibly implemented to perform a scale factor decoding method using a log base 2 operation, and can be read by the K-bit microprocessor. In the recording medium on which a program is recorded, K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 단계; Performing a preceding zero count operation on the K-bit binary input value, where the binary input value is a natural number to produce a preceding zero count operation value; K-1 및 K 중의 하나와 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 단계; 및Outputting a difference value between one of K-1 and K and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value; And 상기 로그 베이스 2 연산 결과값에 기초하여 스케일 팩터 디코딩을 수행하는 단계를 수행하는 프로그램을 기록한 기록 매체.And a program for performing scale factor decoding based on the log base 2 operation result value. K-비트(K는 자연수) 마이크로 프로세서에서의 로그 베이스 2 연산 장치에 있어서, A log base 2 computing device in a K-bit (K is a natural number) microprocessor, K-비트 이진 입력값-여기서, 이진 입력값은 자연수임-에 대하여 선행 제로 카운트 연산을 수행하여 선행 제로 카운트 연산값을 산출하는 선행 제로 카운트 처리부; 및A leading zero count processor for performing a leading zero count operation on the K-bit binary input value, where the binary input value is a natural number; And K-1과 상기 선행 제로 카운트 연산값과의 차이값을 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값으로 출력하는 연산부를 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.And a calculation unit for outputting a difference value between K-1 and the preceding zero count operation value as a log base 2 operation result value for the K-bit binary input value. 2 computing devices. 제17항에 있어서, 상기 선행 제로 카운트 처리부는 상기 K-비트 이진 입력값의 최상위 비트에서 처음으로 이진수 '1'이 나온 비트를 나타내는 첫번째 유효 숫자 비트 사이의 '0'의 개수를 상기 선행 제로 카운트 연산값으로 출력하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.18. The method of claim 17, wherein the preceding zero count processor counts the number of '0's between the first significant digit bits representing the first bit of the binary number' 1 'from the most significant bit of the K-bit binary input value. Log base 2 computing device in the K-bit microprocessor characterized in that the output as an operation value. 제17항에 있어서, 상기 로그 베이스 2 연산 장치는 18. The apparatus of claim 17, wherein the log base 2 computing device is 미리 설정된 플래그(flag) 비트에 저장된 이진값이 소정의 이진값을 가지는 경우 상기 K-비트 이진 입력값에 대한 로그 베이스 2 연산 결과값에 1을 가산하는 가산기를 더 포함하는 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.And an adder for adding 1 to a log base 2 operation result value for the K-bit binary input value when the binary value stored in a preset flag bit has a predetermined binary value. Log base 2 computing unit in a bit microprocessor. 제17항에 있어서, 상기 K-비트 마이크로 프로세서는 32-비트 RISC(Reduced Instruction Set Computer)인 것을 특징으로 하는 K-비트 마이크로 프로세서에서의 로그 베이스 2 연산 장치.18. The apparatus of claim 17, wherein the K-bit microprocessor is a 32-bit reduced instruction set computer (RISC).
KR1020060073129A 2006-08-02 2006-08-02 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 KR100801326B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060073129A KR100801326B1 (en) 2006-08-02 2006-08-02 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060073129A KR100801326B1 (en) 2006-08-02 2006-08-02 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

Publications (2)

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

Family

ID=39340457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060073129A KR100801326B1 (en) 2006-08-02 2006-08-02 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

Country Status (1)

Country Link
KR (1) KR100801326B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2495801A1 (en) 1980-12-05 1982-06-11 Thomson Csf LOGARITHMIC SIGNAL PROCESSING DEVICE, RADAR DIVERSITY OPERATING RADAR APPLICATION AND RADAR COMPRISING SUCH A DEVICE
KR0182169B1 (en) * 1996-08-16 1999-05-15 삼성전자주식회사 Log arithmathic value calculator
US5951629A (en) 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
KR20060081848A (en) * 2005-01-10 2006-07-13 삼성전자주식회사 Display controller with contrast strech function and method thereof

Also Published As

Publication number Publication date
KR100801326B1 (en) 2008-02-19

Similar Documents

Publication Publication Date Title
RU2438235C1 (en) Apparatus and method for low-complexity combinatorial coding of signals
EP2159790B1 (en) Audio encoding method, audio decoding method, audio encoding device, audio decoding device, program, and audio encoding/decoding system
EP2062149A2 (en) Apparatus and method for low complexity combinatorial coding of signals
JP6490846B2 (en) Decoding device, method thereof, program, and recording medium
EP2191381A1 (en) Encoding and/or decoding digital content
EP1801691A1 (en) Information encoding method, decoding method, common multiplier estimation method, device using these methods, program, and recording medium
RU2375743C2 (en) Method of creating presentation of calculation result, linearly varying with square value
KR102615901B1 (en) Differential data in digital audio signals
US9425820B2 (en) Vector quantization with non-uniform distributions
US8593321B2 (en) Computation apparatus and method, quantization apparatus and method, and program
KR20010042988A (en) Method and apparatus for decoding an audio signal
KR100801326B1 (en) 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
Lee et al. High quality MPEG-audio layer III algorithm for a 16-bit DSP
US8601039B2 (en) Computation apparatus and method, quantization apparatus and method, and program
WO2009032740A2 (en) Fast computation of products by dyadic fractions with sign-symmetric rounding errors
JP5463485B2 (en) Audio device for 1-bit signal
JP3059429B2 (en) Decryption device
US6882976B1 (en) Efficient finite length POW10 calculation for MPEG audio encoding
Steeb Mathematical tools in signal processing with C++ & Java simulations
Yen et al. An efficient implementation of a low-complexity MP3 algorithm with a stream cipher
Ryan et al. Sound and Fourier Series
Law et al. A full-compliance MP3 decoder using DSP
Uzelac et al. A fast MPEG audio layer III software decoder
O'Callaghan Implementation of a MPEG 1 layer I audio decoder with variable bit lengths
JPH11288365A (en) Power calculation device

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