一種視頻分辨率的壓縮方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻技術(shù)。更具體地,涉及一種視頻分辨率壓縮方法。
【背景技術(shù)】
[0002] 我國使用的標(biāo)清視頻演播格式為電視廣播制式PAL制式,即每秒25幀圖像,每幀 圖像由720X576個像素點構(gòu)成。根據(jù)不同的應(yīng)用領(lǐng)域,會將圖像進行壓縮,減少成像的像 素點個數(shù),滿足不同輸出、播放分辨率要求。
[0003] 目前使用較多的壓縮方法為線性插值算法,該算法可以比較平滑的實現(xiàn)圖像的壓 縮,不會出現(xiàn)由于丟棄像素多造成明顯的圖像相鄰差,而且在算法上對于壓縮的分辨率沒 有要求,但實際上會以16或8的整數(shù)倍操作。
[0004] 且目前使用的插值算法涉及到浮點運算,對于浮點的運算需要使用大量資源。
[0005] 因此,需要提供一種視頻分辨率壓縮方法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種視頻分辨率壓縮方法。
[0007] 為達到上述目的,本發(fā)明采用下述技術(shù)方案:
[0008] 一種視頻分辨率的壓縮方法,該方法包括步驟:
[0009] S1、提取原視頻數(shù)據(jù)中的各幀原圖像數(shù)據(jù);
[0010] S2、利用基于分數(shù)形式的插值算法對各幀原圖像數(shù)據(jù)進行列壓縮或行壓縮,得到 各幀一次壓縮圖像數(shù)據(jù);
[0011] S3、利用基于分數(shù)形式的插值算法對各幀一次壓縮圖像數(shù)據(jù)進行行壓縮或列壓 縮,得到各幀二次壓縮圖像數(shù)據(jù);
[0012] S4、將各幀二次壓縮圖像數(shù)據(jù)構(gòu)成壓縮后的視頻數(shù)據(jù)。
[0013] 優(yōu)選地,步驟S2進一步包括:
[0014] S2. 1、利用基于分數(shù)形式的插值算法對原圖像數(shù)據(jù)中各像素點的列插值或行插值 位置進行計算,得到列壓縮圖像數(shù)據(jù)中每一列壓縮像素點的列位置或行壓縮圖像數(shù)據(jù)中每 一行壓縮像素點的行位置、與每一列壓縮像素點或行壓縮像素點對應(yīng)的兩個最鄰近原像素 點、以及每一列壓縮像素點或行壓縮像素點距兩個最鄰近原像素點的距離;
[0015] S2. 2、根據(jù)得到的與每一列壓縮像素點或行壓縮像素點對應(yīng)的兩個最鄰近原像素 點、每一列壓縮像素點或行壓縮像素點距兩個最鄰近原像素點的距離,以及原像素點的像 素值,利用基于分數(shù)形式的插值算法計算每一列壓縮像素點或行壓縮像素點的像素值,得 到一次壓縮圖像數(shù)據(jù)。
[0016] 優(yōu)選地,步驟S3進一步包括:
[0017]S3. 1、利用基于分數(shù)形式的插值算法對一次圖像數(shù)據(jù)中各像素點的行插值或列插 值位置進行計算,得到行壓縮圖像數(shù)據(jù)中每一行壓縮像素點的行位置或列壓縮圖像數(shù)據(jù)中 每一列壓縮像素點的列位置、與每一行壓縮像素點或列壓縮像素點對應(yīng)的兩個最鄰近一次 壓縮像素點、以及每一行壓縮像素點或列壓縮像素點距兩個最鄰近一次壓縮像素點的距 離;
[0018] S3. 2、根據(jù)得到的與每一行壓縮像素點或列壓縮像素點對應(yīng)的兩個最鄰近一次壓 縮像素點、每一行壓縮像素點或列壓縮像素點距兩個最鄰近一次壓縮像素點的距離,以及 一次壓縮像素點的像素值,利用基于分數(shù)形式的插值算法計算每一行壓縮像素點或列壓縮 像素點的像素值,得到二次壓縮圖像數(shù)據(jù)。
[0019] 優(yōu)選地,步驟S2. 1進一步包括如下子步驟:
[0020]S2. 1. 1、設(shè)原圖像數(shù)據(jù)的分辨率為nXm,一次壓縮圖像數(shù)據(jù)的分辨率為nXq,q〈m,則列壓縮圖像數(shù)據(jù)中每一列壓縮像素點的列位置插值間隔均為m/q,計算列壓縮圖像 數(shù)據(jù)中每一列壓縮像素點(i),i=〇,l,…,q_l相對于列源點(〇)的列位置1^,公式如下:
[0021] Li= ((2i+l)Xm-q)/2q;
[0022] S2. 1. 2、計算列壓縮圖像數(shù)據(jù)中每一列壓縮像素點(i)對應(yīng)的兩個最鄰近原像素 點(Lzi)和(Lzi+1)的列號Lzi和Lzi+1,公式如下:
[0023] Lzi= ((2i+l)Xm-q)/2q取整;
[0024] S2. 1. 3、計算列壓縮圖像數(shù)據(jù)中每一列壓縮像素點⑴距原圖像數(shù)據(jù)中兩個最鄰 近原像素點(Lzi)和(Lzi+1)的距離1#和2q_lyi,公式如下:
[0025] lyi= ((2i+l)Xm_q)/2q 取余;
[0026] 或
[0027] S2. 1. 1、設(shè)原圖像數(shù)據(jù)的分辨率為nXm,一次壓縮圖像數(shù)據(jù)的分辨率為wXm, w〈n,則行壓縮圖像數(shù)據(jù)中每一行壓縮像素點的行位置插值間隔均為n/w,計算行壓縮圖像 數(shù)據(jù)中每一行壓縮像素點(j),j= 〇, 1,…,相對于行源點(〇)的列位置h公式如下:
[0028] Lj= ((2j+l)Xn-w)/2w;
[0029] S2. 1. 2、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j)對應(yīng)的兩個最鄰近原像素 點(Lzj)和(Lzj+1)的行號LzjPLzj+l,公式如下:
[0030] LzJ= ((2j+l)Xn-w)/2w 取整;
[0031] S2. 1. 3、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j)距原圖像數(shù)據(jù)中兩個最鄰 近原像素點(Lzj)和(Lzj+1)的距離lyj和2w-lyj,公式如下:
[0032] lyJ= ((2j+l)Xn-w)/2w 取余。
[0033] 優(yōu)選地,步驟S2. 2進一步包括如下子步驟:
[0034] S2. 2. 1、計算列壓縮圖像數(shù)據(jù)中每一列壓縮像素點(i)的像素值的整數(shù)部分pzi, 公式如下:
[0035] pzi =(f(Lzi)X(2q_lyi)+f(Lzi+1)Xlyi) /2q取整;
[0036] 公式中,f(Lzi)為最鄰近原像素點(Lzi)的像素值,f(Lzi+l)為最鄰近原像素點 (Lzi+1)的像素值;
[0037] S2. 2. 2、計算列壓縮圖像數(shù)據(jù)中每一列壓縮像素點(i)的像素值的余數(shù)部分pyi, 公式如下:
[0038] pyi =(f(Lzi)X(2q-lyi)+f(Lzi+1)Xlyi) /2q取余;
[0039]S2. 2. 3、根據(jù)每一列壓縮像素點(i)的像素值的余數(shù)部分pyi,對每一列壓縮像素 點(i)的像素值的整數(shù)部分Pzi進行進位,得到每一列壓縮像素點(i)的像素值Pi,公式如 下:
[0040] Pi= Pzi+c;
[0041] 公式中,當(dāng)pyi> q時c = 1,否則c = 0 ;
[0042] S2. 2. 4、根據(jù)列壓縮圖像數(shù)據(jù)中每一列壓縮像素點(i)的列位置LdP像素值Pi, 構(gòu)成一次壓縮圖像數(shù)據(jù);
[0043] 或
[0044] S2. 2. 1、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j)的像素值的整數(shù)部分pzj, 公式如下:
[0045] pzJ =(f(LzJ)X(2w_lyJ)+f(LzJ+l)XlyJ) /2w取整;
[0046] 公式中,f(Lj為最鄰近原像素點(Lzp的像素值,f(Lz,l)為最鄰近原像素點 (LzJ+l)的像素值;
[0047] S2. 2. 2、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j)的像素值的余數(shù)部分pyj, 公式如下:
[0048] pyJ =(f(LzJ)X(2w_lyJ)+f(LzJ+l)XlyJ) /2w取余;
[0049] S2. 2. 3、根據(jù)每一行壓縮像素點(j)的像素值的余數(shù)部分pyj,對每一行壓縮像素 點(j)的像素值的整數(shù)部分Pu進行進位,得到每一行壓縮像素點(j)的像素值公式如 下:
[0050] Pj=pzJ+c;
[0051] 公式中,當(dāng)pyj彡w時c = 1,否則c = 0 ;
[0052] S2. 2. 4、根據(jù)行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j)的行位置L#P像素值p』, 構(gòu)成一次壓縮圖像數(shù)據(jù)。
[0053] 優(yōu)選地,步驟S3. 1進一步包括如下子步驟:
[0054] S3. 1. 1、設(shè)一次壓縮圖像數(shù)據(jù)的分辨率為nXq,二次壓縮圖像數(shù)據(jù)的分辨率為 wXq,w〈n,則行壓縮圖像數(shù)據(jù)中每一行壓縮像素點的行位置插值間隔均為n/w,計算行壓縮 圖像數(shù)據(jù)中每一行壓縮像素點(j'),j' =〇,1,…,w-1相對于行源點(0)的行位置Lp公 式如下:
[0055] Lj-= ((2j'+1)Xn-w)/2w;
[0056] S3. 1. 2、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j')對應(yīng)的兩個最鄰近一次 壓縮像素點(Lzj )和(Lzj +1)的行號Lzj4PLzj +l,公式如下:
[0057] Lzj'= ((2j'+l)Xn_w)/2w取整;
[0058] S3. 1. 3、計算行壓縮圖像數(shù)據(jù)中每一行壓縮像素點(j')距原圖像數(shù)據(jù)中兩個最 鄰近一次壓縮像素點(Lzj〇和(Lzj'+1)的距離lyj'和2w_lyj',公式如下:
[0059] lyj'= ((2j'+l)Xni)/2w取余;
[0060] 或
[0061] S3. 1. 1、設(shè)一次壓縮圖像數(shù)據(jù)的分辨率為wXm,二次壓縮圖像數(shù)據(jù)的分辨率為 wXq,q〈m,則列壓縮圖像數(shù)據(jù)中每一列壓縮像素點的列位置插值間隔均為q/m,計算列壓縮 圖像數(shù)據(jù)中每一列壓縮像素點(i'),i' =〇,1,…,q_l相對于列源點(〇)的列位置Lp公 式如下:
[0062]Lr = ((2i'+1