Untuk Mendesinterlace Video

[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK, adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Penulis Sink alih-alih Windows Media Format 11 SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Beberapa sumber video, seperti kartu pengambilan video, mengirimkan data video untuk tampilan terjalin. Setiap bingkai video yang terjalin terdiri dari dua bidang. Bidang atas berisi baris pertama video dan setiap baris lainnya setelahnya. Bidang bawah berisi baris kedua video dan setiap baris lainnya setelahnya. Jadi satu bidang berisi semua baris bernomor genap dan yang lainnya berisi semua baris bernomor ganjil. Bidang yang membentuk bingkai mewakili waktu presentasi yang sedikit berbeda sehingga, ketika diselingi, bidang tersebut tidak membentuk gambar statis.

Ketika Anda ingin menampilkan video di monitor komputer, setiap bingkai video harus ditampilkan sebagai satu gambar (metode ini menampilkan video satu bingkai penuh pada satu waktu disebut video progresif .) Jika Anda menampilkan video yang terjalin secara progresif, bingkai mungkin tidak terlihat benar, karena perbedaan waktu antara kedua bidang. Codec Windows Media Video dan codec Profil Tingkat Lanjut Windows Media Video mendukung fitur prapemroseduran yang mengonversi konten yang terjalin menjadi bingkai progresif.

Untuk memiliki video input deinterlace codec, panggil metode IWMWriterAdvanced2::SetInputSetting . Pengaturan yang akan digunakan g_wszDeinterlaceMode. Atur mode deinterlacing ke salah satu nilai berikut.

Nilai Deskripsi
WM_DM_NOTINTERLACED Input bersifat progresif. Gunakan pengaturan ini untuk berhenti mendeinterlacing ketika Anda sebelumnya telah mengatur mode deinterlacing ke nilai lain.
WM_DM_DEINTERLACE_NORMAL Pilih mode ini untuk memadukan bidang genap dan ganjil dari bingkai terjalin (menggunakan mekanisme kompensasi gerakan). Manfaat:
  • Artefak interlace dari tampilan progresif berkurang secara signifikan.
  • Codec Windows Media Video menghasilkan video terkompresi berkualitas lebih tinggi.
WM_DM_DEINTERLACE_HALFSIZE Pilih mode ini saat resolusi output setengah, atau kurang, dari resolusi input. Misalnya, gunakan mode ini saat resolusi video input adalah 640 x 480 piksel dan resolusi video output adalah 320 x 240 piksel. Manfaat:
  • Artefak interlace dari tampilan progresif berkurang secara signifikan.
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE Pilih mode ini ketika resolusi output setengah, atau kurang, dari resolusi input dan kecepatan bingkai output dua kali lebih tinggi. Misalnya, gunakan mode ini saat resolusi video input adalah 640 x 480 piksel pada 30 bingkai/detik yang saling terkait dan resolusi video output adalah 320 x 240 piksel pada 60 bingkai/detik. Manfaat:
  • Ini menghasilkan bingkai progresif berkualitas tinggi, karena setiap bidang dikonversi menjadi bingkai sehingga tidak perlu memadukan informasi apa pun.
  • Gerakan penuh dari bidang yang terjalin ditangkap.
WM_DM_DEINTERLACE_INVERSETELECINE Pilih mode ini untuk mengonversi video 30 frame/detik telesin menjadi 24 frame/detik dari film aslinya. Manfaat:
  • Kualitas kompresi meningkat secara signifikan karena hanya 24 bingkai/detik alih-alih 30 bingkai/detik yang perlu dikodekan.
  • Karena hasilnya progresif, manfaat kompresi dan tampilan yang sama dari deinterlacing diwujudkan.
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE Pilih mode ini ketika resolusi output vertikal setengah, atau kurang, dari resolusi vertikal input dan kecepatan bingkai output dua kali lebih tinggi. Misalnya, resolusi video vertikal input adalah 640 x 480 piksel pada 30 bingkai terjalin/detik dan resolusi video vertikal output adalah 320 x 240 piksel pada 60 bingkai/detik. Manfaat:
  • Ini menghasilkan bingkai progresif berkualitas tinggi, karena setiap bidang dikonversi menjadi bingkai sehingga tidak perlu memadukan informasi apa pun.
  • Gerakan penuh dari bidang yang terjalin ditangkap.

Untuk konten campuran, atur mode deinterlacing sesuai kebutuhan sebelum meneruskan sampel jenis baru. Misalnya, untuk mulai mengodekan dengan input progresif, Anda tidak perlu mengatur mode deinterlacing apa pun. Jika beberapa sampel memerlukan deinterlacing normal, Anda harus mengatur mode deinterlacing ke WM_DM_DEINTERLACE_NORMAL. Untuk memproses sampel progresif tambahan, Anda harus mengatur mode deinterlacing ke WM_DM_NOTINTERLACED.

Pengaturan Telecine Terbalik

Untuk deskripsi telecine terbalik, lihat Menggunakan Telecine Terbalik.

Jika Anda mengatur mode deinterlacing ke WM_DM_DEINTERLACE_INVERSETELECINE, Anda dapat menentukan pola telesin dari bingkai input pertama dengan memanggil IWMWriterAdvanced2::SetInputSetting. Pengaturan yang akan digunakan g_wszInitialPatternForInverseTelecine. Atur pola awal ke salah satu nilai berikut.

Nilai Deskripsi
WM_DM_IT_DISABLE_COHERENT_MODE Menentukan bahwa media input telah melalui proses telecine tetapi bingkai tidak lagi dalam pola yang dapat diprediksi. Ini biasanya menunjukkan bahwa media diedit setelah pemrosesan telecine. Ketika Anda menggunakan pengaturan ini, codec mencoba untuk merekonstruksi bingkai asli sendiri.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP Menentukan bahwa bidang atas bingkai AA adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP Menentukan bahwa bidang atas bingkai BB adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP Menentukan bahwa bidang atas bingkai SM adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP Menentukan bahwa bidang atas bingkai CD adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP Menentukan bahwa bidang atas bingkai DD adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM Menentukan bahwa bidang bawah bingkai AA adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM Menentukan bahwa bidang bawah bingkai BB adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM Menentukan bahwa bidang bawah bingkai SM adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM Menentukan bahwa bidang bawah bingkai CD adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM Menentukan bahwa bidang bawah bingkai DD adalah sampel pertama.

Topik Tingkat Lanjut