二进制算术编码结构、装置、方法及存储介质与流程

未命名 08-15 阅读:98 评论:0


1.本技术涉及视频编码技术领域,特别是涉及一种二进制算术编码结构、装置、方法及存储介质。


背景技术:

2.cabac(context-based adaptive binary arithmatic coding,上下文自适应二进制算术编码)最早在h.264中引入,相较于cavlc(context-based adaptive variable length coding,上下文自适应变长编码),cabac大致能带来5%~14%的性能提升。cabac主要分为三个过程:(1)将待编码的上下文语法信息采用二进制的方式表示;(2)选择合适的概率模型;(3)二进制算术编码。
3.其中,二进制算术编码中涉及的编码器分为常规编码器和旁路编码器,设计者需要根据上下文语法信息所属种类来选择常规编码器还是旁路编码器。在h.264和h.265中,上下文语法信息数量较少,计算逻辑主要是查找表操作,在满足芯片设计的带宽、ppa(power performance area,功耗性能面积)等要求的同时,一个时钟周期能同时处理4个二进制化后的语法信息的bin(binval,比特位)值,因此cabac输出码流速率能达到预期要求。而在h.266中,上下文语法信息数量大大增加,计算逻辑由查找表变成线性逻辑,传统的cabac的二进制算术编码结构的输出码流速率很难达到预期要求。
4.因此,如何提高h.266中cabac编码速率,是本领域技术人员亟待解决的技术问题。


技术实现要素:

5.为解决上述技术问题,本技术提供一种二进制算术编码结构,能够提高cabac编码速率。本技术还提供一种二进制算术编码装置、方法及存储介质,具有相同的技术效果。
6.本技术的第一个目的为提供一种二进制算术编码结构。
7.本技术的上述申请目的一是通过以下技术方案得以实现的:
8.一种二进制算术编码结构,包括:
9.沿第一方向逐级连接的m个第一编码单元,m为大于1的正整数;
10.以及第二编码单元,所述第二编码单元与沿所述第一方向排列的第m个所述第一编码单元连接;
11.所述第一编码单元包括选择器以及分别与所述选择器连接的第一常规编码器和旁路编码器;所述第二编码单元包括第二常规编码器;
12.所述选择器,用于根据接收到的待编码信息,确定所述第一编码单元中的输入单元,所述输入单元为所述选择器、所述第一常规编码器或所述旁路编码器;
13.沿所述第一方向上的所有所述第一编码单元内的所述输入单元和所述选择器,以及输出单元依序形成所述待编码信息的目标编码路径,所述输出单元为所述第二常规编码器或者沿所述第一方向排列的第m个所述第一编码单元中的旁路编码器。
14.优选地,所述二进制算术编码结构中,沿所述第一方向,第n-1个所述第一编码单
元中的所述选择器分别与第n个所述第一编码单元中的所述第一常规编码器、所述旁路编码器和所述选择器连接,n∈m;
15.第m个所述第一编码单元中的所述选择器与所述第二常规编码器连接。
16.优选地,沿所述第一方向上第一个所述输入单元为第一个所述第一编码单元中的第一常规编码器或旁路编码器。
17.优选地,所述二进制算数编码结构包括2+2*m*(m-1)个编码路径,所述2+2*m*(m-1)个编码路径包括所述目标编码路径。
18.本技术的第二个目的为提供一种二进制算术编码装置。
19.本技术的上述申请目的二是通过以下技术方案得以实现的:
20.一种二进制算术编码装置,包括上述任一项所述的二进制算术编码结构。
21.优选地,所述二进制算术编码装置具有多种预设编码模式,所述多种预设编码模式分别对应多个编码路径,多个所述编码路径包括目标编码路径;所述装置还包括编码模式确定模块;
22.所述编码模式确定模块,用于根据所述多种预设编码模式,对二进制化后的语法信息进行划分,得到待编码信息,并根据所述待编码信息确定对应的目标编码路径;
23.所述二进制算术编码结构,用于获取所述待编码信息,在对应所述目标编码路径中对所述待编码信息进行二进制算术编码,得到目标编码信息。
24.优选地,所述预设编码模式根据一个时钟周期内,所述二进制算术编码结构能够处理的二进制化后的语法信息的bin值数量,以及所述二进制算术编码结构中常规编码器和旁路编码器的编码顺序进行划分。
25.本技术的第三个目的为提供一种二进制算术编码方法。
26.本技术的上述申请目的三是通过以下技术方案得以实现的:
27.一种二进制算术编码方法,所述方法应用于上述任一项的所述二进制算术编码装置,所述方法包括:
28.获取二进制化后的语法信息;
29.根据多种预设编码模式,对所述二进制化后的语法信息进行划分,得到多个待编码信息以及多个所述待编码信息分别对应的编码模式;
30.根据多个所述待编码信息分别对应的编码模式,确定多个所述待编码信息对应的目标编码路径;
31.在对应所述目标编码路径中对多个所述待编码信息进行二进制算术编码,得到目标编码信息。
32.优选地,所述二进制算术编码方法中,所述根据多种预设编码模式,对所述二进制化后的语法信息进行划分,得到多个待编码信息,包括:
33.根据多种预设编码模式将二进制化后的语法信息的bin序列进行排列划分,得到所述多个待编码信息。
34.优选地,所述二进制算术编码方法中,所述在对应所述目标编码路径中对多个所述待编码信息进行二进制算术编码,得到目标编码信息,包括:
35.依次获取所述待编码信息,并在每获取到所述待编码信息的情况下,在对应所述目标编码路径中对所述待编码信息进行二进制算术编码,得到目标编码信息,直到所述待
编码信息包括终止编码语法时,将所有所述目标编码信息打包输出。
36.本技术的第四个目的为提供一种计算机存储介质。
37.本技术的上述申请目的四是通过以下技术方案得以实现的:
38.一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述二进制算术编码方法中任一所述方法。
39.上述技术方案通过在二进制算术编码结构中设置沿第一方向逐级连接的m个第一编码单元以及第二编码单元。第二编码单元与沿第一方向排列的第m个第一编码单元连接;第一编码单元包括选择器以及分别与选择器连接的第一常规编码器和旁路编码器;第二编码单元包括第二常规编码器;选择器,用于根据接收到的待编码信息,确定第一编码单元中的输入单元,输入单元为选择器、第一常规编码器或旁路编码器;沿第一方向上的所有第一编码单元内的输入单元和选择器,以及输出单元中的第二常规编码器或者沿第一方向排列的第m个第一编码单元中的旁路编码器,依序形成待编码信息的目标编码路径。即上述二进制算术编码结构通过输入单元的选择,结合选择器和输出单元形成了流水结构式的编码路径,由此灵活支持多种编码方式,例如能够最大同时编码m+1个常规语法信息或者2n*m个旁路语法信息,大幅提升了vpu(video processing unit,视频处理单元)芯片的编码速率。同时,所述二进制算术编码结构可重复利用常规编码器以及旁路编码器,能够简化cabac中二进制算术编码结构的硬件资源开销。
40.此外,所述二进制算术编码结构采用逐级流水实现,具备灵活的编码方式,可以根据cabac二进制化后的语法信息bin序列的排列顺序,选择最优的编码模式,可以完全匹配编码计算效率,而不会影响系统整体性能。
附图说明
41.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例中提供的一种二进制算术编码结构的一示意图;
43.图2为本技术实施例中提供的一种二进制算术编码结构的另一示意图;
44.图3为本技术实施例中提供的一种二进制算术编码装置的结构示意图;
45.图4为本技术实施例中提供的一种二进制算术编码方法的流程示意图。
具体实施方式
46.为了使本领域的技术人员更好地理解本技术中的技术方案,下面将对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.应当理解,本技术中如若使用了“系统”、“装置”、“单元”和/或“模块”,仅是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。
48.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本技术的描述中,“多个”、“若干个”的含义是两个或两个以上,除非另有明确具体的限定。
49.本技术中如若使用了流程图,则该流程图是用来说明根据本技术的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
50.还需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
51.如图1所示,本技术实施例提供一种二进制算术编码结构,包括:沿第一方向逐级连接的m个第一编码单元1,m为大于1的正整数;以及第二编码单元2,第二编码单元2与沿第一方向排列的第m个第一编码单元1连接;
52.第一编码单元1包括选择器以及分别与选择器连接的第一常规编码器和旁路编码器。
53.示例性地,选择器共n个,如图1中的sel1~seln,第一常规编码器共m个,如图1中的re1~rem,旁路编码器共z个,如图1中的by1~byz。
54.在单个第一编码单元1内可以包括若干个旁路编码器和若干个第一常规编码器,单个第一编码单元内旁路编码器以及第一常规编码器的数量可以根据硬件消耗以及支持的视频编解码协议标准进行自定义设定。
55.示例性地,n、m和z的数量可以至少部分相同,也可以不相同。
56.示例性地,单个第一编码单元1内可以包括一个第一旁路编码器、一个第一常规编码器和一个选择器。
57.第二编码单元2包括第二常规编码器;其中,第二常规编码器共1个,如图1中的re(m+1)。
58.在其他示例中,第一编码单元1中的选择器、第一常规编码器和旁边编码器的数量也可以不一致,第二编码单元2中可以包括多个第二常规编码器。
59.其中,上述选择器,用于根据接收到的待编码信息,确定第一编码单元1中的输入单元,输入单元为选择器、第一常规编码器或旁路编码器;
60.沿第一方向上的所有第一编码单元1内的输入单元和选择器以及输出单元可以依序形成待编码信息的目标编码路径。
61.该输出单元可以为第二常规编码器或者沿第一方向排列的第m个第一编码单元1中的旁路编码器,该输出单元可以由沿第一方向排列的第m个选择器确定。
62.需要说明的是,第一方向可以是二进制编码的执行方向,也可以是靠近第二常规编码器的方向。第一编码单元1和第二编码单元2主要用于对所述二进制算术编码结构的排列顺序进行描述,其仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多
个第一编码单元1可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各单元相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,单元的间接耦合或通信连接,可以是电性的或其它形式的。
63.本技术中的二进制算术编码结构可以应用于h.266视频编解码标准中,该二进制算数编码结构可以为cabac编码器。其中的常规编码器用于常规编码模式,旁路编码器用于符号的快速编码。常规编码器是cabac的编码核心,其可以编码一个比特位,即用于对1个二进制化后的语法信息的bin值进行二进制算术编码。
64.而实际上有些语法元素在二值化后选择的可能不是上述的常规编码,而是旁路编码。旁路编码器能够用于对1至2n个二进制化后的语法信息的bin值进行二进制算术编码,其中,n为正整数。n的值可以根据旁路编码器的硬件条件确定,例如,n可以取3。
65.选择器根据接收到的待编码信息,确定第一编码单元1中的输入单元,可以实现第一编码单元1的输入和/或输出的选择。
66.示例性地,上述选择器可以用于选择所在第一编码单元1中的输入单元。
67.示例性地,上述选择器可以用于选择将所在第一编码单元1的输出端与下一个第一编码单元1中哪一个输入单元连接。
68.示例性地,上述选择器还可以在所在第一编码单元1完成编码后,触发下一个第一编码单元进行编码。
69.在一些实施例中,选择器在执行根据接收到的待编码信息,确定第一编码单元1中的输入单元时的其中一种实现方式,具体为:根据接收到的待编码信息,选择同一级的第一编码单元1中的第一常规编码器、旁路编码器或者选择器作为同一级的编码单元1的输入单元。例如,在一第一编码单元1中选择器可以作为输入单元。
70.或者,在一些可选示例中,选择器也可以根据接收到的待编码信息,将当前选择器的输入端连通当前级的第一编码单元1中的第一常规编码器或者旁路编码器的输出,或者当前选择器也可以将其输入端连通前一级的第一编码单元1中的选择器的输出。当前选择器的输出端则可以选择与后一级的第一编码单元1中的第一常规编码器、旁路编码器或选择器的输入连通。
71.在另一些可选示例中,选择器也可以根据接收到的待编码信息,将当前选择器的输入端连通当前级的第一编码单元1中的第一常规编码器的输出,将当前选择器的输出端与当前级的第一编码单元1中的旁路编码器的输入连接。
72.还需要说明的是,沿第一方向排列的第m个第一编码单元1中的选择器,还可以选择将其输入端连通当前级的第一编码单元1中的第一常规编码器的输出,或者当前选择器的输入端还可以连通前一级的第一编码单元1中的选择器的输出。当前选择器则可以选择与第二编码单元2中的第二常规编码器的输入连通。
73.沿第一方向逐级连接的第一编码单元1和第二编码单元2,通过输入单元的选择,结合选择器和输出单元形成了逐级流水结构式的编码路径。
74.上述构成的逐级流水结构包括多个编码路径,待编码信息可以通过cabac二进制化后的语法信息得到,其可以包括cabac二进制化后的语法信息的部分或全部的bin序列,根据m个选择器的选择结果,沿第一方向上的所有第一编码单元1内的输入单元和选择器,以及第二常规编码器或者沿第一方向排列的第m个第一编码单元1中的旁路编码器,可以依
序形成待编码信息的目标编码路径。
75.故上述实施例中的所述二进制算术编码结构能够灵活支持多种编码方式,例如最大同时编码m+1个常规语法信息的bin值,或者2n*m个旁路语法信息的bin值,大幅提升了vpu芯片的编码速率。同时,所述二进制算术编码结构能够可重复利用常规编码器以及旁路编码器,简化cabac中二进制算术编码结构的硬件资源开销。
76.此外,所述二进制算术编码结构采用逐级流水实现,具备灵活的编码方式,可以根据cabac二进制化后的语法信息bin序列的排列顺序,选择最优的编码模式,可以完全匹配编码计算效率,而不会影响系统整体性能。
77.综上所述,上述实施例从多方面提高了h.266中cabac编码速率。
78.在一些实施例中,所述二进制算术编码结构中,沿第一方向,第n-1个第一编码单元1中的选择器分别与第n个第一编码单元1中的第一常规编码器、旁路编码器和选择器连接,n∈m;第m个第一编码单元1中的选择器与第二常规编码器连接。
79.在另一些实施例中,所述二进制算术编码结构中,沿第一方向上第一个输入单元为第一个第一编码单元1中的第一常规编码器或旁路编码器。即从第一个第一编码单元1开始进行编码,选择第一个第一编码单元1中的第一常规编码器或旁路编码器作为输入,以尽可能得到多种灵活的编码方式,能够提高vpu芯片的编码灵活性。
80.为了便于在多种灵活的编码方式中寻找最优的编码方式,在本技术的其他实施例中,所述二进制算数编码结构包括2+2*m*(m-1)个编码路径,所述2+2*m*(m-1)个编码路径包括所述目标编码路径。
81.在具体实施例中,以所述二进制算术编码结构包括2个第一编码单元和1个第二编码单元进行示例说明,即该二进制编码结构可以包括2个第一常规编码器、2个旁路编码器、2个选择器,和1个第二常规编码器,旁路编码器用于对1至6个二进制化后的语法信息的bin值进行二进制算术编码。
82.如图2所示,所述二进制算术编码结构包括:常规编码器re1、常规编码器re2、常规编码器re3(即第二编码单元),旁路编码器by1、旁路编码器by2,以及选择器sel1、选择器sel2,其中:一第一编码单元中的常规编码器re1与另一第一编码单元中的常规编码器re2之间,通过连接选择器sel1形成流水结构;一第一编码单元中的常规编码器re2与常规编码器re3之间,通过连接选择器sel2形成流水结构;一第一编码单元中的旁路编码器by1与另一第一编码单元中的旁路编码器by2之间,通过连接选择器sel1形成流水结构;一第一编码单元中的旁路编码器by1与另一第一编码单元中的旁路编码器by2之间,还通过连接依次连接的选择器sel1和选择器sel2形成流水结构。
83.其中,选择器sel1可以根据接收到的待编码信息,确定第一输入单元,第一输入单元为常规编码器re1或旁路编码器by1;选择器sel2,可以根据接收到的待编码信息,确定第二输入单元,第二输入单元为选择器sel1、常规编码器re2或旁路编码器by2;沿第一方向上的第一输入单元、选择器sel1、第二输入单元、选择器sel2,以及输出单元中的常规编码器re3或者旁路编码器by2,依序形成待编码信息的目标编码路径。
84.基于选择器sel1和选择器sel2,可以实现图2所示的所述二进制算术编码结构中的常规编码器和旁路编码器的输入和/或输出的选择。具体地,图2所示的二进制算术编码结构,可以包括如下六条编码路径:
85.路径一:常规编码器re1

选择器sel1

常规编码器re2

选择器sel2

常规编码器re3;
86.路径二:常规编码器re1

选择器sel1

旁路编码器by2;
87.路径三:常规编码器re1

选择器sel1

常规编码器re2

选择器sel2

旁路编码器by2;
88.路径四:旁路编码器by1

选择器sel1

旁路编码器by2;
89.路径五:旁路编码器by1

选择器sel1

常规编码器re2

选择器sel2

常规编码器re3;
90.路径六:旁路编码器by1

选择器sel1

选择器sel2

常规编码器re3;
91.从上述编码路径可知,选择器sel1,可用于选择常规编码器re1的输出与常规编码器re2的输入连接;选择器sel1,还可用于选择常规编码器re1的输出与旁路编码器by2的输入连接;选择器sel1,还可用于选择旁路编码器by1的输出与旁路编码器by2的输入连接;选择器sel1,还可用于选择旁路编码器by1的输出与常规编码器re2的输入连接;选择器sel1,还可用于选择旁路编码器by1的输出与选择器sel2的输入连接;相应地,选择器sel2,可用于选择常规编码器re2的输出与常规编码器re3的输入连接;选择器sel2,还可用于选择常规编码器re2的输出与旁路编码器by2的输入连接;选择器sel2,还可用于将选择器sel1的输出与常规编码器re3的输入连接。
92.根据选择器sel1和选择器sel2的选择结果,可以确定待编码信息的目标编码路径,即在上述六条编码路径中寻找最优的目标编码路径。
93.在本技术的其他实施例中,如图3所示,还提供一种二进制算术编码装置3,包括上述任一项所述的二进制算术编码结构31。其中,二进制算术编码装置3可以获取待编码信息,并利用二进制算术编码结构31对待编码信息进行二进制算术编码,得到目标编码信息,以提高h.266中cabac编码速率。
94.在一些实施例中,所述二进制算术编码装置3具有多种预设编码模式,多种预设编码模式分别对应多个编码路径,多个编码路径包括目标编码路径;所述二进制算术编码装置3还包括编码模式确定模块32;编码模式确定模块32,用于根据多种预设编码模式,对二进制化后的语法信息进行划分,得到待编码信息,并根据待编码信息确定对应的目标编码路径;所述二进制算术编码结构31,用于获取待编码信息,在对应目标编码路径中对待编码信息进行二进制算术编码,得到目标编码信息。
95.在具体的实施例中,以二进制算术编码结构31采用图2所示的所述二进制算术编码结构为例,所述二进制算术编码装置3可以包括如下六种预设编码模式,对于其他实施例,可以参照不同第一编码单元的数量以及其中选择器的选择形成多种编码模式,并对照实现二进制编码,在此不过多赘述。
96.模式一:一个时钟周期内,编码1至3个二进制化后的常规语法信息;
97.模式二:一个时钟周期内,先编码1个二进制化后的常规语法信息,后编码1至6个二进制化后的旁路语法信息;
98.模式三:一个时钟周期内,先编码2个二进制化后的常规语法信息,后编码1至6个二进制化后的旁路语法信息;
99.模式四:一个时钟周期内,编码1至12个二进制化后的旁路语法信息;
100.模式五:一个时钟周期内,先编码1至6个二进制化后的旁路语法信息,后编码2个二进制化后的常规语法信息;
101.模式六:一个时钟周期内,先编码1至6个二进制化后的旁路语法信息,后编码1个二进制化后的常规语法信息。
102.上述六种预设编码模式,与上述六条编码路径一一对应,其中,上述六条编码路径包括待编码信息对应的目标编码路径。
103.编码模式确定模块32,可以根据上述六种预设编码模式,对二进制化后的语法信息进行划分,得到待编码信息,即根据上述六种预设编码模式,对cabac二进制化后的语法信息bin序列进行划分,得到待编码信息,待编码信息可以包括cabac二进制化后的语法信息的部分或全部的bin序列,然后可以根据待编码信息,从上述六条预设编码路径中,确定对应的目标编码路径。
104.二进制算术编码结构31,通过获取待编码信息,在对应目标编码路径中对待编码信息进行二进制算术编码,即可得到目标编码信息。
105.在另一些实施例中,预设编码模式可以根据一个时钟周期内,二进制算术编码结构31能够处理的二进制化后的语法信息的bin值数量,以及二进制算术编码结构31中常规编码器和旁路编码器的编码顺序进行划分。
106.预设编码模式,还可以采用其他合理的划分方式,本技术不限于此。
107.在上述实施例中,二进制算术编码装置3中二进制算术编码结构31,采用图2所示的所述二进制算术编码结构,其通过3个常规编码器、2个旁路编码器和2个选择器,能最大同时编码12个二进制化后的语法信息的bin值,能够在满足芯片设计带宽、ppa等要求的情况下,大幅提升vpu芯片的编码速率。
108.同时,在上述实施例的基础上,可以根据cabac二进制化后的语法信息bin序列的排列顺序,选择最优的编码模式及编码路径,从而可以进一步提高h.266中cabac的编码速率。
109.如图4所示,本技术实施例提供一种二进制算术编码方法,所述方法应用于上述任一项的所述二进制算术编码装置,所述方法包括:
110.s1.获取二进制化后的语法信息;
111.在s1中,语法信息,可以为待编码的语法信息,其可以预先加载到缓存中,然后从缓存中获取语法信息,其也可以通过其他方式获取。
112.cabac是二进制算术编码,对非二进制符号如运动矢量、宏块类型、参考帧号以及变换量化后的残差数据,需要预先进行二进制化。
113.cabac二进制化方案由基本方案和串接方案组成。
114.基本方案有一元码(unary binarization,u),截断一元码(truncatedunary binarization,tu),k阶指数哥伦布码(kthorder exp_golomb binarization,uegk)和定长码(fixed-length binarization,fl)四种。
115.串接方案由基本方案串接而成。不同的二进制化方案适用于不同类型的语法元素。对于数值变化范围较大的残差数据(如运动矢量与运动矢量预测值间的残差数据)用uegk码表示,对于简单的符号标志元素用fl码表示。在本步骤中,可以基于语法信息的类型,选择不同的二进制化方案,对语法信息进行二进制化处理,得到二进制化后的语法信
息。
116.在一些实施例中,本步骤的其中一种实现方式,具体包括:
117.s10.在视频处理单元启动cabac前,获取当前任务所需的语法信息,并将语法信息加载到缓存中;
118.s20.根据h.266的语法信息排列顺序,从缓存中获取语法信息,并将语法信息加载到cabac中进行二进制化,得到二进制化后的语法信息;
119.其中,视频处理单元,可以是vpu,vpu是一种全新的视频处理平台核心引擎,具有硬解码功能以及减少cpu负荷的能力。另外,vpu可以减少服务器负载和网络带宽的消耗。
120.具体地,可以将语法信息从上级模块加载到缓存中。
121.h.266是最新一代视频编码标准,相比前一代h.265标准,h.266标准在主观质量相当的情况下可以节省50%码率,能够大大节省带宽成本。根据h.266的语法信息排列顺序,从缓存中获取语法信息并将其加载到cabac中后,可参考上述cabac二进制化方案进行二进制化处理,得到二进制化后的语法信息。
122.需要说明的是,二进制化后的语法信息,也可以通过其他方式直接获取,本技术对此不作限制。
123.在另一些实施例中,还可以根据二进制化后的语法信息,选择概率模型进行更新。
124.cabac中有四种上下文模型的设计方式:
125.第1种类型的模型必须根据它相邻的已编码的语法元素构成,一般是其左边和上边的对应语法元素来建立相应的概率模型,对当前语法元素进行模型预测。
126.第2种模型仅局限于对宏块类型和子宏块类型的应用,其中第m比特的概率模型的选定要参考前面己编码m-1比特所采用的模型。
127.第3种和第4种模型仅用于残余数据的编码,这两种模型都依赖编码块的类型,其中第3种模型依赖的不是已编码的系数,而是系数在扫描路径中的位置。第4种模型则要计算该比特所在系数之前已编码的系数数目。
128.在cabac中除了这些条件上下文模型之外,还有一些固定概率模型,它们对待编码的比特提供固定的概率预测,已编码比特的模型不加以应用。具体地,可以根据所述二进制化后的语法信息具有的上下文相关性,为编码符号选择合适的概率模型,根据当前编码符号的值,更新概率模型。通过对上下文模型的构建,基本概率模型能够适应随视频图像而改变的统计特性,降低符号间的冗余度,并大大减少运算开支。
129.s2.根据多种预设编码模式,对二进制化后的语法信息进行划分,得到多个待编码信息以及多个待编码信息分别对应的编码模式;
130.在s2中,预设编码模式,可以根据一个时钟周期内,所述二进制算术编码装置中的二进制算术编码结构能够处理的二进制化后的语法信息的bin值数量,以及二进制算术编码结构中常规编码器和旁路编码器的编码顺序进行划分。具体地,可以通过所述二进制算术编码装置中的编码模式确定模块,来执行本步骤。
131.s3.根据多个所述待编码信息分别对应的编码模式,确定多个所述待编码信息对应的目标编码路径;
132.在s3中,多个所述待编码信息分别对应的编码模式,可以是多种预设编码模式中的一种或多种,而多种预设编码模式可以分别对应编码路径,多个编码路径包括目标编码
路径,本步骤的目的是,从多个编码路径中确定目标编码路径,具体地,可以通过所述二进制算术编码装置中的编码模式确定模块,来执行本步骤。
133.s4.在对应目标编码路径中对多个待编码信息进行二进制算术编码,得到目标编码信息。
134.在s4中,可以根据目标编码路径,基于所述所述二进制算术编码装置中的二进制算术编码结构,选择常规编码模式和/或旁路编码模式,对待编码信息进行二进制算术编码,得到目标编码信息。
135.根据所述二进制算术编码结构的流水结构可知,上述二进制算术编码方法,能够最大同时编码m+1个常规语法信息的bin值,或者2n*m个旁路语法信息的bin值,大幅提升了vpu芯片的编码速率。
136.所述二进制算术编码结构,具备灵活的编码方式,可以根据cabac二进制化后的语法信息的bin序列的排列顺序,匹配最优的编码模式及编码路径,从而可以进一步提高h.266中cabac的编码速率。
137.在一些实施例中,所述二进制算术编码方法中,根据多种预设编码模式,对二进制化后的语法信息进行划分,得到多个待编码信息的步骤的其中一种实现方式,具体包括:根据多种预设编码模式将二进制化后的语法信息的bin序列进行排列划分,得到所述多个待编码信息。
138.具体地,根据所述二进制算术编码结构,可以将二进制化后的语法信息的bin序列的排列方式预先划分为2+2*m*(m-1)种,排列方式可以与所述二进制算术编码结构的预设编码模式及编码路径相对应。
139.在具体的实施例中,以所述二进制算术编码结构采用图2所示的所述二进制算术编码结构为例,排列方式具体包括:
140.排列一:3个二进制化后的常规语法信息的bin值依次排列;
141.排列二:1个二进制化后的常规语法信息的bin值以及1至6个二进制化后的旁路语法信息的bin值依次排列;
142.排列三:2个二进制化后的常规语法信息的bin值以及1至6个二进制化后的旁路语法信息的bin值依次排列;
143.排列四:1至12个二进制化后的旁路语法信息的bin值依次排列;
144.排列五:1至6个二进制化后的旁路语法信息的bin值以及2个二进制化后的常规语法信息的bin值依次排列;
145.排列六:1至6个二进制化后的旁路语法信息的bin值以及1个二进制化后的常规语法信息的bin值依次排列。
146.对于任意二进制化后的语法信息,其bin序列的排列顺序是固定的,在本实施例中,根据多种预设编码模式所对应的排列方式,与二进制化后的语法信息的bin序列的排列顺序进行匹配,得到二进制化后的语法信息的bin序列所对应的排列方式,并依照该排列方式,将二进制化后的语法信息的bin序列进行排列划分,得到多个待编码信息。
147.在另一些实施例中,所述二进制算术编码方法中,在对应目标编码路径中对多个待编码信息进行二进制算术编码,得到目标编码信息的步骤的其中一种实现方式,具体包括:
148.依次获取待编码信息,并在每获取到待编码信息的情况下,在对应目标编码路径中对待编码信息进行二进制算术编码,得到目标编码信息,直到待编码信息包括终止编码语法时,将所有目标编码信息打包输出。
149.具体地,在待编码信息包括终止编码语法时,可以通过调用encodeterminate这个编码过程来实现终止编码,并将所有已得到目标编码信息形成一最终码流打包输出,例如,待编码信息中包括终止编码语法时,直到由获取二进制化后的语法信息得到的所有待编码信息,在对应目标编码路径中完成二进制算术编码后,再将所有已得到目标编码信息形成一最终码流打包输出。其中,包括终止编码语法的待编码信息,也可在对应目标编码路径中完成二进制算术编码,相应地也存在对应的目标编码信息。
150.在一些实施例中,当当前所有待编码信息未包括终止编码语法时,则继续返回执行所述获取二进制化后的语法信息的步骤,直到待编码信息包括终止编码语法时,再将所有目标编码信息打包输出。
151.在上述实施例中所述二进制算术编码方法,可以根据cabac二进制化后的语法信息和所述二进制算术编码结构的特性,对二进制化后的语法信息进行划分,得到多个待编码信息,并选择对应的编码模式和目标编码路径,并根据目标编码路径对待编码信息进行二进制算术编码,得到目标编码信息。
152.上述编码方法能灵活应对h.266中cabac产生的不同的bin值排列顺序,增加了vpu芯片的编码灵活性,并且能根据二进制化后的语法信息,选择最优的编码模式、编码路径,可以完全匹配编码计算效率,而不会影响系统整体性能,能够提高h.266中cabac的编码速率。
153.在本技术的另一实施例中,还提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述二进制算术编码方法中任一所述方法。
154.其中,所述计算机可读存储介质,可以为u盘、移动硬盘、只读存储器、随机存取存储器或者光盘等各种可以存储程序代码的介质。
155.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种二进制算术编码结构,其特征在于,包括:沿第一方向逐级连接的m个第一编码单元,m为大于1的正整数;以及第二编码单元,所述第二编码单元与沿所述第一方向排列的第m个所述第一编码单元连接;所述第一编码单元包括选择器以及分别与所述选择器连接的第一常规编码器和旁路编码器;所述第二编码单元包括第二常规编码器;所述选择器,用于根据接收到的待编码信息,确定所述第一编码单元中的输入单元,所述输入单元为所述选择器、所述第一常规编码器或所述旁路编码器;沿所述第一方向上的所有所述第一编码单元内的所述输入单元和所述选择器,以及输出单元依序形成所述待编码信息的目标编码路径,所述输出单元为所述第二常规编码器或者沿所述第一方向排列的第m个所述第一编码单元中的旁路编码器。2.如权利要求1所述的二进制算术编码结构,其特征在于,沿所述第一方向,第n-1个所述第一编码单元中的所述选择器分别与第n个所述第一编码单元中的所述第一常规编码器、所述旁路编码器和所述选择器连接,n∈m;第m个所述第一编码单元中的所述选择器与所述第二常规编码器连接;优选地,沿所述第一方向上第一个所述输入单元为第一个所述第一编码单元中的第一常规编码器或旁路编码器。3.如权利要求1所述的二进制算术编码结构,其特征在于,所述二进制算数编码结构包括2+2*m*(m-1)个编码路径,所述2+2*m*(m-1)个编码路径包括所述目标编码路径。4.一种二进制算术编码装置,其特征在于,包括如权利要求1-3任一项所述的二进制算术编码结构。5.根据权利要求4所述的装置,其特征在于,所述二进制算术编码装置具有多种预设编码模式,所述多种预设编码模式分别对应多个编码路径,多个所述编码路径包括目标编码路径;所述装置还包括编码模式确定模块;所述编码模式确定模块,用于根据所述多种预设编码模式,对二进制化后的语法信息进行划分,得到待编码信息,并根据所述待编码信息确定对应的目标编码路径;所述二进制算术编码结构,用于获取所述待编码信息,在对应所述目标编码路径中对所述待编码信息进行二进制算术编码,得到目标编码信息。6.根据权利要求5所述的装置,其特征在于,所述预设编码模式根据一个时钟周期内,所述二进制算术编码结构能够处理的二进制化后的语法信息的bin值数量,以及所述二进制算术编码结构中常规编码器和旁路编码器的编码顺序进行划分。7.一种二进制算术编码方法,其特征在于,所述方法应用于权利要求4至6任一项的所述二进制算术编码装置,所述方法包括:获取二进制化后的语法信息;根据多种预设编码模式,对所述二进制化后的语法信息进行划分,得到多个待编码信息以及多个所述待编码信息分别对应的编码模式;根据多个所述待编码信息分别对应的编码模式,确定多个所述待编码信息对应的目标编码路径;在对应所述目标编码路径中对多个所述待编码信息进行二进制算术编码,得到目标编
码信息。8.如权利要求7所述的二进制算术编码方法,其特征在于,所述根据多种预设编码模式,对所述二进制化后的语法信息进行划分,得到多个待编码信息,包括:根据多种预设编码模式将二进制化后的语法信息的bin序列进行排列划分,得到所述多个待编码信息。9.如权利要求7所述的二进制算术编码方法,其特征在于,所述在对应所述目标编码路径中对多个所述待编码信息进行二进制算术编码,得到目标编码信息,包括:依次获取所述待编码信息,并在每获取到所述待编码信息的情况下,在对应所述目标编码路径中对所述待编码信息进行二进制算术编码,得到目标编码信息,直到所述待编码信息包括终止编码语法时,将所有所述目标编码信息打包输出。10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求7至9中任一项所述的方法。

技术总结
本申请提供一种二进制算术编码结构、装置、方法及存储介质,所述二进制算术编码结构,包括:沿第一方向逐级连接的M个第一编码单元;以及第二编码单元,第二编码单元与沿第一方向排列的第M个第一编码单元连接;第一编码单元包括选择器以及分别与选择器连接的第一常规编码器和旁路编码器;第二编码单元包括第二常规编码器;所述二进制算术编码结构能够提高CABAC的编码速率。CABAC的编码速率。CABAC的编码速率。


技术研发人员:黄刚毅 禹治祥 邱军 陈州辉
受保护的技术使用者:湖南国科微电子股份有限公司
技术研发日:2023.06.05
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐