Pixel Processing
rjo__
Posts: 2,114
Think of the pixel processing as fast array processing of 8 bit values and the discussion becomes a little more general:)
I am working exclusively with 8 bit array values. The pixel processor instructions are flexible and incredibly fast.
We get 4 array values for every long transfer from the hub... which(if I remember correctly) takes about a clock per long through setq2 and rdlong... a single stage array manipulation then takes about 5 clocks... for four array values... meaning that we are averaging 1.5 clocks per array value retrieval AND primary manipulation.
The results of primary processing then need to be examined... as they are used as part of a Boolean tree. This is where things start to slow down.
If there were a threshpix the throughput of each Boolean pass might improve by an order of magnitude (or more!!!:).
The idea of a threshpix would be to replace 8bit values with $FF or $0,depending upon whether they were above,below or equal to a test value... wc,z,wr could be used to indicate the direction,equivalence test and $FF/$0 value select:
thpix D,#testvalue wc,wz,wr
I am working exclusively with 8 bit array values. The pixel processor instructions are flexible and incredibly fast.
We get 4 array values for every long transfer from the hub... which(if I remember correctly) takes about a clock per long through setq2 and rdlong... a single stage array manipulation then takes about 5 clocks... for four array values... meaning that we are averaging 1.5 clocks per array value retrieval AND primary manipulation.
The results of primary processing then need to be examined... as they are used as part of a Boolean tree. This is where things start to slow down.
If there were a threshpix the throughput of each Boolean pass might improve by an order of magnitude (or more!!!:).
The idea of a threshpix would be to replace 8bit values with $FF or $0,depending upon whether they were above,below or equal to a test value... wc,z,wr could be used to indicate the direction,equivalence test and $FF/$0 value select:
thpix D,#testvalue wc,wz,wr