Video is increasingly becoming an important and essential part of consumer electronics. Video centric features like augmented reality and video conferencing provide enhanced visual user interaction. Such features are now expected across a wide variety of application segments. In the embedded world, intensive video compression is typically done using standard DSP’s or specialized hardware accelerators, as they can provide both the specialized functionality and the high level of performance required. However, now ARM processors with NEON™ technology can be as capable of compressing video as some dedicated hardware, and do so with greater power efficiency.H.264/MPEG-4 AVC (Advanced Video Coding) is currently one of the most commonly used formats for the recording, compression, and distribution of video content. The H.264 video format has a very broad application range that covers all forms of digital compressed video from low bit-rate Internet streaming applications to HDTV broadcast. With the use of H.264, bit rate savings of 50% or more are not uncommon. Many vendors of video conferencing system use H.264/AVC for their products.
In this blog series we will introduce a solution applicable to the video conferencing usage model based on the x264 open source software project, and using the common Texas Instruments OMAPTM 4 based PandaBoard, which integrates a dual-core ARM Cortex-A9 processor with NEON.
This blog series is written in 3 parts. In this first posting, we introduce the requirement and development environment.
1 Requirement of video conferencing
For a video conferencing system, low bit rate is very important, as the transmission network is very complex. So, as mentioned above, we chose H.264/MPEG-4 AVC because it has very good compression performance. The x264 project is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC format, and is released under the terms of the GNU GPLv2. It supports encode only.
Now there are many video conferencing products, offering a range of video quality parameters. A range of common parameters are described below:
- Frame rate: 15~30 fps
- Bandwidth: 64kbps~2Mbps
- Resolution: 352x288, 176x144, 640x480, 1024x768
Based on feedback from our partner ecosystem, for the purposes of this article, we’ve focused on the technical parameters as defined below:
- Frame rate: 15 fps
- Bit rate: 600kbps~1Mbps
- Resolution: 640x480 (VGA)
2 Development Environment
2.1 Platform
Target hardware: PANDABOARD REV A2 (OMAP4430: Dual-core ARM Cortex-A9)
Development software:
- OS: Canonical's Ubuntu11.04
- Cross toolchain: gcc-4.5-arm-linux-gnueabi
- Linux Kernel Version: 2.6.35
- Buildroot: http://buildroot.ucl...2011.05.tar.bz2
- x264 version: r1947 Log: Precalculate CABAC initialization contexts
2.2 Benchmarking Tools
- ARM Development Studio 5 (DS-5) with Streamline™ performance analyzer
A system-wide visualization and profiling tool for systems running ARM Linux native applications and libraries. Combining an ARM Linux kernel driver, target daemon, and a graphical user interface, it transforms system trace and sampling data into reports that present the data in both visual and statistical forms. Streamline uses hardware performance counters with kernel metrics to provide an accurate representation of system resources. - Performance Monitoring Unit (PMU)
The event counting hardware on Cortex-A cores can be used for benchmarking and profiling code. The above mentioned cores contain a cycle counter, which can be configured to increment for every core cycle. - checkasm
The tool can be used to perform function-level benchmarks on x264 software.
2.3 Test video clips
To align with our target use case of video conferencing, we’ve chosen the ‘Foreman’ test video clip:
In the next blog entry, we tune generic features of x264 encode for optimal use with video conferencing requirements.
*OMAP is a trademarks of Texas Instruments.
Yang Zhang, Home Software engineer - Home Software Enabling team, ARM, Yang has several years of experience working on projects related to video codec, including H.264/AVC, H.263, MPEG4, MPEG2, VC-1 and AVS. She has a deep understanding of video codec algorithm. Being Home Software Engineer , she specializes in the digital multimedia system for ARM Home. Yang graduated from Zhejiang University with the degree of Master. She is currently based in Shanghai, China.
张洋(Yang Zhang) 是ARM的家庭软件工程师. 她拥有多年工作经验并致力于视频编解码领域, 曾经参与了H.264/AVC, H.263, MPEG4, MPEG2, VC-1和AVS等相关项目的开发, 深入理解视频编解码算法。作为家庭软件工程师,她专注于和家庭相关的ARM数字多媒体系统架构技术。 Yang 硕士毕业于浙江大学。 她的工作地点在中国上海.
All company and product names appearing in the ARM Blogs are trademarks and/or registered trademarks of ARM Limited per ARM’s official trademark list. All other product or service names mentioned herein are the trademarks of their respective owners.
0 Comments On This Entry
Please log in above to add a comment or register for an account
»
Blog Tags
»
Search My Blog
»












