视频信号编码/解码方法和存储由编码方法生成的数据流的记录介质与流程
未命名
10-26
阅读:92
评论:0
1.本公开内容涉及用于处理视频信号的方法和装置。
背景技术:
2.近来,在各种应用领域中对诸如hd(高清)图像和uhd(超高清)图像的高分辨率和高质量图像的需求增加。由于随着图像数据变得高分辨率和高质量,与现有图像数据相比,数据量相对增加,因此在通过使用例如现有有线和无线宽带电路的介质来传输图像数据或者通过使用现有存储介质来存储图像数据时,传输费用和存储费用增加。可以利用高效图像压缩技术来解决由于图像数据变得高分辨率和高质量而生成的这些问题。
3.存在各种技术,例如利用图像压缩技术根据当前图片的先前或后续图片来预测在当前图片中包括的像素值的帧间预测技术、通过使用当前图片中的像素信息来预测在当前图片中包括的像素值的帧内预测技术、将短符号分配给具有高出现频率的值并且将长符号分配给具有低出现频率的值的熵编码技术等,并且可以通过使用这些图像压缩技术来有效地压缩和传输或者存储图像数据。
4.另一方面,随着对高分辨率图像的需求增加,对作为新的图像服务的立体图像内容的需求也增加。已经讨论了用于有效地提供高分辨率和超高分辨率立体图像内容的视频压缩技术。
技术实现要素:
5.技术问题
6.本公开内容的目的在于提供在对视频信号进行编码/解码时有效地对残差系数进行编码/解码的方法和装置。
7.本公开内容的目的是提供在对视频信号进行编码/解码中自适应地选择用于残差系数的二值化的莱斯参数的方法和装置。
8.本公开内容的技术效果可以不受以上提及的技术效果的限制,并且本公开内容所属技术领域的普通技术人员可以从以下描述中清楚地理解其他未提及的技术效果。
9.技术解决方案
10.根据本公开内容的对视频信号进行解码的方法包括:确定对当前块是否跳过逆变换;解析关于当前块的残差系数的信息;通过对信息进行逆二值化重构残差系数;以及对残差系数选择性地应用逆变换。在这种情况下,逆二值化可以基于针对残差系数的莱斯参数被执行,并且莱斯参数可以基于第一变量得出,该第一变量基于参考残差系数的绝对值的和得出。
11.根据本公开内容的对视频信号进行编码的方法包括:确定对当前块是否跳过变换;通过应用或跳过变换获取当前块的残差系数;确定针对残差系数的语法值;以及对语法进行二值化。在这种情况下,二值化可以基于针对残差系数的莱斯参数被执行,并且莱斯参
数可以基于第一变量得出,该第一变量基于参考残差系数的绝对值的和得出。
12.在根据本公开内容的对视频信号进行编码/解码的方法中,莱斯参数可以基于映射至多个区间之中第一变量所属的区间的移位参数而得出。
13.在根据本公开内容的对视频信号进行编码/解码的方法中,莱斯参数可以通过将移位参数与初始莱斯参数相加得出,并且初始莱斯参数可以基于第二变量获得,该第二变量通过基于移位参数对第一变量进行缩放而得出。
14.在根据本公开内容的对视频信号进行编码/解码的方法中,区间的数目在解码器中具有预定义值,并且预定义值可以为5。
15.在根据本公开内容的对视频信号进行编码/解码的方法中,可以根据对当前块是否跳过逆变换不同地确定区间的数目。
16.在根据本公开内容的对视频信号进行编码/解码的方法中,可以通过阈值来确定多个区间中的每一个的范围。
17.在根据本公开内容的对视频信号进行编码/解码方法中,可以基于对当前块是否跳过逆变换、当前块的大小、当前块的形状或当前块的量化参数中的至少之一确定阈值。
18.在根据本公开内容的对视频信号进行编码/解码的方法中,可以在比特流中明确地用信号通知表示阈值的信息。
19.在根据本公开内容的对视频信号进行编码/解码方法中,莱斯参数可以通过将移位参数与初始莱斯参数相加得出,并且移位参数可以基于通过对第一变量进行缩放而获得的第二变量得出。
20.在根据本公开内容的对视频信号进行编码/解码的方法中,移位参数可以通过对第二变量应用地板(floor)函数得出。
21.在根据本公开内容的对视频信号进行编码/解码的方法中,信息可以是表示4与残差系数的绝对值之间的差的第一语法或表示残差系数的绝对值的第二语法。
22.以上针对本公开内容简单概括的特征仅仅是之后描述的本公开内容的详细描述的说明性方面,并且不限制本公开内容的范围。
23.技术效果
24.根据本公开内容,可以通过根据通过使用上下文信息而编码的二进制位(bin)的数目不同地设置残差系数的编码方法来提高编码/解码效率。
25.根据本公开内容,可以通过自适应地选择莱斯参数来提高针对残差系数的编码/解码效率。
26.从本公开内容可获得的效果可以不受以上提及的效果限制,并且本公开内容所属技术领域的普通技术人员可以从以下描述中清楚地理解其他未提及的效果。
附图说明
27.图1是示出根据本公开内容的实施方式的图像编码装置的框图。
28.图2是示出根据本公开内容的实施方式的图像解码装置的框图。
29.图3是表示在编码器中对残差系数进行编码的处理的流程图。
30.图4是表示对残差系数的大小信息进行编码的处理的流程图。
31.图5是表示在解码器中对残差系数进行解码的处理的流程图。
32.图6是表示对残差系数的大小信息进行解码的处理的图。
33.图7表示在rc方法下对残差系数进行编码/解码的示例。
34.图8表示在tsrc方法下对残差系数进行编码/解码的示例。
35.图9是示出了用于得出莱斯参数的参考残差系数的位置的图。
36.图10说明了根据变量locsumabs所属的区间来确定莱斯参数criceparam的示例。
具体实施方式
37.由于本公开内容可以作出各种改变且具有若干实施方式,因此将在图中说明并且详细描述特定实施方式。但是,并不旨在将本公开内容限制为特定实施方式,并且应当理解,本公开内容包括包含在本公开内容的思想和技术范围内的所有改变、等同物或替代物。在描述每个附图时,相似的附图标记用于相似的部件。
38.可以使用诸如第一、第二等的术语来描述各种部件,但是部件不应受该术语限制。这些术语仅用于区分一个部件与其他部件。例如,在不超出本公开内容的权利的范围的情况下,第一部件可以被称为第二部件,类似地,第二部件也可以被称为第一部件。术语“和/或”包括多个相对输入项目的组合或多个相对输入项目的任何项目。
39.在部件被称为“链接”或“连接”至其他部件时,应当理解,该部件可以直接链接或连接至其他部件,但是其他部件可以存在于中间。另一方面,在部件被称为“直接链接”或“直接连接”至其他部件时,应当理解,在中间不存在其他部件。
40.因为本技术中使用的术语仅用于描述特定实施方式,所以其不旨在限制本公开内容。单数的表达包括复数的表达,除非其在上下文中清楚地具有不同的含义。在本技术中,应当理解,诸如“包括”或“具有”等术语是指在说明书中输入的特性、数字、阶段、运动、部件、部分或其组合的存在,但不排除一个或更多个其他特性、数字、阶段、运动、部件、部分或其组合的存在或提前添加的可能性。
41.在下文中,参照附图,将更详细地描述本公开内容的期望实施方式。在下文中,在图中相同的附图标记用于相同的部件,并且省略对同一部件的重复描述。
42.图1是示出根据本公开内容的实施方式的图像编码装置的框图。
43.参照图1,图像编码装置(100)可以包括:图片分割单元(110)、预测单元(120、125)、变换单元(130)、量化单元(135)、重排单元(160)、熵编码单元(165)、去量化单元(140)、逆变换单元(145)、滤波器单元(150)和存储器(155)。
44.由于图1中的每个构造单元被独立地示出以示出图像编码装置中的不同特性功能,这并不意味着每个构造单元由分开的硬件或一个软件单元构成。也就是说,由于是为了便于描述将每个构造单元列举为每个构造单元而包括每个构造单元,所以每个构造单元中的至少两个构造单元可以被组合以构成一个构造单元,或者一个构造单元可以被分割成多个构造单元以执行功能,并且甚至每个构造单元的集成实施方式和分开的实施方式也包括在本公开内容的权利的范围中,只要它们不背离本公开内容的实质。
45.此外,一些部件可以仅是用于改进性能的可选部件,而不是执行本公开内容中的基本功能的必要部件。可以通过仅包括实现本公开内容的实质所必需的构造单元而排除仅用于改进性能的部件来实现本公开内容,并且仅包括必要部件而排除仅用于改进性能的可选部件的结构也包括在本公开内容的权利的范围中。
46.图片分割单元(110)可以将输入图片分割为至少一个处理单元。就此而言,处理单元可以是预测单元(pu)、变换单元(tu)或编码单元(cu)。在图片分割单元(110)中,可以将一个图片分割成多个编码单元、预测单元和变换单元的组合,并且可以通过根据预定标准(例如,成本函数)选择一个编码单元、预测单元和变换单元的组合来对图片进行编码。
47.例如,一个图片可以被分割为多个编码单元。为了分割图片中的编码单元,可以使用诸如四叉树结构的递归树结构,并且通过使用一个图像或最大编码单元作为路径而被分割为其他编码单元的编码单元可以用与所分割的编码单元的数目一样多的子节点来分割。根据特定限制不再被分割的编码单元成为叶节点。换言之,当假设对于一个编码单元仅正方形分割是可能的时,可以将一个编码单元分割成多达四个其他编码单元。
48.在下文中,在本公开内容的实施方式中,编码单元可以用作用于编码的单元或者可以用作用于解码的单元。
49.预测单元可以在一个编码单元中以相同大小以至少一个正方形或矩形形状等进行分割,或者可以被分割成使得在一个编码单元中分割的预测单元中的任何一个预测单元可以具有与另一预测单元不同的形状和/或大小。
50.在生成基于编码块执行帧内预测的预测单元时,当预测单元不是最小编码单元时,可以在不执行分割成多个预测单元n
×
n的情况下执行帧内预测。
51.预测单元(120、125)可以包括执行帧间预测的帧间预测单元(120)以及执行帧内预测的帧内预测单元(125)。可以确定针对预测单元执行帧间预测还是帧内预测,并且可以确定根据每个预测方法的详细信息(例如,帧内预测模式、运动矢量、参考图片等)。就此而言,执行预测的处理单元可以不同于确定预测方法和细节的处理单元。例如,可以在预测单元中确定预测方法、预测模式等,并且可以在变换单元中执行预测。所生成的预测块与原始块之间的残差值(残差块)可以被输入至变换单元(130)。此外,用于预测的预测模式信息、运动矢量信息等可以在熵编码单元(165)中利用残差值来编码,并且可以被发送至解码装置。当使用特定编码模式时,可以在不通过预测单元(120、125)生成预测块的情况下按原样编码原始块并且将其发送至解码单元。
52.帧间预测单元(120)可以基于关于当前图片的先前图片或后续图片中的至少一个图片的信息来预测预测单元,或者在一些情况下可以基于关于当前图片中的一些编码区域的信息来预测预测单元。帧间预测单元(120)可以包括参考图片内插单元、运动预测单元和运动补偿单元。
53.参考图片内插单元可以从存储器(155)接收参考图片信息,并且生成等于或小于参考图片中的整数像素的像素信息。对于亮度像素,可以使用具有不同滤波器系数的基于dct的8抽头内插滤波器来以1/4像素为单位生成等于或小于整数像素的像素信息。对于色度信号,可以使用具有不同滤波器系数的基于dct的4抽头内插滤波器来以1/8像素为单位生成等于或小于整数像素的像素信息。
54.运动预测单元可以基于由参考图片内插单元内插的参考图片来执行运动预测。作为用于计算运动矢量的方法,可以使用诸如fbma(基于全搜索的块匹配算法)、tss(三步搜索)、nts(新三步搜索算法)等的各种方法。运动矢量可以具有基于内插像素的以1/2或1/4像素为单位的运动矢量值。运动预测单元可以通过改变运动预测方法来预测当前预测单元。可以使用诸如跳过方法、合并方法、高级运动矢量预测(amvp)方法、帧内块复制方法等
的各种方法,作为运动预测方法。
55.帧内预测单元(125)可以基于当前块周围的参考像素信息来生成预测单元,该参考像素信息是当前图片中的像素信息。在当前预测单元中的相邻块是执行帧间预测的块并且因此参考像素是执行帧间预测的像素时,可以通过用执行了帧内预测的周围块的参考像素信息进行替换来使用执行了帧间预测的块中包括的参考像素。换言之,当参考像素不可用时,可以通过用可用参考像素中的至少一个参考像素进行替换来使用不可用的参考像素信息。
56.帧内预测的预测模式可以具有在执行预测时使用根据预测方向的参考像素信息的定向预测模式和不使用方向信息的非定向模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同,并且可以利用用于预测亮度信息的帧内预测模式信息或预测的亮度信号信息来预测色度信息。
57.当在执行帧内预测时预测单元的大小与变换单元的大小相同时,可以基于预测单元的左位置处的像素、左上位置处的像素和顶部位置处的像素来执行预测单元的帧内预测。然而,当在执行帧内预测时预测单元的大小与变换单元的大小不同时,可以通过使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n分割的帧内预测可以仅用于最小编码单元。
58.在帧内预测方法中,可以在根据预测模式将自适应帧内平滑(ais)滤波器应用于参考像素之后生成预测块。应用于参考像素的ais滤波器的类型可以不同。为了执行帧内预测方法,可以根据当前预测单元周围的预测单元中的帧内预测模式来预测当前预测单元中的帧内预测模式。当通过使用根据周围预测单元预测的模式信息来预测当前预测单元中的预测模式时,如果当前预测单元中的帧内预测模式与周围预测单元中的帧内预测模式相同,则可以通过使用预定标志信息来发送当前预测单元中的预测模式与周围预测单元中的预测模式相同的信息,并且如果当前预测单元中的预测模式与周围预测单元中的预测模式不同,则可以通过执行熵编码来对当前块的预测模式信息进行编码。
59.此外,可以生成包括关于残差值的信息的残差块,该残差值是基于在预测单元(120、125)中生成的预测单元执行预测的预测单元与预测单元中的原始块之间的差值。可以将所生成的残差块输入至变换单元(130)。
60.变换单元(130)可以通过使用诸如dct(离散余弦变换)、dst(离散正弦变换)、klt的变换方法来变换原始块和下述残差块,所述残差块包括通过预测单元(120、125)生成的预测单元中的残差值信息。可以基于用于生成残差块的预测单元中的帧内预测模式信息来确定是否应用dct、dst或klt来变换残差块。
61.量化单元(135)可以对在变换单元(130)中被变换到频域的值进行量化。量化系数可以根据图像的重要性或块而改变。在量化单元(135)中计算的值可以被提供给去量化单元(140)和重排单元(160)。
62.重排单元(160)可以对经量化的残差值的系数值执行重排。
63.重排单元(160)可以通过系数扫描方法将呈二维块的形状的系数改变成一维矢量的形状。例如,重排单元(160)可以通过使用z字形扫描方法从dc系数扫描到高频域中的系数,并且将其改变成一维矢量的形状。根据变换单元的大小和帧内预测模式,代替z字形扫描,可以使用在列方向上扫描呈二维块形状的系数的垂直扫描或者在行方向上扫描呈二维
块形状的系数的水平扫描。换言之,可以根据变换单元的大小和帧内预测模式来确定将使用z字形扫描、垂直定向扫描和水平定向扫描之中的哪种扫描方法。
64.熵编码单元165可以基于由重排单元160计算的值来执行熵编码。熵编码可以使用各种编码方法,例如指数哥伦布(exponential golomb)、cavlc(上下文自适应可变长度编码)和cabac(上下文自适应二进制算术编码)。
65.熵编码单元(165)可以对来自重排单元(160)和预测单元(120、125)的各种信息例如编码单元中的残差值系数信息和块类型信息、预测模式信息、分割单元信息、预测单元信息和传输单元信息、运动矢量信息、参考帧信息、块内插信息、滤波信息等进行编码。
66.熵编码单元(165)可以对从重排单元(160)输入的编码单元中的系数值执行熵编码。
67.去量化单元(140)和逆变换单元(145)对在量化单元(135)中量化的值执行去量化并且对在变换单元(130)中变换的值执行逆变换。由去量化单元(140)和逆变换单元(145)生成的残差值可以与由包括在预测单元(120、125)中的运动预测单元、运动补偿单元和帧内预测单元预测的预测单元进行组合,以生成重构块。
68.滤波器单元(150)可以包括去块滤波器、偏移校正单元和自适应环路滤波器(alf)中的至少一个。
69.去块滤波器可以去除由重构图片中的块之间的边界生成的块失真。为了确定是否执行去块,可以基于包括在块中的若干行或列中包括的像素来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可以根据所需的去块滤波强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,当执行水平滤波和垂直滤波时,水平定向滤波和垂直定向滤波可以被设置成并行处理。
70.偏移校正单元可以针对执行去块的图像以像素为单位校正与原始图像的偏移。为了对特定图片执行偏移校正,可以在将包括在图像中的像素划分成一定数目的区域之后确定将执行偏移的区域,并且可以使用将偏移应用于对应区域的方法或者通过考虑每个像素的边缘信息来应用偏移的方法。
71.可以基于通过将经滤波的重构图像与原始图像进行比较获得的值来执行自适应环路滤波(alf)。在将包括在图像中的像素划分成预定组之后,可以通过确定将被应用于对应组的一个滤波器来区分地按组执行滤波。与是否将应用alf有关的信息可以针对亮度信号按编码单元(cu)传输,并且将要应用的alf滤波器的形状和滤波器系数可以根据每个块而不同。此外,不管要应用的块的特征如何,都可以应用呈相同形状(固定形状)的alf滤波器。
72.存储器(155)可以存储通过滤波器单元(150)计算的重构块或图片,并且当执行帧间预测时,可以将所存储的重构块或图片提供给预测单元(120、125)。
73.图2是示出根据本公开内容的实施方式的图像解码装置的框图。
74.参照图2,图像解码装置(200)可以包括:熵解码单元(210)、重排单元(215)、去量化单元(220)、逆变换单元(225)、预测单元(230、235)、滤波器单元(240)和存储器(245)。
75.当从图像编码装置输入图像比特流时,可以根据与图像编码装置相反的过程来对输入比特流进行解码。
76.熵解码单元(210)可以根据与在图像编码装置的熵编码单元中执行熵编码的过程
相反的过程来执行熵解码。例如,响应于在图像编码装置中执行的方法,可以应用诸如指数哥伦布、cavlc(上下文自适应可变长度编码)、cabac(上下文自适应二进制算术编码)的各种方法。
77.熵解码单元(210)可以对与编码装置中执行的帧内预测和帧间预测有关的信息进行解码。
78.重排单元(215)可以基于在编码单元中重排熵解码单元(210)中熵解码的比特流的方法来执行重排。可以通过被重构成二维块形式的系数来重排以一维矢量形式表示的系数。重排单元(215)可以接收与在编码单元中执行的系数扫描有关的信息,并且通过其中基于在对应的编码单元中执行的扫描顺序逆向地执行扫描的方法来执行重排。
79.去量化单元(220)可以基于从编码装置提供的量化参数和重排块的系数值来执行去量化。
80.逆变换单元(225)可以执行在变换单元中执行的变换,即,用于dct、dst和klt的逆变换,即,针对在图像编码装置中执行的量化结果的逆dct、逆dst和逆klt。可以基于在图像编码装置中确定的传输单元来执行逆变换。在图像解码装置的逆变换单元(225)中,可以根据诸如预测方法、当前块的大小、预测方向等的多个信息来选择性地执行变换技术(例如,dct、dst、klt)。
81.预测单元(230、235)可以基于与从熵解码单元(210)提供的预测块的生成有关的信息和从存储器(245)提供的预解码块或图片信息来生成预测块。
82.如上所述,当在以与图像编码装置中的操作相同的方式执行帧内预测时,预测单元的大小与变换单元的大小相同时,可以基于预测单元的左位置处的像素、左上位置处的像素和顶部位置处的像素来执行预测单元的帧内预测,但是当在执行帧内预测时预测单元的大小与变换单元的大小不同时,可以通过使用基于变换单元的参考像素来执行帧内预测。此外,使用n
×
n分割的帧内预测可以仅用于最小编码单元。
83.预测单元(230、235)可以包括:预测单元确定单元、帧间预测单元和帧内预测单元。预测单元确定单元可以接收从熵解码单元(210)输入的诸如预测单元信息、帧内预测方法的预测模式信息、帧间预测方法的运动预测相关信息等的各种信息,对当前编码单元中的预测单元进行划分,并且确定预测单元是执行帧间预测还是执行帧内预测。帧间预测单元(230)可以通过使用从图像编码装置提供的当前预测单元中的帧间预测所需的信息,基于包括当前预测单元的当前图片的先前图片或后续图片中的至少一个图片中包括的信息,对当前预测单元执行帧间预测。替选地,可以基于关于在包括当前预测单元的当前图片中预重构的一些区域的信息来执行帧间预测。
84.为了执行帧间预测,可以基于编码单元来确定包括在对应编码单元中的预测单元中的运动预测方法是跳过模式、合并模式、amvp模式还是帧内块复制模式。
85.帧内预测单元(235)可以基于当前图片中的像素信息来生成预测块。当预测单元是执行了帧内预测的预测单元时,可以基于从图像编码装置提供的预测单元中的帧内预测模式信息来执行帧内预测。替选地,帧内预测单元(235)可以基于调色板模式执行帧内预测,并且将通过参照图3至图28对其进行详细描述。帧内预测单元(235)可以包括自适应帧内平滑(ais)滤波器、参考像素内插单元和dc滤波器。作为对当前块的参考像素执行滤波的部分,可以通过根据当前预测单元中的预测模式确定是否应用滤波器来应用ais滤波器。通
过使用从图像编码装置提供的预测单元中的预测模式和ais滤波器信息,可以对当前块的参考像素执行ais滤波。在当前块的预测模式是不执行ais滤波的模式时,可以不应用ais滤波器。
86.在预测单元中的预测模式是基于对参考像素进行内插的像素值执行帧内预测的预测单元时,参考像素内插单元可以对参考像素进行内插以便以等于或小于整数值的像素为单位生成参考像素。在当前预测单元的预测模式是在不对参考像素进行内插的情况下生成预测块的预测模式时,可以不对参考像素进行内插。在当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。
87.可以将重构块或图片提供至滤波器单元(240)。滤波器单元(240)可以包括去块滤波器、偏移校正单元和alf。
88.可以从图像编码装置提供关于是否将去块滤波器应用于对应的块或图片的信息以及关于当应用去块滤波器时是应用强滤波器还是弱滤波器的信息。可以在图像解码装置的去块滤波器中提供与从图像编码装置提供的去块滤波器有关的信息,并且可以在图像解码装置中执行对对应块的去块滤波。
89.偏移校正单元可以基于偏移值信息、在执行编码时应用于图像的偏移校正的类型对重构图像执行偏移校正。
90.可以基于从编码装置提供的关于是否应用alf的信息、alf系数信息等将alf应用于编码单元。这样的alf信息可以通过将其包括在特定参数集中来提供。
91.存储器(245)可以存储重构图片或块以用作参考图片或参考块,并且将重构图片提供至输出单元。
92.如上所述,在下文中,在本公开内容的实施方式中,为了便于描述,编码单元被用作编码单元的术语,但是可以是执行解码以及编码的单元。
93.此外,由于当前块表示待编码/解码的块,根据编码/解码步骤,它可以表示编码树块(或编码树单元)、编码块(或编码单元)、变换块(或变换单元)或预测块(或预测单元)等。在本说明书中,“单元”可以表示用于执行特定编码/解码处理的基本单元,并且“块”可以表示预定大小的像素阵列。除非另外分类,否则“块”和“单元”可以互换使用。例如,在后面描述的实施方式中,可以理解,编码块(编码块)和编码单元(编码单元)可互换地使用。
94.可以以块为单位对图像进行编码/解码。可以基于树结构递归地分割编码块。在示例中,可以通过四叉树分割、二叉树分割或三叉树分割中的至少一种对编码块进行分割。
95.此外,编码块可以被分割成多个预测块或多个变换块。
96.在对当前块执行预测之后,可以通过使原始块与预测块相减获得残差块。当获得残差块时,可以通过对残差块执行变换或量化中的至少一种来获得残差系数。
97.可以对表示是否对当前块应用变换的信息进行编码并且将其用信号通知。在示例中,可以对transform_skip_flag进行编码并且将其用信号通知。当transform_skip_flag为1时,这表示未对当前块应用变换。此处,变换可以包括将在稍后描述的第二变换以及第一变换。当transform_skip_flag为0时,这表示对当前块应用了变换。当transform_skip_flag为0时,必须对当前块应用第一变换,而可以可选地应用第二变换。
98.可以根据基于dct的变换核或基于dst的变换核中的至少一个来执行变换。此处,基于dct的变换核可以包括dct-2或dct-8中的至少一个,并且基于dst的变换核可以包括
dst-7。可以将附加变换应用于对残差样本进行变换的结果。由基于dct或dst的变换核执行的变换被称为第一变换,并且附加地应用至第一变换的结果的变换被称为第二变换。
99.可以选择性地将量化应用于变换系数,并且随后对与残差系数相关的信息进行编码。此处,根据是应用变换还是量化,残差系数可以意味着经量化的变换系数、变换系数或经量化的残差样本中的至少一个。残差系数可以被称为残差信号。
100.在解码器中,可以通过编码器的逆处理重构残差样本。具体地,在获取残差系数之后,可以通过对获得的残差系数执行去量化和/或逆变换来获得残差样本。在这种情况下,逆变换可以包括第一逆变换即第一变换的逆处理和第二逆变换即第二变换的逆处理中的至少一种。
101.为了对残差系数进行编码/解码,可以使用多种语法。此外,还可以在比特流中对有关残差系数的语法进行熵编码并且将其用信号通知。在这种情况下,将当前块分割成至少一个或更多个子块之后,可以在子块的单元中对残差系数执行熵编码/解码。
102.在下文中,将详细描述对残差系数进行编码/解码的处理。
103.可以对表示当前块中是否存在非零残差系数的标志进行编码并且将其用信号通知。当在当前块中存在非零残差系数时,可以对最后的非零残差系数在扫描顺序中的位置进行编码。
104.此外,可以以当前块中的子块为单位对表示在子块中是否存在非零残差系数的子块标志进行编码。当在子块中存在非零残差系数时,可以附加地按扫描顺序对关于每个残差系数的信息进行编码。
105.在这种情况下,对于在包括最后的非零残差系数的子块之前被扫描的子块,可以省略对子块标志的编码。由于在子块中不包括非零残差系数,因此子块标志的值可以被推断为0。
106.此外,对于包括最后的非零残差系数的子块,可以省略对子块标志的编码。由于在子块中必然包括非零残差系数,因此可以将子块标志的值推断为1。
107.在另一示例中,可以省略对最后的非零残差系数的位置信息的编码。当省略对最后的非零残差系数的位置信息的编码时,可以针对当前块中的所有子块对子块标志进行编码。
108.在这种情况下,当确定在排除具有最后扫描顺序的子块的其余子块中不包括非零残差系数时,可以理解应当在最后的子块中包括非零残差系数。因此,对于最后的子块,可以省略对子块标志的编码,并且该值可以被推断为1。
109.可以附加地对表示最后的非零系数的位置信息是否被编码的信息进行编码。在对最后的非零系数的位置信息进行编码时,可以将该信息的值设置为1。在这种情况下,可以从存在最后的非零系数的子块对子块标志进行编码。另一方面,当最后的非零系数的位置信息未被编码时,可以将该信息的值设置为0。在这种情况下,可以从首先扫描的子块中对子块标志进行编码。
110.当在当前块中存在非零残差系数时,可以假设对于当前块中的第一子块,必然包括非零残差系数。因此,对于第一子块,可以省略对表示是否存在非零残差系数的子块标志的编码。
111.关于每个残差系数的信息可以包括表示残差系数是否具有非零值的标志、表示残
差系数的大小的信息和表示残差系数的符号的信息中的至少一个。
112.可以以预定的扫描顺序对残差系数进行编码。在这种情况下,残差系数的编码顺序可以基于在当前块中是否跳过变换而不同。在示例中,当在当前块中没有跳过变换时,可以首先对子块中的右下位置处的残差系数进行编码,并且可以最后对左上位置处的残差系数进行编码。换言之,可以根据逆对角线扫描、逆水平扫描或逆垂直扫描来确定残差系数之间的扫描顺序。另一方面,当在当前块中跳过变换时,可以首先对子块中的左上位置处的残差系数进行编码,并且可以最后对右下位置处的残差系数进行编码。换言之,可以根据对角线扫描、水平扫描或垂直扫描来确定残差系数之间的扫描顺序。
113.替选地,即使当在当前块中跳过变换时,可以根据逆对角线扫描、逆水平扫描或逆垂直扫描来确定残差系数之间的扫描顺序。
114.可以在编码器和解码器中预定义残差系数的扫描顺序。替选地,可以对表示残差系数的扫描顺序的信息进行编码并且将其用信号通知。替选地,可以基于以下中的至少一个来确定扫描顺序:当前块的大小或形状、帧内预测模式、是否跳过变换或是否执行第二变换。在示例中,当对当前块跳过变换时,可以按对角线(或逆对角线)扫描顺序对残差系数进行编码/解码,并且当对当前块未跳过变换时,可以按逆对角线(或对角线)扫描顺序对残差系数进行编码/解码。
115.图3是表示在编码器中对残差系数进行编码的处理的流程图。
116.首先,可以对表示残差系数是否具有非零值的标志sig_coeff_flag编码(s310)。当残差系数的值为0时,可以将标志sig_coeff_flag的值设置为0并对其编码。另一方面,当残差系数的值不为0时,可以将标志sig_coeff_flag的值设置为1并对其编码。当残差系数的值不为0时,还可以对残差系数的大小信息进行编码(s320)。
117.图4是表示对残差系数的大小信息进行编码的处理的流程图。
118.可以通过使用至少一个abs_level_gtx_flag[n]对残差系数的绝对值编码。在这种情况下,n可以是等于或大于0的整数。标志abs_level_gtx_flag[n]可以表示残差系数的绝对值是否具有大于(2n+1)的值。可以基于在当前块中是否跳过了变换来确定用于对残差系数的绝对值编码的abs_level_gtx_flag[n]的数目。在示例中,当在当前块中未跳过变换时,可以使用2个abs_level_gtx_flag[n](n从0至1)。另一方面,当在当前块中跳过变换时,可以使用3个或更多个abs_level_gtx_flag[n](例如,3、4或5)。在该实施方式中,假设使用2个abs_level_gtx_flag[n]。
[0119]
可以对表示残差系数的绝对值是否大于1的标志abs_level_gtx_flag[0]进行编码(s410)。当残差系数的绝对值为1时,可以将标志abs_level_gtx_flag[0]的值设置为0并对abs_level_gtx_flag[0]进行编码。另一方面,当残差系数的绝对值大于1时,可以将标志abs_level_gtx_flag[0]的值设置为1并对abs_level_gtx_flag[0]进行编码。
[0120]
当残差系数的绝对值大于1时,可以对表示残差系数的绝对值是偶数还是奇数的标志par_level_flag进行编码(s420)。当残差系数的绝对值是偶数时,标志par_level_flag可以被设置为0并且被编码。另一方面,当残差系数的绝对值是奇数时,标志par_level_flag可以被设置为1并且被编码。替选地,相反地,当残差系数的绝对值为偶数时,标志par_level_flag可以被设置为1,并且当残差系数的绝对值为奇数时,标志par_level_flag可以被设置为0。
[0121]
接下来,可以对表示残差系数的绝对值是否大于3的标志abs_level_gtx_flag[1]进行编码(s430)。当残差系数的绝对值等于或小于3时,标志abs_level_gtx_flag[1]的值可以被设置为0。另一方面,当残差系数的绝对值大于0时,标志abs_level_gtx_flag[1]的值可以被设置为1。
[0122]
当残差系数的绝对值大于3时,可以对表示残差大小的abs_remainder进行编码(s440)。可以通过将通过从残差系数的绝对值减去4而得出的值向右移位1来得出语法abs_remainder。
[0123]
除了图4所示的标志abs_level_gtx_flag[0]和abs_level_gtx_flag[1]之外,可以附加地对诸如abs_level_gtx_flag[2]、abs_level_gtx_flag[3]或abs_level_gtx_flag[4]等的abs_level_gtx_flag[n]进行编码。在这种情况下,仅当abs_level_gtx_flag[n-1]的值为1时,可以附加地对abs_level_gtx_flag[n]进行编码/解码。
[0124]
abs_level_gtx_flag[n]可以表示残差系数的绝对值是否具有大于(2n+1)的值。当使用abs_level_gtx_flag[n]时,可以通过将通过从残差系数的绝对值减去2(n+1)而得出的值向右移位1来得出abs_remainder。
[0125]
在上述示例中,示出了通过使用sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag、abs_level_gtx_flag[1]和abs_reminder对残差系数的绝对值进行编码。在另一示例中,可以按原样对残差系数的绝对值进行编码。在示例中,可以对表示残差系数的绝对值的语法dec_abs_level进行编码。下面将描述选择对残差系数的绝对值进行编码的方法的方法。
[0126]
在对残差系数的大小信息进行编码之后,可以对表示残差系数的符号的标志coeff_sign_flag进行编码(s330)。当标志coeff_sign_flag的值为0时,其表示残差系数为正数。另一方面,当标志coeff_sign_flag的值为1时,其表示残差系数为负数。
[0127]
图5是表示在解码器中对残差系数进行解码的处理的流程图。
[0128]
当确定非零残差系数包括在子块中时,可以基于预定扫描顺序来重构残差系数。
[0129]
首先,可以对表示残差系数是否具有非零值的标志sig_coeff_flag进行解码(s510)。当标志sig_coeff_flag的值为0时,其表示残差系数的值为0。另一方面,当标志sig_coeff_flag的值为1时,其表示残差系数的值不为0。当标志的值sig_coeff_flag为1时,还可以对残差系数的大小信息进行解码(s520)。
[0130]
图6是表示对残差系数的大小信息进行解码的处理的图。
[0131]
为了便于描述,假设通过使用多达2个abs_level_gtx_flag[n]来对残差系数进行编码。
[0132]
可以对表示残差系数的绝对值是否大于1的标志abs_level_gtx_flag[0]进行解码(s610)。当标志abs_level_gtx_flag[0]的值为0时,其表示残差系数的绝对值为1。另一方面,当标志abs_level_gtx_flag[0]的值为1时,其表示残差系数的绝对值大于1。
[0133]
当标志abs_level_gtx_flag[0]的值为1时,可以对表示残差系数的绝对值是偶数还是奇数的标志par_level_flag进行解码(s620)。当标志par_level_flag的值为0时,其表示残差系数的绝对值为偶数,并且当标志par_level_flag的值为1时,其表示残差系数的绝对值为奇数。
[0134]
接下来,可以对表示残差系数的绝对值是否大于3的标志abs_level_gtx_flag[1]
进行解码(s630)。当标志abs_level_gtx_flag[1]的值为0时,其表示残差系数的绝对值小于3。当标志abs_level_gtx_flag[1]的值为0时,可以根据标志par_level_flag的值将残差系数的绝对值确定为2或3。
[0135]
当标志abs_level_gtx_flag[1]的值为1时,其表示残差系数的绝对值大于3。
[0136]
当标志abs_level_gtx_flag[1]的值为1时,可以对表示残差大小的abs_reminder进行解码(s640)。可以通过将由语法abs_reminder表示的值向左移位1而得出的值加上3或4来得出残差系数的绝对值。
[0137]
除了图6所示的标志abs_level_gtx_flag[0]和abs_level_gtx_flag[1]之外,可以附加地对诸如abs_level_gtx_flag[2]、abs_level_gtx_flag[3]或abs_level_gtx_flag[4]等的abs_level_gtx_flag[n]进行解码。在这种情况下,当abs_level_gtx_flag[n]的值为1时,可以附加地对abs_level_gtx_flag[n+1]进行解码。
[0138]
abs_level_gtx_flag[n]可以表示残差系数的绝对值是否具有大于(2n+1)的值。当使用abs_level_gtx_flag[0]时,可以将abs_reminder设置为通过将从残差系数的绝对值减去2(n+1)而得出的值向右移位1而得出的值。
[0139]
在上述示例中,示出了通过使用sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag、abs_level_gtx_flag[1]和abs_reminder来对残差系数的绝对值进行解码。在另一示例中,可以按原样对残差系数的绝对值进行解码。在示例中,可以对表示残差系数的绝对值的语法dec_abs_level进行解码。下面将描述选择对残差系数的绝对值进行解码的方法的方法。
[0140]
在对残差系数的大小信息进行解码之后,可以对表示残差系数的符号的标志coeff_sign_flag进行解码(s530)。当标志coeff_sign_flag的值为0时,其表示残差系数为正数。另一方面,当标志coeff_sign_flag的值为1时,其表示残差系数为负数。
[0141]
如所述的那样,可以通过至少一种语法来对残差系数进行编码。可以在(一个或多个)语法的二值化过程中将残差系数改变为多个二进制位,并且可以通过熵编码对改变的二进制位进行编码。
[0142]
熵编码可以被划分成使用上下文信息的编码和不使用上下文信息的编码。上下文表示二进制位的值为0或1的概率。此处,使用上下文信息的编码/解码方法可以被称为上下文编码,以及不使用上下文信息的编码/解码方法可以被称为旁路编码。
[0143]
为了增加熵编码单元(165)和熵解码单元(210)的吞吐量,可以限制通过使用上下文信息而编码的二进制位的数目。为了限制通过使用上下文信息而编码的二进制位的数目,可以设置阈值。阈值可以被称为编码的上下文二进制位(ccb)。对于在生成的二进制位之中其计数值小于阈值的二进制位,执行使用上下文信息的编码。当计数值等于或超过阈值时,可以不再利用使用上下文信息的编码。
[0144]
阈值可以在编码器/解码器中被自适应地确定。在示例中,可以基于当前块的大小或形状、当前块中非零残差系数的数目、是否对当前块跳过变换、应用于当前块的变换核的类型、是否对当前块应用量化、颜色分量(例如,y、cb、cr)、当前块的量化参数或位深度中的至少一个确定阈值。
[0145]
在示例中,可以基于当前块中非零残差系数的数目确定阈值。具体地,可以将当前块中非零残差系数的数目乘以实数的值或者加上或减去偏移的值设置为阈值。
[0146]
在示例中,可以基于当前块中包括的像素的数目确定阈值。具体地,可以将当前块中像素的数目乘以实数的值或者加上或减去偏移的值设置为阈值。
[0147]
在示例中,可以基于当前块的大小或形状中的至少一个确定阈值。具体地,可以按块的大小和/或形状预定义至少一个阈值候选。在这种情况下,可以从与当前块的大小和/或形状对应的至少一个阈值候选中选择当前块的阈值候选。当多个阈值候选与当前块的大小和/或形状对应时,可以附加地对用于指定多个阈值候选之一的索引信息进行编码/解码。
[0148]
在示例中,可以基于是否应用变换跳过、应用于当前块的变换核或量化参数中的至少一个确定阈值。
[0149]
替选地,可以在比特流中用信号通知表示阈值的信息。该信息可以通过诸如序列、图片头部或切片头部的较高头部来编码。
[0150]
替选地,可以在编码器/解码器中固定阈值。
[0151]
如上面所描述的,根据对当前块是否跳过变换,用于对残差系数进行编码/解码的扫描顺序、gt_n_flag的数目或通过使用上下文信息(即,阈值)而编码/解码的二进制位的数目中的至少一个可能不同。当对当前块应用变换时(即,不跳过变换时),对残差系数进行编码/解码可以被称为残差编码(rc)方法。另一方面,当对当前块不应用变换时(即,跳过变换时),对残差系数进行编码/解码可以被称为变换跳过残差编码(tsrc)方法。在下文中,将详细描述在rc方法和tsrc方法中对残差系数进行编码的方法。
[0152]
图7表示在rc方法下对残差系数进行编码/解码的示例。
[0153]
为了便于描述,假设以4x4大小的子块为单位对残差系数进行编码/解码。此外,假设通过使用上下文信息(即,阈值)编码/解码的二进制位的最大数目为52。
[0154]
当应用rc方法时,可以根据从子块中右下残差系数至左上残差系数的逆对角线扫描方向对残差系数进行编码/解码。在图7中,c
15
表示子块中右下位置处的残差系数,以及c0表示子块中左上位置处的残差系数。
[0155]
此外,在图7中,具有细实线的箭头表示通过使用上下文信息而编码/解码的二进制位,以及具有粗实线的箭头表示不使用上下文信息而编码/解码的二进制位。此外,箭头之间的连接线表示每个语法的编码/解码顺序。
[0156]
在rc方法下,可以使用上至2个abs_level_gtx_flag[n]。
[0157]
表1使用公式来定义在rc方法下用于对残差系数进行编码/解码的语法。
[0158]
[表1]
[0159]
[0160][0161]
表2表示当残差系数c
15
的值为(-21)时每个语法的值。
[0162]
[表2]
[0163][0164]
表3表示在解码器中重构残差系数的过程。
[0165]
[表3]
[0166][0167]
在表3中,变量tmpcn表示在abs_remainder的值没有被反映的状态下的临时重构系数。当语法abs_remainder不存在时(例如,当abs_level_gtx_flag[0]或abs_level_gtx_flag[1]为0时),临时重构系数tmpcn可以被设置为残差系数的绝对值。另一方面,当存在语法abs_remainder时(例如,当abs_level_gtx_flag[1]为1时),残差系数的绝对值可以通过将通过abs_remainder而得出的值(具体地,将abs_remainder向左移位1而得出的值)与临时重构系数tmpcn相加得出。
[0168]
在示例中,参照表2的示例,残差系数c
15
的变量tmpc
15
的值可以被得出为5(具体为1+1+1+(1《《1))。此外,残差系数c
15
的绝对值|c
15
|可以通过将通过将abs_remainder向左移位1而得出的值(即,16)与临时残差系数tmpc
15
(即,5)相加被得出为21。
[0169]
随后,通过coeff_sign_flag的值,残差系数c0的值可以被最终重构成-21。
[0170]
轮表示编码顺序和解码顺序。在示例中,在解码器中,可以在对属于1轮的所有语法进行解码之后对属于2轮的语法进行解码。此外,可以在对属于2轮的所有语法进行解码之后对属于3轮的语法进行解码。
[0171]
在所示的示例中,2-2轮表示1轮、2-1轮和3轮的交替路径。
[0172]
当通过使用上下文信息而编码的二进制位的系数小于阈值时,可以通过1轮和2-1轮对残差系数的绝对值进行编码。另一方面,当通过使用上下文信息而编码的二进制位的系数等于或大于阈值时,可以通过2-2轮对残差系数的绝对值进行编码。
[0173]
图8表示在tsrc方法下对残差系数进行编码/解码的示例。
[0174]
为了便于描述,假设以4x4大小的子块为单位对残差系数进行编码/解码。此外,假设通过使用上下文信息(即,阈值)编码/解码的二进制位的最大数目为112。
[0175]
当应用tsrc方法时,可以根据从子块中左上残差系数至右下残差系数的对角线扫描方向对残差系数进行编码/解码。在图8中,c
15
表示子块中右下位置处的残差系数,以及c0表示子块中左上位置处的残差系数。
[0176]
此外,在图8中,具有细实线的箭头表示通过使用上下文信息而编码/解码的二进制位,以及具有粗实线的箭头表示不使用上下文信息而编码/解码的二进制位。此外,箭头之间的连接线表示每个语法的编码/解码顺序。
[0177]
在tsrc方法下,可以使用上至5个abs_level_gtx_flag[n]。
[0178]
表4使用公式来定义在tsrc方法下用于对残差系数进行编码/解码的语法。
[0179]
[表4]
[0180][0181][0182]
表5表示当残差系数c0的值为(-21)时每个语法的值。
[0183]
[表5]
[0184][0185]
表6表示在解码器中重构残差系数的过程。
[0186]
[表6]
[0187][0188]
在表6中,变量tmpcn表示在轮1过程中得出的临时重构系数。当应附加地执行轮2的编码/解码时(例如,当abs_level_gtx_flag[0]为1时),可以通过使用abs_level_gtx_flag[1]、abs_level_gtx_flag[2]、abs_level_gtx_flag[3]、abs_level_gtx_flag[4]或abs_remainder中的至少一个来更新残差系数的绝对值。
[0189]
在示例中,参照表5的示例,残差系数c0的变量tmpc0的值可以被得出为3(具体为1+1+1)。此外,残差系数c0的绝对值|c0|可以通过将通过将abs_remainder向左移位1而得出的值(即,10)和通过将abs_level_gtx_flag[1]、abs_level_gtx_flag[2]、abs_level_gtx_flag[3]和abs_level_gtx_flag[4]中的每一个向左移位1而得出的值的和(即,8)与临时残差系数tmpc0(即3)相加被得出为21。
[0190]
随后,通过coeff_sign_flag的值,残差系数c0的值可以被最终重构成-21。
[0191]
在对通过使用上下文信息而编码的二进制位的数目计数时,在对表示最后非零残差系数的位置的信息进行编码时,计数器可以被设置成不操作。换句话说,可以从计数中排除该信息。
[0192]
替选地,在按当前块中的子块对表示是否存在非零残差系数的标志进行编码时,计数器可以被设置成不操作。换句话说,可以从计数中排除该标志。
[0193]
根据本公开内容的实施方式,为了限制通过使用上下文信息而编码的二进制位的数目,当通过使用上下文信息而编码的二进制位的数目等于或大于阈值时,可以按原样对残差系数的绝对值进行编码,而不是通过使用abs_level_gtx_flag[n]对残差系数进行顺序编码。在示例中,当通过使用上下文信息而编码的二进制位的数目小于阈值时,可以通过使用sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag[n]或abs_remainder中的至少一个对残差系数的绝对值进行编码。另一方面,当通过使用上下文信息而编码的二进制位的数目等于或大于阈值时,可以对表示残差系数的绝对值的语法dec_abs_level进行编码。
[0194]
每当对通过使用上下文信息而编码的二进制位进行解码时,解码器也可以操作计数器。当计数器的值小于阈值时,可以通过使用sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag[n]或abs_remainder中的至少一个来重构残差系数的绝对值。另一方面,当计数器的值等于或大于阈值时,可以通过使用语法dec_abs_level来重构残差系数的绝对值。
[0195]
当通过使用上下文信息而编码/解码的二进制位的数目等于或大于阈值时,通过使用语法dec_abs_level执行编码/解码可以仅应用于rc方法或tsrc方法。
[0196]
替选地,对于rc方法和tsrc方法二者,当通过使用上下文信息而编码/解码的二进制位的数目等于或大于阈值时,可以通过使用语法dec_abs_level来执行编码/解码。在这种情况下,可以不同地设置rc方法和tsrc方法下的阈值。
[0197]
在对特定语法执行熵编码之前,先进行对应语法的二值化。在示例中,可以通过固定长度二值化方法、截断一元二值化方法、截断莱斯二值化方法或k阶指数哥伦布二值化方法中的至少一种生成语法的二进制位字符串。
[0198]
在其之中,可以通过使用两个参数来执行截断莱斯二值化方法。具体地,在截断莱斯二值化方法中,可以使用cmax参数和莱斯参数(criceparam)。此处,cmax参数表示要二值化的二进制位字符串的最大长度,并且其可以被称为最大长度参数。
[0199]
在截断莱斯二值化方法中,要编码的值(即,符号值)可以被划分成前缀和后缀。具体地,可以基于以下等式1得出前缀。
[0200]
[等式1]
[0201]
prefixval=symbolval》》criceparam。
[0202]
在等式1中,prefixval表示前缀值,以及symbolval表示要编码的值。随后,可以对前缀值进行二值化。在示例中,表7表示根据前缀值的二值化结果(即,二进制位字符串)。
[0203]
[表7]
[0204][0205][0206]
当前缀值小于通过将cmax参数向右移位莱斯参数criceparam(即,cmax》》criceparam)而获得的结果时,在生成长度与前缀值相同的为1的二进制位数组之后,可以生成0被添加至二进制位数组的最后的二进制位字符串。另一方面,当前缀值与通过将cmax参数向右移位莱斯参数criceparam而获得的结果相同时,可以生成长度与前缀值相同的为1的二进制位数组。
[0207]
表8示出了当通过将cmax参数向右移位莱斯参数criceparam而获得的结果为6时每个前缀的二进制位字符串。
[0208]
[表8]
[0209][0210]
当cmax参数大于要编码的值并且莱斯参数criceparam大于0时,可以附加地对后缀进行编码/解码。否则,不使用后缀。当使用后缀时,根据以下等式2,后缀值可以被得出。
[0211]
[等式2]
[0212]
suffixval=symbolval-(prefixval《《criceparam)。
[0213]
在等式2中,suffixval表示后缀值。
[0214]
可以通过固定长度二值化方法对后缀值进行二值化。应用固定长度二值化方法时,可以通过以下等式3得出用于对后缀值进行二值化的cmax参数的值。
[0215]
[等式3]
[0216]
cmax=(1《《criceparam)-1。
[0217]
通过对后缀值进行编码而生成的二进制位字符串的长度具有固定长度。在这种情况下,可以通过以下等式4得出二进制位字符串的长度。
[0218]
[等式4]
[0219]
fixedlength=ceil(log2(cmax+1))。
[0220]
在等式4中,fixedlength表示固定长度(即,二进制位字符串的长度)。ceil()函数表示提升函数。当应用固定长度二值化方法时,可以二值化的值的最大数目可以被设置为2
fixedlength
。在示例中,当变量fixedlength的值为2时,上至4个值可以被二值化。
[0221]
以下表9表示当变量fixedlength为2时,4个值被二值化的示例。
[0222]
[表9]
[0223][0224]
在有限k阶指数哥伦布二值化方法下,使用变量k、变量maxpreextlen和变量truncsuffixlen来对符号值进行二值化。具体地,表10表示在有限k阶指数哥伦布二值化方法下对符号值进行二值化的示例。
[0225]
[表10]
[0226][0227][0228]
关于残差系数,可以通过混合截断莱斯二值化方法和有限k阶指数哥伦布二值化方法来执行语法的二值化。在示例中,对于语法abs_remainder和语法dec_abs_level,可以通过混合截断莱斯二值化方法和有限k阶指数哥伦布二值化方法来执行二值化。
[0229]
在下文中,将示出对语法abs_remainder进行二值化的方法,但之后描述的示例也同样应用于对语法dec_abs_level进行二值化的情况。
[0230]
在示例中,在将语法abs_remainder划分成前缀部分和后缀部分之后,前缀部分可以通过截断莱斯二值化方法被二值化,以及后缀部分可以通过有限k阶指数哥伦布二值化方法被二值化。具体地,当语法abs_remainder的前缀作为截断莱斯二值化方法的符号值(symbolval)应用的同时,语法abs_remainder的后缀可以作为有限k阶指数哥伦布二值化方法的符号值(symbolval)被输入。
[0231]
在截断莱斯二值化方法下,符号值被划分成前缀部分和后缀部分。换句话说,语法abs_remainder的前缀部分可以被重新分类成前缀部分和后缀部分。为了便于描述,“第一”前缀关联至来自将语法abs_remainder主要分类成前缀部分和后缀部分的结果,以及“第二”前缀关联至来自将第一前缀部分重新分类成前缀部分和后缀部分的结果。当没有添加“第一”或“第二”词缀时,对应的内容通常应当应用于第一和第二前缀或者第一和第二后缀,或者应当根据上下文被解释为第一和第二前缀或者第一和第二后缀中的一个。
[0232]
仅当前缀值与通过将cmax参数向右移位莱斯参数criceparam而获得的值相同时,后缀部分的二值化可以被执行。在示例中,当通过将cmax参数向右移位莱斯参数criceparam而获得的值为6时,仅当通过由截断莱斯二值化方法对前缀进行二值化而生成
的结果为“111111”时(即,当前缀值为6时),后缀部分的二值化可以被执行。
[0233]
为了通过截断莱斯二值化方法对语法abs_remainder的前缀部分(即,第一前缀)进行二值化,应当设置cmax参数和莱斯参数criceparam的值。在这种情况下,可以根据残差系数的编码方法自适应地确定莱斯参数的值。
[0234]
在示例中,当通过tsrc方法对残差系数进行编码时,莱斯参数criceparam可以被设置为预定义常数。此处,预定义常数可以为1。替选地,预定义常数可以是自然数诸如2、3或4。
[0235]
另一方面,当通过rc方法对残差系数进行编码时,可以通过参考周围参考像素的信息来得出莱斯参数criceparam。具体地,参考在当前残差系数之前重构的至少一个残差系数,当前残差系数的莱斯参数criceparam可以被得出。
[0236]
图9是示出了用于得出莱斯参数的参考残差系数的位置的图。
[0237]
通过rc方法对残差系数进行编码时,在当前像素的右侧和/或底部位置处且与当前像素的距离为2或更小的像素可以被设置为参考像素。此处,与当前像素的距离表示与当前像素的x轴坐标差和y轴坐标差的和为2或更小的像素。在示例中,当当前像素的位置为(x,y)时,在(x,y+1)、(x,y+2)、(x+1,y)、(x+2,y)和(x+1,y+1)的位置处的像素被设置为参考像素。
[0238]
不像所示的示例,与当前像素的距离为1或更小的像素或与当前像素的距离为n或更小的像素可以被用作参考像素。此处,n可以是自然数诸如3或4等。
[0239]
随后,可以通过组合每个参考像素的绝对值得出变量locsumabs。换句话说,变量locsumabs可以表示在(x,y+1)、(x,y+2)、(x+1,y)、(x+2,y)和(x+1,y+1)的位置处的残差系数的绝对值的和。在示例中,每个残差系数的绝对值,如表3的示例中,可以基于语法sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag、abs_level_gtx_flag[1]和abs_remainder被得出。
[0240]
当得出变量locsumabs时,为了将变量locsumabs的值强制成在预定义范围内,可以应用裁剪函数。在示例中,等式5表示通过应用裁剪函数更新变量locsumabs的值的示例。
[0241]
[等式5]
[0242]
locsumabs=clip3(0,31,locsumabs-baselevel*5)。
[0243]
在等式5中,baselevel可以被设置为固定值。在示例中,baselevel可以被固定为4。替选地,基于当前块的大小、当前像素的位置、或当前像素是否与块边界相邻中的至少一个,变量baselevel的值被自适应地确定。
[0244]
替选地,根据要二值化的语法的类型,baselevel的值可以被不同地设置。在示例中,当对语法abs_remainder进行二值化时,baselevel的值被设置为4,而当对语法dec_abs_level进行二值化时,baselevel的值被设置为0。
[0245]
clip3(a、b、c)函数是通过将c与a和b进行比较来确定输出值的函数。在示例中,当c等于或小于a时,a被输出作为clip3函数的结果。当c等于或大于b时,b被输出作为clip3函数的结果。当不满足这两个条件时,c被输出作为clip3函数的结果。
[0246]
当得出变量locsumabs时,莱斯参数criceparam可以通过参照预定义查找表被得出。表11示出了变量locsumabs的值与莱斯参数criceparam之间的映射关系。
[0247]
[表11]
[0248][0249]
如表9中所示,根据变量locsumabs的值,莱斯参数criceparam的值可以被确定为0至3之一。
[0250]
与上述示例相反,当通过tsrc方法对残差系数进行编码时,莱斯参数criceparam可以通过参考残差系数的信息被得出,以及当通过rc方法对残差系数进行编码时,莱斯参数criceparam可以被设置为固定值。当通过tsrc方法对残差系数进行编码时,周围的残差系数可以包括以下像素,其与当前像素的距离为n或更小同时位于当前像素的顶部和/或左侧位置处。此处,n可以是自然数诸如1、2或3。
[0251]
替选地,对于tsrc方法和rc方法中的每一种,可以将莱斯参数criceparam设置为预定义值。
[0252]
替选地,对于tsrc方法和rc方法中的每一种,可以通过参考参考残差系数的信息得出莱斯参数criceparam。
[0253]
当得出莱斯参数criceparam时,基于莱斯参数criceparam,cmax参数可以被得出。在示例中,等式6示出了得出cmax参数的示例。
[0254]
[等式6]
[0255]
cmax=6《《cricepaam。
[0256]
当得出cmax参数和莱斯参数criceparam时,可以如在以下等式7中得出语法abs_remainder的第一前缀。
[0257]
[等式7]
[0258]
prefixval=min(cmax,abs_remainder)。
[0259]
当得出第一前缀prefixval时,可以由通过使用cmax参数和莱斯参数criceparam的截断莱斯二值化方法对第一前缀prefixval进行二值化。具体地,可以输入第一前缀prefixval作为截断莱斯二值化的符号值symbolval。
[0260]
具体地,为了通过截断莱斯二值化方法对第一前缀prefixval进行二值化,可以将第一前缀分类成第二前缀和第二后缀。
[0261]
在示例中,假设语法abs_remainder的值为23,以及莱斯参数criceparam为2。通过等式6,cmax参数可以被得出为24(6《《2)。并且通过等式7,语法abs_remainder的第一前缀prefixval可以被设置为23。
[0262]
基于cmax参数和莱斯参数criceparam,第一前缀prefixval可以被分类成第二前缀和第二后缀。在示例中,可以通过等式1得出第一前缀prefixval的前缀部分(即,第二前
缀),以及可以通过等式2得出第一前缀prefixval的后缀部分(即,第二后缀)。
[0263]
在示例中,当第一前缀prefixval被设置为符号值symbolval时,可以通过等式1将第二前缀prefixval设置为5。第二前缀prefixval的值小于6,因此其可以被二值化为如表8中的“111110”,6是将cmax参数向右移位莱斯参数criceparam而获得的结果值。
[0264]
cmax参数大于要编码的值(即,第一前缀23),以及莱斯参数criceparam具有大于0的值,因此第一前缀的后缀(即,第二后缀)可以被附加地二值化。具体地,通过等式2,第二后缀suffixval的值可以被得出为3(23-(5《《2))。并且,用于通过固定长度二值化方法对第二后缀进行二值化的cmax参数的值可以通过等式3得出为3((1《《2)-1)。此外,可以通过等式4将通过对第二后缀进行二值化而生成的二进制位字符串的长度得出为2。因此,第二后缀可以被二值化为“11”。
[0265]
如上所述,作为对23即语法abs_remainder的第一前缀值进行二值化的结果,“11111011”的二进制位字符串被生成。二进制位字符串与通过将cmax参数向右移位莱斯参数criceparam而获得的结果值(即111111)不同,因此可以省略生成语法abs_remainder的后缀(即,第一后缀)的过程。
[0266]
接下来,描述当语法abs_remainder的值为25并且莱斯参数criceparams的值为2时的二值化过程。通过等式6,cmax参数可以被得出为24(6《《2)。并且通过等式7,语法abs_remainder的第一前缀prefixval可以被设置为24。
[0267]
基于cmax参数和莱斯参数criceparam,可以将第一前缀prefixval分类成第二前缀和第二后缀。在示例中,当第一前缀prefixval被设置为符号值symbolval时,第二前缀prefixval可以通过等式1被设置为6。第二前缀prefixval的值小于6,因此第二前缀的值可以被二值化为如表8中的“111111”,6是通过将cmax向右移位莱斯参数criceparam而获得的结果值。
[0268]
cmax参数不大于要编码的值(即,第一前缀24),因此第一前缀的后缀(即,第二后缀)的二值化可以被省略。因此,作为对24即语法abs_remainder的第一前缀值进行二值化的结果,“111111”的二进制位字符串被生成。二进制位字符串与通过将cmax参数向右移位莱斯参数criceparam而获得的结果值(即,111111)相同,因此可以附加地执行对语法abs_remainder的后缀(即,第一后缀)进行二进制化的过程。
[0269]
可以如在以下等式8中得出语法abs_remainder的第一后缀。
[0270]
[等式8]
[0271]
suffival=abs_remainder-cmax。
[0272]
通过等式8,语法abs_remainder的第一后缀suffixval可以被得出为1(25-24)。
[0273]
可以通过有限k阶指数哥伦布二值化方法对第一后缀suffixval进行二值化。在有限k阶指数哥伦布二值化方法下,变量k可以被设置为通过将1添加至莱斯参数criceparam(即,criceparam+1)而获得的值。此外,可以基于第一后缀suffixval的值确定变量maxpreextlen和变量truncsuffixlen。在示例中,当输入第一后缀suffixval作为符号值symbolval时,变量maxpreextlen和变量truncsuffixlen的值可以根据表10中所公开的步骤得出。例如,当第一后缀suffixval为1时,根据表10的示例,变量maxpreextlen和变量trunsuffixlen可以分别被设置为11和15。
[0274]
如上述示例中,可以通过使用基于莱斯参数criceparam的有限k阶指数哥伦布二
值化方法和截断莱斯二值化方法对与残差系数相关的语法abs_remainder和语法dec_abs_level进行二值化。在这种情况下,为了语法的有效二值化,可以说将莱斯参数criceparam设置为适当的值是非常重要的。
[0275]
如上述示例中,可以基于locsumabs——参考残差系数的绝对值的和——得出莱斯参数。但是,当图像的位深度大或量化参数的值小时,表示参考残差系数的绝对值的和的变量locsumabs的值也趋于具有大的值。还在这种情况下,当基于上述等式5和表9设置莱斯参数criceparam时,莱斯参数criceparam的值将趋于被设置为大的值(例如,2或3)。
[0276]
换句话说,当图像的位深度大或量化参数的值小时,出现仅使用变量locsumabs的值难以将莱斯参数criceparam设置为适当值的问题。
[0277]
为了解决该问题,根据变量locsumabs所属的区间,提出了得出莱斯参数criceparam的方法。莱斯参数criceparam的值也可以通过应用后述实施方式被设置为与表9中定义的值(例如,0至3)不同的值(例如,等于或大于4)。
[0278]
图10说明了根据变量locsumabs所属的区间确定莱斯参数criceparam的示例。
[0279]
当阈值t被确定时,可以通过使用阈值t来定义每个区间。具体地,区间0可以被定义成从0至t-1,以及排除最后区间和区间0的区间n可以被定义成从(t《《(n-1)s)至((t《《ns)
–
1)。最后区间m可以被定义为等于或大于(t《《(m-1)s)的区间。
[0280]
在图10中,示出了定义5个区间,但可以定义比所示的更多或更少的区间。
[0281]
在这种情况下,可以在编码器和解码器中预定义区间的数目。例如,可以预定义3、4、5或6个区间。替选地,可以基于位深度、量化参数或阈值中的至少一个自适应地确定区间的数目。
[0282]
替选地,根据语法的类型,区间的数目可以被不同地设置。在示例中,语法abs_remainder的区间的数目和语法dec_abs_level的区间的数目可以不同。
[0283]
可以在编码器和解码器中预定义阈值t。替选地,可以在比特流中用信号通知用于确定阈值t的信息。信息可以通过序列参数集(sps)、图片参数集(pps)或切片报头用信号通知。信息可以是指示多个阈值候选之一的索引信息。替选地,信息可以指示阈值或指示从阈值减去预定值(例如,1)而得出的值。
[0284]
替选地,可以基于位深度、量化参数、当前块的大小/形状或残差系数的编码方法(例如,应用tsrc方法还是rc方法)中的至少一个自适应地确定阈值t。
[0285]
替选地,根据语法的类型,阈值可以被不同地设置。例如,语法abs_remainder的阈值t和语法dec_abs_level的阈值t可以不同。
[0286]
可以在编码器和解码器中预定义变量s。替选地,用于确定变量s的信息可以在比特流中用信号通知。信息可以通过序列参数集(sps)、图片参数集(pps)或切片报头用信号通知。信息可以是指示多个变量s候选之一的索引信息。替选地,信息可以指示变量s或指示从变量s减去预定值(例如,1)而得出的值。
[0287]
替选地,可以基于位深度、量化参数、当前块的大小/形状或残差系数的编码方法(例如,应用tsrc方法还是rc方法)中的至少一个自适应地确定变量s。
[0288]
替选地,根据语法的类型,变量s可以被不同地设置。例如,语法abs_remainder的变量s和语法dec_abs_level的变量s可以不同。
[0289]
可以按每个区间对移位参数进行映射。在示例中,与区间0对应的移位参数shift
可以具有0的值,以及与排除区间0的区间n对应的移位参数shift可以被设置为(s《《(n-1))。在示例中,与区间1对应的移位参数shift可以具有s的值,与区间2对应的移位参数shift可以具有2s的值,以及与区间3对应的移位参数shift可以具有4s的值。
[0290]
在通过将每个参考像素的残差系数的绝对值的和相加得出变量locsumabs之后,可以确定变量locsumabs所属的区间。当变量locsumabs所属的区间被确定时,可以获得与变量locsumabs所属的区间对应的移位参数。当获得与变量locsumabs所属的区间对应的移位参数时,可以基于获得的移位参数对变量locsumabs进行缩放。在示例中,如在下面的等式9中,可以通过对变量locsumabs进行缩放来更新变量locsumabs。
[0291]
[等式9]
[0292]
locsumabs=locsumabs》》shift。
[0293]
随后,可以使用变量locsumabs和查找表来得出初始莱斯参数criceparam。在示例中,在通过对变量locsumabs应用等式5中的裁剪函数来更新变量locsumabs之后,可以使用更新后的变量locsumabs和表9中的查找表来得出初始莱斯参数criceparam。
[0294]
随后,可以通过组合初始莱斯参数criceparam和移位参数shift来获得最终莱斯参数criceparam的值。在示例中,如以下等式10的示例中,扩展的莱斯参数criceparam可以通过将移位参数shift与初始莱斯参数criceparam相加而获得。
[0295]
[等式10]
[0296]
criceparam=criceparam+shift。
[0297]
当得出扩展的莱斯参数criceparam时,可以基于扩展的莱斯参数执行语法abs_remainder或语法dec_abs_level的二值化。
[0298]
在上述示例中,示出了通过确定变量locsumabs所属的区间的过程获得移位参数shift。
[0299]
在另一示例中,在执行变量locsumabs的归一化之后,可以基于归一化变量locsumabs的值得出移位参数shift,同时省略确定变量locsumabs所属的区间的过程。具体地,如下面等式11的示例中,可以通过对变量locsumabs的值进行缩放获得变量scaledval。
[0300]
[等式11]
[0301]
scaledval=(locsumabs*a)》》b。
[0302]
在等式11中,变量a和变量b表示用于对变量locsumabs进行缩放的缩放参数。变量a和变量b中的至少一个可以根据要编码/解码的语法的类型被不同地设置。例如,在对语法abs_remainder进行二值化以及对语法dec_abs_level进行二值化的情况下,变量a和变量b中的至少一个可以被不同地设置。
[0303]
替选地,变量a和变量b中的至少一个可以按颜色分量被独立地确定,或者按颜色分量被不同地设置。
[0304]
替选地,变量a和变量b中的至少一个可以被设置为编码器和解码器中预定义的值。
[0305]
替选地,可以用信号通知用于确定变量a和变量b中的至少一个的信息。可以通过sps、pps或切片报头用信号通知信息。在示例中,可以分别用信号通知用于确定变量a的第一信息或用于确定变量b的第二信息,或者可以用信号通知指定配置有变量a和变量b的集合的多个集合候选中的至少一个的索引信息。
[0306]
替选地,可以基于位深度、量化参数、当前块的大小/形状或残差系数的编码方法(例如,应用tsrc方法还是rc方法)中的至少一个自适应地确定变量a和变量b中的至少一个。
[0307]
当得出变量scaledval时,可以通过使用该变量得出移位参数shift。在示例中,如在下面的等式12中,可以得出移位参数shift。
[0308]
[等式12]
[0309]
shift=(scaledval==0)?0:floor(log2(scaledval))。
[0310]
在等式12中,floor(x)函数输出对x向下取整的结果。通过等式12,当变量scaledval为0时,移位参数shift可以被设置为0,并且当变量scaledval不为0时,移位参数shift可以被设置为floor(log2(scaledval))。
[0311]
当得出移位参数shift时,如在等式9的示例中,可以更新变量locsumabs。随后,可以使用变量locsumabs和查找表来得出初始莱斯参数criceparam。在示例中,在通过对变量locsumabs应用等式5中的裁剪函数更新变量locsumabs之后,可以使用更新后的变量locsumabs和表9中的查找表来得出初始莱斯参数criceparam。
[0312]
随后,如等式10的示例中,可以通过组合初始莱斯参数criceparam和移位参数shift获得最终莱斯参数criceparam的值。
[0313]
用于去二值化的变量也可以在解码器中以与编码器中相同的方式被获得。例如,可以在编码器和解码器中普遍应用得出莱斯参数criceparam的上述方法。当获得莱斯参数criceparam时,可以通过二进制位字符串的去二值化重构语法abs_remainder和/或语法dec_abs_level的值。
[0314]
在上述实施方式中使用的语法仅是为了便于描述而命名。
[0315]
当基于解码处理或编码处理描述的实施方式应用于编码处理或解码处理时,其包括在本公开内容的范围内。当以与描述不同的顺序改变以预定顺序描述的实施方式时,其也包括在本公开内容的范围内。
[0316]
基于一系列阶段或流程图来描述上述实施方式,但是其不限制本公开内容的时间序列顺序,并且如果必要,其可以同时或以不同的顺序执行。另外,可以将配置上述实施方式中的框图的每个部件(例如,单元、模块等)实现为硬件装置或软件,并且多个部件可以被组合并且被实现为一个硬件装置或软件。可以将上述实施方式记录在通过以可以由各种计算机部件执行的程序指令的形式实现的计算机可读记录介质中。计算机可读记录介质可以单独地或组合地包括程序指令、数据文件、数据结构等。特别地被配置成存储和执行诸如硬盘、软盘和磁带的磁介质、诸如cd-rom、dvd的光记录介质、诸如光软盘的磁光介质以及诸如rom、ram、闪存等的程序指令的硬件装置包括在计算机可读记录介质中。硬件装置可以被配置成作为一个或更多个软件模块来操作以执行根据本公开内容的处理,并且软件装置可以被配置成作为一个或更多个硬件模块来操作以执行根据本公开内容的处理。
[0317]
工业适用性
[0318]
本公开内容可以应用于可以对图像进行编码/解码的电子装置。
技术特征:
1.一种对图像进行解码的方法,所述方法包括:确定对当前块是否跳过逆变换;解析关于所述当前块的残差系数的信息;通过对所述信息进行逆二值化重构所述残差系数;以及对所述残差系数选择性地应用所述逆变换,其中,所述逆二值化基于针对所述残差系数的莱斯参数被执行,并且其中,所述莱斯参数基于第一变量得出,所述第一变量基于参考残差系数的绝对值的和得出。2.根据权利要求1所述的方法,其中,所述莱斯参数基于映射至多个区间之中所述第一变量所属的区间的移位参数而得出。3.根据权利要求2所述的方法,其中,所述莱斯参数通过将所述移位参数与初始莱斯参数相加得出,并且其中,所述初始莱斯参数基于第二变量获得,所述第二变量通过基于所述移位参数对所述第一变量进行缩放而得出。4.根据权利要求2所述的方法,其中,所述区间的数目在解码器中具有预定义值,并且其中,所述预定义值为5。5.根据权利要求2所述的方法,其中,所述区间的数目根据对所述当前块是否跳过所述逆变换而不同地确定。6.根据权利要求2所述的方法,其中,所述多个区间中的每一个的范围由阈值确定。7.根据权利要求6所述的方法,其中,所述阈值基于对所述当前块是否跳过所述逆变换、所述当前块的大小、所述当前块的形状或所述当前块的量化参数中的至少之一而确定。8.根据权利要求6所述的方法,其中,在比特流中明确地用信号通知表示所述阈值的信息。9.根据权利要求1所述的方法,其中,所述莱斯参数通过将移位参数与初始莱斯参数相加得出,并且其中,所述移位参数基于通过对所述第一变量进行缩放而获得的第二变量得出。10.根据权利要求10所述的方法,其中,所述移位参数通过对所述第二变量应用地板函数得出。11.根据权利要求1所述的方法,其中,所述信息是表示4与所述残差系数的绝对值之间的差的第一语法或表示所述残差系数的绝对值的第二语法。12.一种对图像进行编码的方法,所述方法包括:确定对当前块是否跳过变换;通过应用或跳过所述变换获得所述当前块的残差系数;确定针对所述残差系数的语法值;以及对所述语法进行二值化,其中,所述二值化基于针对所述残差系数的莱斯参数被执行,并且其中,所述莱斯参数基于第一变量得出,所述第一变量基于参考残差系数的绝对值的和得出。13.一种计算机可读记录介质,所述计算机可读记录介质存储压缩的视频数据,其中:
所述压缩的视频数据包括关于当前块的残差系数的信息,所述残差系数通过对所述信息进行逆二值化被重构;所述逆二值化基于针对所述残差系数的莱斯参数被执行,并且所述莱斯参数基于第一变量得出,所述第一变量基于参考残差系数的绝对值的和得出。
技术总结
根据本公开内容的对图像进行解码的方法包括以下步骤:确定对当前块是否跳过逆变换;解析关于当前块的残差系数的信息;通过对信息进行逆二值化重构残差系数;以及对残差系数选择性地应用逆变换。此处,逆二值化可以基于针对残差系数的莱斯参数被执行,并且莱斯参数可以基于第一变量得出,该第一变量基于参考残差系数的绝对值的和得出。系数的绝对值的和得出。系数的绝对值的和得出。
技术研发人员:任星元
受保护的技术使用者:株式会社KT
技术研发日:2022.02.25
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/