KR101722215B1 - Apparatus and method for discrete cosine transform - Google Patents
Apparatus and method for discrete cosine transform Download PDFInfo
- Publication number
- KR101722215B1 KR101722215B1 KR1020160056997A KR20160056997A KR101722215B1 KR 101722215 B1 KR101722215 B1 KR 101722215B1 KR 1020160056997 A KR1020160056997 A KR 1020160056997A KR 20160056997 A KR20160056997 A KR 20160056997A KR 101722215 B1 KR101722215 B1 KR 101722215B1
- Authority
- KR
- South Korea
- Prior art keywords
- adder
- triangulation
- adders
- input data
- calculation unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Description
본 발명은 이산 여현 변환 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for DCT.
이산 여현 변환(discrete cosine transform; DCT)은 JPEG, MPEG, 및 H.26x 등의 다양한 음성, 화상, 및 영상 압축 표준에 포함되어 있는, 신호를 시간 도메인에서 주파수 도메인으로 변환하는 직교 변환 부호화 기술이다.Discrete cosine transform (DCT) is an orthogonal transform coding technique that transforms a signal from the time domain to the frequency domain, which is included in various voice, image, and image compression standards such as JPEG, MPEG, and H.26x .
일반적으로 음성, 화상, 영상 등의 멀티미디어 신호는 에너지가 저주파 대에 집중되어 있다. 그러므로 멀티미디어 신호는 이산 여현 변환과 양자화를 차례로 수행하여 에너지가 큰 주파수 영역과 에너지가 작은 주파수 영역에 할당되는 비트 수를 서로 다르게 하면 효과적으로 데이터를 압축할 수 있다. 이에 따라 이산 여현 변환은 에너지 압축 능력이 최적이지만 연산 부하가 매우 높은 카루넨 루베 변환(Karhunen Loeve transform; KLT)에 가까운 압축 결과를 산출할 수 있다.Generally, multimedia signals such as voice, image, and video are concentrated in a low frequency band. Therefore, the multimedia signal can be effectively compressed by performing discrete cosine transform and quantization in order to make the number of bits allocated to a frequency region having a large energy and the frequency having a small energy different from each other. Thus, the DCT transform can produce a compression result close to that of Karhunen Loeve transform (KLT), which has the best energy compression capacity but has a high computational load.
앞에서 설명한 바와 같이, 이산 여현 변환은 이렇게 상대적으로 낮은 연산 부하를 가지고도 높은 압축률을 제공하므로 여러 가지 표준에 포함되어 널리 사용되는 이유 중 하나이다.As described above, DCT is one of the widely used and widely used standards because it provides a high compression ratio with relatively low computational load.
그러나 이산 여현 변환은 연산 복잡도가 여전히 높기 때문에, 효율적으로 수행하기 위한 다양한 기술이 필요하다. 이산 여현 변환은 시스템 사양이 낮은 휴대용 기기에서 여전히 큰 부담이 된다. 따라서 휴대용 기기에서 사용할 수 있는 이산 여현 변환 장치 및 방법을 제공하는 것이 필요하다.However, because the computational complexity of the discrete cosine transform is still high, various techniques are required to perform efficiently. Discrete cosine transform is still a heavy burden on handheld devices with low system requirements. Therefore, there is a need to provide a DC / DC converter and method that can be used in portable devices.
이와 관련되어, 한국공개특허 10-2012-0098499호("영상의 변환 방법 및 장치, 및 영상의 역변환 방법 및 장치")에는 뢰플러 알고리즘에서 사용되는 삼각 함수에 기초한 값들을 분모가 2의 거듭 제곱 형태인 유리수 값들로 치환한 행렬을 사용하는 구성이 개시되어 있다.In this connection, Korean Patent Laid-Open Publication No. 10-2012-0098499 ("image conversion method and apparatus and image inversion method and apparatus") discloses that values based on the trigonometric function used in the Leupner algorithm are multiplied by a power of 2 Quot; is replaced by a rational number value.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 파이프라이닝에 기초하여 입력 데이터에 대한 이산 여현 변환을 수행하는 이산 여현 변환 장치 및 방법을 제공한다.Disclosure of Invention Technical Problem [8] The present invention provides a DC / DC converter and a DC / DC converter for performing DCT on input data based on pipelining.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 이산 여현 변환 장치는 2개의 덧셈기를 포함하는 데시메이션 산출부 및 2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함하는 삼각 측량 곱셈부를 포함하고, 데시메이션 산출부는 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행하는 것이며, 삼각 측량 곱셈부는 버터플라이 연산이 수행된 입력데이터에 대하여, 순차적으로 이산 여현 변환 계수를 산출한다. 이때, 데시메이션 산출부 및 삼각 측량 곱셈부는 파이프라이닝(pipelining) 방식으로 입력 데이터를 병렬 처리한다.According to a first aspect of the present invention, there is provided a DCT apparatus including a decimation calculation unit including two adders, a triangle unit including two multi-operand adders and two adders, And a triangulation multiplier for sequentially inputting input data, wherein the triangulation multiplier calculates a discrete cosine transform coefficient sequentially for the input data on which the butterfly operation has been performed . At this time, the decimation calculation unit and the triangulation multiplication unit process the input data in parallel by a pipelining method.
또한, 본 발명의 제 2 측면에 따른 이산 여현 변환 장치의 이산 여현 변환 방법은 데시메이션 산출부가 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행하는 단계; 및 삼각 측량 곱셈부가 버터플라이 연산이 수행된 입력데이터에 대하여, 순차적으로 이산 여현 변환 계수를 산출하는 단계를 포함한다. 이때, 데시메이션 산출부는 2개의 덧셈기를 포함하고, 삼각 측량 곱셈부는 2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함하고, 데시메이션 산출부 및 삼각 측량 곱셈부는 파이프라이닝(pipelining) 방식으로 입력 데이터를 병렬 처리한다.According to a second aspect of the present invention, there is provided a DCT transform method of a DCT transformer, comprising: performing a butterfly operation on input data sequentially input by a decimation computation unit; And calculating the discrete cosine transform coefficients sequentially with respect to the input data on which the triple multiplication by the butterfly operation is performed. In this case, the decimation calculation unit includes two adders, the triangulation multiplication unit includes two multi-operand adders and two adders, and the decimation calculation unit and the triangulation and multiplication unit calculate the input data in a pipelining manner Parallel processing.
본 발명은 기존 뢰플러 알고리즘 기반의 이산 여현 변환 장치가 25개에서 48개의 덧셈기를 사용하는 것과 달리 13개의 덧셈기 만을 사용하여, 이산 여현 변환을 수행할 수 있다. 또한, 본 발명은 별도의 대수적 정수 부호 및 양자화 단계 없이 파이프라이닝에 기초한 병렬 처리에 따라 이산 여현 변환을 수행할 수 있어 효율적이다. The present invention can perform discrete cosine transform using only 13 adders, unlike the existing Looper algorithm based DCT using 25 to 48 adders. In addition, the present invention is efficient because it can perform discrete cosine transform according to parallel processing based on pipelining without a separate algebraic integer code and quantization step.
그러므로 본 발명은 스마트 폰과 같은 자원의 제약이 높은 휴대용 기기에서 종래의 이산 여현 변환 장치를 대체하여 사용이 가능하다.Therefore, the present invention can be used as a substitute for a conventional DCT device in portable devices with high resource constraints such as smart phones.
도 1은 본 발명의 일 실시예에 따른 이산 여현 변환 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 이산 여현 변환 장치의 예시도이다.
도 3은 본 발명의 일 실시예에 따른 이산 여현 변환 장치의 동작의 예시도이다.
도 4는 본 발명의 일 실시예에 따른 삼각함수 값의 부호화에 대한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 데시메이션 산출부의 블록도이다.
도 6은 본 발명의 일 실시예에 따른 데시메이션 산출부의 데이터 패스의 예시도이다.
도 7은 본 발명이 일 실시예에 따른 삼각 측량 곱셈부의 블록도이다.
도 8은 본 발명의 일 실시예에 따른 삼각 측량 곱셈부의 데이터 패스의 예시도이다.
도 9는 본 발명의 일 실시예에 따른 이산 여현 변환 장치의 정밀도를 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 이산 여현 변환 장치의 이산 여현 변환 방법의 순서도이다.1 is a block diagram of a DCT unit according to an embodiment of the present invention.
2 is an exemplary diagram of a DCT unit according to an embodiment of the present invention.
3 is an exemplary diagram illustrating an operation of the DCT unit according to an embodiment of the present invention.
FIG. 4 is an exemplary diagram illustrating the encoding of a trigonometric function value according to an exemplary embodiment of the present invention. Referring to FIG.
5 is a block diagram of a decimation calculation unit according to an embodiment of the present invention.
6 is an exemplary diagram of a data path of a decimation calculation unit according to an embodiment of the present invention.
7 is a block diagram of a triangulation multiplier according to an embodiment of the present invention.
8 is an exemplary diagram of a data path of a triangulation multiplier according to an embodiment of the present invention.
9 is an exemplary diagram for explaining the precision of a DCT unit according to an embodiment of the present invention.
10 is a flowchart of a DCT transform method of the DCT transformer according to an embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.
이산 여현 변환은 JPEG, MPEG 및 H.26x 등의 음성 및 영상 정보 압축표준 기술이다. 이때, 이산 여현 변화의 입력 데이터 의 1차원 N-point DCT의 결과 은 아래 [수학식 1]과 같이 정의된다. 이때, 수학식 1에서 m이 0일 때, α 0는 이며, m이 0 외의 다른 값을 가질 때, α m 는 1이 된다. 또한, 가 될 수 있다.Discrete Cosine Transform is a standard for compression of audio and image information such as JPEG, MPEG and H.26x. At this time, the input data of the discrete cosine transform Of one-dimensional N-point DCT Is defined as follows: " (1) " At this time, when m is 0 in Equation (1) ,? 0 is , And when m has a value other than 0 ,? M becomes 1. Also, .
[수학식 1]에 포함된 코사인 값에서 곱셈 연산은 하드웨어 비용이(cost)이 높다. 이러한 문제를 피하기 위하여, 뢰플러(Loeffler) 알고리즘 및 스케일된 이산 여현 변환 알고리즘 등과 같은 종래의 이산 여현 변환 알고리즘은 곱셈 연산의 개수를 최소화한다. The multiplication operation in the cosine value included in Equation (1) is high in hardware cost. To avoid this problem, conventional discrete cosine transformation algorithms such as the Loeffler algorithm and the scaled discrete cosine transform algorithm minimize the number of multiplication operations.
뢰플러 알고리즘은 일반적인 이산 여현 변환 알고리즘에 비하여, 곱셈 연산을 줄인 알고리즘인다. 그러나 1차원의 8-포인트(point) 이산 여현 변환의 경우, 뢰플러 알고리즘은 11번의 곱셈 연산을 수행한다. 하드웨어 사양이 비교적 좋은 PC 등에서는 11번의 곱셈 연산은 문제가 되지 않는다. 그러나 11번의 곱셈 연산은 하드웨어 사양이 비교적 낮은 휴대용 기기에서는 부담이 될 수 있다. The Looplea algorithm is an algorithm that reduces the multiply operation compared to a general discrete cosine transform algorithm. However, in the case of one-dimensional 8-point discrete cosine transform, the Loupe algorithm performs 11 multiplications. For PCs with relatively good hardware specifications, 11 multiplications are not a problem. However, 11 multiplications can be a burden on handheld devices with relatively low hardware specifications.
스케일된 이산 여현 변환 알고리즘은 이산 여현 변환 이후, 양자화(quantization) 단계에서 계산량을 현저하게 줄이기 위하여 사용할 수 있다. 그러나 스케일된 이산 여현 변환 알고리즘은 양자화가 없는 경우, 뢰플러 알고리즘에 비하여 효율적이지 않을 수 있다. 그러므로 일반적인 상황에서는 뢰플러 알고리즘을 채택하고 있다. The scaled discrete cosine transformation algorithm can be used after the discrete cosine transform to significantly reduce the amount of computation in the quantization step. However, the scaled discrete cosine transformation algorithm may not be as efficient as the Loupe algorithm without quantization. Therefore, in the general situation, we adopt the Louffler algorithm.
다음은 도 1 내지 도 9에 참조하여, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)를 설명한다. Hereinafter, a
도 1은 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 블록도이다.1 is a block diagram of a
본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)는 데시메이션 산출부(decimation calculation unit; 110) 및 삼각 측량 곱셈부(trigonometric multiplication unit; 120)를 포함한다.The
이때, 이산 여현 변환 장치(100)는 1차원 이산 여현 변환 가속기일 수 있다. 예를 들어, 이산 여현 변환 장치(100)는 메모리 대역폭이 60비트(bit)인 휴대용 기기를 위한 것일 수 있다. 그러므로 이산 여현 변환 장치(100)는 R(red), G(green), B(blue)로 하나의 픽셀 데이터를 읽기 위하여 24비트를 사용하며, 12비트의 이산 여현 변환 계수를 쓰기 위하여, 36비트를 사용할 수 있다.In this case, the
이산 여현 변환 장치(100)의 데시메이션 산출부(110)는 복수의 덧셈기(adder)를 포함한다. 또한, 이산 여현 변환 장치(100)의 삼각 측량 곱셈부(120)는 복수의 다중-피연산자 덧셈기 및 복수의 덧셈기를 포함한다. 이때, 다중-피연산자 덧셈기는 복수의 캐리 저장 덧셈기(carry save adder; CSA)를 포함하는 트리 및 하나의 개리 예측 덧셈기(carry propagation adder; CPA)를 포함한다.The
도 2는 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 예시도이다.FIG. 2 is an exemplary diagram of a
예를 들어, 도 2를 참조하면, 데시메이션 산출부(110)는 제 1 덧셈기 및 제 2 덧셈기를 포함할 수 있다. 또한, 삼각 측량 곱셈부(120)는 다중-피연산자 덧셈기인 제 3 덧셈기 및 제 4 덧셈기와 제 5 덧셈기 및 제 6 덧셈기를 포함할 수 있다.For example, referring to FIG. 2, the
이때, 제 1 덧셈기, 제 2 덧셈기, 제 5 덧셈기 및 제 6 덧셈기는 2개의 피연산자에 대한 덧셈을 수행할 수 있는 덧셈기 일 수 있다.Here, the first adder, the second adder, the fifth adder, and the sixth adder may be adders capable of performing addition on two operands.
또한, 제 3 덧셈기 및 제 4 덧셈기는 다중-피연산자 덧셈기로 2개를 초과하는 피연산자에 대한 덧셈을 수행할 수 있다. 예를 들어, 삼각 측량 곱셈부(120)는 6개의 피연산자의 덧셈을 수행하는 6-피연산자 덧셈기인 제 3 덧셈기 및 5개의 피연산자의 덧셈을 수행하는 5-피연산자 덧셈기인 제 4 덧셈기를 포함할 수 있다. 즉, 제 3 덧셈기는 5개의 캐리 저장 덧셈기 및 하나의 개리 예측 덧셈기를 포함한다. 또한, 제 4 덧셈기는 4개의 캐리 저장 덧셈기 및 하나의 캐리 예측 덧셈기를 포함할 수 있다. 그러므로 도 2를 참조하면, 이산 여현 변환 장치(100)는 총 13개의 덧셈기를 포함할 수 있다.In addition, the third adder and the fourth adder may perform addition on more than two operands with a multi-operand adder. For example, the
도 3은 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 동작의 예시도이다.3 is an exemplary diagram illustrating an operation of the
예를 들어, 이산 여현 변환 장치(100)는 8개의 입력 데이터(x0, x1, x2, x3, x4, x5, x6, x7)를 8개의 클록 사이클 동안 버퍼(미도시)에 저장할 수 있다. 이때, 입력 데이터는 실수(real number)가 될 수 있다. For example, the
데시메이션 산출부(110)는 먼저, 하나의 클록 사이클 동안 버퍼(미도시)로부터 2개의 데이터 x0 및 x7를 읽고, 제 1 덧셈부 및 제 2 덧셈부를 통하여, 읽은 데이터에 대한 덧셈 연산을 수행하여 a0 및 a7를 산출할 수 있다. 이와 같이, 데시메이션 산출부(110)는 버퍼(미도시)로부터 8개의 입력 데이터를 4개의 클록 사이클 동안 읽을 수 있다. The
9번째 클록 사이클부터 데시메이션 산출부(110) 및 삼각 측량 곱셈부(120)는 동시에 동작하게 된다. 데시메이션 산출부(110)는 9번째 클록 사이클 및 10번째 클록 사이클에 0번째 및 4번째 이산 여현 변환 계수(out 0, out 4)부터 산출할 수 있다. 다음 클록 사이클부터 데시메이션 산출부(110)는 다음 8개의 입력 데이터를 읽어 처리하고, 삼각 측량 곱셈부(120)는 남은 이산 여현 변환 계수를 산출하여 출력할 수 있다. From the ninth clock cycle, the
구체적으로 데시메이션 산출부(110)의 제 1 덧셈부 및 제 2 덧셈부에 의해서 입력된 a0 및 a7이 산출되면, 다음 클록 사이클 동안 삼각 측량 곱셈부(120)는 제 3 덧셈기를 통하여, 파이프라인 구조에 따라 산출된 a0 및 a7를 (a7)c = a7*cos(3π/16)을 산출할 수 있다. 이때, 제 3 덧셈기는 6-피연산자 덧셈기가 될 수 있다. 이때, 데시메이션 산출부(110)는 제 3 덧셈기를 통한 연산과 함께, 다음 a3 및 a4에 대한 연산을 병렬 처리한다.Specifically, when a0 and a7 input by the first adder and the second adder of the
다음 클록 사이클 동안 파이프라인 구조에 따라 이산 여현 변환 장치(100)는 데시메이션 산출부(110)의 제 1 덧셈기 및 제 2 덧셈기와 삼각 측량 곱셈부(120)의 제 3 덧셈기 및 제 4 덧셈기를 통하여 입력 데이터에 대한 처리 및 이산 여현 변환 계수를 산출하는 병렬 처리를 수행할 수 있다.During the next clock cycle, the
그리고 이산 여현 변환 장치(100)는 다음 클록 사이클 동안 데시메이션 산출부(110)의 제 1 덧셈기 및 제 2 덧셈기와 삼각 측량 곱셈부(120)의 제 3 덧셈기, 제 4 덧셈기, 제 5 덧셈기 및 제 6 덧셈기를 통하여, 입력 데이터에 대한 처리 및 이산 여현 변환 계수를 산출하는 병렬 처리를 수행할 수 있다. The
이와 같이, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)는 파이프라인(pipeline) 구조에 따른 시프트(shift) 연산 및 덧셈에 기초하여, 입력 데이터의 이산 여현 변환을 병렬적으로 수행할 수 있다. 즉, 이산 여현 변환 장치(100)는 입력된 데이터를 파이프라이닝(pipelining) 방식을 통하여, 병렬 처리하여 이산 여현 변환을 수행할 수 있다.As described above, the
이때, 이산 여현 변환 장치(100)의 데시메이션 산출부(110)는 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행한다. 또한, 삼각 측량 곱셈부(120)는 데시메이션 산출부(110)로부터 버터플라이 연산이 수행된 입력데이터에 대한 순차적인 연산을 통하여, 이산 여현 변환 개수를 산출한다. At this time, the
한편, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)는 일반적인 삼각 측량 곱셈부(120)에 비하여, 덧셈 및 시프트 연산을 효율적으로 사용하기 위하여, 음수를 최소화한다.Meanwhile, the
일반적으로 삼각 함수를 사용하는 이산 여현 변환 장치(100)에서는 덧셈기 및 시프트 연산기를 효율적으로 연산하기 위하여, 부호화 값의 1과 -1의 수를 제한한다.Generally, the
그러나 이산 여현 변환 장치(100)는 도 4와 같이 삼각 측량 곱셈부(120)에서 사용하는 삼각함수의 값을 부호화하여 사용할 수 있다.However, the
도 4는 본 발명의 일 실시예에 따른 삼각함수 값의 부호화에 대한 예시도이다.FIG. 4 is an exemplary diagram illustrating the encoding of a trigonometric function value according to an exemplary embodiment of the present invention. Referring to FIG.
도 4를 참조하면, 이산 여현 변환 장치(100)는 덧셈기 및 시프트 연산기를 효율적으로 사용하기 위하여, 항의 개수를 6개 이하로 제한한다. 그리고 이산 여현 변환 장치(100)는 6개 이하의 항이 1개의 음수를 포함하거나, 양수 만으로 구성되도록 설계할 수 있다. 그러므로 이산 여현 변환 장치(100)는 음수화 하드웨어를 최소화할 수 있다.Referring to FIG. 4, the
도 5는 본 발명의 일 실시예에 따른 데시메이션 산출부(110)의 블록도이다. 또한, 도 6은 본 발명의 일 실시예에 따른 데시메이션 산출부(110)의 데이터 패스의 예시도이다. 5 is a block diagram of a
앞에서 설명한 바와 같이, 2개의 덧셈기를 포함하는 데시메이션 산출부(110)는 도 5와 같은 구조를 가질 수 있다. 데시메이션 산출부(110)의 데이터 패스(datapath)는 도 6과 같다. As described above, the
도 7은 본 발명이 일 실시예에 따른 삼각 측량 곱셈부(120)의 블록도이다. 또한, 도 8은 본 발명의 일 실시예에 따른 삼각 측량 곱셈부(120)의 데이터 패스의 예시도이다.7 is a block diagram of a
삼각 측량 곱셈부(120)는 앞에서 설명한 바와 같이, 2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함하며, 그 구조는 도 7과 같다. 이때, 삼각 측량 곱셈부(120)에서의 데이터 패스는 도 8과 같다. The
다음은 도 9를 참조하여, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 정밀도를 설명한다. Next, the accuracy of the
도 9는 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 정밀도를 설명하기 위한 예시도이다. 9 is an exemplary diagram for explaining the precision of the
이하에서, 입력 데이터는 2 차원 이산 여현 변환 장치(100)에서 처리된다고 가정한다. 그러므로 입력 데이터는 12비트 정수로 표현될 수 있다. Hereinafter, it is assumed that input data is processed in the two-
덧셈기에 의한 덧셈 연산은 연산 결과의 데이터 크기가 입력 데이터 크기 보다 1 비트 증가된다. 그러므로 데시메이션 산출부(110)의 제 1 덧셈기 및 제 2 덧셈기는 14비트의 크기를 가지게 된다.In the addition operation by the adder, the data size of the operation result is increased by one bit from the input data size. Therefore, the first adder and the second adder of the
삼각 측량 곱셈부(120)는 일반적인 뢰플러 알고리즘에서와 같이, 삼각함수 값의 곱셈 연산을 포함하는 kCn 블록연산을 수행한다. 이때, 도 4와 같이, 삼각 측량 곱셈부(120)에서는 2보다 작은 값만 곱하게 된다. 즉, kCn 블록연산의 결과 값은 kCn 블록의 입력 데이터의 크기보다 최대 1비트 큰 값을 가질 수 있다.The
또한, 삼각 측량 곱셈부(120)는 연산을 수행하기 전에, 삼각 측량 곱셈부(120)의 연산 정밀도를 높이기 위하여, 3비트 왼쪽 시프트 연산을 수행하고, 연산이 종료된 이후, 3비트 오른쪽 시프트 연산을 수행한다.In addition, the
그러므로 삼각 측량 곱셈부(120)에서 제 3 덧셈기 및 제 4 덧셈기는 각각 17bit의 크기를 가지며, 제 5 덧셈기 및 제 6 덧셈기 역시 17bit의 크기를 가질 수 있다.Therefore, in the
이때, 일반적인 뢰플러 알고리즘은 2차원 이산 여현 변환 연산을 수행할 때, 2차원 이산 여현 변환 계수에 1/8을 곱하는 연산을 수행한다. 그러나 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)는 1/8을 곱하는 대신에 앞에서 설명한 3비트 오른쪽 쉬프트 연산을 통하여, 이산 여현 변환 계수를 산출할 수 있다. At this time, when performing a 2D discrete cosine transform operation, a general Looper algorithm performs an operation of multiplying a 2D DCT coefficient by 1/8. However, the
다음은 도 10을 참조하여, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 이산 여현 변환 방법을 설명한다.10, a DCT transform method of the
도 10은 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100)의 이산 여현 변환 방법의 순서도이다.10 is a flowchart of a DCT transform method of the
이산 여현 변환 장치(100)는 데시메이션 산출부(110)를 통하여 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행한다(S1000). 이때, 데시메이션 산출부(110)는 2개의 덧셈기를 포함한다.The
또한, 이산 여현 변환 장치(100)는 삼각 측량 곱셈부(120)를 통하여, 상기 버터플라이 연산이 수행된 입력데이터에 대하여, 순차적으로 이산 여현 변환 계수를 산출한다(S1010). 그리고 삼각 측량 곱셈부(120)는 2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함한다.In addition, the
예를 들어, 덧셈기는 2개의 피연산자를 처리하기 위한 덧셈기이다. 또한, 다중-피연산자 덧셈기는 하나의 5개의 피연산자를 처리하기 위한 덧셈기 및 하나의 6개의 피 연산자를 처리하기 위한 덧셈기를 포함할 수 있다. 또한, 다중-피연산자 덧셈기는 복수의 캐리 저장 덧셈기(carry save adder) 트리 및 하나의 개리 예측 덧셈기 (carry propagation adder)를 포함할 수 있다.For example, the adder is an adder for processing two operands. In addition, the multi-operand adder may include an adder for processing one of the five operands and an adder for processing one of the six operands. In addition, the multi-operand adder may include a plurality of carry save adder trees and a carry propagation adder.
이때, 데시메이션 산출부(110) 및 상기 삼각 측량 곱셈부(120)는 파이프라이닝 방식으로 입력 데이터를 병렬 처리할 수 있다.At this time, the
이와 같이, 본 발명의 일 실시예에 따른 이산 여현 변환 장치(100) 및 방법은 기존 뢰플러 알고리즘 기반의 이산 여현 변환 장치가 25개에서 48개의 덧셈기를 사용하는 것과 달리 13개의 덧셈기 만을 사용하여, 이산 여현 변환을 수행할 수 있다. 또한, 이산 여현 변환 장치(100) 및 방법은 별도의 대수적 정수 부호 및 양자화 단계 없이 파이프라이닝에 기초한 병렬 처리에 따라 이산 여현 변환을 수행할 수 있어 효율적이다. As described above, in the
그러므로 이산 여현 변환 장치(100) 및 스마트 폰과 같은 자원의 제약이 높은 휴대용 기기에서 방법은 종래의 뢰플러 알고리즘 기반의 이산 여현 변환 장치를 대체 사용이 가능하다.Therefore, in the portable devices having high resource constraints such as the
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능한 기록 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable recording medium may also include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
100: 이산 여현 변환 장치
110: 데시메이션 산출부
120: 삼각 측량 곱셈부100: Discrete cosine transformer
110: decimation calculation unit
120: triangular surveying multiplication unit
Claims (8)
2개의 덧셈기를 포함하는 데시메이션 산출부 및
2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함하는 삼각 측량 곱셈부를 포함하고,
상기 데시메이션 산출부는 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행하는 것이며,
상기 삼각 측량 곱셈부는 상기 버터플라이 연산이 수행된 입력데이터에 대하여, 순차적으로 이산 여현 변환 계수를 산출하되,
상기 데시메이션 산출부 및 상기 삼각 측량 곱셈부는 파이프라이닝(pipelining) 방식으로 상기 입력 데이터를 병렬 처리하는, 이산 여현 변환 장치.In the DC-DC converter,
A decimation calculation unit including two adders, and
A triangulation multiplier including two multi-operand adders and two adders,
Wherein the decimation calculation unit performs a butterfly operation on input data sequentially input,
Wherein the triangulation multiplier multiplies the input data on which the butterfly operation has been performed by a discrete cosine transform coefficient,
Wherein the decimation calculation unit and the triangulation multiplication unit process the input data in parallel by a pipelining method.
상기 덧셈기는 2개의 피연산자를 처리하기 위한 덧셈기이며,
상기 다중-피연산자 덧셈기는 하나의 5개의 피연산자를 처리하기 위한 덧셈기 및 하나의 6개의 피 연산자를 처리하기 위한 덧셈기를 포함하며, 복수의 캐리 저장 덧셈기(carry save adder) 트리 및 하나의 개리 예측 덧셈기 (carry propagation adder)를 포함하는 것인, 이산 여현 변환 장치.The method according to claim 1,
The adder is an adder for processing two operands,
Wherein the multi-operand adder comprises an adder for processing one operand of five and an adder for processing one operand of six, and further comprising a plurality of carry save adder trees and a gait predictor < RTI ID = 0.0 > carry propagation adder).
상기 이산 여현 변환 장치는 뢰플러(Loeffler) 알고리즘에 기초한 것인, 이산 여현 변환 장치.The method according to claim 1,
Wherein the DCT apparatus is based on a Loeffler algorithm.
상기 삼각 측량 곱셈부는 삼각 함수의 값에 대하여, 6개 이하의 항이 포함되도록 하는 부호화를 수행하는, 이산 여현 변환 장치. The method according to claim 1,
Wherein the triangulation multiplier performs encoding such that six or less terms are included in the value of the trigonometric function.
상기 삼각 측량 곱셈부는 상기 6개 이하의 항이 0 또는 1 개의 음수를 포함하도록 부호화를 수행하는, 이산 여현 변환 장치. 5. The method of claim 4,
Wherein the triangulation multiplier performs encoding such that the six or less terms include zero or one negative number.
데시메이션 산출부가 순차적으로 입력받은 입력 데이터에 대한 버터플라이 연산을 수행하는 단계; 및
삼각 측량 곱셈부가 상기 버터플라이 연산이 수행된 입력데이터에 대하여, 순차적으로 이산 여현 변환 계수를 산출하는 단계를 포함하되,
상기 데시메이션 산출부는 2개의 덧셈기를 포함하고,
상기 삼각 측량 곱셈부는 2개의 다중-피연산자 덧셈기 및 2개의 덧셈기를 포함하고,
상기 데시메이션 산출부 및 상기 삼각 측량 곱셈부는 파이프라이닝(pipelining) 방식으로 상기 입력 데이터를 병렬 처리하는, 이산 여현 변환 방법. In a DCT transform method of a DCT transformer,
Performing a butterfly operation on the input data sequentially input by the decimation calculation unit; And
Wherein the triangulation multiplication unit sequentially calculates discrete cosine transform coefficients for the input data on which the butterfly operation has been performed,
Wherein the decimation calculation unit includes two adders,
Wherein the triangulation multiplier comprises two multi-operand adders and two adders,
Wherein the decimation calculation unit and the triangulation multiplication unit process the input data in parallel by a pipelining method.
상기 덧셈기는 2개의 피연산자를 처리하기 위한 덧셈기이며,
상기 다중-피연산자 덧셈기는 하나의 5개의 피연산자를 처리하기 위한 덧셈기 및 하나의 6개의 피 연산자를 처리하기 위한 덧셈기를 포함하며,
복수의 캐리 저장 덧셈기(carry save adder) 트리 및 하나의 개리 예측 덧셈기 (carry propagation adder)를 포함하는 것인, 이산 여현 변환 방법.The method according to claim 6,
The adder is an adder for processing two operands,
Said multi-operand adder comprising an adder for processing one of the five operands and an adder for processing one of the six operands,
A plurality of carry save adder trees, and a carry propagation adder. ≪ RTI ID = 0.0 > A < / RTI >
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160056997A KR101722215B1 (en) | 2016-05-10 | 2016-05-10 | Apparatus and method for discrete cosine transform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160056997A KR101722215B1 (en) | 2016-05-10 | 2016-05-10 | Apparatus and method for discrete cosine transform |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101722215B1 true KR101722215B1 (en) | 2017-03-31 |
Family
ID=58500982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160056997A KR101722215B1 (en) | 2016-05-10 | 2016-05-10 | Apparatus and method for discrete cosine transform |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101722215B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997497B2 (en) | 2017-09-28 | 2021-05-04 | Samsung Electronics Co., Ltd. | Calculation device for and calculation method of performing convolution |
US11403516B2 (en) | 2017-11-09 | 2022-08-02 | Samsung Electronics Co., Ltd. | Apparatus and method for processing convolution operation of neural network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150050680A (en) * | 2013-10-30 | 2015-05-11 | 고려대학교 산학협력단 | Device and method for discrete cosine transform |
-
2016
- 2016-05-10 KR KR1020160056997A patent/KR101722215B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150050680A (en) * | 2013-10-30 | 2015-05-11 | 고려대학교 산학협력단 | Device and method for discrete cosine transform |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997497B2 (en) | 2017-09-28 | 2021-05-04 | Samsung Electronics Co., Ltd. | Calculation device for and calculation method of performing convolution |
US11403516B2 (en) | 2017-11-09 | 2022-08-02 | Samsung Electronics Co., Ltd. | Apparatus and method for processing convolution operation of neural network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860922B2 (en) | Sparse convolutional neural network accelerator | |
KR101036731B1 (en) | Reversible transform for lossy and lossless 2-d data compression | |
KR101131757B1 (en) | Transform design with scaled and non-scaled interfaces | |
CA2653692C (en) | Reduction of errors during computation of inverse discrete cosine transform | |
JP3964765B2 (en) | Improved block transform and quantization for image and video coding | |
JP5113067B2 (en) | Efficient multiplication-free computation for signal and data processing | |
CN101375274B (en) | Transforms with common factors | |
KR100331136B1 (en) | A computer system performing an inverse cosine transfer function for use with multimedia information | |
US20130195177A1 (en) | Method and device for the transformation and method and device for the reverse transformation of images | |
US20140072240A1 (en) | Method and apparatus for converting an image, and method and apparatus for inverse converting an image | |
KR20090071823A (en) | Arithmetic apparatus for multi-function unit and method | |
KR101722215B1 (en) | Apparatus and method for discrete cosine transform | |
RU2009102250A (en) | ERROR REDUCTION DURING CALCULATION OF REVERSE DISCRETE COSINUS TRANSFORMATION | |
KR101527103B1 (en) | Device and method for discrete cosine transform | |
WO2001008001A1 (en) | Integer discrete cosine transform using integer operations | |
JP6555814B2 (en) | Orthogonal transformation processing device, inverse orthogonal transformation processing device, encoding device, decoding device, and computer program | |
Kunchigi et al. | Simulation of Vedic multiplier in DCT applications | |
Wahid et al. | Error-free arithmetic for discrete wavelet transforms using algebraic integers | |
CN101729886B (en) | Method, system and device for decoding videos | |
CN104113763A (en) | Optimized integer transform radix applied to image coding | |
Nageswari et al. | Design of a scalable approximate DCT architecture for efficient HEVC compliant video coding applications | |
Schmalz et al. | Limits on computational precision of image compression transformations | |
US20190166383A1 (en) | Reduced multiplicative complexity discrete cosine transform (dct) circuitry | |
CN102281445A (en) | Video coding 8*8 integer transformation method | |
CN110264412A (en) | Image processing method, device, terminal device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200106 Year of fee payment: 4 |