A telecommunications company engaged us to help resolve poor quality video from their custom USB video driver. Their device was using a ST Micro ISP1763 controller, which is a single-chip, Hi-Speed USB OTG controller. Despite advertising compliance with USB 2.0 and transfer speeds of up to 480 Mbps, the video quality was poor. Additionally, other USB peripherals would not function when the USB camera was connected.
Using both their USB video camera, and some generic USB web cams, we analyzed the throughput to determine the bottleneck and discovered:
- Issues in ISP1763 driver where the code wrote 32-bits to a 16-bit register
- Noise generated by dirty lines on the PCB
We compressed the video before sending the data over USB to improve throughput.
The changes in software resolved the performance issues for the current hardware design, and our detection of the hardware problem resolved the issue for future revisions of the hardware.