IMSdroid網絡環境比較差的情況下,馬賽克非常嚴重,觀察看到一個選項Zero Video Artifacts,顧名思義:零僞影,即沒有僞裝的影像,專業說法應該就是一種軟件補償成像的算法吧。設置後馬賽克確實減少很多,但是網絡差還是卡頓,試了下QQ也是一樣的。原理看看這個:
n a video processing system where motion vectors are estimated for a subset of the blocks of data forming a video frame, and motion vectors are interpolated for the remainder of the blocks of the frame, a method includes determining, for at least at least one block of the current frame for which a motion vector is not estimated ( 204 ), whether a block to the left or right has an estimated zero motion vector ( 206 ), determining whether the at least one block had an estimated zero motion vector in a previous frame ( 206 ), and if both determinations are affirmative ( 208 ), providing a predetermined motion vector for the at least one block. The predetermined motion vector may be a zero motion vector ( 208 ).
(PS:我是看的暈暈的)
https://groups.google.com/forum/#!topic/doubango/TpDL3qEH7yQ
關於此設置選項的一些問題:
This setting is (still?) hardcoded in
tinyMEDIA/src/tmedia_defaults.c of the Doubango source. To enable it change
static tsk_bool_t __video_zeroartifacts_enabled = tsk_false; // Requires from remote parties to support AVPF (RTCP-FIR/NACK/PLI)
to:
static tsk_bool_t __video_zeroartifacts_enabled = tsk_true; // Requires from remote parties to support AVPF (RTCP-FIR/NACK/PLI)
And recompile Doubango and webrtc2sip.
There is a public API function to enable/disable this feature but it's not recommended to enable it on webrtc2sip as it's a relay and not a producer.