Bagikan melalui


struktur D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 (d3d12umddi.h)

Struktur D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 berisi parameter tingkat urutan untuk input operasi pengodean video.

Sintaks

typedef struct D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 {
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0                 Flags;
  D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080                            IntraRefreshConfig;
  D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2                           RateControl;
  D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080                  PictureTargetResolution;
  D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080              SelectedLayoutMode;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 FrameSubregionsLayoutData;
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0                 CodecGopSequence;
} D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0;

Anggota

Flags

Nilai D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0 yang menunjukkan bendera deskriptor kontrol urutan untuk operasi bingkai enkode saat ini.

IntraRefreshConfig

Struktur D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080 yang menentukan parameter untuk mode intra-refresh yang harus digunakan saat memicu sesi intra-refresh. Lihat Keterangan untuk detail tentang penggunaan intra-fresh.

RateControl

Struktur D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2 yang menentukan konfigurasi kontrol laju.

Periksa bendera D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RATE_CONTROL_RECONFIGURATION_AVAILABLE untuk menentukan apakah konfigurasi ulang dinamis kontrol laju didukung:

  • Jika didukung, RateControl yang dimodifikasi menyebabkan algoritma kontrol laju dimulai ulang, dengan konfigurasi baru dimulai dari eksekusi perintah EncodeFrame terkait.
  • Jika tidak didukung, RateControl harus diatur di awal sesi pengodean dan tidak berubah selama sesi.

PictureTargetResolution

Struktur D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080 yang menjelaskan resolusi yang akan digunakan saat mengodekan bingkai ini. Resolusi target harus ditetapkan berdasarkan daftar resolusi yang ditentukan ketika timbunan encoder terkait untuk operasi ini dibuat.

Periksa bendera D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RESOLUTION_RECONFIGURATION_AVAILABLE untuk menentukan apakah konfigurasi ulang dinamis untuk resolusi didukung:

  • Jika didukung, PictureTargetResolution menunjukkan resolusi yang akan digunakan untuk perintah EncodeFrame terkait. Dalam beberapa codec, perubahan resolusi di tengah sesi pengodean mungkin memerlukan GOP untuk diatur ulang dengan permintaan bingkai IDR/Kunci paksa potensial, juga mengatur ulang buffer buffer gambar yang didekode (DPB) dan algoritma manajemen bingkai.
  • Jika tidak didukung, PictureTargetResolution menunjukkan resolusi target untuk seluruh sesi pengodean dan tidak boleh diubah selama sesi.

SelectedLayoutMode

Nilai D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 yang menunjukkan mode tata letak mana yang sedang digunakan, dan karenanya anggota serikat mana yang akan digunakan dalam FrameSubregionsLayoutData.

Periksa bendera D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE untuk menentukan apakah konfigurasi ulang dinamis subregion didukung:

  • Jika didukung, SelectedLayoutMode menunjukkan mode partisi subregion yang digunakan untuk perintah EncodeFrame terkait.
  • Jika tidak didukung, *SelectedLayoutMode menunjukkan mode subregion target dari sesi pengodean penuh dan tidak boleh diubah selama sesi pengodean.

FrameSubregionsLayoutData

Struktur D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 yang berisi tata letak subregion gambar data khusus codec opsional. Jika SelectedLayoutMode menunjukkan bahwa tidak ada subregion, anggota ini harus NULL.

CodecGopSequence

Struktur D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 yang menentukan GOP saat ini yang digunakan dalam urutan video, dalam urutan tampilan. Panggilan ke EncodeFrame harus mengikuti GOP ini tetapi secara berurutan setelah B-Frames menyusun ulang.

Periksa bendera D3D12_VIDEO_ENCODER_SUPPORT_FLAG__0083_0_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE untuk menentukan apakah konfigurasi ulang dinamis GOP didukung:

  • Jika didukung, CodecGopSequence menunjukkan mode subregion GOP baru yang digunakan mulai dari perintah EncodeFrame terkait.
  • Jika tidak didukung, CodecGopSequence menunjukkan pola GOP target (dalam urutan tampilan) dari sesi pengodean penuh dan tidak boleh diubah selama sesi pengodean.

Keterangan

Lihat Pengodean video D3D12 untuk informasi umum.

Menggunakan intra-refresh

Penggunaan bingkai referensi dua arah (B Frame) saling eksklusif dengan intra-refresh. Pemanggil harus memeriksa bahwa struktur CodecGopSequence tidak berisi bingkai B jika mode intra-refresh aktif. Saat mengkueri untuk D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA dengan mode intra-refresh selain D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, kumpulan CodecGopSequence tidak boleh berisi bingkai B, atau kueri tidak akan mengembalikan dukungan.

Penggunaan intra-refresh tak terbatas dimungkinkan dengan secara berkala meminta gelombang baru intra-refresh setelah setiap intra-refresh selesai.

Saat memulai penyegaran intra-refresh durasi N, host melakukan hal berikut:

  • Mengatur bendera kontrol gambar yang sesuai untuk memulai intra-refresh;
  • Mengontrol indeks bingkai antara [0..N) dalam struktur kontrol gambar untuk mengisyaratkan kepada driver tentang kemajuan sesi refresh intra.

Perilaku yang diharapkan ketika secara eksplisit meminta gelombang intra-refresh dengan durasi N frame berikut:

  • Jika permintaan untuk intra-refresh terjadi di awal GOP, intra-refresh terjadi untuk bingkai N dan kemudian GOP baru dimulai dengan bingkai I.

  • Jika permintaan untuk intra-refresh terjadi di tengah GOP, grup gambar akan berakhir sampai perintah EncodeFrame terakhir yang dikirimkan dan dimulai ulang setelah sesi intra-refresh dengan GOP baru dimulai dengan bingkai I. Misalnya, ketika GOP adalah IPPPP... IPPPP..., jika mulai intra-refresh diminta pada pengiriman parsial "IPP" DARI GOP, dua bingkai P terakhir dari GOP tersebut akan diabaikan, sesi intra-refresh akan dikeluarkan untuk bingkai N berikutnya, dan kemudian bingkai kunci baru yang memulai ulang struktur GOP diharapkan.

Untuk intra-refresh berbasis baris:

  • Struktur GOP yang dikonfigurasi harus dikonfigurasi ulang ke IPPP Tak Terbatas... P... GOP (GOPLength = 0u dan PPicturePeriod = 1u) selama durasi sesi intra-refresh. Kemudian dapat dikonfigurasi ulang lagi setelah gelombang intra-refresh selesai.

  • Mode partisi subregion yang dikonfigurasi akan dikonfigurasi ulang agar sesuai dengan pemartisian irisan seragam N per bingkai selama durasi perintah N EncodeFrame . Ini sangat penting ketika partisi subregion diatur ke mode yang tidak kompatibel dengan persyaratan intra-refresh, misalnya ketika baris unit berkode intra dalam ikhtisar akan mengganggu batasan yang diatur ke byte per ikhtisar. Harapan untuk intra-refresh berbasis baris adalah bahwa bingkai yang dihasilkan berisi irisan N, semua irisan P, kecuali irisan baris intra-refresh saat ini, yang harus menjadi irisan I.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11 (WDDM 3.0)
Header d3d12umddi.h

Lihat juga

D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0

PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2