libjpeg-turbo মূলত libjpeg/SIMD, libjpeg v6b-এর MMX-এক্সিলারেটেড ডেরিভেটিভের উপর ভিত্তি করে তৈরি করা হয়েছিল
লিনাক্সে, যখন কোডেকের কথা আসে, বেশিরভাগ ব্যবহারকারীরা সাধারণত এটি নিয়ে চিন্তা করেন না, যেহেতু অনেক বিতরণে এই সমস্যাটি সাধারণত ডিফল্টভাবে লক্ষ্যে অন্তর্ভুক্ত হওয়ার মাধ্যমে সমাধান করা হয়, অ্যাপ্লিকেশনগুলি দেখা বা সম্পাদনা করার পাশাপাশি, তারা তাদের শস্যও অবদান রাখে। কিছু অতিরিক্ত সহ বালি.
কিন্তু কি হবে যখন একজন ব্যবহারকারী নির্দিষ্ট দিকগুলিতে কর্মক্ষমতা উন্নত করতে চান, বলুন কাজ সম্পাদনা করার জন্য বা সাধারণ অবসরের জন্য। এই অংশে, সমস্ত ব্যবহারকারী জড়িত হন না, তবে যারা আগ্রহী তাদের জন্য, তারা প্রতিটি বিন্যাসে যে সুবিধাগুলি অফার করে তা তদন্ত করার প্রবণতা রাখে৷
এবং এখানেই আমরা আজ যে কোডেক সম্পর্কে কথা বলতে যাচ্ছি তা আসে এবং তা হল যে জেপিইজি ইমেজ ফরম্যাটটি সবচেয়ে জনপ্রিয়, তবে এর অর্থ এই নয় যে এটি সেরা, কারণ অন্যান্য ফর্ম্যাট রয়েছে এই উপর অনেক সুবিধা অফার.
libjpeg-turbo হলো অন্যান্য ফরম্যাটের তুলনায় JPEG-এর কিছু সীমাবদ্ধতার একটি সমাধান , যেমনটি এর গিটহাব রিপোজিটরিতে উল্লেখ করা হয়েছে:
libjpeg-turbo হল একটি JPEG ইমেজ কোডেক যা x86, x86-64, Arm, PowerPC, এবং MIPS সিস্টেমে বেঞ্চমার্ক JPEG কম্প্রেশন এবং ডিকম্প্রেশন, সেইসাথে x86, x86-64, এবং arm-এ প্রগতিশীল JPEG কম্প্রেশন ত্বরান্বিত করতে SIMD নির্দেশাবলী ব্যবহার করে। এই ধরনের সিস্টেমে, libjpeg-turbo সাধারণত libjpeg-এর চেয়ে 2-6 গুণ দ্রুত, বাকি সব সমান। অন্যান্য ধরণের সিস্টেমে, libjpeg-turbo এখনও তার উচ্চ অপ্টিমাইজ করা হাফম্যান কোডিং রুটিনগুলির কারণে একটি উল্লেখযোগ্য পরিমাণে libjpeg কে ছাড়িয়ে যেতে পারে। অনেক ক্ষেত্রে, libjpeg-turbo-এর কর্মক্ষমতা মালিকানা উচ্চ-গতির JPEG কোডেকগুলির প্রতিদ্বন্দ্বী।
libjpeg-turbo প্রথাগত libjpeg API এবং কম শক্তিশালী কিন্তু সহজ TurboJPEG API উভয়ই প্রয়োগ করে। libjpeg-turbo-তে কালার স্পেস এক্সটেনশনও রয়েছে যা এটিকে 32-বিট এবং বিগ-এন্ডিয়ান পিক্সেল বাফারে (RGBX, XBGR, ইত্যাদি) কম্প্রেস/ডিকম্প্রেস করতে দেয়, পাশাপাশি একটি পূর্ণ বৈশিষ্ট্যযুক্ত জাভা ইন্টারফেস।
Libjpeg-turbo হলো ক্লাসিক libjpeg লাইব্রেরির একটি API/ABI-সম্মত ফর্ক , যা দ্রুততম এনকোডিং এবং ডিকোডিং গতি প্রদানের জন্য ডিজাইন করা হয়েছে। স্ট্যান্ডার্ড libjpeg API ছাড়াও, এই লাইব্রেরিটি নিজস্ব TurboJPEG API এবং কালার রেন্ডারিং মডেলসহ বেশ কিছু এক্সটেনশন প্রদান করে, যা ছবিকে ৩২-বিট পিক্সেল বাফারে (RGBX, XBGR) কম্প্রেস করতে বা ডিকোড করতে সাহায্য করে।
অন্যান্য আর্কিটেকচারে এই গতিবৃদ্ধি ততটা উল্লেখযোগ্য নয়, কিন্তু অপ্টিমাইজ করা হাফম্যান এনকোডিং ফাংশন ব্যবহারের কারণে লাইব্রেরিটি এখনও libjpeg-এর চেয়ে লক্ষণীয়ভাবে দ্রুত এবং পারফরম্যান্সের দিক থেকে উচ্চ-মানের মালিকানাধীন JPEG কোডেকগুলোর কাছাকাছি পৌঁছে যায়।
উল্লেখ্য যে, ibjpeg-turbo সম্প্রতি এর নতুন 3.0 শাখা পেয়েছে , এবং এই নতুন সংস্করণে তুলে ধরা প্রধান উদ্ভাবনগুলো হলো নিম্নরূপ:
- 4:1:1 রঙের সাবস্যাম্পলিং-এর জন্য সমর্থন যোগ করা হয়েছে, যা আপনাকে মানের ক্ষতি ছাড়াই 4:1:1 সাবস্যাম্পড JPEG ছবিগুলিকে রূপান্তর, ক্রপ এবং ঘোরানোর অনুমতি দেয়, সেইসাথে সেগুলিকে ডিকম্প্রেস এবং YUV রঙের মডেলে রূপান্তর করতে।
- সর্বোত্তম হাফম্যান টেবিলের উল্লেখযোগ্যভাবে ত্বরান্বিত গণনা। ছোট ছবিগুলির জন্য (256×256), পরিবর্তনটি কম্প্রেশন সময়কে দুই গুণ পর্যন্ত হ্রাস করার অনুমতি দেয়।
- 12-বিট-প্রতি-চ্যানেল রঙ উপস্থাপনা সহ JPEG চিত্রগুলির জন্য গাণিতিক এনট্রপি কোডিং প্রয়োগ করার ক্ষমতা যুক্ত করা হয়েছে।
- বিদ্যমান সীমাবদ্ধতা দূর করতে এবং এক্সটেনসিবিলিটি বাড়ানোর জন্য TurboJPEG API উল্লেখযোগ্যভাবে পুনরায় ডিজাইন করা হয়েছে। উদাহরণস্বরূপ, সমস্ত সি ফাংশন এখন "tj3" এর সাথে উপসর্গযুক্ত।
- অনেক পতাকা এবং মোড ফাংশন আর্গুমেন্ট থেকে সাধারণ API প্যারামিটারে রূপান্তরিত হয়েছে।
- ক্ষতিকর এবং ক্ষতিহীন মোডে প্রতি চ্যানেলে 12 এবং 16 বিট রঙের ছবিগুলির জন্য সমর্থন।
- লসলেস JPEG ফাইল মোড যোগ করা হয়েছে, যা প্রতি চ্যানেলে 8, 12 এবং 16 বিট রঙের ছবির জন্য উপলব্ধ। নতুন ফাংশন jpeg_enable_lossless() এবং কমান্ড লাইন বিকল্প "-লসলেস" যোগ করা হয়েছে।
- Java TurboJPEG API-তে অপসারিত ক্ষেত্র, কনস্ট্রাক্টর এবং পদ্ধতিগুলি সরানো হয়েছে।
পরিশেষে, এটি উল্লেখ করা উচিত যে ভবিষ্যতে, libjpeg-turbo-এর লেখক শুধুমাত্র বাগ ফিক্স সহ আপডেট প্রকাশ করার জন্য প্রকল্পের কাজকে সীমাবদ্ধ রাখতে চান। প্রকল্পের জন্য তহবিল প্রাপ্ত না হওয়া পর্যন্ত নতুন সংস্করণ 3.1 এর বিকাশ শুরু হবে না।
যারা কোডটিতে আগ্রহী , তাদের জন্য এটি তিনটি বিএসডি-সদৃশ লাইসেন্সের অধীনে বিতরণ করা হয়: আইজেজি (IJG), যা বিএসডি দ্বারা সংশোধিত, এবং জিলিব (zlib)। লিনাক্স, ম্যাকওএস এবং উইন্ডোজের জন্য বাইনারিগুলো উপলব্ধ। আপনি নিম্নলিখিত লিঙ্ক থেকে আরও বিস্তারিত তথ্য জানতে এবং বাইনারিগুলো ডাউনলোড করতে পারেন ।