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

Linux 6.18.37 · Userspace API / Media / V4L

Planar unsigned 18-bit big-endian IQ 표본

18-bit I/Q의 planar 32-bit slot 배치를 설명합니다.

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

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

1. 요약·해설

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

요약·해설

pixfmt-sdr-pcu18be.rst:1-55

I와 Q plane을 buffer 절반씩 나누고 각 18-bit 표본을 big-endian 4-byte slot에 배치합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3 .. _V4L2-SDR-FMT-PCU18BE:
4
5 ******************************
6 V4L2_SDR_FMT_PCU18BE ('PC18')
7 ******************************
8
9 Planar complex unsigned 18-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 18 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 18 bits, bit 17:2 (16 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[17:10]`
37 - I'\ :sub:`0[9:2]`
38 - I'\ :sub:`0[1:0]; B2[5:0]=pad`
39 - pad
40 * - start + 4:
41 - I'\ :sub:`1[17:10]`
42 - I'\ :sub:`1[9:2]`
43 - I'\ :sub:`1[1:0]; B2[5:0]=pad`
44 - pad
45 * - ...
46 * - start + offset:
47 - Q'\ :sub:`0[17:10]`
48 - Q'\ :sub:`0[9:2]`
49 - Q'\ :sub:`0[1:0]; B2[5:0]=pad`
50 - pad
51 * - start + offset + 4:
52 - Q'\ :sub:`1[17:10]`
53 - Q'\ :sub:`1[9:2]`
54 - Q'\ :sub:`1[1:0]; B2[5:0]=pad`
55 - pad
56

3. 한국어 전문 번역

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

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

1-55

`V4L2_SDR_FMT_PCU18BE` (`PC18`)은 I와 Q를 각각 18-bit unsigned big-endian number로 표현하고 32-bit 공간에 저장합니다. 사용하지 않는 나머지 bit는 0으로 padding합니다.

I plane은 buffer 시작에서, Q plane은 `offset = buffersize / 2`에서 시작합니다. 원문은 18 bit 가운데 bit 17:2의 16 bit를 data로, bit 1:0을 임의 값으로 설명합니다.

PC18 plane과 byte 순서
위치Byte 배치 / 의미
start + 0 / +4I0 / I1: B0=[17:10], B1=[9:2], B2=[1:0]+6 pad bits, B3=pad
start + offset / +offset+4Q0 / Q1: I plane과 같은 4-byte 배치

각 4-byte slot의 big-endian 배치입니다.

PC18 buffer 해석
Q plane offset을 buffersize/2로 계산I plane을 4 byte 단위로 순회Q plane을 같은 stride로 순회B2와 B3의 padding 영역을 구분

두 plane과 표본 slot을 분리합니다.

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

.. _V4L2-SDR-FMT-PCU18BE:

******************************
V4L2_SDR_FMT_PCU18BE ('PC18')
******************************

Planar complex unsigned 18-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 18 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 18 bits, bit 17:2 (16 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[17:10]`
      -  I'\ :sub:`0[9:2]`
      -  I'\ :sub:`0[1:0]; B2[5:0]=pad`
      -  pad
    * -  start + 4:
      -  I'\ :sub:`1[17:10]`
      -  I'\ :sub:`1[9:2]`
      -  I'\ :sub:`1[1:0]; B2[5:0]=pad`
      -  pad
    * -  ...
    * - start + offset:
      -  Q'\ :sub:`0[17:10]`
      -  Q'\ :sub:`0[9:2]`
      -  Q'\ :sub:`0[1:0]; B2[5:0]=pad`
      -  pad
    * - start + offset + 4:
      -  Q'\ :sub:`1[17:10]`
      -  Q'\ :sub:`1[9:2]`
      -  Q'\ :sub:`1[1:0]; B2[5:0]=pad`
      -  pad