DML_RESAMPLE1_OPERATOR_DESC 구조체(directml.h)

배율 인수를 사용하여 원본에서 대상 텐서로 요소를 다시 샘플링하여 대상 텐서 크기를 계산합니다. 선형 또는 가장 가까운 인접 보간 모드를 사용할 수 있습니다. 연산자는 2D뿐만 아니라 여러 차원의 보간을 지원합니다. 따라서 동일한 공간 크기를 유지할 수 있지만 채널 간 또는 일괄 처리 간에 보간할 수 있습니다. 입력 좌표와 출력 좌표 간의 관계는 다음과 같습니다.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

구문

struct DML_RESAMPLE1_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

멤버

InputTensor

형식: const DML_TENSOR_DESC*

입력 데이터를 포함하는 텐서입니다.

OutputTensor

형식: const DML_TENSOR_DESC*

출력 데이터를 쓸 텐서입니다.

InterpolationMode

형식: DML_INTERPOLATION_MODE

이 필드는 출력 픽셀을 선택하는 데 사용되는 보간 종류를 결정합니다.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. 각 출력 요소의 해당 픽셀 가운데에 가장 가까운 입력 요소를 선택하는 가장 가까운 인접 알고리즘을 사용합니다.

  • DML_INTERPOLATION_MODE_LINEAR. 차원당 가장 인접한 2개 입력 요소의 가중 평균을 계산하여 출력 요소를 계산하는 선형 보간 알고리즘을 사용합니다. 리샘플링은 최대 4차원(쿼드라이선형)으로 지원되며, 가중 평균은 각 출력 요소에 대해 총 16개의 입력 요소에서 계산됩니다.

DimensionCount

형식: UINT

Scales, InputPixelOffsets 및 OutputPixelOffsets가 가리키는 배열 의 값 수입니다. 이 값은 InputTensor 및 OutputTensor차원 수와 일치해야 합니다.

Scales

형식: _Field_size_(DimensionCount) const FLOAT*

입력을 다시 샘플링할 때 적용할 크기 조정입니다. 여기서 배율 > 1은 이미지를 스케일 업하고 해당 차원에 대한 이미지를 1 스케일 다운합니다 < . 눈금이 정확히 OutputSize / InputSize일 필요는 없습니다. 크기 조정 후 입력이 출력 바인딩보다 크면 출력 크기로 자립니다. 반면 크기 조정 후 입력이 출력 바인딩보다 작으면 출력 가장자리가 고정됩니다.

InputPixelOffsets

형식: _Field_size_(DimensionCount) const FLOAT*

다시 샘플링하기 전에 입력 픽셀에 적용할 오프셋입니다. 이 값이 이면 0픽셀의 왼쪽 위 모서리가 중심 대신 사용되므로 일반적으로 예상 결과를 제공하지 않습니다. 픽셀의 중심을 사용하여 이미지를 다시 샘플링하고 DML_RESAMPLE_OPERATOR_DESC 것과 동일한 동작을 얻으려면 이 값은 이어야 0.5합니다.

OutputPixelOffsets

형식: _Field_size_(DimensionCount) const FLOAT*

다시 샘플링 후 출력 픽셀에 적용할 오프셋입니다. 이 값이 이면 0픽셀의 왼쪽 위 모서리가 중심 대신 사용되므로 일반적으로 예상 결과를 제공하지 않습니다. 픽셀의 중심을 사용하여 이미지를 다시 샘플링하고 DML_RESAMPLE_OPERATOR_DESC 것과 동일한 동작을 얻으려면 이 값은 이어야 -0.5합니다.

설명

InputPixelOffsets가 0.5로 설정되고 OutputPixelOffsets가 -0.5로 설정된 경우 이 연산자는 DML_RESAMPLE_OPERATOR_DESC 동일합니다.

가용성

이 연산자는 에서 DML_FEATURE_LEVEL_2_1도입되었습니다.

텐서 제약 조건

InputTensorOutputTensor 에는 동일한 DataTypeDimensionCount가 있어야 합니다.

텐서 지원

DML_FEATURE_LEVEL_6_2 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor 출력 1~4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~4 FLOAT32, FLOAT16
OutputTensor 출력 1~4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 FLOAT32, FLOAT16

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
머리글 directml.h