본문 바로가기

전체 글8

[GStreamer] 002 - openVINO GStreamer를 어떻게 이용하는지 궁금해서 검색을 해봤습니다. 다음은 인텔에서 GStreamer + openVINO를 써서 영상에서 사람 얼굴을 찾아 표시하는 기능을 시현하는 영상입니다. GStreamer의 관점에서 보면 인텔이 개발한 toolkit을 plugin으로 손쉽게 사용할 수 있다는 장점을 보여줍니다. https://youtu.be/fWhPV_IqDy0 2023. 3. 4.
[GStreamer] 001 - 들어가기 G는 GNOME에서 온 것으로 추측됩니다. Streamer는 말그대로 (데이터를) 흐르게 한다는 의미로 해석할 수 있습니다. "multimedia framework"가 GStreamer에 대한 가장 적절한 설명인 것 같습니다. 아래는 GStreamer이 구성되고 동작하는 기본 방식을 보여주는 그림입니다. 출처 먼저 file-source를 보겠습니다. 파일을 열어 읽는 기능일 가진 element라는 것입니다. 그리고 element들은 데이터를 받는 sink pad와 데이터를 보내는 source pad를 가집니다. element에 따라 하나만 가지기도 하고 여러 개를 가지기도 합니다. file-source은 하나의 source pad만을 가지고 있습니다. 우선 이정도로 시작해보겠습니다. 리눅스 기반의 장치에.. 2023. 3. 4.
[Linux] Shared Memory Shared Memory, 공유 메모리는 프로세스 간의 통신 방법 가운데 하나다. shm_open() 시스템콜 함수로 새롭게 생성하거나 이미 생성된 공유 메모리에 접근이 가능하다. path는 반드시 '/' 로 시작해야 한다. 공유 메모리는 커널이 종료되기 전까지는 제거되지 않기 때문에 사용하지 않을 경우 shm_unlink() 시스템콜 함수를 이용해 꼭 제거해주어야 한다. 공유 메모리는 /dev/shm 에서 확인이 가능하다. [작성중] 2020. 6. 10.
[c++] C++ Core Guidelines [[[내용 가운데 수정이 필요한 부분을 발견하시면 댓글로 알려주세요]]] C++ Core Guidelines In: 소개 P: 철학 I: 인터페이스 I.1: 명시적인 인터페이스를 만드세요. 이유 인터페이스에 명시되지 않은 가정은 간과하기 쉽고, 검증이 어렵습니다. 나쁜 예제 글로벌 변수를 통한 함수 제어는 암시적이고 혼란을 일을킬 수 있습니다. 예를 들면: int round(double d) { return (round_up) ? ceil(d) : d; // 보이지 않는 의존을 사용하지 마십시오. } round(7.2) 함수를 호출했을 때 결과 값이 다를 수 있어 함수 호출자에게는 의미가 분명하지 않을 수 있다. [^^: round_up 변수를 말하는 것이 아닐까?] 예외 가끔 환경 변수(예, 일반적인 .. 2019. 11. 6.