অডিওর জন্য ডাবল (bit৪ বিট) ভাসমান পয়েন্টটি কখন বিবেচনা করবেন


12

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

ধরুন:

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

উত্তর:


9

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

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

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


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

এছাড়াও, ক্যাশে আবদ্ধ করে বলতে কী বোঝ ? আপনার অর্থ কি এর দ্বিগুণ ডেটা হওয়ার ফলে জিনিসগুলি মারাত্মকভাবে ধীর হয়ে যাবে?
ব্যবহারকারী 1849104

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

9

সিপিইউ / ডিএসপিতে একক এবং ডাবল উভয় নির্ভুলতার জন্য হার্ডওয়্যার ফ্লোটিং পয়েন্ট সমর্থন রয়েছে।

আপনি কী ধরনের সহায়তার কথা বলছেন তা নির্ভর করে এটি নির্ভর করে। X86-এ, x87 স্টাইলের ভাসমান পয়েন্ট নির্দেশাবলী ব্যবহার করার সময়, আপনি সম্পূর্ণ 80-বিট অভ্যন্তরীণ নির্ভুলতা এবং একই প্রক্রিয়াকরণের সময় পাবেন - আপনি একক বা দ্বিগুণ নির্ভুলতার সাথে কাজ করছেন কিনা।

তবে সিমডি নির্দেশাবলী ব্যবহার করার সময়, আপনি -৪-বিট ফ্লোটের চেয়ে ৩২-বিট ফ্লোট ব্যবহার করে দ্বিগুণ আরও কাজ শেষ করতে পারেন। এটা অনেক বড় ব্যাপার।

অ্যাকাউন্টে নেওয়া অন্য জিনিস হ'ল মেমোরি - ডাবল নির্ভুলতা ব্যবহার করে ডেটা পরিমাণের দ্বিগুণ হয়ে যায় যা ক্যাশে মেমরির দ্রুততম স্তরে ফিট করে।

আধুনিক প্রসেসরগুলিতে অডিও সংশ্লেষকরণ এবং প্রক্রিয়া করার সময়,

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

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


এটি কি নিরাপদ হবে যে সিমড নির্দেশাবলীর সাথে একক নির্ভুলতা ব্যবহার আপনাকে সর্বদা দ্বিগুণ নির্ভুলতার চেয়ে প্রায় দ্বিগুণ পারফরম্যান্স দেবে?
ব্যবহারকারী 1849104

যেহেতু আমি আগের মন্তব্যটি আর সম্পাদনা করতে পারব না: আমি কোনও সিমড নির্দেশাবলী সেট (সরাসরি) ব্যবহার করার সুযোগ পাইনি। কেবলমাত্র একক নির্ভুলতা ব্যবহার করা এবং দ্বিগুণ পারফরম্যান্স পাওয়া সম্ভব? নাকি বাস্তবতা পাবে?
ব্যবহারকারী 1849104

6

আপনার অ্যালগরিদমের সংখ্যার প্রয়োজনীয়তাগুলি জানতে হবে এবং সেই অনুসারে নির্ভুলতাটি বেছে নিতে হবে।

সুতরাং এখানে গণিতটি করা যাক: 32-বিট ভাসমান পয়েন্টটিতে 24 বিট ম্যান্টিসা এবং 8 বিটের এক্সপোঞ্জার রয়েছে। এটি আপনাকে প্রায় 1540 ডিবি গতিশীল পরিসরে শব্দের অনুপাতের জন্য প্রায় 150 ডিবি সংকেত দেয়। বেশিরভাগ জিনিস অডিওর জন্য এটি যথেষ্ট। দ্বিগুণ নির্ভুলতা আপনাকে দ্বিগুণ পরিমাণে দেয়।

প্রতিটি অ্যালগরিদমের সংখ্যার নির্ভুলতার জন্য নির্দিষ্ট প্রয়োজনীয়তা রয়েছে। যদি আমি জানি যে সমস্ত অডিও অ্যালগরিদমগুলি সঠিকভাবে ডিজাইন করা হয়েছে তবে 32-বিট ভাসমান পয়েন্ট দিয়ে কেবল একটি জরিমানা করব। "সঠিকভাবে ডিজাইন করা" এখানে মূলশব্দ। উদাহরণস্বরূপ ৪ য় আইআইআর দ্বি-কোয়াড ফিল্টার থেকে সরাসরি হিসাবে বাস্তবায়িত ৪৪.১ কেজি হার্জেটে ৪০-২০০ হার্জেডের নমুনাযুক্ত 6th ষ্ঠ অর্ডার ব্যান্ড পাসটি সত্যই ৩২-বিট-তে কিছু শব্দ সমস্যার সম্মুখীন হবে। তবে এটি ট্রান্সপোজড ফর্ম II বা সরাসরি ফর্ম ফিল্টার হিসাবে পুরোপুরি সূক্ষ্মভাবে কাজ করে।

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

অবশেষে আসুন একনজরে দেখে নেওয়া যাক ভাসমান (32 বিট বা bit৪ বিট) কীটি দুর্বল করে তোলে: আপনার কাছে প্রচুর গতিশীল পরিসর রয়েছে, অর্থাৎ আপনি 200 ডিবি দ্বারা সংকেতটি স্কেল করতে পারবেন, 500 ডিবি দ্বারা প্রশস্ত করতে পারবেন, আবার 300 ডিবি দ্বারা হ্রাস করতে পারবেন এবং আপনি ঠিক যেখানে শুরু করেছিলেন সেখানেই শেষ করুন যা-কিছু হুবহু প্রায় কোনও ক্ষতি সঙ্গে। সুতরাং এটি না। ভাসমান বিন্দু আকারে সম্পূর্ণ পৃথক পৃথক নম্বর যুক্ত করতে সমস্যা আছে। একটি বিন্দু আছে যেখানে একটি ছোট সংখ্যা যুক্ত করা কোনও পার্থক্য করে না, অর্থাত আপনি 1 + dx = 1 পান। এই সংখ্যা "dx" 32-বিট ভাসমান পয়েন্টের জন্য প্রায় 1.2e-7 এবং 64 বিটের জন্য 2.2e-16। আপনি যদি অ্যালগরিদমের সাথে সংখ্যার যোগ বা বিয়োগের পরিমাণকে অন্তর্ভুক্ত করেন যা প্রস্থের চেয়ে অনেক দূরে থাকে তবে আপনি সমস্যার মধ্যে পড়তে পারেন।

এর পূর্বে উল্লিখিত ডাইরেক্ট ফর্ম II ফিল্টারটির একটি ভাল উদাহরণ হ'ল ডাইরেক্ট ফর্ম II ফিল্টার (উদাহরণস্বরূপ https://ccrma.stanford.edu/~jos/fp/Direct_Form_II.html ) মূলত ইনপুট ফিল্টার করে রাষ্ট্রের ভেরিয়েবলগুলি গণনা করে প্রথমে মেরু-কেবল স্থানান্তর ফাংশন দিয়ে এবং তারপরে আউটপুট তৈরি করতে শূন্যগুলির সাথে ফিল্টার করা। এখন যদি খুঁটিগুলি ইউনিট বৃত্তের কাছাকাছি থাকে তবে কেবলমাত্র মেরু-স্থানান্তর স্থানান্তর ফাংশনটি খুব, খুব বড় হয়ে যায়। সুতরাং রাষ্ট্রের ভেরিয়েবল ইনপুট (80 ডিবি থেকে 100 ডিবি বড়) এর চেয়ে অনেক বড় হতে পারে এবং ইনপুটটির সাথে রাজ্য ভেরিয়েবলগুলি সংমিশ্রণ করে প্রচুর শব্দ সৃষ্টি করে।

এখানে সমাধানটি হ'ল ট্রান্সপোজেড ফর্ম II বা সরাসরি ফর্ম I ফিল্টারে যেতে হবে। বিশ্লেষণ দেখায় যে রাষ্ট্রের ভেরিয়েবলগুলি ইনপুট / আউটপুট এর চেয়ে বড় হতে পারে না তবে সম্ভবত 12 ডিবি বা তার আশেপাশের হতে পারে, সুতরাং সমস্যাটির দৈর্ঘ্যের মিলটি প্রথম স্থানে ঘটে না।


2

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

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


2

আপনি যদি সংশ্লেষিত অডিওর সাথে কাজ করছেন যা প্রজন্ম এবং রেন্ডারিংয়ের মধ্যে প্রচুর প্রক্রিয়াজাত হয় (১24/২৪ বিট পূর্ণসংখ্যায় রূপান্তর) তবে আপনি আপনার মেশিনের সেরা সংখ্যাগত নির্ভুলতায় কাজ করে উপকৃত হবেন।

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

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

প্রকৃতপক্ষে, যেহেতু বেশিরভাগ মেশিনগুলির স্থানীয় "ডাবল" (bit৪ বিট) যথার্থতা আজকাল রয়েছে, তাই আমি এখন 32 বিট নিয়ে কাজ করার কারণ দেখছি না ...

আশা করি এইটি কাজ করবে!


3
"আমি আর 32 বিবিট নিয়ে কাজ করার কারণ দেখতে পাচ্ছি না ..." আপনি সিমডি ব্যবহার না করলে!
পিচেনেটস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.