The TRIAL Group

This group is common in C3D files generated by Vicon Motion Systems and stores the C3D frame range using a method that works around the traditional limit when the POINT:FRAMES parameter is written as an unsigned 16-bit integer.  While this group is undocumented, the parameters described in this group may be used to support the synchronization of data within the C3D file with external video files containing odd and even fields of data.

The total number of 3D frames may be stored in the POINT:FRAMES parameter as an unsigned 16-bit integer, which limits the maximum frame count to no more than 65535 frames.  When using high-speed video cameras, this translates to a trial of less than five minutes long at 240Hz.  To exceed the unsigned 16-bit integer limit, and allow more than 65535 frames to be stored, a new TRIAL group containing two new parameters (ACTUAL_START_FIELD and ACTUAL_END_FIELD) was added to C3D files by Vicon Motion Systems to store the first and last 3D frame numbers of data in the C3D file with a unique 32-bit integer resolution in the TRIAL group.

Figure 46 – The ACTUAL_START_FIELD and ACTUAL_END_FIELD parameter structure.

The structure of typical ACTUAL_START_FIELD and ACTUAL_END_FIELD parameters, in an Intel formatted C3D file, is shown above, the ACTUAL_START_FIELD (red) is 177 (0x00B1h, 0x0000h) and the ACTUAL_END_FIELD (green) is 1644 (0x066Ch, 0x0000h).  All the TRIAL parameters are typically unlocked and have no parameter descriptions documenting their function.

This method ignores the possibility of storing the total C3D frame count as a floating-point POINT:FRAMES parameter, an option for all software applications that read C3D parameters correctly by determining the parameters type before reading the stored values.  This is probably a result of the first C3D user guide describing the way that data was being stored in C3D files at the time that the C3D user guide was written, instead of the way that data could be stored in C3D files.

A potential complication exists because AMASS, the first C3D software application, recorded the frame range of the raw data that was used to create each C3D file in the C3D header, resulting in subsequent applications incorrectly assuming that the frame numbers recorded in the C3D header were the frame numbers of the data in the C3D file.  This is not the case, while the two sets of numbers are normally related there is no requirement that they match.  But as a result of this faulty assumption some software applications may expect that the TRIAL:ACTUAL_START_FIELD and TRIAL:ACTUAL_END_FIELD parameters duplicate the C3D header values.

More:

TRIAL:ACTUAL_START_FIELD

TRIAL:ACTUAL_END_FIELD

The TRIAL frame calculation

TRIAL:CAMERA_RATE