CN101572814A - 一种二次游程编码方法 - Google Patents

一种二次游程编码方法 Download PDF

Info

Publication number
CN101572814A
CN101572814A CN 200810094372 CN200810094372A CN101572814A CN 101572814 A CN101572814 A CN 101572814A CN 200810094372 CN200810094372 CN 200810094372 CN 200810094372 A CN200810094372 A CN 200810094372A CN 101572814 A CN101572814 A CN 101572814A
Authority
CN
China
Prior art keywords
run
sequence
level
poslev
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
Application number
CN 200810094372
Other languages
English (en)
Inventor
林润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Kun'an Electronic Science & Technology Co Ltd
Original Assignee
Hefei Kun'an Electronic Science & Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei Kun'an Electronic Science & Technology Co Ltd filed Critical Hefei Kun'an Electronic Science & Technology Co Ltd
Priority to CN 200810094372 priority Critical patent/CN101572814A/zh
Publication of CN101572814A publication Critical patent/CN101572814A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种二次游程编码方法:其特征在于对残差系数进行一次游程编码后可分别得到的level序列和run序列,将这些绝对值为1的level进一步视为level序列的游程;类似的将连续出现值为0的run序列进一步视为run序列的游程,并将level和level的游程poslev组成(lev,poslev)进行成对编码,将run和run的游程posrun组成(run,posrun)进行成对编码。

Description

一种二次游程编码方法
技术领域
本发明属于变长熵编码方法和算术编码方法领域,特别涉及一种新型的针对残差系数的变长熵编码方法。
背景技术
目前,CAVLC和CABAC分别代表了国际视频标准中性能最优的变长熵编码方法和算术编码方法。其中,CABAC拥有很高的编码效率,但由于算术编码和多模型带来的高复杂度使得其某些应用中仍然受到限制;而拥有较高编码效率以及较低复杂度的CAVLC则更为产业界所接受。
发明内容
本发明的目的是针对现有技术的不足,提供一种新型的针对残差系数的变长熵编码方法。与CAVLC类似,本方法采用了level和run分开编码的基本框架,其核心技术是对level和run分别进行二次游程编码,同时将传统的查找固定码表的方式改进为基于上下文内容由序号表动态生成码字的方式。我们在AVS_M平台上已实现了用本方法对4x4块残差系数亮度分量的编码,其性能较CAVLC只有略微下降(-0.02dB~-0.04dB)。
本发明提供了一种二次游程编码方法:其特征对残差系数进行一次游程编码后可分别得到的level序列和run序列,将这些绝对值为1的level进一步视为level序列的游程;类似的将连续出现值为0的run序列进一步视为run序列的游程,并将level和level的游程poslev组成(lev,poslev)进行成对编码,将run和run的游程posrun组成(run,posrun)进行成对编码。
本发明还提供了一种动态码表:变长编码均是采用查找固定码表的方式编码语法元素。码表均是事先通过对大量的特征序列进行统计,训练生成的。而若想在编码的同时训练码表也会面临复杂度过高的问题。本方法提出了一种动态码表的方法:事先依据统计得到的概率分布对各个信源符号进行排序,对概率最大的符号分配序号0,对概率仅次之的符号分配序号1,依此类推,得到一张序号表。然后在编码的同时通过上下文跟踪信源符号的限制信息,对2维序号表进行某一维或两维的截断,再跟据截断后的序号表动态生成待编码符号相应的码字。
本发明还提供了一种GR码和EG码自适应方法:有实验表明Golomb-Rice和Exp-Golomb这两种规则码字均只能做到在某一特定的高斯信源和量化级数下接近编码效率100%。而Hybrid-Golomb与前两者相比虽然有较高的健壮性,但编码效率始终离100%有一段距离。但是若将各阶GR码和各阶EG码并在一起则可以涵盖大部分不同的信源情况并接近100%的编码效率。
本发明二次游程编码方法,将能够在很大程度上提高对level序列中连续绝对值为1的level元素,以及run序列中连续值为0的run元素的编码效率。
在多张码表自适应选择的技术的基础上,动态码表策略可以进一步充分的利用上下文信息,提高编码效率。在采用简化算法后,现已大大降低了动态生成码字的复杂度。
本发明的一套GR码字(保证不出现伪起始码),和原始的EG码做两选一的自适应选择,即每张codenum映射表选用EG(k=0~3)和GR(k=0~3)中的一种码字结构来封装成最后的码字。经过我们的实验这一方式的确可以提高编码效率。
具体实施方式
下面进一步举例说明本发明的具体实施方式。
1、首先说明编码的语法元素:
经过扫描和游程编码后,残差系数转换为了level和run序列。接着采用本方法完成对level和run的编码。需要编码的语法元素划分为:
(1)numcoeff:非零残差系数的个数。
(2)numleft1:level序列高频端绝对值连续为1的个数。
(3)(lev,levpos)s:这里lev指的是绝对值非0且非1的level;而levpos指的是与lev相邻靠低频端的连续绝对值为1的level的个数。将每一对这样的lev和levpos组成一个联合对(lev,levpos)。
(4)1signs:level序列中所有绝对值为1的level的符号。
(5)totrun:所有非零run之和。
(6)(run,runpos)s:这里run指的是非0的run;而runpos是指与run相邻靠高频端的连续值为0的run的个数。将每一对这样的run和runpos组成一个联合对(run,runpos)。
2、现以8x8块为例,说明本方法的编码流程:
残差系数经zig-zag扫描后为(左端为低频端,右端为高频端):
-5  1  -1  4  -1  -2  0  -1  -3  0  -2  -1  0  0  -1  0………0
(1)经过传统游程编码后得到level序列和对应的run序列分别为:
level序列:
-5  1  -1  4  -1  -2  -1  -3  -2  -1  -1
run序列:
0  0  0  0  0  0  1  0  1  0  2
当前块的非零系数个数numcoeff为11。
level序列高频端绝对值连续为1的个数numleft1为2。
level序列中所有绝对值为1的level的个数num1为6。
所有非零run之和totrun为4。
(2)对level和run这两个序列进行二次游程编码,分别得到(lev,poslev)序列对和(run,posrun)序列对:
(lev,poslev)序列对:(高频端向低频端扫描,即从右向左)
(-2,0)、(-3,1)、(-2,1)、(4,2)、(-5,0)
(run,posrun)序列对:(低频端向高频端扫描,即从左向右)
(1,1)、(1,1)、(2,0)
(3)利用相邻块预测的方式,条件编码numcoeff=11;
(1)利用已编码的numcoeff来预测numleft1,条件编码numleft1=2;
(2)依扫描顺序依次编码5个(lev,poslev):(-2,0)、(-3,1)、(-2,1)、(4,2)、(-5,0);
(3)从高频端向低频端扫描,依次编码num1=6个绝对值为1的level的符号1signs;
(4)利用已编码的numcoeff来预测totrun,条件编码totrun=4;
(5)依扫描顺序依次编码3个(run,posrun):(1,1)、(1,1)、(2,0);熵编码结束。
此外补充说明如下:
[1]步骤(3),(4),(7)中,目前编码numcoeff,numleft1和totrun时采用的是截断huffman码。
[2]步骤(6)中,目前编码1signs的方式是每个符号用一个bit来表征其正负。
[3]步骤(5),(8)中,成对编码(lev,poslev)和(run,posrun)的方式是:先根据上下文的预测来选择二维序号表,再根据上下文的限制信息截取序号表的一维或两维,对截断后的续号表进行一次扫描即可动态生成二维符号所对应的codenum(若为逃逸的情况,同时可以得到某一poslev或posrun所对应的maxlev和maxrun;而逃逸情况的编码方法与anchor相同),最后依据表索引和截取信息共同来选择封装码字结构(EG或GR)以及相应的阶数k。
在我们的方法里,编码当前(lev,poslev)时所选用的序号表是由上一个已编码完的(lev,poslev)中lev的绝对值来决定的,而编码第一对(lev,poslev)固定选用第一张序号表。编码当前(run,posrun)时所选用的序号表是由leftrun决定,leftrun的初始值为totrun,每编完一对(run,posrun)就对leftrun进行一次更新:leftrun=leftrun-run。
编码(lev,poslev)时,对选用的序号表做poslev这一维的截取。截取信息nll(number of left levels)的初始值为numcoeff-numleft1。每编完一对(lev,poslev)就对nll进行一次更新nll=nll-1-poslev。编码(run,posrun)时,对选用的序号表同时做run和poslev这两维的截取。截取poslev这一维的信息为nlr(number of left runs),其初始值为numcoeff。每编完一对(run,posrun)就对nlr进行一次更新nlr=nlr-1-posrun。而截取run这一维的信息即leftrun,其更新方式同前。
以上所述的具体实施方式只是对本发明结构的一种具体举例,但本发明的保护范围并不局限于此,任何熟悉该技术的人在形式或细节上对其作各种各样的变化或替换,都不影响本发明的实质与精神,都应该涵盖在本发明的保护范围之内。

Claims (1)

1、一种二次游程编码方法:其特征在于对残差系数进行一次游程编码后可分别得到的level序列和run序列,将这些绝对值为1的level进一步视为level序列的游程;类似的将连续出现值为0的run序列进一步视为run序列的游程,并将level和level的游程poslev组成(lev,poslev)进行成对编码,将run和run的游程posrun组成(run,posrun)进行成对编码。
CN 200810094372 2008-04-29 2008-04-29 一种二次游程编码方法 Pending CN101572814A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810094372 CN101572814A (zh) 2008-04-29 2008-04-29 一种二次游程编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810094372 CN101572814A (zh) 2008-04-29 2008-04-29 一种二次游程编码方法

Publications (1)

Publication Number Publication Date
CN101572814A true CN101572814A (zh) 2009-11-04

Family

ID=41232028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810094372 Pending CN101572814A (zh) 2008-04-29 2008-04-29 一种二次游程编码方法

Country Status (1)

Country Link
CN (1) CN101572814A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102695051A (zh) * 2011-03-25 2012-09-26 富士施乐株式会社 图像处理设备和图像处理方法
CN106507108A (zh) * 2016-12-07 2017-03-15 中国石油大学(华东) 图像编码、解码的方法和装置
CN112399181A (zh) * 2019-08-19 2021-02-23 华为技术有限公司 图像编解码的方法、装置和芯片
CN113143284A (zh) * 2021-04-13 2021-07-23 浙江大学 基于小波变换和双模预测的心电信号压缩方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102695051A (zh) * 2011-03-25 2012-09-26 富士施乐株式会社 图像处理设备和图像处理方法
CN102695051B (zh) * 2011-03-25 2017-11-03 富士施乐株式会社 图像处理设备和图像处理方法
CN106507108A (zh) * 2016-12-07 2017-03-15 中国石油大学(华东) 图像编码、解码的方法和装置
CN112399181A (zh) * 2019-08-19 2021-02-23 华为技术有限公司 图像编解码的方法、装置和芯片
WO2021031877A1 (zh) * 2019-08-19 2021-02-25 华为技术有限公司 图像编解码的方法、装置和芯片
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质
US11863799B2 (en) 2019-08-19 2024-01-02 Huawei Technologies Co., Ltd. Image encoding method and apparatus, image decoding method and apparatus, and chip
CN113143284A (zh) * 2021-04-13 2021-07-23 浙江大学 基于小波变换和双模预测的心电信号压缩方法
CN113143284B (zh) * 2021-04-13 2022-10-21 浙江大学 基于小波变换和双模预测的心电信号压缩方法

Similar Documents

Publication Publication Date Title
US7496143B2 (en) Method and arrangement for coding transform coefficients in picture and/or video coders and decoders and a corresponding computer program and a corresponding computer-readable storage medium
KR100856398B1 (ko) 복수 매핑 테이블을 이용한 가변장 부호화 및 복호화방법과 그 장치
CN1214649C (zh) 用于视频预测残差系数编码的熵编码方法
MX2013013523A (es) Metodo y aparato para codificacion de modo de intra predicion.
CN102186087B (zh) 用于二进制算术编码可并行的非零系数上下文建模方法
CN1980395A (zh) 一种基于上下文的熵编码方法及解码方法
CN103004195A (zh) 将多种可变长度编码方法用于多种类型的变换系数块的视频压缩
KR20120005984A (ko) 변환 계수의 엔트로피 부호화/복호화 방법 및 장치
RU2016104528A (ru) Инициализация параметра райса для кодирования на уровне коэффициентов в процессе кодирования видео
CN102550027A (zh) 用于图像和视频压缩的局部可变量化和混合可变长度编码
CN103167289B (zh) 图像的编码、解码方法及编码、解码装置
CN1589023A (zh) 一种基于上下文的多码表变长编解码方法及编解码装置
CN101572814A (zh) 一种二次游程编码方法
CN101267553A (zh) 一种实现编、解码的方法和装置
CN103974066B (zh) 视频编码方法和设备
CN101878651A (zh) 用于图像和视频压缩的系数族的可变长度编码
CN104378634B (zh) 输入符号二值化的方法以及从码字中产生索引值的方法
CN100542293C (zh) 变长编解码方法及其编解码器
JP2004258603A5 (zh)
CN101572812A (zh) 一种动态码表及其生成方法
JP7034101B2 (ja) 簡単なローカル予測子を用いる改善された重要度フラグ符号化の方法及び装置
CN101198056A (zh) 变长编码方法及装置
CN113453002B (zh) 量化与熵编码方法及装置
Zhang et al. Context-based arithmetic coding reexamined for DCT video compression
CN103024380B (zh) 一种数据的熵编码方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091104