CN111316645A - 编码器、编码系统和编码方法 - Google Patents
编码器、编码系统和编码方法 Download PDFInfo
- Publication number
- CN111316645A CN111316645A CN201980005065.6A CN201980005065A CN111316645A CN 111316645 A CN111316645 A CN 111316645A CN 201980005065 A CN201980005065 A CN 201980005065A CN 111316645 A CN111316645 A CN 111316645A
- Authority
- CN
- China
- Prior art keywords
- channel
- encoding
- coding
- bit
- encoder
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供一种编码器、编码系统和编码方法。该编码器包括Tier‑1编码单元,对待编码图像的图像块的码块进行tier‑1编码,得到该码块的码流;其中,该Tier‑1编码单元包括:位平面编码单元,该位平面编码单元包括第一通道和第二通道,该第一通道和该第二通道用于对该码块的多个位平面并行地进行位平面编码,得到该码块的码流;算术编码单元,用于对该码块的码流进行算术编码,得到目标码流。本申请通过第一通道和第二通道能够得到由该第一通道输出的编码结果和该第二通道输出的编码结果组成的码流,由此该算术编码单元能够对位平面编码结果采用具有不同压缩率和编码速度的算术编码方式,进而能够同时兼顾该码块的压缩率和编码速度。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及图像解码领域,更为具体地,涉及一种编码器、编码系统和编码方法。
背景技术
联合图像专家小组(joint photographic experts group,JPEG)、JPEG 2000是常用的图像编码标准。
JPEG 2000采用小波变换,并基于优化截取内嵌码块编码(embedded blockcoding with optimized truncation,EBCOT)进行熵编码,具有比JPEG更高的压缩比,并支持渐进式下载和显示。
传统JPEG 2000的编码器不能兼容压缩率和编码速率。
发明内容
本申请提供一种编码器、编码系统和编码方法,能够有效兼容压缩率和编码速率。
第一方面,提供了一种编码器,包括:
Tier-1编码单元,对待编码图像的图像块的码块进行tier-1编码,得到所述码块的码流;
其中,所述Tier-1编码单元包括:
位平面编码单元,所述位平面编码单元包括第一通道和第二通道,所述第一通道和所述第二通道用于对所述码块的多个位平面并行地进行位平面编码,得到所述码块的码流;
算术编码单元,用于对所述码块的码流进行算术编码,得到目标码流。
第二方面,提供了一种编码系统,包括:
第一方面所述的编码器。
第三方面,提供了一种编码方法,包括:
通过第一通道和第二通道对待编码图像的图像块的码块的多个位平面并行地进行位平面编码,得到所述码块的码流;
对所述码块的码流进行算术编码,得到目标码流。
基于以上技术方案,本申请实施例的编码器、编码系统以及编码方法,通过第一通道和第二通道对所述码块的多个位平面并行地进行位平面编码,能够得到由所述第一通道输出的编码结果和所述第二通道输出的编码结果组成的码流,由此所述算术编码单元能够对所述第一通道输出的编码结果和所述第二通道输出的编码结果采用具有不同压缩率和编码速度的算术编码方式,进而能够同时兼顾所述码块的压缩率和编码速度。
附图说明
图1是JPEG 2000的编码框架图。
图2是本申请实施例提供的编码系统的结构示意图。
图3是图2所示的编码单元的示意性结构图。
图4是本申请的位平面和编码通道之间的关系的示意性结构图。
图5是本申请的位平面编码过程中SPP、MRP和CUP的扫描顺序的示意图。
图6是本申请的位平面的像素的邻域的示意图。
图7是本申请的SPP、MRP和CUP的扫描窗口的示例。
图8是本申请的SPP、MRP和CUP的扫描窗口的另一示例。
图9是本申请实施例提供的解码器的结构示意图。
具体实施方式
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域。
本申请提供的编码器可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically losslesscompression)。
为了便于理解,先对JPEG 2000的编码框架进行简单介绍。
如图1所示,JPEG 2000的编码框架可以包括预处理模块12、变换模块14、量化模块16、EBCOT模块18。
预处理模块12可以包括分量变换(component transformation)模块122和直流电平平移(direct current level shift)模块124。
每个图像由不同的分量(component)组成。分量变换模块122可以对图像的分量进行某种变换以降低各分量之间的相关性。例如,分量变换模块122可以将图像的各个分量从当前颜色域(例如红蓝绿(RGB))转换至另一颜色域。
分量变换模块122可以支持多种颜色变换模式,因此,分量变换模块122有时也可称为多模颜色变换(multi-mode color transform,MCT)模块。例如,分量变换模块122可支持不可逆颜色变换(irreversible color transform,ICT)或可逆颜色变换(reversiblecolor transform,RCT)。需要说明的是,分量变换模块122是可选的,实际编码过程中,也可以不对图像进行分量变换,直接进行后续处理。
直流电平平移模块124可用于对分量值进行中心平移(又称为直流电平平移),使得分量值关于0对称分布,以便于后续变换模块14的变换操作。
变换模块14采用小波变换对图像中的各个图像块(tile)进行变换,得到得到不同分辨率级别的子带(sub-band)的小波系数,n级小波变换后就有n+1个分辨率级别,每个分辨率级别有3个子带(除去最低分辨率只有1个子带)。
需要注意的是,对于分辨率r不是最低分辨率时,实际包含了HH、HL、LH、LL四个子带,但由于LL是分配给下一分辨率的,因此只处理HH、HL、LH这三个子带。
应理解,本申请实施例对图像块的尺寸不做具体限定,例如可以是512×512(单位为像素)。又例如,可以将整个图像作为一个图像块。
量化模块16可用于对子带的小波系数进行量化,得到量化后的子带的小波系数。
EBCOT模块18是JEPG 2000的熵编码模块,属于JEPG 2000的核心模块。
EBCOT模块18可以包括tier-1编码模块182、tier-2编码模块184和码率控制模块186。tier-1编码模块182可用于对码块(子带可以进一步划分成独立的多个码块(codeblock))进行tier-1编码。tier-1编码可以包括比特平面编码和算术编码。tier-2编码模块184主要负责码流的组织工作,如可以根据码率控制模块186提供的目标码率对码块的码流进行截断等处理。
下面将结合图2对本申请中的编码器进行描述。
如图2所示,编码器7可以包括第一接口电路71、变换电路72、量化电路73、第一编码电路74、码率控制电路75、第二编码电路76以及码流写出电路77。
编码器7可以是支持JPEG 2000标准的硬件编码器。
第一接口电路71可以用于获取待编码图像,并在获取待编码图像后,将所述待编码图像划分为多个图像块。当然,第一接口电路71也可以用于直接获取划分好的图像块。所述待编码图像可以是经过分量变换的图像。所述待编码图像的格式可以是任意具有4个或者3个分量的图像格式。其中,具有4个分量的图像格式包括但不限于Bayer pattern RAW格式或者由Bayer pattern RAW格式转化成的YUVGb格式或YDgCoCg格式。具有3个分量的图像格式包括但不限于RGB格式和YUV格式。
第一接口电路71可以用于接收传感器采集到的待编码图像,也可以用于从存储器读取待编码图像或该待编码图像的图像块,还可以从图像信号处理(image signalprocessing,ISP)系统获取经过分量变换的图像,其中,ISP包括但不限于数字信号处理器(digital signal processor,DSP)和图形处理单元(graphics processing unit,GPU)。
以第一接口电路71从存储器获取待编码图像的图像块为例,待编码图像可以按行顺序或列顺序存储在存储器中,此时第一接口电路71可以根据待编码图像在存储器中的位置,计算出各个图像块的存储位置,然后按照跳跃寻址方式读取相应图像块。当然,待编码图像也可以以图像块为单元存储在存储器中,此时第一接口电路71可以按照图像块的存储顺序读取图像块。具体地,第一接口电路71可以采用特定的寻址方式读取存储器中存储的待编码图像的图像块,而无需对待编码图像进行分割。第一接口电路71也可以按照直接内存存取(direct memory access,DMA)方式从存储器中直接读取图像块,以提高存取效率和速度。
在一些实施例中,第一接口电路71可以包括计算电路。
计算电路可用于计算待编码图像的统计信息。当然,所述计算电路也可以和所述第一接口电路71或编码器7分离设置。例如,在其他可替代实施例中,所述计算电路也可以设置于图像信号处理(image signal processing,ISP)系统。
待编码图像的统计信息可以是能够用于对待编码图像中的图像块(tile)进行码率控制的信息,因此,在某些实施例中,待编码图像的统计信息也可以称为待编码图像块的码率控制信息。待编码图像的统计信息可以包括待编码图像中的图像块的以下信息中的一种或多种:复杂度、活动性、纹理。
待编码图像的统计信息的计算方式可以有多种。
以待编码图像的统计信息为待编码图像中的图像块的复杂度为例,计算电路可以基于图像块内像素点的高频分量的幅值定义或计算图像块的复杂度。比如,图像块的复杂度可以为图像块区域内每个像素所处位置的高频信息的累加和。当图像块的纹理较复杂,那么相应的高频分量的幅值的累加和也会相应较大,可以认为该图像块的复杂度较高。根据图像的编码理论,复杂度较高的图像块区域对应的编码后的码流(或编码所需消耗的比特数)也会相应较大。具体地,计算电路可以基于图像块区域内的像素点的像素值,通过滤波操作,得到高频分量,进而计算图像块的复杂度。在其他可替代实施例中,计算电路也可以基于图像块的像素值的均方误差(mean-square error,MSE)定义或计算图像块的复杂度,图像块的像素值的MSE越大,可以认为该图像块的复杂度越高。应理解,图像块的复杂度也可以采用其他定义方式,或上述定义方式的组合,本申请实施例对此并不限定。第一接口电路71也可以用于从外部的存储器中读取预先生成的待编码图像的统计信息。本申请对此不做具体限制。
第一接口电路71可以将待编码图像的统计信息作为码率控制信息传输至码率控制电路75,供码率控制电路75对编码过程进行码率控制。
变换电路72可用于执行上文中的变换模块14执行的操作,即对图像块进行小波变换。图像块经过小波变换之后可以得到许多子带。经过小波变换,可以得到图像块的小波系数,图像块的小波系数可以指这些子带(sub-band)的小波系数。
量化电路73可用于对小波系数进行量化,得到量化后的小波系数或量化后的子带的小波系数。
第一编码电路74可以包括一个或多个EBCOT编码模块742,EBCOT编码模块742可用于对图像块的码块(子带可以进一步划分成独立的多个码块)进行tier-1编码,得到码块的码流。图像块的所有码块的码流组成该图像块的码流。
参见前文的描述可知,变换电路72接收的是图像块,经过变换电路72变换以及量化电路73量化后得到的是具有小波系数的子带,一个子带又可以被划分成可独立编码的一个或多个码块,即图像块的码块可以指图像块的子带的码块。
EBCOT编码模块742可用于执行图1中的tier-1编码模块182执行的操作,如对码块进行比特平面编码和算术编码。可选地,第一编码电路74对码块进行编码之前,还可以对码块进行预处理,例如,将小波系数的符号位和绝对值分离。此外,在一些实施例中,第一编码电路74将码块编码成码流之后,还可以对码块进行后处理,如可以将码流拼接在一起,供第二编码电路76使用。
码率控制电路75可用于根据待编码图像的统计信息确定待编码图像中的图像块的目标码率(target size)。
以待编码图像的统计信息为待编码图像中的图像块的复杂度为例,码率控制电路75可以根据各个图像块的复杂度,为各个图像块分配权值。图像块的复杂度越高,权值越大。码率控制电路75可以根据各个图像块的权值以及当前网络状况(如网络带宽),计算各个图像块的目标码率,使得图像块的权值越大,目标码率越高。可选地,计算电路输出的待编码图像的统计信息可以包括各个图像块的权值,码率控制电路75直接利用图像块的权值计算目标码率即可。
第二编码电路76可用于实现上文提及的tier-2编码模块184的功能。例如,第二编码电路76可用于根据目标码率对图像块的码流进行tier-2编码,以截断图像块的码流。具体地,第二编码电路76接收到第一编码电路74发送的每个码块的码流后,可以根据输出码率的要求(例如输出的目标码率),组合每个码块的码流,对所有码块的码流进行优化截断排序、打包等处理,以得到JPEG2000的码流。
第二编码电路76可以包括率失真计算电路762(或称slope maker)和截断电路764(或称truncator)。
率失真计算电路762可用于计算第一编码电路74输出的码流的率失真斜率。例如,率失真计算电路762可以根据第一编码电路74输出的每片码流(即每个码块的码流(pass))的码率(rate)和失真度(distortion)计算率失真斜率(slope)。率失真斜率可用于评估当前码块的每一段码流在整个图像块的贡献度。该率失真斜率可用于后续的码流组织,如码流的分层、截断等。具体而言,在编码过程中,当前码块会被分为若干比特平面,每个比特平面通过编码后会产生3段码流(3-pass编码,除了最高比特平面只会产生1段码流之外),其中,每一段码流都会对应一个slope值。
也就是说,当前码块对应的率失真斜率可以包括当前码块经过位比特平面编码后产生的每一段码流对应的slope值。
截断电路764可用于根据目标码率以及率失真斜率对图像块的码流进行处理。例如,截断电路764可用于根据目标码率以及率失真斜率截断图像块的码流。进一步地,截断电路764还可用于对码流进行重新组织,码流分层等。此外,在某些实施例中,截断电路764还可用于生成码流的header信息,并将header信息与码流一块传输至后级的码流写出电路77。
码流写出电路77可用于接收截断电路764输出的已经组织好的码流,并将码流写到外部的存储器中。例如,可以通过总线写到外部的存储器中。该总线例如可以是高级扩展接口(advanced extensible interface,AXI)总线。码流写出电路77还可以为码流追加图像块头部(tile header)等信息。
在一些实施例中,码率控制电路75还可用于根据图像块的统计信息,生成码率控制缓冲区的状态信息(或称缓冲区大小,buffer size)。第一编码电路74还可用于根据码率控制缓冲区的状态信息,对tier-1编码进行控制。缓冲区的状态信息可用于第一编码电路74对码流进行预截断。例如,第一编码电路74可以根据缓冲区的状态信息删除超出预定大小的码流,或者删除不符合要求的码流。因此,缓冲区的状态信息也可称为预截断信息。进一步地,在一些实施例中,码率控制电路75还可以接收第一编码电路74实际编码的码流大小的反馈,并更新对应小波子带下图像块的的预截断信息。
在一些实施例中,编码器7还可以包括用于软件配置的接口电路(图中未示出),通过该接口电路可以配置或改变编码器7内部的寄存器中的信息,从而控制编码器7的编码方式。
本申请实施例计算待编码图像中的图像块的统计信息,并根据该统计信息截断图像块的码流,从而对各个图像块进行相对独立的码率控制,无需以各个图像块的码块为单位进行优化,避免产生大量的中间数据,因此,本申请实施例可以降低编码器对系统带宽的要求。整个待编码图像的编码过程甚至完全可以在片上进行。
在一些实施例中,变换电路72内部或输出端可以设置缓存(片上缓存),用于缓存变换电路72输出的中间结果。
在一些实施例中,截断电路764内部或输出端可以设置缓存(片上缓存),用于缓存截断电路764输出的中间结果。
在一些实施例中,可以对编码器7中的相邻两级电路进行速率匹配,以提高编码器7编码效率。例如,可以将相邻两级电路中的处理速度较慢的电路设置成多路并行结构;然后,可以采用一定的机制控制二者之间的数据传输,使得两级电路充分流水。
作为一个示例,可以对量化电路73与第一编码电路74的速率进行匹配。具体地,如图2所示,第一编码电路74包括多个EBCOT编码模块742时,该多个EBCOT编码模块742可用于对量化电路73输出的各个码块并行地进行tier-1编码,即第一编码电路74可以采用多路并行结构进行tier-1编码。由于量化电路73输给第一编码电路74的码块可以是多个频率分量对应的码流(例如LL、HL、LH、HH对应的码块),因此,量化电路73和多个EBCOT编码模块742之间可以采用分组仲裁或自由仲裁的方式确定量化电路73输出的中间结果所对应的EBCOT编码模块742。其中,分组仲裁指的是将量化电路73输出的某个频率分量对应的码块始终分配给固定的一组编码单元(每组编码单元可以由若干个编码单元组成),而自由仲裁是指量化电路73输出的每个码块均有可能被多路并行的编码单元中的一路接收。分组仲裁方式的优点在于硬件实现时电路连接较为简单,而自由仲裁方式则在某些情况下能提高编码单元的利用效率。
作为另一示例,可以对第一编码电路74和率失真斜率计算电路762的速率进行匹配。例如,率失真计算电路762可以包括多个率失真斜率计算单元。该多个率失真斜率计算单元可用于并行地计算第一编码电路74输出的码流的率失真斜率。第一编码电路74与率失真计算电路762之间也可以采用分组仲裁或自由仲裁的方式确定第一编码电路74输出的中间结果所对应的率失真斜率计算单元。以分组仲裁为例,一个率失真斜率计算单元可以对应第一编码电路74中的一组编码单元。一个率失真斜率计算单元对应一组编码单元可以使得整个电路的设计更加简单。
图3是图2所示的EBCOT编码模块742的示意性结构图。
如图3所示,EBCOT编码模块742可以包括预处理单元64、tier-1编码单元6以及后处理单元65。
tier-1编码单元6对码块进行编码之前,预处理单元64可以用于对码块进行预处理,例如,将小波系数的符号位和绝对值分离。tier-1编码单元6将码块编码成码流之后,后处理单元65可以用于对码块的码流进行后处理,如可以将码流拼接在一起,供第二编码电路76使用。
预处理模块64可以包括第一存储器641和第二存储器642,tier-1编码单元6可通过第一存储器641和第二存储器642读取预处理单元64预处理后的码块。
后处理模块65可以包括存取指令生成单元651、第三存储器652以及第四存储器653,后处理模块65可用于接收tier-1编码单元6输出的码流,并基于接收到的码流生成存取指令,然后基于存取指令存储tier-1编码单元6输出的码流。存取指令生成单元651具体用于接收第一算术编码器621和码流组织单元63输出的码流,并将这些码流存储至所述第三存储器652和/或所述第四存储器653的对应地址。
tier-1编码单元6可以包括位平面编码单元61、算术编码单元62以及码流组织单元63,用于负责数据的具体压缩。
其中,位平面编码单元61可以对每个码块进行多通道位平面编码,以生成上下文信息和判决结果,该判决结果用于生成码流,该上下文信息用于算术编码单元62建立概率模型,进而对位平面编码单元61输出的码流进行算术编码。
预处理模块64将码块的小波系数分解成位平面(也称为比特平面),并将分解后的位平面重新组织后发送至位平面编码单元61,位平面编码单元61接收到预处理模块64发送的已组织的位平面进行位平面编码。位平面上存放的是系数的二进制对应位上的位值。位平面编码单元61对每一位平面上的比特进行扫描以及编码,然后将生成的上下文信息和码流发送至算术编码单元62或码流组织单元63,以便算术编码单元62进行算术编码以及码流组织单元63进行码流组织。
具体而言,位平面编码单元61对部分位平面(高位平面以及高位平面之下的3个平面)上的比特进行扫描以及编码后,通过分发单元613并将生成的上下文信息和码流发送至第一算术编码器621,由第一算术编码器621进行算术编码,第一算术编码器621将编码后的码流发送至后处理模块65。此外,位平面编码单元61对剩余部分的位平面上的比特进行扫描以及编码后,通过分发单元613并将生成的上下文信息和码流发送至第二算术编码器622,由第二算术编码器622进行算术编码,第二算术编码器622将编码后的码流发送至码流组织单元63,由码流组织单元63重新组织后发送至后处理模块65。后处理模块65将第一算术编码器621和码流组织单元63输出的码流存储至所述第三存储器652和/或所述第四存储器653的对应地址。
位平面编码单元61可以对每个码块进行多通道位平面编码,多通道位平面编码可以包括显著性传播通道(significance propagation pass,SPP或SP)编码、幅度细化通道(magnitude refinement pass,MRP或MR)编码和清除通道(clean up pass,CUP或SP)编码。
其中,显著性传播通道是每个位平面的第一个编码通道(除了最高位平面,在最高位平面中,只有一种编码通道,即清除编码通道),用于编码当前不是显著系数,但其8个邻域有已被标注为显著系数的。例如,对于并未被标注为重要的待编码数据X,只要其周围的8个比特数据至少有一个是已被标注为显著系数,则该待编码数据X将在此通道中进行编码。位平面中的每一个系数可以对应一个用于表示“显著状态”的二进制状态变量s[j],j表示系数扫描坐标。显著状态初始化为0,s状态值在每个位平面都会更新,当某个系数在当前位平面变为显著,则将对应的s[j]=1(系数一旦变为显著,则接下来对应的显著状态s[j]=1不会再改变),同时会从最高位平面一直传导到需要编码的最低位平面。
幅度细化通道是每个位平面的第二个编码通道(除了最高位平面,在最高位平面中,只有一种编码通道,即清除编码通道),用于编码在上一个比特平面已经被标注为显著的系数。
清除通道是每个位平面的第三个编码通道(除了最高位平面,在最高位平面中,只有一种编码通道,即清除编码通道),用于编码剩下的系数。清除编码通道可以加入游程编码的编码方式和零编码的编码方式。具体地,在此通道中可以对一排的四个比特同时进行判断。例如,当四个比特都没有已经被标注为显著的相邻数据时,则对其采用游程长度编码,否则分别对每个比特采用零编码。
在前文所述的三种编码通道中,位平面编码单元61在不同的编码通道中可以采用不同的编码方式对位平面进行位平面编码。其中,在编码通道中采用的编码方式包括但不限于:显著性编码(Significance Coding,ZC),符号编码(Symbolic Coding,SC),幅度细化编码(Magnitude Refinement Coding,MRC)和游程长度编码(Run Length Encoding,RLC)。
例如,在显著性传播通道中,可以对位平面上的比特进行ZC编码和SC编码;在幅值细化通道中,可以对位平面上的比特进行MRC编码;在清除通道中,对位平面上的比特可以进行ZC编码、SC编码和RLC编码。位平面上的比特经过上述多通道位平面编码后,算术编码单元62对其输出进行算术编码。
位平面编码单元61通过对位平面进行位平面编码后,可以得到每个位平面的3组二进制序列,即每个通道对应一组二进制序列。
请继续参见图3,位平面编码单元61可以包括第一通道611和第二通道612。算术编码单元62可包括第一算术编码器621和第二算术编码器622。其中第一算术编码器621和第二算术编码器622可以为相同类型的算术编码器或不同类型的算术编码器。第一通道611和第二通道612可分别对应第一算术编码器621和第二算术编码器622。算术编码单元62也可以只包括一个算术编码器,或其它数量的算术编码器,本申请不做具体限制。
其中,第一算术编码器621和第二算术编码器622可以为多量化(MultipleQuantization,MQ)算术编码器。MQ算术编码器包括但不限于自适应算术编码器(context-based adaptive arithmetic coding)和传统的算术编码器。
算术编码器进行编码时,信源符号序列连续的进入编码器,通过编码器的运算得到连续的输出。算术编码是将一条信源符号序列映射成一条码序列(也称为码字)。
下面对传统的算术编码器的工作原理进行说明。
传统的算术编码器将一条信源信息序列映射到[0,1)区间中的一个子区间,这种映射是一种一一对应关系,以保证唯一译码,然后取这个子区间内的一点所代表的数值作为码字。
举例来说,假设信源符号为{A,B,C,D},且这些符号的概率分别为{0.1,0.4,0.2,0.3},根据这些概率可把间隔[0,1]分成4个子间隔:符号A对应的[0,0.1),符号B对应的[0.1,0.5),符号C对应的[0.5,0.7)以及符号D对应的[0.7,1]。如果二进制消息序列的输入为:CADACDB。编码时首先输入的符号是C,其属于的编码范围是[0.5,0.7]。由于消息中第二个符号A的编码范围是[0,0.1],因此它的间隔就取[0.5,0.7]的第一个十分之一作为新间隔[0.5,0.52]。依此类推,编码第3个符号D时取新间隔为[0.514,0.52],编码第4个符号A时,取新间隔为[0.514,0.5146],依次类推。消息的编码输出可以是最后一个间隔中的任意数。
传统的算术编码器的算术编码过程均建立在已知各个符号概率的基础上。只有已知各符号概率才能根据其划分概率区间。
下面对自适应二进制算术编码器的工作原理进行说明。
自适应算术编码在一次扫描中可完成两个过程,即概率模型建立过程和扫描编码过程。自适应算术编码在扫描符号序列前并不知道各符号的统计概率,这时假定每个符号的概率相等,并平均分配区间[0,1]。然后在扫描符号序列的过程中不断调整各个符号的概率。
举例来说,假定要编码的是一个来自四符号信源{A,B,C,D}的五个符号组成的符号序列:ABBCD。编码开始前首先将区间[0,1]等分为四个子区间,分别对应A,B,C,D四个符号。扫描符号序列,第一个符号是A,对应区间为[0,0.25],然后改变各个符号的统计概率,符号A的概率为2/5,符号B的概率为1/5,符号C的概率为1/5,符号D的概率为1/5,再将区间[0,0.25]等分为五份,A占两份,其余各占一份。接下来对第二个符号B进行编码,对应的区间为[0.1,0.15],再重复前面的概率调整和区间划分过程。
自适应算术编码首先需要知道信源发出每个符号的概率大小,然后再扫描符号序列,依次分割相应的区间,最终得到符号序列所对应的码字。
从算术编码器的输入来说,算术编码器的输入可以包括位平面编码单元61生成的待编码位D和上下文矢量(CX)。CX是位平面编码单元61根据邻域相关性归纳而来的概率统计模型,共有l9种。即对于不同的CX,符号概率不相同。本实施例中,第一算术编码器621和第二算术编码器621均可为自适应算术编码器,即第一算术编码器621和第二算术编码器621均可以采用CX确定符号概率。
继续参见图3,第一通道611和第二通道612均可包括SPP、MRP以及CUP,且SPP、MRP以及CUP均对应至少一个编码器。
利用标准协议指定的选择模式(selective mode)算法的特点,前4层位平面和后续位平面的概率是打断的。因此考虑提前把4层位平面的显著性状态提取出来,这样后续位平面就可以开始扫描编码工作了。本申请中,将前4位平面设置为在第一通道611上进行编码,将后续位平面设置在第二通道612上进行编码。即所述位平面编码单元61包括所述第一通道611和所述第二通道612,所述第一通道611和所述第二通道612将码块的多个位平面划分为两组位平面,并对所述两组位平面并行地进行位平面编码,得到所述码块的码流。
此外,由于在编码图像比特位深较大的情况下(比如12bit/pixel或14bit/pixel或16bit/pixel),码块的后续位平面将会很多(远多于4,即第一通道611处理的位平面数目)。基于这种考虑,本申请可以将第二通道312的计算能力设置为SPP、MRP、CUP三个扫描通道并行,可选地,三个扫描通道并行针对同一位平面进行扫描,而第一通道611只能是SPP、MRP两个扫描通道并行或CUP单扫描通道。例如,对应处理一个位平面,第一通道611的处理速率与第二通道612的处理速率的比值为1:2(除了最高位平面只进行CUP扫描外),由此,能够平衡两条通路的处理速率,并降低第一通道611的并行度,也有助于减少实现的硬件资源和峰值功耗。
具体而言,第一通道611处理码块的前4位平面时,第一个时刻被配置为利用CUP扫描最高位平面,第二个时刻被配置为利用SPP+MRP扫描第2个位平面(其中由于显著信息s的更新和传递,SPP和MRP需要错开若干个时钟周期,例如2个时钟周期),第三个时刻被配置为利用CUP扫描第2个位平面,第四个时刻被配置为利用SPP+MRP扫描第3个位平面,第五个时刻被配置为利用CUP扫描第3个位平面,依次类推。
应理解,上述“一个时刻”可以指一个扫描通道对一个位平面扫描处理完成的时间,以4bit/cycle的位平面扫描速率为例,以位平面大小为32x32bit为例,一个时刻即256cycle(实际上还需要考虑上数据调度、流水级若干cycle)。
第二通道612被配置为用于处理后续的位平面,其中,第一个时刻被配置为利用SPP+MRP+CUP扫描第5个位平面(其中由于显著信息s的更新和传递,SPP与MRP+CUP需要错开若干个时钟周期,例如2个时钟周期),第二个时刻被配置为利用SPP+MRP+CUP扫描第6个位平面,第三个时刻被配置为利用SPP+MRP+CUP扫描第7个位平面,依次类推直到需扫描编码的最低位平面。
本申请实施例中,第一通道611可以通过配置成为SPP或者MRP或者CUP。即所述第一通道611也可以被称为x通道(pass),其中x表示SPP或者MRP或者CUP。第一通道611可以包括或配置有1个RLC编码器、4个MRC编码器、4个ZC编码器以及4个SC编码器。由此,不仅能够实现对经过所述第一通道611的位平面进行位平面编码,而且能够有效简化硬件结构,进而降低成本。
换句话说,第一通道611可以包括SPP、MRP以及CUP。此时SPP和CUP配置有共用的4个ZC编码器以及4个SC编码器,MRP配置有4个MRC编码器,此外CUP还配置有一个RLC编码器。本实施例中,SPP和CUP通过共用4个ZC编码器以及4个SC编码器,能够简化EBCOT编码模块742的硬件结构,进一步地,能够保证EBCOT编码模块742中各个编码器的利用率。
第二通道612也可以称为lazy pass,其可以包括SPP、MRP以及CUP,其中,SPP可以包括或配置有4个ZC编码器以及4个SC编码器,MRP可以包括或配置有4个MRC编码器,CUP可以包括或配置有1个RLC编码器、4个ZC编码器以及4个SC编码器。
EBCOT编码模块742通过所述第一通道611和所述第二通道612对码块的位平面进行编码时,所述第一通道611可以同时对一个位平面进行SPP、MRP扫描编码,或者对位平面进行CUP扫描编码,所述第二通道612可以同时对一个位平面进行SPP、MRP、CUP扫描编码。
即通过第一通道611和第二通道612并行处理码块位平面,能够有效提高编码效率。
当然,可替代地,在其他实施例中,第一通道611和第二通道612还可以包括或配置有其它数量的ZC编码器、SC编码器以及MRC编码器,本申请对此不做具体限定。
综上所述,本申请实施例中,通过第一通道611和第二通道612可以并行的对码块的位平面进位平面编码,能够有效提高编码效率。此外,分别配置所述第一通道611中的编码器和所述第二通道612中的编码器,能够简化EBCOT编码模块742的硬件结构,进一步地,能够保证EBCOT编码模块742中各个编码器的利用率。
继续参见图3,位平面编码单元61还可以包括分发单元613。
分发单元613可以用于将编码通道的输出结果分配给相应的算术编码器和其它单元模块。例如,分发单元613可以用于将第一通道611的上下文信息和码流分配给第一算术编码器621,并将第二通道612的上下文信息和码流分配给第二算术编码器622,和/或将第二通道612的输出的上下文信息和码流直接分配给码流组织单元63。
码流组织单元63可以用于对算术编码单元62输出的码流进行组织,并将组织后的码流输出给存储指令生成单元651,以便存储指令生成单元651生成存储指令,并基于该存储指令将码流组织单元63输出的码流存储至第三存储器652和第四存储器653。
在本申请中,最高位平面以及最高位平面之下的k个平面可以通过第一通道611进行位平面编码,剩余的位平面可以通过第二通道622进行位平面编码。其中k可以是小于n的任一正整数,n是码块对应的位平面的总数。
最高位平面可以是码块(block)中所有系数组成的第一个非全0的比特平面。例如,根据标准规定的选择编码模式(select encode mode),前4个位平面用于算术编码的概率会向后面的位平面传递,后面的位平面用于算术编码的概率不传递,本申请可以利用这个特点为前4位平面和后续位平面分别部署一套硬件,并行处理码块的位平面,以提高编码速率。即上述k等于3。当然,本申请并不限于此。在其他实施例中,所述k也可以为其它正整数。
图4是本申请的位平面和编码通道之间的关系的示意性结构图。
如图4所示,第n-4个位平面至第n-1个位平面通过第一通道611进行位平面编码,第n-5个位平面至第0个位平面通过第二通道612进行位平面编码。由于第一通道611和第二通道612分别对应算术编码单元62中的不同编码器,因此,能够对不同位平面进行不同的算术编码。
具体而言,第一通道611对应的第一算术编码器621的概率是逐个位平面逐个通道(pass)传递的,其编码效率好;第二通道612对应的第二算术编码器622的概率是每个位平面每个pass间都是相互独立的,即通过部署多路并行位平面编码器+算术编码器来大大提升编码速度,其编码效率较差(由于概率不传递,第二算术编码器622的码流的压缩率小于第一算术编码器621)。
在本申请实施例中,通过逐个位平面和逐个通道的传递重要的(例如前4个)位平面的用于算术编码的概率,不传递不重要的位平面(例如后面的位平面)用于算术编码的概率,能够同时兼顾编码速度和编码效率。
需要说明的是,上述数字仅为一种示例,不应理解为对本申请的限制。换句话说,第一通道611可以用于编码预设数量的位平面,第二通道612可以用于编码除预设数量的位平面之外的平面,其中预设数量的位平面之间用于算术编码的概率发送传递,其它位平面之间的用于算术编码概率不发生传递。
请继续参见图4,所述算术编码单元62可以包括第一算术编码器621和第二算术编码器622。其中,所述第一算术编码器621可以被配置为其用于算术编码的概率是逐个位平面逐个通道(例如按照SPP、MRP以及CUP的顺序)传递的,其编码效率高,但是编码速度过慢。所述第二编码器622可以被配置为其用于算术编码的概率在每个位平面以及每个通道(例如SPP、MRP以及CUP)间都是相互独立的,由此可以通过部署多路并行位平面编码器+算术编码器提升其编码速度,但其编码效率较差(因为概率不传递,码流的压缩率没有所述第一算术编码器612的压缩率大)。
换句话说,所述第一算术编码器621配置为由所述第一通道611编码的多个位平面之间传递用于算术编码的概率,且所述第一通道611中的通道之间传递用于算术编码的概率;所述第二算术编码器622配置为由所述第二通道612编码的多个位平面之间用于算术编码的概率相互独立,且所述第二通道612中的通道之间的用于算术编码的概率相互独立。例如,所述第一算术编码器621配置为由所述第一通道611进行位平面编码的前4个位平面用于算术编码的概率传递;所述第二算术编码器622配置为由所述第二通道612进行位平面编码的后面的位平面用于算术编码的概率不传递。
本申请实施例中,通过结合所述第一算术编码器611和所述第二算术编码器612,形成并行编码器结构(即所述算术编码器62),以同时兼顾编码速度和编码效率。
在一些实施例中,tier-1编码单元6还可以设置有一个或多个缓存(片上缓存),用于存储各个单元模块输出的编码结果。
例如,分别为第一通道611和第二通道612分别设置缓存(片上缓存),用于存储经所述第一通道611和所述第二通道612编码后的码流。
请继续参见图4,分发单元613内部或输出端可以还可以设置有第一通道611对应的xP先进先出(First Input First Output,FIFO)存储器,xP FIFO存储器可以是第一通道611中的SPP编码器对应的缓存,也可以是第一通道611中的CUP编码器对应的缓存,用于缓存SPP编码器和CUP编码器的编码结果,即SPP编码器和CUP编码器输出的上下文和判决信息。如前文所述,由于同一时刻所述第一通道611用作SPP+MRP或者CUP,因此SPP编码器和CUP编码器可以共用一个缓存,进而不仅能够有效简化tier-1编码单元6结构,而且提高了缓存的利用率。
又例如,分发单元613内部或输出端可以还可以设置有第一通道611中MRP编码器对应的MR随机存取器(random access memory,RAM),用于缓存MRP编码器的编码结果。
需要说明的是,为MRP编码器设置对应的MR RAM,可以有效控制分发单元613的体积,避免分发单元613体积过大。当然,本申请实施例并不限于此,在其他可替代实施例中,也可以为MRP编码器设置对应的FIFO,以便同时读写MRP编码器的编码结果。具体地,可以根据实际需要确定缓存的类型。
即上文或下文中涉及的FIFO可以替换为RAM,或者说上文或下文中涉及的RAM也可以替换为FIFO,本申请对此不做具体限定。
又例如,分发单元613内部或输出端可以还可以设置有第二通道612中MRP编码器对应的MP RAM,用于缓存MRP编码器的编码结果。进一步地,MP RAM还可以用于缓存第二通道612中SPP编码器的编码结果。
又例如,分发单元613内部或输出端可以还可以设置有第二通道612中CUP编码器对应的CP FIFO,用于缓存CUP编码器的编码结果。
继续参见图4,分发单元613还可以包括原始编码器6131,与第二通道612中的SPP编码器相连,用于接收第二通道612中的SPP编码器输出的码流,并对第二通道612中的SPP编码器输出的码流进行原始(raw)编码后,输出至码流组织单元63。例如,原始编码器6131对第二通道612中的SPP编码器输出的码流进行补位和/或打包后,发送至码流组织单元63,以便码流组织单元63对一个码块对应的多个码流进行码流组织。
位平面编码指SPP/MRP/CUP编码,位平面扫描、编码的结果是上下文和判决信息。位平面编码单元61将编码结果发送至算术编码单元62或者原始编码器(raw coder)6131,由算术编码单元62或者原始编码器6131进行编码。对于每个位平面,如图5所示,位平面编码单元61可以以每4行为单位将其划分为一个条带(stripe),按照从上到下的顺序扫描条带,按照从左到右的顺序扫描每个条带内的比特,从最高位平面开始,依次编码到最低位平面。
具体地,首先进行SPP扫描、编码,然后进行MRP扫描、编码,最后进行CUP扫描、编码,为了加快速度,可以部署三通道(SPP、MRP和CUP)并行扫描、编码。
SPP、MRP和CUP并行扫描、编码时,均可以基于位平面的显著性信息等编码状态,以及待扫描系数的邻域系数的状态进行编码,其中,对待扫描系数进行扫描编码后得到的编码结果即为SPP编码器、MRP编码器和CUP编码器输出的上下文和判决信息。待扫描的系数可以通过其周围的8个邻域的情况就确定这个系数的邻域系数的状态。其中,这8个邻域可以被分为3类:水平(h),垂直(v)和对角线(d)。例如,如图6所示,假设系数P为待扫描系数,则系数P的8个邻域分别为D0、V0、D1、H0、H1、D2、V1以及D3。
需要注意的是,在SPP编码通道中如果系数变为显著,则显著状态立即更新为1。因此,SPP、MRP和CUP并行扫描、编码时,MRP和CUP扫描时间需要和SPP的扫描时间之间存在间隔。
图7是本申请的SPP、MRP和CUP的扫描窗口的示例。
如图7所示,以条带的一列为一个扫描窗口,SPP扫描第T+1个扫描窗口中的p4、p5、p6和p7时,MRP和CUP扫描第T个扫描窗口中的p1、p2、p3和p4,即MRP和CUP的扫描窗口T落后于SPP的扫描窗口T+1,以确保MRP和CUP进行扫描时,待扫描的系数已在SPP编码通道中进行了更新,进而保证MRP和CUP编码的正确性。
在图7所示的扫描窗口中,SPP、MRP和CUP并行扫描、编码时,其扫描、编码顺序为p0、p1、p2、p3、p4、p5、p6、p7,…。其中p1的编码需要获知p0的重要性信息(p0为p1的顶上邻居),p2的编码需要获知p1的重要性信息,依次类推,可以实现4bit/cycle速率的位平面编码,其逻辑最长的路径为p0-p3。
SPP、MRP和CUP均以条带的一列为一个扫描窗口,在一个扫描窗口内可以实现对4个系数(也称为比特)的扫描、编码。
但是由于在p1扫描结束时,已经可以确定p4的邻居,因此p4是可以和p2同时开始扫描编码的;类似地,在p2扫描结束时,可以确定p5的邻居,p5可以和p3同时开始扫描编码。
由此可见,通过设置SPP、MRP和CUP的扫描窗口包括的系数的数量(例如6个),可以在不改变逻辑最长路径的情况下,进一步提高位平面编码速率(6bit/cycle)。
图8是本申请的SPP、MRP和CUP的扫描窗口的另一示例。
如图8所示,由此,以条带的6个系数(也称为比特)为一个扫描窗口,以第T个扫描窗口为例,在p1扫描结束时,可以同时确定p4的邻居,进而可以同时对p4和p2进行扫描、编码;类似地,在p2扫描结束时,可以确定p5的邻居,进而可以同时对p5和p3进行扫描、编码。由此,实现6bit/cycle速率的位平面编码,其逻辑最长的路径仍然为p0-p3。
上文结合图3至图8,对本申请实施例提供的编码器7的结构进行了举例说明。下文结合图9,对本申请实施例提供的解码器8的结构进行举例说明。
如图9所示,解码器8可以包括以下电路中的一种或多种:码流读取电路81,码流解析电路82,解码电路83,逆量化电路84,逆变换电路85,输出电路86。
码流读取电路81可用于读取待解码的码流。该码流读取电路81例如可以利用高级可扩展接口(advanced eXtensible interface,AXI)从外部存储器(如内存)中读取该待解码的码流。
码流解析电路82也可称为码流头部解析电路(header parser)。码流解析电路82可以解析码流中的各种类型的头部信息,并从中分离出与解码相关的参数和码流数据,供后级的解码电路83使用。
解码电路83可以包括一个解码单元,也可以包括并行的多路解码单元(具体数量可以根据实际需要配置,如可以配置并行地8路解码单元)。解码电路83中的每个解码单元可以独立地对一个码块进行解码。
在某些实施例中,在解码电路83之前,还可以设置预处理电路。预处理电路可用于将码流解析电路82输出的解码参数、码流数据等分配给并行的多路解码单元。
在某些实施例中,在解码电路83之后,还可以设置后处理电路。后处理电路可用于对解码电路83输出的解码数据进行重新组织,并将组织好的数据输出给后级电路。
逆量化电路84可用于对解码电路83解码得到的数据进行逆量化。
逆变换电路85可用于对逆量化电路84输出的数据进行逆变换。逆变换的方式可以是离散小波逆变换。
输出电路86可用于将逆变换电路85输出的数据写入到外部的存储器中。例如,可以通过AXI将逆变换电路85输出的数据写入到外部的存储器中。
在某些实施例中,解码器8还可以包括软件配置接口。通过该软件配置接口可以配置或改变解码器8内部的寄存器中的信息,从而控制解码器8的解码方式。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (35)
1.一种编码器,其特征在于,包括:
Tier-1编码单元,对待编码图像的图像块的码块进行tier-1编码,得到所述码块的码流;
其中,所述Tier-1编码单元包括:
位平面编码单元,所述位平面编码单元包括第一通道和第二通道,所述第一通道和所述第二通道用于对所述码块的多个位平面并行地进行位平面编码,得到所述码块的码流;
算术编码单元,用于对所述码块的码流进行算术编码,得到目标码流。
2.根据权利要求1所述的编码器,其特征在于,所述第一通道用于对所述多个位平面中的最高位平面以及最高位平面之下的3个平面进行位平面编码,所述第二通道用于对所述多个位平面中除最高位平面以及最高位平面之下的3个平面之外的平面进行位平面编码。
3.根据权利要求1或2所述的编码器,其特征在于,所述第一通道和所述所述第二通道均配置有显著性传播通道SPP、幅度细化通道MRP以及清除通道CUP。
4.根据权利要求3所述的编码器,其特征在于,所述第一通道中的SPP和MRP用于并行地进行扫描和编码,所述第一通道中的CUP用于单独地扫描和编码,且所述第二通道中SPP、MRP和CUP用于并行地进行扫描和编码。
5.根据权利要求3所述的编码器,其特征在于,所述第一通道配置有1个游程长度编码RLC编码器、4个幅度细化编码MRC编码器、4个显著性编码ZC编码器以及4个符号编码SC编码器,其中所述第一通道中的SPP和CUP共用所述4个ZC编码器以及4个SC编码器。
6.根据权利要求3所述的编码器,其特征在于,所述第一通道中的SPP、MRP和CUP以6个比特为单位进行扫描和编码,所述第二通道中的SPP、MRP和CUP以6个比特为单位进行扫描和编码。
7.根据权利要求3所述的编码器,其特征在于,所述位平面编码单元还包括:
分发单元,用于将所述第一通道输出的编码结果和所述第二通道输出的编码结果分发至所述算术编码单元。
8.根据权利要求7所述的编码器,其特征在于,所述分发单元还包括:
原始编码器,所述原始编码器用于对所述第二通道中的SPP输出的编码结果和MRP输出的结果进行打包。
9.根据权利要求7所述的编码器,其特征在于,所述分发单元包括:
第一缓存,用于缓存所述第一通道输出的编码结果;
第二缓存,用于缓存所述第二通道输出的编码结果。
10.根据权利要求9所述的编码器,其特征在于,所述第一缓存包括:
第三缓存,用于缓存所述第一通道中的SPP和CUP输出的编码结果;
第四缓存,用于缓存所述第一通道中的MRP输出的编码结果。
11.根据权利要求9所述的编码器,其特征在于,所述第二缓存包括:
第五缓存,用于缓存所述第二通道中的MRP输出的编码结果;
第六缓存,用于缓存所述第二通道中的CUP输出的编码结果。
12.根据权利要求11所述的编码器,其特征在于,所述位平面编码单元还包括:
码流组织单元,所述码流组织单元用于对所述第五缓存输出的编码结果和由所述第六缓存输出的并经过算术编码的编码结果进行组织。
13.根据权利要求12所述的编码器,其特征在于,所述码流组织单元包括:
第七缓存,用于缓存经过所述码流组织单元组织后的码流。
14.根据权利要求1至13中任一项所述的编码器,其特征在于,所述算术编码单元包括:
第一算术编码器,用于根据所述第一通道输出的上下文信息对所述第一通道输出的码流进行算术编码;
第二算术编码器,用于根据所述第二通道输出的上下文信息对所述第二通道输出的码流进行算术编码。
15.根据权利要求14所述的编码器,其特征在于,所述第一算术编码器配置为由所述第一通道进行位平面编码的前4个位平面用于算术编码的概率传递;所述第二算术编码器配置为由所述第二通道进行位平面编码的后面的位平面用于算术编码的概率不传递。
16.根据权利要求1至15中任一项所述的编码器,其特征在于,所述编码器还包括:
后处理模块,用于存储经由所述码块经过编码形成的码流。
17.根据权利要求1至16中任一项所述的编码器,其特征在于,所述编码器还包括:
预处理模块,用于将码块的小波系数分解成多个位平面,并将分解后的多个位平面重新组织后发送至所述位平面编码单元。
18.一种编解码系统,其特征在于,包括:
根据权利要求1至17中任一项所述的编码器;
以及对应所述编码器的解码器。
19.一种编码方法,其特征在于,包括:
通过第一通道和第二通道对待编码图像的图像块的码块的多个位平面并行地进行位平面编码,得到所述码块的码流;
对所述码块的码流进行算术编码,得到目标码流。
20.根据权利要求19所述的方法,其特征在于,所述通过第一通道和第二通道对待编码图像的图像块的码块的多个位平面并行地进行位平面编码,包括:
通过所述第一通道对所述多个位平面中的最高位平面以及最高位平面之下的3个平面进行位平面编码;
通过所述第二通道对所述多个位平面中除最高位平面以及最高位平面之下的3个平面之外的平面进行位平面编码。
21.根据权利要求19或20所述的方法,其特征在于,所述第一通道和所述所述第二通道均配置有显著性传播通道SPP、幅度细化通道MRP以及清除通道CUP。
22.根据权利要求21所述的方法,其特征在于,所述第一通道中的SPP和MRP用于并行地进行扫描和编码,所述第一通道中的CUP用于单独地扫描和编码,且所述第二通道中SPP、MRP和CUP用于并行地进行扫描和编码。
23.根据权利要求21所述的方法,其特征在于,所述第一通道配置有1个游程长度编码RLC编码器、4个幅度细化编码MRC编码器、4个显著性编码ZC编码器以及4个符号编码SC编码器,其中所述第一通道中的SPP和CUP共用所述4个ZC编码器以及4个SC编码器。
24.根据权利要求21所述的方法,其特征在于,所述第一通道中的SPP、MRP和CUP以6个比特为单位进行扫描和编码,所述第二通道中的SPP、MRP和CUP以6个比特为单位进行扫描和编码。
25.根据权利要求21所述的方法,其特征在于,所述方法还包括:
将所述第一通道输出的编码结果和所述第二通道输出的编码结果分发至所述算术编码单元。
26.根据权利要求21所述的方法,其特征在于,所述方法还包括:
对所述第二通道中的SPP输出的编码结果和MRP输出的结果进行打包。
27.根据权利要求26所述的方法,其特征在于,所述方法包括:
将所述第一通道输出的编码结果缓存至第一缓存;
将所述第二通道输出的编码结果缓存至第二缓存。
28.根据权利要求27所述的方法,其特征在于,所述第一缓存包括第三缓存和第四缓存;
其中,所述将所述第一通道输出的编码结果缓存至第一缓存,包括:
将缓存所述第一通道中的SPP和CUP输出的编码结果缓存至所述第三缓存;
将所述第一通道中的MRP输出的编码结果缓存至所述第四缓存。
29.根据权利要求28所述的方法,其特征在于,所述第二缓存包括第五缓存和第六缓存:
其中,所述将所述第二通道输出的编码结果缓存至第二缓存,包括:
将所述第二通道中的MRP输出的编码结果缓存至所述第五缓存;
将所述第二通道中的CUP输出的编码结果缓存至所述第六缓存。
30.根据权利要求29所述的方法,其特征在于,所述方法还包括:
对所述第五缓存输出的编码结果和由所述第六缓存输出的并经过算术编码的编码结果进行组织。
31.根据权利要求30所述的方法,其特征在于,所述方法包括:
缓存经过所述码流组织单元组织后的码流。
32.根据权利要求19至31中任一项所述的方法,其特征在于,所述方法还包括:
根据所述第一通道输出的上下文信息,利用第一算术编码器对所述第一通道输出的码流进行算术编码;
根据所述第二通道输出的上下文信息,利用第二算术编码器对所述第二通道输出的码流进行算术编码。
33.根据权利要求32所述的方法,其特征在于,所述第一算术编码器配置为由所述第一通道进行位平面编码的前4个位平面用于算术编码的概率传递;所述第二算术编码器配置为由所述第二通道进行位平面编码的后面的位平面用于算术编码的概率不传递。
34.根据权利要求19至33中任一项所述的方法,其特征在于,所述方法还包括:
存储经由所述码块经过编码形成的码流。
35.根据权利要求19至34中任一项所述的方法,其特征在于,所述通过第一通道和第二通道对待编码图像的图像块的码块的多个位平面并行地进行位平面编码之前,所述方法还包括:
将码块的小波系数分解成多个位平面,并将分解后的多个位平面重新组织后发送至所述位平面编码单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/083781 WO2020215193A1 (zh) | 2019-04-23 | 2019-04-23 | 编码器、编码系统和编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111316645A true CN111316645A (zh) | 2020-06-19 |
Family
ID=71159516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005065.6A Pending CN111316645A (zh) | 2019-04-23 | 2019-04-23 | 编码器、编码系统和编码方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111316645A (zh) |
WO (1) | WO2020215193A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953990A (zh) * | 2020-07-07 | 2020-11-17 | 西安万像电子科技有限公司 | 编码方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398116A (zh) * | 2001-07-12 | 2003-02-19 | 三洋电机株式会社 | 图像编码设备与图像编码方法 |
CN1671177A (zh) * | 2004-03-19 | 2005-09-21 | 北京大学 | Jpeg2000分数位平面编码方法及电路 |
CN101848311A (zh) * | 2010-02-21 | 2010-09-29 | 哈尔滨工业大学 | 基于Avalon总线JPEG2000的EBCOT编码器 |
US20110052087A1 (en) * | 2009-08-27 | 2011-03-03 | Debargha Mukherjee | Method and system for coding images |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1260683C (zh) * | 2004-04-07 | 2006-06-21 | 西安交通大学 | 一种0冗余编码时钟的位平面编码器的vlsi实现方法 |
CN1241391C (zh) * | 2004-04-07 | 2006-02-08 | 西安交通大学 | Jpeg2000列关联模式下位平面编码器的通道并行实现方法 |
US7352903B2 (en) * | 2004-08-17 | 2008-04-01 | Pegasus Imaging Corporation | Methods and apparatus for implementing JPEG 2000 encoding operations |
US7760948B1 (en) * | 2006-10-13 | 2010-07-20 | Xilinx, Inc. | Parallel coefficient bit modeling |
CN102790882B (zh) * | 2012-07-25 | 2014-10-22 | 南京信息工程大学 | 一种遥感图像的编码方法 |
-
2019
- 2019-04-23 CN CN201980005065.6A patent/CN111316645A/zh active Pending
- 2019-04-23 WO PCT/CN2019/083781 patent/WO2020215193A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1398116A (zh) * | 2001-07-12 | 2003-02-19 | 三洋电机株式会社 | 图像编码设备与图像编码方法 |
CN1671177A (zh) * | 2004-03-19 | 2005-09-21 | 北京大学 | Jpeg2000分数位平面编码方法及电路 |
US20110052087A1 (en) * | 2009-08-27 | 2011-03-03 | Debargha Mukherjee | Method and system for coding images |
CN101848311A (zh) * | 2010-02-21 | 2010-09-29 | 哈尔滨工业大学 | 基于Avalon总线JPEG2000的EBCOT编码器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953990A (zh) * | 2020-07-07 | 2020-11-17 | 西安万像电子科技有限公司 | 编码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020215193A1 (zh) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7289677B2 (en) | Reversible embedded wavelet system implementation | |
CN101569170B (zh) | 编码设备和编码方法以及解码设备和解码方法 | |
US6229927B1 (en) | Reversible embedded wavelet system implementation | |
US20210258581A1 (en) | Method and apparatus for image compression | |
US7110609B2 (en) | System and method for progressively transform coding digital data | |
Taubman et al. | Embedded block coding in JPEG 2000 | |
US6546143B1 (en) | Efficient wavelet-based compression of large images | |
JPH0927912A (ja) | 符号化装置、符号化方法及び埋め込み符号ストリームの利用方法 | |
JPH0927752A (ja) | 符号化装置、符号化方法、復号方法及び復号装置 | |
US5737448A (en) | Method and apparatus for low bit rate image compression | |
US9531915B2 (en) | Image encoding system and method thereof | |
GB2325584A (en) | Reversible embedded wavelet transform system implementation | |
Dikbas et al. | Lossless image compression using adjustable fractional line-buffer | |
CN111316645A (zh) | 编码器、编码系统和编码方法 | |
Tsern et al. | Video compression for portable communication using pyramid vector quantization of subband coefficients | |
Hoon Son et al. | An embedded compression algorithm integrated with Motion JPEG2000 system for reduction of off-chip video memory bandwidth | |
CN111264062A (zh) | 编码器、编码系统和编码方法 | |
GB2341034A (en) | Reversible wavelet system implementation | |
Creusere | Fast embedded video compression using cache-based zerotree processing | |
Lossless | Compress System couple crowd lax lena man woman1 woman2 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200619 |
|
WD01 | Invention patent application deemed withdrawn after publication |