H.264 BP Decoder, Blackfin
The H.264 BP Decoder library for the Blackfin processor implements decoding of H.264 Baseline Profile video bit streams and is compliant with MPEG-4 Part 10, which is ISO/IEC 14496-10:2005(E) of Information technology - Coding of audio- visual objects.
- Profile & Level: Baseline Profile & up to Level 3 inclusive.
- Slice Types Supported: I & P
- Error Resilience Tool: Supported.
- Number of Reference Frames: 1 to 16.
- Adaptive Block Sizes: Supported.
- Entropy Coding: CAVLC.
- Motion Vector: 1 to 16MV per Macroblock.
- Motion Vector Accuracy: 1/4 pixel.
- In loop Deblocking Filter: Supported.
- Input Format: Elementary bit stream of H.264 Baseline Profile video object (ISO/IEC14496-10).
- Output Format: ITU-R BT.656 format or YUV4:2:0 planar format when the external API is not used and RGB565, RGB888 or ITU-R BT.656 format when the external API (custom code) is used.
- Frame Rate: All frame rates specified by H.264 Baseline Profile L3 Standards.
- Bit Rate: All bit rates specified by H.264 Baseline Profile L3 Standards.
- Multi Channel/Instance: Re-entrant at frame level and multi-instancing capable.
- Color Conversion using external post-processing API: Example code for RGB565, RGB888 and ITU-R BT.656 color conversion. This has a great advantage of reducing EBIU bandwidth for the transfer of YUV420 data.
The H.264 BP Decoder library is a software component which decodes H.264 Baseline Profile video bit streams and is compliant with MPEG-4 Part 10 which is ISO/IEC 14496-10:2005(E) of Information technology - Coding of audio- visual objects.
The software has been implemented using C and Blackfin Assembly code. It makes optimal usage of Instruction and Data cache. To optimize video decoding performance, internal SRAMs for Program and Data memory and Memory DMA are also utilized effectively.
||Test Case Description
|Code Memory (KiB)||Data Memory
||Moving Average Peak
||L3 (MB)||Output Buffer (MB)|
|| QVGA, 384 kbps, 30fps
|| ½ D1, 768 Kbps, 30fps
|| D1, 1500 Kbps, 30fps
- MIPS measured using the bit rates of 384 Kbps, 30 fps for 320x240 (QVGA) size sequence, 768 Kbps, 30 fps for 352x480 (½ D1) size sequence and 1.5 Mbps, 30 fps for 720x480 (D1) size sequence, ITU-R BT.656 output.
- NTSC format, optimal memory layout on ADSP-BF533 Si Rev 0.6 processor.
- Measurements done with CAS=3 for SDRAM, CCLK=594 MHz, SCLK=118.8 MHz.
- 32 Kbytes of Data cache and 16Kbytes instruction cache are enabled. The cache is set to “write back” and “large cache” (DCBS=1) mode. Memory DMAs are used.
- Code memory includes all the code related to the library including 16KB of ICache.
- “Data RAM for L1” is for one instance, includes Stack, Scratch, Instance/Stage and does not include 32KB of DCache.
- “Data RAM for L3” is for one instance for a D1 frame including frame buffers for the instance.
- “Output Buffer” indicates the minimum memory (two PAL frame) required in the settings mentioned above. This is beca
- ADSP-BF561 supported for VisualDSP++5.0 project and ADSP-BF533, ADSP-BF527 and ADSP-BF609 for CrossCore E use PAL frame size is bigger than NTSC.mbedded Studio 1.0.2 projects
- 1 MB = 1024 KiB; 1 KiB = 1024 Bytes.
- MIPS number is quite similar for ADSP-BF527/BF561/BF609 processors.
NOTE: In deriving the “Moving Average Peak” value, an 8 consecutive frames sliding window was used. An average cycle count was measured for each window of frames, and the worst case average cycle from all the sliding window measurements was determined to be the “Moving Average Peak” value.
- Windows XP Professional SP3 (32-bit only).
- Windows Vista Business/Enterprise/Ultimate SP2 (32-bit only). It is recommended to install the software in a non-UAC-protected location.
- Windows 7 Professional/Enterprise/Ultimate (32 and 64-bit).
- Minimum of 2 GHz single core processor, 3.3 GHz dual core is recommended.
- Minimum of 1 GB memory (RAM), 4 GB is recommended.
- Minimum of 2 GB hard disk (HDD) space is required.
- CrossCore® Embedded Studio for Analog Devices Processors or VisualDSP++ 5.0 with the latest update.