Expertise
Deep expertise where algorithms meet silicon
Four areas of focus, one way of working: we take demanding signal-processing algorithms and make them run within real-world budgets for cycles, memory, bandwidth and power.
Audio & Signal Processing
Audio has been part of our daily work for two decades, much of it on ultra-low-power DSPs where every cycle and every byte counts. We implement codecs from the specification, turn customer MATLAB models into production code, and optimize both for the target.
What we offer
Implementation or improvement of any audio or voice codec — standard or proprietary — starting from the specification; custom audio and signal-processing components built from your algorithm; porting and optimization for your DSP.
Audio codecs
- LC3
- AAC
- MP3
- Dolby AC-3
- SBC
- Opus
- Vorbis
- WMA
- Lyra (neural)
Voice codecs
- GSM-AMR
- G.722
- G.729
- CVSD
- SILK
- Speex
Audio processing
- Equalizer and spectrum analyzer
- Automatic gain control, dynamic range control
- Tone control and surround sound
- Noise and echo cancellation
- Speech enhancement, incl. RNN-based
- Packet loss concealment
- Sample-rate conversion, incl. asynchronous (ASRC)
- Speaker boost and protection
Signal processing & communications
- AM / FM / DAB modulation and demodulation, RDS
- Baseband communication libraries
- Signal processing for satellite communications
- Digital radar applications
- Haptics
- Embedded lossless compression
- Encryption algorithms
Video & Vision
Video coding is where the team started, inside Philips in the early days of H.264. Since then we have built encoders, decoders and vision pipelines for set-top boxes, mobile phones, cameras and low-power vision processors.
What we offer
Customizable H.264 and H.265 codec stacks adapted to your use case and ready for parallel processing; custom encoder and decoder components; design and optimization of vision components on your platform, for the best performance at the lowest power.
Video & image codecs
- H.264 / AVC — all profiles
- H.265 / HEVC
- SVC
- VC-1
- MPEG-2
- MPEG-4
- H.263
- JPEG
- JPEG 2000
Encoder & decoder algorithms
- Rate control and quantization
- Motion estimation and mode decision, incl. visual quality metrics
- Prediction techniques and entropy coding
- Pre/post-processing, scene-cut detection
- Error detection, resilience and concealment
- Post-decoding image enhancement
- Complexity and quality scalability
- Parallel, multi-processor encoding
Computer vision
- Face detection (Haar cascades)
- Histogram of oriented gradients (HOG)
- Pedestrian and object detection
- Object tracking
- BRISK keypoints
- Blind-spot information systems
- CNN-based detection and classification
- Stereo cameras and 3D meshing
Multimedia systems
Camera, codec, rendering and display middleware and drivers; hardware/software codec partitioning; FFmpeg; DirectShow filters and video players; multimedia file formats.
Edge AI & ML for Signal Processing
Machine learning is now part of the signal chain. We bring neural networks to embedded targets the same way we bring any algorithm there: understand the model, respect the platform budget, integrate it cleanly and prove that it works.
What we offer
Optimized, on-target implementations of CNN- and RNN-based components, tailored to your product — from model hand-over to a validated, integrated library.
Model deployment on embedded targets
Porting trained CNN and RNN models to DSPs, vision processors and NPUs, and running them inside a product's real-time pipeline.
CNN-based vision
Detection and classification pipelines optimized for parallel vision processors. Our CNN work ships inside a commercial SDK and toolkit.
ML for signal enhancement
RNN-based audio and speech enhancement and neural codecs such as Lyra, combined with classical DSP where each does best.
Quantization & fixed-point inference
Numeric formats and precision analysis for inference — applying two decades of fixed-point experience to neural networks.
DSP / NPU integration
Partitioning the workload between CPU, DSP and accelerator, and interfacing the network with pre- and post-processing.
Performance, memory & power
Profiling and optimizing latency, memory footprint, bandwidth and power of the complete pipeline on the target.
DSP & Accelerator Optimization
Almost everything we deliver ends up on a constrained target. We port and optimize in-house, usually beating the agreed targets — and because we have covered so many architectures, ramp-up on a new processor is short.
What we offer
Development, porting and optimization of modules and complete solutions — from specific algorithms or standard codecs — for the platform of your choice.
Fixed-point implementation
Range analysis, format selection and operation-by-operation tailoring; fixed-point C references validated against the floating-point model. We also research new number formats — see Flexed-Point.
Optimization targets
- Cycles (MIPS)
- Instruction cache
- Data cache
- Memory footprint
- Bandwidth
- Power
- Latency
Architectures
VLIW and SIMD DSPs, RISC CPUs, multi-core and parallel processors, microcontrollers with hardware accelerators.
HW/SW partitioning & IP integration
Deciding what runs in software and what in hardware; control software and drivers for hardware IP, such as H.264 and VC-1 blocks on NXP / ST-Ericsson platforms.
Instruction-set co-design
We researched and proposed new TriMedia instructions dedicated to H.264 — they were included in the PNX1700 media processor.
Benchmarking
Profiling, benchmarking and competitor analysis; we implemented and optimized the BDTI benchmarks for the NXP CoolFlux DSP.
Platforms
- Cadence Tensilica
- ARM
- Qualcomm DSP
- NXP CoolFlux DSP / BSP
- Movidius Myriad 2 / Myriad X
- TriMedia
- TI DSPs
- x86 MMX / SSE / SSE2
- Multi-core microcontrollers
- HW accelerators
Method
How we take an algorithm to a product
This methodology is the reason customers come back: components that are high quality, easy to integrate, and often better than the algorithm we were given.
-
Analyze the algorithm
We study the algorithm, its inputs, outputs and requirements, and evaluate candidate target platforms. Mistakes or corner cases overlooked by the algorithm designers are sometimes discovered here — we solve them together.
MATLAB · paper · standard -
Build the reference
From an existing implementation or from a paper or standard, we write the reference implementation on the agreed software architecture — modular and flexible, so it ports and optimizes easily.
C reference + test vectors -
Go fixed-point
In most cases the reference is fixed-point: each operation is tailored, and input, intermediate and output ranges are chosen with care — then validated against the original.
fixed-point C reference -
Reduce complexity
Performance evaluation reveals shortcuts, simplifications and tweaks. We iterate with the algorithm designers to find the sweet spot between quality and performance, and with the integrators on memory, complexity and quality.
profiled, simplified code -
Port, optimize, deliver
The final iteration is polished, modular code. On request we port and optimize it for the target platform, within every constraint identified along the way — then support its integration.
target release + support
Across the product lifecycle
From first specification to long-term support
We can own one phase or the whole path. Quality and support come with every component we deliver; more elaborate testing packages are available on demand.
Consultancy
- Codec and algorithm consulting
- Customer specifications, competitor and solution benchmarks
- Feasibility studies, profiling and benchmarking
- Project planning from idea to development
Software architecture
- Requirements analysis and platform evaluation
- Data flow and control flow design
- Module structure, interfaces and APIs
- Architecture document for the development stages
Development
- Reference and fixed-point implementations
- Porting and optimization for DSP, RISC and low-power processors
- HW IP integration: control software and drivers
- Microcontroller software development kits
Testing & QA
- Test plans and procedures
- Automated test frameworks and extensive regression runs
- Continuous integration (Jenkins and others)
- Complex test systems in MATLAB and Python
Integration & support
- Up-to-date specifications and documentation
- Remote and on-site integration support
- Level-3 customer support
- Support for a chip vendor's own customers
Maintenance & training
- Highly reactive maintenance for demanding customers
- Training on the solutions we deliver
- Training on audio, video and embedded software topics
Specifications & codebase
- Product and module specifications, APIs
- Coding rules tailored to the requirements
- Codebase management and version control
- Configuration management
Project management
- Procedures at CMMI Level 2 standard
- Or we adapt to your way of working
- On-site and off-site resources, small to medium projects
- Identifying and filling gaps in specifications
Have an algorithm that must run in real time on constrained silicon?
Tell us about the target, the budget and the deadline. You will be talking to a senior engineer from the first call.