Bagikan melalui


Untuk Membuat Video Menjadi Halus

[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 Sink Writer 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 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.

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

Untuk mengatur codec agar melakukan deinterlace pada video input, 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 jika sebelumnya Anda 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 jalinan pada 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 output kecepatan bingkai 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 ke bingkai dan sehingga tidak perlu memadukan informasi apa pun.
  • Gerak penuh dari bidang yang terjalin terekam.
WM_DM_DEINTERLACE_INVERSETELECINE Pilih mode ini untuk mengonversi video 30 bingkai/detik yang di-telecine menjadi 24 bingkai/detik seperti film aslinya. Manfaat:
  • Kualitas kompresi meningkat secara signifikan karena hanya 24 bingkai/detik alih-alih 30 bingkai/detik yang perlu dikodekan.
  • Karena hasilnya adalah gambar progresif, manfaat yang sama dari kompresi dan tampilan deinterlacing dapat dicapai.
Deinterlacing Setengah Vertikal dengan Laju Dua Kali 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/detik yang terjalin 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 ke bingkai dan sehingga tidak perlu memadukan informasi apa pun.
  • Gerakan penuh dari bidang interlaced ditangkap secara penuh.

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 kemudian memerlukan deinterlacing normal, Anda harus mengatur mode deinterlacing ke WM_DM_DEINTERLACE_NORMAL. Untuk kemudian memproses sampel progresif tambahan, Anda harus mengatur mode deinterlacing ke WM_DM_NOTINTERLACED.

Pengaturan Telecine Terbalik

Untuk deskripsi telecine terbalik, lihat Untuk Menggunakan Telecine Terbalik.

Jika Anda mengatur mode deinterlacing ke WM_DM_DEINTERLACE_INVERSETELECINE, Anda dapat menentukan pola telecine dari bingkai input pertama dengan memanggil IWMWriterAdvanced2::SetInputSetting. Pengaturan yang harus digunakan adalah 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 membangun ulang 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 BC adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP Menentukan bahwa bidang atas bingkai CD adalah sampel pertama.
Bingkai pertama dalam klip adalah DD_TERATAS Menentukan bahwa bidang atas bingkai DD adalah sampel pertama.
WM_DM_IT_FRAME_PERTAMA_DALAM_KLIP_ADALAH_AA_BAGIAN_BAWAH Menentukan bahwa bidang bawah bingkai AA adalah sampel pertama.
WM_DM_IT_RANGKA_KESATU_DALAM_KLIP_ADALAH_BB_BAWAH Menentukan bahwa bidang bawah bingkai BB adalah sampel pertama.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM Menentukan bahwa bagian bawah bingkai BC adalah sampel pertama.
WM_DM_IT_KERANGKA_PERTAMA_DALAM_KLIP_ADALAH_CD_BAWAH 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