FAILURE MAP
← Case archive

FA-49341 / PCM sample encoding / Open access

Pcm channel predictor: channel predictor bank · case 01

Interchannel differential PCM reuses the first channel predictor.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Interchannel differential PCM reuses the first channel predictor.

VERIFIED REPAIR

Use the stated conversion contract at channel predictor bank.

Unsuccessful approach: Using the final channel predictor still couples independent channels.

Case contract

Encode frame-major PCM residuals with independent per-channel amplitude predictors and frame-index resets; preserve residual frame shape.

Why this case matters

Offline PCM interchange uses these exact bounded packet and sample representation decisions.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, seeds, resets):
    state=list(seeds)
    out=[]
    for index,frame in enumerate(frames):
        if index in resets:
            state=list(seeds)
        residual=[]
        for channel,sample in enumerate(frame):
            residual.append(sample-state[0])
            state[channel]=sample
        out.append(residual)
    return [out,state]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[5, 10], [7, 9]], [2, 8], [])), [[[3, 2], [2, -1]], [7, 9]])
check('oracle 2', solve(*([[2, 4], [3, 8], [7, 9]], [1, 2], [1])), [[[1, 2], [2, 6], [4, 1]], [7, 9]])
check('oracle 3', solve(*([], [3, 4], [])), [[], [3, 4]])
check('oracle 4', solve(*([[1], [3], [2]], [0], [2])), [[[1], [2], [2]], [2]])
check('oracle 5', solve(*([[-2, 3], [0, 1]], [-1, 4], [])), [[[-1, -1], [2, -2]], [0, 1]])
check('oracle 6', solve(*([[1, 2, 3]], [3, 2, 1], [0])), [[[-2, 0, 2]], [1, 2, 3]])
check('oracle 7', solve(*([[0, 0], [0, 0]], [1, -1], [])), [[[-1, 1], [0, 0]], [0, 0]])
if N == 1: check('variant packet 1', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 2: check('variant packet 2', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 3: check('variant packet 3', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 4: check('variant packet 4', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 5: check('variant packet 5', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[[3, 5], [2, 2]], [7, 9]][[[3, 2], [2, -1]], [7, 9]]Failed
oracle 2[[[1, 2], [2, 5], [4, 2]], [7, 9]][[[1, 2], [2, 6], [4, 1]], [7, 9]]Failed
oracle 3[[], [3, 4]][[], [3, 4]]Passed
oracle 4[[[1], [2], [2]], [2]][[[1], [2], [2]], [2]]Passed
oracle 5[[[-1, 5], [2, 1]], [0, 1]][[[-1, -1], [2, -2]], [0, 1]]Failed
oracle 6[[[-2, 1, 2]], [1, 2, 3]][[[-2, 0, 2]], [1, 2, 3]]Failed
oracle 7[[[-1, 0], [0, 0]], [0, 0]][[[-1, 1], [0, 0]], [0, 0]]Failed
variant packet 1[[[3, 5], [2, 2], [-2, 5], [2, 2]], [7, 9]][[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]]Failed

SHA-256 / 7431f32b19ce306efd962bbabd6f835384b3c038961bc013753eea78ce7ed83e

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, seeds, resets):
    state=list(seeds)
    out=[]
    for index,frame in enumerate(frames):
        if index in resets:
            state=list(seeds)
        residual=[]
        for channel,sample in enumerate(frame):
            residual.append(sample-state[-1])
            state[channel]=sample
        out.append(residual)
    return [out,state]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[5, 10], [7, 9]], [2, 8], [])), [[[3, 2], [2, -1]], [7, 9]])
check('oracle 2', solve(*([[2, 4], [3, 8], [7, 9]], [1, 2], [1])), [[[1, 2], [2, 6], [4, 1]], [7, 9]])
check('oracle 3', solve(*([], [3, 4], [])), [[], [3, 4]])
check('oracle 4', solve(*([[1], [3], [2]], [0], [2])), [[[1], [2], [2]], [2]])
check('oracle 5', solve(*([[-2, 3], [0, 1]], [-1, 4], [])), [[[-1, -1], [2, -2]], [0, 1]])
check('oracle 6', solve(*([[1, 2, 3]], [3, 2, 1], [0])), [[[-2, 0, 2]], [1, 2, 3]])
check('oracle 7', solve(*([[0, 0], [0, 0]], [1, -1], [])), [[[-1, 1], [0, 0]], [0, 0]])
if N == 1: check('variant packet 1', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 2: check('variant packet 2', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 3: check('variant packet 3', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 4: check('variant packet 4', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 5: check('variant packet 5', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[[-3, 2], [-3, -1]], [7, 9]][[[3, 2], [2, -1]], [7, 9]]Failed
oracle 2[[[0, 2], [1, 6], [-1, 1]], [7, 9]][[[1, 2], [2, 6], [4, 1]], [7, 9]]Failed
oracle 3[[], [3, 4]][[], [3, 4]]Passed
oracle 4[[[1], [2], [2]], [2]][[[1], [2], [2]], [2]]Passed
oracle 5[[[-6, -1], [-3, -2]], [0, 1]][[[-1, -1], [2, -2]], [0, 1]]Failed
oracle 6[[[0, 1, 2]], [1, 2, 3]][[[-2, 0, 2]], [1, 2, 3]]Failed
oracle 7[[[1, 1], [0, 0]], [0, 0]][[[-1, 1], [0, 0]], [0, 0]]Failed
variant packet 1[[[-3, 2], [-3, -1], [-4, 1], [-3, -1]], [7, 9]][[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]]Failed

SHA-256 / 4ebf1328e2facd1a14468375eae98427dfca7eeab55836f534031eb16d332e74

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(frames, seeds, resets):
    state=list(seeds)
    out=[]
    for index,frame in enumerate(frames):
        if index in resets:
            state=list(seeds)
        residual=[]
        for channel,sample in enumerate(frame):
            residual.append(sample-state[channel])
            state[channel]=sample
        out.append(residual)
    return [out,state]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('oracle 1', solve(*([[5, 10], [7, 9]], [2, 8], [])), [[[3, 2], [2, -1]], [7, 9]])
check('oracle 2', solve(*([[2, 4], [3, 8], [7, 9]], [1, 2], [1])), [[[1, 2], [2, 6], [4, 1]], [7, 9]])
check('oracle 3', solve(*([], [3, 4], [])), [[], [3, 4]])
check('oracle 4', solve(*([[1], [3], [2]], [0], [2])), [[[1], [2], [2]], [2]])
check('oracle 5', solve(*([[-2, 3], [0, 1]], [-1, 4], [])), [[[-1, -1], [2, -2]], [0, 1]])
check('oracle 6', solve(*([[1, 2, 3]], [3, 2, 1], [0])), [[[-2, 0, 2]], [1, 2, 3]])
check('oracle 7', solve(*([[0, 0], [0, 0]], [1, -1], [])), [[[-1, 1], [0, 0]], [0, 0]])
if N == 1: check('variant packet 1', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 2: check('variant packet 2', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 3: check('variant packet 3', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 4: check('variant packet 4', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
if N == 5: check('variant packet 5', solve(*[[[5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9], [5, 10], [7, 9]], [2, 8], []]), [[[3, 2], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1], [-2, 1], [2, -1]], [7, 9]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
oracle 1[[[3, 2], [2, -1]], [7, 9]][[[3, 2], [2, -1]], [7, 9]]Passed
oracle 2[[[1, 2], [2, 6], [4, 1]], [7, 9]][[[1, 2], [2, 6], [4, 1]], [7, 9]]Passed
oracle 3[[], [3, 4]][[], [3, 4]]Passed
oracle 4[[[1], [2], [2]], [2]][[[1], [2], [2]], [2]]Passed
oracle 5[[[-1, -1], [2, -2]], [0, 1]][[[-1, -1], [2, -2]], [0, 1]]Passed
oracle 6[[[-2, 0, 2]], [1, 2, 3]][[[-2, 0, 2]], [1, 2, 3]]Passed
oracle 7[[[-1, 1], [0, 0]], [0, 0]][[[-1, 1], [0, 0]], [0, 0]]Passed
variant packet 1[[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]][[[3, 2], [2, -1], [-2, 1], [2, -1]], [7, 9]]Passed

SHA-256 / 50d3cb87f732a5b90400db4699553dde86c336ef316bec10605a966ab1197203

Verification & scope

Stipulated finite model; no claim of hardware timing or full file-format conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:44:59.080994+00:00.

Case digest / f4de14c004ba0cce56dfae175793f3d4abd981a2d4b62424c159f6ffd8b92186