KR102537317B1 - 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치 - Google Patents

렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR102537317B1
KR102537317B1 KR1020220104115A KR20220104115A KR102537317B1 KR 102537317 B1 KR102537317 B1 KR 102537317B1 KR 1020220104115 A KR1020220104115 A KR 1020220104115A KR 20220104115 A KR20220104115 A KR 20220104115A KR 102537317 B1 KR102537317 B1 KR 102537317B1
Authority
KR
South Korea
Prior art keywords
level
rendering
blocks
selective
tile
Prior art date
Application number
KR1020220104115A
Other languages
English (en)
Inventor
박우찬
김지영
한윤호
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020220104115A priority Critical patent/KR102537317B1/ko
Application granted granted Critical
Publication of KR102537317B1 publication Critical patent/KR102537317B1/ko
Priority to PCT/KR2023/011437 priority patent/WO2024039121A1/ko
Priority to US18/235,633 priority patent/US20240064304A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures

Abstract

본 발명은 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치에 관한 것으로, 상기 방법은 복수의 타일(tile)들로 분할되는 영상 프레임에 대한 렌더링 과정에서, 현재 타일에 대한 멀티레벨 임계치를 설정하는 단계; 상기 현재 타일을 대상으로 초기 샘플링을 수행하여 초기 샘플링 블록(block)들을 생성하는 단계; 상기 초기 샘플링 블록들을 기초로 상기 멀티레벨 임계치의 제1 레벨 임계치에 따른 제1 레벨 선택적 렌더링을 수행하여 제1 레벨 블록들을 생성하는 단계; 상기 제1 레벨 블록들을 기초로 상기 멀티레벨 임계치의 제2 레벨 임계치에 따른 제2 레벨 선택적 렌더링을 수행하여 제2 레벨 블록들을 생성하는 단계; 및 레벨별 선택적 렌더링들의 반복을 통해 상기 현재 타일에 대한 멀티레벨 선택적 렌더링이 완료되면 상기 현재 타일의 다음 타일에 대해 상기 멀티레벨 선택적 렌더링을 개시하는 단계;를 포함한다.

Description

렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치{MULTILEVEL SELECTIVE RENDERING METHOD AND APPARATUS FOR INCREASING RENDERING PERFORMANCE}
본 발명은 3차원 그래픽 처리 기술에 관한 것으로, 보다 상세하게는 화질을 일정수준 유지하면서 렌더링 픽셀 수를 상당히 줄일 수 있는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치에 관한 것이다.
3차원 그래픽 기술은 컴퓨팅에 저장된 기하학적 데이터(Geometric data)의 3차원 표현을 사용하는 그래픽 기술로, 오늘날 미디어 산업과 게임 산업을 포함하는 다양한 산업에서 널리 사용되고 있다. 일반적으로 3차원 그래픽 기술은 많은 연산량으로 인하여 별개의 고성능 그래픽 프로세서를 요구한다.
최근 프로세서의 발전에 따라 매우 현실적인 3차원 그래픽을 생성할 수 있는 레이 트레이싱(Ray Tracing) 기술이 연구되고 있다.
레이 트레이싱(Ray Tracing) 기술은 전역 조명(Global Illumination)에 따른 렌더링(Rendering)방식으로, 다른 물체에서 반사되거나 굴절된 빛이 현재 물체의 영상에 미치는 영향을 고려하여 반사, 굴절, 그림자 효과가 자연적으로 제공되기 때문에 현실감 있는 3D 영상을 생성할 수 있다.
한국공개특허 제10-2015-0039493호 (2015.04.10)
본 발명의 일 실시예는 화질을 일정수준 유지하면서 렌더링 픽셀 수를 상당히 줄일 수 있는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치를 제공하고자 한다.
실시예들 중에서, 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법은 복수의 타일(tile)들로 분할되는 영상 프레임에 대한 렌더링 과정에서, 현재 타일에 대한 멀티레벨 임계치를 설정하는 단계; 상기 현재 타일을 대상으로 초기 샘플링을 수행하여 초기 샘플링 블록(block)들을 생성하는 단계; 상기 초기 샘플링 블록들을 기초로 상기 멀티레벨 임계치의 제1 레벨 임계치에 따른 제1 레벨 선택적 렌더링을 수행하여 제1 레벨 블록들을 생성하는 단계; 상기 제1 레벨 블록들을 기초로 상기 멀티레벨 임계치의 제2 레벨 임계치에 따른 제2 레벨 선택적 렌더링을 수행하여 제2 레벨 블록들을 생성하는 단계; 및 레벨별 선택적 렌더링들의 반복을 통해 상기 현재 타일에 대한 멀티레벨 선택적 렌더링이 완료되면 상기 현재 타일의 다음 타일에 대해 상기 멀티레벨 선택적 렌더링을 개시하는 단계;를 포함한다.
상기 멀티레벨 임계치를 설정하는 단계는 블록 간의 색상 차이를 기초로 복수의 레벨 임계치들을 포함하는 상기 멀티레벨 임계치를 설정하는 단계를 포함할 수 있다.
상기 멀티레벨 임계치는 상위 레벨 임계치가 하위 레벨 임계치보다 낮도록 설정될 수 있다.
상기 멀티레벨 임계치를 설정하는 단계는 상기 영상 프레임의 중앙 영역에 가까울수록 각 타일에 대한 상기 멀티레벨 임계치의 각 레벨 임계치들을 각각 감소시키고 상기 영상 프레임의 가장자리 영역에 가까울수록 상기 각 레벨 임계치들을 각각 증가시키는 단계를 포함할 수 있다.
상기 초기 샘플링 블록들을 생성하는 단계는 상기 초기 샘플링 과정에서 상기 현재 타일의 각 코너에 배치된 코너 블록들에 대한 샘플링을 우선적으로 수행하는 단계를 포함할 수 있다.
상기 초기 샘플링 블록들을 생성하는 단계는 상기 코너 블록들 중 어느 하나를 기준으로 수직 및 수평 방향을 따라 동일한 간격으로 이동하면서 상기 초기 샘플링 과정을 수행하는 단계를 포함할 수 있다.
상기 초기 샘플링 블록들을 생성하는 단계는 상기 초기 샘플링 과정이 완료된 경우 상기 초기 샘플링 블록들 중에서 상기 동일한 간격으로 샘플링된 블록들을 포함하는 노말 영역(normal region)과 그렇지 않은 블록들을 포함하는 보더 영역(border region)으로 상기 현재 타일을 논리적으로 분할하는 단계를 포함할 수 있다.
상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는 이전 레벨 블록을 기초로 상기 레벨별 선택적 렌더링을 위한 현재 레벨 블록에 대한 렌더링 유형을 결정하는 단계; 상기 현재 레벨 블록에 대해 상기 렌더링 유형에 따라 보간(interpolation) 및 샘플링(sampling) 중 어느 하나를 선택적으로 수행하는 단계; 및 상기 현재 레벨 블록이 생성되면 타일 버퍼에 저장하는 단계를 포함할 수 있다.
상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는 상기 현재 레벨 블록을 기준으로 대각선, 수직 또는 수평 방향으로 양쪽에 인접한 인접 블록들 간의 색상 차이가 현재 레벨 임계치보다 작은 경우 상기 보간을 상기 현재 레벨 블록에 대한 렌더링 유형으로 결정하고, 그렇지 않은 경우 샘플링을 상기 렌더링 유형으로 결정하는 단계를 포함할 수 있다.
상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는 상기 현재 레벨 블록이 상기 현재 타일의 보더 영역에 존재하는 경우 상기 인접 블록들과의 간격에 따른 가중치를 적용하여 상기 색상 차이를 보정하는 단계를 포함할 수 있다.
상기 멀티레벨 선택적 렌더링을 개시하는 단계는 상기 현재 타일의 모든 블록들에 대한 상기 멀티레벨 선택적 렌더링이 완료되면 타일 버퍼에 저장된 최종 결과값을 프레임 버퍼로 옮기는 단계를 포함할 수 있다.
상기 멀티레벨 선택적 렌더링을 개시하는 단계는 상기 현재 타일과 함께 상기 복수의 타일들 중 선택된 적어도 하나의 다른 타일에 대해 상기 멀티레벨 선택적 렌더링을 병렬적으로 개시하는 단계를 포함할 수 있다.
실시예들 중에서, 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치는 영상 프레임에 대한 렌더링 과정에서 상기 영상 프레임을 복수의 타일(tile)들로 분할하고 상기 복수의 타일들 중 현재 타일에 관한 정보를 관리하는 타일 생성 유닛(tile generation unit); 렌더링 위치를 기반으로 상기 현재 타일의 블록들에 대한 렌더링을 수행하는 렌더링 유닛(rendering unit); 보간 위치를 기반으로 상기 현재 타일의 블록들에 대한 보간을 수행하는 보간 유닛(interpolation unit); 상기 현재 타일에 대한 멀티레벨 선택적 렌더링을 관리하는 레벨 처리 제어 유닛(level processing control unit); 및 현재 레벨의 블록 위치를 기반으로 멀티레벨 임계치에 따라 렌더링 유형을 결정하고 상기 렌더링 유형에 따라 상기 렌더링 유닛 또는 상기 보간 유닛의 동작을 제어하는 선택적 렌더링 제어 유닛(selective rendering control unit);을 포함한다.
상기 레벨 처리 제어 유닛은 상기 현재 타일의 초기 샘플링을 위한 블록 위치를 생성하여 상기 렌더링 유닛에 전달하고 상기 렌더링에 따른 결과값을 수신하여 타일 버퍼에 저장할 수 있다.
상기 레벨 처리 제어 유닛은 레벨별 선택적 렌더링을 위한 블록 위치를 상기 선택적 렌더링 제어 유닛에 전달할 수 있다.
상기 선택적 렌더링 제어 유닛은 타일 버퍼를 참조하여 상기 블록 위치를 기준으로 인접 블록들 간의 색상 차이를 산출하고 상기 색상 차이와 상기 멀티레벨 임계치를 비교하여 상기 렌더링 유형을 결정할 수 있다.
상기 선택적 렌더링 제어 유닛은 상기 렌더링 유닛 또는 상기 보간 유닛의 동작에 따른 결과값을 수신하여 타일 버퍼에 저장할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
레이 트레이싱(Ray tracing)은 각 픽셀마다 광선을 추적하기 때문에 래스터화(rasterization) 기법에 비하여 현실감 있는 3D 영상을 생성하기 용이할 수 있다. 하지만, 레이 트레이싱은 모든 픽셀에 레이(ray)를 슈팅(shooting)하고 추적하기 때문에 연산량이 매우 높을 수 있다. 이를 극복하기 위한 방법으로서, 선택적 렌더링은 먼저 저해상도로 렌더링을 수행한 후에 픽셀 간의 색상 차이의 정도에 따라 효과적으로 고해상도의 이미지를 생성할 수 있다.
본 발명에 따른 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치는 화질을 일정수준 유지하며 렌더링 픽셀 수를 상당히 줄이는 멀티레벨(multi-level) 선택적 렌더링 방법 및 장치에 관한 것이다.
본 발명에 따른 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치는 전형적인 선택적 렌더링과 달리 경계(boundary) 영역을 효과적으로 처리하여 병렬성을 높일 수 있으며, 선택적 렌더링을 멀티레벨로 수행하여 화질 저하를 줄이면서 연산량 감소를 가능하게 할 수 있다.
도 1은 레이 트레이싱 과정의 일 실시예를 설명하는 도면이다.
도 2는 레이 트레이싱 과정에서 사용되는 가속 구조로서 KD 트리의 일 실시예를 설명하는 도면이다.
도 3은 레이 트레이싱 과정의 처리 순서를 설명하는 도면이다.
도 4는 선택적 렌더링의 동작 과정을 설명하는 도면이다.
도 5는 타일 기반의 선택적 렌더링의 일 실시예를 설명하는 도면이다.
도 6은 본 발명에 따른 멀티레벨 선택적 렌더링 장치의 물리적 구성을 설명하는 블록도이다.
도 7은 본 발명에 따른 멀티레벨 선택적 렌더링 방법을 설명하는 순서도이다.
도 8은 본 발명에 따른 멀티레벨 선택적 렌더링 과정의 일 실시예를 설명하는 도면이다.
도 9는 제1 레벨 샘플링 과정에 따른 영역 구분의 일 실시예를 설명하는 도면이다.
도 10은 노말 영역에 대한 멀티레벨 선택적 렌더링 과정을 설명하는 도면이다.
도 11은 보더 영역에 대한 멀티레벨 선택적 렌더링 과정을 설명하는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 레이 트레이싱 과정의 일 실시예를 설명하는 도면이다.
도 1을 참조하면, 레이 트레이싱 화질조절장치에서 수행되는 레이 트레이싱 방식은 전역 조명(global illumination)에 따른 렌더링(rendering) 방식에 해당할 수 있다. 이는 다른 물체에서 반사되거나 굴절된 빛(Light)도 현재 물체의 영상에 영향을 준다는 것을 의미할 수 있다. 이로 인하여 반사, 굴절, 그림자 효과가 자연적으로 제공되기 때문에 현실감 있는 3D 영상을 생성할 수 있다.
레이 트레이싱 화질조절장치는 먼저 각 픽셀(pixel) 당 카메라(Camera) 위치로부터 프라이머리 레이(primary ray, P)를 생성하여 해당 레이와 만나는 물체를 찾기 위한 계산을 수행할 수 있다. 레이 트레이싱 화질조절장치는 레이와 만나게 된 물체가 반사나 굴절의 성질이 있으면 레이와 물체가 만난 위치에서 반사 효과를 위한 반사 레이(reflection ray, R)나 굴절 효과를 위한 굴절 레이(refraction ray, F)를 생성할 수 있고, 또한 그림자 효과를 위하여 빛(Light) 방향으로 그림자 레이(shadow ray, S)를 생성할 수 있다.
이 때, 해당 빛(Light) 위치로 향한 그림자 레이와 어떤 물체가 만나면 그림자가 생성이 되며 그렇지 않을 경우는 그림자가 생성되지 않는다. 반사 레이와 굴절 레이는 세컨더리 레이(secondary ray)라고 불리며 레이 트레이싱 화질조절장치는 각각의 레이에 대해 해당 레이와 만나는 물체를 찾기 위한 계산을 수행할 수 있다. 이러한 과정은 레이 트레이싱 화질조절장치에 의해 반복적(recursive)으로 수행될 수 있다.
도 2는 레이 트레이싱 과정에서 사용되는 가속 구조로서 KD 트리의 일 실시예를 설명하는 도면이다.
도 2를 참조하면, 레이 트레이싱을 수행하기 위하여 전체 지오메트리 데이터(geometry data)(triangle의 좌표들로 구성)를 기초로 생성된 KD 트리(K-Dimensional Tree)나 BVH(Bounding Volume Hierarchy)와 같은 가속 구조(Acceleration Structure, AS)가 필수적으로 요구된다. 따라서, 레이 트레이싱을 수행하기 이전에 AS를 구축(build)할 필요가 있다. 이러한 가속 구조 구축(AS build)에는 연산량이 많이 필요하기 때문에 시간이 많이 소요될 수 있다.
도 2에서, kd-트리의 전체 구성도를 설명하고 있다. kd-트리는 분할한 공간에 대하여 계층적(hierarchy) 구조를 갖는 이진 트리(binary tree)에 해당할 수 있다. kd-트리는 내부 노드(inner node)(top node 포함)와 리프 노드(leaf node)로 구성될 수 있으며, 리프 노드는 해당 노드와 교차(intersection)되는 객체(object)들을 포함하고 있는 공간에 대응될 수 있다. 즉, kd-트리는 공간 분할 트리(spatial partitioning tree)로서 공간 분할 구조체(spatial partitioning structure)의 일종에 해당할 수 있다.
반면, 내부 노드는 바운딩 박스(bounding box) 기반의 공간 영역을 가질 수 있으며 해당 공간 영역은 다시 2개의 영역들로 나뉘어서 두 개의 하위 노드에 할당될 수 있다. 결과적으로 내부 노드는 분할 평면과 이를 통해 분할된 두 개의 영역의 서브-트리(sub-tree)로 구성될 수 있고, 리프 노드는 일련의 삼각형(triangle)들 만을 포함할 수 있다. 예를 들어, 리프 노드는 기하학적 데이터에 포함된 적어도 하나의 삼각형 정보를 포인팅하기 위한 삼각형 리스트를 포함할 수 있으며, 삼각형 정보는 삼각형의 세 점에 대한 정점 좌표, 법선 벡터 및/또는 텍스처 좌표를 포함할 수 있다. 만약, 기하학적 데이터에 포함된 삼각형 정보가 배열로 구현된 경우에는 리프 노드에 포함된 삼각형 리스트는 배열 인덱스에 상응할 수 있다.
한편, 공간을 분할하는 위치 p는 임의의 레이와 충돌(hit)하는 삼각형을 찾기 위한 비용(cost)(노드 방문 횟수, 삼각형과 교차되는지 계산하는 횟수 등)이 최소가 되는 지점에 해당할 수 있고, 해당 위치 p를 찾기 위해 현재 가장 많이 사용되는 방법은 SAH(Surface area heuristic)에 해당할 수 있다.
도 3은 레이 트레이싱 과정의 처리 순서를 설명하는 도면이다.
도 3을 참조하면, 레이 트레이싱 과정은 크게 레이 생성(Ray Generation) 단계, 방문 & 교차 테스트(Traversal & Intersection Test) 단계, 충돌 지점 산출(Hit Point Calculation) 단계 및 쉐이딩 & 레이 셋업(Shading & Next Ray Set-up) 단계를 포함할 수 있다.
먼저 레이 생성(Ray Generation) 단계에서는 각각의 픽셀(pixel)에 대해 시점 위치로부터 프라이머리 레이를 생성할 수 있다. 다음 단계에서는 kd-트리(kd-tree)와 bounding volume hierarchy (BVH)와 같은 가속 구조(AS)를 탐색하여 레이와 만나는 리프 노드를 찾을 수 있다. 여기에서, 리프 노드에는 삼각형(triangle)의 정보들이 저장되어 있다.
다음의 교차 테스트(Traversal & Intersection Test) 단계에서는 만난 리프 노드에 있는 모든 삼각형에 대하여 레이와 만나는지를 테스트할 수 있다. 이러한 과정은 레이와 만나는 삼각형을 찾을 때까지 반복적으로 수행될 수 있다. 그 후, 레이와 만난 삼각형에 대하여 충돌 지점 산출(hit point calculation) 단계에서 충돌 지점(hit point)를 계산할 수 있다.
다음 단계인 쉐이딩(Shading) 단계에서 레이-삼각형 충돌 지점(ray-triangle hit point) 상에서의 컬러(color) 값을 계산할 수 있다. 만약 조명으로 인하여 그림자 레이(shadow ray)의 발생이 필요하거나 충돌된 삼각형의 재질로 인한 세컨더리 레이(secondary ray)의 발생이 필요하면 이러한 정보를 레이 셋업(Next Ray Set-up) 단계에서 결정하여 레이 생성(Ray Generation) 단계로 전송될 수 있다. 레이 생성(Ray Generation) 단계에서는 이러한 정보를 기반으로 그림자 레이 및 세컨더리 레이를 발생시킬 수 있다.
도 4는 선택적 렌더링의 동작 과정을 설명하는 도면이다.
도 4를 참조하면, 일반적으로 렌더링의 경우 모든 픽셀에 대해서 샘플링을 수행하는데, 만약 픽셀 수 보다 샘플 수가 작으면 이로 인하여 샘플링이 안된 픽셀들은 인접한 픽셀 값을 보간하여 생성될 수 있다.
먼저, 픽셀의 x좌표와 y좌표를 하나씩 건너 뛰어 샘플링을 수행할 수 있다. 이는 저해상도에서 렌더링을 수행한 결과와 동일할 수 있다. 이 결과 그림 (a)의 회색 위치의 픽셀에 대한 렌더링을 수행하여 그 위치에 픽셀이 생성되고, 렌더링 되지 않은 픽셀은 흰색으로 남게 된다. 그림 (b) 단계에서, 렌더링 되지 않은 픽셀(430)에 대해서 수평 위치의 픽셀 데이터 값(411 및 413)을 이용하여 보간한 후 해당하는 위치의 픽셀을 생성할 수 있다.
그림 (b) 단계가 완료된 후, 그림 (c) 단계에서는 렌더링 되지 않은 픽셀(430)에 대해서 수직 위치의 픽셀 데이터 값(451 및 453)을 이용하여 보간한 후 해당하는 위치의 픽셀을 생성할 수 있다. 도 4의 실시예는 샘플링을 x좌표와 y좌표 각각에 대해 하나씩 건너 뛰어 수행된 예에 해당할 수 있으며, 반드시 이에 한정되지 않고, 필요에 따라 더 큰 간격으로 건너 뛰어 수행될 수도 있다.
선택적 렌더링은 샘플링이 안된 부분에 대하여 보간을 수행할지 혹은 샘플링을 할지의 여부를 색상차의 임계치(threshold)에 따라서 결정하는 방식으로 수행될 수 있다. 예를 들어, 임계치가 16으로 설정되었다고 가정하면, 샘플링된 주변 픽셀의 색상 차이가 16이하이면 보간을 수행하고 16이 넘으면 샘플링을 수행할 수 있다. 따라서, 선택적 렌더링에 적용되는 임계치를 높이면 렌더링 성능은 올라가는 반면 화질은 떨어질 수 있다. 이렇게 임계치를 조절함에 따라 렌더링 성능과 화질을 적응적으로 선택할 수 있다.
도 5는 타일 기반의 선택적 렌더링의 일 실시예를 설명하는 도면이다.
도 5를 참조하면, 전통적인 타일 방식의 선택적 렌더링 방법은 프레임(frame)을 타일(tile) 단위로 분할하여 선택적 렌더링을 수행할 수 있다(그림 (a)). 도 5의 경우, 도 4와 달리 경계 영역(즉, boundary(row, column))에서 선택적 렌더링에 필요한 정보가 제한적이어서 별도의 처리 동작이 필요할 수 있다. 도 5의 그림 (a)에서, 빨간색 원(510)은 선택적 렌더링 수행 시 참조되어야 하는 인접 픽셀이지만 정보가 없는 경우를 의미한다. 이를 극복하는 방안으로서, 도 5의 그림 (b)는 경계(boundary) 영역(530 및 550)에 있는 모든 픽셀에 대하여 렌더링을 수행할 수 있다. 이는 선택적 렌더링 수행 시 보간할 수 있는 픽셀 수가 상당히 감소하기 때문에 성능 향상에 제한이 있다는 것을 의미한다.
위에서 언급한 성능 면에서의 문제점을 극복하는 방안으로서, 도 5의 그림 (a)의 빨간색 원(510)에 해당하는 픽셀 값을 현재 타일에 인접한 타일에서 가지고 오는 방안을 생각해 볼 수 있다. 해당 방법은 매우 효과적인 방법에 해당하는 반면, 이로 인하여 현재 타일과 인접 타일 간에 의존관계가 형성될 수 있다. 이러한 의존관계(dependency)로 인하여, 다수개의 타일들을 병렬로 처리해야 경우 해당 방법을 적용하는 것은 매우 어려울 수 있다.
도 6은 본 발명에 따른 멀티레벨 선택적 렌더링 장치의 물리적 구성을 설명하는 블록도이다.
도 6을 참조하면, 멀티레벨 선택적 렌더링 장치(600)는 타일 생성부(610), 레벨처리 제어부(620), 선택적 렌더링 제어부(630), 렌더링부(640) 및 보간부(650)를 포함할 수 있다.
타일 생성부(610)는 영상 프레임을 기초로 복수의 타일들을 생성할 수 있다. 여기에서, 영상 프레임은 영상을 구성하는 프레임(frame)에 해당할 수 있으며, 타일(tile)은 프레임 내의 픽셀 또는 픽셀 그룹에 해당할 수 있다. 타일 생성부(610)는 각 프레임을 소정의 크기를 갖는 타일들로 분할하는 동작을 수행할 수 있다. 즉, 타일 생성부(610)는 사전에 설정된 타일 크기를 기초로 영상 프레임에 대한 분할 동작을 처리할 수 있다.
일 실시예에서, 타일 생성부(610)는 영상 프레임의 가로 및 세로 각각을 동일한 간격으로 분할할 수 있다. 해당 분할에 따라 가로 및 세로 각각에 대해 독립된 개수의 타일들이 각각 생성될 수 있다. 또한, 타일 생성부(610)는 타일의 크기가 모두 동일하도록 분할 동작을 수행할 수 있으며, 이에 따라 타일의 크기만큼의 동일한 간격으로 타일들을 분할할 수 있다. 예를 들어, 128*128 크기의 영상 프레임에 대해 하나의 타일이 32*32 크기를 갖도록 분할되는 경우 총 4*4=16개의 타일들이 생성될 수 있으며, 수직 방향과 수평 방향으로 각각 4개씩의 타일들이 생성될 수 있다.
레벨처리 제어부(620)는 복수의 타일들로 분할된 영상 프레임에 대해 현재 타일에 대한 멀티레벨 임계치를 설정할 수 있다. 여기에서, 멀티레벨 임계치는 멀티레벨 선택적 렌더링 과정에서 적용되는 각 레벨별 임계치들을 포함할 수 있다. 예를 들어, 멀티레벨 임계치는 하이 레벨(high-level)에 대응되는 제1 레벨 임계치와 하위 레벨(low-level)에 대응되는 제2 레벨 임계치를 포함할 수 있다.
레벨처리 제어부(620)는 영상 프레임의 분할된 타일들을 대상으로 수행되는 선택적 렌더링의 효율성을 높이기 위하여 임계치를 멀티레벨(multi-level)로 설정할 수 있다.
또한, 레벨처리 제어부(620)는 선택적 렌더링을 멀티레벨로 수행하기 위하여 초기 샘플링을 수행할 수 있다. 이를 위하여, 레벨처리 제어부(620)는 렌더링부(640)와 연동하여 동작할 수 있다. 즉, 레벨처리 제어부(620)는 현재 타일에서 샘플링 대상이 되는 블록(픽셀)의 위치를 생성하여 렌더링부(640)에 전달할 수 있으며, 렌더링부(640)는 해당 위치를 기준으로 초기 샘플링을 수행하여 초기 샘플링 블록들을 생성할 수 있다. 이때, 초기 샘플링 블록은 샘플링을 통해 렌더링된 픽셀 블록에 대응될 수 있다. 한편, 멀티레벨 선택적 렌더링이 하이 레벨 및 로우 레벨로 구분되어 수행되는 경우, 초기 샘플링은 하이 레벨 샘플링에 대응될 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 블록 간의 색상 차이를 기초로 복수의 레벨 임계치들을 포함하는 멀티레벨 임계치를 설정할 수 있다. 이때, 멀티레벨 임계치는 상위 레벨 임계치가 항위 레벨 임계치보다 낮도록 설정될 수 있다. 예를 들어, 멀티레벨 임계치는 하이 레벨(high-level)에 해당하는 제1 레벨 임계치와 로우 레벨(low-level)에 해당하는 제2 레벨 임계치를 포함할 수 있다. 레벨처리 제어부(620)는 영상 프레임의 분할된 타일마다 제1 및 제2 레벨 임계치들을 설정하여 멀티레벨 선택적 렌더링이 수행되도록 할 수 있으며, 타일이 변경될 때마다 제1 및 제2 레벨 임계치들을 갱신할 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 영상 프레임의 중앙 영역에 가까울수록 각 타일에 대한 멀티레벨 임계치의 각 레벨 임계치들을 각각 감소시키고 영상 프레임의 가장자리 영역에 가까울수록 각 레벨 임계치들을 각각 증가시킬 수 있다. 예를 들어, 영상 프레임의 중앙 영역 인근의 타일들에 대해 제1 및 제2 레벨 임계치들을 각각 감소시킬 수 있고, 영상 프레임의 가장자리 영역 인근의 타일들에 대해 제1 및 제2 레벨 임계치들을 각각 증가시킬 수 있다.
즉, 레벨처리 제어부(620)는 멀티레벨 임계치를 동적으로 조절함으로써 영상 프레임의 전체적인 화질을 일정수준으로 유지하면서도 선택적 렌더링에 따른 성능 증가를 제공할 수 있다. 특히, 레벨처리 제어부(620)는 화면의 중심부일수록 화질에 민감하다는 점을 고려하여 임계치를 자동으로 감소시킬 수 있고, 화면의 가장자리일수록 임계치를 자동으로 증가시킬 수 있다. 또한, 레벨처리 제어부(620)는 멀티레벨 선택적 렌더링의 경우 멀티레벨의 각 레벨에서의 임계치들을 함께 조정할 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 현재 타일의 초기 샘플링을 위한 블록 위치를 생성하여 렌더링부(640)에 전달하고 렌더링에 따른 결과값을 렌더링부(640)로부터 수신하여 타일 버퍼에 저장할 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 초기 샘플링 과정에서 현재 타일의 각 코너에 배치된 코너 블록들에 대한 샘플링을 우선적으로 수행할 수 있다. 초기 샘플링은 영상 프레임의 각 타일에 대한 멀티레벨 선택적 렌더링의 전단계에서 수행될 수 있으며, 타일의 경계 영역 즉 boundary(row, column)에 있는 블록들의 렌더링 문제를 해소하기 위하여 현재 타일의 모든 코너에 있는 코너 블록들이 반드시 샘플링되도록 할 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 코너 블록들 중 어느 하나를 기준으로 수직 및 수평 방향을 따라 동일한 간격으로 이동하면서 초기 샘플링 과정을 수행할 수 있다. 예를 들어, 레벨처리 제어부(620)는 코너 블록들 중 오른쪽 아래의 코너에 있는 코너 블록을 기준으로 수직 방향으로 3 픽셀마다(이 경우, 블록 크기는 1픽셀) 샘플링을 수행한 다음 수평 방향으로 3 픽셀마다 샘플링을 수행할 수 있다. 이때, 수직 방향 또는 수평 방향에 대한 우선순위는 선택적으로 적용될 수 있다.
일 실시예에서, 레벨처리 제어부(620)는 초기 샘플링 과정이 완료된 경우 초기 샘플링 블록들 중에서 동일한 간격으로 샘플링된 블록들을 포함하는 노말 영역(normal region)과 그렇지 않은(즉, 동일한 간격으로 샘플링되지 않은) 블록들을 포함하는 보더 영역(border region)으로 현재 타일을 논리적으로 분할할 수 있다. 초기 샘플링 수행 과정에서 샘플링 간격에 따라 특정 방향의 경계에서 블록들 간의 간격이 상이하게 형성될 수 있으며, 이 경우 상이한 간격의 블록들은 샘플링 진행 방향(수평 또는 수직 방향)의 마지막 경계에서 생성될 수 있다. 이에 대해서는 도 9에서 보다 자세히 설명한다.
일 실시예에서, 레벨처리 제어부(620)는 선택적 렌더링 제어부(630)와 연동하여 레벨별 선택적 렌더링들의 반복을 통해 현재 타일에 대한 멀티레벨 선택적 렌더링이 완료된 경우 현재 타일의 다음 타일에 대해 멀티레벨 선택적 렌더링을 개시할 수 있다.
선택적 렌더링 제어부(630)는 멀티레벨의 각 레벨마다 선택적 렌더링을 수행할 수 있다. 즉, 선택적 렌더링 제어부(630)는 현재 레벨의 타일 내 블록 위치를 기반으로 멀티레벨 임계치에 따라 렌더링 유형을 결정하고 렌더링 유형에 따라 렌더링부(640) 또는 보간부(650)의 동작을 제어할 수 있다. 즉, 선택적 렌더링 제어부(630)는 초기 샘플링에 의해 생성된 초기 샘플링 블록 이외의 나머지 블록들에 대해 멀티레벨에 따른 선택적 렌더링을 수행할 수 있다.
예를 들어, 초기 샘플링 블록들이 3 픽셀 간격마다 생성된 경우, 제1 레벨 선택적 렌더링은 초기 샘플링 블록들 사이의 중간 블록에 대해 수행될 수 있으며, 제2 레벨 선택적 렌더링은 초기 샘플링 블록들과 제1 레벨 선택적 렌더링에 따른 제1 레벨 블록들 사이의 블록에 대해 수행될 수 있다. 이때, 제1 레벨 선택적 렌더링에는 제1 레벨 임계치가 적용될 수 있고, 제2 레벨 선택적 렌더링에는 제2 레벨 임계치가 적용될 수 있다. 또한, 제1 레벨 임계치는 제2 레벨 임계치보다 낮게 설정될 수 있다. 여기에서는, 멀티레벨을 제1 및 제2 레벨(즉, 하이 및 로우 레벨)로 한정하여 설명하였으나, 3 이상의 레벨들로 구성된 멀티레벨에 대해서도 동일하게 적용될 수 있음은 물론이다.
보다 구체적으로, 선택적 렌더링 제어부(630)는 이전 레벨 블록을 기초로 레벨별 선택적 렌더링을 위한 현재 레벨 블록의 렌더링 유형을 결정할 수 있다. 이후, 선택적 렌더링 제어부(630)는 현재 레벨 블록에 대해 결정된 렌더링 유형에 따라 보간(interpolation) 및 샘플링(sampling) 중 어느 하나를 선택적으로 수행할 수 있으며, 현재 레벨 블록이 생성되면 타일 버퍼에 저장하는 동작을 수행할 수 있다. 여기에서, 보간 및 샘플링의 구체적인 동작에 대한 설명은 생략한다.
또한, 선택적 렌더링 제어부(630)는 현재 타일의 모든 블록들에 대한 멀티레벨 선택적 렌더링이 완료되면 타일 버퍼에 저장된 최종 결과값(예를 들어, 초기 샘플링 블록, 제1 및 제2 레벨 블록들)을 프레임 버퍼로 옮길 수 있다. 선택적 렌더링 제어부(630)는 현재 타일 내의 모든 픽셀들에 대해 멀티레벨 선택적 렌더링이 수행된 경우, 다음 타일에 대한 동작을 위해 타일 버퍼 내의 데이터를 프레임 버퍼 상으로 이동시킬 수 있다.
일 실시예에서, 선택적 렌더링 제어부(630)는 현재 타일과 함께 복수의 타일들 중 선택된 적어도 하나의 다른 타일에 대해 멀티레벨 선택적 렌더링을 병렬적으로 개시할 수 있다. 즉, 선택적 렌더링 제어부(630)는 복수의 타일(tile)들로 분할되는 영상 프레임에 대한 렌더링 과정에서 각 타일에 대한 멀티레벨 선택적 렌더링을 순차적으로 수행하거나 또는 다수의 타일들에 대한 멀티레벨 선택적 렌더링을 병렬적으로 수행할 수 있다. 본 발명에 따른 멀티레벨 선택적 렌더링 방법의 경우 타일과 타일 사이에 의존관계(dependency)가 존재하지 않는다는 점에서 다수의 타일들을 동시에 처리할 수 있으며, 선택적 렌더링 제어부(630)는 필요에 따라 멀티레벨 선택적 렌더링의 수행 방식을 선택적으로 적용할 수 있다.
일 실시예에서, 선택적 렌더링 제어부(630)는 현재 레벨 블록을 기준으로 대각선, 수직 또는 수평 방향으로 양쪽에 인접한 인접 블록들 간의 색상 차이가 현재 레벨 임계치보다 작은 경우 보간을 현재 레벨 블록에 대한 렌더링 유형으로 결정하고, 그렇지 않은 경우 샘플링을 렌더링 유형으로 결정할 수 있다. 이에 따라, 인접 블록들 간의 색상 차이가 현재 레벨 임계치보다 작은 경우 해당 현재 레벨 블록에 대해 보간부(650)에 의한 보간 동작이 수행될 수 있고, 그렇지 않은 경우 해당 현재 레벨 블록에 대해 렌더링부(640)에 의한 샘플링 동작이 수행될 수 있다.
일 실시예에서, 선택적 렌더링 제어부(630)는 현재 레벨 블록이 현재 타일의 보더 영역(border region)에 존재하는 경우 인접 블록들과의 간격에 따른 가중치를 적용하여 색상 차이를 보정할 수 있다. 보더 영역에서는 현재 레벨 블록과 인접 블록들 사이의 간격이 서로 상이할 수 있으며, 이에 따라 더 인접한 위치에 존재하는 인접 블록에 보다 높은 가중치가 적용될 수 있다. 이에 대해서는 도 11에서 보다 자세히 설명한다.
렌더링부(640)는 렌더링 유형에 따라 현재 타일의 블록들에 대한 렌더링(rendering)을 수행하여 렌더링 블록을 생성하고 타일 버퍼에 저장할 수 있다. 즉, 렌더링부(640)는 선택적 렌더링 과정에서 선택적 렌더링 제어부(630)와 연동하여 동작할 수 있으며, 선택적 렌더링 제어부(630)에 의해 결정된 렌더링 유형에 따라 특정 블록에 대한 렌더링을 수행한 결과로서 렌더링 블록을 생성할 수 있다. 이때, 렌더링 블록은 렌더링 위치의 픽셀로서 렌더링을 통해 생성된 색상값을 갖는 픽셀 블록에 해당할 수 있으며, 픽셀 위치 좌표와 색상 정보를 포함하여 생성될 수 있다. 렌더링부(640)에 의해 생성된 렌더링 블록은 타일 버퍼에 타일 단위로 저장될 수 있다.
보간부(650)는 렌더링 유형에 따라 현재 타일의 블록들에 대한 보간(interpolation)을 수행하여 보간 블록을 생성하고 타일 버퍼에 저장할 수 있다. 즉, 보간부(650)는 선택적 렌더링 과정에서 선택적 렌더링 제어부(630)와 연동하여 동작할 수 있으며, 선택적 렌더링 제어부(630)에 의해 결정된 렌더링 유형에 따라 특정 블록에 대한 보간을 수행한 결과로서 보간 블록을 생성할 수 있다. 이때, 보간 블록은 보간 위치의 픽셀로서 보간을 통해 생성된 색상값을 갖는 픽셀 블록에 해당할 수 있으며, 픽셀 위치 좌표와 색상 정보를 포함하여 생성될 수 있다. 보간부(650)에 의해 생성된 보간 블록은 타일 버퍼에 타일 단위로 저장될 수 있다.
도 7은 본 발명에 따른 멀티레벨 선택적 렌더링 방법을 설명하는 순서도이다.
도 7을 참조하면, 멀티레벨 선택적 렌더링 방법은 프레임(frame)의 타일(tile) 단위로 소정의 단계들을 통해 반복적으로 수행될 수 있다. 이때, 하나의 프레임은 다수개의 타일들로 구성되어 있다고 가정한다. 첫 번째 단계(S710)에서는 현재 타일에 대한 제1 레벨 임계치(또는 high-level 임계치) 및 제2 레벨 임계치(또는 low-level 임계치)가 각각 설정될 수 있다. 이때, 임계치에 대한 설정값은 내부에서 자동적으로 생성되거나 외부에서 입력받아 설정될 수 있다.
그 다음, 두 번째 단계(S730)에서는 도 8의 그림 (a)에서 도시된 바와 같은 하이 레벨(high-level) 샘플링(즉, 초기 샘플링)이 수행될 수 있다. 그 후, 세 번째 단계(S750)에서는 하이 레벨 임계치(즉, 제1 레벨 임계치)를 입력받아 도 8의 그림 (b)에 도시된 바와 같은 하이 레벨 선택적 렌더링(즉, 제1 레벨 선택적 렌더링)이 수행될 수 있다. 그 후, 네 번째 단계(S770)에서는 S750 단계의 결과값을 기초로 로우 레벨 임계치(즉, 제2 레벨 임계치)를 입력받아 도 8의 그림 (c)에 도시된 바와 같은 로우 레벨 선택적 렌더링(즉, 제2 레벨 선택적 렌더링)이 수행될 수 있다. 이러한 과정은 프레임 내의 모든 타일들에 대해서 각 타일마다 반복적으로 수행될 수 있으며, 만약 모든 타일들에 대한 렌더링이 완료된 경우 해당 프레임에 대한 렌더링 동작은 종료되고 다음 프레임에 대한 렌더링 동작이 개시될 수 있다(S790).
본 발명에 따른 멀티레벨 선택적 렌더링 방법은 다음의 세 가지 방식을 적용하여 기존의 선택적 렌더링의 효율을 높일 수 있다. 첫 번째는 타일 내의 경계 영역(또는 보더 영역)을 포함하여 초기 샘플링을 수행하는 것일 수 있다. 이로 인하여 상기에서 설명한 경계 영역에 대한 정보의 부재로 인한 문제를 극복할 수 있다. 특히, 타일 간의 의존관계가 없기 때문에 다수개의 타일에 대한 병렬처리가 가능할 수 있다.
두 번째는 선택적 렌더링을 멀티레벨(multi-level)로 처리하는 것일 수 있다. 도 4의 그림 (a)와 달리 하이 레벨(high-level)에서는 먼저 픽셀의 x좌표와 y좌표를 세 개씩 건너뛰어 샘플링을 수행할 수 있다. 그 후에 한 개씩 건너뛰는 좌표 위치의 중간 픽셀값들을 얻기 위하여 하이 레벨(high-level)에서 얻은 값들을 기반으로 선택적 렌더링을 수행할 수 있다. 이 결과값들을 기반으로 로우 레벨(low-level)에서는 기존과 유사한 방식의 선택적 렌더링을 수행할 수 있다. 이로 인하여, 기존의 방식 대비 화질은 다소 떨어질 수 있지만 높은 성능 향상을 달성할 수 있다.
세 번째는 하이 레벨(high-level)과 로우 레벨(low-level)에 대한 선택적 렌더링을 처리할 때, 각 레벨마다 다른 임계치를 설정할 수 있다. 이는 임계치가 각 레벨에 미치는 영향이 차이가 있기 때문이다. 즉, 하이 레벨이 로우 레벨보다 픽셀을 건너뛰는 간격이 크기 때문에 임계치가 화질과 성능에 미치는 영향이 더 클 수 있다. 예를 들어, 하이 레벨에서는 낮은 임계치를 설정하고 로우 레벨에서는 높은 임계치를 설정함으로써 화질을 일정수준 유지하면서 성능 증가를 기대할 수 있다. 이때, 임계치에 대한 설정값은 내부에서 자동적으로 생성되거나 외부에서 입력받을 수 있다. 예를 들어, 화면의 중심부일수록 화질에 민감하기 때문에 임계치를 자동으로 낮추고 가장자리일수록 임계치를 자동으로 높일 수 있다.
이하 도 8 내지 11을 참조하여 본 발명에 따른 멀티레벨 선택적 렌더링 방법을 보다 자세히 설명한다.
도 8은 16*16 픽셀 블록(block)으로 구성된 타일에 대한 멀티레벨 선택적 렌더링의 일 실시예이다. 이는 크게 하이 레벨 샘플링 단계(또는 초기 샘플링 단계), 하이 레벨 선택적 렌더링 단계, 로우 레벨 선택적 렌더링으로 구성될 수 있다. 첫 번째 단계로써, 도 8의 그림 (a)는 타일 내의 경계(boundary) 영역을 포함한 하이 레벨에 대한 초기 샘플링의 예이다. 기존의 방식과 차이로는 일단 16*16 픽셀 블록의 4개의 코너에서 반드시 샘플링이 수행될 수 있다. 또한, 픽셀의 x좌표와 y좌표를 세 개씩 건너뛰어 샘플링을 수행할 때, 이러한 규칙이 적용이 되는 노말(normal) 영역과 그렇지 않은 보더(border) 영역이 존재할 수 있으며, 그 실시예가 도 9에 도시되어 있다.
두 번째 단계로써, 도 8의 그림 (b)는 하이 레벨에 대한 선택적 렌더링 결과를 나타낸 것이며, 하기에서 설명할 도 10과 도 11의 과정을 모두 거친 후의 결과일 수 있다. 도 8의 그림 (b)의 파란색 부분(810)이 선택적 렌더링된 픽셀일 수 있다. 세 번째 단계로써, 도 8의 그림 (c)는 도 8의 그림 (b)의 하얀색 부분(830)에 대하여 선택적 렌더링이 수행된 결과로서, 도 4와 유사한 과정을 거칠 수 있다. 두 번째와 세 번째 단계에서 사용되는 임계치 값은 동일할 수 있고 상이할 수도 있으며, 이를 각각 하이 레벨 임계치(또는 제1 레벨 임계치)와 로우 레벨 임계치(또는 제2 레벨 임계치)라 할 수 있다.
도 8의 그림 (a)에 도시된 노말(normal) 영역에서는 선택적 렌더링을 통하여 한 개씩 건너뛰는 좌표 위치의 중간 픽셀값들을 얻을 수 있다. 도 10의 그림 (a)는 5*5 픽셀로 구성된 노말 영역에 대한 하이 레벨 샘플링의 결과일 수 있다. 초록색(1010)은 샘플링이 돼서 렌더링이 된 부분이고, 하얀색(1030)은 아직 렌더링이 되지 않은 영역일 수 있다. 도 10의 그림 (b)는 하이 레벨 선택적 렌더링을 수평적으로 적용하여 한 개씩 건너뛰는 좌표 위치의 중간 픽셀값을 구하는 과정일 수 있다. 즉, 해당 위치의 픽셀의 값은 초록색(1010)으로 표시된 두 픽셀의 색상 값의 차이와 미리 설정된 임계치의 비교를 통하여 결정될 수 있다. 즉, 색상 값 차이가 임계치 이하이면 보간을 수행하고 임계치를 초과하면 렌더링을 수행할 수 있다. 이러한 과정을 수직적으로도 적용하면 도 10의 그림 (c)와 같이 도시될 수 있다.
한편, 보더(border) 영역은 노말(normal) 영역에 비하여 규칙적이지 않은 부분이 존재할 수 있다. 도 11의 그림 (a)는 4*8 픽셀로 구성된 보더 영역에 대한 하이 레벨 샘플링의 결과일 수 있다. 빨간색(1110)과 초록색(1130)은 샘플링이 돼서 렌더링이 된 부분이고, 하얀색(1150)은 아직 렌더링이 되지 않은 영역일 수 있다. 도 11의 그림 (b)는 하이 레벨 선택적 렌더링을 수평적으로 적용하여 해당 좌표 위치의 중간 픽셀 값을 구하는 과정일 수 있다. 이때, 샘플링된 두 픽셀의 좌표 위치 차이가 4이면 도 10의 그림 (b)와 동일하게 처리되는 반면, 3인 경우 임계치 값과의 비교를 위한 두 픽셀의 색상 차이 값에는 좌표 차이만큼의 가중치가 적용될 수 있다. 예를 들어, 좌표 0번의 값 A와 좌표 3번의 값 B가 주어졌을 때, 좌표 1번 값 C는 좌표 0번에 2배의 가중치를 주고 좌표 0번 값과 좌표 3번 값과의 보간을 통하여 구할 수 있다. 즉, C = (2*A + B)/3 이다. 이러한 과정을 수직적으로도 적용하면 도 11의 그림 (c)와 같이 도시될 수 있다.
도 12는 본 발명에 따른 멀티레벨 선택적 렌더링 장치(600)의 하드웨어 구조이다. 이는 크게 타일 생성 유닛(tile generation unit)(610), 레벨 처리 제어 유닛(level processing control unit)(620), 선택적 렌더링 제어 유닛(selective rendering control unit)(630), 렌더링 유닛(rendering unit)(640), 보간 유닛(interpolation unit)(650), 타일 버퍼(tile buffer)로 구성될 수 있다. 이때, tile generation unit(610)은 도 6의 타일 생성부(610), level processing control unit(620)은 도 6의 레벨처리 제어부(620), selective rendering control unit(630)은 도 6의 선택적 렌더링 제어부(630), rendering unit(640)은 도 6의 렌더링부(640), interpolation unit(650)은 도 6의 보간부(650)에 각각 대응될 수 있다.
먼저 tile generation unit(610)은 전체 프레임(frame)을 타일로 분할 및 현재 처리할 타일의 정보를 관리할 수 있다. 이러한 타일 정보를 받은 level processing control unit(620)은 도 8에서 제시된 3 단계 처리를 위하여 종합적인 관리 동작을 수행할 수 있다.
Level processing control unit(620)은 도 8의 그림 (a)에 제시된 하이 레벨 샘플링(high-level sampling)을 위하여 샘플링 할 픽셀 위치들을 생성하여 rendering unit(640)에 보낼 수 있다. Rendering unit(640)은 렌더링을 수행하며, 결과값은 level processing control unit(620)을 통하여 타일 버퍼에 저장될 수 있다. 이 값들은 다음의 두 단계에서 참조될 수 있다.
도 8의 그림 (b)와 그림 (c)에 도시된 멀티레벨(multi-level) 선택적인 렌더링을 위하여, level processing control unit(620)은 해당 레벨의 선택적 렌더링을 위한 픽셀을 설정하여 이를 selective rendering control unit(630)으로 보낼 수 있다. 해당 정보를 가지고 selective rendering control unit(630)은 타일 버퍼에 저장된 픽셀값을 참조하여 색상 차이 값을 계산하고 이를 임계치와 비교할 수 있다. 각 단계에서 사용되는 임계치 값은 같을 수도 있고 다를 수도 있다.
비교 결과에 따라서 rendering unit(640) 혹은 interpolation unit(650)이 수행될 수 있으며, 그 결과값은 selective rendering control unit(630)을 통해서 타일 버퍼에 저장될 수 있다. 모든 과정이 처리가 되면, 타일 버퍼에 저장된 최종 결과값은 외부 메모리(external memory)에 있는 프레임 버퍼(frame buffer)로 보내어질 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
411, 413: 수평 위치의 픽셀 데이터 값
430: 렌더링 되지 않은 픽셀
451, 453: 수직 위치의 픽셀 데이터 값
600: 멀티레벨 선택적 렌더링 장치
610: 타일 생성부 620: 레벨처리 제어부
630: 선택적 렌더링 제어부 640: 렌더링부
650: 보간부

Claims (16)

  1. 복수의 타일(tile)들로 분할되는 영상 프레임에 대한 렌더링 과정에서, 현재 타일에 대해 블록 간의 색상 차이를 기초로 복수의 레벨 임계치들을 포함하는 멀티레벨 임계치를 설정하는 단계;
    상기 현재 타일을 대상으로 초기 샘플링을 수행하여 초기 샘플링 블록(block)들을 생성하는 단계;
    상기 초기 샘플링 블록들을 기초로 상기 멀티레벨 임계치의 제1 레벨 임계치에 따른 제1 레벨 선택적 렌더링을 수행하여 제1 레벨 블록들을 생성하는 단계;
    상기 제1 레벨 블록들을 기초로 상기 멀티레벨 임계치의 제2 레벨 임계치에 따른 제2 레벨 선택적 렌더링을 수행하여 제2 레벨 블록들을 생성하는 단계; 및
    레벨별 선택적 렌더링들의 반복을 통해 상기 현재 타일에 대한 멀티레벨 선택적 렌더링이 완료되면 상기 현재 타일의 다음 타일에 대해 상기 멀티레벨 선택적 렌더링을 개시하는 단계;를 포함하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  2. 제1항에 있어서,
    상기 멀티레벨 임계치는
    상위 레벨 임계치가 하위 레벨 임계치보다 낮도록 설정되는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  3. 제1항에 있어서,
    상기 멀티레벨 임계치를 설정하는 단계는
    상기 영상 프레임의 중앙 영역에 가까울수록 각 타일에 대한 상기 멀티레벨 임계치의 각 레벨 임계치들을 각각 감소시키고 상기 영상 프레임의 가장자리 영역에 가까울수록 상기 각 레벨 임계치들을 각각 증가시키는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  4. 제1항에 있어서,
    상기 초기 샘플링 블록들을 생성하는 단계는
    상기 초기 샘플링 과정에서 상기 현재 타일의 각 코너에 배치된 코너 블록들에 대한 샘플링을 우선적으로 수행하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  5. 제4항에 있어서,
    상기 초기 샘플링 블록들을 생성하는 단계는
    상기 코너 블록들 중 어느 하나를 기준으로 수직 및 수평 방향을 따라 동일한 간격으로 이동하면서 상기 초기 샘플링 과정을 수행하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  6. 제5항에 있어서,
    상기 초기 샘플링 블록들을 생성하는 단계는
    상기 초기 샘플링 과정이 완료된 경우 상기 초기 샘플링 블록들 중에서 상기 동일한 간격으로 샘플링된 블록들을 포함하는 노말 영역(normal region)과 그렇지 않은 블록들을 포함하는 보더 영역(border region)으로 상기 현재 타일을 논리적으로 분할하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  7. 제1항에 있어서,
    상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는
    이전 레벨 블록을 기초로 상기 레벨별 선택적 렌더링을 위한 현재 레벨 블록에 대한 렌더링 유형을 결정하는 단계;
    상기 현재 레벨 블록에 대해 상기 렌더링 유형에 따라 보간(interpolation) 및 샘플링(sampling) 중 어느 하나를 선택적으로 수행하는 단계; 및
    상기 현재 레벨 블록이 생성되면 타일 버퍼에 저장하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  8. 제7항에 있어서,
    상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는
    상기 현재 레벨 블록을 기준으로 대각선, 수직 또는 수평 방향으로 양쪽에 인접한 인접 블록들 간의 색상 차이가 현재 레벨 임계치보다 작은 경우 상기 보간을 상기 현재 레벨 블록에 대한 렌더링 유형으로 결정하고, 그렇지 않은 경우 샘플링을 상기 렌더링 유형으로 결정하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  9. 제8항에 있어서,
    상기 제1 레벨 또는 제2 레벨 블록들을 생성하는 단계는
    상기 현재 레벨 블록이 상기 현재 타일의 보더 영역에 존재하는 경우 상기 인접 블록들과의 간격에 따른 가중치를 적용하여 상기 색상 차이를 보정하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  10. 제1항에 있어서,
    상기 멀티레벨 선택적 렌더링을 개시하는 단계는
    상기 현재 타일의 모든 블록들에 대한 상기 멀티레벨 선택적 렌더링이 완료되면 타일 버퍼에 저장된 최종 결과값을 프레임 버퍼로 옮기는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  11. 제1항에 있어서,
    상기 멀티레벨 선택적 렌더링을 개시하는 단계는
    상기 현재 타일과 함께 상기 복수의 타일들 중 선택된 적어도 하나의 다른 타일에 대해 상기 멀티레벨 선택적 렌더링을 병렬적으로 개시하는 단계를 포함하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법.
  12. 영상 프레임에 대한 렌더링 과정에서 상기 영상 프레임을 복수의 타일(tile)들로 분할하고 상기 복수의 타일들 중 현재 타일에 관한 정보를 관리하는 타일 생성 유닛(tile generation unit);
    렌더링 위치를 기반으로 상기 현재 타일의 블록들에 대한 렌더링을 수행하는 렌더링 유닛(rendering unit);
    보간 위치를 기반으로 상기 현재 타일의 블록들에 대한 보간을 수행하는 보간 유닛(interpolation unit);
    상기 현재 타일에 대한 멀티레벨 선택적 렌더링을 관리하는 레벨 처리 제어 유닛(level processing control unit); 및
    현재 레벨의 블록 위치를 기반으로 블록 간의 색상 차이를 기초로 복수의 레벨 임계치들을 포함하는 멀티레벨 임계치에 따라 렌더링 유형을 결정하고 상기 렌더링 유형에 따라 상기 렌더링 유닛 또는 상기 보간 유닛의 동작을 제어하는 선택적 렌더링 제어 유닛(selective rendering control unit);을 포함하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치.
  13. 제12항에 있어서, 상기 레벨 처리 제어 유닛은
    상기 현재 타일의 초기 샘플링을 위한 블록 위치를 생성하여 상기 렌더링 유닛에 전달하고 상기 렌더링에 따른 결과값을 수신하여 타일 버퍼에 저장하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치.
  14. 제12항에 있어서, 상기 레벨 처리 제어 유닛은
    레벨별 선택적 렌더링을 위한 블록 위치를 상기 선택적 렌더링 제어 유닛에 전달하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치.
  15. 제12항에 있어서, 상기 선택적 렌더링 제어 유닛은
    타일 버퍼를 참조하여 상기 블록 위치를 기준으로 인접 블록들 간의 색상 차이를 산출하고 상기 색상 차이와 상기 멀티레벨 임계치를 비교하여 상기 렌더링 유형을 결정하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치.
  16. 제12항에 있어서, 상기 선택적 렌더링 제어 유닛은
    상기 렌더링 유닛 또는 상기 보간 유닛의 동작에 따른 결과값을 수신하여 타일 버퍼에 저장하는 것을 특징으로 하는 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 장치.
KR1020220104115A 2022-08-19 2022-08-19 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치 KR102537317B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220104115A KR102537317B1 (ko) 2022-08-19 2022-08-19 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치
PCT/KR2023/011437 WO2024039121A1 (ko) 2022-08-19 2023-08-03 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치
US18/235,633 US20240064304A1 (en) 2022-08-19 2023-08-18 Multilevel selective rendering method and apparatus for increasing rendering performance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220104115A KR102537317B1 (ko) 2022-08-19 2022-08-19 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102537317B1 true KR102537317B1 (ko) 2023-05-26

Family

ID=86536814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220104115A KR102537317B1 (ko) 2022-08-19 2022-08-19 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치

Country Status (3)

Country Link
US (1) US20240064304A1 (ko)
KR (1) KR102537317B1 (ko)
WO (1) WO2024039121A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024039121A1 (ko) * 2022-08-19 2024-02-22 세종대학교산학협력단 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150039493A (ko) 2013-10-02 2015-04-10 삼성전자주식회사 레이 트레이싱 처리 장치 및 방법
US20150379688A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Adaptive desampling in a graphics system with composited level of detail map

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8982136B2 (en) * 2011-05-16 2015-03-17 Qualcomm Incorporated Rendering mode selection in graphics processing units
US9830714B2 (en) * 2014-06-27 2017-11-28 Samsung Electronics Co., Ltd. Graphics processing with advection to reconstruct missing sample data points
SG11202107008TA (en) * 2018-12-27 2021-07-29 Huawei Tech Co Ltd Flexible tiling in video coding
KR102537317B1 (ko) * 2022-08-19 2023-05-26 세종대학교산학협력단 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150039493A (ko) 2013-10-02 2015-04-10 삼성전자주식회사 레이 트레이싱 처리 장치 및 방법
US20150379688A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Adaptive desampling in a graphics system with composited level of detail map

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024039121A1 (ko) * 2022-08-19 2024-02-22 세종대학교산학협력단 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치

Also Published As

Publication number Publication date
US20240064304A1 (en) 2024-02-22
WO2024039121A1 (ko) 2024-02-22

Similar Documents

Publication Publication Date Title
US10867434B2 (en) Variable rate shading
US10152819B2 (en) Variable rate shading
US7167171B2 (en) Methods and apparatuses for a polygon binning process for rendering
KR102197067B1 (ko) 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치
US11348308B2 (en) Hybrid frustum traced shadows systems and methods
JP2017091523A (ja) 3dレンダリング方法及び3dレンダリング装置
US10592242B2 (en) Systems and methods for rendering vector data on static and dynamic-surfaces using screen space decals and a depth texture
US10825231B2 (en) Methods of and apparatus for rendering frames for display using ray tracing
US10762696B2 (en) Graphic processor performing sampling-based rendering and method of operating the same
KR102151443B1 (ko) 하이브리드 gpu 아키텍처 기반의 그래픽 처리 장치
US20230230311A1 (en) Rendering Method and Apparatus, and Device
KR102537317B1 (ko) 렌더링 성능을 올리기 위한 멀티레벨 선택적 렌더링 방법 및 장치
KR102285840B1 (ko) 3차원 영상 렌더링 방법 및 이를 적용한 영상 출력 장치
CN114049421A (zh) 基于cpu的静态场景光线追踪棋盘渲染方法、系统及存储介质
KR102537319B1 (ko) 동적 장면에 대한 집중도 기반의 레이 트레이싱 방법 및 장치
KR20170053557A (ko) 3d 렌더링 방법 및 장치
KR102269648B1 (ko) 성능이 개선된 레이 트레이싱 장치 및 방법
US11681363B2 (en) Waveguide correction map compression
KR20230087952A (ko) 카메라 움직임에 따른 레이 트레이싱 화질조절방법, 이를 수행하는 화질조절장치 및 이를 저장하는 기록매체
US7453458B1 (en) Drawing method and drawing apparatus for displaying image data about a plurality of objects including semitransparent object and opaque object on computer display screen
KR102539910B1 (ko) 포비티드 렌더링에 관한 집중도 기반의 레이 트레이싱 방법 및 장치
KR102525084B1 (ko) 프레임 분할을 이용한 멀티칩 기반의 레이 트레이싱 장치 및 방법
US11443475B2 (en) Techniques for ray cone tracing and texture filtering
CN113628315A (zh) 射线锥追踪和纹理过滤的技术

Legal Events

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