Mengapa video diberikan oleh cpu bukan gpu?

8

Yah saya tahu ini mungkin terdengar seperti pertanyaan yang sangat bodoh, tapi saya tidak bisa menemukan jawaban menggunakan google, jadi ya ...
Jadi, saya tahu ada teknik seperti OpenCL dan CUDA, tetapi mengapa, secara default, prosesor yang digunakan untuk membuat misalnya file video dari perangkat lunak pengedit video? Tampak berlawanan dengan intuisi saya bahwa unit pemrosesan Grafik tidak digunakan untuk memproses, baik, grafik. Saat bermain gim video, GPU bertugas memproduksi gambar di layar saya juga, bukan?

Sekali lagi, saya tahu ini mungkin terdengar bodoh bagi Anda. Harap bersikap lembut ° A °

Sunting: Saya berbicara secara spesifik tentang output video dari perangkat lunak NLE seperti Premiere Pro

MoritzLost
sumber
3
Sebagian besar video online dikompresi, sehingga pekerjaan sebenarnya adalah mendekompresi file, yang merupakan operasi umum yang ditangani oleh CPU. GPU sebenarnya akan sangat pandai menangani kompresi / dekompresi file jika pustaka mendukungnya, tetapi umumnya mereka dapat memanfaatkan panggilan tertentu untuk menggambar item di layar, bukan untuk perhitungan umum. Game mengambil keuntungan karena semuanya dinamis, sehingga mereka benar-benar memanfaatkan GPU - video tidak dihasilkan dengan cepat - itu sudah ditentukan pixel warna ini pada koordinat ini, jadi GPU tidak berguna untuk itu.
ernie
Apakah Anda berbicara secara khusus tentang perangkat lunak pengeditan video yang membuat file video? Jika tidak, bisakah Anda menawarkan beberapa contoh lainnya? Berapa banyak GPU yang digunakan editor video saat rendering sangat tergantung pada paket perangkat lunak rendering yang digunakan. Apa adanya ini terlalu luas (IMO).
Ƭᴇcʜιᴇ007
Ya, saya sedang berbicara tentang itu. Maaf kalau itu tidak jelas.
MoritzLost
Kemudian harap edit pertanyaan Anda tentang masalah spesifik yang Anda hadapi, termasuk perangkat lunak yang Anda coba, OS apa, dan apa yang Anda coba untuk memperbaikinya. Kemudian ajukan pertanyaan spesifik tentang masalah khusus itu. Sekali lagi, apakah ini terlalu luas, karena banyak paket rendering video dapat menggunakan GPU, jika mereka dikonfigurasi dengan benar. Maka kami mungkin dapat membantu Anda mencari tahu mengapa Anda tidak. :)
Ƭᴇcʜιᴇ007

Jawaban:

14

Sebelum HD, CPU dapat menangani decoding video dengan mudah. Ketika HD menjadi populer sekitar 8 tahun yang lalu, produsen GPU mulai menerapkan decoding video yang dipercepat dalam chip mereka. Anda dapat dengan mudah menemukan kartu grafis yang dipasarkan sebagai mendukung video HD dan beberapa slogan lainnya. Saat ini setiap GPU mendukung video yang dipercepat, bahkan GPU terintegrasi seperti Intel HD Graphics atau pendahulunya, Intel GMA. Tanpa tambahan itu, CPU Anda akan kesulitan mencerna video 1080p dengan framerate yang dapat diterima, belum lagi konsumsi energi yang meningkat. Jadi, Anda sudah menggunakan video akselerasi setiap hari.

Sekarang ketika GPU memiliki daya komputasi yang semakin umum, mereka banyak digunakan untuk mempercepat pemrosesan video juga. Tren ini dimulai sekitar waktu yang sama ketika percepatan decoding diperkenalkan. Program-program seperti Badaboom mulai mendapatkan popularitas karena ternyata GPU jauh lebih baik dalam (re) pengkodean video daripada CPU. Itu tidak bisa dilakukan sebelumnya, karena GPU tidak memiliki kemampuan komputasi generik.

Tetapi GPU sudah dapat meningkatkan skala, memutar dan mengubah gambar sejak abad pertengahan, jadi mengapa kita tidak dapat menggunakan fitur ini untuk pemrosesan video? Nah, fitur-fitur ini tidak pernah diimplementasikan untuk digunakan sedemikian rupa, sehingga mereka kurang optimal karena berbagai alasan.

Saat Anda memprogram game, Anda pertama-tama mengunggah semua gambar, efek dll ke GPU dan kemudian Anda hanya membuat poligon dan memetakan objek yang sesuai untuk mereka. Anda tidak perlu mengirim tekstur setiap kali dibutuhkan, Anda dapat memuatnya dan menggunakannya kembali. Ketika datang ke pemrosesan video, Anda harus terus-menerus memasukkan frame ke GPU, memprosesnya dan mengambilnya kembali untuk memasukkannya kembali ke dalam CPU (ingat, kita berbicara tentang waktu pra-komputasi-GPU). Ini bukan cara GPU seharusnya bekerja, jadi kinerjanya tidak bagus.

Hal lain adalah, GPU tidak berorientasi pada kualitas ketika menyangkut transformasi gambar. Saat Anda bermain gim dengan kecepatan 40+ fps, Anda tidak akan benar-benar menyadari kesalahan representasi piksel. Bahkan jika Anda mau, grafik game tidak cukup detail untuk diperhatikan orang. Ada berbagai retasan dan trik yang digunakan untuk mempercepat rendering yang dapat sedikit memengaruhi kualitas. Video diputar pada framerate agak tinggi juga, jadi penskalaan secara dinamis saat pemutaran dapat diterima, tetapi pengodean ulang atau rendering harus menghasilkan hasil yang sempurna piksel atau setidaknya sedekat mungkin dengan biaya yang masuk akal. Anda tidak dapat mencapai itu tanpa fitur yang tepat diimplementasikan secara langsung dalam GPU.

Saat ini menggunakan GPU untuk memproses video cukup umum karena kami membutuhkan teknologi. Mengapa ini bukan pilihan default, lebih merupakan pertanyaan bagi penerbit program, bukan kami - itu pilihan mereka. Mungkin mereka percaya bahwa klien mereka berorientasi pada perangkat keras untuk memproses video pada CPU, jadi beralih ke GPU akan memengaruhi kinerja secara negatif, tapi itu hanya dugaan saya. Kemungkinan lain adalah bahwa mereka masih memperlakukan rendering GPU sebagai fitur eksperimental yang belum cukup stabil untuk menetapkannya sebagai default. Anda tidak ingin membuang waktu merender video Anda hanya untuk menyadari ada sesuatu yang kacau karena bug rendering GPU. Jika Anda memutuskan untuk menggunakannya, maka Anda tidak dapat menyalahkan penerbit perangkat lunak - itu adalah keputusan Anda.

gronostaj
sumber