Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Frame Rate Conversion / Pulldown Calculator mechanism

The inspectable method record for Frame Rate Conversion / Pulldown Calculator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The arithmetic formula is sound under explicit seconds and frames-per-second units, but the instrument claim is incomplete for frame-count inputs and ambiguous for pulldown. The honest label must distinguish exact 23.976-to-29.97 telecine from nominal 24-to-29.97 conversion and must disclose any fractional-frame or rounding behavior.

  • newFrames=duration*newFps is correct only when duration is explicitly in seconds and is preserved during conversion.
  • For a source frame-count input, the required formula is convertedFrames=(sourceFrameCount/sourceFps)*targetFps; this is not stated.
  • A 3:2 pulldown cadence is exact for 23.976 fps to 29.97 fps when those rates are interpreted as 24000/1001 and 30000/1001. It is not an exact duration-preserving conversion from 24 fps to 29.97 fps because 29.97/24 is not exactly 5/4.
  • The cadence phase and ordering are unspecified: 2:3 and 3:2 can describe the same cadence with different starting phases. The actual field pattern should be specified, such as 2:3:2:3 fields per four source frames.
  • The specification does not state how fractional converted frame counts are rounded, accumulated, or represented when the result is not an integer.

Units and conventions

  • Duration is measured in seconds.
  • Frame rates are measured in frames per second.
  • For standard broadcast rates, 23.976 means exactly 24000/1001 fps and 29.97 means exactly 30000/1001 fps, rather than approximate decimal rates.
  • A duration-preserving frame-rate conversion may produce a fractional nominal frame count; an encoded output must define an integer-frame or timebase policy.
  • Pulldown cadence is a field-display pattern, so the field order and starting phase must be defined.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "sourceFps": 24,
    "targetFps": 30,
    "durationSeconds": 10
  },
  "expected_outputs": {
    "convertedDurationSeconds": 10,
    "newFrames": 300
  },
  "working": "newFrames = duration × targetFps = 10 s × 30 frames/s = 300 frames. Duration remains 10 s because the conversion is duration-preserving."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The specification exposes two failure modes: a zero source frame rate causes an undefined duration, and the 24-to-29.97 pulldown branch produces a nominal 30 cadence frames for one second of 24-fps material while direct arithmetic produces 29.97. The duration field also has an unresolved seconds-versus-frames convention ambiguity.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json