PlayMedia’s 4Play® MPEG-4-compliant Codec – Decoder and Decoder
What is MPEG-4?
MPEG-4 is the latest compression standard developed by MPEG group that brought us MPEG-1 and MPEG-2. MPEG-4 already approved success in many fields such as:
- Digital Television
- Interactive multimedia
- Mobile appliances
4Play® MPEG-4 is a Simple Profile-compliant codec
What are MPEG-4 Profiles and Levels?
Profiles and levels are Interoperability/Conformance points. In order to make sure that MPEG-4 products work with other MPEG-4 products from other vendors, conformance points are developed. These points specify items such as:
- Tools that can be used
- Image Sizes
- Number of objects
If I have an encoder that does not use all the tools in a profile/level, is it compliant?
Yes, as long as the bitstreams from the encoder do not exceed the bounds defined by the profile/level combination, such as bitrate, buffer sizes, etc.
It is possible in the simple profile to make an encoder that only encodes Intra frames (Key frames) that is fully compliant. Leaving out tools such as Inter frames, AC Prediction, and data partitioning is not in violation of the standard, but the video will be of low quality. This is important to note: the standard does not specify the encoding process.
4Play® MPEG-4 supports variant called MPEG-4 with short headers.
Does MPEG-4 Video support H.263?
H.263 is incorporated as part of MPEG-4. It is known as ‘short header’ inside the specification.
4Play® MPEG-4 is highly optimized for Intel® x86b and ARM®-based processors
Optimization means that key parts of codec that use most of the CPU power are rewritten in assembly language specific for the certain CPU to avoid possible bottlenecks. Special care is taken regarding optimization of memory access.
4Play® MPEG-4 is a 100% Fixed Point, 32-bit Implementation.
4Play® MPEG-4 is currently optimized for Intel’s x86 MMX compatible architectures as well as for ARM, StrongARM, Xscale and other ARM compatible architectures.
4Play® MPEG-4 performance on different ARM CPU/OS combinations
Describe 4Play® performance on different ARM based OS’
Since all of the optimizations for ARM based architectures are written in assembly language independent of OS, performance on different combinations of OS (Linux, WinCE, Symbian) is almost the same.
What ARM OS’ are or will 4Play® be ported to? PlayMedia’s 4Play®MPEG-4-compliant Codec – Decoder and Decoder
At the moment 4Play® MPEG-4 is optimized for x86, WinCE (Smartphone & PocketPC) and Linux variants. Palm OS and Symbian versions of 4Play® MPEG-4 codec for ARM architectures are under development.
Are there exact numbers that can show ARM 4Play® MPEG-4 codec performance?
It is very hard to define exact performance because of many things that can affect (CPU frequency, system architecture, memory bus, memory frequency, memory cache etc.). But some average performance measured on PocketPC running WinCE and Xscale based processor on 400 Mhz shows decoding performance of >30 fps on QVGA (320×240) video as well as encoding performance of >25 fps on QCIF (176×144).
Performance is also dependent on characteristics of encoded video during decoding process and different parameters that can be set during encoding process.
The 4Play® MPEG-4 codec can be used with different types of system wrappers
What types of system wrapper can be with 4Play® MPEG-4 decoder?
As addition to raw MPEG-4 video file that 4Play® MPEG-4 decoder can read, an additional PlayMedia’s library can be used to decode MPEG-4 video file saved into AVI or MPEG-4 system stream.
What types of system wrapper can be with 4Play® MPEG-4 encoder?
As addition to raw MPEG-4 video file that 4Play® MPEG-4 decoder can read, an additional PlayMedia’s library can be used to encode MPEG-4 video file saved into AVI or MPEG-4 system stream.
4Play® MPEG-4 supports additional postprocessing/effects
What can be done with video after decoding?
After decoding upon custom request video can be processed using additionalPlayMedia’s libraries. Supported features are filtering, resizing, mirroring, rotation, YUV-RGB conversion etc.
4Play® MPEG-4 comes as standalone static library (decoder and encoder)
How 4Play® MPEG-4 can be used in custom written application?
The Customer can decide the way that he wants to use 4Play® MPEG-4 codec.
- Static libraries that can be linked to its custom software.
- Static libraries and PlayMedia’s libraries for reading/writing system stream (AVI, MPEG-4).
- Static libraries, PlayMedia’s libraries for reading/writing system stream (AVI, MPEG-4) and additional tools for media synchronization and rendering to system display.
4Play® MPEG-4 Compatibility
Is there any compatibility between 4Play® MPEG-4 and other commercial codecs?
Since 4Play® MPEG-4 is fully compatible with MPEG-4 Simple Profile it can decode any commercial MPEG-4 Simple Profile video stream independently of vendor.
It can also decode certain versions of videos coded with codecs like DivX®, XviD® and 3ivx®. Also, MPEG-4 Simple Profile streams produced with 4Play®MPEG-4 encoder can be decoded using any MPEG-4 Simple Profile compliant decoder.