KR102064977B1 - Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array - Google Patents
Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array Download PDFInfo
- Publication number
- KR102064977B1 KR102064977B1 KR1020190040571A KR20190040571A KR102064977B1 KR 102064977 B1 KR102064977 B1 KR 102064977B1 KR 1020190040571 A KR1020190040571 A KR 1020190040571A KR 20190040571 A KR20190040571 A KR 20190040571A KR 102064977 B1 KR102064977 B1 KR 102064977B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- filter
- block memory
- processing
- image data
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000015654 memory Effects 0.000 claims abstract description 160
- 230000008569 process Effects 0.000 claims description 18
- 238000003672 processing method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
Description
본 발명은 필드 프로그램이 가능한 게이트 어레이 기반의 영상 필터 처리 방법 및 그를 위한 장치에 관한 것이다.The present invention relates to a field programmable gate array based image filter processing method and apparatus therefor.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the embodiments of the present invention and do not constitute a prior art.
일반적으로 영상에 영상 필터를 적용하여 영상 처리 및 보정을 수행하는 방법은 여러 사업 분야에서 사용되고 있다. In general, a method of performing image processing and correction by applying an image filter to an image is used in various business fields.
영상 처리를 위한 필터를 필드 프로그램이 가능한 게이트 어레이(Field Programable Gate Array, 이하에서는 FPGA로 기재)를 이용하여 구현 시, 영상 필터의 사이즈가 커지게 되면 사용 가능한 메모리가 부족하게 되어 영상 처리를 위한 FPGA 장치의 구현이 어려워지게 된다. 이러한, FPGA 장치가 실시간 영상 처리를 위하여 구현될 경우에는 더 많은 메모리 용량이 필요하다. 예를 들어, Artix - 7 series FPGA의 경우 블록 메모리(Block Memory)의 사이즈가 1.625 Mbyte 이므로 종래 기술 사용 시 필터 사이즈가 10 * 10일 경우 설계가 불가능하다. When a filter for image processing is implemented using a field programmable gate array (hereinafter referred to as an FPGA), when the size of the image filter becomes large, the available memory becomes insufficient and the FPGA for image processing The implementation of the device becomes difficult. When the FPGA device is implemented for real-time image processing, more memory capacity is required. For example, in the case of the Artix-7 series FPGA, the block memory size is 1.625 Mbytes. Therefore, if the filter size is 10 * 10, the design cannot be possible.
도 1은 종래 기술에 따른 FPGA 기반 영상 필터 처리 동작을 나타낸 예시도이다. 1 is an exemplary view showing an FPGA-based image filter processing operation according to the prior art.
도 1 참고하면, 종래의 영상 필터 처리장치는 블록 메모리를 영상 필터의 사이즈와 동일한 개수만큼 이용하여 영상 처리를 수행한다. 이하에서는 3 * 3 영상 필터 연산을 수행하는 종래의 영상 필터 처리장치를 예를 들어 설명하도록 한다. Referring to FIG. 1, a conventional image filter processing apparatus performs image processing using a block memory equal to the number of image filters. Hereinafter, a conventional image filter processing apparatus that performs a 3 * 3 image filter operation will be described as an example.
도 1의 (a)에서, 종래의 영상 필터 처리장치는 1, 2, 3, 5, 7, 9, 10, 11 위치에 있는 픽셀값들을 이용하여 6 위치에 있는 픽셀값을 결정하는 영상 필터를 사용한다. In FIG. 1A, a conventional image filter processing apparatus includes an image filter that determines pixel values at
도 1의 (b)에서, 종래의 영상 필터 처리장치는 블록 메모리를 이용하여 입력되는 영상을 3 라인(Line) 지연시키고, 실시간 연산을 위해 한 라인 당 3 클락(clock)을 지연시켜 동시에 1, 2, 3, 5, 7, 9, 10, 11 위치에 있는 픽셀값을 계산할 수 있도록 한다.In FIG. 1 (b), the conventional image filter processing apparatus delays an input image by three lines using a block memory and simultaneously delays three clocks per line for real time operation. Allows you to calculate the pixel values at
종래의 영상 필터 처리장치와 같이 영상 처리를 수행하는 경우, 내부 메모리가 작은 FPGA를 사용하거나, 영상 필터 사이즈가 커질 경우 내부 메모리가 부족하여 설계가 불가하게 된다. 또한, 종래의 영상 필터 처리장치는 블록 메모리의 개수가 영상 필터의 사이즈만큼 확보되어 있지 않으면 실시간 영상처리를 수행할 수 없고, 출력 영상의 픽셀 간의 간격이 생기게 되는 문제점이 있다. 또한, 종래의 영상 필터 처리장치는 내부 메모리 부족으로 외부 메모리를 사용하게 되면 보드 설계 시 제약이 생기는 문제점이 있다. When performing image processing as in the conventional image filter processing apparatus, an FPGA having a small internal memory is used, or when the image filter size is large, the internal memory is insufficient to design. In addition, the conventional image filter processing apparatus may not perform real-time image processing unless the number of block memories is as large as the size of the image filter, and there is a problem in that gaps between pixels of the output image are generated. In addition, the conventional image filter processing apparatus has a problem in that the board design is limited when the external memory is used due to insufficient internal memory.
본 발명은 입력 영상 및 영상 필터에 따른 영상 처리 환경정보를 설정하고, 영상 처리 환경정보를 기반으로 입력 영상을 라인(Line) 별로 분할한 영상 데이터를 적어도 하나의 블록 메모리 각각에 저장하고, 블록 메모리로부터 라인 별로 분할한 영상 데이터를 획득하여 순차적으로 영상 필터 기반의 영상 처리를 수행하는 필드 프로그램이 가능한 게이트 어레이 기반의 영상 필터 처리 방법 및 그를 위한 장치를 제공하는 데 주된 목적이 있다.The present invention sets image processing environment information according to an input image and an image filter, stores image data obtained by dividing an input image for each line based on the image processing environment information in each of at least one block memory, and stores the block memory. A main object of the present invention is to provide a gate array-based image filter processing method and an apparatus therefor, which are field-programmable to obtain image data divided by lines from each other and sequentially perform image filter-based image processing.
본 발명의 일 측면에 의하면, 상기 목적을 달성하기 위한 영상 필터 처리장치는, 입력 영상을 획득하는 입력 영상 획득부; 상기 입력 영상을 보정하기 위한 영상 필터를 설정하는 필터 설정부; 기 설정된 영상 처리 환경정보에 근거하여 상기 입력 영상을 라인(Line) 별로 분할한 영상 데이터를 블록 메모리에 저장하는 메모리부; 및 상기 영상 필터에 대한 필터 설정정보를 기반으로 상기 영상 처리 환경정보를 설정하며, 상기 블록 메모리로부터 상기 라인 별로 분할한 영상 데이터를 획득하여 상기 영상 필터 기반의 영상 처리를 수행하는 영상 처리부를 포함할 수 있다. According to an aspect of the present invention, an image filter processing apparatus for achieving the above object, the input image acquisition unit for obtaining an input image; A filter setting unit configured to set an image filter for correcting the input image; A memory unit for storing image data obtained by dividing the input image into lines based on preset image processing environment information in a block memory; And an image processor configured to set the image processing environment information based on filter setting information on the image filter, and obtain image data divided by the lines from the block memory to perform the image filter based image processing. Can be.
또한, 본 발명의 다른 측면에 의하면, 상기 목적을 달성하기 위한 영상 필터 처리방법은, 입력 영상을 획득하는 단계; 상기 입력 영상을 보정하기 위한 영상 필터를 설정하는 단계; 상기 영상 필터에 대한 필터 설정정보를 기반으로 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정하는 단계; 기 설정된 영상 처리 환경정보에 근거하여 상기 입력 영상을 라인(Line) 별로 분할한 영상 데이터를 적어도 하나의 블록 메모리에 저장하는 단계; 및 상기 적어도 하나의 블록 메모리로부터 상기 라인 별로 분할한 영상 데이터를 상기 선입선출 큐로 획득하여 상기 영상 필터 기반의 영상 처리를 수행하는 단계를 포함할 수 있다. In addition, according to another aspect of the present invention, an image filter processing method for achieving the above object, the step of obtaining an input image; Setting an image filter to correct the input image; Setting image processing environment information on a storage environment of a block memory and a filter processing environment of a first-in-first-out queue based on filter setting information on the image filter; Storing image data obtained by dividing the input image into lines based on preset image processing environment information in at least one block memory; And performing image processing based on the image filter by acquiring image data divided for each line from the at least one block memory into the first-in, first-out queue.
이상에서 설명한 바와 같이, 본 발명은 영상 필터를 사용하는 여러 영상처리를 FPGA 내부 최소한의 메모리를 이용하여 처리할 수 있는 효과가 있다. As described above, the present invention has the effect of processing a plurality of image processing using the image filter using a minimum internal memory of the FPGA.
또한, 본 발명은 FPGA의 내부 메모리를 이용하여 실시간 영상 처리가 가능하다는 효과가 있다. In addition, the present invention has the effect that real-time image processing is possible using the internal memory of the FPGA.
또한, 본 발명은 내부 메모리가 작은 FPGA를 사용하거나 영상 필터의 사이즈가 커지더라도, 내부 메모리를 이용하여 영상 처리가 가능한 효과가 있다. In addition, the present invention has the effect that the image processing using the internal memory, even if the FPGA using a small internal memory or the size of the image filter is large.
또한, 본 발명은 외부 메모리를 사용하지 않고 내부 메모리만을 이용하여 영상 처리를 수행함으로써, FPGA의 보드 설계 시 제약을 줄일 수 있는 효과가 있다. In addition, the present invention has the effect of reducing the constraints on the board design of the FPGA by performing the image processing using only the internal memory without using an external memory.
도 1은 종래 기술에 따른 FPGA 기반 영상 필터 처리 동작을 나타낸 예시도이다.
도 2는 본 발명의 실시예에 따른 FPGA 기반 영상 필터 처리장치를 개략적으로 나타낸 블록 구성도이다.
도 3은 본 발명의 실시예에 따른 영상 필터 처리장치에 포함된 영상 처리부를 개략적으로 나타낸 블록 구성도이다.
도 4는 본 발명의 실시예에 따른 FPGA 기반 영상 필터 처리방법을 설명하기 위한 순서도이다.
도 5a 및 도 5b는 본 발명의 실시예에 따른 영상 필터 처리를 위한 영상 처리 환경 설정에 대해 설명하기 위한 예시도이다.
도 6은 본 발명의 실시예에 따른 영상 필터 처리 동작을 설명하기 위한 예시도이다.
도 7는 본 발명의 다른 실시예에 따른 영상 필터 처리를 위한 FPGA 장치를 개략적으로 나타낸 블록 구성도이다.1 is an exemplary view showing an FPGA-based image filter processing operation according to the prior art.
2 is a block diagram schematically illustrating an FPGA-based image filter processing apparatus according to an exemplary embodiment of the present invention.
3 is a block diagram schematically illustrating an image processor included in an image filter processing apparatus according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating an FPGA-based image filter processing method according to an embodiment of the present invention.
5A and 5B are exemplary diagrams for describing an image processing environment setting for image filter processing according to an exemplary embodiment of the present invention.
6 is an exemplary diagram for describing an image filter processing operation according to an exemplary embodiment of the present invention.
7 is a block diagram schematically illustrating an FPGA device for image filter processing according to another exemplary embodiment of the present invention.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 이하에서는 도면들을 참조하여 본 발명에서 제안하는 필드 프로그램이 가능한 게이트 어레이 기반의 영상 필터 처리 방법 및 그를 위한 장치에 대해 자세하게 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, when it is determined that the detailed description of the related well-known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, the following will describe a preferred embodiment of the present invention, but the technical idea of the present invention is not limited thereto and may be variously modified and modified by those skilled in the art. Hereinafter, a field programmable gate array-based image filter processing method and apparatus therefor proposed by the present invention will be described in detail with reference to the drawings.
필드 프로그램이 가능한 게이트 어레이(Field Programable Gate Array, 이하에서는 FPGA로 기재) 장치에서 한정된 내부 메모리를 이용하여 영상 필터 처리를 수행하는 방법 및 장치에 대해 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 메모리를 이용한 다양한 영상 처리 분야에 적용될 수 있다. A method and apparatus for performing image filter processing using a limited internal memory in a field programmable gate array device (hereinafter, referred to as an FPGA) are described, but are not necessarily limited thereto. It can be applied to various image processing fields.
도 2는 본 발명의 실시예에 따른 FPGA 기반 영상 필터 처리장치를 개략적으로 나타낸 블록 구성도이다. 2 is a block diagram schematically illustrating an FPGA-based image filter processing apparatus according to an exemplary embodiment of the present invention.
본 실시예에 따른 영상 필터 처리장치(200)는 입력 영상 획득부(210), 필터 설정부(220), 영상 처리부(230), 메모리부(240)를 포함한다. 도 2의 영상 필터 처리장치(200)는 일 실시예에 따른 것으로서, 도 2에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 영상 필터 처리장치(200)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다. The image
입력 영상 획득부(210)는 영상 촬영장치(미도시)로부터 촬영된 입력 영상을 획득한다. 여기서, 입력 영상은 기 설정된 크기를 갖는 영상을 의미한다. 예를 들어, 640*480 등과 같은 크기를 갖는 영상을 획득할 수 있다. The input
입력 영상 획득부(210)는 영상 촬영장치(미도시)로부터 입력 영상을 직접 획득할 수 있으나 반드시 이에 한정되는 것은 아니며, 기 촬영된 영상이 저장된 외부 서버(저장소)로부터 입력 영상을 획득할 수도 있다. The input
필터 설정부(220)는 입력 영상을 보정하기 위한 영상 필터를 설정하는 동작을 수행한다. The
본 실시예에 따른 필터 설정부(220)는 윈도우 슬라이딩 방식으로 이동하면서 입력 영상 내의 픽셀을 보정할 수 있도록 영상 필터의 크기, 보정 방식 등에 대한 필터 설정정보를 설정한다. The
필터 설정부(220)는 n * n 형태(n은 3 이상의 자연수)의 영상 필터에 대한 필터 설정정보를 설정할 수 있다. 예를 들어, 필터 설정부(220)는 3 * 3, 5 * 5, 10 * 10, 30 * 30 등과 같은 정사각형 윈도우 형태의 영상 필터를 설정할 수 있다. The
또한, 필터 설정부(220)는 영상 필터 내 픽셀값들을 합산한 픽셀 합산값을 이용하여 영상 필터의 정중앙에 위치한 픽셀의 값을 보정하는 방식으로 영상 필터에 대한 필터 설정정보를 설정할 수 있다. 예를 들어, 4 * 5 크기의 입력 영상에 3 * 3 영상 필터를 이용하여 영상 처리를 수행하는 경우, 필터 설정부(220)는 입력 영상의 1, 2, 3, 5, 7, 9, 10, 11 위치에 있는 픽셀값들의 총 합을 이용하여 6 위치(영상 필터의 정중앙)의 픽셀값을 결정하는 방식의 영상 필터를 설정할 수 있다.In addition, the
영상 처리부(230)는 영상 필터에 근거하여 영상 처리 환경정보를 설정하고, 영상 처리 환경정보에 따라 블록 메모리에 저장된 영상 데이터를 획득하여 영상 필터 기반의 영상 처리를 수행한다. The
영상 처리부(230)는 영상 필터에 대한 필터 설정정보(영상 필터의 크기, 보정 방식 등)에 근거하여 영상 처리 환경정보를 설정한다. 구체적으로, 영상 처리부(230)는 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정한다. The
영상 처리부(230)는 필터 설정정보에 근거하여 라인 별로 분할한 영상 데이터를 저장하기 위한 블록 메모리의 개수 및 블록 메모리 각각의 크기에 대한 블록 메모리 저장 환경을 설정한다. 또한, 영상 처리부(230)는 영상 필터에 대한 필터 설정정보에 근거하여 영상 데이터의 필터 연산을 처리하기 위한 선입선출 큐(First In First Out Queue)에 대한 개수 및 선입선출 큐의 사이즈에 대한 필터처리 환경을 설정한다. The
또한, 영상 처리부(230)는 영상 처리 환경정보에 따라 입력 영상의 라이 별로 구분되어 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러와 순차적으로 영상 데이터에 영상 필터를 적용하여 필터 연산을 처리한다. In addition, the
영상 처리부(230)는 적어도 하나의 블록 메모리 각각으로부터 서로 다른 라인에 대한 영상 데이터를 선입선출 큐로 획득하며, 선입선출 큐에 저장된 영상 데이터를 순차적으로 영상 필터를 적용하여 필터 연산을 처리한다.The
영상 처리부(230)는 적어도 하나의 블록 메모리에 영상 데이터의 최소 3 개의 라인이 저장된 이후부터 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러오는 동작을 수행한다. After at least three lines of image data are stored in the at least one block memory, the
영상 처리부(230)는 영상 필터 내 픽셀값들을 합산한 픽셀 합산값을 이용하여 영상 필터의 정중앙에 위치한 영상 데이터의 픽셀값을 보정한다. The
메모리부(240)는 영상 처리 환경정보에 근거하여 결정된 적어도 하나의 블록 메모리에 입력 영상에 대한 영상 데이터를 저장한다. The memory unit 240 stores the image data of the input image in at least one block memory determined based on the image processing environment information.
메모리부(240)는 입력 영상을 라인 별로 분할한 영상 데이터를 블록 메모리에 저장한다. 여기서, 메모리부(240)는 적어도 하나의 블록 메모리 각각에 입력 영상의 서로 다른 라인에 대한 영상 데이터를 저장한다. 예를 들어, 영상 처리 환경정보에 근거하여 제1 블록 메모리 내지 제4 블록 메모리와 같이 4 개의 블록 메모리를 사용하는 경우, 메모리부(240)는 제1 블록 메모리에 입력 영상의 제1 라인 영상 데이터를 저장하고, 제2 블록 메모리에 입력 영상의 제2 라인 영상 데이터를 저장한다. 또한, 메모리부(240)는 제3 블록 메모리에 입력 영상의 제3 라인 영상 데이터를 저장하고, 제4 블록 메모리에 입력 영상의 제4 라인 영상 데이터를 저장한다. The memory unit 240 stores image data obtained by dividing an input image by lines into a block memory. Here, the memory unit 240 stores image data for different lines of the input image in each of the at least one block memory. For example, when four block memories are used, such as the first block memory to the fourth block memory based on the image processing environment information, the memory unit 240 stores the first line image data of the input image in the first block memory. The second line image data of the input image is stored in the second block memory. In addition, the memory unit 240 stores the third line image data of the input image in the third block memory, and the fourth line image data of the input image in the fourth block memory.
도 3은 본 발명의 실시예에 따른 영상 필터 처리장치에 포함된 영상 처리부를 개략적으로 나타낸 블록 구성도이다. 3 is a block diagram schematically illustrating an image processor included in an image filter processing apparatus according to an exemplary embodiment of the present invention.
본 실시예에 따른 영상 필터 처리장치(200)에 포함된 영상 처리부(230)는 블록 메모리 환경 설정부(310), 선입선출 환경 설정부(320), 영상 필터 처리부(330) 및 영상 출력부(340)를 포함한다. 여기서, 블록 메모리 환경 설정부(310) 및 선입선출 환경 설정부(320)는 별도의 모듈인 것으로 기재하고 있으나 반드시 이에 한정되는 것은 아니며, 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정하는 영상 처리 환경 설정부와 같은 하나의 모듈로 구현될 수도 있다. The
블록 메모리 환경 설정부(310)는 입력 영상 및 영상 필터에 대한 필터 설정정보에 근거하여 블록 메모리 저장 환경을 설정한다. The block memory environment setting unit 310 sets the block memory storage environment based on the filter setting information for the input image and the image filter.
블록 메모리 환경 설정부(310)는 영상 필터에 대한 필터 설정정보(영상 필터의 크기, 보정 방식 등)에 근거하여 입력 영상의 라인 별로 분할한 영상 데이터를 저장하기 위한 블록 메모리의 개수 및 블록 메모리 각각의 크기에 대한 블록 메모리 저장 환경을 설정한다. 여기서, 블록 메모리는 BRAM(Block Random Access Memory)일 수 있으나 반드시 이에 한정되는 것은 아니다. The block memory environment setting unit 310 stores the number of block memories and the block memories for storing the image data divided for each line of the input image based on filter setting information (image filter size, correction method, etc.) for the image filter. Set the block memory storage environment for the size of. Here, the block memory may be a block random access memory (BRAM), but is not necessarily limited thereto.
블록 메모리 환경 설정부(310)는 필터 설정정보의 필터 라인수에 1을 더한 값을 블록 메모리의 개수(BRAM의 개수)로 설정한다. 또한, 블록 메모리 환경 설정부(310)는 입력 영상의 하나의 라인에 포함된 픽셀 개수와 동일하게 블록 메모리의 크기를 설정할 수 있다. 예를 들어, 4 * 5 크기의 입력 영상에 3 * 3 영상 필터를 이용하여 영상 처리를 수행하는 경우, 블록 메모리 환경 설정부(310)는 필터 라인수 3에 1을 더하여 블록 메모리의 개수를 4로 설정하고, 입력 영상의 하나의 라인에 포함된 픽셀 개수인 4와 동일하게 블록 메모리의 크기를 4로 설정할 수 있다. The block memory environment setting unit 310 sets a value obtained by adding 1 to the number of filter lines in the filter setting information as the number of block memories (the number of BRAMs). In addition, the block memory environment setting unit 310 may set the size of the block memory to be equal to the number of pixels included in one line of the input image. For example, when performing image processing using a 3 * 3 image filter on an input image having a size of 4 * 5, the block memory environment setting unit 310 adds 1 to the number of
선입선출 환경 설정부(320)는 영상 필터에 대한 필터 설정정보에 근거하여 영상 데이터의 필터 연산을 처리하기 위한 선입선출 큐(First In First Out Queue)의 필터처리 환경을 설정한다. The first-in, first-out
선입선출 환경 설정부(320)는 필터 설정정보에 근거하여 선입선출 큐에 대한 개수 및 선입선출 큐의 사이즈에 대한 필터처리 환경을 설정한다. The first-in, first-out
선입선출 환경 설정부(320)는 필터 설정정보의 영상 필터의 크기와 동일하게 선입선출 큐에 대한 개수를 설정한다. 또한, 선입선출 환경 설정부(320)는 필터 설정정보의 필터 라인수와 동일하게 선입선출 큐에 대한 크기를 설정할 수 있다. 예를 들어, 4 * 5 크기의 입력 영상에 3 * 3 영상 필터를 이용하여 영상 처리를 수행하는 경우, 선입선출 환경 설정부(320)는 영상 필터의 크기인 3 * 3 = 9와 동일하게 선입선출 큐의 개수를 9로 설정하고, 필터 라인수인 3과 동일하게 선입선출 큐의 크기를 3으로 설정할 수 있다. The first-in, first-out
영상 필터 처리부(330)는 적어도 하나의 블록 메모리 각각으로부터 서로 다른 라인에 대한 영상 데이터를 선입선출 큐로 획득하고, 선입선출 처리방식에 따라 순차적으로 영상 데이터에 영상 필터를 적용하여 필터 연산을 처리한다. The image filter processor 330 acquires image data for different lines from each of the at least one block memory as a first-in first-out queue, and processes the filter operation by applying image filters to the image data sequentially according to the first-in first-out processing method.
영상 필터 처리부(330)는 적어도 하나의 블록 메모리에 영상 데이터의 최소 3 개의 라인이 저장된 이후부터 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러와 필터 연산을 처리한다. After at least three lines of image data are stored in at least one block memory, the image filter processor 330 loads the image data stored in the block memory into a first-in, first-out queue and processes the filter operation.
영상 출력부(340)는 필터 연산의 결과에 따른 보정 영상을 출력한다. 영상 출력부(340)는 선입선출 큐에 따른 필터 연산에 따라 입력 영상의 라인 순서대로 보정 영상을 출력한다. The
도 4는 본 발명의 실시예에 따른 FPGA 기반 영상 필터 처리방법을 설명하기 위한 순서도이다. 4 is a flowchart illustrating an FPGA-based image filter processing method according to an embodiment of the present invention.
영상 필터 처리장치(200)는 입력 영상을 획득한다(S410). 여기서, 입력 영상은 영상 촬영장치(미도시)로부터 촬영된 영상으로서, 기 설정된 크기의 영상을 의미한다. 영상 필터 처리장치(200)는 영상 촬영장치(미도시)로부터 입력 영상을 직접 획득할 수 있으나 반드시 이에 한정되는 것은 아니며, 기 촬영된 영상이 저장된 외부 서버(저장소)로부터 입력 영상을 획득할 수도 있다. The image
영상 필터 처리장치(200)는 입력 영상을 보정하기 위한 영상 필터의 필터 설정정보를 설정하고, 영상 필터에 근거하여 영상 처리 환경정보를 설정한다(S420).The image
영상 필터 처리장치(200)는 윈도우 슬라이딩 방식으로 이동하면서 입력 영상 내의 픽셀을 보정할 수 있도록 영상 필터의 크기, 보정 방식 등에 대한 필터 설정정보를 설정한다. 영상 필터 처리장치(200)는 n * n 형태(n은 3 이상의 자연수)의 영상 필터에 대한 필터 설정정보를 설정할 수 있다. 예를 들어, 필터 설정부(220)는 3 * 3, 5 * 5, 10 * 10, 30 * 30 등과 같은 정사각형 윈도우 형태의 영상 필터를 설정할 수 있다.The image
또한, 영상 필터 처리장치(200)는 영상 필터에 대한 필터 설정정보(영상 필터의 크기, 보정 방식 등)에 근거하여 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정한다. In addition, the image
영상 필터 처리장치(200)는 필터 설정정보에 근거하여 입력 영상의 라인 별로 분할한 영상 데이터를 저장하기 위한 블록 메모리의 개수 및 블록 메모리 각각의 크기에 대한 블록 메모리 저장 환경을 설정한다. 영상 필터 처리장치(200)는 필터 설정정보에 근거하여 선입선출 큐에 대한 개수 및 선입선출 큐의 사이즈에 대한 필터처리 환경을 설정한다. The image
영상 필터 처리장치(200)는 영상 처리 환경정보에 근거하여 결정된 적어도 하나의 블록 메모리에 입력 영상에 대한 영상 데이터를 저장한다(S430). 영상 필터 처리장치(200)는 입력 영상을 라인 별로 분할한 영상 데이터를 블록 메모리에 저장한다. 여기서, 영상 필터 처리장치(200)는 적어도 하나의 블록 메모리 각각에 입력 영상의 서로 다른 라인에 대한 영상 데이터를 저장한다.The image
영상 필터 처리장치(200)는 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 읽어온다(S440). 다시 말해, 영상 필터 처리장치(200)는 적어도 하나의 블록 메모리 각각으로부터 서로 다른 라인에 대한 영상 데이터를 선입선출 큐로 획득하여 영상 처리가 수행되도록 한다. 여기서, 영상 필터 처리장치(200)는 적어도 하나의 블록 메모리에 영상 데이터의 최소 3 개의 라인이 저장된 이후부터 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러오는 동작을 수행한다. The image
영상 필터 처리장치(200)는 선입선출 큐에 저장된 영상 데이터를 순차적으로 영상 필터를 적용하여 필터 연산을 처리한다(S450). 영상 필터 처리장치(200)는 영상 필터 내 픽셀값들을 합산한 픽셀 합산값을 이용하여 영상 필터의 정중앙에 위치한 영상 데이터의 픽셀값을 보정한다. The image
영상 필터 처리장치(200)는 필터 연산의 결과에 따른 보정 영상을 출력한다(S460). 영상 필터 처리장치(200)는 선입선출 큐에 따른 필터 연산에 따라 입력 영상의 라인 순서대로 보정 영상을 출력한다. 영상 필터 처리장치(200)는 입력 영상의 모든 영상 데이터가 처리될 때까지 반복하여 필터 연산을 수행하여 보정 영상을 출력한다. The image
도 4에서는 각 단계를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 4에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 4는 시계열적인 순서로 한정되는 것은 아니다.In FIG. 4, the steps are described as being sequentially executed, but are not necessarily limited thereto. In other words, since the steps described in FIG. 4 may be applied by changing the steps or executing one or more steps in parallel, FIG. 4 is not limited to the time series order.
도 4에 기재된 본 실시예에 따른 FPGA 기반 영상 필터 처리방법은 애플리케이션(또는 프로그램)으로 구현되고 단말장치(또는 컴퓨터)로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 FPGA 기반 영상 필터 처리방법을 구현하기 위한 애플리케이션(또는 프로그램)이 기록되고 단말장치(또는 컴퓨터)가 읽을 수 있는 기록매체는 컴퓨팅 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치 또는 매체를 포함한다.The FPGA-based image filter processing method according to the present embodiment described in FIG. 4 may be implemented as an application (or a program) and recorded on a recording medium that may be read by a terminal device (or a computer). An application (or program) for implementing an FPGA-based image filter processing method according to the present embodiment is recorded and a recording medium readable by a terminal device (or computer) may be any type of data that can be read by a computing system. Recording device or medium.
도 5a 및 도 5b는 본 발명의 실시예에 따른 영상 필터 처리를 위한 영상 처리 환경 설정에 대해 설명하기 위한 예시도이다. 5A and 5B are exemplary diagrams for describing an image processing environment setting for image filter processing according to an exemplary embodiment of the present invention.
종래의 FPGA에서 블록 메모리(Block Memory) 자체를 버퍼로 사용하여 영상 처리를 수행했던 것과 다르게 본 발명의 FPGA 기반 영상 필터 처리장치(200)는 블록 메모리 및 선입선출 큐를 이용하여 영상 처리를 수행한다. Unlike image processing using block memory itself as a buffer in a conventional FPGA, the FPGA-based image
영상 필터 처리장치(200)는 입력되는 입력 영상을 하나의 라인(Line) 씩 다른 블록 메모리에 저장한다. 이때 필요한 블록 메모리의 개수는 영상 필터의 크기에 따라 다르게 설정될 수 있다. 예를 들어, 3 * 3 영상 필터일 경우 4개의 블록 메모리가 필요하고, 5 * 5 영상 필터일 경우 6개의 블록 메모리가 필요하다.The image
또한, 영상 필터 처리장치(200)는 블록 메모리에 저장된 영상 데이터를 순차적으로 선입선출 큐로 불러와 필터 연산을 수행한다. In addition, the image
도 5a 및 도 5b에서는 3 * 3 영상 필터를 적용하여 영상 필터 처리를 수행하는 것으로 가정한 예시도이다. 5A and 5B are exemplary diagrams illustrating that image filter processing is performed by applying a 3 * 3 image filter.
도 5a의 (a)에서, 영상 필터 처리장치(200)는 입력 영상의 라인 별 영상 데이터를 구분한다. In FIG. 5A (a), the image
도 5a의 (b)에서, 영상 필터 처리장치(200)는 입력 영상의 라인 별 영상 데이터 각각을 4 개의 서로 다른 블록 메모리 각각에 저장한다. 여기서, 블록 메모리의 크기(BRAM 사이즈)는 입력 영상의 하나의 라인 수 만큼의 영상을 지연(Delay) 시킬 수 있도록 설정되는 것이 바람직하다. 또한, 블록 메모리의 개수(BRAM의 개수)는 영상 필터의 라인 개수에 1을 더한 값으로 설정될 수 있다. In FIG. 5A (b), the image
도 5b의 (a)에서, 영상 필터 처리장치(200)는 블록 메모리에 저장되어 있는 영상 데이터를 선입선출 큐로 읽어오는 동작을 수행한다. 영상 필터 처리장치(200)는 적어도 하나의 블록 메모리에 영상 데이터의 최소 3 개의 라인이 저장된 이후부터 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러온다. In FIG. 5B (a), the image
여기서, 선입선출 큐의 크기(FIFO 사이즈)는 영상필터의 라인수와 동일하게 설정될 수 있으며, 영상 필터의 최소 필터 라인 개수 이상으로 설정될 수도 있다. 또한, 선입선출 큐의 개수(FIFO 개수)는 영상 필터의 크기와 동일하게 설정될 수 있다. Here, the size of the first-in, first-out queue (FIFO size) may be set equal to the number of lines of the image filter, or may be set to be equal to or greater than the minimum number of filter lines of the image filter. In addition, the number of first-in, first-out queues (FIFOs) may be set equal to the size of the image filter.
도 5b의 (b)에서, 영상 필터 처리장치(200)는 선입선출 처리방식에 따라 선입선출 큐에서 순차적으로 출력되는 영상 데이터에 영상 필터를 적용하여 필터 연산을 처리하고, 필터 연산의 결과에 따른 보정 영상을 출력한다.In FIG. 5B (b), the image
도 6은 본 발명의 실시예에 따른 영상 필터 처리 동작을 설명하기 위한 예시도이다. 6 is an exemplary diagram for describing an image filter processing operation according to an exemplary embodiment of the present invention.
도 6에서는 4 * 5 크기의 입력 영상 및 3 * 3 크기의 영상 필터를 사용하는 것으로 가정하여 영상 필터 처리장치(200)의 영상 필터 처리 동작을 설명하도록 한다. In FIG. 6, an image filter processing operation of the image
영상 필터 처리장치(200)는 도 6의 (a)와 같이 4 * 5 크기의 입력 영상이 입력되고, 이를 도 6의 (b)와 같은 3 * 3 필터를 이용하여 영상 처리를 수행한다. 이때 영상 처리해야 할 픽셀의 위치는 6과 15이다. 영상 필터 처리장치(200)의 영상 필터 처리 방식은 1, 2, 3, 5, 7, 9, 10, 11 위치에 있는 값들의 총 합을 이용하여 6위치의 픽셀 값을 결정하고, 10, 11, 12, 14, 16, 18, 19, 20 위치에 있는 값들의 총 합을 이용하여 15위치의 픽셀 값을 결정한다. The image
도 6의 (c)와 같이 블록 메모리(BRAM)에는 입력 영상의 하나의 라인(line)씩 저장된다. 여기서, 블록 메모리의 크기는 4이며, 제1 블록 메모리(610)의 경우 제1 라인의 영상 데이터(1 내지 4)가 입력되어 유지되다가 제5 라인의 영상 데이터(17 내지 20)이 들어올 때 값이 바뀌게 된다. 다른 블록 메모리(BRAM2 내지 4)도 다음 데이터가 들어올 때까지 저장된 영상 데이터를 유지한다. As shown in FIG. 6C, each block of the input image is stored in the block memory BRAM. Here, the size of the block memory is 4, and in the case of the
입력 영상의 1이나 2위치에 있는 픽셀을 처리하고자 할 때에는 입력 영상의 2 line만 가지고 연산을 하게 되기 때문에 블록 메모리에 2 line이 저장된 이후부터 선입선출 큐에서 블록 메모리에 저장된 영상 데이터들을 순차적으로 읽어와 계산하게 된다. When you want to process the pixel at the 1 or 2 position of the input image, only 2 lines of the input image are operated. Therefore, after 2 lines are stored in the block memory, the image data stored in the block memory is sequentially read from the first-in first-out queue. Calculate with
입력 영상의 5이나 6위치에 있는 픽셀을 처리하고자 할 때, 영상 필터 처리장치(200)는 3 line까지 블록 메모리에 저장 후 선입선출 큐로 필터 계산을 위해 필요한 영상 데이터를 읽어 올 수 있다. 이때 블록 메모리에 있는 영상 데이터는 3 line의 영상이 입력되는 동안은 유지 되기 때문에 선입선출 큐로 반복적으로 읽어와 사용할 수 있다. 여기서, 선입선출 큐의 크기는 3이며, 연산에 필요한 영상 데이터가 유지되어야 하는 구간이 선입선출 큐의 3 칸이다. When the pixels at
영상 필터 처리장치(200)는 블록 메모리에서 3 line 유지 후에는 그 다음 데이터가 순서대로 입력된다. 영상 필터 처리장치(200)는 선입선출 처리 방식을 사용하기 때문에 영상 데이터가 입력되면 처음 들어간 영상 데이터는 밀려나게 되어 있어서 선입선출 큐의 크기는 최소 3으로 설정된다. After maintaining three lines in the block memory, the image
입력 영상의 1 번째 라인 데이터가 들어와 제1 블록 메모리(610)에 저장되면 2, 3, 4번째 라인 데이터가 들어오는 동안 유지되게 되고, 5 번째 라인 데이터가 들어올 때 새로운 데이터가 제1 블록 메모리(610)에 저장되게 된다. 이에 따라, 3 line의 영상이 입력되는 동안 블록 메모리에 유지된다. When the first line data of the input image enters and is stored in the
도 6의 (c)에서 영상출력이 6일 때 선입선출 큐 1 내지 9에 있는 값이 처리하는데 필요한 픽셀은 1, 2, 3, 5, 7, 9, 10, 11 임을 확인 할 수 있고, 영상출력이 15일 때 필요한 픽셀은 는 10, 11, 12, 14, 16, 18, 19, 20 임을 확인 할 수 있다. In (c) of FIG. 6, when the image output is 6, it is confirmed that the pixels required to process the values in the first-in, first-
영상 필터 처리장치(200)는 영상 처리가 필요하지 않은 픽셀은 그대로 출력하고 처리가 필요한 픽셀은 해당 데이터에 영상 필터를 적용하여 처리 후 출력해주면 영상이 전체적으로 2 line 정도 지연된다. 하지만, 픽셀간의 간격이 벌어지는 현상이 발생하지 않으므로 실시간 처리가 가능하다. The image
영상 필터 처리장치(200)는 블록 메모리와 선입선출 큐에 새로운 영상이 입력되면, 순차적으로 영상 데이터를 저장하여 모든 영상에 대한 연산이 끝날 때까지 영상 필터 처리를 반복하여 수행한다. When a new image is input to the block memory and the first-in, first-out queue, the image
본 발명에 따른 영상 필터 처리장치(200)는 내부 메모리가 작은 FPGA를 사용하거나 영상 필터의 사이즈가 커지더라도, 필요한 메모리가 크지 않아 내부 메모리를 이용하여 영상 처리가 가능하다. [표 1]은 영상 필터의 크기에 따른 종래 기술의 필요 메모리 사이즈 및 본 발명의 필요 메모리 사이즈를 비교하여 나타낸다.In the image
또한, 영상 필터 처리장치(200)는 영상 필터를 이용한 실시간 영상 처리가 가능하며, 외부 메모리를 사용하지 않고 내부 메모리만을 이용하여 영상 처리를 수행함으로써, 보드 설계 시 제약이 사라지게 되는 장점이 있다. In addition, the image
도 7는 본 발명의 다른 실시예에 따른 영상 필터 처리를 위한 FPGA 장치를 개략적으로 나타낸 블록 구성도이다. 7 is a block diagram schematically illustrating an FPGA device for image filter processing according to another exemplary embodiment of the present invention.
영상 필터 처리를 위한 FPGA 장치(700)는 입력 모듈(710), 프로세서(720), 메모리(730) 및 출력 모듈(740)을 포함한다. The
입력 모듈(710)은 외부 장치 또는 서버로부터 입력 영상을 획득하는 동작을 수행한다. 여기서, 입력 영상은 영상 촬영장치(미도시)로부터 촬영된 영상으로서, 기 설정된 크기의 영상을 의미한다.The input module 710 acquires an input image from an external device or a server. Here, the input image is an image captured by an image photographing apparatus (not shown), and means an image of a preset size.
프로세서(720)는 FPGA 장치(700)의 전반적인 동작을 제어한다.
프로세서(720)는 입력 영상을 보정하기 위한 영상 필터의 필터 설정정보를 설정하고, 영상 필터에 근거하여 영상 처리 환경정보를 설정한다.The
프로세서(720)는 윈도우 슬라이딩 방식으로 이동하면서 입력 영상 내의 픽셀을 보정할 수 있도록 영상 필터의 크기, 보정 방식 등에 대한 필터 설정정보를 설정한다. 프로세서(720)는 n * n 형태(n은 3 이상의 자연수)의 영상 필터에 대한 필터 설정정보를 설정할 수 있다. 예를 들어, 필터 설정부(220)는 3 * 3, 5 * 5, 10 * 10, 30 * 30 등과 같은 정사각형 윈도우 형태의 영상 필터를 설정할 수 있다.The
또한, 프로세서(720)는 영상 필터에 대한 필터 설정정보(영상 필터의 크기, 보정 방식 등)에 근거하여 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정한다. In addition, the
프로세서(720)는 필터 설정정보에 근거하여 입력 영상의 라인 별로 분할한 영상 데이터를 저장하기 위한 블록 메모리의 개수 및 블록 메모리 각각의 크기에 대한 블록 메모리 저장 환경을 설정한다. 프로세서(720)는 필터 설정정보에 근거하여 선입선출 큐에 대한 개수 및 선입선출 큐의 사이즈에 대한 필터처리 환경을 설정한다. The
프로세서(720)는 메모리(730)의 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 읽어온다. 다시 말해, 프로세서(720)는 메모리(730)의 적어도 하나의 블록 메모리 각각으로부터 서로 다른 라인에 대한 영상 데이터를 선입선출 큐로 획득하여 영상 처리가 수행되도록 한다. 여기서, 프로세서(720)는 메모리(730)의 적어도 하나의 블록 메모리에 영상 데이터의 최소 3 개의 라인이 저장된 이후부터 블록 메모리에 저장된 영상 데이터를 선입선출 큐로 불러오는 동작을 수행한다. The
프로세서(720)는 선입선출 큐에 저장된 영상 데이터를 순차적으로 영상 필터를 적용하여 필터 연산을 처리한다. 프로세서(720)는 영상 필터 내 픽셀값들을 합산한 픽셀 합산값을 이용하여 영상 필터의 정중앙에 위치한 영상 데이터의 픽셀값을 보정한다. The
메모리(730)는 FPGA 장치(700) 내부에 기 설정된 블록 메모리로써, 각종 데이터를 저장 및 관리하는 동작을 수행한다. 여기서, 블록 메모리는 BRAM일 수 있으며, 프로세서(720)의 제어에 따라 블록 메모리의 개수는 변경될 수 있다. The
메모리(730)는 영상 처리 환경정보에 근거하여 결정된 적어도 하나의 블록 메모리에 입력 영상에 대한 영상 데이터를 저장한다. 메모리(730)는 입력 영상을 라인 별로 분할한 영상 데이터를 블록 메모리에 저장한다. 여기서, 메모리(730)는 적어도 하나의 블록 메모리 각각에 입력 영상의 서로 다른 라인에 대한 영상 데이터를 저장한다.The
출력 모듈(740)은 필터 연산의 결과에 따른 보정 영상을 출력한다. 출력 모듈(740)은 선입선출 큐에 따른 필터 연산에 따라 입력 영상의 라인 순서대로 보정 영상을 출력한다. 여기서, 출력 모듈(740)은 보정 영상을 외부 디스플레이 장치로 전달하기 위한 모듈일 수 있으나 반드시 이에 한정되는 것은 아니며, 직접 보정 영상을 디스플레이하기 위한 모듈로 구현될 수도 있다. The output module 740 outputs a corrected image according to the result of the filter operation. The output module 740 outputs the corrected image in line order of the input image according to a filter operation according to the first-in, first-out queue. Here, the output module 740 may be a module for transmitting a corrected image to an external display device, but is not necessarily limited thereto and may be implemented as a module for directly displaying a corrected image.
도 7에 기재된 본 실시예에 따른 영상 필터 처리를 위한 FPGA 장치의 동작 및 기능은 애플리케이션(또는 프로그램)으로 구현되고 단말장치(또는 컴퓨터)로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 영상 필터 처리를 위한 FPGA 장치의 동작 및 기능을 구현하기 위한 애플리케이션(또는 프로그램)이 기록되고 단말장치(또는 컴퓨터)가 읽을 수 있는 기록매체는 컴퓨팅 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치 또는 매체를 포함한다.The operation and function of the FPGA device for image filter processing according to the present embodiment described in FIG. 7 may be implemented in an application (or a program) and recorded on a recording medium readable by a terminal device (or a computer). An application (or program) for implementing an operation and a function of an FPGA device for image filter processing according to the present embodiment is recorded, and a recording medium readable by a terminal device (or computer) includes data that can be read by a computing system. It includes all kinds of recording devices or media to be stored.
이상의 설명은 본 발명의 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명의 실시예들은 본 발명의 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical spirit of the embodiments of the present invention, and those skilled in the art to which the embodiments of the present invention pertain various modifications and modifications without departing from the essential characteristics of the embodiments of the present invention. Modifications may be possible. Therefore, the embodiments of the present invention are not intended to limit the technical spirit of the embodiments of the present invention, but to describe, and the scope of the technical spirit of the embodiments of the present invention is not limited by these embodiments. The protection scope of the embodiments of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the embodiments of the present invention.
200: 영상 필터 처리장치
210: 입력 영상 획득부 220: 필터 설정부
230: 영상 처리부 240: 메모리부
310: 블록 메모리 환경 설정부 320: 선입선출 환경 설정부
330: 영상 필터 처리부 340: 영상 출력부200: image filter processing device
210: input image acquisition unit 220: filter setting unit
230: image processing unit 240: memory unit
310: block memory environment setting unit 320: first-in, first-out environment setting unit
330: Image filter processing unit 340: Image output unit
Claims (12)
입력 영상을 획득하는 입력 영상 획득부;
상기 입력 영상을 보정하기 위한 영상 필터를 설정하는 필터 설정부;
기 설정된 영상 처리 환경정보에 근거하여 상기 입력 영상을 라인(Line) 별로 분할한 영상 데이터를 블록 메모리에 저장하는 메모리부; 및
상기 영상 필터에 대한 필터 설정정보를 기반으로 상기 영상 처리 환경정보를 설정하며, 상기 블록 메모리로부터 상기 라인 별로 분할한 영상 데이터를 획득하여 상기 영상 필터 기반의 영상 처리를 수행하는 영상 처리부를 포함하되,
상기 메모리부는, 상기 영상 처리 환경정보에 근거하여 결정된 적어도 하나의 블록 메모리에 상기 영상 데이터를 저장하되, 상기 적어도 하나의 블록 메모리 각각에 서로 다른 라인에 대한 영상 데이터를 저장하며,
상기 영상 처리부는, 상기 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 상기 영상 처리 환경정보를 결정하는 영상 처리 환경 설정부; 상기 적어도 하나의 블록 메모리 각각으로부터 상기 서로 다른 라인에 대한 영상 데이터를 상기 선입선출 큐로 획득하고, 선입선출 처리방식에 따라 순차적으로 상기 영상 데이터에 상기 영상 필터를 적용하여 필터 연산을 처리하는 영상 필터 처리부; 및 상기 필터 연산에 결과에 따른 보정 영상을 출력하는 영상 출력부를 포함하는 것을 특징으로 하는 영상 필터 처리장치.An apparatus for processing a field programmable gate array based image filter,
An input image obtaining unit obtaining an input image;
A filter setting unit configured to set an image filter for correcting the input image;
A memory unit for storing image data obtained by dividing the input image into lines based on preset image processing environment information in a block memory; And
And an image processor configured to set the image processing environment information based on filter setting information for the image filter, and obtain the image data divided by the line from the block memory to perform the image filter based image processing.
The memory unit stores the image data in at least one block memory determined based on the image processing environment information, and stores image data for different lines in each of the at least one block memory.
The image processing unit may include an image processing environment setting unit configured to determine the image processing environment information regarding a storage environment of the block memory and a filter processing environment of a first-in, first-out queue; An image filter processor configured to acquire image data for the different lines from the at least one block memory as the first-in first-out queue, and apply the image filter to the image data sequentially according to a first-in first-out process to process a filter operation. ; And an image output unit configured to output a corrected image according to a result of the filter operation.
상기 영상 처리 환경 설정부는,
설정된 상기 영상 필터에 근거하여 상기 라인 별로 분할한 영상 데이터를 저장하기 위한 상기 블록 메모리의 개수 및 상기 블록 메모리 각각의 크기에 대한 상기 저장 환경을 설정하는 블록 메모리 환경 설정부; 및
설정된 상기 영상 필터에 근거하여 상기 선입선출 큐에 대한 개수 및 상기 선입선출 큐의 사이즈에 대한 상기 필터처리 환경을 설정하는 선입선출 환경 설정부
를 포함하는 것을 특징으로 하는 영상 필터 처리장치.The method of claim 1,
The image processing environment setting unit,
A block memory environment setting unit configured to set the storage environment for the number of the block memories for storing the image data divided for each line and the size of each of the block memories based on the set image filter; And
A first-in, first-out environment setting unit that sets the filter processing environment for the number of the first-in first-out queue and the size of the first-in first-out queue based on the set image filter.
Image filter processing apparatus comprising a.
상기 블록 메모리 환경 설정부는,
상기 필터 설정정보의 필터 라인수에 1을 더한 값을 상기 블록 메모리의 개수로 설정하고, 상기 입력 영상의 하나의 라인에 포함된 픽셀수와 동일하게 상기 블록 메모리의 크기를 설정하는 것을 특징으로 하는 영상 필터 처리장치.The method of claim 4, wherein
The block memory environment setting unit,
The number of filter lines of the filter setting information plus 1 is set to the number of the block memories, and the size of the block memory is set to be equal to the number of pixels included in one line of the input image. Image filter processing unit.
상기 선입선출 환경 설정부는,
상기 필터 설정정보의 상기 영상 필터의 크기와 동일하게 상기 선입선출 큐에 대한 개수를 설정하고, 상기 필터 설정정보의 필터 라인수와 동일하게 상기 선입선출 큐에 대한 크기를 설정하는 것을 특징으로 하는 영상 필터 처리장치.The method of claim 4, wherein
The first-in, first-out environment setting unit,
The number of the first-in, first-out queue is set equal to the size of the image filter of the filter setting information, and the image is set to the size of the first-in, first-out queue equal to the number of filter lines of the filter setting information. Filter processing unit.
상기 영상 필터 처리부는,
상기 적어도 하나의 블록 메모리에 최소 3 개의 라인이 저장된 이후부터 상기 블록 메모리에 저장된 상기 영상 데이터를 선입선출 큐로 불러와 상기 필터 연산을 처리하는 것을 특징으로 하는 영상 필터 처리장치.The method of claim 1,
The image filter processor,
And after the at least three lines are stored in the at least one block memory, the image data stored in the block memory is loaded into a first-in first-out queue to process the filter operation.
상기 필터 설정부는,
n * n 형태(n은 3 이상의 자연수)의 상기 영상 필터의 크기를 설정하되,
상기 필터 내 픽셀값을 합산한 픽셀 합산값을 이용하여 상기 영상 필터의 정중앙에 위치한 픽셀의 값을 보정하기 위한 상기 영상 필터를 설정하는 것을 특징으로 하는 영상 필터 처리장치.The method of claim 1,
The filter setting unit,
Set the size of the image filter of the form n * n (n is a natural number of 3 or more),
And the image filter for correcting a value of a pixel located at the center of the image filter by using a pixel sum value obtained by adding pixel values in the filter.
입력 영상을 획득하는 단계;
상기 입력 영상을 보정하기 위한 영상 필터를 설정하는 단계;
상기 영상 필터에 대한 필터 설정정보를 기반으로 블록 메모리의 저장 환경 및 선입선출 큐의 필터처리 환경에 대한 영상 처리 환경정보를 설정하는 단계;
기 설정된 영상 처리 환경정보에 근거하여 상기 입력 영상을 라인(Line) 별로 분할한 영상 데이터를 적어도 하나의 블록 메모리에 저장하는 단계; 및
상기 적어도 하나의 블록 메모리로부터 상기 라인 별로 분할한 영상 데이터를 상기 선입선출 큐로 획득하여 상기 영상 필터 기반의 영상 처리를 수행하는 단계를 포함하되,
상기 적어도 하나의 블록 메모리에 저장하는 단계는, 상기 적어도 하나의 블록 메모리 각각에 서로 다른 라인에 대한 영상 데이터를 저장하고,
상기 영상 처리를 수행하는 단계는, 상기 서로 다른 라인에 대한 영상 데이터를 상기 선입선출 큐로 획득하고, 선입선출 처리방식에 따라 순차적으로 상기 영상 데이터에 상기 영상 필터를 적용하여 필터 연산을 처리하며, 상기 블록 메모리에 2 개의 라인이 저장된 이후부터 상기 블록 메모리에 저장된 상기 영상 데이터를 선입선출 큐로 불러와 상기 필터 연산을 처리하는 것을 특징으로 하는 영상 필터 처리방법.A method of processing a field programmable gate array based image filter,
Obtaining an input image;
Setting an image filter to correct the input image;
Setting image processing environment information of a storage environment of a block memory and a filter processing environment of a first-in, first-out queue based on filter setting information of the image filter;
Storing image data obtained by dividing the input image into lines based on preset image processing environment information in at least one block memory; And
And acquiring the image data divided by the lines from the at least one block memory into the first-in, first-out queue to perform the image filter based image processing.
The storing of the at least one block memory may include storing image data for different lines in each of the at least one block memory,
The performing of the image processing may include obtaining image data for the different lines as the first-in first-out queue, and sequentially applying the image filter to the image data according to a first-in first-out process to process a filter operation. And after the two lines are stored in the block memory, the image data stored in the block memory is loaded into a first-in, first-out queue to process the filter operation.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190040571A KR102064977B1 (en) | 2019-04-08 | 2019-04-08 | Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190040571A KR102064977B1 (en) | 2019-04-08 | 2019-04-08 | Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102064977B1 true KR102064977B1 (en) | 2020-01-10 |
Family
ID=69158569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190040571A KR102064977B1 (en) | 2019-04-08 | 2019-04-08 | Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102064977B1 (en) |
-
2019
- 2019-04-08 KR KR1020190040571A patent/KR102064977B1/en active IP Right Grant
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9473702B2 (en) | Controlling image capture and/or controlling image processing | |
Altuncu et al. | Real-time system implementation for image processing with hardware/software co-design on the Xilinx Zynq platform | |
US9519959B2 (en) | Image processing apparatus, imaging apparatus, and method for processing image | |
US10713757B2 (en) | Image processing apparatus, control method thereof, and storage medium | |
KR102064977B1 (en) | Method and Apparatus for Image Filter Processing Based on Field Programmable Gate Array | |
JP2021524960A (en) | Methods and equipment for removing video jitter | |
US8938133B2 (en) | Image resizing apparatus and method that interpolates image blocks with abuttal regions | |
US9363412B2 (en) | Accelerator circuit and image processing apparatus | |
EP3474224A1 (en) | Graphics processing method and device | |
US10565674B2 (en) | Graphics processing device and graphics processing method | |
CN104469160A (en) | Image obtaining and processing method, system and terminal | |
CN113344832A (en) | Image processing method and device, electronic equipment and storage medium | |
US8712194B1 (en) | System for non-destructive image processing | |
US10853919B2 (en) | Image processing apparatus, image processing method, and program | |
CN110677577A (en) | Image processing method and device | |
US20200351456A1 (en) | Image processing device, image processing method, and program | |
US7573513B2 (en) | Image processing device and image processing method | |
US10672107B2 (en) | Image processing apparatus and method of controlling the same | |
US20230179731A1 (en) | Image processing apparatus | |
US20050270300A1 (en) | Method and system for low cost line buffer system design | |
CN109947721A (en) | A kind of small documents treating method and apparatus | |
US10304415B2 (en) | Image processing apparatus and image processing method | |
JP6205980B2 (en) | Image transfer apparatus and image transfer method | |
CN113888549A (en) | Picture generation method and device, electronic equipment and storage medium | |
CN110754083A (en) | Image processing method, device, system and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |