এই চ্যালেঞ্জটিতে আপনি চিত্রের পূর্বরূপ সংক্ষেপণ অ্যালগরিদম তৈরি করবেন। এটির লক্ষ্য হ'ল একটি স্বেচ্ছাসেবী চিত্র ফাইলটি 4 কিবি প্রিভিউ চিত্রের কাছে হ্রাস করা যায়, এটি খুব অল্প ব্যান্ডউইথ দিয়ে চিত্রগুলি দ্রুত সনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনাকে অবশ্যই দুটি প্রোগ্রাম লিখতে হবে (বা একটি সমন্বিত প্রোগ্রাম): একটি সংক্ষেপক এবং একটি ডিসম্প্রেসার। উভয়কেই কোনও ফাইল বা স্টিডিনকে ইনপুট হিসাবে নিতে হবে এবং কোনও ফাইল বা স্টডআউটে আউটপুট নিতে হবে। সংক্ষিপ্তকারীর পছন্দসই একটি মূলধারার ক্ষতিবিহীন চিত্র বিন্যাসে (যেমন, পিএনজি, বিএমপি, পিপিএম) একটি চিত্র গ্রহণ করতে হবে এবং সর্বাধিক 4096 বাইটের একটি ফাইল আউটপুট নিতে হবে । ডিকম্প্রেসারকে অবশ্যই সংক্ষেপক দ্বারা উত্পাদিত যে কোনও ফাইল গ্রহণ করতে হবে এবং ইনপুট থেকে যতটা সম্ভব একটি চিত্র আউটপুট দিতে হবে। নোট করুন / এনকোডার / ডিকোডারটির জন্য কোনও সোর্স কোড আকারের সীমা নেই, তাই আপনি আপনার অ্যালগরিদমে সৃজনশীল হতে পারেন।
সীমাবদ্ধতা:
কোনো প্রতরণা চলবে না'. আপনার প্রোগ্রামগুলি লুকানো ইনপুট, ইন্টারনেটে ডেটা সংরক্ষণ ইত্যাদি ব্যবহার করতে পারে না etc. আপনি কেবলমাত্র স্কোরিং ইমেজের সেটের বৈশিষ্ট্য / ডেটা অন্তর্ভুক্ত করতে নিষেধ are
লাইব্রেরি / সরঞ্জামগুলি চালু / বিল্ট-ইন জন্য আপনি হয় ব্যবহার করার অনুমতি দেওয়া জেনেরিক চিত্র প্রক্রিয়াকরণ কার্যকলাপ (স্কেলিং, অস্পষ্টতা, রঙ স্থান রূপান্তর, ইত্যাদি), কিন্তু না চিত্রের ডিকোডিং / এনকোডিং / কম্প্রেশন (সংকোচকারী ইনপুট এবং decompressor আউটপুট ছাড়া) অপারেশন। জেনেরিক সংকোচনের / ডিকম্প্রেশনকেও অনুমোদিত নয় । আপনি এই চ্যালেঞ্জটির জন্য নিজের সংকোচনের বাস্তবায়ন করার উদ্দেশ্যে এটি তৈরি করা হয়েছে।
ডিকম্প্রেসরের দ্বারা চিত্র আউটপুটটির মাত্রাগুলি অবশ্যই সংক্ষেপককে দেওয়া মূল ফাইলের সাথে অবশ্যই মিলবে। আপনি ধরে নিতে পারেন যে উভয় দিকের চিত্রের মাত্রা 2 16 এর বেশি নয় ।
আপনার সংকোচকারীকে অবশ্যই গড়ে 5 মিনিটের মধ্যে একজন গ্রাহক পিসিতে চালাতে হবে এবং ডিকম্প্রেসারটি অবশ্যই নীচের সেটের কোনও চিত্রের জন্য 10 সেকেন্ডের মধ্যে দৌড়াতে হবে।
স্কোরিং
দ্রুত যাচাইকরণ এবং চাক্ষুষ তুলনায় সহায়তার জন্য, দয়া করে আপনার উত্তরটি ব্যবহার করে সংক্ষেপণের পরে পরীক্ষা কর্পাসের একটি ক্ষতিহীন চিত্রের অ্যালবামটি অন্তর্ভুক্ত করুন।
আপনার সংক্ষেপকগুলি নিম্নলিখিত চিত্রগুলির কর্পাস ব্যবহার করে পরীক্ষা করা হবে :
আপনি এখানে একটি জিপ ফাইলে সমস্ত চিত্র ডাউনলোড করতে পারেন ।
আপনার স্কোরটি সমস্ত চিত্রগুলিতে আপনার সংক্ষেপকের জন্য গড় কাঠামোগত মিলের সূচক হবে। আমরা dssim
এই চ্যালেঞ্জের জন্য মুক্ত উত্সটি ব্যবহার করব । এটি উত্স থেকে সহজেই তৈরি করা হয়, বা আপনি উবুন্টুতে থাকলে এটির পিপিএও রয়েছে। আপনি যদি নিজের উত্তরটি স্কোর করেন তবে এটি অগ্রাধিকারপ্রাপ্ত তবে আপনি যদি সি অ্যাপ্লিকেশনগুলি কীভাবে তৈরি করতে জানেন না এবং আপনি ডেবিয়ান / উবুন্টু পরিচালনা না করেন তবে আপনি অন্য কাউকে আপনার জন্য স্কোর করতে দিতে পারেন। dssim
পিএনজিতে ইনপুট / আউটপুট আশা করে, তাই যদি আপনি অন্য ফর্ম্যাটে আউটপুট করেন তবে প্রথমে আপনার আউটপুটটিকে পিএনজিতে রূপান্তর করুন।
স্কোরিংকে বেদনাবিহীন করতে এখানে একটি দ্রুত সহায়ক পাইথন স্ক্রিপ্ট, ব্যবহার python score.py corpus_dir compressed_dir
:
import glob, sys, os, subprocess
scores = []
for img in sorted(os.listdir(sys.argv[1])):
ref, preview = (os.path.join(sys.argv[i], img) for i in (1, 2))
sys.stdout.write("Comparing {} to {}... ".format(ref, preview))
out = subprocess.check_output(["dssim", ref, preview]).decode("utf-8").split()[0]
print(out)
scores.append(float(out))
print("Average score: {:.6f}".format(sum(scores) / len(scores)))
সর্বনিম্ন স্কোর জয়।
You may assume that the image dimensions do not exceed 2^32 in either direction.
এটি কি একটু অতিরিক্ত নয়? এর অর্থ আমাকে এক জোড়া (x, y) স্থানাঙ্ক সঞ্চয় করতে 16 বাইট ব্যবহার করতে হবে। কয়েকটি ইমেজ ফাইলের উভয় দিকের 2 ^ 16 (65536) পিক্সেলের বেশি মাত্রা রয়েছে এবং কর্পাসের সমস্ত চিত্রের জন্য 2 ^ 11 যথেষ্ট।
2^16
।