KR20070102989A - System and mehod for representing a general two dimensional spatial transformation - Google Patents

System and mehod for representing a general two dimensional spatial transformation Download PDF

Info

Publication number
KR20070102989A
KR20070102989A KR1020077007873A KR20077007873A KR20070102989A KR 20070102989 A KR20070102989 A KR 20070102989A KR 1020077007873 A KR1020077007873 A KR 1020077007873A KR 20077007873 A KR20077007873 A KR 20077007873A KR 20070102989 A KR20070102989 A KR 20070102989A
Authority
KR
South Korea
Prior art keywords
patch
polynomial
image
output
shape
Prior art date
Application number
KR1020077007873A
Other languages
Korean (ko)
Inventor
조라바 에스. 바시
Original Assignee
실리콘 옵틱스 인코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 실리콘 옵틱스 인코포레이션 filed Critical 실리콘 옵틱스 인코포레이션
Priority to KR1020077007873A priority Critical patent/KR20070102989A/en
Publication of KR20070102989A publication Critical patent/KR20070102989A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3179Video signal processing therefor
    • H04N9/3185Geometric adjustment, e.g. keystone or convergence
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/20092Interactive image processing based on input by user

Landscapes

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

Abstract

A system and method for representing a two-dimensional spatial transformation that describes the transformation by an inverse mapped grid data according to selected geometry parameters (110, 120). The grid data for each coordinate is surface fitted on an array of rectangular patches defined in the output space using numerical techniques (130, 140). Error analysis determines whether a finer mesh resolution is required for surface fitting (150). The spatial transformation is then defined by the array of rectangular surface patches and the set of surface coefficients such that the spatial transformation can be executed through evaluation of the surface polymials, which also allow the transformation to be easily adjusted for scale changes and zooming and panning effects (160, 170, 180, 190).

Description

2차원 공간변환을 표현하는 시스템과 방법{SYSTEM AND MEHOD FOR REPRESENTING A GENERAL TWO DIMENSIONAL SPATIAL TRANSFORMATION}System and method for expressing two-dimensional spatial transformation {SYSTEM AND MEHOD FOR REPRESENTING A GENERAL TWO DIMENSIONAL SPATIAL TRANSFORMATION}

본 발명은 디지털 영상데이터의 변환에 관한 것으로, 구체적으로는 디지털 영상데이터의 2차원 공간변환의 표현에 관한 것이다.The present invention relates to the conversion of digital image data, and more particularly, to a representation of a two-dimensional spatial transformation of digital image data.

대부분의 영상처리 시스템은 어느정도는 공간변환을 담당한다. 2차원(2D) 영상처리에 있어서, 화소의 관계에 맞는 2D 출력공간내의 모든 화소에 대한 "색" 값을 몇몇 입력데이터(가능하면 3D)에 할당하면 영상이 생긴다. 입출력 데이터공간에 좌표체계를 도입하면, 이런 관계를 공간매핑으로 편하게 표현할 수 있다. 공간매핑은 영상처리 시스템의 디자인(렌즈 배열 등)에 포함되거나 일정한 효과를 얻기위한 것이다. 2D 입출력 영상이나 공간 사이의 매핑에 관련된 영상워핑은 흔히 수차와 같은 각종 아티팩트와 광학왜곡을 교정하는데 이용되는데, 이런 왜곡은 영상을 캡처하는 영상표시장치에서는 일반적인 것이다. 영상 워핑의 다른 용도는 특수효과, 애니메이션, 영상짜집기, 일반 형상변환 등이다. 일반적으로 영상워핑은 공간변환이 불필요하지만, 여기서는 공간매핑에 대해 중점을 둔다.Most image processing systems are somewhat responsible for spatial transformation. In two-dimensional (2D) image processing, an image is produced by assigning some input data (possibly 3D) to the "color" values for all the pixels in the 2D output space that match the relationship of the pixels. By introducing a coordinate system into the input / output data space, this relationship can be conveniently expressed by spatial mapping. Spatial mapping is intended to be included in the design of the image processing system (lens array, etc.) or to achieve a certain effect. Image warping related to mapping between 2D input and output images or space is often used to correct various artifacts such as aberrations and optical distortion, which is common in image display apparatuses that capture images. Other uses of video warping include special effects, animation, video framing, and general transformations. In general, image warping does not require spatial transformation, but focuses on space mapping.

많은 영상 왜곡이나 변환 알고리즘은 하드웨어 구현을 간단히 하는 것을 주목적으로 한다. 이 목적은 흔히 공간변환의 복잡성이나 이 변환의 비현실적 설명에 대해 제한을 가하곤 한다. 예를 들어, 영상워핑에 자주 사용되는 방법으로 2-패스 방법이 있다. 2-패스 방법을 기반으로 한 특정 워핑시스템으로 Bennett의 미국특허 4,472,732에 소개된 장치가 있다. 여기 소개된 방법은 실시간 영상처리 시스템의 하드웨어 구현에 적합하고 2D 맵을 1D 필터링이나 리샘플링만 요하는 일련의 1D 맵으로 분해한다. 1D 리샘플링은 2D보다 훨씬 간단하고 각종 아키텍처를 이용하는 하드웨어를 최적화할 수 있다. 그러나, 2-패스 방법은 병목효과를 가져오는바, 중간영상에 큰 압축을 가하여 데이터 손실을 일으키곤 한다. 극단적으로는 면을 선으로 압축한 경우에 데이터의 완전한 손실을 일으킬 수 있다. 이때문에 형상변환의 종류가 제한된다. 다른 문제는 중간 패스데이터를 생성하는 것이다.Many image distortion or conversion algorithms aim to simplify hardware implementation. This objective often limits the complexity of spatial transformations or the unrealistic description of these transformations. For example, a two-pass method is often used for image warping. One particular warping system based on the two-pass method is the device described in Bennett, US Pat. No. 4,472,732. The method presented here is suitable for hardware implementation of real-time image processing systems and decomposes 2D maps into a series of 1D maps that only require 1D filtering or resampling. 1D resampling is much simpler than 2D and can optimize hardware using a variety of architectures. However, the two-pass method has a bottleneck effect, and a large compression is applied to the intermediate image to cause data loss. Extremely compressing faces with lines can cause complete loss of data. This limits the types of transformations. Another problem is the generation of intermediate pass data.

2-패스 방법에 대한 개선을 하여 이런 문제를 해결하고자 하는 시도가 Wolberg의 미국특허 5,204,944와 Sayre의 미국특허 5,175,808에 소개되었는데, 여기서는 화소x화소 설명(즉, 룩업테이블)을 기반으로 한다. 화소x화소 설명은 큰 저장공간을 요하고, 더 중요한 것은 추가적인 데이터조작을 위한 간단한 수단이 허용되지 않는다는 것이다. 일단 영상을 워핑했으면, 두번째 변환인 확대작업이 필요하다. 화소x화소 설명에서, 확대워핑을 위해서는 전체 격자를 재생성해야만 하고, 이것은 특히 확대가 정기적으로 일어날 경우 불충분할 수 있다.Attempts to address this problem by improving the two-pass method have been introduced in US Pat. No. 5,204,944 to Wolberg and US Pat. No. 5,175,808 to Sayre, which are based on the pixel x pixel description (ie, lookup table). Pixel x pixel descriptions require large storage space, and more importantly, simple means for further data manipulation are not allowed. Once the image has been warped, a second transformation, zooming, is needed. In the pixel x pixel description, the entire lattice must be regenerated for magnification warping, which may be insufficient, especially if magnification occurs regularly.

반드시 2-패스 방법을 기반으로 하지는 않는 다른 공간변환 알고리즘은 Fant의 미국특허 4,835,532, Kimata의 미국특허 4,975,976, Hamburg의 미국특허 5,808,623, Levien의 미국특허 6,097,855에 소개된 회전, 선형축척, 아핀(affine), 투시변환과 같은 매핑에만 제한된다. 기존의 어떤 방법은 수학적 좌표공간을 물리 적 메모리 공간으로 확인하려고도 했는데, 이 방법은 하드웨어 구현시 메모리 구조의 조직에 의해 변환이 제한됨을 의미한다. 또, 대부분의 워핑 알고리즘은 영상의 부분부분마다 다른 변환을 하는 간단한 포맷은 제공하지 않는다. 토폴로지의 변화(예; 원에서 사각형으로의 변화)와 같은 복잡한 매핑은 부분부분마다 독립적인 매핑을 필요로 한다. Other spatial transformation algorithms that are not necessarily based on the two-pass method are rotation, linear scale, affine, as described in Fant's U.S. Patent 4,835,532, Kimata in U.S. Patent 4,975,976, Hamburg in U.S. Patent 5,808,623, and Levien U.S. Patent 6,097,855. It is limited only to mappings, such as perspective transformations. Some existing methods have attempted to identify mathematical coordinate spaces as physical memory spaces, which means that the conversion is limited by the organization of memory structures in hardware implementations. Also, most warping algorithms do not provide a simple format that converts different parts of an image. Complex mappings, such as changes in topology (eg from circle to rectangle), require independent mappings for each part.

이런 한계로 2D 표현, 즉 2D 필터링을 이용하는 싱글-패스가 배제된다. 2D 표현을 기반으로 한 시스템으로는 Orginc의 미국특허 5,384,912의 비디오 프로세서와 디스플레이, 그리고 페어차일드 반도체에서 제작한 TMC2302A 집적회로가 있다. 그러나, 이들 종래의 기술은 2D 변환을 제한된 범위에서만 인정하였고, 범용적인 2D 매핑은 표현하지 못했다. 특히, 이들 시스템은 하나의 영상의 부분부분마다 독립적인 변환을 하는 수단은 전혀 제시하지 못한다.This limitation excludes single pass using 2D representation, ie 2D filtering. Systems based on 2D representation include Orginc's US Pat. No. 5,384,912 video processor and display, and TMC2302A integrated circuits manufactured by Fairchild Semiconductor. However, these conventional techniques only recognized 2D transformations in a limited range, and did not represent general purpose 2D mapping. In particular, these systems do not provide any means for independent conversion of each part of an image.

발명의 요약Summary of the Invention

본 발명은 입력 화소좌표를 갖는 입력영상을 출력 화소좌표를 갖는 출력영상으로 변환하는 2차원 비디오 영상변환을 싱글-패스에서 구현하는 시스템에 있어서:The present invention provides a system for implementing a two-dimensional video image conversion in a single pass that converts an input image having an input pixel coordinate into an output image having an output pixel coordinate:

⒜ 디스플레이 광학계, 투사각도, 평판스크린과 곡면스크린용의 디스플레이 패널형상 및 사용자 정의 변수를 포함하여 변환을 정의하는 형상 변수를 얻기위한 형상입력 인터페이스;(B) a shape input interface for obtaining shape variables defining transformations, including display optics, projection angles, display panel shapes for flat screens and curved screens, and user defined variables;

⒝ 출력 화소좌표를 입력 화소좌표에 매핑하는 격자데이터 변환을 위해 상기 형상입력 인터페이스에 연결된 격자변환 생성기;A grid transform generator coupled to the shape input interface for grid data transform mapping an output pixel coordinate to an input pixel coordinate;

⒞ 출력 화소좌표 공간을 하부 형상에 맞는 여러 패치로 분할하되, 패치마다 관련 격자데이터 집합을 가지며, 상기 격자변환 생성깅 연결되고, 출력공간의 패치의 경계를 결정하는 패치형상 생성기;A patch shape generator for dividing an output pixel coordinate space into several patches for a lower shape, each patch having an associated grid data set, connected to the grid transform generation, and determining a boundary of a patch of an output space;

⒟ 각 패치의 격자데이터 집합을 곡면계수로 표현한 곡면함수로 변수화하도록 상기 패치형상 생성기에 연결된 곡면함수 추정기; 및A curve function estimator coupled to the patch shape generator for parameterizing a grid data set of each patch into a surface function expressed as a surface coefficient; And

⒠ 곡면계수 저장을 위해 곡면함수 추정기에 연결된 출력 인터페이스;를 포함하는 시스템을 제공한다.S an output interface coupled to a surface function estimator for surface coefficient storage.

본 발명은 또한, 입력 화소좌표를 갖는 입력영상을 출력 화소좌표를 갖는 출력영상으로 변환하는 2차원 비디오 영상변환을 싱글-패스에서 구현하도록 표현하는 방법에 있어서:In another aspect, the present invention provides a method for expressing a two-dimensional video image conversion that converts an input image having an input pixel coordinate into an output image having an output pixel coordinate in a single pass:

⒜ 디스플레이 광학계, 투사각도, 평판스크린과 곡면스크린용의 디스플레이 패널형상 및 사용자 정의 변수를 포함하여 변환을 정의하는 형상 입력 변수를 구하는 단계; (B) obtaining shape input variables that define the transformation, including display optics, projection angles, display panel shapes for flat screens and curved screens, and user defined variables;

⒝ 출력 화소좌표를 입력 화소좌표에 매핑하도록 상기 형상입력 변수를 기반으로 격자데이터 변환을 하는 단계;Transforming grid data based on the shape input variable to map an output pixel coordinate to an input pixel coordinate;

⒞ 출력 화소좌표 공간을 하부 형상에 맞는 여러 패치로 분할하되, 패치마다 관련 격자데이터 집합을 가지며 출력공간의 패치의 경계를 결정하는 단계; Dividing the output pixel coordinate space into several patches that conform to the underlying shape, each patch having an associated set of grid data and determining a border of the patches in the output space;

⒟ 각각의 패치에서, 곡면계수로 표현된 곡면함수로 상기 격자 데이터변환을 변수화하는 단계; 및In each patch, parameterizing the grid data transformation with a surface function expressed as a surface coefficient; And

⒠ 곡면계수를 저장하는 단계;를 포함하는 방법도 제공한다.It also provides a method comprising a; storing the surface coefficient.

이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따라 구성된 워핑시스템의 블록도;1 is a block diagram of a warping system constructed in accordance with the present invention;

도 2는 출력영상의 화소(P)를 역매핑하여 입력영상의 대응 화소(P')의 위치를 결정하는 범용 2D 변환의 그래픽 표현;2 is a graphical representation of a general purpose 2D transform that demaps a pixel P of an output image to determine the position of a corresponding pixel P 'of the input image;

도 3은 도 1의 시스템내에서 패치를 규칙적으로나 불규칙적으로 분할하는 예를 보여주는 도면;3 shows an example of regular or irregular partitioning of patches within the system of FIG. 1;

도 4는 도 1의 시스템에 이용되는 불연속 곡면(4A)과 연속 2D 곡면(도 4B)의 그래픽 표현;4 is a graphical representation of a discrete surface 4A and a continuous 2D surface (FIG. 4B) used in the system of FIG. 1;

도 5는 입출력 영상 둘다 축척할 수 있도록 해상도 변화를 도 1의 시스템으로 이루는 방법을 보여주는 도면;FIG. 5 illustrates a method of achieving a resolution change in the system of FIG. 1 so that both input and output images can be scaled; FIG.

도 6은 도 1의 시스템을 사용해 확대맵을 구하는 방법을 보여주는 도면;6 illustrates a method of obtaining an enlarged map using the system of FIG. 1;

도 7은 본 발명의 변환방법을 보여주는 순서도.7 is a flowchart showing a conversion method of the present invention.

도 1에 도시된 워핑시스템(100)은 형상입력 인터페이스(110), 격자변환 생성기(120), 패치형상 생성기(130), 곡면함수 추정기(140), 오차분석 스테이지(150), 바운딩박스 생성기(160), 해상도/확대 생성기(170), 데이터 재배열 스테이지(180) 및 출력 인터페이스(190)를 포함한다. The warping system 100 illustrated in FIG. 1 includes a shape input interface 110, a grid transform generator 120, a patch shape generator 130, a surface function estimator 140, an error analysis stage 150, and a bounding box generator ( 160, resolution / enlargement generator 170, data rearrangement stage 180, and output interface 190.

워핑시스템(100)은 격자데이터(화소x화소) 표현을 곡면함수 표현으로 변환하고, 결국 효과적인 실시간 하드웨어 구현을 이룬다. 2D 공간변환을 필요로 하는 모 든 시스템에 워핑시스템(100)을 응용할 수 있다. 워핑시스템(100)은 프로젝터, 카메라 및 디스플레이 기기의 작은 왜곡의 수정부터 키스톤과 같은 원근 수정이나 특수한 광각렌즈 수정은 물론, 360도 원형 영상이나 사각형 영상에서 극좌표형 매핑까지 모든 영상 변화를 커버하는데 이용된다.The warping system 100 converts the grid data (pixel x pixel) representation into a curved function representation, resulting in an effective real-time hardware implementation. The warping system 100 can be applied to all systems requiring 2D spatial transformation. The warping system 100 is used to cover all image changes, from small distortion corrections of projectors, cameras and display devices to perspective corrections such as keystones or special wide angle lens corrections, as well as 360 degree circular or rectangular images to polar coordinate mapping. do.

형상입력 인터페이스(110)는 적은 수의 형상변수의 관점에서 변환을 설명한다. 이들 변수는 최고 레벨에서 변환을 설명(정의)한다. 예컨대 투사각과 렌즈 투사비의 관점에서 키스톤 변환을 설명하거나, 방사상 입체 다항식의 관점에서 렌즈교정을 설명하거나(여기서는 변수가 4개의 다항식 계수임), 또는 곡률반경의 관점에서 디스플레이 곡면을 설명한다. 극단적으로 작은 형상변수의 관점에서 한 설명을 이용할 수 없는 경우, 수치적 설명을 이용하면서 점 집합의 매핑을 하기도 한다. The shape input interface 110 describes the transformation in terms of a small number of shape variables. These variables describe (define) the transformation at the highest level. For example, it describes keystone transformation in terms of throw angle and lens throw ratio, explains lens correction in terms of radial stereoscopic polynomials (where the variables are four polynomial coefficients), or describes display surfaces in terms of radius of curvature. When a description is not available in terms of extremely small geometrical variables, a set of points may be mapped using numerical descriptions.

격자변환 생성기(120)는 형상입력 인터페이스(110)에 연결되어, 이 인터페이스에서 얻은 입력 형상변수를 이용해 공간변환의 격자데이터 설명을 만드는데, 이 설명은 해당 기하학적 매핑을 정의하고 변환이 된 뒤 새로운 화소위치를 제공한다. 격자변환 생성기(120)는 역변환을 이용하는바, 출력영상의 각각의 화소를 입력영상에 매핑하는 공간변환을 이용한다. 이 방식에서는, 출력부에서의 수평수직 주사선내 모든 출력화소에 각각 값을 할당하여 처리할 수 있다. 한편, 기존에 알려진 순방향 매핑에서는 할당받지 못한 화소를 갖는 출력영상에 구멍이 생길 수 있다.The grid transform generator 120 is connected to the shape input interface 110 to create grid data descriptions of spatial transforms using the input shape variables obtained from the interface, which define the corresponding geometric mappings and then transform the new pixels. Provide a location. The grid transform generator 120 uses an inverse transform, and uses a spatial transform to map each pixel of the output image to the input image. In this system, values can be assigned to and processed by all output pixels in the horizontal and vertical scanning lines at the output unit. Meanwhile, in the known forward mapping, a hole may be formed in an output image having an unassigned pixel.

도 2는 입력 좌표공간내 입력영상의 화소 P'를구하기 위해 출력영상 좌표공간내 화소 P에 역변환 매핑을 하는 일반적인 2D 변환의 그래픽 표현이다. 일반적인 워프는 입력 좌표공간내 비정수 위치에 한 점을 매핑한다. 화소는 격자점을 사각형으로 둘러싼 것으로서 수학적 점이 아니라 유한의 면적을 갖는 것으로 본다. 따라서, 출력공간내 화소 P는 사각형 ABCD로 처리되고, 이것은 입력 좌표공간내 P'를 둘러싼 임의의 형상 ABCD로 일그러진다. 입력공간에서 P'는 화소 1, 2, 3, 4를 오버랩하는 것처럼 보인다.FIG. 2 is a graphical representation of a general 2D transform with inverse transform mapping to pixel P in the output image coordinate space to obtain pixel P 'of the input image in the input coordinate space. A typical warp maps a point to a non-integer location in the input coordinate space. Pixels are considered to have a finite area, rather than mathematical points, surrounding the lattice points with a rectangle. Thus, the pixel P in the output space is treated as a rectangle ABCD, which is distorted to any shape ABCD surrounding P 'in the input coordinate space. In the input space, P 'appears to overlap pixels 1, 2, 3 and 4.

도 2와 같이, 입력공간의 원점과 출력공간의 원점은 해당 영상의 상단좌측 모서리에 있으며, 우측방향은 양의 x 방향, 아래쪽은 양의 y 방향이다. 입출력 영상은 메모리에 저장되거나 기록되므로, 본 명세서에서 말하는 입출력 영상공간은 입출력 메모리공간으로 보면 된다. 일반적으로, 격자데이터 설명은 아래의 식으로 요약된다;As shown in FIG. 2, the origin of the input space and the origin of the output space are at the upper left corner of the corresponding image, and the right direction is the positive x direction and the bottom is the positive y direction. Since the input / output image is stored or recorded in the memory, the input / output image space referred to herein may be regarded as an input / output memory space. In general, the grid data description is summarized by the following equation;

Figure 112007026607518-PCT00001
Figure 112007026607518-PCT00001

위의 식에 의하면, 좌표가 (X,Y)인 출력영상내 화소는 F=(Fu,Fv)의 공간변환을 거쳐 입력영상내에 좌표 (U,V)의 화소로 매핑된다. 따라서, 격자 데이터집합 관계 {(Ui,Vi),(Xi,Yi)}나 단순히 격자 데이터집합이 출력공간내의 화소 {(Xi,Yi)}의 집합이고, 이는 입력공간내 화소 {(Ui,Vi)}로 역 매핑된다. 이상과 같이, 좌표 {X,Y,U,V}는 물리적 메모리 주소공간내 좌표이다. 이 관계는 아래와 같다:According to the above equation, the pixel in the output image whose coordinate is (X, Y) is mapped to the pixel of the coordinate (U, V) in the input image through a spatial transformation of F = (F u , F v ). Thus, the grid dataset relationship {(U i , V i ), (X i , Y i )} or simply the grid data set is a set of pixels {(X i , Y i )} in the output space, which is in the input space Inversely mapped to pixel {(U i , V i )}. As above, coordinates {X, Y, U, V} are coordinates in the physical memory address space. This relationship is as follows:

Figure 112007026607518-PCT00002
Figure 112007026607518-PCT00002

Figure 112007026607518-PCT00003
Figure 112007026607518-PCT00003

공간변환을 정의하는 방법으로 2가지 일반적 방법이 있다. 첫째, 매핑 (F u ,F v )를 위한 명시적 함수형태를 알 수 있는바, 공간변환을 위한 분명한 수학적 모델을 구현할 수 있다. 둘째, 격자 데이터집합 관계 {(Ui,Vi),(Xi,Yi)}가 출력화소 위치 (Xi,Yi)에 대응하는 입력화소 위치 (Ui,Vi)를 제공하는데, 출력화소 위치는 출력공간의 전체나 일부에 대해 알 수 있다. 출력화소 위치 (Xi,Yi)는 정수값을 갖고, 이는 출력 메모리공간의 정기적 샘플링을 의미하지만, 매핑된 입력화소 위치 (Ui,Vi)는 대개 도 2와 같이 정수가 아니다. 수학적 모델은 대개 형상입력 인터페이스(110)에서의 몇몇 형상 변수의 관점의 설명과 관련되지만, 격자 데이터집합은 몇몇 지점의 관점에서의 수치설명과 관련된다. 수학적 모델 방식에서는 매핑이 항상 격자 데이터집합을 얻는다고 평가되므로, 두번째 방식이 더 범용적이다.There are two general ways to define spatial transformations. First, we know the explicit functional form for the mapping ( F u , F v ), so we can implement a clear mathematical model for spatial transformation. Second, the grid dataset relationship {(U i , V i ), (X i , Y i )} provides an input pixel location (U i , V i ) corresponding to the output pixel location (X i , Y i ) The output pixel position can be known for all or part of the output space. The output pixel position (X i , Y i ) has an integer value, which means a periodic sampling of the output memory space, but the mapped input pixel position (U i , V i ) is usually not an integer as shown in FIG. Mathematical models are usually associated with the description of some shape variables in the shape input interface 110, while the grid dataset is associated with the numerical description in terms of some points. In the mathematical model approach, the second approach is more general because the mapping always evaluates to a grid dataset.

격자 데이터집합 관련 모델은 공간변환의 "이상적" 표현이라고 간주된다. 실제로, 격자데이터는 잡음을 포함하고, 이 경우 "이상적"이란 표현은 근사적인 표현일 것이다. 그러나, 설명은 매우 복잡할 수 있고, 데이터집합(또는 함수)은 영상의 영역에 따라 크게 다를 수 있다. 이런 표현을 근거로 한 영상변환 시스템은 소프트웨어나 하드웨어적으로 구현하기가 힘들다. 격자 데이터집합 {(Xi,Yi)}나 격자 데이터집합 관계 {(Ui,Vi),(Xi,Yi)}가 출력공간 전체에 걸쳐있으면, 격자 데이터 성분들 이 기본적으로 화소x화소 표현과 동일하다. 이런 관점에서, 2D 공간변환을 표현할 때 격자 데이터집합을 사용함은 (종래 기술에서) 화소x화소 (룩업/변화 테이블) 설명을 사용하는 것임을 암묵적으로 의미한다. 그러나, 화소x화소 표현은 하드웨어 구현에는 불충분하다. 본 발명의 워핑시스템(100)은 격자데이터(화소x화소) 관계 표현을 곡면함수 표현으로 변환한다.Models related to grid datasets are considered to be "ideal" representations of spatial transformations. In practice, the grid data contains noise, in which case the expression "ideal" would be an approximation. However, the description can be very complex and the dataset (or function) can vary greatly depending on the area of the image. Image conversion system based on this expression is difficult to implement in software or hardware. If the grid dataset {(X i , Y i )} or the grid data set relationship {(U i , V i ), (X i , Y i )} spans the entire output space, then the grid data components are essentially pixels Same as the x-pixel representation. In this respect, using grid datasets to represent 2D spatial transformations implicitly means using pixel x pixel (lookup / change table) descriptions (in the prior art). However, the pixel x pixel representation is insufficient for hardware implementation. The warping system 100 of the present invention converts the grid data (pixel x pixel) relational expression into a curved function representation.

함수표현을 하기 전에 2-패스 처리를 위해 데이터를 분리하곤 한다. 주지하는 바와 같이, 이렇게 분리하는 이유는 해당 하드웨어 구현을 간단히 하기 위해서이다. 축척 데이터를 수직경로와 수평경로로 분리하면, 1D 필터링을 이용할 수 있다. 그러나, 이 경우 화질이 저하됨은 물론 모든 매핑을 분리할 수 없게된다. 메모리의 공간과 속도의 발전으로 인해, 2D 필터링의 효과적인 싱글-패스 구현도 이제 가능하다. 일례로 미국 캘리포니아 산호세 소재 Silicon Optix사의 sxT2 칩이 있다. 따라서, 2-패스 과정의 분리에서 생기는 종래의 하드웨어 장점을 화질과 변환 융통성 둘다를 유지한다는 좀더 중요한 목표로 바꿀 수 있다. 본 발명의 방법에서는 분리를 이용하지 않고도 효과적인 하드웨어 구현을 할 수 있고 또한 2D 매핑을 표현하기에 충분한 융통성을 유지할 수 있다. 싱글-패스 방법에서처럼, (2D 필터를 사용했을 때의) 최종 화질도 2-패스 방법의 화질보다 우수하다.We often separate the data for two-pass processing before the function expression. As is well known, the reason for this separation is to simplify the hardware implementation. By dividing the scale data into vertical and horizontal paths, 1D filtering can be used. However, in this case, not only the image quality deteriorates but also all the mappings cannot be separated. Due to the advancement of memory space and speed, effective single-pass implementations of 2D filtering are now possible. One example is the sxT2 chip from Silicon Optix, San Jose, California. Thus, the conventional hardware advantages resulting from the separation of the two-pass process can be changed to a more important goal of maintaining both image quality and conversion flexibility. In the method of the present invention, an effective hardware implementation can be achieved without using separation and maintain sufficient flexibility to express 2D mapping. As with the single-pass method, the final picture quality (when using the 2D filter) is also better than the picture quality of the two-pass method.

본 발명의 유용성을 충분히 입증하려면, 하드웨어 처리를 단순화하기 위해 출력공간에서 2D 변환을 평가하는데 사용되는 주사선 처리를 이해하는 것이 중요하다. 변환은 종래와 같이 2-패스로 하거나 본 발명과 같이 싱글-패스로 할 수 있다. 주사선 처리시, 행 방향(수평)과 열 방향(수직)으로 순차적으로 출력화소가 생긴 다. 하나의 행/열이 완전히 생긴 뒤, 다음 행/열로 진행된다. 주사선 처리의 변형은, 각각의 행/열의 한 구간, 즉 구간 1을 먼저 처리한 뒤 구간 2를 처리하기 위해 돌아가는 식으로 계속 진행되는 것이다. 이런 변형례는 양방향으로 주사선 처리를 병합한다. 출력부에서의 주사선 처리는 입력영상 데이터에 적용된 처리 종류를 제한하지 않는다. 특히 2D 필터링을 이용할 수 있다. To fully demonstrate the usefulness of the present invention, it is important to understand the scanning line processing used to evaluate 2D transforms in the output space to simplify hardware processing. The conversion can be a two-pass as in the prior art or a single-pass as in the present invention. In the scanning line processing, output pixels are sequentially generated in the row direction (horizontal) and column direction (vertical). After one row / column is complete, it proceeds to the next row / column. The modification of the scanning line processing is to proceed in such a manner that one section of each row / column, that is, section 1, is processed first and then returned to process section 2. This variant merges the scanning line processing in both directions. The scanning line processing at the output unit does not limit the kind of processing applied to the input image data. In particular, 2D filtering can be used.

출력부에서 처리하는 주사선의 이용에 대한 주요 제한은 입력부엣의 (필터링에 필요한 화소데이터의) 메모리 접속이 랜덤할 수 있다는 것이다. (거의 하나씩 처리되는) 출력공간내의 부근 화소들은 큰 영역에 분산되는 입력공간내 데이터를 필요로 하므로, 입력 메모리접속을 불충분하게 한다. 이것은 필터링에 문제가 될 수 있지만(처리는 느리게 하고 시간지연은 길게 함) 변환을 설명하는 곡면다항식을 평가하는데 있어서는 그렇지 않은데, 본 발명은 이것에 촛점이 맞추어져 있다. 본 발명에서, 곡면다항식은 출력공간에 정의되고 입력 화소데이터에 대한 접속은 필요치 않다. The main limitation on the use of the scan lines processed at the output is that the memory connections (of the pixel data required for filtering) at the input may be random. Nearly pixels in the output space (which are processed one by one) require data in the input space that is dispersed in a large area, thus insufficient input memory connection. This can be problematic for filtering (slow processing and long time delays), but not for evaluating the surface polynomials describing the transformation, but the present invention is focused on this. In the present invention, the curved polynomial is defined in the output space and no connection to the input pixel data is required.

주사선 처리를 위해서는 출력공간내 모든 화소에 대한 공간변환을 규정해야 한다. 즉 모든 화소에 대한 이상적인 매핑에 가장 근사한 함수 설명을 해야 한다. 샘플링된 화소들에 대해 알려진 격자 데이터집합 관계를 통해 이상적 매핑이 주어진다. 수학적 모델을 정의하지 않은 영역에 대해서는 함수 설명이 규정 데이터를 추론하거나 이런 영역을 배경으로 매핑할 수 있다. 수학적 모델을 잘못 규정한 영역이 항상 배경 화소에 대응하므로 후자의 경우가 인정된다. For the scan line processing, the spatial transformation for all the pixels in the output space must be defined. In other words, the function description that best approximates the ideal mapping for all pixels should be provided. The ideal mapping is given through known grid dataset relationships for the sampled pixels. For areas that do not define a mathematical model, the function description can infer the prescribed data or map these areas to the background. The latter case is recognized because the region that incorrectly defines the mathematical model always corresponds to the background pixel.

도 3은 패치형상 생성기(130)의 기능을 예시한다. 패치형상 생성기(130)는 출력공간에 규정된 사각형 패치 어레이를 생성하고(도 2 참조), 출력공간의 데이터는 곡면 맞춤화된다. 패치는 서로 같은 크기를 가질 필요는 없지만 이런 특수한 경우에는 서로 규칙적으로 적합해야만 한다. "규칙적"이란 패치가 행이나 열로 배열되는 것을 의미한다. 사격형 패치에 의한 어떤 분할들도 규칙적 배열을 가질 수 있으므로 이것은 제한사항이 아니다. 규칙적이거나 불규칙한 패치 분할 둘다 도 3에 도시되어 있다. 패치의 수는 워프의 복잡도, (후술하는) 맞춤 오차에 대한 허용수준, 맞춤에 사용되는 기본 함수의 종류, 기타 제한사항에 의해 결정된다. 원칙적으로, 4개의 인접 화소점 집합마다 패치를 하나씩 할당할 수 있지만, 공간변환을 저장하려면 더 많은 메모리가 필요하다.3 illustrates the function of patch shape generator 130. The patch generator 130 generates a rectangular patch array defined in the output space (see FIG. 2), and the data of the output space is curved to be customized. The patches do not have to be the same size, but in this particular case they must fit regularly. "Regular" means that patches are arranged in rows or columns. This is not a limitation since any partitions by shooting patch can have a regular array. Both regular or irregular patch divisions are shown in FIG. 3. The number of patches is determined by the complexity of the warp, the tolerance for the fit error (described below), the type of base function used for the fit, and other restrictions. In principle, one patch can be allocated for each set of four adjacent pixel points, but more memory is required to store the spatial transform.

패치형상 생성기(130)에 연결된 것 곡면함수 추정기(140)로서, 이것은 격자변환의 함수적 설명을 만든다. 공간변환의 함수적 설명을 구하는데 사용되는 일반적 방법은 수직이나 수평의 주사선 집합에 격자데이터를 맞추는 것이다. 이 맞춤은 보통 최소제곱을 기반으로 하되, 기본 함수는 다항식이다. 맞춤 주사선의 단점은 (a) 대량의 데이터를 저장해야 하는바, 맞춤된 주사선마다 다항식 계수가 여러개 존재하고, (b) 각각의 주사선을 맞추면 주사선 사이의 워프의 설명이 분실된다. 특히, 매 화소 행이나 열마다 주사선을 끼워맞추면, 메모리 용량 때문에 이런 경우가 흔하다해도, 주사선 사이의 격자데이터를 구하는데 보간법이 필요하다. 범용적인 워프의 설명을 고려하지 않는 보간법이라면 어떤 종류든 간에 화소 위치에 오차를 일으키고, 이것은 워프의 엄격도에 따라 아주 커질 수 있다.Connected to patch shape generator 130 as surface function estimator 140, this makes a functional description of the lattice transformation. A common method used to find a functional description of a spatial transformation is to fit grid data to a set of vertical or horizontal scanlines. This fit is usually based on least squares, but the default function is polynomial. Disadvantages of custom scan lines include: (a) storing a large amount of data; there are several polynomial coefficients for each customized scan line; and (b) the description of warps between scan lines is lost when each scan line is aligned. In particular, when scan lines are fitted to every pixel row or column, an interpolation method is required to obtain the grid data between the scan lines, although this is often the case due to memory capacity. Any interpolation method that does not take into account general warp descriptions will cause errors in pixel positions of any kind, which can be very large depending on the severity of the warp.

이런 문제는 양쪽 좌표에 대해 격자데이터를 곡면맞춤하면 해결될 수 있다. 싱글-패스와 2-패스 방법 모두에 적용되는 곡면맞춤은 2D 공간변환을 설명하는 자연스런 방식이다. 양방향으로의 형상거동을 동시에 병합하는 정확한 설명을 제공한다. 곡면맞춤은 다항식 방법으로 이루어졌을 때 일방향 주사선 맞춤을 설명하는 다항계수들을 맞춤하는 것을 의미한다. 곡면이 매핑에 관한 모든 2D 설명을 준다고 해도, 곡면의 평가는 주사선 차수에서 수직이나 수평으로 계속 진행될 수 있다. 따라서, 곡면을 기반으로 한 설명 역시 효과적인 주사선 알고리즘을 사용해 구현될 수 있다.This problem can be solved by surface fitting the grid data for both coordinates. Surface fitting, which applies to both single-pass and two-pass methods, is a natural way of describing 2D spatial transformations. It provides an accurate description of merging the shape behavior in both directions simultaneously. Curve fitting refers to fitting polynomial coefficients that describe one-way scan line fitting when done in a polynomial method. Although the surface gives all 2D descriptions of the mapping, the evaluation of the surface can continue vertically or horizontally in the scanline order. Thus, the description based on the surface can also be implemented using an effective scanning line algorithm.

도 1, 3에서, 곡면함수 추정기(140)는 각각의 사각형 패치의 격자데이터를 하나의 곡면에 맞추되 전술한 바와 같은 선택기준을 이용한다. 이 과정은 데이터가 여러 값을 갖지 않아 접힘이 없다는 가정하에 이루어진다. 실시간 하드웨어 구현에 가장 공통적인 맞춤선택은 x-y 방향의 3차 다항 곡면이다. 곡면맞춤은 이상적 데이터집합 관계 {(ui,vi),(xi,yi)}에 대한 함수 근사값을 제공한다. 곡면함수는 u i =S nu (x i ,y i )와 같이 표시된다. 출력 좌표공간의 원점은 패치마다 재정의되는 것으로서 상대적 원점이 되도록 선택한다. 예컨대 모든 패치의 상단좌측 모서리를 원점으로 할 수 있다. 이렇게 되면 맞춤과 곡면 평가에 관련된 갯수의 범위가 줄어들고, 이것은 특히 하드웨어 산술부의 수치오차를 줄이는데 중요하다. 1 and 3, the curve function estimator 140 fits the grid data of each rectangular patch onto one curved surface, but uses the selection criteria as described above. This process is based on the assumption that the data does not have multiple values and there is no folding. The most common custom choice for real-time hardware implementation is the cubic polynomial surface in the xy direction. Curve fit provides a function approximation for the ideal dataset relationship {(u i , v i ), (x i , y i )}. The surface function is expressed as u i = S nu ( x i , y i ). The origin of the output coordinate space is overridden per patch and is chosen to be relative. For example, the upper left corner of all the patches can be the origin. This reduces the range of numbers involved in fitting and surface evaluation, which is especially important for reducing numerical errors in hardware arithmetic.

다항식 방법에 대해 더 자세한 설명을 한다. (x i y j 형태의) 다항식 함수는 하드웨어 구현에 사용되는 가장 일반적인 함수이다. B-스플라인 곡면과 같은 모든 다항식계 곡면을 이 형식에 맞출 수 있다. 아래 표현은 여러가지 맞춤 곡면에 사용 된다:Explain in more detail the polynomial method. Polynomial functions (of the form x i y j ) are the most common functions used in hardware implementations. All polynomial surfaces, such as B-spline surfaces, can fit this format. The following representation is used for various custom surfaces:

Figure 112007026607518-PCT00004
Figure 112007026607518-PCT00004

여기서 곡면을 평가하는 좌표는 전체 패치에 걸쳐있는 것이지, 단순히 데이터집합의 샘플 화소(첨자 c로 표시한 것)에 한정된 것이 아니다. 곡면의 차수는 x 방향으로는 L이고 y 방향으로는 L로서, 이들은 서로 다르다. 이런 맞춤에서 구해진 곡면계수 {S nu , kl ,S nv , kl }는 전체 패치의 곡면을 정의한다.Here, the coordinates for evaluating the curved surface cover the entire patch, and are not limited to simply the sample pixels of the data set (indicated by the subscript c). The order of the curved surfaces is L in the x direction and L in the y direction, which are different from each other. The surface coefficients { S nu , kl , S nv , kl } obtained from this fit define the surface of the entire patch.

곡면 맞춤에 의해 격자계 표현인 {(ui,vi),(xi,yi)}에서 (패치 n에 대한) 아래의 곡면 다항식 (함수) 표현으로 바뀐다:Surface fitting changes from the grid representation {(u i , v i ), (x i , y i )} to the surface polynomial (function) representation (for patch n) below:

Figure 112007026607518-PCT00005
Figure 112007026607518-PCT00005

v에 대해서도 마찬가지로 전술한 바와 같다. 다수의 격자데이터 관계 {(ui,vi),(xi,yi)}를 저장하는 대신, (모든 곡면이나 패치에 대해) 곡면계수 S nu , kl 만 저장하면 된다. 이어서 이 곡면을 평가하여 역매핑 화소위치를 결정한다. 맞춤과정에서 곡면계수가 결정된다. 데이터를 맞추는데 다른 방법이나 맞춤함수를 사용할 수도 있지만, 가장 일반적인 방법은 최소제곱법이다.The same applies to v described above. Instead of storing multiple grid data relationships {(u i , v i ), (x i , y i )}, only the surface coefficients S nu and kl need to be stored (for all surfaces or patches). This curved surface is then evaluated to determine the reverse-mapping pixel position. The surface coefficient is determined during the fitting process. You can use other methods or fitting functions to fit the data, but the most common method is least squares.

도 4는 출력 좌표공간을 4개의 사각형 패치로 분할한 것을 기반으로 곡면함수 추정기(140)에서 만든 2D 맞춤곡면의 2k지예를 보여준다. 도 4A의 곡면은 불연속적인 반면, 도 4B의 곡면은 연속적이다.4 shows an example of 2k of a 2D custom surface created by the surface function estimator 140 based on dividing the output coordinate space into four rectangular patches. The curved surface of FIG. 4A is discontinuous while the curved surface of FIG. 4B is continuous.

2D 데이터집합의 출력좌표점 각각에 대해 곡면을 구하면, 오차분석 스테이지(150)에서 관련 곡면함수를 분석하여 u ic v ic 값을 구한다. 오차분석 스테이지(150)는 이들 값을 2D 격자설명의 정확한 좌표 (u i , v i )와 비교하는데, 이 좌표는 격자변환 생성기(120)에서 독립적으로 받은 것이다. 다음, 미리결정된 오차허용도 조건

Figure 112007026607518-PCT00006
을 만족하는지 판단한다. 조건을 만족하지 못하면 오차분석 스테이지(150)가 분석 결과를 패치형상 생성기(130)로 돌려보낸다. 이런 결과를 기반으로, 패치형상 생성기(130)는 패치를 더 세분하되, 오차가 허용도보다 큰 패치만을 세분한다. 패치의 세분은 사각형 어레이라는 규칙성을 유지한다. 가장 우선적으로 세분할 패치는 배경이 큰 패치이다. 입력좌표공간 외부의 배경에 매핑된 화소에 대해서는 맞춤오차가 큰 것이 일반적이다. 이런 경우, 이들 지점은 별도의 패치와 연관되어 배경에 매핑하도록 조정되어야 한다. 이어서 관련 비배경 영역들을 독립적으로 맞출 수 있다. 이들 단계는 원하는 정확도를 얻을 때까지 계속한다. 곡면함수는 변하지 않음을 알아야 한다. When a surface is obtained for each output coordinate point of the 2D data set, the error analysis stage 150 analyzes the relevant surface function to obtain u ic and v ic values. The error analysis stage 150 compares these values with the exact coordinates ( u i , v i ) of the 2D grid description, which are received independently from the grid transformation generator 120. Next, the predetermined error tolerance condition
Figure 112007026607518-PCT00006
Determine if it satisfies. If the condition is not satisfied, the error analysis stage 150 returns the analysis result to the patch shape generator 130. Based on this result, patch shape generator 130 further subdivides the patch, but only subdivided patches whose error is greater than the tolerance. The subdivision of patches maintains a regularity called a rectangular array. The first subdivided patch is a patch with a large background. It is common for the alignment error to be large for pixels mapped to the background outside the input coordinate space. In this case, these points must be adjusted to map to the background in association with separate patches. The relevant non-background areas can then be tailored independently. These steps continue until the desired accuracy is achieved. Note that the surface function does not change.

패치의 형상을 최적화하기 위한 과정은 기울기 탐색(gradient search)이나 임의 탐색(random search)을 통해 이루어진다. 이런 탐색은 패치 경계선상의 벡터공간에서 이루어진다. 패치 배열이 MxN인 경우, 수직 경계선은 M+1y이고 수평경계선은 N+1y로서, 벡터공간에 대한 차원은 M+N+2이다. The process for optimizing the shape of the patch is done by gradient search or random search. This search is done in vector space on the patch boundary. If the patch arrangement is MxN, the vertical boundary is M + 1y, the horizontal boundary is N + 1y, and the dimension for the vector space is M + N + 2.

기울기 탐색에서, 패치 경계선의 시작 벡터는

Figure 112007026607518-PCT00007
이고 스텝벡터는
Figure 112007026607518-PCT00008
로 표시한다.
Figure 112007026607518-PCT00009
Figure 112007026607518-PCT00010
+
Figure 112007026607518-PCT00011
양쪽에 대해 맞춤오차 분석을 한다.
Figure 112007026607518-PCT00012
+
Figure 112007026607518-PCT00013
에서의 오차가 더 작으 면
Figure 112007026607518-PCT00014
+
Figure 112007026607518-PCT00015
를 유지하고,
Figure 112007026607518-PCT00016
+
Figure 112007026607518-PCT00017
Figure 112007026607518-PCT00018
로 과정을 반복한다. 오차가 같거나 크면
Figure 112007026607518-PCT00019
를 유지하고 새로운 스텝벡터
Figure 112007026607518-PCT00020
을 선택한 다음,
Figure 112007026607518-PCT00021
Figure 112007026607518-PCT00022
로 과정을 반복한다. 스텝벡터는 오차 변화를 기반으로 조정할 수 있다. 변화가 클수록 크기가 더 큰 스텝벡터를 사용한다. 패치형상 생성기(130)를 이용하면 벡터공간에서 가능한 모든 방향을 탐색할 수 있으므로, 국부적 오차 최소값에 한정하여 탐색되지 않는다. 반복 횟수는 탐색에 할애된 시간에 좌우된다. 기울기 탐색은 가능한 모든 패치배열, 예컨대 1x1, 1x2, 2x1 .. 등등 최대 배열에 대해 이루어진다.In the slope search, the start vector of the patch boundary is
Figure 112007026607518-PCT00007
And the step vector
Figure 112007026607518-PCT00008
To be displayed.
Figure 112007026607518-PCT00009
Wow
Figure 112007026607518-PCT00010
+
Figure 112007026607518-PCT00011
Perform a custom error analysis on both sides.
Figure 112007026607518-PCT00012
+
Figure 112007026607518-PCT00013
If the error at is smaller
Figure 112007026607518-PCT00014
+
Figure 112007026607518-PCT00015
And keep
Figure 112007026607518-PCT00016
+
Figure 112007026607518-PCT00017
Wow
Figure 112007026607518-PCT00018
Repeat the process with If the error is the same or large
Figure 112007026607518-PCT00019
Keep the new step vector
Figure 112007026607518-PCT00020
Then select
Figure 112007026607518-PCT00021
Wow
Figure 112007026607518-PCT00022
Repeat the process with The step vector can be adjusted based on the change in error. The larger the change, the larger the stepvector. The patch shape generator 130 may search all possible directions in the vector space, and thus is not limited to the local error minimum value. The number of iterations depends on the time devoted to the search. Gradient search is done for all possible patch arrays, e.g. 1x1, 1x2, 2x1... Maximum array.

임의 탐색은 경계선 벡터

Figure 112007026607518-PCT00023
를 패치경계의 벡터공간에서 임의로 선택한다. 이런 벡터를 선택할 때는 크기가 최대/최소 등의 여러 조건을 줄 수 있다. 벡터
Figure 112007026607518-PCT00024
의 맞춤을 위해 오차를 계산하되 오차가 최대인 벡터를 유지한다. 이 탐색은 기울기 탐색과 마찬가지로 가능한 모든 패치 어레이에 대해 이루어진다. 본 발명의 일례를 선례로 삼은 결과, 후술하는 대부분의 변환에서 오차를 10배 줄이는데는 20회 반복으로 충분했다. Random navigation border vector
Figure 112007026607518-PCT00023
Is randomly selected from the vector space of the patch boundary. When choosing such a vector, the size can give several conditions, such as maximum / minimum. vector
Figure 112007026607518-PCT00024
Compute the error for the fit, but keep the vector with the largest error. This search is done for all possible patch arrays as with the slope search. As an example of the present invention, 20 iterations were sufficient to reduce the error 10 times in most of the transformations described below.

한편, 오차를 줄이는 효과적이고 강력한 방법은 2가지 탐색을 결합하는 것이다. 먼저 임의 탐색으로 벡터

Figure 112007026607518-PCT00025
를 구해 오차를 최소화한 다음, 이 벡터를 기울기 탐색의 시작벡터로 사용하여
Figure 112007026607518-PCT00026
로 한다. 여기서 기울기 탐색은 임의 탐색으로 얻은 결과를 더 가다듬는 역할을 한다. 이런 임의-기울기 (결합) 탐색을 이용하면, 패치의 경계공간을 철저히 탐색하여 오차를 최소로 하는 경계를 찾을 수 있다.On the other hand, an effective and powerful way to reduce errors is to combine the two searches. Vector with random navigation first
Figure 112007026607518-PCT00025
To minimize the error, then use this vector as the starting vector for the gradient search.
Figure 112007026607518-PCT00026
Shall be. The gradient search here further refines the results obtained by random search. Using this random-slope (combined) search, the boundary space of the patch can be thoroughly searched to find the boundary that minimizes the error.

위의 곡면 표현에 관해 몇가지 중요한 점을 강조하고자 한다. 필요하다면, 패치마다 독립적인 출력 좌표공간으로 취급하고, 패치의 데이터집합은 자체적으로 독립적인 2D 변환으로 취급할 수 있다. 특히, 패치마다 독립적으로 맞춤을 하고, 이는 출력영상이 연속일 필요가 없음을 암시한다. 패치에 대한 불연속 곡면과 연속 곡면 맞춤의 예가 도 4A~B에 도시되었다. 도 4A의 4개의 패치를 더 세분하여 맞춤을 개선할 수 있다. 구체적으로, 1024x768 x-y 출력공간을 4개의 패치로 나누고 곡면 (u(x,y))를 그렸다. 도 4A에서, 곡면은 패치를 가로질러 불연속적이다. 패치마다 독립적인 데이터집합을 갖고, 인접 데이터집합에 독립적으로 맞춤된다. 도 4B의 곡면은 패치를 가로질러 연속적이며, 이 경우 어떤 패치에 대한 맞춤도 연속성이 있어야 한다.I would like to highlight some important points about the surface representation above. If necessary, each patch can be treated as an independent output coordinate space, and the patch's dataset can be treated as its own independent 2D transformation. In particular, each patch is tailored independently, suggesting that the output image does not need to be continuous. Examples of discontinuous and continuous surface fit for patches are shown in FIGS. 4A-B. The four patches of FIG. 4A can be further refined to improve fit. Specifically, the 1024x768 x-y output space was divided into four patches and a curved surface (u (x, y)) was drawn. In Figure 4A, the curved surface is discontinuous across the patch. Each patch has an independent dataset and is tailored independently to adjacent datasets. The curved surface of Figure 4B is continuous across the patch, in which case the fit for any patch should be continuous.

패치 경계에서 영상의 연속성을 유지하기 위해, 연속성을 분명히 강제하는 기본함수를 사용할 수 있다. 2D 공간에서 연속성을 제어하는 가장 널리 알려진 함수는 B-스플라인 곡면과 베지어 곡면(Bezier surface)이다. 이들 곡면 둘다 (C i 연속함수의 수학적 관점에서) 필요한 연속성을 구하는데 사용된다. B-스플라인 곡면에서 MxN 패치어레이에 대한 곡면맞춤은 텐서곱(tensor product) 방식을 이용해 이루어지는데, 스플라인 마디에서 쉽게 패치를 분할하거나 그 역으로 한다. 마디수열을 조정하면 B-스플라인 곡면의 연속성을 쉽게 조절할 수 있다. 쌍삼차(bicubic) B-스플라인 곡면으로 C 2 연속성까지 부과할 수 있는데, 이정도면 어디에도 충분하다. (일반적으로 평활한 영상을 얻는데 필요한 것은 C 1이 전부다.) 불연속 곡면, 즉 독립적 패치는 B-스플라인의 특수한 경우로서, 적당한 마디수열을 갖는다. 스플라 인은 상대적 원점을 갖는 (각 패치에 대한) 국소 다항식 형태로 기록되고, 이 기록은 자연히 다항식계 하드웨어 도구로 변역된다. B-스플라인 맞춤 도구는 많은 수치/수학적 계산소프트웨어 패키지에 적합하다 또, 패치마다 다른 동작을 하기도 한다. (패치 경계선에서의 임의 연속성에 대한) 패치기반 곡면설명으로 아주 복잡한 2D 공간변환의 표현이 가능하다.To maintain continuity of the image at the patch boundary, we can use a basic function that explicitly enforces continuity. The most well known functions that control continuity in 2D space are B-spline surfaces and Bezier surfaces. Both of these surfaces ( C i Used to find the required continuity). Surface fitting for MxN patch arrays on B-spline surfaces is done using a tensor product method, which allows for easy splitting of patches at the spline nodes and vice versa. By adjusting the node sequence, you can easily adjust the continuity of the B-spline surface. Bicubic B-spline surfaces can impose C 2 continuity, which is sufficient anywhere. (Generally all that is needed to obtain a smooth image is C 1. ) Discontinuous surfaces, or independent patches, are a special case of B-splines, with the proper sequence of nodes. Splines are recorded in local polynomial form (for each patch) with relative origins, which are naturally translated into polynomial hardware tools. The B-spline fitting tool is suitable for many numerical / mathematical calculation software packages, and it can also behave differently from patch to patch. Patch-based surface descriptions (for arbitrary continuity at patch boundaries) allow for the representation of very complex 2D spatial transforms.

일반 2D 공간변환의 완벽한 표현은 모든 패치에 적용되는 아래 데이터로 주어진다:The complete representation of a generic 2D spatial transform is given by the following data that applies to all patches:

1) 패치의 형상(패치 원점의 절대위치와 패치의 크기)1) Patch shape (absolute position of patch origin and patch size)

2) 격자데이터 관계에 대한 곡면을 설명하는 곡면계수.2) Surface coefficients describing the surfaces of the grid data relationships.

이런 표현으로 2D 매핑을 정의하는 통합된 포맷이 생긴다. 이 표현은 2D 영상변환 시스템의 실시간 하드웨어 구현을 향한다. 하드웨어 구현시, 주사선 차수에서 곡면다항식을 평가하고, 그 위치와 미분정보는 처리필터로 보내진다. (위치곡면에서 도합수를 쉽게 유도한다.) 매핑이 폐함수 형태로 주어지므로, 전체 형상데이터(각종 도함수)를 필터링 단계에서 쉽게 얻을 수 있다.This representation results in a unified format that defines 2D mapping. This representation is directed towards real-time hardware implementation of 2D image conversion systems. In a hardware implementation, the curved polynomial is evaluated at the scan line order, and its position and differential information are sent to a processing filter. Since the mapping is given in the form of a closed function, the overall shape data (various derivatives) can be easily obtained at the filtering stage.

맵이 복잡할수록, 패치의 수, 결국에는 1)과 2)에 포함된 데이터량이 증가한다. 데이터는 전체적인 포맷에 변화를 주지 않고 매핑의 복잡도에 따라 좌우된다. 패치의 수가 늘어나면 맞춤오차가 줄어든다. 원칙적으로, 패치 어레이를 계속 세분하면 최대 맞춤오차를 크게 줄일 수 있다. 그러나, 실제로는 데이터를 저장하기 위한 공간이 제한되어 (패치마다 1), 2) 데이터와 관련됨), 패치의 수도 제한된다. 메모리와 오차 최소화(허용레벨)가 균형을 이루는데서 최종 패치어레이 크기가 결 정된다. The more complex the map, the greater the number of patches, and eventually the amount of data contained in 1) and 2). The data depends on the complexity of the mapping without changing the overall format. As the number of patches increases, the alignment error decreases. In principle, continuing to subdivide the patch array can greatly reduce the maximum alignment error. In practice, however, space for storing data is limited (1 per patch, 2) associated with data), and the number of patches is also limited. The final patch array size is determined by balancing memory with error minimization (tolerance level).

대부분의 2D 변환에서는 고해상도 패치망을 필요로하지 않는다. 패치 사이즈와 오차 발생을 정량화하기 위해, 위의 포맷을 이용해 여러가지 2D 매핑을 연구했다. 연구대상은 (i) 방사상 핀쿠션과 배럴 왜곡과 같은 렌즈왜곡, (ii) 수평수직 키스톤 교정이나 곡면에 대한 투사와 같은 투사 맵, (iii) 선형 축적과 결합된 회전, (iv) 아래와 같은 더 복잡한 맵을 위한 위의 조합, (v) 아치 래스터 맵, (vi) (어안렌즈나 특수한 360도 촬영장치를 이용해 얻은) 광각/360도/파노라마 영상 교정 등이 있다. Most 2D transformations do not require a high resolution patch network. To quantify patch size and error occurrences, various 2D mappings were studied using the above format. The subjects included (i) lens distortions such as radial pincushion and barrel distortions, (ii) projection maps such as horizontal and vertical keystone correction or projection to curved surfaces, (iii) rotation combined with linear accumulation, and (iv) more complex Combinations of the above for maps, (v) arch raster maps, and (vi) wide-angle / 360-degree / panorama image correction (obtained using fisheye lenses or special 360-degree cameras).

3차(K=L=3)의 다항식 곡면을 사용했는데, 이는 곡면계수가 패치당 16개임을 의미한다. 0.5 화소의 오차한계를 정했다. (ii~iv)의 변환에 최대 4개의 패치가 필요했다. 이 수 전체 맵을 정의하는데 필요한 곡면계수가 128개 이하임을 의미한다. 곡면계수를 4-바이트 플로트(4-byte float)로 저장하고 데이터 크기를 512 바이트 이하로 한다. 이는 매우 합리적인 값으로서 보드나 칩 탑재형 메모리에 쉽게 적용될 수 있다.We used a cubic (K = L = 3) polynomial surface, which means that there are 16 surface coefficients per patch. An error limit of 0.5 pixels was set. Up to four patches were required to convert (ii ~ iv). This means that the number of surface coefficients required to define the total map is 128 or less. Store the surface coefficient as a 4-byte float and make the data size less than 512 bytes. This is a very reasonable value and can be easily applied to board or chip mounted memory.

i, v 변환에는 (양쪽 좌표에 대해) 최대 26 패치가 필요했는데, 데이터 크기는 1.625킬로바이트 이하로서, 현재의 보드나 칩 탑재형 메모리에서 쉽게 다룰 수 있다. vi 변환에 대해서는 90도의 시야각에 대한 입체교정을 위해 최대 18개의 패치나 1.125킬로바이트 이하가 필요했다. 전체 함수가 사용되면 vi에서 구한 영상에 복잡한 변환을 적용할 수 있다. 예컨대, 180도 어안렌즈 2개에서 얻은 영상을 하나의 360 파노라마 영상 외에도 특정 영역의 2개 줌업 90도 시야로 변환할 수 있 다. 이런 변환은 대략 6개의 맵(360/90 + 2)에 해당하는 것으로, 각각 특정의 90도 영역을 변환하고, 데이터 크기는 6.75킬로바이트 이하이다. 이런 특수한 광각/360 기반 변환은 최근에 보안분야에서 많이 선호되고 있다. 따라서, 이런 결과에서 알 수 있듯이, 이상의 방법은 2D 변환을 표현할 수 있으며 합리적인 데이터 크기와 화소 정밀도를 갖는다. The i and v conversions required up to 26 patches (for both coordinates), with data sizes of less than 1.625 kilobytes, easily handled by current board or on-chip memory. For the vi conversion, up to 18 patches or less than 1.125 kilobytes were required for stereo calibration of a 90 degree viewing angle. When the whole function is used, complex transformations can be applied to the image obtained from vi. For example, an image obtained from two 180-degree fisheye lenses may be converted into two zoom-up 90-degree fields of view in addition to one 360 panoramic image. This conversion corresponds to approximately six maps (360/90 + 2), each transforming a particular 90 degree region, with a data size of less than 6.75 kilobytes. This special wide-angle / 360-based transformation has recently become a favorite in security. Thus, as can be seen from these results, the above method can represent 2D transform and has reasonable data size and pixel precision.

바운딩박스 데이터로 영상변환데이터를 보충하면 하드웨어를 더 최적화할 수 있다. 바운딩박스 데이터는 바운딩박스 생성기(160)에서 생기는 것으로서 불필요한 하드웨어 처리를 제거하는 역할을 한다. 앞서 설명한대로, 출력공간내의 큰 asu적이 배경 화소에 해당하는바, 입력영상을 축소시키는 변환으로 작용하고, 이것은 2D 필터링을 이용했을 때 대부분의 하드웨어 리소스에 영향을 준다. 이런 화소위치에서는 곡면을 평가할 필요가 없고, 필터도 실행할 필요가 없으며, 단지 화소 색상을 배경 색상으로 맞추기만 하면 된다. 하드웨어가 많은 배경화소를 빨리(즉, 곡면 평가 없이) 확인하도록, 패치마다 사각형 바운딩박스에 연계했다. 바운딩박스는 출력공간에서 상단좌측 좌표를 (x L B , y L B )로, 하단 우측 좌표를 (x R B , y R B )로 간단히 정의한다. 바운딩박스 안에 좌표가 있는 출력화소 (x i , y i )만 처리하고 x L B x i x R B , y L B y i y R B ,한다(즉, 곡면을 평가하되 화소의 색상값은 2D 필터링으로 결정한다), 한편 바운딩박스 밖의 출력화소에는 간단히 배경색상을 할당한다. 이렇게 되면 많은 중복 처리사이클을 없앨 수 있다.By supplementing the image conversion data with bounding box data, the hardware can be further optimized. The bounding box data is generated by the bounding box generator 160 and removes unnecessary hardware processing. As described above, the large asu in the output space corresponds to the background pixel, which acts as a transformation that reduces the input image, which affects most hardware resources when 2D filtering is used. At these pixel positions, there is no need for evaluating the curved surface, no need to run a filter, and simply match the pixel color to the background color. To ensure that the hardware quickly checks many background pixels (ie without surface evaluation), each patch is associated with a rectangular bounding box. The bounding box simply defines the top left coordinate as ( x L B , y L B ) and the bottom right coordinate as ( x R B , y R B ) in the output space. Only process output pixels ( x i , y i ) with coordinates in the bounding box and x L B x i x R B , y L B y i y R B , i.e. evaluate the surface The color value is determined by 2D filtering), while the output pixel outside the bounding box is simply assigned a background color. This eliminates many redundant processing cycles.

비배경 화소 경계가 대개 사각형이 아니므로 이런 식으로 모든 배경 화소를 확인할 수는 없다. 그러나, 바운딩박스를 가능하면 패치당 하나 이상으로 세분하면, 이런 경계가 사각형 바운딩박스에 가깝게 되지만, 더 많은 저장 비용이 든다(바운딩박스 좌표가 필요함). 대부분의 변환에 바운딩박스 데이터는 불필요하고, 극한의 변환일지라도 패치당 바운딩박스 하나면 충분하다. Since the non-background pixel boundary is usually not square, it is not possible to see all the background pixels in this way. However, subdividing the bounding box to one or more per patch, if possible, would make this boundary close to a rectangular bounding box, but at a higher cost of storage (requires bounding box coordinates). Bounding box data is unnecessary for most conversions, and even bounding boxes per patch are sufficient for extreme conversions.

바운딩박스 데이터를 사용하지 않으면, 더 표준적인 방식을 이용해 불필요한 과정을 줄일 수 있다. 표준 방식에서는 모든 화소에 대해 곡면을 평가하고, 최종 좌표가 입력공간에 있는지 점검한다. 좌표가 입력공간에 있으면, 정상으로 처리를 진행하여, 출력화소 색상값을 2D 필터링으로 결정한다. 좌표가 벗어나 있으면, 화소에 간단히 배경 색상을 할당하고, 2D 필터링을 하지 않는다. 곡면을 평가해야만 하지만, 필터가 이들 데이터를 처리하지 않는다는 사실에서 얻는 이득이 상당할 수 있다. 또, 비배경 화소 경계를 아주 정확히 결정할 수 있는데, 이는 이런 경계가 입력공간에 대한 곡면매핑에 의해 충분히 규정되기 때문이다.If you do not use bounding box data, you can use a more standard approach to reduce unnecessary steps. The standard method evaluates the curve for every pixel and checks that the final coordinates are in the input space. If the coordinates are in the input space, the process proceeds to normal, and the output pixel color values are determined by 2D filtering. If the coordinates are off, simply assign a background color to the pixels and do not do 2D filtering. Although the surface must be evaluated, the benefit from the fact that the filter does not process these data can be significant. Also, the non-background pixel boundary can be determined very accurately, since this boundary is sufficiently defined by the surface mapping to the input space.

워핑시스템(100)의 영상변환은 2D 영상변환을 설명하는 변수 전체를 결정한다. 이들 데이터는 차례로 해상도/확대 생성기(170)와 데이터 재배열 스테이지(180)에서 사용된다. 이들 스테이지에 앞서 바운딩박스 생성기(160) 출력에 의해 매핑표현이 결정되는데, 생성기의 출력은 패치형상 생성기(130) 및 곡면함수 추정기(140)에서 생긴 하부의 패치형상과 곡면계수로 이루어진다. The image transformation of the warping system 100 determines all of the variables that describe the 2D image transformation. These data are in turn used in resolution / enlargement generator 170 and data rearrangement stage 180. The mapping expression is determined by the bounding box generator 160 output prior to these stages, and the output of the generator is composed of the patch shape and the surface patch coefficients generated by the patch shape generator 130 and the surface function estimator 140.

도 5~6의 해상도/확대 생성기(170)는 입출력 영상의 해상도를 변화시키고 확대효과를 주어 전술한 영상변수를 활용하는데 이용된다. 워핑시스템(100)의 위치기 반 영상변환 표현을 이용하면 단순히 계수를 축척함으로써 해상도마다 공간변환을 쉽게 조절할 수 있다. 도 5는 해상도 변화작업에 관한 과정을 보여주는데, 여기서 입출력 영상 둘다 축척된다. 입출력 좌표의 독립적 축척은 아래와 같이 표현된다:The resolution / enlargement generator 170 of FIGS. 5 to 6 is used to change the resolution of the input / output image and give an enlargement effect to utilize the aforementioned image variables. By using the position-based image transformation representation of the warping system 100, the spatial transformation can be easily adjusted for each resolution by simply scaling the coefficients. 5 shows a process relating to a resolution change operation, in which both input and output images are scaled. The independent scale of input and output coordinates is expressed as:

xx'=r 1 x, yy'=s 1 y xx '= r 1 x , yy ' = s 1 y

uu'=r 2 u, vv'=s 2 v (5) uu ' = r 2 u , vv ' = s 2 v (5)

상수 {r 1,s 1 , r 2,s 2}는 축척율을 결정하고 프라임 표시는 축척좌표를 의미한다. 축척좌표의 관점에서 곡면은 아래와 같이 표현된다:The constants { r 1 , s 1 , r 2 , s 2 } determine the scale factor and the prime mark means the scale coordinate. In terms of scale coordinates, the surface is represented by:

Figure 112007026607518-PCT00027
Figure 112007026607518-PCT00027

따라서, 입출력 해상도 변화를 조정하기 위해, 모든 계수를 축척한다. 이것은 맞춤이나 보간이 필요없는 비교적 간단한 작업이다. 그러나, 패치의 형상(즉, 패치의 사이즈와 원점의 절대위치) 역시 워핑시스템(100)으로 적절히 축척해야만 한다.Therefore, in order to adjust the input / output resolution change, all coefficients are scaled. This is a relatively simple task that requires no alignment or interpolation. However, the shape of the patch (ie, the size of the patch and the absolute position of the origin) must also be properly scaled with the warping system 100.

도 6은 워핑시스템(100)으로 한 영상변환내에서 확대맵(zooming map)을 생성하는데 관련된 단계들을 보여준다. 베이스 입력영상, 베이스 출력영상 및 축척된 베이스 출력영상은 확대할 영역과 베이스 워프를 보여준다. 먼저 베이스 출력영상을 축척(즉, 축척된 베이스 출력영상을 만들어)한 다음 (축척 작업으로 적절히 확대된) 관심 영역을 추출하면 확대 워프가 만들어진다. 확대 맵은 새로운 입력영상과 새로운 출력영상 사이에 나타나는 변환에 해당한다. 확대 작업은 특정 영역을 확대할 수 있는 차이에 맞게 다른 해상도로 축척하는 것과 비슷한데, 이는 패닝 기능(panning capability)을 의미한다. 확대작업은 입력 영상공간(사전변환)이나 출력 영상공간(사후변환)에서 이루어진다. 워핑시스템(100)의 아래 실례에서는 출력공간에서의 확대에 대해 설명한다. 확대율(zoom factor) K는 1보다 크게 해야만 하는데 여기서는 K=2로 2배율로 했다. 다른 경우에도 비슷하게 취급된다.6 shows the steps involved in creating a zooming map within an image transformation with a warping system 100. The base input image, the base output image, and the scaled base output image show the area to be enlarged and the base warp. A scaled warp is created by first scaling the base output image (i.e., creating a scaled base output image) and then extracting the region of interest (scaled properly by the scale operation). The magnification map corresponds to a transformation appearing between the new input image and the new output image. Magnification is similar to scaling at different resolutions to accommodate the difference in which a specific area can be magnified, which means panning capability. The enlargement operation is performed in the input image space (pre-conversion) or the output image space (post-conversion). The following example of the warping system 100 describes the enlargement in the output space. The zoom factor K should be greater than 1, where K = 2, which is doubled. In other cases, it is treated similarly.

도 6의 베이스맵 변환을 보면, 해상도 W 0 xH 0 의 입력영상을 W 1 xH 1 의 출력영상으로 변환한다. 출력에서의 확대작업은 베이스 맵의 출력공간내 사각 영역을 확대함을 의미한다. 이 영역은

Figure 112007026607518-PCT00028
으로 정의되고, 상단좌측 모서리의 절대위치는
Figure 112007026607518-PCT00029
이다. 새로운 확대맵의 출력영상은 크기가
Figure 112007026607518-PCT00030
이다. 확대작업은 2단계로 나눌 수 있다. 먼저 베이스 출력영상을 K의 비율로 축척하는데, 이는 KW 1 xKH 1 의 새로운 출력해상도로 축척하는 것과 같은 작업이다. 다음, 더 크게 축척된 영상에 서
Figure 112007026607518-PCT00031
에 위치하는 크기
Figure 112007026607518-PCT00032
의 윈도우를 추출해 새로운 출력영상으로 디스플레이한다. 따라서, 축척된 영상을 채취하여 관심영역만 보유한다. 확대맵은 2D 공간변환한 것으로서, 새로이 축척채취한
Figure 112007026607518-PCT00033
출력영상에 W 0 xH 0 의 입력영상을매핑한 것이다. 새로운 출력공간의 좌표체계는 (x",y")로 표시한다. (x",y") 표시는 새로운 맵의 입력좌표 체계로 사용되고, 이것은 실제로는 베이스 워프에서 변하지 않고 남아있다. 각각의 패치(출력공간)의 좌표는 패치 상단좌측 모서리의 원점에 대해 규정된다. 아래 계산에서는 역시 절대좌표로 작업해야 한다. 첨자 A는 (x A ,y A )와 같이 절대좌표를 나타낸다. Referring to the basemap transformation of FIG. 6, an input image having a resolution W 0 xH 0 is converted into an output image having W 1 xH 1 . Zooming in the output means to enlarge the rectangular area in the output space of the base map. This area
Figure 112007026607518-PCT00028
The absolute position of the upper left corner
Figure 112007026607518-PCT00029
to be. The output image of the new zoom map is
Figure 112007026607518-PCT00030
to be. Magnification can be divided into two stages. First, the base output image is scaled in the ratio of K, which is equivalent to scaling the new output resolution of KW 1 xKH 1 . Next, on the larger scaled image
Figure 112007026607518-PCT00031
Size located in
Figure 112007026607518-PCT00032
Extract the window and display it as a new output image. Therefore, the scaled image is taken to retain only the region of interest. The magnified map is a 2D space transform,
Figure 112007026607518-PCT00033
The W 0 x H 0 input image is mapped to the output image. The coordinate system of the new output space is represented by ( x ", y" ). The ( x ", y" ) notation is used as the input coordinate system for the new map, which actually remains unchanged at base warp. The coordinates of each patch (output space) are defined relative to the origin of the top left corner of the patch. In the calculation below, we must also work with absolute coordinates. The subscript A represents absolute coordinates, such as ( x A , y A ).

수학적으로 첫번째 확대단계는 곱셈연산이고, 두번째 단계는 시프트나 덧셈연산이다. 베이스 공간과 새 출력공간내 절대위치는 아래와 같다:Mathematically, the first magnification step is a multiplication operation, and the second step is a shift or addition operation. The absolute positions in the base space and the new output space are as follows:

Figure 112007026607518-PCT00034
Figure 112007026607518-PCT00034

이들 식을 곡면 표현으로 대체하기 전에, 상대위치로 바꾸어야 한다. 두번째 단계에서는 간단한 해상도 변화작업에서 볼 수 없었던 추가적인 복잡성을 유도하므로 이것은 덜 하찮은 것이다. 축척된 영상내 원점을 옮기고 크기

Figure 112007026607518-PCT00035
의 윈도우를 추출하면 많은 화소/점이 출력영상 밖에 놓이게 된다. 새로운 워프에 관한 한, 이들 점은 더이상 존재하지 않는다. 마찬가지로, 패치의 일부나 전체 패치를 영상 윈도우 밖에 놓을 수 있다. 이것은 패치 분할이 확대맵에는 다르다는 것을 의미한 다.
Figure 112007026607518-PCT00036
윈도우 안에 있는 패치나 패치의 일부분만이 유지되어야 한다. 패치 모서리의 새로운 (절대) 위치를 연구하면 어느 패치나 패치의 어느 부분을 포함시켜야 할지를 알 수 있다. 규칙적인 사각형 패치 망으로 시작하고 윈도우가 사각형이므로, 새로운 패치 분할 역시 규칙적 사각형이 될 것이다. Before replacing these equations with surface representations, you must replace them with relative positions. This is less trivial as the second stage introduces additional complexity not seen in a simple resolution change. Move and scale origin in scaled image
Figure 112007026607518-PCT00035
If you extract the window of, many pixels / dots lie outside the output image. As far as the new warp is concerned, these points no longer exist. Similarly, some or all of the patches can be placed outside the video window. This means that patch splitting is different for augmented maps.
Figure 112007026607518-PCT00036
Only patches or parts of patches in Windows should be kept. By studying the new (absolute) position of the patch edge, we can see which patch or which part of the patch should be included. Since we start with a regular square patch network and the window is square, the new patch split will also be a regular square.

베이스맵에서 n번째 패치의 상단 좌측 모서리(첨자 1로 표시)와 하단 우측 모서리(2로 표시)를 다음과 같이 표시한다(이들은 절대위치이지만, 첨자 A는 편의상 생략한다):In the basemap, mark the upper left corner (marked with subscript 1) and the lower right corner (marked with 2) of the nth patch as follows (these are absolute, but subscript A is omitted for convenience):

Figure 112007026607518-PCT00037
Figure 112007026607518-PCT00037

이들 지점을 다음의 새로운 공간내 새로운 모서리에 매핑한다:Map these points to new corners in the following new space:

Figure 112007026607518-PCT00038
Figure 112007026607518-PCT00038

새로운 패치의 크기는 아래와 같다:The new patches are as follows:

Figure 112007026607518-PCT00039
Figure 112007026607518-PCT00039

패치의 신규 폭이나 높이가 0 이하이면, 이 패치가 새 맵에 포함된다. 폭과 높이 모두 0보다 크면, 패치가 확대변환에 포함된다. 포함된 패치의 절대위치(즉, 상단 좌측 모서리)를 재계산해야 하는데, 이는 이 패치가 일부만 포함되기 때문이다. 새 위치는 아래와 같다:If the new width or height of the patch is zero or less, this patch is included in the new map. If both width and height are greater than zero, the patch is included in the translation. The absolute position of the included patches (ie, the top left corner) must be recalculated because only some of these patches are included. The new location is as follows:

Figure 112007026607518-PCT00040
Figure 112007026607518-PCT00040

보유된 각각의 패치는 아래와 같은 새로운 형상(위치와 크기)을 갖는다:Each patch retained has the following new shape (position and size):

Figure 112007026607518-PCT00041
Figure 112007026607518-PCT00041

새 패치 형상을 알면, 식 (12), (13)을 새 출력공간의 상대적 원점 표현으로 바꿀 수 있다:Knowing the new patch shape, we can replace equations (12) and (13) with the relative origin representation of the new output space:

Figure 112007026607518-PCT00042
Figure 112007026607518-PCT00042

끝으로, 베이스 맵의 곡면표현으로 대체할 수 있다:Finally, we can substitute the surface representation of the base map:

Figure 112007026607518-PCT00043
Figure 112007026607518-PCT00043

위의 식을 확장하고 표준형태와 비교하면, 새로운 곡면계수를 간단히 얻을 수 있다. 이들 계수는 패치 형상과 결합하여 확대변환을 완벽히 정의한다.By extending the above equation and comparing it with the standard form, we can simply obtain a new surface coefficient. These coefficients, combined with the patch shape, completely define the magnification.

데이터 재배열 스테이지(180)는 특정의 영상 조작시스템에 활용되어 필요한 데이터를 더 재배열한다. 곡면다항식의 평가는 여러 방식으로 진행될 수 있는바, (덧셈이나 곱셈의 수와 차수와 같은) 자세한 것은 하드웨어나 소프트웨어 아키텍처에 좌우된다. 예를 들어, 다항식을 평가하는 일반적인 하드웨어 방식은 호너의 방법으로서, 본 발명에서는 3차 다항식을 이용한다:The data rearrangement stage 180 is utilized in a specific image manipulation system to further rearrange necessary data. The evaluation of curved polynomials can be done in a number of ways, with the details (such as number and order of additions or multiplications) dependent on the hardware or software architecture. For example, a common hardware approach to evaluating polynomials is Horner's method, which uses third order polynomials in the present invention:

Figure 112007026607518-PCT00044
Figure 112007026607518-PCT00044

비슷한 기술을 곡면 평가에도 사용한다. 곡면은 아래와 같이 재평가된다:Similar techniques are used for surface evaluation. The surface is reevaluated as follows:

Figure 112007026607518-PCT00045
Figure 112007026607518-PCT00045

곡면은 x 방향의 다항식으로 취급되고, ㅌ-다항식의 계수는 y 방향의 다항식이다. 모든 다항식(토탈 5개)은 호너의 방법으로 평가된다. 모든 수평주사선(행)에 대해, y-다항식을 (패치당) 1회만 평가해야 한다. (22) 식은 수직 주사선에도 사용된다. 이 경우, 각 패치의 첫번째 수직주사선(열)에 대해 y-다항식을 평가해 저장해야만 한다. 이어서 패치내 나머지 수직주사선에 대해 하여야 하는데, 이들은 주사선의 x-위치와는 무관하기 때문이다. 이렇게 되면 처리속도가 증가하고 직접적으로는 x에 관련되지만 암묵적으로는 y에 관련된 1D 위치 다항식으로 변환을 취급하므로, y의 다항식인 위치계수 자체로 표현되기도 한다. 한편, 곡면을 y의 다항식으로 취급하고, 그 계수는 x의 다항식으로 하기도 한다. 경우에 따라, 메모리 접속/저장 및 연산장치의 사양에 따라서는 다른 방법이 더 좋을 수도 있다. The curved surface is treated as a polynomial in the x direction, and the coefficient of the polynomial of the polynomial is a polynomial in the y direction. All polynomials (5 total) are evaluated by Horner's method. For all horizontal scan lines (rows), the y-polynomial should only be evaluated once per patch. (22) is also used for vertical scanning lines. In this case, the y-polynomial must be evaluated and stored for the first vertical scan line (column) of each patch. This should then be done for the remaining vertical scan lines in the patch, since they are independent of the x-position of the scan lines. This speeds up the processing and handles the transformation into a 1D positional polynomial that is directly related to x but implicitly related to y, so it is sometimes referred to as the position coefficient itself, which is the polynomial of y. On the other hand, the curved surface is treated as a polynomial of y, and the coefficient may be referred to as a polynomial of x. In some cases, other methods may be better, depending on the specifications of the memory connection / storage and computing device.

다항식 표현을 평가하는 다른 표준 기술은 전방차분(forward differences)이다. 그러나, 전방차분 사정은 오차를 모으는 경향이 있고, 이 방식의 큰 장점은 하드웨어의 복잡성을 줄이되, 구체적으로는 곱셈을 줄이고 고정점 사용 가능성을 줄이는데 있다. 패치 크기가 주사선 방향으로 작고 타당한 비트의 수치적 정확도를 얻을 수 있으면, 오차의 합도 작을 수 있다.Another standard technique for evaluating polynomial expressions is forward differences. However, forward differentials tend to collect errors, and the great advantage of this approach is that it reduces the complexity of the hardware, specifically reducing multiplication and the possibility of using fixed points. If the patch size is small in the scan line direction and a reasonable bit numerical accuracy can be obtained, the sum of the errors can also be small.

도 7은 본 발명의 논리흐름(700)을 보여준다. 710에서는 각각의 출력화소를 입력화소에 매핑하는(역매핑) 좌표쌍을 포함하는 격자데이터 세트를 생성한다. 720에서는 하부 형상과 워프의 복잡도에 맞는 패치 형상을 만든다. 730에서는 격자데이터 세트에 관한 설명을 곡면맞춤을 통해 구하고 곡면계수를 생성한다. 7 shows a logic flow 700 of the present invention. In 710, a grid data set is generated that includes coordinate pairs that map each output pixel to an input pixel (inverse mapping). At 720, we create a patch shape that matches the complexity of the bottom shape and warp. In 730, a description of the grid data set is obtained through surface fitting and a surface coefficient is generated.

이 지점에서 곡면데이터와 패치데이터가 모두 생성된다. 이들 데이터를 740에서 분석하고 750에서는 710에서 생긴 격자데이터 세트의 정확한 좌표와 비교한다. 패치형상과 곡면맞춤을 통해 생긴 근사값의 오차가 752에서 허용오차보다 크면, 이 정보를 이용해 720에서 패치 형상을 더 세분한다. 이 과정을 오차가 허용범위내에 있을 때까지 반복한다.At this point, both surface data and patch data are generated. These data are analyzed at 740 and compared to the exact coordinates of the grid data set at 710. If the error of the approximation resulting from patch geometry and surface fitting is greater than the tolerance at 752, use this information to further refine the patch geometry at 720. Repeat this process until the error is within tolerance.

오차 분석이 만족되면, 760에서 출력영상의 활성영역을 결정하고 이곳을 둘러싸는 바운딩박스를 추출한다. 이 과정은 처리시간 절감을 위해 이 영역에만 제한한다.If the error analysis is satisfied, the active area of the output image is determined at 760 and the bounding box surrounding the extracted image is extracted. This process is limited to this area only to save processing time.

770에서 가능한 해상도 변화와 확대를 위한 맵을 만들되 곡면계수의 축척에 의해 워프변환과 함께 작업을 한다. 780에서는 곱셈 수를줄여 하드웨어 효율성을 높이도록 변환을 재배열한다.Create a map for possible resolution changes and magnification on the 770, but work with warp transformations by scaling the surface coefficients. The 780 rearranges the transformation to reduce the number of multiplications and increase hardware efficiency.

본 발명의 워핑시스템(100)은 종래에 비해 여러 중요한 장점을 갖는다. 첫째, 주사선 과정, 작은 메모리용량 및 간단한 다항식 표현을 활용해 실시간 영상변환 체계를 갖는 효과적인 하드웨어 구현이 가능하다. 이 워핑시스템은 통일적으로 임의의 변환을 표현한다. 출력공간에서의 곡면-패치 설명을 기반으로 변환을 하므로(역변환), 쉽게 조작이 가능하면서도 효율이 더 좋은 폐쇄형 방식이라 할 수 있다. 모든 변환은 패치형상과 곡면계수를 규정하는 변수들로 이루어진다. 화소x화소 설명은 곡면-패치 설명의 제한된 경우에만 볼 수 있는데, 이런 경우는 4개의 화소마다 곡면을 맞춤하는 경우이다. The warping system 100 of the present invention has several important advantages over the prior art. First, it is possible to implement an effective hardware with real-time image conversion system using the scanning line process, small memory capacity and simple polynomial representation. This warping system uniformly represents arbitrary transformations. The conversion is based on the surface-patch description in the output space (inverse transformation), making it easy to manipulate and more efficient. Every transformation consists of variables that define the patch shape and surface coefficient. The pixel x pixel description can only be seen in the limited case of the surface-patch description, in which case every four pixels fit the surface.

워핑시스템(100)은 또한 자연적으로 복잡하게 축척할 수 밖에 없는 공간변환의 설명을 제공한다. 변환이 복잡할수록 필요한 패치의 수도 증가하는바, 즉 포맷은 불변하고 설명변수의 증가는 선형적이다. 특히, 추가적인 특징을 도입할 필요는 없다. 이 표현은 실제 관심이 있는 복잡한 변환을 구현하기에 충분하다.The warping system 100 also provides a description of the spatial transformations that are inherently complex to scale. The more complex the conversion, the greater the number of patches required, i.e. the format is unchanged and the explanatory variable is linear. In particular, there is no need to introduce additional features. This representation is sufficient to implement complex transformations of real interest.

워핑시스템(100)은 다른 입출력 해상도의 변환을 일으키기도 한다. 화소x화소 형태가 아닌 폐함수 형태로 설명이 주어지므로, 변수에 대한 간단한 수학적 연산이 가능하다. 해상도 변화는 곡면계수를 축척하면 쉽게 알 수 있다. 또, 워핑시스템(100)은 확대와 패닝을 위한 효과적인 메커니즘을 제공한다. 해상도 변화와 마찬가지로, 확대와 패닝은 곡면계수의 선형변환을 의미한다. 격자데이터의 재생성은 필요없다. 일단 "베이스" 맵을 계산했으면, 이에 대한 설명의 변수들을 직접 바꿔 표준 축척-시프트 변환을 구현한다.The warping system 100 also causes conversion of different input / output resolutions. Since the explanation is given in the form of a closed function rather than in the form of pixel x pixels, simple mathematical operations on variables are possible. The change in resolution can be easily seen by scaling the surface coefficient. In addition, the warping system 100 provides an effective mechanism for magnification and panning. As with changes in resolution, magnification and panning mean linear transformations of surface coefficients. No regeneration of grid data is necessary. Once you have computed the "base" map, change the variables in the description directly to implement the standard scale-shift transformation.

워핑시스템(100)은 "이상적" 설명과 비교해 수치적으로 아주 낮은 오차를 일으킨다. 오차는 패치망의 해상도에 크게 좌우된다. 패치 수를 증가시키면, 오차를 작게할 수 있다. 일정 한계를 넘어서면 오차가 더 감소되어 광각 필터의 화질에 거의 영향을 미치지 않는다. 오차의 허용범위는 메모리 조건에 의해 제한된다. 기본함수가 변하면, 특수한 워프에 대해 적당한 맞춤을 선택하여 오차를 (패치의 증가 없이도) 무시할 수 있을 정도로 할 수 있다.The warping system 100 produces a numerically very low error compared to the "ideal" description. The error depends largely on the resolution of the patch network. Increasing the number of patches can reduce the error. Beyond a certain limit, the error is further reduced and hardly affects the image quality of the wide-angle filter. The tolerance of the error is limited by the memory conditions. If the base function changes, you can choose the appropriate fit for the particular warp so that the error can be ignored (without increasing the patch).

워핑시스템(100)은 하드웨어 구현에 매력적인 방법인 공간변환 설명을 위해 메모리 저장공간을 적게 필요로 한다(즉, 데이터파일 크기를 적게 필요로 한다). 대부분의 실제 변환에 대해, 적은 수의 패치로도 화소의 정확도를 얻을 수 있다. 이 경우, 큰 화소x화소 위치테이블과는 반대로 데이터파일 크기를 작은 갯수의 곡면계수로 구성할 수 있다.The warping system 100 requires less memory storage (ie, less data file size) to account for space conversion, which is an attractive method for hardware implementation. For most practical conversions, pixel accuracy can be achieved with fewer patches. In this case, as opposed to a large pixel x pixel position table, the data file size can be configured with a small number of curved coefficients.

워핑시스템(100)은 범용적인 매핑을 위해 영상의 부분부분마다 다른 변환을 한다. 패치마다 독립적인 맵으로 취급하므로, 영상의 구역마다 다르게 변환할 수 있다. 이런 변환을 하나의 연속 곡면으로 정의할 필요는 없다. 여러 맵을 하나로 조합해 동일한 포맷을 갖는 하나의 맵을 만들 수 있다. 워핑시스템(100)은 잘 만들어진 형상모델 기법들, 예컨대 B-스플라인 맞춤과 베지어(Bezier) 곡면 맞춤을 병합해 최적의 결과를 구한다. 필요에 따라, 다른 수학적 방법을 이용해 곡면계수를 구하기도 한다. B-스플라인과 베지어 곡면은 자연적으로 본 발명의 프레임웍에 맞춰진다. 이들 곡면은 패치를 가로질러 곡면의 연속성을 분명히 보여준다. 패치분할은 스플라인 곡면의 마디수열에서 쉽게 도출될 수 있다. 최소제곱 맞춤기법으로 이들 곡면을 이용하면, 널리 사용되는 간단한 워프에 대해 곡면설명 생성과정을자동화할 수 있다. The warping system 100 converts different portions of the image for general mapping. Each patch is treated as an independent map, so it can be converted differently for each section of the image. It is not necessary to define this transformation as a single continuous surface. You can combine several maps into one to create one map with the same format. The warping system 100 merges well-formed shape model techniques, such as B-spline fit and Bezier curve fit, for optimal results. If necessary, other mathematical methods may be used to determine the surface coefficient. B-splines and Bezier curves naturally fit the framework of the present invention. These surfaces clearly show the continuity of the surface across the patch. Patch division can be easily derived from the node sequence of the spline surface. Using these surfaces as the least-squares fit technique, you can automate the surface description generation process for simple, popular warps.

워핑시스템(100)은 사각형이 아닌 패치도 허용하는데, 이 경우 패치형상을 복잡하게 하여 맞춤을 더 통제해야 한다. 본 발명에서는 변수적 경계곡선으로 패치의 형상을 설명한다. 좌표의 관점에서 변수화가 이루어지는데, 좌표의 선택은 경계곡선의 방향에 따라 결정된다. 사각형 패치의 경우, 경계곡선이 간단히 수평선이거나 수직선이다. 임의의 형상의 패치의 경우, 앞서 설명한다른 특징들과 결합하여 매우 복잡한 2D 워핑을 생성하기 위한 극도의 융통성을 제공한다. The warping system 100 also allows for patches that are not rectangular, in which case the patch shape must be complicated to further control alignment. In the present invention, the shape of the patch will be described by the variable boundary curve. Parameterization takes place in terms of coordinates, the choice of coordinates being determined by the direction of the boundary curve. In the case of a rectangular patch, the boundary curve is simply a horizontal line or a vertical line. In the case of patches of any shape, they combine with the other features described above to provide extreme flexibility for creating very complex 2D warping.

한편, 워핑시스템(100)은 주로 사각형 패치를 이용하지만, 영상과 배경의 경계를 이루는 경계 패치의 평가 도메인을 제한하는 경계곡선에도 사용된다. 이런식으로, 경계곡선이 규정한 도메인 내에 있는 패치나 패치 부분에 대해서만 모든 계산이 이루어진다. 즉, 규정된 영역에 대해서만 맞춤작업이 한정되는 것이다.On the other hand, the warping system 100 mainly uses a rectangular patch, but is also used in a boundary curve that limits the evaluation domain of the boundary patch forming the boundary between the image and the background. In this way, all calculations are made only for patches or patch portions within the domain defined by the boundary curve. That is, the customization is limited only to the defined area.

이상 설명한 방법은 영상면의 레이어를 지원하는 다중패스에도 확장할 수 있다. 영상데이터는 영상의 휘도와 색 데이터를 위해 샘플링되는 깊이 정보를 포함할 수도 있다. 깊이 정보는 레이어 과정에 사용되어 각 화소의 선명도나 오클루전(occlusion)을 결정한다. 곡면은 같은 크기를 가질 필요가 없고 오버랩이 되거나 아닐 수 있다.The method described above can be extended to multiple paths that support layers of an image plane. The image data may include depth information sampled for luminance and color data of the image. Depth information is used in the layer process to determine the sharpness or occlusion of each pixel. The curved surfaces need not have the same size and may or may not overlap.

Claims (44)

입력 화소좌표를 갖는 입력영상을 출력 화소좌표를 갖는 출력영상으로 변환하는 2차원 비디오 영상변환을 싱글-패스에서 구현하는 시스템에 있어서:In a system that implements a two-dimensional video image conversion in a single pass that converts an input image having input pixel coordinates into an output image having output pixel coordinates: ⒜ 디스플레이 광학계, 투사각도, 평판스크린과 곡면스크린용의 디스플레이 패널형상 및 사용자 정의 변수를 포함하여 변환을 정의하는 형상 변수를 얻기위한 형상입력 인터페이스;(B) a shape input interface for obtaining shape variables defining transformations, including display optics, projection angles, display panel shapes for flat screens and curved screens, and user defined variables; ⒝ 출력 화소좌표를 입력 화소좌표에 매핑하는 격자데이터 변환을 위해 상기 형상입력 인터페이스에 연결된 격자변환 생성기;A grid transform generator coupled to the shape input interface for grid data transform mapping an output pixel coordinate to an input pixel coordinate; ⒞ 출력 화소좌표 공간을 하부 형상에 맞는 여러 패치로 분할하되, 패치마다 관련 격자데이터 집합을 가지며, 상기 격자변환 생성깅 연결되고, 출력공간의 패치의 경계를 결정하는 패치형상 생성기;A patch shape generator for dividing an output pixel coordinate space into several patches for a lower shape, each patch having an associated grid data set, connected to the grid transform generation, and determining a boundary of a patch of an output space; ⒟ 각 패치의 격자데이터 집합을 곡면계수로 표현한 곡면함수로 변수화하도록 상기 패치형상 생성기에 연결된 곡면함수 추정기; 및A curve function estimator coupled to the patch shape generator for parameterizing a grid data set of each patch into a surface function expressed as a surface coefficient; And ⒠ 곡면계수 저장을 위해 곡면함수 추정기에 연결된 출력 인터페이스;를 포함하는 것을 특징으로 하는 시스템.A output interface coupled to a surface function estimator for surface coefficient storage. 제1항에 있어서, 상기 곡면함수 추정기, 패치형상 생성기 및 격자변환 생성기에 연결된 오차분석 스테이지를 더 포함하되, 이 오차분석 스테이지는 선택된 좌표점에서의 곡면함수의 평가와 격자데이터 설명에서 얻은 대응 좌표점 사이의 차이 가 허용범위내에 있는지 여부를 판단하도록 오차분석을 하고, 또한 허용범위내에 없으면 오차분석 결과를 패치형상 생성기로 보내 해상도 향상을 위해 패치를 더 세분하는 것을 특징으로 하는 시스템.The method of claim 1, further comprising an error analysis stage coupled to the curve function estimator, patch shape generator, and grid transform generator, wherein the error analysis stage comprises a corresponding coordinate obtained from the evaluation of the surface function at the selected coordinate point and the grid data description. An error analysis is performed to determine whether the difference between the points is within an allowable range, and if the difference is not within the allowable range, the error analysis result is sent to the patch shape generator to further subdivide the patch to improve the resolution. 제1항에 있어서, 출력화소 좌표를 감싸는 바운딩박스를 생성하여 과정을 줄이기 위한 바운딩박스 생성기를 더 포함하는 것을 특징으로 하는 시스템.The system of claim 1, further comprising a bounding box generator for reducing a process by generating a bounding box surrounding the output pixel coordinates. 제1항에 있어서, 변환된 출력화소 좌표가 입력화소 좌표내에 있는지를 판단하고, 입력화소 좌표내에 없으면 출력화소 데이터의 더이상의 처리를 금지하는 것을 특징으로 하는 시스템.The system according to claim 1, wherein it is determined whether the converted output pixel coordinates are in the input pixel coordinates, and if the input pixel coordinates are not in the input pixel coordinates, further processing of the output pixel data is prohibited. 제1항에 있어서, 상기 곡면함수 추정기가 다항식으로 곡면함수를 표현하는 것을 특징으로 하는 시스템.The system of claim 1, wherein the surface function estimator expresses the surface function in a polynomial. 제5항에 있어서, 상기 다항식이 3차 다항식인 것을 특징으로 하는 시스템.6. The system of claim 5, wherein said polynomial is a cubic polynomial. 제6항에 있어서, 상기 곡면함수 추정기가 텐서곱 쌍삼차 스플라인 곡면(tensor product bi-cubic splines)을 이용한 최소제곱법을 통해 상기 다항식을 조정하는 것을 특징으로 하는 시스템.7. The system of claim 6, wherein the surface function estimator adjusts the polynomial through a least squares method using tensor product bi-cubic splines. 제6항에 있어서, 상기 곡면함수 추정기가 연산과정을 줄이도록 다른 차수의 계수를 인수분해하여 다항식을 계산하는 것을 특징으로 하는 시스템.7. The system of claim 6, wherein the surface function estimator calculates a polynomial by factoring coefficients of different orders to reduce the computation process. 제1항에 있어서, 기울기 탐색(gradient search)을 통해 패치를 최적으로 분할하는 것을 특징으로 하는 시스템.10. The system of claim 1, wherein the patch is optimally partitioned through a gradient search. 제1항에 있어서, 임의탐색(random search)을 통해 패치를 최적으로 분할하는 것을 특징으로 하는 시스템.10. The system of claim 1, wherein the patch is optimally partitioned through random search. 제1항에 있어서, 임의탐색과 기울기 탐색을 결합하여 패치를 최적으로 분할하되, 임의탐색으로 먼저 최적의 형상을 찾은 다음 기울기 탐색으로 미세조정된 최적 형상을 찾는 것을 특징으로 하는 시스템.2. The system of claim 1, wherein the random search and the slope search are combined to optimally divide the patch, wherein the random search first finds the optimal shape and then the slope search finds the finely tuned optimal shape. 제1항에 있어서, 영상변환을 반복하지 않고도 해상도 변화를 수용하도록 결정된 곡면계수를 변화시키는 해상도 변화 스테이지를 더 포함하는 것을 특징으로 하는 시스템.2. The system of claim 1, further comprising a resolution change stage for varying a surface coefficient determined to accommodate the resolution change without repeating the image transformation. 제1항에 있어서, 영상변환을 반복하지 않고도 확대작업을 수용하도록 결정된 곡면계수를 변화시키는 확대 스테이지를 더 포함하는 것을 특징으로 하는 시스템.The system of claim 1, further comprising an enlargement stage for varying a surface coefficient determined to accommodate the enlargement operation without repeating the image transformation. 제5항에 있어서, 곡면을 x의 다항식으로 취급하되 x-다항식의 계수는 y 다항식으로 취급하여 표면 맞춤을 하는 것을 특징으로 하는 시스템.6. The system of claim 5, wherein the surface is treated as a polynomial of x but the coefficients of the x-polynomial are treated as a y polynomial to achieve surface alignment. 제1항에 있어서, 패치마다 별도로 맞춤작업을 하는 것을 특징으로 하는 시스템.The system of claim 1, wherein the patch is tailored separately for each patch. 제1항에 있어서, 상기 곡면함수 추정기가 패치의 좌표 원점을 패치상에 위치하도록 재정의하여 좌표 맞춤에 사용되는 숫자의 범위를 줄이는 것을 특징으로 하는 시스템.2. The system of claim 1, wherein the surface function estimator redefines the coordinate origin of the patch on the patch to reduce the range of numbers used for coordinate alignment. 제1항에 있어서, 핀쿠션이나 배럴렌즈 왜곡을 포함한 광학적 비선형을 교정하는 것을 특징으로 하는 시스템.The system of claim 1, wherein the optical nonlinearity including pincushion or barrel lens distortion is corrected. 제1항에 있어서, 키스톤 왜곡을 포함한 투사왜곡을 교정하는 것을 특징으로 하는 시스템.The system of claim 1, wherein the projection distortion including keystone distortion is corrected. 제1항에 있어서, 곡면에 투사하는데 사용되는 것을 특징으로 하는 시스템.The system of claim 1, wherein the system is used to project onto a curved surface. 제1항에 있어서, 광각렌즈를 이용한 파노라마 비전시스템에 사용되는 것을 특징으로 하는 시스템.The system of claim 1, which is used in a panoramic vision system using a wide angle lens. 제1항에 있어서, 제17항, 제18항, 제19항 및 제20항에서 설명한 왜곡들의 결합을 교정하는데 사용되는 것을 특징으로 하는 시스템.The system of claim 1, wherein the system is used to correct the combination of distortions described in claims 17, 18, 19, and 20. 제1항에 있어서, 영상의 휘도와 색 데이터로서 리샘플링되는 깊이 정보가 포함되도록 영상면을 레이어(layer)하되, 깊이 정보를 레이어 과정에 사용하여 각 화소의 선명도나 오클루전(occlusion)을 결정하는 것을 특징으로 하는 시스템.2. The method of claim 1, wherein the image plane is layered to include depth information resampled as luminance and color data of the image, and the sharpness or occlusion of each pixel is determined by using the depth information in the layer process. System characterized in that. 입력 화소좌표를 갖는 입력영상을 출력 화소좌표를 갖는 출력영상으로 변환하는 2차원 비디오 영상변환을 싱글-패스에서 구현하도록 표현하는 방법에 있어서:A method for representing a two-dimensional video image conversion for converting an input image having an input pixel coordinate into an output image having an output pixel coordinate in a single pass: ⒜ 디스플레이 광학계, 투사각도, 평판스크린과 곡면스크린용의 디스플레이 패널형상 및 사용자 정의 변수를 포함하여 변환을 정의하는 형상 입력 변수를 구하는 단계; (B) obtaining shape input variables that define the transformation, including display optics, projection angles, display panel shapes for flat screens and curved screens, and user defined variables; ⒝ 출력 화소좌표를 입력 화소좌표에 매핑하도록 상기 형상입력 변수를 기반으로 격자데이터 변환을 하는 단계;Transforming grid data based on the shape input variable to map an output pixel coordinate to an input pixel coordinate; ⒞ 출력 화소좌표 공간을 하부 형상에 맞는 여러 패치로 분할하되, 패치마다 관련 격자데이터 집합을 가지며 출력공간의 패치의 경계를 결정하는 단계; Dividing the output pixel coordinate space into several patches that conform to the underlying shape, each patch having an associated set of grid data and determining a border of the patches in the output space; ⒟ 각각의 패치에서, 곡면계수로 표현된 곡면함수로 상기 격자 데이터변환을 변수화하는 단계; 및In each patch, parameterizing the grid data transformation with a surface function expressed as a surface coefficient; And ⒠ 곡면계수를 저장하는 단계;를 포함하는 것을 특징으로 하는 방법.⒠ storing the surface coefficient; 제23항에 있어서, 선택된 좌표점에서의 곡면함수의 평가와 격자데이터 설명에서 얻은 대응 좌표점 사이의 차이가 허용범위내에 있는지 여부를 판단하도록 오차분석을 하고, 또한 허용범위내에 없으면 해상도 향상을 위해 패치를 더 세분하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the error analysis is performed to determine whether the difference between the evaluation of the surface function at the selected coordinate point and the corresponding coordinate point obtained from the grid data description is within the allowable range, and if it is not within the allowable range, And further subdividing the patch. 제23항에 있어서, 출력화소 좌표를 감싸는 바운딩박스를 생성하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein a bounding box is created that surrounds the output pixel coordinates. 제23항에 있어서, 변환된 출력화소 좌표가 입력화소 좌표내에 있는지를 판단하고, 입력화소 좌표내에 없으면 출력화소 데이터의 더이상의 처리를 금지하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein it is determined whether the converted output pixel coordinates are in the input pixel coordinates and prohibits further processing of the output pixel data if it is not in the input pixel coordinates. 제23항에 있어서, 다항식으로 곡면함수를 표현하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the surface function is represented by a polynomial. 제27항에 있어서, 상기 다항식이 3차 다항식인 것을 특징으로 하는 방법.28. The method of claim 27, wherein said polynomial is a cubic polynomial. 제28항에 있어서, 텐서곱 쌍삼차 스플라인 곡면(tensor product bi-cubic splines)을 이용한 최소제곱법을 통해 상기 다항식을 조정하는 것을 특징으로 하는 방법.29. The method of claim 28, wherein the polynomial is adjusted by a least square method using tensor product bi-cubic splines. 제28항에 있어서, 연산과정을 줄이도록 다른 차수의 계수를 인수분해하여 다항식을 계산하는 것을 특징으로 하는 방법.29. The method of claim 28, wherein the polynomial is calculated by factoring coefficients of different orders to reduce computation. 제23항에 있어서, 기울기 탐색(gradient search)을 통해 패치를 최적으로 분할하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the patch is optimally partitioned through gradient search. 제23항에 있어서, 임의탐색(random search)을 통해 패치를 최적으로 분할하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the patch is optimally partitioned through random search. 제23항에 있어서, 임의탐색과 기울기 탐색을 결합하여 패치를 최적으로 분할하되, 임의탐색으로 먼저 최적의 형상을 찾은 다음 기울기 탐색으로 미세조정된 최적 형상을 찾는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the random search and the slope search are combined to optimally divide the patch, wherein the random shape first finds the optimal shape and then the slope search finds the finely tuned optimal shape. 제23항에 있어서, 영상변환을 반복하지 않고도 해상도 변화를 수용하도록 결정된 곡면계수를 변화시키는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the surface coefficient determined to accommodate the change in resolution without repeating the image transformation is varied. 제23항에 있어서, 영상변환을 반복하지 않고도 확대작업을 수용하도록 결정된 곡면계수를 변화시키는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the surface coefficient determined to accommodate the magnification operation is varied without repeating the image transformation. 제27항에 있어서, 곡면을 x의 다항식으로 취급하되 x-다항식의 계수는 y 다항식으로 취급하여 표면 맞춤을 하는 것을 특징으로 하는 방법.28. The method of claim 27, wherein the surface is treated as a polynomial of x but the coefficients of the x-polynomial are treated as a y polynomial to achieve surface alignment. 제23항에 있어서, 패치마다 별도로 맞춤작업을 하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the tailoring is performed separately for each patch. 제23항에 있어서, 패치의 좌표 원점을 패치상에 위치하도록 재정의하여 효율적인 하드웨어 구현을 위한 좌표 맞춤에 사용되는 숫자의 범위를 줄이는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the coordinate origin of the patch is redefined to be located on the patch to reduce the range of numbers used for coordinate alignment for efficient hardware implementation. 제23항에 있어서, 핀쿠션이나 배럴렌즈 왜곡을 포함한 광학적 비선형을 교정하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the optical nonlinearity including pincushion or barrel lens distortion is corrected. 제23항에 있어서, 키스톤 왜곡을 포함한 투사왜곡을 교정하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the projection distortion including keystone distortion is corrected. 제23항에 있어서, 곡면에 투사하는데 사용되는 것을 특징으로 하는 방법.24. The method of claim 23 used for projecting onto a curved surface. 제23항에 있어서, 광각렌즈를 이용한 파노라마 비전방법에 사용되는 것을 특 징으로 하는 방법.24. The method of claim 23, wherein the method is used for a panoramic vision method using a wide-angle lens. 제23항에 있어서, 제39항, 제40항, 제41항 및 제42항에서 설명한 왜곡들의 결합을 교정하는데 사용되는 것을 특징으로 하는 방법.The method of claim 23, wherein the method is used to correct the combination of distortions described in claims 39, 40, 41, and 42. 제23항에 있어서, 영상의 휘도와 색 데이터로서 리샘플링되는 깊이 정보가 포함되도록 영상면을 레이어(layer)하되, 깊이 정보를 레이어 과정에 사용하여 각 화소의 선명도나 오클루전(occlusion)을 결정하는 것을 특징으로 하는 방법.24. The method of claim 23, wherein the image plane is layered to include depth information resampled as brightness and color data of the image, and the sharpness or occlusion of each pixel is determined by using the depth information in the layer process. Characterized in that.
KR1020077007873A 2007-04-06 2004-09-09 System and mehod for representing a general two dimensional spatial transformation KR20070102989A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077007873A KR20070102989A (en) 2007-04-06 2004-09-09 System and mehod for representing a general two dimensional spatial transformation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077007873A KR20070102989A (en) 2007-04-06 2004-09-09 System and mehod for representing a general two dimensional spatial transformation

Publications (1)

Publication Number Publication Date
KR20070102989A true KR20070102989A (en) 2007-10-22

Family

ID=38817635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007873A KR20070102989A (en) 2007-04-06 2004-09-09 System and mehod for representing a general two dimensional spatial transformation

Country Status (1)

Country Link
KR (1) KR20070102989A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350732B1 (en) * 2012-06-04 2014-01-14 한국과학기술원 Multi-Resolution Meshless Method for Real-Time Simulation of Deformable Objects
US9759856B2 (en) 2015-08-20 2017-09-12 Samsung Eletronics Co., Ltd. Curved backlight unit and curved display apparatus including the same
CN113706625A (en) * 2021-07-28 2021-11-26 昆山丘钛微电子科技股份有限公司 Lens distortion correction method and device
KR20230057315A (en) * 2016-02-12 2023-04-28 삼성전자주식회사 Method and apparatus for processing 360 image

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101350732B1 (en) * 2012-06-04 2014-01-14 한국과학기술원 Multi-Resolution Meshless Method for Real-Time Simulation of Deformable Objects
US9759856B2 (en) 2015-08-20 2017-09-12 Samsung Eletronics Co., Ltd. Curved backlight unit and curved display apparatus including the same
KR20230057315A (en) * 2016-02-12 2023-04-28 삼성전자주식회사 Method and apparatus for processing 360 image
CN113706625A (en) * 2021-07-28 2021-11-26 昆山丘钛微电子科技股份有限公司 Lens distortion correction method and device

Similar Documents

Publication Publication Date Title
US7324706B2 (en) System and method for representing a general two dimensional spatial transformation
EP1800245B1 (en) System and method for representing a general two dimensional spatial transformation
CN104732479B (en) Resizing an image
KR101785027B1 (en) Image distortion compensation display device and image distortion compensation method using the same
EP1395952B1 (en) Method and system for processing a non-linear two dimensional spatial transformation
JP2000182038A (en) Method for generating perspective sizing data from distorted information, device to be used for this and computer program product
JP4131994B2 (en) Perspective transformation system and method
JP2007193508A (en) Image processor and image processing program
CN110246161B (en) Method for seamless splicing of 360-degree panoramic images
US5930407A (en) System and method for efficiently generating cubic coefficients in a computer graphics system
KR101136688B1 (en) Single-pass image resampling system and method with anisotropic filtering
EP1044430A1 (en) Method and apparatus for zooming digital images
US8548274B2 (en) Systems and methods for efficient storage of image transformations
US7081903B2 (en) Efficient movement of fragment stamp
US20080074435A1 (en) Texture filtering apparatus, texture mapping apparatus, and method and program therefor
KR20070102989A (en) System and mehod for representing a general two dimensional spatial transformation
JPH09259290A (en) Drawing method
WO2011121563A1 (en) Detecting saliency in an image
Mody et al. Flexible and efficient perspective transform engine
JP7131080B2 (en) volume rendering device
JP5085589B2 (en) Image processing apparatus and method
JP3509368B2 (en) Information processing equipment
JP4265362B2 (en) Image processing device
WO2006062508A1 (en) Dynamic warp map generation system and method
JP4087010B2 (en) Image processing device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid