6.2 Transport layer
≈ 28 packets/frame.
With each camera module able to track up to 27 markers at one time (see Chapter 4) the bus bandwidth is clearly a limiting factor. The bandwidth of the bus is limited by the FTDI drivers. The theoretical maximum of USB Hi-Speed (defined in the USB 2.0 specification) is 480 M bits/s . If the FTDI drivers were not the limiting factor then the number of centroid packets/frame could be increased to approximately
FL BBlackfin ≈ 213 packets/frame,
limited by the Blackfin U RT.
n alternative approach to this problem is to improve the efficiency of the protocol.
text protocol is used, there is a considerable inefficiency. The 26 characters of the alphabet plus the comma and carriage return symbols all can be described with just 5 bits. Presently
resulting in a reduction in size of packets of 62.5%.
Clearly this is a trivial coding scheme
but it illustrates that there is great redundancy in this text scheme.
binary protocol could be used to improve the efficiency. Using a binary encoding scheme the raw data as it is stored in the Blackfin’s memory could be sent directly across the com- munications link. Packets would then have fixed lengths as opposed to variable lengths.
centroid packet contains four header fields and ten data fields. These are a centroid ID,
the coordinates of the upper left corner of the ROI, the X and Y numerators that are used to find the centroid coordinates, the sum of signal pixel intensities (the denominator for the fraction that describes the X and Y centroid coordinates), a count of signal pixels within the ROI, the ROI width and height, and the maximum pixel intensity in the ROI. This is shown in Table 6.1 and the size of each field is given in the fourth column. The sum of these fields is 240 bits or 30 bytes. This binary representation is a reduction in size to 30/55 = 54.5 of the original text packet size that could be used to increase the throughput to approximately
51 centroid packets per frame.
final approach is to use a compression algorithm to remove redundancy in the data. For example, Lempel-Ziv  coding (or a variant) could be used to compress data before it is sent across the communications channel. Using a compression algorithm, the steps for sending data from a Black Spot module would be to create a text or binary centroid packet, encode the packet using a compression algorithm, and send the encoded packet to the hub. The Soft Hub would then decompress the packet and decode it. To illustrate the compression that could be achieved by an algorithm such as this, a stream of data from
a Black Spot module was captured.
This was stored in a file.