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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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.