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

instrument mechanism / verified-clean

Data Rate / Storage Planner (Camera Codecs) mechanism

The inspectable method record for Data Rate / Storage Planner (Camera Codecs), kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The arithmetic method is valid after explicit unit and lookup-key conventions are added. The current specification is incomplete because it claims resolution/fps-aware codec lookup and card-count output without listing resolution, fps, or card capacity as required inputs, and it does not define decimal GB versus GiB. The honest-label warning about manufacturer-published nominal rates and scene-dependent VBR is appropriate but should also mention audio/container overhead and recommend a safety margin.

  • storage = dataRate(MB/s) × duration(s) is correct only when the rate is truly in decimal MB/s; if the lookup table stores Mbps, the required conversion is dataRate(Mbps) ÷ 8.
  • The advertised storage GB output requires an explicit convention: decimal GB = MB ÷ 1000, or binary GiB = MiB ÷ 1024. These are not interchangeable.
  • The specification does not state the formula for cards needed. Under the stated storage-planning purpose it should be cardsNeeded = ceil(storageGB ÷ cardCapacityGB), with card capacity using the same decimal/binary convention.
  • Resolution and frame rate are mentioned in the computation claim but are absent from the listed inputs and are required lookup keys for most codec-rate tables.
  • A single nominal rate is not generally valid for VBR H.264 or H.265; scene complexity, encoder settings, audio, container overhead, and camera-specific implementation can change the actual rate.
  • The codec preset lookup must identify the manufacturer, codec profile, resolution, frame rate, bit depth, chroma subsampling, and intra/inter-frame mode; names such as H.264 or ProRes alone are insufficient.

Units and conventions

  • The vectors use decimal megabytes and gigabytes: 1 MB = 1,000,000 bytes and 1 GB = 1,000 MB.
  • When a table value is in megabits per second, conversion is Mbps ÷ 8 = MB/s.
  • Duration is in seconds and must be nonnegative.
  • Card capacity is treated as decimal GB and must be positive.
  • Cards needed is rounded upward with the mathematical ceiling function; zero-duration input produces zero required storage and zero cards under the literal formula.
  • Nominal codec rates exclude or ignore possible audio, container, metadata, filesystem, and formatting overhead unless the selected table explicitly includes them.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "codec_preset": "Apple ProRes 422 HQ",
    "resolution": "3840x2160",
    "fps": 30,
    "duration_s": 3600,
    "card_capacity_GB": 128
  },
  "expected_outputs": {
    "data_rate_Mbps": 707,
    "data_rate_MB_s": 88.375,
    "storage_GB": 318.15,
    "cards_needed": 3
  },
  "reference_data": {
    "codec": "Apple ProRes 422 HQ",
    "resolution": "3840x2160",
    "fps": 30,
    "nominal_data_rate_Mbps": 707,
    "source_convention": "widely tabulated standard value; Apple ProRes manufacturer nominal-rate table"
  },
  "working": "1. Convert rate: 707 Mbps ÷ 8 = 88.375 MB/s. 2. Storage: 88.375 MB/s × 3,600 s = 318,150 MB. 3. Convert to decimal GB: 318,150 MB ÷ 1,000 = 318.15 GB. 4. Cards: ceil(318.15 GB ÷ 128 GB) = ceil(2.485546875) = 3 cards."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

A card size of exactly zero makes the cards-needed calculation undefined due to division by zero; the instrument should reject that input. The convention probe also shows materially different results if duration units are misread.

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-tranche7/tranche7-results.json
  • BOUNDARY_HAZARD_CATALOG.json