<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lim-rtp-apv-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="APVPF">RTP payload format for APV</title>
    <seriesInfo name="Internet-Draft" value="draft-lim-rtp-apv-03"/>
    <author initials="Y." surname="Lim" fullname="Youngkwon Lim">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>6105 Tennyson Pkwy, Ste 300</street>
          <city>Plano, TX</city>
          <code>75024</code>
          <country>USA</country>
        </postal>
        <email>yklwhite@gmail.com</email>
      </address>
    </author>
    <author initials="M." surname="Park" fullname="Minwoo Park">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>34, Seongchon-gil, Seocho-gu</street>
          <city>Seoul</city>
          <code>3573</code>
          <country>Republic of Korea</country>
        </postal>
        <email>m.w.park@samsung.com</email>
      </address>
    </author>
    <author initials="M." surname="Budagavi" fullname="Madhukar Budagavi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>6105 Tennyson Pkwy, Ste 300</street>
          <city>Plano, TX</city>
          <code>75024</code>
          <country>USA</country>
        </postal>
        <email>m.budagavi@samsung.com</email>
      </address>
    </author>
    <author initials="R." surname="Joshi" fullname="Rajan Joshi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>11488 Tree Hollow Ln</street>
          <city>San Diego, CA</city>
          <code>92128</code>
          <country>USA</country>
        </postal>
        <email>rajan_joshi@ieee.org</email>
      </address>
    </author>
    <author initials="K." surname="Choi" fullname="Kwang Pyo Choi">
      <organization>Samsung Electronics</organization>
      <address>
        <postal>
          <street>34, Seongchon-gil, Seocho-gu</street>
          <city>Seoul</city>
          <code>3573</code>
          <country>Republic of Korea</country>
        </postal>
        <email>kwangpyo.choi@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="August" day="26"/>
    <area>ART</area>
    <workgroup>avtcore</workgroup>
    <keyword>payload format</keyword>
    <keyword>mezzanine codec</keyword>
    <keyword>visually lossless compression</keyword>
    <abstract>
      <?line 89?>

<t>This document describes RTP payload format for bitstream encoded with Advanced Professional Video (APV) codec.</t>
    </abstract>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the RTP payload format for bitstream encoded with Advanced Professional Video (APV) codec <xref target="I-D.lim-apv"/>. This document defines how to packetize bitstream encoded with APV codec and set the payload header fields. This document also defines how to set the fields of RTP payload header when it carries bitstream encoded with APV codec. The APV codec is a professional video codec that was developed in response to the need for high quality video recording and post production.</t>
      <t>The primary purpose of the APV codec is for use in professional video recording and editing workflows for various types of content. The APV codec supports the following features:</t>
      <ul spacing="normal">
        <li>
          <t>Perceptually lossless video quality that is close to raw video quality</t>
        </li>
        <li>
          <t>Low complexity and high throughput intra frame only coding without pixel domain prediction</t>
        </li>
        <li>
          <t>Support for high bit-rates up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme</t>
        </li>
        <li>
          <t>Frame tiling for immersive content and for enabling parallel encoding and decoding</t>
        </li>
        <li>
          <t>Support for various chroma sampling formats from 4:2:2 to 4:4:4, and bit-depths from 10 to 16</t>
        </li>
        <li>
          <t>Support for multiple decoding and re-encoding without severe visual quality degradation</t>
        </li>
      </ul>
    </section>
    <section anchor="terms">
      <name>Terms</name>
      <section anchor="terms-and-definitions">
        <name>Terms and definitions</name>
        <ul spacing="normal">
          <li>
            <t>access unit (AU): a collection of Primitive Bitstream Units (PBU) including various types of frames, metadata, filler, and access unit information, associated with a specific time</t>
          </li>
          <li>
            <t>band: a defined set of constraints on the value of the maximum coded data rate of each level</t>
          </li>
          <li>
            <t>block: MxN (M-column by N-row) array of samples, or an MxN array of transform coefficients</t>
          </li>
          <li>
            <t>byte-aligned: a position in a bitstream that is an integer multiple of 8 bits from the position of the first bit in the bitstream</t>
          </li>
          <li>
            <t>chroma: a sample array or single sample representing one of the two color difference signals related to the primary colors, represented by the symbols Cb and Cr in 4:2:2 or 4:4:4 color format</t>
          </li>
          <li>
            <t>coded frame: a coded representation of a frame containing all macroblocks of the frame and frame header corresponding to the syntax structure specified in section 5.3.4 of <xref target="I-D.lim-apv"/></t>
          </li>
          <li>
            <t>coded representation: a data element as represented in its coded form</t>
          </li>
          <li>
            <t>component: an array or a single sample from one of the three arrays (luma and two chroma) that compose a frame in 4:2:2, or 4:4:4 color format, or an array or a single sample from an array that compose a frame in 4:0:0 color format, or an array or a single sample from one of the four arrays that compose a frame in 4:4:4:4 color format.</t>
          </li>
          <li>
            <t>decoded frame: a frame derived by decoding a coded frame</t>
          </li>
          <li>
            <t>decoder: an embodiment of a decoding process</t>
          </li>
          <li>
            <t>decoding process: a process specified that reads a bitstream and derives decoded frames from it</t>
          </li>
          <li>
            <t>encoder: an embodiment of an encoding process</t>
          </li>
          <li>
            <t>encoding process: a process that produces a bitstream conforming to this document</t>
          </li>
          <li>
            <t>flag: a variable or single-bit syntax element that can take one of the two possible values: 0 and 1</t>
          </li>
          <li>
            <t>frame: an array of luma samples and two corresponding arrays of chroma samples in 4:2:2, and 4:4:4 color format, or an array of samples in 4:0:0 color format, or four arrays of samples in 4:4:4:4 color format</t>
          </li>
          <li>
            <t>level: a defined set of constraints on the values that may be taken by the syntax elements and variables of this document, or the value of a transform coefficient prior to scaling</t>
          </li>
          <li>
            <t>luma: a sample array or single sample representing the monochrome signal related to the primary colors, represented by the symbol or subscript Y or L</t>
          </li>
          <li>
            <t>macroblock (MB): a square block of luma samples and two corresponding blocks of chroma samples of a frame in 4:2:2 or 4:4:4 color format, or a square block of samples of a frame in 4:0:0 color format, or a square block of four samples of a frame in 4:4:4:4 color format</t>
          </li>
          <li>
            <t>partitioning: a division of a set into subsets such that each element of the set is in exactly one of the subsets</t>
          </li>
          <li>
            <t>prediction: an embodiment of the prediction process</t>
          </li>
          <li>
            <t>prediction process: use of a predictor to provide an estimate of the data element currently being decoded</t>
          </li>
          <li>
            <t>predictor: a combination of specified values or previously decoded data elements used in the decoding process of subsequent data elements</t>
          </li>
          <li>
            <t>primitive bitstream unit (PBU): a data structure to construct an access unit with frame and metadata</t>
          </li>
          <li>
            <t>profile: a specified subset of the syntax of this document</t>
          </li>
          <li>
            <t>quantization parameter (QP): a variable used by the decoding process for scaling of transform coefficient levels</t>
          </li>
          <li>
            <t>raster scan: a mapping of a rectangular two-dimensional pattern to a one-dimensional pattern such that the first entries in the one-dimensional pattern are from the top row of the two-dimensional pattern scanned from left to right, followed by the second, third, etc., rows of the pattern each scanned from left to right</t>
          </li>
          <li>
            <t>raw bitstream: an encapsulation of a sequence of access units where a field indicating the size of an access unit precedes each access units</t>
          </li>
          <li>
            <t>source: a term used to describe the video material or some of its attributes before encoding process</t>
          </li>
          <li>
            <t>syntax element: an element of data represented in the bitstream</t>
          </li>
          <li>
            <t>syntax structure: zero or more syntax elements present together in the bitstream in a specified order</t>
          </li>
          <li>
            <t>tile: a rectangular region of MBs within a particular tile column and a particular tile row in a frame</t>
          </li>
          <li>
            <t>tile column: a rectangular region of MBs having a height equal to the height of the frame and width specified by syntax elements in the frame header</t>
          </li>
          <li>
            <t>tile row: a rectangular region of MBs having a height specified by syntax elements in the frame header and a width equal to the width of the frame</t>
          </li>
          <li>
            <t>tile scan: a specific sequential ordering of MBs partitioning a frame in which the MBs are ordered consecutively in MB raster scan in a tile and the tiles in a frame are ordered consecutively in a raster scan of the tiles of the frame</t>
          </li>
          <li>
            <t>transform coefficient: a scalar quantity, considered to be in a frequency domain, that is associated with a particular one-dimensional or two-dimensional index</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conventions">
      <name>Conventions used in this document</name>
      <section anchor="general">
        <name>General</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/><xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="overview-of-apv">
      <name>Overview of APV</name>
      <section anchor="overview-of-apv-coding-tools">
        <name>Overview of APV coding tools</name>
        <t>The APV codec encodes each frame individually from other frames so that there are no coding dependencies among the frames. A frame is divided into one or more rectangular tiles. Each tiles are also encoded independently from other tiles so that parallel processing of tiles is possible. A tile is further divided into a 16 pixel x 16 pixel size macroblock which include 4 transform blocks of 8 pixel x 8 pixel. Each transform block is transformed using a fixed point DCT and then transformed coefficients are quantized using uniform scalar quantizer. A prediction is applied to the quantized coefficients in the frequency domain. Finally, entropy coding specially designed to support very high throughput is applied.</t>
      </section>
      <section anchor="structure-of-apv-bitstream">
        <name>Structure of APV bitstream</name>
        <section anchor="structure-of-apv-access-unit">
          <name>Structure of APV access unit</name>
          <t>As the APV codec encodes each video frame independently from other video frames, the coded data of each individual video frame, access unit, is self-contained. As there are cases that there are more than one video frames corresponding to a specific time, the access unit is designed to carry multiple video frames and metadata associated to such video frames corresponding to a single time in a single self-contained unit. The access unit is consisted of one or more primitive bitstream units as shown in <xref target="APV-AU_structure"/>. Each PBU carries a single video frame, metadata or filler data. It is assumed that the size of AU is known by external means. The detailed syntax and semantics of access unit is defined in section 5.3.1 of <xref target="I-D.lim-apv"/>.</t>
          <figure anchor="APV-AU_structure">
            <name>A conceptual structure of APV access unit</name>
            <artwork><![CDATA[
      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| primitive bitstream unit|...| primitive bitstream unit|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
        </section>
        <section anchor="structure-of-apv-primitive-bitstream-unit">
          <name>Structure of APV primitive bitstream unit</name>
          <t>The primitive bitstream unit is designed to carry various type of data consisting a single access unit in a consistent structure. The PBU is composed of PBU size, PBU header and PBU data as shown in <xref target="APV-PBU_structure"/>.</t>
          <figure anchor="APV-PBU_structure">
            <name>A conceptual structure of primitive bitstream unit</name>
            <artwork><![CDATA[
      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PBU  size|PBU  header|PBU  data|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
          <t>For easy identification of specific type of data and fast parsing of large size AU, the PBU start with the size information and the first byte of the PBU header provides a type of data carried in a PBU. The list of type of data to be carried in a PBU is listed in <xref target="_table-pbu_type"/>. The detailed syntax and semantics of PBU is specificed in section 5.3.2 and 5.3.3 of <xref target="I-D.lim-apv"/>.</t>
          <table anchor="_table-pbu_type">
            <name>List of PBU types</name>
            <thead>
              <tr>
                <th align="center">pbu_type</th>
                <th align="center">meaning</th>
                <th align="center">notes</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">0</td>
                <td align="center">reserved</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">1</td>
                <td align="center">primary frame</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">2</td>
                <td align="center">non-primary frame</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">3...24</td>
                <td align="center">reserved</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">25</td>
                <td align="center">preview frame</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">26</td>
                <td align="center">depth frame</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">27</td>
                <td align="center">alpha frame</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">28...64</td>
                <td align="center">reserved</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">65</td>
                <td align="center">access unit information</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">66</td>
                <td align="center">metadata</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">67</td>
                <td align="center">filler</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="center">68...255</td>
                <td align="center">reserved</td>
                <td align="center"> </td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="structure-of-apv-pbu-for-coded-frame">
          <name>Structure of APV PBU for coded frame</name>
          <t>The primitive bitstream unit which carries encoded video frames such as primary frame, non-primary frame, preview frame, depth frame or alpha frame, PBU carries a coded frame as shown in <xref target="APV-Frame_structure"/>. To support independent decoding of each frame, each coded frame starts with frame header. Frame header provides basic information for decoder configuration and bitstream processing. It includes profile, level and band of the required decoder, width and height of frame, chroma format and bit depths of pixel data and so on. It also provide distance of capture time between the previously encoded frame and the current frame to indirectly indicate frame rates of encoded video. It can optionally contain color description or quantization matrix.</t>
          <t>As a video frame can be divided into multiple tiles there can be one or more pair of tile size and tile data in a frame. The information about the structure of tiles in a frame is carried in frame header for random access of a certain tile and parallel decoding of tiles.</t>
          <t>A coded frame can optionally have filler at the end. The detailed syntax and semantics of frame and frame header are specified in section 5.3.4 and 5.3.5 of <xref target="I-D.lim-apv"/>, respectively.</t>
          <figure anchor="APV-Frame_structure">
            <name>A conceptual structure of APV PBU containing an encoded video frame</name>
            <artwork><![CDATA[
      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PBU  size|PBU  header|frame  header|tile size|tile data|...| filler|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
          </figure>
        </section>
        <section anchor="structure-of-apv-pbu-for-access-unit-information">
          <name>Structure of APV PBU for access unit information</name>
          <t>When PBU carries access unit information, PBU data carries access unit information specified in 5.3.9 of <xref target="I-D.lim-apv"/>. Access unit information provides number of frames contained in access unit and the types of such frames and information to understand capability of the required decoder such as profile, level, band, the width and height of frame and so on without parsing frame header of all frames. Access unit information can optionally include filler at the end.</t>
        </section>
        <section anchor="structure-of-apv-pbu-for-metadata">
          <name>Structure of APV PBU for metadata</name>
          <t>When PBU carries metadata, PBU data carries metadata specified in 5.3.10 of <xref target="I-D.lim-apv"/>. Metadata starts with its size and it can include more than one type of data consist of type, length and value of data. The list of type of metadata is defined in the section 10.3 of <xref target="I-D.lim-apv"/>.</t>
        </section>
        <section anchor="structure-of-apv-pbu-for-filler">
          <name>Structure of APV PBU for filler</name>
          <t>When PBU carries filler, PBU data carries filler specified in 5.3.11 of <xref target="I-D.lim-apv"/>. Filler can be used to make empty space with a certain size within an access unit to make start position each frames aligned to be a multiple of certain size for fast parsing or to avoid rewriting of entire access unit during editing.</t>
        </section>
      </section>
    </section>
    <section anchor="packetizationrule">
      <name>Packetization rules</name>
      <section anchor="Generalrules">
        <name>General rules</name>
        <t>When APV bitstream is carried by RTP packets, the size of AU is added before the first PBU of each AUs as specified in section 10.2 of <xref target="I-D.lim-apv"/>. The length of the AU size field, au_size specified in section 10.2 of <xref target="I-D.lim-apv"/>, is 32 bits. Then the first byte of the field indicating the size of AU must be the first byte of a payload of an RTP packets when it is carried so that the start of an APV access unit can be always aligned with the start of the payload of an RTP packet. There MUST be no RTP packet carrying data from two different APV AUs.</t>
      </section>
      <section anchor="simplemode">
        <name>Simple mode</name>
        <t>In this mode an APV AU can be fragmented anywhere. The payload of RTP packets does not have to be aligned with beginning or end of any particular internal data structure of an APV bitstream. An example of this mode is shown in <xref target="simpleexample"/></t>
        <figure anchor="simpleexample">
          <name>Example of simple mode</name>
          <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AU size | PBU   |    PBU    | ... |   PBU | PBU |          PBU      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             |             \            /           |                |
|             |              \          /            |\               |
|             |\              \        /             | \              |
|             | \              \      /              |  \             |
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+
|RTP packet #1|  |RTP packet #2| ... |RTP packet #k-1|  |RTP packet #k|
+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+-+  +-+-+-+-+-+-+-+

]]></artwork>
        </figure>
      </section>
      <section anchor="lowdelaymode">
        <name>Low delay mode</name>
        <t>In this mode both the first byte of each PBU except the one immediately following the field indicating the size of AU and the field indicating the size of each tile, tile_size specified in section 5.3.4 of <xref target="I-D.lim-apv"/>, MUST be aligned with the beginning of RTP packet payloads. The first byte of the tile_size_minus1 field MUST be the first byte of a RTP packet payload after payload header except the first one following frame_header. Metadata and filler data can be added to the payload after the last tile data of a coded frame. An example of this mode is shown in <xref target="lowdelayexample"/></t>
        <figure anchor="lowdelayexample">
          <name>Example of low delay mode</name>
          <artwork><![CDATA[
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+      
|AU size| PBU header| frame header|tile size|...|tile size|tile data| filler|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                /|              \                          |
|                               / |                \                        | 
|                             /   |                  \                      |
|                           /     |                    \                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+       +-+-+-+-+-+-+-+-+-+-+
|        RTP packet #1      |     |RTP packet #2|  ...  |   RTP packet #k   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     +-+-+-+-+-+-+-+       +-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>In this mode, frame header can be repeated in any packet containing the last part of a frame or a tile. When frame header is repeated it MUST be placed immediately after the end of tile data or filler data, if exist.</t>
      </section>
      <section anchor="RTPheaderusage">
        <name>RTP Header Usage</name>
        <t>The format of the RTP header is specified in <xref target="RFC3550"/> as reprinted below for convenience. This payload format uses the fields of the header in a manner consistent with that specification.</t>
        <figure anchor="rtp-header">
          <name>RTP Header According to [RFC3550]</name>
          <artwork><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|X|  CC   |M|     PT      |       sequence number         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           timestamp                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           synchronization source (SSRC) identifier            |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |            contributing source (CSRC) identifiers             |
   |                             ....                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
        </figure>
        <t>The RTP header information to be set according to this RTP payload format as follows and the usage of the fields not specified in this section follows the rules defined in <xref target="RFC3550"/> :</t>
        <t>Marker bit (M): 1 bit</t>
        <ul empty="true">
          <li>
            <t>set to 1 for the first packet of each APV AU, i.e. the packet containing the first byte of the field indicating the size of an APV AU.</t>
          </li>
        </ul>
        <t>Timestamp: 32 bits</t>
        <ul empty="true">
          <li>
            <t>The RTP timestamp is set to the sampling timestamp of an APV AU. A 90 kHz clock rate MUST be used. The RTP packets containing the data belong to a single APV AU MUST have same value for this field.</t>
          </li>
        </ul>
      </section>
      <section anchor="payloadheaderusage">
        <name>Payload Header Usage</name>
        <t>Each packet carries APV encoded bitstream MUST have a payload header as shown in <xref target="payload-header"/>.</t>
        <figure anchor="payload-header">
          <name>Payload Header</name>
          <artwork><![CDATA[
    0                   1                   2       
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=0|OM |PT |H|S|     FRAGMENT COUNTER (FC)     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
]]></artwork>
        </figure>
        <t><strong>Version (V)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates the version of the payload header. The version of the header shown in <xref target="payload-header"/> MUST have '0' as the value of this field.</t>
          </li>
        </ul>
        <t><strong>Operation Mode (OM)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates which operation mode is used for packetization of the bitstream.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>00b : reserved</t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>01b : simple mode as defined in <xref target="simplemode"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>10b : low-delay mode as defined in <xref target="lowdelaymode"/></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul spacing="normal">
              <li>
                <t>11b : reserved</t>
              </li>
            </ul>
          </li>
        </ul>
        <t><strong>Payload Type (PT)</strong> : 2 bits</t>
        <ul empty="true">
          <li>
            <t>This field indicates the type of payload. Depending on the packetization mode the semantics of this field is slightly different. When a single packet carries entire frame in simple mode or tile in low delay mode then this field MUST be set to 01b.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><em>For simple mode (OM == '01b')</em></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>00b: neither the first payload nor the last payload</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>01b: the last payload of an APV AU</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>10b: the first payload of an APV AU</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>11b: reserved</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <t><em>For low delay mode (OM == '10b')</em></t>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>00b: a payload containing the first byte of neither an APV PBU nor the first byte of a field indicating the size of tile</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>01b: a payload containing the first byte of an APV PBU</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>10b: a payload containing the first byte of a field indicating the size of tile</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <ul empty="true">
              <li>
                <ul empty="true">
                  <li>
                    <ul spacing="normal">
                      <li>
                        <t>11b: reserved</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t><strong>Frame Header repeated (H)</strong> : 1 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates that the frame header specified in section 5.3.5 of <xref target="I-D.lim-apv"/> is repeated in this payload. When the value of this field is equal to '1', the payload carries frame header. The value of this field MUST NOT to be set to '1' when a payload carries a frame header at the beginning of a coded frame. The value of this field MUST be set to 1 when the value of OM field is equal to 10b and the value of PT field is either 01b or 10b and the payload carries a copy of the frame header already sent. When the value of the OM field is equal to 10b and the value of this field is equal to '1', the payload includes a copy of frame header data after the end of a tile data. If the payload carries the data from the last tile of a frame and there are filler then the copy of a frame header is carried after it. When the value of the OM field is equal to 01b then the value of this field is ignored.</t>
          </li>
        </ul>
        <t><strong>Static Frame Header (S)</strong> : 1 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates the values of frame header are identical except the value of capture_time_distance field with the immediately preceding coded frame sent. When the value of this field is equal to '1' for the RTP packet carrying the first byte of AU, it means that the values of frame header are identical except the value of capture_time_distance field with the last frame header of the AU immediately preceding this AU.</t>
          </li>
        </ul>
        <t><strong>Fragment Counter (FC)</strong> : 16 bit</t>
        <ul empty="true">
          <li>
            <t>This field indicates the number of remaining payloads excluding the current one carrying the current APV AU or tile data, depending on the operation mode. When the value of the Operation Mode field is '01b', then the value of this field indicates the number of payloads carrying the bitstream from a same APV AU. When the value of the Operation Mode field is '10b', then the value of this field indicates the number of payloads carrying the bitstream from a same tile data. When there is a filler immediately after a tile data, such filler is considered as an integral part of the tile data. When there are APV PBUs carrying AU info, metadata or filler, they are considered as an integral part of an APV AU but tile data. When the value of the H field is equal to '1', the frame header repeated after the end of a tile data is considered as an integral part of the tile data. The value of this field carrying the last byte of an APV AU or tile data depending on the value of the OM field will be '0'.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="PayloadFormatParameters">
      <name>Payload Format Parameters</name>
      <section anchor="oparams">
        <name>Media Type Registration</name>
        <t>The receiver MUST ignore any parameter unspecified in this document.</t>
        <t>Type name: video</t>
        <t>Subtype name: apv</t>
        <t>Required parameters: N/A</t>
        <t>Optional parameters: profile-id, level-id, band-id</t>
        <t>Encoding considerations:</t>
        <ul empty="true">
          <li>
            <t>This type is only defined for transfer via RTP (RFC 3550).</t>
          </li>
        </ul>
        <t>Security considerations:</t>
        <ul empty="true">
          <li>
            <t>See <xref target="Security"/> of RFC XXXX.</t>
          </li>
        </ul>
        <t>Interoperability considerations: N/A</t>
        <t>Published specification:</t>
        <ul empty="true">
          <li>
            <t>Please refer to RFC XXXX and APV standard <xref target="I-D.lim-apv"/>.</t>
          </li>
        </ul>
        <t>Applications that use this media type:</t>
        <ul empty="true">
          <li>
            <t>Any application that relies on APV encoded video delivery over RTP</t>
          </li>
        </ul>
        <t>Fragment identifier considerations: N/A</t>
        <t>Additional information: N/A</t>
        <t>Person &amp; email address to contact for further information:</t>
        <ul empty="true">
          <li>
            <t>Youngkwon Lim (yklwhite@gmail.com)</t>
          </li>
        </ul>
        <t>Intended usage: COMMON</t>
        <t>Restrictions on usage: N/A</t>
        <t>Author: See Authors' Addresses section of RFC XXXX.</t>
        <t>Change controller:</t>
        <ul empty="true">
          <li>
            <t>IETF &lt;avtcore@ietf.org&gt;</t>
          </li>
        </ul>
        <section anchor="optionalParameters">
          <name>Definition of optional parameters</name>
          <t>profile-id:</t>
          <ul empty="true">
            <li>
              <t>When profile-id is not present, a value of 33 (i.e., the Baseline profile) MUST be inferred.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>When used to indicate properties of a bitstream, profile-id MUST be derived from the profile_idc field in the frame header. When there is more than one value of profile_idc field are found from frame headers then the largest value among them MUST be used.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>APV encoded data transported over RTP using the technologies of this document SHOULD refer only to frame header that have the same or smaller value in profile_idc.</t>
            </li>
          </ul>
          <t>level-id:</t>
          <ul empty="true">
            <li>
              <t>When level-id is not present, a value of 153 (corresponding to level 5.1, the highest level) MUST be inferred.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>When used to indicate properties of a bitstream, level-id MUST be derived from the level_idc field in the frame header. When there are more than one value of profile_idc field are found from frame headers then the largest value among them MUST be used.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>For either receiving or sending, all levels that are lower than the indicated level MUST also be supported.</t>
            </li>
          </ul>
          <t>band-id:</t>
          <ul empty="true">
            <li>
              <t>When band-id is not present, a value of 0 MUST be inferred.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>When used to indicate properties of a bitstream, band-id MUST be derived from the band_idc in the the frame header. When there are more than one value of band_idc field are found from frame headers then the largest value among them MUST be used.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>For either receiving or sending, all band that are lower than the indicated band MUST also be supported.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sdpParam">
        <name>SDP Parameters</name>
        <t>The receiver MUST ignore any parameter unspecified in this document.</t>
        <section anchor="mapping-of-payload-type-parameters-to-sdp">
          <name>Mapping of Payload Type Parameters to SDP</name>
          <t>When Session Description Protocol (SDP) <xref target="RFC8866"/> is used to describe the sessions using this payload format the mapping is done as follows:</t>
          <ul spacing="normal">
            <li>
              <t>The media name in the "m=" line of SDP MUST be video.</t>
            </li>
            <li>
              <t>The encoding name in the "a=rtpmap" line of SDP MUST be apv (the media subtype).</t>
            </li>
            <li>
              <t>The clock rate in the "a=rtpmap" line MUST be 90000.</t>
            </li>
            <li>
              <t>The optional parameters profile-id and level-id, when present, MUST be included in the "a=fmtp" line of SDP. The fmtp line is expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs.</t>
            </li>
          </ul>
          <t>As main application area of APV is high quality video capturing and editing, it is expected that generally one way APV session is offered over RTP using SDP in a declarative style. All parameters are used to indicate only bitstream properties. For example, in this case, the parameters profile-id and level-id declare the values used by the bitstream, not the capabilities for receiving bitstreams. An example of media representation in SDP for such case is as follows:</t>
          <artwork><![CDATA[
        m=video 49170 RTP/AVP 98
        a=rtpmap:98 apv/90000
        a=fmtp:98 profile-id=30; level_id=153; band-id=0;         
]]></artwork>
          <t>The above represents a stream of data using <xref target="I-D.lim-apv"/> and its payload specification at the baseline profile and level 5.1.</t>
          <t>It is not expected that <xref target="I-D.lim-apv"/> is offered over RTP using SDP in and Offer/Answer model with negotiation.</t>
        </section>
      </section>
    </section>
    <section anchor="CC">
      <name>Congestion Control</name>
      <t>Congestion control for RTP SHALL be used in accordance with RTP <xref target="RFC3550"/> and with any applicable RTP profile, e.g., AVP <xref target="RFC3551"/>. If best-effort service is being used, an additional requirement is that users of this payload format MUST monitor packet loss to ensure that the packet loss rate is within an acceptable range. Packet loss is considered acceptable if a TCP flow across the same network path and experiencing the same network conditions would achieve an average throughput, measured on a reasonable timescale, that is not less than all RTP streams combined are achieved. This condition can be satisfied by implementing congestion-control mechanisms to adapt the transmission rate, by implementing the number of layers subscribed for a layered multicast session, or by arranging for a receiver to leave the session if the loss rate is unacceptably high.</t>
      <t>The bitrate adaptation necessary for obeying the congestion control principle is easily achievable when real-time encoding is used, for example, by adequately tuning the quantization parameter. However, when pre-encoded content is being transmitted, bandwidth adaptation requires the pre-coded bitstream to be tailored for such adaptivity. Regardless of the method used for bandwidth adaptation, the resulting bitstream MUST be compliant with <xref target="I-D.lim-apv"/>.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>The scope of this section is limited to the payload format itself and to one feature of <xref target="I-D.lim-apv"/> that may pose a particularly serious security risk if implemented naively. Implementers are advised to read and understand relevant security-related documents, especially those pertaining to RTP (see the Security Considerations section in <xref target="RFC3550"/>). Implementers should also consider known security vulnerabilities of video coding and decoding implementations in general and avoid those.</t>
      <t>Within this RTP payload format no security threats other than those common to RTP payload formats are known. In other words, neither the various media-plane-based mechanisms nor the signaling part of this document seem to pose a security risk beyond those common to all RTP-based systems.</t>
      <t>Because the data compression used with this payload format is applied end-to-end, any encryption needs to be performed after compression. A potential denial-of-service threat exists for data encodings using compression techniques that have non-uniform receiver-end computational load.  The attacker can inject pathological datagrams into the bitstream that are complex to decode and that cause the receiver to be overloaded.</t>
      <t>APV data can include user-data as a part of metadata. <xref target="I-D.lim-apv"/> does not specify how to process such data. Depending on the user-data, it might be possible for a sender to generate user-data in a manner to crash the receiver. Receivers must ensure that it knows the format of user-data and trust the sender before it process user-data. In any case, processing of user-data is not required for decoding of APV data. So, receivers does not have to try to process unknown user-data.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>A new media type, as specified in <xref target="oparams"/> of this document, is to be registered with IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.lim-apv">
          <front>
            <title>Advanced Professional Video</title>
            <author fullname="Youngkwon Lim" initials="Y." surname="Lim">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Minwoo Park" initials="M." surname="Park">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Madhukar Budagavi" initials="M." surname="Budagavi">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Rajan Joshi" initials="R." surname="Joshi">
              <organization>Samsung Electronics</organization>
            </author>
            <author fullname="Kwang Pyo Choi" initials="K. P." surname="Choi">
              <organization>Samsung Electronics</organization>
            </author>
            <date day="11" month="August" year="2025"/>
            <abstract>
              <t>   This document describes bitstream format of Advanced Professional
   Video (APV) and decoding process of it.  APV is a professional video
   codec providing visually lossless compression mainly for recording
   and post production.  APV is designed and developed to be open public
   standard with no licensing and royalty is required for use.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lim-apv-06"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
dWN/Y/oRyAmo+uB/Aa1j7bkueAAA

-->

</rfc>
