यहां Viterbi algorithm का कार्यान्वयन है जिसे मैंने हाल ही में "खोजा" है। यहां वीडियो उद्देश्य एन्कोडिंग में फ्रेम प्रकारों के इष्टतम वितरण का निर्णय लेना है। विटरबी स्वयं कभी-कभी समझने में थोड़ा मुश्किल होता है, इसलिए मुझे लगता है कि सबसे अच्छी विधि वास्तविक उदाहरण के माध्यम से है।
इस उदाहरण में, अधिकतम कॉन्सेक्टीव बी-फ्रेम 2 है। सभी पथ एक पी-फ्रेम के साथ समाप्त होना चाहिए।
1 की पथ लंबाई हमें P
हमारे सर्वोत्तम पथ के रूप में देती है, क्योंकि सभी पथ एक पी-फ्रेम पर समाप्त होना चाहिए, कोई अन्य विकल्प नहीं है।
2 की पथ लंबाई हमें BP
और _P
देता है। "_"
लंबाई 1 का सबसे अच्छा मार्ग है। यह हमें BP
और PP
देता है। अब, हम वास्तविक लागत की गणना करते हैं। मान लें, इस उदाहरण के लिए, बीपी सबसे अच्छा है।
पथ की लंबाई 3 हमें BBP
और _B
पी और __P
देता है। "__"
लंबाई 2 का सबसे अच्छा मार्ग है। यह हमें BBP
और PBP
और BPP
देता है। अब, हम वास्तविक लागत की गणना करते हैं। मान लें, इस उदाहरण के लिए, कि बीबीपी सबसे अच्छा है।
4 की पथ लंबाई हमें _BBP
और __BP
और ___P
देता है। "___"
लंबाई 3 का सबसे अच्छा मार्ग है। यह हमें पीबीबीपी और बीपीबीपी और बीबीपीपी देता है। अब, हम वास्तविक लागत की गणना करते हैं। मान लें, इस उदाहरण के लिए, कि बीपीबीपी सबसे अच्छा है।
4 की पथ लंबाई हमें __BBP
और ___BP
और ____P
देता है। "____"
लंबाई 4 का सबसे अच्छा मार्ग है। यह हमें BPBBP
और BBPBP
और BPBPP
देता है।
अब - एक मिनट प्रतीक्षा करें - सभी पथ सहमत हैं कि पहला फ्रेम B
है! तो पहला फ्रेम B
है।
प्रक्रिया तब तक दोहराई जाती है जब तक वे सहमत न हों कि कौन सी फ्रेम पहले पी-फ्रेम है, और फिर एन्कोडिंग शुरू होती है।
यह एल्गोरिदम कई क्षेत्रों में समस्याओं की एक बड़ी विविधता के लिए अनुकूलित किया जा सकता है; यह भी वही एल्गोरिदम है जिसे मैंने this post में संदर्भित किया है।
क्या इस तरह के एक प्रश्न का एक स्वीकार्य उत्तर है? –