KR20100023123A - A 2phase pipelining buffer management of idwt for the reusage of convolved products - Google Patents

A 2phase pipelining buffer management of idwt for the reusage of convolved products Download PDF

Info

Publication number
KR20100023123A
KR20100023123A KR1020080081721A KR20080081721A KR20100023123A KR 20100023123 A KR20100023123 A KR 20100023123A KR 1020080081721 A KR1020080081721 A KR 1020080081721A KR 20080081721 A KR20080081721 A KR 20080081721A KR 20100023123 A KR20100023123 A KR 20100023123A
Authority
KR
South Korea
Prior art keywords
buffer
multiplication
stored
addition
line
Prior art date
Application number
KR1020080081721A
Other languages
Korean (ko)
Inventor
공진흥
고병수
손두창
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Priority to KR1020080081721A priority Critical patent/KR20100023123A/en
Publication of KR20100023123A publication Critical patent/KR20100023123A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/439Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

PURPOSE: A two phase pipelining and buffer management method of IDWT for the reuse of convolution products is provided to improve processing performance by two phase pipeline operation and to reduce buffer storage space, computing time, and power consumption by storing only necessary multiplication results in a buffer among generated multiplication results and reusing duplicated multiplication results. CONSTITUTION: A two phase pipelining and buffer management method of IDWT for the reuse of convolution products includes the following method: a method of pipeline operation for the increase of processing amounts; a method of buffer management which reduces buffer size and power consumption by not storing and reusing unnecessary multiplication result; a method for storing generated multiplication results by re-arranging the results in a buffer in order that sequential search of multiplication results required in an addition operator is possible.

Description

컨볼루션 곱셈결과의 재사용을 위한 역방향 이산 웨이블릿 변환기의 2단 파이프라인 및 버퍼 관리 방법{A 2phase pipelining buffer management of IDWT for the reusage of convolved products}A two-phase pipelining buffer management of IDWT for the reusage of convolved products}

본 발명은 역방향 이산 웨이블릿 변환기의 VLSI의 구조에 관한 것으로, 컨볼루션 기반의 역방향 이산 웨이블릿 변환에서 필요한 곱셈결과(Product)만을 버퍼에 저장하고 중복되는 곱셈결과(Product)는 재사용하여 버퍼의 저장공간 및 연산시간 그리고 전력소모를 줄이며, 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인의 사용 효율(Utilization)을 높여 처리성능을 올리는 방법에 관한 것이다.The present invention relates to the structure of the VLSI of the backward discrete wavelet transformer, and stores only the multiplication result (Product) necessary for the convolution based backward discrete wavelet transform and reuses the redundant multiplication result (Product) in the buffer storage space and It is a method to increase the processing performance by reducing the computation time and power consumption, and increasing the utilization efficiency of the multi-line pipeline of multi-line, multiplication, storage, retrieval and addition.

근래 들어 멀티미디어 분야는 VOD, HDTV, DVD등 여러 형태로 소비자들에게 선보이고 있는데, 필요로 하는 데이터의 전송량은 아날로그를 훨씬 넘어서고 있는 실정이다. 따라서 데이터의 저장, 전송 등 많은 부분에서 보다 효율적으로 사용되기 위해 영상신호의 처리에 있어서 압축이 매우 중요하다. 그 중 이산 웨이블릿 변환은 영상 압축 분야에서 그 우수성이 인정되어 JPEG2000, MPEG-4 등 매우 많은 분야에서 사용되고 있다. 그러나 이산 웨이블릿 변환은 변환 방식의 복잡도 때문에 휴대용 디지털기기 등에서 영상의 실시간 처리를 위해서는 하드웨어의 구현이 필수적으로 요구됨은 물론 하드웨어 비용과 전력소모가 적고 처리 속도 또한 빨라야 한다.Recently, multimedia field has been introduced to consumers in various forms such as VOD, HDTV, DVD, etc., and the amount of data required is far exceeding analog. Therefore, compression is very important in the processing of video signals to be used more efficiently in many areas such as data storage and transmission. Among them, the discrete wavelet transform has been recognized for its superiority in the field of image compression and is used in many fields such as JPEG2000 and MPEG-4. However, due to the complexity of the conversion method, discrete wavelet transform requires not only hardware implementation but also low hardware cost, power consumption, and fast processing speed for real-time processing of images in portable digital devices.

먼저 제1도 와 같이 컨볼루션 기반의 2차원 이산 웨이블릿 변환의 기본적인 동작을 살펴보면, 정지영상의 입력 데이터들에 대해서 가로방향으로 고대역 및 저대역 필터연산 후, 다운샘플링 과정을 거치게 된다. 이를 다시 세로방향으로 같은 동작을 반복하게 되면 1레벨의 2차원 이산 웨이블릿 변환이 완료가 된다. 여기서 L1L1에 대해 위 동작을 2번 반복하면 3레벨까지의 2차원 이산 웨이블릿 변환이 완료가 된다. 그리고 컨볼루션 기반의 2차원 역방향 이산 웨이블릿 변환의 기본적인 동작은 제2도 와 같다. 3레벨의 서브밴드 L3L3, L3H3, H3L3, H3H3를 입력으로 받아 업샘플링 과정을 거친 후, 세로방향으로 저대역/고대역 필터연산을 거치게 된다. 그리고 저대역/고대역 필터연산을 거친 2개의 서브밴드를 덧셈을 하여 하나의 서브밴드가 되면 세로방향 변환이 완료된다. 이를 다시 가로방향으로 같은 동작을 반복하게되면 3레벨의 2차원 역방향 이산 웨이블릿 변환이 완료가 된다. 여기서 생성된 L2L2와 L2H2, H2L2, H2H2를 다시 위의 동작을 2번 반복하면 최종 복원이미지를 얻을 수 있다.First, as shown in FIG. 1, the basic operation of the convolution-based 2D discrete wavelet transform is performed after the high-band and low-band filter operations in the horizontal direction with respect to the input data of the still image, followed by a downsampling process. If the same operation is repeated in the vertical direction again, one-level two-dimensional discrete wavelet transform is completed. If the above operation is repeated twice for L 1 L 1 , the two-dimensional discrete wavelet transform up to three levels is completed. And the basic operation of the convolution-based 2D inverse discrete wavelet transform is shown in FIG . The three-level subbands L 3 L 3 , L 3 H 3 , H 3 L 3 , and H 3 H 3 are input and subjected to up-sampling, followed by a low-band and high-band filter operation in the vertical direction. In addition, two subbands that have undergone low / high band filter operations are added to form a single subband, thereby completing vertical conversion. If the same operation is repeated in the horizontal direction again, the three-level two-dimensional inverse discrete wavelet transform is completed. L 2 L 2 , L 2 H 2 , H 2 L 2 , and H 2 H 2 generated here can be repeated twice to obtain the final reconstructed image.

이산 웨이블릿 변환기의 기존 구조를 살펴보면, 크게 컨볼루션 기반의 구조와 리프팅 기반의 구조로 나뉜다. 리프팅 기반의 구조는 컨볼루션 기반의 구조에 비해 곱셈연산량을 줄일 수 있는 반면, 하드웨어 구조가 복잡하다. 또한 리프팅 기반의 구조는 임계 경로(critical path)가 길기 때문에 초기 지연시간이 길어져 계 산속도가 저하된다. 컨볼루션 기반의 구조는 리프팅기반의 구조에 비해 곱셈연산량은 많지만 지연시간이 짧아 계산속도가 빠르다. 컨볼루션 기반의 cascaded 구조는 레벨이나 라인단위를 다중 프로세싱 유닛으로 동시에 연산을 처리하므로 계산속도는 빠르다. 하지만 각각의 프로세싱 유닛은 필터계수 길이만큼의 곱셈-덧셈연산기를 가지고 있어야 하므로 하드웨어 복잡도가 증가한다. 컨볼루션 기반의 non-cascaded 구조는 레벨이나 라인단위의 연산을 하나의 프로세싱 유닛으로 동작하는 구조로서 컨볼루션 기반의 cascaded 구조에 비해 계산속도는 느리지만 제어와 하드웨어 구조가 간단하다. 컨볼루션 기반의 non-cascaded 구조는 시스톨릭(systolic)구조와 병렬(parallel)구조로 다시 나뉜다. 시스톨릭 구조는 계산속도가 병렬구조에 비해 빠르지만 지연시간이 길고 파이프라인 동작이 어렵다. 하지만 병렬구조는 시스톨릭구조에 비해 계산속도는 느리지만 지연시간이 짧고 하드웨어 복잡도가 상대적으로 간단하며 파이프라인 동작이 용이하다.Looking at the existing structure of the discrete wavelet converter, it is divided into a convolution based structure and a lifting based structure. Lifting-based structures can reduce the amount of multiplication compared to convolution-based structures, while the hardware structure is complex. In addition, the lifting-based structure has a long critical path, which results in a long initial delay and a slow calculation speed. Convolution-based structures have more multiplication operations than lifting-based structures, but their computation time is faster due to the shorter delay time. The convolution-based cascaded structure speeds up computation by processing multiple levels or line units simultaneously. However, each processing unit must have a multiply-add operator equal to the filter coefficient length, thereby increasing hardware complexity. Convolution-based non-cascaded structures operate at the level or line level as a single processing unit. Although the calculation speed is slower than the convolution-based cascaded structures, the control and hardware structure is simple. Convolution-based non-cascaded structures are subdivided into systolic and parallel structures. The systolic structure is faster than the parallel structure, but the delay time is long and the pipeline operation is difficult. However, parallel architectures have slower computational speeds than systolic ones, but have lower latency, relatively simple hardware complexity, and easier pipeline operation.

첫번째는, 컨볼루션 기반 이산 웨이블릿 변환기 중 non-cascaded의 병렬(parallel)구조는 크기가 작고 구조가 간단하며 효율적인 파이프라인 동작이 가능하여 고속연산에 적합하다. 먼저, 제3도 와 같이 컨볼루션 필터연산은 입력 픽셀데이터와 필터계수와의 곱셈연산과 이들의 덧셈연산으로 이루어진다. 컨볼루션 필터연산은 픽셀데이터 당 필터계수들과 곱셈연산으로 곱셈결과를 생성하고, 생성된 곱셈결과들의 덧셈연산으로 필터연산처리한다. 따라서 컨볼루션 필터연산은 곱셈연산과 덧셈연산간의 라인단위 2단 파이프라인동작에 적합하다.First, among the convolution-based discrete wavelet converters, the non-cascaded parallel structure is suitable for high-speed computation because of its small size, simple structure, and efficient pipeline operation. First, as shown in FIG. 3 , the convolution filter operation is composed of a multiplication operation of input pixel data and a filter coefficient and addition operation thereof. The convolution filter operation generates a multiplication result by the filter coefficients per pixel data and a multiplication operation, and performs a filter operation by the addition operation of the generated multiplication results. Therefore, the convolution filter operation is suitable for the line-level two-stage pipeline operation between multiplication and addition.

두번째는, 위의 상술한 바와 같이 컨볼루션 기반의 2차원 역방향 이산 웨이블릿 변환기는 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인으로 동작한다. 따라서 곱셈결과들을 저장할 버퍼가 필요하다. 컨볼루션 연산에서 Daubechies(9/7)필터 중 고대역 필터는 픽셀데이터와 9번의 곱셈연산을 하고, 저대역 필터는 픽셀데이터와 7번의 곱셈연산을 한다. 따라서 라인의 크기가 N일 때, 요구되는 버퍼의 크기는 저대역 필터연산 시 7*N이고, 고대역 필터연산 시 9*N이다. 따라서 버퍼의 크기가 너무 커지는 문제가 발생하므로 버퍼의 크기를 효과적으로 줄일 수 있는 방법이 필요하다.Secondly, as described above, the convolution-based two-dimensional inverse discrete wavelet transformer operates as a line-by-line two-stage pipeline of multiplication, storage, retrieval, and addition. Therefore, we need a buffer to store the multiplication results. In the convolution operation, among the Daubechies (9/7) filters, the high-band filter performs 9 multiplications with the pixel data, and the low-band filter performs 7 multiplications with the pixel data. Therefore, when the line size is N, the required buffer size is 7 * N for the low pass filter operation and 9 * N for the high pass filter operation. Therefore, there is a problem that the size of the buffer becomes too large, so a method that can effectively reduce the size of the buffer is needed.

세번째는, 위의 상술한 바와 같이 이산 웨이블릿 변환의 처리성능을 높이기 위해 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인으로 동작한다. 곱셈&저장단계에서는 픽셀데이터 당 필터계수와의 한번의 병렬곱셈으로 필요한 곱셈결과(Product)들이 생성이 된다. 따라서 곱셈량은 저대역/고대역 필터연산 시 각각 7/9번에서 병렬곱셈 1번으로 줄어든다. 그러나 덧셈량은 변화가 없으므로 덧셈연산의 속도가 전체 파이프라인의 성능에 많은 영향을 미치게 된다. 덧셈연산기의 처리속도를 높이기 위해 덧셈연산기의 병렬화가 요구된다. 또한 병렬화된 덧셈기는 곱셈결과들을 고속 검색할 수 있어야 한다. Third, as described above, in order to improve the processing performance of the discrete wavelet transform, it operates as a line-level two-stage pipeline of multiplication & storage and retrieval & addition. In the multiplication & storage step, the necessary multiplication products (Product) are generated by one parallel multiplication with the filter coefficient per pixel data. Therefore, the multiplication amount is reduced from 7/9 to 1 parallel multiplication in the low and high band filter operations. However, since the amount of addition remains unchanged, the speed of the addition operation greatly affects the performance of the entire pipeline. In order to increase the processing speed of the add operator, parallelization of the add operator is required. In addition, the parallelized adder must be able to retrieve multiplication results quickly.

본 발명은 상기한 문제점을 해결하기 위한 컨볼루션 기반의 역방향 이산 웨이블릿 변환기에서 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인 동작으로 처리성능을 높이고, 곱셈결과(Product)의 재사용을 통해 곱셈연산이 중복되지 않도록 하여 버퍼의 크기, 전력 소모 및 연산처리시간을 줄이기 위한 버퍼 및 버퍼관리기법을 제공함에 그 목적이 있다.In order to solve the above problems, the present invention improves processing performance by a line-by-line two-stage pipeline operation of multiplication, storage, retrieval, and addition in a convolution-based backward discrete wavelet converter, and multiplies through reuse of a product. The purpose of the present invention is to provide a buffer and buffer management technique for reducing the size, power consumption, and processing time of a buffer by avoiding duplication of operations.

위의 상술한 첫 번째 문제인 곱셈연산과 덧셈연산간의 라인단위 2단 파이프라인 동작을 위해서는 곱셈결과를 저장할 버퍼가 필요하다. 그리고 버퍼는 인터리빙 방식의 동작을 위해 2개로 구성한다. 먼저 라인단위의 픽셀데이터를 필터계수들과 병렬곱셈하여 곱셈결과들을 생성, 버퍼에 저장한다. 버퍼에 저장된 곱셈결과들을 검색해서 덧셈연산으로 컨볼루션 연산을 끝내며, 동시에 새로운 라인단위의 픽셀데이터를 병렬곱셈하여 다른 버퍼에 인터리빙 저장한다. 따라서 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인 동작이 가능하여 연산처리 능력을 향상시킨다.In order to perform the above-described first problem, the multi-stage pipeline operation between the multiplication operation and the addition operation, a buffer for storing the multiplication result is required. In addition, two buffers are configured for interleaving operation. First, the pixel data in line unit is multiplied in parallel with the filter coefficients to generate the multiplication results and store them in the buffer. The multiplication results stored in the buffer are retrieved and the convolution operation is completed by the addition operation. At the same time, the new line-by-line pixel data is parallel-multiplied and interleaved in another buffer. Thus, multi-line pipeline operation of multiplication, storage, retrieval, and addition is possible, which improves computational processing power.

위의 상술한 두번째 문제를 해결하기 위해 연산에 사용되는 필터를 살펴볼 필요가 있다. 역방향 이산 웨이블릿 변환의 경우 Daubechies(9/7)필터 중 저대역 필터는 7탭(tab), 고대역 필터는 9탭(tab)이다. 그리고 제4도 와 같이 필터계수의 대칭성을 이용하여 곱셈결과(Product)들을 재사용하면 버퍼에 저장될 곱셈결과(Product)들이 저대역 필터연산 시 7개 → 4개, 고대역 필터연산 시 9개 → 5개로 줄어든다. 제5도 와 같이 저대역 필터연산 시 업샘플링으로 추가된 픽셀데이터는 값이 0이다. 따라서 덧셈연산 시 불필요하므로 버퍼에 저장하지 않고 연산에 필요한 곱셈결과만 버퍼에 저장한다. 따라서 홀수번째 픽셀데이터 p(2i+1)와 필터계수들과의 곱셈결과는 항상 0이므로 버퍼에 저장하지 않는다. 그리고 짝수번째 픽셀데이터 p(2i)와 필터계수들과의 곱셈결과만 버퍼에 저장한다. 제6도 와 같이 고대역 필터연산 시 업샘플링으로 추가된 픽셀데이터는 값이 0이다. 따라서 덧셈연산 시 불필요하므로 버퍼에 저장하지 않고 연산에 필요한 곱셈결과만 버퍼에 저장한다. 따라서 짝수번째 픽셀데이터 p(2i+1)와 필터계수들과의 곱셈결과는 항상 0이므로 버퍼에 저장하지 않는다. 그리고 홀수번째 픽셀데이터 p(2i)와 필터계수들과의 곱셈결과만 버퍼에 저장한다. 따라서 저장해야할 곱셈결과들이 저대역 필터연산 시 4*N(라인크기)개 → 4*(N/2)개, 고대역 필터연산 시 5*N(라인크기)개 → 5*(N/2)개 만큼 줄어들게 된다. 즉, 픽셀데이터 당 저장해야할 곱셈결과(Product)들이 저대역 필터연산 시 7*N개 → 2*N개로 줄어들고, 고대역 필터연산 시 모두 9*N개 → 5*(N/2)개로 줄어들게 된다. 따라서 덧셈연산 시 중복되는 곱셈결과(Product)를 재사용하여 불필요한 곱셈연산(약 40%)을 하지 않음으로써 처리시간 및 전력소모를 줄이게 된다.To solve the above-mentioned second problem, we need to look at the filter used in the operation. In the case of inverse discrete wavelet transform, among the Daubechies (9/7) filters, the low band filter is 7 taps and the high band filter is 9 tabs. And, as shown in Fig. 4, if the products are reused using the symmetry of the filter coefficients, the products to be stored in the buffer are 7 → 4 for the low pass filter operation and 9 for the high pass filter operation → Reduced to five. As shown in FIG. 5, the pixel data added by upsampling during low-band filter operation has a value of zero. Therefore, it is unnecessary for the addition operation. Therefore, only the multiplication result necessary for the operation is stored in the buffer. Therefore, the result of multiplying the odd-numbered pixel data p (2i + 1) and the filter coefficients is always 0 and thus is not stored in the buffer. Only the multiplication result of the even-numbered pixel data p (2i) and the filter coefficients is stored in the buffer. As shown in FIG. 6, pixel data added by upsampling during high-band filter operation has a value of zero. Therefore, it is unnecessary for the addition operation. Therefore, only the multiplication result necessary for the operation is stored in the buffer. Therefore, the result of the multiplication of the even-numbered pixel data p (2i + 1) and the filter coefficients is always 0, so it is not stored in the buffer. Only the multiplication result of the odd-numbered pixel data p (2i) and the filter coefficients is stored in the buffer. Therefore, the multiplication results to be stored are 4 * N (line size) → 4 * (N / 2) for low band filter operation, 5 * N (line size) → 5 * (N / 2) for high band filter operation Will be reduced by. That is, the product to be stored per pixel data is reduced to 7 * N → 2 * N in the low band filter operation, and 9 * N → 5 * (N / 2) in the high band filter operation. . Therefore, the redundant multiplication result (Product) is reused during the addition operation, thereby avoiding unnecessary multiplication operation (about 40%), thereby reducing processing time and power consumption.

위의 상술한 바와 같이 곱셈연산과 덧셈연산간의 라인단위 2단 파이프라인의 효율을 높이기 위해서는 곱셈연산과 덧셈연산의 처리량(Throughput)이 비슷해야한다. 곱셈연산은 필터에 상관없이 하나의 픽셀데이터와 필터계수들과의 병렬곱셈을 1사이클에 처리하므로 라인의 크기가 N일 경우 N사이클이 소요된다. 덧셈연산은 저대역 필터연산 시 7개의 곱셈결과(Product)를 버퍼에서 검색해야하고, 고대역 필터연산 시 9개의 곱셈결과(Product)를 버퍼에서 검색해야 한다. 따라서 저대역 필터연산 시 덧셈연산은 제7도 와 같이 N/2(라인크기) x 7(곱셈결과)이므로 약 3.5N사이클이 소요된다. 고대역 필터연산 시 덧셈연산은 N/2(라인크기) x 9(곱셈결과)이므로 약 4.5N사이클이 소요된다. 따라서 덧셈연산의 처리량을 곱셈연산과 균형을 맞추기 위해서는 덧셈연산기의 병렬화가 요구된다. 그리고 덧셈연산기는 각 버퍼에서 동시에 곱셈결과(Product)를 검색해야 하므로 버퍼 병렬화가 필요하다. 또한 덧셈연산기의 버퍼검색을 고속화하기 위해 곱셈결과들을 순차적으로 정렬시켜 버퍼에 저장한다. 결과적으로 덧셈연산기의 고속화를 통해 곱셈연산과 덧셈연산간의 파이프라인의 사용 효율을 높이고, 그에 따라 전체 연산의 처리량이 증가하게 된다.As described above, in order to increase the efficiency of the line-level two-stage pipeline between the multiplication operation and the addition operation, the throughput of the multiplication operation and the addition operation should be similar. The multiplication operation processes the parallel multiplication of one pixel data and the filter coefficients in one cycle regardless of the filter, so it takes N cycles when the line size is N. In addition, the low-pass filter operation requires retrieving seven multiplication results (Product) from the buffer, and the high-band filter operation requires retrieving nine multiplication results (Product) from the buffer. Thus, because low-pass filter operation during addition operations is N / 2 (line size) x 7 (multiplication results) as in claim 7 also takes about 3.5N cycle. In the high-band filter operation, the addition operation takes about 4.5N cycles since N / 2 (line size) x 9 (multiplication result). Therefore, in order to balance the throughput of the addition operation with the multiplication operation, the parallelization of the addition operation is required. The addition operator needs to retrieve the product from each buffer at the same time, so buffer parallelism is required. Also, in order to speed up the buffer search of the addition operator, the multiplication results are sequentially sorted and stored in the buffer. As a result, the speeding up of the addition operator increases the efficiency of using the pipeline between the multiplication operation and the addition operation, thereby increasing the throughput of the entire operation.

본 발명에 의해 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인 동작으로 처리성능을 높였다. 우선 생성된 곱셈결과(Product)들 중 필요한 곱셈결과(Product)만을 버퍼에 저장하고 중복되는 곱셈결과(Product)는 재사용하여 버퍼의 저장공간, 연산시간 및 전력소모를 줄인다. 병렬덧셈 연산기에서 필요한 곱셈결과(Product)를 고속순차검색이 가능하도록 재정렬하여 저장하였다. 그 결과, 곱셈&저장과 검색&덧셈의 컨볼루션 2단 파이프라인의 사용 효율을 높였다.According to the present invention, the performance of the multi-line multi-stage pipeline operation of multiplication, storage, retrieval and addition is improved. First, only the necessary multiplication results (Product) among the generated multiplication results (Product) are stored in the buffer, and the redundant multiplication results (Product) are reused to reduce the storage space, operation time and power consumption of the buffer. The multiplication result (Product) needed by the parallel addition operator is rearranged and stored for fast sequential retrieval. As a result, we increased the efficiency of the convolutional two-stage pipeline of multiplication, storage, retrieval, and addition.

위의 상술한 바와 같이 곱셈연산과 덧셈연산간의 라인단위 2단 파이프라인의 동작은 제8도 와 같다. 먼저 처리하고자 하는 첫번째 라인의 픽셀데이터를 필터계수들과 곱셈연산하면 곱셈결과들이 생성된다. 생성된 곱셈결과들은 버퍼A에 저장된다. 그리고 다음 라인의 픽셀데이터들이 필터계수들과 곱셈연산을 하여 버퍼B에 저장되고, 동시에 덧셈연산기는 버퍼A에서 필요한 곱셈결과들을 검색해 덧셈연산하여 컨볼루션 연산을 처리한다. 다음 라인의 처리에 있어서는 곱셈결과들이 다시 버퍼A에 저장되고, 검색은 버퍼B에서 이루어진다. 이와 같이 2개의 버퍼가 인터리빙 방식으로 동작함으로써 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인 동작으로 연산처리성능을 향상시킨다.As described above, the operation of the line-level two-stage pipeline between the multiplication operation and the addition operation is shown in FIG . 8 . First, multiply the pixel data of the first line to be processed with the filter coefficients to generate the multiplication results. The generated multiplication results are stored in the buffer A. The pixel data of the next line is multiplied with the filter coefficients and stored in the buffer B. At the same time, the addition operator retrieves the necessary multiplication results from the buffer A and adds them to process the convolution operation. In the processing of the next line, the multiplication results are stored in the buffer A again, and the search is performed in the buffer B. In this way, the two buffers operate in an interleaving manner, thereby improving operation processing performance by a line-by-line two-stage pipeline operation of multiplication, storage, retrieval, and addition.

위의 상술된 바와 같이 Daubechies(9/7)필터연산 시, 픽셀데이터 당 각각 9개/7개의 곱셈결과(Product)가 생성된다. 필터계수의 대칭성을 이용하면 곱셈결과를 버퍼에 저장, 재사용함으로써 중복되는 곱셈연산을 줄일 수 있다. 제9도 는 저대역 필터연산 시 필요한 버퍼의 크기를 비교한 것이다. N이 라인의 크기일 때, 픽셀데이터와 7개의 필터계수와의 모든 곱셈결과(Product)들을 저장하면 7*N 크기의 버퍼가 필요하다. 그리고 2단 파이프라인의 인터리빙 동작을 위해서 곱셈결과를 저장하기 위한 버퍼와 덧셈연산 시 검색을 위한 버퍼가 필요하다. 따라서 제9도 의 ①과 같이 파이프라인을 위한 버퍼의 크기는 14*N이 된다. 그리고 픽셀데이터와 필터계수의 대칭성을 이용한 곱셈결과는 제5도 의 와 같이 7개 → 4개로 줄어서 제9도 의 ②에서 (a)와 같이 저장된다. 이때, N(라인크기)개의 픽셀데이터에 대한 곱셈결과를 모두 저장하면 제9도 의 ②와 같이 8*N 크기의 버퍼로 줄일 수 있다. 그리고 업샘플링에 의해 홀수번째 픽셀데이터가 항상 0이므로 필터계수와의 곱셈결과도 0이다. 따라서 짝수번째 픽셀데이터와 필터계수와의 곱셈결과만 버퍼에 저장하게 되어 제9도 의 ②에서 (b)는 저장하지 않는다. 제5도 에서 저장할 곱셈결과 ⓐ, ⓑ, ⓒ, ⓓ는 제9도 의 (c), (d), (e), (f)와 같이 저장되고, N(라인크기)개의 픽셀데이터에 대한 곱셈결과를 모두 저장하면 제9도 의 ③과 같이 4*N 크기의 버퍼로 줄일 수 있다. 따라서 필터계수의 대칭성과 업샘플링의 특성을 이용하면 약 72%의 버퍼 크기를 줄일 수 있다. 제10도 는 고대역 필터연산 시 파이프라인 동작을 위한 버퍼의 크기를 비교한 것이다. N이 라인의 크기일 때, 픽셀데이터와 9개의 필터계수와의 모든 곱셈결과(Product)들을 저장하면 9*N 크기의 버퍼가 필요하다. 그리고 2단 파이프라인의 인터리빙 동작을 위해서 곱셈결과를 저장하기 위한 버퍼와 덧셈연산 시 검색을 위한 버퍼가 필요하다. 따라서 제10도 의 ①과 같이 파이프라인을 위한 버퍼의 크기는 18*N이 된다. 그리고 첫번째 픽셀데이터와 필터계수의 대칭성을 이용한 곱셈결과는 제6도 의 와 같이 9개 → 5개로 줄어서 제10도 의 ②에서 (a)와 같이 저장된다. 이때, N(라인크기)개의 픽셀데이터에 대한 곱셈결과를 모두 저장하면 제10도 의 ②와 같이 10*N 크기의 버퍼로 줄일 수 있다. 그리고 업샘플링에 의해 짝수번째 픽셀데이터가 항상 0이므로 필터계수와의 곱셈결과도 0이다. 따라서 홀수번째 픽셀데이터와 필터계수와의 곱셈결과만 버퍼에 저장하게 되어 제10도 의 ②에서 (b)는 저장하지 않는다. 제6도 에서 저장할 곱셈결과 ⓐ, ⓑ, ⓒ, ⓓ, ⓔ는 제10도 의 (c), (d), (e), (f), (g)와 같이 저장되고, N(라인크기)개의 픽셀데이터에 대한 곱셈결과를 모두 저장하면 제10도 의 ③과 같이 5*N 크기의 버퍼로 줄일 수 있어서 약 72%의 버퍼 크기를 줄일 수 있다. 위의 상기된 바와 같이 저대역/고대역 필터연산 시 필터계수의 대칭성과 업샘플링을 통해 버퍼의 크기는 작아지게 된다.As described above, in the Daubechies (9/7) filter operation, 9/7 multiplication results (Product) are generated for each pixel data. Using symmetry of filter coefficients, redundant multiplications can be reduced by storing and reusing multiplication results in a buffer. FIG. 9 compares the sizes of the buffers required for the low pass filter operation. When N is the size of a line, a 7 * N size buffer is required to store all the product of the pixel data and the seven filter coefficients. And for the interleaving operation of the two-stage pipeline, a buffer for storing the multiplication result and a buffer for retrieving the addition operation are needed. Therefore, as in ① of FIG. 9, the buffer size for the pipeline is 14 * N. And multiplication with the symmetry of the pixel data and the filter coefficient results are stored as shown in (a) in FIG. 9 juleoseo 7 → 4 pieces as in FIG. 5. At this time, if all the multiplication results of the N (line size) pixel data are stored, the buffer size of 8 * N can be reduced as shown in ② of FIG. Since the odd-numbered pixel data is always zero by upsampling, the multiplication result with the filter coefficient is zero. Therefore, only the multiplication result of the even-numbered pixel data and the filter coefficient is stored in the buffer, so that (b) in ( 9) of FIG. 9 is not stored. The multiplication results ⓐ, ⓑ, ⓒ, ⓓ to be stored in FIG . 5 are stored as shown in (c), (d), (e) and (f) in FIG. 9 , and are multiplied by N (line size) pixel data. If you save all the results, you can reduce it to 4 * N size buffer as ③ of Figure 9 . Therefore, using the symmetry of the filter coefficients and the characteristics of upsampling, a buffer size of about 72% can be reduced. FIG. 10 compares the size of a buffer for pipeline operation in high-band filter operation. When N is the size of a line, a 9 * N size buffer is required to store all the product of the pixel data and the nine filter coefficients. And for the interleaving operation of the two-stage pipeline, a buffer for storing the multiplication result and a buffer for retrieving the addition operation are needed. Therefore, as in ① of FIG. 10, the size of the buffer for the pipeline is 18 * N. And multiplying the result by the symmetry of the first pixel data and the filter coefficients are stored as shown in ② (a) in claim 10 is also juleoseo 9 → 5 pieces, as in the Figure 6. At this time, if all the multiplication results of the N (line size) pixel data are stored, the size of the buffer may be reduced to 10 * N size as shown in ② of FIG. Since the even-numbered pixel data is always zero by upsampling, the multiplication result with the filter coefficient is zero. Therefore, only the multiplication result of the odd-numbered pixel data and the filter coefficient is stored in the buffer, so that in (b) of FIG. 10 , (b) is not stored. The multiplication results ⓐ, ⓑ, ⓒ, ⓓ, ⓔ to be stored in FIG . 6 are stored as (c), (d), (e), (f) and (g) in FIG. 10 , and N (line size). Storing all the multiplication results of the pixel data can reduce the size of the buffer to a size of 5 * N as shown in ③ of FIG. 10, thereby reducing the buffer size of about 72%. As described above, the buffer size is reduced through symmetry and upsampling of the filter coefficients in the low / high band filter operation.

위의 상술된 바와 같이 저대역 필터연산 시 라인의 크기가 N(=240)일 때의 각 버퍼에 저장될 곱셈결과들에 관한 테이블은 제11도 와 같다. 그리고 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인을 위한 구조는 제12도 와 같다. 제11도 에서 픽셀데이터는 p(0)부터 p(239)까지 중 업샘플링에 의해 연산에 홀수픽셀데이터는 ‘0’값을 가지므로 생성된 곱셈결과는 항상 ‘0’이기 때문에 입력을 받지 않는다. 따라서 짝수픽셀데이터만 순차적으로 입력된다. 픽셀데이터와 필터계수들과의 곱셈결과는 대칭성에 의해 제9도 의 (c) → 곱셈결과[1], 제9도 의 (d) → 곱셈결과[2], 제9도 의 (e) → 곱셈결과[3], 제9도 의 (f) → 곱셈결과[4]로 생성된다. 입력된 4개의 곱셈결과[1], [2], [3], [4]는 최종 변환 픽셀데이터 p'(i)를 위한 덧셈연산기가 곱셈결과들을 병렬검색할 수 있도록 5개의 버퍼에 재정렬 저장된다. 테이블에서 첫 입력 픽셀데이터 p(0)의 Convolved product 중 곱셈결과[1]인 p(0)*c(0)는 p'(0)의 필터연산에 필요하므로 버퍼1에 저장된다. 곱셈결과[2]인 p(0)*c(1)는 p'(1), p'(239)의 필터연산에 필요하므로 버퍼2와 버퍼5에 저장된다. 곱셈결과[3]인 p(0)*c(2)는 p'(2), p'(238)의 필터연산에 필요하므로 버퍼3에 저장된다. 곱셈결과[4]인 p(0)*c(3)는 p'(3), p'(237)의 필터연산에 필요하므로 버퍼4에 저장된다. 같은 방법으로 p(2) ~ p(238)의 Convolved product 곱셈결과[1], [2], [3], [4]는 덧셈연산 시 5개의 버퍼에서 병렬검색이 될 수 있도록 재정렬 저장된다. 결과적으로 버퍼1, 버퍼2, 버퍼3, 버퍼4, 버퍼5에 저장된 곱셈결과들은 p'(i)를 얻기 위한 덧셈연산에서 고속검색을 위해 순차 정렬된다. 그리고 병렬저장 및 순차검색을 위한 정렬은 6픽셀마다 반복되는 저장규칙을(⑥) 보인다. 따라서 제12도 의 <곱셈결과 재정렬>블록에서 곱셈결과들은 반복저장규칙(⑥)을 이용하여 4개의 DEMUX와 5개의 MUX의 제어를 통해 재정렬된다. 그리고 제11도 의 테이블에서 p'(0), p'(1), p'(237), p'(238), p'(239)와 같은 경계영역 처리는 다음과 같이 해결한다. 먼저 제12도 에서 재정렬된 곱셈결과이자 <병렬 버퍼>블록의 입력인 ①, ②, ③, ④, ⑤는 각각 버퍼1, 버퍼2, 버퍼3, 버퍼4, 버퍼5에 저장하며, 저장할 곱셈결과 ①, ②, ③, ④, ⑤의 쓰기주소(Write Address)는 제11도 테이블의 ⓐ, ⓑ, ⓒ, ⓓ, ⓔ과 같이 할당하여 경계영역을 처리한다. 제12도 의 <병렬버퍼> 블록에서 읽기주소(Read Address)의 순차검색을 통해 p'(i)를 위한 곱셈결과들을 <덧셈연산>블록으로 빠르게 출력시킨다. <덧셈연산>블록은 순차적으로 검색된 곱셈결과들을 누적연산하여 최종 변환된 픽셀데이터인 p'(i)를 연산하는 블록이다. <병렬버퍼> 블록은 곱셈결과를 저장할 5개의 입력버퍼와 덧셈연산 시 사용할 5개의 검색버퍼로 구성되어 2단 파이프라인을 위한 인터리빙 동작을 한다. 곱셈&저장의 입력버퍼와 검색&덧셈의 검색버퍼는 phase신호에 의해 인터리빙 동작한다. 위의 상술한 바와 같이 입력된 곱셈결과들은 덧셈연산기의 병렬검색을 위해서 5개의 버퍼A에 재정렬되어 병렬 저장되고, 5개의 버퍼B에는 병렬 덧셈연산기의 고속순차검색이 가능하도록 순차정렬 저장되어 있다. 결과적으로 곱셈연산과 덧셈연산간의 연산속도 차이를 감소시킴으로써, 컨볼루션 파이프라인의 효율을 올리고 이산 웨이블릿 변환기의 연산처리성능을 증가시킨다.As described above, a table relating to the multiplication results to be stored in each buffer when the line size is N (= 240) during the low pass filter operation is shown in FIG . The structure for multi-line pipeline of multiplication, storage, retrieval, and addition is shown in FIG . In FIG . 11, since the pixel data is calculated by up-sampling among p (0) to p (239), odd pixel data has a value of '0', and thus the generated multiplication result is always '0' and thus no input is received. . Therefore, only even pixel data is sequentially input. The multiplication result between the pixel data and the filter coefficients is (c) in Fig. 9 → the multiplication result [1] in Fig. 9 (d) → the multiplication result [2] in Fig. 9 (e) in Fig. 9 multiplication results [3], 9 are created in view of the (f) → multiplication result [4]. Four input multiplication results [1], [2], [3], and [4] are rearranged in five buffers so that the addition operator for the final transform pixel data p '(i) can search the multiplication results in parallel. do. Of the Convolved products of the first input pixel data p (0) in the table, p (0) * c (0), which is a multiplication result [1], is stored in the buffer 1 because it is required for the filter operation of p '(0). P (0) * c (1), which is a multiplication result [2], is required for the filter operation of p '(1) and p' (239) and stored in buffer 2 and buffer 5. P (0) * c (2), which is a multiplication result [3], is stored in the buffer 3 because it is required for the filter operation of p '(2) and p' (238). P (0) * c (3), which is a multiplication result [4], is stored in the buffer 4 because it is required for the filter operation of p '(3) and p' (237). In the same way, the convolved product multiplication results [1], [2], [3], and [4] of p (2) to p (238) are rearranged to allow parallel retrieval in five buffers during the addition operation. As a result, the multiplication results stored in buffer 1, buffer 2, buffer 3, buffer 4, and buffer 5 are sequentially ordered for fast searching in the addition operation to obtain p '(i). The sorting for parallel storage and sequential search shows a storage rule (6) repeated every 6 pixels. Therefore, the multiplication results in the <Rearization of Multiplication Results> block of FIG. 12 are rearranged by controlling 4 DEMUXs and 5 MUXs using the iterative storage rule (⑥). In the table of FIG. 11 , boundary area processing such as p '(0), p' (1), p '(237), p' (238), and p '(239) is solved as follows. The first input of the multiplication result and <Parallel Buffer> blocks rearranged in claim 12 also ①, ②, ③, ④, ⑤, respectively buffer 1, buffer 2, a buffer 3, a buffer 4, and stored in the buffer 5, and to store the multiplication result Write addresses of ①, ②, ③, ④, and ⑤ are allocated as ⓐ, ⓑ, ⓒ, ⓓ, ⓔ in the table of FIG. 11 to process the boundary area. In the parallel buffer block of FIG. 12, the multiplication results for p '(i) are rapidly output to the <add operation> block through the sequential search of the read address. The <addition operation> block is a block for calculating p '(i), which is the final transformed pixel data by accumulating the multiplication results sequentially searched. The parallel buffer block consists of five input buffers to store the multiplication result and five search buffers to be used for the addition operation to perform the interleaving operation for the two-stage pipeline. The input buffer of multiplication & storage and the search buffer of search & addition are interleaved by the phase signal. As described above, the input multiplication results are rearranged and stored in parallel in five buffers A for parallel search of the addition operator, and the five buffers B are sequentially stored in order to enable fast sequential search of the parallel addition operator. As a result, by reducing the difference in computation speed between multiplication and addition, the efficiency of the convolution pipeline is increased and the computational performance of the discrete wavelet transformer is increased.

의 상술된 바와 같이 고대역 필터연산 시 라인의 크기가 N(=240)일 때의 각 버퍼에 저장될 곱셈결과들에 관한 테이블은 제13도 와 같다. 그리고 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인을 위한 구조는 제14도 와 같다. 제13도 의 픽셀데이터는 p(0)부터 p(239)까지 중 업샘플링에 의해 연산에 짝수픽셀데이터는 ‘0’값을 가지므로 생성된 곱셈결과는 항상 ‘0’이기 때문에 입력을 받지 않는다. 따라서 홀수픽셀데이터만 순차적으로 입력된다. 픽셀데이터와 필터계수들과의 곱셈결과는 대칭성에 의해 제10도 의 (c) → 곱셈결과[1], 제10도 의 (d) → 곱셈결과[2], 제10도 의 (e) → 곱셈결과[3], 제10도 의 (f) → 곱셈결과[4], 제10도 의 (g) → 곱셈결과[5]로 생성된다. 입력된 5개의 곱셈결과[1], [2], [3], [4], [5]는 최종 변환 픽셀데이터 p'(i)를 위한 덧셈연산기가 곱셈결과들을 병렬검색할 수 있도록 7개의 버퍼에 재정렬 저장된다. 테이블에서 첫 입력 픽셀데이터 p(1)의 Convolved product 중 곱셈결과[1]인 p(1)*c(0)는 p'(1)의 필터연산에 필요하므로 버퍼2에 저장된다. 곱셈 결과[2]인 p(1)*c(1)는 p'(0), p'(2)의 필터연산에 필요하므로 버퍼1와 버퍼3에 저장된다. 곱셈결과[3]인 p(1)*c(2)는 p'(3), p'(239)의 필터연산에 필요하므로 버퍼4와 버퍼7에 저장된다. 곱셈결과[4]인 p(1)*c(3)는 p'(4), p'(238)의 필터연산에 필요하므로 버퍼5에 저장된다. 곱셈결과[5]인 p(1)*c(4)는 p'(5), p'(237)의 필터연산에 필요하므로 버퍼6에 저장된다. 같은 방법으로 p(3) ~ p(239)의 Convolved product 곱셈결과[1], [2], [3], [4], [5]는 덧셈연산 시 7개의 버퍼에서 병렬검색이 될 수 있도록 재정렬 저장된다. 결과적으로 버퍼1, 버퍼2, 버퍼3, 버퍼4, 버퍼5, 버퍼6, 버퍼7에 저장된 곱셈결과들은 p'(i)를 얻기 위한 덧셈연산에서 고속검색을 위해 순차 정렬된다. 그리고 병렬저장 및 순차검색을 위한 정렬은 곱셈결과[1]은 ⑧과 같이 버퍼2→버퍼4→버퍼6→버퍼7의 순서로 반복저장된다. 곱셈결과 [2]는 ⑨와 같이 (버퍼1,버퍼3)→(버퍼3,버퍼5)→(버퍼1,버퍼5)의 순서로 반복저장된다. 곱셈결과 [3]은 ⑩과 같이 (버퍼4,버퍼7)→(버퍼2,버퍼6)의 순서로 반복저장된다. 곱셈결과[4]는 ⑪과 같이 버퍼5→버퍼1→버퍼3의 순서로 반복저장된다. 곱셈결과[5]는 ⑫와 같이 버퍼6→버퍼7→버퍼2→버퍼4의 순서로 반복저장하는 규칙을 보인다. 따라서 제14도 의 <곱셈결과 재정렬>블록에서 곱셈결과들은 반복저장규칙(⑧~⑫)을 이용하여 5개의 DEMUX와 7개의 MUX의 제어를 통해 재정렬된다. 그리고 제13도 테이블에서 p'(0), p'(1), p'(2), p'(3), p'(237), p'(238), p'(239)와 같은 경계영역 처리는 다음과 같이 해결한다. 먼저 제14도 의 재정렬된 곱셈결과이자 <병렬 버퍼>블록의 입력인 ①, ②, ③, ④, ⑤, ⑥, ⑦는 각각 버퍼1, 버퍼2, 버퍼3, 버퍼4, 버퍼5, 버퍼6, 버퍼7에 저장하며, 저장할 곱셈결과 ①, ②, ③, ④, ⑤, ⑥, ⑦의 쓰기주소(Write Address)는 제13도 테이블의 ⓐ, ⓑ, ⓒ, ⓓ, ⓔ, ⓕ, ⓖ와 같이 할당하여 경계영역을 처리한다. 제14도 의 <병렬버퍼> 블록에서 읽기주소(Read Address)의 순차검색을 통해 p'(i)를 위한 곱셈결과들을 <덧셈연산>블록으로 빠르게 출력시킨다. <덧셈연산>블록은 순차적으로 검색된 곱셈결과들을 누적연산하여 최종 변환된 픽셀데이터인 p'(i)를 연산하는 블록이다. <병렬버퍼> 블록은 곱셈결과를 저장할 7개의 입력버퍼와 덧셈연산 시 사용할 7개의 검색버퍼로 구성되어 2단 파이프라인을 위한 인터리빙 동작을 한다. 곱셈&저장의 입력버퍼와 검색&덧셈의 검색버퍼는 phase신호에 의해 인터리빙 동작한다. 위의 상술한 바와 같이 입력된 곱셈결과들은 덧셈연산기의 병렬검색을 위해서 7개의 버퍼A에 재정렬되어 병렬 저장되고, 7개의 버퍼B에는 병렬 덧셈연산기의 고속순차검색이 가능하도록 순차정렬 저장되어 있다. 결과적으로 곱셈연산과 덧셈연산간의 연산속도 차이를 감소시킴으로써, 컨볼루션 파이프라인의 효율을 올리고 이산 웨이블릿 변환기의 연산처리성능을 증가시킨다.As described above, a table relating to the multiplication results to be stored in each buffer when the line size is N (= 240) during the high pass filter operation is shown in FIG . And the structure for multi-line pipeline of multiplication, storage, retrieval, and addition is shown in FIG . The pixel data in FIG. 13 does not receive input because the even multiplication result is always '0' because the even pixel data has '0' during upsampling from p (0) to p (239). . Therefore, only odd pixel data is sequentially input. Multiplying the result of the pixel data and the filter coefficients (c) of claim 10, also by the symmetry → multiplication results [1], (d) → multiplied result of the 10 ° [2], of the 10 degrees (e) → The multiplication result [3], (f) of FIG. 10 → multiplication result [4], (g) of FIG. 10 → multiplication result [5]. The five multiplication results [1], [2], [3], [4], and [5] are inputted so that the addition operator for the final converted pixel data p '(i) can search the multiplication results in parallel. It is reordered in the buffer. P (1) * c (0), which is a multiplication result [1] of the convolved products of the first input pixel data p (1) in the table, is stored in the buffer 2 because it is required for the filter operation of p '(1). P (1) * c (1), which is a multiplication result [2], is stored in buffer 1 and buffer 3 because it is required for the filter operation of p '(0) and p' (2). P (1) * c (2), which is a multiplication result [3], is stored in buffers 4 and 7 because it is required for the filter operation of p '(3) and p' (239). P (1) * c (3), which is a multiplication result [4], is stored in buffer 5 because it is required for the filter operation of p '(4) and p' (238). P (1) * c (4), which is a multiplication result [5], is stored in the buffer 6 because it is required for the filter operation of p '(5) and p' (237). In the same way, Convolved product multiplication results [1], [2], [3], [4], and [5] of p (3) to p (239) can be parallelized in seven buffers during the addition operation. Reordering is saved. As a result, the multiplication results stored in buffer 1, buffer 2, buffer 3, buffer 4, buffer 5, buffer 6, and buffer 7 are sequentially ordered for fast searching in the addition operation to obtain p '(i). In the parallel storage and the sequential search, the multiplication result [1] is repeatedly stored in the order of Buffer 2 → Buffer 4 → Buffer 6 → Buffer 7 as ⑧. The multiplication result [2] is repeatedly stored in the order of (buffer 1, buffer 3) → (buffer 3, buffer 5) → (buffer 1, buffer 5) as shown in (9). The multiplication result [3] is repeatedly stored in the order of (buffer 4, buffer 7) → (buffer 2, buffer 6) as shown in FIG. The multiplication result [4] is repeatedly stored in the order of buffer 5? Buffer 1? The multiplication result [5] shows the rule of repeated storage in the order of buffer 6 → buffer 7 → buffer 2 → buffer 4 as shown in FIG. Therefore, the multiplication results in the <Rearization of Multiplication Results> block of FIG. 14 are rearranged by controlling 5 DEMUXs and 7 MUXs using the iterative storage rule (⑧ ~ ⑫). And a boundary such as p '(0), p' (1), p '(2), p' (3), p '(237), p' (238) and p '(239) in the FIG. Area processing is solved as follows. First, the results of the rearranged multiplication of FIG. 14 and input of the <Parallel Buffer> blocks ①, ②, ③, ④, ⑤, ⑥, and ⑦ are respectively Buffer 1, Buffer 2, Buffer 3, Buffer 4, Buffer 5, Buffer 6 , stored in the buffer 7, and storing the multiplication result of ①, ②, ③, ④, ⑤, ⑥, write addresses (write address) of ⑦ is the 13 degree ⓐ of the table, ⓑ, ⓒ, ⓓ, ⓔ , ⓕ, ⓖ , and Allocate them together to process the boundary area. In the parallel buffer block of FIG. 14, the multiplication results for p '(i) are quickly output to the <add operation> block through the sequential search of the read address. The <addition operation> block is a block for calculating p '(i), which is the final transformed pixel data by accumulating the multiplication results sequentially searched. The parallel buffer block consists of seven input buffers to store multiplication results and seven search buffers to be used for the addition operation. The input buffer of multiplication & storage and the search buffer of search & addition are interleaved by the phase signal. As described above, the input multiplication results are rearranged and stored in seven buffers A for parallel search of the addition operator, and the seven buffers B are sequentially stored to enable fast sequential search of the parallel addition operator. As a result, by reducing the difference in computation speed between multiplication and addition, the efficiency of the convolution pipeline is increased and the computational performance of the discrete wavelet transformer is increased.

본 발명에 따른 컨볼루션 곱셈결과(Product)의 재사용을 위한 버퍼관리방법과 역방향 이산 웨이블릿 변환기의 버퍼 관리 방법과 컨볼루션 역방향 이산 웨이블릿 변환기에서 곱셈연산량을 줄이기 위한 필터계수의 대칭성과 다운샘플링을 이용할 경우, 버퍼의 면적이 작고 전력소모가 적으면서 하드웨어의 사용효율을 높여 처리량을 증가 시키는 2차원 역방향 이산 웨이블릿 변환기를 제공할 수 있다.Buffer management method for reuse of convolution multiplication result (product), buffer management method of backward discrete wavelet transformer and filter coefficient symmetry and downsampling to reduce multiplication operation in convolutional backward discrete wavelet transformer In addition, the present invention can provide a two-dimensional backward discrete wavelet converter which increases the throughput by increasing the use efficiency of hardware while having a small buffer area and low power consumption.

부가하여, 2차원에 국한되지 않고, 1차원/3차원 역방향 이산 웨이블릿 변환기에서도 제공할 수 있고, 역방향 이산 웨이블릿 변환 시 Daubechies(9/7)필터가 아닌 다른 필터를 사용하는 경우 본 발명의 요지를 벗어나지 않는 범위에서 다양한 변형 및 개량으로 만들어질 수 있다.In addition, the present invention is not limited to two dimensions, but may also be provided by a one-dimensional and three-dimensional inverse discrete wavelet converter, and in the case of using a filter other than the Daubechies (9/7) filter in the inverse discrete wavelet transformation, Various modifications and improvements can be made without departing from the scope thereof.

부가하여, 본 발명이 적용된 역방향 이산 웨이블릿 변환기반의 JPEG2000이나 MPEG-4가 사용되는 디지털카메라, 카메라 폰, DVR(Digital Video Recoding), Digital TV, 레이저 프린터, 팩스, 스캐너 및 디지털복사기 등 본 발명이 사용되는 역방향 이산 웨이블릿 변환기술이 적용된 모든 어플리케이션 및 시스템에서 제공될 수 있다.In addition, the present invention includes a digital camera, a camera phone, a DVR (Digital Video Recoding), a digital TV, a laser printer, a fax, a scanner, and a digital copy machine using JPEG2000 or MPEG-4 of the reverse discrete wavelet converter panel to which the present invention is applied. The reverse discrete wavelet transform technique used can be provided in all applications and systems.

제1도는, 2차원 이산 웨이블릿 변환의 3레벨까지의 동작 블록다이어그램으로서, HPF는 고대역필터, LPF은 저대역필터, ↓2는 다운샘플링을 의미하며;1 is an operation block diagram up to three levels of two-dimensional discrete wavelet transform, where HPF means a high band filter, LPF a low band filter, and ↓ 2 means downsampling;

제2도는, 2차원 역방향 이산 웨이블릿 변환의 3레벨까지의 동작 블록다이어그램으로서, HPF는 저대역필터, LPF은 고대역필터, ↑2는 업샘플링을 의미하며;2 is an operation block diagram up to three levels of two-dimensional inverse discrete wavelet transform, where HPF means low band filter, LPF means high band filter, and ↑ 2 means upsampling;

제3도는, 라인의 크기가 320일 때, 저대역 필터연산을 하는 과정으로서 필터계수가 오른쪽으로 쉬프트를 하면서 연산이 이루어짐을 보이는 것이며;3 is a process of performing low-band filter operation when the size of the line is 320, showing that the calculation is performed while the filter coefficient is shifted to the right;

제4도는, Daubechies(9/7)필터의 필터계수의 대칭성에 대한 것이며;4 shows the symmetry of the filter coefficients of the Daubechies (9/7) filter;

제5도는, 저대역 필터의 필터계수 대칭성으로 인해 중복되는 곱셈결과(Product)를 제외한 상태에서 업샘플링을 통해 연산에 불필요한 홀수픽셀데이터와 필터계수와의 곱셈결과(Product)들은 제외하고 필터연산에 필요한 곱셈결과만을 추출한 그림이며;FIG. 5 shows the filter operation except for the product of the odd pixel data and the filter coefficient that are not necessary for the operation through upsampling, except for the overlapped product due to the filter coefficient symmetry of the low pass filter. A picture of only necessary multiplication results;

제6도는, 고대역 필터의 필터계수 대칭성으로 인해 중복되는 곱셈결과(Product)를 제외한 상태에서 업샘플링을 통해 연산에 불필요한 홀수픽셀데이터와 필터계수와의 곱셈결과(Product)들은 제외하고 필터연산에 필요한 곱셈결과만을 추출한 그림이 며;FIG. 6 shows the filter operation except for the product of the odd pixel data and the filter coefficient that are not necessary for the operation through upsampling, except for the overlapped product (Product) due to the filter coefficient symmetry of the high-band filter. A picture of only the required multiplication results;

제7도는, 고대역/저대역 필터에 따라 고속화된 곱셈연산과 덧셈연산의 처리속도를 비교한 것이며;7 is a comparison of the processing speeds of multiplication and addition operations accelerated according to a high band / low band filter;

제8도는, 인터리빙 방식의 2개의 라인버퍼를 사용해 곱셈&저장과 검색&덧셈의 2단 파이프라인 동작을 도식화한 것이며; 8 illustrates the two-stage pipeline operation of multiplication, storage, retrieval, and addition using two interleaving line buffers;

제9도는, 저대역 필터연산 시 하나의 버퍼에 픽셀데이터와 모든 필터계수와의 곱셈결과(Product)들을 모두 저장한 경우와, 필터계수의 대칭성으로 중복되는 곱셈결과(Product)들은 저장하지 않은 경우와, 필터계수의 대칭성과 업샘플링으로 인해 연산에 불필요한 곱셈결과(Product)들을 저장하지 않는 경우에 따른 버퍼의 크기를 비교한 것이며;FIG. 9 illustrates a case in which all of the product results of the pixel data and all the filter coefficients are stored in one buffer when the low-band filter operation is performed, and when the product results overlapping the symmetry of the filter coefficients are not stored. And the size of the buffer when the multiplication result (Product) which is not necessary for the operation due to the symmetry of the filter coefficient and the upsampling are not compared;

제10도는, 고대역 필터연산 시 하나의 버퍼에 픽셀데이터와 모든 필터계수와의 곱셈결과(Product)들을 모두 저장한 경우와, 필터계수의 대칭성으로 중복되는 곱셈결과(Product)들은 저장하지 않은 경우와, 필터계수의 대칭성과 업샘플링으로 인해 연산에 불필요한 곱셈결과(Product)들을 저장하지 않는 경우에 따른 버퍼의 크기를 비교한 것이며;FIG. 10 illustrates a case in which all of the product results of the pixel data and all the filter coefficients are stored in one buffer when the high-band filter operation is performed, and when the product results overlapping the symmetry of the filter coefficients are not stored. And the size of the buffer when the multiplication result (Product) which is not necessary for the operation due to the symmetry of the filter coefficient and the upsampling are not compared;

제11도는, 저대역 필터연산 시 라인의 크기가 240일 때, 각 버퍼에 저장될 곱셈결과들에 관한 테이블이며;11 is a table relating to the multiplication results to be stored in each buffer when the size of the line in the low pass filter operation is 240;

제12도는, 저대역 필터연산 시 4개의 입력된 곱셈결과를 5개의 버퍼에 재정렬 저장 후 병렬덧셈기에서 저장된 곱셈결과를 병렬검색하는 전체 구조이며;12 is an overall structure of parallel retrieval of the stored multiplication results in the parallel adder after rearranging four input multiplication results in five buffers during low-band filter operation;

제13도는, 고대역 필터연산 시 라인의 크기가 240일 때, 각 버퍼에 저장될 곱셈결과들에 관한 테이블이며;13 is a table relating to the multiplication results to be stored in each buffer when the size of the line in the high band filter operation is 240;

제14도는, 고대역 필터연산 시 5개의 입력된 곱셈결과를 7개의 버퍼에 재정렬 저장 후 병렬덧셈기에서 저장된 곱셈결과를 병렬검색하는 전체 구조이다;14 shows the overall structure of parallel retrieval of stored multiplication results in a parallel adder after rearranging five input multiplication results in seven buffers in a high-band filter operation;

Claims (6)

컨볼루션 기반 2차원 역방향 이산 웨이블릿 변환기에 있어서 처리량(Throughput)을 높이기 위한 곱셈&저장과 검색&덧셈의 라인단위 2단 파이프라인 동작 방법.A line-by-line two-stage pipeline operation method of multiplication, storage, retrieval, and addition to increase throughput in a convolution-based two-dimensional inverse discrete wavelet transformer. 컨볼루션 기반 2차원 역방향 이산 웨이블릿 변환기에서 Daubechies(9/7)필터의 필터계수 대칭성과 업샘플링에 의해 불필요한 곱셈결과를 저장하지 않고 재사용하여 버퍼의 크기, 전력소모를 줄이는 버퍼관리 방법.A method of buffer management that reduces the size and power consumption of a buffer by reusing the multiplication result of Daubechies (9/7) filter without symmetry and upsampling in convolution-based two-dimensional backward discrete wavelet converter without storing unnecessary multiplication results. 청구항 2에 있어서, 필터계수의 대칭성에 의해 중복되는 곱셈결과를 덧셈연산 시 검색버퍼에서 재사용을 하여 곱셈연산량 및 전력소모를 줄이는 버퍼관리 방법.The buffer management method of claim 2, wherein the multiplication result overlapped by the symmetry of the filter coefficients is reused in the search buffer during the addition operation to reduce the multiplication operation amount and power consumption. 청구항 1에 있어서, 컨볼루션 기반 2차원 이산 웨이블릿 변환기의 라인단위 2단 파이프라인에 의해 입력버퍼에는 입력된 곱셈결과를 저장하고, 동시에 덧셈연산기가 검색버퍼에서 저장된 곱셈결과를 검색하는 인터리빙 동작버퍼.The interleaving operation buffer according to claim 1, wherein the multiplication result inputted is stored in the input buffer by a line-level two-stage pipeline of a convolution-based two-dimensional discrete wavelet converter, and the addition operator retrieves the multiplication result stored in the search buffer. 덧셈연산기에서 필요한 곱셈결과(Product)들을 순차검색이 가능하도록 픽셀 데이터와 필터계수들과의 생성된 곱셈결과(Product)들을 버퍼에 재정렬하여 저장하 는 방법.A method of reordering and storing the generated products of the pixel data and the filter coefficients in a buffer so that the products required by the addition operator can be sequentially searched. 청구항 5에 있어서, 라인단위 저장 버퍼에서 경계부분의 곱셈결과들이 순차검색이 가능하도록 곱셈결과를 저장 시 주소를 할당하는 방법.The method of claim 5, wherein the multiplication result of the boundary portion in the line-by-line storage buffer is assigned an address when the multiplication result is stored.
KR1020080081721A 2008-08-21 2008-08-21 A 2phase pipelining buffer management of idwt for the reusage of convolved products KR20100023123A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080081721A KR20100023123A (en) 2008-08-21 2008-08-21 A 2phase pipelining buffer management of idwt for the reusage of convolved products

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080081721A KR20100023123A (en) 2008-08-21 2008-08-21 A 2phase pipelining buffer management of idwt for the reusage of convolved products

Publications (1)

Publication Number Publication Date
KR20100023123A true KR20100023123A (en) 2010-03-04

Family

ID=42175413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080081721A KR20100023123A (en) 2008-08-21 2008-08-21 A 2phase pipelining buffer management of idwt for the reusage of convolved products

Country Status (1)

Country Link
KR (1) KR20100023123A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448037B2 (en) 2015-10-21 2019-10-15 Samsung Electronics Co., Ltd. Decoding apparatus and method for discrete wavelet transform with buffer management
CN111814972A (en) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 Neural network convolution operation acceleration method based on FPGA

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448037B2 (en) 2015-10-21 2019-10-15 Samsung Electronics Co., Ltd. Decoding apparatus and method for discrete wavelet transform with buffer management
CN111814972A (en) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 Neural network convolution operation acceleration method based on FPGA
CN111814972B (en) * 2020-07-08 2024-02-02 上海雪湖科技有限公司 Neural network convolution operation acceleration method based on FPGA

Similar Documents

Publication Publication Date Title
US5053985A (en) Recycling dct/idct integrated circuit apparatus using a single multiplier/accumulator and a single random access memory
Zhang et al. An efficient VLSI architecture for lifting-based discrete wavelet transform
US7129962B1 (en) Efficient video processing method and system
US5984514A (en) Method and apparatus for using minimal and optimal amount of SRAM delay line storage in the calculation of an X Y separable mallat wavelet transform
JP2002304624A (en) Filter processor and imaging device
KR101061008B1 (en) Convolution-based Discrete Wavelet Transform
JP3855827B2 (en) Two-dimensional subband encoding device
US6904177B2 (en) Filter processing apparatus
KR20100023123A (en) A 2phase pipelining buffer management of idwt for the reusage of convolved products
CN1448871A (en) Design method of built-in parallel two-dimensional discrete wavelet conversion VLSI structure
CN108184127B (en) Configurable multi-size DCT (discrete cosine transform) transformation hardware multiplexing architecture
Shahbahrami et al. Performance comparison of SIMD implementations of the discrete wavelet transform
US7031404B2 (en) Inverse DWT method and apparatus
CN1293514C (en) Pantograph treatment system of digital picture
Patil et al. Low Power High Speed VLSI Architecture for 1-D Discrete Wavelet Transform
Yun et al. Adaptive directional lifting wavelet transform VLSI architecture
KR20100012453A (en) Lut-based parallel multiplication of discrete wavelet transform
KR20150100348A (en) Inverse transform method and apparatus for video codec
CN2736865Y (en) Zoom processing system for digital image
Xiong et al. Efficient array architectures for multi-dimensional lifting-based discrete wavelet transforms
KR100769109B1 (en) Method for efficient data compression using filter
JP4700838B2 (en) Filter processing device
JP4444480B2 (en) Filter processing device
Jeyaprakash FPGA implementation of discrete wavelet transform (DWT) for JPEG 2000
JP3849914B2 (en) Subband coding device, subband decoding device, wavelet transform device, inverse wavelet transform device, compression device, decompression device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application