আপনি যা গণনা করেছেন তা হ'ল কাঁচা, সঙ্কোচিত ভিডিওর জন্য বিট্রেট। আপনি সাধারণত গবেষণা বা অন্যান্য বিশেষায়িত অ্যাপ্লিকেশন বাদে এগুলি পাবেন না। এমনকি ব্রডকাস্টারগুলি আপনার সাধারণ ইউটিউব ভিডিওর চেয়ে অনেক বেশি বিটরেটে হলেও সংক্ষেপিত ভিডিও ব্যবহার করে।
সুতরাং, ভিডিওটি কীভাবে সংকুচিত করা হয়েছিল তার সাথে ভিডিও মানের অনেক কিছুই আছে। আপনি এটি যত বেশি সংকুচিত করেন, তত ফ্রেম প্রতি কম বিট লাগে। এছাড়াও, আপনি যত বেশি সংকুচিত হন, গুণমানটি তত খারাপ। এখন, কিছু ভিডিও অন্যদের তুলনায় সংক্ষিপ্ত করা আরও সহজ - সংক্ষেপে, এ কারণেই তাদের রেজোলিউশন এবং ফ্রেমরেট সত্ত্বেও তাদের কম বিটরেট রয়েছে।
এটি কেন, তা বোঝার জন্য আপনাকে ভিডিও সংক্ষেপণের দুটি মূল নীতি সম্পর্কে সচেতন হওয়া দরকার। এগুলিকে "স্থানিক" এবং "অস্থায়ী রিডানডেন্সি" বলা হয়।
স্থানিক অপ্রয়োজনীয়
প্রাকৃতিক সামগ্রী দেখায় এমন চিত্রগুলিতে স্থানিক অপ্রয়োজনীয়তা বিদ্যমান। এই কারণেই জেপিইজি এত ভাল কাজ করে - এটি চিত্রের ডেটা সংকুচিত করে কারণ পিক্সেলগুলির ব্লকগুলি একসাথে কোড করা যেতে পারে। এগুলি উদাহরণস্বরূপ 8 × 8 পিক্সেল। এগুলিকে "ম্যাক্রোব্লকস" বলা হয়।
আধুনিক ভিডিও কোডেকগুলি একই কাজ করে: তারা ফ্রেমকে সংকুচিত করতে, ব্লক করে ব্লক করে মূলত জেপিজিতে অনুরূপ অ্যালগরিদম ব্যবহার করে। সুতরাং আপনি আর পিক্সেল প্রতি বিট সংরক্ষণ করবেন না, কিন্তু ম্যাক্রোব্লক প্রতি বিট, কারণ আপনি পিক্সেল বৃহত্তর গ্রুপে "সংক্ষিপ্ত" করেন। তাদের সংক্ষিপ্তসার দ্বারা, অ্যালগরিদম এমন তথ্যও ফেলে দেবে যা মানুষের চোখের কাছে দৃশ্যমান নয় - এটিই আপনি বেশিরভাগ বিটরেট হ্রাস করতে পারবেন। এটি ডেটা পরিমাণের মাধ্যমে কাজ করে । এটি আরও অনুধাবনযোগ্য ফ্রিকোয়েন্সি ধরে রাখবে এবং আমরা দেখতে পাচ্ছি না এমনগুলি "দূরে ফেলে"। বেশিরভাগ কোডেকগুলিতে কোয়ান্টাইজিং ফ্যাক্টরকে "কিউপি" হিসাবে প্রকাশ করা হয়, এবং এটি মানের জন্য প্রধান নিয়ন্ত্রণ নকব।
আপনি এখন আরও এগিয়ে যেতে পারেন এবং একই চিত্রটিতে আগে এনকোড করা ম্যাক্রোব্লকগুলি থেকে ম্যাক্রোব্লকগুলির পূর্বাভাস দিতে পারেন। এটিকে ইনট্রা প্রেডিকশন বলা হয় । উদাহরণস্বরূপ, ধূসর প্রাচীরের একটি অংশ ইতিমধ্যে ফ্রেমের উপরের বাম কোণে এনকোড করা ছিল, তাই আমরা সেই একই ম্যাক্রোব্ল্যাকটি আবার একই ফ্রেমে ব্যবহার করতে পারি, উদাহরণস্বরূপ, এর ঠিক পাশের ম্যাক্রোব্লোকের জন্য। আমরা পূর্বেরটির পার্থক্যটি কেবল সংরক্ষণ করব এবং ডেটা সংরক্ষণ করব। এইভাবে, আমাদের দুটি ম্যাক্রোব্লকগুলি একে অপরের সাথে সাদৃশ্যপূর্ণভাবে এনকোড করতে হবে না।
একই চিত্রের আকারের জন্য বিটরেট কেন পরিবর্তন হয়? ঠিক আছে, কিছু চিত্র অন্যদের চেয়ে এনকোড করা সহজ। স্থানিক ক্রিয়াকলাপ যত বেশি হবে, ততই আপনাকে প্রকৃতপক্ষে এনকোড করতে হবে। মসৃণ জমিন বিশদগুলির চেয়ে কম বিট নেয়। একইভাবে ইন্টারটা পূর্বাভাসের ক্ষেত্রেও দেখা যায়: ধূসর প্রাচীরের ফ্রেম আপনাকে অন্য সকলকে পূর্বাভাস দেওয়ার জন্য একটি ম্যাক্রোব্লক ব্যবহার করার অনুমতি দেবে, অন্যদিকে প্রবাহিত জলের একটি ফ্রেম এটি ভালভাবে কাজ করতে পারে না।
অস্থায়ী অপ্রয়োজনীয়
এটি বিদ্যমান কারণ অন্য ফ্রেমের অনুসরণকারী কোনও ফ্রেম সম্ভবত তার পূর্বসূরীর সাথে খুব মিল। বেশিরভাগ ক্ষেত্রে, কেবলমাত্র একটি সামান্য বিট পরিবর্তন হয় এবং এটি সম্পূর্ণরূপে এনকোড করার কোনও মানে হয় না। ভিডিও এনকোডাররা যা করে তা কেবল দুটি পরবর্তী ফ্রেমের মধ্যে পার্থক্যকে এনকোড করা হয় , যেমন তারা ম্যাক্রব্লকগুলি করতে পারে।
গতি ক্ষতিপূরণ সম্পর্কিত উইকিপিডিয়ায় নিবন্ধ থেকে একটি উদাহরণ গ্রহণ করা যাক, এটি বলি এটি আপনার মূল ফ্রেম:
তারপরে পরবর্তী ফ্রেমের পার্থক্য কেবল এটি:
এনকোডার এখন কেবল প্রকৃত পার্থক্যগুলি সঞ্চয় করে , পিক্সেল বাই পিক্সেল মানগুলি না। এজন্য প্রতিটি ফ্রেমের জন্য ব্যবহৃত বিট প্রতিবার একই হয় না। এই "পার্থক্য" ফ্রেমগুলি সম্পূর্ণ এনকোডযুক্ত ফ্রেমের উপর নির্ভর করে এবং এ কারণেই আধুনিক কোডেকগুলির জন্য কমপক্ষে দুটি ধরণের ফ্রেম রয়েছে:
- আই-ফ্রেম (ওরফে কীফ্রেম) - এগুলি সম্পূর্ণরূপে এনকোডযুক্ত
- পি-ফ্রেম - এগুলি কেবলমাত্র পার্থক্য সংরক্ষণ করে
আপনার মাঝে মাঝে ভিডিওতে আই-ফ্রেম sertোকানো প্রয়োজন। আসল বিটরেট ব্যবহৃত আই-ফ্রেমের সংখ্যার উপরও নির্ভর করে। তদ্ব্যতীত, দুটি পরবর্তী ফ্রেমের মধ্যে গতির যত বেশি পার্থক্য রয়েছে, তত বেশি এনকোডারকে সংরক্ষণ করতে হবে। "কিছুই না" সরানোর একটি ভিডিও স্পোর্টস ভিডিওর চেয়ে এনকোড করা সহজ হবে এবং প্রতি ফ্রেমে কম বিট ব্যবহার করবে।