myb513 / DL-based-ABR-Heuristic-Algorithm-Design

<캡스톤디자인> heuristic ABR 기법 내 ai기법 기반 성능 향상 주제 연구를 위한 리포지토리입니다.
0 stars 0 forks source link

예측 로직 변경 방법 #17

Open myb513 opened 1 year ago

myb513 commented 1 year ago

source code를 open해주신 hongzimao님께 너무나 감사드립니다. you so busy, so, 나는 따로 contact 하지 못합니다.

프로젝트 내 mpc_future_bandwidth.py 파일이 해결의 실마리가 될 듯 합니다. env 파일에서, get_download_time 로직 내 throughput 을 trace파일에서 직접 가져오지 않고,

lstm prediction으로 대체하면 가능할 것 같아요.

myb513 commented 1 year ago

trace file 내 "{time}/t{throughput}\n" time 부분의 ptr를 옮겨가며, 비디오 청크 다운로드에 걸린 시간(delay)를 계산하는 방법을 사용하는 로직인데. mpc 코드만으로는 이 부분을 제어할 수 없습니다. 따라서 fixed_env_future_bandwidth.py 파일의 get_download_time 메소드를 새로 구현하는 게 방법일 듯 합니다.

myb513 commented 1 year ago

mpc python file에서, lstm을 사용할 수 있도록 관련 module을 import하고, several trace file 들을 사전에 train한 모델을 load 할 겁니다. 관건은 get_download_time()이 호출될 때, "throught"을 trace file로부터 가져오는 방법을 변경하는 것입니다. Probably, "duration"은 기존에 사용하던 방법 그대로 두면 될 듯 합니다. 다만, throughtput에 대신 들어가는 값을 어떻게 계산해 내는지가 중요합니다.

이제, 파라미터로, 예측한 throughput 값을 추가하고, 이 값을 [self.cooked_bw[self.virtual_mahimahi_ptr] * B_IN_MB / BITS_IN_BYTE] 값 자리에 대체할 생각입니다. 이 때 실제 thp값과 얼마나 차이가 나는지는 로그로 기록해두고, 만약 오차가 serious하다고 판단되면, 오차를 조율하는 방법을 별도로 강구하겠습니다.