প্রসেসর জিপিইউর থেকে এনকোডিংয়ের জন্য কেন "ভাল"?


13

আমি এই নিবন্ধটি পড়ছিলাম এবং আমি দেখেছি যে একটি জিপিইউর চেয়ে সিপিইউ ভিডিও সংক্ষেপণের জন্য ভাল।

নিবন্ধটি কেবল বলেছে যে প্রসেসর জিপিইউর চেয়ে আরও জটিল অ্যালগরিদমগুলি পরিচালনা করতে পারে, তবে আমি আরও প্রযুক্তিগত ব্যাখ্যা চাই, আমি ইন্টারনেটে কিছু অনুসন্ধান করেছি কিন্তু কিছুই পাইনি।

সুতরাং, যে কেউ ব্যাখ্যা করতে বা একটি সাইটের সাথে লিঙ্ক করতে জানেন আমার এর আরও গভীর ব্যাখ্যা ছিল?

উত্তর:


21

আপনার লিখিত নিবন্ধটি খুব ভাল নয় good

সাধারণত, একক পাস বিটরেট এনকোডিংগুলি আপনার বিটরেটকে সর্বাধিক বিটরেট সীমাতে আরএফ মানতে রূপান্তর করে এবং সেখান থেকে নিয়ে যায়।

x264 এর এক-পাসের এবিআর রেটকন্ট্রোল সিআরএফ + সীমা হিসাবে প্রয়োগ করা হয়নি। তিনি ঠিক বলেছেন যে, টার্গেট বিটরেট হিট করার জন্য 2 পাস খুব ভাল উপায়।

এবং তিনি স্পষ্টতই বুঝতে পারেন না যে তিনি থ্রেড = 3 বা কিছু দিয়ে x264 শুরু করতে পারেন, অন্য কাজের জন্য কিছু সিপিইউ সময় ছেড়ে দিতে পারেন। অথবা x264 এর অগ্রাধিকার খুব কমতে সেট করুন, সুতরাং এটি কেবলমাত্র সিপিইউ সময় পায় যা অন্য কোনও কাজ চায় না।

তিনি সিউডিএ বা অন্য কোনও কিছু ব্যবহার করে থ্রেড = 1 মিশ্রিত করেন। আপনার কোনও প্রশ্নই আশ্চর্যের বিষয় নয়, কারণ সেই নিবন্ধটির একটি মারাত্মক ব্যাখ্যা রয়েছে। পুরো নিবন্ধটি মূলত x264 --preset veryslow --tune film --crf 26 in.m2ts --out out.mkvএগুলি ফোটায় : ব্যবহার করুন বা কোনও ইনপুট অ্যাভিআইসেন্ট স্ক্রিপ্টের সাহায্যে কিছু হালকা ফিল্টারিং ব্যবহার করুন। তিনি আসলে "প্লেসবো" সুপারিশ করেন। যে অত্যধিক হাসিখুশি. আমি পাইসবো সহ এনকোডড পাইরেটেড ফাইলটি কখনও দেখিনি। (আপনি সমস্ত ভাল মানের প্রিসেটের পরিবর্তে me=esaবা থেকে বলতে পারেন , ঠিক এখন পর্যন্ত ।me=tesame=umhveryslow

তিনি 10 বিট রঙের গভীরতা ব্যবহার করে উল্লেখ করেন না। এনকোড এবং ডিকোড করতে ধীর গতিতে, তবে 8 বিটে ফিরে আসার পরেও আপনি আরও ভাল 8-বিট এসএসআইএম পাবেন। মোশন ভেক্টরগুলির জন্য আরও স্পষ্টতা থাকা দৃশ্যত সহায়তা করে। এছাড়াও, পুরো 8 বিট মানটি হুবহু সাহায্য করে না। আপনি গতি-হ্যাক হিসাবে উপাদান হিসাবে 8-বিট ভাবেন; ফ্রিকোয়েন্সি-ডোমেনে কোয়ান্টিজেজিং এবং তারপরে সিএবিএসি দিয়ে সংকোচনের অর্থ হ'ল উচ্চ বিট-গভীরতার সহগগুলি আরও স্থান নিতে হবে না।

(বিটিডাব্লু, এইচ .265 8 বিট ভিডিওর জন্য 10-বিট এনকোড থেকে কম সুবিধা পেয়েছে কারণ এতে ইতিমধ্যে মোশন ভেক্টরগুলির জন্য আরও স্পষ্টতা রয়েছে 8 যদি 8-বিট ভিডিও ইনপুটগুলির জন্য 10-বিট x265 ব্যবহার করার সুবিধা থাকে তবে এটির চেয়ে ছোট x264 দিয়ে। সুতরাং গতির শাস্তিটি তার পক্ষে উপযুক্ত হবে এর সম্ভাবনা কম।

আপনার আসল প্রশ্নের উত্তর দিতে:

সম্পাদনা করুন: ডুম 9 এখন আবার আসবে, তাই আমি লিঙ্কটি পরিস্কার করব। কে কী বলেছে তার যথাযথ উদ্ধৃতি দেওয়ার জন্য এটিতে যান।

http://forum.doom9.org/showthread.php?p=1135399#post1135399

গুগল কেবল বোকা মুদ্রণ সংস্করণকে ক্যাশে করে যা সঠিকভাবে উদ্ধৃতি প্রদর্শন করে না। আমি এই বিষয়ে নিশ্চিতভাবে নিশ্চিত নই যে এই বার্তাগুলির কোন অংশটি উদ্ধৃতিযুক্ত, এবং সেগুলি নিজেরাই ব্যক্তির কাছে দায়ী।

অত্যন্ত অনিয়মিত শাখাগুলি নিদর্শন (স্কিপ মোডগুলি) এবং বিট ম্যানিপুলেশন (কোয়ান্টাইজেশন / এনট্রপি কোডিং) উপস্থিত জিপিইউগুলির সাথে খাপ খায় না। আইএমও এই মুহুর্তে একমাত্র সত্যিকারের ভাল অ্যাপ্লিকেশন হ'ল সম্পূর্ণ অনুসন্ধান এমই আলগোরিদিমগুলি, শেষদিকে ত্বরণযুক্ত পূর্ণ অনুসন্ধানটি সিপিইউর চেয়ে দ্রুততর হলেও তবু ধীর।
- এমএফএ

আসলে, মূলত সিএবিএসি ব্যতীত সমস্ত কিছু জিপিইউতে যুক্তিসঙ্গতভাবে করা যেতে পারে (যা করা যেতে পারে, এটি কেবল সমান্তরাল হতে পারে না)।

x264 চুদা প্রাথমিকভাবে একটি ফুলপেল এবং সাবপেল এমই অ্যালগরিদম বাস্তবায়ন করবে; পরে আমরা সিডাবির পরিবর্তে কিছুটা ব্যয় সাশ্রয় নিয়ে আরডিওর মতো কিছু করতে পারি।

কারণ এটি একক নির্ভুলতা ভাসমান পয়েন্ট
- এমএফএতে সবকিছু করতে হবে

ভুল, CUDA পূর্ণসংখ্যা গণিত সমর্থন করে।

- অন্ধকার শিকারি

গাark় শিকারি হল x264 রক্ষণাবেক্ষণকারী এবং 2007 বা তার পরের বেশিরভাগ বৈশিষ্ট্যের বিকাশকারী।

আফাইক, এই চুদা প্রকল্পটি শেষ হতে পারেনি। লুপহেড থ্রেড থেকে কিছু কাজ অফলোড করার জন্য ওপেনসিএল ব্যবহারের জন্য সমর্থন রয়েছে (দ্রুত আই / পি / বি সিদ্ধান্ত, ফ্রেমের কোনও উচ্চমানের চূড়ান্ত এনকোড নয়)।


আমার উপলব্ধিটি হ'ল ভিডিও এনকোডিংয়ের জন্য অনুসন্ধানের স্থানটি এত বড় যে সিপিইউগুলিতে অনুসন্ধানের পাথের প্রারম্ভিক সমাপ্তির জন্য স্মার্ট হিউরিস্টিকস কমপক্ষে উচ্চমানের এনকোডিংয়ের জন্য ব্রু-ফোর্স জিপিইউগুলিকে টেবিলের কাছে নিয়ে আসে। এটি কেবলমাত্র এমন তুলনা করা হয়েছে -preset ultrafastযেখানে আপনি x264 এর চেয়ে যুক্তিসঙ্গতভাবে HW এনকোডিং চয়ন করতে পারেন, esp। আপনার যদি ধীর সিপিইউ থাকে (যেমন ডুয়াল কোর সহ ল্যাপটপ এবং হাইপারথ্রেডিং নেই)। একটি দ্রুত সিপিইউতে (হাইপারথ্রেডিং সহ আই 7 কোয়াড কোর), x264 superfastসম্ভবত তত দ্রুত হতে চলেছে এবং আরও ভাল দেখাচ্ছে (একই বিটরেটে)।

আপনি যদি এমন কোনও এনকোড তৈরি করে থাকেন যেখানে রেট-বিকৃতি (ফাইলের আকারের প্রতি গুণমান) মোটেই গুরুত্বপূর্ণ, আপনার x264 -preset mediumবা ধীর ব্যবহার করা উচিত । আপনি যদি কিছু সংরক্ষণাগার রাখেন তবে এখনই আরও কিছুটা সিপিইউ সময় ব্যয় করা যতক্ষণ না আপনি এই ফাইলটির চারপাশে রাখছেন ততক্ষণ পর্যন্ত বাইটগুলি সংরক্ষণ করবে।

পার্শ্ব নোট, আপনি যদি কখনও কোনও ভিডিও ফোরামে ডেড্রেট থেকে বার্তাগুলি দেখে থাকেন তবে এটি সহায়ক হবে না। আমি দেখেছি এমন প্রতিটি থ্রেডে সে কথা বলছে এমন বেশিরভাগ স্টাফ সম্পর্কে সে ভুল ছিল। তার পোস্টগুলি কয়েকটি থ্রেডে পরিণত হয়েছিল আমি x264 জিপিইউ এনকোডিং সম্পর্কে গুগল করেছি। স্পষ্টতই তিনি বুঝতে পারছেন না কেন এটি সহজ নয় এবং x264 বিকাশকারীকে তারা বোবা কেন তা বলার জন্য বেশ কয়েকবার পোস্ট করেছেন ...


9

2017 আপডেট:

ffmpeg h264 এবং h265 NVENC GPU- ত্বকযুক্ত ভিডিও এনকোডিং সমর্থন করে । আপনি যে মানের পছন্দ করেছেন তাতে আপনি 1-পাস বা 2-পাস এনকোডিং করতে পারেন, hevc_nvenc বা h264_nvenc, অথবা এমনকি কোনও এন্ট্রি-লেভেল জিপিইউ সহ এটি অ-এক্সিলারেটেড এনকোডিং এবং ইন্টেল কুইক সিঙ্ক ত্বরণযুক্ত এনকোডিংয়ের চেয়ে অনেক দ্রুত।

2-পাস উচ্চমানের এনকোডিং:

ffmpeg -i in.mp4 -vcodec h264_nvenc -preset slow out.mp4

1-পাসওয়ার্ড ডিফল্ট এনকোডিং:

ffmpeg -i in.mp4 -vcodec h264_nvenc out.mp4

NVENC ffmpeg সহায়তা এবং বিকল্পগুলি:

ffmpeg -h encoder=nvenc

এটি ব্যবহার করুন, এটি সিপিইউ এনকোডিংয়ের চেয়ে অনেক দ্রুত।

আপনার যদি জিপিইউ না থাকে আপনি ইন্টেল কুইক সিঙ্ক কোডেক, h264_qsv, hevc_qsv, বা mpeg2_qsv ব্যবহার করতে পারেন, যা অ-এক্সিলরেটেড এনকোডিংয়ের চেয়েও দ্রুত।


3
আপনি যদি ফাইল সাইজ অনুযায়ী মানের চেয়ে গতি (এবং কম সিপিইউ ব্যবহার) মূল্য দেন তবে এটি ব্যবহার করুন। কিছু ব্যবহারের ক্ষেত্রে, উদাহরণস্বরূপ টুইচিং স্ট্রিমিং, এটি আপনি চান (বিশেষত কম সিপিইউ ব্যবহার)। অন্যগুলিতে, উদাহরণস্বরূপ এমন একটি ফাইল তৈরি করতে একবার এনকোড করুন যা অনেকবার প্রবাহিত / দেখানো হবে, আপনি এখনও পরাজিত হবেন না -c:v libx264 -preset slower(যা আকাশের ধীরে ধীরে নয়, যেমন 1920x1080p24 এর জন্য আকাশচুম্বী আই 7-6700k এর রিয়েলটাইমের কাছাকাছি।)
পিটার

ব্যবহার ffmpegসঙ্গে -vcodec h264_qsvএকটি ইন্টেল এইচডি Grpahics 4000 সঙ্গে আমার পুরনো ইন্টেল নোটবুক উপর অনেক দ্রুত রেন্ডারিং তৈরি!
টনি

2

পিটার কী বলেছে তার আরও খানিকটা বিশদ বর্ণনা করার জন্য, সাধারণভাবে একাধিক প্রসেসর ব্যবহার করে এমন ক্ষেত্রে সহায়তা করে যেখানে আপনার বেশ কয়েকটি স্বতন্ত্র কাজ রয়েছে যা সমস্ত করা দরকার কিন্তু একে অপরের উপর নির্ভরতা নেই, বা এমন একটি কাজ যেখানে আপনি একই কাজ করছেন where বিশাল পরিমাণে ডেটাতে গণিত।

তবে, আপনার যদি গণনা বি এর ইনপুট হিসাবে গণনা A এর আউটপুট, এবং গণনা বি গণনা সি এর ইনপুট হিসাবে আউটপুট প্রয়োজন হয়, তবে আপনি প্রতিটি টাস্কে আলাদা আলাদা কোর কাজ করে গতি বাড়িয়ে তুলতে পারবেন না ( এ, বি, বা সি) কারণ অন্যটি শেষ না হওয়া পর্যন্ত একটি শুরু করতে পারে না।

তবে উপরের ক্ষেত্রে এমনকি আপনি এটি অন্যভাবে সমান্তরাল করতে সক্ষম হতে পারেন। আপনি যদি নিজের ইনপুট ডেটা অংশগুলিতে ভাঙতে পারেন তবে আপনার এ, বি, বি এর পরে সি তৈরির ক্ষেত্রে একটি মূল কাজ থাকতে পারে, অন্য একটি কোর অন্য, ডি, বি, তারপর সি করার কাজ করে থাকে ।

এছাড়াও অন্যান্য বিবেচনা আছে। হতে পারে আপনি গণনাগুলিকে সমান্তরাল করার কোনও উপায় খুঁজে পেতে পারেন, তবে কেবল ডিস্ক থেকে ডেটা, বা নেটওয়ার্কের উপর থেকে পড়া বা জিপিইউতে প্রেরণে গণনাগুলি করার চেয়ে বেশি সময় লাগবে। সেক্ষেত্রে এটিকে সমান্তরাল করে তোলার কোনও অর্থ হয় না কারণ সমান্তরালে গণনা করে আপনি যে পরিমাণ সময় সাশ্রয় করেছেন তার চেয়ে কেবল মেমরিতে ডেটা পাওয়া বেশি সময় নেয়।

অন্য কথায়, এটি যতটা বিজ্ঞান তত শিল্প।


ওহ, হ্যাঁ x264 মাল্টিকোর সিপিইউতে বেশ ভালভাবে সমান্তরাল করে। আমি কমপক্ষে 8 টি কোর পর্যন্ত প্রায় লিনিয়ার স্কেল করি এবং শালীনভাবে এমনকি 32-এরও বেশি।
পিটার কর্ডেস

প্রশ্নটি সাধারণভাবে সমান্তরালতা নয়, এটি বিশেষত জিপিইউগুলির মধ্যে রয়েছে। কোডগুলিতে এগুলি অনেক বেশি বিধিনিষেধযুক্ত আপনি তাদের সিপিইউগুলির তুলনায় চালাতে পারেন। আমি মনে করি এটি এর কারণ আপনার শাখাগুলির কোড নেই যা চিত্রের বিভিন্ন ব্লকে বিভিন্ন উপায়ে চলে। আমি ঠিক বুঝতে পারছি না কেন, তবে আমি মনে করি এটি এমন কিছু। প্রতিটি স্ট্রিম প্রসেসরটি এত সহজ এবং এগুলি অন্যের থেকে স্বতন্ত্রভাবে চালনার সীমিত মাধ্যমের সাথে হয় যেহেতু হয় আপনাকে সর্বদা সর্বনিম্নতম শেষ হওয়ার জন্য অপেক্ষা করতে হবে, বা আপনি মোটেই শাখা প্রশাখায় সীমিত বা উভয়ই সীমাবদ্ধ।
পিটার কর্ডেস

আপনার যদি কম্পিউটারগুলির একটি ক্লাস্টার থাকে (মেমরি ব্যান্ডউইথ এবং সিপিইউ ক্যাশের জন্য একে অপরের সাথে প্রতিযোগিতা না করে এমন স্বাধীন র‌্যামযুক্ত সিপিইউ), আপনি নিজের ইনপুট ভিডিওটি জিওপিগুলিতে ভেঙে ফেলতে এবং স্থির-সংকুচিত ইনপুট ভিডিওর বিভাগগুলি প্রেরণ করতে চেয়েছিলেন ক্লাস্টারের অন্যান্য মেশিনে ডিকোডেড এবং সংকুচিত। সুতরাং শুধুমাত্র সংকুচিত ইনপুট বা আউটপুট ভিডিও স্থানান্তর করতে হবে। মাল্টিকোর শেয়ার্ড-ক্যাশে / র‌্যাম সিস্টেম এমনকি একটি মাল্টিসকেট x86 ওয়ার্কস্টেশনের মতো আপনার একসাথে একই ফ্রেমে একাধিক থ্রেড অপারেটিং রয়েছে। (এছাড়াও এর মানে হল যে এনকোডগুলি সেগমেন্ট করার জন্য গ্লোবাল রেটকন্ট্রোল করার জন্য আপনার নতুন কোডের দরকার নেই।)
পিটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.