基于块搜索和正交匹配追踪的视频变换编码方法

文档序号:10516172阅读:266来源:国知局
基于块搜索和正交匹配追踪的视频变换编码方法
【专利摘要】本发明公开了一种基于块搜索和正交匹配追踪的视频变换编码方法,包括:对当前编码块进行运动估计以获得时间预测值,并基于所述时间预测值获得当前编码块的残差;基于当前编码块的空间邻域和时间预测,搜索当前编码块的最佳匹配块,并利用聚类算法获得正交匹配追踪OMP变换的词典;以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数,完成视频变换编码。该方法可以达到更好的能量聚集度,从而提升压缩效率,同时,该变换的计算复杂度比信号依赖的变换要低,便于解码。
【专利说明】
基于块搜索和正交匹配追踪的视频变换编码方法
技术领域
[0001] 本发明设及视频编码技术领域,尤其设及一种基于块捜索和正交匹配追踪的视频 变换编码方法。
【背景技术】
[0002] 近年来,随着高清、超高清视频的普及,视频原始数据量急剧增加,给存储和传输 带来巨大压力。如何进一步提高视频编码的压缩效率是一个至关重要的问题。
[0003] 目前广泛采用的视频编码标准,如H. 264和肥VC(High Efficiency Video Coding,高性能视频编码),都基于混合视频编码框架,一般由W下几部分组成,预测 (Prediction)、变换(Transform)、量化(Quantization)和赌编码巧ntropy Coding)。其中, 变换技术用于处理当前编码块的预测残差,使其能量集中在少数几个系数上(而其他系数 为零),从而去除残差中的空间冗余。在皿VC标准中,规定主要采用离散余弦变换(DCT),部 分采用离散正弦变换(DST)。运些变换的基函数都是固定的,并不会随着当前编码块的残差 而改变。因此,在处理具有不同特性的残差时,DCT/DST并不总是能够得到很好的能量聚集, 使得编码效率低下。
[0004] 针对固定变换基函数存在的问题,Lan等提出了信号依赖的变换(SDT) [C丄an, J.Xu,G.Shi,F.Wu, "Exploiting non-local correlation via signal-dependent tr曰nsform(SDT)IEEE Journal of Selected Topics in Signal Processing, vol. 5, no . 7,pp. 1298 -1308,2011 ],该方法的主要思路是通过块捜索找出与当前编码块可能相似 的图像块,利用运些相似块采用Karhunen-Logve变换化LT)求得一组正交基函数,再对当前 块的残差进行变换。因此,每个编码块的基函数都可能各不相同,较好地适应了残差的不同 特性。然而该方法存在的问题是化T的计算复杂度非常高,可能造成视频解码计算速度慢而 无法满足实际应用的需求。

【发明内容】

[0005] 本发明的目的是提供一种基于块捜索和正交匹配追踪的视频变换编码方法,可W 提升压缩效率且尽量减少变换的计算复杂度。
[0006] 本发明的目的是通过W下技术方案实现的:
[0007] -种基于块捜索和正交匹配追踪的视频变换编码方法,包括:
[0008] 对当前编码块进行运动估计W获得时间预测值,并基于所述时间预测值获得当前 编码块的残差;
[0009] 基于当前编码块的空间邻域和时间预测,捜索当前编码块的匹配块,并利用聚类 算法获得正交匹配追踪0MP变换的词典;
[0010] W当前编码块的残差在0MP变换的词典上进行0MP变换,获得变得系数,完成视频 变换编码。
[0011] 所述基于所述时间预测值获得当前编码块的残差包括:
[0012] 将当前编码块的原始值减去时间预测值获得当前编码块的残差。
[0013] 所述基于当前编码块的空间邻域和时间预测,捜索当前编码块的匹配块包括:
[0014] 构建捜索基准化rget化tch:将当前编码块的上边与左边呈倒L型的重建区域作 为模版Template,并在当前编码块的位置上加入时间预测的像素值,其大小等于当前编码 块的大小;其中,当前编码块的大小为NXN,Template中左边的宽度和上边的高度均为T; [001引利用MSE的准则在参考帖中捜索相似的块:
[0016]
[0017]其中,Pcandi为参考帖中重建区域的一个块,ppatch为构建的化rget化tch,二者的 大小均为(化T-1 ) X (化T-1 ) ; Pcandi ( i,j )表示位置(i,j )处的像素值,类比于ppatch( i,j );
[001引选取具有最小Μ沈的前Μ个块心,1 = 0,1,2, . . .,M-1作为匹配块参与词典的构 建。
[0019] 所述利用聚类算法获得0MP变换的词典包括:
[0020] 获取0MP变换所需的基%為=目L泡-=化l,2,...,M-1 ;其中,於α。,,.表示第1个 匹配块托《去除倒L型Template后的像素值,pmcp为运动补偿预测的像素值;
[002。 将S,进行能量归一化:X/ = VI X/1;其中,I XII是辜的模;
[0022] 将能量归一化后的向量作为0MP变换的词典,词典大小为M;
[0023] 或者,获取0MP变换所需的基草后,利用聚类算法将式,1 = 0,1,2,. . .,M-1进行聚 类,取K个聚类中屯、Q:Q=[山,U2,. . .,UK];
[0024] 再对聚类中屯、Q中的各个元素进行相应的能量归一化,将能量归一化后的聚类中 屯、Q作为0MP变换的词典,词典大小为K。
[0025] 所述W当前编码块的残差在0MP变换的词典上进行0MP变换,获得变得系数包括:
[0026] 当前编码块的残差为r,0MP变换的词典为D,词典D的大小为Μ或者为K,则0MP变换 即为求解下述方程:r = Dy;其中,y为变换系数;求解时的输入参数为r、DW及给定非零变换 系数的个数m;
[0027] 假设词典D的大小为K,则求解包含位置信息Pm的变换系数yERKxi的过程如下:
[0028] 曰、初始化:令:r〇 = :r,y(w)=0,w = 0,l,. . .,Κ-1,4=0,被选择词典D中的元素集合 φ〇=0,t = l;其中,y(w) =0表示初始化时将所有变换系数都设为0;
[0029] b、按下述公式找到当前状态下最优词典D中的元素的下标入: 乂 =arg max |<>|; &=1,2,...,A
[0030] C、利用找到的下标λ更新第t次迭代后的位置集合Pt = Pt-iU{A},W及更新被选择 词典D中的元素集合〇t= 〇t-i U {m},并令m = 0;
[0031] d、求解系数yt:y, ?φ>,其中,δ为常数,I表示大小为tXt的单位矩 阵,yt表示第t次迭代获得的变换系数,其维度为t X 1;
[0032] e、t = t+l,如果t<m,则跳至步骤b;
[00削 f、此时,t=m,得到PmeRmxi,ymerxi,并计算最终的包含位置信息的变换系数ye 护^1^讯(3))=7。(3),3 = 0,1,...,111-1;其中瓜(3)为最终得到的集合?。中的第8个元素的 值,ym表示第m次迭代获得的变换系数,其维度为m X 1,ym( s)表示ym中第s个元素。
[0034] 该方法还包括:
[0035] 对包含位置信息的变换系数进行量化与赌编码处理:1)进行缩放处理:y(Pt(s)) = y(Pt(s))<<(15-bitDepth-logTrSize);其中,logTrSize = log2N,bitDep1:h是当前编码 器的比特深度;2)对缩放处理后的变换系数进行量化处理,获得量化后的变换系数j);3)对 量化后的系数束进行赌编码,其过程如下:a、用一个长度为K的二值向量,表示量化后的系数 的每个位置是否为0,对该二值向量进行编码;b、对于每个非零系数进行如下编码:先编一 个二值flag表明该系数的绝对值是否大于1,如果不大于1,结束该系数的编码;如果大于1, 跳至步骤c;c、编一个flag表明该系数的绝对值是否大于2,如果不大于2,结束该系数的编 码;如果大于2,跳至步骤d;d、对系数的绝对值减去3,然后进行指数哥伦布编码;e、对系数 的正负性进行编码;
[0036] 对赌编码后的变换系数进行反0MP变换获得重建残差f。
[0037] 由上述本发明提供的技术方案可W看出,对于具有特定性质的残差,该变换方法 相比传统的离散余弦/正弦变换(DCT/DST)能够达到更好的能量聚集度,从而提升压缩效 率,同时,该变换的计算复杂度比SDT要低,便于解码。
【附图说明】
[0038] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据运些附图获得其他 附图。
[0039] 图1为本发明实施例提供的一种基于块捜索和正交匹配追踪的视频变换编码方法 的流程图;
[0040] 图2为本发明实施例提供的构建的化rget Patch示意图;
[0041 ]图3为本发明实施例提供的获得0MP变换的词典的流程图;
[0042] 图4为本发明实施例提供的获取最佳匹配块W及所需基的示意图;
[0043] 图5为本发明实施例提供的选取最优变换的流程图。
【具体实施方式】
[0044] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明的保护范围。
[0045] 图1为本发明实施例提供的一种基于块捜索和正交匹配追踪的视频变换编码方法 的流程图。如图1所示,其主要包括如下步骤:
[0046] 步骤11、对当前编码块进行运动估计W获得时间预测值,并基于所述时间预测值 获得当前编码块的残差。
[0047] 步骤12、基于当前编码块的空间邻域和时间预测,捜索当前编码块的匹配块,并利 用聚类算法获得正交匹配追踪(0MP)变换的词典。
[0048] 步骤13、W当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数,完 成视频变换编码。
[0049] 为了便于理解,下面结合附图对本发明做详细的说明。
[0050] 本发明实施例的上述方案可W应用于肥VC或者其它类似的视频编码方法中。
[0051] 本领域技术人员可W理解,对当前编码块进行运动估计W获得时间预测值可W通 过常规技术来实现,此外,所述的基于所述时间预测值获得当前编码块的残差,可W为将当 前编码块的原始值减去时间预测值获得当前编码块的残差。
[0052] 本发明实施例中,获得0MP变换的词典的步骤如图3所示;主要包括:
[0053] 1)构建捜索基准(Target Patch):如图2所示,将当前编码块的上边与左边呈倒L 型的重建区域作为模版(Template),同时,为了保证捜到的块和当前编码块具有很高的相 似性,还在当前编码块的位置上加入时间预测(例如运动补偿预测MC prediction)的像素 值,其大小等于当前编码块的大小;其中,当前编码块的大小为NXN,模板的宽度为T,运里 的宽度指的是当前编码块左边的宽度和上边的高度,二者一致。(示例性的,T可W固定为3, 或者可W根据当前块的宽度N来设定)。
[0054] 2)利用最小化均方误差(MSE)的准则在参考帖中捜索相似的块,运里,MSE的计算 方式为:
[0化5]
[00?]其中,Pcandi为参考帖中重建区域的一个块,PcandiU,j)表示位置(i,j)处的像素 值,类比于化atGh(i,j)ePpatGh为上一步骤所构建的化rget化tch,二者的大小均为(N巧)X (化 T)。
[0化7] 3)选取具有最小Μ沈的前Μ个块,1 = 0,1,2, . . .,M-1作为匹配块参与词典的 构建。此处,Μ的值可W确定,也可W根据当前块的大小或其他因素进行设定。
[0化引4)获取0ΜΡ变换所需的基馬(为妒X 1的一维向量):單=耗赫-p",w,/ = (化2,...,'W-1 ; 其中,联。》r表示第1个匹配块pL·去除倒L型Template后的像素值,pmcp为运动补偿预测的 像素值,其中托胃,,和Pmw W同样的光栅扫描顺序变成妒X 1的一维向量。
[0059] 如图4所示,为上述步骤3)-4)的示意图,耗。对应图4中的b 1,b2,b98,b99等;pmcp 对应图4中的p。
[0060] 5)可选地,利用聚类算法将華,1 = 0,1,2, . . .,M-1进行聚类,取Κ个聚类中屯、Q:Q = [Ul,U2, . . . ,UK]。
[0061] 示例性的,聚类方法可W为K-means聚类,Κ的取值可W由当前块的大小确定。例 如,对于变换块大小4x4,Κ = 8;对于变换块大小8x8,Κ= 16;对于变换块大小为16x16,Κ = 32;对于变换块大小为32χ32,Κ = 64。上述给的Κ的值是通过实验获得的最优值,理论上Κ的 范围是1~Μ之间均可。此外,也可使用其他非监督的聚类方法。
[0062] 6)为了消除某些基的能量主导性,将奉进行能量归一化啤二單其中,1x11是 %的模;若实施上述第五步聚类,则对ur''UK进行相应的能量归一化。
[0063] 7) W能量归一化后的向量作为词典,词典的大小为Μ(无聚类情况)或K(有聚类情 况)。
[0064] 本发明实施例中,W当前编码块的残差在上述获得的词典上进行0MP变换,获得变 换系数,具体包括:
[0065] 当前编码块的残差为r (维度护X 1),0MP变换的词典为D(词典D的大小为Μ或者K, 也就是说,词典可WD为聚类并归一化后的结果,维度Ν2ΧΚ,也可W为无聚类情况下的归一 化结果,维度护X Μ),则0ΜΡ变换即为求解下述方程:r = Dy;其中,y (维度Κ X 1或者Μ X 1)为 变换系数;求解时的输入参数为r、DW及给定非零变换系数的个数m,求解获得的输出为包 含位置信息Pm(被选择的m个基(此处的基为词典D中的元素)的位置,每个位置的范围是1~ K,m<=K,或者1~M,m<=M)的变换系数yERKxi或者,yERMxi;
[0066] 假设词典D的大小为K(即W归一化后的Q为词典D),则求解过程如下:
[0067] 曰、初始化:令r〇 = r,变换系数y(v,') =化ir二0,U.,人'-L G=0,被选择基的集合 &。=0,/ =1滿中,y(w) =0表示初始化时将所有变换系数都设为0;
[006引 b、按下述公式找到当前状态下最优基的下标λ:义=wg ,,i世X、1< n-i,% >1;
[0069] C、利用找到的下标λ更新位置集合Pt(Pt表示第t次迭代后的位置集合),Pt = Pt-i U (Μ,W及更新被选择基的集合Φ*= Φ*-ι U {ι?λ},并令m = 0;
[0070] d、求解系数=('C!)>,-W/) Ιφ>,其中,δ是常数,例如δ = 1〇Λ?表示大小为t X t的单位矩阵,yt表示第t次迭代获得的变换系数,其维度为t X 1;
[0071 ] e、t = t+l,如果t<m,则跳至步骤b;
[00巧 f、此时,t=m,得到PmeRmxi,ymerxi。并计算最终的包含位置信息的变换系数yE RKXl:y(Pm(S))=ym(S),S = 0,1,. . .,m-l。其中,Pm(S)指的是最终得到的集合Pm中的第S个元 素的值(即在第S步迭代中选择的基的下标),ym表示第m次迭代获得的变换系数,其维度为m X 1,ym(s)表示ym中第S个元素。
[0073] 需要说明的是,上述求解过程是W归一化后的Q作为词典D进行说明,本领域技术 人员可W理解,也可W采用无聚类情况下的归一化结果作为词典D来求解获得最终的变换 系数yERMxi,具体过程与前文类似,区别仅在于m取值大小及词典D中的元素数量与表达式 不同。
[0074] 上述过程中,非零变换系数的个数m在本实例中是通过令m=l~K,分别计算其 Rate-Disto;rtion(率失真)的性能来选择最优的值。
[0075] 此外,类似于DST/DCT变换系数,0MP变换系数也需要进行量化和赌编码。本实施例 中采用的步骤如下:
[0076] 1)为了和DST/DCT系数保持一致,对0MP变换系数进行W下的缩放:y(Pt(s))=y(Pt (S)) < < (15-bitDepth-logTrSize);其中,logTrSize = logsN,本领域技术人员可 W理解 bitD巧th是当前编码器的比特深度。
[0077] 2)对缩放处理后的变换系数进行量化处理,获得量化后的变换系数#。本领域技 术人员可W理解,0MP系数的量化方式可W为均匀量化,沿用肥VC的均匀量化器。
[0078] 3)对量化后的系数少进行赌编码,其过程如下:a、首先用一个长度为K的二值向 量,表示量化后的系数的每个位置是否为0,对该二值向量进行编码;b、对于每个非零系数 进行如下编码:先编一个二值flag表明该系数的绝对值是否大于1,如果不大于1,结束该系 数的编码;如果大于1,跳至步骤c;c、编一个flag表明该系数的绝对值是否大于2,如果不大 于2,结束该系数的编码;如果大于2,跳至步骤d;d、对系数的绝对值减去3,然后进行指数哥 伦布编码;e、对系数的正负性进行编码。
[0079] 同时,还需要对赌编码后的变换系数进行反0MP变换获得重建残差吗'·,
[0080] 需要强调的是,编码端需要0MP正变换和反变换,解码端只需0MP反变换,其中编解 码端W同样的方式获得词典,W保证编解码匹配。
[0081 ]另一方面,如图5所示,在应用于皿VC混合编码结构中时,还可W将上述方案与传 统的DST/DCT方案相结合来选择最佳变换方案。即:编码器变换编码部分,对于一个变换单 元(transform unit ,Τυ),计算用DST/DCT进行变换和反变换得到的Distortion和编码比特 数,计算其Rate-Disto;rtion Cost (率失真代价)。同时计算用0MP变换和反变换的Rate- Disto;rtion Cost,选择Rate-Disto;rtion Cost最小的变换作为最终的变换。
[0082] 另外,还将本发明实施例的方案与传统的DST/DCT方案进行对比:编码给定码率的 肥V邱马流,编码结构采用低延时的IPPP结构,测试平台为歷12.0,测试序列为肥VC标准测试 序列中的BQSquare。与传统的DST/DCT相比,本发明实施例的方案能提高Rate-Distodion 性能19.9%。
[0083] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到上述实施例可 W通过软件实现,也可W借助软件加必要的通用硬件平台的方式来实现。基于运样的理解, 上述实施例的技术方案可软件产品的形式体现出来,该软件产品可W存储在一个非易 失性存储介质(可W是CD-ROM,U盘,移动硬盘等)中,包括若干指令用W使得一台计算机设 备(可W是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0084] W上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该W权利要求书的保护范 围为准。
【主权项】
1. 一种基于块搜索和正交匹配追踪的视频变换编码方法,其特征在于,包括: 对当前编码块进行运动估计以获得时间预测值,并基于所述时间预测值获得当前编码 块的残差; 基于当前编码块的空间邻域和时间预测,搜索当前编码块的匹配块,并利用聚类算法 获得正交匹配追踪OMP变换的词典; 以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数,完成视频变换 编码。2. 根据权利要求1所述的一种基于块搜索和正交匹配追踪的视频变换编码方法,其特 征在于,所述基于所述时间预测值获得当前编码块的残差包括: 将当前编码块的原始值减去时间预测值获得当前编码块的残差。3. 根据权利要求1所述的一种基于块搜索和正交匹配追踪的视频变换编码方法,其特 征在于,所述基于当前编码块的空间邻域和时间预测,搜索当前编码块的匹配块包括: 构建搜索基准Target Patch:将当前编码块的上边与左边呈倒L型的重建区域作为模 版Template,并在当前编码块的位置上加入时间预测的像素值,其大小等于当前编码块的 大小;其中,当前编码块的大小为NXN,Template中左边的宽度和上边的高度均为T; 利用MSE的准则在参考帧中搜索相似的块:其中,pcandi为参考帧中重建区域的一个块,ppatch为构建的Target Patch,二者的大小均 为(N+T-l) X (N+T-l);pcandi(i,j)表示位置(i,j)处的像素值,类比于ppatch( i,j); 选取具有最小MSE的前Μ个块,/ = -1作为匹配块参与词典的构建。4. 根据权利要求1或3所述的一种基于块搜索和正交匹配追踪的视频变换编码方法,其 特征在于,所述利用聚类算法获得OMP变换的词典包括: 获取OMP变换所需的基Ρ_/ = 〇Λ2,···,Μ-1;其中,成._"表示第1个匹配 块P:/_s去除倒L型Template后的像素值,pm#为运动补偿预测的像素值; 将為进行能量归一化:X, = X,/丨X/ h其中,| XI |是為的模; 将能量归一化后的向量作为OMP变换的词典,词典大小为M; 或者,获取OMP变换所需的基兔后,利用聚类算法将S:i,/ = 〇,U,…,Μ -1进行聚类,取K 个聚类中心Q:Q=[U1,U2, · · ·,UK]; 再对聚类中心Q中的各个元素进行相应的能量归一化,将能量归一化后的聚类中心Q作 为OMP变换的词典,词典大小为K。5. 根据权利要求4所述的一种基于块搜索和正交匹配追踪的视频变换编码方法,其特 征在于,所述以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数包括: 当前编码块的残差为r,OMP变换的词典为D,词典D的大小为Μ或者为K,则OMP变换即为 求解下述方程:r = Dy;其中,y为变换系数;求解时的输入参数为r、D以及给定非零变换系数 的个数m; 假设词典D的大小为K,则求解包含位置信息Pm的变换系数yeRKxl的过程如下: 3、初始化:令1'〇 = 1',7(¥)=〇,'\¥ = 〇,1,...,1(-1,舄=0.,被选择词典〇中的元素集合 <^=0 A = 1;其中,y(w) =0表示初始化时将所有变换系数都设为Ο; 13、按下述公式找到当前状态下最优词典0中的元素的下标1:2=3$/,!^\|<1;_ 1,心>|; c、 利用找到的下标λ更新第t次迭代后的位置集合PfP^UlA},以及更新被选择词典D 中的元素集合i>t= i>t-1 U {m},并令m = 0; d、 求解系数yt: yf = (Φ/Φ, +^7) 1 Φ,' r,其中,δ为常数,I表示大小为t X t的单位矩阵,yt 表示第t次迭代获得的变换系数,其维度为t X 1; e、 t = t+l,如果t<m,则跳至步骤b; f、 此时,t=m,得到PmeRmX1,ymerxl,并计算最终的包含位置信息的变换系数 yeRKxl: y(Pm(S))=ym(S),S = 0,1,. . .,m-l ;其中,Pm(S)为最终得到的集合Pm中的第S个元素的值,ym 表示第m次迭代获得的变换系数,其维度为m X 1,ym( S)表示ym中第S个元素。6.根据权利要求5所述的一种基于块搜索和正交匹配追踪的视频变换编码方法,其特 征在于,该方法还包括: 对包含位置信息的变换系数进行量化与熵编码处理:1)进行缩放处理:y(Pt(s))=y(Pt (s)) << (15-bitDepth-logTrSize);其中,logTrSize = log2N,bitDepth是当前编码器的 比特深度;2)对缩放处理后的变换系数进行量化处理,获得量化后的变换系数Jh3)对量化 后的系数#进行熵编码,其过程如下:a、用一个长度为K的二值向量,表示量化后的系数的每 个位置是否为〇,对该二值向量进行编码;b、对于每个非零系数进行如下编码:先编一个二 值flag表明该系数的绝对值是否大于1,如果不大于1,结束该系数的编码;如果大于1,跳至 步骤c;c、编一个flag表明该系数的绝对值是否大于2,如果不大于2,结束该系数的编码;如 果大于2,跳至步骤d;d、对系数的绝对值减去3,然后进行指数哥伦布编码;e、对系数的正负 性进行编码; 对熵编码后的变换系数进行反OMP变换获得重建残差?。
【文档编号】H04N19/61GK105872549SQ201610321516
【公开日】2016年8月17日
【申请日】2016年5月16日
【发明人】吴枫, 宋锐, 李厚强, 刘 东, 兰翠玲
【申请人】中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1