KR101140953B1 - 영상 왜곡 보정 장치 및 방법 - Google Patents

영상 왜곡 보정 장치 및 방법 Download PDF

Info

Publication number
KR101140953B1
KR101140953B1 KR1020100084688A KR20100084688A KR101140953B1 KR 101140953 B1 KR101140953 B1 KR 101140953B1 KR 1020100084688 A KR1020100084688 A KR 1020100084688A KR 20100084688 A KR20100084688 A KR 20100084688A KR 101140953 B1 KR101140953 B1 KR 101140953B1
Authority
KR
South Korea
Prior art keywords
image
coordinates
output image
output
distortion
Prior art date
Application number
KR1020100084688A
Other languages
English (en)
Other versions
KR20120020821A (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 KR1020100084688A priority Critical patent/KR101140953B1/ko
Publication of KR20120020821A publication Critical patent/KR20120020821A/ko
Application granted granted Critical
Publication of KR101140953B1 publication Critical patent/KR101140953B1/ko

Links

Images

Classifications

    • G06T5/80
    • 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
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration

Landscapes

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

Abstract

출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산하는 출력 카운터(output counter); 상기 출력 영상의 좌표를 이용하여 상기 출력 영상의 픽셀 정보가 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 사분면 추정부(quadrant estimation); 상기 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 상기 사분면에 대한 좌표 변환 정보를 저장하는 룩업 테이블(Look-Up Table); 상기 출력 영상에 대한 왜곡을 보정하기 위한 상기 입력 영상의 좌표에 해당하는 픽셀 값을 저장하는 프레임 메모리; 및 상기 입력 영상의 좌표에 해당하는 픽셀 값과 상기 룩업 테이블에서 출력되는 계수 값을 이용하여 상기 출력 영상의 픽셀 값을 산출함으로써 상기 출력 영상의 왜곡을 보정하는 보간부(interpolator)를 포함하는 영상 왜곡 보정 장치가 제공된다.

Description

영상 왜곡 보정 장치 및 방법{METHOD AND APPARATUS FOR CORRECTING DISTORTED IMAGE}
아래의 실시예들은 어안 영상 왜곡 보정 장치 및 방법에 관한 것이다.
최근 도시 시설물의 안전과 범죄 모니터링에 대한 수요뿐만 아니라 후방 카메라 등의 차량용 영상 장치에 대한 수요가 급격히 증가하고 있으나, 산업 장비용 CCTV(closed-circuit television)의 경우, 대부분이 고가이므로 많은 수의 사용은 사용자와 개발자 입장에서 모두 부담으로 작용하고 있다. 따라서, 소량의 카메라로 넓은 지역을 모니터링 할 수 있는 기능을 갖춘 CCTV에 대한 요구가 증대되고 있다.
이런 요구를 충족하기 위하여 광각 렌즈가 많이 사용되고 있으나, 광각 렌즈의 경우 일반적으로 어안 렌즈의 왜곡을 광학적으로 보정하기 위하여 여러 단의 렌즈를 사용하므로, 단가가 비싸진다는 단점이 있다.
반면, 저가형 어안 렌즈를 사용하여 디지털 시스템 상에서 왜곡을 보정하는 경우, 어안 렌즈의 넓은 화각을 얻을 수 있을 뿐만 아니라, 단가 또한 줄일 수 있다. 또한, 어안 렌즈의 경우, 넓은 화각을 이용하여 파노라마 영상, 탑 뷰(top view) 영상 등의 다양한 콘텐츠 생성이 용이하다. 따라서, 저렴한 가격으로 다양한 분야에서 사용될 수 있는 어안 렌즈의 디지털 왜곡을 보정할 수 있는 방법 및 장치가 필요하다.
본 발명의 일 실시예는 어안 영상에 대한 왜곡을 보정하는데 필요한 복잡한 칼리브레이션 과정을 줄일 수 있는 영상 왜곡 보정 장치 및 방법을 제공한다.
또한, 본 발명의 일 실시예는 저전력화 및 소형화를 달성할 수 있는 메모리부 및 스케일러를 포함하는 영상 왜곡 보정 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 영상 왜곡 보정 장치는 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산하는 출력 카운터(output counter); 상기 출력 영상의 좌표를 이용하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 사분면 추정부(quadrant estimation); 상기 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 상기 사분면에 대한 좌표 변환 정보를 저장하는 룩업 테이블(Look-Up Table); 상기 출력 영상에 대한 왜곡을 보정하기 위한 상기 입력 영상의 좌표에 해당하는 픽셀 값을 저장하는 프레임 메모리; 및 상기 입력 영상의 좌표에 해당하는 픽셀 값과 상기 룩업 테이블에서 출력되는 계수 값을 이용하여 상기 출력 영상의 픽셀 값을 산출함으로써 상기 출력 영상의 왜곡을 보정하는 보간부(interpolator)를 포함한다.
상기 사분면 정보 및 상기 출력 영상의 좌표를 이용하여 상기 룩업 테이블의 주소를 생성하는 주소 생성부(address generator)를 더 포함하고, 상기 주소 생성부는 상기 사분면 정보에 따라 상기 출력 영상의 좌표의 원점을 상기 출력 영상의 정중앙으로 이동시켜 상기 룩업 테이블을 위한 주소를 생성할 수 있다.
상기 입력 영상의 좌표와 상기 사분면 정보를 이용하여 상기 프레임 메모리의 주소를 생성하는 조정 생성부(coordination generator)를 더 포함할 수 있다.
상기 조정 생성부는 상기 룩업 테이블로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하여 상기 프레임 메모리의 주소를 생성할 수 있다.
상기 출력 카운터(output counter)는 상기 출력 영상의 수직 방향 픽셀을 카운트하는 제1 카운터; 및 상기 출력 영상의 수평 방향 픽셀을 카운트하는 제2 카운터를 더 포함하고, 상기 출력 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일로부터 수신한 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 카운트를 각각 수행하여 상기 출력 영상의 수직 방향 좌표 및 상기 수평 방향 좌표를 계산할 수 있다.
상기 사분면 추정부는 상기 출력 영상의 중심점과 상기 출력 영상의 좌표와의 비교 결과에 기초하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성할 수 있다.
상기 룩업 테이블은 상기 출력 영상의 중심점을 상기 출력 영상의 정중앙으로 옮기고, 상기 정중앙을 중심점으로 한 상기 사분면 중 어느 한 분면에 대한 좌표 변환 정보를 저장할 수 있다.
상기 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일(register file)로부터 타이밍과 관련된 정보를 입력 받아 동기화 신호를 생성하는 동기화 신호 생성부(sync generator)를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 영상 왜곡 보정 방법은 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산하는 단계; 상기 출력 영상의 좌표를 이용하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 단계; 상기 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 메모리의 룩업 테이블(Look-Up Table)에 저장된 상기 사분면에 대한 좌표 변환 정보를 호출하는 단계; 상기 출력 영상에 대한 왜곡을 보정하기 위해 상기 좌표 변환 정보를 사용하여 프레임 메모리로부터 상기 입력 영상의 좌표에 해당하는 픽셀 값을 호출하는 단계; 및 상기 입력 영상의 좌표에 해당하는 픽셀 값과 상기 룩업 테이블에서 출력되는 계수 값을 이용하여 상기 출력 영상의 픽셀 값을 산출함으로써 상기 출력 영상의 왜곡을 보정하는 단계를 포함한다.
상기 룩업 테이블로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하는 단계; 및 상기 중심점이 조정된 입력 영상의 좌표와 상기 사분면 정보를 이용하여 상기 프레임 메모리의 주소를 생성하는 단계를 더 포함할 수 있다.
상기 출력 영상의 좌표를 계산하는 단계는 상기 출력 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일로부터 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 정보를 수신하는 단계; 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 정보에 기초하여 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀 각각에 대한 카운트를 수행하는 단계; 및 상기 카운트 결과를 이용하여 상기 출력 영상의 수직 방향 좌표 및 상기 수평 방향 좌표를 각각 계산하는 단계를 포함할 수 있다.
상기 사분면 정보를 생성하는 단계는 상기 출력 영상의 중심점과 상기 출력 영상의 좌표를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 왜곡 보정 장치는 렌즈에 의해 왜곡이 발생한 왜곡 영상 평면의 적어도 하나의 픽셀의 좌표를 상기 왜곡이 발생하기 전의 보정 영상 평면에 대응되는 좌표로 변환하는 역방향 맵핑을 수행하는 단계; 상기 보정 영상 평면의 좌표에 인접한 적어도 하나의 픽셀들에 대하여 상기 보정 영상으로부터 상기 왜곡 영상으로의 순방향 맵핑을 수행하는 단계; 상기 순방향 맵핑을 수행한 상기 적어도 하나의 픽셀들에 대한 상기 보정 영상 평면에서의 좌표를 계산하는 단계; 및 상기 보정 영상 평면에서 보정을 수행할 위치의 좌표와 상기 적어도 하나의 픽셀들에 대한 상기 보정 영상 평면에서의 좌표를 이용하여 상기 왜곡 영상 평면에서의 왜곡을 보정하는 단계를 포함한다.
상기 역방향 맵핑을 수행하는 단계는 상기 렌즈의 초점 거리와 상기 렌즈의 중심점으로부터 왜곡이 없을 경우에 맺히는 상의 위치까지의 거리를 이용하여 역방향 맵핑을 수행하는 단계일 수 있다.
상기 보정 영상 평면에서의 왜곡 보정을 보정하는 단계는 상기 4개의 픽셀들에 대한 상기 보정 영상 평면에서의 거리 정보 및 픽셀 값 정보를 이용하여 상기 보정 영상 평면에서의 왜곡 보정을 수행하는 단계일 수 있다.
본 발명의 일 실시예에 따르면, 최적화된 룩업 테이블을 이용하여 보정 영상 위에서 정확한 보간을 수행함으로써 어안 영상(fisheyed image)에 대한 디지털 왜곡을 간단히 보정할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 3차 보간 수식 및 최적화된 룩업 테이블을 이용하여 스케일러를 구성함으로써 하드웨어 자원을 줄일 수 있으며, 메모리에 대한 접근 횟수를 줄여, 저전력화를 달성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 왜곡 보정 전후의 좌표 맵핑을 위한 계산을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 지향성 양선형 보간의 방향 분류를 나타낸 도면이다.
도 3은 보간 영상 위에서 보간 수행을 하기 위한 좌표 맵핑 과정을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 보정 영상 위에서의 양선형 보간 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 영상 왜곡 보정 장치의 하드웨어 구조를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 동기화 신호 감지부(sync detector)를 나타낸 블록도이다.
도 7은 본 발명의 일 실시예에 따른 출력 카운터(output counter)를 나타낸 블록도이다.
도 8은 도 7의 출력 카운터를 구성하는 수직 카운터(제1 카운터) 및 수평 카운터(제2 카운터)를 나타낸 블록도이다.
도 9는 본 발명의 일 실시예에 따른 사분면 추정부(quadrant estimation)를 나타낸 블록도이다.
도 10은 본 발명의 일 실시예에 따른 주소 생성부(address generator)를 나타낸 블록도이다.
도 11은 본 발명의 일 실시예에 따른 조정 생성부(coordination generator)를 나타낸 블록도이다.
도 12는 본 발명의 일 실시예에 따른 룩업 테이블을 이용하는 스케일러의 하드웨어 구조를 나타낸 도면이다.
도 13은 본 발명의 일 실시예에 따른 소형화 및 저전력화를 구현하기 위한 메모리부의 구조를 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 곱셈기(multiplier)의 수를 줄인 보간부(interpolator)의 구조를 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 영상 왜곡 보정 방법을 나타낸 플로우 차트이다.
도 16는 본 발명의 일 실시예에 따른 영상 왜곡 보정 방법을 나타낸 플로우 차트이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 일실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
어안 영상의 왜곡을 보정하기 위한 방법에는 크게 두 가지 접근 방법이 있다. 첫 번째는 비 측량적(non-metric) 접근 방법이며, 두 번째는 측량적(metric) 접근 방법이다. 비 측량적인 방법은 렌즈의 형태를 구 또는 타원 형태로 가정하고 기하학적인 방법을 통해, 왜곡에 의한 좌표 변환을 수학적으로 모델링 하는 방법이다. 비 측량적 방법은 별도의 칼리브레이션(calibration) 과정이 필요치 않은 간단한 방법이지만, 렌즈를 일정한 형태로 만들어 내는 것은 대단히 어렵다.
어안 렌즈의 경우, 렌즈의 중심점에 가까운 곳에 맺힌 상은 해상도가 높은 부분으로 별 문제가 되지 않지만, 중심점에서 먼 곳에 맺힌 상일수록 해상도가 떨어지기 때문에, 렌즈로 인한 왜곡의 영향이 커지게 된다.
측량적 접근 방법은 이를 보완하기 위한 방법으로, 일반적으로 비 측량적 접근 방법에서 왜곡 보정을 위해 사용하는 것 보다 더 많은 파라메터(parameter)를 사용한다. 측량적 접근 방법에서 사용되는 추가적인 파라메터들은 특이점(feature point)이 찍혀 있는 영상을 촬영한 후, 실제 특이점 간의 거리와 획득한 영상에서의 특이점들의 거리 정보를 이용하여 수학적으로 계산해 낼 수 있다.
측량적 접근 방법은 측량적으로 계산한 파라메터들을 사용하므로, 측량적 접근 방법에 의한 왜곡 보정은 비 측량적 접근 방법에 비해 정확한 보정이 가능하다는 장점이 있다. 그러나 높은 연산량을 요하므로 복잡하고 수행시간이 긴 칼리브레이션 과정이 필요하며, 칼리브레이션이 잡음에 민감하다는 단점을 갖고 있다.
본 발명의 일 실시예에서는 부가 장치로서 좌표 변환 후 수행하는 보간 방법을 이용하므로 렌즈를 완전한 구로 생각하는 간단한 비 측량적 접근에 의한 모델을 왜곡 보정 모델로 이용한다.
또한, 본 발명의 일 실시예에서는 3차 보간을 적용하여 구성한 스케일러를 제안한다. 일반적으로 3차 보간을 적용한 실시간 스케일러는 크게 병렬처리 및 파이프라인 기술을 이용한 구조와, 룩업 테이블을 이용하는 구조로 나눌 수 있다.
전자의 경우, 수행 속도를 단축시킬 수는 있으나, 병렬성을 크게 할수록 필요한 하드웨어 자원의 수도 증가한다는 단점이 있고, 후자의 경우, 좌표 계산에만 룩업 테이블을 이용하므로 보간 과정에 대해서는 여전히 높은 복잡도를 갖는다는 문제가 있다.
따라서, 본 발명의 일 실시예에서는 스케일러의 보간부 구성에 있어서, 3차 보간 수식을 재정리하고, 룩업 테이블을 이용하여 하드웨어 자원을 줄이는 방법 및 최적화된 룩업 테이블을 구성하는 방법을 제안한다.
또한, 본 발명의 일 실시예에서는 메모리에 대한 접근 횟수를 줄여, 저전력화를 달성할 수 있는 새로운 메모리 부의 구조를 제안한다.
우선, 본 발명의 일 실시예에서 제안하는 영상 왜곡 보정 장치와 스케일러를 구현하는데 바탕이 되는 디지털 왜곡 보정 광각 영상 시스템 및 일반적인 보간 기법들에 대해서 설명한다.
화각이 넓은 어안 렌즈를 이용하여 다양한 콘텐츠를 생성하는 일반적인 디지털 왜곡 보정 광각 영상 시스템에서 어안 렌즈를 통해 획득한 영상은 시스템의 전처리기를 통해 디모자이킹, 디인터레이싱, 잡음 제거 등의 정상적인 영상 획득을 위해 필요한 작업을 거치게 된다. 획득된 영상은 왜곡 보정 모듈에서 좌표 변환과 보간을 통해 보정된 영상으로 변환되고, 영상 스케일러(scaler)를 거쳐 해상도 확장 작업을 거치게 된다.
이렇게 해서 디지털 왜곡 보정 광각 영상 시스템으로부터 출력되는 영상은, 시스템 외부에서 탑 뷰(top view), 파노라마 등의 다양한 영상 콘텐츠 생성을 위해 이용된다. 본 발명의 일 실시예에서는 일반적인 디지털 왜곡 보정 광각 영상 시스템에서 핵심이 되는 영상 왜곡 보정 장치와 영상 스케일러에 대해, 고화질 영상 출력 및 소형화, 저전력화를 달성하기 위한 방법과, 이를 구현하기 위한 하드웨어 장치에 대하여 중점적으로 설명한다.
1. 영상 처리에 적용되는 다양한 보간 기법
일반적으로 이미 알고 있는 수치를 이용해 미지의 값을 추정해 내기 위해서 보간 기법이 이용된다. 보간 기법은 두 개 이상의 좌표에서의 크기 값과 그 값들을 잇는 임의의 n차 방정식을 이용해, 사이에 위치한 임의의 좌표에서의 크기 값을 추정하는 방법이다. 여러 가지 보간 기법들은 다양한 영상 처리 분야에 적용되고 있으며, 특히 해상도 변환, 회전, 기하학적 왜곡의 보정 등과 같이, 임의의 위치에서의 픽셀 값에 대한 추정이 필요한 영상 처리 분야에서 중요한 기술이다.
보간 기법은 왜곡 보정 광각 영상 시스템에서 수행하는 어안 영상의 왜곡 보정 및 보정 영상에 대한 해상도 확장에도 이용될 수 있다.
이하에서는 다양한 보간 기법에 대하여 설명한다.
1.1. 보간 커널과 보간 기법
샘플링 된 이산 신호를 연속 신호로 변환하는 보간 함수는 근사 함수의 특별한 형태로, 이산 신호의 샘플링 점에서의 값을 보간이 수행되기 전과 보간이 수행된 후에 동일하게 유지시키는 특징이 있다. 즉, 이미 값을 알고 있어, 보간에 이용되는 수치는 보간 후에도 동일하게 유지되어야 한다. 다양한 보간 함수들은 아래의 [수학식 1]에서와 같이 콘볼루션(convolution) 연산과 유사한 형태로 나타낼 수 있다.
[수학식 1]
Figure 112010056386834-pat00001
여기서, h는 샘플링 간격, x k 는 보간에 이용하는 점, u는 보간 커널(kernel), g는 보간 함수를 나타낸다. 매개 변수 c k 는 보간에 이용할 샘플링 데이터로 g(x k )=f(x k )를 만족하는 점 x k 에서의 값이며, 보간 커널 u를 이용하여 여러 가지 보간 기법들을 만들 수 있다.
단, 보간 함수 ug(x k )=f(x k )에 의해, k=0에서 u(k)=1, k≠0에서 u(k)=0을 만족해야 한다.
1.2. 인접 화소 보간(Nearest neighbor interpolation)
인접 화소 보간 기법은 가장 간단한 보간 기법으로, 이미 알고 있는 가장 가까운 점에서의 값을 보간 값으로 취하는 방법이다. 인접 화소 보간 기법은 연산량이 매우 적다는 장점이 있지만, 주관적/객관적으로 영상에 대한 왜곡이 강하게 나타나는 단점이 있다.
인접 화소 보간 기법의 보간 커널은 아래의 [수학식 2]와 같으며, 보간 커널 식에서의 s는 이미 값을 알고 있는 샘플링 점과 보간을 수행하고자 하는 점 사이의 거리를 뜻한다. 즉,
Figure 112010056386834-pat00002
이다.
[수학식 2]
Figure 112010056386834-pat00003

1.3. 선형 보간(Linear interpolation)
선형 보간 기법은 보간을 수행할 점의 인접한 두 점을 이용하여 보간을 수행하는 기법으로 다른 보간 기법에 비해 객관적 영상 왜곡은 적지만, 계단 형상과 같은 주관적 영상 왜곡은 강하게 나타난다.
선형 보간 기법은 보간을 수행할 점과 인접한 점 사이의 거리에 따라 가중치를 적용하여 보간을 수행하는 방법으로, 두 점 사이의 거리와 가중치는 반비례의 관계를 갖는다. 선형 보간 기법의 보간 커널은 아래의 [수학식 3]과 같다.
[수학식 3]
Figure 112010056386834-pat00004

1.4. B-스플라인 근사(B-spline approximation)
B-스플라인을 기용한 근사 기법은 기저 함수(basis function)를 이용한 방법으로, 커널식은 기저 함수 자신과의 콘볼루션 연산을 통해 얻을 수 있다. 인접 화소 보간 기법의 커널을 기저 함수로 이용하면, B-스플라인 근사 기법의 커널을 얻을 수 있으며, 인접 화소 보간 기법의 커널을 u 1 (x)라고 했을 때, 아래의 [수학식 4]를 이용하여 N-1차 B-스플라인 근사 기법의 커널을 구할 수 있다.
[수학식 4]
Figure 112010056386834-pat00005

[수학식 4]에서 N = 4를 대입하여 구한 3차 B-스플라인 근사 기법의 커널 함수는 아래의 [수학식 5]와 같다.
[수학식 5]
Figure 112010056386834-pat00006
[수학식 5]에서 s = -1, 0, 1 중에서 그 결과가 0이 아닌 값을 갖는다. 즉, [수학식 5]를 이용해 리샘플링 된 신호는 g(x k )=f(x k )를 만족하지 못한다. 따라서, [수학식 5]를 이용하는 방법은 3차 B-스플라인 근사 기법이라고 불리며, 근사 기법을 이용하므로 영상 처리 적용 시에 블러링(blurring)이 크게 나타날 수 있다.
1.5. 3차 보간(Cubic interpolation)
3차 회선 보간 기법은 3차 다항식으로 이루어진 커널 함수를 이용하는 보간 기법이다. 추가적인 경계 조건을 이용하여 구한 3차 보간을 위한 보간 커널 u(s)는 아래의 [수학식 6]과 같다.
[수학식 6]
Figure 112010056386834-pat00007
[수학식 6]에서 상수 a의 값에 따라 3차 보간의 특성은 달라질 수 있다. 최적의 a 값을 찾기 위한 연구들이 진행되었으며, a=-1/2을 대입했을 때 영상의 특성에 따라 변하지 않고 안정적인 결과를 얻을 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 왜곡 보정 전후의 좌표 맵핑을 위한 계산을 설명하기 위한 도면이다.
어안 영상의 왜곡을 보정하는데 이용하기 위한 왜곡 보정 모델은 크게 측량적 방법과 비 측량적 방법으로 나눌 수 있다.
측량적 방법은 특이점(feature point)들이 표시되어 있는 교정용 보드(board)를 촬영한 후, 획득한 영상을 이용해 어안 렌즈의 매개 변수(parameter)들을 계산하는 교정(calibration) 과정을 거쳐 왜곡을 보정하는 방법이다. 그러나, 측량적 방법은 노이즈(noise)에 민감하며 복잡하고 계산량이 많아 수행시간이 길다는 단점이 있다.
따라서, 본 발명의 일 실시예에서는 비 측량적 방법에 의한 왜곡 보정 모델을 이용하기로 한다.
도 1을 참조하여 비 측량적 방법에 의한 왜곡 보정 모델에서 영상 왜곡에 대한 보정 전후의 좌표 맵핑을 위한 계산 과정을 설명한다.
도 1의 비 측량적 방법에 의한 왜곡 보정 모델에서 렌즈의 형태는 정확히 반구와 일치하는 것으로 가정한다. 여기서, (x u , y u )는 왜곡이 없을 경우에 맺히는 상의 위치이며, 어안 렌즈에 의한 방상 왜곡으로 인하여 (x d , y d ) 위치로 이동하게 된다. 즉, 어안 영상은 렌즈의 초점거리 F 를 반지름으로 가지는 구(球) 상의 모든 점들을 평면상으로 정사영 했을 때 얻는 영상과 같다.
따라서, 초점 거리 F 와 렌즈의 중심점으로부터 왜곡이 없을 경우에 맺히는 상의 위치까지의 거리 L을 알면, (x u , y u )와 (x d , y d ) 사이의 맵핑 관계식을 얻을 수 있다. 도 1에서 삼각형의 닮음비를 이용하면 두 좌표 사이의 관계식은 아래의 [수학식 7]과 같이 정리할 수 있다.
[수학식 7]
Figure 112010056386834-pat00008

[수학식 7]에서 L은 원점으로부터 (x u , y u )까지의 거리이므로
Figure 112010056386834-pat00009
임을 알 수 있다. 이를 통해, 두 좌표 간 최종적인 맵핑식을 구해보면 아래의 [수학식 8]과 같다.
[수학식 8]
Figure 112010056386834-pat00010

[수학식 8]은 보정 좌표(x u , y u )를 이용해 왜곡 좌표(x d , y d )를 계산하기 위한 수식이다. 이와 반대로 왜곡 좌표 (x d , y d )를 이용해 보정 좌표 (x u , y u )를 계산하기 위해서는 아래의 [수학식 9]를 이용할 수 있다.
[수학식 9]
Figure 112010056386834-pat00011

비 측량적인 방법은 렌즈를 완벽한 반 구 형태로 가정하고 있으며, 오직 구의 반지름을 매개 변수로 이용한다. 그러나, 렌즈를 완벽한 반 구 형태로 만드는 것은 어려우며, 렌즈의 중심으로부터 멀리 떨어진 곳에 맺힌 상일수록 왜곡이 크게 나타난다. 따라서, 보다 정확한 보정을 위해서는 렌즈의 반지름 이외의 정보를 매개 변수로 이용해야 하며, 추가적인 매개 변수의 계산을 위해 특이점이 그려져 있는 조정 판(calibration board)을 촬영해 획득한 영상 정보를 이용할 수 있다.
영상 처리에서 좌표 맵핑에는 순방향 맵핑(forward mapping)과 역방향 맵핑(backward mapping)의 두 가지 방법이 있으며, 어안 영상의 왜곡 보정을 위한 좌표 변환에도 역시 두 가지 맵핑 방법이 모두 이용될 수 있다.
순방향 맵핑은 입력 영상의 좌표를 출력 영상의 좌표로 변환하여, 입력 영상의 픽셀 정보를 출력 영상의 변환 위치로 맵핑하는 방법으로, 이를 위해서는 전술한 [수학식 9]가 이용될 수 있다. 순방향 맵핑을 이용하면, 입력 영상과 출력 영상 사이에는 다대일 맵핑 관계가 성립되므로 출력 영상의 좌표 하나에 여러 개의 입력 영상의 좌표가 맵핑되는 오버레이(overlay) 현상 및 출력 영상의 좌표에 맵핑 되는 입력 영상의 좌표가 없어 홀(hole)이 발생하는 현상이 나타날 수 있다. 따라서, 순방향 맵핑을 이용할 때는 오버레이와 홀을 방지하기 위한 방법이 필요하다.
반면, 역방향 맵핑을 이용하면, 입력 영상과 출력 영상은 일대다 맵핑 관계가 되어, 모든 출력 영상의 좌표가 하나의 입력 영상의 좌표와 맵핑 되므로, 순방향 맵핑의 경우에 발생하는 오버레이 문제 및 홀 문제가 자연스럽게 해결되는 장점이 있다.
역방향 맵핑을 이용하면 별도의 홀 및 오버레이 방지를 위한 알고리즘이 필요 없어, 두 영상의 맵핑 과정이 단순화되는 만큼 구현이 용이해지므로, 본 발명의 일 실시예에서는 [수학식 8]을 이용하여 역방향 맵핑 방법에 의한 왜곡 보정을 이용한다.
다만, 역방향 맵핑의 경우에도 변환된 좌표 값은 정확히 정수 값으로 떨어지지 않고 소수 값을 포함하므로, 입력 영상 위에서의 픽셀 정보 추정을 위한 보간 기법의 적용이 필요하게 된다.
어안 영상을 보정하기 위한 일반적인 보간 기법들은 단순히 왜곡 영상의 평면 위에서 보간 기법들을 수행하는 방법들이 주를 이루고 있다.
그 중 하나는 인접 화소 보간 방법에 의해 영상을 보정하는 방법으로 전술한 [수학식 8]을 이용하여 역방향으로 좌표를 맵핑한 후, 보정 평면 위에서 인접 화소 보간을 이용하여 영상을 보정한다.
인접 화소 보간 방법에 의해 영상을 보정하는 방법의 경우, 보정 영상 위의 한 픽셀은 역방향 맵핑을 통해 왜곡 영상 위의 한 좌표로 맵핑된다. 맵핑된 위치에 픽셀값이 존재하지 않는 경우, 참조 픽셀값은 인접 화소 보간 방법에 의해, 맵핑된 위치 주변의 네 픽셀 중 가장 가까운 곳에 위치하고 있는 픽셀의 정보를 이용하게 된다.
양선형 보간을 이용하여 영상을 보정하는 방법은 맵핑과 보간을 이용하는 또 다른 예로서, 출력 영상의 좌표에 대하여 역방향 맵핑을 수행한 후, 변환된 좌표와 가장 가까운 네 개의 픽셀 사이의 거리를 이용한 가중치와 픽셀 정보를 이용하여, 보간을 수행하고 그 결과를 참조하여 영상을 보정한다.
이하에서는 3차 보간 방법을 이용하는 일반적인 스케일러의 구조에 대하여 설명한다.
3차 보간은 경계 영역과 평탄한 영역 모두에서 우수한 품질을 보여주지만, 실시간 스케일러에 적용하기 위해서는 3차 식의 계산을 위한 많은 연산량을 해결해야 한다. 이와 같이 스케일러에서 발생하는 많은 연산량을 해결하기 위한 방법으로는 파이프라인과 병렬성을 이용하는 방법과 룩업 테이블을 이용하는 방법이 있다.
파이프라인과 병렬성을 이용하는 방법에 대하여 먼저 설명한다.
실시간으로 3차 보간을 수행할 수 있는 FPGA(field programmable gate array) 기반의 스케일러 구조는 보간을 수행하는 부분인 줌 프로세서(Zoom Processor)를 여러 개 배치하고, 병렬성과 파이프라인을 이용해 3차 보간의 높은 연산량 문제를 해결하였다. 그러나, 제안된 구조에는 최소 20개의 곱셈기와 12개의 덧셈기가 포함되며, 이것은 적지 않은 수의 하드웨어 자원이므로, 하드웨어 제작 시 크기가 너무 커지는 단점이 있다.
연산 시간을 줄이기 위하여 하드웨어의 병렬성을 이용하는 또 다른 방법의 기본적인 아이디어는 영상을 보간 과정이 동일하게 반복되는 여러 개의 블록(block)으로 나누고, 각각의 블록에 대해 동시에 보간을 수행함으로써 병렬성을 높이는 것이다.
하드웨어 구현에 있어서는 보간을 담당하는 필터(Filter) 부를 여러 개 배치하고, 각각의 필터가 하나의 영상 블록에 대해 보간을 수행하도록 할 수 있다.
각 필터부는 누적 방법을 이용하며, 곱셈기와 덧셈기를 각각 1개씩 사용하여 비교적 적은 수의 하드웨어 자원으로 이루어져 있다. 그러나, 병렬성을 높일수록 필터부에서 필요로 하는 자원은 정수 배로 늘어나는 단점이 있으며, 2-D 계수 발생기에는 많은 수의 곱셈기(multiplier)가 포함되어 있다.
전술한 바와 같이 보간에 있어 연산량과 하드웨어 복잡도를 모두 줄일 수 있는 방법으로 룩업 테이블을 이용하는 방법을 고려할 수 있다.
룩업 테이블에 저장되는 정보는 보간 수행 시 필요한 매개 변수로서, 보간을 수행할 픽셀과 보간에 이용할 픽셀 사이의 거리 및 보간에 이용할 픽셀의 좌표이다. 일반적으로 스케일러에서 좌표를 계산할 때 이용하는 방법은 두 픽셀간 거리를 누적하므로, 거리 계산에 발생하는 양자화 오류가 좌표 계산 시 계속해서 누적되어 좌표 계산의 오류가 커지게 되므로 룩업 테이블을 이용하면 좌표 계산에 대한 연산량 및 누적 양자화 오류를 줄일 수 있는 장점이 있다.
그러나, 여러 가지 종류의 해상도를 호환하는 장치에 적용하기 위해서는 (호환하는 해상도의 종류 수)2 만큼의 개수에 해당하는 룩업 테이블이 필요하다. 따라서, 많은 입출력 해상도를 지원하는 호환성 높은 시스템에 적용할 때에는 테이블의 크기가 매우 커져 적용이 어려운 한계가 있다. 특히, 복잡한 계수의 계산 및 보간 수식의 구현에 있어서 여전히 많은 곱셈기와 덧셈기를 사용하고 있어 문제가 된다.
현존하는 대부분의 어안 영상의 왜곡 보정 방법들은 어안 영상의 왜곡 보정 모델의 개선을 통해 정확한 픽셀의 보정 위치를 계산하는데 초점이 맞춰져 있다. 그러나, 보통 렌즈를 생산하는 공정에 따라 왜곡 보정 모델이 바뀌게 되므로, 결과 영상의 화질은 왜곡 보정 모델에 의한 좌표 변환 후 수행되는 보간 방법에 크게 영향을 받는다.
따라서, 본 발명의 일 실시예에서는 비 측량적(non-metric) 접근과 기하학적 계산에 의한 왜곡 보정 모델을 이용하여 좌표를 변환하고, 보정 과정에서 결과 영상의 화질을 개선 할 수 있도록, 보간 기법을 적용하는 방법을 제안한다.
도 2는 본 발명의 일 실시예에 따른 지향성 양선형 보간의 방향 분류를 나타낸 도면이다.
도 2를 참조하면, 지향성 양선형 보간은 전술한 바와 같이 좌표 맵핑 후 왜곡 영상 위에서 보간을 수행하는 방법이며, 일반적인 양선형 보간에 비하여 참조하는 픽셀 수를 줄여, 메모리 접근 횟수와 보간 수행을 위해 필요한 하드웨어 자원을 절약하는 방법이다.
지향성 양선형 보간에서 보간의 수행은 보간을 수행할 좌표 주변의 네 픽셀 중 거리가 가장 짧은 두 개의 픽셀을 이용하여, 총 네 가지 방향 중 한 방향으로 선형 보간을 수행하는 방법으로 이루어진다. 도 2는 보간을 수행할 네 가지 방향으로 분류되는 경우의 예를 나타낸다.
도 3은 보간 영상 위에서 보간 수행을 하기 위한 좌표 맵핑 과정을 나타낸 도면이다.
앞서 소개한 바와 같이 왜곡 영상 위에서의 보간 방법들은, 엄밀히 말하면 정확한 계산에 의한 보간이라고 할 수 없다. 왜곡 영상 위의 모든 픽셀들의 위치는 보정 영상의 각각 다른 위치로 맵핑되고, 이로 인하여 왜곡 영상 위에서의 주변 픽셀과의 거리 정보는, 실제로 보정 영상 위에서의 거리 정보와는 차이가 발생하기 때문이다.
따라서, 본 발명의 일 실시예에서는 정확한 보간 계산을 위하여 보정 영상 위에서 양선형 보간을 수행하는 방법을 제안한다.
도 3을 참조하면, 보정 평면 위에서 양선형 보간을 수행하기 위해서는, 전술한 바와 마찬가지로 역방향 맵핑에 의한 좌표 변환이 이루어져야 한다. 좌표 변환 후에는 왜곡 영상에서 주변 네 개의 픽셀에 대하여, 다시 순방향 맵핑을 이용하여 주변 픽셀들에 대한 보정 영상에서의 좌표를 계산하며, 이 과정은 도 3에 나타나 있다.
도 3에서 알 수 있듯이 보정 영상 평면 위에서 보간을 수행할 위치의 좌표와 이미 정보를 알고 있는 픽셀이 위치할 좌표에 대한 정보를 계산해 낼 수 있기 때문에, 보정 영상 평면 위에서 정확한 보간 계산이 가능하다.
도 4는 본 발명의 일 실시예에 따른 보정 영상 위에서의 양선형 보간 방법을 설명하기 위한 도면이다.
도 4는 실제로 보정 영상 위에서 양선형 보간이 이루어지는 과정을 보여주고 있다. 보간은 먼저 왜곡 영상에서 수평 방향으로 놓여 있는 두 개의 픽셀 그룹에 대하여 선형 보간을 수행한 후, 결과로 나타난 두 개의 보간 임시 값을 수직 방향으로 다시 선형 보간하는 방법으로 이루어진다.
도 4에서
Figure 112010056386834-pat00012
이고,
Figure 112010056386834-pat00013
이다.
이 때, 왜곡 영상 위에서 수평하게 놓여 있는 픽셀에 대한 보정 영상 위로의 좌표 맵핑에 의하여 두 픽셀의 연결선은 수평 및 수직 축과 평행을 이루지 못하고, 사이각(도 4의 θ와 Ø)을 갖게 된다. 따라서, 도 4의 임시 보간 결과(T1,T2)에서 알 수 있듯이, 일반적인 영상에서의 양선형 보간과는 다르게 보간 연산이 굉장히 복잡해지는 것을 알 수 있다.
도 4에서 구하고 있는 거리 정보(d1 ~ d6)와 픽셀 값 정보(I1 ~ I4)를 이용하여, 일반적인 양선형 보간을 위한 최종 수식을 아래의 수학식들을 통해 구할 수 있다.
[수학식 10]은 임시점들을 위한 보간 수식(T1, T2)을 나타내고, [수학식 11]은 최종적인 ‘X’점을 위한 보간 수식(x)을 나타낸다.
[수학식 10]
Figure 112010056386834-pat00014
[수학식 11]
Figure 112010056386834-pat00015

[수학식 10] 및 [수학식 11]의 복잡한 연산을 해결하기 위하여, 이하에서 설명하는 본 발명의 일 실시예에 따른 영상 왜곡 보정 장치는 룩업 테이블을 이용하는 구조를 이용한다.
도 5는 본 발명의 일 실시예에 따른 영상 왜곡 보정 장치의 하드웨어 구조를 나타낸 도면이다. 도 5를 참조하면, 영상 왜곡 보정 장치는 동기화 신호 감지부(sync detector)(501), 출력 카운터(output counter)(503), 사분면 추정부(quadrant estimation)(507), 룩업 테이블(Look-Up Table;LUT)(511), 프레임 메모리(frame memory)(515) 및 보간부(interpolator)(517)를 포함한다.
또한, 영상 왜곡 보정 장치는 레지스터 파일(505), 주소 생성부(address generator)(509), 조정 생성부(coordination generator)(513), 버퍼(Buffer)(519) 및 동기화 신호 생성부(sync generator)(521)를 더 포함할 수 있다.
동기화 신호 감지부(sync detector)(501)는 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 감지한다. 동기화 신호 감지부(sync detector)(501)에 대하여는 도 6을 참조하여 상세히 설명한다.
출력 카운터(output counter)(503)는 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산한다. 출력 카운터(503)에 대하여는 후술하는 도 7 및 도 8을 참조하여 상세히 설명한다.
레지스터 파일(register file)(505)은 영상의 왜곡을 보정하는데 필요한 정보를 저장할 수 있다. 레지스터 파일(register file)(505)은 영상 왜곡 보정 장치의 제어를 위해 사용자로부터 입력받은 여러 가지 정보를 저장할 수 있다.
레지스터 파일(register file)(505)에 저장되는 정보를 나타내는 레지스터 맵은 아래의 [표 1]과 같은 형태를 가질 수 있다.
[표 1] 레지스터 맵
Figure 112010056386834-pat00016
여기서, h_actvie_start와 v_active_start는 입력 영상의 수직, 수평 방향 active pixel의 시작점을 가리키고, h_active_end와 v_active_end는 입력 영상의 수직, 수평 방향 active pixel의 끝점을 가리킨다. 동일한 이름(name)이 각각 0과 1로 나누어져 있는 이유는 8-bit를 넘어가는 수를 담아내기 위해 두 개의 레지스터를 사용하기 때문이다.
LUT_base는 메모리에 위치해 있는 룩업 테이블의 시작 주소를 나타내고, frame_base는 메모리에 위치해 있는 프레임 메모리의 시작 주소를 나타낸다.
h_sync_timing 및 v_sync_timing은 출력 영상의 포맷에 맞게 수평 방향의 동기화 신호(v_sync) 및 수직 방향의 동기화 신호(h_sync)를 출력하기 위해 사용될 수 있다.
사분면 추정부(quadrant estimation)(507)는 출력 영상의 좌표를 이용하여 출력 영상의 좌표에 해당하는 픽셀이 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성한다. 사분면 정보는 룩업 테이블(511)의 크기를 1/4로 줄이는데 이용될 수 있다. 사분면 추정부(507)에 대하여는 도 9를 참조하여 상세히 설명한다. 또한, 사분면 정보를 이용하여 룩업 테이블을 구성하는 방법에 대하여는 후술하기로 한다.
주소 생성부(address generator)(509)는 사분면 정보 및 출력 영상의 좌표를 이용하여 룩업 테이블(LUT)(511)의 주소를 생성할 수 있다. 주소 생성부(509)에 대하여는 도 10을 참조하여 상세히 설명한다.
룩업 테이블(Look-Up Table;LUT)(511)은 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 사분면에 대한 좌표 변환 정보를 저장한다.
조정 생성부(coordination generator)(513)는 입력 영상의 좌표와 사분면 정보를 이용하여 프레임 메모리의 주소를 생성할 수 있다. 조정 생성부(513)에 대하여는 후술하는 도 11을 참조하여 상세히 설명한다.
프레임 메모리(frame memory)(515)는 출력 영상에 대한 왜곡을 보정하기 위한 입력 영상의 좌표에 해당하는 픽셀 값을 저장한다. 본 발명의 일 실시예에서는 프레임 메모리(515)에 입력되는 영상을 저장하기 위한 구조에 대하여는 다루지 않기로 한다.
보간부(interpolator)(517)는 입력 영상의 좌표에 해당하는 픽셀 값과 룩업 테이블에서 출력되는 계수 값을 이용하여 출력 영상의 픽셀 값을 산출함으로써 출력 영상의 왜곡을 보정한다.
버퍼(Buffer)(519)는 보간부(517)에서 계산된 최종적인 출력 영상의 픽셀 값을 임시로 저장할 수 있다. 버퍼에 임시로 저장된 최종적인 출력 영상의 픽셀 값은 레스터 스캔(raster scan)될 수 있다.
동기화 신호 생성부(sync generator)(521)는 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일(505)로부터 타이밍과 관련된 정보를 입력 받아 동기화 신호를 생성할 수 있다. 또한, 동기화 신호 생성부(sync generator)(521)는 생성된 수직 방향의 동기화 신호(h_sync)를 버퍼(519)에서 사용할 수 있도록 valid 신호를 생성할 수 있다.
도 6은 본 발명의 일 실시예에 따른 동기화 신호 감지부(sync detector)를 나타낸 블록도이다.
도 6을 참조하면, 동기화 신호 감지부(sync detector)는 출력 영상에 대한 수평 방향의 동기화 신호(v_sync) 및 수직 방향의 동기화 신호(h_sync)를 감지하고, 동기화 신호의 상승 에지(rising edge)가 발생함에 따라 한 클럭 사이클(clock cycle) 동안 high 값을 출력할 수 있다.
도 7은 본 발명의 일 실시예에 따른 출력 카운터(output counter)를 나타낸 블록도이다.
도 7을 참조하면, 출력 카운터(output counter)는 출력 영상의 좌표를 계산해 출력할 수 있으며, 출력 카운터의 세부 블록도에 대하여는 도 8을 참조한다.
출력 카운터(503)는 출력 영상의 수직 방향 픽셀을 카운트하는 제1 카운터(col_Counter) 및 출력 영상의 수평 방향 픽셀을 카운트하는 제2 카운터(row_Counter)를 포함할 수 있다.
출력 카운터(503)는 레지스터 파일(505)로부터 수신한 출력 영상의 수직 방향 픽셀 및 출력 영상의 수평 방향 픽셀에 대한 카운트를 각각 수행하여 출력 영상의 수직 방향 좌표(col) 및 수평 방향 좌표(row)를 계산할 수 있다.
출력 카운터(503)는 동기화 신호 감지부(501)로부터 수신한 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 출력 영상의 수직 방향 픽셀을 카운트하는 제1 카운터(col_Counter) 및 출력 영상의 수평 방향 픽셀을 카운트하는 제2 카운터(row_Counter) 각각의 리셋 하는데 이용할 수 있다.
또한, 출력 카운터(503)는 레지스터 파일(505)로부터 h_active start/end 값 및 v_active start/end를 입력 받아, active pixel을 위한 카운트 값 및 카운트의 시작 및 완료를 알리는 신호를 출력할 수 있다.
여기서, h_actvie_start와 v_active_start는 입력 영상의 수직, 수평 방향 active pixel의 시작점을 가리키고, h_active_end와 v_active_end는 입력 영상의 수직, 수평 방향 active pixel의 끝점을 가리킨다
도 8은 도 7의 출력 카운터를 구성하는 수직 및 수평 카운터(col/row counter)를 나타낸 블록도이다.
도 8을 참조하면, 수직 및 수평 카운터(col/row counter) 각각은 비동기 및 동기 리셋 입력을 가지며, 수직 및 수평 카운터(col/row counter) 각각의 출력은 입력 받은 active start/end 신호와 함께 각각 비교기에서 비교된다. 전술한 비교 결과에 따라 각 카운터는 실제 출력 픽셀을 위한 카운트가 시작되는 것을 알리는 init 신호와, 출력 픽셀의 카운트가 완료되었음을 알리는 complete 신호를 출력할 수 있다. 수직 및 수평 카운터(col/row counter) 각각은 active pixel의 실제 카운트 값을 계산하기 위하여 감산기를 이용할 수 있다.
도 9는 본 발명의 일 실시예에 따른 사분면 추정부(quadrant estimation)를 나타낸 블록도이다.
도 9는 예를 들어, 출력 영상의 크기가 640×480인 영상에 대한 사분면 추정부(quadrant estimation)(507)를 나타낸 도면이다.
사분면 추정부(quadrant estimation)(507)는 출력 영상의 중심을 원점으로 보았을 때, 현재 출력하는 영상의 좌표가 속한 사분면의 위치를 결정하기 위하여 사용된다. 사분면 추정부(507)는 출력 영상의 중심점과 출력 영상의 좌표와의 비교 결과에 기초하여 출력 영상의 좌표에 해당하는 픽셀이 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성할 수 있다.
도 9의 사분면 추정부(quadrant estimation)(507)는 출력 영상의 중심점을 기준으로 출력 영상의 좌표를 비교하고, 그 비교 결과를 디코더(decoder)로 입력하여 사분면의 위치를 알리는 신호로 출력할 수 있다.
사분면 추정부(quadrant estimation) 내부의 디코더(decoder)에 대한 진리표는 아래의 [표 2]와 같이 나타낼 수 있다.
[표 2] 디코더(decoder)의 진리표
Figure 112010056386834-pat00017

도 10은 본 발명의 일 실시예에 따른 주소 생성부(Address generator)를 나타낸 블록도이다.
도 10을 참조하면, 주소 생성부(Address generator)(509)는 사분면 정보에 따라 출력 영상의 좌표의 원점을 출력 영상의 정중앙으로 이동시켜 룩업 테이블을 위한 주소를 생성할 수 있다. 이때, 룩업 테이블은 사분면 하나에 대한 좌표 변환 정보를 포함할 수 있다.
도 10에서 주소 생성부(509)는 사분면 추정부(507)로부터 출력 영상의 좌표가 위치하고 있는 사분면 정보를 입력 받아 출력 영상의 좌표의 중심을 이동시키기 위한 감산기에서 음수가 나오지 않도록 연산자와 피연산자를 적절히 선택하고, 그 결과에 따른 수평 및 수직 방향의 좌표를 연결하여 룩업 테이블을 위한 주소를 생성할 수 있다.
도 11은 본 발명의 일 실시예에 따른 조정 생성부(coordination generator)를 나타낸 블록도이다.
도 11을 참조하면, 조정 생성부(coordination generator)(513)는 룩업 테이블(511)로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하여 프레임 메모리(515)의 주소를 생성할 수 있다.
조정 생성부(513)는 룩업 테이블(511)로부터 입력 받은 입력 영상의 좌표에 대하여 중심점을 다시 왼쪽 상단으로 옮겨놓는 연산을 수행한다. 이를 위해 조정 생성부(513)는 감산기와 가산기를 사용하며, 사분면 정보에 따라 감산 및 가산 결과를 선택하여 사용할 수 있도록 MUX를 포함할 수 있다. 조정 생성부(513)의 결과는 입력 영상의 좌표가 되므로, 프레임 메모리(515)로 입력되어 왜곡 보정을 위해 사용되는 입력 영상의 픽셀 정보를 얻기 위해 사용될 수 있다. 이하에서는 룩업 테이블(511)의 구성 방법에 대하여 설명한다.
룩업 테이블(511)의 주소는 출력 영상의 좌표이다.
룩업 테이블(511)로부터 출력되는 정보로는 입력 영상의 좌표 및 계수 등과 같은 정보가 있다. 룩업 테이블(511)은 역방향 맵핑을 위한 입/출력 영상의 좌표 변환을 위해 사용하게 된다.
어안 영상 보정의 경우 입/출력 영상 간의 좌표 변환 정보는 영상의 종류에 상관없이 렌즈의 종류가 결정되면 변하지 않고 일정하게 유지되기 때문에 룩업 테이블을 이용하면 간단하게 구현할 수 있다.
룩업 테이블(511)은 모든 출력 영상의 좌표에 대하여 입력 영상의 좌표 값을 저장하도록 구성할 수 있지만, 본 발명의 일 실시예에서는 룩업 테이블의 크기를 1/4 크기로 줄이기 위하여 영상의 중심점을 왼쪽 상단에서 가운데로 옮기고, 한 사분면에 대한 좌표 변환 정보를 저장하도록 구성할 수 있다.
전술한 도 1의 왜곡 보정 전후의 좌표 계산 과정을 통해 알 수 있듯이, 출력 영상의 좌표 변환에 대한 모델링이 영상의 가운데를 중심점으로 하고 있기 때문에, 한 사분면에 대한 정보만으로 좌표 변환이 가능하다.
이와 같이 좌표의 중심점을 옮길 경우, 추가적인 가산기와 감산기가 필요할 수 있으나, 룩업 테이블의 전체적인 크기를 크게 줄일 수 있는 장점이 있다. 좌표 변환을 위하여 룩업 테이블의 주소 {x u , y u }에는 전술한 [수학식 8]에 x u y u 를 대입하여 계산한 값이 저장될 수 있다.
아래의 [표 3]은 본 발명의 일 실시예에 따른 왜곡 영상 위에서 지향성 선형 보간을 수행하는 구조에서 사용할 수 있는 룩업 테이블을 나타낸다.
[표 3]. 지향성 선형 보간을 위한 룩업 테이블 구성
Figure 112010056386834-pat00018

출력 영상이 너무 클 경우 룩업 테이블의 크기 또한 너무 커져서 구현에 어려움이 생길 수 있으므로 본 발명의 일 실시예에 따른 영상 왜곡 보정 장치는 320 x 240 크기의 입력 영상에 대하여 640 x 480 크기의 출력 영상을 출력하는 것으로 가정한다.
지향성 선형 보간을 위한 룩업 테이블에서 입력 주소는 640×480 크기의 입력 영상의 한쪽 사분면에 대한 정보를 담을 수 있도록, 17-비트(9-비트(320)+8-비트(240))를 사용한다.
I1은 입력영상의 좌표를 나타내며, 도 2에서 나타난 경우에 대해서 좌측 또는 상단에 위치한 픽셀의 좌표를 가리킨다. I1 역시 320×240크기의 출력 영상의 한쪽 사분면에 대한 정보를 담을 수 있도록, 15비트(8비트(160)+ 7비트(120))를 사용한다.
direction은 보간 수행 방향에 대한 정보로서, 1-비트를 할당해 수평 또는 수직 방향 중 보간을 수행할 방향을 지정하고 있다. direction에 따라 I1 이외의 참조해야 하는 나머지 한 픽셀의 좌표는 덧셈기를 통해 계산된다.
coeff_bl1과 coeff_bl2에는 선형 보간을 수행하기 위해 픽셀들에 곱해지는 계수가 미리 계산되어 저장된다. [표 4]는 본 발명의 일 실시예에 따른 보정 영상 위에서 양선형 보간을 수행하는 구조에서 사용할 수 있는 룩업 테이블을 나타낸다.
[표 4] 양선형 보간을 위한 룩업테이블 구성
Figure 112010056386834-pat00019

입력 주소와 I1에 할당된 비트 수는, 전술한 지향성 선형 보간의 경우와 동일하다. I1은 그림 9에서처럼 좌표 변환 후 가장 가까이 있는 네 픽셀 중 좌측 상단에 위치한 픽셀의 좌표 정보를 포함하고 있다. 또한, 도 4에서 보간을 위해 각 네 픽셀에 곱해지는 계수 값이 전술한 [수학식10] 및 [수학식 11]을 통해 미리 계산되어 coeff_bl1~coeff_bl4에 저장되어 있다.
도 12는 본 발명의 일 실시예에 따른 룩업 테이블을 이용하는 스케일러의 하드웨어 구조를 나타낸 도면이다.
도 12를 참조하면, 본 발명의 일 실시예에 따른 스케일러에 입/출력 영상의 해상도(Input/Output resolution)가 입력되면, 출력 영상의 픽셀 간 거리가 입력 영상의 픽셀간 거리에 대해서 정규화되고, 정규화 된 출력 영상의 픽셀 간 거리는 누적기(Accumulator)에서 출력 영상의 좌표를 계산하기 위해 사용될 수 있다.
출력 영상의 좌표 중 정수부(integer_x,integer_y)는 컨트롤러(Controller)로 입력되어, 메모리 부의 라인 메모리(Line Memory)에 대한 읽기/쓰기 연산 등의 컨트롤을 위한 신호를 생성하는데 이용될 수 있다.
또한, 출력 영상의 좌표 중 소수부(fraction_x, fraction_y)는 각각의 룩업 테이블(Coefficient LUT)로 입력되어 보간을 위해 필요한 계수들을 읽어오기 위하여 사용될 수 있다.
보간부(Interpolation Block)은 메모리부의 라인 메모리(Line Memory)에서 읽은 입력 영상의 픽셀들과 룩업 테이블(Coefficient LUT)에서 읽은 계수들을 이용해 보간을 수행하고, 최종 결과를 출력할 수 있다.
여기서, 3차 보간을 적용한 스케일러의 저전력화, 소형화를 달성하기 위하여 새로운 메모리 부와 보간부 및 룩업 테이블의 구성 방법에 대하여는 이하에서 설명한다.
도 13은 본 발명의 일 실시예에 따른 소형화 및 저전력화를 구현하기 위한 메모리부의 구조를 나타낸 도면이다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 메모리부는 기존의 일반적인 메모리 부가 갖고 있던 버퍼를 두 개의 라인 메모리(Line Memory)와 Mux로 대체한 구조이다.
본 발명의 일 실시예에 따른 메모리 부의 구조는 각 라인 메모리(Line Memory)에서 발생하는 읽기 및 쓰기 연산이 완전히 분리되어 싱글 포트 메모리로 구현할 수 있어 단가를 절감할 수 있다. 또한, 본 발명의 일 실시예에 따른 메모리 부의 구조는 Mux를 사용하므로 하나의 라인 메모리(Line Memory)에 저장되어 있는 값을 다른 메모리에 옮기는 작업을 수행할 필요가 없고, 이에 따라 각 라인 메모리(Line Memory)에서 발생하는 쓰기 연산의 횟수를 줄여 소모 전력을 감소시킬 수 있다.
도 13에 나타난 메모리 부로 입력되는 픽셀 정보는 각 라인 메모리(Line Memory) 모두와 연결되어 있으며, 컨트롤러가 출력하는 write_enable 신호에 의해 입력 픽셀 정보와 수평 방향으로 같은 줄에 있는 정보를 갖고 있는 라인 메모리 하나에서만 쓰기 연산이 수행된다.
이러한 방법으로 입력 영상의 수평 방향 한 줄을 모두 하나의 라인 메모리에 쓰고 나면, 다음 줄의 정보는 다음 라인 메모리에 저장하게 된다.
본 발명의 일 실시예에 따른 메모리부는 수직 방향으로 보간을 수행하기 위하여 6개의 라인 메모리 중 4개의 라인 메모리의 출력 값을 선택할 수 있다. 이를 위해 4 개의 2-to-1 Mux가 이용되며 Mux에 대한 선택 신호 역시 컨트롤러로부터 입력될 수 있다.
일반적으로 버퍼를 사용하는 메모리부의 구조는 한 픽셀에 대한 쓰기 연산이 모든 라인 메모리에서 한 번씩 발생하게 되지만, 제안하는 메모리부의 구조의 경우, 특정 라인 메모리 한 개에서만 쓰기 연산이 발생하게 된다. 특히, 3차 보간을 수행하는 경우, 한 개의 픽셀에 대해 버퍼 및 라인 메모리에서 네 번의 쓰기 연산이 발생하게 되므로, 제안하는 메모리 부를 사용하면 쓰기 연산을 1/4회로 감소시켜 소비 전력을 감소시킬 수 있다.
도 14는 본 발명의 일 실시예에 따른 곱셈기(multipliers)의 수를 줄인 보간부(interpolator)의 구조를 나타낸 도면이다.
도 14를 참조하면, 3차 보간의 최종적인 수식은 전술한 [수학식 1]에 [수학식 6]을 대입하여 구할 수 있으며, 해당 수식은 아래의 [수학식 12]와 같이 나타낼 수 있다.
[수학식 12]
Figure 112010056386834-pat00020
Figure 112010056386834-pat00021

[수학식 12]를 통해,
Figure 112010056386834-pat00022
의 네 개의 픽셀 정보에 곱해지는, s항으로 구성된 계수를 룩업 테이블로 구현할 수 있다.
[수학식 12]를 교환 및 결합 법칙을 이용해 다시 재정리하면 아래의 [수학식 13]과 같이 나타낼 수 있다.
[수학식 13]
Figure 112010056386834-pat00023

[수학식 13]을 통해 보간부를 구성하는 경우 s 3 , s 2 항으로 구성된 룩업 테이블로 구현할 수 있으며, 재정리한 [수학식 13]을 이용해 보간부를 구성하는 경우, [수학식 12]를 이용하는 경우에 비해 8개의 가,감산기를 추가로 사용하는 대신 1개의 곱셈기를 줄일 수 있다.
[수학식 13] 및 도 14에 따른 곱셈기(multipliers)의 수를 줄인 보간부(interpolator)를 구현하기 위해 아래의 [표 5]와 같이 s 2 , s 3 항을 미리 계산하여 저장하고 있는 룩업 테이블을 이용할 수 있다.
[표 5]. 제안하는 s 2 , s 3 항을 위한 룩업테이블의 구성
Figure 112010056386834-pat00024

본 발명의 일 실시예에 따른 룩업 테이블의 양자화 레벨에 대해서는 [표 5]와 같이 32단계로 나눌 수 있으며, 룩업 테이블의 각 요소의 정확도에 대해서는 각각 6-비트의 정확도를 사용할 수 있다.
[표 5]의 입력 s는 출력 영상의 좌표를 입력 영상 위로 맵핑 했을 때의 소수부이고, 32단계를 표현하기 위해 0~31의 값을 갖는다. 또한, 룩업 테이블의 출력인 s 2 , s 3 는 좌표의 소수부를 제곱한 값으로서, 6-비트 정확도를 가지므로 0 ~ 61의 값을 가질 수 있다.
전술한 [수학식 12]를 이용하여 하드웨어를 구성하는 경우, 룩업 테이블에 네 개의 계수에 대한 정보를 저장하고 있어야 한다. 반면, 본 발명의 일 실시예에 따른 [수학식 13] 및 도 14에 따른 곱셈기(multipliers)의 수를 줄인 보간부(interpolator)의 구조를 이용하면 s 2 s 3 의 두 개 항에 대한 정보만을 룩업 테이블에 저장하면 되므로, 룩업 테이블의 크기를 줄일 수 있다.
도 15는 본 발명의 일 실시예에 따른 영상 왜곡 보정 방법을 나타낸 플로우 차트이다.
도 15를 참조하면, 영상 왜곡 보정 장치는 출력 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일로부터 출력 영상의 수직 방향 픽셀 및 출력 영상의 수평 방향 픽셀에 대한 정보를 수신할 수 있다(1510). 그 후, 출력 영상의 수직 방향 픽셀 및 출력 영상의 수평 방향 픽셀에 대한 정보에 기초하여 출력 영상의 수직 방향 픽셀 및 출력 영상의 수평 방향 픽셀 각각에 대한 카운트를 수행하고(1520), 카운트 결과를 이용하여 출력 영상의 수직 방향 좌표 및 수평 방향 좌표를 각각 계산할 수 있다(1530).
영상 왜곡 보정 장치는 출력 영상의 중심점과 출력 영상의 좌표를 비교하고(1540), 비교 결과에 기초하여 출력 영상의 좌표에 해당하는 픽셀이 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성할 수 있다(1550).
영상 왜곡 보정 장치는 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 메모리의 룩업 테이블(Look-Up Table)에 저장된 사분면에 대한 좌표 변환 정보를 호출한다(1560).
또한, 영상 왜곡 보정 장치는 룩업 테이블로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하고, 중심점이 조정된 입력 영상의 좌표와 사분면 정보를 이용하여 프레임 메모리의 주소를 생성할 수 있다.
영상 왜곡 보정 장치는 출력 영상에 대한 왜곡을 보정하기 위해 프레임 메모리로부터 입력 영상의 좌표에 해당하는 픽셀 값을 호출하고(1570), 입력 영상의 좌표에 해당하는 픽셀 값과 룩업 테이블에서 출력되는 계수 값을 이용하여 출력 영상의 픽셀 값을 산출함으로써 출력 영상의 왜곡을 보정한다(1580).
도 16는 본 발명의 다른 실시예에 따른 영상 왜곡 보정 방법을 나타낸 플로우 차트이다.
도 16을 참조하면, 영상 왜곡 보정 장치는 렌즈에 의해 왜곡이 발생한 왜곡 영상 평면의 적어도 하나의 픽셀의 좌표를 왜곡이 발생하기 전의 보정 영상 평면에 대응되는 좌표로 변환하는 역방향 맵핑을 수행한다(1610).
1610에서 영상 왜곡 보정 장치는 렌즈의 초점 거리와 렌즈의 중심점으로부터 왜곡이 없을 경우에 맺히는 상의 위치까지의 거리를 이용하여 역방향 맵핑을 수행할 수 있다.
그 후, 영상 왜곡 보정 장치는 다시 보정 영상 평면의 좌표에 인접한 4개의 픽셀들에 대하여 보정 영상으로부터 왜곡 영상으로의 순방향 맵핑을 수행한다(1620).
영상 왜곡 보정 장치는 순방향 맵핑을 수행한 4개의 픽셀들에 대한 보정 영상 평면에서의 좌표를 계산하고(1630), 보정 영상 평면에서 보정을 수행할 위치의 좌표와 4개의 픽셀들에 대한 보정 영상 평면에서의 좌표를 이용하여 왜곡 영상 평면에서의 왜곡을 보정한다(1640).
1640에서 영상 왜곡 보정 장치는 4개의 픽셀들에 대한 보정 영상 평면에서의 거리 정보 및 픽셀 값 정보를 이용하여 보정 영상 평면에서의 왜곡 보정을 수행할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가지 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
501: 동기화 신호 감지부(sync detector)
503: 출력 카운터(output counter)
505: 레지스터 파일(register file)
507: 사분면 추정부(quadrant estimation)
509: 주소 생성부(address generator)
511: 룩업 테이블(Look-Up Table;LUT)
513: 조정 생성부(coordination generator)
515: 프레임 메모리(frame memory)
517: 보간부(interpolator)
519: 버퍼(Buffer)
521: 동기화 신호 생성부(sync generator)

Claims (15)

  1. 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산하는 출력 카운터(output counter);
    상기 출력 영상의 좌표를 이용하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 사분면 추정부(quadrant estimation);
    상기 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 상기 사분면에 대한 좌표 변환 정보를 저장하는 룩업 테이블(Look-Up Table);
    상기 출력 영상에 대한 왜곡을 보정하기 위한 상기 입력 영상의 좌표에 해당하는 픽셀 값을 저장하는 프레임 메모리; 및
    상기 입력 영상의 좌표에 해당하는 픽셀 값과 상기 룩업 테이블에서 출력되는 계수 값을 이용하여 상기 출력 영상의 픽셀 값을 산출함으로써 상기 출력 영상의 왜곡을 보정하는 보간부(interpolator)
    를 포함하는 영상 왜곡 보정 장치.
  2. 제1항에 있어서,
    상기 사분면 정보 및 상기 출력 영상의 좌표를 이용하여 상기 룩업 테이블의 주소를 생성하는 주소 생성부(address generator)
    를 더 포함하고,
    상기 주소 생성부는
    상기 사분면 정보에 따라 상기 출력 영상의 좌표의 원점을 상기 출력 영상의 정중앙으로 이동시켜 상기 룩업 테이블을 위한 주소를 생성하는 영상 왜곡 보정 장치.
  3. 제1항에 있어서,
    상기 입력 영상의 좌표와 상기 사분면 정보를 이용하여 상기 프레임 메모리의 주소를 생성하는 조정 생성부(coordination generator)
    를 더 포함하는 영상 왜곡 보정 장치.
  4. 제3항에 있어서,
    상기 조정 생성부는
    상기 룩업 테이블로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하여 상기 프레임 메모리의 주소를 생성하는 영상 왜곡 보정 장치.
  5. 제1항에 있어서,
    상기 출력 카운터(output counter)는
    상기 출력 영상의 수직 방향 픽셀을 카운트하는 제1 카운터; 및
    상기 출력 영상의 수평 방향 픽셀을 카운트하는 제2 카운터
    를 더 포함하고,
    상기 출력 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일로부터 수신한 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 카운트를 각각 수행하여 상기 출력 영상의 수직 방향 좌표 및 상기 수평 방향 좌표를 계산하는 영상 왜곡 보정 장치.
  6. 제1항에 있어서,
    상기 사분면 추정부는
    상기 출력 영상의 중심점과 상기 출력 영상의 좌표와의 비교 결과에 기초하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 영상 왜곡 보정 장치.
  7. 제1항에 있어서,
    상기 룩업 테이블은
    상기 출력 영상의 중심점을 상기 출력 영상의 정중앙으로 옮기고, 상기 정중앙을 중심점으로 한 상기 사분면 중 어느 한 분면에 대한 좌표 변환 정보를 저장하는 영상 왜곡 보정 장치.
  8. 제1항에 있어서,
    상기 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일(register file)로부터 타이밍과 관련된 정보를 입력 받아 동기화 신호를 생성하는 동기화 신호 생성부(sync generator)
    를 더 포함하는 영상 왜곡 보정 장치.
  9. 출력 영상에 대한 수평 및 수직 방향의 동기화 신호를 이용하여 출력 영상의 좌표를 계산하는 단계;
    상기 출력 영상의 좌표를 이용하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 단계;
    상기 출력 영상의 좌표에 대응되는 입력 영상의 좌표를 출력하기 위해 메모리의 룩업 테이블(Look-Up Table)에 저장된 상기 사분면에 대한 좌표 변환 정보를 호출하는 단계;
    상기 출력 영상에 대한 왜곡을 보정하기 위해 상기 좌표 변환 정보를 사용하여 프레임 메모리로부터 상기 입력 영상의 좌표에 해당하는 픽셀 값을 호출하는 단계; 및
    상기 입력 영상의 좌표에 해당하는 픽셀 값과 상기 룩업 테이블에서 출력되는 계수 값을 이용하여 상기 출력 영상의 픽셀 값을 산출함으로써 상기 출력 영상의 왜곡을 보정하는 단계
    를 포함하는 영상 왜곡 보정 방법.
  10. 제9항에 있어서,
    상기 룩업 테이블로부터 수신한 입력 영상의 좌표에 대한 중심점을 조정하는 단계; 및
    상기 중심점이 조정된 입력 영상의 좌표와 상기 사분면 정보를 이용하여 상기 프레임 메모리의 주소를 생성하는 단계
    를 더 포함하는 영상 왜곡 보정 방법.
  11. 제9항에 있어서,
    상기 출력 영상의 좌표를 계산하는 단계는
    상기 출력 영상의 왜곡을 보정하는데 필요한 정보를 저장한 레지스터 파일로부터 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 정보를 수신하는 단계;
    상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀에 대한 정보에 기초하여 상기 출력 영상의 수직 방향 픽셀 및 상기 출력 영상의 수평 방향 픽셀 각각에 대한 카운트를 수행하는 단계; 및
    상기 카운트 결과를 이용하여 상기 출력 영상의 수직 방향 좌표 및 상기 수평 방향 좌표를 각각 계산하는 단계
    를 포함하는 영상 왜곡 보정 방법.
  12. 제9항에 있어서,
    상기 사분면 정보를 생성하는 단계는
    상기 출력 영상의 중심점과 상기 출력 영상의 좌표를 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 출력 영상의 좌표에 해당하는 픽셀이 상기 출력 영상 평면의 사분면 중 어느 곳에 위치하는지를 나타내는 사분면 정보를 생성하는 단계
    를 포함하는 영상 왜곡 보정 방법.
  13. 렌즈에 의해 왜곡이 발생한 왜곡 영상 평면의 적어도 하나의 픽셀의 좌표를 상기 왜곡이 발생하기 전의 보정 영상 평면에 대응되는 좌표로 변환하는 역방향 맵핑을 수행하는 단계;
    상기 보정 영상 평면의 좌표에 인접한 적어도 하나의 픽셀들에 대하여 상기 보정 영상으로부터 상기 왜곡 영상으로의 순방향 맵핑을 수행하는 단계;
    상기 순방향 맵핑을 수행한 상기 적어도 하나의 픽셀들에 대한 상기 보정 영상 평면에서의 좌표를 계산하는 단계; 및
    상기 보정 영상 평면에서 보정을 수행할 위치의 좌표와 상기 적어도 하나의 픽셀들에 대한 상기 보정 영상 평면에서의 좌표를 이용하여 상기 왜곡 영상 평면에서의 왜곡을 보정하는 단계
    를 포함하는 영상 왜곡 보정 방법.
  14. 제13항에 있어서,
    상기 역방향 맵핑을 수행하는 단계는
    상기 렌즈의 초점 거리와 상기 렌즈의 중심점으로부터 왜곡이 없을 경우에 맺히는 상의 위치까지의 거리를 이용하여 역방향 맵핑을 수행하는 단계인 영상 왜곡 보정 방법.
  15. 제13항에 있어서,
    상기 왜곡 영상 평면에서의 왜곡을 보정하는 단계는
    상기 왜곡 영상 평면에서의 임의의 4개의 픽셀들에 대한 상기 보정 영상 평면에서의 거리 정보 및 픽셀 값 정보를 이용하여 상기 왜곡 영상 평면에서의 왜곡을 보정하는 단계인 영상 왜곡 보정 방법.
KR1020100084688A 2010-08-31 2010-08-31 영상 왜곡 보정 장치 및 방법 KR101140953B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100084688A KR101140953B1 (ko) 2010-08-31 2010-08-31 영상 왜곡 보정 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100084688A KR101140953B1 (ko) 2010-08-31 2010-08-31 영상 왜곡 보정 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120020821A KR20120020821A (ko) 2012-03-08
KR101140953B1 true KR101140953B1 (ko) 2012-05-03

Family

ID=46129347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100084688A KR101140953B1 (ko) 2010-08-31 2010-08-31 영상 왜곡 보정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101140953B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017007561A1 (en) * 2015-07-09 2017-01-12 Intel Corporation Accelerated lens distortion correction with near-continuous warping optimization

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465112B1 (ko) * 2013-05-08 2014-11-25 심영석 카메라 시스템
US10572982B2 (en) * 2017-10-04 2020-02-25 Intel Corporation Method and system of image distortion correction for images captured by using a wide-angle lens
KR102070974B1 (ko) * 2018-01-17 2020-01-29 국방과학연구소 위치 왜곡 보정 방법 및 장치
KR102633109B1 (ko) * 2020-01-09 2024-02-05 현대모비스 주식회사 광각 영상 객체 검출을 위한 데이터 변환 시스템 및 방법
KR102655332B1 (ko) * 2022-05-27 2024-04-12 주식회사 텔레칩스 영상 왜곡 보정 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090012291A (ko) * 2007-07-29 2009-02-03 주식회사 나노포토닉스 회전 대칭형의 광각 렌즈를 이용하여 전방위 영상 및 직선수차보정 영상을 얻는 방법 및 그 영상 시스템
JP2009123131A (ja) 2007-11-19 2009-06-04 Alps Electric Co Ltd 撮像装置
JP2009176273A (ja) 2007-12-26 2009-08-06 Dainippon Printing Co Ltd 画像変換装置および画像変換方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090012291A (ko) * 2007-07-29 2009-02-03 주식회사 나노포토닉스 회전 대칭형의 광각 렌즈를 이용하여 전방위 영상 및 직선수차보정 영상을 얻는 방법 및 그 영상 시스템
KR20090012290A (ko) * 2007-07-29 2009-02-03 주식회사 나노포토닉스 회전 대칭형의 광각 렌즈를 이용하여 전방위 영상을 얻는 방법 및 장치
JP2009123131A (ja) 2007-11-19 2009-06-04 Alps Electric Co Ltd 撮像装置
JP2009176273A (ja) 2007-12-26 2009-08-06 Dainippon Printing Co Ltd 画像変換装置および画像変換方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017007561A1 (en) * 2015-07-09 2017-01-12 Intel Corporation Accelerated lens distortion correction with near-continuous warping optimization

Also Published As

Publication number Publication date
KR20120020821A (ko) 2012-03-08

Similar Documents

Publication Publication Date Title
US10572982B2 (en) Method and system of image distortion correction for images captured by using a wide-angle lens
US9262807B2 (en) Method and system for correcting a distorted input image
US10887519B2 (en) Method, system and apparatus for stabilising frames of a captured video sequence
US8855441B2 (en) Method and apparatus for transforming a non-linear lens-distorted image
US9280810B2 (en) Method and system for correcting a distorted input image
Greisen et al. An FPGA-based processing pipeline for high-definition stereo video
JP4657367B2 (ja) 画像処理装置、撮像装置、および画像歪み補正方法
JP4382156B2 (ja) 複眼撮像装置、測距装置、視差算出方法及び測距方法
KR101140953B1 (ko) 영상 왜곡 보정 장치 및 방법
JP2000188680A (ja) 高解像度画像の生成方法及びシステム
US9282253B2 (en) System and method for multiple-frame based super resolution interpolation for digital cameras
US10255665B2 (en) Image processing device and method, image capturing device, program, and record medium
US10121262B2 (en) Method, system and apparatus for determining alignment data
JP6236259B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
US8289420B2 (en) Image processing device, camera device, image processing method, and program
US11669942B2 (en) Image de-warping system
US11244431B2 (en) Image processing
TWI476730B (zh) 數位影像的反扭曲處理方法
TWI517094B (zh) 影像校正方法及影像校正電路
JP2007079708A (ja) 画像処理装置及び画像処理方法
JP2009116763A (ja) 画像処理装置および画像データのメモリアクセス方法
JP2008293388A (ja) 画像処理方法、画像処理装置、及びこの画像処理装置を備えた電子機器
Verma et al. Splatty-A unified image demosaicing and rectification method
Luo et al. Improved LUT-based image warping for video cameras
JP3934345B2 (ja) 撮像装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee