【技术实现步骤摘要】
视频编码方法、装置及介质
援引加入
[0001]本申请是申请日为2020年03月04日、中国专利申请号为202080002122.8、专利技术名称为“视频解码方法及装置”的专利申请的主动修改版本的分案申请。
[0002]本申请描述了总体上涉及视频编解码的实施例。
技术介绍
[0003]此文所提供的
技术介绍
说明以对本公开的内容作一般性说明为目的。专利技术人的某些工作(即已在此
技术介绍
部分中作出描述的工作)以及说明书中关于某些尚未成为申请日之前的现有技术的内容,无论是以明确或隐含的方式均不被视为相对于本公开的现有技术。
[0004]可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如为1920x1080的亮度样本及相关的色度样本的空间维度。该一系列图片可以具有例如每秒60幅图片或60Hz的固定的或可变的图片速率(也非正式地称为帧率)。未压缩的视频具有很高的位速率要求。例如,每样本8位的1080p60 4:2:0的视频(60Hz帧率的1920x1080 ...
【技术保护点】
【技术特征摘要】
1.一种视频编码的方法,包括:对待编码的视频图片流中各图片所包括的样本块逐块进行编码,得到已编码的视频码流;其中,所述图片包括至少两个编码树块(CTB),各所述CTB包括至少两个所述样本块;其中,针对正在编码的当前图片所包括的各所述样本块,采用如下方式编码:确定当前块是否为当前图片中当前CTB的当前区域中第一个被编码的样本块,所述当前块是所述当前区域中多个样本块之一;当所述当前块为所述当前区域中第一个被编码的块时,将先前编码的至少一个CTB中的所述当前区域的同位区域中的参考块设置为不可用,所述同位区域在所述先前编码的CTB中的相对位置与所述当前区域在所述当前CTB中的相对位置相同;获取所述当前块的预测信息,所述预测信息表示帧内块复制模式;确定所述当前块的块矢量,并基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块。2.根据权利要求1所述的方法,其中,所述块矢量所指示的参考块处于搜索范围内,所述搜索范围包括在所述同位区域之后以及所述当前块之前编码的样本块。3.根据权利要求2所述的方法,其中,所述当前CTB的大小与参考存储器的大小相等,所述先前编码的CTB是所述当前CTB的左邻居,所述同位区域的位置相对于所述当前区域的位置偏移了所述当前CTB的宽度,以及所述搜索范围中的所述样本块位于所述当前CTB和所述先前编码的CTB中的至少一个之中。4.根据权利要求3所述的方法,其中,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块,包括:设置第一约束条件和第二约束条件;所述第一约束条件包括:将当前块的左上样本的位置坐标作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;所述第二约束条件包括:确保参考块所在的所述同位区域的左上样本的位置坐标不等于当前区域的左上样本的位置坐标;当满足所述第一约束条件以及第二约束条件时,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块。5.根据权利要求4所述的方法,其中,所述第一约束条件具体包括:将当前块的左上样本的位置设置为(xCb,yCb),当(xCb+(mvL[0]>>4))>>CtbLog2SizeY等于(xCb>>CtbLog2SizeY)
‑
1时,将位置坐标(((xCb+(mvL[0]>>4+CtbSizeY)>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1))作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;其中,mvL[0]和mvL[1]分别表示块矢量的x分量和y分量,CtbSizeY表示CTB宽度,CtbLog2SizeY表示取对数后的CTB宽度。6.根据权利要求4所述的方法,其中,所述第二约束条件具体包括:将当前块的左上样本的位置设置为(xCb,yCb),所述参考块的同位区域的左上样本位置坐标(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1))不等于(xCb,yCb),确保参考块所在的所述同位区域的左上样本的位置不等于当前区域的左上样本的位置;
其中,mvL[0]和mvL[1]分别表示块矢量的x分量和y分量,CtbSizeY表示CTB宽度,CtbLog2SizeY表示取对数后的CTB宽度。7.根据权利要求3所述的方法,其中,所述当前CTB和所述先前编码的CTB的大小是128
×
128个样本,所述当前CTB包括4个64
×
64个样本的区域,所述先前编码的CTB包括4个64
×
64个样本的区域,所述同位区域的位置相对于所述当前区域的位置偏移了128个样本,所述当前区域是所述当前CTB中的4个区域之一,所述同位区域是所述先前编码的CTB中的4个区域之一。8.根据权利要求7所述的方法,其中,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块,包括:设置第三约束条件和第四约束条件;所述第三约束条件包括:将当前块的左上样本的位置设置为(xCb,yCb),当(xCb+(mvL[0]>>4))>>7等于(xCb>>7)
‑
1时,将位置坐标(((xCb+(mvL[0]>>4+128)>>6)<<6,((yCb+(mvL[1]>>4))>>6)<<6)作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;所述第四约束条件包括:确保参考块的同位区域的左上样本位置坐标(((xCb+(mvL[0]>>4)+128)>>6)<<6,((yCb+(mvL[1]>>4))>>6)<<6)不等于(xCb,yCb),确保参考块的同位区域的左上样本的位置不等于当前块的左上样本的位置;其中,mvL[0]和mvL[1]分别表示块矢量的x分量和y分量;当满足所述第三约束条件以及第四约束条件中时,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块。9.根据权利要求7所述的方法,其中:所述当前CTB中的4个区域包括左上区域、右上区域、左下区域和右下区域;所述先前编码的CTB中的4个区域包括左上区域、右上区域、左下区域和右下区域;当所述当前区域是所述当前CTB的左上区域时,所述同位区域是所述先前编码的CTB的左上区域,且搜索区域不包括所述先前编码的CTB的所述左上区域;当所述当前区域是所述当前CTB的右上区域时,所述同位区域是所述先前编码的CTB的右上区域,且所述搜索区域不包括所述先前编码的CTB的所述左上区域以及所述右上区域;当所述当前区域是所述当前CTB的左下区域时,所述同位区域是所述先前编码的CTB的左下区域,且所述搜索区域不包括所述先前编码的CTB的所述左上区域、所述右上区域以及所述左下区域;以及当所述当前区域是所述当前CTB的右下区域时,所述同位区域是所述先前编码的CTB的右下区域,且所述搜索区域不包括所述先前编码的CTB。10.根据权利要求3所述的方法,其中,所述当前CTB包括具有相同大小和形状的4个区域,所述先前编码的CTB包括具有相同大小和形状的4个区域,所述当前区域是所述当前CTB中的4个区域之一,所述同位区域是所述先前编码的CTB中的4个区域之一。11.根据权利要求2所述的方法,其中,所述当前CTB的大小小于参考存储器的大小,所述同位区域的位置相对于所述当前区域的位置偏移了多个当前CTB的宽度,所述搜索范围中的所述样本块位于以下至少之一中:所述当前CTB、所述先前编码的CTB以及位于所述当前CTB与所述先前编码的CTB之间的一个或多个已编码的CTB。12.根据权利要求11所述的方法,其中,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块,包括:
设置第五约束条件;所述第五约束条件包括:将当前块的样本的位置坐标作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;当满足所述第五约束条件时,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块。13.根据权利要求12所述的方法,其中,所述第五约束条件具体包括:将当前块的左上样本的位置设置为(xCb,yCb),当(xCb+(mvL[0]>>4))>>CtbLog2SizeY等于(xCb>>CtbLog2SizeY)
‑
1<<((MaxCtbLog2SizeY
–
CtbLog2SizeY)<<1))时,将位置坐标(((xCb+(mvL[0]>>4)+N CtbSizeY)>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY
‑
1))<<(CtbLog2SizeY
‑
1)作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;其中,mvL[0]和mvL[1]分别表示块矢量的x分量和y分量,CtbSizeY表示CTB宽度,CtbLog2SizeY表示取对数后的CTB宽度,MaxCtbLog2SizeY表示取对数后的最大CTB大小或参考存储器大小。14.根据权利要求11所述的方法,其中,所述当前CTB的大小为64
×
64个样本,所述参考存储器的大小为128
×
128个样本,所述当前CTB包括4个32
×
32个样本的区域,所述先前编码的CTB包括4个32
×
32个样本的区域,所述同位区域的位置相对于所述当前区域的位置偏移了256个样本。15.根据权利要求14所述的方法,其中,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块,包括:设置第六约束条件;所述第六约束条件包括:将当前块的左上样本的位置设置为(xCb,yCb),当(xCb+(mvL[0]>>4))>>6等于(xCb>>6)
‑
1<<(1<<1))时,将位置坐标(((xCb+(mvL[0]>>4)+256)>>5)<<5,((yCb+(mvL[1]>>4))>>5)<<5作为输入来调用当前块的参考块可用性的推导过程,输出为假则表示参考块的同位区域未被编码;当满足所述第六约束条件时,基于所述预测信息以及所述块矢量对所述当前块进行编码,得到对应所述当前块的编码块。16.根据权利要求11所述的方法,其中,所述搜索范围中的所述样本块位于以下至少之一中:所述当前CTB以及所述当前CTB与所述先前编码的CTB之间的一个或多个已编码的CTB。17.根据权利要求11所述的方法,其中,所述搜索范围不包括相对于所述当前CTB偏移了N个所述当前CTB的宽度的所述先前编码的CTB,其中,N是所述参考存储器的大小与所述当前CTB的大小之比。18.一种视频编码的装置,包括:处理电路,配置成:对待编码的视频图片流中各图片所包括的样本块逐块进行编码,得到已编码的视频码流;其中,所述图片包括至少两个编码树块(CTB),各所述CTB包括至少两个所述样本块;其中,针对正在编码的当前图片所包括的各所述样本块,采用如下方式编码:确定当前块是否为当前图片中当前CTB的当前区域中第一个被编码的样本块,所述当前块是所述当前区域中多个样本块之一;当所述当前块为所述当前区域中第一个被编码的块时,将先前编码的至少一个CTB中
的所述当前区域的同位区域中的...
【专利技术属性】
技术研发人员:许晓中,刘杉,李翔,
申请(专利权)人:腾讯美国有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。