KCC2017 SW 구현 / 데모경진대회 ARM SoC 기반의 HMD 를위한 HEVC 병렬처리최적화기법 가천대학교일반대학원 컴퓨터공학전공석사과정 류영일
1. Motivation 2014년베를린에서열린 IFA2014에서는삼성전자가오큘러스와합작하여개발한기어 VR을발표하며 VR시장에진출하였고, 구글은누구나손쉽게 VR 및 360 파노라마뷰컨텐츠를즐길수있도록제작된 HMD (Head-mounted Display) 인카드보드를출시하였다. 최근페이스북또한 17개의카메라가내장되어있는 360 파노라마뷰촬영용카메라인 FACEBOOK SURROUND 360 을선보였다. 이처럼세계의여러 IT 기업및전문가들은 HMD와 360 파노라마뷰를제공하는카메라및컨텐츠에이목을집중하고있다. HMD는영상을출력하는디스플레이가사용자의눈에가까운디바이스의특성상고화질의영상이필요하고, 360 파노라마뷰를지원하기위한큰크기의영상을처리해야만한다. 때문에기존영상컨텐츠에비하여 HMD를위한영상의데이터량은매우증가하였고, 사용자의움직임을추적하며, 딜레이없는영상서비스를지원하기위한연산복잡도또한증가하였다. 한편, 4K, 8K 영상과같은 UHD (Ultra High-Definition) 영상에대한사용자들의요구에발맞춰 ITU-T VCEG (Video Coding Experts Group) 과 ISO/IEC MPEG (Moving Picture Group) 이공동으로조직한 JCT-VC (Joint Collaborative Team on Video Coding) 는 2013년에차세대비디오부호화기술인 HEVC (High Efficiency Video Coding) 를표준화하였다. 이어서 JVET (Joint Video Exploration Team) 는 360 비디오를본격적으로지원하기위한표준인 MPEG-I (Immersive media) 를 2017년현재논의중이다. 본제안서는 ARM SoC 기반의 HMD 시스템상에서증가한비디오디코딩복잡도를지원하기위하여새로운방식의 HEVC 기반비디오병렬처리기법을제안한다. 그림 1. 구글의카드보드와삼성전자의기어 VR 그림 2. 파노라마뷰의예시
2. Background 2.1 JCT-VC HEVC 비디오표준 HEVC는 ITU-T VCEG과 ISO/IEC MPEG이공동으로조직한 JCT-VC에서 2013년에표준화한최신비디오코딩표준이다. HEVC는기존의주요비디오코딩표준들과유사하게블록기반의비디오부호화방식을사용하지만, 4K, 8K와같은 UHD 영상을지원하기위하여향상된비디오압축기술을제공한다. HEVC는기존 H.264/MPEG-2 AVC에비하여대형화면기준약 50% 향상된압축효율을내며, Tile과 WPP (Wavefront Parallel Processing) 와같은새로운병렬처리툴들이추가되었다. 1) Tile: 프레임을하나이상의사각형영역으로분할하여, 각영역을독립적으로인코딩및디코딩하는신택스 (Syntax) 이다. 타일은각쓰레드 (Thread) 간의복잡한동기화이슈없이병렬처리가가능하며슬라이스기법에비해압축효율이조금더높다. 2) WPP: 프레임을구성하는 CTU (Coding Tree Unit) 블록들이행 (Row) 단위로병렬처리가가능하도록정의된신택스이다. 현재 CTU 행의 CTU 두개가처리된뒤에다음행의 CTU들이곧바로처리될수있도록하였는데, 이는화면내압축 (Intra-Picture Coding) 의각 CU (Coding Unit) 처리시, 화면의상단과좌측의코딩정보를이용하는점을고려하였기때문이다. 그림 3. Tile 과 WPP 를활용한병렬처리의예시 2.2 ARM big.little Architecture 최근 ARM 계열 CPU에는처리하야할작업량에따라서각각서로다른처리능력을갖는 Big 코어와 Little코어에작업을효율적으로할당해전력낭비를줄이고, 성능을향상시키는 big.little 기술이적용되고있다. 서로다른성능을갖는하드웨어로구성된시스템에서는특정쓰레드를어느코어에할당해야하는지결정하고, 멀티미디어응용서비스제공시연산복잡도가서로다른비디오처리작업을최적의비대칭코어에할당하는기법이필요한다.
그림 4. big.little 구조의비대칭멀티코어 CPU의예시 2.3. 360 Immersive media를위한 Projection 기법일반적으로 360 Immersive media의경우, 구 (Sphere) 형상으로영상을렌더링하여사용자에게제공하며, 마치영상속에위치한것과같은몰입감을사용자에게제공한다. 하지만이러한구형상의영상은기존사각형형상의비디오를위한인 / 디코더에서의처리가제한적이다. 때문에구형상의영상을사각형형상의영상으로프로젝션 (Projection) 해야할필요가있다. 이를지원하기위하여여러프로젝션기법들이제안되었으며, 그중가장보편적으로활용되는기법으로는 ERP (Equirectangular projection) 및 CMP (Cube Map Projection) 이있다. 이러한프로젝션기법들은다양한카메라로부터취득된영상들을하나의영상으로맵핑을하게되는데, CMP의경우사용자가현재바라보고있는정면영상과그외방향의영상크기를다르게하여프로젝션한다. (a) ERP (b) CMP 그림 5. 최근제안되고있는 360 비디오를위한프로젝션기법 3. Proposed Method HMD를위한 360 파노라마뷰영상은영상의화질과해상도 (Resolution) 가기존 FHD (Full High-Definition) 해상도영상에비하여매우높기때문에디코딩복잡도또한매우높다. 이렇게높은디코딩복잡도로인하여디코딩속도가사용자의움직임에따른시점변화속도를따라가지
못하는시점변화지연현상을개선하기위하여, 본제안서는 ARM SoC 기반의 HMD를위한 360 파노라마뷰비디오병렬디코딩최적화기법을제안한다. 제안하는기법은 HEVC Tile-level Parallel Processing 기법에기반한다. 3.1 균등 (Uniform) 타일분할방식의문제점그림 6은그림 7의 (a) 와같이프레임을균등하게 6개의타일로분할한 PeopleOnStreet 시퀀스의타일별평균디코딩시간을보여주는그래프이다. 그림 6에서볼수있듯이비대칭멀티코어환경에서균등하게분할된타일을활용하여비디오병렬디코딩을진행하면, Big core에서디코딩이진행된타일 1, 2와 Little core에서디코딩이진행된타일 3, 4, 5, 6의평균디코딩타임이균등한것이아니라상당한차이가발생하게된다. 이는각타일의디코딩타임이해당타일각각의연산복잡도와쓰레드가할당된 CPU 코어의처리능력에영향을받기때문이다. 이러한현상은디코딩타임이가장짧은타일이먼저디코딩완료되어도디코딩타임이가장긴타일의디코딩이완료되기를기다려야하는상황을발생시키며, 병렬처리성능을저하시키게된다. 그림 6. 균등한 6 개의타일로분할된 PeopleOnStreet 의타일별평균디코딩타임 (a) 균등한크기의타일분할 (b) 각코어의처리능력을고려한타일분할 그림 7. 서로다른방법으로 6 개의타일로분할된 PeopleOnStreet의모습 3.2. Proposed Method: ARM SoC 기반의 HMD를위한 HEVC 병렬처리최적화기법본연구가제안하는타일분할방식은사전연구를통하여산출된영상의해상도와비디오디코딩연산복잡도사이의상관관계를나타내는다중회귀분석모델을활용하여다음과같이진행한다. 그후, 그림 8과같은과정을거쳐 Big코어와 Little코어의성능비에기반하여각코어에할당할타일의디코딩연산복잡도비를산출하고, 해당연산복잡도비율에매핑 (Mapping) 되는크기의타일을각코어에할당한다.
이와같은방식으로타일을분할하면그림 7의 (b) 와같은형태로타일이비균등하게분할되며, 그림 7의 (b) 의경우, 크기가큰 2개의타일은 2개의 Big 코어에각각할당되며, 크기가작은 4개의타일은 4개의 Little 코어에각각할당되게된다. 그결과, 모든타일의디코딩타임이거의비슷하게평준화되기때문에 CPU 코어들의성능을고려하지않고균등하게타일을분할하였을때보다병렬처리효율이향상되며, 그림 9는그예시를보여준다. 그림 8. 제안하는비대칭멀티코어처리능력기반타일분할방식 (a) 비대칭코어의처리능력을고려하지않은경우의디코딩타임 4. Demonstration (b) 코어의처리능력기반타일분할방식을적용한경우의디코딩타임그림 9. 균등타일분할과제안하는타일분할방식의비교 제안하는방식은비디오영상을여러개의비균등한크기의타일로분할하고, 각분할된타일을 Big 코어와 Little 코어에할당한다. 그림 10은제안하는방식의 HEVC 인 / 디코딩구조를블록다이어그램으로설명한다.
그림 10. 제안하는 HEVC 인 / 디코딩시스템의블록다이어그램 (2 Big core와 4 Little core를고려한경우 ) 본데모에서는두개의삼성갤럭시 S7 엣지안드로이드스마트폰을활용하여 Side-by-side로제안하는방식과기존방식의성능차이를비교하여설명한다. 삼성갤럭시 S7 엣지스마트폰의프로세서는비대칭멀티코어아키텍쳐에기반하여설계되었으며, 본래 4개의 Big코어와 4개의 Little코어를가지고있으나, 배터리효율을위하여 2개의 Big코어는평상시에는오프라인상태로유지된다. 그러므로본데모는 2개의 Big코어와 4개의 Little코어만을고려하여진행한다. 그림 11은본데모진행을위해구현된비디오디코더를삼성갤럭시 S7 엣지스마트폰에서구동시킨화면이며, 그림 12는 Side-by-side 데모의진행시나리오를보여준다. 해당데모시나리오, 4K UHD 테스트시퀀스 (PeopleOnStreet, Traffic) 그리고 JCT-VC의 CTC (Common Test Condition) 을적용하여실험을진행하였을때에는그림 13 (a), (b) 와같이평균 25% 의성능향상을확인하였다. 그림 11. 제안된비디오디코더의구동화면
그림 12. Side-by-side 데모시나리오 (a) PeopleOnStreet (b) Traffic 그림 13. 4K UHD 영상을대상으로한실험결과 4. Conclusion 본제안서는비대칭멀티코어시스템상에서 HEVC 병렬디코딩최적화를위하여, 각 CPU 코어각각의처리능력에적합한디코딩연산복잡도를갖는크기로타일들을분할하여해당코어에할당하는방식을제안하였다. 제안하는방식은삼성갤럭시 S7 엣지스마트폰을위하여구현되었으며, Side-by-side로기존방식과성능비교를위한데모를진행한다. 기존방식인각코어의처
리능력을고려하지않고균등한크기의타일로프레임을분할하는방식과비교실험하였을때, 제안하는방식을사용하였을때평균 25% 의성능향상이발생함을확인하였다.