KR102417685B1 - 기가급 픽셀 이미지의 실시간 렌더링 방법 - Google Patents

기가급 픽셀 이미지의 실시간 렌더링 방법 Download PDF

Info

Publication number
KR102417685B1
KR102417685B1 KR1020207019037A KR20207019037A KR102417685B1 KR 102417685 B1 KR102417685 B1 KR 102417685B1 KR 1020207019037 A KR1020207019037 A KR 1020207019037A KR 20207019037 A KR20207019037 A KR 20207019037A KR 102417685 B1 KR102417685 B1 KR 102417685B1
Authority
KR
South Korea
Prior art keywords
data
image
slice
rendering
queue
Prior art date
Application number
KR1020207019037A
Other languages
English (en)
Other versions
KR20200096267A (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 플렉스-브이알 디지털 테크놀로지 (상하이) 씨오., 엘티디.
Publication of KR20200096267A publication Critical patent/KR20200096267A/ko
Application granted granted Critical
Publication of KR102417685B1 publication Critical patent/KR102417685B1/ko

Links

Images

Classifications

    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 이미지 데이터를 통하여 오프라인 전처리를 수행한 다음, 디코딩 모듈을 통하여 데이터 디코딩 및 리디렉션을 수행하는 기가급 픽셀 이미지의 실시간 렌더링 방법을 공개한다. 상이한 화면 입력에 근거하여 상응하는 스케줄링 정책을 결정하고, 또한 렌더러로 렌더링을 수행한다. 본 발명을 사용하면 종래의 디스플레이 기기에서 기가급 픽셀의 파노라마를 실시간으로 렌더링할 수 있다. 또한 기가급 픽셀 이미지의 렌더링 리소스 구성을 크게 감소시킬 수 있어, 비디오 메모리1G~4G의 일반 비디오 카드에서 원래 40G 이상의 비디오 메모리여야만 정상적으로 렌더링할 수 있는 이미지를 렌더링할 수 있다.

Description

기가급 픽셀 이미지의 실시간 렌더링 방법
본 발명은 이미지 렌더링 분야에 관한 것으로, 특히 기가급(giga級) 픽셀 이미지의 실시간 렌더링 방법에 관한 것이다.
이미지 렌더링은 3차원의 광 에너지 전달 프로세스를 2차원 이미지로 변환하는 과정이다. 장면과 엔티티를 3차원 형식으로 표시하면, 현실 세계에 보다 근접하여 조작 및 변형이 간편해지지만, 그래픽의 디스플레이 기기는 대부분 2차원의 래스터화 디스플레이 장치와 도트 매트릭스식 프린터이다. 3차원 엔티티 장면의 표시로부터의 N차원 래스터 및 도트 매트릭스식의 표시가 바로 이미지 렌더링, 즉 래스터화이다. 래스터 디스플레이 장치는 하나의 픽셀 매트릭스로 간주할 수 있으며, 래스터 디스플레이 장치에서 디스플레이되는 임의의 하나의 그래픽은, 실질적으로는 모두 하나 또는 복수 종류의 색상과 그레이 픽셀을 갖는 집합들이다.
이미지 렌더링의 작업은 실제로, 기하학적 변환, 프로젝션 변환, 투시 변환 및 윈도우 클리핑(Window clipping) 등 수단을 통하여, 획득한 3차원 모델 정보를 이미지로 생성하고, 이미지 정보를 이미지 파일 또는 비디오 파일, 또는 디스플레이 기기의 프레임 캐시에 출력하여, 그래픽 생성을 완료하는 것이다.
이미지 렌더링 작업을 완성시키는 하드웨어는 그래픽 프로세서이다. 초창기의 이미지 프로세서에는 간단한 메모리 및 프레임 버퍼만 포함된다. 이들은 실질적으로는 하나의 그래픽의 저장 및 전달 역할만 하며, 이미지 렌더링은 주로 CPU의 연산에 의하여 완성된다. 특히, 많은 대형 3차원 그래픽 소프트웨어의 경우, 대부분 시간은 모두 렌더링 작업을 수행하는 데에 있다. 이미지 렌더링은 3차원 엔티티의 위치 변화, 각종 변환에 필요한 매트릭스 연산, 및 사실감을 추구하기 위해 설계된 각종 광선 추적, 및 라디오시티 등의 알고리즘과 같은 대량의 부동 소수점 연산에 관련되어, 현재 성능이 매우 좋은 컴퓨터에 있어서도, 매우 큰 작업량이다. 따라서, 이후 발전된 그래픽 프로세서는 모두 그래픽 처리 기능을 갖는다. 이는 단지 그래픽 저장 뿐만 아니라, 대부분 그래픽 함수도 완성할 수 있어, 이렇게 하여 CPU의 부담이 크게 줄고, 디스플레이 능력과 디스플레이 속도가 향상되었다.
전자 기술의 발전에 따라, 그래픽 프로세서의 기술 수준은 더욱 높아지고, 기능도 더욱 강화되어, 많은 전용 그래픽 프로세서는 이미 매우 강력한 3D 처리 능력을 구비하고, 또한 이러한 3D 그래픽 카드도 점차적으로 개인용 컴퓨터로 향하게 되었다. 전용 그래픽 프로세서들이 갖는 트랜지스터 수는 심지어 같은 시대의 CPU의 트랜지스터 수보다 더 많다. 예를 들어, NVIDIA사에서 2002 년 11 월에 출시한 GeForce FX 칩은, 비전 프로세서라고 지칭되고, 12,500만 개의 트랜지스터를 구비하는데, 이는 같은 시대 Pentium 4 CPU (5,500만 개의 트랜지스터를 구비함)의 2배이다.
그러나, 하드웨어 기술의 급속한 발전에 따라, 사람들의 이미지에 대한 요구도 나날이 높아지고 있다. 현재 VR (가상 현실) 기술에 사용되는 이미지 픽셀은 기가급에 도달하였다. 보통의 이미지 프로세서는 이미 이러한 레벨의 픽셀을 직접 렌더링할 수 없다. 실제로, 범용의 개인용 컴퓨터의 비디오 메모리는 1G~4G이지만, 기가급 픽셀 이미지를 렌더링하는 것은 40G 이상의 비디오 메모리 공간을 점용하며, 보통 비디오 카드에는 로딩될 수 없다. 종래의 기술에서, 해결수단은 GPU 가속 클라우드 기술, Docker 컨테이너 아키텍처의 가상 머신 플랫폼을 사용하는 것 등을 포함하는데, 모두 특정된 맞춤형 하드웨어 또는 서비스에 의존한다. 비용이 높고, 네트워크 요구 사항이 높으며, 실시간 데이터 스케줄링을 구현할 수 없다.
따라서, 본 기술분야의 기술자는 기가급 픽셀 이미지의 실시간 렌더링 방법을 개발하는 데에 매진하였으며, 본 방법은 시스템 아키텍처 최적화와 실시간 데이터 스케줄링으로 구축되는 알고리즘에 기초하여, 상이한 화면 모션 입력에 따라 응답하는 실시간 렌더링 능력을 형성함으로써, (전용 맞춤형 기기가 아닌) 종래의 기기 플랫폼에서 기가급 픽셀의 렌더링을 완성하는 것을 실현하도록 한다. 본 방법에 필요한 내장 메모리/비디오 메모리 공간 구성은 실제 렌더링 대상의 기가급 이미지 크기보다 훨씬 작다.
종래의 기술의 상기 결함을 감안해보면, 본 발명이 해결하고자 하는 기술적 과제는 어떻게 하면 종래의 디스플레이 기기에서 기가급 픽셀의 파노라마를 실시간으로 렌더링할 수 있겠는가, 또는 기가급 픽셀 파노라마를 렌더링하는 데에 필요한 내장 메모리, 비디오 메모리 구성을 크게 줄이겠는가 하는 것이다.
상술한 목적을 실현하고자, 본 발명은,
데이터 전처리 모듈을 통하여, 이미지에 대해 오프라인 데이터 재구성을 수행하고, 재구성된 데이터를 확장명이 “.giga”인 데이터 파일로 생성하는 단계 1;
데이터 디코딩 모듈을 통하여, 상기 데이터 파일에 대해 데이터 디코딩 및 리디렉션을 수행하는 단계 2;
스케쥴링 모듈을 통하여, 스케줄링 정책을 생성하여 데이터의 내장 메모리, 비디오 메모리 내에서의 큐잉(queuing) 상황을 결정하도록 하는 단계 3;
렌더링 모듈을 통하여 상기 스케줄링 정책을 실행하고, 또한 실행 과정에서 상기 스케줄링 정책을 업데이트하는 단계 4;
전체 이미지의 렌더링이 완료될 때까지 단계 3, 단계 4를 반복하는 단계 5를 포함하는 기가급 픽셀 이미지의 실시간 렌더링 방법을 제공한다.
나아가, 단계 1에 있어서의 상기 데이터 재구성은, 이미지 슬라이싱, 이미지 패딩(Image padding), 및 파일 구조 최적화를 포함하되; 상기 이미지 슬라이싱은, 큰 이미지를 작은 부분으로 분할하여 소프트웨어 계층에서 보다 빠르게 로딩 및 렌더링되도록 하는 것이고; 상기 이미지 패딩은, 전체 데이터 저장 이전에, 구체적인 데이터 파라미터를 추가하고, 또한 무효 점위(placeholder) 데이터를 사용하여 각각의 슬라이스의 내장 메모리 오프셋 위치가 4KiB의 정수배로 유지되도록 보장하는 것이며; 상기 파일 구조 최적화는, 내장 메모리 계층 구조에 기반한 파일 구조를 사용함으로써, 최적화를 통해 렌더링 비용을 크게 감소시키는 것이다.
나아가, 상기 이미지 슬라이싱의 구체적 방안은, 초기 규모의 데이터 이미지에 대하여 2배의 비율에 따라 축소를 수행하되, 각각의 스케일링 결과는 하나의 스케일링 레벨이고, 내장 메모리 대역폭에 가장 적합한 상기 스케일링 레벨을 선택하여, 이를 스케일링 레벨 0으로 정의하고, 각각의 상기 스케일링 레벨의 이미지를 모두 통일된 사이즈의 일련의 슬라이스로 쪼개는 것이다.
나아가, 단계 2에 있어서의 상기 데이터 디코딩 및 리디렉션은, 스케일링 레벨 리스트를 구축하는 것, 즉 임의의 상기 스케일링 레벨에서, 각각의 상기 슬라이스 데이터의 초기 위치 오프셋을 미리 저장하고, 이에 따라 상기 리디렉션 연산의 속도를 증가시키는 것을 포함한다.
나아가, 특정 상기 스케일링 레벨에서, 0번째 상기 슬라이스 데이터의 상기 초기 위치 오프셋은 하기 공식에 의해 계산하여 얻어질 수 있으며,
Figure 112020068299819-pct00001
여기서,
Figure 112020068299819-pct00002
은 스케일링 레벨
Figure 112020068299819-pct00003
에서의 0번째 슬라이스의 초기 위치 오프셋이고,
Figure 112020068299819-pct00004
은 스케일링 레벨이며,
Figure 112020068299819-pct00005
는 스케일링 계수이다.
나아가, 특정 스케일링 레벨에서, t번째 슬라이스의 상기 초기 위치 오프셋은 하기 공식에 의해 계산하여 얻어질 수 있으며,
Figure 112020068299819-pct00006
여기서,
Figure 112020068299819-pct00007
은 스케일링 레벨
Figure 112020068299819-pct00008
에서의 t번째 슬라이스 데이터의 초기 위치이고,
Figure 112020068299819-pct00009
은 스케일링 레벨
Figure 112020068299819-pct00010
에서의 0번째 슬라이스의 초기 위치 오프셋이며, s는 전체 슬라이스 사이즈가 4KiB를 정렬한 후 차지하는 내장 메모리 공간이다.
나아가, 단계 3에 있어서의 상기 스케줄링 정책은 비디오 메모리 비트 리스트를 유지 및 보호하는 것을 포함하되, 상기 비디오 메모리 비트 리스트는 비디오 메모리를 한 그룹의 사용 가능한 비디오 메모리 비트로 분할하여, 상기 비디오 메모리 비트에 구체적으로 저장되는 각각의 슬라이스 정보를 상기 비디오 메모리 비트 리스트 내에 기록하는 것이며, 상기 슬라이스 정보는 슬라이스 번호, 상기 비디오 메모리 비트가 비어 있는지 여부 및 상기 비디오 메모리 비트가 렌더링될 필요가 있는지 여부를 포함한다.
나아가, 단계 3에 있어서의 스케줄링 정책은 액세스 큐를 유지 및 보호하는 것을 포함하되, 상기 액세스 큐는 상기 비디오 메모리에 업로드된 모든 상기 슬라이스의 액세스 히트를 추적하기 위한 반 배열 양방향 연결 리스트(half-sorted bidirectional linked list)이고, 상기 액세스 큐의 슬라이스 순서는 상기 슬라이스가 최근에 액세스되었는지 여부를 나타내고, 큐의 끝에 배열된 슬라이스일수록 보다 낮은 액세스 히트, 즉 실제 액세스되지 않는 장시간 유휴 상태를 구비한다.
나아가, 단계 3에 있어서의 스케줄링 정책은 업데이트 큐를 유지 및 보호하는 것을 포함하되, 상기 업데이트 큐는 현재 렌더링 중에 유실된 슬라이스를 추적하기 위한 양방향 연결 리스트이고, 상기 업데이트 큐는 현재 즉시 스케줄링되는 상기 슬라이스 정보를 항상 지시하며; 상기 업데이트 큐는 상기 슬라이스 데이터 자체가 아닌 상기 슬라이스의 지시 정보만을 유지 및 보호하고 저장한다.
나아가, 단계 3에 있어서의 스케줄링 정책은 예측 큐를 유지 및 보호하는 것을 포함하되, 상기 예측 큐는 현재 조작이 밀집되지 않을 경우, 예측 알고리즘을 사용하여 미리 로딩되어야 하는 상기 슬라이스 데이터를 계산하고, 유휴 시기를 충분히 이용하여 데이터 교환을 수행한다.
본 발명은 종래의 기기 플랫폼(10,000 위안 이내의 일반 가정용 개인 컴퓨터)에서 기가급 픽셀의 렌더링을 완성하는 것을 구현한다. 본 방법에 필요한 내장 메모리/비디오 메모리 공간 구성은 실제 렌더링 대상의 기가급 이미지 크기보다 훨씬 작다. 종래의 방법으로 기가급 픽셀의 렌더링을 완성하려면 40G 이상의 비디오 메모리가 필요하지만, 본 발명에서 제공된 방법을 사용하면 비디오 메모리 점용을 1G~4G로 감소시킬 수 있다.
도 1은 본 발명의 바람직한 일실시예의 제어 흐름도이다.
이하에서는, 기술적 내용을 보다 명확하고 이해하기 쉽도록, 명세서 도면을 참조하여 본 발명의 구체적인 실시형태를 소개한다. 본 발명은 많은 상이한 형태의 실시예를 통하여 구현될 수 있으며, 본 발명의 보호범위는 본문에서 언급된 실시예에만 한정되는 것이 결코 아니다.
본 발명은 기가급 픽셀 이미지의 실시간 렌더링 방법을 제공하며, 구체적으로 하기와 같은 단계를 포함한다.
단계 1로서, 데이터 전처리 모듈을 통하여, 이미지에 대해 오프라인 데이터 재구성을 수행하고, 재구성된 데이터를 확장명이 “.giga”인 데이터 파일로 생성한다.
데이터 재구성의 시작점은 내장 메모리 점용을 감소시키고 또한 렌더링 정책을 최적화하는 것에 대한 고려에 기초하여 하기와 같은 3개 계층 구조에 중점을 두어 최적화를 수행한다.
1) 이미지 필링 및 슬라이싱 수단을 적용하여, 슬라이스 크기를 미리 추정한 전제 하에서, 큰 이미지를 작은 부분으로 분할하여 소프트웨어 계층에서 보다 빠르게 로딩 및 렌더링되도록 한다.
2) 내장 메모리 계층 구조에 기반한 파일 구조를 사용함으로써, 최적화를 통하여 렌더링 비용을 현저하게 감소시킨다.
3) 슬라이스 재배치 수단을 사용하고, 시스템 계층에서 캐시를 사용하여 슬라이스 데이터의 부분적 특징을 향상시킴으로써 액세스 시간을 한층 더 감소시킨다.
슬라이싱 수단에 있어서, 상이한 스케일링에서의 모든 슬라이스는 모두 동등량의 데이터, 즉 서로 동등한 사이즈를 갖는다. 초기 규모의 데이터 이미지에 대하여, 일정한 스케일링 계수(본 실시예의 바람직한 스케일링 계수는 2임)에 따라 축소를 수행하되, 각각의 스케일링의 결과는 하나의 스케일링 레벨 이미지이다. 전체의 슬라이스 사이즈는 내장 메모리 대역폭을 고려한 후 선택된 일정한 스케일링 레벨의 이미지 사이즈이다. 이 스케일링 레벨을 레벨 0으로, 최종의 초기 이미지 레벨을 레벨 n으로 정할 경우, 각각의 스케일링 레벨의 이미지의 폭과 높이는 모두 전체 슬라이스 사이즈의 정수배임을 보장, 즉, 각각의 스케일링 레벨이 모두 균일한 사이즈의 일련의 슬라이스로 쪼개어질 수 있음을 보장할 수 있다. 스케일링 레벨 0부터 스케일링 레벨 n까지, 하나의 안정적인 피라미드 슬라이스 구조를 구성한다.
슬라이스 데이터에 대한 실제 저장에 있어서는, 슬라이스 데이터를 스케일링 레벨 0부터 순차적으로 저장하고, 전체 데이터 이전에, 구체적인 데이터 파라미터 또한 별도로 저장하며, 현대 컴퓨터의 내장 메모리에 대한 판독을 최적화하기 위해, 데이터 내에 일정한 무효 점위 데이터를 필링하여 각각의 슬라이스의 내장 메모리 오프셋 위치가 4KiB의 정수배로 유지되도록 보장함으로써, 내장 메모리 페이지 판독의 구조 특징을 최대로 이용할 수 있다.
마지막으로, 재구성 후의 데이터를 확장명이 .giga인 파일로 생성하여, 렌더러가 사용하도록 실시간으로 제공한다.
단계 2로서, 데이터 디코딩 모듈에 의해, 상기 데이터 파일에 대해 데이터 디코딩 및 리디렉션을 수행한다.
실제 응용에서, 단계 1에서 설명한 슬라이싱 규칙에 의거하여, 임의의 스케일링 레벨 1에서 t번째 슬라이스 데이터의 초기 위치가 빠르게 위치결정될 수 있는데, 하기 공식에 의해 얻어진다.
Figure 112020068299819-pct00011
여기서,
Figure 112020068299819-pct00012
은 스케일링 레벨
Figure 112020068299819-pct00013
에서의 t번째 슬라이스 데이터의 초기 위치이고,
Figure 112020068299819-pct00014
은 스케일링 레벨
Figure 112020068299819-pct00015
에서의 0번째 슬라이스의 초기 위치 오프셋이며, s는 전체 슬라이스 사이즈가 4KiB를 정렬한 후 차지하는 내장 메모리 공간이다.
Figure 112020068299819-pct00016
은 하기 공식에 의해 사전에 계산하여 얻을 수 있다.
Figure 112020068299819-pct00017
여기서,
Figure 112020068299819-pct00018
은 스케일링 레벨이고,
Figure 112020068299819-pct00019
은 스케일링 레벨
Figure 112020068299819-pct00020
에서의 0번째 슬라이스의 초기 위치 오프셋이며,
Figure 112020068299819-pct00021
는 스케일링 계수이다.
실시간 렌더링에서 필요한 모듈의 매핑을 확인할 수 있도록 하기 위해, 화면의 각각의 차원에 따라, 균일하게 샘플링 포인트들을 생성한다. 이들 포인트를 인접한 대각 관계에 따라 둘씩 대응시키고, 그 축을 따라 좌표 차이값을 쌍을 이루게 기록하여
Figure 112020068299819-pct00022
로 표기한다. 그리고 나서, 좌표에 대해 백 프로젝션 계산(back projection computation)을 실행하여 텍스처 좌표계에 대응되는 각각의 샘플링 포인트의 좌표를 얻고, 다른 한 그룹의 좌표 차이값
Figure 112020068299819-pct00023
를 얻는다. 각각의 샘플링 포인트(i, j)에 대하여, 하기 방법에 의해 필요한 대응되는 슬라이스 id를 계산하여 얻을 수 있으며
Figure 112020068299819-pct00024
Figure 112020068299819-pct00025
로 표기한다.
우선, 스크린 좌표와 텍스처 좌표 사이의 스케일링 비율을 계산하고, 따라서 스케일링 레벨을 얻는다.
Figure 112020068299819-pct00026
여기서, r은 스크린 좌표와 텍스처 좌표 사이의 스케일링 비율이고, max()는 최대값을 취하는 연산자이며,
Figure 112020068299819-pct00027
은 스케일링 레벨이고, clip()는 슬라이스 연산자이며,
Figure 112020068299819-pct00028
는 베이스 연산자이고,
Figure 112020068299819-pct00029
는 스케일링 계수이며, n은 총 스케일링 레벨이다.
계산하여 얻은 스케일링 레벨
Figure 112020068299819-pct00030
에 따라, 2개 포인트에 대응되는 id를 순차적으로 계산할 수 있다.
Figure 112020068299819-pct00031
여기서,
Figure 112020068299819-pct00032
Figure 112020068299819-pct00033
는 사전 계산에 의해 저장된 스케일링 레벨
Figure 112020068299819-pct00034
의 다음 번 슬라이스에 의해 커버된 초기 이미지의 범위 크기이고,
Figure 112020068299819-pct00035
은 스케일링 레벨이며,
Figure 112020068299819-pct00036
는 스케일링 계수이고,
Figure 112020068299819-pct00037
는 베이스 연산자이다.
일정한 사전 계산에 의해 저장된 각각의 스케일링 레벨
Figure 112020068299819-pct00038
의 기본 파라미터 정보는 리디렉션 연산을 가속화할 수 있다.
단계 3으로서, 내장 메모리, 비디오 메모리 중 데이터의 큐 상황을 결정하기 위해 스케줄링 모듈에 의해 스케줄링 정책을 생성한다.
단계 4로서, 렌더링 모듈에 의해 상기 스케줄링 정책을 실행하고, 또한 실행 과정에서 상기 스케줄링 정책을 업데이트한다.
단계 5로서, 전체 이미지의 렌더링이 완료될 때까지 단계 3, 단계 4를 반복한다.
데이터의 처리는 많은 경우에 있어서 용량과 성능의 밸런싱이며, 내장 메모리 데이터 관리에 있어서, 이미지 매핑은 비디오 메모리 및 내장 메모리 디스크 사이에서 작동하는 최소 단위이다. 렌더러는 우선 슬라이스 데이터를 내장 메모리에 로딩하고, 이어서 이를 비디오 메모리에 업로드해야 하고, 그 다음으로 비디오 카드가 계산하여 최종적으로 원하는 결과를 렌더링할 수 있다. 스케줄링 모듈은, 스케줄링 정책에 있어서, 비디오 메모리 및 내장 메모리 디스크 사이에서 합리적이고 효과적인 데이터 스케줄링 동작을 수행하기 용이하도록, 비디오 메모리 비트 리스트, 액세스 큐, 업데이트 큐 및 예측 큐를 결정해야 한다.
비디오 메모리 비트 리스트: 비디오 메모리는 한 그룹의 사용 가능한 비디오 메모리 비트로 분할된다. 스케줄링 모듈은 이러한 비디오 메모리 비트 리스트가 각각의 비디오 메모리 비트에 구체적으로 저장되는 슬라이스 정보를 기록하도록 유지 및 보호한다. 상기 슬라이스 정보는 예를 들어, 슬라이스 번호, 비디오 메모리 비트가 비어 있는지 여부 및 렌더링될 필요가 있는지 여부를 포함한다.
액세스 큐: 액세스 큐는 비디오 메모리에 업로드된 모든 슬라이스의 액세스 히트를 추적하기 위한 반 배열 양방향 연결 리스트이다. 액세스 큐의 슬라이스 순서는 슬라이스가 최근에 액세스되었는지 여부를 나타내고, 큐의 끝에 배열된 슬라이스는 보다 낮은 액세스 히트(즉, 실제 액세스되지 않는 장시간 유휴 상태)를 구비한다.
업데이트 큐: 업데이트 큐는 현재의 렌더링 중 유실된 슬라이스를 추적하기 위한 양방향 연결 리스트이다. 슬라이스는 상이한 시기에 상이한 비디오 메모리 비트에 업로드되기 때문에, 각각의 시점이 렌더링될 경우, 일련의 적중 슬라이스는 일부가 이미 비디오 메모리에 저장되었을 수 있지만, 나머지 슬라이스는 비디오 메모리 데이터를 업데이트 하기 위해 스케줄러가 업로드 작업 실행을 고려해야 하여, 이들 슬라이스는 업데이트 큐에 저장된다. 비디오 메모리 비트 리스트 또는 액세스 큐와 같이 장기적으로 유지 및 보호되는 데이터와 달리, 업데이트 큐는 일회성이어서, 매번 포인트 샘플링을 수행하여 슬라이스를 백 프로젝션 계산하는 연산 주기 전에 항상 지워진다. 따라서, 업데이트 큐는 현재 즉시 스케줄링되는 슬라이스 정보를 항상 지시할 것이다. 강조해야 할 것은, 업데이트 큐는 슬라이스 데이터 자체가 아닌 슬라이스의 지시 정보만을 유지 및 보호하고 저장한다.
예측 큐: 예측 큐와 업데이트 큐는 유사한 데이터 구조와 의미를 갖는다. 유일한 구별점은, 예측 큐는 현재 렌더링이 필요한 슬라이스를 저장하지 않고, 일정한 예측 알고리즘에 의해 계산하여 얻어진다는 것이다. 예측 큐의 슬라이스는 업데이트 큐에 비해 우선 순위가 더 낮으므로, 업로드 태스크가 밀집될 경우, 예측 큐는 중단될 수 있으며, 그 중의 슬라이스가 최종적으로 비디오 메모리에 업로드되지 않을 수도 있다. 예측 큐의 설계는 동작이 밀집되지 않을 경우, 이 유휴 시기를 이용하여 계속하여 데이터 교환을 수행할 수 있도록 가능한 슬라이스 데이터를 미리 로딩하는 것이다.
렌더러는 스케줄링 모듈에 의해 결정된 비디오 메모리 비트 리스트, 액세스 큐, 업데이트 큐 및 예측 큐를 얻은 후, 로딩된 큐 정보에 따라, 렌더링 동작을 실행하며, 업데이트된 샘플링 포인트 좌표를 렌더링 모듈에 리턴하여 렌더링 모듈이 다음 번 주기의 연산을 시작하여 이미지 렌더링이 전부 완료될 때까지 다음 번 주기의 비디오 메모리 비트 리스트, 액세스 큐, 업데이트 큐 및 예측 큐를 얻도록 한다.
이상 본 발명의 비교적 바람직한 구체적인 실시예를 상세하게 설명하였다. 이해해야 할 것은, 본 분야의 통상의 기술에서는 발명적 노력 없이도 본 발명의 기술적 사상에 근거하여 다양한 수정 및 변화가 수행될 수 있다. 따라서, 본 기술분야의 기술자가 본 발명의 기술적 사상에 의거하여 종래 기술의 기초 상에서 논리적 분석, 추론 또는 유한한 실험을 통해 얻을 수 있는 기술적 해결수단은 청구범위에 의해 결정된 보호범위 내에 포함되어야 한다.

Claims (10)

  1. 기가급 픽셀 이미지의 실시간 렌더링 방법으로서,
    데이터 전처리 모듈을 통하여, 이미지에 대해 오프라인 데이터 재구성을 수행하고, 재구성된 데이터를 데이터 파일로 생성하는 단계 1;
    데이터 디코딩 모듈을 통하여, 상기 데이터 파일에 대해 데이터 디코딩 및 리디렉션을 수행하는 단계 2;
    스케쥴링 모듈을 통하여, 스케줄링 정책을 생성하여 내장 메모리, 비디오 메모리 내에서의 데이터의 큐잉(queuing) 상황을 결정하도록 하는 단계 3;
    렌더링 모듈을 통하여 상기 스케줄링 정책을 실행하고, 또한 실행 과정에서 상기 스케줄링 정책을 업데이트하는 단계 4;
    전체 이미지의 렌더링이 완료될 때까지 단계 3 및 단계 4를 반복하는 단계 5를 포함하고,
    단계 1에 있어서의 상기 데이터 재구성은 이미지 슬라이싱을 포함하되, 상기 이미지 슬라이싱은, 큰 이미지를 작은 부분으로 분할하여 소프트웨어 계층에서 보다 빠르게 로딩 및 렌더링되도록 하는 것이고,
    단계 3에 있어서 상기 스케줄링 정책은 액세스 큐, 업데이트 큐 및 예측 큐 중 적어도 하나를 유지 및 보호하는 것을 포함하고,
    상기 액세스 큐는 상기 비디오 메모리에 업로드된 모든 슬라이스의 액세스 히트를 추적하기 위한 반 배열 양방향 연결 리스트(half-sorted bidirectional linked list)이고,
    상기 업데이트 큐는 현재 렌더링 중에 유실된 슬라이스를 추적하기 위한 양방향 연결 리스트이며,
    상기 예측 큐는 예측 알고리즘을 사용하여 미리 로딩되어야 하는 슬라이스 데이터를 계산하고, 유휴 시기를 이용하여 데이터 교환을 수행하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  2. 제1항에 있어서,
    단계 1에 있어서의 상기 데이터 재구성은, 이미지 패딩(Image padding) 및 파일 구조 최적화 중 적어도 하나를 더 포함하되; 상기 이미지 패딩은, 전체 데이터 저장 이전에, 구체적인 데이터 파라미터를 추가하고, 또한 무효 점위(placeholder) 데이터를 사용하여 각각의 슬라이스의 내장 메모리 오프셋 위치가 4KiB의 정수배로 유지되도록 보장하는 것이며; 상기 파일 구조 최적화는, 내장 메모리 계층 구조에 기반한 파일 구조를 사용함으로써, 최적화를 통해 렌더링 비용을 크게 감소시키는 것임을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  3. 기가급 픽셀 이미지의 실시간 렌더링 방법으로서,
    데이터 전처리 모듈을 통하여, 이미지에 대해 오프라인 데이터 재구성을 수행하고, 재구성된 데이터를 데이터 파일로 생성하는 단계 1;
    데이터 디코딩 모듈을 통하여, 상기 데이터 파일에 대해 데이터 디코딩 및 리디렉션을 수행하는 단계 2;
    스케쥴링 모듈을 통하여, 스케줄링 정책을 생성하여 내장 메모리, 비디오 메모리 내에서의 데이터의 큐잉(queuing) 상황을 결정하도록 하는 단계 3;
    렌더링 모듈을 통하여 상기 스케줄링 정책을 실행하고, 또한 실행 과정에서 상기 스케줄링 정책을 업데이트하는 단계 4;
    전체 이미지의 렌더링이 완료될 때까지 단계 3 및 단계 4를 반복하는 단계 5를 포함하고,
    단계 1에 있어서의 상기 데이터 재구성은, 이미지 슬라이싱을 포함하되, 상기 이미지 슬라이싱은, 큰 이미지를 작은 부분으로 분할하여 소프트웨어 계층에서 보다 빠르게 로딩 및 렌더링되도록 하는 것이고,
    상기 이미지 슬라이싱의 구체적 방안은, 초기 규모의 데이터 이미지에 대하여 2배의 비율에 따라 축소를 수행하되, 각각의 스케일링 결과는 하나의 스케일링 레벨이고, 내장 메모리 대역폭에 가장 적합한 상기 스케일링 레벨을 선택하여, 이를 스케일링 레벨 0으로 정의하고, 각각의 상기 스케일링 레벨의 이미지를 모두 통일된 사이즈의 일련의 슬라이스로 쪼개는 것임을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  4. 기가급 픽셀 이미지의 실시간 렌더링 방법으로서,
    데이터 전처리 모듈을 통하여, 이미지에 대해 오프라인 데이터 재구성을 수행하고, 재구성된 데이터를 데이터 파일로 형성하는 단계 1;
    데이터 디코딩 모듈을 통하여, 상기 데이터 파일에 대해 데이터 디코딩 및 리디렉션을 수행하는 단계 2;
    스케쥴링 모듈을 통하여, 스케줄링 정책을 생성하여 내장 메모리, 비디오 메모리 내에서의 데이터의 큐잉(queuing) 상황을 결정하도록 하는 단계 3;
    렌더링 모듈을 통하여 상기 스케줄링 정책을 실행하고, 또한 실행 과정에서 상기 스케줄링 정책을 업데이트하는 단계 4;
    전체 이미지의 렌더링이 완료될 때까지 단계 3 및 단계 4를 반복하는 단계 5를 포함하고,
    단계 1에 있어서의 상기 데이터 재구성은, 이미지 슬라이싱을 포함하되, 상기 이미지 슬라이싱은, 큰 이미지를 작은 부분으로 분할하여 소프트웨어 계층에서 보다 빠르게 로딩 및 렌더링되도록 하는 것이고,
    단계 2에 있어서의 상기 데이터 디코딩 및 리디렉션은, 스케일링 레벨 리스트를 구축하는 것, 즉 임의의 상기 스케일링 레벨에서, 각각의 슬라이스 데이터의 초기 위치 오프셋을 미리 저장하고, 이에 따라 리디렉션 연산의 속도를 증가시키는 것을 포함하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  5. 제4항에 있어서,
    특정 상기 스케일링 레벨에서, 0번째 상기 슬라이스 데이터의 상기 초기 위치 오프셋은 하기 공식에 의해 계산하여 얻어질 수 있으며,
    Figure 112020068299819-pct00039

    여기서,
    Figure 112020068299819-pct00040
    은 스케일링 레벨
    Figure 112020068299819-pct00041
    에서의 0번째 슬라이스의 초기 위치 오프셋이고,
    Figure 112020068299819-pct00042
    은 스케일링 레벨이며,
    Figure 112020068299819-pct00043
    는 스케일링 계수인 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  6. 제5항에 있어서,
    특정 스케일링 레벨에서, t번째 슬라이스의 상기 초기 위치 오프셋은 하기 공식에 의해 계산하여 얻어질 수 있으며,
    Figure 112020068299819-pct00044

    여기서,
    Figure 112020068299819-pct00045
    은 스케일링 레벨
    Figure 112020068299819-pct00046
    에서의 t번째 슬라이스 데이터의 초기 위치이고,
    Figure 112020068299819-pct00047
    은 스케일링 레벨
    Figure 112020068299819-pct00048
    에서의 0번째 슬라이스의 초기 위치 오프셋이며, s는 전체 슬라이스 사이즈가 4KiB를 정렬한 후 차지하는 내장 메모리 공간인 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  7. 제1항에 있어서,
    단계 3에 있어서의 상기 스케줄링 정책은 비디오 메모리 비트 리스트를 유지 및 보호하는 것을 더 포함하되, 상기 비디오 메모리 비트 리스트는 비디오 메모리를 한 그룹의 사용 가능한 비디오 메모리 비트로 분할하여, 상기 비디오 메모리 비트에 구체적으로 저장되는 각각의 슬라이스 정보를 상기 비디오 메모리 비트 리스트 내에 기록하는 것이며, 상기 슬라이스 정보는 슬라이스 번호, 상기 비디오 메모리 비트가 비어 있는지 여부 및 상기 비디오 메모리 비트가 렌더링될 필요가 있는지 여부를 포함하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  8. 제1항에 있어서,
    단계 3에 있어서의 스케줄링 정책은 상기 액세스 큐를 유지 및 보호하는 것을 포함하되, 상기 액세스 큐의 슬라이스 순서는 상기 슬라이스가 최근에 액세스되었는지 여부를 나타내고, 큐의 끝에 배열된 슬라이스일수록 보다 낮은 액세스 히트, 즉 실제 액세스되지 않는 사전 설정된 시간 이상의 유휴 상태를 구비하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  9. 제1항에 있어서,
    단계 3에 있어서의 스케줄링 정책은 상기 업데이트 큐를 유지 및 보호하는 것을 포함하되, 상기 업데이트 큐는 현재 즉시 스케줄링되는 슬라이스의 정보를 항상 지시하며, 상기 업데이트 큐는 상기 슬라이스 데이터 자체가 아닌 상기 슬라이스의 지시 정보만을 유지 및 보호하고 저장하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
  10. 제1항에 있어서,
    단계 3에 있어서의 스케줄링 정책은 상기 예측 큐를 유지 및 보호하는 것을 포함하되, 상기 예측 큐는 현재 조작이 밀집되지 않을 경우, 예측 알고리즘을 사용하여 미리 로딩되어야 하는 상기 슬라이스 데이터를 계산하고, 유휴 시기를 이용하여 데이터 교환을 수행하는 것을 특징으로 하는, 기가급 픽셀 이미지의 실시간 렌더링 방법.
KR1020207019037A 2018-09-25 2019-09-23 기가급 픽셀 이미지의 실시간 렌더링 방법 KR102417685B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811117338.XA CN109493410B (zh) 2018-09-25 2018-09-25 一种千兆级像素图像的实时渲染方法
CN201811117338.X 2018-09-25
PCT/CN2019/107226 WO2020063516A1 (zh) 2018-09-25 2019-09-23 一种千兆级像素图像的实时渲染方法

Publications (2)

Publication Number Publication Date
KR20200096267A KR20200096267A (ko) 2020-08-11
KR102417685B1 true KR102417685B1 (ko) 2022-07-05

Family

ID=65689350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207019037A KR102417685B1 (ko) 2018-09-25 2019-09-23 기가급 픽셀 이미지의 실시간 렌더링 방법

Country Status (4)

Country Link
US (1) US11164358B2 (ko)
KR (1) KR102417685B1 (ko)
CN (1) CN109493410B (ko)
WO (1) WO2020063516A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109493410B (zh) * 2018-09-25 2023-05-16 叠境数字科技(上海)有限公司 一种千兆级像素图像的实时渲染方法
CN111161127B (zh) * 2019-12-19 2023-06-30 深圳海拓时代科技有限公司 图片资源渲染优化方法
CN112232390B (zh) * 2020-09-29 2024-03-01 北京临近空间飞行器系统工程研究所 一种高像素大图像的识别方法和系统
CN113129407B (zh) * 2021-03-15 2023-08-18 武汉联影智融医疗科技有限公司 生理波形图绘制方法、装置、计算机设备和可读存储介质
CN117689759B (zh) * 2024-02-02 2024-05-03 青岛中博瑞泰信息技术有限公司 一种用于图像渲染数据自适应存储方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678681A (zh) * 2015-12-30 2016-06-15 广东威创视讯科技股份有限公司 Gpu数据处理方法、gpu、pc架构处理器及gpu数据处理系统
CN106446351A (zh) * 2016-08-31 2017-02-22 郑州捷安高科股份有限公司 一种面向实时绘制的大规模场景组织与调度技术及仿真系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148333A (en) * 1998-05-13 2000-11-14 Mgi Software Corporation Method and system for server access control and tracking
HUP0105452A2 (hu) * 2001-12-22 2003-06-28 László Fekete Eljárás interaktív panorámaképek adatainak feldolgozására és megjelenítésére
CN100468461C (zh) * 2005-11-10 2009-03-11 北京航空航天大学 逼真三维地形几何模型的实时绘制方法
US7961983B2 (en) * 2007-07-18 2011-06-14 Microsoft Corporation Generating gigapixel images
US8731320B2 (en) * 2009-01-20 2014-05-20 Andre Leitao Image processing using a bilateral grid
CN102663119B (zh) * 2012-04-19 2014-06-11 北京天下图数据技术有限公司 一种渲染海量矢量数据的方法
AU2013273768A1 (en) * 2013-12-20 2015-07-09 Canon Kabushiki Kaisha Parallel rendering of region-based graphics representations
RU2606310C2 (ru) * 2015-01-23 2017-01-10 Общество С Ограниченной Ответственностью "Яндекс" Электронное устройство и способ для отрисовки панорамного изображения
DE202016107451U1 (de) * 2015-08-04 2017-02-27 Google Inc. Systeme zur interaktiven Darstellung eines sichtbaren Teils einer Rendering-Oberfläche auf einem Benutzergerät
US10244167B2 (en) * 2016-06-17 2019-03-26 Gopro, Inc. Apparatus and methods for image encoding using spatially weighted encoding quality parameters
US10565964B2 (en) * 2017-04-24 2020-02-18 Intel Corporation Display bandwidth reduction with multiple resolutions
CN109493410B (zh) * 2018-09-25 2023-05-16 叠境数字科技(上海)有限公司 一种千兆级像素图像的实时渲染方法
CN110062130B (zh) * 2019-03-14 2021-06-08 叠境数字科技(上海)有限公司 基于预处理文件结构的千兆级像素视频渲染方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678681A (zh) * 2015-12-30 2016-06-15 广东威创视讯科技股份有限公司 Gpu数据处理方法、gpu、pc架构处理器及gpu数据处理系统
CN106446351A (zh) * 2016-08-31 2017-02-22 郑州捷安高科股份有限公司 一种面向实时绘制的大规模场景组织与调度技术及仿真系统

Also Published As

Publication number Publication date
CN109493410B (zh) 2023-05-16
CN109493410A (zh) 2019-03-19
US20210090316A1 (en) 2021-03-25
WO2020063516A1 (zh) 2020-04-02
KR20200096267A (ko) 2020-08-11
US11164358B2 (en) 2021-11-02

Similar Documents

Publication Publication Date Title
KR102417685B1 (ko) 기가급 픽셀 이미지의 실시간 렌더링 방법
US10025879B2 (en) Tree data structures based on a plurality of local coordinate systems
JP4463948B2 (ja) グラフィック・データを処理するためのプログラム可能な視覚化装置
US9881391B2 (en) Procedurally defined texture maps
EP1081655A2 (en) System and method for rendering using ray tracing
Corrêa et al. iWalk: Interactive out-of-core rendering of large models
US10810784B1 (en) Techniques for preloading textures in rendering graphics
KR102480787B1 (ko) 순서에 관계 없는 캐시 리턴
CN113822788B (zh) 光线追踪硬件中对资源的早期释放
US11089320B2 (en) Adaptive pixel sampling order for temporally dense rendering
US7106336B1 (en) Method and system for deferred evaluation of transforms in graphics processors
WO2022041850A1 (en) Methods and apparatuses for coalescing function calls for ray-tracing
Xue et al. Efficient volume rendering methods for out-of-Core datasets by semi-adaptive partitioning
US8416242B1 (en) Method and system for interpolating level-of-detail in graphics processors
US8125498B2 (en) Generating a 3D volumetric mask from a closed surface mesh
Cozzi Visibility driven out-of-core HLOD rendering
US11822956B2 (en) Adaptive thread group dispatch
Meenrattanakorn et al. Expanding video memory through texture migration for out-of-core shading
Trapp et al. Geometry Batching using Texture-arrays.
KR100593401B1 (ko) 다중 해상도를 가지는 키 프레임 데이터 정렬 방법 및애니메이션 생성방법
Lundell Out-of-core multi-resolution volume rendering of large data sets
Jiang et al. Single-seek data layout for walkthrough applications
Frank et al. Dependency graph scheduling in a volumetric ray tracing architecture
CN117952816A (zh) 多视域图像生成装置和图形处理器
White Out-of-core data management for planetary terrain

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant