← Documents Documentation/userspace-api/media/v4l/pixfmt-sdr-pcu16be.rst GitHub 원문 ↗

Linux 6.18.37 · Userspace API / Media / V4L

Planar unsigned 16-bit big-endian IQ 표본

I/Q plane을 buffer 절반씩 분리하는 32-bit slot 형식입니다.

Source pathDocumentation/userspace-api/media/v4l/pixfmt-sdr-pcu16be.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

pixfmt-sdr-pcu16be.rst:1-55

I plane과 Q plane을 buffersize/2 경계로 나누고 각 표본을 4-byte big-endian slot에 저장합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3 .. _V4L2-SDR-FMT-PCU16BE:
4
5 ******************************
6 V4L2_SDR_FMT_PCU16BE ('PC16')
7 ******************************
8
9 Planar complex unsigned 16-bit big endian IQ sample
10
11 Description
12 ===========
13
14 This format contains a sequence of complex number samples. Each complex
15 number consist of two parts called In-phase and Quadrature (IQ). Both I
16 and Q are represented as a 16 bit unsigned big endian number stored in
17 32 bit space. The remaining unused bits within the 32 bit space will be
18 padded with 0. I value starts first and Q value starts at an offset
19 equalling half of the buffer size (i.e.) offset = buffersize/2. Out of
20 the 16 bits, bit 15:2 (14 bit) is data and bit 1:0 (2 bit) can be any
21 value.
22
23 **Byte Order.**
24 Each cell is one byte.
25
26 .. flat-table::
27 :header-rows: 1
28 :stub-columns: 0
29
30 * - Offset:
31 - Byte B0
32 - Byte B1
33 - Byte B2
34 - Byte B3
35 * - start + 0:
36 - I'\ :sub:`0[13:6]`
37 - I'\ :sub:`0[5:0]; B1[1:0]=pad`
38 - pad
39 - pad
40 * - start + 4:
41 - I'\ :sub:`1[13:6]`
42 - I'\ :sub:`1[5:0]; B1[1:0]=pad`
43 - pad
44 - pad
45 * - ...
46 * - start + offset:
47 - Q'\ :sub:`0[13:6]`
48 - Q'\ :sub:`0[5:0]; B1[1:0]=pad`
49 - pad
50 - pad
51 * - start + offset + 4:
52 - Q'\ :sub:`1[13:6]`
53 - Q'\ :sub:`1[5:0]; B1[1:0]=pad`
54 - pad
55 - pad
56

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Planar complex unsigned 16-bit big-endian IQ 표본

1-55

`V4L2_SDR_FMT_PCU16BE` (`PC16`)은 I와 Q를 16-bit unsigned big-endian number로 나타내되 값 하나마다 32-bit 공간을 사용합니다. 남는 bit는 0으로 padding합니다.

Interleaved 형식과 달리 I 표본들이 buffer 앞 절반에 연속되고 Q 표본들은 `offset = buffersize / 2`에서 시작합니다. 원문은 16 bit 가운데 bit 15:2의 14 bit를 data로, bit 1:0을 임의 값으로 규정합니다.

PC16 plane과 byte 순서
위치Byte 배치 / 의미
start + 0 / +4I0 / I1: B0=data[13:6], B1=data[5:0]+2 pad bits, B2=pad, B3=pad
start + offset / +offset+4Q0 / Q1: I plane과 같은 4-byte big-endian 배치

각 표본은 4 byte slot이며 B0가 가장 먼저 저장됩니다.

PC16 buffer 해석
Buffer 크기의 절반으로 Q offset 계산앞 절반의 4-byte slot에서 I 표본 순서대로 읽기Offset 이후 4-byte slot에서 Q 표본 순서대로 읽기각 slot의 유효 data와 padding 구분

Planar I/Q 위치를 계산합니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later

.. _V4L2-SDR-FMT-PCU16BE:

******************************
V4L2_SDR_FMT_PCU16BE ('PC16')
******************************

Planar complex unsigned 16-bit big endian IQ sample

Description
===========

This format contains a sequence of complex number samples. Each complex
number consist of two parts called In-phase and Quadrature (IQ). Both I
and Q are represented as a 16 bit unsigned big endian number stored in
32 bit space. The remaining unused bits within the 32 bit space will be
padded with 0. I value starts first and Q value starts at an offset
equalling half of the buffer size (i.e.) offset = buffersize/2. Out of
the 16 bits, bit 15:2 (14 bit) is data and bit 1:0 (2 bit) can be any
value.

**Byte Order.**
Each cell is one byte.

.. flat-table::
    :header-rows:  1
    :stub-columns: 0

    * -  Offset:
      -  Byte B0
      -  Byte B1
      -  Byte B2
      -  Byte B3
    * -  start + 0:
      -  I'\ :sub:`0[13:6]`
      -  I'\ :sub:`0[5:0]; B1[1:0]=pad`
      -  pad
      -  pad
    * -  start + 4:
      -  I'\ :sub:`1[13:6]`
      -  I'\ :sub:`1[5:0]; B1[1:0]=pad`
      -  pad
      -  pad
    * -  ...
    * - start + offset:
      -  Q'\ :sub:`0[13:6]`
      -  Q'\ :sub:`0[5:0]; B1[1:0]=pad`
      -  pad
      -  pad
    * - start + offset + 4:
      -  Q'\ :sub:`1[13:6]`
      -  Q'\ :sub:`1[5:0]; B1[1:0]=pad`
      -  pad
      -  pad