Abstract
The latest generation of multicore digital signal processors (DSP), their high computing power, low consumption, and integrated peripherals will allow them to be embedded in the next generation of smart camera. Such DSPs allow designers to evolve the vision landscape and simplify the developer’s tasks to run more complex image and video processing applications without the need to burden a separate personal computer. This paper explains the exploitation of the computing power of a multicore DSP TMS320C6472 to implement a real-time H264/AVC video encoder. This work can be considered as a milestone for the implementation of the new High Efficiency Video Coding standard (HEVC-H265). In fact, to improve the encoding speed, enhanced Frame Level Parallelism (FLP) approach is presented and implemented. A real-time fully functional video demo is given, taken into account video capture and bitstream storage. Experimental results show how we efficiently exploit the potentials and the features of the multicore platform without inducing video quality degradation in terms of PSNR or bitrate increase. The enhanced FLP using five DSP cores achieves a speedup factor of more than four times in average compared to a mono-core implementation for Common Intermediate Format (CIF 352 × 288), Standard Definition (SD 720 × 480), and High Definition (HD 1280 × 720) resolutions. This optimized implementation allows us to meet the real-time compliant by reaching an encoding speed of 99 f/s (frame/second) and 30 f/s for CIF and SD resolutions respectively, and saves up to 77 % of encoding time for HD resolution.
Similar content being viewed by others
References
Smart camera. http://en.wikipedia.org/wiki/Smart_camera
Shi, Y., Lichman, S.: Smart cameras: a review. http://www.nicta.com.au/__data/assets/pdf_file/0004/16456/smart_camera_review.pdf
Megapixel OEM smart camera module with removable storage. http://www.mosaicengineering.com/docs/OEM-SCM.2010-01-26.pdf
Smart camera manufacturers and products links. http://www.smartcamera.it/links.htm#Top
Freescale machine vision and camera. http://www.freescale.com/webapp/sps/site/application.jsp?code=APLMAVISMCA
TMS320C66x high-performance multicore DSPs for video surveillance. http://www.ti.com/lit/ml/sprt643/sprt643.pdf
Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, draft ITU-T recommendation and final draft international standard of joint video specification (ITU-T Rec. H.264 ISO/IEC 14496-10 AVC), JVT-G050, (2003)
Sullivan, G.J., Ohm, J.-R., Han, W.-J., Wiegand, T.: Overview of the high efficiency video coding (HEVC) Stand. IEEE Trans Circuit Syst Video Technology 22(12), 1649–1668 (2012)
Xiao, Z., Le, S., Baas, B.: A fine-grained parallel implementation of a H.264/AVC encoder on a 167-processor computational platform, signals, systems and computers (ASILOMAR), 2011 conference record of the forty fifth asilomar conference on pp. 2067, 2071 (2011)
Sun, S., Wang, D., Chen, S., Perrott, R., Chapman, B., Subhlok, J., Mello, R., Yang, L (eds) A highly efficient parallel algorithm for H.264 encoder based on macro-block region partition, high performance computing and communications. Springer, Berlin, vol. 4782, pp. 577–585 (2007)
H264/AVC software joint model JM: http://iphome.hhi.de/suehring/tml/download/old_jm/
Zhao, Z., Liang, P.: A highly efficient parallel algorithm for H.264 video encoder, acoustics, speech and signal processing, 2006. ICASSP 2006 In: Proceedings of 2006 IEEE international conference on, vol. 5, pp. V, V (2006)
Chen, Y.-K., Tian, X., Ge, S., Girkar, M.: Towards efficient multi-level threading of H.264 encoder on Intel hyper-threading architectures, parallel and distributed processing symposium, 2004. In: Proceedings of 18th international. p. 63 (2004)
Sankaraiah, S., Lam, H.S., Eswaran, C., Abdullah, J.: GOP level parallelism on H.264 video encoder for multicore architecture international conference on circuits, system and simulation(ICCSS 2011), IPCSIT vol. 7, pp. 127–132, May 2011, IACSIT Press, Singapore, ISSN:2010-460X, ISBN : 978-981-08-8638-7, Bangkok, (2011)
Sankaraiah, S., Shuan, L.H., Eswaran, C., Abdullah, J.: Performance optimization of video coding process on multi-core platform using gop level parallelism. International journal of parallel programming, ISSN:1573–7640. doi:10.1007/s10766-013-0267-4 (2013)
Rodriguez, A., Gonzalez, A., Malumbres, M.P., Hierarchical parallelization of an H.264/AVC video encoder, parallel computing in electrical engineering, 2006. PAR ELEC 2006. International symposium on, p. 363 (2006)
Chen, S., Chen, S., Gu, H., Chen, H., Yin, Y., Chen, X., Sun, S., Liu, S., Wang, Y.: Mapping of H.264/AVC encoder on a hierarchical chip multicore DSP platform, high performance computing and communications (HPCC), 2010 12th IEEE international conference on, pp. 465–470, (2010)
Yang, M.-J., Tham, J.-Y., Rahardja, S., Wu, D.-J., Real-time H.264 encoder implementation on a low-power digital signal processor, multimedia and expo, 2009. ICME 2009. IEEE international conference on, pp. 1150–1153, (2009)
Zrida, H.K., Jemai, A., Ammari, A.C., Abid, M.: High level H.264/AVC video encoder parallelization for multiprocessor implementation, design, automation and test in Europe conference and exhibition, 2009. DATE ‘09, pp. 940–945 (2009)
Rodrigues, A., Roma, N., Sousa, L.: Open platform for designing parallel H.264/AVC video encoders on multi-core systems. In: Proceedings of the 20th international workshop on network and operating systems support for digital audio and video (NOSSDAV ‘10). ACM, New York, 81–86. p. 264 (2010). http://doi.acm.org/10.1145/1806565.1806586
Lehtoranta, O., Hämäläinen, T., Lappalainen, V., Mustonen, J.: Parallel implementation of video encoder on quad DSP system. Microprocess Microsyst 26(1), 1–15 (2002)
de Medeiros, B.A.: Video coding on multicore graphics processors (GPUs), dissertation submitted to obtain the master degree in information systems and computer engineering, High Institute of Techniques, Technical University of Lisboa (2012)
Ji, F., Li, X.-Y., Yang, C.-L.: An algorithm based on AVS encoding on FPGA multi-core pipeline, computational and information sciences (ICCIS), 2013 Fifth international conference on, pp. 1521–1524 (2013)
Peng, X., Xu, J., Zhou, Y., Wu, F.: Highly parallel line-based image coding for many cores. Image Process IEEE Trans 21(1), 196–206 (2012)
Su, H., Wen, M., Wu, N., Ren, J., Zhang, C.: Efficient parallel video processing techniques on GPU: from framework to implementation. Sci World J 2014(716020), 19 (2014)
Adeyemi-Ejeye, A.O., Walker, S.: 4kUHD H264 wireless live video streaming using CUDA. J Elect Comput Eng 2014(183716), 12 (2014)
Elhamzi, W., Dubois, J., Miteran, J., Atri, M., Heyrman, B., Ginhac, D. (2013) Efficient smart-camera accelerator: a configurable motion estimator dedicated to video codec. J Syst Archit Part A, 59(10): 870–877, ISSN 1383-7621
Jo, S., Jo, S.H., Song, Y.H.: Exploring parallelization techniques based on OpenMP in H.264/AVC encoder for embedded multi-core processor. J Syst Archit 58(9), 339–353 (2012)
TMS320C6472 datasheet. http://www.ti.com/lit/ds/sprs612g/sprs612g.pdf
Multicore DSP vs GPUs. http://www.sagivtech.com/contentManagment/uploadedFiles/fileGallery/Multi_core_DSPs_vs_GPUs_TI_for_distribution.pdf
TMS32C6472 low power consuption. http://www.ti.com/lit/wp/spry130/spry130.pdf
TMS320C6472 Power consumption summary. http://www.ti.com/lit/an/sprab76a/sprab76a.pdf
power spreadsheet for power consumption estimation. http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=sprab76&fileType=zip&track=no
Werda, I., Dammak, T., Grandpierre, T., Ayed, M., Masmoudi, N.: Real-time H.264/AVC baseline decoder implementation on TMS320C6416. J Real Time Image Process, Springer. vol. 7. pp. 215–232 (2012)
Bahri, N., Werda, I., Grandpierre, T., Ayed, M.B, Masmoudi, N., Akil, M.: Optimizations for real-time implementation of H264/AVC video encoder on DSP processor. International review on computers and software, 8(9) (2013)
Xiph.org video test media. https://media.xiph.org/video/derf/
Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG organizations. http://www.itu.int/en/ITU-T/studygroups/com16/video/Pages/jvt.aspx
Open source computer vision library. http://opencv.org/
TI network developer’s kit (NDK) v2.21 user’s guide. http://www.ti.com/lit/ug/spru523h/spru523h.pdf
TMS320C6472 chip support library API reference guide. http://software-dl.ti.com/sdoemb/sdoemb_public_sw/csl/CSL_C6472/latest/index_FDS.html
Throughput application report for the TMS320C6472 DSP. http://www.ti.com/lit/an/spraay0a/spraay0a.pdf
Acknowledgments
This work is fruit of cooperation between Sfax National School of Engineers and ESIEE Engineering PARIS. It is supported by the French ministries of Foreign Affairs and Tunisian ministry for Higher Education and Scientific Research in the context of Hubert Curien Partnership (PHC UTIQUE) under the CMCU project number 12G1108.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bahri, N., Belhadj, N., Grandpierre, T. et al. Real-time H264/AVC encoder based on enhanced frame level parallelism for smart multicore DSP camera. J Real-Time Image Proc 12, 791–812 (2016). https://doi.org/10.1007/s11554-014-0470-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11554-014-0470-6