CN101964912A - 一种在mpeg2中游程编码快速计算游程长度的方法 - Google Patents
一种在mpeg2中游程编码快速计算游程长度的方法 Download PDFInfo
- Publication number
- CN101964912A CN101964912A CN2010105080930A CN201010508093A CN101964912A CN 101964912 A CN101964912 A CN 101964912A CN 2010105080930 A CN2010105080930 A CN 2010105080930A CN 201010508093 A CN201010508093 A CN 201010508093A CN 101964912 A CN101964912 A CN 101964912A
- Authority
- CN
- China
- Prior art keywords
- nflags
- coefficients
- coefficient
- run
- length coding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种MPEG2中游程编码快速计算游程长度的方法,是一种计算机图像处理的方法,是一种数字化视频图像的数据压缩方法。本发明这样实现的:构造nFlags的步骤;判断nFlags是否为0的步骤;计算nFlags中连续“0”位个数的步骤;结束的步骤。本发明通过构建64位整数nFlags,建立与8×8平方像素块经变换量化重排后的64个系数的对应关系,在游程编码过程中使用CPU指令“BSF”计算各个游程的长度,大大减少了条件分支,有效地提高了CPU在MPEG2视频图像编码中的执行效率,使MPEG2视频图像编码的速度更快。
Description
技术领域
本发明涉及一种MPEG2中游程编码快速计算游程长度的方法,是一种计算机图像处理的方法,是一种数字化视频图像的数据压缩方法。
背景技术
为了便于数字化视频图像的编辑、制作、储存和传输,通常要对视频图像进行数据压缩。视频图像的数据压缩有多种方式,其中最常用的是MPEG2编码。MPEG2视频图像编码中必须经过可变长编码过程。MPEG2编码标准中可变长编码包含游程编码和熵编码两种。通常经过量化后的图像变换系数中的零值较多,通过游程编码可以将零值做进一步无损压缩。
游程编码(RLE, run-length encoding),又称“运行长度编码”或“行程编码”,是一项数据无损压缩编码技术。它适用于一类数据的压缩,这类数据由一串符号组成,这串符号中,多次连续出现相同的符号。例如:
游程编码的基本原理是:将一串由相同符号组成的数据,用这串符号的长度和符号值所组成的数对来表示(连续符号构成了一段连续的“游程”,游程编码因此得名)。这样,上述例子的编码结果为:
(8,0)(6,5)(5,7)(3,3)(4,2)(7,1)
编码结果的位数远少于原符号串的位数,这就达到了压缩数据的目的。
在MPEG2中可变长编码的基本单位是8×8平方像素的残差图像区域(8×8块)。8×8块经DCT变换后的结果为64个变换系数,将系数量化并重新排列(按低频系数在前,高频系数在后)。其结果中,连续的零值较多,适合于做游程编码。MPEG2只对64个系数中的零值做游程编码。统计任何一个非零系数前与其紧临的连续零值系数的个数(如果此非零系数前仍为非零系数,则记此非零系数前有0个连续的零值系数),将此个数值与此非零系数组成数对。依次统计完成所有这样的数对,即完成了MPEG2中的游程编码。例如,某8×8块经过DCT变换、量化并重排后的64个系数为:
经过游程编码的结果为:
(4,1)(6,13)(3,5)(0,-7)(9,12)(0,6)(8,3)(11,-6)
对于原数列中末尾的连续零值不再编码。
计算机的CPU在运行程序时,是将程序代码分解成一条条的二进制指令(机器指令),然后按指定顺序执行指令。CPU执行指令的过程是先将指令从硬盘读取到内存中,再读取到CUP的指令缓存中,然后再逐条执行指令缓存中的指令。指令被从硬盘读取到内存,再到指令缓存的过程所需要的时间远多于CPU从指令缓存中执行一条指令的时间。因此,CPU在执行其他指令的同时会尽可能早并尽可能多的将即将要被执行的指令从硬盘读取到指令缓存中,以备CPU随后执行。这需要CPU对即将要被执行的指令队列进行简单的判断,以排列指令将要被执行的顺序。如果指令队列中出现条件判断指令(也就是CPU在执行这条指令时,根据当时的状态,才能选择随后要被执行的指令,这种情况被称为条件分支),CPU无法提前判断随后将要被执行的指令,也就无法提前将条件判断指令之后的指令读取到CPU的指令缓存中。这会降低CPU的执行效率,条件分支出现的越多,CPU的执行效率会越低。因此,减少条件分支的出现是提高CPU执行效率的重要手段。
传统的MPEG2中的游程编码方法中存在大量的条件分支,众所周知,条件分支影响CPU的执行效率,条件分支出现的越多,CPU的执行效率会越低。因此,减少条件分支是提高CPU执行效率的重要手段。视频图像处理一向是CPU的繁重任务,而游程编码在MPEG2的编码过程中又是大量的工作,如能减少其中的条件分支,CPU在MPEG2视频图像处理中的执行效率将大大提高。
发明内容
为了克服现有技术的问题,本发明提出了一种MPEG2中游程编码快速计算游程长度的方法。所述方法通过简单方式快速计算连续零值系数的个数,减少了条件分支,提高了CPU在MPEG2视频图像处理中的执行效率。
本发明的目的是这样实现的:一种在MPEG2中游程编码快速计算游程长度的方法,在MPEG2编码过程中,对8×8平方像素的残差图像区域做DCT变换、变换后的64个系数经过量化并重新排列,将经过量化和重新排列后的64个系数做游程编码的步骤如下:
构造nFlags的步骤:用于构造一个64位整数,记为nFlags,将nFlags的每一位与64个系数中的某个系数一一对应,对应的顺序为:从最低位开始,nFlags的第1位,对应64个系数中的第1个系数,即最低频系数,nFlags的第2位对应64个系数中的第2个系数,以此类推,直到nFlags的最后1位对应64个系数中的最后1个系数,即最高频系数,构造的规则为:如果相应的系数为0,则nFlags中与之对应的位设为“0”,如果相应的系数非0,则nFlags中与之对应的位设为“1”;
判断nFlags是否为0的步骤:用于判断nFlags是否为0,如果nFlags等于0,即nFlags的每一位均为“0”,说明64个系数中已没有非零系数,进入结束的步骤,如果nFlags非0,进入下一步骤;
计算nFlags中连续“0”位个数的步骤:用于通过调用CPU指令“BSF”,从nFlags的最低位开始,计算连续为“0”的位的位数,这个位数值也就是连续零值系数的个数,即游程的长度,记为n,将n和nFlags中从低位起第n+1位对应的系数组成的数对保存起来,将nFlags逻辑右移n+1位,即高位补“0”,对应关系也相应移动,之后回到“判断nFlags是否为0的步骤”;
结束的步骤:用于完成游程编码的过程,将所有已保存的数对按保存时间的先后顺序排列,即得到64个系数做游程编码的结果。
本发明产生的有益效果是:本发明通过构建64位整数nFlags,建立与64个系数的对应关系,使用“BSF”指令快速计算游程长,大大减少了条件分支,提高了CPU在MPEG2视频图像编码中的执行效率,进而提高了MPEG2视频图像编码速度。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是本发明的实施例一所述一种MPEG2中游程编码快速计算游程长度的方法流程框图。
具体实施方式
实施例一:
本实施例是一种MPEG2中游程编码快速计算游程个数的方法,流程图如图1所示。
传统的MPEG2游程编码过程:
在MPEG2中,对8×8块做DCT变换、量化并重排后,将结果的64个系数做游程编码的通常实现步骤为:
①、将当前位置设在第一个系数(起始位置p=0),将当前连续零值系数的个数设为0(n=0)。
②、判断当前位置的系数是否为0。如果为0,将当前连续零值系数的个数累加1(n=n+1);如果系数非0,将当前连续零值系数的个数以及当前系数值组成数对并保存,然后再将当前连续零值系数的个数设为0(n=0);
③、判断当前位置的系数是否为最后一个系数(第64个系数)。如果是最后一个系数,完成了游程编码;如果不是,将当前位置设在下一个系数(p=p+1),然后重复第②、③步。
C代码实现为:
void 8x8Block_RLE_Old(__int16 *pCoefficient, int (*pRLE)[2])
// 输入:pCoefficient指向保存64个系数的内存地址
// 输出:pRLE指向保存结果数对队列的内存地址
{
int n = 0;
for (int p = 0; p < 64; p++)
{
if (pCoefficient[p] == 0)
{
n++;
}
else
{
(*pRLE)[0] = n;
(*pRLE)[1] = pCoefficient[p];
pRLE++;
n = 0;
}
}
}
在上述C代码实现中,“for”循环语句和“if”条件语句被编译成机器指令的时候都会构成条件分支,64个系数做游程编码共经历了128个条件分支。
本实施例所述的MPEG2中游程编码的实现方法:
在MPEG2中,对8×8块做DCT变换、量化并重排后,将结果的64个系数做游程编码的实现步骤为:
1、构造一个64位整数nFlags(实际上,64位平台用一个64位整数,32位平台用两个32位整数),将nFlags的每一位与64个系数中的某个系数一一对应。对应的顺序为:从最低位开始,nFlags的第1位(最低位)对应64个系数中的第1个系数(最低频系数);nFlags的第2位对应64个系数中的第2个系数;以此类推,直到nFlags的最后1位(最高位)对应64个系数中的最后1个系数(第64个系数,也是最高频系数)。对应的构造规则为:如果相关系数为“0”,则nFlags中与此系数相对应的位也为“0”;如果相关系数非“0”,则nFlags中与此系数相对应的位为“1”;
2、判断nFlags是否为0,。如果nFlags等于0,说明已没有非零系数,完成游程编码;如果nFlags非0,执行第3步;
3、通过调用一条CPU指令“BSF” (Bit Scan Forward),可以得到从nFlags的最低位开始,连续为“0”的位的位数(如果nFlags的最低位非0,则“0”值位的位数为0)。这个位数值也就是连续零值系数的个数(即为游程长度),记为n。将n和nFlags中从低位起第n+1位对应的系数组成的数对保存起来。将nFlags逻辑右移n+1位(高位补“0”;对应关系也相应移动,例如逻辑右移n+1位后的nFlags的第一位对应第n+2个系数),重复第2步。
64位平台下C代码实现为:
void 8x8Block_RLE_New_64(__int16 *pCoefficient, int (*pRLE)[2])
// 输入:pCoefficient指向保存64个系数的内存地址
// 输出:pRLE指向保存结果数对队列的内存地址
{
unsigned __int64 nFlags = Construct_nFlags_64(pCoefficient);
int p = 0;
while (nFlags != 0)
{
int n = Bit_Scan_Forward_64(nFlags);
(*pRLE)[0] = n;
(*pRLE)[1] = pCoefficient[p + n];
pRLE++;
p += (n + 1);
nFlags >>= (n + 1);
}
}
其中,函数Construct_nFlags_64与Bit_Scan_Forward_64的内联汇编实现分别为:
unsigned __int64 Construct_nFlags_64(__int16 *pCoefficient)
{
char bOne[16] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
__asm {
movdqu xmm0,[rcx]
packuswb xmm0,[rcx+16]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb rax,xmm0
movdqu xmm0,[rcx+32]
packuswb xmm0,[rcx+48]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb rdx,xmm0
shl rdx,16
or rax,rdx
movdqu xmm0,[rcx+64]
packuswb xmm0,[rcx+80]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb rdx,xmm0
shl rdx,32
or rax,rdx
movdqu xmm0,[rcx+96]
packuswb xmm0,[rcx+112]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb rdx,xmm0
shl rdx,48
or rax,rdx
}
}
int Bit_Scan_Forward_64(__int64 nFlags)
{
__asm bsf rax,nFlags;
}
本实施所述的“BSF”指令:
Intel下,汇编指令的基本语法为:
指令 目的操作数,源操作数
例如:
bsf eax,nFlags
指令对源操作数进行操作,将结果保存在目标操作数中。“BSF”指令是寻找源操作数的最低有效位(最低有效位是指从最低位开始,第一个非0的位)的位置,由于规定操作数中最低位的位置为0,因此实际算得的最低有效位的位置就等于最低有效位前“0”值位的个数。
在本实施例中,如果64个系数中有m个非零系数,则在64位平台下,这64个系数做游程编码共经历m+1个条件分支;
在实际情况中,64个系数中绝大多数都是零值系数(非零系数大约只占20%左右),因此,m+1会远少于128。另外,尽管看起来游程编码的通常实现方法更简单,但由于其代码中的循环体被调用了64次,CPU实际执行的指令数要远多于新算法需要CPU执行的指令数!
另外,在H261、H262、MPEG1、JPEG标准中采用的游程编码与MPEG2是一致的。H263、MPEG4采用的游程编码与MPEG2基本一致,只是需要将最后一个非零系数所组成的数对做标记(标记为“1”表示这是64个系数中最后一个非“0”系数),实现方法几乎不用改动。因此,本实施例也可以应用在H261、H262、MPEG1、JPEG、H263、MPEG4的游程编码中。或者说本实施例适用于只统计“0”值个数的游程编码中。
实施例二:
本实施例是实施例一的改进,是实施例一关于构造nFlags的的步骤的细化。本实施例所述的构造nFlags的步骤中,在64位平台中构建一个64位整数;在32位平台中构建两个32位整数,两个32位整数结合为一个64位整数。
构造的nFlags虽然是64为整数,本实施例即可以应用在64位平台上,也可以应用在32为平台上。只要连接两个nFlags32位整数,即可以实现。
32位平台下C代码实现为:
void 8x8Block_RLE_New_32(__int16 *pCoefficient, int (*pRLE)[2])
// 输入:pCoefficient指向保存64个系数的内存地址
// 输出:pRLE指向保存结果数对队列的内存地址
{
unsigned int nFlags_01_32 = Construct_nFlags_32(pCoefficient);
unsigned int nFlags_33_64 = Construct_nFlags_32(pCoefficient + 32);
int p = 0, n = 0;
if (nFlags_01_32 != 0)
while (nFlags_01_32 != 0)
{
n = Bit_Scan_Forward_32(nFlags_01_32);
(*pRLE)[0] = n;
(*pRLE)[1] = pCoefficient[p + n];
pRLE++;
p += (n + 1);
nFlags_01_32 >>= (n + 1);
}
if (nFlags_33_64 != 0)
{
n = Bit_Scan_Forward_32(nFlags_33_64);
nFlags_33_64 >>= (n + 1);
n += 32 - p;
(*pRLE)[0] = n;
(*pRLE)[1] = pCoefficient[p + n];
pRLE++;
p += (n + 1);
}
while (nFlags_33_64 != 0)
{
n = Bit_Scan_Forward_32(nFlags_33_64);
(*pRLE)[0] = n;
(*pRLE)[1] = pCoefficient[p + n];
pRLE++;
p += (n + 1);
nFlags_33_64 >>= (n + 1);
}
}
其中,函数Construct_nFlags_32与Bit_Scan_Forward_32的内联汇编实现分别为:
unsigned int Construct_nFlags_32(__int16 *pCoefficient)
{
char bOne[16] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
__asm {
movdqu xmm0,[ecx]
packuswb xmm0,[ecx+16]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb eax,xmm0
movdqu xmm0,[ecx+32]
packuswb xmm0,[ecx+48]
pminub xmm0,[bOne]
psllw xmm0,7
pmovmskb edx,xmm0
shl edx,16
or eax,edx
}
}
int Bit_Scan_Forward_32(int nFlags)
{
__asm bsf eax,nFlags;
}
在本实施例中,如果64个系数中有m个非零系数,则在32位平台下,这64个系数做游程编码共经历m+2个条件分支。
在实际情况中,64个系数中绝大多数都是零值系数(非零系数大约只占20%左右),因此,m+2会远少于128。另外,尽管看起来游程编码的通常实现方法更简单,但由于其代码中的循环体被调用了64次,CPU实际执行的指令数要远多于新算法需要CPU执行的指令数!
最后应说明的是,以上仅用以说明本发明的技术方案而非限制,尽管参照较佳布置方案对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案(比如各个步骤之间的交替等)进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
Claims (2)
1.一种在MPEG2中游程编码快速计算游程长度的方法,在MPEG2编码过程中,对8×8平方像素的残差图像区域做DCT变换、变换后的64个系数经过量化并重新排列,其特征在于,将经过量化和重新排列后的64个系数做游程编码的步骤如下:
构造nFlags的步骤:用于构造一个64位整数,记为nFlags,将nFlags的每一位与64个系数中的某个系数一一对应,对应的顺序为:从最低位开始,nFlags的第1位,对应64个系数中的第1个系数,即最低频系数,nFlags的第2位对应64个系数中的第2个系数,以此类推,直到nFlags的最后1位对应64个系数中的最后1个系数,即最高频系数,构造的规则为:如果相应的系数为0,则nFlags中与之对应的位设为“0”,如果相应的系数非0,则nFlags中与之对应的位设为“1”;
判断nFlags是否为0的步骤:用于判断nFlags是否为0,如果nFlags等于0,即nFlags的每一位均为“0”,说明64个系数中已没有非零系数,进入结束的步骤,如果nFlags非0,进入下一步骤;
计算nFlags中连续“0”位个数的步骤:用于通过调用CPU指令“BSF”,从nFlags的最低位开始,计算连续为“0”的位的位数,这个位数值也就是连续零值系数的个数,即游程的长度,记为n,将n和nFlags中从低位起第n+1位对应的系数组成的数对保存起来,将nFlags逻辑右移n+1位,即高位补“0”,对应关系也相应移动,之后回到“判断nFlags是否为0的步骤”;
结束的步骤:用于完成游程编码的过程,将所有已保存的数对按保存时间的先后顺序排列,即得到64个系数做游程编码的结果。
2. 根据权利要求1所述的方法,其特征在于,所述的构造nFlags的步骤中,在64位平台中构建一个64位整数;在32位平台中构建两个32位整数,这两个32位整数结合为一个64位整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105080930A CN101964912A (zh) | 2010-10-15 | 2010-10-15 | 一种在mpeg2中游程编码快速计算游程长度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105080930A CN101964912A (zh) | 2010-10-15 | 2010-10-15 | 一种在mpeg2中游程编码快速计算游程长度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101964912A true CN101964912A (zh) | 2011-02-02 |
Family
ID=43517615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105080930A Pending CN101964912A (zh) | 2010-10-15 | 2010-10-15 | 一种在mpeg2中游程编码快速计算游程长度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101964912A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740069A (zh) * | 2011-04-05 | 2012-10-17 | 索尼公司 | 数据处理装置、数据处理方法、程序以及相机*** |
CN106941610A (zh) * | 2017-04-25 | 2017-07-11 | 西安电子科技大学 | 基于改进方块编码的二值roi掩模编码方法 |
CN115589493A (zh) * | 2022-12-09 | 2023-01-10 | 深圳海卫通网络科技有限公司 | 一种用于船舶视频回传的卫星传输数据压缩方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1172382A (zh) * | 1996-06-14 | 1998-02-04 | 大宇电子株式会社 | 行程长度编码器 |
US5764357A (en) * | 1996-04-12 | 1998-06-09 | Vlsi Technology, Inc. | Zero-run-length encoder with shift register |
US6628717B1 (en) * | 1998-11-04 | 2003-09-30 | Lg Electronics Inc. | Lossless coding method and video compression coding device using the same |
CN1501716A (zh) * | 2002-11-14 | 2004-06-02 | ���µ�����ҵ��ʽ���� | 编码装置及方法 |
CN1774932A (zh) * | 2003-05-16 | 2006-05-17 | 思科技术公司 | 用于视频压缩的组合的游程长度编码和可变长度编码 |
US20080046698A1 (en) * | 2006-08-21 | 2008-02-21 | Kapil Ahuja | Run Length Encoding in VLIW Architecture |
CN101494461A (zh) * | 2009-01-15 | 2009-07-29 | 中国科学院研究生院 | 联合信源信道可变长符号级可逆编解码方法 |
WO2010077148A1 (en) * | 2008-12-30 | 2010-07-08 | Tandberg Telecom As | Method, apparatus and computer readable medium for calculating run and level representations of quantized transform coefficients representing pixel values included in a block of a video picture |
-
2010
- 2010-10-15 CN CN2010105080930A patent/CN101964912A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764357A (en) * | 1996-04-12 | 1998-06-09 | Vlsi Technology, Inc. | Zero-run-length encoder with shift register |
CN1172382A (zh) * | 1996-06-14 | 1998-02-04 | 大宇电子株式会社 | 行程长度编码器 |
US6628717B1 (en) * | 1998-11-04 | 2003-09-30 | Lg Electronics Inc. | Lossless coding method and video compression coding device using the same |
CN1501716A (zh) * | 2002-11-14 | 2004-06-02 | ���µ�����ҵ��ʽ���� | 编码装置及方法 |
CN1774932A (zh) * | 2003-05-16 | 2006-05-17 | 思科技术公司 | 用于视频压缩的组合的游程长度编码和可变长度编码 |
US20080046698A1 (en) * | 2006-08-21 | 2008-02-21 | Kapil Ahuja | Run Length Encoding in VLIW Architecture |
WO2010077148A1 (en) * | 2008-12-30 | 2010-07-08 | Tandberg Telecom As | Method, apparatus and computer readable medium for calculating run and level representations of quantized transform coefficients representing pixel values included in a block of a video picture |
CN101494461A (zh) * | 2009-01-15 | 2009-07-29 | 中国科学院研究生院 | 联合信源信道可变长符号级可逆编解码方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740069A (zh) * | 2011-04-05 | 2012-10-17 | 索尼公司 | 数据处理装置、数据处理方法、程序以及相机*** |
CN106941610A (zh) * | 2017-04-25 | 2017-07-11 | 西安电子科技大学 | 基于改进方块编码的二值roi掩模编码方法 |
CN106941610B (zh) * | 2017-04-25 | 2019-12-24 | 西安电子科技大学 | 基于改进方块编码的二值roi掩模编码方法 |
CN115589493A (zh) * | 2022-12-09 | 2023-01-10 | 深圳海卫通网络科技有限公司 | 一种用于船舶视频回传的卫星传输数据压缩方法 |
CN115589493B (zh) * | 2022-12-09 | 2023-03-14 | 深圳海卫通网络科技有限公司 | 一种用于船舶视频回传的卫星传输数据压缩方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106027065B (zh) | 解码装置和解码方法 | |
CN101919250B (zh) | 压缩多个像素块的方法和压缩器、以及对压缩像素块进行解压的方法和解压器 | |
JP4920034B2 (ja) | マルチスレッドsimd処理を利用したメディア符号化の並列実行 | |
CN101099174B (zh) | 图像编码方法、编码器、解码方法、解码器以及计算机程序产品 | |
CN102378991B (zh) | 用于编码的数据中的压缩增益的压缩域***和方法 | |
CN101061515A (zh) | 表示时变图形模型的数据流的编码方案 | |
US8810439B1 (en) | Encoder, decoder and method | |
CN101971633A (zh) | 压缩参考帧的视频编码*** | |
JP2006526367A (ja) | 隣接比較に基づくロスレス高速画像圧縮システム | |
CN101964912A (zh) | 一种在mpeg2中游程编码快速计算游程长度的方法 | |
US20190279330A1 (en) | Watermark embedding method and apparatus | |
CN104320668B (zh) | Hevc/h.265的dct变换和反变换的simd优化方法 | |
CN112422986B (zh) | 硬件解码器流水线优化方法及应用 | |
EP2962396A1 (en) | Entropy modifier and method | |
CN100452881C (zh) | 一种基于合并处理的反量化方法及其装置 | |
CN101540906A (zh) | 打包交换***及方法 | |
KR101108674B1 (ko) | 엔트로피 코딩의 성능 향상 방법 및 상기 방법을 이용한 비디오 코딩 방법 및 장치 | |
CN104052999B (zh) | 平行编码***中执行速率控制的方法及平行编码*** | |
CN105120275B (zh) | 帧内模式决策中并行cabac-r算法的实现方法 | |
Koc et al. | Application of pseudo-distance to lossless coding of color-mapped images | |
JPH10111792A (ja) | 画像処理装置 | |
CN1174632C (zh) | 用于减少信号退化的方法 | |
CN103002275A (zh) | 用于cavlc编码的双系数扫描方法 | |
CN109462763B (zh) | 一种视频水印处理方法和*** | |
CN113068033B (zh) | 一种多媒体的反量化处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110202 |