코로나19로 인해 외출 자제가 이뤄지면서 그 영향으로 스트리밍 서비스 넷플릭스 폭주로 이어지기도 한다. 스트리밍 서비스 업체 역시 비트레이트와 해상도를 떨어뜨려 서비스를 유지하려는 노력을 기울인다. 이런 가운데 영상 화질을 떨어뜨리는 일 없이 통신 효율을 대폭 개선하는 알고리즘이 등장해 눈길을 끈다.
푸구(Fugu)는 스탠포드대학 프랜시스 양 등 연구팀이 개발한 것이다. 연구팀은 스탠포드대학에서 제공하는 스트리밍 서비스 퍼퍼(Puffer)를 구축하고 여기에서 얻은 데이터를 바탕으로 기계학습을 해 알고리즘을 개발했다.
현재 일반 스트리밍은 영상이 끊김 없이 재생하는 걸 목적으로 한 버퍼 기반 알고리즘 BBA(Buffer-Based Algorithm)를 이용한다. 데이터를 일시 저장하는 PC 영역인 버퍼에 얼마나 많은 영상이 축적되어 있는지 확인하고 이에 따라 화질을 조절하는 것이다. 예를 들어 BBA가 PC에 저장된 영상이 5초 가량 밖에 없다고 판단하면 BBA는 PC에 저품질 영상을 보낸다. 반대로 15초 여유가 있다고 판단되면 통신에 시간이 걸리는 고품질 영상을 보낸다. 이 방식은 원활한 영상 재생을 유지하면서 가능하면 높은 품질을 제공할 수 있기 때문에 BBA는 오랫동안 스트리밍 서비스에 널리 쓰였다.
BBA는 간단한 반면 정교하지 않은 오래된 방식이어서 연구팀들은 효율적인 통신 알고리즘을 모색해왔다. 하지만 이런 연구 대부분은 가상 환경에서 열린 기계학습을 기반으로 해 실제 인터넷 환경에 잘 맞지 않기 일쑤라는 게 문제였다.
연구팀은 실제로 무료 스트리밍 서비스인 퍼퍼를 시작해 6만 3,508명 사용자에게 38.6년 분량 영상을 전달해 더 현실적인 환경에서 얻은 데이터를 이용해 감독 학습으로 딥러닝 학습을 실시했다. 이렇게 만들어진 알고리즘은 푸구는 데이터 전송 시간 등을 앞질러 예측해 현재 버퍼 상황만 참조하는 BBA보다 효율적인 혼잡 제어를 할 수 있다.
연구팀은 실제로 퍼퍼에서 푸구 등 5가지 알고리즘 효과를 검증한 결과 푸구는 영상 화질이나 해상도, 영상이 멈추는 시간 등에서 뛰어난 성능을 발휘했다고 한다. 또 시청자에 대한 임의 알고리즘으로 영상을 전달하는 테스트에서도 퍼퍼에 전달된 영상을 본 시청자는 다른 알고리즘보다 5∼9% 더 오랫동안 영상을 즐겼다고 한다.
연구팀은 기계학습이 현실과 시뮬레이션 차이를 극복하는 방법을 발견한 것이라며 이로 인해 많은 문제가 해결될 것이라는 점을 감안하면 상당히 흥미로울 것이라고 밝혔다. 또 이번 연구를 통해 실제 인터넷에서 강력한 성능을 발휘하는 학습형 알고리즘을 만들기 위해 실제 스트리밍 환경에서 데이터로 실시간 훈련을 해 정교한 구조와 간결함을 갖춘 알고리즘이 필요하다는 걸 알게 됐다며 실용적 알고리즘 개발에 실질적 환경에서의 교육이 필수적이라고 설명했다. 관련 내용은 이곳에서 확인할 수 있다.