KR102282756B1 - Apparatus and method for gaussian filtering - Google Patents

Apparatus and method for gaussian filtering Download PDF

Info

Publication number
KR102282756B1
KR102282756B1 KR1020150125771A KR20150125771A KR102282756B1 KR 102282756 B1 KR102282756 B1 KR 102282756B1 KR 1020150125771 A KR1020150125771 A KR 1020150125771A KR 20150125771 A KR20150125771 A KR 20150125771A KR 102282756 B1 KR102282756 B1 KR 102282756B1
Authority
KR
South Korea
Prior art keywords
index
row
value
mask
column
Prior art date
Application number
KR1020150125771A
Other languages
Korean (ko)
Other versions
KR20160061869A (en
Inventor
김혁
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/951,152 priority Critical patent/US9842573B2/en
Publication of KR20160061869A publication Critical patent/KR20160061869A/en
Application granted granted Critical
Publication of KR102282756B1 publication Critical patent/KR102282756B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

가우시안 필터링 장치는 입력 영상 중 마스크 상에 위치하는 픽셀의 값을 포함하는 마스크 영역 데이터를 생성하는 영상 버퍼 및 마스크의 크기에 대응하는 인덱스 배열을 참조하여 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하고, 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 가우시안 필터 코어를 포함한다.
The Gaussian filtering apparatus generates a pixel array value by arranging the mask area data by referring to an image buffer generating mask area data including a value of a pixel located on a mask among the input image and an index array corresponding to the size of the mask, , including a Gaussian filter core that generates a Gaussian filter value by applying Gaussian filtering to a pixel array value.

Description

가우시안 필터링 장치 및 방법{APPARATUS AND METHOD FOR GAUSSIAN FILTERING}Gaussian filtering apparatus and method {APPARATUS AND METHOD FOR GAUSSIAN FILTERING}

본 발명은 영상에 대한 필터링 기술에 관한 것으로, 보다 상세하게는 영상에 대한 가우시안 필터링 기술에 관한 것이다.The present invention relates to a filtering technique for an image, and more particularly, to a Gaussian filtering technique for an image.

얼굴 및 제스처 인식 시스템과 같이 영상에서 객체를 인식하는 영상 인식 시스템은 산업용 시스템뿐만 아니라, 디지털 카메라, 스마트 폰, 출입 시스템, 디지털 도어락 등 다양한 응용분야에서 소프트웨어를 기반으로 구현된다. 그러나 최근 들어 영상 입출력 장치가 고급화 되어 작게는 QVGA급부터 크게는 HD급까지 지원하는 시스템이 증가하고 있다. 영상 내의 객체를 인식하는 과정은 가우시안 필터링(Gaussian Filtering)을 포함한다. An image recognition system that recognizes an object in an image, such as a face and gesture recognition system, is implemented based on software in various applications such as digital cameras, smart phones, access systems, and digital door locks as well as industrial systems. However, recently, as video input/output devices have been advanced, the number of systems supporting from a small QVGA level to a large HD level is increasing. The process of recognizing an object in an image includes Gaussian filtering.

즉, 고해상도 영상에 대해 가우시안 필터링의 수행을 실시간으로 수행하는 것이 요구되고 있지만, 일반적인 임베디드 시스템에서는 소프트웨어를 통한 프로세서에 의존하여 가우시안 필터링을 수행하기 때문에 고해상도 영상에 대한 가우시안 필터링을 실시간으로 처리하기에는 한계가 있다. That is, it is required to perform Gaussian filtering on a high-resolution image in real time, but since Gaussian filtering is performed depending on a processor through software in a general embedded system, there is a limit to real-time processing of Gaussian filtering on a high-resolution image. there is.

본 발명이 해결하고자 하는 과제는 하드웨어를 통해 가우시안 필터링을 수행하는 가우시안 필터링 장치 및 방법을 제공하는 것이다.An object of the present invention is to provide a Gaussian filtering apparatus and method for performing Gaussian filtering through hardware.

본 발명의 일 측면에 따르면, 입력 영상 중 마스크 상에 위치하는 픽셀의 픽셀값을 포함하는 마스크 영역 데이터를 생성하는 영상 버퍼; 및 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하고, 상기 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 가우시안 필터 코어를 포함하는 가우시안 필터링 장치가 제공된다.According to an aspect of the present invention, there is provided an image buffer comprising: an image buffer for generating mask area data including pixel values of pixels located on a mask in an input image; and a Gaussian filter core configured to generate a pixel array value by arranging the mask region data with reference to an index array corresponding to the size of the mask, and to generate a Gaussian filter value by applying Gaussian filtering to the pixel array value A Gaussian filtering device is provided.

상기 영상 버퍼는 상기 입력 영상의 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 입력 영상의 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제1 지연 소자; 및 상기 입력 영상의 단일 행에 대응하는 픽셀값들을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 영상 행 저장부를 포함하되, 복수의 상기 제1 지연 소자 중 하나 이상은 타 제1 지연 소자로 상기 입력 영상의 픽셀값을 출력하고, 상기 영상 행 저장부는 하나 이상은 타 영상 행 저장부로 상기 단일 행에 대응하는 픽셀값들을 출력할 수 있다.The image buffer may include: a plurality of serially connected first delay elements that sequentially receive and store pixel values of the input image and output the stored pixel values of the input image to the Gaussian filter core; and a plurality of image row storage units connected in series for outputting pixel values corresponding to the single row to the Gaussian filter core when all pixel values corresponding to a single row of the input image are received. At least one of the delay elements may output a pixel value of the input image to another first delay element, and the image row storage unit may output pixel values corresponding to the single row to another image row storage unit.

상기 영상 행 저장부는, 상기 단일 행에 대응하는 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제2 지연 소자; 및 타 영상 행 저장부 또는 외부로부터 상기 단일 행에 대응하는 픽셀값을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 순차적으로 상기 타 영상 행 저장부, 상기 제2 지연 소자 중 어느 하나 및 상기 가우시안 필터 코어로 순차적으로 출력하는 FIFO 모듈; 을 포함하되, 복수의 상기 제2 지연 소자 중 하나 이상은 타 제2 지연 소자로 상기 입력 영상의 픽셀값을 출력할 수 있다.The image row storage unit may include: a plurality of serially connected second delay elements that sequentially receive and store pixel values corresponding to the single row and output the stored pixel values corresponding to the single row to the Gaussian filter core; and when all pixel values corresponding to the single row are received from the other image row storage unit or from the outside, the pixel values corresponding to the single row are sequentially stored in any one of the other image row storage unit, the second delay element, and a FIFO module sequentially outputting to the Gaussian filter core; At least one of the plurality of second delay elements may output the pixel value of the input image to another second delay element.

상기 가우시안 필터 코어는 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 인덱스 생성기; 상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 복수의 라우터; 및 각 상기 픽셀 배열값을 한 행으로 구성된 행렬에 대해 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 필터 코어; 를 포함할 수 있다.The Gaussian filter core includes: an index generator for generating a row index and a column index with reference to an index array corresponding to the size of the mask; a plurality of routers arranging some of the mask area data according to the row index and column index to generate pixel array values, respectively; and a filter core configured to generate a Gaussian filter value by applying Gaussian filtering to a matrix including each of the pixel array values in one row. may include.

상기 인덱스 생성기는 상기 인덱스 배열 중 마스크 중심 좌표에 대응하는 각 행에 해당하는 인덱스를 포함하는 상기 행 인덱스 및 상기 열 인덱스를 생성할 수 있다.The index generator may generate the row index and the column index including an index corresponding to each row corresponding to a mask center coordinate in the index array.

상기 인덱스 배열의 int(n/2)+1번째 행은 0 내지 n-1의 값이 순차적으로 배열된 행이고, 상기 인덱스 배열의 int(n/2)+1 번째 열에 위치하는 각 인덱스들은 int(n/2)의 값을 가지고, 상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 상측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+1-인덱스 행)보다 작은 경우, 우측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 인덱스 열이 (int(n/2)+1-인덱스 행) 이상인 경우, 우측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 하측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+(n-인덱스 행))보다 큰 경우, 좌측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 인덱스 열이 (int(n/2)+(n-인덱스 행)) 이하인 경우, 좌측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 상기 n은 상기 마스크의 가로 또는 세로 길이이고, 상기 인덱스 열은 각 인덱스의 열 번호이고, 상기 인덱스 행은 각 인덱스의 행 번호이고, 상기 int(n/2)는 n/2를 정수화한 수치일 수 있다.The int(n/2)+1th row of the index array is a row in which values 0 to n-1 are sequentially arranged, and each indices positioned in the int(n/2)+1th column of the index array are int With a value of (n/2), each index located above the int(n/2)+1th row among the indices of the index array has an index column of (int(n/2)+1-index row ), it has a value 1 larger than the index adjacent to the right, and when the index column is (int(n/2)+1-index row) or more, it has a value smaller than the index adjacent to the right by 1, the index Among the indices of the array, each index located below the int(n/2)+1th row is greater than the index adjacent to the left when the index column is greater than (int(n/2)+(n-index row)) If it has a value less than 1 and the index column is less than or equal to (int(n/2)+(n-index row)), has a value greater than the index adjacent to the left by 1, and n is the horizontal or vertical length of the mask , the index column may be a column number of each index, the index row may be a row number of each index, and the int(n/2) may be an integer obtained by n/2.

상기 라우터는 상기 마스크 영역 데이터 중 상기 행 인덱스에 대응하는 행에 위치하는 픽셀값 중 상기 열 인덱스에 포함된 각 인덱스에 대응하는 픽셀값을 각 상기 인덱스의 열 인덱스 상 위치에 따라 배열하여 상기 픽셀 배열값을 생성할 수 있다.The router arranges pixel values corresponding to each index included in the column index among pixel values located in a row corresponding to the row index in the mask area data according to the position on the column index of each index to arrange the pixels value can be created.

본 발명의 다른 측면에 따르면, 영상 버퍼 및 가우시안 필터 코어를 포함하는 가우시안 필터링 장치가 입력 영상에 대한 가우시안 필터링을 수행하는 방법에 있어서, 상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 픽셀값을 포함하는 마스크 영역 데이터를 생성하는 단계; 상기 가우시안 필터 코어가 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하는 단계; 및 상기 가우시안 필터 코어가 상기 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 단계;를 포함하는 가우시안 필터링 방법이 제공된다.According to another aspect of the present invention, in a method for a Gaussian filtering apparatus including an image buffer and a Gaussian filter core to perform Gaussian filtering on an input image, the image buffer is located on a mask of the input image. generating mask area data including values; generating, by the Gaussian filter core, a pixel array value by arranging the mask area data with reference to an index array corresponding to the size of the mask; and generating, by the Gaussian filter core, a Gaussian filter value by applying Gaussian filtering to the pixel array value.

상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 값을 포함하는 마스크 영역 데이터를 생성하는 단계는, 상기 입력 영상의 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 입력 영상의 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제1 지연 소자; 및 상기 입력 영상의 단일 행에 대응하는 픽셀값들을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 영상 행 저장부를 포함하는 상기 영상 버퍼를 통해 수행되는 단계이고, 복수의 상기 제1 지연 소자 중 하나 이상은 타 제1 지연 소자로 상기 입력 영상의 픽셀값을 출력하고, 상기 영상 행 저장부는 하나 이상은 타 영상 행 저장부로 상기 단일 행에 대응하는 픽셀값들을 출력할 수 있다.The generating, by the image buffer, of the mask area data including the values of pixels located on the mask among the input images, may include sequentially receiving and storing pixel values of the input image, and storing the pixel values of the input image. a plurality of first delay elements connected in series for outputting to the Gaussian filter core; and a plurality of image row storage units connected in series for outputting pixel values corresponding to the single row to the Gaussian filter core when all pixel values corresponding to a single row of the input image are received. is performed, wherein at least one of the plurality of first delay elements outputs the pixel value of the input image to another first delay element, and at least one image row storage unit corresponds to the single row as another image row storage unit pixel values can be output.

상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 값을 포함하는 마스크 영역 데이터를 생성하는 단계는, 상기 단일 행에 대응하는 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제2 지연 소자; 및 타 영상 행 저장부 또는 외부로부터 상기 단일 행에 대응하는 픽셀값을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 순차적으로 상기 타 영상 행 저장부, 상기 제2 지연 소자 중 어느 하나 및 상기 가우시안 필터 코어로 순차적으로 출력하는 FIFO 모듈; 를 포함하는 영상 행 저장부를 포함하는 상기 영상 버퍼를 통해 수행되는 단계이고, 복수의 상기 제2 지연 소자 중 하나 이상은 타 제2 지연 소자로 상기 입력 영상의 픽셀값을 출력할 수 있다.The generating, by the image buffer, of the mask area data including the values of pixels located on the mask in the input image, may include sequentially receiving and storing pixel values corresponding to the single row, and storing the pixel values in the stored single row. a plurality of second delay elements connected in series to output corresponding pixel values to the Gaussian filter core; and when all pixel values corresponding to the single row are received from the other image row storage unit or from the outside, the pixel values corresponding to the single row are sequentially stored in one of the other image row storage unit, the second delay element, and a FIFO module sequentially outputting to the Gaussian filter core; The step is performed through the image buffer including an image row storage unit including a, and at least one of the plurality of second delay elements may output the pixel value of the input image to another second delay element.

상기 가우시안 필터 코어가 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하는 단계는, 인덱스 생성기를 통해 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 단계; 및 복수의 라우터를 통해 상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 단계; 필터 코어를 통해 각 상기 픽셀 배열값을 한 행으로 구성된 행렬에 대해 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 단계;를 포함할 수 있다.The step of generating, by the Gaussian filter core, the pixel array value by arranging the mask area data with reference to the index array corresponding to the size of the mask, is performed by referring to the index array corresponding to the size of the mask through the index generator. creating indexes and column indexes; and generating pixel array values by arranging some of the mask area data according to the row index and column index through a plurality of routers; generating a Gaussian filter value by applying Gaussian filtering to a matrix including each of the pixel array values in one row through a filter core.

상기 인덱스 생성기를 통해 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 단계는, 상기 인덱스 배열 중 마스크 중심 좌표에 대응하는 각 행에 해당하는 인덱스를 포함하는 상기 행 인덱스 및 상기 열 인덱스를 생성하는 단계일 수 있다.The generating of a row index and a column index by referring to the index array corresponding to the size of the mask through the index generator includes the row index including an index corresponding to each row corresponding to the mask center coordinate in the index array. and generating the column index.

상기 인덱스 배열의 int(n/2)+1번째 행은 0 내지 n-1의 값이 순차적으로 배열된 행이고, 상기 인덱스 배열의 int(n/2)+1 번째 열에 위치하는 각 인덱스들은 int(n/2)의 값을 가지고, 상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 상측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+1-인덱스 행)보다 작은 경우, 우측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 인덱스 열이 (int(n/2)+1-인덱스 행) 이상인 경우, 우측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 하측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+(n-인덱스 행))보다 큰 경우, 좌측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 인덱스 열이 (int(n/2)+(n-인덱스 행)) 이하인 경우, 좌측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 상기 n은 상기 마스크의 가로 또는 세로 길이이고, 상기 인덱스 열은 각 인덱스의 열 번호이고, 상기 인덱스 행은 각 인덱스의 행 번호이고, 상기 int(n/2)는 n/2를 정수화한 수치일 수 있다.The int(n/2)+1th row of the index array is a row in which values 0 to n-1 are sequentially arranged, and each indices positioned in the int(n/2)+1th column of the index array are int With a value of (n/2), each index located above the int(n/2)+1th row among the indices of the index array has an index column of (int(n/2)+1-index row ), it has a value 1 larger than the index adjacent to the right, and when the index column is (int(n/2)+1-index row) or more, it has a value smaller than the index adjacent to the right by 1, the index Among the indices of the array, each index located below the int(n/2)+1th row is greater than the index adjacent to the left when the index column is greater than (int(n/2)+(n-index row)) If it has a value less than 1 and the index column is less than or equal to (int(n/2)+(n-index row)), has a value greater than the index adjacent to the left by 1, and n is the horizontal or vertical length of the mask , the index column may be a column number of each index, the index row may be a row number of each index, and the int(n/2) may be an integer obtained by n/2.

상기 복수의 라우터를 통해 상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 단계는 상기 마스크 영역 데이터 중 상기 행 인덱스에 대응하는 행에 위치하는 픽셀값 중 상기 열 인덱스에 포함된 각 인덱스에 대응하는 픽셀값을 각 상기 인덱스의 열 인덱스 상 위치에 따라 배열하여 상기 픽셀 배열값을 생성하는 상기 라우터를 통해 수행되는 단계일 수 있다.The step of arranging some of the mask area data according to the row index and the column index through the plurality of routers to generate pixel array values may include: The step may be performed through the router for generating the pixel array value by arranging pixel values corresponding to each index included in the column index according to positions on the column index of each index.

상술한 바와 같이 본 발명의 일 실시예에 따르면, 고해상도 영상에 대한 가우시안 필터링을 실시간으로 수행할 수 있다.As described above, according to an embodiment of the present invention, Gaussian filtering on a high-resolution image may be performed in real time.

도 1은 본 발명의 일 실시예에 따른 가우시안 필터링 장치를 예시한 블록도.
도 2는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 가우시안 필터링에 이용하는 가우시안 분포를 예시한 도면.
도 3은 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 이용하는 마스크를 예시한 도면.
도 4는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 수행하는 미러링을 예시한 도면.
도 5는 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 영상 버퍼를 예시한 도면.
도 6은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 영상 버퍼가 포함하는 영상 행 저장부를 예시한 도면.
도 7은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어를 예시한 도면.
도 8은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어의 인덱스 생성기에 저장된 인덱스 배열을 예시한 도면.
도 9는 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터의 동작 과정을 개념적으로 예시한 도면.
도 10은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터가 열 인덱스 및 행 인덱스에 따라 미러링을 수행한 결과를 예시한 도면.
도 11은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터가 각 마스크 중심 좌표에 따른 열 인덱스 및 행 인덱스에 따라 미러링을 수행한 결과를 예시한 도면.
도 12는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 가우시안 필터링을 수행하는 과정을 예시한 순서도.
1 is a block diagram illustrating a Gaussian filtering apparatus according to an embodiment of the present invention.
2 is a diagram illustrating a Gaussian distribution used for Gaussian filtering by a Gaussian filtering apparatus according to an embodiment of the present invention.
3 is a diagram illustrating a mask used by a Gaussian filtering apparatus according to an embodiment of the present invention.
4 is a diagram illustrating mirroring performed by a Gaussian filtering apparatus according to an embodiment of the present invention.
5 is a diagram illustrating an image buffer of a Gaussian filtering apparatus according to an embodiment of the present invention.
6 is a diagram illustrating an image row storage unit included in an image buffer of a Gaussian filtering apparatus according to an embodiment of the present invention.
7 is a diagram illustrating a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention.
8 is a diagram illustrating an index array stored in an index generator of a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention.
9 is a diagram conceptually illustrating an operation process of a router included in a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention.
10 is a diagram illustrating a result of a router included in a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention performing mirroring according to a column index and a row index;
11 is a diagram illustrating a result of a router included in a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention performing mirroring according to a column index and a row index according to each mask center coordinate.
12 is a flowchart illustrating a process in which a Gaussian filtering apparatus according to an embodiment of the present invention performs Gaussian filtering.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and will be described in detail through the detailed description. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소로 신호를 “전송한다”로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되어 신호를 전송할 수 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 신호를 전송할 수도 있다고 이해되어야 할 것이다.In addition, in this specification, when it is said that one component "transmits" a signal to another component, the one component may be directly connected to the other component to transmit a signal, but there is a particularly opposite description. Unless otherwise noted, it should be understood that a signal may be transmitted through another component in the middle.

도 1은 본 발명의 일 실시예에 따른 가우시안 필터링 장치를 예시한 블록도이고, 도 2는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 가우시안 필터링에 이용하는 가우시안 분포를 예시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 이용하는 마스크를 예시한 도면이고, 도 4는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 수행하는 미러링을 예시한 도면이다.1 is a block diagram illustrating a Gaussian filtering apparatus according to an embodiment of the present invention, FIG. 2 is a diagram illustrating a Gaussian distribution used by the Gaussian filtering apparatus according to an embodiment of the present invention for Gaussian filtering, and FIG. 3 is a diagram illustrating a mask used by the Gaussian filtering apparatus according to an embodiment of the present invention, and FIG. 4 is a diagram illustrating mirroring performed by the Gaussian filtering apparatus according to an embodiment of the present invention.

도 1은 본 발명의 일 실시예에 따른 가우시안 필터링 장치는 영상 버퍼(110), 가우시안 필터 코어(120) 및 제어기(130)를 포함한다.1 illustrates a Gaussian filtering apparatus according to an embodiment of the present invention including an image buffer 110 , a Gaussian filter core 120 , and a controller 130 .

영상 버퍼(110)는 외부 장치(카메라, 네트워크를 통해 연결된 디바이스, 저장매체 등)로부터 수신하는 영상인 입력 데이터를 수신하고, 입력 데이터 중 가우시안 필터링을 위한 마스크에 해당하는 픽셀의 값(이하, 마스크 영역 데이터라 지칭)을 가우시안 필터 코어(120)로 전송한다.The image buffer 110 receives input data that is an image received from an external device (a camera, a device connected through a network, a storage medium, etc.), and a value of a pixel corresponding to a mask for Gaussian filtering among the input data (hereinafter, a mask). area data) is transmitted to the Gaussian filter core 120 .

가우시안 필터 코어(120)는 마스크 영역 데이터를 가우시안 필터링한다. 이 때, 가우시안 필터 코어(120)는 마스크 영역 데이터에 대해서 미러링이 필요할 경우, 마스크 영역 데이터에 대해 미러링을 적용하여, 미러링이 적용된 마스크 영역 데이터에 대해 가우시안 필터링을 수행할 수 있다.The Gaussian filter core 120 performs Gaussian filtering on the mask region data. In this case, when mirroring is required for the mask area data, the Gaussian filter core 120 may apply the mirroring to the mask area data to perform Gaussian filtering on the mask area data to which the mirroring is applied.

가우시안 필터 코어(120)는 가우시안 분포의 특성을 이용하여 가우시안 필터링을 수행한다. 1차원 가우시안 분포는 하기의 수학식 1과 같이 정의될 수 있다.The Gaussian filter core 120 performs Gaussian filtering using a characteristic of a Gaussian distribution. The one-dimensional Gaussian distribution may be defined as in Equation 1 below.

[수학식 1][Equation 1]

Figure 112015086409940-pat00001
Figure 112015086409940-pat00001

이 때, x는 가우시안 필터링의 대상이 되는 원소값(입력 영상의 각 픽셀 값)을 의미하고,

Figure 112015086409940-pat00002
는 각 원소값의 평균이고,
Figure 112015086409940-pat00003
는 각 원소값의 표준편차이다.
Figure 112015086409940-pat00004
인 경우, 1차원 가우시안 분포는 일반적인 정규분포가 될 수 있다. In this case, x means an element value (each pixel value of the input image) subject to Gaussian filtering,
Figure 112015086409940-pat00002
is the average of each element value,
Figure 112015086409940-pat00003
is the standard deviation of each element value.
Figure 112015086409940-pat00004
In the case of , the one-dimensional Gaussian distribution may be a general normal distribution.

이 때, 표준 편차에 의해 가우시안 분포의 폭이 결정되며, 가우시안 분포의 폭에 따라 필터의 크기가 결정될 수 있다. 도 2와 같이 평균이 0이고 표준편차가

Figure 112015086409940-pat00005
인 가우시안 분포에서 각 원소의 값은 범위
Figure 112015086409940-pat00006
내에 분포되며, 표준 편차의 크기가 더 클수록, 더 큰 스무싱(smoothing) 현상이 일어난다(각 원소가 더 넓은 범위 내에 분포된다). In this case, the width of the Gaussian distribution may be determined by the standard deviation, and the size of the filter may be determined according to the width of the Gaussian distribution. 2, the mean is 0 and the standard deviation is
Figure 112015086409940-pat00005
In a Gaussian distribution, the value of each element is a range
Figure 112015086409940-pat00006
, and the larger the standard deviation, the greater the smoothing (each element is distributed within a wider range).

본 발명의 일 실시예에 따른 가우시안 필터링 장치는 영상을 가우시안 필터링하기 때문에 상술한 수학식 1을 변형한 수학식 2에 따른 2차원 가우시안 분포를 이용할 수 있다.Since the Gaussian filtering apparatus according to an embodiment of the present invention performs Gaussian filtering on an image, a two-dimensional Gaussian distribution according to Equation 2 modified from Equation 1 may be used.

[수학식 2][Equation 2]

Figure 112015086409940-pat00007
Figure 112015086409940-pat00007

이 때, x는 가우시안 분포를 이루는 각 원소에 대한 x좌표이고, y는 가우시안 분포를 이루는 각 원소에 대한 y좌표이다.In this case, x is the x-coordinate of each element constituting the Gaussian distribution, and y is the y-coordinate of each element constituting the Gaussian distribution.

본 발명의 일 실시예에 따른 가우시안 필터링 장치는 가우시안 분포를 나타내는 가우시안 함수가 연속 함수이지만, 마스크를 만들기 위해서 x 및 y가 정수인 경우에 대해서만 가우시안 함수의 값을 산출할 수 있다. 평균이 0이고, 표준 편차가

Figure 112015086409940-pat00008
인 가우시안 분포에서 각 원소의 값은 범위
Figure 112015086409940-pat00009
에 존재하기 때문에 마스크의 크기는 (8
Figure 112015086409940-pat00010
+1) x (8
Figure 112015086409940-pat00011
+1)로 설정될 수 있다. 따라서, 표준 편차가 1인 경우, 마스크는 9x9 크기의 마스크일 수 있다. 표준 편차가 0.4인 경우, 마스크는 3x3 크기의 마스크일 수 있다. 표준 편차가 0.8인 경우, 마스크는 5x5 크기의 마스크일 수 있다. Although the Gaussian function representing the Gaussian distribution is a continuous function in the Gaussian filtering apparatus according to an embodiment of the present invention, the value of the Gaussian function may be calculated only when x and y are integers in order to create a mask. mean is 0 and standard deviation is
Figure 112015086409940-pat00008
In a Gaussian distribution, the value of each element is a range
Figure 112015086409940-pat00009
The size of the mask is (8) because it exists in
Figure 112015086409940-pat00010
+1) x (8
Figure 112015086409940-pat00011
+1) can be set. Therefore, when the standard deviation is 1, the mask may be a 9x9 mask. If the standard deviation is 0.4, the mask may be a 3x3 mask. When the standard deviation is 0.8, the mask may be a 5x5 mask.

이 때, 표준 편차에 따라 결정된 크기의 마스크를 이용한 가우시안 필터링 과정은 마스크를 입력 영상 상에 이동시키면서, 각 위치의 마스크에 해당하는 입력 영상의 각 픽셀에 대해 필터 계수를 곱한 값의 합을 산출하는 과정이다. At this time, the Gaussian filtering process using a mask of a size determined according to the standard deviation calculates the sum of values obtained by multiplying the filter coefficients for each pixel of the input image corresponding to the mask at each position while moving the mask on the input image. It is a process.

마스크의 위치가 도 3의 (a)와 같이 위치하는 경우, 마스크 내에 해당 하는 입력 영상의 픽셀이 모두 존재한다. 하지만, 마스크의 위치가 도 3의 (b)와 같이 위치하는 경우, 입력 영상의 픽셀이 위치하지 않는 영역이 존재한다. 따라서, 효율적인 가우시안 필터링 처리를 위해 도 4와 같은 미러링을 통해 마스크 내의 모든 위치에 대해 입력 영상의 픽셀이 위치하도록 할 필요가 있다.When the position of the mask is as shown in (a) of FIG. 3 , all pixels of the input image corresponding to the mask exist. However, when the position of the mask is located as shown in FIG. 3B , there is a region where the pixel of the input image is not located. Therefore, for efficient Gaussian filtering processing, it is necessary to position the pixels of the input image with respect to all positions in the mask through mirroring as shown in FIG. 4 .

도 4의 (a)에 나타난 입력 영상에 대해 상하 방향으로 미러링을 수행하는 경우, 도 4의 (b)와 같이 입력 영상의 가장 상위에 위치하는 행에서 지정된 범위내에 해당하는 행들이 가장 상위에 위치하는 행의 상위에 복사되고, 입력 영상의 가장 하위에 위치하는 행에서 미리 지정된 범위내에 해당하는 행들이 가장 하위에 위치하는 행의 하위에 복사될 수 있다. 또한, 도 4의 (a)에 나타난 입력 영상에 대해 좌우 방향으로 미러링을 수행하는 경우, 도 4의 (c)와 같이 입력 영상의 가장 좌측에 위치하는 열에서 지정된 범위내에 해당하는 열들이 가장 좌측에 위치하는 열의 좌측에 복사되고, 도 4의 (c)와 같이 입력 영상의 가장 우측에 위치하는 열에서 지정된 범위내에 해당하는 열들이 가장 우측에 위치하는 열의 우측에 복사될 수 있다. 이 때, 복사되는 행 또는 열의 수는 (마스크 크기-1)/2이하일 수 있다. When mirroring is performed on the input image shown in (a) of FIG. 4 in the vertical direction, as shown in (b) of FIG. 4, rows corresponding to the specified range in the uppermost row of the input image are positioned at the top It may be copied to the uppermost row of the input image, and rows corresponding to a predetermined range in the lowermost row of the input image may be copied to the lowermost row of the input image. In addition, when mirroring is performed on the input image shown in (a) of FIG. 4 in the left and right directions, columns corresponding to the specified range in the leftmost column of the input image as shown in (c) of FIG. 4 are the leftmost columns. is copied to the left of the column located in , and columns corresponding to a range specified in the rightmost column of the input image as shown in FIG. 4C may be copied to the right of the rightmost column. In this case, the number of rows or columns to be copied may be (mask size-1)/2 or less.

상술한 바와 같이 미러링은 각 픽셀의 위치에 따라 복사되는 위치를 계산하여야 하기 때문에 계산 복잡도가 높다. 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어(120)는 프로세서가 아닌 하드웨어를 통해 미러링을 수행하여 실시간 가우시안 필터링을 가능하도록 한다. 가우시안 필터 코어(120)에 관한 상세한 구조는 추후 도 7내지 도 9을 참조하여 상세히 설명하도록 한다.As described above, the calculation complexity is high because mirroring requires calculating the copied position according to the position of each pixel. The Gaussian filter core 120 of the Gaussian filtering apparatus according to an embodiment of the present invention enables real-time Gaussian filtering by performing mirroring through hardware rather than a processor. A detailed structure of the Gaussian filter core 120 will be described in detail later with reference to FIGS. 7 to 9 .

제어기(130)는 제어기는 마스크의 크기를 나타내는 마스크 크기 정보를 가우시안 필터 코어(120)로 전송하여, 가우시안 필터 코어(120)가 영상 버퍼(110)로부터 출력된 마스크 영역 데이터를 마스크의 크기에 맞게 추출하도록 제어한다. 이 때, 제어기(130)는 사용자로부터 마스크 크기를 설정하는 입력을 받아 마스크 크기 정보를 미리 생성할 수 있다.The controller 130 transmits mask size information indicating the size of the mask to the Gaussian filter core 120 so that the Gaussian filter core 120 adjusts the mask area data output from the image buffer 110 to the size of the mask. control to extract. In this case, the controller 130 may receive an input for setting the mask size from the user and generate mask size information in advance.

도 5는 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 영상 버퍼를 예시한 도면이고, 도 6은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 영상 버퍼가 포함하는 영상 행 저장부를 예시한 도면이다.5 is a diagram illustrating an image buffer of a Gaussian filtering apparatus according to an embodiment of the present invention, and FIG. 6 is a diagram illustrating an image row storage unit included in the image buffer of a Gaussian filtering apparatus according to an embodiment of the present invention am.

도 5를 참조하면, 영상 버퍼(110)는 복수의 지연 소자(510)와 복수의 영상 행 저장부(520)를 포함한다.Referring to FIG. 5 , the image buffer 110 includes a plurality of delay elements 510 and a plurality of image row storage units 520 .

지연 소자(510)는 단일 픽셀의 픽셀값을 저장한다. 각 지연 소자(510)는 새로운 픽셀값을 외부로부터 수신하는 경우, 기존 저장된 픽셀값을 출력하고 새로운 픽셀값을 저장한다. 이 때, 복수의 지연 소자(510)는 도 5와 같이 서로 연속하게 배치될 수 있다. 이 때, 각 지연 소자(510)는 다음 순서에 해당하는 지연 소자(이하, 다음 지연 소자라 지칭) 및 가우시안 필터 코어(120)로 기존 저장된 픽셀값을 출력할 수 있다. 특히, 복수의 지연 소자(510) 중 마지막에 위치한 지연 소자에 대한 다음 지연 소자가 존재하지 않기 때문에 마지막에 위치한 지연 소자는 가우시안 필터 코어(120)로 기존 저장된 필셀값을 출력한다.The delay element 510 stores a pixel value of a single pixel. When a new pixel value is received from the outside, each delay element 510 outputs a previously stored pixel value and stores the new pixel value. In this case, the plurality of delay elements 510 may be sequentially disposed with each other as shown in FIG. 5 . In this case, each delay element 510 may output a previously stored pixel value to a delay element (hereinafter referred to as a next delay element) corresponding to the following order and the Gaussian filter core 120 . In particular, since there is no next delay element for the last delay element among the plurality of delay elements 510 , the last delay element outputs the previously stored pixel value to the Gaussian filter core 120 .

영상 행 저장부(520)는 입력 영상의 단일 행을 저장하고, 해당 행에 포함된 픽셀값 중 마스크가 위치한 영역에 해당하는 픽셀값을 출력한다. 이 때, 복수의 영상 행 저장부(520)는 서로 연속하게 배치될 수 있다. 영상 행 저장부(520)는 인접한 타 영상 행 저장부가 존재하고 영상의 각 행에 해당하는 픽셀값을 전부 수신한 경우, 해당 픽셀값을 인접한 타 영상 행 저장부(520)로 전송한다. 따라서, 도 5에 예시된 영상 행 저장부(520) 중 최상위에 위치한 영상 행 저장부(520)는 가장 이른 시간에 입력된 입력 영상의 행을 저장하고, 해당 행에 포함된 픽셀값을 출력할 수 있다.The image row storage unit 520 stores a single row of the input image, and outputs a pixel value corresponding to an area in which a mask is located among pixel values included in the corresponding row. In this case, the plurality of image row storage units 520 may be sequentially arranged with each other. The image row storage unit 520 transmits the corresponding pixel values to the other adjacent image row storage unit 520 when other adjacent image row storage units exist and all pixel values corresponding to each row of the image are received. Accordingly, the image row storage 520 located at the top of the image row storage 520 illustrated in FIG. 5 stores the row of the input image input at the earliest time, and outputs the pixel values included in the row. can

도 6을 참조하면, 영상 버퍼는 FIFO 모듈(610) 및 복수의 지연 소자(620)를 포함한다.Referring to FIG. 6 , the image buffer includes a FIFO module 610 and a plurality of delay elements 620 .

FIFO(first-in first- out) 모듈()은 외부 또는 영상 행 저장부(520)로부터 수신한 단일 행에 해당하는 픽셀값을 저장한다. FIFO 모듈(610)은 단일 행에 해당하는 픽셀값을 모두 수신하는 경우, 해당 픽셀값을 FIFO 모듈(610)에 연결된 지연소자(620) 및 당해 영상 행 저장부(520)과 연결된 타 영상 행 저장부(520)의 FIFO 모듈(610)로 순차적(선입 선출 방식)으로 전송한다.A first-in first-out (FIFO) module ( ) stores a pixel value corresponding to a single row received from an external or image row storage unit 520 . When the FIFO module 610 receives all pixel values corresponding to a single row, the delay element 620 connected to the FIFO module 610 and other image rows connected to the image row storage unit 520 store the corresponding pixel values. It transmits sequentially (first-in, first-out) to the FIFO module 610 of the unit 520 .

복수의 지연 소자(620)는 도 5와 같이 서로 연속하게 배치될 수 있다. 이 때, 각 지연 소자(620)는 다음 지연 소자 및 가우시안 필터 코어(120)로 기존 저장된 픽셀값을 출력할 수 있다. 특히, 복수의 지연 소자(620) 중 마지막에 위치한 지연 소자에 대한 다음 지연 소자가 존재하지 않기 때문에 마지막에 위치한 지연 소자는 가우시안 필터 코어(120)로 기존 저장된 픽셀값을 출력한다.The plurality of delay elements 620 may be sequentially disposed with each other as shown in FIG. 5 . At this time, each delay element 620 may output the previously stored pixel value to the next delay element and the Gaussian filter core 120 . In particular, since there is no next delay element for the last delay element among the plurality of delay elements 620 , the last delay element outputs the previously stored pixel value to the Gaussian filter core 120 .

이 때, 가우시안 필터 코어(120)는 마스크의 크기에 따라 지연 소자(510) 및 영상 행 저장부(520)의 출력 중 일부인 마스크 영역 데이터를 선별하여 가우시안 필터링을 수행할 수 있다. 예를 들어, 마스크의 크기가 3x3인 경우, 가우시안 필터 코어(120)는 각 영상 행 저장부(520)로부터 도 6의 3x3으로 예시된 경로에 따라 출력된 픽셀값을 선별하여 가우시안 필터링을 수행할 수 있다. 또한, 마스크의 크기가 3x3인 경우, 가우시안 필터 코어(120)는 도 5와 같이 지연 소자(510)를 거치지 않고 출력된 픽셀값 및 초반 2개의 지연 소자(510)를 통해 출력된 픽셀값을 선별하여 가우시안 필터링을 수행할 수 있다. 또한, 가우시안 필터 코어(120)는 도 5와 같이 마스크의 크기가 3x3인 경우, 지연 소자(510)를 거치지 않고 출력된 픽셀값, 지연 소자(510)를 통해 출력된 픽셀 값 및 하위 2개의 영상 행 저장부(520)를 통해 출력된 픽셀 값 중 일부를 상술한 과정에 따라 선별할 수 있다.In this case, the Gaussian filter core 120 may perform Gaussian filtering by selecting mask region data that is a part of the outputs of the delay element 510 and the image row storage unit 520 according to the size of the mask. For example, when the size of the mask is 3x3, the Gaussian filter core 120 selects pixel values output from each image row storage unit 520 according to the path illustrated as 3x3 in FIG. 6 to perform Gaussian filtering. can In addition, when the size of the mask is 3x3, the Gaussian filter core 120 selects the pixel value output without passing through the delay element 510 and the pixel value output through the first two delay elements 510 as shown in FIG. 5 . Thus, Gaussian filtering can be performed. In addition, when the size of the mask is 3x3 as shown in FIG. 5 , the Gaussian filter core 120 includes a pixel value output without passing through the delay element 510 , a pixel value output through the delay element 510 , and two lower images. Some of the pixel values output through the row storage unit 520 may be selected according to the above-described process.

가우시안 필터 코어(120)는 마스크의 크기가 5x5, 7x7 또는 9x9인 경우에도 도 5및 도 6에 예시된 바와 같은 경로를 통해 출력된 픽셀값만을 수신함으로써, 마스크 크기에 대해 가우시안 필터링을 적응적으로 수행할 수 있다. 이 때, 제어기(130)는 마스크의 크기를 설정하는 마스크 크기 설정 신호를 가우시안 필터 코어(120)로 전송할 수 있고, 가우시안 필터 코어(120)는 마스크 크기 설정 신호에 따라 픽셀값을 선별할 수 있다.The Gaussian filter core 120 adaptively performs Gaussian filtering with respect to the mask size by receiving only pixel values output through the paths as illustrated in FIGS. 5 and 6 even when the size of the mask is 5x5, 7x7, or 9x9. can be done In this case, the controller 130 may transmit a mask size setting signal for setting the size of the mask to the Gaussian filter core 120 , and the Gaussian filter core 120 may select a pixel value according to the mask size setting signal. .

따라서, 영상 버퍼(110)에서 출력하는 각 픽셀값 중 가우시안 필터 코어(120)가 수신한 픽셀값은 상술한 마스크 영역 데이터에 해당한다. 영상 버퍼(110)는 상술한 구조를 통해 주기적으로 입력 영상의 픽셀값이 출력되는 경로를 달리하여 출력하고, 가우시안 필터 코어(120)는 각 픽셀값이 출력되는 경로에 따라 픽셀값을 선별함으로써, 각 마스크의 위치에 해당하는 입력 영상의 픽셀값을 획득할 수 있다.Accordingly, a pixel value received by the Gaussian filter core 120 among pixel values output from the image buffer 110 corresponds to the above-described mask region data. The image buffer 110 periodically outputs a different path through which the pixel value of the input image is output through the above-described structure, and the Gaussian filter core 120 selects the pixel value according to the path through which each pixel value is output. A pixel value of the input image corresponding to the position of each mask may be obtained.

도 7은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어를 예시한 도면이고, 도 8은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어의 인덱스 생성기에 저장된 인덱스 배열을 예시한 도면이고, 도 9는 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터의 동작 과정을 개념적으로 예시한 도면이고, 도 10은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터가 열 인덱스 및 행 인덱스에 따라 미러링을 수행한 결과를 예시한 도면이다. 도 11은 본 발명의 일 실시예에 따른 가우시안 필터링 장치의 가우시안 필터 코어에 포함된 라우터가 각 마스크 중심 좌표에 따른 열 인덱스 및 행 인덱스에 따라 미러링을 수행한 결과를 예시한 도면이다7 is a diagram illustrating a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention, and FIG. 8 is an index array stored in an index generator of a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention. 9 is a diagram conceptually illustrating an operation process of a router included in a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention, and FIG. 10 is a Gaussian according to an embodiment of the present invention. It is a diagram illustrating a result of a router included in a Gaussian filter core of a filtering device performing mirroring according to a column index and a row index. 11 is a diagram illustrating a result of a router included in a Gaussian filter core of a Gaussian filtering apparatus according to an embodiment of the present invention performing mirroring according to a column index and a row index according to each mask center coordinate.

도 7을 참조하면, 가우시안 필터링 장치의 가우시안 필터 코어(120)는 인덱스 생성기(710), 복수의 라우터(720) 및 필터 코어(730)를 포함한다.Referring to FIG. 7 , the Gaussian filter core 120 of the Gaussian filtering apparatus includes an index generator 710 , a plurality of routers 720 , and a filter core 730 .

인덱스 생성기(710)는 제어기(130)로부터 마스크 크기 정보를 수신하고, 각 라우터(720)가 영상 버퍼(110)로부터 수신한 픽셀값을 마스크의 크기 및 위치에 따라 재배열하는 기준인 인덱스를 생성하여 각 라우터(720)로 전송한다. 이 때, 인덱스 생성기(710)는 미리 저장된 인덱스 배열을 참조하여 마스크의 위치에 대응하는 인덱스를 각 라우터(720)에 전송할 수 있다. 도 8을 참조하면, 인덱스 배열은 마스크의 크기(n x n, n은 3 이상의 홀수)에 따라 설정된 인덱스를 포함하는 배열일 수 있다. 인덱스 배열의 int(n/2)+1번째 행(이하, 정상 상태 행이라 지칭)은 0 내지 n-1의 값이 순차적으로 배열된 행일 수 있다. 또한, 인덱스 배열의 int(n/2)+1 번째 열에 위치하는 각 인덱스(이하, 중간 열 인덱스라 지칭)들은 int(n/2)의 값을 가질 수 있다. 또한, 인덱스 배열의 각 인덱스 중 정상 상태 행의 상측에 위치한 인덱스들은 인덱스 열이 (int(n/2)+1-인덱스 행)보다 작은 경우, 우측에 인접한 인덱스보다 1만큼 큰 값을 가질 수 있고, 인덱스 열이 (int(n/2)+1-인덱스 행) 이상인 경우, 우측에 인접한 인덱스보다 1만큼 작은 값을 가질 수 있다. 또한, 인덱스 배열의 각 인덱스 중 정상 상태 행의 하측에 위치한 인덱스들은 인덱스 열이 (int(n/2)+(n-인덱스 행))보다 큰 경우, 좌측에 인접한 인덱스보다 1만큼 작은 값을 가질 수 있고, 인덱스 열이 (int(n/2)+(n-인덱스 행)) 이하인 경우, 좌측에 인접한 인덱스보다 1만큼 큰 값을 가질 수 있다. 이 때, 인덱스 열은 각 인덱스의 열 번호를 나타내고, 인덱스 행은 각 인덱스의 행 번호를 의미한다. 또한, int(a)는 실수 a를 정수화하는 함수를 의미한다.The index generator 710 receives mask size information from the controller 130 and generates an index, which is a reference for rearranging pixel values received from the image buffer 110 by each router 720 according to the size and position of the mask. to each router 720 . In this case, the index generator 710 may transmit an index corresponding to the position of the mask to each router 720 with reference to the index array stored in advance. Referring to FIG. 8 , the index array may be an array including an index set according to the size of the mask (n x n, where n is an odd number equal to or greater than 3). The int(n/2)+1-th row of the index array (hereinafter, referred to as a steady-state row) may be a row in which values 0 to n-1 are sequentially arranged. In addition, each index (hereinafter, referred to as a middle column index) positioned in the int(n/2)+1th column of the index array may have a value of int(n/2). In addition, among the indices of the index array, the indices located above the steady state row may have a value greater than the index adjacent to the right by 1 when the index column is smaller than (int(n/2)+1-index row), , if the index column is equal to or greater than (int(n/2)+1-index row), it may have a value smaller by 1 than the index adjacent to the right. In addition, among the indices of the index array, the indices located at the lower side of the steady-state row have a value smaller than the index adjacent to the left by 1 when the index column is larger than (int(n/2)+(n-index row)). and, when the index column is less than or equal to (int(n/2)+(n-index row)), it may have a value 1 greater than the index adjacent to the left. In this case, the index column indicates the column number of each index, and the index row indicates the row number of each index. Also, int(a) means a function that converts a real number a into an integer.

인덱스 생성기(710)는 마스크의 중심점(마스크 상의 좌표 int(n/2)+1에 해당하는 점)이 입력 데이터의 영상 상에 위치하는 좌표(이하, 마스크 중심 좌표라 지칭)에 대응하는 인덱스 배열의 행에 해당하는 행 인덱스 및 열 인덱스를 추출하여 라우터(720)로 전송한다. 예를 들어, 인덱스 생성기(710)는 마스크 중심 좌표가 (a, b)인 경우, 각 a 또는 b가 int(n/2) 이하인지 판단할 수 있다. 만약, a 가 int(n/2) 이하인 경우, 인덱스 생성기(710)는 인덱스 배열의 a번째 행에 해당하는 인덱스를 행 인덱스로써 라우터(720)로 전송할 할 수 있다. 만약, a가 int(n/2)보다 크고, a가 (h-int(n/2), h는 영상의 높이) 이하 경우, 인덱스 생성기(710)는 정상 상태 행에 해당하는 인덱스(0 내지 n-1)를 라우터(720)로 전송할 수 있다. 만약, a가 h-int(n/2)보다 큰 경우, 인덱스 생성기(710)는 인덱스 배열의 (n-a)번째 행에 해당하는 인덱스를 행 인덱스로써 출력할 수 있다. 만약, b가 int(n/2) 이하인 경우, 인덱스 생성기(710)는 인덱스 배열의 b번째 행에 해당하는 인덱스를 열 인덱스로써 라우터(720)로 전송할 할 수 있다. 만약, b가 int(n/2)보다 크고, b가 (w-int(n/2), w는 영상의 넓이) 이하 경우, 인덱스 생성기(710)는 정상 상태 행에 해당하는 인덱스(0 내지 n-1)를 열 인덱스로써 라우터(720)로 전송할 수 있다. 만약, b가 w-int(n/2)보다 큰 경우, 인덱스 생성기(710)는 인덱스 배열의 (n-a)번째 행에 해당하는 인덱스를 열 인덱스로써 출력할 수 있다.The index generator 710 is an index array corresponding to the coordinates (hereinafter, referred to as mask center coordinates) at which the center point of the mask (a point corresponding to the coordinate int(n/2)+1 on the mask) is located on the image of the input data. A row index and a column index corresponding to a row of are extracted and transmitted to the router 720 . For example, when the mask center coordinates are (a, b), the index generator 710 may determine whether each a or b is equal to or less than int(n/2). If a is less than or equal to int(n/2), the index generator 710 may transmit an index corresponding to the a-th row of the index array to the router 720 as a row index. If a is greater than int(n/2) and a is equal to or less than (h-int(n/2), h is the height of the image), the index generator 710 sets the index (0 to 0 to) corresponding to the steady-state row. n-1) may be transmitted to the router 720 . If a is greater than h-int(n/2), the index generator 710 may output an index corresponding to the (n-a)-th row of the index array as a row index. If b is less than or equal to int(n/2), the index generator 710 may transmit the index corresponding to the b-th row of the index array to the router 720 as a column index. If b is greater than int(n/2) and b is less than or equal to (w-int(n/2), w is the image area), the index generator 710 generates indices (0 to 0 to) corresponding to the steady-state row. n-1) may be transmitted to the router 720 as a column index. If b is greater than w-int(n/2), the index generator 710 may output an index corresponding to the (n-a)-th row of the index array as a column index.

라우터(720)는 인덱스 생성기(710)로부터 수신한 행 인덱스 및 열 인덱스를 기준으로 영상 버퍼(110)로부터 수신한 픽셀값인 마스크 영역 데이터를 배열하여 출력한다. 도 9(a)를 참조하면, 라우터(720)는 영상 버퍼(110)로부터 복수의 픽셀값(마스크의 크기가 9x9인 경우 81개의 픽셀값, inData_0 ~ inData_80)을 수신하고, 인덱스 생성기(710)로부터 수신한 행 인덱스 및 열 인덱스에 따라 영상 버퍼(110)로부터 입력받은 픽셀값 중 하나 이상을 배열한 값인 픽셀 배열값을 생성하고, 픽셀 배열값을 필터 코어(730)로 전송한다. 이 때, 라우터(720)는 복수로 구성될 수 있으며, 각 라우터(720)는 전체 픽셀값을 각각 수신한 후, 행 인덱스 및 열 인덱스에 따라 전체 픽셀값 중 일부를 배열한 픽셀 배열값을 생성하여 필터 코어(730)로 각각 전송할 수 있다. 예를 들어, 각 라우터(720)는 도9(b)과 같이 행 인덱스 0과 열 인덱스 {8, 7, 6, 5, 4, 5, 6, 7, 8}을 수신하는 경우, 행 인덱스 0에 대응하는 행에 해당하는 픽셀값 중 일부(열 인덱스 4 ~ 열 인덱스 8에 대응하는 픽셀값)를 열 인덱스에 상응하도록 배열하여 픽셀 배열값을 생성할 수 있다. 즉, 라우터(720)는 입력 받은 픽셀값 중 행 인덱스 0에 대응(전체 픽셀값 중 1번째 행에 해당)하는 픽셀값이 (a, b, c, d, e, f, g, h, i)인 경우, 열 인덱스 {8, 7, 6, 5, 4, 5, 6, 7, 8}에 따른 순서를 가지는 픽셀값의 배열인 (i, h, g, f, e, f, g, h, i)를 픽셀 배열값으로 생성할 수 있다. 상술한 바와 같이, 각 라우터(720)는 미러링이 적용된 픽셀 배열값 중 한 행을 출력할 수 있다. 따라서, 3x3의 마스크가 적용되는 경우, 3개의 라우터(720)가 픽셀 배열값을 생성할 수 있고, 9x9의 마스크가 적용되는 경우, 9개의 라우터(720)가 픽셀 배열값을 생성할 수 있다. 도 10을 참조하면, 마스크 중심 좌표가 (1,1)인 경우, 각 라우터(720)는 열 인덱스(1002) 및 행 인덱스(1003) 중 어느 하나를 수신하여 픽셀 배열값을 생성할 수 있다. 따라서, 도 10과 같이 각 라우터(720)가 출력한 픽셀 배열값을 행렬로 나타내면, 미러링이 수행된 행렬이 될 수 있다. 즉, 도 11과 같이 원으로 표시한 픽셀인 마스크의 중심점이 변경되도록 마스크의 위치가 변경되더라도 각 라우터(720)는 가우스안 필터링을 위한 미러링을 적응적으로 수행할 수 있다. 이 때, 도 12(a)에 대한 마스크 중심 좌표는 (1, 1)이고, 도 12(b)에 대한 마스크 중심 좌표는 (1, 2)이고, 도 12(c)에 대한 마스크 중심 좌표는 (1, 3)이다.The router 720 arranges and outputs the mask area data that is the pixel value received from the image buffer 110 based on the row index and column index received from the index generator 710 . Referring to FIG. 9( a ), the router 720 receives a plurality of pixel values (81 pixel values, inData_0 to inData_80 when the size of the mask is 9x9) from the image buffer 110, and the index generator 710 A pixel array value that is a value obtained by arranging one or more of the pixel values input from the image buffer 110 is generated according to the row index and column index received from , and the pixel array value is transmitted to the filter core 730 . In this case, the router 720 may be configured in plurality, and each router 720 receives all pixel values, and then generates a pixel array value in which some of the total pixel values are arranged according to the row index and column index. to the filter core 730 , respectively. For example, when each router 720 receives row index 0 and column index {8, 7, 6, 5, 4, 5, 6, 7, 8} as shown in FIG. 9(b), row index 0 A pixel array value may be generated by arranging some of pixel values (pixel values corresponding to column index 4 to column index 8) corresponding to the row corresponding to the column index to correspond to the column index. That is, the router 720 determines that a pixel value corresponding to row index 0 (corresponding to the first row among all pixel values) among the received pixel values is (a, b, c, d, e, f, g, h, i). ), which is (i, h, g, f, e, f, g, h, i) can be created as a pixel array value. As described above, each router 720 may output one row of pixel array values to which mirroring is applied. Accordingly, when a 3×3 mask is applied, three routers 720 may generate a pixel array value, and when a 9×9 mask is applied, nine routers 720 may generate a pixel array value. Referring to FIG. 10 , when the mask center coordinate is (1,1), each router 720 may receive any one of a column index 1002 and a row index 1003 to generate a pixel array value. Accordingly, if the pixel array values output by each router 720 are represented as a matrix as shown in FIG. 10, the mirroring may be performed. That is, even if the position of the mask is changed so that the center point of the mask, which is a pixel indicated by a circle, is changed as shown in FIG. 11 , each router 720 can adaptively perform mirroring for Gaussian filtering. At this time, the mask center coordinates for FIG. 12(a) are (1, 1), the mask center coordinates for FIG. 12(b) are (1,2), and the mask center coordinates for FIG. 12(c) are (1, 3).

필터 코어(730)는 각 픽셀 배열값을 한 행으로 구성된 행렬에 대해 가우시안 필터링을 적용하여 가우시안 필터값을 생성한다. 이 때, 필터 코어(730)는 공지된 가우시안 필터링 방식에 따라 가우시안 필터값을 생성할 수 있다.The filter core 730 generates a Gaussian filter value by applying Gaussian filtering to a matrix including each pixel array value in one row. In this case, the filter core 730 may generate a Gaussian filter value according to a known Gaussian filtering method.

도 12는 본 발명의 일 실시예에 따른 가우시안 필터링 장치가 가우시안 필터링을 수행하는 과정을 예시한 순서도이다.12 is a flowchart illustrating a process in which the Gaussian filtering apparatus performs Gaussian filtering according to an embodiment of the present invention.

도 12를 참조하면, 단계 1210에서 영상 버퍼(110)는 입력 데이터를 수신한다. Referring to FIG. 12 , in operation 1210 , the image buffer 110 receives input data.

단계 1220에서 영상 버퍼(110)는 입력 데이터 중 마스크 영역 데이터를 가우시안 필터 코어(120)로 전송한다. 예를 들어, 영상 버퍼(110)는 입력 데이터 중 마스크 상에 위치한 픽셀의 데이터를 필터 코어(730)로 전송한다. 영상 버퍼(110)가 마스크 영역 데이터를 출력하는 과정은 도 5 및 도 6을 참조하여 상술하였다.In operation 1220 , the image buffer 110 transmits mask region data among input data to the Gaussian filter core 120 . For example, the image buffer 110 transmits data of a pixel located on a mask among input data to the filter core 730 . A process in which the image buffer 110 outputs mask area data has been described above with reference to FIGS. 5 and 6 .

단계 1230에서 가우시안 필터 코어(120)는 마스크 중심 좌표에 따른 행 인덱스 및 열 인덱스를 생성한다. 예를 들어, 가우시안 필터 코어(120)는 미리 설정된 인덱스 배열 중 마스크 중심 좌표의 x좌표 및 y좌표에 대응하는 행에 해당하는 인덱스들을 각각 행 인덱스 및 열 인덱스로 설정할 수 있다. 카우시안 필터 코어(120)가 행 인덱스 및 열 인덱스를 생성하는 과정은 도 7 내지 도 8을 참조하여 상술하였다.In operation 1230, the Gaussian filter core 120 generates a row index and a column index according to the mask center coordinates. For example, the Gaussian filter core 120 may set indices corresponding to rows corresponding to the x-coordinates and y-coordinates of the mask center coordinates among the preset index arrays as row indexes and column indices, respectively. The process of generating the row index and the column index by the Causian filter core 120 has been described above with reference to FIGS. 7 to 8 .

단계 1240에서 가우시안 필터 코어(120)는 행 인덱스 및 열 인덱스에 따라 마스크 영역 데이터의 픽셀값을 배열하여 픽셀 배열값을 생성한다. 가우시안 필터 코어(120)가 픽셀 배열값을 생성하는 구체적인 과정은 도 9 내지 도11을 참조하여 상술하였다.In operation 1240, the Gaussian filter core 120 generates a pixel array value by arranging pixel values of the mask area data according to a row index and a column index. A detailed process for generating the pixel array value by the Gaussian filter core 120 has been described above with reference to FIGS. 9 to 11 .

단계 1250에서 가우시안 필터 코어(120)는 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성 및 출력한다.In operation 1250, the Gaussian filter core 120 generates and outputs a Gaussian filter value by applying Gaussian filtering to the pixel array value.

따라서, 본 발명의 일 실시예에 따른 가우시안 필터링 장치 및 방법은 가우시안 필터링 과정 및 가우시안 필터링의 전처리 과정인 미러링 과정을 하드웨어 구조를 통해 수행함으로써, 가우시안 필터링에 소요되는 시간을 소프트웨어를 통해 가우시안 필터링을 수행하는 경우에 비해 줄일 수 있다.Therefore, the Gaussian filtering apparatus and method according to an embodiment of the present invention perform the Gaussian filtering process and the mirroring process, which is a pre-processing of the Gaussian filtering, through a hardware structure, thereby reducing the time required for the Gaussian filtering through software. can be reduced compared to

이제까지 본 발명에 대하여 그 실시 예를 중심으로 살펴보았다. 전술한 실시 예 외의 많은 실시 예들이 본 발명의 특허청구범위 내에 존재한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at with respect to the embodiment. Many embodiments other than the above-described embodiments are within the scope of the claims of the present invention. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

Claims (14)

입력 영상 중 마스크 상에 위치하는 픽셀의 픽셀값을 포함하는 마스크 영역 데이터를 생성하는 영상 버퍼; 및
상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하고, 상기 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 가우시안 필터 코어를 포함하되,
상기 가우시안 필터 코어는:
상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 인덱스 생성기;
상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 복수의 라우터; 및
각 상기 픽셀 배열값을 한 행으로 구성된 행렬에 대해 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 필터 코어를 포함하는 가우시안 필터링 장치.
an image buffer for generating mask area data including pixel values of pixels positioned on a mask in an input image; and
A Gaussian filter core that generates a pixel array value by arranging the mask area data with reference to an index array corresponding to the size of the mask, and applies Gaussian filtering to the pixel array value to generate a Gaussian filter value,
The Gaussian filter core comprises:
an index generator for generating a row index and a column index by referring to an index array corresponding to the size of the mask;
a plurality of routers arranging some of the mask area data according to the row index and column index to generate pixel array values, respectively; and
and a filter core configured to generate a Gaussian filter value by applying Gaussian filtering to a matrix including each of the pixel array values in one row.
제1 항에 있어서,
상기 영상 버퍼는
상기 입력 영상의 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 입력 영상의 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제1 지연 소자; 및
상기 입력 영상의 단일 행에 대응하는 픽셀값들을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 영상 행 저장부
를 포함하되,
복수의 상기 제1 지연 소자 중 하나 이상은 타 제1 지연 소자로 상기 입력 영상의 픽셀값을 출력하고,
상기 영상 행 저장부는 하나 이상은 타 영상 행 저장부로 상기 단일 행에 대응하는 픽셀값들을 출력하는 것을 특징으로 하는 가우시안 필터링 장치.
According to claim 1,
the video buffer
a plurality of serially connected first delay elements that sequentially receive and store pixel values of the input image and output the stored pixel values of the input image to the Gaussian filter core; and
A plurality of serially connected image row storage unit for outputting pixel values corresponding to the single row to the Gaussian filter core when all pixel values corresponding to a single row of the input image are received
including,
at least one of the plurality of first delay elements outputs a pixel value of the input image to another first delay element,
The image row storage unit outputs one or more pixel values corresponding to the single row to another image row storage unit.
제2 항에 있어서,
상기 영상 행 저장부는,
상기 단일 행에 대응하는 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제2 지연 소자; 및
타 영상 행 저장부 또는 외부로부터 상기 단일 행에 대응하는 픽셀값을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 순차적으로 상기 타 영상 행 저장부, 상기 제2 지연 소자 중 어느 하나 및 상기 가우시안 필터 코어로 순차적으로 출력하는 FIFO 모듈;
을 포함하되,
복수의 상기 제2 지연 소자 중 하나 이상은 타 제2 지연 소자로 상기 입력 영상의 픽셀값을 출력하는 것을 특징으로 하는 가우시안 필터링 장치.
3. The method of claim 2,
The image row storage unit,
a plurality of serially connected second delay elements that sequentially receive and store pixel values corresponding to the single row and output the stored pixel values corresponding to the single row to the Gaussian filter core; and
When all pixel values corresponding to the single row are received from the other image row storage unit or the outside, the pixel values corresponding to the single row are sequentially stored in the other image row storage unit, any one of the second delay element, and the a FIFO module that sequentially outputs to a Gaussian filter core;
including,
At least one of the plurality of second delay elements outputs a pixel value of the input image to another second delay element.
삭제delete 제1 항에 있어서,
상기 인덱스 생성기는 상기 인덱스 배열 중 마스크 중심 좌표에 대응하는 각 행에 해당하는 인덱스를 포함하는 상기 행 인덱스 및 상기 열 인덱스를 생성하는 것을 특징으로 하는 가우시안 필터링 장치.
According to claim 1,
The index generator generates the row index and the column index including an index corresponding to each row corresponding to the mask center coordinates in the index array.
제5 항에 있어서,
상기 인덱스 배열의 int(n/2)+1번째 행은 0 내지 n-1의 값이 순차적으로 배열된 행이고,
상기 인덱스 배열의 int(n/2)+1 번째 열에 위치하는 각 인덱스들은 int(n/2)의 값을 가지고,
상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 상측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+1-인덱스 행)보다 작은 경우, 우측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 인덱스 열이 (int(n/2)+1-인덱스 행) 이상인 경우, 우측에 인접한 인덱스보다 1만큼 작은 값을 가지고,
상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 하측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+(n-인덱스 행))보다 큰 경우, 좌측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 인덱스 열이 (int(n/2)+(n-인덱스 행)) 이하인 경우, 좌측에 인접한 인덱스보다 1만큼 큰 값을 가지고,
상기 n은 상기 마스크의 가로 또는 세로 길이이고, 상기 인덱스 열은 각 인덱스의 열 번호이고, 상기 인덱스 행은 각 인덱스의 행 번호이고, 상기 int(n/2)는 n/2를 정수화한 수치인 것을 특징으로 하는 가우시안 필터링 장치.
6. The method of claim 5,
The int(n/2)+1th row of the index array is a row in which values of 0 to n-1 are sequentially arranged,
Each index located in the int(n/2)+1th column of the index array has a value of int(n/2),
Among the indices of the index array, each index located above the int(n/2)+1-th row is smaller than the index adjacent to the right when the index column is smaller than (int(n/2)+1-index row). If it has a value greater than 1 and the index column is (int(n/2)+1-index row) or more, it has a value less than the index adjacent to the right by 1,
Among the indices of the index array, each index located below the int(n/2)+1th row is adjacent to the left when the index column is greater than (int(n/2)+(n-index row)) If it has a value less than the index by 1, and the index column is less than or equal to (int(n/2)+(n-index row)), it has a value 1 greater than the index adjacent to the left,
Wherein n is the horizontal or vertical length of the mask, the index column is the column number of each index, the index row is the row number of each index, and the int(n/2) is an integer number of n/2. Gaussian filtering device, characterized in that.
제1 항에 있어서,
상기 라우터는 상기 마스크 영역 데이터 중 상기 행 인덱스에 대응하는 행에 위치하는 픽셀값 중 상기 열 인덱스에 포함된 각 인덱스에 대응하는 픽셀값을 각 상기 인덱스의 열 인덱스 상 위치에 따라 배열하여 상기 픽셀 배열값을 생성하는 것을 특징으로 하는 가우시안 필터링 장치.
According to claim 1,
The router arranges pixel values corresponding to each index included in the column index among pixel values located in a row corresponding to the row index in the mask area data according to the position on the column index of each index to arrange the pixels Gaussian filtering device, characterized in that for generating a value.
영상 버퍼 및 가우시안 필터 코어를 포함하는 가우시안 필터링 장치가 입력 영상에 대한 가우시안 필터링을 수행하는 방법에 있어서,
상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 픽셀값을 포함하는 마스크 영역 데이터를 생성하는 단계;
상기 가우시안 필터 코어가 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하는 단계; 및
상기 가우시안 필터 코어가 상기 픽셀 배열값에 대한 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 단계를 포함하되,
상기 가우시안 필터 코어가 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 상기 마스크 영역 데이터를 배열하여 픽셀 배열값을 생성하는 단계는,
인덱스 생성기를 통해 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 단계;
복수의 라우터를 통해 상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 단계; 및
필터 코어를 통해 각 상기 픽셀 배열값을 한 행으로 구성된 행렬에 대해 가우시안 필터링을 적용하여 가우시안 필터값을 생성하는 단계를 포함하는 가우시안 필터링 방법.
A method for performing Gaussian filtering on an input image by a Gaussian filtering apparatus including an image buffer and a Gaussian filter core, the method comprising:
generating, by the image buffer, mask area data including pixel values of pixels located on a mask in the input image;
generating, by the Gaussian filter core, a pixel array value by arranging the mask area data with reference to an index array corresponding to the size of the mask; and
and generating, by the Gaussian filter core, a Gaussian filter value by applying Gaussian filtering to the pixel array value,
generating, by the Gaussian filter core, a pixel array value by arranging the mask area data with reference to an index array corresponding to the size of the mask,
generating a row index and a column index by referring to an index array corresponding to the size of the mask through an index generator;
generating pixel array values by arranging some of the mask area data according to the row index and column index through a plurality of routers; and
and generating a Gaussian filter value by applying Gaussian filtering to a matrix including each of the pixel array values in one row through a filter core.
제8 항에 있어서,
상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 값을 포함하는 마스크 영역 데이터를 생성하는 단계는,
상기 입력 영상의 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 입력 영상의 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제1 지연 소자; 및
상기 입력 영상의 단일 행에 대응하는 픽셀값들을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 영상 행 저장부
를 포함하는 상기 영상 버퍼를 통해 수행되는 단계이고,
복수의 상기 제1 지연 소자 중 하나 이상은 타 제1 지연 소자로 상기 입력 영상의 픽셀값을 출력하고,
상기 영상 행 저장부는 하나 이상은 타 영상 행 저장부로 상기 단일 행에 대응하는 픽셀값들을 출력하는 것을 특징으로 하는 가우시안 필터링 방법.
9. The method of claim 8,
generating, by the image buffer, mask area data including a value of a pixel located on a mask among the input image,
a plurality of serially connected first delay elements that sequentially receive and store pixel values of the input image and output the stored pixel values of the input image to the Gaussian filter core; and
A plurality of serially connected image row storage unit for outputting pixel values corresponding to the single row to the Gaussian filter core when all pixel values corresponding to a single row of the input image are received
It is a step performed through the image buffer comprising a,
at least one of the plurality of first delay elements outputs a pixel value of the input image to another first delay element,
The image row storage unit outputs the pixel values corresponding to the single row to one or more other image row storage units.
제9 항에 있어서,
상기 영상 버퍼가 상기 입력 영상 중 마스크 상에 위치하는 픽셀의 값을 포함하는 마스크 영역 데이터를 생성하는 단계는,
상기 단일 행에 대응하는 픽셀값을 순차적으로 수신하여 저장하고, 저장한 상기 단일 행에 대응하는 픽셀값을 상기 가우시안 필터 코어로 출력하는, 직렬 연결된 복수의 제2 지연 소자; 및
타 영상 행 저장부 또는 외부로부터 상기 단일 행에 대응하는 픽셀값을 모두 수신하는 경우, 상기 단일 행에 대응하는 픽셀값을 순차적으로 상기 타 영상 행 저장부, 상기 제2 지연 소자 중 어느 하나 및 상기 가우시안 필터 코어로 순차적으로 출력하는 FIFO 모듈;
를 포함하는 영상 행 저장부를 포함하는 상기 영상 버퍼를 통해 수행되는 단계이고,
복수의 상기 제2 지연 소자 중 하나 이상은 타 제2 지연 소자로 상기 입력 영상의 픽셀값을 출력하는 것을 특징으로 하는 가우시안 필터링 방법.
10. The method of claim 9,
generating, by the image buffer, mask area data including a value of a pixel located on a mask among the input image,
a plurality of serially connected second delay elements that sequentially receive and store pixel values corresponding to the single row and output the stored pixel values corresponding to the single row to the Gaussian filter core; and
When all pixel values corresponding to the single row are received from the other image row storage unit or the outside, the pixel values corresponding to the single row are sequentially stored in the other image row storage unit, any one of the second delay element, and the a FIFO module that sequentially outputs to a Gaussian filter core;
It is a step performed through the image buffer comprising an image row storage comprising a,
At least one of the plurality of second delay elements outputs a pixel value of the input image to another second delay element.
삭제delete 제8 항에 있어서,
상기 인덱스 생성기를 통해 상기 마스크의 크기에 대응하는 인덱스 배열을 참조하여 행 인덱스 및 열 인덱스를 생성하는 단계는,
상기 인덱스 배열 중 마스크 중심 좌표에 대응하는 각 행에 해당하는 인덱스를 포함하는 상기 행 인덱스 및 상기 열 인덱스를 생성하는 단계인 것을 특징으로 하는 가우시안 필터링 방법.
9. The method of claim 8,
The step of generating a row index and a column index by referring to an index array corresponding to the size of the mask through the index generator,
and generating the row index and the column index including an index corresponding to each row corresponding to a mask center coordinate in the index array.
제12 항에 있어서,
상기 인덱스 배열의 int(n/2)+1번째 행은 0 내지 n-1의 값이 순차적으로 배열된 행이고,
상기 인덱스 배열의 int(n/2)+1 번째 열에 위치하는 각 인덱스들은 int(n/2)의 값을 가지고,
상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 상측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+1-인덱스 행)보다 작은 경우, 우측에 인접한 인덱스보다 1만큼 큰 값을 가지고, 인덱스 열이 (int(n/2)+1-인덱스 행) 이상인 경우, 우측에 인접한 인덱스보다 1만큼 작은 값을 가지고,
상기 인덱스 배열의 각 인덱스 중 상기 int(n/2)+1번째 행의 하측에 위치한 각 인덱스는 인덱스 열이 (int(n/2)+(n-인덱스 행))보다 큰 경우, 좌측에 인접한 인덱스보다 1만큼 작은 값을 가지고, 인덱스 열이 (int(n/2)+(n-인덱스 행)) 이하인 경우, 좌측에 인접한 인덱스보다 1만큼 큰 값을 가지고,
상기 n은 상기 마스크의 가로 또는 세로 길이이고, 상기 인덱스 열은 각 인덱스의 열 번호이고, 상기 인덱스 행은 각 인덱스의 행 번호이고, 상기 int(n/2)는 n/2를 정수화한 수치인 것을 특징으로 하는 가우시안 필터링 방법.
13. The method of claim 12,
The int(n/2)+1th row of the index array is a row in which values of 0 to n-1 are sequentially arranged,
Each index located in the int(n/2)+1th column of the index array has a value of int(n/2),
Among the indices of the index array, each index located above the int(n/2)+1-th row is smaller than the index adjacent to the right when the index column is smaller than (int(n/2)+1-index row). If it has a value greater than 1 and the index column is (int(n/2)+1-index row) or more, it has a value less than the index adjacent to the right by 1,
Among the indices of the index array, each index located below the int(n/2)+1th row is adjacent to the left when the index column is greater than (int(n/2)+(n-index row)) If it has a value less than the index by 1 and the index column is less than or equal to (int(n/2)+(n-index row)), it has a value 1 greater than the index adjacent to the left,
Wherein n is the horizontal or vertical length of the mask, the index column is a column number of each index, the index row is a row number of each index, and the int(n/2) is an integer number of n/2. Gaussian filtering method, characterized in that.
제8 항에 있어서,
상기 복수의 라우터를 통해 상기 마스크 영역 데이터 중 일부를 상기 행 인덱스 및 열 인덱스에 따라 배열하여 픽셀 배열값을 각각 생성하는 단계는
상기 마스크 영역 데이터 중 상기 행 인덱스에 대응하는 행에 위치하는 픽셀값 중 상기 열 인덱스에 포함된 각 인덱스에 대응하는 픽셀값을 각 상기 인덱스의 열 인덱스 상 위치에 따라 배열하여 상기 픽셀 배열값을 생성하는 상기 라우터를 통해 수행되는 단계인 것을 특징으로 하는 가우시안 필터링 방법.

9. The method of claim 8,
generating pixel array values by arranging some of the mask area data according to the row index and column index through the plurality of routers,
The pixel array value is generated by arranging pixel values corresponding to each index included in the column index among pixel values positioned in a row corresponding to the row index in the mask area data according to the position on the column index of each index. Gaussian filtering method, characterized in that the step performed through the router.

KR1020150125771A 2014-11-24 2015-09-04 Apparatus and method for gaussian filtering KR102282756B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/951,152 US9842573B2 (en) 2014-11-24 2015-11-24 Apparatus and method for gaussian filtering

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140164772 2014-11-24
KR1020140164772 2014-11-24

Publications (2)

Publication Number Publication Date
KR20160061869A KR20160061869A (en) 2016-06-01
KR102282756B1 true KR102282756B1 (en) 2021-07-29

Family

ID=56138348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150125771A KR102282756B1 (en) 2014-11-24 2015-09-04 Apparatus and method for gaussian filtering

Country Status (1)

Country Link
KR (1) KR102282756B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013223050A (en) 2012-04-13 2013-10-28 Sharp Corp Filtering device, decoding apparatus and encoding apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704439B1 (en) * 2010-09-28 2017-02-09 삼성전자주식회사 Apparatus and method for median filtering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013223050A (en) 2012-04-13 2013-10-28 Sharp Corp Filtering device, decoding apparatus and encoding apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sunmin Song, et al, "A hardware architecture design for real-time Gaussian filter", 2014 IEEE International Conference on Industrial Technology (ICIT), Feb. 26 - Mar. 1, 2014(2014.02.26.) 1부.*

Also Published As

Publication number Publication date
KR20160061869A (en) 2016-06-01

Similar Documents

Publication Publication Date Title
KR102281017B1 (en) Neural network model training method, apparatus and storage medium for image processing
JP7007488B2 (en) Hardware-based pooling system and method
US9779324B2 (en) Method and device for detecting interest points in image
US20210133920A1 (en) Method and apparatus for restoring image
CN111445418A (en) Image defogging method and device and computer equipment
US9131227B2 (en) Computing device with video analyzing function and video analyzing method
US11347308B2 (en) Method and apparatus with gaze tracking
US10848746B2 (en) Apparatus including multiple cameras and image processing method
US10929965B2 (en) Histogram statistics circuit and multimedia processing system
CN103702032A (en) Image processing method, device and terminal equipment
KR102442055B1 (en) Electronic apparatus and control method thereof
KR20180117619A (en) Object management and visualization using computing devices
JP7383642B2 (en) Method and apparatus for removing video jitter
CN103578077A (en) Image zooming method and related device
US9842573B2 (en) Apparatus and method for gaussian filtering
KR102282756B1 (en) Apparatus and method for gaussian filtering
Gour et al. Hardware accelerator for real-time image resizing
JP6235860B2 (en) Information processing apparatus, control method therefor, and program
WO2011121563A1 (en) Detecting saliency in an image
KR20150086758A (en) Apparatus and methdo for processing graphic
CN104902260B (en) The acquisition methods and system of a kind of image parallactic
CN103927740B (en) The method and apparatus for obtaining the point spread function of image
US20190349484A1 (en) Image processing apparatus, image processing method and non-transitory computer-readable storage medium
JP5517555B2 (en) Image processing apparatus, object detection method, and program
CN107422969B (en) Infrared touch screen, and zooming method and device of infrared touch screen

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right