Linux ပေါ်ရှိ ကင်မရာပံ့ပိုးမှုအတွက် အတွဲဖြစ်သည့် libcamera ၏ ပထမဆုံး ထုတ်ဝေမှု

လေးနှစ်ကြာ ဖွံ့ဖြိုးတိုးတက်ပြီးနောက်၊ V0.0.1L4 API ကို ဆက်လက်ဖွံ့ဖြိုးတိုးတက်စေမည့် Linux၊ Android နှင့် ChromeOS တို့တွင် ဗီဒီယိုကင်မရာများ၊ ကင်မရာများနှင့် TV tuners များဖြင့် အလုပ်လုပ်ရန်အတွက် ဆော့ဖ်ဝဲအစုအဝေးကို ထုတ်ပေးသည့် libcamera ပရောဂျက် (2) ကို ဖွဲ့စည်းခဲ့သည်။ နောက်ဆုံးတွင် ၎င်းကို အစားထိုးမည်ဖြစ်သည်။ စာကြည့်တိုက်၏ API သည် ပြောင်းလဲဆဲဖြစ်ပြီး အပြည့်အဝတည်ငြိမ်မှုမရှိသေးသောကြောင့်၊ ပရောဂျက်သည် စဉ်ဆက်မပြတ်ဖွံ့ဖြိုးတိုးတက်မှုပုံစံကို အသုံးပြု၍ တစ်ဦးချင်းထုတ်ဝေမှုများကို ခွဲထုတ်ခြင်းမပြုဘဲ ယခုအချိန်အထိ ဖွံ့ဖြိုးတိုးတက်လာခဲ့ပါသည်။ လိုက်ဖက်ညီမှုကို ထိခိုက်စေသော API အပြောင်းအလဲများကို ခြေရာခံရန် ဖြန့်ဖြူးမှုများ လိုအပ်ခြင်းအတွက် တုံ့ပြန်မှုအနေနှင့် ပက်ကေ့ဂျ်များအတွင်း စာကြည့်တိုက်များ ပေးပို့ခြင်းကို ရိုးရှင်းစေရန် ABI နှင့် API ပြောင်းလဲမှုများ၏ အတိုင်းအတာကို ထင်ဟပ်သည့် ထုတ်ဝေမှုများ အချိန်အခါအလိုက် ထုတ်လုပ်ရန် ဆုံးဖြတ်ချက်ကို ချမှတ်လိုက်ပါသည်။ ပရောဂျက်ကုဒ်ကို C++ ဖြင့် ရေးသားထားပြီး LGPLv2.1 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

ပရောဂျက်ကို စမတ်ဖုန်းများနှင့် မူပိုင်ဒရိုက်ဗာများနှင့် ချိတ်ဆက်ထားသော စက်များအတွက် ကင်မရာများအတွက် Linux ပံ့ပိုးမှုဖြင့် အခြေအနေကို ပုံမှန်ဖြစ်စေရန်အတွက် အချို့သောကင်မရာထုတ်လုပ်သူများနှင့်အတူ Linux kernel ၏ multimedia subsystems ၏ developer များမှ တီထွင်ထုတ်လုပ်ထားပါသည်။ Linux kernel တွင်ရရှိနိုင်ပြီးဖြစ်သော API V4L2 ကို သမားရိုးကျသီးခြားဝဘ်ကင်မရာများနှင့်အလုပ်လုပ်ရန် တစ်ချိန်တည်းတွင် ဖန်တီးထားပြီး CPU ၏ပခုံးပေါ်သို့ MCU လုပ်ဆောင်နိုင်စွမ်းကို ရွေ့လျားခြင်း၏ လတ်တလောလမ်းကြောင်းနှင့် လိုက်လျောညီထွေမဖြစ်ပါ။

သမားရိုးကျ ကင်မရာများနှင့် မတူဘဲ၊ ကုန်ကျစရိတ်ကို လျှော့ချရန်အတွက် ကင်မရာ (MCU) တွင် ထည့်သွင်းထားသော အထူးပြုပရိုဆက်ဆာတွင် တပ်ဆင်ထားသော ပုံရိပ်ဖော်ခြင်း လုပ်ဆောင်ချက်များကို ပင်မ CPU ၏ ပခုံးပေါ်၌ လုပ်ဆောင်ပြီး ယင်းလုပ်ဆောင်ချက်များကို ရှုပ်ထွေးသော ဒရိုက်ဘာတစ်ခု လိုအပ်ပါသည်။ open-source မဟုတ်သော လိုင်စင်ရ အစိတ်အပိုင်းများ ပါဝင်သည်။ libcamera ပရောဂျက်၏တစ်စိတ်တစ်ပိုင်းအနေဖြင့်၊ open source ဆော့ဖ်ဝဲလ်ထောက်ခံသူများနှင့် ဟာ့ဒ်ဝဲထုတ်လုပ်သူများသည် တစ်ဖက်တွင်၊ open source software developer များ၏လိုအပ်ချက်များကို ဖြည့်ဆည်းပေးပြီး အခြားတစ်ဖက်တွင် ကင်မရာထုတ်လုပ်သူများ၏ ဉာဏပိုင်ဆိုင်မှုကို ကာကွယ်ရန် ခွင့်ပြုသည့် အပေးအယူဖြေရှင်းချက်တစ်ခုကို ဖန်တီးရန် ကြိုးစားခဲ့သည်။

libcamera စာကြည့်တိုက်မှ ပေးဆောင်ထားသော stack ကို အသုံးပြုသူနေရာလွတ်တွင် လုံးလုံးလျားလျား အကောင်အထည် ဖော်ထားသည်။ ရှိပြီးသားဆော့ဖ်ဝဲလ်ပတ်ဝန်းကျင်နှင့် အပလီကေးရှင်းများနှင့် လိုက်ဖက်မှုရှိစေရန်အတွက် V4L API၊ Gstreamer နှင့် Android Camera HAL အတွက် တွဲဖက်အသုံးပြုနိုင်သည့် အလွှာများကို ပေးထားသည်။ စက်ပစ္စည်းများနှင့် အပြန်အလှန်တုံ့ပြန်ရန်အတွက် ကင်မရာတစ်ခုစီအတွက် သီးသန့်အစိတ်အပိုင်းများကို သီးခြားလုပ်ငန်းစဉ်များတွင် လုပ်ဆောင်ပြီး IPC မှတစ်ဆင့် စာကြည့်တိုက်နှင့် အပြန်အလှန်တုံ့ပြန်သည့် မော်ဂျူးများအဖြစ် ဒီဇိုင်းထုတ်ထားသည်။ မော်ဂျူးများသည် စက်ပစ္စည်းသို့ တိုက်ရိုက်ဝင်ရောက်ခွင့်မရှိသည့်အပြင် အလယ်အလတ် API မှတစ်ဆင့် စက်ပစ္စည်းများကို ဝင်ရောက်ကြည့်ရှုခြင်း၊ စစ်ဆေးပြီး စစ်ထုတ်ပြီး ကင်မရာကို ထိန်းချုပ်ရန် လိုအပ်သော လုပ်ဆောင်နိုင်စွမ်းများကိုသာ ဝင်ရောက်ကြည့်ရှုခြင်းအတွက် တောင်းဆိုချက်များကို ကန့်သတ်ထားသည်။

စာကြည့်တိုက်သည် ရုပ်ပုံများနှင့် ဗီဒီယိုများ၏ အရည်အသွေးကို လုပ်ဆောင်ခြင်းနှင့် ပိုမိုကောင်းမွန်စေခြင်းအတွက် algorithms (အဖြူရောင်ချိန်ခွင်လျှာ ချိန်ညှိမှု၊ ဆူညံသံများကို လျှော့ချခြင်း၊ ဗီဒီယိုတည်ငြိမ်စေခြင်း၊ အော်တိုဆုံမှတ်၊ ထိတွေ့မှုရွေးချယ်မှု စသည်ဖြင့်) ကို ပြင်ပစာကြည့်တိုက်များ သို့မဟုတ် တစ်ဦးတည်းပိုင်အဖြစ် ချိတ်ဆက်နိုင်သည့် ပုံစံဖြင့် ချိတ်ဆက်အသုံးပြုနိုင်ပါသည်။ သီးခြား module များ။ API သည် ရှိပြီးသား ပြင်ပနှင့် တပ်ဆင်ထားသည့် ကင်မရာများ၏ လုပ်ဆောင်နိုင်စွမ်းကို ဆုံးဖြတ်ခြင်း၊ စက်ပရိုဖိုင်များကို အသုံးပြုခြင်း၊ ကင်မရာချိတ်ဆက်မှုနှင့် ချိတ်ဆက်မှုပြတ်တောက်ခြင်းဖြစ်ရပ်များကို ကိုင်တွယ်ခြင်း၊ တစ်ဦးချင်းဘောင်အဆင့်တွင် ကင်မရာဒေတာဖမ်းယူခြင်းကို စီမံခန့်ခွဲခြင်းနှင့် ပုံများကို flash ဖြင့် ထပ်တူပြုခြင်းစသည့် အင်္ဂါရပ်များကို အသုံးပြုခွင့်ပေးပါသည်။ စနစ်အတွင်းရှိ ကင်မရာအများအပြားနှင့် သီးခြားလုပ်ဆောင်နိုင်ပြီး ကင်မရာတစ်လုံးမှ ဗီဒီယိုထုတ်လွှင့်မှုအများအပြားကို တစ်ပြိုင်နက်တည်း စုစည်းနိုင်သည် (ဥပမာ၊ ဗီဒီယိုကွန်ဖရင့်အတွက် ပုံရိပ်ပြတ်သားမှုနည်းသော ကင်မရာတစ်ခုနှင့် အခြားတစ်ခုသည် မှတ်တမ်းသိမ်းဆည်းရန်အတွက် ဒစ်ခ်သို့ မှတ်တမ်းတင်ရန်အတွက် ပုံရိပ်ပြတ်သားမှုမြင့်မားသည်)။

source: opennet.ru

မှတ်ချက် Add