cta-wave / device-playback-task-force

9 stars 0 forks source link

relax tolerance for currentTime observation #123

Open jpiesing opened 6 months ago

jpiesing commented 6 months ago

Looking at the results from the London plugfest, probably the most commonly failed observation is the accuracy of currentTime. Clause 8.2.5.2 of the DPCTF spec defines the accuracy as follows;

The presented sample shall match the one reported by the currentTime value within the tolerance of +/- (2/framerate + 20ms).

The same text is in 8.18.5.2. and 8.23.5.2.

(2/12.5 + 0.02) = 180ms (2/25 + 0.02) = 100ms (2/50 + 0.02) = 60ms

Looking at most of the failures, a value between 100ms and 160ms would result in a lot more passes. Failures above 160ms are unusual.

We could either increase 2/framerate to 3/framerate or even 4/framerate. but that would make the test useless for the 12.5/15Hz video.

I would be inclined to increase the 20ms to perhaps 100ms. That would result in the following.

(2/12.5 + 0.1) = 260ms (2/25 + 0.1) = 180ms (2/50 + 0.1) = 140ms

We might consider changing "2/" to "1/" to reduce the variation between these. That would give 180, 140 and 120.

It should be noted that "2" and "20' are set in a configuration file so this would not be a change of code by Resillion.

@yanj-github

jpiesing commented 5 months ago

April 10th meeting Discussion

Proposal

Proposal approved.

yanj-github commented 5 months ago

Happy with approved proposal. This is just relax in tolerance, OF will compare given tolerance with detected difference no objection from our end.

jpiesing commented 5 months ago

Happy with approved proposal. This is just relax in tolerance, OF will compare given tolerance with detected difference no objection from our end.

@yanj-github Do you believe the OF will accept 0/framerate +180 or do we need to use 1/framerate + 150?

yanj-github commented 5 months ago

Happy with approved proposal. This is just relax in tolerance, OF will compare given tolerance with detected difference no objection from our end.

@yanj-github Do you believe the OF will accept 0/framerate +180 or do we need to use 1/framerate + 150?

x/framerate used to find first and last possible camera frame numbers which we expect may match the status event QR currentTime. I would prefer 1/framerate. 1/framerate means we seek one more frame for matching current time. For example if status ct detected on same recording frame we search for 1 more frame before it and 1 after it to find the matching time. We can consider 0.5 if you think 1 is too big. But I think we should give it a value instead of pure 0. How about choose between:

jpiesing commented 5 months ago

Happy with approved proposal. This is just relax in tolerance, OF will compare given tolerance with detected difference no objection from our end.

@yanj-github Do you believe the OF will accept 0/framerate +180 or do we need to use 1/framerate + 150?

x/framerate used to find first and last possible camera frame numbers which we expect may match the status event QR currentTime. I would prefer 1/framerate. 1/framerate means we seek one more frame for matching current time. For example if status ct detected on same recording frame we search for 1 more frame before it and 1 after it to find the matching time. We can consider 0.5 if you think 1 is too big. But I think we should give it a value instead of pure 0. How about choose between:

* 1/framerate + 150

* 0.5/framerate + 170?

1/framerate + 150 is good enough.

jpiesing commented 5 months ago

Implemented in Draft-CTA-5003-Ae-v2.04.