Full-image guided filter는 커널윈도우 영역만 필터링에 반영되는 기존의 커널 윈도우 기반 가이드 필터와 달리 가중치 전파 도식과 양방향 모델이 적용되어 영상의 모든 픽셀이 필터링에 반영된다. 이로써 가이드 필터의 경계 보존과 평활화 등의 가이드 이미지 필터의 특성을 유지하면서도 계산 복잡도를 개선할 수 있다. 본 논문에서는 full-image guided filter의 더 빠른 처리가 필요한 스테레오 비전 및 각종 실시간 시스템 분야에 적용될 수 있도록 효율적인 하드웨어 구조를 제안하였다. 필터링 프로세스에서 발생하는 각종 데이터의 종속성 분석과 영상의 PSNR 분석, 데이터 빈도 분석 등을 통하여 적합한 하드웨어 구조를 제안하였다. 또한 양방향 모델이 적용된 가중치 연산 모듈의 휴식 구간이 최소화되도록 효율적인 스케줄링을 하였고 실시간 처리가 가능하게 하였다. 제안한 하드웨어 구조는 동부하이텍 0.11um 표준셀 라이브러리로 합성하였을 경우 최대 동작주파수 214MHz(384*288 영상: 965 fps)와 76K(내부 메모리 제외) 게이트의 하드웨어 복잡도를 나타냈다.
Full-image guided filter는 커널 윈도우 영역만 필터링에 반영되는 기존의 커널 윈도우 기반 가이드 필터와 달리 가중치 전파 도식과 양방향 모델이 적용되어 영상의 모든 픽셀이 필터링에 반영된다. 이로써 가이드 필터의 경계 보존과 평활화 등의 가이드 이미지 필터의 특성을 유지하면서도 계산 복잡도를 개선할 수 있다. 본 논문에서는 full-image guided filter의 더 빠른 처리가 필요한 스테레오 비전 및 각종 실시간 시스템 분야에 적용될 수 있도록 효율적인 하드웨어 구조를 제안하였다. 필터링 프로세스에서 발생하는 각종 데이터의 종속성 분석과 영상의 PSNR 분석, 데이터 빈도 분석 등을 통하여 적합한 하드웨어 구조를 제안하였다. 또한 양방향 모델이 적용된 가중치 연산 모듈의 휴식 구간이 최소화되도록 효율적인 스케줄링을 하였고 실시간 처리가 가능하게 하였다. 제안한 하드웨어 구조는 동부하이텍 0.11um 표준셀 라이브러리로 합성하였을 경우 최대 동작주파수 214MHz(384*288 영상: 965 fps)와 76K(내부 메모리 제외) 게이트의 하드웨어 복잡도를 나타냈다.
Full-image guided filter reflects all pixels of image in filtering by using weight propagation and two-pass model, whereas the existing guide filter is processed based on the kernel window. Therefore the computational complexity can be improved while maintaining characteristics of guide filter, such...
Full-image guided filter reflects all pixels of image in filtering by using weight propagation and two-pass model, whereas the existing guide filter is processed based on the kernel window. Therefore the computational complexity can be improved while maintaining characteristics of guide filter, such as edge-preserving, smoothing, and so on. In this paper, we propose an efficient VLSI architecture for the full-image guided filter by analyzing the data dependency, the data frequency and the PSNR analysis of the image in order to achieve enough speed for various applications such as stereo vision, real-time systems, etc. In addition, the proposed efficient scheduling enables the realtime process by minimizing the idle period in weight computation. The proposed VLSI architecture shows 214MHz of maximum operating frequency (image size: 384*288, 965 fps) and 76K of gates (internal memory excluded).
Full-image guided filter reflects all pixels of image in filtering by using weight propagation and two-pass model, whereas the existing guide filter is processed based on the kernel window. Therefore the computational complexity can be improved while maintaining characteristics of guide filter, such as edge-preserving, smoothing, and so on. In this paper, we propose an efficient VLSI architecture for the full-image guided filter by analyzing the data dependency, the data frequency and the PSNR analysis of the image in order to achieve enough speed for various applications such as stereo vision, real-time systems, etc. In addition, the proposed efficient scheduling enables the realtime process by minimizing the idle period in weight computation. The proposed VLSI architecture shows 214MHz of maximum operating frequency (image size: 384*288, 965 fps) and 76K of gates (internal memory excluded).
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
양방향 모델을 적용한 full-image guided filter는 가중치가 분산되어 연산되므로 불필요한 중복 연산을 피할 수 있고 단순한 계산 요소들의 조합으로 필터링 할 수 있다. 본 논문에서는 이러한 필터를 더욱 빠른 처리가 필요한 스테레오 비전 및 실시간 응용 시스템 분야에서 적용 가능한 하드웨어 구조를 제안한다.
제안 방법
본 논문에서는 양방향(two-pass) 모델을 적용한 full-image guided filter[10] 알고리즘을 효율적인 VLSI 하드웨어 구조로 설계하였다. 필터링 과정에서 데이터 종속성을 분석하여 시간적으로 가중치 연산을 수평과 수직 연산 단계로 구분하였으며, 각 단계의 연산은 동일한 모듈에서 순차적으로 수행된다.
알고리즘을 효율적인 VLSI 하드웨어 구조로 설계하였다. 필터링 과정에서 데이터 종속성을 분석하여 시간적으로 가중치 연산을 수평과 수직 연산 단계로 구분하였으며, 각 단계의 연산은 동일한 모듈에서 순차적으로 수행된다. 또한 제안된 시스템은 입력 신호들을 제어하는 제어 모듈과 가중치 연산을 수행하는 가중치 연산 모듈, 수평 연산의 결과를 수직 연산의 입력으로 사용 가능하게 저장하는 행렬변환 메모리(transpose memory), 정규화 및 나눗셈기로 구성되어 있다.
필터링 과정에서 데이터 종속성을 분석하여 시간적으로 가중치 연산을 수평과 수직 연산 단계로 구분하였으며, 각 단계의 연산은 동일한 모듈에서 순차적으로 수행된다. 또한 제안된 시스템은 입력 신호들을 제어하는 제어 모듈과 가중치 연산을 수행하는 가중치 연산 모듈, 수평 연산의 결과를 수직 연산의 입력으로 사용 가능하게 저장하는 행렬변환 메모리(transpose memory), 정규화 및 나눗셈기로 구성되어 있다. 가중치 연산 모듈은 동시에 양방향 연산을 수행하기 위해 병렬로 구성한 순방향 모듈과 역방향 모듈을 포함한다.
가중치 연산 모듈은 동시에 양방향 연산을 수행하기 위해 병렬로 구성한 순방향 모듈과 역방향 모듈을 포함한다. 해당 모듈에서는 처리과정에서의 휴식구간을 최소화 하고 중간 데이터가 저장되는 임시 저장 공간을 최소화 하도록 스케줄링 하여 구조를 설계하였다. 또한 필터링 과정 중 지수함수 연산 모듈은 빈도수 분석과 PSNR 분석을 통해 65단계의 LUT(look-up table)로 설계하여 지수함수의 근사화로 인한 정확도와 하드웨어 요구량을 개선하였다.
해당 모듈에서는 처리과정에서의 휴식구간을 최소화 하고 중간 데이터가 저장되는 임시 저장 공간을 최소화 하도록 스케줄링 하여 구조를 설계하였다. 또한 필터링 과정 중 지수함수 연산 모듈은 빈도수 분석과 PSNR 분석을 통해 65단계의 LUT(look-up table)로 설계하여 지수함수의 근사화로 인한 정확도와 하드웨어 요구량을 개선하였다.
본 논문에서 적용한 full-image guided filter는 입력 영상의 모든 요소가 가중치 전파에 의해 분산되어 연산된다. 이로서 필터링의 계산 복잡도를 획기적으로 낮출 수 있다[10].
그림 3은 양방향 모델을 적용한 full-image guided filter의 전체적인 하드웨어 구조를 나타낸다. 제안된 시스템은 가중치를 계산하는 가중치 연산 모듈(weight calculation)과 중간 가중치 결과를 저장하는 메모리(transpose memory), 각 모듈의 입력신호를 제어하는 모듈(control module) 그리고 정규화 모듈과 최종 필터링 값을 계산하는 나눗셈기(DIV)로 구성되어 있다.
따라서 본 논문에서는 #, #을 순차적으로 연산하였으며 이로 인한 연산의 비효율성을 개선하기 위하여 파이프라인 스케줄링을 적용하였다.
스케줄링에 대한 설명은 뒤에 다시 언급하겠다. 가중치 연산 모듈에서의 비트 폭은 PSNR 분석을 통해 순방향(역방향) 모듈에서 24비트로 설정하였다. 가중치의 특성상 누적 연산이 반복되어 값이 커지기 때문에 연산이 수행될 때 결과 값들의 최대치가 오버플로우 되지 않도록 정수비트 폭을 설정하였다.
가중치 연산 모듈에서의 비트 폭은 PSNR 분석을 통해 순방향(역방향) 모듈에서 24비트로 설정하였다. 가중치의 특성상 누적 연산이 반복되어 값이 커지기 때문에 연산이 수행될 때 결과 값들의 최대치가 오버플로우 되지 않도록 정수비트 폭을 설정하였다. 그림 4(b)는 분산된 가중치를 누적하는 순방향(역방향) 모듈의 구조이다.
지수함수의 입력에 대한 빈도 분석결과 가능한 입력 값의 범위는 0 ~ 255 이지만 대부분 작은 값에 몰려있다. 따라서 본 본문에서는 빈도수가 작은 구간은 단일 값으로 할당하여 지수함수를 위한 LUT(look-up table)의 단계를 줄여 구조를 단순화하였다. 그림 5에서 LUT 단계와 PSNR 변화를 통해 빈도수가 65단계 이상일 경우엔 PSNR이 크게 감소하지 않음을 확인 할 수 있다.
그림 5에서 LUT 단계와 PSNR 변화를 통해 빈도수가 65단계 이상일 경우엔 PSNR이 크게 감소하지 않음을 확인 할 수 있다. 이를 바탕으로 LUT를 65단계로 구성하였다. LUT의 각 요소에 대한 비트 폭은 PSNR 분석을 통해 목표로 하는 45dB 이상의 품질을 유지하도록 9비트로 설정하였다.
이를 바탕으로 LUT를 65단계로 구성하였다. LUT의 각 요소에 대한 비트 폭은 PSNR 분석을 통해 목표로 하는 45dB 이상의 품질을 유지하도록 9비트로 설정하였다. 지수함수의 출력 데이터는 이미 연산되어 레지스터에 저장된 분산 가중치 #와 곱해져 현재 위치의 분산 가중치 #로 연산된다.
이 때, 레지스터에 저장되는 데이터는 분산 가중치가 누적되기 때문에 오버플로우를 고려해 23비트로 선정하였다. 곱셈 연산을 위해 23✕9의 어레이 곱셈기(unsigned array multiplier)[14]를 설계하였다.
그래서 단순하게는 행(열)크기×2 의 길이를 갖는 버퍼를 가지고 있어야 하며 이는 비효율적이다. 그러므로 본 논문에서는 버퍼의 저장 위치를 고정하지 않고 버퍼에서 데이터의 출력지점에 순방향 모듈의 출력인 새로운 데이터를 저장하도록 구성하였다.
제안하는 full-image guided filter는 VerilogHDL로 설계하고 Active-HDL을 통해 검증하였다. 식(3)에서 필터링 정도를 조절하는 파라미터인 α는 시뮬레이션을 통하여 가이드 필터의 특성 중 경계보존 평활화의 특성이 잘 들어나도록 16으로 설정하였다.
대상 데이터
지수함수의 출력 데이터는 이미 연산되어 레지스터에 저장된 분산 가중치 #와 곱해져 현재 위치의 분산 가중치 #로 연산된다. 이 때, 레지스터에 저장되는 데이터는 분산 가중치가 누적되기 때문에 오버플로우를 고려해 23비트로 선정하였다. 곱셈 연산을 위해 23✕9의 어레이 곱셈기(unsigned array multiplier)[14]를 설계하였다.
이론/모형
그리고 나눗셈기(DIV)에서는 가중치 연산 모듈의 값과 정규화 상수 모듈의 값을 나누어 줌으로써 필터링 결과를 0–255의 범위로 제한한다. 본 논문에서는 비복원 어레이 나눗셈기(non-restoring array divider) 구조를 적용하였다[14].
성능/효과
식(3)에서 필터링 정도를 조절하는 파라미터인 α는 시뮬레이션을 통하여 가이드 필터의 특성 중 경계보존 평활화의 특성이 잘 들어나도록 16으로 설정하였다. 이를 바탕으로 설계한 VLSI 구조는 데이터의 비트할당과 비선형 함수의 근사화로 인하여 알고리즘으로 구현된 full-image guided filter의 결과와 PSNR 분석을 하였을 경우 약 45.6dB의 차이를 보였다. 제안한 구조를 동부 하이텍 110nm 표준셀 라이브러리를 사용하여 Synopsys Design Compiler로 합성하였을 때 표 2와 같은 합성 결과를 보였다.
제안한 구조를 동부 하이텍 110nm 표준셀 라이브러리를 사용하여 Synopsys Design Compiler로 합성하였을 때 표 2와 같은 합성 결과를 보였다. 제안하는 구조에서는 384 ✕288 크기의 영상에 대하여 214MHz 동작 주파수와 초당 965 프레임의 월등한 동작 속도를 보였으며 메모리를 제외한 전체 시스템은 76K의 게이트 수를 나타내었다. 비슷한 크기인 320✕240의 영상에 대해 양방향 필터의 VLSI 구조를 설계한 Han[11]의 구조와 비교하면 초당 프레임 수, 동작 주파수 등 모든 면에서 우수한 성능을 보임을 확인 할 수 있었다.
제안하는 구조에서는 384 ✕288 크기의 영상에 대하여 214MHz 동작 주파수와 초당 965 프레임의 월등한 동작 속도를 보였으며 메모리를 제외한 전체 시스템은 76K의 게이트 수를 나타내었다. 비슷한 크기인 320✕240의 영상에 대해 양방향 필터의 VLSI 구조를 설계한 Han[11]의 구조와 비교하면 초당 프레임 수, 동작 주파수 등 모든 면에서 우수한 성능을 보임을 확인 할 수 있었다. 제안한 구조에서 초당 처리 픽셀 수를 나타내는 처리율(throughput)은 106M(pixels/s)로서 비교 연구 결과와 비교하였을 때 우수한 성능을 보였다.
비슷한 크기인 320✕240의 영상에 대해 양방향 필터의 VLSI 구조를 설계한 Han[11]의 구조와 비교하면 초당 프레임 수, 동작 주파수 등 모든 면에서 우수한 성능을 보임을 확인 할 수 있었다. 제안한 구조에서 초당 처리 픽셀 수를 나타내는 처리율(throughput)은 106M(pixels/s)로서 비교 연구 결과와 비교하였을 때 우수한 성능을 보였다. 동일한 비교를 위하여 제안한 구조의 동작 주파수(214MHz)로 동일한 입력 영상 크기(1920✕1080)에 대하여 필터링을 수행한다고 가정하였을 때 표 2에서 우측 괄호로 나타낸 결과와 같이 약 51fps로 속도 면에서 우수한 결과를 나타내었다.
동일한 비교를 위하여 제안한 구조의 동작 주파수(214MHz)로 동일한 입력 영상 크기(1920✕1080)에 대하여 필터링을 수행한다고 가정하였을 때 표 2에서 우측 괄호로 나타낸 결과와 같이 약 51fps로 속도 면에서 우수한 결과를 나타내었다.
본 논문에서는 양방향 모델을 적용한 full-image guided filter의 효율적인 VLSI 구조를 제안하였고 데이터 종속성 분석을 통한 가중치 연산 모듈의 재활용과 빈도수 분석을 통해 제안하는 지수함수의 LUT 구조, 가중치 연산 모듈의 휴식을 최소화하도록 하는 스케줄링 등을 적용한 구조는 실시간 처리를 가능하게 하는 빠른 처리 속도를 보여준다. 제안하는 구조를 동 부하이텍 110nm 표준셀 라이브러리를 사용하여 합성하였을 때, 384✕288 크기의 영상에 대하여 214MHz 동작 주파수와 초당 965 프레임의 동작 속도를 보였으며 메모리를 제외한 전체 시스템은 76K개의 게이트 수를 나타내었다.
본 논문에서는 양방향 모델을 적용한 full-image guided filter의 효율적인 VLSI 구조를 제안하였고 데이터 종속성 분석을 통한 가중치 연산 모듈의 재활용과 빈도수 분석을 통해 제안하는 지수함수의 LUT 구조, 가중치 연산 모듈의 휴식을 최소화하도록 하는 스케줄링 등을 적용한 구조는 실시간 처리를 가능하게 하는 빠른 처리 속도를 보여준다. 제안하는 구조를 동 부하이텍 110nm 표준셀 라이브러리를 사용하여 합성하였을 때, 384✕288 크기의 영상에 대하여 214MHz 동작 주파수와 초당 965 프레임의 동작 속도를 보였으며 메모리를 제외한 전체 시스템은 76K개의 게이트 수를 나타내었다.
질의응답
핵심어
질문
논문에서 추출한 답변
이미지 필터링의 역할은?
이미지 필터링은 컴퓨터 비전과 영상처리 등의 분야에서 영상의 복원, 흐림 및 선명 효과, 경계 감지, 특징 추출 등 다양한 역할을 한다. 최근에는 우수한 경계보존 특성을 갖는 양방향 필터(bilateral filter), 가이드 이미지 필터(guided image filter) 등이 각광받고 있다.
Full-image guided filter의 특징은?
Full-image guided filter는 커널 윈도우 영역만 필터링에 반영되는 기존의 커널 윈도우 기반 가이드 필터와 달리 가중치 전파 도식과 양방향 모델이 적용되어 영상의 모든 픽셀이 필터링에 반영된다. 이로써 가이드 필터의 경계 보존과 평활화 등의 가이드 이미지 필터의 특성을 유지하면서도 계산 복잡도를 개선할 수 있다.
양방향 필터의 디테일 변질과 HDR 압축에서 화소 상 결함을 해결하기 위해 제안된 필터는?
이는 해당 부분에서 필터링 가중치가 부적절하게 반영되는 물체 간 경계에서 주로 발생한다. 이러한 문제점을 해결하기 위해 제안된 필터가 가이드 이미지 필터다. 가이드 이미지 필터는 필터링을 수행할 때 가이드 이미지가 반영되어 물체의 경계 부근에서의 성능이 양방향 필터에 비하여 더 우수하다.
참고문헌 (14)
K. He, J. Sun, and X. Tang, "Guided image filtering," IEEE Trans. Pattern Anal. and Machine Intell., vol. 35, no. 6, pp. 1397-1409, 2013.
A. Hosni, M. Bleyer, C. Rhemann, M. Gelautz, and C. Rother, "Real-time local stereo matching using guided image filtering," IEEE Int. Conf. Multimedia and Expo, pp. 1-6, 2011.
J. Wasza, S. Bauer, and J. Hornegger, "Real-time preprocessing for dense 3D range imaging on the GPU: Defect interpolation, bilateral temporal averaging and guided filtering," IEEE Workshop on Consumer Depth Cameras for Computer Vision, pp. 1221-1227, 2011.
Z. Farbman, R. Fattal, D. Lischinski, and R. Szeliski, "Edge-preserving decompositions for multiscale tone and detail manipulation," ACM Trans. Graph., vol. 27, no. 3, pp. 67:1-67:10, 2008.
F. Durand and J. Dorsey, "Fast bilateral filtering for the display of high dynamic-range images," ACM Trans. Graph., vol. 21, no. 3, pp. 257-266, 2002.
K. He, C. Rhemann, C. Rother, X. Tang, and J. Sun, "A global sampling method for alpha matting," IEEE Conf. CVPR, pp. 2049-2056, 2011.
A. Chia, S. Zhuo, R. K. Gupta, Y. Tai, S. Cho, P. Tan, and S. Lin, "Semantic colorization with internet images," ACM Trans. Graph., vol. 30, no. 6, pp. 156:1-156:8, 2011.
J. Zhang, L. Li, Y. Zhang, G. Yang, X. Cao, and J. Sun, "Video dehazing with spatial and temporal coherence," Vis. Comput., vol. 27, pp. 749-757, 2011.
K. He and J. Sun, Fast guided filter, Tech. Report, arXiv:1505.00996v1, 2015.
Q. Yang, D. Li, L. Wang, and M. Zhang, "Full-image guided image filtering for fast stereo matching," IEEE Sign. Process. Lett., vol. 20, no. 3, pp. 237-240, 2013.
C. Kao, J. Lai, and S. Chien, "VLSI architecture design of guided filter for 30 frames/s full-HD video," IEEE Trans. CAS for Video Technol., vol. 24, No. 3, pp. 513-524, 2014.
Y. Tseng, P. Hsu, and T. Chang, "A 124 Mpixels/s VLSI design for histogram-based joint bilateral filtering," IEEE Trans. Image Process., vol. 20, no. 11, pp. 3231-3241, 2011.
S. Han, "An architecture for high-throughput and improved-quality stereo vision processor," M.S. Thesis, Dept. Electr. Eng., Univ. of Maryland, College Park, MD, USA, 2010.
K. Hwang, Computer arithmetic: principles, architecture, and design, Wiley, 1979.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.