KR101540300B1 - 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법 - Google Patents

캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법 Download PDF

Info

Publication number
KR101540300B1
KR101540300B1 KR1020140107254A KR20140107254A KR101540300B1 KR 101540300 B1 KR101540300 B1 KR 101540300B1 KR 1020140107254 A KR1020140107254 A KR 1020140107254A KR 20140107254 A KR20140107254 A KR 20140107254A KR 101540300 B1 KR101540300 B1 KR 101540300B1
Authority
KR
South Korea
Prior art keywords
cache
image
original image
block
blocks
Prior art date
Application number
KR1020140107254A
Other languages
English (en)
Inventor
박현근
김도윤
류정래
최용준
Original Assignee
위드로봇 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 위드로봇 주식회사 filed Critical 위드로봇 주식회사
Priority to KR1020140107254A priority Critical patent/KR101540300B1/ko
Application granted granted Critical
Publication of KR101540300B1 publication Critical patent/KR101540300B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

캐시 메모리를 이용하여 낮은 비용으로 신속하게 이미지 워핑을 수행할 수 있는 이미지 워핑 시스템 및 그 방법이 개시된다. 본 발명의 일 측면에 따르면, 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑(warping)하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위한 이미지 워핑 시스템으로서, 복수의 캐시 블록(cache block)을 포함하는 캐시 메모리, 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블 및 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 제어모듈을 포함하되, 상기 제어모듈은, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 캐시 스케줄링 모듈, 상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 픽셀 그룹 생성모듈 및 상기 캐시 메모리에 포함된 캐시 블록 중 더 이상 이용되지 않는 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정하는 캐시 클리어링 모듈을 포함하는 이미지 워핑 시스템이 제공된다.

Description

캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법{System and method for image warping using cache memory}
본 발명은 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법에 관한 것이다. 보다 상세하게는 캐시 메모리를 이용하여 낮은 비용으로 신속하게 이미지 워핑을 수행할 수 있는 이미지 워핑 시스템 및 그 방법에 관한 것이다.
이미지 워핑은 특정한 규칙에 의해 원본 이미지를 리셈플링(resampling)함으로써, 상기 원본 이미지의 기하학적인 형태를 변형하는 것을 의미한다. 대표적으로 도 1(a)에 도시된 바와 같은 촬영된 이미지의 렌즈 왜곡을 보정하여 도 1(b)에 도시된 바와 같은 렌즈 왜곡이 수정된 이미지를 생성하는 것을 예로 들 수 있다. 또한 이미지 워핑은 스테레오 이미지의 매칭을 위한 이미지 교정이나 여러 장의 이미지를 합성하여 파노라마 이미지를 형성하는 경우 등에도 이용될 수 있다.
이미지 워핑은 도 2에 도시된 바와 같이, 원본 이미지(1)와 변형 이미지(2) 간의 픽셀 좌표 변환 과정을 통해 수행되는데, 원본 이미지(1)의 픽셀의 좌표(u, v)와 그에 상응하는 변형 이미지(2)의 픽셀의 좌표(x, y) 간의 변환 규칙은 미리 결정된 매핑 함수(H)에 의해 표현될 수 있다. 즉 (x, y) = H(u, v)의 관계가 성립하는 것이다. 한편, 실제로 이미지 워핑을 구현할 때에는 역매핑 함수(H-1)을 이용하는 경우 많은데, 이러한 경우 (u, v)= H-1 (x, y)의 관계가 성립하는 된다.
한편, 변형 이미지의 특정 픽셀의 좌표(x, y)에 상응하는 원본 이미지 상의 픽셀의 좌표(u, v)를 역매핑 함수를 이용하여 산출하면, 다음과 같은 수식으로 표현될 수 있다.
<수식> (u, v) = H-1(x, y)=(p+α, w+β)
이때, p와 w는 정수 값이지만, α와β는 0에서 1 사이의 실수 값이다. 따라서, u와 v 역시 실수 값이다. 원본 이미지 상의 모든 픽셀의 좌표는 정수 값으로 표현되므로 (u, v)는 원본 이미지 상의 실제 픽셀의 좌표 값을 나타내는 것이 아니며, (p, w)가 원본 이미지 상의 실제 픽셀의 좌표 값을 나타낸다. 따라서, 이미지 워핑 시에는 좌표 (x, y)를 가지는 변형 이미지 상의 픽셀을 생성하기 위하여, 도 3에 도시된 바와 같이, 좌표 (u, v)를 가지는 원본 이미지 상의 가상 픽셀의 주변 4 개의 이웃 픽셀(P1, P2, P3, P4)을 이중선형보간(bilinear interpolation)하게 되며, 이중선형보간은 아래의 식으로 표현될 수 있다.
<수식> Pout = a
Figure 112014078031536-pat00001
P1+b
Figure 112014078031536-pat00002
P2+c
Figure 112014078031536-pat00003
P3+d
Figure 112014078031536-pat00004
P4
a=(1-α)(1-β), b=α(1-β), c=(1-α)β, d=αβ
(여기서, Pout은 변형 이미지 상의 픽셀의 픽셀 밀도(pixel density), P1 내지 P4는 그에 상응하는 원본 이미지 상의 4개의 이웃 픽셀의 픽셀 밀도)
한편, 역매핑 함수는 도 4에 도시된 바와 같이 룩업 테이블의 형태로 표현될 수 있다. 이러한 룩업 테이블은 이미지 워핑 시에 실시간으로 계산되는 것이 아니라 미리 계산되어 메모리에 저장된다. 도 4에 도시된 바와 같이 역변환 함수를 나타내는 룩업 테이블은 변환 이미지의 픽셀 좌표를 기준으로 구성되므로 이러한 매핑 테이블을 이용하여 이미지 워핑을 수행하는 경우에는 도 5에 도시된 바와 같이, 변형 이미지(2)의 각 픽셀이 순차적으로 생성되어 메모리에 쓰여지며, 이를 위하여 매핑 테이블(3) 내의 각 엔트리는 순차적으로 메모리에서 읽게 되지만 원본 이미지(1)에 포함된 각 픽셀은 비-순차적으로 메모리에서 읽히게 된다.
이러한 특징으로 인해 도 6에 도시되어 있는 종래의 이미지 워핑 시스템(30)에서는 비-순차적으로 읽히게 되는 원본 이미지 데이터(1)는 순차 접근(sequential access) 및 비-순차 접근(non-sequential access)이 모두 빠른 SRAM(static RAM; 10)에 원본 이미지를 저장하며, 순차적으로 읽히게 되는 역매핑함수를 나타내는 이미지 룩업 테이블(21)은 빠른 순차 접근 및 느린 비-순차 접근을 지원하는 DRAM(dynamic RAM; 20)에 저장하고, 이를 이용하여 원본 이미지(11)를 워핑하여 변형 이미지(31)를 생성하는 방식을 취하고 있었다. 하지만 비교적 크기가 큰 원본 이미지 데이터를 저장해야 하는 SRAM은 저장용량에 비해 높은 비용을 가지고 있으므로 종래의 이미지 워핑 시스템의 경우 시스템의 전체적인 구현 비용이 높아진다는 문제점이 있다.
본 발명이 해결하고자 하는 기술적 과제는 캐시 메모리를 활용함으로써, 낮은 비용으로 신속하게 이미지 워핑을 수행할 수 있는 이미지 워핑 시스템을 제공하는 것이다.
본 발명의 일 측면에 따르면, 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑(warping)하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위한 이미지 워핑 시스템으로서, 복수의 캐시 블록(cache block)을 포함하는 캐시 메모리, 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블 및 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 제어모듈을 포함하되, 상기 제어모듈은, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 캐시 스케줄링 모듈, 상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 픽셀 그룹 생성모듈 및 상기 캐시 메모리에 포함된 캐시 블록 중 더 이상 이용되지 않는 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정하는 캐시 클리어링 모듈을 포함하는 이미지 워핑 시스템이 제공된다.
일 실시예에서, 상기 캐시 스케줄링 모듈은, 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록이 로드되면, 상기 원본 이미지 블록이 로드된 캐시 블록의 초기화 비트를 제1초기화 값으로 설정하고, 상기 픽셀 그룹 생성모듈은, 상기 캐시 메모리에 포함된 모든 캐시 블록의 더티 비트를 제1더티 값으로 설정한 후에 상기 대상 픽셀 그룹을 생성하고, 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 더티 비트를 제2더티 값으로 설정하고, 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 초기화 비트를 제2초기화 값으로 설정하고, 상기 캐시 클리어링 모듈은, 상기 캐시 메모리에 포함된 캐시 블록 중 초기화 비트가 제2초기화 값으로 설정되어 있으며 더티 비트가 제1 더티 값으로 설정되어 있는 캐시 블록을 비-유효 캐시 블록으로 설정할 수 있다.
일 실시예에서, 상기 이미지 룩업 테이블은, 상기 변형 이미지에 포함된 각 픽셀 별로 그에 상응하는 상기 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함하는 역변환 테이블이며, 상기 픽셀 그룹 생성모듈은, 상기 대상 픽셀 그룹에 포함될 각각의 대상 픽셀에 대하여, 상기 이미지 룩업 테이블로부터 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보를 획득하고, 획득한 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보에 기초한 이중선형보간을 수행하여 상기 대상 픽셀을 생성할 수 있다.
일 실시예에서, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는, 상기 이미지 룩업 테이블을 이용하여 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정을 시뮬레이션함으로써 생성될 수 있다.
일 실시예에서, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는, 상기 시뮬레이션이 수행되는 과정에서 이용되는 순서에 따라 나열된 상기 원본 이미지 블록의 리스트를 포함할 수 있다.
일 실시예에서, 상기 원본 이미지는 DRAM(Dynamic RAM)에 저장되며, 상기 캐시 메모리는 SRAM(Static RAM)으로 구현되는 것을 특징으로 할 수 있다.
본 발명의 다른 일 측면에 따르면, 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위한 이미지 워핑 시스템으로서, 복수의 캐시 블록을 포함하는 캐시 메모리, 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블 및 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 제어모듈을 포함하되, 상기 제어모듈은, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 캐시 스케줄링 모듈, 상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 픽셀 그룹 생성모듈 및 상기 캐시 메모리에 포함된 캐시 블록 중 이전에 적어도 한 번 이용된 적이 있으나 상기 대상 픽셀 그룹을 생성하는 과정에서는 이용되지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 캐시 클리어링 모듈을 포함하는 이미지 워핑 시스템이 제공된다.
본 발명의 다른 일 측면에 따르면, 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위하여, 복수의 캐시 블록 및 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블을 저장하는 이미지 워핑 시스템이 수행하는 이미지 워핑 방법으로서, 상기 이미지 워핑 시스템이, 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 단계를 포함하되, 상기 대상 픽셀 그룹을 생성하는 단계는, (a) 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계, (b) 상기 원본 이미지에 포함된 각 픽셀과 상기 변형 이미지에 포함된 각 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 단계 및 (c) 상기 캐시 메모리에 포함된 캐시 블록 중 더 이상 필요하지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정하는 단계를 포함하는 이미지 워핑 방법이 제공된다.
일 실시예에서, 상기 (a) 단계는, 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계 및 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록이 로드되면, 상기 원본 이미지 블록이 로드된 캐시 블록의 초기화 비트를 제1초기화 값으로 설정하는 단계를 포함하고, 상기 (b) 단계는, 상기 캐시 메모리에 포함된 모든 캐시 블록의 더티 비트를 제1더티 값으로 설정하는 단계, 상기 대상 픽셀 그룹을 생성하는 단계, 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 더티 비트를 제2더티 값으로 설정하는 단계 및 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 초기화 비트를 제2초기화 값으로 설정하는 단계를 포함하고, 상기 (c) 단계는, 상기 캐시 메모리에 포함된 캐시 블록 중 초기화 비트가 제2초기화 값으로 설정되어 있으며 더티 비트가 제1 더티 값으로 설정되어 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 이미지 룩업 테이블은, 상기 변형 이미지에 포함된 각 픽셀 별로 그에 상응하는 상기 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함하는 역변환 테이블이며, 상기 (b) 단계는, 상기 대상 픽셀 그룹에 포함될 각각의 대상 픽셀에 대하여, 상기 이미지 룩업 테이블로부터 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보를 획득하는 단계 및 획득한 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보에 기초한 이중선형보간을 수행하여 상기 대상 픽셀을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는, 상기 이미지 룩업 테이블을 이용하여 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정을 시뮬레이션함으로써 생성될 수 있다.
본 발명의 다른 일 측면에 따르면, 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위하여, 복수의 캐시 블록 및 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블을 저장하는 이미지 워핑 시스템이 수행하는 이미지 워핑 방법으로서, 상기 이미지 워핑 시스템이, 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 단계를 포함하되, 상기 대상 픽셀 그룹을 생성하는 단계는, (a) 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계, (b) 상기 원본 이미지에 포함된 각 픽셀과 상기 변형 이미지에 포함된 각 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 단계 및 (c) 상기 캐시 메모리에 포함된 캐시 블록 중 이전에 적어도 한 번 이용된 적이 있으나 상기 대상 픽셀 그룹을 생성하는 과정에서는 이용되지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 단계를 포함하는 이미지 워핑 방법이 제공된다.
본 발명의 다른 일 측면에 따르면, 상술한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 다른 일 측면에 따르면, 이미지 워핑 시스템으로서, 프로세서 및 상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며, 상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 이미지 워핑 시스템이 상술한 방법을 수행하도록 하는 이미지 워핑 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 비교적 큰 용량을 가지는 원본 이미지가 용량 대비 비용 저렴한 DRAM에 저장되므로 이미지 워핑 시스템의 전체적인 시스템의 구현 비용이 낮아질 수 있는 효과가 있다.
또한 본 발명의 일 실시예에 따르면, 신속한 임의 접근을 지원하는 SRAM으로 구현되는 캐시 메모리에 추후에 수행될 이미지 워핑에 필요한 원본 이미지 블록을 미리 저장해두고 원본 이미지 블록이 실제로 사용되어야 할 경우에는 이미지 버퍼가 아닌 캐시 메모리를 참조하도록 함으로써 메모리 참조로 인해 이미지 워핑의 성능이 저하되는 것을 방지할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 이미지 워핑의 렌즈 왜곡의 보정에 활용 예를 도시한 도면이다.
도 2는 이미지 워핑 과정에서 수행되는 픽셀 좌표 변환에 대하여 설명하기 위한 도면이다.
도 3은 이미지 워핑 과정에서 수행되는 이중선형보간에 대하여 설명하기 위한 도면이다.
도 4는 역매핑 함수를 표현하는 룩업 테이블을 설명하기 위한 도면이다.
도 5는 이미지 워핑 과정에서 메모리가 어떻게 읽히고 메모리에 어떻게 데이터가 쓰여지는지를 설명하기 위한 도면이다.
도 6은 종래의 이미지 워핑 시스템의 구조를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 이미지 워핑 시스템의 구조를 도시하고 있는 블록도이다.
도 8은 이미지 워핑의 대상이 되는 원본 이미지의 일 예를 도시한 도면이다.
도 9는 이미지 워핑에 의해 생성되는 변형 이미지의 일 예를 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 캐시 메모리의 구조를 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 이미지 룩업 테이블에 포함되어 있는 엔트리의 구조를 도시한 도면이다.
도 12a 본 발명의 일 실시예에 따른 캐시 룩업 테이블을 생성하기 위한 시뮬레이션 과정에서 참조되는 원본 이미지 블록의 순서를 도시하고 있다.
도 12b는 시뮬레이션에 의해 생성되는 본 발명의 일 실시예에 따른 캐시 룩업 테이블을 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 제어모듈의 세부 구성을 도시한 블록도이다.
도 14는 본 발명의 일 실시예에 따른 이미지 워핑 방법을 도시한 흐름도이다.
도 15 내지 도 17은 각각 본 발명의 일 실시예에 따른 이미지 워핑 시스템에 의해 이미지 워핑이 수행되는 과정을 시간 순으로 나열한 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 7는 본 발명의 일 실시예에 따른 이미지 워핑 시스템을 나타내는 블록도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 이미지 워핑 방법을 구현하기 위하여, 이미지 워핑 시스템(100)이 구비될 수 있다.
일 실시예에서, 상기 이미지 워핑 시스템(100)은 프로그래머블 논리 요소와 프로그래밍 가능한 내부선, 메모리 블록으로 된 메모리 요소가 포함된 반도체 소자인 FPGA(Field-Programmable Gate Array)로 구현될 수 있다.
상기 이미지 워핑 시스템(100)은 이미지 룩업 테이블(220)을 이용하여 원본 이미지에 대한 이미지 워핑을 수행함으로써, 변형 이미지를 생성할 수 있다. 한편, 이미지 룩업 테이블은 상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 룩업 테이블일 수 있다. 예를 들어, 상기 이미지 룩업 테이블은 상술한 매핑 함수(H) 또는 역매핑 함수(H-1)을 표현하는 룩업 테이블일 수 있다.
일 실시예에서, 상기 원본 이미지는 카메라 모듈(300)에 의해 촬영된 이미지일 수 있다.
상기 원본 이미지는 이미지 버퍼(210)에 저장될 수 있으며, 상기 이미지 워핑 시스템(100)은 이미지 버퍼(210)로부터 상기 원본 이미지 데이터를 로드할 수 있다. 한편, 상기 이미지 버퍼(210) 및 이미지 룩업 테이블(220)은 소정의 메모리 장치(200) 내에 포함될 수 있다. 상기 메모리 장치(200)는 SRAM일 수도 있으나, 바람직하게는 대규모 용량을 지원하며 용량 대비 비용이 낮은 DRAM일 수 있다.
한편, 상기 원본 이미지는 복수의 이미지 블록으로 구성될 수 있으며, 상기 이미지 워핑 시스템(100)은 상기 원본 이미지를 상기 복수의 이미지 블록으로 분할된 것처럼 취급할 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 상기 이미지 워핑 시스템(100)은 상기 원본 이미지를 일정한 크기(예를 들면 m픽셀ㅧn픽셀)의 이미지 블록(예를 들면, 41)으로 구분할 수 있으며, 구분된 이미지 블록 단위로 특정 동작(예를 들면, 후술하는 바와 같은 이미지 블록을 캐시 메모리에 로드하는 동작 등)을 수행할 수 있다. 즉, 이미지 블록은 상기 이미지 워핑 시스템(100)에 의해 수행되는 특정 동작(예를 들면, 후술하는 바와 같은 이미지 블록을 캐시 메모리에 로드하는 동작 등)의 처리 단위일 수 있다. 하지만, 상기 이미지 워핑 시스템(100)은 상기 원본 이미지를 논리적으로 분할된 이미지 블록으로 취급하는 것이며, 상기 이미지 버퍼(210)에 상기 원본 이미지가 이미지 블록의 단위로 물리적으로 분할되거나 이미지 블록 단위로 분산 저장되는 것은 아니다.
상기 이미지 워핑 시스템(100)은 생성한 변형 이미지를 상기 메모리 장치(200) 또는 상기 이미지 버퍼(210)에 저장할 수 있다.
한편, 상기 변형 이미지는 복수의 픽셀 그룹으로 구성될 수 있다. 상기 픽셀 그룹은 복수의 픽셀로 구성될 수 있으며, 상기 이미지 워핑 시스템(100)은 픽셀 그룹 단위로 특정 동작(예를 들면, 후술하는 바와 같은 이미지 워핑을 통한 픽셀 그룹 생성 동작 등)을 수행할 수 있다. 즉, 픽셀 그룹은 상기 이미지 워핑 시스템(100)에 의해 수행되는 특정 동작(예를 들면, 후술하는 바와 같은 이미지 워핑을 통한 픽셀 그룹 생성 동작 등)의 처리 단위일 수 있다.
일 실시예에서, 상기 이미지 워핑 시스템(100)은 변형 이미지를 구성하는 각각의 픽셀 라인을 각각의 픽셀 그룹으로 취급할 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 상기 이미지 워핑 시스템(100)은 연속된 두 개의 픽셀 라인을 하나의 픽셀 그룹으로 취급할 수도 있으며, 하나의 픽셀 라인을 절반씩 나누어 2 개의 픽셀 그룹으로 취급할 수도 있다. 이하에서는 하나의 픽셀 라인을 하나의 픽셀 그룹으로 취급하는 예에 대하여 설명하지만 다른 경우도 동일하게 적용될 수 있음은 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 용이하게 이해할 수 있을 것이다.
도 9는 변형 이미지를 구성하는 하나의 픽셀 라인을 픽셀 그룹으로 취급하는 예를 도시한 도면이다. 도 9에 도시된 바와 같이, 하나의 픽셀 그룹은 하나의 픽셀 라인(예를 들어, 51)일 수 있다. 후술하는 바와 같이 상기 이미지 워핑 시스템(100)은 픽셀 그룹(예를 들면, 픽셀 라인) 별로 이미지 워핑을 수행할 수 있다.
다시 도 7을 참조하면, 상기 이미지 워핑 시스템(100)은 캐시 메모리(110), 캐시 룩업 테이블(120) 및 제어모듈(130)을 포함할 수 있다. 본 발명의 실시예에 따라서는, 상기 이미지 워핑 시스템(100)은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다. 예를 들어 상기 워핑 시스템(100)은 DRAM이나 SRAM과 같은 상기 메모리 장치(200)를 액세스할 수 있는 메모리 컨트롤러(미도시)을 더 포함할 수도 있다.
상기 이미지 워핑 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 이미지 워핑 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 이미지 워핑 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 예컨대, 캐시 메모리(110), 캐시 룩업 테이블(120) 및/또는 제어모듈(130)은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
상기 제어모듈(130)은 본 발명의 일 실시예에 따른 이미지 워핑 시스템(100)에 포함된 다른 구성들(예컨대, 캐시 메모리(110) 및/또는 캐시 룩업 테이블(120) 등)의 기능 및/또는 리소스를 제어할 수 있다.
상기 캐시 메모리(110)는 복수의 캐시 블록을 포함할 수 있다.
상기 캐시 메모리(110)는 상기 이미지 워핑 시스템(100) 내부에 포함된 메모리 장치일 수 있으며, 빠른 임의 접근을 지원하는 SRAM으로 구현될 수 있다.
도 10은 캐시 메모리(110)의 일 예를 도시한 도면이다. 도 10에 도시된 바와 같이 상기 캐시 메모리(110)은 일정한 개수(예를 들면, L개)의 캐시 블록(C0 내지 CL-1)을 포함할 수 있으며, 각각의 캐시 블록은 일정한 크기를 가질 수 있다.
한편, 상기 캐시 메모리에 포함된 각각의 캐시 블록은 상기 원본 이미지에 포함된 원본 이미지 블록 중 어느 하나를 저장할 수 있다. 따라서, 상기 캐시 블록의 크기는 상기 원본 이미지 블록의 크기와 동일할 수 있다. 예를 들어, 원본 이미지 블록의 크기가 m픽셀ㅧn픽셀인 경우, 상기 캐시 블록의 크기도 도 10에 도시된 바와 같이 m픽셀ㅧn픽셀일 수 있다. 하지만 이에 한정되는 것은 아니며, 상기 캐시 블록의 크기는 상기 원본 이미지 블록의 크기보다 클 수도 있다.
반대로 캐시 블록의 크기가 미리 결정되어 있는 경우, 상기 이미지 워핑 시스템(100)은 상기 원본 이미지가 상기 캐시 블록의 크기를 가지는 이미지 블록으로 분할되어 있는 것처럼 취급할 수 있다.
다시 도 7을 참조하면, 상기 제어모듈(130)은 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 이미지 워핑을 통해 상기 대상 픽셀 그룹을 생성할 수 있다. 예를 들어, 상기 변형 이미지를 구성하는 각각의 픽셀 라인을 각각의 픽셀 그룹으로 취급하는 경우, 상기 제어모듈(130)은 픽셀 라인 단위로 이미지 워핑을 수행할 수 있다. 즉, 상기 제어모듈(130)은 먼저 상기 변형 이미지를 구성하는 첫 번째 라인을 생성하고, 다음으로 두 번째 라인을 생성하고, …, 마지막 라인까지 생성할 수 있다.
상기 제어모듈(130)은 대상 픽셀 그룹에 포함된 각각의 픽셀에 대한 좌표 변환 과정 및 이중선형보간 과정을 수행함으로써 상기 대상 픽셀 그룹을 생성할 수 있다. 여기서 특정 픽셀에 대한 좌표 변환 과정이라고 함은 상기 특정 픽셀에 상응하는 원본 이미지 상의 네 개의 픽셀을 판단하는 과정 또는 상기 특정 픽셀에 상응하는 원본 이미지 상의 네 개의 픽셀 중 어느 하나를 판단하는 과정을 의미할 수 있다.
상기 좌표 변환 과정 및 이중선형보간 과정에서, 상기 제어모듈(130)은 상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블(220)을 이용할 수 있다.
일 실시예에서, 상기 이미지 룩업 테이블(220)은 도 4에 도시되어 있는 바와 같은 역매핑 함수 테이블일 수 있다. 이러한 경우, 상기 이미지 룩업 테이블(220)은 상기 변환 이미지를 구성하는 각각의 픽셀에 상응하는 엔트리를 포함할 수 있으며, 각각의 엔트리는 상기 변환 이미지에 포함된 각각의 픽셀에 상응하는 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함할 수 있다. 도 11은 본 발명의 일 실시예에 따른 이미지 룩업 테이블(220)에 포함되는 엔트리의 구조를 나타내는 도면이다. 도 4를 참조하여 설명한 바와 같이, 변환 이미지를 구성하는 하나의 픽셀은 원본 이미지 상의 네 개의 이웃 픽셀을 이중선형보간하여야 하므로 변환 이미지를 구성하는 하나의 픽셀에 상응하는 엔트리는 네 개의 이웃 픽셀(P1 내지 P4)이 위치하는 원본 이미지 블록 정보(61 내지 64)를 포함할 수 있다. 한편, 상기 엔트리는 픽셀(P1)의 원본 이미지 블록 상에서의 상대 위치인 P1(x)(65) 및 P1(y)(66)를 더 포함할 수 있다. 따라서, 픽셀(P1)의 절대 위치는 픽셀(P1)이 위치하고 있는 원본 이미지 블록 정보(61), P1(x)(65) 및 P1(y)(66)에 의해 산출될 수 있다. 한편, 상기 네 개의 이웃 픽셀은 좌우 또는 아래 위로 인접한 픽셀이므로 픽셀(P1)의 절대 위치로부터 도출될 수 있다. 한편, 상기 엔트리는 이중선형보간에 필요한 가중치 정보 α(67)및 β(68)을 더 포함할 수 있다.
이하에서는 이해의 편의를 위하여, 상기 제어모듈(130)이 상기 이미지 룩업 테이블(220)을 이용하여 변환 이미지를 생성하는 일 예를 설명하기로 한다. 상기 제어모듈(130)은 상기 변환 이미지를 생성하기 위하여, 상기 변환 이미지를 구성하는 각각의 픽셀 라인을 첫 번째 픽셀 라인부터 마지막 픽셀 라인의 순서로 차례대로 생성할 수 있으며, 각각의 픽셀라인을 생성하기 위하여 각 픽셀라인을 구성하는 픽셀을 가장 왼쪽 픽셀부터 마지막 픽셀까지의 순서로 각 픽셀에 대한 좌표 변환 및 이중선형보간 과정을 수행할 수 있다. 한편, 상기 제어모듈(130)은 이미지 룩업 테이블(220)을 이용하여 특정 픽셀에 대한 좌표 변환 및 이중선형보간을 수행할 수 있다. 예를 들어, 상기 제어모듈(130)은 변환 이미지 상의 (u, v) 픽셀의 경우, 상기 이미지 룩업 테이블(220)의 (u, v) 번째 엔트리를 참조할 수 있으며, (u, v) 번째 엔트리에 포함되어 있는 P1의 원본 이미지 블록 정보(61) 및 P1(x), P1(y)를 통해 상기 변환 이미지 상의 (u, v) 픽셀에 상응하는 원본 이미지 상의 P1 픽셀을 판단할 수 있다. 또한, 상기 제어모듈(130)은 P1 픽셀의 오른쪽 픽셀, 아래쪽 픽셀 및 오른쪽 아래 픽셀을 각각 P2, P3 및 P4 픽셀로 판단할 수 있다. 이후 상기 제어모듈(130)은 아래 식을 이용하여 이중선형보간을 수행할 수 있다.
<식> Pout = a
Figure 112014078031536-pat00005
P1+b
Figure 112014078031536-pat00006
P2+c
Figure 112014078031536-pat00007
P3+d
Figure 112014078031536-pat00008
P4
a=(1-α)(1-β), b=α(1-β), c=(1-α)β, d=αβ(여기서, Pout은 변형 이미지 상의 픽셀의 픽셀 밀도(pixel density), P1 내지 P4는 그에 상응하는 원본 이미지 상의 4개의 이웃 픽셀의 픽셀 밀도)
한편, 상기 이미지 룩업 테이블(220)은 상기 이미지 워핑 시스템(100)이 상기 원본 이미지에 대한 이미지 워핑을 수행하기 이전에 미리 결정되어 있을 수 있다. 상기 이미지 룩업 테이블(220)은 원본 이미지의 특정 좌표에 위치한 픽셀이 변형 이미지 상의 어떤 좌표에 대응되는지에 관한 것이므로 원본 이미지 상의 특정 좌표에 위치하고 있는 픽셀이 실제로 어떠한 값을 가지는 지와는 무관하다. 따라서, 원본 이미지가 특정되지 않더라도 상기 이미지 룩업 테이블(220)은 미리 특정될 수 있다. 다만 상기 이미지 룩업 테이블(220)은 상기 이미지 워핑 시스템(100)이 원본 이미지를 어떠한 용도로 변환할지에 따라 결정될 수 있다. 예를 들어, 상기 이미지 워핑 시스템(100)이 특정한 렌즈 왜곡도를 가지는 렌즈에 의해 촬영된 이미지의 렌즈 왜곡을 해소하고자 하는 용도로 이용되는 경우, 상기 이미지 룩업 테이블(220)은 카메라에 의해 실제로 촬영되는 이미지(즉, 원본 이미지)와 무관하게 상기 렌즈 왜곡도에 의해 결정될 수 있다.
한편, 상기 캐시 룩업 테이블(120)은 상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장할 수 있다. 후술하는 바와 같이, 상기 제어모듈(130)은 이미지 워핑을 수행하기 위해 이미지 버퍼(210)에 저장되어 있는 원본 이미지를 직접 참조하는 것이 아니라 이미지 버퍼(210)로부터 상기 캐시 메모리(110)로 원본 이미지 블록 중 일부를 로드한 후, 상기 캐시 메모리(110)에 로드된 원본 이미지 블록을 참조하게 되는데, 상기 순서 정보는 상기 제어모듈(130)에 의해 캐시 메모리(110)로 로드될 원본 이미지 블록의 순서를 나타내는 정보일 수 있다. 따라서, 상기 순서 정보는 원본 이미지 블록을 식별하기 위한 식별정보 혹은 상기 원본 이미지 블록을 참조하기 위한 참조정보의 리스트의 형태일 수 있다.
상기 캐시 룩업 테이블(120)에 저장되어 있는 상기 원본 이미지 블록의 순서 정보는 상기 캐시 메모리(110)에 로드될 원본 이미지 블록의 순서를 나타내는 정보이므로 상기 제어모듈(130)은 상기 캐시 메모리(110)에 원본 이미지 블록 중 일부를 로드해야 하는 경우가 발생하면, 상기 캐시 룩업 테이블을 참조하여 아직 상기 캐시 메모리(110)에 로드된 적이 없는 원본 이미지 블록 중 상기 캐시 룩업 테이블(120)의 순서 정보 중 가장 먼저 위치한 원본 이미지 블록부터 차례로 상기 캐시 메모리(110)에 로드할 수 있다.
한편, 상기 캐시 룩업 테이블(120)에 저장되어 있는 원본 이미지 블록의 순서 정보는 상기 이미지 워핑 시스템(100)이 상기 원본 이미지에 대한 이미지 워핑을 수행하기 이전에 미리 계산/산출되어 상기 캐시 룩업 테이블(120)에 저장될 수 있다.
일 실시예에서, 상기 캐시 룩업 테이블(120)에 저장된 상기 원본 이미지 블록의 순서 정보는 상기 이미지 룩업 테이블(220)을 이용하여 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정을 미리 시뮬레이션함으로써 생성될 수 있으며, 이 경우 상기 캐시 룩업 테이블(120)에 저장된 상기 원본 이미지 블록의 순서 정보는 상기 시뮬레이션이 수행되는 과정에서 이용되는 순서에 따라 나열된 상기 원본 이미지 블록의 리스트를 포함할 수 있다.
상술한 바와 같이 상기 캐시 룩업 테이블(120)에 저장되어 있는 원본 이미지 블록의 순서 정보는 상기 이미지 워핑 시스템(100)이 상기 원본 이미지에 대한 이미지 워핑을 수행하기 이전에 미리 계산/산출되어 상기 캐시 룩업 테이블(120)에 저장될 수 있다. 따라서, 상기 시뮬레이션 역시 상기 이미지 워핑 시스템(100)이 상기 원본 이미지에 대한 이미지 워핑을 수행하기 이전에 미리 수행될 수 있다. 즉, 상기 시뮬레이션은 상기 이미지 워핑 시스템(100)이 실제로 변환하고자 하는 원본 이미지를 대상으로 수행되는 것이 아니다. 또한, 상기 시뮬레이션은 상기 변형 이미지에 포함되는 각각의 픽셀을 차례대로 생성하는 일련의 과정을 모두 수행할 필요는 없으며, 그 중에서 상기 변형 이미지에 포함되는 각 픽셀에 상응하는 원본 이미지 상의 네 이웃 픽셀이 각각 어떠한 원본 이미지 블록에 위치하는지를 판단하는 과정을 포함하면 족하다. 따라서, 상기 시뮬레이션의 일 예에서는 변형 이미지를 생성하는 과정 중 좌표 변환 과정(즉, 변형 이미지에 포함되는 각각의 픽셀에 상응하는 원본 이미지 상의 네 이웃 픽셀을 판단하는 과정)만을 수행할 수 있으며, 이중선형보간 과정은 수행하지 않을 수 있다.
예를 들어, 만약 상기 제어모듈(130)이 변형 이미지의 첫 번째 픽셀 라인부터 마지막 픽셀 라인의 순서로, 각 픽셀라인에서는 첫 번째 픽셀부터 마지막 픽셀의 순서로 이미지 워핑을 수행하도록 구현되어 있다고 하면, 상기 시뮬레이션 과정 역시 첫 번째 픽셀 라인부터 마지막 픽셀 라인의 순서로, 각 픽셀라인에서는 첫 번째 픽셀부터 마지막 픽셀의 순서로 진행될 수 있으며, 각각의 픽셀을 생성하기 위해서 임의의 원본 이미지 상의 어떠한 이미지 블록 상의 픽셀이 참조되어야 하는지를 판단하는 과정이 포함될 수 있다.
도 12a 및 도 12b는 상기 캐시 룩업 테이블(120)에 저장되는 원본 이미지 블록의 순서 정보를 보다 상세히 설명하기 위한 도면이다. 도 12a는 변형 이미지를 생성하는 시뮬레이션 과정에서 참조되는 원본 이미지 블록의 순서를 도시하고 있다. 보다 상세하게는 도 12a는 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정이 올바르게 수행되기 위해서 원본 이미지 블록 (0, 3), (0, 2), (1, 2), (2, 2), (2,1), (3, 1), (4, 1), (4, 0), (5, 0), (6, 0), …이 순서대로 필요한 경우를 도시하고 있다. 도 12a와 같은 예에서 시뮬레이션이 수행되면 도 12a에 도시된 바와 같은 원본 이미지 블록의 순서 정보가 도출될 수 있으며, 도출된 원본 이미지 블록의 순서 정보는 상기 캐시 룩업 테이블(120)에 미리 저장될 수 있다.
이하에서는 도 13을 참조하여, 상기 제어모듈(130)의 구성에 관하여 설명하기로 한다. 도 13은 상기 제어모듈(130)의 구성을 나타내는 블록도이다.
도 13을 참조하면, 상기 제어모듈(130)은 캐시 스케줄링 모듈(131), 픽셀 그룹 생성모듈(132), 캐시 클리어링 모듈(133)을 포함할 수 있다.
상술한 바와 같이 상기 제어모듈(130)은 생성할 변형 이미지를 복수의 픽셀 그룹으로 논리적으로 구분하고, 픽셀 그룹을 순차적으로 생성할 수 있다. 이하에서는 하나의 픽셀 그룹을 생성하기 위하여 캐시 스케줄링 모듈(131), 픽셀 그룹 생성모듈(132) 및 캐시 클리어링 모듈(133)이 수행하는 기능을 설명하기로 한다.
하나의 대상 픽셀 그룹을 생성하기 위하여, 먼저, 상기 캐시 스케줄링 모듈(131)은 상기 캐시 룩업 테이블(120)에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리(110)의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드할 수 있다. 여기서 비-유효 캐시 블록이라고 함은 아직 한 번도 원본 이미지 블록이 로드되지 않은 캐시 블록, 및 이후의 이미지 워핑 과정에서 더 이상 이용되지 않을 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부 의미할 수 있다. 즉, 비-유효 캐시 블록은 이후의 이미지 워핑 과정에서 이용되지 않을 원본 이미지 블록을 저장하고 있는 캐시 블록 전부를 포함할 수도 있지만, 구현 예에 따라서는 이후의 이미지 워핑 과정에서 이용되지 않을 원본 이미지 블록을 저장하고 있는 캐시 블록 중 일부만을 포함할 수도 있다.
한편, 상기 픽셀 그룹 생성모듈(132)은 상기 이미지 룩업 테이블(220), 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성할 수 있다.
상기 픽셀 그룹 생성모듈(110)은 상기 이미지 룩업 테이블(220)을 이용하여 상기 픽셀 그룹에 포함되는 각각의 픽셀에 대한 좌표 변환 과정 및 이중선형보간 과정을 수행할 수 있으며, 좌표 변환 과정 및 이중선형보간 과정에서 원본 이미지 상의 픽셀을 이용해야 할 경우, 상기 이미지 버퍼(210) 대신 상기 캐시 메모리(110)에 저장되어 있는 데이터를 참조할 수 있다.
일 실시예에서, 상기 이미지 룩업 테이블(220)은 상기 변형 이미지에 포함된 각 픽셀 별로 그에 상응하는 상기 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함하는 역변환 테이블일 수 있다. 이 경우 상기 픽셀 그룹 생성모듈(132)은 상기 대상 픽셀 그룹에 포함될 각각의 대상 픽셀에 대하여, 상기 이미지 룩업 테이블(220)을 이용하여 상기 캐시 메모리(110)로부터 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 네 이웃 픽셀을 획득하고, 상기 이미지 룩업 테이블(220)로부터 상기 대상 픽셀에 상응하는 가중치 정보를 획득하고, 획득한 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 네 이웃 픽셀 및 가중치 정보에 기초한 이중선형보간을 수행하여 상기 대상 픽셀을 생성할 수 있다.
한편, 상기 캐시 클리어링 모듈(133)은 상기 캐시 메모리(120)에 포함된 캐시 블록 중 더 이상 이용되지 않는 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정함으로써, 다음 픽셀 그룹에 대한 이미지 워핑이 수행될 때 상기 캐시 스케줄링 모듈(131)이 새로 설정된 비-유효 캐시 블록에 원본 이미지 블록을 로드하도록 할 수 있다.
한편, 일 실시예에서, 상기 제어모듈(130)은 비-유효 캐시 블록을 판단하기 위하여 제1 초기화 값(예를 들면, 1) 또는 제2초기화 값(예를 들면, 0)을 가질 수 있는 초기화 비트 및 제1 터티 값(예를 들면, 0) 또는 제2더티 값(예를 들면, 1)을 가질 수 있는 더티 비트를 이용할 수 있는데, 이하에서는 이러한 실시예에 대하여 도 14를 참조하여, 설명하기로 한다. 도 14는 변형 이미지를 픽셀 라인 별로 생성하는 예를 도시하고 있다.
한편, 도 14에 따른 실시예에서는, 변형 이미지를 생성하기 위한 이미지 워핑 과정이 수행되기 이전에, 캐시 메모리(110) 내의 모든 캐시 블록이 비-유효 캐시 블록으로 설정되는 초기화 과정(미도시)이 선행되어야 한다.
도 14를 참조하면, 상기 제어모듈(130)은 변형 이미지의 각 픽셀 라인을 대상 픽셀 그룹으로 설정할 수 있다(S100).
상기 캐시 스케줄링 모듈(131)은 상술한 바와 같이 상기 캐시 룩업 테이블(120)에 저장된 상기 원본 이미지 블록의 순서 정보에 따라 상기 캐시 메모리(110)의 비-유효 캐시 블록에 새로운 원본 이미지 블록을 로드할 수 있다(S200). 한편, 상기 캐시 스케줄링 모듈(131)은 상기 캐시 메모리(110)의 비-유효 캐시 블록에 원본 이미지 블록이 로드되면, 원본 이미지 블록이 로드된 캐시 블록의 초기화 비트를 제1초기화 값(예를 들어, 1)으로 설정할 수 있다(S210).
한편, 상기 픽셀 그룹 생성모듈(132)은 대상 픽셀 그룹을 생성하기 전에, 상기 캐시 메모리에 포함된 모든 캐시 블록의 더티 비트를 제1더티 값(예를 들면, 0)으로 설정할 수 있다(S300, S310).
이후 상기 픽셀 그룹 생성모듈(132)은 대상 픽셀 그룹 내의 각 픽셀(P)에 대하여, 상기 이미지 룩업 테이블(220)을 이용하여 캐시 메모리(110)로부터 픽셀(P)에 상응하는 원본 이미지 상의 픽셀을 획득하고(S311), 상기 이미지 룩업 테이블(220)로부터 가중치 정보를 획득하고(S312) 이중선형보간을 수행하여 픽셀(P)를 생성할 수 있다(S313). 한편, 상기 픽셀 그룹 생성모듈(132)은 픽셀(P)의 생성하는 과정에서 사용된 원본 이미지 블록(즉, S311 단계에서 참조된 원본 이미지 블록)을 저장하고 있는 캐시 블록의 더티 비트를 제2더티 값(예를 들면, 1)으로 설정하고, 초기화 비트를 제2초기화 값(예를 들면, 0)으로 설정할 수 있다(S134).
상기 대상 픽셀 그룹에 대한 이미지 워핑 과정(즉, S310 단계)이 수행된 이후에 특정 캐시 블록의 더티 비트가 제1 더티 값으로 설정되어 있음은 상기 대상 픽셀 그룹에 대한 이미지 워핑 과정(즉, S310 단계)에서 상기 특정 캐시 블록에 저장되어 있는 원본 이미지 블록이 전혀 참조되지 않았음을 의미하며, 이러한 경우 상기 특정 캐시 블록에 저장되어 있는 원본 이미지 블록은 이후의 이미지 워핑 과정에서도 더 이상 이용되지 않는다. 따라서, 상기 캐시 클리어링 모듈(133)은 더티 비트가 제1 더티 값으로 설정되어 있는 상기 특정 캐시 블록에 다른 원본 이미지 블록이 로드될 수 있도록 상기 특정 캐시 블록을 비-유효 캐시 블록으로 설정할 수 있다. 다만 상기 특정 캐시 블록의 더티 비트가 제1 더티 값으로 설정되어 있다고 하더라도 상기 특정 캐시 블록의 초기화 비트가 제2 초기화 값으로 설정되어 있는 경우, 상기 특정 캐시 블록에 로드된 원본 이미지 블록은 상기 원본 이미지 블록이 로드된 이후 한 번도 참조된 적이 없음을 의미하며, 이러한 경우 상기 특정 캐시 블록은 이후의 이미지 워핑 과정에서 이용되어야 하지만 미리 로드된 원본 이미지 블록을 저장하고 있는 것이므로 상기 캐시 클리어링 모듈(133)은 초기화 비트가 제2 초기화 값으로 설정되어 있는 캐시 블록은 비-유효 캐시 블록으로 설정하지 않을 수 있다.
정리하면, 상기 캐시 클리어링 모듈(133)은 상기 캐시 메모리(110)에 포함된 캐시 블록 중 초기화 비트가 제2초기화 값(예를 들면, 0)으로 설정되어 있으며 더티 비트가 제1 더티 값(예를 들면, 0)으로 설정되어 있는 캐시 블록(즉, 상기 캐시 메모리(110)에 포함된 캐시 블록 중 이전에 적어도 한 번 이용된 적이 있으나 상기 대상 픽셀 그룹을 생성하는 과정에서는 이용되지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록)을 비-유효 캐시 블록으로 설정할 수 있다(S400).
도 15 내지 도 17은 각각 본 발명의 일 실시예에 따른 이미지 워핑 시스템(100)에 의해 이미지 워핑이 수행되는 과정을 시간 순으로 나열한 도면이다.
도 15(a), 도 16(a) 및 도 17(a)는 원본 이미지를 나타내며, 도 15(a), 도 16(a) 및 도 17(a)의 각 격자는 원본 이미지 블록을 나타내며, 도 15(a), 도 16(a) 및 도 17(a)의 격자 중 굵게 표현되어 있는 격자는 캐시 메모리에 로드되어 있는 원본 이미지 블록을 나타낸다. 한편, 도 15(a), 도 16(a) 및 도 17(a)의 사선은 해당 도면에 상응하는 이미지 워핑 과정에서 생성되는 변형 이미지의 픽셀 라인의 생성과정에서 참조되어야 하는 원본 이미지 상의 픽셀들을 나타낸다.
도 15(b), 도 16(b) 및 도 17(b)에 표시되어 있는 수평선은 각각 해당 도면에 상응하는 이미지 워핑 과정에서 생성되는 변형 이미지 상의 픽셀 라인을 도시하고 있다.
도 15(c), 도 16(c) 및 도 17(c)는 각각 해당 도면에 상응하는 이미지 워핑 과정에서 생성된 변형 이미지의 중간 결과물을 도시하고 있다.
한편, 구현 예에 따라서, 상기 이미지 워핑 시스템(100)은 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다. 여기서, 상기 프로그램은, 프로세서에 의해 실행되는 경우, 본 실시예에 따른 이미지 워핑 시스템(100)으로 하여금, 상술한 이미지 워핑 방법을 수행하도록 할 수 있다.
한편, 상술한 바와 같이 상기 이미지 버퍼(210)는 DRAM에 저장될 수 있으며, 상기 캐시 메모리(110)는 SRAM으로 구현될 수 있다. 따라서, 본 발명의 일 실시예에 따르면, 비교적 큰 용량을 가지는 원본 이미지가 용량 대비 비용 저렴한 DRAM에 저장되므로 전체적인 시스템의 구현 비용이 낮아질 수 있다. 또한 본 발명의 일 실시예에 따르면, 신속한 임의 접근을 지원하는 SRAM으로 구현되는 캐시 메모리에 원본 이미지 중 추후에 수행될 이미지 워핑에 필요한 원본 이미지 블록을 미리 저장해두고 실제로 원본 이미지 블록이 사용되어야 할 경우에는 캐시 메모리를 참조하도록 함으로써 메모리 참조로 인해 이미지 워핑의 성능이 저하되는 것을 방지할 수 있다.
한편, 본 발명의 실시예에 따른 이미지 워핑 시스템 제공방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명의 실시예에 따른 제어 프로그램 및 대상 프로그램도 컴퓨터로 판독 가능한 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (14)

  1. 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑(warping)하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위한 이미지 워핑 시스템으로서,
    복수의 캐시 블록(cache block)을 포함하는 캐시 메모리;
    상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블; 및
    상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 제어모듈을 포함하되,
    상기 제어모듈은,
    상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 캐시 스케줄링 모듈;
    상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 픽셀 그룹 생성모듈; 및
    상기 캐시 메모리에 포함된 캐시 블록 중 더 이상 이용되지 않는 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정하는 캐시 클리어링 모듈을 포함하는 이미지 워핑 시스템.
  2. 제1항에 있어서,
    상기 캐시 스케줄링 모듈은,
    상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록이 로드되면, 상기 원본 이미지 블록이 로드된 캐시 블록의 초기화 비트를 제1초기화 값으로 설정하고,
    상기 픽셀 그룹 생성모듈은,
    상기 캐시 메모리에 포함된 모든 캐시 블록의 더티 비트를 제1더티 값으로 설정한 후에 상기 대상 픽셀 그룹을 생성하고, 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 더티 비트를 제2더티 값으로 설정하고, 상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 초기화 비트를 제2초기화 값으로 설정하고,
    상기 캐시 클리어링 모듈은,
    상기 캐시 메모리에 포함된 캐시 블록 중 초기화 비트가 제2초기화 값으로 설정되어 있으며 더티 비트가 제1 더티 값으로 설정되어 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 이미지 워핑 시스템.
  3. 제1항에 있어서,
    상기 이미지 룩업 테이블은,
    상기 변형 이미지에 포함된 각 픽셀 별로 그에 상응하는 상기 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함하는 역변환 테이블이며,
    상기 픽셀 그룹 생성모듈은, 상기 대상 픽셀 그룹에 포함될 각각의 대상 픽셀에 대하여,
    상기 이미지 룩업 테이블을 이용하여 상기 캐시 메모리로부터 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀을 획득하고, 상기 이미지 룩업 테이블로부터 상기 대상 픽셀에 상응하는 가중치 정보를 획득하고, 획득한 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보에 기초한 이중선형보간(bilinear interpolation)을 수행하여 상기 대상 픽셀을 생성하는 이미지 워핑 시스템.
  4. 제1항에 있어서,
    상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는,
    상기 이미지 룩업 테이블을 이용하여 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정을 시뮬레이션함으로써 생성되는 이미지 워핑 시스템.
  5. 제4항에 있어서,
    상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는,
    상기 시뮬레이션이 수행되는 과정에서 이용되는 순서에 따라 나열된 상기 원본 이미지 블록의 리스트를 포함하는 이미지 워핑 시스템.
  6. 제1항에 있어서,
    상기 원본 이미지는 DRAM(Dynamic RAM)에 저장되며, 상기 캐시 메모리는 SRAM(Static RAM)으로 구현되는 것을 특징으로 하는 이미지 워핑 시스템.
  7. 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위한 이미지 워핑 시스템으로서,
    복수의 캐시 블록을 포함하는 캐시 메모리;
    상기 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블; 및
    상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 제어모듈을 포함하되,
    상기 제어모듈은,
    상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 캐시 스케줄링 모듈;
    상기 변형 이미지에 포함된 픽셀과 상기 원본 이미지에 포함된 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 상기 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 픽셀 그룹 생성모듈; 및
    상기 캐시 메모리에 포함된 캐시 블록 중 이전에 적어도 한 번 이용된 적이 있으나 상기 대상 픽셀 그룹을 생성하는 과정에서는 이용되지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 캐시 클리어링 모듈을 포함하는 이미지 워핑 시스템.
  8. 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위하여, 복수의 캐시 블록 및 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블을 저장하는 이미지 워핑 시스템이 수행하는 이미지 워핑 방법으로서,
    상기 이미지 워핑 시스템이, 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 단계를 포함하되,
    상기 대상 픽셀 그룹을 생성하는 단계는,
    (a) 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계;
    (b) 상기 원본 이미지에 포함된 각 픽셀과 상기 변형 이미지에 포함된 각 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 단계; 및
    (c) 캐시 메모리에 포함된 캐시 블록 중 더 이상 필요하지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록 중 적어도 일부를 비-유효 캐시 블록으로 설정하는 단계를 포함하는 이미지 워핑 방법.
  9. 제8항에 있어서,
    상기 (a) 단계는,
    상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계; 및
    상기 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록이 로드되면, 상기 원본 이미지 블록이 로드된 캐시 블록의 초기화 비트를 제1초기화 값으로 설정하는 단계를 포함하고,
    상기 (b) 단계는,
    상기 캐시 메모리에 포함된 모든 캐시 블록의 더티 비트를 제1더티 값으로 설정하는 단계;
    상기 대상 픽셀 그룹을 생성하는 단계;
    상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 더티 비트를 제2더티 값으로 설정하는 단계; 및
    상기 대상 픽셀 그룹의 생성에 이용된 원본 이미지 블록을 저장하고 있는 캐시 블록의 초기화 비트를 제2초기화 값으로 설정하는 단계를 포함하고,
    상기 (c) 단계는,
    상기 캐시 메모리에 포함된 캐시 블록 중 초기화 비트가 제2초기화 값으로 설정되어 있으며 더티 비트가 제1 더티 값으로 설정되어 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 단계를 포함하는 이미지 워핑 방법.
  10. 제8항에 있어서,
    상기 이미지 룩업 테이블은,
    상기 변형 이미지에 포함된 각 픽셀 별로 그에 상응하는 상기 원본 이미지 상의 픽셀의 위치정보 및 가중치 정보를 포함하는 역변환 테이블이며,
    상기 (b) 단계는, 상기 대상 픽셀 그룹에 포함될 각각의 대상 픽셀에 대하여,
    상기 이미지 룩업 테이블을 이용하여 상기 캐시 메모리로부터 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀을 획득하는 단계;
    상기 이미지 룩업 테이블로부터 상기 대상 픽셀에 상응하는 가중치 정보를 획득하는 단계;
    획득한 상기 대상 픽셀에 상응하는 상기 원본 이미지 상의 픽셀 및 가중치 정보에 기초한 이중선형보간(bilinear interpolation)을 수행하여 상기 대상 픽셀을 생성하는 단계를 포함하는 이미지 워핑 방법.
  11. 제8항에 있어서,
    상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보는,
    상기 이미지 룩업 테이블을 이용하여 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 순차적으로 생성하는 과정을 시뮬레이션함으로써 생성되는 이미지 워핑 방법.
  12. 복수의 원본 이미지 블록을 포함하는 원본 이미지를 워핑하여 복수의 픽셀 그룹을 포함하는 변형 이미지를 생성하기 위하여, 복수의 캐시 블록 및 캐시 메모리에 순차적으로 로드될 상기 원본 이미지 블록의 순서 정보를 저장하는 캐시 룩업 테이블을 저장하는 이미지 워핑 시스템이 수행하는 이미지 워핑 방법으로서,
    상기 이미지 워핑 시스템이, 상기 변형 이미지에 포함된 각각의 픽셀 그룹을 대상 픽셀 그룹으로 하여, 상기 대상 픽셀 그룹을 생성하는 단계를 포함하되,
    상기 대상 픽셀 그룹을 생성하는 단계는,
    (a) 상기 캐시 룩업 테이블에 저장된 상기 원본 이미지 블록의 순서 정보에 기초하여 캐시 메모리의 비-유효 캐시 블록에 상기 원본 이미지 블록 중 적어도 일부를 로드하는 단계;
    (b) 상기 원본 이미지에 포함된 각 픽셀과 상기 변형 이미지에 포함된 각 픽셀 간의 매핑 정보를 저장하는 이미지 룩업 테이블, 및 캐시 메모리에 저장된 원본 이미지 블록에 기초하여 상기 대상 픽셀 그룹을 생성하는 단계; 및
    (c) 캐시 메모리에 포함된 캐시 블록 중 이전에 적어도 한 번 이용된 적이 있으나 상기 대상 픽셀 그룹을 생성하는 과정에서는 이용되지 않은 원본 이미지 블록을 저장하고 있는 캐시 블록을 비-유효 캐시 블록으로 설정하는 단계를 포함하는 이미지 워핑 방법.
  13. 제8항 내지 제12항 중 어느 한 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  14. 이미지 워핑 시스템으로서,
    프로세서; 및
    상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며,
    상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 이미지 워핑 시스템이 제8항 내지 제12항 중 어느 한 항에 기재된 방법을 수행하도록 하는 이미지 워핑 시스템.
KR1020140107254A 2014-08-18 2014-08-18 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법 KR101540300B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140107254A KR101540300B1 (ko) 2014-08-18 2014-08-18 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140107254A KR101540300B1 (ko) 2014-08-18 2014-08-18 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101540300B1 true KR101540300B1 (ko) 2015-08-13

Family

ID=54060611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140107254A KR101540300B1 (ko) 2014-08-18 2014-08-18 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101540300B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740882B2 (en) 2016-11-24 2020-08-11 Hanwha Techwin Co., Ltd. Image correction apparatus and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013110647A (ja) 2011-11-22 2013-06-06 Jvc Kenwood Corp 画像補正装置および画像補正方法
JP2013165380A (ja) 2012-02-10 2013-08-22 Jvc Kenwood Corp 画像処理装置および画像処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013110647A (ja) 2011-11-22 2013-06-06 Jvc Kenwood Corp 画像補正装置および画像補正方法
JP2013165380A (ja) 2012-02-10 2013-08-22 Jvc Kenwood Corp 画像処理装置および画像処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740882B2 (en) 2016-11-24 2020-08-11 Hanwha Techwin Co., Ltd. Image correction apparatus and method

Similar Documents

Publication Publication Date Title
US8391306B2 (en) Calculation processing apparatus and method
US20180253641A1 (en) Arithmetic processing apparatus and control method therefor
EP3196773A2 (en) Directional backlight unit, three-dimensional (3d) image display apparatus, and 3d image displaying method
CN112991142B (zh) 图像数据的矩阵运算方法、装置、设备及存储介质
US11238560B2 (en) Image down-scaling with pixel sets selected via blue noise sampling
JP5706754B2 (ja) データ処理装置及びデータ処理方法
JP5548087B2 (ja) 演算装置および演算方法
CN104981838A (zh) 优化图像存储器访问
CN107038678B (zh) 用于执行傅里叶变换的装置和方法
CN112862695A (zh) 图像恢复方法和设备
JP2008124742A (ja) 画像処理装置、画像処理方法、およびプログラム
CN114328315A (zh) 基于dma的数据预处理方法、dma部件及芯片结构
KR101540300B1 (ko) 캐시 메모리를 이용한 이미지 워핑 시스템 및 그 방법
JP2010287110A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
KR101582578B1 (ko) 그래픽 처리 장치 및 방법
WO2021070303A1 (ja) 演算処理装置
CN107977923B (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN116109481A (zh) 缩放方法、芯片、存储介质及电子设备
JP5597175B2 (ja) 画像圧縮装置及び画像処理システム
CN114170364A (zh) 一种渲染流程确定方法、装置及电子设备
US20150138615A1 (en) Device and method for creating stereograms with large viewing angle and high 2d image resolution
JP6563358B2 (ja) 画像処理装置及び画像処理方法
JP6802762B2 (ja) 処理装置
JP2016103169A (ja) 画像処理装置、画像処理方法および電子機器
JP6217116B2 (ja) データ処理装置、方法、およびプログラム

Legal Events

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

Payment date: 20180614

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190722

Year of fee payment: 5