LY Corporation Tech Blog

LY Corporation과 LY Corporation Group(LINE Plus, LINE Taiwan and LINE Vietnam)의 기술과 개발 문화를 알립니다.

LINE 통화의 영상 재생 품질 개선 사례

들어가며

LINE 앱은 전 세계 많은 사용자들이 이용하는 다양한 실시간 커뮤니케이션 서비스를 제공하고 있습니다. 저희 팀은 그중에서 1:1 통화와 그룹 통화, LINE 미팅과 같은 통화 서비스를 맡고 있으며, 각 기능들이 안정적으로 작동해 사용자에게 좋은 품질 경험을 제공할 수 있도록 지속적으로 기술 개선에 힘쓰고 있습니다.

이번 글에서는 LINE 통화의 품질을 높이기 위해 적용하고 있는 다양한 기술 중 하나인 네트워크 적응 기술을 개선한 사례를 소개하려고 합니다.

네트워크 적응 기술이란

LINE 통화나 라이브 스트리밍과 같은 실시간 커뮤니케이션 서비스에서는 음성이나 영상 등의 미디어 데이터가 인터넷을 통해 패킷 단위로 사용자 간에 전송됩니다. 이때 패킷들은 네트워크를 통해 상대방에게 전달되는 과정에서 전송이 지연되거나 손실될 수 있으며, 이는 실시간 통신 품질을 떨어뜨리는 주요 원인이 됩니다.

지연이나 패킷 손실로 인한 품질 저하를 최소화하려면 네트워크 적응 기술을 적용해야 합니다. 네트워크 적응 기술이란 네트워크의 상태에 따라 전송 비트레이트(bitrate)나, 전송 타이밍, 미디어 품질 등을 실시간으로 조절해 끊김 없이 통신할 수 있게 해주는 기술들을 의미하며, 현재 LINE 통화 품질에 큰 영향을 미치는 기술 중 하나입니다.

그런데 LINE 통화에 적용된 네트워크 적응 기술은 다른 실시간 서비스들에 적용된 기술과는 조금 차이가 있습니다. 예를 들어 한 방향으로만 데이터를 전송하는 라이브 스트리밍에서는 어느 정도의 버퍼링을 통해 지연을 감수하면서도 안정적인 품질을 유지할 수 있습니다. 영상이 몇 초 늦게 도착하더라도 시청자는 큰 불편을 느끼지 않을 수 있기 때문입니다. 반면 LINE 통화와 같은 양방향 실시간 통신에서는 상대방의 말이 1초라도 늦게 들리면 자연스러운 대화가 어렵습니다. 이 때문에 네트워크 상태에 따라 즉각 반응하는 전송 제어가 필요합니다. 더 민감하고 정교한 네트워크 적응 기술이 요구되는 것입니다.

네트워크 혼잡과 혼잡 제어

네트워크 적응 기술 중에서 특히 중요한 것이 '네트워크 혼잡(network congestion)'을 효과적으로 회피하는 기술입니다. 네트워크 혼잡이란 네트워크 경로에 패킷이 과도하게 몰리는 상황을 말합니다. 아래 그림과 같이 입력이 출력보다 더 커지면 네트워크가 패킷을 원활하게 처리하지 못하며, 이로 인해 패킷이 네트워크 큐에 누적되면서 점진적으로 지연이 증가하고 결국 패킷 손실로 이어집니다.

image
그림 1. 네트워크 혼잡

이런 상황이 발생하는 것을 방지하기 위해 사용하는 기술이 바로 '혼잡 제어(congestion control)'입니다. 혼잡 제어는 네트워크가 혼잡할 때 전송 속도를 조절해 지연과 손실을 줄여서 안정적인 품질을 유지하기 위한 기술입니다. 네트워크 상태는 시간에 따라 빠르게 변화하기 때문에 영상 통화처럼 큰 대역폭이 필요한 서비스에서는 혼잡 제어 성능이 영상 재생 품질에 큰 영향을 미칩니다.

제가 이번 글에서 소개하고자 하는 내용은 LINE 통화의 지표를 분석하던 중 발견한 이상 패턴의 원인을 분석하고, 이를 개선하기 위해 LINE 통화의 혼잡 제어 기술을 개선한 이야기입니다.

LINE 통화의 지표 분석 중 발견한 이상 패턴과 발생 원인

먼저 LINE 통화의 혼잡 제어 기술을 개선하게 된 계기를 구체적인 데이터와 함께 살펴보겠습니다. 

LINE 통화의 월중 지표 변화 관측 중 발견한 이상 패턴

아래는 일본과 태국에서 각각 4개월간 측정한 LINE 1:1 영상 통화에서의 영상 디코딩 FPS(frame per second), 즉 초당 재생 프레임 수의 변화 추이를 그래프로 나타낸 것입니다. 이 지표는 사용자에게 영상이 얼마나 부드럽게 재생됐는지 보여주는 품질 지표 중 하나로, 값이 높을수록 영상이 끊김 없이 매끄럽게 재생된다는 것을 의미합니다.

image
그림 2. 일본(왼쪽)과 태국(오른쪽)에서 측정한 LINE 1:1 통화 영상 재생 품질의 일별 변화

이 지표의 변화를 관측하던 중 위 왼쪽 일본의 경우와 같이 특이한 패턴을 발견했습니다. 일본에서는 월초에 FPS가 가장 높았다가 월말로 갈수록 점차 감소하고 다시 월초에 FPS가 높아지는 독특한 패턴이 반복해서 나타나고 있었습니다.  반면 태국에서는 이런 패턴이 나타나지 않았는데요. 전반적으로 살펴본 결과 일본과 같은 패턴이 뚜렷하게 나타나는 국가도 있었고, 그렇지 않은 국가도 있었습니다.

이상 패턴 관련 통계 분석

일본에서 위와 같은 패턴이 나타난 원인을 분석해 보니 비디오 패킷 손실이 월말로 갈수록 점점 증가하다가 다시 월초에 감소하고 있다는 것을 알 수 있었습니다.

영상 재생 품질에 영향을 미치는 주요 요인 중 하나는 패킷 손실입니다. 패킷이 일부 손실되면 해당 프레임을 구성하는 정보도 함께 손실돼 정상적인 비디오 디코딩(decoding)이 불가능해지는데요. 일본에서는 아래 그래프와 같이 월초에는 패킷 손실률이 낮게 시작해서 월말로 갈수록 점차 증가하다가 다음 달 1일에 다시 낮아지는 흐름이 반복되고 있었습니다. 이는 월초에서 월말로 시간이 흐를수록 네트워크 환경이 점차 악화되다가 월초에 다시 회복되고 있다는 것을 의미합니다.

image
그림 3. LINE 1:1 통화의 비디오 미디어 패킷 손실률(일본)

이 현상의 특성을 보다 정확히 파악하기 위해 다양한 조건에 따라 패킷 손실률을 분류해 분석해 봤습니다.

먼저 아래는 한 달간의 패킷 손실률을 네트워크 유형별로 나눠 살펴본 그래프입니다. 왼쪽 그래프는 1:1 통화의 두 사용자가 모두 4G 모바일 네트워크에 접속한 경우이고, 오른쪽 그래프는 두 사용자가 모두 Wi-Fi에 접속한 경우의 패킷 손실률을 나타냅니다. 월말로 갈수록 패킷 손실률이 증가하는 패턴이 두 사용자가 모두 Wi-Fi인 Wi-Fi 간 통화에서는 나타나지 않고, 모바일 네트워크 간 통화에서만 나타난다는 것을 확인할 수 있습니다.

image
그림 4. LINE 1:1 통화의 네트워크 유형별 패킷 손실률(일본)

다음 그래프는 모바일 네트워크 간 통화를 음성 통화와 영상 통화로 나눠 비교한 결과입니다. 영상 통화에서 패킷 손실 증가 패턴이 훨씬 더 두드러지게 발생하고 있다는 것을 확인할 수 있으며, 이를 통해 패킷 손실 증가가 더 높은 비트레이트를 사용하는 영상 통화의 특성과 관련 있다고 분석할 수 있습니다.

image
그림 5. LINE 1:1 통화의 4G 간 통화에서 미디어 유형별 패킷 손실률(일본)

지표가 독특한 패턴으로 변화하는 원인 - 모바일 요금제

이와 같은 분석 결과를 바탕으로 내린 결론은, 상기 설명한 현상은 사용자의 월간 모바일 데이터 소진과 밀접한 관련이 있다는 것입니다. 국가별 혹은 통신사별로 차이가 있으나 모바일 요금제는 데이터를 월 단위로 정산하는 경우가 많습니다. 또한 정해진 데이터 용량을 모두 소진한 사용자는 속도, 즉 비트레이트에 제한이 적용되는 경우가 있습니다.

즉, 월초에는 정상 속도로 통신할 수 있는 사용자의 비율이 높았다가 월말에 가까워질수록 비트레이트 제한을 받는 사용자의 비율이 증가하면서 특히 영상 통화에서 전반적인 품질이 하락한 것입니다. 이 비트레이트 제한은 보통 그다음 달 1일에 초기화되기 때문에 패턴이 반복되는 것 또한 설명할 수 있습니다.

모바일 요금제의 속도 제한에도 통화 품질을 유지하려면

LINE 통화는 모바일 환경에서도 HD 화질의 영상 통화를 지원하기 때문에 그만큼 사용하는 최대 비트레이트도 높습니다. 만약 모바일 요금제 정책 등의 이유로 비트레이트가 제한된 환경에서 제한을 초과해서 계속 전송하면 어떤 현상이 발생할까요? 앞서 말씀드린 것처럼 출력보다 입력이 더 커지면서 네트워크 혼잡이 발생할 것입니다.

그런데 만약 혼잡 제어 알고리즘이 이상적으로 작동했다면 이와 같은 네트워크 환경의 변화에도 손실이 발생하지 않도록 적응해서 화질을 낮추더라도 원활하게 재생하도록 작동했어야 합니다. 하지만 앞서 확인한 독특한 지표 변화 패턴은 그렇게 작동하지 않았다는 것을 나타내고, LINE 통화의 혼잡 제어를 개선할 필요가 있다는 것을 의미합니다.

LINE 통화의 혼잡 제어 작동 방식과 개선 방법

그럼 이제 LINE 통화의 혼잡 제어가 어떻게 작동하는지 살펴보고 어떤 부분을 개선했는지 말씀드리겠습니다. 먼저 국제 인터넷 표준화 기구(Internet Engineering Task Force, 이하 IETF)에서 네트워크 혼잡에 대응하기 위해 채택한 표준 기술이 무엇인지 소개하고, 다음으로 저희가 자체 개발해 LINE 통화에 적용한 CCFS라는 기술을 소개한 뒤, 앞서 살펴본 문제를 개선하기 위해 CCFS를 어떻게 개선했는지 말씀드리겠습니다. 

RMCAT에서 채택된 표준 알고리즘

먼저, 실시간 통신 서비스에서 네트워크 혼잡 문제를 해결하기 위한 표준 기술부터 소개하겠습니다.

IETF의 워킹 그룹인 RMCAT(Remote Monitoring Congestion Avoidance Techniques)에서는 2012년부터 실시간 음성/영상 통신 환경에서 네트워크 혼잡에 효과적으로 대응하기 위한 전송 제어 알고리즘을 표준화하는 작업을 진행해 왔습니다. 네트워크 상태를 실시간으로 측정해서 그에 따라 전송 속도를 동적으로 조절해 끊김 없는 미디어 경험을 제공하는 것을 목적으로 여러 알고리즘이 제안됐으며, 여러 후보 기술을 놓고 오랜 기간 논의하며 검토한 끝에 요구 사항에 부합하는 아래 두 가지 알고리즘이 표준으로 채택됐고, 2023년 RMCAT 활동은 종료됐습니다.

LINE 통화에 적용한 자체 개발 혼잡 제어 알고리즘 - CCFS

LINE 통화에서는 앞서 소개한 IETF 표준 기술 대신 자체 개발한 혼잡 제어 알고리즘인 CCFS(Congestion Control based on Forward path Status)라는 기술을 사용해 오고 있습니다. CCFS는 IETF에서 표준 기술을 선정하기 전부터 자체 개발해 지속적으로 개선해 오고 있는 기술입니다(참고로 표준화 논의에 참여하고자 IETF RMCAT 워킹 그룹에 드래프트를 제출하기도 했는데요. 비록 표준으로 채택되지는 않았지만, 저희의 기술 방향을 정립하는 의미 있는 과정이었습니다).

CCFS는 전송자 기반(sender-based) 방식의 혼잡 제어기(congestion contoller)로, 수신 측에서 주기적으로 전송하는 피드백을 기반으로 작동합니다. 피드백에는 패킷의 수신 시간 및 수신 여부와 같은 정보가 포함돼 있고, 송신 측에서 이 피드백을 분석해서 네트워크 상태를 판단합니다.

image
그림 6. CCFS 개요

CCFS는 이름 그대로 패킷이 실제로 전송되는 경로(forward path)의 상태에 기반해 혼잡 제어를 수행합니다. 이전의 많은 혼잡 제어 알고리즘은 왕복 시간(round trip time, RTT)과 같은 왕복 경로의 지표를 활용하는 경우가 많았지만, 저희는 전송 경로에서 발생하는 네트워크 상태 변화를 감지하는 것이 중요하다고 판단했습니다.

CCFS는 전송 경로에서 측정되는 지표들, 예를 들어 지연의 변화, 패킷 손실률, 송수신 비트레이트 등을 실시간으로 분석해서 이를 바탕으로 네트워크의 상태를 결정하고 적절한 전송 속도를 결정하는데요. 이때 네트워크의 현재 상태를 네 가지('Default', 'Probing', 'Throttled', 'Competing')로 분류합니다. 

image
그림 7. CCFS 프로세스 피드백
image
그림 8. CCFS 상태

CCFS는 지연 기반의 알고리즘이며, 여기서 '지연'은 실제로는 '지연의 변화값'을 의미합니다. CCFS에서는 패킷 지연이 일정 수준 이상 연속적으로 증가하고 지연의 변화 값이 임계치를 초과하는 경우 현재 네트워크가 혼잡하다고 판단하고 Throttled 상태로 전이합니다.

Throttled 상태는 네트워크 혼잡을 감지하고 대응하기 위한 상태로, 네트워크 큐에 쌓인 패킷을 줄이고 지연을 회복하기 위해, 미디어의 비트레이트를 조절합니다. 이는 지연이 폭증하거나 손실로 이어지는 상황을 미리 방지하기 위함입니다.

image
그림 9. 네트워크 혼잡으로 Throttled 상태로 전이

CCFS 기반 혼잡 제어의 개선점

저희는 특정 네트워크에서 고화질을 위해 비트레이트를 많이 사용했을 때, 분명 패킷 손실이 발생하지만 Throttled 상태로 전이되지 않는 예외적인 환경을 발견했습니다. 지연은 전혀 증가하지 않으면서 패킷 손실만 발생하는 현상이 관측된 것입니다.

일반적으로 네트워크 혼잡 상황에서는 패킷이 네트워크 큐에 쌓이면서 지연이 점진적으로 증가하고 결국 손실로 이어지는 흐름을 보입니다. 하지만 지연은 전혀 증가하지 않으면서 손실만 발생하는 환경도 존재하는데요. 이런 현상은 그 특성으로 미뤄 볼 때, 해당 환경에 네트워크 장비가 대역폭을 넘는 트래픽을 사전에 차단하는 '트래픽 폴리싱(traffic policing)'이 적용돼 있는 것으로 추정됩니다.

image
그림 10. 트래픽 폴리싱

CCFS는 지연을 기반으로 혼잡 상황을 탐지하기 때문에 위와 같은 경우에는 혼잡을 감지하지 못합니다. 저희는 이것이 앞서 말씀드렸던 사용자 환경의 데이터 소진 후 비트레이트 제한이 적용될 때 품질이 악화되는 현상의 원인으로 판단했으며, 이 문제를 해결하기 위해 CCFS에 기존의 지연 기반 혼잡 제어에 더해 손실 기반 혼잡 제어를 추가할 필요가 있다고 판단했습니다.

하지만 손실 기반 혼잡 제어에는 주의할 점이 있습니다. 일시적인 네트워크 손실을 혼잡으로 잘못 판단해 손실이 발생할 때마다 무조건 비트레이트를 줄이면, 결국 지나치게 낮은 영상 화질로 통신하는 문제가 발생합니다. 이 문제를 '비트레이트 고갈(bitrate starvation)'이라고 합니다.

따라서 손실 기반 제어에서 단순히 '손실이 발생했다'는 사실만으로 혼잡 발생 여부를 판단해서는 안 됩니다. 손실이 비트레이트 과잉 전송에 의한 결과일 때, 즉 네트워크가 실제로 수용할 수 있는 용량을 초과한 경우로 판단될 때에만 비트레이트를 조정하는 방식으로 제한해야 합니다.

상관관계를 이용한 혼잡 제어 개선

이 문제를 개선하는 방법으로 저희는 비트레이트와 패킷 손실 간의 상관관계(correlation)를 기반으로 혼잡 판단을 보완하는 방식을 선택했습니다.

상관관계를 나타내기 위해서는 피어슨 상관계수(Pearson correlation coefficient)를 사용했습니다. 이 계수는 두 연속적인 변수 간의 선형 상관관계를 -1에서 1 사이의 값으로 나타내며, 1에 가까울수록 양의 상관관계, 0에 가까우면 상관없음, -1에 가까우면 음의 상관관계를 의미합니다. 비트레이트가 높을수록 손실률도 증가한다면 양의 상관관계, 즉 1에 가까운 값을 갖습니다. 다시 말해, 단순히 '손실이 발생했는가?'가 아니라 '비트레이트를 높인 결과로 손실률도 함께 증가했는가?'를 수치적으로 분석하는 것입니다.

image
그림 11. 비트레이트와 손실률 간의 상관관계 계수

상관관계를 실제 제어에 적용한 내용을 자세히 살펴보겠습니다. 먼저 CCFS 피드백으로부터 비트레이트와 패킷 손실률을 실시간으로 수집하고 일정 윈도 내에서 이 두 값 사이의 상관계수를 갱신합니다. 만일 손실이 임계치 이상으로 발생한다면 상관계수로 비트레이트의 영향 여부를 확인합니다. 즉, 상관계수가 일정 기준 이상으로 높게 나타나면 비트레이트를 올릴수록 손실률도 같이 증가한다고 판단하고 혼잡 상황, 즉 Throttled 상태로 전이해 전송 비트레이트를 조절합니다. 이와 같은 방식으로 비트레이트 고갈을 방지하면서도 혼잡 상황에도 대응합니다.

image
그림 12. 손실 기반 스로틀 감지

혼잡 제어 개선 결과 및 향후 계획

이제 지금까지 설명드린 개선 방안의 실제 배포 결과와 앞으로의 계획을 말씀드리겠습니다.

개선 방안 적용 후 지표 변화

비트레이트와 패킷 손실률의 상관관계를 곁들인 손실 기반 제어 기능을 실제 서비스에 배포한 뒤 서비스 설정을 통해 해당 기능을 전 세계적으로 활성화했습니다. 기능 활성화 전후를 비교해 봤을 때, 일본에서의 월말 기준 평균 비디오 패킷 손실은 아래 그래프와 같이 약 22% 감소했습니다.

image
그림 13. 개선 결과 - LINE 1:1 통화의 비디오 미디어 패킷 손실률(일본)

패킷 손실이 줄어들면서 일본에서의 월말 기준 비디오 FPS도 약 14% 상승해 사용자 경험이 실제로 개선된 것을 확인할 수 있었습니다.

image
그림 14. 개선 결과 - LINE 1:1 통화의 비디오 디코딩 FPS(일본)

그런데 한 가지 주목할 부분은 이와 같은 개선 효과가 월말로 갈수록 악화되는 패턴이 없던 국가에서도 나타났다는 것입니다. 예를 들어 본래 비디오 FPS가 월초, 월말과 상관없이 일정하게 유지되던 일부 국가에서도 기능 활성화 후 비디오 FPS가 약 5% 증가하는 효과가 나타났습니다. 이는 모바일 데이터의 월 단위 정산과 무관하게 속도 제한이 적용되는 환경이 존재하기 때문인 것으로 보고 있습니다.

image
그림 15. 개선 결과 - LINE 1:1 통화의 비디오 디코딩 FPS(태국)

비디오 재생 품질은 전체적으로 개선됐지만 만약 화질이 지나치게 떨어지는 부수 효과가 함께 발생했다면 적절히 작동한 것이라고 볼 수 없을 것입니다. 아래는 일본에서의 LINE 1:1 통화 평균 비디오 전송 비트레이트를 그래프로 나타낸 것입니다. 비디오 전송 비트레이트는 화질 관련 지표로 높을수록 좋은 화질을 보여주었다는 것을 나타내는 지표입니다. 이 지표가 월말 기준으로 약 1% 하락했습니다. 높은 비트레이트로 인해 패킷 손실이 발생하는 일부 환경에서 Throttled 상태로 전이해 비트레이트를 조절했기 때문인데요. 손실 개선 대비 비디오 화질에 대한 영향이 적었기 때문에 긍정적인 결과를 얻었다고 생각합니다.

image
그림 16. 개선 결과 - LINE 1:1 통화의 비디오 전송 비트레이트(일본)

향후 계획

이상치의 영향 및 개선

이번 개선 방안을 적용하면서 월초에서 월말로 갈수록 품질이 악화되는 패턴이 줄어들기는 했지만 완전히 근절되지는 않았습니다. 저희는 LINE 통화 품질 점검을 위한 출장(참고: LINE 앱 영상 통화를 가장 많이 사용하는 나라, 태국에서 LINE 앱의 영상 통화 품질을 점검했습니다) 중 반응 속도가 늦어 기대만큼 성능이 나오지 않는 경우를 발견했습니다. 분석해 보니 비트레이트가 높음에도 손실이 발생하지 않는 경우가 있었고 이러한 이상치(outlier)들의 영향이 비트레이트와 손실률 간의 상관관계 판단에 혼선을 주는 것으로 나타났습니다. 앞으로 이런 이상치를 효과적으로 필터링하는 튜닝을 진행할 계획입니다.

머신러닝 기반의 혼잡 제어 도입

장기적인 관점에서는 혼잡 제어를 보다 정밀하게 수행하기 위해 머신러닝을 기반으로 한 혼잡 제어 기술을 도입하려고 준비하고 있습니다. LINE 통화에서는 이미 ML-AEC나 ML-NS와 같은 머신러닝 기반의 기술을 실제 서비스에 적용해 품질 향상에 기여하고 있는데요. 혼잡 제어를 포함한 네트워크 적응 기술의 성능도 향상될 것으로 기대하고 있습니다. 이 주제는 또 하나의 흥미로운 기술 주제가 될 것이라고 생각하기 때문에 다음 글에서는 머신러닝 기반의 혼잡 제어 설계 및 도입 과정을 다뤄보려고 합니다.

마치며

이번 글에서는 LINE 통화의 네트워크 환경 적응 방식 중 하나인 혼잡 제어 기술의 실제 개선 사례를 소개했습니다. 특정 지역에서 월말마다 주기적으로 품질이 악화되는 현상의 원인을 분석하고, 비트레이트와 패킷 손실률 간 상관관계 기반의 혼잡 제어 기법을 도입해 품질을 개선한 과정을 공유했습니다.

LINE 통화는 앞으로도 좋은 통화 품질을 경험할 수 있도록 지속적으로 노력하고 개선해 나가겠습니다. 긴 글 읽어주셔서 감사합니다.