জাম্প বন্যার অ্যালগরিদম পৃথকযোগ্য?


10

জেএফএ (এখানে বর্ণিত অ্যালগরিদম: http://www.comp.nus.edu.sg/~tants/jfa/i3d06.pdf ) ভোরোনাই চিত্রের একটি অনুমান বা দূরত্ব রূপান্তর পেতে ব্যবহার করা যেতে পারে। এটি ফলাফলের চিত্রের আকারের উপর ভিত্তি করে লোগারিথমিক সময়ে করে, বীজের সংখ্যার ভিত্তিতে নয়।

আপনার অক্ষর প্রতিটি অক্ষরে একই আকার না থাকলে আপনি কী করবেন?

যদি সেগুলি একই আকারের হয়, তবে আমি নিশ্চিত যে আপনি ছোট অক্ষের আকারের 1 টির অতিরিক্ত জেএফএ পদক্ষেপ রাখতে পারতেন, যখন বড় অক্ষটি এটি কাজ শেষ করে (512 x 256 আকারের চিত্র রাখার মতো)। বিস্তৃত আকারের অক্ষের মাত্রার জন্য এটি অনেক বেশি অক্ষম হতে পারে - বলুন যে আপনার একটি ভলিউম টেক্সচার ছিল যা 512 x 512 x 4 ছিল।

প্রতিটি অক্ষরে আলাদাভাবে জেএফএ চালানো এবং এখনও ভাল ফলাফল পাওয়া সম্ভব?

অথবা সেই সময়ে ব্যবহারের জন্য কোনও আলাদা অ্যালগরিদম কি আরও উপযুক্ত? যদি তা হয়, তবে এটি কোন অ্যালগরিদম হতে পারে?

আমার পরিস্থিতিতে আদর্শভাবে আমি উভয় একক পয়েন্ট বীজ, পাশাপাশি স্বেচ্ছাকৃতির আকারের বীজ সমর্থন করতে চাই। সম্ভবত এমনকি ওজনযুক্ত বীজ, যেখানে একটি বীজের দূরত্বটি একটি গুণক এবং / অথবা একটি সংযোজক দ্বারা আরও বা কম প্রভাব দেওয়ার জন্য সামঞ্জস্য করা হয়।

উত্তর:


7

আপনার পৃথক প্রশ্নের দ্রুত উত্তর

আপনার অক্ষর প্রতিটি অক্ষরে একই আকার না থাকলে আপনি কী করবেন?

কাগজটি পার্শ্ব দৈর্ঘ্যের সাথে বর্গক্ষেত্রের চিত্রগুলি ব্যবহার করে যা 2 পাওয়ার This বিভাগ ৩.১ দেখুন:

সাধারণতার ক্ষতি ছাড়াই আমরা ধরে নিতে পারি যে n 2 এর শক্তি power

অর্থাৎ, অ্যালগরিদমটি কাজ করার জন্য এই অনুমানের প্রয়োজন হয় না।

প্রতিটি অক্ষরে আলাদাভাবে জেএফএ চালানো এবং এখনও ভাল ফলাফল পাওয়া সম্ভব?

প্রতিটি অক্ষরে পৃথকভাবে চালনা করা আরও ভুল পিক্সেলের ফলাফল দেয় এবং বেশিরভাগ ক্ষেত্রে চালাতে আরও বেশি সময় নেয়। চরম ক্ষেত্রে যেখানে চিত্রের পার্শ্বের দৈর্ঘ্যের একটি 8-এরও কম (লাফের দিকের সংখ্যা), অ্যালগরিদম সেই 8 টি দিককে যথাযথভাবে আচরণ করে তা তত দ্রুত হতে পারে তবে কোনও বৃহত্তর চিত্রের জন্য অক্ষগুলি পৃথক করে চিকিত্সা করার সুযোগটি হারাবে সমান্তরাল.

আমার পরিস্থিতিতে আদর্শভাবে আমি উভয় একক পয়েন্ট বীজ, পাশাপাশি স্বেচ্ছাকৃতির আকারের বীজ সমর্থন করতে চাই

কাগজটিতে "জেনারালাইজড ভোরোনাই ডায়াগ্রাম" এর শিরোনামের অধীনে বিভাগ 6 এ স্বেচ্ছাচারিত আকারের বীজের উল্লেখ রয়েছে:

... আমাদের অ্যালগরিদমগুলি সাধারণ বীজগুলিকে পয়েন্ট বীজের সংগ্রহ হিসাবে বিবেচনা করে এবং এভাবে পয়েন্ট বীজের জন্য প্রাপ্ত ভাল পারফরম্যান্সের উত্তরাধিকারী হওয়ার প্রত্যাশা করে।

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

সম্ভবত এমনকি ওজনযুক্ত বীজ, যেখানে একটি বীজের দূরত্বটি একটি গুণক এবং / অথবা একটি সংযোজনকারী কম বা বেশি প্রভাব দিতে সামঞ্জস্য করে

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

বর্তমান অ্যালগরিদম <s, position(s)>কোনও বীজ এবং তার অবস্থান নির্দিষ্ট করতে চলে যায় এবং যে কোনও সময় পিক্সেলটিতে কেবল একটি বীজ সংরক্ষণ করা হয়। এটি সঞ্চয় করতে প্রসারিত <s, position(s), weight(s)>করে দূরত্ব ফাংশনটির ওজন নির্ধারণের জন্য প্রয়োজনীয় সমস্ত তথ্য সরবরাহ করে এবং এটি নির্ধারণ করে যে নতুন বীজ একটি পিক্সেলকে দেওয়া হচ্ছে এটি বর্তমানে সংরক্ষণের চেয়ে নিকটবর্তী কিনা।

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

<s, position(s), multiplicative(s), additive(s)>

এবং বর্তমান অ্যালগরিদম ব্যবহার করে এই নতুন অ্যালগরিদমের সমতুল্য

<s, position(s), 1, 0>


কেন তার বিশদ বিবরণ

কাগজ হিসাবে, সমস্ত ব্যবহার বেস 2 লগারিদমকে বোঝায়।log()

অ্যালগরিদম বিভিন্ন পাশ দৈর্ঘ্যের জন্য অভিযোজিত করা প্রয়োজন হয় না

যদি পাশের দৈর্ঘ্য সমান না হয় এবং 2 এর শক্তি না হয় তবে অ্যালগরিদমটি মানিয়ে নেওয়ার দরকার নেই। এটি ইতিমধ্যে চিত্রের প্রান্তে পিক্সেল নিয়ে কাজ করে যার জন্য কিছু লাফের দিকটি চিত্রের বাইরে নিয়ে যায়। যেহেতু আলগোরিদিম ইমেজটির বাইরে নিয়ে যাওয়ার দিকনির্দেশের জন্য বীজের তথ্যটি ইতিমধ্যে বাদ দেয় তাই একটি প্রস্থ বা উচ্চতা যা 2 এর শক্তি নয় এটি কোনও সমস্যা হবে না। প্রস্থ এবং উচ্চতা এইচ এর চিত্রের জন্য, সর্বোচ্চ জাম্পের আকার প্রয়োজন হবে size

2log(max(W,H))1

সমান প্রস্থ এবং উচ্চতা এন এর ক্ষেত্রে এটি কমে যায়

2log(N)1

পাশের দৈর্ঘ্যের N এর ক্ষেত্রে এটি 2 এর শক্তি, এটি হ্রাস পায়

2log(N)1=N/2

যেমন কাগজে ব্যবহৃত।

আরও স্বজ্ঞাত পদক্ষেপে, সর্বাধিক পাশের দৈর্ঘ্য 2 এর পরবর্তী পাওয়ার পর্যন্ত গোল করুন এবং তারপরে সর্বোচ্চ লাফের আকার পেতে এটি অর্ধেক করুন।

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

2 এর শক্তি না থাকা পক্ষগুলির চিত্রগুলি খুব কম দক্ষ হবে না

লাফের সংখ্যাটি দীর্ঘতম পার্শ্বের দৈর্ঘ্যের উপর নির্ভর করে, বলুন এল। যদি এল 2 এর শক্তি হয় তবে জাম্পের সংখ্যা হ'ল । তাহলে এল 2 একটি ক্ষমতা নয় তারপর জাম্প সংখ্যা । যুক্তিসঙ্গতভাবে বৃহত চিত্রের জন্য এটি একটি বড় পার্থক্য হবে না।log(L)log(L)

উদাহরণস্বরূপ, 1024 বাই 1024 চিত্রের জন্য 10 লাফের পুনরাবৃত্তির প্রয়োজন হবে। 512 বাই 512 চিত্রের জন্য 9 টি জাম্পের পুনরাবৃত্তি প্রয়োজন হবে। দুটি আকারের মধ্যে যে কোনও কিছুতে 10 টি পুনরাবৃত্তি প্রয়োজন। এমনকি 513 বাই 513 চিত্রের মতো কেবল 2 টির শক্তির চেয়েও একটি চিত্রের সবচেয়ে খারাপ ক্ষেত্রে এটির জন্য কেবল 1 টি অতিরিক্ত পুনরাবৃত্তি প্রয়োজন হবে, যা এই স্কেলটিতে প্রায় 11% বেশি (9 এর পরিবর্তে 10)।

স্কোয়ারবিহীন চিত্রগুলি প্রতি এলাকাতে কম দক্ষ

যেহেতু প্রয়োজনীয় পুনরাবৃত্তির সংখ্যাটি দীর্ঘতম পার্শ্ব দৈর্ঘ্যের দ্বারা নির্ধারিত হয়, তাই 1024 বাই 1024 চিত্রের জন্য 1024 বাই 16 ইমেজের মতো সময়টি হবে। একটি বর্গক্ষেত্রের চিত্র বৃহত্তর অঞ্চলটিকে একই সংখ্যায় পুনরাবৃত্তিতে beাকতে দেয়।

অক্ষ পৃথক করা গুণগতমান হ্রাস করতে পারে

কাগজের ৫ নং অনুচ্ছেদে সম্ভাব্য ত্রুটিগুলি বর্ণনা করা হয়েছে। প্রতিটি পিক্সেল প্রতিটি পিক্সেল থেকে পাথে পৌঁছতে পারে তবে কিছু পাথ সঠিক নিকটতম বীজ আনতে পারে না কারণ সেই বীজটি পথের পূর্ববর্তী পিক্সেলের নিকটতম না হয়ে থাকে। এমন একটি পিক্সেল যা কোনও বীজকে অতীত প্রচার করতে দেয় না বলা হয় যে সেই বীজটিকে "হত্যা" করা হয়েছে। যদি পিক্সেলের নিকটতম বীজটি সেই পিক্সেলের সমস্ত পথে মারা যায় তবে পিক্সেলটি অন্য কোনও বীজ রেকর্ড করবে এবং চূড়ান্ত চিত্রটিতে একটি ভুল রঙ থাকবে be

চূড়ান্ত ফলাফলটি সঠিক হওয়ার জন্য কেবলমাত্র একটি পথ থাকা দরকার যা বীজকে হত্যা করে না। ভুল রঙগুলি তখনই ঘটে যখন সঠিক বীজ থেকে প্রদত্ত পিক্সেলের সমস্ত পথ অবরুদ্ধ থাকে।

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

অক্ষ পৃথক করা আলগোরিদিমকে আরও বেশি সময় নিতে পারে

দক্ষতা সম্ভবত অক্ষ পৃথক করে হ্রাস করা হবে, কারণ বন্যা আর সমান্তরালভাবে করা হবে না, পরিবর্তে প্রতিটি অক্ষের জন্য পুনরাবৃত্তি হবে। 2 ডি এর জন্য এটি প্রায় দ্বিগুণ বেশি সময় নিতে পারে এবং 3 ডি প্রায় 3 গুণ বেশি সময় লাগে।

এটি তির্যক জাম্পের অভাবে কিছুটা প্রশমিত হতে পারে তবে আমি এখনও দক্ষতার সামগ্রিক হ্রাস আশা করব।


1
আমি ইতিমধ্যে এর কিছু নিয়ে পরীক্ষা শুরু করেছি। আমি খুঁজে পেয়েছি যে পুরো 9 এর পরিবর্তে একটি + সাইন (5 টি পাঠানো) তে নমুনা দেওয়া আমার পরীক্ষায় কোনও পার্থক্য দেখায়নি, তবে আমি আরও জটিল পরিস্থিতিতে নিশ্চিত যে পার্থক্য থাকবে be একটি পূর্ণ এক্স জেএফএ এবং তারপরে একটি সম্পূর্ণ y জাফা করা অনেকগুলি ত্রুটি করে। আমি আপনার কাছে আরও বিশদ / তথ্য শুনতে আগ্রহী, তবে আপনার উত্তরটি গ্রহণ করছি: পি
অ্যালান ওল্ফ

1
ভুলে গেছেন, এখানে আমার একটি পরীক্ষার লিঙ্কটি রয়েছে: shadertoy.com
অ্যালান ওল্ফ

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

আপনার মতো মনে হচ্ছে আপনার নিজের উত্তর পোস্ট করতে প্রস্তুত ...
ট্রাইকোপলাক্স

আমার তথ্য পরিপূরক আপনার: পি
অ্যালান ওল্ফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.