hongzimao / pensieve

Neural Adaptive Video Streaming with Pensieve (SIGCOMM '17)
http://web.mit.edu/pensieve/
MIT License
516 stars 279 forks source link

Regarding the 6 by 8 matrix passed as input #131

Open Heisenberg0712 opened 3 years ago

Heisenberg0712 commented 3 years ago

Hello, i was trying to understand this project but could not get the concept behind using the cooked traces. In the paper, it is written that pensieve is using simulated environment to get the feeling of video streaming environment. How is the array (dim 6)of bitrate,buffer size,next chunk size,throughput/time and chunk till video end is getting updated using this simulated environment. Can you explain the logic behind this 6 by 8(frames) matrix, how it is getting updated and how are the throughput traces related to these. Please help me understanding this. Thank you.

hongzimao commented 3 years ago

The environment rolls over at each time step for new observation array. The code is in https://github.com/hongzimao/pensieve/blob/master/sim/env.py#L49. This observation vector is then used by the agent in https://github.com/hongzimao/pensieve/blob/master/sim/rl_test.py#L118-L126 (testing mode, training mode will be similar), where the agent outputs a probability distribution over the actions for the bitrates of the next chunk. Hope this helps.