Share via


DML_RESAMPLE1_OPERATOR_DESC-Struktur (directml.h)

Setzt Elemente aus der Quelle in den Ziel tensor neu, wobei die Skalierungsfaktoren verwendet werden, um die Größe des Ziel-Tensors zu berechnen. Sie können einen linearen oder nächsten Interpolationsmodus verwenden. Der Operator unterstützt die Interpolation über mehrere Dimensionen hinweg, nicht nur 2D. So können Sie die gleiche räumliche Größe beibehalten, aber kanalübergreifend oder batchübergreifend interpolieren. Die Beziehung zwischen den Eingabe- und Ausgabekoordinaten sieht wie folgt aus.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

Syntax

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;
};

Member

InputTensor

Typ: const DML_TENSOR_DESC*

Der Tensor, der die Eingabedaten enthält.

OutputTensor

Typ: const DML_TENSOR_DESC*

Der Tensor, in den die Ausgabedaten geschrieben werden sollen.

InterpolationMode

Typ: DML_INTERPOLATION_MODE

Dieses Feld bestimmt die Art der Interpolation, die zum Auswählen von Ausgabepixeln verwendet wird.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Verwendet den Nearest Neighbor-Algorithmus , der das Eingabeelement auswäht, das dem entsprechenden Pixelmittelpunkt für jedes Ausgabeelement am nächsten liegt.

  • DML_INTERPOLATION_MODE_LINEAR. Verwendet den linearen Interpolationsalgorithmus , der das Ausgabeelement berechnet, indem der gewichtete Durchschnitt der 2 nächsten benachbarten Eingabeelemente pro Dimension berechnet wird. Das Resampling wird bis zu vier Dimensionen (quadrilinear) unterstützt, wobei der gewichtete Durchschnitt aus insgesamt 16 Eingabeelementen für jedes Ausgabeelement berechnet wird.

DimensionCount

Typ: UINT

Die Anzahl der Werte in den Arrays, auf die Scales, InputPixelOffsets und OutputPixelOffsets zeigen. Dieser Wert muss mit der Dimensionsanzahl von InputTensor und OutputTensor übereinstimmen.

Scales

Typ: _Field_size_(DimensionCount) const FLOAT*

Die Skalierungen, die beim Erneutsampling der Eingabe angewendet werden sollen, wobei > 1 das Bild hochskaliert und 1 das Bild für diese Dimension herunterskaliert < wird. Beachten Sie, dass die Skalierungen nicht genau OutputSize / InputSizesein müssen. Wenn die Eingabe nach der Skalierung größer als die ausgabegebundene ist, wird sie auf die Ausgabegröße zugeschnitten. Wenn die Eingabe nach der Skalierung dagegen kleiner als die ausgabegebundene ist, werden die Ausgaberänder eingespannt.

InputPixelOffsets

Typ: _Field_size_(DimensionCount) const FLOAT*

Die Offsets, die vor dem Resampling auf die Eingabepixel angewendet werden sollen. Wenn dieser Wert ist 0, wird die obere linke Ecke des Pixels anstelle der Mitte verwendet, was normalerweise nicht das erwartete Ergebnis ergibt. Um das Bild mithilfe der Mitte der Pixel neu zuzustempeln und das gleiche Verhalten wie DML_RESAMPLE_OPERATOR_DESC zu erhalten, muss dieser Wert lauten 0.5.

OutputPixelOffsets

Typ: _Field_size_(DimensionCount) const FLOAT*

Die Offsets, die nach dem Resampling auf die Ausgabepixel angewendet werden sollen. Wenn dieser Wert ist 0, wird die obere linke Ecke des Pixels anstelle der Mitte verwendet, was normalerweise nicht das erwartete Ergebnis ergibt. Um das Bild mithilfe der Mitte der Pixel neu zuzustempeln und das gleiche Verhalten wie DML_RESAMPLE_OPERATOR_DESC zu erhalten, muss dieser Wert lauten -0.5.

Hinweise

Wenn die InputPixelOffsets auf 0,5 und die OutputPixelOffsets auf -0,5 festgelegt sind, entspricht dieser Operator DML_RESAMPLE_OPERATOR_DESC.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_2_1eingeführt.

Tensoreinschränkungen

InputTensor und OutputTensor müssen über denselben DataType und DimensionCount verfügen.

Tensorunterstützung

DML_FEATURE_LEVEL_6_2 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 1 bis 4 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Ausgabe 1 bis 4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 1 bis 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 1 bis 4 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 und höher

Tensor Variante Unterstützte Dimensionsanzahl Unterstützte Datentypen
InputTensor Eingabe 4 FLOAT32, FLOAT16
OutputTensor Ausgabe 4 FLOAT32, FLOAT16

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile directml.h