Кратко
- Поле
tpв RFC 5371 различает progressive frame, нечётное и чётное interlaced field. Для interlace высота main header равна половине отображаемого изображения, поэтому завершённое поле ещё не является готовым кадром. - Marker закрывает последний RTP-пакет frame в каждой сессии, а fragment offset задаёт абсолютную позицию payload в codestream. Ни один сигнал отдельно не подтверждает второе поле, все слои, непрерывность байтов или вывод decoder.
- SDP,
MHF,T, базовые правилаmh_id/priority, защищённые пакеты, resource admission и display образуют разные границы полномочий. Их нужно связывать, а не сжимать в один статус.
Половина изображения могла быть полностью доставлена
RFC 5371 отводит два бита tp типу сканирования. Ноль означает progressive. Один обозначает нечётное поле interlaced video, два — чётное.
При interlace высота, записанная в main header JPEG 2000, составляет половину высоты отображаемого изображения. Receiver должен соединить нечётное поле со следующим чётным и чередовать строки.
Поэтому отчёт «100% пакетов поля получено» может быть истинным и одновременно недостаточным для кадра. Нет противоречия: полностью доставлен объект меньшего уровня.
Нужно доказать, что второе поле принадлежит той же временной паре, что его параметры совместимы, что deinterlacer принял оба и что output появился.
Система, считающая каждый terminal marker отображённым frame, может удвоить число кадров или скрыть половинчатый результат. Поле, frame и display event требуют разных идентификаторов.
SDP разрешал interlace, но не выполнял deinterlace
Параметр interlace в video/jpeg2000 сообщает режим. Если его нет, payload обязан быть progressive, а tp — нулём. Если он присутствует, packet-level tp всё равно должен правильно обозначать odd и even.
Offer/answer выбирает грамматику. Он не подтверждает, что sender соблюдал её, что оба поля пришли, что timestamp позволил pairing или что decoder выполнил deinterlace.
Доказательная цепочка начинается с SDP, затем проверяет packet fields, arrival и output. «Interlace accepted» — control-plane факт. «Frame displayed» — runtime факт.
Несовпадение — самостоятельный incident: progressive SDP с tp=1, два odd подряд, пропущенный even, различающиеся параметры полей или отказ deinterlacer.
Нельзя исправлять их предположением, что видимое поле — опечатка. Неопределённость должна остаться в отчёте.
Marker завершал сессию, а не сборку изображения
Marker RTP ставится в последнем пакете frame. При передаче через несколько RTP-сессий каждая сессия ставит marker на своём последнем пакете этого frame.
Первый terminal marker не закрывает остальные layer sessions. Все markers тоже не доказывают отсутствие внутреннего gap. Для interlace дополнительно остаётся вопрос пары полей.
Нужен manifest ожидаемых sessions и layers, marker каждой, interval coverage и правило качества. Только затем можно спросить о decode.
Если base layer достаточен для деградационного режима, продукт может принять его. Если контракт требует все слои, тот же набор пакетов будет отказом. Marker не выбирает политику.
Latency timer должен называться по событию: session emission end, all expected transport ends, decode end или display. Одно слово «complete» стирает границы.
Offset показывал место, но не соседей
24-битный fragment offset отсчитывается от начала JPEG 2000 codestream. Он позволяет поставить payload в абсолютную позицию frame.
В scalable delivery первая наблюдаемая посылка отдельной session может иметь ненулевой offset, потому что начало frame находится в другой session или layer. Это допустимо.
Но правильная координата не доказывает предыдущие байты. Получение диапазона 3010–4309 не закрывает 210–1609.
Receiver должен строить interval map: frame, session, layer, sequence, offset, length, byte hash. Карта выявляет gaps, overlaps и conflicts.
Наибольший offset — это reach, не coverage. Сумма длин тоже может обмануть из-за overlaps. Криптографическая целостность полученных интервалов не создаёт отсутствующие.
Main header был условием смысла
RFC 5371 прямо говорит: потеря main header делает изображение недекодируемым. Tile data может быть целым, но лишённым общих параметров.
MHF различает отсутствие header, промежуточный fragment, последний fragment и целый header в одном payload.
MHF=2 не утверждает, что ранние части пришли. MHF=3 подтверждает header в текущем payload, но не весь frame.
Поэтому header receipt состоит из byte coverage, parse result и parameter generation. Packet count не заменяет его.
Рекомендация отделять headers для удобства recovery — полезный design choice, но не доказательство, что конкретный sender его применил.
mh_id без RFC 5372 не был поколением cache
Три бита mh_id выглядят как идентификатор main header. В базовом RFC 5371 sender должен поставить ноль, receiver — игнорировать.
RFC 5372 определяет extension для header compensation: сохранение ID при прежних encoder parameters, изменение при новых, rollover и возможное использование сохранённого header.
Наличие поля не означает активную extension. Parser может показать значение, не получив право интерпретировать его как cache generation.
Audit должен связать SDP parameter, active contract, header hash, cache state и compensation result.
Иначе receiver может тайно зависеть от private semantics, а monitoring объявит recovery там, где был только ноль.
T мог отменить tile number
16-битный tile number читается только при T=0. При T=1 receiver обязан его игнорировать.
Sender ставит invalid, если payload содержит только main header или несколько tile-parts. В первом случае tile отсутствует, во втором один номер был бы ложным.
Bits могут выглядеть как правдоподобное число. Без gate они не являются идентификатором.
Плоский telemetry schema, сохраняющий tile и выбрасывающий T, создаёт точную выдумку. Потом header-only packet попадает в статистику конкретного участка изображения.
Хранить нужно тип: valid(tile) либо invalid(reason). Условие — часть данных.
Priority базового режима не была service class
Восьмибитное priority в RFC 5371 для base implementation следует ставить в 255, а receiver должен игнорировать.
RFC 5372 вводит modes для progression, layer, resolution и component. Semantics активируется extension contract.
Даже тогда value не доказывает действие network queue. Нужны negotiation, mapping, scheduler log и measured delivery.
Если считать base 255 высшим приоритетом, monitoring инвертирует спецификацию. Если продавать priority как QoS без результата, intent становится invoice.
Тот же принцип применим к field pairing: заявленный тип не подтверждает выполненную обработку.
Порядок packetization не гарантировал прибытие
Main header, tile-part header и JPEG 2000 packet — packetization units. Sender может объединять несколько, сохраняя codestream order.
Слишком большую unit можно фрагментировать. Fragment не должен делить payload со следующей unit, чтобы boundary оставалась восстанавливаемой.
Это sender-side construction rule. Network способен потерять или reorder RTP packets. Sequence описывает transport, offset — codestream position, unit boundary — parsing.
Правильно упорядоченные полученные части могут окружать отсутствующую unit. Полный codestream может быть отвергнут по resource policy. Decode может дать неприемлемый output.
Каждый переход нуждается в собственном receipt.
Размеры SDP были максимумом, не резервом
video/jpeg2000 требует clock rate и sampling. 90 kHz обязательно поддерживается, другие rates возможны. При предпочтении иной частоты рекомендуется предложить и 90 kHz под другим payload type.
Width и height — optional maxima и появляются вместе. Syntax до 2^32−1 не означает, что receiver выделил memory.
Offer/answer задаёт envelope. Реальный frame, current load, decoder limits и admission остаются локальными.
Если SDP accepted считается decode capacity, resource refusal ошибочно приписывается network или codec defect.
Сохранять нужно declared maxima, actual parameters, admission decision, peak memory, error и output.
Authentication не одобряла изображение
RFC 5371 разделяет confidentiality, integrity и source authentication. Механизм может подтвердить session member и неизменность защищённых bytes.
Authenticated member может отправить неправильный tp, конфликтующие offsets, malformed codestream или excessive dimensions. Integrity сохраняет ошибку.
Потерянное even field не восстанавливается из authentic odd. Подписанный marker остаётся концом своей session.
Исторические ссылки на SRTP, IPsec и TLS для RTP over TCP относятся к контексту 2008 года, а не доказывают нынешнюю конфигурацию.
Crypto receipt должен заканчиваться там, где начинается codec validation.
QoS требовал наблюдать loss
Даже с enhanced QoS receiver должен проверять packet loss и убеждаться, что requested service реально delivered. Иначе следует считать режим best effort.
В best effort поток адаптирует rate или layers либо покидает session при неприемлемом loss, сохраняя fairness к TCP.
Отсутствующий even field или layer может быть loss, adaptation или capture gap. Interval map показывает эффект, control log — причину.
Priority и QoS label не заменяют measurement. Для service receipt нужны request, observed loss, action и result.
Иначе controlled degradation превращается в incident, а incident — в якобы управляемое снижение качества.
RFC 9828 отвечает на другой вопрос
RFC 9828 описывает последующий JPEG-2000 payload для sub-codestream latency, с Main/Body Packets, resync, extended sequence, timing, quality и resolution.
Существующая статья BTW исследует, почему ранний первый пакет не доказывает display latency или recovery. Эта статья не повторяет её.
Здесь объект — field-to-frame boundary в RFC 5371 и право каждого transport signal говорить лишь о своём уровне.
RFC 5372 также не включается автоматически: он расширяет mh_id и priority при отдельном contract.
Нельзя собрать features трёх RFC в воображаемый deployment и назвать это наблюдением.
Минимальная спецификация сохраняет отношения
Minimum Initial Specification Lu Heng используется как раскрытая аналитическая линза. Общий стандарт не обязан навязать один deinterlacer или resource policy. Он должен сохранить факты, необходимые локальному решению.
Минимум: SDP; frame/session/layer/field; sequence, timestamp, Marker; tp, MHF, mh_id, T, priority, tile; offset, intervals, extension; header state; admission, decode и display.
Значение зависит от связи: tile от T, priority от extension, Marker от session manifest, field от пары, offset от frame origin.
Reality Layers задаёт предел: tp=1 — protocol symbol; received odd field — transport fact; paired fields — reconstruction; decoded frame — software result; displayed picture — product event.
Нечётное поле может быть полностью истинным. Оно не обязано притворяться целым кадром.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
