An ultrasonic testing system can receive data from at least two ultrasonic transducers and process the data in parallel to each other. The testing system can compress the data by a fixed ratio by storing the value of the sample having the highest amplitude out of a group of samples. The testing system can also provide threshold-based run-length encoding by compressing data by only storing samples which exceed a user-defined threshold value as well as a user-defined range of samples surrounding said samples. The ultrasonic testing system also provides a hardware gate for storing a peak amplitude and associated time-of-flight for a user-defined interval and a gate for storing the time-of-flight for the first excursion of the data through a user-defined threshold and interval. The operation of these gates or the storage of waveform data may be delayed by a constant delay or until the data exceeds a user-selectable threshold during a user-selectable time interval. The system also provides a multi-channel design allowing simultaneous waveform and/or hardware gate acquisition of data on more than one channel and permitting the parallel processing of data.