“Signal Enhancement subsystem” clause of FG.VSSR

INTERNATIONAL TELECOMMUNICATION UNION
TELECOMMUNICATION
STANDARDIZATION SECTOR
FOCUS GROUP ON
CAR COMMUNICATION
FG CarCOM-C-38
English only
STUDY PERIOD 2009-2012
Original: English
Detroit, 16-17 July 2012
CONTRIBUTION
Source:
QNX Software Systems
Title:
Proposed DRAFT text and discussion points for “Signal Enhancement subsystem”
clause of FG.VSSR
Abstract
This contribution describes a software program that could become part of FG.VSSR to enable filemode testing of the Signal Enhancement subsystem. This program would handle passing test signals
to and from the signal enhancement subsystem. It would also simulate the dynamic effects
introduced by other subsystems (e.g., acoustic interface).
Purpose: For subsystem evaluation of the signal-enhancement module, pursuant to FG.VSSR.
There are effectively two extremes of testing possible:
1.
Real-time analog audio playback, in situ. Basically this is the existing P.1100 methodology,
implemented at a sub-system analog interface
2.
File-based processing though the library, using a standardized test bed. The vehicle
characteristics-- noise and impulse responses are recorded in advance and used to define a
simulated test environment.
Of course there are any numbers of intermediate methods between these extremes.
For our proposal we will suggest starting with the most basic file-based processing and define a
potential roadmap for functional enhancement.
Baseline requirements for file-based evaluation:

Single file/event processing. This allows the most universal usage, and avoids the need to
define specific data storage locations and file naming requirements related to multiple file
processing. Batch processing can be implemented as desired using batch scripts or custom
control programs.
Contact:
Rod Rempel
QNX Software Systems
Canada
Tel: +1 604-639-5001
Email: [email protected]
Contact:
Scott Pennock
QNX Software Systems
Canada
Tel: +1 408-887-6445
Email: [email protected]
Attention: This is not a publication made available to the public, but an internal ITU-T Focus Group document intended only for
use by participants of the Focus Group and their collaborators in ITU-T Focus Group related work. It shall not be made available to,
and used by, any other persons or entities without the prior written consent of ITU-T.
-2FG CarCOM-C-38









Test files will be in wavefile format, allowing header information regarding sample rate and
bit-depth information encoding.
Impulse response files will be stored as a 32bit wavefile, capturing the response from R2 to
S2 in Figure 1. Primary system latency (R2 to S2) will be captured in the test files as a fixed
delay in the receive file relative to the microphone file.
Vehicle-specific send-path response (MRP to S2 in Figure 1) will be captured in the test
files.
Vehicle-specific noise (BGN in Figure 1) will be captured in the test recordings; voice and
noise will be premixed in the test file.
Support will be for up to two microphone channels, representing audio at S2 in Figure 1.
The receive output and the microphone input must be at the same sample rate for this
implementation, and it must match the sample rate of the impulse-response file. There will be
no resampling in the initial implementation.
Support will be for a single receive channel, representing audio at R3 in Figure 1. There will
not be support for a reference channel (Ref in Figure 1).
Initial support will be for the convolution of receive output with a provided impulse
response, and the result mixed with the microphone channel data before passing to the signal
enhancement
The code will be ANSI standard C, with support for Windows, Macintosh, and Unix file
I/O.
Figure 1 (from FG-CarCOM -C-33 figure 7.8)
Command line interface:
SESSEval.exe micin.wav recin.wav micout.wav recout.wav [-micir micir.fir] [-quiet]
[options]
SESSEval.exe: Signal Enhancement SubSystem Evaluation program (test program).
micin.wav: (required) name of microphone file to process, including path if necessary
recin.wav: (required) name of receive file to process, including path if necessary
-3FG CarCOM-C-38
micout.wav: (required) name of processed microphone audio (S3 in Figure 1), including path if
necessary. If set to NONE then no file is saved.
recout.wav: (required) name of processed receive audio (R2 in Figure 1), including path if
necessary. If set to NONE then no file is saved.
-micir micir.fir: (optional) impulse response file representing the response from R2 to S2, not
including the primary system latency. Default is a Dirac (unity response).
-quiet: (optional) display no messages, only provide an exit status. Default is to display messages to
the standard output stream as well as an exit status.
options:(optional) additional parameter(s) to pass to subsystem library during initialization.
Do we need -timealign options for send / receive? This is needed if the evaluation code does not
deal with data alignment.
Exit code (numbers are placeholders, actual values to be decided):
0
Processing concluded successfully
1
Not enough required parameters passed. One or more of the four required filename
parameters was missing
2
One or more parameter values are missing. --micir, --micbuffer, or --recbuffer were
included without value being passed for them
3
Unrecognized command option
50
micir.fir does not seem to be a valid IR file
51
There is a mismatch in sample rates: micin.wav, micir.fir, and recout.wav must be the same
sample rate
100
Could not open micin.wav for reading, or there was a problem while reading the file
101
micin.wav did not have a valid wave-format header
102
micin.wav had more than 2 channels of audio data
110
Could not open recin.wav for reading, or there was a problem while reading the file
111
recin.wav did not have a valid wave-format header
112
recin.wav had more than 1 channel of audio data
113
recin.wav was shorter than micin.wav (this could be treated as a warning???)
120
Could not open micoutout.wav for writing, or there was a problem while writing the file.
-4FG CarCOM-C-38
130
Could not open recout.wav for writing, or there was a problem while writing the file.
200
An error occurred when creating the signal-enhancement library
210
An invalid value was returned for buffer sizes when creating the signal-enhancement
library
211
An invalid value was returned for audio file information when creating the signalenhancement library
220
An error occurred when passing data into the signal-enhancement library
230
An error occurred when receiving data from the signal-enhancement library
255
An undefined error occurred
Internal function calls:
Int CreateAndInitSESS(SConfig& cfg)
SConfig passes in:
o NumMicChannels
o SRMicIn
o NumRecChannels (always 1 at the moment)
o SRRecIn
o Option string from commandline
CreateAndInitSESS returns 0 if OK, otherwise an error code
If OK, SConfig passes out:
o MicBufferSize (bytes)
o RecBufferSize (bytes)
o MicOutSR
o RecOutSR
o MicAllign (bytes to truncate from the beginning of micout to account for internal
processing)
o RecAlign ((bytes to truncate from the beginning of reccout to account for internal
processing)
Int SESSPassAudio(MicIn, RecIn)
MicIn and RecIn are pointers to arrays of data arrays, even though RecIn can currently be only
1 channel
-5FG CarCOM-C-38
Int SESSGetAudio(MicOut, RecOut)
MicOut and RecOut are pointers to arrays of data arrays, even though at the moment they
should only be 1 channel each.
-6FG CarCOM-C-38
Start
Internal Logic Flow:
Process command line parameters
Yes
Errors?
No
Open input files and read headers
Yes
Errors?
No
Initialize SESS library
(CreateAndInitSESS)
Yes
Errors?
No
Open output files
Yes
Errors?
No
Read input from files
Yes
End of data?
No
Convolve RecOut with IR and
mix with MicIn
Pass to SESS library
(SESSPassAudio)
Close files
Get data from SESS
library
(SESSGetAudio)
No
Yes
Errors?
Exit with errors
Exit
-7FG CarCOM-C-38
Patent rights declaration(s)
QNX, Limited, or its parent company, Research In Motion, Limited, may have current or pending
patent rights relating to the technology described in this contribution and, conditioned on
reciprocity, is prepared to grant licenses under reasonable and non-discriminatory terms as
necessary for implementation of the resulting ITU-T/ITU-R Recommendation | ISO/IEC
International Standard (per box 2 of the ITU-T/ITU-R/ISO/IEC patent statement and licensing
declaration form).
_____________