মোটি ভেক্টররা এমপিইগির জন্য ভবিষ্যদ্বাণীমূলক কোডিংয়ে কীভাবে কাজ করবেন?


16

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

আমি কীভাবে এটি কাজ করে তার দৃ gra় উপলব্ধি অর্জনের চেষ্টা করছি। প্রতিটি ম্যাক্রোব্লোকের সাথে একটি গতি ভেক্টর যুক্ত থাকে, যা (যদি ভেক্টর [1,0] থাকে) বলে, all the pixels in this block move 1 in the x direction and 0 in the y direction for the next frame. যদি সমস্ত মোশন ভেক্টর সঠিকভাবে সারিবদ্ধ না হয় তবে এটি চিত্রের অঞ্চলগুলিকে বিনা অ্যাকাউন্টে ফেলে রাখবে না (যেমন অঞ্চল যেখানে যে ম্যাক্রোব্লক প্রথম স্থানে ছিল)?

উদাহরণস্বরূপ, আমার কাছে নিম্নলিখিত প্রশ্ন রয়েছে।

টিতে নিম্নলিখিত চিত্রটি বিবেচনা করুন:

7   7   7   7           
7   7   5   5        
7   5   5   8         
8   8   8   8           
9   9   9   9       
9   9   9   9

এই চিত্রটি 2x2 ম্যাক্রোব্লকগুলিতে বিভক্ত হয়েছিল এবং এটি পুনরায় তৈরি করতে নিম্নলিখিত মোশন ভেক্টরগুলি প্রেরণ করা হয়েছিল:

(0,0)  (0,0)  (0,1)  (-1,1)  (0,0)  (0,0)

আগের সময়ের ধাপে, টি - 1 এর চিত্রটি এর মতো দেখায়:

7   7   7   7           
7   7   5   4        
7   7   7   7         
7   5   8   8           
8   9   8   9       
9   9   9   9   

ত্রুটি সংক্রমণ কী ছিল?

কীভাবে সমাধান করবেন?

উত্তর:


5

আপনার বিভ্রান্তিকে সহজ করতে - দুটি প্রক্রিয়া:

1. গতি অনুমান
2. গতি ক্ষতিপূরণ

আমরা অনুমান সম্পর্কে কথা বলার আগে আমাদের মোশন ক্ষতিপূরণ সম্পর্কে কথা বলা উচিত।

ধরা যাক, ব্লক বি l o c k s t [ k ] ( x , y ) এ বিভক্ত ।আমিমিএকটিটি(এক্স,Y)বিগুলিটি[](এক্স',Y')

মোশন ক্ষতিপূরণ কাজটি উত্পাদন করা হয় কোন অঞ্চল থেকে এর আমি আছি একটি গ্রাম টি - 1 ( এক্স , Y )বিগুলিটি[](এক্স',Y')আমিমিএকটিটি-1(এক্স,Y)

সুতরাং অন্য 16 টি ব্লক অগত্যা 16x16 সীমানায় সারিবদ্ধ নয় এটি সেরা সম্ভাব্য ম্যাচ বিগুলিটি-1[](এক্স'+ +মিএক্স,Y'+ +মিY)

এখানে, গতি ভেক্টর বলা হয়।মিএক্স,মিY

আমরা লক্ষ্য এবং রেফারেন্সের মধ্যে ত্রুটিটি গণনা করতে পারি

RRটি[](এক্স,Y)=বিগুলিটি[](এক্স',Y')-বিগুলিটি-1[](এক্স'+ +মিএক্স,Y'+ +মিY)

সুতরাং এখন, এনকোডারটি মূলত প্রতিটি ব্লকের জন্য (DCT এবং কোয়ান্টাইজেশন সহ) এবং ( মি x , m y ) [ কে ] প্রেরণ করে , .RRটি[](এক্স,Y)(মিএক্স,মিY)[]

সুতরাং এনকোডারের 2 টি কাজ আছে:

1. মোশন প্রাক্কলন
প্রক্রিয়া বা আনুমানিক হিসাব প্রত্যেক জন্য যেমন যে টি [ ] ( এক্স , Y ) ছোট করা বলা হয় মোশন মুল্যায়ন।মিএক্স,মিY[]kErrt[k](x,y)

২. মোশন ক্ষতিপূরণের পরে ত্রুটি চিত্রের উত্পন্নকরণ আই টি ইমেজ পিক্সেল এবং ( এম x , এম ওয়াই ) [ কে ] থেকে বি এল সি কে এস টি [ কে ] ( এক্স , ওয়াই )
নির্মাণের প্রক্রিয়াটিকে মোশন ক্ষতিপূরণ বলা হয় । ত্রুটি চিত্রটি যা সঞ্চারিত হয়।Blockst[k](x,y)It(mx,my)[k]

অবশেষে, ডিকোডারটি তার নিজস্ব চূড়ান্ত পুনরায় নির্মাণের জন্য মাইটন ভেক্টর এবং ত্রুটি চিত্র ব্যবহার করে গতি ক্ষতিপূরণ পুনরায় করতে পারে।

এখন আমরা কয়েকটি বিষয় বুঝতে পারি:

  1. সেরা গতির প্রাক্কলনটি যে শক্তিটি প্রেরণ করা প্রয়োজন তা হ্রাস করতে সহায়তা করে এবং তাই প্রদত্ত মানের জন্য বিটগুলি অনুকূল করে।

  2. তবে, আদর্শ না হলেও বা দৃশ্যের শেষ চিত্রের তুলনায় উল্লেখযোগ্য পরিবর্তন ঘটে থাকলেও, আর আর টি [ কে ] ( এক্স , ওয়াই ) সর্বদা রিসিভারে স্থানান্তরিত হয় - সুতরাং পুনর্নির্মাণ সর্বদা নিখুঁত হয় (কোয়ান্টাইজেশন দ্বারা নির্মিত ক্ষতির মডুলো) অতএব, আপনার সাবওটিমিলাল মোশন ভেক্টর বা রিডানডেন্সি খুব বেশি না হলেও, পুনর্নির্মাণটি এখনও আরও বিট সহ সর্বদা নিখুঁত!(mx,my)[k]Errt[k](x,y)

  3. প্রতিটি ব্লক গতিটি তার নিজস্ব ডান হিসাবে ক্ষতিপূরণ হয় - অতএব এমনকি যদি কোনও প্রতিবেশী ব্লকের প্রকৃত গতি ভেক্টরগুলির নির্মাণে কোনও প্রভাব না থাকে। সুতরাং, নিখুঁত পুনর্গঠন সম্ভব হওয়ার জন্য মোশন ভেক্টরগুলি পুরোপুরিভাবে সারিবদ্ধভাবে তৈরি করা প্রয়োজন হয় না।Blockst[k](x,y)

  4. যদিও অ্যালগরিদম বিদ্যমান যারা অনুমান করার স্মার্ট যথেষ্ট যে যদি গতি ভেক্টর হয়েছে ( মি এক্স , মি Y ) [ K ] জন্য অনুমান বি গুলি টি [ + + 1 ] যথাসাধ্য শুধু যে কাছাকাছি হতে।Blockst[k](mx,my)[k]Blockst[k+1]

  5. অবশেষে অনুমান পরবর্তী ছবি এটি সম্পূর্ণ ভিন্ন সম্ভব যে শক্তি

    Energy(Errt[k](x,y))>Energy(Blockst[k](x,y))

এই ধরনের ক্ষেত্রে, পার্থক্য পাঠানোর চেয়ে ভবিষ্যদ্বাণী ছাড়াই সরাসরি ব্লক প্রেরণ করা ভাল more এটি এনট্রা ব্লক নামক বিধান দ্বারা এনকোডারটিতেও সম্ভব।


3

না, এটি গর্তগুলি ছাড়বে না, কারণ ভেক্টরটি একটি অজানা ফ্রেম (পি বা বি) থেকে একটি পরিচিত ফ্রেমে (আই-ফ্রেম) to এটি কীভাবে কোনও চিত্রের রূপান্তর গণনা করে তার কিছুটা মনে করিয়ে দেয় - আপনি গর্তগুলি এড়ানোর জন্য একটি পশ্চাৎ রূপান্তর ব্যবহার করেন /


3

অনেক স্ট্যান্ডার্ড সিগন্যাল প্রসেসিং রুটিনের ক্ষেত্রে যেমন এটি কাগজে সোজা এবং বাস্তবে কিছুটা জটিল। আপনি আপনার চিত্রটি ছয়টি ব্লকে পৃথক করেছেনবি(আমি,) সঙ্গে আমি={0,1,2} এবং ={0,1}। এই প্রতিটি ব্লকের সমন্বয় রয়েছে(2আমি,2)(আমরা এর অবস্থান শনাক্ত করতে প্রত্যেকের উপরের বাম কোণটি বিবেচনা করি)। আমাদের তাই এখন ছয়টি ব্লক রয়েছে

(0,0) (0,2)
(২,০) (২,২)
(4,0) (4,2)

আপনার গণিত গতি ভেক্টর এম(আমি,) প্রতিটি ব্লকের জন্য

(0,0) (0,0)
(0,1) (-1,1)
(0,0) (0,0)

এখন, ফলাফলের চিত্র গণনা করতে, আমাদের প্রথমে জানতে হবে প্রতিটি ব্লক কোথায় স্থানান্তরিত হয়েছে moved এটি করার জন্য, আমরা কেবল তার গতি ম্যাট্রিক্সে উপরের সমন্বিত ম্যাট্রিক্স যুক্ত করি:বি'(আমি,)=বি(আমি,)+ +এম(আমি,)। আমরা পেতে

(0,0) (0,2)
(2,1) (1,3)
(4,0) (4,2)

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

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

এখন, আপনার প্রশ্নে যে ক্রম ছিল তা অবরুদ্ধভাবে অবরুদ্ধ, আমরা প্রতিস্থাপন করি বি'(আমি,) এর সাথে সম্পর্কিত বি(আমি,)। আমরা অনুমানযুক্ত ফ্রেমটি অনুসরণ করিএফ

7 7 7 7
7 7 5 7
7 7 7 8
7 5 5 8
8 9 8 9
9 9 9 9

ভূল অনুমান ফ্রেমের মধ্যে পাওয়া যায় এফ এবং আমরা যার ভবিষ্যদ্বাণী করার চেষ্টা করছি এফ দ্বারা পাওয়া যায় =এফ-এফ যা আমরা গণনা করি

0 0 0 0           
0 0 0 -3        
0 0 0 -1         
0 0 3 0           
0 0 0 0       
0 0 0 0

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

@ দিপনমহেতা খুব সুন্দর! =)
ফোনন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.