。。。。。etc 時域錯誤隱藏個人理解

三個文件名以 erc 開頭的文件就是 EC 相關的文件。EC 的入口在 exit_picture 函數中,從 ercStartSegment 開始到 ercConcealInterFrame 結束。你自己做一個丟包之后的碼流,把程序跑起來跟蹤一下 EC 過程,慢慢分析代碼。

?

錯誤隱藏過程在整個幀全部解碼后,而且位于環狀濾波過程之后。

?????? 因為宏塊按掃描順序一行一行的編解碼,錯誤碼流會影響一連串的宏塊。因此,錯誤隱藏時,一般在當前幀解碼結束后,一列一列的錯誤隱藏。又由于人眼對圖像中間區域更敏感,故常從兩側邊緣開始對宏塊列進行掩藏,再逐漸向中央逼近,掩藏塊的運動矢量可以進一步為后續處理塊提供預測信息,從而這樣做使得圖像中間誤碼塊的恢復效果更好些

?????? 所謂時域錯誤隱藏,就是根據正確解碼的鄰塊或前幀塊信息,推測得到合適的當前誤碼塊運動矢量。該運動矢量對應的參考塊直接拷貝至當前塊位置,就完成了錯誤隱藏過程。可見,關鍵問題在于如何找到合適的運動矢量

??????? 最簡單的時域錯誤隱藏,就是設定每個錯誤宏塊的運動矢量都是零,這樣對于靜止塊和準靜止塊有效,對于運動較大的塊這出現了明顯的質量下降。一個稍稍改進的方法是:設定其運動矢量為鄰塊運動矢量、或它們的中值、或均值運動矢量,對于運動矢量場連續的序列效果較好,對于復雜運動序列依然效果較差。

?????? 改進方法1:得到多個候選運動矢量。比如,所有的鄰塊(4領域或8領域)運動矢量、它們的中值和均值、運動矢量、前一幀對應塊運動矢量....。然后根據匹配準則選擇代價最小的運動矢量。常用的準則就是邊界匹配法(BMA,boundary matching algorithm),就是選擇邊界像素和誤碼塊周圍相鄰的像素差值最小的塊。JM中正是這么做的,它的候選運動矢量只考慮了4鄰域的鄰塊運動矢量和零運動矢量

??????? 改進方法2:方法1中的BMA準則,參與計算差異的像素個數較少,容易受到噪聲干擾。而且,如果本來宏塊邊界就存在物體邊緣,BMA的匹配效果將大打折扣。一個替代的準則是外邊界匹配法(EBMA,external boundary matching algorithm)。就是計算參考塊和誤碼塊的外部相鄰像素的差異。

?????? 改進方法3:方法1中得到的運動矢量,一般并不是誤碼塊的真實運動矢量。因此可以用加入運動估計過程,得到更佳的匹配塊。

?????? 改進方法4:以往的算法中,一般以整個宏塊為單元做錯誤隱藏(JM中就是這么做的)。可以將宏塊分成多個小塊(比如4個8*8塊),對每個小塊分別做錯誤隱藏,效果更好。但是這樣做,會出現一定的塊效應。因此,一個更折衷的方法是根據鄰塊的編碼模式推測誤碼塊的隱藏塊模式。

?????? 改進方法5:由于H.264中采用了更小的宏塊分割模式(最小支持到4*4),這樣使得編碼后的運動矢量場更佳連續,即塊與塊的運動矢量相關性更大。可以將誤碼塊分成16個4*4塊,每個4*4塊的運動矢量由周圍宏塊的運動矢量插值得到。一般是水平、垂直方向各插值一遍,然后取二者的均值。

?????? 改進方法6:在b、p幀中,也有一定的幀內編碼塊。同樣,錯誤隱藏的時候,也可以考慮空域錯誤隱藏方法。關鍵是如何判斷用空域還是時域隱藏。研究比較多的是,對I slice的宏塊(第一幀除外)也進行時域隱藏,前提是要判斷沒有出現場景轉換。

補充一點,時域錯誤隱藏也可以被應用于intra frame。h.264的對于intra-frame的weighted pixel averaging(WPA)插補錯誤隱藏算法不能取得良好的效果,時域錯誤隱藏往往能取得比WPA更好的結果。

Q1:風車,能不能推薦幾篇文章是講通過相鄰宏塊的編碼模式推測丟失塊類型的???

A:

A New Temporal Error Concealment Method for H.264 using Adaptive Block Sizes

A New Error Concealment algorithm for H.264 Video?? Transmission

Q:改進方法3:方法1中得到的運動矢量,一般并不是誤碼塊的真實運動矢量。因此可以用加入運動估計過程,得到更佳的匹配塊。不太明白如何進行運動估計,哪位高手指點下

A:就是說在做錯誤隱藏時采用一種類似于運動估計的方法,比如你有一個丟失的宏塊,你可以用這個丟失宏塊的臨近宏塊的邊界像素在前一幀中進行邊界匹配計算,在 一定的范圍內進行遍歷。最后得到的邊界匹配失真最小的宏塊就可以用來替代丟失的宏塊。這個過程 和運動估計 有些相似。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455646.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

手機影音第十一天,顯示視頻緩沖,顯示卡頓時的網速,播放系統視頻時調用播放器的選擇...

代碼已經托管到碼云,有興趣的小伙伴可以下載看看https://git.oschina.net/joy_yuan/MobilePlayer一、設置視頻緩沖進度顯示視頻播放進度的效果圖如下:灰色的是緩沖的進度。原理:只有播放網絡視頻時,才有緩沖這個說法,所…

Django之創建應用以及配置路由

Django之創建應用以及配置路由 配置所有IP都可以訪問你的項目 1.進入manage.py同級的my_web里面的settings.py的文件 2.在文件的第28行把ALLOWED_HOSTS []改成ALLOWED_HOSTS [*] 注意:*代表的是所有IP都可以訪問 創建一個app應用 在終端中,結束項目…

python中opencv是什么_python-opencv的用法

#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat import cv2 # 接收兩個參數,一個是文件名,一個值,如果值為1,接收的是彩色圖片,如果值為零,接受的是灰度圖片。會有一個返回值&#xff0c…

openjudge 14:求10000以內n的階乘

14:求10000以內n的階乘 總時間限制:5000ms內存限制:655360kB描述求10000以內n的階乘。 輸入只有一行輸入&#xff0c;整數n&#xff08;0<n<10000&#xff09;。輸出一行&#xff0c;即n!的值。樣例輸入100 樣例輸出933262154439441526816992388562667004907159682643816…

【Tensorflow】卷積神經網絡實現藝術風格化通過Vgg16實現

卷積神經網絡實現藝術風格化 基于卷積神經網絡實現圖片風格的遷移&#xff0c;可以用于大學生畢業設計基于python&#xff0c;深度學習&#xff0c;tensorflow卷積神經網絡&#xff0c; 通過Vgg16實現&#xff0c;一幅圖片內容特征的基礎上添加另一幅圖片的風格特征從而生成一幅…

抗誤碼技術

抗誤碼技術&#xff1a; 視頻傳輸過程中的錯誤是不可避免的&#xff0c;抗誤碼技術歷來都足視頻領域一個研究的熱點。H264標準繼承r以前視頻編碼標準中某些優秀的錯誤恢復工具&#xff0c;同時也改進和創新了多種錯誤恢復丁具。這些錯誤恢復的工具主要有&#xff1a;參數集、數…

Linux統計文件行數、字數、字節數

2019獨角獸企業重金招聘Python工程師標準>>> 語法&#xff1a;wc [選項] 文件 說明&#xff1a;該命令統計給定文件中的字節數、字數、行數。如果沒有給出文件名&#xff0c;則從標準輸入讀取。wc同時也給出所有指定文件的總統計數。字是由空格字符區分開的最大字符…

tkinter中鼠標與鍵盤事件

tkinter中鼠標與鍵盤事件&#xff08;十五&#xff09; 本文轉自Tynam Yang的博客園 import tkinterwuya tkinter.Tk() wuya.title("wuya") wuya.geometry("300x2001020")bt tkinter.Button(wuya,text鼠標進入打印) bt.pack()def func(event):print(鼠…

html解析のBeautifulSoup

引子&#xff1a; 使用python爬蟲對爬取網頁進行解析的時候&#xff0c;如果使用正則表達式&#xff0c;有很多局限&#xff0c;比如標簽中出現換行&#xff0c;或者標簽的格式不規范&#xff0c;都有可能出現取不到數據&#xff0c;BeautifulSoup作為一個專門處理html格式的py…

【Tensorflow】人臉128個關鍵點識別基于卷積神經網絡實現

引言&#xff1a; 卷積神經網絡 卷積神經網絡最早是為了解決圖像識別的問題,現在也用在時間序列數據和文本數據處理當中,卷積神經網絡對于數據特征的提取不用額外進行,在對網絡的訓練的過程當中,網絡會自動提取主要的特征.卷積神經網絡直接用原始圖像的全部像素作為輸入,但是內…

python 爬蟲 包_python爬蟲學習之路-抓包分析

利用瀏覽器抓包&#xff0c;是爬蟲中的很實用的技能。在爬蟲編程之前&#xff0c;我們要對抓取的目標頁面有所了解&#xff0c;比如瀏覽器的這個請求這個頁面中間都經歷了什么&#xff0c;數據是怎么發送和返回的。 抓包的作用 我把抓包分析的作用簡單列一下&#xff1a; 分析請…

幀間EC原理和過程

出錯的宏塊&#xff08;圖中灰色表示&#xff09;根據上、下、左、右四個方向相鄰宏塊的不同分割情況及預測類型進行插值。將最后的結果中進行比較&#xff0c;選取邊界像素差值之和最小者為最優的EC方案。其步驟為&#xff1a; 1、判斷相鄰宏塊左上角8*8塊的預測模式是否大于R…

Maven依賴的是本地工程還是倉庫jar包?

相信大家都碰見過maven配置的依賴或者是jar包或者是工程&#xff0c;在開發的過程當中&#xff0c;我們當然需要引入的是工程&#xff0c;這樣查看maven依賴的文件的時候&#xff0c;就能直接查看到源碼。 一、本地工程依賴 舉個例子&#xff0c;其架構如下所示&#xff08;以下…

關于django新版本無法使用MySQL數據庫的問題

關于django新版本無法使用MySQL數據庫的問題 參考這里 稍微記錄下Django2.2使用MariaDB和MySQL遇到的坑 現在演示一下整個流程吧 1.創建項目和應用 PS&#xff1a;你也可以使用PyCharm直接創建項目 2.注冊應用 先把剛剛創建的應用添加進去 3.配置MySQL或者MariaDB 4.PyMySQL替…

[轉]Spring事務tx:annotation-driven/

在使用SpringMVC的時候&#xff0c;配置文件中我們經常看到 annotation-driven 這樣的注解&#xff0c;其含義就是支持注解&#xff0c;一般根據前綴 tx、mvc 等也能很直白的理解出來分別的作用。<tx:annotation-driven/> 就是支持事務注解的&#xff08;Transactional&a…

【自動化測試】整理各種測試開發工具!持續更新

收集和整理各種測試工具&#xff0c;自動化測試工具&#xff0c;自動化測試框架&#xff0c;覺得有幫助記得三連一下。歡迎提交各類測試工具到本博客。 通用測試框架 JUnit: 最著名的xUnit類的單元測試框架&#xff0c;但是不僅僅可以做單元測試。TestNG: 更強大的Java測試框架…

python連接sql數據庫_python連接sql server數據庫實現增刪改查

簡述 python連接微軟的sql server數據庫用的第三方模塊叫做pymssql&#xff08;document&#xff1a;http://www.pymssql.org/en/stable/index.html&#xff09;。在官方文檔可以看到&#xff0c;pymssql是基于_mssql模塊做的封裝&#xff0c;是為了遵守python的DBAPI規范接口.…

es5.0 安裝head插件

es5.0的安裝和之前的版本有些區別,我的電腦用plugin install 沒成功, 查了一下資料,說是可以用grunt進行安裝,啟動; 1,先安裝grunt: grunt是一個很方便的構建工具&#xff0c;可以進行打包壓縮、測試、執行等等的工作&#xff0c;5.0里的head插件就是通過grunt啟動的。 npm ins…

Django后臺項目之用戶管理功能開發流程

項目功能開發流程 1 先寫列表頁&#xff08;加載出來數據就行&#xff09; ob User_vip.objects.filter(is_del004001).order_by(-cts)2 寫添加功能 2.1 創建addOrDoadd視圖方法 2.2 添加訪問addOrDoadd的路由 2.3 在index.html頁面吧添加的按鈕的鏈接不全 <a style&…

套接字 資料查閱

(3)套接字(socket) 一個完整的網絡應用程序包括客戶端和服務器兩個部分。網間通信進程需要由兩個進程組成&#xff0c;并且只能用同一種協議。也就是說&#xff0c;不能在通信的一端使用TCP協議&#xff0c;而另一端則用UDP協議。一個完整的網絡通信需要一個五元組來標識…