Browse

HEVC 인코더의 Inter Prediction 연산 복잡도 감소를 위한 Reuse Buffer 구조에 대한 연구
Reuse Buffer Architecture for Reducing the Computational Complexity of Inter Prediction in HEVC encoder

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
노선일
Advisor
채수익
Major
공과대학 전기·컴퓨터공학부
Issue Date
2015-02
Publisher
서울대학교 대학원
Keywords
HEVCMotion EstimationData reuseSADSATDInterpolation
Description
학위논문 (석사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2015. 2. 채수익.
Abstract
Motion Estimation(ME) 은 integer ME(IME)와 fractional ME(FME)로 구성되어 있다. IME는 모든 개별 prediction unit(PU)에 대한 integer motion vector(IMV)를 찾고, FME는 정수 사이의 fractional pixel을 생성한 후 개별 PU에 대한 fractional motion vector(FMV)를 찾는다.
IME의 초기 탐색 지점은 AMVP candidate list로부터 선택하게 되는데, 이 리스트는 HEVC 인코더의 pipeline 구조를 고려할 때 현재 PU의 available한 이웃의 MV들 중에서 선택하여 생성한다. IME에서는 TZS 알고리즘에 의해 선택된 search point들에 대해 sum of absolute difference(SAD) 를 이용한 low complexity RD cost(LRD cost)를 계산하고, 이들 중에서 최소 RD cost값을 가진 search point를 predicted motion vector로 선택한다. FME에서는 먼저 7 개나 8개의 integer pixel을 이용한 보간 필터로 fractional pixel을 생성한 후, IMV주변의 search point들 중에서 sum of absolute transformed difference(SATD)로 계산한 minimum RD cost인 것을 fractional motion vector로 선택한다.
HM 인코더의 RDO 탐색 알고리즘은 모든 reference picture에 대해 coding tree unit(CTU)내의 모든 가능한 CU partition 의 모든 가능한 PU partition들에 대한 MV를 찾게 된다. 그러므로 bi-prediction까지 고려하면 CTU마다 1000개 이상의 motion vector가 존재할 수 있다. 하나의 IMV를 찾기 위해서, TZS알고리즘은 평균 100개 이상의 search point에 대해 탐색한다. FMV를 찾기 위해서, FME알고리즘은 적어도 16개 의 search point를 탐색한다. 그러므로, SAD, SATD, 그리고 interpolation은 HEVC인코더의 전체 연산 복잡도의 큰 부분을 차지하고 있다.
본 논문에서는 연산 복잡도를 줄이기 용이한 reuse buffer를 만들기 위해 SAD 연산량을 줄이고 연산 중복성은 높이는 수정된 TZS 알고리즘을 제시하였다. 더불어 SAD, SATD, 그리고 interpolation 연산 결과를 on-chip buffer에 저장한 후 ME 수행 과정에서 재사용함으로써 중복 계산된 연산을 줄이는 구조를 제안하였다. 특히 SAD와 SATD의 경우, 저장된 데이터를 효율적으로 관리하기 위해 CU depth마다 병렬적으로 처리가 가능한 cache구조의 계층적 reuse buffer 구조를 적용하였다.
제안한 reuse buffer 구조를 사용하여 병렬 수행을 고려하여 실험한 결과, 20KB의 on-chip 메모리를 사용하여 전체 SAD연산량의 약 34.4%, 20KB의 on-chip 메모리를 사용하여 전체 SATD 연산량의 18.3%, 그리고 256KB를 사용하여 전체 interpolation 연산량의 50%를 절약하는 결과를 얻었다. 이는 SAD, SATD 및 interpolation 연산량이 전체 인코더의 약 50%를 차지하는 것을 고려할 때, 제안한 reuse buffer를 사용하면 전체 인코더의 computational complexity를 약 18%정도 줄일 수 있음을 의미한다. 이 때, 수정한 TZS algorithm으로 인한 0.09%와 pipeline 구조로 인해 ME초기 조건 변화로 발생하는 0.26%를 포함하여 0.35%의 성능저하가 발생한다.
Language
Korean
URI
https://hdl.handle.net/10371/123155
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Electrical and Computer Engineering (전기·정보공학부)Theses (Master's Degree_전기·정보공학부)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse