uistcn:
我认为上面8106这位同学的说法是不对的,P/B帧是存在预测误差的,P/B帧越多,累积误差越大,当大到一定程度的时候,会引起画面马赛克和失真,这时就必须抛掉前帧,重新从I帧开始,找回高质量的画面,这也就是GOP存在的意义,所以,理论上,P/B帧越多(长),画面质量就越差。
其次,“码率相同情况下,通过用P/B帧来替换I帧,将节省下来的码率补偿给I帧,以获得更好的I帧画质”这个说法是不存在的,因为码率相同意味着定码率,码率并不是一个GOP时间内的均值,也就是说,编码是按时间轴展开的,I帧发生在P帧之前,I帧的数据量并不会因为P帧节省下的数据量而增加。
事实上,对于相对静止的画面,例如环境监控摄像机,GOP可以设置为50-100,也就是P帧长一些,这是因为在画面基本场景不变化的情况下,P帧的累积误差并不大,以至于画面仍可接受,这对于减少传输带宽,节约存储空间是非常有利的。而对于快速变换的场景,例如道路监控,则应该将GOP设置为2-50,以便捕获快速变换的场景,不至于产生失真。打个比方,如果在GOP100的情况下,第50帧时场景突然发生较大变化,那么后面的50个P帧就会产生较大的误差。这也就是一些监控画面在拍摄突然闯入的快速移动物体时会出现马赛克、画面破碎、卡顿的原因。