Difference between revisions of "User:Dvw/Spider slow jitter/Lag slow data fix"

From MCEWiki
(Created page with ":'''''NB:''' The following has fast data with 10 samples-per-frame rather than the actual number of 20 just to make the table smaller.'' This is a solution to [[User:Dvw/Spider s…")
 
Line 94: Line 94:
 
! colspan="11" | SLOW FRAME BOUNDARY
 
! colspan="11" | SLOW FRAME BOUNDARY
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
| fast[40] || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |   || rowspan="3" |  
+
| fast[40] || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" style="background: #F77" |   || rowspan="2" |   || rowspan="2" |   || rowspan="2" |  
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
 
| fast[41]
 
| fast[41]
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
| fast[42] || rowspan="7" style="vertical-align: bottom" | slow<sub>MX=0</sub>[3] || rowspan="10" style="vertical-align: top" | slow<sub>MX=1</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=2</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=3</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=4</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=5</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=6</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=7</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=8</sub>[3] || rowspan="7" style="vertical-align: top" | slow<sub>MX=9</sub>[3]
+
| fast[42] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=0</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=1</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=2</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=3</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=4</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=5</sub>[3] || rowspan="8" style="vertical-align: top; background: #F77" | slow<sub>MX=6</sub>[3] || rowspan="8" style="vertical-align: top" | slow<sub>MX=7</sub>[3] || rowspan="8" style="vertical-align: top" | slow<sub>MX=8</sub>[3] || rowspan="8" style="vertical-align: top" | slow<sub>MX=9</sub>[3]
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
 
| fast[43]
 
| fast[43]
Line 116: Line 116:
 
! colspan="11" | SLOW FRAME BOUNDARY
 
! colspan="11" | SLOW FRAME BOUNDARY
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
| fast[50] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=0</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=1</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=2</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=3</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=4</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=5</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=6</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=7</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=8</sub>[4] || rowspan="10" style="vertical-align: bottom" | slow<sub>MX=9</sub>[4]
+
| fast[50] || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp; || rowspan="2" | &nbsp;
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
 
| fast[51]
 
| fast[51]
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
| fast[52]
+
| fast[52] || rowspan="8" style="vertical-align: top" | slow<sub>MX=0</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=1</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=2</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=3</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=4</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=5</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=6</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=7</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=8</sub>[4] || rowspan="8" style="vertical-align: top" | slow<sub>MX=9</sub>[4]
 
|- style="font-family: monospace"
 
|- style="font-family: monospace"
 
| fast[53]
 
| fast[53]

Revision as of 15:13, 29 May 2015

NB: The following has fast data with 10 samples-per-frame rather than the actual number of 20 just to make the table smaller.

This is a solution to Spider slow jitter which happens by only writing slow data on slow frame boundaries. (i.e. whenever mx % FAST_PER_SLOW = FAST_PER_SLOW - 1, write the latest slow data that you have. As before, green cells are fake data; red cells are repeated data. We also have to detect instances where the above condition is never true during a slow frame and add data to keep slow and fast data aligned. This solution can result in discarded data (if the above condition hold multiple times in a single slow frame).

Lag slow data fix.
SLOW FRAME BOUNDARY
fast[ 0] slowMX=0[0] slowMX=1[0] slowMX=2[0] slowMX=3[0] slowMX=4[0] slowMX=5[0] slowMX=6[0] slowMX=7[0] slowMX=8[0] slowMX=9[0]
fast[ 1]
fast[ 2]
fast[ 3]
fast[ 4]
fast[ 5]
fast[ 6]
fast[ 7]
fast[ 8]
fast[ 9]
SLOW FRAME BOUNDARY
fast[10] slowMX=0[1] slowMX=1[1] slowMX=2[1] slowMX=3[1] slowMX=4[1] slowMX=5[1] slowMX=6[1] slowMX=7[1] slowMX=8[1] slowMX=9[1]
fast[11]
fast[12]
fast[13]
fast[14]
fast[15]
fast[16]
fast[17]
fast[18]
fast[19]
SLOW FRAME BOUNDARY
fast[20] slowMX=0[2] slowMX=1[2] slowMX=2[2] slowMX=3[2] slowMX=4[2] slowMX=5[2] slowMX=6[2] slowMX=7[2] slowMX=8[2] slowMX=9[2]
fast[21]
fast[22]
fast[23]
fast[24]
fast[25]
fast[26]
fast[27]
fast[28]
fast[29]
SLOW FRAME BOUNDARY
fast[30] slowMX=0[3] slowMX=1[3] slowMX=2[3] slowMX=3[3] slowMX=4[3] slowMX=5[3] slowMX=6[3] slowMX=7[2] slowMX=8[2] slowMX=9[2]
fast[31]
fast[32]
fast[33]
fast[34]
fast[35]
fast[36]
fast[37]
fast[38]
fast[39]
SLOW FRAME BOUNDARY
fast[40]                    
fast[41]
fast[42] slowMX=0[3] slowMX=1[3] slowMX=2[3] slowMX=3[3] slowMX=4[3] slowMX=5[3] slowMX=6[3] slowMX=7[3] slowMX=8[3] slowMX=9[3]
fast[43]
fast[44]
fast[45]
fast[46]
fast[47]
fast[48]
fast[49]
SLOW FRAME BOUNDARY
fast[50]                    
fast[51]
fast[52] slowMX=0[4] slowMX=1[4] slowMX=2[4] slowMX=3[4] slowMX=4[4] slowMX=5[4] slowMX=6[4] slowMX=7[4] slowMX=8[4] slowMX=9[4]
fast[53]
fast[54]
fast[55]
fast[56]
fast[57]
fast[58]
fast[59]
[&c.]