Pensieve一些注意和说明(3)

reward = 比特率now大小-rebuf-smoothness(now-last)
比如说,当前选择比特率是4300kb,上一个比特率是2850kb,
那么reward大小就是4.3-rebuf*a-(4.3-2.85)b
其中a=4.3,b=1,rebuf = delay-buffersize
—————————————————————————————————
env.py写的是
获取当前视频块的大小,和当前带宽和时间,只有当带宽
时间的和>视频块大小的时候,
delay就是前面的时间的和+(当前视频块-已经传输视频块)/吞吐量的大小
rebuf时间就是delay-buffer_size的大小(如果比0大的话) 也就是下载速度小于播放速度

buffer_size的更新规则如下:
np.maximum(self.buffer_size - delay, 0.0)

#add in the new chunk
self.buffer_size += VIDEO_CHUNCK_LEN {VIDEO_CHUNCK_LEN = 4000.0# millisec, 代表的是4s}

#sleep if buffer too large
所以这里的buffer指的是视频播放的长度,是播放器的缓存,相当于播放的速度
————————————————————————————————
#VIDEO_BIT_RATE = [300,750,1200,1850,2850,4300]
#BUFFER_NORM_FACTOR=10

state_INFO:[6,8],相当于6个状态观察,8个连续的视频块
state[0, -1] = VIDEO_BIT_RATE[bit_rate] / float(np.max(VIDEO_BIT_RATE)) # last quality
state[1, -1] = buffer_size / BUFFER_NORM_FACTOR # 10 sec
state[2, -1] = video_chunk_size / delay / M_IN_K # kilo byte / ms
state[3, -1] = delay / M_IN_K / BUFFER_NORM_FACTOR # 10 sec
state[4, :A_DIM] = np.array(next_video_chunk_sizes) / M_IN_K / M_IN_K # mega byte
state[5, -1] = np.minimum(video_chunk_remain, CHUNK_TIL_VIDEO_END_CAP) / float(CHUNK_TIL_VIDEO_END_CAP)
#state6 剩下多少视频。这个state好像没啥用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值