DOI QR코드

DOI QR Code

Real-Virtual Fusion Hologram Generation System using RGB-Depth Camera

RGB-Depth 카메라를 이용한 현실-가상 융합 홀로그램 생성 시스템

  • Song, Joongseok (Department of Computer Software, Hanyang University) ;
  • Park, Jungsik (Department of Computer Software, Hanyang University) ;
  • Park, Hanhoon (Department of Electronic Engineering, Pukyong National University) ;
  • Park, Jong-Il (Department of Computer Software, Hanyang University)
  • 송중석 (한양대학교 컴퓨터소프트웨어학과) ;
  • 박정식 (한양대학교 컴퓨터소프트웨어학과) ;
  • 박한훈 (부경대학교 전자공학과) ;
  • 박종일 (한양대학교 컴퓨터소프트웨어학과)
  • Received : 2014.08.04
  • Accepted : 2014.10.16
  • Published : 2014.11.30

Abstract

Generating of digital hologram of video contents with computer graphics(CG) requires natural fusion of 3D information between real and virtual. In this paper, we propose the system which can fuse real-virtual 3D information naturally and fast generate the digital hologram of fused results using multiple-GPUs based computer-generated-hologram(CGH) computing part. The system calculates camera projection matrix of RGB-Depth camera, and estimates the 3D information of virtual object. The 3D information of virtual object from projection matrix and real space are transmitted to Z buffer, which can fuse the 3D information, naturally. The fused result in Z buffer is transmitted to multiple-GPUs based CGH computing part. In this part, the digital hologram of fused result can be calculated fast. In experiment, the 3D information of virtual object from proposed system has the mean relative error(MRE) about 0.5138% in relation to real 3D information. In other words, it has the about 99% high-accuracy. In addition, we verify that proposed system can fast generate the digital hologram of fused result by using multiple GPUs based CGH calculation.

컴퓨터 그래픽스(CG)가 포함된 영상 컨텐츠를 홀로그램으로 만들기 위해서는 가상 객체와 현실 공간의 자연스러운 3차원 정보 융합이 필요하다. 본 논문에서는 RGB-Depth 카메라를 이용하여 현실-가상 공간의 3차원 정보를 자연스럽게 융합하고, 융합된 결과를 다중 GPU 기반의 컴퓨터 생성 홀로그램(CGH) 연산부를 사용하여 디지털 홀로그램을 고속 생성하는 시스템을 제안한다. RGB-Depth 카메라를 이용하여 카메라 투영 행렬을 계산하고, 이를 이용하여 가상 객체의 3차원 정보를 계산한다. 계산된 가상 객체의 깊이 정보와 RGB-Depth 카메라로 입력받은 현실 공간의 깊이 영상을 Z 버퍼에 입력하여 자연스럽게 융합한 후, 그 결과를 다중 GPU 기반의 CGH 연산부로 전송하여 고속으로 디지털 홀로그램을 생성한다. 실험 결과, 제안하는 시스템을 통해 만들어진 가상 객체의 3차원 정보는 현실 공간의 3차원 정보와 약 0.5138%의 평균 상대 오차를 나타내어, 약 99%의 정밀도를 갖고 있는 것을 확인할 수 있었고, 현실-가상 융합 깊이 영상을 생성함과 동시에 다중 GPU를 이용하여 고속으로 디지털 홀로그램을 생성할 수 있음을 확인할 수 있었다.

Keywords

Ⅰ. 서 론

최근 영화나 드라마와 같은 영상 콘텐츠의 품질이나 다양한 효과에 대한 시청자들의 기대감이 높아지면서 컴퓨터 그래픽스(CG: computer graphics)기술들이 크게 주목받고 있다[1-2]. 컴퓨터의 연산 처리 성능이 급속도로 발전함에 따라 고품질 CG 기술의 구현이 가능해지면서 현실과 CG를 구분할 수 없을 정도로 영상 콘텐츠의 품질이 크게 향상 되었다. CG를 이용하면 실제로 존재하지 않는 공간이나 인물을 마치 실제로 존재하는 것처럼 가상으로 만들어 낼 수 있다는 장점도 있다. 또한, 건물이나 거대 지형지물과 같은 고비용의 촬영 현장 세트를 직접 만들 필요가 없이 CG로 대체가 가능하다. 이러한 장점들로 인해 CG는 영상 콘텐츠 제작에서 중요한 요소로 자리 잡고 있다. CG 기술의 발전과 더불어 3D 디스플레이 기술도 점차 발달해가고 있다. 기존에 있는 대부분의 3D 디스플레이 기술은 양안 시차를 이용한 스테레오스코픽(stereoscopic) 기법을 기반으로 하고 있다. 이 기법은 3D 안경과 같은 부가적인 장비가 필요하고 장시간동안 시청할 경우 눈에 피로를 가중시킨다는 단점이 있다. 이러한 문제를 쉽게 해결할 수 있는 디스플레이 기술로서 홀로그래피가 서서히 주목받고 있다.

홀로그래피는 3D 정보를 기록할 수 있는 홀로그램을 생성 및 복원하는 기술로, 특별한 관찰 장비 없이 육안으로 관찰하는 것과 거의 동일하게 입체 영상을 제공할 수 있다[3]. 그러나 3D 디스플레이 기술로 사용하기 위해서는 몇 가지 문제점들을 극복해야하기 때문에 실질적으로 상용화를 하기에는 많은 어려움이 있다. 가장 큰 문제점으로는 고비용의 광학계 장치가 필요하다는 점이다. 이 장치는 주변의 광원들과 미세한 진동에 영향을 받을 수 있기 때문에 매우 안정적인 실험환경이 필요하다. 이러한 문제를 해결하기 위해, Brown과 Lohmann은 Computer-Generated Holography(CGH)기법을 제안되었다[4]. 이 기법은 기존의 광학계 장치와 광학 변수들을 수학적으로 모델링하여 일반 컴퓨터로도 홀로그램을 만들어 낼 수 있는 기법이다. 이러한 기법을 통해 만든 홀로그램을 일반적으로 디지털 홀로그램이라고 말한다. CGH 기법은 영상의 3D 정보(x, y, z)를 입력 데이터로 요구하기 때문에, CG 기술이 포함되어 있는 3D 영상 콘텐츠들을 디지털 홀로그램으로 만들기 위해서는 CG로 생성된 가상 공간이나 객체가 마치 실제로 존재하는 것과 같은 정확한 3D 정보를 갖고 있어야한다. 또한 실시간 홀로그램 방송 콘텐츠를 위해서는 가상 객체의 3D 정보 추출과 디지털 홀로그램의 실시간 생성 과정이 하나의 시스템 안에 포함되어야 한다.

본 논문에서는 RGB-Depth 카메라를 이용해 가상 객체와 실제 공간이 자연스럽게 융합된 3D 정보를 계산하고, 다중 GPU 기반의 고속 CGH 기법을 통해 융합된 3D 정보를 디지털 홀로그램으로 고속 생성하는 시스템을 제안한다.

 

Ⅱ. 현실-가상 융합 홀로그램 생성 시스템

가상 객체와 현실 공간이 융합되어 있는 영상 콘텐츠를 홀로그램으로 생성하기 위해 본 논문에서는 다음 그림 1과 같은 시스템을 제안한다. 본 시스템에서 사용자는 우선적으로 현실 공간에 마커를 위치시켜 가상 객체를 증강시킬 곳을 미리 지정해야 한다. 이것은 크로마키 기법에서 블루 스크린을 이용하여 가상 공간을 현실 공간과 합성하는 방식과 유사한 방법으로 본 시스템에서는 블루 스크린 대신에 마커를 사용한다. 마커의 위치 선정이 끝나면, RGB-Depth 카메라가 마커를 추적한다. 이를 통해 RGB-Depth 카메라의 투영 행렬을 생성할 수 있고 이 행렬을 이용하면 가상 객체의 깊이 정보를 계산할 수 있다. 추출된 가상 객체의 깊이 정보와 RGB-Depth 카메라로부터 입력받은 현실 공간의 깊이 정보를 Z 버퍼[5]에 입력하여 자연스럽게 융합 시킨다. 융합된 깊이 영상을 다중 GPU 기반의 CGH 연산부로 전송하여 실시간으로 디지털 홀로그램을 생성한다. 그림 2는 현실-가상 융합 홀로그램 생성 시스템의 전체 흐름도를 나타낸다.

그림 1.현실-가상 융합 홀로그램 생성 시스템 Fig. 1. Real-virtual fusion hologram generation system

그림 2.현실-가상 융합 홀로그램 생성 시스템 흐름도 Fig. 2. The flowchart of real-virtual fusion hologram generation system

1. 현실-가상 융합 홀로그램 생성 시스템

CG로 생성된 가상 객체와 현실 공간이 함께 공존하는 영상 콘텐츠를 디지털 홀로그램으로 만들기 위해서는 가상 객체와 현실 공간이 자연스럽게 융합되어 있는 형태의 3D 정보가 필요하다. 일반적으로 3D 정보는 깊이 정보를 의미한다. 영상 콘텐츠를 촬영할 때 카메라는 지속적으로 움직이므로 카메라의 이동에 따라 보여지는 가상 객체의 깊이 정보도 달라지게 된다. 만약 가상 객체와 카메라 간의 관계를 정의할 수 있는 카메라 투영 행렬을 알고 있으면 카메라가 회전 및 이동할 때마다 현실 공간에 맞는 깊이 정보를 가상 객체에 부여할 수 있다. 카메라 투영 행렬은 수식 1과 같이 내부 매개변수와 외부 매개변수로 구성되어 있다.

내부 매개변수는 초점거리 fx, fy와 렌즈의 중앙점 x0, y0, 그리고 왜곡 s 값으로 구성되어 있으며, 이 값들은 카메라 캘리브레이션을 통해 구할 수 있다[6]. 외부 매개변수는 카메라의 움직임을 나타내는 변수로 회전 행렬 R과 이동 행렬 t로 구성되어 있다. 일반적으로 외부 매개변수는 카메라 추적 기법을 사용하여 구할 수 있으며 본 시스템에서는 마커 기반 추적 기법을 사용하였다[7]. 카메라 추적 기법을 통해 추출한 카메라 투영 행렬을 증강하고자 하는 가상 객체에 적용하면, 가상 객체를 RGB-Depth 카메라의 좌표계로 투영할 수 있다. 이 과정을 통해 가상 객체는 RGB-Depth 카메라의 위치에 따라 깊이 정보가 자동으로 결정된다. 본 논문에서는 위의 과정을 OpenGL[12]과 ARToolkit 라이브러리[7]를 사용하여 수행하였다.

이 과정을 통해 추출된 가상 객체의 깊이 정보는 값의 범위가 0과 1 사이로 정규화가 되어 있다. 제안하는 시스템에서 사용하는 RGB-Depth 카메라를 통해 입력 받는 깊이 정보는 단위가 mm이기 때문에, 가상과 현실 공간의 깊이 정보를 자연스럽게 융합하기 위해서는 두 공간의 깊이 값의 단위를 하나의 형태로 통일 시켜야 한다. 제안하는 시스템은 두 공간의 깊이 정보를 자연스럽게 융합하기 위해 Z 버퍼를 사용하는데[5], 이를 위해서는 현실 공간의 단위인 mm를 0과 1사이로 정규화 하여 Z 버퍼로 전송해야 한다. 다음 수식 2 는 mm단위의 깊이 정보를 0부터 1 사이로 정규화 시켜주는 함수 f를 나타낸다.

ZF,ZN는 카메라로부터의 far 평면과 near 평면까지의 거리를 의미하고, d값은 RGB-Depth 카메라로부터 입력받는 현실 공간의 깊이 값을 의미한다. 일반적으로 Depth 카메라에 따라 신뢰할 수 있는 깊이 측정 거리가 다르다. 그 측정 거리의 범위를 far 평면과 near 평면으로 정의할 수 있다. 깊이 정보의 정밀도는 다음 그림 3와 같이 far 평면과 near 평면의 의해 결정되는데 일반적으로 카메라로부터 near 평면이 멀수록, far 평면이 가까울수록 깊이 정보의 정밀도가 높아진다. 따라서, far 평면과 near 평면 사이의 거리를 적정 범위내로 설정해야 높은 정밀도를 갖는 깊이 정보를 추정 할 수 있다.

그림 3.Near 평면과 Far 평면 Fig. 3. Near plane and Far plane.

함수 f를 통해 현실 공간의 깊이 정보를 0부터 1사이로 정규화 시킨 후, 가상 객체의 깊이 정보와 함께 Z 버퍼에 대입한다. Z 버퍼는 컴퓨터 그래픽스에서 3D 이미지의 좌표를 관리하기 위해 사용되는 버퍼이며, 카메라로부터 객체까지의 거리 정보를 담고 있다. 일반적으로 렌더링 작업 시 불필요한 연산을 생략하기 위해 사용된다. 다음 그림 4과 같이 다수의 객체가 있는 영상이 있을 때 앞 객체에 의해 가려지는 뒷 객체는 렌더링 시 다룰 필요가 없으므로 Z 버퍼에 의해 판정된 부분만 렌더링하면 불필요한 연산을 줄일 수 있다[8]. 가상 객체와 현실 공간의 깊이 정보들을 Z 버퍼에 입력하게 되면, 각각 갖고 있는 깊이값에 따라 가상공간 안에 자동적으로 배치되기 때문에 occlusion 문제들을 쉽게 다룰 수 있다. 자연스럽게 융합된 깊이 정보는 다음 수식 (3)을 통해 mm단위로 다시 깊이 범위를 복원할 수 있다.

그림 4.3D 객체와 Z 버퍼 Fig. 4. 3D object and Z buffer

2. 현실-가상 융합 홀로그램 생성

앞에서 말한 바와 같이, CGH 기법은 광학계 장치와 광학변수들을 수학적으로 모델링하여 일반 컴퓨터로도 홀로그램을 생성할 수 있는 방법이다. 다음 식 (4)는 CGH 연산을 나타낸다.

3D 객체의 깊이 정보를 광원으로 사용하며, 광원의 픽셀 좌표 x, y와 깊이 정보 z를 3D 정보로 사용한다. 홀로그램은 다음 그림 5와 같이 3D 객체의 각각의 광원에 대해 CGH 연산을 수행하여 각각 간섭 패턴들을 한 장씩 생성하고, 생성된 모든 간섭 패턴들을 한 장으로 누적하여 생성된다. CGH 기법은 광원의 수와 홀로그램의 해상도의 크기가 커질수록 연산량이 증가하기 때문에 실용적으로 사용하기 어렵다는 단점이 있다. 이러한 문제를 해결하기 위해 많은 방법들이 연구되고 있는데[9-10], 제안하는 시스템에서는 다수의 GPU를 사용하여 고속으로 CGH를 연산하는 기법을 사용하였다[10].

Fig. 5.Generation of digital hologram Fig. 5. Generation of digital hologram

표 1.CGH 광학계 파라미터 Table 1. CGH Optics Parameter

 

Ⅲ. 실험 및 결과

본 논문에서는 CG로 만든 가상 객체를 소형 도시 모델 위에 증강시키고 이를 RGB-Depth 카메라로 촬영함과 동시에 실시간으로 디지털 홀로그램으로 생성하는 방식으로 실험을 수행하였다. 실험을 위해 그림 6과 같이 RGB-Depth 카메라로 Kincet를 사용하였으며, 해상도는 640×480 이다. RGB-Depth 카메라의 깊이 정보 범위는 800mm에서 4000mm 이고, 이를 근거로 수식 (2)에서 카메라로부터 near 평면까지의 거리를 800mm, far 평면까지의 거리를 4000mm로 설정하고 실험하였다. 가상 객체를 증강시키기 위해 그림 6와 같은 마커를 사용하였다[7]. 카메라 캘리브레이션을 위해 100개의 체크보드 영상을 사용하였고, 카메라 투영 행렬을 추출하기 위해 ARToolkit 라이브러리와 마커 추적 기법을 사용하였다. 실험은 크게 가상 객체의 3D 정보의 정밀도에 대한 실험과 다중 GPU를 이용한 현실-가상 융합 홀로그램 생성 실험으로 나눌 수 있다.

그림 6.실험 환경 Fig. 6. Experimental environment

1. 가상 객체의 3차원 정보의 정밀도

본 실험에서는 카메라 투영 행렬로 만든 가상 객체의 깊이 정보가 실제로 얼마나 정밀한지 실험하였다. 실험을 위해 그림 6-(나)와 같이 한 변의 길이가 255mm 정육각형 모델과 실제 모델과 동일한 크기의 마커를 사용하였다. 가상 객체는 실제 모델과 동일하게 한 변의 길이가 255mm인 정육각형 모델을 증강시켰다. RGB-Depth 카메라로 실제 모델의 깊이 정보를 측정하고, 카메라 투영 행렬로 생성한 가상 모델의 깊이 정보를 측정하였다. 가상 객체의 깊이 정보 정밀도를 알아보기 위해 다음 수식 (5)를 이용하여 깊이 정보의 평균 상대 오차(mean relative error)를 측정하였다.

DR과 DV는 실제 모델과 가상 객체의 깊이 정보를 의미한다. 위 수식에서 N은 실험에 쓰인 RGB-Depth 카메라의 깊이 영상 프레임 수를 의미하고, 총 400 프레임 크기의 깊이 영상을 사용하였다. 실험에 쓰인 RGB-Depth 카메라의 깊이 정보가 매 프레임별로 미세하게 떨리는 현상이 있기 때문에 정확한 평가를 위해서 400개의 프레임에 대해 상대오차를 계산하여 이의 평균값으로 측정하는 방법으로 평가하였다. 상대 오차를 사용한 이유는 가상 객체의 깊이 정보와 실제 참값인 실제 모델의 깊이 정보와의 차이가 실제 참값에 비해 오차가 얼마나 발생하는지를 알 수 있기 때문이다. 그림 7-(가),(나)의 빨간 점선의 내부 영역에 대해서만 깊이 정보를 측정하였다.

그림 7.가상 객체와 실제 객체의 깊이 영상 비교 Fig. 7. The comparison of depth data between real and virtual object

측정 실험 결과, 가상 객체와 실제 모델간의 깊이 정보의 평균 상대 오차가 0.5138%가 나왔으며, 이는 카메라 투영 행렬로 생성한 가상 객체의 깊이 정보가 실제 현실 공간의 깊이 정보와 거의 동일하다는 것을 보여준다.

2. 융합 홀로그램 생성 실험

현실 공간과 가상 객체가 자연스럽게 융합되는 깊이 영상을 추출하기 위해, 그림 6-(가)와 같이 현실 공간에 배치될 도시 모형을 제작하였다. 다음 그림 8은 실험에 사용될 가상 객체 영상이다. 도시 모형위에 복수의 마커를 위치시키고 RGB-Depth 카메라로 컬러 영상과 깊이 영상을 입력 받는다. 컬러 영상에서 ARToolkit 라이브러리 기반의 마커 추적 기법을 통해 카메라 투영 행렬을 추출하고, 이를 이용해 가상 객체를 카메라 좌표계에 투영시킨다. 카메라 좌표계에 투영된 가상 객체의 깊이 정보와 RGB-Depth 카메라로 입력받은 현실 공간의 깊이 정보를 Z 버퍼에 전송하여 자연스럽게 융합한다. 다음 그림 9의 (가),(나)는 실험 모델에 대해 RGB-Depth 카메라로 입력받은 컬러 영상을 나타내고, 그림 10-(가),(나)는 가상 객체와 현실 공간의 깊이 정보를 Z 버퍼에서 자연스럽게 융합시킨 깊이 영상이다. 융합된 깊이 영상을 다중 GPU 기반의 고속 CGH 연산부로 전송하여 고속으로 홀로그램을 생성한다[10]. 실험에 사용된 깊이 영상의 크기는 200×200×8bit 이며, 홀로그램 해상도는 1,024×1,024pixel 이다. 참조파(λ)는 532nm, 복원거리는 1000mm, Pixel pitch(p)는 8um×8um로 초기값을 설정하였다. CGH 연산에 사용된 GPU는 GTX 680, 2개를 사용하였으며, CUDA 플랫폼을 기반으로 다중 GPU를 이용하는 CGH 연산 시스템을 구현하였다[10].

그림 8.가상 객체 Fig. 8. The virtual object

그림 9.현실 공간 영상 – 도시 모형과 마커 Fig. 9. Reality space image – city model and marker

그림 10.실험 결과 Fig. 10. Experimental results

다음 그림 10-(다),(라)는 가상과 현실 융합 깊이 영상을 CGH 연산을 통해 디지털 홀로그램으로 만든 영상이고, 그림 10-(마),(바)는 디지털 홀로그램을 복원한 영상이다. 그림 10-(마),(바)를 보면 복원 영상의 품질이 많이 떨어지는 것을 볼 수 있는데, 가장 큰 이유는 RGB-Depth 카메라의 깊이 영상의 품질이 좋지 않기 때문이다. 이를 개선하고자 본 시스템은 RGB-Depth 카메라로부터 입력받는 깊이 영상에 임펄스 잡음과 홀(hole)을 제거하고자 Joint bilateral filter를 사용하였다[11]. 그럼에도 불구하고 그림 10-(가),(나)를 보면 도시 모형 깊이 영상에서 건물의 경계선 쪽에 occlusion이 여전히 심하게 발생하는 것을 볼 수 있고 경계선 또한 매끄럽지 않은 것을 볼 수 있다. 또한, 융합 홀로그램의 깊이 값의 범위가 큰 것도 복원 영상의 품질에 영향을 끼칠 수 있다. 그림 11을 보면 복원거리에 따라 디지털 홀로그램의 복원 모습이 다른 것을 볼 수 있는데, 이것은 Fresnel transform 기반의 복원의 경우 특정 깊이 평면에 영상이 형성되는 특징 때문이다. 이외에, 광원의 개수와 디지털 홀로그램의 해상도 크기도 복원 영상의 품질에 영향을 끼칠 수 있다. 다음 그림 12을 보면, 디지털 홀로그램의 해상도가 커질수록 복원 영상의 품질이 개선되는 것을 볼 수 있다. 본 실험에서는 고속 CGH 연산의 부담을 덜기 위해서, 1,024×1,024 크기의 디지털 홀로그램 해상도와 최대 200×200개의 광원을 사용하였기 때문에 복원 품질이 다소 떨어진 것을 볼 수 있다. 다음 표 2는 광원 1000개에 대해 1,024×1,024 크기의 디지털 홀로그램을 생성하는데 걸리는 시간을 나타낸다. CPU만 사용했을 경우에 비해 다중 GPU를 사용했을 때가 약 11,710배 더 빠르게 디지털 홀로그램을 생성할 수 있는 것을 확인할 수 있었다.

그림 11.복원거리 별 디지털 홀로그램 복원 Fig. 11. The reconstruction of digital hologram with various reconstruction distance

그림 12.디지털 홀로그램의 해상도와 복원 품질 Fig. 12. The resolution of digital hologram and quality of reconstruction

표 2.CGH 연산 시간 Table 2. CGH computational time

 

Ⅳ. 결 론

본 논문에서는 RGB-Depth 카메라를 이용하여 가상 객체와 현실 공간의 자연스러운 융합 홀로그램을 생성하는 시스템을 제안한다. 실험 결과, 제안하는 시스템을 통해 만든 가상 객체의 3차원 정보는 현실 공간의 3차원 정보와 평균 상대 오차가 약 0.5138%로 약 99%의 정밀도를 갖고 있는 것을 확인할 수 있었고, 현실-가상 융합 깊이 영상을 생성함과 동시에 다중 GPU를 이용하여 고속으로 디지털 홀로그램을 생성할 수 있음을 확인 할 수 있었다. 향후, 고속 CGH 연산을 위한 알고리즘 및 시스템 개발과 고품질 디지털 홀로그램에 대한 연구를 지속할 계획이다.

References

  1. Debevec, Paul E., Camillo J. Taylor, and Jitendra Malik. "Modeling and rendering architecture from photographs: A hybrid geometry-and image-based approach." Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ACM, 1996.
  2. Debevec, Paul. "Rendering synthetic objects into real scenes: Bridging traditional and image-based graphics with global illumination and high dynamic range photography." ACM SIGGRAPH 2008 classes. ACM, 2008.
  3. Gabor, Dennis. "Theory of communication. Part 1: The analysis of information." Journal of the Institution of Electrical Engineers-Part III: Radio and Communication Engineering 93.26 (1946): 429-441. https://doi.org/10.1049/ji-3-2.1946.0074
  4. Brown, Bryon R., and Adolf W. Lohmann. "Complex spatial filtering with binary masks." Applied Optics 5.6 (1966): 967-969. https://doi.org/10.1364/AO.5.000967
  5. Foley, James D., et al. "Computer Graphics Principles and Practice, Assison-Wesley." , pp 668, Massachusetts (1996).
  6. Zhang, Zhengyou. "A flexible new technique for camera calibration." Pattern Analysis and Machine Intelligence, IEEE Transactions on 22.11 (2000): 1330-1334.
  7. Kato, Hirokazu, and Mark Billinghurst. "Marker tracking and hmd calibration for a video-based augmented reality conferencing system." Augmented Reality, 1999.(IWAR'99) Proceedings. 2nd IEEE and ACM International Workshop on. IEEE, 1999.
  8. www.felixgers.de/teaching/jogl/depthbufferALgo.html
  9. Lucente, Mark E. "Interactive computation of holograms using a look-up table." Journal of Electronic Imaging 2.1 (1993): 28-34. https://doi.org/10.1117/12.133376
  10. Song, Joongseok, et al. "Real-time generation of high-definition resolution digital holograms by using multiple graphic processing units." Optical Engineering 52.1 (2013): 015803-015803. https://doi.org/10.1117/1.OE.52.1.015803
  11. Kopf, Johannes, et al. "Joint bilateral upsampling." ACM Transactions on Graphics (TOG). Vol. 26. No. 3. ACM, 2007.
  12. OpenGL reference pages : https://www.opengl.org/sdk/docs/man/