Integrated Parallelization of Video Decoding on Multi-core Systems

멀티코어 시스템에서의 통합된 비디오 디코딩 병렬화

  • Hong, Jung-Hyun (Department of Electronics and Computer Engineering, Hanyang University) ;
  • Kim, Won-Jin (Design Solution Lab., DMC R&D Center, SAMSUNG Electronics) ;
  • Chung, Ki-Seok (Department of Electronic Engineering, Hanyang University)
  • 홍정현 (한양대학교 전자컴퓨터통신공학과) ;
  • 김원진 (삼성전자 DMC 연구소) ;
  • 정기석 (한양대학교 융합전자공학과)
  • Received : 2012.01.25
  • Accepted : 2012.06.21
  • Published : 2012.07.25

Abstract

Demand for high resolution video services leads to active studies on high speed video processing. Especially, widespread deployment of multi-core systems accelerates researches on high resolution video processing based on parallelization of multimedia software. Previously proposed parallelization approach could improve the decoding performance. However, some parallelization methods did not consider the entropy decoding and others considered only a partial decoding parallelization. Therefore, we consider parallel entropy decoding integrated with other parallel video decoding process on a multi-core system. We propose a novel parallel decoding method called Integrated Parallelization. We propose a method on how to optimize the parallelization of video decoding when we have a multi-core system with many cores. We parallelized the KTA 2.7 decoder with the proposed technique on an Intel i7 Quad-Core platform with Intel Hyper-Threading technology and multi-threads scheduling. We achieved up to 70% performance improvement using IP method.

고해상도의 동영상 서비스가 보편화 되면서 동영상을 빠르게 처리하기 위한 연구가 활발히 이루어지고 있다. 특히 멀티 코어 시스템 상에서 멀티스레드를 사용한 데이터 레벨 병렬화 방법을 적용하여 비디오 디코더의 성능을 향상 시킬 수 있었다. 기존에 제안된 병렬화 방법들을 통해 디코딩 과정의 성능을 향상 시킬 수 있었지만, 이 방법들은 엔트로피 디코딩 부분을 제외하거나 엔트로피 디코딩 부분만의 병렬화를 별도로 고려한 부분적인 병렬화 방법이기 때문에 전체 디코딩 과정의 성능 향상에는 부족한 부분이 있다. 따라서 본 논문에서는 기존 병렬화 디코딩 과정뿐만 아니라 엔트로피 병렬화 디코딩 과정까지 함께 고려한 통합적인 비디오 디코딩 병렬화 방법을 제안한다. 우리는 각각의 비디오 디코더 병렬화 방법을 분석하여 최적화 방법을 제시하고 이의 성능평가를 해보았다. 그리고 우리는 비디오 디코딩 과정 내부에 존재하는 코어의 개수에 따른 성능향상의 차이를 고려해 성능을 최적화한 Integrated Parallelization 방법을 제안한다. 우리는 인텔 i7 멀티코어 시스템의 물리적 코어에서 엔트로피 디코딩 부분을 최대로 병렬화 하면서, 내부 자원을 공유하는 하이퍼스레딩 기술을 사용하여 데이터레벨 병렬화 방법에는 물리적 코어 수의 2배까지 스레드를 할당했다. 그리고 디코딩 과정 내부 특성을 고려한 멀티스레드 스케쥴링으로 전체 디코딩 과정의 성능을 멀티코어 시스템에 최적화해서 최대 70%까지 성능을 향상시킬 수 있었다.

Keywords

References

  1. ITU-T Recommendation H.264, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services- Coding of moving video, May 2003.
  2. ISO, Information Technology-Coding of Audio-Visual Objects, Part10-Advanced Video Coding, ISO/IEC 14496-10.
  3. Thomas Wiegand, Gary J. Sullivan, Gisle Bjøntegaard, and Ajay Luthra, Senior Member, "Overview of the H.264/AVC Video Coding Standard," IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, pp. 560-576, July 2003
  4. Michael Horowitz, Anthony Joch, Faouzi Kossentini, and Antti Hallapuro, "H.264/AVC Baseline Profile Decoder Complexity Analysis," IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, pp. 704-716 July 2003. https://doi.org/10.1109/TCSVT.2003.814967
  5. E. van der Tol, E. Jaspers, and R.Gelderblom, "Mapping of H.264 decoding on a multiprocessor architecture," Image and Video Communications and Processing, pp.707-718, May, 2003.
  6. J. Chong, N. R. Satish, B. Catanzaro, K. Ravindran, and K.Keutzer, "Effcient parallelization of h.264 decoding with macro block level scheduling," in 2007 IEEE International Conference on Multimedia and Expo, July 2007.
  7. Kosuke Nishihara, Atsushi Hatabu, Tatsuji Moriyoshi, "Parallelization of H.264 video decoder for embedded multicore processor," In Proceedings of ICME'2008. pp.329-332
  8. 심동규, 남정학, "고속 비디오 처리를 위한 병렬화 기술," 대한전자공학회, 전자공학회논문지, 제36권 제4호 (통권 제299호), 83-90쪽, 2009년 4월
  9. 조한욱, 조송현, 송용호, "멀티코어 프로세서에서의 H.264/AVC 디코더를 위한 데이터 레벨 병렬화 성능 예측 및 분석," 전자공학회논문지, 제46권, 제8호 102-116쪽, 2009년 8월
  10. A. Azevedo, C. Meenderinck, B. Juurlink, A. Terechko, J. Hoogerbrugge, M. Alvarez, and A. Rammirez, "Parallel H.264 Decoding on an Embedded Multicore Processor," in Proceedings of the 4th International Conference on High Performance and Embedded Architectures and Compilers-HIPEAC, Jan 2009.
  11. Won-Jin Kim, Keol Cho, Ki-Seok Chung;, "Stage-based frame-partitioned parallelization of H.264/AVC decoding," IEEE Trans. on Consumer Electronics, vol. 56, pp. 1088-1096, May. 2010. https://doi.org/10.1109/TCE.2010.5506043
  12. Chung-Hyo Kim, In-Cheol Park, "Parallel Decoding of Context-Based Adaptive Binary Arithmetic Codes Based on Most Probably Symbol Prediction," IEICE Trans. on Information and Systems, vol. E90-D, no. 2, pp. 609-612, February 2007. https://doi.org/10.1093/ietisy/e90-d.2.609
  13. Andrew Segall, Jie Zhao, "Entropy slices for parallel entropy decoding," ITU-T SGI 6/Q.6 Doc. COM16-C405. Geneva, Switzerland, April 2008.
  14. Vivienne Sze, Anantha P. Chandrakasan, "A High Throughput CABAC Algorithm Using Syntax Element Partitioning," IEEE International Conference on Image Processing (ICIP), pp. 773-776, November 2009.
  15. Won-Jin Kim, Keol Cho, Ki-Seok Chung, "Multi-Threaded Syntax Element Partitioning for Parallel Entropy Decoding," IEEE Trans. on Consumer Electronics, vol. 57, pp.897-905, May. 2011. https://doi.org/10.1109/TCE.2011.5955238
  16. Deborah T. Marr et al. "Hyper-Threading Technology Architecture and Microarchitecture", Intel Technology Journal Q1, 2002.
  17. Chunhua Liao, Zhenying Liu, Lei Huang, and Barbara Chapman. "Evaluating OpenMP on Chip MultiThreading Platforms," In First international workshop on OpenMP, Eugene, Oregon USA, June 2005. April 2004.