Bagikan melalui


Kompensasi Gerakan

Kompensasi gerakan adalah istilah untuk tahap penting dari proses pendekodean untuk video digital terkompresi. Banyak perangkat akselerator grafis menyediakan beberapa jenis kemampuan akselerasi untuk mendukung pendekodean video terkompresi. Karena proses kompensasi gerakan adalah bagian yang paling sering didukung dari pendekodean video, antarmuka driver perangkat yang mendukung pendekodean video terkompresi disebut DDI kompensasi gerakan. Selain kompensasi gerakan, beberapa perangkat dapat melakukan IDCT (Transformasi Kosinus Diskrit Terbalik) dan fungsi perangkat keras lainnya yang dapat digunakan dekoder video perangkat lunak untuk mempercepat proses pendekodean. DDI kompensasi gerakan cukup fleksibel untuk menangani perangkat yang menyediakan kemampuan lain ini juga.

Data input ke dekoder MPEG perangkat lunak didefinisikan dengan baik. Jika dekoder dirancang untuk MPEG-2, input dalam format MPEG-2. Output dekoder juga didefinisikan dengan baik. Ini adalah bingkai yang tidak dikompresi dalam berbagai format. Namun, format sementara antara dekode perangkat lunak dan perangkat tampilan tidak didefinisikan dengan baik, dengan banyak perangkat yang memerlukan format data milik mereka sendiri. Oleh karena itu, antarmuka driver perangkat kompensasi gerakan fleksibel dan format sementara digambarkan sebagai GUID. Driver tampilan melaporkan GUID yang mewakili kemampuan yang didukungnya, dan dekoder perangkat lunak memilih GUID yang paling sesuai dengan persyaratannya.

Untuk mengaktifkan fungsionalitas kompensasi gerakan, driver harus melakukan langkah-langkah berikut:

  • Terapkan fungsi DdGetDriverInfo dan atur anggota GetDriverInfo dari struktur DD_HALINFO untuk menunjuk ke fungsi ini saat DrvGetDirectDrawInfo dipanggil. Fungsi DdGetDriverInfo driver harus mengurai GUID GUID_MotionCompCallbacks.

  • Isi struktur DD_MOTIONCOMPCALLBACKS dengan penunjuk panggilan balik driver yang sesuai dan bendera jenis panggilan balik yang diatur saat fungsi DdGetDriverInfo dipanggil dengan GUID GUID_MotionCompCallbacks. Driver kemudian harus menyalin struktur yang diinisialisasi ini ke dalam buffer yang dialokasikan Microsoft DirectDraw tempat anggota lpvData dari titik struktur DD_GETDRIVERINFODATA , dan mengembalikan jumlah byte yang ditulis ke dalam buffer di dwActualSize.