WebGL 활용한 화상회의 배경 블러 처리 개선
0
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 화상회의 배경 블러 기능의 성능 문제를 CPU 픽셀 순회 방식의 병목에서 시작해 WebGL GPU 병렬 처리로 개선한 과정 정리입니다.

문제 및 병목

  • 저사양 기기에서 배경 블러 시 CPU 사용률 50~60%, 화면 끊김/버벅거림 발생
  • MediaPipe Selfie Segmentation의 confidence mask를 JavaScript로 1920x1080 픽셀을 순차 순회하며 ImageData를 업데이트하는 과정이 병목

해결 전략

  • JavaScript 싱글 스레드로 픽셀을 순차 처리하는 한계를 GPU 병렬 처리(WebGL)로 전환
  • MediaPipe mask.getAsWebGLTexture()로 마스크를 GPU 텍스처로 직접 접근해 CPU- GPU 데이터 복사 최소화

구현 구성 및 개선 효과

  • WebGL 프래그먼트 쉐이더로 픽셀 변환을 GPU에서 수행하고, 합성 및 blur는 Canvas 2D에서 처리하는 하이브리드 구성
  • CPU 사용률 50~60% → 5~15%로 감소, 렉 제거 및 UI 반응성 향상
  • WebGL 좌표계 차이(Y축 반전)와 고정 프레임 레이트(setInterval) 등 최적화 이슈 해결

연관 게시글