Tại sao video được cpu hiển thị thay vì gpu?


8

Tôi biết điều này nghe vẻ giống như một câu hỏi khá ngu ngốc, nhưng tôi không thể tìm thấy câu trả lời bằng google, vì vậy, vâng ...
Vì vậy, tôi biết có những kỹ thuật như OpenCL và CUDA, nhưng tại sao, theo mặc định, bộ xử lý được sử dụng để kết xuất, ví dụ như một tệp video trong phần mềm chỉnh sửa video? Có vẻ trái ngược với tôi rằng đơn vị xử lý Đồ họa không được sử dụng để xử lý, tốt, đồ họa. Khi chơi một trò chơi video, GPU cũng chịu trách nhiệm sản xuất hình ảnh trên màn hình của tôi, phải không?

Một lần nữa, tôi biết điều này nghe có vẻ ngu ngốc với bạn. Hãy nhẹ nhàng ° A °

Chỉnh sửa: Tôi đã nói cụ thể về đầu ra video của một phần mềm NLE như Premiere Pro


3
Hầu hết các video trực tuyến được nén, vì vậy công việc thực sự là giải nén tệp, đây là hoạt động chung được xử lý bởi CPU. GPU có khả năng thực sự rất tốt trong việc xử lý nén / giải nén tập tin nếu các thư viện hỗ trợ nó, nhưng nhìn chung chúng được tận dụng cho các cuộc gọi cụ thể để vẽ các mục trên màn hình, không phải cho tính toán chung. Các trò chơi tận dụng vì tất cả đều năng động, vì vậy chúng thực sự tận dụng GPU - video không được tạo ra một cách nhanh chóng - nó được xác định trước pixel màu này ở tọa độ này, vì vậy GPU không hữu ích cho điều đó.
ernie

Bạn đang nói cụ thể về phần mềm chỉnh sửa video kết xuất một tập tin video? Nếu không, bạn có thể vui lòng cung cấp một số ví dụ khác? Trình chỉnh sửa video sử dụng bao nhiêu GPU trong khi kết xuất phụ thuộc rất nhiều vào gói phần mềm kết xuất đang được sử dụng. Vì nó là quá rộng (IMO).
Ƭᴇcʜιᴇ007

Vâng, tôi đã nói về điều đó. Xin lỗi nếu điều đó không rõ ràng.
MoritzLost

Sau đó, vui lòng chỉnh sửa câu hỏi của bạn về vấn đề cụ thể mà bạn gặp phải, bao gồm phần mềm bạn đã thử, hệ điều hành nào và những gì bạn đã cố gắng khắc phục nó. Sau đó hỏi một câu hỏi cụ thể về vấn đề cụ thể đó. Một lần nữa, vì nó quá rộng - vì nhiều gói kết xuất video có thể sử dụng GPU, nếu chúng được cấu hình đúng. Sau đó, chúng tôi có thể giúp bạn tìm ra lý do tại sao bạn không. :)
cʜιᴇ007

Câu trả lời:


14

Trước khi HD là một điều, CPU có thể xử lý giải mã video dễ dàng. Khi HD trở nên phổ biến khoảng 8 năm trước, các nhà sản xuất GPU bắt đầu thực hiện giải mã video tăng tốc trong chip của họ. Bạn có thể dễ dàng tìm thấy các card đồ họa được bán trên thị trường dưới dạng video HD hỗ trợ và một số khẩu hiệu khác. Ngày nay, bất kỳ GPU nào cũng hỗ trợ video tăng tốc, thậm chí các GPU tích hợp như Intel HD Graphics hoặc người tiền nhiệm của chúng, Intel GMA. Nếu không có sự bổ sung đó, CPU của bạn sẽ gặp khó khăn khi cố gắng tiêu hóa video 1080p với tốc độ khung hình chấp nhận được, chưa kể mức tiêu thụ năng lượng tăng. Vì vậy, bạn đã sử dụng video tăng tốc hàng ngày.

Bây giờ khi GPU ngày càng sử dụng sức mạnh tính toán chung, chúng cũng được sử dụng rộng rãi để tăng tốc xử lý video. Xu hướng này bắt đầu vào khoảng thời gian khi giải mã tăng tốc được giới thiệu. Các chương trình như Badaboom bắt đầu trở nên phổ biến vì hóa ra GPU tốt hơn nhiều (tái) mã hóa video so với CPU. Tuy nhiên, điều đó không thể được thực hiện bởi vì GPU thiếu khả năng tính toán chung.

Nhưng GPU đã có thể chia tỷ lệ, xoay và biến đổi hình ảnh từ thời trung cổ, vậy tại sao chúng ta không thể sử dụng các tính năng này để xử lý video? Chà, những tính năng này không bao giờ được triển khai để được sử dụng theo cách như vậy, vì vậy chúng không tối ưu vì nhiều lý do.

Khi bạn lập trình một trò chơi, trước tiên bạn tải tất cả đồ họa, hiệu ứng, v.v. lên GPU và sau đó bạn chỉ cần kết xuất đa giác và ánh xạ các đối tượng phù hợp với chúng. Bạn không phải gửi kết cấu mỗi khi chúng cần thiết, bạn có thể tải chúng và sử dụng lại chúng. Khi xử lý video, bạn phải liên tục cung cấp khung cho GPU, xử lý chúng và tìm lại chúng để mã hóa lại chúng trên CPU (hãy nhớ rằng, chúng ta đang nói về thời gian GPU tính toán trước). Đây không phải là cách GPU được cho là hoạt động, vì vậy hiệu suất không tốt.

Một điều nữa là, GPU không định hướng chất lượng khi chuyển đổi hình ảnh. Khi bạn đang chơi một trò chơi ở tốc độ hơn 40 khung hình / giây, bạn sẽ không thực sự nhận thấy sự sai lệch pixel nhỏ. Ngay cả khi bạn muốn, đồ họa trò chơi không đủ chi tiết để mọi người quan tâm. Có nhiều cách hack và thủ thuật khác nhau được sử dụng để tăng tốc độ kết xuất có thể ảnh hưởng một chút đến chất lượng. Video cũng được phát ở tốc độ khung hình khá cao, do đó việc mở rộng chúng một cách linh hoạt khi phát lại là chấp nhận được, nhưng việc mã hóa lại hoặc kết xuất phải tạo ra kết quả hoàn hảo về pixel hoặc ít nhất là gần nhất có thể với chi phí hợp lý. Bạn không thể đạt được điều đó nếu không có các tính năng phù hợp được triển khai trực tiếp trong GPU.

Ngày nay, việc sử dụng GPU để xử lý video khá phổ biến vì chúng tôi đã yêu cầu công nghệ tại chỗ. Tại sao đó không phải là lựa chọn mặc định là một câu hỏi cho nhà xuất bản chương trình, không phải chúng tôi - đó là lựa chọn của họ. Có thể họ tin rằng khách hàng của họ có định hướng phần cứng để xử lý video trên CPU, vì vậy việc chuyển sang GPU sẽ ảnh hưởng tiêu cực đến hiệu suất, nhưng đó chỉ là phỏng đoán của tôi. Một khả năng khác là họ vẫn coi kết xuất GPU là tính năng thử nghiệm chưa đủ ổn định để đặt nó làm mặc định. Bạn không muốn lãng phí hàng giờ để hiển thị video của mình chỉ để nhận ra một cái gì đó bị hỏng do lỗi kết xuất GPU. Nếu bạn quyết định sử dụng nó, thì bạn không thể đổ lỗi cho nhà xuất bản phần mềm - đó là quyết định của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.