నాలుగు సంవత్సరాల అభివృద్ధి తర్వాత, Libcamera ప్రాజెక్ట్ (0.0.1) యొక్క మొదటి విడుదల రూపొందించబడింది, ఇది V4L2 API అభివృద్ధిని కొనసాగించే Linux, Android మరియు ChromeOSలో వీడియో కెమెరాలు, కెమెరాలు మరియు TV ట్యూనర్లతో పనిచేయడానికి సాఫ్ట్వేర్ స్టాక్ను అందిస్తోంది. మరియు చివరికి దానిని భర్తీ చేస్తుంది. లైబ్రరీ యొక్క API ఇప్పటికీ మారుతున్నందున మరియు ఇంకా పూర్తిగా స్థిరీకరించబడలేదు కాబట్టి, నిరంతర అభివృద్ధి నమూనాను ఉపయోగించి వ్యక్తిగత విడుదలలను బ్రాంచ్ చేయకుండా ప్రాజెక్ట్ ఇప్పటివరకు అభివృద్ధి చేయబడింది. అనుకూలతను ప్రభావితం చేసే API మార్పులను ట్రాక్ చేయడానికి మరియు ప్యాకేజీలలో లైబ్రరీల పంపిణీని సరళీకృతం చేయడానికి పంపిణీల అవసరానికి ప్రతిస్పందనగా, ABI మరియు API మార్పుల పరిధిని ప్రతిబింబించే విడుదలలను క్రమానుగతంగా రూపొందించడానికి ఇప్పుడు నిర్ణయం తీసుకోబడింది. ప్రాజెక్ట్ కోడ్ C++లో వ్రాయబడింది మరియు LGPLv2.1 లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
స్మార్ట్ఫోన్ల కోసం కెమెరాలు మరియు యాజమాన్య డ్రైవర్లతో అనుసంధానించబడిన ఎంబెడెడ్ పరికరాల కోసం Linux మద్దతుతో పరిస్థితిని సాధారణీకరించడానికి కొంతమంది కెమెరా తయారీదారులతో కలిసి Linux కెర్నల్ యొక్క మల్టీమీడియా సబ్సిస్టమ్ల డెవలపర్లచే ప్రాజెక్ట్ అభివృద్ధి చేయబడింది. API V4L2, Linux కెర్నల్లో ఇప్పటికే అందుబాటులో ఉంది, ఒకప్పుడు సాంప్రదాయక ప్రత్యేక వెబ్ కెమెరాలతో పని చేయడానికి సృష్టించబడింది మరియు MCU కార్యాచరణను CPU భుజాలపైకి తరలించే ఇటీవలి ధోరణికి సరిగా అనుకూలించలేదు.
సాంప్రదాయ కెమెరాల వలె కాకుండా, కెమెరా (MCU)లో నిర్మించిన ప్రత్యేక ప్రాసెసర్లో ప్రైమరీ ఇమేజ్ ప్రాసెసింగ్ కార్యకలాపాలు నిర్వహించబడతాయి, ఎంబెడెడ్ పరికరాలలో, ఖర్చును తగ్గించడానికి, ఈ విధులు ప్రధాన CPU యొక్క భుజాలపై నిర్వహించబడతాయి మరియు సంక్లిష్టమైన డ్రైవర్ అవసరం. నాన్-ఓపెన్ సోర్స్ లైసెన్స్ పొందిన భాగాలను కలిగి ఉంటుంది. libcamera ప్రాజెక్ట్లో భాగంగా, ఓపెన్ సోర్స్ సాఫ్ట్వేర్ ప్రతిపాదకులు మరియు హార్డ్వేర్ తయారీదారులు రాజీ పరిష్కారాన్ని రూపొందించడానికి ప్రయత్నించారు, ఇది ఒక వైపు, ఓపెన్ సోర్స్ సాఫ్ట్వేర్ డెవలపర్ల అవసరాలను సంతృప్తిపరుస్తుంది మరియు మరోవైపు, కెమెరా తయారీదారుల మేధో సంపత్తిని రక్షించడానికి అనుమతిస్తుంది.
libcamera లైబ్రరీ అందించే స్టాక్ పూర్తిగా వినియోగదారు స్థలంలో అమలు చేయబడుతుంది. ఇప్పటికే ఉన్న సాఫ్ట్వేర్ ఎన్విరాన్మెంట్లు మరియు అప్లికేషన్లతో అనుకూలతను నిర్ధారించడానికి, V4L API, Gstreamer మరియు Android కెమెరా HAL కోసం అనుకూలత లేయర్లు అందించబడ్డాయి. పరికరాలతో పరస్పర చర్య చేయడానికి ప్రతి కెమెరాకు ప్రత్యేకమైన యాజమాన్య భాగాలు ప్రత్యేక ప్రక్రియలలో అమలు అయ్యే మరియు IPC ద్వారా లైబ్రరీతో పరస్పర చర్య చేసే మాడ్యూల్స్గా రూపొందించబడ్డాయి. మాడ్యూల్లు పరికరానికి ప్రత్యక్ష ప్రాప్యతను కలిగి ఉండవు మరియు ఇంటర్మీడియట్ API ద్వారా పరికరాలను యాక్సెస్ చేయవు, దీని ద్వారా అభ్యర్థనలు తనిఖీ చేయబడతాయి, ఫిల్టర్ చేయబడతాయి మరియు కెమెరాను నియంత్రించడానికి అవసరమైన కార్యాచరణను యాక్సెస్ చేయడానికి మాత్రమే పరిమితం చేయబడతాయి.
లైబ్రరీ చిత్రాలు మరియు వీడియోల (వైట్ బ్యాలెన్స్ సర్దుబాటు, శబ్దం తగ్గింపు, వీడియో స్థిరీకరణ, ఆటోఫోకస్, ఎక్స్పోజర్ ఎంపిక మొదలైనవి) ప్రాసెస్ చేయడానికి మరియు మెరుగుపరచడానికి అల్గారిథమ్లకు ప్రాప్యతను అందిస్తుంది, వీటిని ఓపెన్ బాహ్య లైబ్రరీలు లేదా యాజమాన్య రూపంలో కనెక్ట్ చేయవచ్చు. వివిక్త మాడ్యూల్స్. API ఇప్పటికే ఉన్న బాహ్య మరియు అంతర్నిర్మిత కెమెరాల కార్యాచరణను నిర్ణయించడం, పరికర ప్రొఫైల్లను ఉపయోగించడం, కెమెరా కనెక్షన్ మరియు డిస్కనెక్ట్ ఈవెంట్లను నిర్వహించడం, వ్యక్తిగత ఫ్రేమ్ స్థాయిలో కెమెరా డేటా క్యాప్చర్ను నిర్వహించడం మరియు చిత్రాలను ఫ్లాష్తో సమకాలీకరించడం వంటి లక్షణాలకు ప్రాప్యతను అందిస్తుంది. సిస్టమ్లోని అనేక కెమెరాలతో విడిగా పని చేయడం మరియు ఒక కెమెరా నుండి అనేక వీడియో స్ట్రీమ్లను ఏకకాలంలో సంగ్రహించడం సాధ్యమవుతుంది (ఉదాహరణకు, వీడియో కాన్ఫరెన్సింగ్ కోసం తక్కువ రిజల్యూషన్తో ఒకటి మరియు డిస్క్కి ఆర్కైవల్ రికార్డింగ్ కోసం మరొకటి అధిక రిజల్యూషన్తో).
మూలం: opennet.ru