KR102663964B1 - Entropy filter implementation method and hardware device for implementing the same - Google Patents

Entropy filter implementation method and hardware device for implementing the same Download PDF

Info

Publication number
KR102663964B1
KR102663964B1 KR1020220171578A KR20220171578A KR102663964B1 KR 102663964 B1 KR102663964 B1 KR 102663964B1 KR 1020220171578 A KR1020220171578 A KR 1020220171578A KR 20220171578 A KR20220171578 A KR 20220171578A KR 102663964 B1 KR102663964 B1 KR 102663964B1
Authority
KR
South Korea
Prior art keywords
entropy
implementing
pixels
filter
module
Prior art date
Application number
KR1020220171578A
Other languages
Korean (ko)
Inventor
강봉순
이기동
응오닷
이승민
한시연
Original Assignee
동아대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동아대학교 산학협력단 filed Critical 동아대학교 산학협력단
Priority to KR1020220171578A priority Critical patent/KR102663964B1/en
Application granted granted Critical
Publication of KR102663964B1 publication Critical patent/KR102663964B1/en

Links

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
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details

Landscapes

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

Abstract

본 발명은 영상처리 분야에서 많이 활용이 되는 엔트로피 필터(entropy filter)의 실시간 처리를 위한 엔트로피 필터(Entropy filter)의 구현 방법 및 이를 구현하기 위한 하드웨어 장치에 관한 것으로, 더욱 구체적으로는 엔트로피 필터(entropy filter)를 기존 방법과 다르게 하드웨어 장치로 구현하여 픽셀 정렬 및 인접 픽셀의 차이를 사용해서 엔트로피(entropy) 계산을 하도록 하기 위한 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치에 관한 것이다. The present invention relates to a method of implementing an entropy filter for real-time processing of an entropy filter, which is widely used in the image processing field, and a hardware device for implementing the same. More specifically, it relates to an entropy filter (entropy filter) that is widely used in the field of image processing. This relates to a method of implementing an entropy filter to calculate entropy using pixel alignment and differences between adjacent pixels by implementing a hardware device differently from existing methods and a hardware device for implementing the same.

Description

엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치{Entropy filter implementation method and hardware device for implementing the same}Entropy filter implementation method and hardware device for implementing the same}

본 발명은 영상처리 분야에서 많이 활용이 되는 엔트로피 필터(entropy filter)의 실시간 처리를 위한 엔트로피 필터(Entropy filter)의 구현 방법 및 이를 구현하기 위한 하드웨어 장치에 관한 것으로, 더욱 구체적으로는 엔트로피 필터(entropy filter)를 기존 방법과 다르게 하드웨어 장치로 구현하여 픽셀 정렬 및 인접 픽셀의 차이를 사용해서 엔트로피(entropy) 계산을 하도록 하기 위한 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치에 관한 것이다. The present invention relates to a method of implementing an entropy filter for real-time processing of an entropy filter, which is widely used in the image processing field, and a hardware device for implementing the same. More specifically, it relates to an entropy filter (entropy filter) that is widely used in the field of image processing. This relates to a method of implementing an entropy filter to calculate entropy using pixel alignment and differences between adjacent pixels by implementing a hardware device differently from existing methods and a hardware device for implementing the same.

영상처리 분야에서 entropy는 영상의 노말 히스토그램(normalized histogram)으로부터 영상의 평균 임의성(randomness)을 측정하는 수치다. 이러한 entropy 수치는 세부 정보 강조, 영상 분리 등의 여러 영상 처리 알고리즘에 활용되고 있다. 또한 최근의 지능형 감시 카메라 또는 자율주행차와 같은 첨단 기술을 포함하는 시스템에서 사용될 뿐만 아니라 이종 컴퓨팅 시스템(heterogeneous computing system)의 인기가 많은 요즘 엔트로피 필터(entropy filter)의 실시간 처리가 매우 중요해지고 있다. In the field of image processing, entropy is a value that measures the average randomness of an image from the normalized histogram of the image. These entropy values are used in various image processing algorithms such as detail emphasis and image separation. In addition, real-time processing of entropy filters is becoming very important these days, as heterogeneous computing systems are popular as well as being used in systems that include cutting-edge technologies such as intelligent surveillance cameras or self-driving cars.

그렇지만 현재까지 엔트로피 필터(entropy filter)에 대해서는 소프트웨어 구현만 있고 하드웨어 구현이 아직 존재하지 않는다.However, to date, there is only a software implementation of the entropy filter and no hardware implementation yet exists.

2008년에 등록된 미국등록특허인 특허문헌 1은 엔트로피 필터(entropy filter) 개념을 도입하였고, 엔트로피 필터(entropy filter)를 사용해서 영상을 매끄럽게 하는 사례를 보여주었다. 2012년에 공개된 미국공개특허인 특허문헌 2는 물체인식에 도움이 된 엔트로피 필터(entropy filter)에 기반을 둔 영상분리 방법을 제안하였다. in 2008 Patent Document 1, a registered US patent, introduced the concept of an entropy filter and showed an example of smoothing an image using an entropy filter. Patent Document 2, a U.S. published patent published in 2012, proposed an image separation method based on an entropy filter, which was helpful in object recognition.

또한 2014년에 등록된 미국등록특허인 특허문헌 3은 엔트로피 필터(entropy filter)를 활용해서 영상의 세부 정보를 강조하는 방법을 도입하였고, 2015년에 공개된 중국공개특허인 특허문헌 4는 엔트로피 필터(entropy filter)에 의해 노이즈가 많은 infrared 영상에 존재한 작은 물체를 더 선명하게 보이게끔 하는 알고리즘을 제안하였다. 상기에서 소개한 특허문헌 1 내지 4 특허의 공통점은 동종 컴퓨팅 시스템(homogeneous computing system)에 엔트로피 필터(entropy filter)의 소프트웨어 구현을 사용한 것이다. 동종 컴퓨팅 시스템(homogeneous computing system)에서는 최신 기술인 지능형 감시 카메라 또는 자율주행차와 같은 첨단 시스템에는 활용이 어렵다.In addition, Patent Document 3, a U.S. registered patent registered in 2014, introduced a method of emphasizing detailed information in an image using an entropy filter, and Patent Document 4, a Chinese public patent published in 2015, introduced an entropy filter. An algorithm was proposed to make small objects in noisy infrared images appear clearer using an entropy filter. What patent documents 1 to 4 introduced above have in common is that they use a software implementation of an entropy filter in a homogeneous computing system. In homogeneous computing systems, it is difficult to utilize the latest technologies in advanced systems such as intelligent surveillance cameras or self-driving cars.

엔트로피 필터(entropy filter)의 하드웨어 구현을 고려하면 몇 가지 어려움이 있다. 첫째, 영상의 정규화된 히스토그램(normalized histogram)을 생성하려면 현재까지 개발했던 방법들은 영상 데이터의 크기에 따라 정규화된 히스토그램(normalized histogram)을 생성한다. Considering the hardware implementation of an entropy filter, there are several difficulties. First, to generate a normalized histogram of an image, the methods developed to date generate a normalized histogram according to the size of the image data.

예를 들어, 8 비트인 영상 데이터라 가정하면 픽셀 강도(Intensity) 레벨이 256개가 있으므로 해당하는 256개의 레지스터(register)나 256짜리인 메모리를 사용해야 한다. 그 뿐만 아니라 픽셀 강도 레벨의 발생 횟수를 세워야(count)하기 때문에 어느 영상 프레임의 entropy 정보는 실제 그 프레임의 entropy 정보가 아니고 직전 프레임의 entropy 정보이다. 이러한 것은 큰 문제가 아니지만 시스템의 정확도가 다소 떨어질 수 있다.For example, assuming 8-bit image data, there are 256 pixel intensity levels, so 256 registers or 256-sized memory must be used. In addition, because the number of occurrences of the pixel intensity level must be counted, the entropy information of a video frame is not the actual entropy information of that frame, but the entropy information of the previous frame. This is not a big problem, but it may reduce the accuracy of the system somewhat.

둘째, entropy를 계산하려면 누적 합계 연산(accumulate sum)이 필요하다. 하지만 위와 같은 정규화된 히스토그램(normalized histogram) 생성 방법을 고려하면 누적 합계 연산은 비효율적이다. 왜냐하면, 기본 8 비트인 영상 데이터를 고려하더라고 255개의 더하기를 사용해야 하기 때문이다. 영상 데이터의 크기가 커질수록 더하기의 수가 급격히 증가한다.Second, calculating entropy requires accumulating sum. However, considering the above normalized histogram generation method, the cumulative sum operation is inefficient. This is because, even considering the basic 8-bit video data, 255 additions must be used. As the size of the image data increases, the number of additions increases rapidly.

위 2가지 문제점으로 인해서 위의 방법으로는 엔트로피 필터(entropy filter)를 하드웨어로 구현하기가 불가능한 문제점이 있다.Due to the above two problems, it is impossible to implement an entropy filter in hardware using the above method.

그리고 비특허문헌 1은 누적 히스토그램(cumulative histogram)을 계산하는 하드웨어 구조를 제안하고 있지만, 이 구조를 이용하여 엔트로피 필터(entropy filter)를 하드웨어로 구현할 수 있지만 입력 데이터의 크기에 따라 전체 히스토그램(histogram)을 계산해야 한다. 그로 인해 entropy를 계산할 때 하드웨어의 크기가 많이 커지게 되는 문제점이 있으며, 누적 히스토그램(cumulative histogram)을 계산하는 구조를 이용하기 때문에 엔트로피 필터(entropy filter)를 하드웨어로 구현하기 어려운 문제점이 있다.In addition, Non-Patent Document 1 proposes a hardware structure for calculating a cumulative histogram. Although an entropy filter can be implemented in hardware using this structure, the entire histogram can be calculated depending on the size of the input data. must be calculated. As a result, there is a problem in that the size of the hardware increases significantly when calculating entropy, and it is difficult to implement an entropy filter in hardware because it uses a structure that calculates a cumulative histogram.

미국등록특허공보 US7460702B2(2008.12.02. 등록) Entropy filter, and area extracting method using the filterUS Patent Publication US7460702B2 (registered on December 2, 2008) Entropy filter, and area extracting method using the filter 미국공개특허공보 US20120075440A1(2012.03.29. 공개) Entropy based image separationEntropy based image separation US20120075440A1 (published March 29, 2012) 미국등록특허공보 US8655096B2(2014.02.18. 등록) Automatic image sharpening using entropy-based blur radiusUS Patent Publication US8655096B2 (registered on February 18, 2014) Automatic image sharpening using entropy-based blur radius 중국공개특허공보 CN104268844A(2015.01.07. 공개) Small target infrared image processing method based on weighting local image entropyChinese Patent Publication CN104268844A (published on 2015.01.07) Small target infrared image processing method based on weighting local image entropy 한국등록특허공보 KR10-2039653B1(2019.11.01. 공고) 바이쳐 정렬 알고리즘 및 비교전환시스템을 적용한 에지 보존 평활화 값 검출 방법Korean Patent Publication KR10-2039653B1 (2019.11.01 notice) Edge-preserving smoothing value detection method applying biter sorting algorithm and comparison switching system

Novel FPGA-based implementation of median and weighted median filters for image processing, Suhaib A., Fahmy, Peter Y. K. Cheung, Wayne Luk, International Conference on Field Programmable Logic and Applications (2005) 142-147 Novel FPGA-based implementation of median and weighted median filters for image processing, Suhaib A., Fahmy, Peter Y. K. Cheung, Wayne Luk, International Conference on Field Programmable Logic and Applications (2005) 142-147

본 발명은 상기의 문제점을 해결하기 위한 것으로, 엔트로피 필터(entropy filter)를 하드웨어로 구현하기 위해서 효율적인 entropy 계산 방법을 도입하고 이에 따른 하드웨어 구조를 위한 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치를 제공하기 위한 것이다.The present invention is intended to solve the above problems, by introducing an efficient entropy calculation method to implement an entropy filter in hardware, a method of implementing an entropy filter for a hardware structure accordingly, and a hardware device for implementing the same. It is intended to provide.

또한, 본 발명은 기본 방법과 달리 정규화된 히스토그램(normalized histogram)을 생성하기 위해서 필터링 윈도우 속의 픽셀들을 정렬해서 인접 픽셀의 차이를 활용하는 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치을 제공하기 위한 것이다.In addition, the present invention is intended to provide a method of implementing an entropy filter that utilizes differences between adjacent pixels by sorting pixels in a filtering window to generate a normalized histogram, unlike the basic method, and a hardware device for implementing the same. .

그리고 새롭게 제안한 entropy 계산 방법은 필터링 윈도우의 크기에 상관없이 일반화돼서 해당하는 하드웨어 구조가 윈도우 크기에 따라 재구성이 가능한 특징을 가지도록 하기 위한 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치을 제공하기 위한 것이다.In addition, the newly proposed entropy calculation method is generalized regardless of the size of the filtering window, and the purpose is to provide a method of implementing an entropy filter and a hardware device for implementing it so that the corresponding hardware structure has features that can be reconfigured according to the window size. .

또한, 본 발명은 제안한 entropy 계산 방법은 단순한 파이프 라인(pipeline) 구조로, 실시간 처리가 가능하도록 하기 위한 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치을 제공하기 위한 것이다.In addition, the proposed entropy calculation method has a simple pipeline structure, and the purpose of the present invention is to provide a method of implementing an entropy filter to enable real-time processing and a hardware device for implementing the same.

그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.However, the objects of the present invention are not limited to the objects mentioned above, and other objects not mentioned will be clearly understood by those skilled in the art from the description below.

상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 엔트로피 필터의 구현 방법은, 필터링 윈도우 크기에 따라 라인 메모리(line memory) 및 버퍼 레지스터(buffer register)로 윈도우 속의 픽셀을 추출하는 제 1 단계; 바이쳐 정렬 네트워크(Batcher's sorting network)로 추출한 픽셀을 정렬하는 제 2 단계; 정렬된 픽셀의 인접 차이를 계산하는 제 3 단계; 상기 제 3 단계에서 연산된 차이값에 대해서 인접 차이를 효율적으로 표현하기 위한 reduction OR 단계를 수행하는 제 4 단계; 및 파이프 라인(pipeline)된 entropy 계산 단계를 수행하는 제 5 단계; 를 포함하는 것을 특징으로 한다.To achieve the above object, a method of implementing an entropy filter according to an embodiment of the present invention includes a first step of extracting pixels in a window using a line memory and a buffer register according to the size of the filtering window; A second step of sorting the extracted pixels using a Batcher's sorting network; a third step of calculating adjacent differences of aligned pixels; A fourth step of performing a reduction OR step to efficiently express adjacent differences on the difference value calculated in the third step; and a fifth step of performing a pipelined entropy calculation step; It is characterized by including.

상기 제 1 단계는, 윈도우 속의 픽셀을 추출하기 위해 입력 영상 데이터가 타이밍 신호(horizontal active video 및 vertical active video)와 같이 입력되면, 필터링 윈도우의 크기가 N-by-N이라고 가정하며, 윈도우 속의 모든 (N×N)(N은 1 이상의 자연수 중 홀수로서 3~15임)개의 픽셀들을 추출하기 위해서 먼저 (N-1)개의 라인 메모리(line memory)(101)를 사용하는 것을 특징으로 한다.In the first step, when input image data is input together with timing signals (horizontal active video and vertical active video) to extract pixels in the window, it is assumed that the size of the filtering window is N-by-N, and all of the pixels in the window are It is characterized by first using (N-1) line memories 101 to extract (N×N) (N is an odd number of natural numbers greater than 1 and is 3 to 15) pixels.

그리고 상기의 목적을 달성하기 위해 본 발명의 다른 실시예에 따른 엔트로피 필터의 구현을 위한 하드웨어 장치는, 필터링 윈도우 크기에 따라 라인 메모리(line memory) 및 버퍼 레지스터(buffer register)로 윈도우 속의 픽셀을 추출하는 단계를 수행하는 추출 모듈(100); 바이쳐 정렬 네트워크(Batcher's sorting network)로 추출한 픽셀을 정렬하는 단계를 수행하는 정렬 모듈(200); 정렬된 픽셀의 인접 차이를 계산하는 단계를 수행하는 차이 계산 모듈(300); 차이 계산 모듈(300)에서 연산된 차이값에 대해서 인접 차이를 효율적으로 표현하기 위한 reduction OR 단계를 수행하는 인접 차이 표현 모듈(400); 및 파이프 라인(pipeline)된 entropy 계산 단계를 수행하는 entropy 계산 모듈(500); 을 포함하는 것을 특징으로 한다.And in order to achieve the above object, a hardware device for implementing an entropy filter according to another embodiment of the present invention extracts pixels in the window using a line memory and a buffer register according to the size of the filtering window. An extraction module 100 that performs the steps of: A sorting module 200 that sorts the extracted pixels using a Batcher's sorting network; a difference calculation module 300 that performs the step of calculating adjacent differences of aligned pixels; an adjacent difference expression module 400 that performs a reduction OR step to efficiently express the adjacent difference with respect to the difference value calculated in the difference calculation module 300; and an entropy calculation module 500 that performs a pipelined entropy calculation step; It is characterized by including.

본 발명의 실시예에 따른 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치는, 엔트로피 필터(entropy filter)의 하드웨어로 효율적으로 설계할 수 있어서 하드웨어 자원을 절약하고 빠른 처리 속도를 달성할 수 있으며, 이와 일치하여 최신의 필터링 기술을 많이 사용하는 영상 처리 알고리즘들을 하드웨어로 구현이 가능하도록 하는 효과를 제공한다. The method of implementing an entropy filter and the hardware device for implementing the same according to an embodiment of the present invention can be efficiently designed with hardware of an entropy filter, thereby saving hardware resources and achieving fast processing speed, In line with this, it provides the effect of enabling image processing algorithms that frequently use the latest filtering technologies to be implemented in hardware.

뿐만 아니라, 본 발명의 다른 실시예에 따른 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치는, 제안한 엔트로피 필터(entropy filter)의 하드웨어 구조는 필터링 윈도우 크기에 상관없이 일반화 되어 하드웨어 구조에 대한 재구성 가능성(reconfigurability) 특징을 가지도록 하는 효과를 제공한다.In addition, the method of implementing an entropy filter and the hardware device for implementing the same according to another embodiment of the present invention provide the possibility of reconfiguration of the hardware structure because the hardware structure of the proposed entropy filter is generalized regardless of the filtering window size. (reconfigurability) provides the effect of having a feature.

도 1은 본 발명의 실시예에 따른 엔트로피 필터의 구현을 위한 하드웨어 장치(1)의 구성요소에 의한 엔트로피 필터(entropy filter)의 구현 방법을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 엔트로피 필터(entropy filter)의 구현 방법의 구체적인 실시예를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 엔트로피 필터(entropy filter)의 하드웨어 구현의 필요성에 대해 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 도 1의 첫 단계에 해당하는 추출 모듈(110)에 의한 수행과정을 나타내는 도면이다.
도 5는 본 출원인이 국내 특허등록받은 특허문헌 5의 바이쳐 정렬 네트워크(Batcher's sorting network)(등록번호 : 10-2039653)를 나타내는 도면이다.
도 6은 도 5에서의 entropy 계산 방법에 대해서 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 차이 계산 모듈(300)에 의한 바이쳐 정렬 네트워크(Batcher's sorting network)의 출력들을 받아서 인접 차이 계산에 대해 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 인접 차이 표현 모듈(400)에 의한 인접 픽셀의 차이를 받아서 reduction OR 게이트를 통과시켜서 차이의 유무(有無)를 판단하는 1-bit 신호를 생성하는 것을 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 entropy 계산 모듈(500)에 의한 파이프 라인(pipeline)된 entropy 계산이라는 마지막 단계에 대해 나타내는 도면이다.
도 10은 본 발명의 실시예에 따른 파이프 라인(pipeline)된 entropy 계산이라는 마지막 단계의 하드웨어 구조에 대해 나타내는 도면이다.
1 is a diagram showing a method of implementing an entropy filter using components of a hardware device 1 for implementing an entropy filter according to an embodiment of the present invention.
Figure 2 is a diagram showing a specific example of a method of implementing an entropy filter according to an embodiment of the present invention.
Figure 3 is a diagram showing the necessity of hardware implementation of an entropy filter according to an embodiment of the present invention.
FIG. 4 is a diagram showing a process performed by the extraction module 110 corresponding to the first step of FIG. 1 according to an embodiment of the present invention.
Figure 5 is a diagram showing the Batcher's sorting network (registration number: 10-2039653) of Patent Document 5, for which the present applicant has received domestic patent registration.
FIG. 6 is a diagram for explaining the entropy calculation method in FIG. 5.
FIG. 7 is a diagram illustrating adjacent difference calculation by receiving outputs of a Batcher's sorting network by the difference calculation module 300 according to an embodiment of the present invention.
FIG. 8 is a diagram showing how the adjacent difference expression module 400 according to an embodiment of the present invention receives the difference between adjacent pixels and passes it through a reduction OR gate to generate a 1-bit signal for determining the presence or absence of a difference. am.
Figure 9 is a diagram showing the final step of pipelined entropy calculation by the entropy calculation module 500 according to an embodiment of the present invention.
Figure 10 is a diagram showing the hardware structure of the final stage of pipelined entropy calculation according to an embodiment of the present invention.

이하, 본 발명의 바람직한 실시예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. 하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.Hereinafter, a detailed description of preferred embodiments of the present invention will be described with reference to the attached drawings. In the following description of the present invention, if a detailed description of a related known function or configuration is judged to unnecessarily obscure the gist of the present invention, the detailed description will be omitted.

본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 구성요소는 다른 구성요소로 직접 상기 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송할 수 있음을 의미한다.In this specification, when one component 'transmits' data or a signal to another component, the component may transmit the data or signal directly to the other component, and may transmit the data or signal through at least one other component. This means that data or signals can be transmitted to other components.

도 1은 본 발명의 실시예에 따른 엔트로피 필터의 구현을 위한 하드웨어 장치(1)의 구성요소에 의한 엔트로피 필터(entropy filter)의 구현 방법을 나타내는 도면이다. 도 1을 참조하면, 본 발명에 따른 엔트로피 필터(entropy filter)의 하드웨어 장치인 엔트로피 필터의 구현을 위한 하드웨어 장치(1)는, 필터링 윈도우 크기에 따라 라인 메모리(line memory) 및 버퍼 레지스터(buffer register)로 윈도우 속의 픽셀을 추출하는 단계를 수행하는 추출 모듈(100), 바이쳐 정렬 네트워크(Batcher's sorting network)로 추출한 픽셀을 정렬하는 단계를 수행하는 정렬 모듈(200), 정렬된 픽셀의 인접 차이를 계산하는 단계를 수행하는 차이 계산 모듈(300), 인접 차이를 효율적으로 표현하기 위한 reduction OR 단계를 수행하는 인접 차이 표현 모듈(400), 파이프 라인(pipeline)된 entropy 계산 단계를 수행하는 entropy 계산 모듈(500)로 구성되어 있다.1 is a diagram illustrating a method of implementing an entropy filter using components of a hardware device 1 for implementing an entropy filter according to an embodiment of the present invention. Referring to FIG. 1, the hardware device 1 for implementing an entropy filter, which is a hardware device of an entropy filter according to the present invention, includes a line memory and a buffer register according to the filtering window size. ), an extraction module 100 that performs the step of extracting pixels in the window, a sorting module 200 that performs the step of sorting the extracted pixels using a Batcher's sorting network, and the adjacent differences of the sorted pixels. A difference calculation module 300 that performs a calculation step, an adjacent difference expression module 400 that performs a reduction OR step to efficiently express adjacent differences, and an entropy calculation module that performs a pipelined entropy calculation step. It consists of (500).

본 발명의 기능은 영상처리 분야에서 많이 활용된 엔트로피 필터(entropy filter)의 첫 하드웨어 구조를 설계하는 것이다. 여전히 직면하는 엔트로피 필터(entropy filter)의 하드웨어 구현과 관련된 문제점을 보완하기 위해서 새로운 entropy 계산 방법을 제안하고, 이에 따라 효율적인 하드웨어 구조를 도입한다. 새롭게 제안하는 방법은 픽셀 정렬 및 인접 픽셀의 차이에 따른다. 본 발명의 엔트로피 필터(entropy filter)의 하드웨어 구조는 실시간 처리가 가능해서 스마트 감시 카메라나 자율주행차에 속하는 복잡한 영상처리 알고리즘에 큰 도움이 된다.The function of the present invention is to design the first hardware structure of an entropy filter, which is widely used in the image processing field. In order to compensate for the problems still faced with the hardware implementation of entropy filters, we propose a new entropy calculation method and introduce an efficient hardware structure accordingly. The newly proposed method relies on pixel alignment and differences between adjacent pixels. The hardware structure of the entropy filter of the present invention enables real-time processing, which is of great help to complex image processing algorithms belonging to smart surveillance cameras or autonomous vehicles.

[실시예][Example]

예를 들어서 5×5인 엔트로피 필터(entropy filter)의 하드웨어 구조를 설계하고자 한다. 윈도우의 크기가 (N=5)이라서 도 4에 따라 윈도우 속의 25개의 픽셀들을 추출하기 위해서 N-1개에 해당하는 4개의 라인 메모리(line memory)와 20개의 버퍼 레지스터(buffer register)가 필요하다. For example, we would like to design the hardware structure of a 5×5 entropy filter. Since the size of the window is (N=5), 4 line memories corresponding to N-1 and 20 buffer registers are needed to extract 25 pixels in the window according to Figure 4. .

1212 2222 00 44 99 00 200200 00 144144 99 1One 77 2525 9191 5151 6969 136136 8787 1515 100100 7777 1313 88 22 251251

먼저, 상기 [표 1]은 윈도우의 픽셀 데이터에 관한 것이고, 도 2는 본 발명의 실시예에 따른 엔트로피 필터(entropy filter)의 구현 방법의 구체적인 실시예를 나타내는 도면으로, 윈도우에 대한 실시의 계산 과정을 나타내는 것이다.First, [Table 1] relates to pixel data of a window, and Figure 2 is a diagram showing a specific example of a method of implementing an entropy filter according to an embodiment of the present invention, and is a diagram showing an implementation calculation for a window. It represents the process.

1. 추출 모듈(100)에 의한 필터링 윈도우 픽셀 추출하는 단계1. Step of extracting filtering window pixels by the extraction module 100

[12, 22, 0, 4, 9, 0, 200, 0, 144, 9, 1, 7, 25, 91, 51, 69, 136, 87, 15, 100, 77, 13, 8, 2, 251][12, 22, 0, 4, 9, 0, 200, 0, 144, 9, 1, 7, 25, 91, 51, 69, 136, 87, 15, 100, 77, 13, 8, 2, 251 ]

2. 정렬 모듈(200)에 의한 바이쳐 정렬 네트워크(Batcher’s sorting network)로 픽셀 정렬 단계2. Pixel sorting step using Batcher’s sorting network by the sorting module 200

[0, 0, 0, 1, 2, 4, 7, 8, 9, 9, 12, 13, 15, 22, 25, 51, 69, 77, 87, 91, 100, 136, 144, 200, 251][0, 0, 0, 1, 2, 4, 7, 8, 9, 9, 12, 13, 15, 22, 25, 51, 69, 77, 87, 91, 100, 136, 144, 200, 251 ]

3. 차이 계산 모듈(300)에 의한 인접 픽셀의 차이 계산 단계3. Difference calculation step of adjacent pixels by the difference calculation module 300

[0, 0, 1, 1, 2, 3, 1, 1, 0, 3, 1, 2, 7, 3, 26, 18, 8, 10, 4, 9, 36, 8, 56, 51][0, 0, 1, 1, 2, 3, 1, 1, 0, 3, 1, 2, 7, 3, 26, 18, 8, 10, 4, 9, 36, 8, 56, 51]

4. 인접 차이 표현 모듈(400)에 의한 Reduction OR 수행 단계4. Reduction OR performance step by the adjacent difference expression module 400

[0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1][0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

5. 인접 차이 표현 모듈(400)에 의한 파이프 라인(pipeline)된 entropy 계산5. Pipelined entropy calculation by the adjacent difference expression module 400

이 단계에서는 도 9에 따라 진행한다. Entropy 값을 저장하는 변수는 H라고 가정한다. 또한 계산 과정에서 사용하는 변수들은 addr와 cnt가 있다. 그래서 앞의 단계가 출력한 신호는 [s1, s2, ..., s24]라고 하면 각각의 파이프 라인(pipeline) 단계의 결과는 다음과 같다.This step proceeds according to Figure 9. Assume that the variable storing the entropy value is H. Additionally, the variables used in the calculation process include addr and cnt. So, if the signal output by the previous step is [s 1 , s 2 , ..., s 24 ], the results of each pipeline step are as follows.

6.1. s1 = 0 → H = 0, addr = 2, cnt = 26.1. s 1 = 0 → H = 0, addr = 2, cnt = 2

6.2. s2 = 0 → H = 0, addr = 3, cnt = 36.2. s 2 = 0 → H = 0, addr = 3, cnt = 3

6.3. s3 = 1 → H = 0.5528, addr = 0, cnt = 46.3. s 3 = 1 → H = 0.5528, addr = 0, cnt = 4

6.4. s4 = 1 → H = 0.7386, addr = 0, cnt = 56.4. s 4 = 1 → H = 0.7386, addr = 0, cnt = 5

6.5. s5 = 1 → H = 0.9243, addr = 0, cnt = 66.5. s 5 = 1 → H = 0.9243, addr = 0, cnt = 6

6.6. s6 = 1 → H = 1.1101, addr = 0, cnt = 76.6. s 6 = 1 → H = 1.1101, addr = 0, cnt = 7

6.7. s7 = 1 → H = 1.2958, addr = 0, cnt = 86.7. s 7 = 1 → H = 1.2958, addr = 0, cnt = 8

6.8. s8 = 1 → H = 1.4816, addr = 0, cnt = 96.8. s 8 = 1 → H = 1.4816, addr = 0, cnt = 9

6.9. s9 = 0 → H = 1.4816, addr = 2, cnt = 116.9. s 9 = 0 → H = 1.4816, addr = 2, cnt = 11

6.10. s10 = 1 → H = 1.9589, addr = 0, cnt = 126.10. s 10 = 1 → H = 1.9589, addr = 0, cnt = 12

6.11. s11 = 1 → H = 2.1446, addr = 0, cnt = 136.11. s 11 = 1 → H = 2.1446, addr = 0, cnt = 13

6.12. s12 = 1 → H = 2.3304, addr = 0, cnt = 146.12. s 12 = 1 → H = 2.3304, addr = 0, cnt = 14

6.13. s13 = 1 → H = 2.5161, addr = 0, cnt = 156.13. s 13 = 1 → H = 2.5161, addr = 0, cnt = 15

6.14. s14 = 1 → H = 2.7019, addr = 0, cnt = 166.14. s 14 = 1 → H = 2.7019, addr = 0, cnt = 16

6.15. s15 = 1 → H = 2.8876, addr = 0, cnt = 176.15. s 15 = 1 → H = 2.8876, addr = 0, cnt = 17

6.16. s16 = 1 → H = 3.0734, addr = 0, cnt = 186.16. s 16 = 1 → H = 3.0734, addr = 0, cnt = 18

6.17. s17 = 1 → H = 3.2591, addr = 0, cnt = 196.17. s 17 = 1 → H = 3.2591, addr = 0, cnt = 19

6.18. s18 = 1 → H = 3.4449, addr = 0, cnt = 206.18. s 18 = 1 → H = 3.4449, addr = 0, cnt = 20

6.19. s19 = 1 → H = 3.6306, addr = 0, cnt = 216.19. s 19 = 1 → H = 3.6306, addr = 0, cnt = 21

6.20. s20 = 1 → H = 3.8164, addr = 0, cnt = 226.20. s 20 = 1 → H = 3.8164, addr = 0, cnt = 22

6.21. s21 = 1 → H = 4.0022, addr = 0, cnt = 236.21. s 21 = 1 → H = 4.0022, addr = 0, cnt = 23

6.22. s22 = 1 → H = 4.1879, addr = 0, cnt = 246.22. s 22 = 1 → H = 4.1879, addr = 0, cnt = 24

6.23. s23 = 1 → H = 4.3737, addr = 0, cnt = 256.23. s 23 = 1 → H = 4.3737, addr = 0, cnt = 25

6.24. s24 = 1 → H = 4.5594, addr = 0, cnt = 266.24. s 24 = 1 → H = 4.5594, addr = 0, cnt = 26

6.25. H = 4.5594 + 0 - (26 - 25)×0.1858 = 4.37376.25. H = 4.5594 + 0 - (26 - 25)×0.1858 = 4.3737

그리고 실시간 처리를 검토하기 위해서 엔트로피 필터(entropy filter)를 하드웨어로 구현하였으며, 아래 [표 2]에 하드웨어 합성 결과를 보여준다. 아래 [표 2]에 따라 엔트로피 필터(entropy filter)의 하드웨어가 FPGA 장치에 하드웨어 자원을 많이 소요하지 않고, 높은 동작 추파수를 달성하였다. 이 때문에 본 발명에서 제안한 엔트로피 필터(entropy filter)의 하드웨어 구조는 다른 영상 처리 시스템에 쉽게 통합시킬 수 있다.And to examine real-time processing, an entropy filter was implemented in hardware, and the hardware synthesis results are shown in [Table 2] below. According to [Table 2] below, the hardware of the entropy filter achieved a high operating frequency without consuming a lot of hardware resources on the FPGA device. For this reason, the hardware structure of the entropy filter proposed in the present invention can be easily integrated into other image processing systems.

Xilinx Vivado v2019.1Xilinx Vivado v2019.1 DeviceDevice xczu7ev - 2ffvc1156xczu7ev-2ffvc1156 DesignDesign 5×5인 entropy filter5×5 entropy filter Slice Logic UtilizationSlice Logic Utilization AvailableAvailable UsedUsed UtilizationUtilization 레지스터(register) (#)register (#) 460,800460,800 53745374 1.17%1.17% LUT (#)LUTs (#) 230,400230,400 59255925 2.57%2.57% RAM36X1S (#)RAM36X1S (#) 312312 44 1.28%1.28% Minimum Period (ns)Minimum Period (ns) 1.4931.493 Maximum Frequency (MHz)Maximum Frequency (MHz) 669.792669.792

이하에서는 상술한 실시예에 따른 entropy 계산을 위한 각 도면을 참조로 엔트로피 필터의 구현 방법 및 이를 구현하기 위한 하드웨어 장치에 대해서 구체적으로 살펴보도록 한다.Hereinafter, we will look in detail at the method of implementing an entropy filter and the hardware device for implementing it with reference to each drawing for entropy calculation according to the above-described embodiment.

다시 도 1을 참조하면, 도 1은 본 발명 실시 예에 따른 엔트로피 필터(entropy filter)의 하드웨어 구현이 도시된 블록도이다. 상기 도 1의 하드웨어 구현이 도시된 블록도는 도 2의 엔트로피 필터(entropy filter)의 구현 흐름도와 동일하게 5단계로 구분되어 구현된다.Referring again to FIG. 1, FIG. 1 is a block diagram showing a hardware implementation of an entropy filter according to an embodiment of the present invention. The block diagram showing the hardware implementation of FIG. 1 is divided into five steps and implemented in the same way as the implementation flowchart of the entropy filter of FIG. 2.

다음으로 도 3를 참조하면, 도 3은 엔트로피 필터(entropy filter)의 하드웨어 구현의 필요성에 대해 나타내는 도면이다. 기존 중국 및 미국등록특허들은 엔트로피 필터(entropy filter) 개념을 제안하였으며 최근의 주목을 받고 있는 자율주행차 또는 스마트 감시 카메라에 속하는 영상처리 알고리즘에 적용한 것을 보였다. 그렇지만 현재까지 단지 동종 컴퓨팅 시스템(homogeneous computing system)에 동작하는 소프트웨어 구현만 되어 있고, 엔트로피 필터(entropy filter)의 하드웨어 구현은 아직 개발되지 않았다. 최근 산업 및 학계의 관심을 많이 받고 있는 이종 컴퓨팅 시스템(이종 컴퓨팅 시스템(heterogeneous computing system))에 FPGA(field programmable gate array)를 통합하여 복합한 연산들을 FPGA에 구현할 수 있으므로 엔트로피 필터(entropy filter)의 하드웨어 구현이 매우 필요하다고 할 수 있다. 엔트로피 필터(entropy filter)의 하드웨어를 구현하게 되면 앞서 언급했던 자율주행차 또는 스마트 감시 카메라를 급격히 가속화할 수 있기 때문이다. 따라서 본 발명은 엔트로피 필터(entropy filter)의 첫 하드웨어 구조를 제안한다.Next, referring to FIG. 3, FIG. 3 is a diagram showing the necessity of hardware implementation of an entropy filter. Existing Chinese and US registered patents proposed the concept of entropy filter and showed its application to image processing algorithms belonging to autonomous vehicles or smart surveillance cameras, which have recently attracted attention. However, to date, only software implementations that operate on homogeneous computing systems have been implemented, and hardware implementations of entropy filters have not yet been developed. By integrating FPGA (field programmable gate array) into the heterogeneous computing system (heterogeneous computing system), which has recently received a lot of attention from industry and academia, complex operations can be implemented on FPGA, making it possible to implement entropy filters. It can be said that hardware implementation is very necessary. This is because implementing the hardware of an entropy filter can rapidly accelerate the previously mentioned autonomous vehicles or smart surveillance cameras. Therefore, the present invention proposes the first hardware structure of an entropy filter.

도 4는 도 1의 첫 단계에 해당하는 추출 모듈(110)에 의한 수행과정을 나타내는 도면이다. 입력 영상 데이터가 타이밍 신호(horizontal active video 및 vertical active video)와 같이 들어간다. 따라서 필터링 윈도우의 크기가 N-by-N이라고 가정하며, 추출 모듈(110)은 윈도우 속의 모든 (N×N)(N은 1 이상의 자연수 중 홀수로서 3~15임, 구체적으로는 3, 5, 7, 9, 11, 13, 15임)개의 픽셀들을 추출하기 위해서 먼저 (N-1)개의 라인 메모리(line memory)(101)를 사용한다. 추출 모듈(110)은 이러한 (N-1)개의 라인 메모리(line memory)를 통해서 필터링 윈도우의 N개의 라인을 추출할 수 있다. 그 다음으로 추출 모듈(110)은 윈도우의 각각의 영상의 라인(line) 데이터와 해당하는 N개의 열을 추출하기 위해서 (N-1)개의 레지스터(register)(102)를 사용한다. 그래서 추출 모듈(110)은 총 (N-1)개의 라인 메모리(line memory)와 N×(N-1)개의 레지스터(register)를 사용해서 모두 (N×N) 픽셀들을 추출할 수 있다. FIG. 4 is a diagram showing the process performed by the extraction module 110 corresponding to the first step in FIG. 1. Input video data is input together with timing signals (horizontal active video and vertical active video). Therefore, it is assumed that the size of the filtering window is N-by-N, and the extraction module 110 extracts all (N 7, 9, 11, 13, 15) pixels To extract, first (N-1) line memories 101 are used. The extraction module 110 can extract N lines of the filtering window through these (N-1) line memories. Next, the extraction module 110 uses (N-1) registers 102 to extract line data of each image of the window and the corresponding N columns. Therefore, the extraction module 110 can extract a total of (N×N) pixels using a total of (N-1) line memories and N×(N-1) registers.

마지막으로 추출 모듈(110)은 타이밍 신호를 사용해서 라인 메모리(line memory)를 동작 시키는 회로인 메모리 컨트롤러(memory controller)(103)를 활용한다. Lastly, the extraction module 110 utilizes a memory controller 103, which is a circuit that operates line memory using timing signals.

라인 메모리(line memory)의 동작 모드는 데이터 쓰기 및 데이터 판독으로 나눌 수 있으며, 쓰기의 경우는 쓰기 가능(write enable), 쓰기 주소(write address), 쓰기 데이터(write data) 등을 생성해줘야 하며, 판독의 경우는 읽기 가능(read enable ; write enable의 역), 읽기 주소(read address) 등을 생성해줘야 한다. 그런 신호들을 타이밍 신호로부터 생성할 수 있다.The operation mode of line memory can be divided into data writing and data reading. In the case of writing, write enable, write address, write data, etc. must be created. In the case of reading, read enable (reverse of write enable) and read address must be created. Such signals can be generated from timing signals.

다음으로 도 5는 본 출원인이 국내 특허등록받은 특허문헌 5의 바이쳐 정렬 네트워크( Batcher’s sorting network)(등록번호 : 10-2039653)를 나타내는 도면이다. 바이쳐 정렬 네트워크( Batcher’s sorting network)는 윈도우 속의 모든 (N×N)개의 픽셀들을 올림차순으로 정렬하는 것으로, 정렬 모듈(120)이 이러한 바이쳐 정렬 네트워크( Batcher’s sorting network)가 필요한 이유는 entropy 값을 계산할 때 사용하는 정규화된 히스토그램(normalized histogram)을 계산하기 위한 것이다. 엔트로피 필터(Entropy filter)의 경우는 전체 영상대신에 필터링 윈도우 속의 픽셀들만 고려하면 된다. Next, Figure 5 is a diagram showing the Batcher's sorting network (registration number: 10-2039653) of Patent Document 5, for which the present applicant has registered a domestic patent. The Batcher's sorting network sorts all (N This is to calculate the normalized histogram used when calculating. In the case of an entropy filter, only the pixels in the filtering window need to be considered instead of the entire image.

따라서 정렬 모듈(200)가 윈도우 속의 픽셀들을 정렬한 다음, 차이 계산 모듈(300)가 인접 픽셀의 차이를 계산한다. 이러한 픽셀간 차이에 의해 윈도우 속의 픽셀의 강도 레벨의 몇 개가 있는지 알고 있을 뿐만 아니라 픽셀의 강도 레벨의 발생 횟수도 알게 된다. 게다가 인접 차이 표현 모듈(400)은 픽셀 간 차이를 나타내기 위해 1-bit 크기인 신호만 필요하기 때문에 간단한 연산으로 reduction OR 단계를 수행한다. 마지막으로 entropy 계산 모듈(500)은 파이프 라인(pipeline)된 entropy 계산 단계가 1bit 신호들을 사용해서 entropy 값을 계산한다. 이러한 새로운 entropy 계산 과정은 본 발명의 독창적인 방법이며, 이에 따라 효율적인 하드웨어 구현이 가능하다.Therefore, after the alignment module 200 aligns the pixels in the window, the difference calculation module 300 calculates the difference between adjacent pixels. By these pixel-to-pixel differences, we not only know how many intensity levels there are for a pixel in the window, but also know the number of occurrences of that pixel's intensity level. In addition, since the adjacent difference expression module 400 requires only a 1-bit signal to represent the difference between pixels, it performs a reduction OR step with a simple operation. Lastly, the entropy calculation module 500 uses a pipelined entropy calculation step to calculate the entropy value using 1-bit signals. This new entropy calculation process is an original method of the present invention, and thus enables efficient hardware implementation.

도 6은 도 5에서 상술한 entropy 계산 방법에 대해 나타내는 도면이다. 기존 방법의 경우는 히스토그램(histogram)을 생성할 때 입력 데이터의 크기에 따른다. 예를 들어, 도 6과 같이 8-bit 크기인 영상 데이터를 고려하면 256짜리 히스토그램(histogram)을 생성해야 한다. 그러므로 3×3 윈도우의 9개의 픽셀을 추출해서 5개의 픽셀 강도 레벨로 분리한 다음, 각 강도 레벨의 발생 횟수를 세운다. 이것을 히스토그램(histogram)이라고 하며, 정규화된 히스토그램(normalized histogram)을 계산하기 위해 히스토그램(histogram)을 윈도우의 픽셀 수로 나누면 된다. 그래서 entropy 값을 도 3에 나와 있는 수식을 사용해서 계산할 수 있다. 이러한 기존의 entropy 계산 방법을 하드웨어로 구현하기가 매우 어렵다. 이 문제점을 보완하기 위해 본 발명에서 새로운 entropy 계산 방법을 제안하였다. Figure 6 is a diagram showing the entropy calculation method described above in Figure 5. In the case of existing methods, when creating a histogram, it depends on the size of the input data. For example, considering 8-bit image data as shown in FIG. 6, a 256-size histogram must be generated. Therefore, we extract 9 pixels from a 3×3 window, separate them into 5 pixel intensity levels, and then count the number of occurrences of each intensity level. This is called a histogram, and to calculate the normalized histogram, divide the histogram by the number of pixels in the window. Therefore, the entropy value can be calculated using the formula shown in Figure 3. It is very difficult to implement these existing entropy calculation methods in hardware. To solve this problem, the present invention proposed a new entropy calculation method.

먼저 위도우 픽셀을 추출한 다음, 바이쳐 정렬 네트워크(Batcher’s sorting network)를 통해서 픽셀들을 올림차순으로 정렬한다. 그 후에 픽셀 강도 레벨의 수와 해당하는 정규화된 히스토그램(normalized histogram) 값을 알기 위해서 정렬된 픽셀들의 인적 차이를 계산한다. 이 신호를 효율적으로 표현해서 reduction OR 게이트를 통해서 1-bit 신호들을 생성한다. 도 6에서 바이쳐 정렬(batcher’s sorting) 후에 첫 4개의 픽셀(10, 10, 51, 75)을 고려한다. 해당하는 1-bit 신호들은 (0, 1, 1)이다. 그래서 1-bit 신호들에 따라 강도 레벨이 몇 개가 있는지 알게 된다. 게다가 0과 1 값에 따라 해당하는 정규화된 히스토그램(normalized histogram) 값도 알게 된다. 이러한 정보를 사용해서 나중에 도 9에 나와 있는 파이프 라인(pipeline)된 entropy 계산 방법을 통해 entropy 값을 계산할 수 있다.First, the window pixels are extracted, and then the pixels are sorted in ascending order through the Batcher’s sorting network. Afterwards, the human difference of the sorted pixels is calculated to know the number of pixel intensity levels and the corresponding normalized histogram value. This signal is efficiently expressed to generate 1-bit signals through a reduction OR gate. In Figure 6, the first four pixels (10, 10, 51, 75) are considered after batcher's sorting. The corresponding 1-bit signals are (0, 1, 1). So, depending on the 1-bit signals, we know how many intensity levels there are. In addition, depending on the values of 0 and 1, the corresponding normalized histogram value is also known. Using this information, the entropy value can later be calculated through the pipelined entropy calculation method shown in FIG. 9.

도 7은 차이 계산 모듈(300)에 의한 바이쳐 정렬 네트워크(Batcher's sorting network)의 출력들을 받아서 인접 차이 계산에 대해 나타내는 도면이다. 이 단계에서 차이 계산 모듈(300)은 픽셀간 차이를 계산하기 위해서 빼기 연산만 하면 된다. 그리고 차이 계산 모듈(300)로의 입력 신호의 수는 (N×N)개가 있지만 차이 계산 모듈(300) 상에서의 출력 신호의 수는 (N×N-1)개를 만들어준다.FIG. 7 is a diagram illustrating adjacent difference calculation by receiving outputs of a Batcher's sorting network by the difference calculation module 300. At this stage, the difference calculation module 300 only needs to perform a subtraction operation to calculate the difference between pixels. In addition, the number of input signals to the difference calculation module 300 is (N×N), but the number of output signals on the difference calculation module 300 is (N×N-1).

도 8은 인접 차이 표현 모듈(400)에 의한 인접 픽셀의 차이를 받아서 reduction OR 게이트를 통과시켜서 차이가 있든 없든 판단하는 한 비트 크기인 신호를 생성하는 것을 나타내는 도면이다. 인접 차이 표현 모듈(400) 상의 Reduction OR 게이트의 동작은 입력 데이터 크기에 따라 신호를 받아서 1-bit 크기인 신호를 만드는 것으로, OR 연산과 동일하게 입력은 0인 경우는 출력은 0이며, 반면에 입력이 0아닌 경우는 출력은 1이다. 또한 이 단계에서 인접 차이 표현 모듈(400)은 (N×N-1)개의 입력 신호를 받아서 (N×N-1)개의 출력 신호를 만든다.FIG. 8 is a diagram showing how the adjacent difference expression module 400 receives the difference between adjacent pixels, passes it through a reduction OR gate, and generates a signal of one bit size to determine whether there is a difference. The operation of the reduction OR gate on the adjacent difference expression module 400 is to receive a signal according to the size of the input data and create a 1-bit signal. As with the OR operation, if the input is 0, the output is 0. If the input is not 0, the output is 1. Also, at this stage, the adjacent difference expression module 400 receives (N×N-1) input signals and creates (N×N-1) output signals.

도 9는 entropy 계산 모듈(500)에 의한 파이프 라인(pipeline)된 entropy 계산이라는 마지막 단계에 대해 나타내는 도면이다. entropy 계산 모듈(500)의 자세한 하드웨어 구조가 도 9에 나와 있으며, 도 9에서는 계산 흐름을 설명한다. 이러한 entropy 계산 모듈(500)에 의해 수행되는 마지막 단계는 (N×N)개의 파이프 라인(pipeline) 단계를 포함하며 크게 3가지 종류로 나눌 수 있다. 첫 단계(501)는 entropy 값을 저장하는 H라는 레지스터(register)와 entropy 계산에 도움을 주는 addr 및 cnt라는 레지스터(register)를 초기화하는 단계다. 두 번째 단계부터 (N×N-1) 번째 단계(502)까지는 인접 픽셀의 차이에 나타낸 1-bit 신호들에 의해 레지스터(register)들의 값을 계산해서 업데이트시키는 단계다. 마지막 (N×N) 번째 단계(503)는 최종 entropy 값을 계산하는 단계다. 그래서 기존 방법과 달리 본 발명에서 제안하는 entropy 계산 방법은 실시간 영상 데이터를 처리할 수 있을 뿐만 아니라 새롭게 제안한 entropy 계산 방법은 윈도우 크기(N×N)에 따라 일반화를 시킬 수도 있다.FIG. 9 is a diagram showing the final step of pipelined entropy calculation by the entropy calculation module 500. The detailed hardware structure of the entropy calculation module 500 is shown in Figure 9, and Figure 9 explains the calculation flow. The final step performed by the entropy calculation module 500 includes (N×N) pipeline steps and can be broadly divided into three types. The first step (501) is to initialize a register called H, which stores the entropy value, and registers called addr and cnt, which help calculate entropy. From the second step to the (N The last (N×N)-th step 503 is a step of calculating the final entropy value. Therefore, unlike existing methods, the entropy calculation method proposed in the present invention not only can process real-time image data, but the newly proposed entropy calculation method can also be generalized according to the window size (N×N).

도 10은 파이프 라인(pipeline)된 entropy 계산이라는 마지막 단계의 하드웨어 구조에 대해 나타내는 도면이다. 이 단계의 동작은 도 9에 설명되었으며, 여기서는 자세한 하드웨어 구조를 보여준다. 이에 따르면 녹색 블록은 파이프 라인(pipeline) 레지스터(register)에 나타낸 것이고, 흰색 블록은 조합논리(combinational logic) 회로를 나타낸 것이다. 도 9에 나와 있는 계산은 레지스터(register), 멀티플렉서(multiplexer), 더하기(adder) 연산, 룩업 테이블(look-up table, LUT), 곱하기(multiplier) 연산으로만 구성되어 있기 때문에 하드웨어 구조가 간단한 장점을 제공할 수 있다. Figure 10 is a diagram showing the hardware structure of the final stage of pipelined entropy calculation. The operation of this step is illustrated in Figure 9, which shows the detailed hardware structure. According to this, the green blocks represent pipeline registers, and the white blocks represent combinational logic circuits. The calculation shown in Figure 9 has the advantage of a simple hardware structure because it consists only of register, multiplexer, adder, look-up table (LUT), and multiplier operations. can be provided.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.The present invention can also be implemented as computer-readable code on a computer-readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system.

컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices, and are also implemented in the form of a carrier wave (e.g., transmission via the Internet). It also includes

또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Additionally, computer-readable recording media can be distributed across computer systems connected to a network, so that computer-readable code can be stored and executed in a distributed manner. And functional programs, codes, and code segments for implementing the present invention can be easily deduced by programmers in the technical field to which the present invention belongs.

이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.As described above, the specification and drawings disclose preferred embodiments of the present invention, and although specific terms are used, they are used only in a general sense to easily explain the technical content of the present invention and aid understanding of the invention. , it is not intended to limit the scope of the present invention. It is obvious to those skilled in the art that in addition to the embodiments disclosed herein, other modifications based on the technical idea of the present invention can be implemented.

1 : 엔트로피 필터의 구현을 위한 하드웨어 장치
100 : 추출 모듈
200 : 정렬 모듈
300 : 차이 계산 모듈
400 : 인접 차이 표현 모듈
500 : entropy 계산 모듈
1: Hardware device for implementing entropy filter
100: Extraction module
200: Alignment module
300: difference calculation module
400: Adjacent difference expression module
500: entropy calculation module

Claims (3)

필터링 윈도우 크기에 따라 라인 메모리(line memory) 및 버퍼 레지스터(buffer register)로 윈도우 속의 픽셀을 추출하는 제 1 단계;
바이쳐 정렬 네트워크(Batcher's sorting network)로 추출한 픽셀을 정렬하는 제 2 단계;
정렬된 픽셀의 인접 차이를 계산하는 제 3 단계;
상기 제 3 단계에서 연산된 차이값을 1비트로 표현하기 위한 reduction OR 단계를 수행하는 제 4 단계; 및
파이프 라인(pipeline)된 entropy 계산 단계를 수행하는 제 5 단계; 를 포함하는 것을 특징으로 하는 엔트로피 필터의 구현 방법.
A first step of extracting pixels in the window using a line memory and a buffer register according to the filtering window size;
A second step of sorting the extracted pixels using a Batcher's sorting network;
a third step of calculating adjacent differences of aligned pixels;
A fourth step of performing a reduction OR step to express the difference calculated in the third step as 1 bit; and
A fifth step of performing a pipelined entropy calculation step; A method of implementing an entropy filter comprising:
청구항 1에 있어서, 상기 제 1 단계는,
입력 영상 데이터가 타이밍 신호(horizontal active video 및 vertical active video)와 같이 입력되면, 크기가 N-by-N인 필터링 윈도우 속의 모든 (N×N)(N은 1 이상의 자연수 중 홀수로서 3~15임)개의 픽셀들을 추출하기 위해서 먼저 (N-1)개의 라인 메모리(line memory)(101)를 사용하는 것을 특징으로 하는 엔트로피 필터의 구현 방법.
The method of claim 1, wherein the first step is,
When input video data is input together with timing signals (horizontal active video and vertical active video), all (N A method of implementing an entropy filter, characterized in that (N-1) line memories 101 are first used to extract ) pixels.
필터링 윈도우 크기에 따라 라인 메모리(line memory) 및 버퍼 레지스터(buffer register)로 윈도우 속의 픽셀을 추출하는 단계를 수행하는 추출 모듈(100);
바이쳐 정렬 네트워크(Batcher's sorting network)로 추출한 픽셀을 정렬하는 단계를 수행하는 정렬 모듈(200);
정렬된 픽셀의 인접 차이를 계산하는 단계를 수행하는 차이 계산 모듈(300);
차이 계산 모듈(300)에서 연산된 차이값을 1비트로 표현하기 위한 reduction OR 단계를 수행하는 인접 차이 표현 모듈(400); 및
파이프 라인(pipeline)된 entropy 계산 단계를 수행하는 entropy 계산 모듈(500); 을 포함하는 것을 특징으로 하는 엔트로피 필터의 구현을 위한 하드웨어 장치.
An extraction module 100 that extracts pixels in a window using a line memory and a buffer register according to the size of the filtering window;
A sorting module 200 that sorts the extracted pixels using a Batcher's sorting network;
a difference calculation module 300 that performs the step of calculating adjacent differences of aligned pixels;
an adjacent difference expression module 400 that performs a reduction OR step to express the difference value calculated in the difference calculation module 300 in 1 bit; and
an entropy calculation module 500 that performs a pipelined entropy calculation step; A hardware device for implementing an entropy filter, comprising:
KR1020220171578A 2022-12-09 2022-12-09 Entropy filter implementation method and hardware device for implementing the same KR102663964B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220171578A KR102663964B1 (en) 2022-12-09 2022-12-09 Entropy filter implementation method and hardware device for implementing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220171578A KR102663964B1 (en) 2022-12-09 2022-12-09 Entropy filter implementation method and hardware device for implementing the same

Publications (1)

Publication Number Publication Date
KR102663964B1 true KR102663964B1 (en) 2024-05-10

Family

ID=91072015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220171578A KR102663964B1 (en) 2022-12-09 2022-12-09 Entropy filter implementation method and hardware device for implementing the same

Country Status (1)

Country Link
KR (1) KR102663964B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH027614A (en) * 1988-01-25 1990-01-11 Nippon Hoso Kyokai <Nhk> Circuit configuration of logic filter
JPH05264232A (en) * 1991-12-09 1993-10-12 Kokuritsu Jiyunkankibiyou Center Souchiyou Device for measuring diameter of contrasted blood vessel with high accuracy
JP2001357395A (en) * 2000-06-13 2001-12-26 Canon Inc Device and method for processing picture
KR20170067264A (en) * 2015-12-08 2017-06-16 성균관대학교산학협력단 Method of image segmentation assisted entropy
KR102039653B1 (en) 2018-06-18 2019-11-01 동아대학교 산학협력단 Edge Preserving Smooting Filter Value Detection Method and Hardware Desing Method Using Batcher Sorting Algorithm

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH027614A (en) * 1988-01-25 1990-01-11 Nippon Hoso Kyokai <Nhk> Circuit configuration of logic filter
JPH05264232A (en) * 1991-12-09 1993-10-12 Kokuritsu Jiyunkankibiyou Center Souchiyou Device for measuring diameter of contrasted blood vessel with high accuracy
JP2001357395A (en) * 2000-06-13 2001-12-26 Canon Inc Device and method for processing picture
KR20170067264A (en) * 2015-12-08 2017-06-16 성균관대학교산학협력단 Method of image segmentation assisted entropy
KR102039653B1 (en) 2018-06-18 2019-11-01 동아대학교 산학협력단 Edge Preserving Smooting Filter Value Detection Method and Hardware Desing Method Using Batcher Sorting Algorithm

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Novel FPGA-based implementation of median and weighted median filters for image processing, Suhaib A., Fahmy, Peter Y. K. Cheung, Wayne Luk, International Conference on Field Programmable Logic and Applications (2005) 142-147
미국공개특허공보 US20120075440A1(2012.03.29. 공개) Entropy based image separation
미국등록특허공보 US7460702B2(2008.12.02. 등록) Entropy filter, and area extracting method using the filter
미국등록특허공보 US8655096B2(2014.02.18. 등록) Automatic image sharpening using entropy-based blur radius
중국공개특허공보 CN104268844A(2015.01.07. 공개) Small target infrared image processing method based on weighting local image entropy

Similar Documents

Publication Publication Date Title
JP2702928B2 (en) Image input device
NL1011900C2 (en) Apparatus and method for compressing image data received from an image sensor with a Bayer pattern.
JP2008148298A (en) Method and apparatus for identifying regions of different content in image, and computer readable medium for embodying computer program for identifying regions of different content in image
US20090257672A1 (en) Noise Filter
US20070092140A1 (en) Document analysis systems and methods
Kryjak et al. Real-time background generation and foreground object segmentation for high-definition colour video stream in FPGA device
CN112889069B (en) Methods, systems, and computer readable media for improving low light image quality
JP2010527190A (en) Compress digital images containing scanned documents
GB0326374D0 (en) Object detection in images
Singh et al. Contrast enhancement and brightness preservation using global-local image enhancement techniques
US10834414B2 (en) Transcode PCL delta-row compressed image to edges
KR20180067909A (en) Apparatus and method for segmenting image
Appiah et al. A run-length based connected component algorithm for FPGA implementation
Ratnayake et al. Embedded architecture for noise-adaptive video object detection using parameter-compressed background modeling
KR102663964B1 (en) Entropy filter implementation method and hardware device for implementing the same
CN116563172B (en) VR globalization online education interaction optimization enhancement method and device
da Cunha Possa et al. A new self-adapting architecture for feature detection
Licciardo et al. Application specific image processor for the extension of the dynamic range of images with multiple resolutions
Al-Zawqari et al. HD number plate localization and character segmentation on the Zynq heterogeneous SoC
Tan et al. Resource minimization in a real-time depth-map processing system on FPGA
US11551462B2 (en) Document scanning system
Licciardo et al. Design and FPGA implementation of a real-time processor for the HDR conversion of images and videos
KR102214669B1 (en) Hardware structure inference method optimized with modified Hybrid Median Filter
Licciardo et al. Dynamic range enhancement for medical image processing
Putra et al. FPGA implementation of template matching using binary sum of absolute difference

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant