2012-04-11 48 views
2

大家好!壓縮域中的運動檢測(JPEG/Mpeg4/H264)

我從IP攝像頭處理視頻,並撰寫了基於解壓縮視頻分析的運動檢測算法。但我真的更快。我發現了幾篇關於壓縮域分析的論文,但沒有找到任何實現。 任何人都可以推薦我一些代碼?

發現的材料:
http://www.ist-live.org/intranet/school-of-informatics-university-of-bradford001-7/41410206.pdf/view
http://doc.rero.ch/lm.php?url=1000,43,4,20061128120121-NA/Bracamonte_Javier_-_A_Low_Complexity_Change_Detection_Algorithm_20061128.pdf

+0

您是否嘗試檢測視頻流或JPEG幀中的運動?在壓縮視頻流的P和B幀中檢測運動並不難,因爲唯一被壓縮的是幀到幀的變化。一系列JPEG圖像是不同的故事,因爲每個幀都是完全壓縮的。處理JPEG圖像的頻率域會很具有挑戰性,但我想你可以檢查每個MCU的幀間絕對差值總和。這些變化的總和和位置會提醒你動議。 – BitBank 2012-04-11 21:39:21

+0

是的,我檢測來自ip-cameras的視頻流中的運動。視頻流可以是三種流行類型之一:MPEG4和H.264,MJPEG(JPEG圖像系列,但據我所知它仍然可以檢測它們之間的變化而沒有完全重新壓縮)。從任何給定的流類型開始將是一件好事。 – paft 2012-04-18 05:59:12

回答

2

我不得不檢測H.264視頻運動,對我的幀大小是一個非常好的指標。

我用ffprobe(從FFmpeg的項目)的幀大小導出這樣的:

./ffprobe -show_frames -pretty video.mp4 | grep 'size' | grep -o '[0-9]*' > sizes.txt

在我的情況沒有動靜意味着更大的I幀(對我來說,每30幀是一個I幀),而其中一些幀的尺寸較小。

我是新來的視頻編碼,所以我想這些東西可能非常依賴於編碼和視頻信號的類型,但值得一看,因爲它是非常快速的嘗試。導出框架並查看例如Matlab的。


編輯: 最後我重新編碼視頻,這樣每隔一幀是一個I幀,因爲這給了更好的時間分辨率。我沒有測試的一個想法是顛倒視頻並做同樣的事情,這應該能夠更準確地估計動作何時開始/結束,類似於通過前向後向濾波消除相位延遲。