This paper presents a mobile 3D display processor with a subdivider, which can visualize smooth rendering effects on a mobile 3D display. Today mobile devices support high visual quality similar to desktop PCs. To support true-realism on handhelds, this work supports both the 3D display and the modern 3D graphics technique such as a subdivision function within mobile restrictions. In order to run 3D display contents with subdivision surfaces on mobile environment, we must solve two problems. The one is the frame rate of 3D display processing, and the other is the insufficient bandwidth of mobile devices.
To enjoy interactive 3D display contents in real-time, system must support high frame rate more than 60fps. In 3D display process, the main performance bottleneck is division operation. I develop a fast modulus operator and transform a depth-to-disparity converting equation from a division to a multiplication, which completely eliminate division operations during 3D display process. As a result, the processor increases 3D image synthesis rate up to 116fps which is 17 times faster than a previous mobile 3D display platform.
Handhelds have a quite limited memory architecture compared with desktop PCs. In mobile devices, many multimedia IPs share the same memory and bus with a limited bit-width. This memory architecture significantly under-utilizes the high computing power of modern multi-media processors such as GPUs, so bandwidth becomes a main performance bottleneck. This research focuses on saving bandwidth requirement, which translates into significant improvement in terms of off-chip memory access latency and energy. In order to reduce the bandwidth, this work basically minimizes the working set of subdivision process and 3D display process.
The proposed subdivider is running based on depth-first scheme. The subdivider fetches a single target face and its one-ring neighborhood information from a base mesh and then subdivides the target face until its subdivided meshes satisfy programmed refinement criteria. By utilizing data coherence during the depth-first subdivision in a small on-chip memory, this work drastically reduces the number of off-chip memory access. Also, to avoid the complicated and expensive maintenance of the output meshes, I use a re-computing scheme that is different from re-loading scheme widely used in prior methods. The subdivider further reduces the bandwidth requirement by using a compact edge-less data structure that is optimized to the depth-first algorithm. I found that providing a subdivision level of up to 3 strikes a good balance between the on-chip memory size and subdivision quality in handhelds. Owing to the small on-chip memory and simple subdivision algorithm, the proposed method can be implemented in a small chip area with a low bandwidth requirement, which is less than 1% of previous work.
In 3D display process, proposed view interpolation process fixes memory bandwidth regardless of how many view-images are required. Typically, 3D display process stores lots of intermediate images. Since the size of the intermediates is too large to be stored in on-chip memory, the intermediates should be stored in off-chip memory, resulting in huge bandwidth requirement. In this research, I change the operation sequence of 3D display process, which makes the intermediates not to be stored in storage. As a result, I reduce the bandwidth requirement for 3D display process by 70% compared with typical method.
This work increases the synthesis rate of 3D display process and reduces bandwidth requirement to be affordable in commercial portable bus. It, in turn, contributes to enjoy true-realism on mobile environment in real-time.
최근 스마트폰과 같은 handheld device는 GPU를 CPU와 별도로 집적하고 최신 mobile 3D graphics API를 지원함으로써 desktop PC와 같은 현란한 효과를 느낄 수 있게 해주었다. 하지만 handheld device는 물리적인 한계 (core size, power consumption) 때문에 desktop PC와는 다른 memory architecture를 갖고 있다. 여러 개의 IP가 하나의 버스와 하나의 메모리를 공통으로 사용하고 있으며, 버스와 메모리의 폭도 16bits나 32bits로 제한되어 있다. 이와 같은 구조로 인해 메모리 연산이 많은 멀티미디어 어플리케이션은, 버스의 대역폭에 제한을 받아 GPU나 CPU의 코어의 성능을 충분히 활용하지 못하고 있다.
본 연구에서는 모바일 환경에서도 desktop PC와 같은 reality를 제공하기 위해 최신 3D graphics API의 주요 특징인 subdivision surface를 지원하며 사용자에게 생동감을 전달해주기 위해 3D display를 지원할 수 있는 프로세서를 개발하였다.
Subdivision은 입력으로 들어온 mesh를 일정한 규칙에 의해 반복적으로 쪼개줌으로써 부드러운 곡면을 만드는 기술이다. 기존에 subdivision을 GPU에서 구현했던 경우는 모두 desktop PC를 겨냥하여 개발되었으며, GPU의 parallel architecture에 초점을 맞추어 mesh 전체에 대해 반복적으로 subdivision을 수행하는 breadth-first 기법을 활용하였다. 하지만 이와 같은 breadth-first 기법은 mobile memory architecture에서는 off-chip memory access를 빈번하게 유발시키며, 이는 off-chip memory access 과정에서의 energy와 latency를 동시에 증가시키는 단점을 내포하고 있다. 본 연구에서는 subdivision을 depth-first 방식으로 수행하였는데, 이는 target face와 그 주변 neighboring faces의 정보만을 요구하기 때문에 working set의 크기가 breadth-first 방식에 비해 현저히 작다. 따라서 모든 intermediate data를 on-chip memory에 저장할 수 있고, 이를 통해 subdivision process 중간에서의 off-chip memory access를 완벽히 제거하였다. Target face가 완벽히 subdivision이 끝난 후에는, target face의 sub-faces 뿐만 아니라 neighboring face의 sub-face도 동시에 생성되는데, target face의 sub-face만 vertex shader로 보내고 neighboring face의 sub-face는 모두 제거하였다. 이 방식을 re-computing 방식이라 부르며, neighboring face의 sub-face를 off-chip memory에 저장하여 재활용하는 방식보다 latency 측면에서 더 큰 이득을 가져온다. 더불어 edge-less data structure를 개발하여 사용하는 data의 종류를 줄임으로써 마찬가지로 bandwidth를 줄이는 효과를 얻었다. 이와 같은 아이디어를 집적하여 subdivider를 구현한 결과 최신의 subdivision implementation 결과의 1%도 안되는 bandwidth만을 소모하며, 이는 off-chip memory access energy 와 latency에서 100:1의 감소를 유발하였다.
Handheld device에서 사용하는 3D display는 안경을 착용하지 않는 auto-stereoscopic 3D display여야 한다. Auto-stereoscopic 3D display에 맞는 3D image를 생성하기 위해, 기존의 3D display process에서는 여러 장의 이미지를 순차적으로 생성했는데 매 이미지를 만들 때마다 source data를 중복적으로 읽어 들임으로써 bandwidth 소모량을 증가시켰다. 본 연구에서는 이미지를 순차적으로 만들지 않고 interleaving order 방식으로 이미지를 번갈아 가며 생성함으로써 source data를 단 한번만 읽는 형태로 변환하였다. 이를 통해 bandwidth를 기존 방식에 비해 73%만큼 줄였다. 기존의 방식은 1094Mbytes/s의 bandwidth를 소모하였는데, 최신의 portable bus가 625Mbytes/s를 지원한다는 점을 고려했을 때, bus congestion을 일으킬 수 있는 수치이다. 제안한 방식은 292Mbytes/s의 bandwidth만을 소모한다. 이와 같은 bandwidth saving 효과는 제안한 subdivision 방식과 마찬가지로 off-chip memory access latency 및 energy를 73%만큼 줄여주는 효과가 있다.
이와 같이 subdivision technique과 3D display process에서 bandwidth를 줄임으로써, 본 연구에서 개발한 칩은 commercial portable bus에서도 충분히 사용될 수 있는 bandwidth performance를 갖게 되었다.
더불어 본 연구에서는 3D display의 synthesis rate를 증가시켰다. 3D display process 연산은 필연적으로 division 연산을 포함하고 있는데, 일반적으로 divider는 다른 연산기에 비해 2배 이상의 latency를 소모하며 이로 인해 division 연산 부분이 전체 pipeline에서 bottleneck이 된다. 이 때문에 bus에서 bandwidth 문제가 해결된다고 하더라도 frame rate가 증가하지 않는 문제가 있다. 이 문제를 해결하기 위하여 두 종류의 division-free datapath를 개발하였다. 3D display image processing 과정에서는 depth 값을 disparity로 변환해주는 연산과, 여러 장의 이미지를 합성하는 과정에서 나머지를 구하는 연산을 필요로 한다. 이 두 가지 연산이 division 연산을 포함함으로 인해 각각 14.5ns와 11.1ns의 latency를 소모하는데 다른 datapath가 6.5ns 이하의 latency를 갖는다는 점을 고려하면, 이 부분이 bottleneck이 되어 전체 frame rate를 낮춘다는 것을 알 수 있다. 본 연구에서는 depth를 disparity로 변환하는 부분은 수학적으로 변환 공간을 eye space에서 screen space로 변환시켜줌으로써 latency를 14.5ns $\rightarrow$ 2.8ns로 81%만큼 줄였으며, 나머지 연산을 구하는 과정은 dedicated fast modulus operator를 개발함으로써 11.1ns→3.3ns로 latency를 70%만큼 감소시켰다. 그 결과 최대 frame rate를 116fps로 증가시켰는데, 이 값은 최신의 3D game도 충분히 real-time으로 동작시킬 수 있는 수치이다.
앞서 제안한 아이디어를 기반으로 3D display processor를 동부하이텍 0.13$\mu$m CMOS 공정을 이용하여 칩으로 구현하였으며 4.5$\times$4.5$mm^2$하에 965Kgate counts만큼 집적하였다. 제안한 프로세서는 commercial portable bus에서 최대 116fps만큼의 성능을 낼 수 있으며 140mW의 파워를 소모한다.