Saturday, October 11, 2008

Reconsider groove edge as the representation of audio waveform

Summary
  • Previously we decided to collect all pixel-level edges of CCs as our raw database of extracted audio. We hope that resampling and fitting could give us a safely downsampled version of hi-fidelity audio signal.
  • However, there is a fundamental flaw in this approach. By using any low-level edge detection, there is bound to be noise mixed in. Here noise means any pixel that is not representative of audio signal. These noisy pixels, when getting into our process chain, would hardly be removable. See Detail.
  • A possible better way of audio extraction from groove edges would be to perform a fairly dense angular sampling in the beginning instead of trying to perform traditional edge detection; then downsample the result at an audio rate during the fitting process.
Detail
  • See the image below, it can be observed that pixel edges sometimes overlap along the radial direction relative to the disc center; but only the outermost (for outer edge) or the innermost (for inner edge) should count as signal, and all the others are noises.
  • Unfortunately, there is no way to distinguish them unless we do a filtering based on angular sampling right after edge detection.
  • Without such filtering, they will be considered as data for the successive fitting process, which is bound to lead to problematic result.
  • The high level explanation of this is that 1) the input image offers a much higher sampling rate than the output audio rate. 2) traditional image edge detection is a 2D processing, yet our desired edge detection is essentially a process of creating a special 1D database, which has its semantics.
  • As a result of the above two factors, low-level edge detection will incorporate 2D edges that share no semantic meaning with our application; before such 2D data get unwrapped into 1D audio undulation, they need to be filtered out.
  • Because this filtering still requires an angular sampling, it would be better to completely give up on the edge detection and do such angular sampling instead.

No comments: