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
Target hardware: PANDABOARD REV A2 (OMAP4430: Dual-core ARM Cortex-A9)
- 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.
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 硕士毕业于浙江大学。 她的工作地点在中国上海.
0 Comments On This Entry
Please log in above to add a comment or register for an account
Search My Blog
Applied Micro X-Gene ARMv8 64-bit server showcased at Red Hat Summit
on Today, 03:09 PM
Want to get more out of your hardware? Think system.
on Jun 03 2013 04:39 AM
Coding Using NEON Technology
on May 21 2013 08:57 AM
on May 08 2013 06:15 PM
New Platform Bring-Up with ARM® Development Studio 5 (DS-5™)
on Apr 30 2013 09:55 AM