본 논문은 한국방송공학회 논문지 투고본입니다. 1. 제목 (국문) x264와 GPU를 이용한 실시간 양안식 3차원 방송 시스템 (영문) Real-time Stereoscopic 3D Broadcasting System using x264 and GPU 2. 연구 분야 3차원 방송 시스템 3. 저자 1) 최정아(Jung-Ah Choi) (500-712) 광주광역시 북구 오룡동 1번지 광주과학기술원 정보통신공학과 Tel. 062-715-2263 Fax. 062-715-3164 e-mail : jachoi@gist.ac.kr 2) 신인용(In-Yong Shin) (500-712) 광주광역시 북구 오룡동 1번지 광주과학기술원 정보통신공학과 Tel. 062-715-2258 Fax. 062-715-3164 e-mail : siy0808@gist.ac.kr 3) 호요성(Yo-Sung Ho) (500-712) 광주광역시 북구 오룡동 1번지 광주과학기술원 정보통신공학과 Tel. 062-715-2211 Fax. 062-715-3164 e-mail : hoyo@gist.ac.kr
x264와 GPU를 이용한 실시간 양안식 3차원 방송 시스템 Real-time Stereoscopic 3D Broadcasting System using x264 and GPU 요 약 사용자에게 보다 실감나는 입체감을 제공하는 양안식 3차원 영상을 위해서는 기존 2차원 영상의 두 배에 해당하는 데이터가 필요하 므로 이를 실시간으로 처리하는데 어려움이 따른다. 본 논문에서는 2차원 영상과 깊이 영상을 입력 영상으로 한 실시간 양안식 3차원 방송 시스템을 제안한다. 제안하는 시스템은 전송해야 할 데이터의 양을 줄이기 위해 전송 전에 H.264/AVC 오픈 소스 고속 부호화기 인 x264를 이용하여 부호화를 수행한다. 수신 단에서는 수신한 비트스트림을 그래픽처리 연산장치(GPU)에 내장된 CUDA 비디오 복호 기 API를 이용해 설계된 복호기로 실시간으로 복호하고, GPU를 이용해 고속으로 가상 시점의 영상을 생성하여 양안식 3차원 영상을 재현한다. 제안한 시스템을 이용하면 수신단의 환경에 따라 2차원 디스플레이와 3차원 디스플레이에서 모두 영상을 출력할 수 있다. 컴퓨터 모의 실험을 통해 제안한 시스템이 3차원 양안식 콘텐츠를 초당 15프레임 이상의 속도로 서비스할 수 있음을 확인했다. Abstract Since the stereoscopic 3-dimensional(3D) video that provides users with a realistic multimedia service requires twice as much data as 2-dimensional(2D) video, it is difficult to deal with the data in real-time. In this paper, we propose a real-time stereoscopic 3D broadcasting system based on the depth information. Before the transmission, we encode the input 2D+depth video using x264, an open source H.264/AVC fast encoder to reduce the size of the data. At the receiver, we decode the transmitted bitstream in real time using a compute unified device architecture (CUDA) video decoder API on NVIDIA graphics processing unit (GPU). Then, we apply a fast view synthesis method that generates the virtual view using GPU. The proposed system can display the output video in both 2DTV and 3DTV. From the experiment, we verified that the proposed system can service the stereoscopic 3D contents in real-time. Key Words: real-time 3D broadcasting system, fast view synthesis, x264, GPU I. 서 론 최근 방송과 통신을 위한 정보처리 기술이 빠르게 발전함에 따라 차세대 방송서비스에 대한 관심이 높 아지고 있다. 3차원 영상은 기존의 2차원 영상과는 달리 현실에서 보고 느끼는 것과 흡사한 입체감과 몰입 감을 주는 새로운 개념의 영상으로, 차세대 영상 문화를 주도할 것으로 기대된다. 3차원 영상 기술은 3차원 TV를 비롯한 정보통신, 방송, 게임, 애니메이션, 군사, 의료 등 기존의 미디어 산업 부문에 응용되어 멀티미디어의 질을 크게 높이고 고부가가치를 창출할 것으로 기대된다. 또한 컬러 TV가 흑백 TV보다 더 많은 정보를 제공하듯이 부피감이라는 추가적인 정보를 제공함으로써 광고, 홈쇼핑 등의 상업적 영역뿐만 아니라 의료, 탐사 등의 다양한 분야에서 폭넓게 활용될 것으로 예상된다. 최근 다양 한 연구 기관 및 표준화 기관에서도 3차원 영상을 차세대 고부가 가치를 지닌 핵심 기술로 인식하고 활발 한 연구를 진행하고 있다. 기존의 2차원 영상과 차별되는 보다 실감나는 3차원 입체 영상을 제공하기 위해 양얀식 비디오 (stereoscpic video), 홀로그래피(holography), 다시점 비디오(multi-view video)와 같은 새로운 영상 처리 기술이 연구되고 있다 [1]. 그 중에서도 두 개의 2차원 화면을 이용하여 확장된 3차원 입체 장면을 제공하 는 양안식 비디오 기술은 가장 기본적인 입체 영상 제공 방법으로, 동일한 3차원 장면을 두 대 이상의 카 메라로 획득하여 보다 입체감 있는 화면을 제공한다. 3차원 비디오 콘텐츠는 사용자들에게 자유로운 시점 및 넓은 화면을 통한 입체감을 제공한다는 장점을 지니고 있지만, 이와 더불어 처리해야 할 데이터의 양이 많다는 문제점이 있다. 또한, 3차원 비디오의 데이 터의 양을 효율적으로 압축하기 위해서는 복잡한 알고리즘들을 사용해야 하는데, 이로 인해 복호기의 복잡 도 역시 증가하여 초당 15 프레임 이상의 실시간 시스템을 구성하는데 어려움이 따른다. 본 논문에서는 2차원 색상 영상과 깊이 정보로 구성된 2D+깊이 영상의 3차원 콘텐츠를 고속으로 부호 화 및 복호화할 수 있는 3차원 코덱이 탑재된 실시간 양안식 3차원 방송 시스템을 개발하였다. 3차원 코덱
은 크게 2D+깊이 영상 부호기, 2D+깊이 영상 복호기, 3차원 렌더링 부분으로 구성된다. 실시간 처리를 위 해 2D+깊이 영상 부호기로는 H.264/AVC 표준을 따르는 고속 부호기인 x264를 사용하고 2D+깊이 영상 복 호기로는 CUDA 비디오 API를 이용해 설계된 복호기를 사용한다. 2D+깊이 영상에 대한 복호가 끝나면 그 래픽 처리 연산 장치 (GPU)를 이용해 고속으로 양안식 3차원 렌더링을 수행해 양안식 3차원 비디오 콘텐 츠를 재현한다. 본 논문의 구성은 다음과 같다. 2장에서는 양안식 3차원 영상 및 이를 위한 2D+깊이 영상 포맷에 대해 소개하고, 3장에서 제안한 실시간 3차원 방송 시스템의 각 부분을 설명한 후, 제안한 시스템의 구성을 보여 준다. 4장에서 제안한 시스템의 성능을 보인 후, 5장에서 결론을 맺는다. II. 깊이 영상 기반 양안식 3차원 영상 1. 양안식 3차원 영상 양안식 영상이란 그림 1과 같이 공간상의 한 점을 두 시점에서 촬영한 영상들을 의미한다. 양안식 3차 원 영상 기술이란 두 눈과 스테레오스코픽 비전 기술을 적용하여 2차원 영상에 부가적으로 얻을 수 있는 정보를 창출하고, 이 정보로 인하여 인간이 마치 영상이 제작되고 있는 장소에 있는 것 같은 생동감과 현 실감을 느낄 수 있게 하는 기술이다. 스테레오 비전 기술은 두 개의 2차원 영상을 3차원으로 재구성하는 작업이라고 할 수 있다. 즉, 인간이 사물의 깊이를 인식할 때 양안의 시각차를 이용하는 점을 고려하여 3차 원 모델을 생성하는 방법이다. 입체 영상의 재현 입력 양안식 영상 그림 1. 양안식 3차원 디스플레이 양안식 3차원 영상은 두 대의 카메라에서 두 개의 영상을 획득하므로 기존 2차원 영상의 두 배에 해당 하는 정보를 전송해야 하는 문제점이 있다. 이러한 문제점은 단일 시점의 색상 영상과 이에 대응하는 깊이 영상을 이용하여 스테레오 영상 및 다시점 영상의 생성이 가능한 2D+깊이 영상 포맷을 사용해 해결할 수 있다 [2]. 깊이 영상은 색상 영상에 비해 단순하여 부호화 후의 데이터의 양이 적기 때문이다. 2. 2D+깊이 영상 포맷 하나의 색상 영상과 깊이 영상으로 3차원 영상을 재현하기 위해서는 가상 시점 영상을 추가로 합성해야 한다. 단순히 각 화소의 변이를 계산하고 이를 통해 화소를 이동시켜 가상 시점의 영상을 합성하는 방법도 있지만, 카메라 위치와 특성에 기반하여 정확한 합성 영상을 얻기 위해서는 영상 기반 렌더링 방법 중의 하나인 3차원 워핑 기술이 필요하다. McMillan이 제안한 3차원 워핑 기술은 그림 2와 같이 카메라 특성과 위치, 깊이 정보 등을 이용하여 원본 영상을 3차원 전역 좌표계로 이동시킨 뒤, 이를 다시 가상 시점의 영 상 면으로 투영하는 방식이다 [3]. 전역 좌표계와 카메라 좌표계는 초점거리, 화소의 크기, 카메라의 위치 등을 나타내는 물리적인 매개변 수로 그 관계를 기술할 수 있다. 이를 카메라 매개변수라 하는데 카메라 좌표계와 이상적인 좌표계간의 관 계를 나타내는 내부 변수와 카메라 좌표계와 고정된 전역 좌표계간의 관계를 나타내는 외부 변수로가 있 다. 전역 좌표계의 한 점 X가 한 카메라를 통해 투영된 점을 x라고 하면, 이 두 점간의 관계식은 식 (1)과 같다.
(1) 여기서 x와 X는 영상 면과 전역 좌표계의 화소의 위치를 동차 행렬 형식으로 변환한 벡터이고, 행렬 A 는 전역 좌표계와 카메라 좌표계의 초점 거리, 화소의 크기, 카메라의 위치 등을 나타내는 물리적인 매개변 수인 카메라의 내부 변수를, 행렬 R은 카메라의 방향을, 행렬 t는 카메라의 위치를 의미한다. 식 (1)을 이용 하여 참조 영상의 한 화소를 깊이값 d u,v를 이용하여 전역 좌표계로 환원할 수 있는데 그 관계식은 식 (2) 와 같다. (2) 여기서 아래첨자 r은 참조 영상을 의미하고 (u,v,1)은 참조 영상 화소의 동차 좌표를, (x,y,z)는 전역 좌 표계에서의 위치를 의미한다. 이렇게 전역 좌표계로 이동된 점은 식 (3)을 이용해 가상 시점의 영상 면으로 투영되게 된다. (3) 여기서 아래 첨자 v는 가상 시점을 의미하고, 실제 영상면에서의 좌표는 (l/ n, m/ n)이 된다. 참조 영상 의 모든 화소를 가상 시점으로 재배치하면 최종 가상 시점 영상을 얻을 수 있다. 이렇게 생성된 영상에는 시점 이동에서 기인한 폐색, 비폐색 영역의 빈 공간외에 화소 위치의 계산시 발생하는 정수화 오차로 인한 빈 공간이 발생한다. 이를 제거하기 위해 일반적으로 원본 색상 영상을 직접 가상 시점으로 투영하는 대신, 깊이 영상을 가상시점으로 투영한 뒤, 필터링을 통해 빈 공간을 채우고 실제 색상 값을 호출하는 방법을 사용한다. 원영상 가상시점 영상 그림 2. 가상시점 영상 합성 방법 2D+깊이 영상을 이용하면 전송단의 데이터의 양을 줄일 수 있기 때문에 기존의 네트워크 환경과 호환 성이 있다는 장점이 있지만, 수신단에서 가상 시점을 합성해야 하므로 복호기 부분의 부담이 커진다는 단 점이 있다. 병렬 처리를 이용함으로써 고속화를 가능하게 하는 GPU를 이용해 복호기의 처리 속도를 개선 함으로써 이러한 문제를 해결할 수 있다. III. 실시간 양안식 3차원 방송 시스템 기존의 3차원 방송 시스템은 처리해야 할 데이터의 양이 방대해서 실시간 시스템 구현이 어렵다. 하지 만 다양한 응용 분야에 있어서 실시간 시스템은 꼭 필요하다. 이번 장에서는 먼저 실시간 시스템을 위해 설계된 시스템의 각 부분에 대해서 설명한 후, 제안하는 시스템의 구성을 보인다. 제안하는 시스템은 크게 2D+깊이 영상의 부호화 및 전송 부분, 수신 및 2D+깊이 영상 복호화 부분, 3차원 영상 재현 부분으로 구성 된다.
1. 2D+깊이 영상의 부호화 및 전송 제안하는 시스템은 보내야 할 데이터를 줄이기 위해 전송 전에 입력 영상을 압축한다. 현존하는 비디오 부호화 표준 중 가장 높은 성능을 보이는 H.264/AVC 참조 소프트웨어 JM(Joint Model)은 고속 부호화 목 적이 아닌 성능 개선을 목적으로 개발되었으므로 부호화 속도가 느려 고속 부호화에 적합하지 않다. 따라 서 제안하는 시스템에서는 H.264/AVC 표준을 따르는 고속 부호화기인 x264 비디오 코덱을 사용한다 [4]. x264 비디오 코덱은 VideoLAN의 프로젝트의 일환으로 만들어졌고 복호 기능은 포함하고 있지 않다. SIMD (MMX, SSE, SSE2, SSE3 등) 환경에서 최적화되어 고속 부호화에 적합하며 오픈 소스이므로 라이 선스 제약이 없다. 그림 3은 x264와 JM 15.1[5]의 속도를 비교한 결과이다. 성능 비교는 Intel Core2 Quad CPU @ 2.40 GHz 2.00GB RAM에서 수행하였다. 실험 결과에서 볼 수 있듯이 x264는 JM과 거의 비슷한 화질을 보이면 서 부호화 속도는 약 50배 이상 빠르다. 그림 4에서 보듯이, x264는 비트율 관점에서 38 db 이상의 화질에 서는 JM보다 적은 비트율을, 그 이하의 화질에서는 JM보다 많은 비트율을 가진다. 하지만 비트율이 증가 하더라도 빠른 처리 속도에 비해 비트율의 증가량이 5% 이내로 무시할만한 수준이므로 실시간 시스템을 위해서는 x264를 사용하는 것이 합리적이다. x264의 입력 영상은 좌측 색상 영상과 그 깊이 영상이다. 수신 단에서 동일한 프레임의 두 영상을 통해 우측 색상 영상을 합성해야 하므로 동기화를 위해 동일한 프레임의 두 영상을 상하로 배치하여 한 번에 전 송한다. 두 영상을 좌우가 아닌 상하로 배치한 것은 슬라이스 부호화로의 확장성을 대비한 것이다. 불행히 도 현재 배포된 x264는 H.264/AVC 표준의 슬라이스 코딩을 지원하지 않고 있다. 하지만 슬라이스 코딩의 응용성을 생각했을 때 차후 배포될 부호화기에는 이러한 기능이 구현될 가능성이 높다. 제안하는 시스템은 부호화에서 3차원 콘텐츠의 재현에 이르기까지 실시간 처리가 가능해야 하므로 x264 에서 한 프레임에 해당하는 데이터가 부호화되면 해당 비트스트림을 바로 전송한다. 그림 3. JM과 x264의 속도 비교 그림 4. JM과 x264의 비트율 비교 2. 수신 및 2D+깊이 영상 복호화 전송 단으로부터 데이터가 시간상으로 균일하게 전송되지 않기 때문에 유연한 작동을 위해 버퍼를 두어 복호할 데이터가 항상 존재하도록 하였다. 버퍼의 형태는 Queue의 구조를 이루고 GOP (Group Of Pictures) 별로 묶어 저장이 된다. 제안하는 시스템에서의 한 GOP의 크기는 30 프레임을 사용하였다.
한 장의 영상은 적어도 하나의 데이터 패킷으로 구성되기 때문에 실시간 시스템을 위해서는 데이터 패 킷을 수신하는 함수가 최소 초당 15회 이상 수행되어야 한다. 이를 위해 화면 갱신을 주기적으로 수행하고 수신 함수는 상대적으로 조금 더 빈번하게 수행되도록 하였다. 제안하는 시스템에서는 CUDA 비디오 복호기 API에서 제공하는 함수들을 이용하여 목적 시스템에 맞 는 고속 복호기를 설계하였다. CUDA 비디오 복호기 API는 NVIDIA 그래픽 카드의 비디오 복호 기능을 사용할 수 있도록 해준다 [6]. 패킷 단위 비트스트림 수신 복호 대상 생성 cuvidcreatedecoder( ) 한 프레임 복호 cuviddecodepicture( ) 그림 5. 3차원 워핑의 병렬화 단위 CUDA 비디오 복호기 API는 CUDA를 기반으로 설계되어 CUDA 내부 기능들과 호환은 물론, 비디오 메모리와 시스템 데이터를 빠르게 복사할 수 있다. 또한, CUDA 비디오 복호기 API를 이용해 MPEG-1, MPEG-2, H.264 표준으로 부호화된 데이터를 실시간으로 복호하여 CUDA 내부 메모리로 옮길 수 있다. 제 안한 2D+깊이 영상 복호기는 부호화된 비트스트림을 수신 받아 복호 대상을 생성하고 한 프레임을 단위로 복호하는 구조로 구성되어 있다. 복호기의 구조는 그림 5와 같다. 3. 가상 시점 생성 및 3차원 장면 재현 GPU는 중앙 처리 연산장치(CPU)와는 다르게 내부에 연상장치가 많아 병렬처리를 이용한 고속화에 유 리한 구조를 갖고 있다. 본 논문에서는 GPU 기반의 CUDA를 통하여 병렬화된 가상 시점 영상 생성 알고 리즘을 구현하였다 [8]. CUDA는 병렬화를 위한 단일 명령 복수 데이터 (single instruction multiple data) 구조를 가지고 있어 동일한 명령을 다수의 데이터에 동시에 적용시키는 것이 가능하다. 이 구조를 활용하기 위해서는 데이터 사이에 종속성이 없어야 하므로 3차원 워핑 후 투영 위치가 겹칠 가능성이 있는 화소들의 분포 특성을 고려하였다. 투영 위치가 겹칠 수 있는 화소들은 원 시점과 가상시점 이 수평 이동된 구조를 갖기 때문에 시점 이동 방향과 동일하게 수평적으로 분포한다. 이 특성을 이용하여 병렬화의 단위를 그림 6과 같이 세로축으로 묶어 투영 위치가 겹치지 않도록 처리하였다. 그림 6. 3차원 워핑의 병렬화 단위 실시간 시스템의 GPU 성능을 최적화하기 위해서는 용도에 맞게 메모리를 사용하는 것이 중요하다. 최 적의 속도를 내기 위해 자주 참조되는 영상은 GPU의 메모리 중 읽기 전용인 텍스처 메모리에 위치시켰다. 텍스처 메모리의 경우 부분적인 수정은 불가능하지만 값을 참조하는 속도가 빠르다는 장점이 있다. 따라서 3차원 워핑 시 자주 사용하는 호모그라피 행렬과 참조만 하는 영상을 텍스처 메모리에 위치시켜 고속화하 였다.
4. 제안하는 시스템 그림 7. 제안한 실시간 양안식 3차원 방송 시스템 그림 7은 제안하는 실시간 양안식 3차원 방송 시스템의 개념도를 보여준다. 전송 단에서는 x264를 이용 해 2D+깊이 영상으로 구성된 방대한 양의 3차원 콘텐츠를 부호화한다. 실시간 시스템을 위해 한 프레임에 대한 부호화가 수행되면 압축된 비트스트림을 전송한다. 수신 단에서는 CUDA 비디오 복호기 API를 이용 한 복호기로 2D+깊이 영상을 복호하고 GPU를 이용한 고속 렌더링을 통해 3차원 콘텐츠를 재현한다. 제안한 시스템을 사용하면 2차원 디스플레이를 보유한 청자에게는 좌측 색상 영상을, 3차원 양안식 디 스플레이를 보유한 청자에게는 좌측 색상 영상 뿐 아니라 합성한 우측 색상 영상을 모두 제공해 3차원 콘 텐츠의 시청을 가능하게 한다. L R LS RS 좌우로 ½ 하향 샘플링 LS RS 상하로 ½ 하향 샘플링 그림 8. 양안식 영상 출력 방법 그림 8은 제안한 시스템의 양안식 3차원 영상 출력 방법을 보여준다. 좌측 및 우측 색상 영상을 수신 환경에 따라 상하 또는 좌우로 1/2만큼 하향 샘플링하여 출력한다. 이를 통해 다양한 형태의 양안식 디스 플레이를 사용해 3차원 영상을 시청할 수 있다. 그림에서 L과 R은 각각 좌측 색상 영상과 우측 색상 영상 을, Ls와 Rs는 1/2만큼 하향 샘플링된 영상을 나타낸다. IV. 실험 결과 본 논문에서 제안한 실시간 양안식 3차원 방송 시스템의 성능을 테스트하기 위해 Dual Core Processor 1.86 GHz @ 2 GB RAM을 사용해 성능 비교를 수행하였다. 실험 영상으로는 Microsoft Research에서 제 공하는 720 480 크기의 Ballet 영상을 이용했다 [7]. SD 크기의 2D 영상과 깊이 영상이 상하로 배치되어 있으므로 입력 영상의 크기는 720 960이다. 부호기의 성능 평가는 H.264/AVC 기준 소프트웨어인 JM과 x264를 이용하여 수행하였다. 메인 프로파 일에서 양자화 계수 22, 27, 32, 37의 값에 대하여 부호화를 수행되었다. GOP는 30이며 참조 화면 수는 고 속 부호화를 위해 2장을 사용하였으며 엔트로피 부호화로는 CABAC(Context-Adaptive Binary Arithmetic Coding)을 사용하였다. 표 1의 부호기 성능 평가 결과에서 볼 수 있듯이, x264를 이용해 JM에 비해 870배 이상 빠른 부호화 속도를 얻을 수 있다.
양자화 계수 표 1. 부호기의 성능 JM 15.1 프레임율 비트율 x264 프레임율 비트율 (fps) (Kbps) (fps) (Kbps) 22 0.04 1882.52 22.38 2232.63 27 0.04 1024.39 25.85 1148.56 32 0.04 585.29 31.11 632.27 37 0.04 336.90 34.83 347.35 부호기의 성능 평가는 H.264/AVC 기준 소프트웨어와 최적화된 x264공개 소프트웨어를 사용하여 실시 하였다. 표 3은 부호기 성능 평가 결과이다. 결과에서 볼 수 있듯이, x264를 통해 JM보다 최대 870배 이상 의 부호화 속도를 얻을 수 있다. CUDA를 이용하기 위해서는 이를 지원하는 GPU가 필요하다. 따라서 CUDA를 지원하는최신 버전 GPU 인 GeForce GTX 260 (896MB, 1.35GHz)을 이용하여 실험을 수행하였다. 이것은 512 MB의 글로벌 메모리 와 16개의 멀티프로세서, 128개의 코어를 가지고 있으며 클록 속도는 1.62 GHz이다. 표 2는 양안식 3차원 영상 복호기의 성능을 보여준다. 복호기는 CUDA 비디오 복호기 API를 이용한 2D+깊이 영상 복호기와 3차원 렌더링 부분으로 이루어져 있다. 2D+깊이 영상 복호기는 JM 15.1 복호기와 비교하였고, GPU를 이용한 3차원 렌더링은 CPU 상에서의 성능과 비교하였다. 기존의 JM 복호기는 720 960사이즈의 2D+깊이 영상을 초당 최대 6.8 프레임을 복호할 수 있으나, CUDA 비디오 복호기 API를 이용함으로써 초당 최대 143.1 프레임을 복호할 수 있다. 표 3은 GPU를 이용한 3차원 렌더링과 기존의 CPU 상에서의 3차원 렌더링의 수행 시간을 비교하였다. 3차원 렌더링 알고리즘은 화소별 연산이 많이 수행되기 때문에 복잡도가 매우 높다. 따라서 기존의 CPU에 서 3차원 렌더링을 수행하면 초당 7.73 프레임의 속도만 얻게 된다. GPU를 이용한 3차원 렌더링은 평균 초당 82.8 프레임을 처리하는 것을 확인할 수 있다. 표 2. 2D+깊이 영상 복호기의 성능 (단위: fps) 양자화 계수 JM 15.1 복호기 제안한 복호기 22 3.8 140.9 27 4.9 142.2 32 5.9 142.3 37 6.8 143.1 표 3. GPU를 이용한 고속 3차원 렌더링의 성능 (단위: fps) 양자화 계수 CPU를 이용한 GPU를 이용한 렌더링 렌더링 22 6.42 88.2 27 7.33 87.1 32 8.25 88.3 37 9.36 87.9 시스템들의 각 부분을 통합하여 전체 시스템의 속도를 측정한 결과가 표 4에 나타나 있다. 양자화 계수 22, 27, 32, 37에 대하여 초당 10, 17, 22, 24 프레임을 확인하였다. 따라서 제안한 시스템 실시간 응용을 위 해서는 27 이상의 양자화 계수를 사용해야 하는 것을 알 수 있다. 표 4. 제안한 시스템의 속도 (단위: fps) 양자화 계수 시스템 속도 22 10 27 17 32 22 37 24
본 논문에서는 합성된 가상 시점의 영상의 화질 평가를 위해 객관적인 화질 평가 방법인 PSNR을 수행 하였다. 27보다 높은 양자화 계수를 사용하면 처리 속도는 증가하지만 화질이 낮다는 단점이 있으므로 응 용에 맞는 적합한 양자화 계수를 선택해야 한다. 그림 9와 10은 양자화 계수가 27일 때의 "Ballet 영상 100 프레임에 대한 PSNR과 합성된 우영상을 보여준다. 45 40 35 30 25 20 15 10 5 0 0 20 40 60 80 100 120 좌영상 합성된 우영상 그림 9. 합성된 가상 영상의 화질 그림 10. 합성된 가상 영상 V. 결 론 본 논문에서는 깊이 영상을 기반한 3차원 콘텐츠를 실시간으로 부호화 및 복호화할 수 있는 3차원 방송 시스템을 제안했다. 기존의 양안식 영상은 두 개의 색상 영상으로 구성되므로 데이터의 양이 많다는 문제 점이 있다. 방대한 데이터량과 가상 시점 합성으로 인한 복호기의 부담은 3차원 방송 시스템을 실시간으로 구성하는데 제약 사항이 된다. 제안한 시스템에서는 전송 단에서 2D+깊이 영상을 x264를 이용해 부호화하 고 전송하고, 수신 단에서 CUDA 비디오 복호기 API를 이용한 복호기와 GPU를 이용한 3차원 렌더링으로 양안식 3차원 영상을 실시간으로 재현하였다. 일반적으로 초당 15 프레임 이상 처리하는 시스템을 실시간 시스템이라 하는데, 컴퓨터 모의실험을 통해 제안한 시스템이 합성 영상의 화질이 35 db를 상회하는 영상 에 대해서 양자화 계수가 27일 때 초당 17 프레임, 양자화 계수가 32일 때 초당 22 프레임을 처리함을 확 인했다.
참고 논문 [1] 이천, 오관정, 호요성, "영상 보간을 이용한 다시점 비디오 부호화 방법," 방송공학회 논문지, 제12권 제2호, pp. 128-136, 2007. [2] 호요성, 이상범, "3차원 비디오 부호화 기술의 국제 표준화 동향," TTA J ournal, no. 123, pp. 77-83, 2009. [3] L. McMillan, An image-based approach to three-dimensional computer graphics, Technical Report, Ph.D. Dissertation, UNC Computer Science TR97-013, April 1997. [4] x264 software. Available from: http://www.videolan.org/developers/x264.html [5] Reference software JM15.1. Available from: http://iphome.hhi.de/suehring/tml/download/ [6] F. Jargstorff and E. Young, CUDA video decoder API, 2008. [7] Contribution for 3D video test material of outdoor scene, document m15371.doc, ISO/IEC JTC1/SC29/WG11, April 2008. [8] NVIDIA corporation, CUDA 2.3 Programming Guide, 2009.