162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _V4L2-SDR-FMT-PCU20BE:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci******************************
662306a36Sopenharmony_ciV4L2_SDR_FMT_PCU20BE ('PC20')
762306a36Sopenharmony_ci******************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciPlanar complex unsigned 20-bit big endian IQ sample
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciDescription
1262306a36Sopenharmony_ci===========
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciThis format contains a sequence of complex number samples. Each complex
1562306a36Sopenharmony_cinumber consist of two parts called In-phase and Quadrature (IQ). Both I
1662306a36Sopenharmony_ciand Q are represented as a 20 bit unsigned big endian number stored in
1762306a36Sopenharmony_ci32 bit space. The remaining unused bits within the 32 bit space will be
1862306a36Sopenharmony_cipadded with 0. I value starts first and Q value starts at an offset
1962306a36Sopenharmony_ciequalling half of the buffer size (i.e.) offset = buffersize/2. Out of
2062306a36Sopenharmony_cithe 20 bits, bit 19:2 (18 bit) is data and bit 1:0 (2 bit) can be any
2162306a36Sopenharmony_civalue.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci**Byte Order.**
2462306a36Sopenharmony_ciEach cell is one byte.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci.. flat-table::
2762306a36Sopenharmony_ci    :header-rows:  1
2862306a36Sopenharmony_ci    :stub-columns: 0
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci    * -  Offset:
3162306a36Sopenharmony_ci      -  Byte B0
3262306a36Sopenharmony_ci      -  Byte B1
3362306a36Sopenharmony_ci      -  Byte B2
3462306a36Sopenharmony_ci      -  Byte B3
3562306a36Sopenharmony_ci    * -  start + 0:
3662306a36Sopenharmony_ci      -  I'\ :sub:`0[19:12]`
3762306a36Sopenharmony_ci      -  I'\ :sub:`0[11:4]`
3862306a36Sopenharmony_ci      -  I'\ :sub:`0[3:0]; B2[3:0]=pad`
3962306a36Sopenharmony_ci      -  pad
4062306a36Sopenharmony_ci    * -  start + 4:
4162306a36Sopenharmony_ci      -  I'\ :sub:`1[19:12]`
4262306a36Sopenharmony_ci      -  I'\ :sub:`1[11:4]`
4362306a36Sopenharmony_ci      -  I'\ :sub:`1[3:0]; B2[3:0]=pad`
4462306a36Sopenharmony_ci      -  pad
4562306a36Sopenharmony_ci    * -  ...
4662306a36Sopenharmony_ci    * - start + offset:
4762306a36Sopenharmony_ci      -  Q'\ :sub:`0[19:12]`
4862306a36Sopenharmony_ci      -  Q'\ :sub:`0[11:4]`
4962306a36Sopenharmony_ci      -  Q'\ :sub:`0[3:0]; B2[3:0]=pad`
5062306a36Sopenharmony_ci      -  pad
5162306a36Sopenharmony_ci    * - start + offset + 4:
5262306a36Sopenharmony_ci      -  Q'\ :sub:`1[19:12]`
5362306a36Sopenharmony_ci      -  Q'\ :sub:`1[11:4]`
5462306a36Sopenharmony_ci      -  Q'\ :sub:`1[3:0]; B2[3:0]=pad`
5562306a36Sopenharmony_ci      -  pad
56