KR101704439B1 - 메디안 필터링 방법 및 장치 - Google Patents

메디안 필터링 방법 및 장치 Download PDF

Info

Publication number
KR101704439B1
KR101704439B1 KR1020100093586A KR20100093586A KR101704439B1 KR 101704439 B1 KR101704439 B1 KR 101704439B1 KR 1020100093586 A KR1020100093586 A KR 1020100093586A KR 20100093586 A KR20100093586 A KR 20100093586A KR 101704439 B1 KR101704439 B1 KR 101704439B1
Authority
KR
South Korea
Prior art keywords
value
data
input
index
unit
Prior art date
Application number
KR1020100093586A
Other languages
English (en)
Other versions
KR20120032132A (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 KR1020100093586A priority Critical patent/KR101704439B1/ko
Priority to US13/067,949 priority patent/US8903190B2/en
Publication of KR20120032132A publication Critical patent/KR20120032132A/ko
Application granted granted Critical
Publication of KR101704439B1 publication Critical patent/KR101704439B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
    • H04N5/213Circuitry for suppressing or minimising impulsive noise
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • 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
    • G06T2207/20032Median filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

모든 종류의 입력 영상에 대하여 잡음 제거 및 화질 향상에 필요한 메디안 필터링 방법 및 장치를 제공한다. 메디안 필터링 장치는 N개의 데이터를 입력 받고, 상기 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 NxN크기의 차분 어레이를 계산하며, 상기 차분 어레이의 각 열마다 성분 값을 합산하여, 기 설정된 값보다 크거나 같은 값을 가지는 상기 합산된 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산한다.

Description

메디안 필터링 방법 및 장치{APPARATUS AND METHOD FOR MEDIAN FILTERING}
기술분야는 모든 종류의 입력 영상에 대하여 잡음 제거 및 화질 향상에 필요한 메디안 필터링 방법 및 장치에 관한 것이다.
이미지 신호 프로세서(Image Signal Processor)는 이미지 센서의 해상도가 높아지고, 화소 크기가 작아짐에 따라 보다 높은 수준의 잡음 제거 기술이 요구된다. 손떨림 방지와 같은 고급 영상처리 기술이 시장에 안정적으로 공급되기 위해서도 비용이 적게 들고, 우수한 성능의 잡음 제거 기술이 선행되어야 한다.
메디안(Median) 필터는 평균(Mean) 필터와 함께 잡음제거를 위해 사용된다. 메디안 필터는 평균 필터보다 우수한 주관적 화질을 제공하지만, 연산량이 상대적으로 많다. N개의 데이터가 주어지는 경우, 평균 필터는 데이터의 평균값을 산출하므로 N-1번의 가산과 1번의 제산 과정을 수행한다. 제산에 소요되는 연산량을 가산에 소요되는 연산량과 같다고 가정하면 모두 N번의 연산이 필요하다. 기존의 메디안 필터는 전체 N개의 데이터에서 최소값이나 최대값을 찾은 후, 남은 데이터로부터 다시 최소값이나 최대값을 찾고, 하나씩 배제함으로써 중간값을 찾는다. N이 홀수이면 평균 필터는 N에 비례한 연산이 필요하며, 메디안 필터는 N^2에 비례하는 연산이 필요하다. 메디안 필터를 NxN 블록 크기의 2차원 공간에서 적용하는 경우, 연산량은 N^4에 비례하게 되며, 3차원 공간에서는 N^6에 비례하므로 다차원 공간에서는 연산량이 기하급수적으로 늘어난다.
일 측면에 있어서, 메디안 필터링 장치는 N개의 데이터를 입력 받는 입력부, 상기 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 NxN크기의 차분 어레이를 계산하는 차분 어레이 계산부, 상기 차분 어레이의 각 열마다 성분 값을 합산하는 합산부 및 기 설정된 값보다 크거나 같은 값을 가지는 상기 합산된 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산하는 인덱스 계산부를 포함한다.
상기 기 설정된 값은 (N-1)/2일 수 있다.
다른 일 측면에 있어서, 메디안 필터링 장치는 상기 N개의 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장하는 메모리부 및 상기 계산된 인덱스에 기초하여 상기 저장된 N개의 데이터로부터 메디안 값을 결정하는 메디안 값 결정부를 더 포함할 수 있다.
상기 차분 어레이 계산부는 상기 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교하는 제1 비교부를 포함할 수 있다.
상기 합산부는 상기 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트하는 카운터, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같은 값을 가지는지 비교하는 제2 비교부 및 상기 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력 받고, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 상기 카운트된 값을 출력하고, 상기 카운트된 값이 상기 기 설정된 값보다 작으면 상기 임의의 값을 출력하는 제1 다중화부를 포함할 수 있다.
상기 카운터는 상기 데이터 세트에 포함된 데이터의 개수가 N개인 경우에, N-1개의 비교 데이터 값을 입력으로 하여 비트 단위로 카운트 하는 가산기를 포함할 수 있다.
상기 인덱스 계산부는 상기 합산된 값 또는 상기 합산된 값이 상기 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 제1 입력 값 및 제2 입력 값으로 하되, 상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 상기 인덱스의 일부 비트를 출력하는 최소값 결정부 및 상기 인덱스의 상기 일부 비트를 입력 받고, 상기 인덱스의 최종 일부 비트를 출력하는 제2 다중화부를 포함할 수 있다.
상기 최소값 결정부는 상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력하는 제3 비교부 및 상기 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력하는 제3 다중화부를 포함할 수 있다.
상기 인덱스 계산부는 상기 합산된 값을 비교하는 과정 중간에서, 계산된 결과 값을 저장하는 파이프라인 레지스터를 포함할 수 있다.
일 측면에 있어서, 메디안 필터링 방법은 N개의 데이터를 입력 받는 단계, 상기 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 NxN크기의 차분 어레이를 계산하는 단계, 상기 차분 어레이의 각 열마다 성분 값을 합산하는 단계 및 기 설정된 값보다 크거나 같은 값을 가지는 상기 합산된 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산하는 단계를 포함한다.
다른 일 측면에 있어서, 메디안 필터링 방법은 상기 N개의 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장하는 단계 및 상기 계산된 인덱스에 기초하여 상기 저장된 N개의 데이터로부터 메디안 값을 결정하는 단계를 더 포함할 수 있다.
상기 차분 어레이를 계산하는 단계는 상기 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교하는 단계를 포함할 수 있다.
상기 합산하는 단계는 상기 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트하는 단계, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같은 값을 가지는지 비교하는 단계 및 상기 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력받고, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 상기 카운트된 값을 출력하고, 상기 카운트된 값이 상기 기 설정된 값보다 작으면 상기 임의의 값을 출력하는 단계를 포함할 수 있다.
상기 인덱스를 계산하는 단계는 상기 합산된 값 또는 상기 합산된 값이 상기 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 제1 입력 값 및 제2 입력 값으로 하되, 상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 상기 인덱스의 일부 비트를 출력하는 단계 및 상기 인덱스의 상기 일부 비트를 입력 받고, 상기 인덱스의 최종 일부 비트를 출력하는 단계를 포함할 수 있다.
상기 최소값 및 상기 인덱스의 일부 비트를 출력하는 단계는 상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력하는 단계 및 상기 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력하는 단계를 포함할 수 있다.
상기 인덱스를 계산하는 단계는 상기 합산된 값을 비교하는 과정 중간에서, 계산된 결과 값을 저장하는 단계를 포함할 수 있다.
차분 어레이를 이용하여 최소 인덱스를 결정함으로써 메디안 값을 계산하는데 필요한 연산량을 감축시킬 수 있다.
또한, 메디안 필터링에 필요한 파이프라인의 단계 수를 기존 기술 대비 절반 이하로 줄임으로써 하드웨어 구현 비용을 절감할 수 있다.
또한, 연산량 감축 및 파이프라인의 단계 수를 줄임으로써 동일한 비용으로 메디안 필터의 커널(kernel)을 확대하여 메디안 필터의 성능을 개선할 수 있다.
도 1은 일반적인 메디안 필터의 하드웨어 구조를 나타낸 도면이다.
도 2는 일 실시예에 따른 메디안 필터링 장치의 블록도이다.
도 3은 일 실시예에 따른 메디안 필터링 장치의 구체적인 일 예를 나타낸 블록도이다.
도 4는 일 실시예에 따른 메디안 필터링 장치의 하드웨어 구조를 나타낸 도면이다.
도 5는 일 실시예에 따른 카운터의 하드웨어 구조를 나타낸 도면이다.
도 6a는 일 실시예에 따른 최소화 결정부의 하드웨어 구조를 나타낸 도면이다.
도 6b는 일 실시예에 따른 인덱스 계산부의 하드웨어 구조를 나타낸 도면이다.
도 7은 다른 일 실시예에 따른 인덱스 계산부의 하드웨어 구조를 나타낸 도면이다.
도 8은 일 실시예에 따른 메디안 필터링 방법을 나타낸 흐름도이다.
이하, 일측에 따른 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일반적인 메디안 필터의 하드웨어 구조를 나타낸 도면이다.
도 1을 참조하면, 메디안 필터가 9개의 서로 값이 다른 데이터를 입력 받는 경우에 중간 값, 즉 메디안 값을 계산하는 경우이다. 9개의 데이터들은 2개의 입출력을 가진 사각형 모듈에 입력된다. 사각형 모듈은 입력된 2개의 데이터를 비교하고, 큰 값을 상위로 작은 값을 하위로 하여 출력한다. 즉, 사각형 모듈은 비교기로서 동작한다. 9개의 데이터에 대하여 9번의 비교 연산을 통해 중간 값인 8을 메디안 값으로 계산할 수 있다. 중간 값이란 9개의 데이터를 크기 순으로 정렬하였을 때 5번째에 위치하는 값이라고 할 수 있다. 9개의 데이터에 대하여 9개의 비교기를 순차적으로 연산하면, 하드웨어의 연산시간이 상당히 길어진다. 연산시간을 줄이기 위해 비교기를 3개씩 통과할 때마다 파이프라인 레지스터를 삽입한다. 파이프라인 레지스터는 비교기를 통하여 진행된 값들을 저장하는 역할을 한다. 필터링을 수행해야 하는 데이터가 많아지면, 삽입되어야 할 파이프라인 레지스터도 많아진다. 파이프라인 레지스터의 비용은 비교기를 상회하므로 파이프라인 레지스터가 많아질수록 하드웨어 구현 비용이 증가하게 된다.
도 2는 일 실시예에 따른 메디안 필터링 장치의 블록도이다.
도 2를 참조하면, 일 실시예에 따른 메디안 필터링 장치는 입력부(210), 차분 어레이 계산부(220), 합산부(230), 인덱스 계산부(240), 메디안 값 결정부(250), 메모리부(260)를 포함한다.
입력부(210)는 N개의 데이터를 입력 받는다. N개의 데이터는 입력 영상을 구성하는데 사용되는 명도값, 채도값, 조도값, 색상값 등을 포함할 수 있다. 입력부(210)는 복수개의 데이터를 입력 받음으로써, 메디안 값 계산과정을 시작한다.
차분 어레이 계산부(220)는 입력된 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 NxN 크기의 차분 어레이(difference array)를 계산한다. 차분 어레이 계산부(220)는 N개의 데이터 대하여 인덱스를 가지는 데이터 세트를 형성할 수 있다. 예를 들면, 9개의 데이터가 입력되는 경우, 9개의 데이터를 X라는 데이터 세트로 형성할 수 있다. X = {15,1,8,3,2,11,5,9,20} 이때, 15는 데이터 세트(X)에서 첫번째 인덱스를 가지고, 20은 데이터 세트에서 아홉번째 인덱스를 가진다.
또한, 차분 어레이 계산부(220)는 데이터 세트에 기초하여 차분 어레이를 계산할 수 있다. 차분 어레이는 데이터 세트에 포함된 각 데이터를 다른 데이터와 비교하여 큰 값이면 1, 작은 값이면 0을 갖는 NxN 매트릭스이다. 상기 데이터 세트(X)를 예로 들면, [표 1]과 같다. 첫번째 행에서 15는 20을 제외한 나머지 값보다 큰 값을 가지므로 20을 제외한 구간에서 1을 가진다. 두번째 행에서 1은 다른 값들보다 작은 값을 가지므로 전 구간에서 0을 가진다. 이와 같은 방식으로 9개의 데이터에 대하여 9x9 크기의 차분 어레이를 계산할 수 있다. 좀 더 일반화하여 의사 코드(Pseudo code)로 다음과 같이 표현할 수 있다. diff[i][j] = x[i]-x[j]> 0, 0≤i,j≤N-1(N은 홀수), 여기서, diff[i][j]는 i행, j열의 차분 어레이, x[i]는 행의 위치에 있는 데이터 세트(x), x[j]는 열의 위치에 있는 데이터 세트(x), x[i]-x[j]>0는 x[i]가 x[j]보다 크면 1, x[i]가 x[j]보다 작으면 0 임을 의미한다. x[i]와 x[j]가 동일한 경우에는 정의되지 않는다.
· 15 1 8 3 2 11 5 9 20
15 · 1 1 1 1 1 1 1 0
1 0 · 0 0 0 0 0 0 0
8 0 1 · 1 1 0 1 0 0
3 0 1 0 · 1 0 0 0 0
2 0 1 0 0 · 0 0 0 0
11 0 1 1 1 1 · 1 1 0
5 0 1 0 1 1 0 · 0 0
9 0 1 1 1 1 0 1 · 0
20 1 1 1 1 1 1 1 1 ·
합산부(230)는 차분 어레이의 각 열마다 성분 값을 합산한다. 합산부(230)는 NxN 크기의 차분 어레이에서 각 열마다 성분 값을 더한다. 표 1을 참조하면, 9개의 열이 있다. 합산부(230)는 9개의 열마다 성분 값을 더한다. 합산한 결과는 {1,8,4,6,7,2,5,3,0}이다. 합산부(230)의 기능을 다음과 같이 의사 코드로 표현할 수 있다. gte[j] =∑idiff[i][j], 0≤j≤N-1, 여기서 gte[j]는 j열의 성분을 합산한 값으로, j열에서 모든 행의 값을 더한 값이다.
인덱스 계산부(240)는 기 설정된 값보다 크거나 같은 값을 가지는 합산된 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산한다. 인덱스 계산부(240)는 기 설정된 값에 가장 가까운 값을 가지는 데이터의 인덱스를 계산한다. 여기서, 기 설정된 값은 (N-1)/2일 수 있다. 입력 데이터의 개수가 N개이고, 데이터 세트에서 각 데이터가 크기 순서로 정렬된 상태라면, 중간 값은 (N-1)/2에 위치할 수 있다. 인덱스 계산부(240)는 합산부(230)를 통한 각 열의 합산된 값들 중에서, (N-1)/2보다 크거나 같은 값을 가지는 인덱스를 계산한다. 또한, 인덱스 계산부(240)는 (N-1)/2보다 크거나 같은 값을 가지는 인덱스 중에서 (N-1)/2과 가장 가까운 값을 가지는 인덱스, 즉, 최소 인덱스를 계산한다. 인덱스 계산부(240)의 기능을 다음과 같이 의사코드로 표현할 수 있다. iM = argmin{gte(j)|gte(j)≥(N-1)/2}, 여기서, iM은 각 열의 합산된 값들 중에서 (N-1)/2과 가장 가까운 값을 가지는 열의 인덱스를 의미한다.
또한, 인덱스 계산부(240)는 파이프라인 레지스터를 포함할 수 있다. 파이프 라인 레지스터는 상기 합산된 값을 비교하는 과정 중간에, 계산된 결과 값을 저장하기 위한 목적으로 삽입될 수 있다. 인덱스 계산부(240)는 파이프 라인 레지스터를 비교기와 함께 사용하여 하드웨어 연산 시간을 감축시킬 수 있다.
메디안 값 결정부(250)는 계산된 인덱스에 기초하여 저장된 N개의 데이터로부터 메디안 값을 결정할 수 있다. 즉, 메디안 값 결정부(250)는 N개의 데이터가 포함된 데이터 세트에서 인덱스에 매칭되는 데이터를 결정할 수 있다. 이때, 인덱스와 매칭되는 데이터가 메디안 값이다. 여기서 인덱스는 메모리의 주소와 매칭될 수 있다. 메모리에는 인덱스에 해당하는 데이터가 저장될 수 있다.
메모리부(260)는 상기 N개의 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장할 수 있다. 메모리부(260)는 입력되는 N개의 데이터를 저장할 수 있다. 또한, 메모리부(260)는 데이터 세트에서 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장할 수 있다.
도 3은 일 실시예에 따른 메디안 필터링 장치의 구체적인 일 예를 나타낸 블록도이다.
차분 어레이 계산부(220)는 제1 비교부(310)를 포함할 수 있다. 제1 비교부(310)는 입력된 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교한다. 제1 비교부(310)는 기준 입력 값과 비교 입력 값을 비교하여 기준 입력 값이 비교 입력 값보다 크거나 같으면 1을, 작으면 0을 출력한다. 제1 데이터가 기준 입력 값으로, 제2 데이터가 비교 입력 값으로 사용될 수 있다. 기준 입력 값은 차분 어레이에서 행에 해당하는 값이고, 비교 입력 값은 차분 어레이에서 열에 해당하는 값일 수 있다. 차분 어레이 계산부(220)는 복수개의 제1 비교부(310)를 포함할 수 있다. 차분 어레이 계산부(220)는 N개의 데이터에 대하여, 두 개의 입력을 가지는 비교부를 통해 차분 어레이를 계산하기 위해 복수개의 제1 비교부(310)를 사용할 수 있다.
합산부(230)는 카운터(320), 제2 비교부(330), 제1 다중화부(340)를 포함할 수 있다. 카운터(320)는 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트할 수 있다. 카운터(320)는 차분 어레이의 각 열에 하나씩 배치되어 영이 아닌 값을 카운트할 수 있다. 입력부(210)에 입력된 데이터 개수가 N이라면, 카운터(320)는 N-1개의 제1 비교부(310)로부터 출력된 값을 입력 값으로 할 수 있다.
제2 비교부(330)는 카운터(320)에서 카운트된 값이 기 설정된 값보다 크거나 같은 값을 가지는지 비교할 수 있다. 제2 비교부(330)는 카운터(320)에서 출력된 값 및 기 설정된 값을 입력 값으로 하여, 카운터(320)에서 출력된 값이 기 설정된 값보다 크거나 같으면 1을, 작으면 0을 출력할 수 있다. 여기서 기 설정된 값은 (N-1)/2일 수 있다.
제1 다중화부(340)는 카운터(320)에서 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력받고, 카운트된 값이 기 설정된 값보다 크거나 같으면 카운트된 값을 출력하고, 카운트된 값이 기 설정된 값보다 작으면 임의의 값을 출력할 수 있다. 즉, 제1 다중화부(340)는 제2 비교부(330)의 출력 값을 선택신호로 하여, 출력 값이 1이면 카운트된 값을, 출력 값이 0이면 임의의 값을 출력할 수 있다. 이때 입력 데이터 개수 N보다 큰 임의의 값이 입력되는 것은 제1 다중화부(340)에서 출력되는 값이 기 설정된 값보다 크게 하기 위함이다.
인덱스 계산부(240)는 최소값 결정부(350) 및 제2 다중화부(360)를 포함할 수 있다. 최소값 결정부(350)는 합산부(230)에서 합산된 값 또는 상기 합산된 값이 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 입력 값으로 할 수 있다. 다만, 최소값 결정부(350)는 두 개의 입력 값을 가지므로 입력 값을 제1 입력 값 및 제2 입력 값으로 할 수 있다. 또한, 최소값 결정부(350)는 상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 기 설정된 값과 가장 가까운 값을 가지는 인덱스의 일부 비트를 출력할 수 있다. 최소값이란 입력된 값 중 작은 값을 의미할 수 있다. 최소화 결정부(350)는 제1 입력 값과 제2 입력 값 중 작은 값을 출력하고, 제1 입력 값과 제2 입력 값의 관계에 따라 1 또는 0을 출력하여 최소 인덱스의 일부 비트를 구성할 수 있다. 최소 인덱스는 기 설정된 값과 가장 가까운 값을 가지는 인덱스를 의미할 수 있다.
또한, 최소값 결정부(350)는 제3 비교부(351) 및 제3 다중화부(353)를 포함할 수 있다. 제3 비교부(351)는 상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력할 수 있다. 제3 다중화부(353)는 제3 비교부(351)의 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력할 수 있다. 보다 구체적인 예는 도 6a 및 도 6b를 통해 설명한다.
제2 다중화부(360)는 최소값 결정부(350)에서 출력된 인덱스의 일부 비트를 입력 받고, 기 설정된 값과 가장 가까운 값을 가지는 최소 인덱스의 최종 일부 비트를 출력할 수 있다. 인덱스 계산부(240)는 복수개의 최소값 결정부(350)로 구성될 수 있다. 이 때, 최소값 결정부(350)의 출력 신호가 제2 다중화부(360)에 입력되고, 기 설정된 값과 가장 가까운 값을 가지는 최소 인덱스의 최종 일부 비트를 출력할 수 있다. 도 6b에서 좀 더 상세하게 설명한다.
일반적인 메디안 필터링 장치에 비하여 일 실시예에 따른 메디안 필터링 장치는 인덱스 계산부(240)에서 최소화 결정부(350)를 통과할 때마다 데이터의 연산량이 절반씩 감소하므로, 전체 연산량을 감축할 수 있다. 또한, 하드웨어 연산 시간을 줄이기 위해 필요한 파이프 라인 레지스터의 수도 절반 이하로 줄일 수 있다.
도 4는 일 실시예에 따른 메디안 필터링 장치의 하드웨어 구조를 나타낸 도면이다.
도 4는 메디안 필터링 장치가 논리회로를 통하여 구현된 예이다. 도 4를 참조하면, 메디안 필터링 장치는 차분 어레이 계산부(220), 합산부(230) 및 인덱스 계산부(240)를 포함한다. 먼저, 5개의 입력 데이터가 주어진다. 입력 데이터는 x0, x1, x2, x3, x4이다. 입력 데이터는 차분 어레이 계산부(220)에 입력된다. 차분 어레이 계산부(220)는 제1 비교부(410,412,414,416)를 포함할 수 있다. 제1 비교부(410)는 입력 신호 A, B에 대하여 A가 B보다 크거나 같은 값을 가지면 1을, 작은 값을 가지면 0을 출력한다. 제1 비교부(410)에서 입력 신호 A는 x1을, 입력 신호 B는 x0를 의미한다. 입력 데이터가 5개이므로 제1 비교부는 각 입력 신호에 대해 4개씩 구성된다. 즉, 입력 신호 x0와 x1, x2, x3, x4를 비교해야 하므로 4개의 제1 비교부가 필요하다. 또한, 각 입력 신호에 4개의 제1 비교부가 필요하므로 전체 5개의 입력 신호에 대해서는 20개의 제1 비교부가 필요하게 된다.
합산부(230)는 카운터(420), 제2 비교부(430) 및 제1 다중화부(440)를 포함할 수 있다. 제1 비교부(410,412,414,416)에서 출력 된 값은 카운터(420)에 입력된다. 카운터(420)는 0이 아닌 입력 값을 합산한다. 카운터(420)에서 출력된 값(C)은 제2 비교부(430) 및 제1 다중화부(440)로 입력된다. 제2 비교부(430)는 카운터(420)에서 출력된 값(C)과 (N-1)/2(D)를 비교한다. 제2 비교부(430)는 C가 D보다 크거나 같은 값을 가지면 1을, 작은 값을 가지면 0을 출력한다. 제1 다중화부(440)는 MUX를 포함할 수 있으며, 제2 비교부(430)에서 출력된 값을 선택 신호로 하여 출력 값을 결정할 수 있다. 즉, 제1 다중화부(440)는 제2 비교부(430)에 출력된 값이 1이면 카운터(420)에서 출력된 값을 GTE0로 출력하고, 제2 비교부(430)에 출력된 값이 0이면 임의의 큰 값인 N+1을 GTE0로 출력한다. GTE0는 차분 어레이에서 첫번째 열의 합산 값을 의미한다.
x1, x2, x3, x4에 대해서도 위의 방식과 마찬가지로 각 열의 합산 값인 GTE1, GTE2, GTE3, GTE4가 생성된다. 입력 데이터가 5개이므로 5x5의 차분 어레이에서 5개의 합산 값이 생성된다. 인덱스 계산부(240)는 GTE0, GTE1, GTE2, GTE3, GTE4에서 가장 작은 값을 가지는 최소 인덱스를 계산한다. 합산 값 GTE0, GTE1, GTE2, GTE3, GTE4는 인덱스를 의미하고, 5개의 GTE0, GTE1, GTE2, GTE3, GTE4 중에서 가장 작은 값을 가지는 경우가 최소 인덱스이다. 인덱스 계산부(240)의 구체적인 동작은 도 6a 및 도 6b에서 상세하게 설명한다.
구체적으로 x0, x1, x2, x3, x4에 0,4,3,2,1의 값을 대입하면, 먼저 {0,4,3,2,1}의 데이터 세트를 형성할 수 있다. 이때, 인덱스 0은 0, 인덱스 1은 4, 인덱스 2는 3, 인덱스 3은 2, 인덱스 4는 1의 값을 가진다. 데이터의 개수가 작으므로 중간 값을 계산해보면, 2임을 알 수 있다. 여기서는 GTE0, GTE1, GTE2, GTE3, GTE4 세트의 생성까지 설명하고, 도 6b에서 최소 인덱스를 계산한다. 제1 비교부에서 계산된, 카운터에서 합산되는 값의 세트는 {4,0,1,2,3}이다. 즉, 0보다 큰 값이 4개이고, 4보다 큰 값은 0개, 3보다 큰 값은 1개, 2보다 큰 값은 2개, 1보단 큰 값은 3개가 있음을 의미한다. N은 5이므로 (N-1)/2는 2이다. N+1은 6이다. 계속하여, 제2 비교부 및 제1 다중화부를 통과한 GTE0, GTE1, GTE2, GTE3, GTE4 세트는 {4,6,6,2,3}이다. 즉, (N-1)/2보다 크거나 같은 합산 값은 그대로 출력되고, 작은 합산 값은 N+1=6으로 출력된다.
도 4에 도시된 예에서, N+1 및 N-1는 제어부(도시되지 않음)로부터 제공될 수 있다.
도 5는 일 실시예에 따른 카운터의 하드웨어 구조를 나타낸 도면이다.
도 5를 참조하면, 카운터는 가산기(adder)를 통해 구현될 수 있다. 카운터는 입력 데이터의 개수가 N개인 경우에, N-1개의 비교 데이터 값을 입력으로 하여 비트 단위로 카운트 하는 가산기를 포함할 수 있다. 도 4에서 설명한 것처럼, 입력 데이터의 개수가 N개이면, 제1 비교부를 통과한 신호는 N-1개이므로, 카운터에는 N-1개의 입력 신호가 주어진다. 도 5를 참조하면, 9개의 입력 데이터에 대하여 제1 비교부를 통과한 8개의 신호가 카운터를 구성하는 가산기에 입력된다. 이때, 비트 계산이므로 9개의 값을 나타내기 위해서는 4비트 가산기로 구현할 수 있다. 구체적으로 살펴보면, 가산기에 입력되는 8개의 비트는 a,b,c,d,e,f,g,h로 표현될 수 있다. 데이터 세트를 {0,1,2,3,4,5,6,7,8} 이라고 하면, 입력 데이터 0에 대해서는 제1 비교부를 통과한 신호는 1,1,1,1,1,1,1,1이 된다. 데이터 세트에서 0보다 큰 값은 8개이므로, 2비트로 8을 표현하기 위해서는 4비트가 필요하다. a,b,c,d,e,f,g,h에 1,1,1,1,1,1,1,1이 입력되면, 2비트 가산기(510,520,530,540)는 출력 값으로 10을 가진다. 입력 값으로 10이 주어지면, 3비트 가산기(550,560)는 출력 값으로 100을 가진다. 입력 값으로 100이 주어지면, 4비트 가산기(570)는 출력 값으로 1000을 가진다. 따라서, 8이 비트로 표현된 출력 값을 얻을 수 있다. 가산기의 지연 시간은 2(M-1)비트 가산기의 지연 시간과 같으며, 결과적으로 지연 시간의 큰 영향을 받지 않는다. M은 log2(N-1)의 값을 가진다.
도 6a는 일 실시예에 따른 최소화 결정부의 하드웨어 구조를 나타낸 도면이다.
도 6a을 참조하면, 최소화 결정부(610)는 MUX(611) 및 비교기(613)를 포함할 수 있다. MUX(611)는 입력 신호 A, B에 대하여 비교기(613)의 출력 값을 선택 신호로 하여 A 또는 B 중 작은 값(Min(A,B))을 출력할 수 있다. 비교기(613)는 입력 신호 A와 B를 비교하여, A가 B보다 크면 1을, 작거나 같으면 0을 출력한다. 또한, 최소화 결정부(610)는 비교기(613)에서 출력된 값을 최소 인덱스를 계산하는 과정에서 필요한 인덱스의 일부 비트로 사용할 수 있다.
도 6b는 일 실시예에 따른 인덱스 계산부의 하드웨어 구조를 나타낸 도면이다.
도 6b을 참조하면, 인덱스 결정부는 복수개의 최소화 결정부(610,620,630,640) 및 MUX(650)를 포함할 수 있다. 인덱스 결정부는 차분 어레이에서 각 열마다 합산된 값을 입력 값으로 한다. 도 4에서 설명한 예를 계속해서 살펴보면, 각 열의 합산 값 GTE0, GTE1, GTE2, GTE3, GTE4가 최소화 결정부(610,620,630,640)에 입력된다.
최소화 결정부는 2개의 입력 값을 가지므로, GTE0, GTE1는 최소화 결정부(610)에, GTE2, GTE3는 최소화 결정부(620)에, GTE4는 최소화 결정부(640)에 입력된다. 최소화 결정부(610)는 GTE0 및 GTE1 중에서 작은 값을 Min(A1,B1)로 출력하고, GTE0가 GTE1보다 크면 1을, 작으면 0을 Min(1)Idx로 출력한다. 또한, 최소화 결정부(620)는 GTE2 및 GTE3 중에서 작은 값을 Min(A2,B2)로 출력하고, GTE2가 GTE3보다 크면 1을, 작으면 0을 Min(2)Idx로 출력한다. 또한, 최소화 결정부(630)는 Min(A1,B1) 및 Min(A2,B2)을 비교하여 작은 값을 Min(A3,B3)로 출력하고, Min(A1,B1)이 Min(A2,B2)보다 크면 1을, 작으면 0을 Min(3)Idx로 출력한다. 또한, 최소화 결정부(640)는 Min(A3,B3) 및 GTE4를 비교하여 Min(A3,B3)이 GTE4보다 크면 1을, 작으면 0을 MinIdx[2]로 출력한다. 여기서 MinIdx[2]는 3개로 표현된 비트의 최상위비트(Most Significant Bit, MSB)를 의미한다. 또한, Min(3)Idx는 3개로 표현된 비트의 두번째 비트를 의미하는 MinIdx[1]이 된다. MUX(650)는 Min(1)Idx 및 Min(2)Idx를 입력 값으로 하여, MinIdx[1]이 0이면 Min(1)Idx을 MinIdx[0]로 출력하고, MinIdx[1]이 1이면 Min(2)Idx을 MinIdx[0]로 출력한다. MinIdx[0]는 3개로 표현된 비트의 최하위비트(Least Significant Bit, LSB)를 의미한다.
GTE0, GTE1, GTE2, GTE3, GTE4 세트가 {4,6,6,2,3}이면, Min(A1,B1)은 4이고, Min(1)Idx는 0이다. Min(A2,B2)는 2이고, Min(2)Idx는 1이다. Min(A3,B3)은 2이고, Min(3)Idx는 1이다. MinIdx[2]는 0이다. MinIdx[1]은 Min(3)Idx와 같으므로 1이다. MinIdx[0]은 MinIdx[1]이 1이므로 Min(2)Idx 와 같은 값을 가진다. 따라서, MinIdx[0]는 1이다. 최소 인덱스는 011이다. 따라서, 최소 인덱스는 GTE3을 의미한다. 즉, 4번째 인덱스에 해당하는 데이터가 중간 값이다. 데이터 세트가 {0,4,3,2,1}이므로 4번째 인덱스에 해당하는 데이터는 2이고, 데이터 세트에서 바로 계산할 수 있는 중간 값 2와 동일한 값을 가진다.
도 7은 다른 일 실시예에 따른 인덱스 계산부의 하드웨어 구조를 나타낸 도면이다.
도 7을 참조하면, 인덱스 결정부는 복수개의 최소화 결정부(710,720,730,740,750,760,770) 및 복수개의 MUX(780,790)를 포함할 수 있다. 도 7에서는 각 열의 합산 값 GTE0, GTE1, GTE2, GTE3, GTE4, GTE5, GTE6, GTE7이 최소화 결정부(710,720,730,740,750,760,770)에 입력된다. 즉, 입력 데이터가 8개인 경우이다.
최소화 결정부는 2개의 입력 값을 가지므로, GTE0, GTE1는 최소화 결정부(710)에, GTE2, GTE3는 최소화 결정부(720)에, GTE4, GTE5는 최소화 결정부(730)에, GTE6, GTE7는 최소화 결정부(740) 입력된다. 최소화 결정부(710)는 GTE0 및 GTE1 중에서 작은 값을 Min(A1,B1)로 출력하고, GTE0가 GTE1보다 크면 1을, 작으면 0을 Min(1)Idx로 출력한다. 또한, 최소화 결정부(720)는 GTE2 및 GTE3 중에서 작은 값을 Min(A2,B2)로 출력하고, GTE2가 GTE3보다 크면 1을, 작으면 0을 Min(2)Idx로 출력한다. 또한, 최소화 결정부(730)는 GTE4 및 GTE5 중에서 작은 값을 Min(A3,B3)로 출력하고, GTE4가 GTE5보다 크면 1을, 작으면 0을 Min(3)Idx로 출력한다. 또한, 최소화 결정부(740)는 GTE6 및 GTE7 중에서 작은 값을 Min(A4,B4)로 출력하고, GTE6가 GTE7보다 크면 1을, 작으면 0을 Min(4)Idx로 출력한다. 또한, 최소화 결정부(750)는 Min(A1,B1) 및 Min(A2,B2)을 비교하여 작은 값을 Min(A5,B5)로 출력하고, Min(A1,B1)이 Min(A2,B2)보다 크면 1을, 작으면 0을 Min(5)Idx로 출력한다. 또한, 최소화 결정부(760)는 Min(A3,B3) 및 Min(A4,B4)을 비교하여 작은 값을 Min(A6,B6)로 출력하고, Min(A3,B3)이 Min(A4,B4)보다 크면 1을, 작으면 0을 Min(6)Idx로 출력한다. 또한, 최소화 결정부(770)는 Min(A5,B5) 및 Min(A6,B6)를 비교하여 Min(A5,B5)이 Min(A6,B6)보다 크면 1을, 작으면 0을 MinIdx[2]로 출력한다. MUX(780)는 Min(5)Idx 및 Min(6)Idx를 입력 값으로 하여, MinIdx[2]이 0이면 Min(5)Idx을 MinIdx[1]로 출력하고, MinIdx[2]이 1이면 Min(6)Idx을 MinIdx[1]로 출력한다. MUX(790)는 Min(1)Idx, Min(2)Idx, Min(3)Idx 및 Min(4)Idx를 입력 값으로 하여, MinIdx[2:1]이 00이면 Min(1)Idx을 MinIdx[0]로 출력하고, MinIdx[2:1]이 01이면 Min(2)Idx을 MinIdx[0]로 출력하고, MinIdx[2:1]이 10이면 Min(3)Idx을 MinIdx[0]로 출력하고, MinIdx[2:1]이 11이면 Min(4)Idx을 MinIdx[0]로 출력한다. 입력 데이터가 8개이므로 3개의 비트로 표현될 수 있다.
도 8은 일 실시예에 따른 메디안 필터링 방법을 나타낸 흐름도이다.
810단계에서 일 실시예에 따른 메디안 필터링 장치는 N개의 데이터를 입력 받는다.
820단계에서 일 실시예에 따른 메디안 필터링 장치는 N개의 입력 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 NxN 크기의 차분 어레이를 계산한다. 차분 어레이는 데이터 세트에 포함된 각 데이터를 다른 데이터와 비교하여 큰 값이면 1, 작은 값이면 0을 갖는 NxN 매트릭스이다. 일 실시예에 따른 메디안 필터링 장치는 입력된 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교할 수 있다.
830단계에서 일 실시예에 따른 메디안 필터링 장치는 차분 어레이의 각 열마다 성분 값을 합산한다. 일 실시예에 따른 메디안 필터링 장치는 상기 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트할 수 있다. 또한, 일 실시예에 따른 메디안 필터링 장치는 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같은 값을 가지는지 비교할 수 있다. 이때, 일 실시예에 따른 메디안 필터링 장치는 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 1을, 작으면 0을 출력할 수 있다. 여기서 기 설정된 값은 (N-1)/2일 수 있다. 일 실시예에 따른 메디안 필터링 장치는 상기 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력 받고, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 상기 카운트된 값을 출력하고, 상기 카운트된 값이 상기 기 설정된 값보다 작으면 상기 임의의 값을 출력할 수 있다.
840단계에서 일 실시예에 따른 메디안 필터링 장치는 기 설정된 값보다 크거나 같은 값을 가지는 상기 합산된 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산한다. 일 실시예에 따른 메디안 필터링 장치는 상기 합산된 값 또는 상기 합산된 값이 상기 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 입력 값으로 할 수 있다. 일 실시예에 따른 메디안 필터링 장치는 최소값을 결정하는 과정에서 두 개의 입력 값이 필요하므로 입력 값을 제1 입력 값 및 제2 입력 값으로 할 수 있다. 일 실시예에 따른 메디안 필터링 장치는 상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 기 설정된 값과 가장 가까운 값을 가지는 인덱스의 일부 비트를 출력할 수 있다. 최소값이란 입력 값 중 작은 값을 의미할 수 있다. 또한, 일 실시예에 따른 메디안 필터링 장치는 상기 기 설정된 값과 가장 가까운 값을 가지는 인덱스의 상기 일부 비트를 입력 받고, 상기 기 설정된 값과 가장 가까운 값을 가지는 인덱스의 최종 일부 비트를 출력할 수 있다.
또한, 일 실시예에 따른 메디안 필터링 장치는 상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력할 수 있다. 또한, 일 실시예에 따른 메디안 필터링 장치는 상기 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력할 수 있다.
또한, 일 실시예에 따른 메디안 필터링 장치는 차분어레이의 각 열마다 합산된 값을 비교하는 과정 중간에, 계산된 결과 값을 파이프 라인 레지스터에 저장할 수 있다.
또한, 일 실시예에 따른 메디안 필터링 장치는 N개의 입력 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 메모리에 저장할 수 있다. 또한, 일 실시예에 따른 메디안 필터링 장치는 계산된 최소 인덱스에 기초하여 상기 저장된 N개의 데이터로부터 메디안 값을 결정할 수 있다.
위에서 설명된 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (16)

  1. N개의 데이터를 입력 받는 입력부;
    상기 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 행에 위치하는 상기 N개의 데이터와 열에 위치하는 상기 N개의 데이터간의 차분 어레이를 계산하는 차분 어레이 계산부;
    상기 차분 어레이의 열들에 대한 합산 값들을 획득하기 위해 상기 차분 어레이의 열들에 대한 성분 값들을 합산하는 합산부; 및
    기 설정된 값보다 크거나 같은 값을 가지는 상기 합산 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산하는 인덱스 계산부
    를 포함하고,
    상기 인덱스는,
    상기 차분 어레이의 열들 중에서의 열 넘버(column number)를 나타내는 메디안 필터링 장치.
  2. 제1항에 있어서,
    상기 기 설정된 값은 (N-1)/2 인 것을 특징으로 하는 메디안 필터링 장치.
  3. 제1항에 있어서,
    상기 N개의 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장하는 메모리부; 및
    상기 계산된 인덱스에 기초하여 상기 저장된 N개의 데이터로부터 메디안 값을 결정하는 메디안 값 결정부
    를 더 포함하는 메디안 필터링 장치.
  4. 제1항에 있어서,
    상기 차분 어레이 계산부는
    상기 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교하는 제1 비교부
    를 포함하는 메디안 필터링 장치.
  5. 제1항에 있어서,
    상기 합산부는
    상기 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트하는 카운터;
    상기 카운트된 값이 상기 기 설정된 값보다 크거나 같은 값을 가지는지 비교하는 제2 비교부; 및
    상기 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력받고, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 상기 카운트된 값을 출력하고, 상기 카운트된 값이 상기 기 설정된 값보다 작으면 상기 임의의 값을 출력하는 제1 다중화부
    를 포함하는 메디안 필터링 장치.
  6. 제5항에 있어서,
    상기 카운터는
    상기 데이터 세트에 포함된 데이터의 개수가 N개인 경우에, N-1개의 비교 데이터 값을 입력으로 하여 비트 단위로 카운트 하는 가산기
    를 포함하는 메디안 필터링 장치.
  7. 제1항에 있어서,
    상기 인덱스 계산부는
    상기 합산된 값이 상기 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 제1 입력 값 및 제2 입력 값으로 하되,
    상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 상기 인덱스의 일부 비트를 출력하는 최소값 결정부; 및
    상기 인덱스의 상기 일부 비트를 입력 받고, 상기 인덱스의 최종 일부 비트를 출력하는 제2 다중화부
    를 포함하는 메디안 필터링 장치.
  8. 제7항에 있어서,
    상기 최소값 결정부는
    상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력하는 제3 비교부; 및
    상기 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력하는 제3 다중화부
    를 포함하는 메디안 필터링 장치.
  9. 제1항에 있어서,
    상기 인덱스 계산부는
    상기 합산된 값을 상기 기 설정된 값과 비교하는 과정 중간에서, 계산된 인덱스들을 저장하는 파이프라인 레지스터
    를 포함하는 메디안 필터링 장치.
  10. N개의 데이터를 입력 받는 단계;
    상기 N개의 데이터를 포함하는 데이터 세트를 형성하고, 상기 데이터 세트에 포함된 상기 N개의 데이터에 기초하여 행에 위치하는 상기 N개의 데이터와 열에 위치하는 상기 N개의 데이터간의 차분 어레이를 계산하는 단계;
    상기 차분 어레이의 열들에 대한 합산 값들을 획득하기 위해 상기 차분 어레이의 열들에 대한 성분 값들을 합산하는 단계; 및
    기 설정된 값보다 크거나 같은 값을 가지는 상기 합산 값들 중에서 가장 작은 값을 가지는 열의 인덱스를 계산하는 단계
    를 포함하고,
    상기 인덱스는,
    상기 차분 어레이의 열들 중에서의 열 넘버(column number)를 나타내는 메디안 필터링 방법.
  11. 제10항에 있어서,
    상기 N개의 데이터 및 상기 N개의 데이터에 대응하는 N개의 인덱스를 저장하는 단계; 및
    상기 계산된 인덱스에 기초하여 상기 저장된 N개의 데이터로부터 메디안 값을 결정하는 단계
    를 더 포함하는 메디안 필터링 방법.
  12. 제10항에 있어서,
    상기 차분 어레이를 계산하는 단계는
    상기 N개의 데이터 중에서 제1 데이터 및 제2 데이터를 선택하고, 상기 제1 데이터가 상기 제2 데이터보다 크거나 같은 값을 가지는지 비교하는 단계
    를 포함하는 메디안 필터링 방법.
  13. 제10항에 있어서,
    상기 합산하는 단계는
    상기 차분 어레이의 각 열마다 영(zero)이 아닌 값을 카운트하는 단계;
    상기 카운트된 값이 상기 기 설정된 값보다 크거나 같은 값을 가지는지 비교하는 단계; 및
    상기 카운트된 값 및 입력 데이터 개수 N보다 큰 임의의 값을 입력받고, 상기 카운트된 값이 상기 기 설정된 값보다 크거나 같으면 상기 카운트된 값을 출력하고, 상기 카운트된 값이 상기 기 설정된 값보다 작으면 상기 임의의 값을 출력하는 단계
    를 포함하는 메디안 필터링 방법.
  14. 제10항에 있어서,
    상기 인덱스를 계산하는 단계는
    상기 합산된 값이 상기 기 설정된 값보다 작은 경우는 N보다 큰 임의의 값을 제1 입력 값 및 제2 입력 값으로 하되,
    상기 제1 입력 값 및 상기 제2 입력 값에 기초하여 최소값 및 상기 인덱스의 일부 비트를 출력하는 단계; 및
    상기 인덱스의 상기 일부 비트를 입력 받고, 상기 인덱스의 최종 일부 비트를 출력하는 단계
    를 포함하는 메디안 필터링 방법.
  15. 제14항에 있어서,
    상기 최소값 및 상기 인덱스의 일부 비트를 출력하는 단계는
    상기 제1 입력 값이 상기 제2 입력 값보다 큰 값을 가지는지 비교하고, 상기 제1 입력 값이 크면 신호 1을, 상기 제1 입력 값이 작거나 같으면 신호 0을 출력하는 단계; 및
    상기 비교결과를 선택신호로 하여 상기 제1 입력 값 또는 상기 제2 입력 값 중 작은 입력 값을 출력하는 단계
    를 포함하는 메디안 필터링 방법.
  16. 제10항에 있어서,
    상기 인덱스를 계산하는 단계는
    상기 합산된 값을 상기 기 설정된 값과 비교하는 과정 중간에서, 계산된 인덱스들을 저장하는 단계
    를 포함하는 메디안 필터링 방법.
KR1020100093586A 2010-09-28 2010-09-28 메디안 필터링 방법 및 장치 KR101704439B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100093586A KR101704439B1 (ko) 2010-09-28 2010-09-28 메디안 필터링 방법 및 장치
US13/067,949 US8903190B2 (en) 2010-09-28 2011-07-08 Median filtering method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100093586A KR101704439B1 (ko) 2010-09-28 2010-09-28 메디안 필터링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20120032132A KR20120032132A (ko) 2012-04-05
KR101704439B1 true KR101704439B1 (ko) 2017-02-09

Family

ID=45870740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100093586A KR101704439B1 (ko) 2010-09-28 2010-09-28 메디안 필터링 방법 및 장치

Country Status (2)

Country Link
US (1) US8903190B2 (ko)
KR (1) KR101704439B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312939A (zh) * 2012-03-14 2013-09-18 富士通株式会社 中值滤波装置和方法
KR101519482B1 (ko) * 2013-12-17 2015-05-12 공주대학교 산학협력단 짧은 임계 경로를 가지는 중간값 탐색 방법과 상기 방법을 수행할 수 있는 장치
KR102281095B1 (ko) 2014-07-07 2021-07-23 엘지디스플레이 주식회사 표시장치
KR102282756B1 (ko) * 2014-11-24 2021-07-29 한국전자통신연구원 가우시안 필터링 장치 및 방법
FR3101719A1 (fr) 2019-10-08 2021-04-09 Safran Electronics & Defense Module de traitement de donnees identifiant un fractile d'un jeu de donnees

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100239369B1 (ko) 1997-03-19 2000-01-15 서평원 중앙값 필터
JP2007179183A (ja) * 2005-12-27 2007-07-12 Fujifilm Corp メディアンフィルタおよびメディアンフィルタプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2986885B2 (ja) 1990-10-03 1999-12-06 財団法人川村理化学研究所 電解フッ素化方法およびその装置
JPH0573608A (ja) * 1991-09-12 1993-03-26 Fujitsu Ltd 中間値検出フイルタ
JPH05233804A (ja) 1992-02-24 1993-09-10 Matsushita Electric Ind Co Ltd メディアンフィルタ
KR0129786B1 (ko) * 1993-06-30 1998-10-01 김영욱 중간값 필터
US5708595A (en) 1995-03-03 1998-01-13 Motorola Inc. Efficient median filter and method therefor
US6078213A (en) 1997-11-07 2000-06-20 Intel Corporation Method and hardware apparatus for implementing an N-sample median filter
US6760737B2 (en) * 2000-03-27 2004-07-06 Lucent Technologies Inc. Spatial median filter
US6787761B2 (en) * 2000-11-27 2004-09-07 Surromed, Inc. Median filter for liquid chromatography-mass spectrometry data
JP4143288B2 (ja) * 2001-11-19 2008-09-03 キヤノン株式会社 メディアンフィルタ処理装置
US7498961B2 (en) * 2004-09-14 2009-03-03 Hewlett-Packard Development Company, L.P. Context identification using a denoised signal
CN101316321B (zh) * 2007-05-30 2010-04-07 展讯通信(上海)有限公司 一种基于中值滤波器的图像噪声去除方法和装置
WO2010093709A2 (en) * 2009-02-10 2010-08-19 Anchor Bay Technologies, Inc. Block noise detection and filtering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100239369B1 (ko) 1997-03-19 2000-01-15 서평원 중앙값 필터
JP2007179183A (ja) * 2005-12-27 2007-07-12 Fujifilm Corp メディアンフィルタおよびメディアンフィルタプログラム

Also Published As

Publication number Publication date
US8903190B2 (en) 2014-12-02
US20120076432A1 (en) 2012-03-29
KR20120032132A (ko) 2012-04-05

Similar Documents

Publication Publication Date Title
KR101704439B1 (ko) 메디안 필터링 방법 및 장치
US11379556B2 (en) Apparatus and method for matrix operations
CN108961170B (zh) 图像处理方法、装置和系统
US20100142828A1 (en) Image matching apparatus and method
CN110109646B (zh) 数据处理方法、装置和乘加器及存储介质
CN111932437B (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
US6900747B2 (en) Method of compressing lookup table for reducing memory, non-linear function generating apparatus having lookup table compressed using the method, and non-linear function generating method
US9785434B2 (en) Fast minimum and maximum searching instruction
Venkatachalam et al. Approximate sum-of-products designs based on distributed arithmetic
JP4513034B2 (ja) 画像信号処理装置、画像信号処理方法、およびプログラム
US20060171602A1 (en) Method and system for using a look-up table for a linear operation in image processing
US10963746B1 (en) Average pooling in a neural network
US20060262859A1 (en) Data encoding apparatus, data decoding apparatus, data encoding method, data decoding method, and recording medium recorded with program
US20170010862A1 (en) Apparatus and method for performing division
JP4621944B2 (ja) 画像フィルタ装置、方法およびコンピュータプログラム
CN112765540A (zh) 数据处理方法、装置及相关产品
JP6472884B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20110099215A1 (en) System and method to identify a median value
EP1783602A2 (en) Apparatus and method to find the maximum or minimum of a set of numbers
KR20220158768A (ko) 기계 학습 가속을 위한 전력 감소
CN117971160B (zh) 一种包括错误预测的乘法器
CN116227507B (zh) 一种用于进行双线性插值处理的运算装置
CN116149600B (zh) 多常数乘法器的逻辑电路设置方法、装置、设备及介质
CN111260069B (zh) 数据处理装置、方法、芯片及电子设备
US8249293B2 (en) Method, apparatus and computer-readable recording medium for obtaining information

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
GRNT Written decision to grant