Chrome-এ JPEG XL পাঠানো

প্রকাশিত: ৬ অক্টোবর, ২০২৬

আমরা এটি ঘোষণা করতে পেরে আনন্দিত যে Chrome 155 থেকে শুরু করে Chrome, JPEG XL (.jxl) ইমেজ ফর্ম্যাটের জন্য ডিকোডিং সাপোর্ট প্রদান করছে। JPEG XL হল নেক্সট-জেনারেশন ইমেজ ফর্ম্যাট যা আধুনিক ওয়েব ডেভেলপার ও ফটোগ্রাফারদের প্রয়োজন মেটানোর জন্য ডিজাইন করা হয়েছে। এটি JPEG-এর তুলনায় ৩০-৫০% ভালো কম্প্রেশন, লসলেস কম্প্রেশন, বিল্ট-ইন HDR সহায়তা, লসলেস JPEG ট্রান্সকোডিং এবং আরও অনেক কিছু অফার করে।

সাধারণত, সেরা ফলাফল পেতে আমরা AVIF ও JPEG XL, দু'টি ফর্ম্যাটই ব্যবহার করে দেখার সাজেশন দিই। আমরা আশা করি যে JPEG XL, হাই-ফিডেলিটি বা লসলেস কম্প্রেশনের জন্য সবচেয়ে সহায়ক হবে, বিশেষ করে ফটোগ্রাফিক ছবি বা এমন ক্ষেত্রে যেখানে ফাইন-গ্রেন প্রোগ্রেসিভ ডিকোডিং পছন্দ করা হয়।

এই পোস্টে, আমরা কেন Chrome-এ JPEG XL নিয়ে এসেছি, কীভাবে আমরা Rust ব্যবহার করে প্রথমে মেমরি সুরক্ষা নিশ্চিত করেছি, এটিকে দ্রুত করে তোলার জন্য করা ব্যাপক পারফর্ম্যান্স সংক্রান্ত কাজ এবং ডেভেলপারদের মতামত ও ওয়েব স্ট্যান্ডার্ড ইকোসিস্টেম সম্পর্কে এই জার্নি আমাদের কী বলে, তা শেয়ার করব।

নিরাপত্তাকে অগ্রাধিকার দেওয়া: Rust-এ ডিকোডার আবার প্রয়োগ করা (jxl-rs)

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

আমাদের নিরাপত্তা মডেল স্যান্ডবক্সিং ও ডিফেন্স-ইন-ডেপথের উপর নির্ভর করে, যা দুটি নিয়ম দ্বারা পরিচালিত হয়। তবে, স্যান্ডবক্সিং হল সুরক্ষার একটি গৌণ স্তর। সোর্স লেভেলে এই নিরাপত্তা ঝুঁকিগুলি দূর করতে, আমরা jxl-rs ইন্টিগ্রেট করেছি, এটি হল JPEG XL ডিকোডারের একটি বিশুদ্ধ Rust ইমপ্লিমেন্টেশন।

নিরাপত্তার সাথে কোনও আপস না করেই দ্রুততার জন্য ডিজাইন করা

মেমরি নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ, কিন্তু মেমরি-নিরাপদ নয় এমন সেরা বিকল্পের প্রায় সমান দ্রুত গতির মেমরি-নিরাপদ ডিকোডার, পারফর্ম্যান্সের ক্ষেত্রে উল্লেখযোগ্য আপস করা বিকল্পের চেয়ে অনেক বেশি স্পষ্ট পছন্দ।

আধুনিক কোডেকের পারফর্ম্যান্সের একটি মৌলিক অংশ হল আধুনিক ডিভাইসে উপলভ্য SIMD হার্ডওয়্যারের সম্পূর্ণ ব্যবহার করা। এটি নিরাপদে করতে, target_feature_11 Rust ফিচারকে স্থিতিশীল করতে হয়েছে, যা unsafe কোডের প্রয়োজন ছাড়াই SIMD নির্দেশাবলী ব্যবহার করার অনুমতি দেয়।

পরবর্তী ধাপ ছিল, C++ Highway লাইব্রেরি (যা মূলত libjxl-এর জন্য তৈরি করা হয়েছে, এটি JPEG XL-এর C++ রেফারেন্স ইমপ্লিমেন্টেশন) থেকে অনুপ্রাণিত হয়ে একটি SIMD অ্যাবস্ট্রাকশন লেয়ার (jxl_simd) তৈরি করা। এইসব ডেভেলপমেন্টের ফলে, মাল্টি-প্ল্যাটফর্ম লাইব্রেরি লেখা সম্ভব হয়েছে যা SIMD পারফর্ম্যান্স অপ্টিমাইজেশনের সাথে কোনও আপস করে না, একই সাথে অল্প সংখ্যক অত্যন্ত ভালভাবে যাচাই করা লোকেশনে অসুরক্ষিত অপারেশন সীমাবদ্ধ করে।

libjxl-এ করা পারফর্ম্যান্স অপ্টিমাইজেশনের উপর ভিত্তি করে jxl-rs-এ পারফর্ম্যান্স অপ্টিমাইজেশন করা হয়েছে। এর মধ্যে অন্তর্ভুক্ত হল সীমানা অতিক্রমকারী স্টেপের জন্য একটি সাধারণ প্রসেসিং পাইপলাইন, একই সাথে হার্ডওয়্যারের পারফর্ম্যান্স সর্বাধিক করার জন্য ডেটা কপি করা কমানো। আমরা jxl-rs পারফর্ম্যান্স ড্যাশবোর্ডে বিভিন্ন হার্ডওয়্যার প্ল্যাটফর্ম জুড়ে Rust-এর রিমপ্লিমেন্টেশনের পারফর্ম্যান্স ট্র্যাক করছি।

আমরা jxl-rs প্রয়োগের বিষয়টি বিভিন্ন অত্যাধুনিক টেকনিকের মাধ্যমে যাচাই করেছি, এর মধ্যে কোডের ফাজিং ও AI পর্যালোচনা অন্তর্ভুক্ত। আমরা সম্পূর্ণ প্রয়োগের ইতিহাস জুড়ে কোনও মেমরি সুরক্ষা সংক্রান্ত বাগ খুঁজে পাইনি। এটি মেমরি সুরক্ষার ক্ষেত্রে Rust-এর করা বিশাল উন্নতিকে আরও একবার প্রমাণ করে।

ডেভেলপারদের মতামত ও ইন্টার-অপারেবিলিটি প্রোজেক্ট

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

বিভিন্ন ব্রাউজার জুড়ে ফর্ম্যাট যাতে ইন্টারঅপারেবল হয় তা নিশ্চিত করতে, আমরা Interop 2026 JPEG XL ইনভেস্টিগেশনে অংশগ্রহণ করেছি যাতে ব্রাউজারে JPEG XL-এর সব ফিচারের জন্য টেস্ট কভারেজ আছে এবং সেইসব টেস্ট Chrome-এ পাস করে তা নিশ্চিত করা যায়।

এটি ব্যবহার করে দেখুন

Chrome-এ JPEG XL আনুষ্ঠানিকভাবে যোগ করার ফলে, ওয়েব আরও দ্রুত, সমৃদ্ধ ও নিরাপদ হয়ে উঠেছে। আমরা ডেভেলপার, কন্টেন্ট ক্রিয়েটর ও প্ল্যাটফর্ম মালিকদের তাদের পাইপলাইনে .jxl ছবি ও অ্যানিমেশন ব্যবহার করা শুরু করতে উৎসাহিত করি।

এটি ব্যবহার করে দেখুন, বাগ সংক্রান্ত সমস্যা ফাইল করুন, এবং সকলের জন্য আরও দ্রুত ও নিরাপদ ওয়েব তৈরি করার কাজে আমাদের সাহায্য করুন।

স্বীকৃতি

আমরা সেইসব ব্যক্তিকে ধন্যবাদ জানাতে চাই যারা Chrome-এ jxl-rs বা এর ইন্টিগ্রেশন করার কাজে অবদান রেখেছেন এবং বিশেষ করে Helmut Januschka-কে Chrome ইন্টিগ্রেশন ও jxl-rs উভয় ক্ষেত্রেই উল্লেখযোগ্য অবদান রাখার জন্য ধন্যবাদ জানাতে চাই। এছাড়াও, jxl-rs নিজেই উল্লেখযোগ্য অবদান রাখার জন্য Martin Bruse, Zoltan Szabadka, Sami Boukortt ও Wonwoo Choi-কে ধন্যবাদ জানাতে চাই।