CN116744015A - 场景帧处理方法及其装置 - Google Patents
场景帧处理方法及其装置 Download PDFInfo
- Publication number
- CN116744015A CN116744015A CN202210204975.0A CN202210204975A CN116744015A CN 116744015 A CN116744015 A CN 116744015A CN 202210204975 A CN202210204975 A CN 202210204975A CN 116744015 A CN116744015 A CN 116744015A
- Authority
- CN
- China
- Prior art keywords
- frame
- scene
- scene frame
- refreshing
- address
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 22
- 230000003993 interaction Effects 0.000 abstract description 6
- 230000015654 memory Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请场景帧处理方法包括:接收解码指令,解码指令携带有参考场景帧地址和刷新场景帧地址,参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧;对当前帧进行解码得到刷新标识;根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新;当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中;当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。本申请不需要在驱动器中进行场景帧的复制动作,从而避免了与其他硬件模块的依赖和交互,提高了硬件解码效率。
Description
技术领域
本申请涉及数字视频信号编解码技术领域,特别是涉及一种场景帧处理方法及其装置。
背景技术
场景帧的主要目的是为了给后续帧提供较好的参考帧,因此对场景帧的编码质量要求会比较高,而且场景帧本身是不能有参考帧的,因此它一定是一个帧内预测帧,即I帧(Intra Frame),鉴于以上2点原因,场景帧的编码码率会比较高。场景帧一般由编码器插入在正常的视频序列之中的,比如一个有100帧的视频序列,可以将场景帧插入第30帧、70帧、95帧之后,如果在一个视频序列中,插入了多个场景帧,那么就会频繁出现码率陡增的问题。
为了解决支持场景帧而导致码率陡增的问题,AVS2又增加了块级场景帧自适应刷新技术(Block-Composed Background Reference,BCBR)。该技术使得编码端不需要刻意的插入场景帧,而是直接将第一个I帧作为场景帧,后面的帧可以以最大编码单元(CodingTree Unit,CTU)为单位刷新该场景帧。场景帧不断被刷新,既能保证后续帧能够有较好的场景帧作为参考帧使用,又能避免码率陡增的问题。
AVS2的场景帧及其块刷新技术虽然能够提升编码效率,但是由于当前帧只能参考刷新之前的场景帧,因此用于参考的场景帧和用于刷新的场景帧必须是分开存放的。如图1所示,一个正方形代表一个CTU,当前帧的CTU0/CTU3/CTU6分别刷新了场景帧的CTU0/CTU3/CTU6(如图1中,场景帧CTU0/CTU3/CTU6用灰色填充所示)。假设当前帧的CTU7参考了场景帧的CTU6,而此时的CTU6已经被刷新了,因此CTU7无法拿到正确的参考数据。基于此,用于参考的场景帧和用于刷新的场景帧必须是分开存放的,二者不能共用相同的存储空间,传统的处理方法如下:
如图2所示,第一步:驱动端Driver创建有2块surface内存,分别记为S1(用于参考的场景帧)、S2(用于刷新的场景帧),用来存放场景帧图像,假设目前场景帧图像存在S1中,调用VPP(Video Post Processor)将S1复制到S2中,即S1存放用于参考的场景帧图像,S2存放用于刷新的场景帧图像;
如图3所示,第二步:如果当前帧解码的过程中,如果某个CTU参考了场景帧,则从S1中拿参考数据;如果某个CTU需要刷新场景帧,则刷新到S2中。
由此带来的问题有:
1.当前帧解码之前,需要等VPP完成场景帧的复制之后,才能开始解码,增加了视频解码模块与VPP模块的依赖,影响解码效率。
2.不利于硬件解码器的并行解码。如果采用非并行解码,Driver一次只发送一帧的解码指令给解码器Decoder,因此在发送一帧的解码指令之前,可由Driver调用VPP模块完成场景帧的复制工作。但是如果采用并行解码,Driver一次会发送若干帧的解码指令给Decoder,因此须由Decoder在解码之前调用VPP完成场景帧的复制工作,这需要Decoder与VPP之间能够交互,需要增加额外的硬件设计成本。
发明内容
基于此,有必要针对上述技术问题,提供一种场景帧处理方法及其装置。
第一方面,本申请提供一种场景帧处理方法,所述场景帧处理方法包括:
接收解码指令,所述解码指令携带有参考场景帧地址和刷新场景帧地址,所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧;
对当前帧进行解码得到刷新标识;
根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新;
当所述刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中;
当所述刷新场景帧地址中的对应最大编码单元不需要刷新时,将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中。
在其中一个实施例中,所述接收解码指令之后,还包括:
判断当前帧是否为场景帧;
当所述当前帧为场景帧时,将所述场景帧存储至所述参考场景帧地址;
当所述当前帧不为场景帧时,交换所述参考场景帧地址和刷新场景帧地址,以使得所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧。
在其中一个实施例中,所述判断当前帧是否为场景帧,包括:
通过驱动器判断当前帧是否为场景帧。
在其中一个实施例中,所述根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新,包括:
通过解码器根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新。
在其中一个实施例中,所述交换所述参考场景帧地址和刷新场景帧地址之后,还包括:
通过所述驱动器发送当前帧的解码指令至解码器,所述解码指令携带有所述当前帧码流、所述参考场景帧地址和所述刷新场景帧地址。
在其中一个实施例中,所述根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新之前,还包括:
对所述当前帧进行解码得到运动矢量和残差;
根据所述运动矢量从所述参考场景帧地址读取参考像素,并根据所述参考像素和所述残差计算得到当前帧对应最大编码单元的值;
从所述参考场景帧地址读取对应最大编码单元的值。
在其中一个实施例中,所述将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中或所述将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中之后,还包括:
判断所述当前帧中的所有最大编码单元是否处理完成;
当所述当前帧中的所有最大编码单元未处理完成,则获取下一最大编码单元,并继续对当前帧进行解码得到刷新标识的步骤;
当所述当前帧中的所有最大编码单元处理完成,则所述当前帧解码完成。
根据所述当前帧解码指令对当前帧中的每个最大编码单元进行解码,直至所有所述最大编码单元解码结束。
第二方面,本申请还提供了一种场景帧处理装置,所述场景帧处理装置包括:
接收单元,用于接收解码指令,所述解码指令携带有参考场景帧地址和刷新场景帧地址,所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧;
解码单元,用于对当前帧进行解码得到刷新标识;
刷新单元,用于根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新;
第一更新单元,用于当所述刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中;
第二更新单元,用于当所述刷新场景帧地址中的对应最大编码单元不需要刷新时,将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中。
在其中一个实施例中,所述装置还包括:
判断单元,用于判断当前帧是否为场景帧;
存储单元,用于当所述当前帧为场景帧时,将所述场景帧存储至所述参考场景帧地址;
交换单元,用于当所述当前帧不为场景帧时,交换所述参考场景帧地址和刷新场景帧地址,以使得所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧。
在其中一个实施例中,所述判断单元用于通过驱动器判断当前帧是否为场景帧。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为背景技术中场景帧与当前帧的示意图;
图2为背景技术中复制场景帧示意图;
图3为背景技术中刷新场景帧示意图;
图4为一个实施例中场景帧处理方法的流程示意图;
图5为一个实施例中场景帧处理方法的示意图;
图6为一个实施例中场景帧处理方法的判断当前帧流程示意图;
图7为一个实施例中场景帧处理方法的对当前帧进行解码流程示意图;
图8为一个实施例中场景帧处理方法的解码示意图;
图9为一个实施例中场景帧处理方法的解码器解码流程示意图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体地实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的耦合。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
本发明实施例提供的一种场景帧处理方法,可以应用于数字视频信号编解码技术领域。通过接收解码指令,解码指令携带有参考场景帧内存地址和刷新场景帧内存地址,参考场景帧内存地址存储有被前一帧刷新后的场景帧,刷新场景帧内存地址存储有前一帧解码时的原始场景帧;对当前帧进行解码得到刷新标识;根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新;当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧中;当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。本申请不需要在驱动器中进行场景帧的复制动作,从而避免了与其他硬件模块的依赖和交互,提高了硬件解码效率;由于不依赖于其他模块,驱动器可以同时发送多帧的解码指令给解码器,有利于解码器内部实现多帧并行解码。
如图4所示,在一个实施例中,提供了一种场景帧处理方法,以该方法应用于如图5所示的场景帧处理装置为例进行说明,包括以下步骤:
S402:接收解码指令,解码指令携带有参考场景帧地址和刷新场景帧地址,参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧。
其中,此处的参考场景帧地址、刷新场景帧地址都是指内存地址。
具体地,如图5所示的场景帧处理装置接收解码指令,其中,解码指令携带有参考场景帧地址addr_ref和刷新场景帧地址addr_upd。参考场景帧地址存储有被前一帧刷新后的场景帧,参考场景帧只用于参考,不用于刷新;刷新场景帧地址存储有前一帧解码时的原始场景帧,刷新场景帧则只用于刷新,不用于参考。其中,参考场景帧以及刷新场景帧可以结合图2所示,该解码指令携带有参考场景帧的内存地址以及刷新场景帧的内存地址。
具体地,场景帧处理装置即为图5中的硬件解码器,其中该硬件解码器接收驱动发送的解码指令,具体地,驱动执行以执行S502步骤开始解码。步骤S504判断当前帧是否为I帧,若是,则执行步骤S506,将I帧的解码像素存储地址设置为addr_ref,步骤S508:交换addr_ref与addr_upd的值,步骤S510:发送一帧的解码指令序列给硬件编码器,其中包括addr_ref与addr_upd的值、码流的地址等等。
S404:对当前帧进行解码得到刷新标识。
具体地,场景帧处理装置接收解码指令,解码指令携带有参考场景帧地址addr_ref和刷新场景帧地址addr_upd。场景帧处理装置读码流,开始对当前帧进行解码,步骤S512:令i=0,步骤S514:读码流,解码得到ctu_dec[i]的头信息,包括lcu_bg_flag刷新标识。步骤S516:读码流,解码得到ctu_dec[i]的运动矢量(mv)、残差(residual)等信息。步骤S518:根据mv从addr_ref读取参考像素,参考像素加上residual即可恢复出ctu_dec[i]。步骤S520:从addr_ref中读出ctu_ref[i]的像素值。
S406:根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。
具体地,场景帧处理装置接收解码指令,解码指令携带有参考场景帧地址addr_ref和刷新场景帧地址addr_upd。场景帧处理装置读码流,开始对当前帧进行解码,令i=0解码得到ctu_dec[i]的头信息,包括lcu_bg_flag刷新标识。场景帧处理装置根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。如图5中,步骤S522:判断lcu_bg_flag刷新标识是否等于1。
S408:当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中。
具体地,场景帧处理装置根据刷新标识确定刷新场景帧地址中的对应编最大码单元是否需要刷新。当结果为是时,即当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中。如图5中,步骤S524:若是需要刷新,则将ctu_dec[i]的解码像素更新到刷新场景帧地址addr_upd。
S210:当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。
具体地,场景帧处理装置根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。当结果为否时,即当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。如图5中,步骤S526:若是不需要刷新,则将ctu_ref[i]的像素更新到刷新场景帧地址addr_upd。步骤S528:i=i+1,步骤S530:判断i>=ctu_n?,若是,则结束,否则继续步骤S514:读码流,解码得到ctu_dec[i]的头信息,包括lcu_bg_flag刷新标识。
在该实施例中,一种场景帧处理方法通过获取驱动器发送的当前帧解码指令,所述当前帧解码指令包括:接收解码指令,解码指令携带有参考场景帧地址和刷新场景帧地址,参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧;对当前帧进行解码得到刷新标识;根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新;当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中;当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。本申请不需要在驱动器中进行场景帧的复制动作,从而避免了与其他硬件模块的依赖和交互,提高了硬件解码效率;由于不依赖于其他模块,驱动器可以同时发送多帧的解码指令给解码器,有利于解码器内部实现多帧并行解码。
如图6所示,在其中一个实施例中,接收解码指令之后,还包括:
S602:判断当前帧是否为场景帧。
具体地,场景帧处理装置接收解码指令之后,解码指令携带有参考场景帧地址和刷新场景帧地址。场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧。
S604:当当前帧为场景帧时,将场景帧存储至参考场景帧地址。
具体地,场景帧处理装置接收解码指令之后,场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧。当判断结果为该当前帧为场景帧时,将场景帧存储至参考场景帧地址。例如:当前帧为I帧,将当前帧作为一个初始的场景帧,该初始场景帧的解码存像素储地址为addr_ref,它可作为后续解码帧的参考场景帧使用。
S606:当当前帧不为场景帧时,交换参考场景帧地址和刷新场景帧地址,以使得参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧。
具体地,场景帧处理装置接收解码指令之后,场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧。当判断结果为当前帧不为场景帧时,交换参考场景帧地址和刷新场景帧地址,以使得参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧。
例如:当前帧为非I帧,交换addr_ref与addr_upd的值,交换地址之后,addr_ref的地址实际上等于被前一帧刷新后的场景帧的地址,该刷新后的场景帧对当前帧来说,值用于参考,不用于刷新;addr_upd实际上等于前一帧解码时的原始场景帧,该原始场景帧对当前帧来说,只用于刷新,不用于参考。
在该实施例中,场景帧处理装置接收解码指令之后,场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧,当前帧为场景帧时,将场景帧存储至参考场景帧地址。如此边解码边复制的方法,可以避免解码之前进行场景帧的复制操作,消除硬件解码器与其他模块之间的依赖关系,有效提升硬件解码器的解码速度。
在其中一个实施例中,判断当前帧是否为场景帧,包括:通过驱动器判断当前帧是否为场景帧。
具体地,场景帧处理装置接收解码指令之后,解码指令携带有参考场景帧地址和刷新场景帧地址。场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧,其中,场景帧处理装置通过驱动器判断当前帧是否为场景帧。
在该实施例中,场景帧处理装置通过驱动器判断当前帧是否为场景帧,如此消除硬件解码器与其他模块之间的依赖关系,提升硬件解码器的解码速度。
在其中一个实施例中,根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新,包括:通过解码器根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。
具体地,场景帧处理装置接收到解码指令后,对当前帧进行解码得到刷新标识,并根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。场景帧处理装置在确定刷新场景帧地址中的对应最大编码单元是否需要刷新,则是通过解码器根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。
在该实施例中,场景帧处理装置通过解码器根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新,使场景帧处理装置中的驱动器与解码器分工合作,进一步地提升硬件解码器的解码速度。
在其中一个实施例中,交换参考场景帧地址和刷新场景帧地址之后,还包括:通过驱动器发送当前帧的解码指令至解码器,解码指令携带有当前帧码流、参考场景帧地址和刷新场景帧地址。
具体地,场景帧处理装置先对当前帧进行判断,判断当前帧是否为场景帧,当前帧不为场景帧时,交换参考场景帧地址和刷新场景帧地址。在交换参考场景帧地址和刷新场景帧地址之后,场景帧处理装置通过驱动器发送当前帧的解码指令至解码器,其中,解码指令携带有当前帧码流、参考场景帧地址addr_ref和刷新场景帧地址addr_upd。
在该实施例中,在交换参考场景帧地址和刷新场景帧地址之后,场景帧处理装置通过驱动器发送当前帧的解码指令至解码器,其中,解码指令携带有当前帧码流、参考场景帧地址addr_ref和刷新场景帧地址addr_upd。不需要在驱动器中进行场景帧的复制动作,从而避免了了硬件解码器与其他硬件模块的依赖和交互,提高了硬件解码效率。
如图7和图8所示,在其中一个实施例中,根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新之前,还包括:
S702:对当前帧进行解码得到运动矢量和残差。
具体地,场景帧处理装置根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新之前,还要对当前帧进行解码得到运动矢量和残差。为了达到这一目的,解码器会从addr_ref中读取同位CTU的像素数据,记为ctu_ref[i],解码ctu_ref[i]的运动矢量mv和残差residual。其中图8步骤S802驱动获取到addr_ref和addr_upd,将addr_ref、addr_upd以及码流地址发送至硬件解码器,硬件解码器读取码流,S804:解码器会从addr_ref中读取同位CTU的像素数据,记为ctu_ref[i]。
S704:根据运动矢量从参考场景帧地址读取参考像素,并根据参考像素和残差计算得到当前帧对应最大编码单元的值。
具体地,场景帧处理装置对当前帧进行解码得到运动矢量mv和残差residual,根据运动矢量mv从参考场景帧地址addr_ref中读取参考像素,并根据参考像素和残差residual计算得到当前帧对应最大编码单元的值ctu_ref[i]。S806:根据mv读取用于恢复出解码图像的参考像素。这样S808:参考像素+残差得到ctu_def[i]。
S706:从参考场景帧地址读取对应最大编码单元的值。
具体地,场景帧处理装置根据运动矢量从参考场景帧地址读取参考像素,并根据参考像素和残差计算得到当前帧对应最大编码单元的值,再从参考场景帧addr_ref中地址读取对应最大编码单元的值。
在该实施例中,场景帧处理装置对当前帧进行解码得到运动矢量和残差,根据运动矢量从参考场景帧地址读取参考像素,并根据参考像素和残差计算得到当前帧对应最大编码单元的值,并从参考场景帧地址读取对应最大编码单元的值。解码器不依赖于其他模块,驱动器可以同时发送多帧的解码指令给硬件解码器,有利于硬件解码器内部实现多帧并行解码。
如图9所示,在一个实施例中,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中或将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中之后,还包括:
S902:判断当前帧中的所有最大编码单元是否处理完成。
具体地,场景帧处理装置判断当前帧中的所有最大编码单元是否处理完成,解码器收到解码指令后,会解码当前图像中的每个CTU,直到所有CTU解码结束,则当前帧解码结束。
S904:当当前帧中的所有最大编码单元未处理完成,则获取下一最大编码单元,并继续对当前帧进行解码得到刷新标识的步骤。
具体地,场景帧处理装置判断当前帧中的所有最大编码单元是否处理完成,当当前帧中的所有最大编码单元未处理完成,则获取下一最大编码单元,并继续对当前帧进行解码得到刷新标识的步骤。例如:对于第0个解码CTU,其lcu_bg_flag=1,因此硬件解码器将ctu_dec[0]写入待刷新的场景帧的第0个CTU的位置。对于第1个解码CTU,其lcu_bg_flag=0,因此硬件解码器将ctu_ref[1]写入待刷新的场景帧的第1个CTU的位置。对于第2个解码CTU,其lcu_bg_flag=1,因此硬件解码器将ctu_dec[2]写入待刷新的场景帧的第2个CTU的位置。
S906:当当前帧中的所有最大编码单元处理完成,则当前帧解码完成。
具体地,场景帧处理装置判断当前帧中的所有最大编码单元是否处理完成,当当前帧中的所有最大编码单元处理完成,则当前帧解码完成。
S908:根据当前帧解码指令对当前帧中的每个最大编码单元进行解码,直至所有最大编码单元解码结束。
具体地,场景帧处理装置根据当前帧解码指令对当前帧中的每个最大编码单元进行解码,直至所有最大编码单元解码结束。
假设当前图像的CTU总数为ctu_n,当前硬件解码器正在解码第i个CTU,记为ctu_dec[i],0<=i<n,则硬件解码器的处理流程如下:
解码ctu_dec[i]的头(header)信息,其中包括lcu_bg_flag,该flag表示当前待解码CTU是否需要刷新场景帧同位CTU,同位CTU指两个不同的帧中,所有像素坐标均相同的CTU。如果lcu_bg_flag=1,表示需要刷新场景帧,则用ctu_dec[i]的解码像素去刷新场景帧的同位CTU,刷新场景帧的地址为addr_upd。否则,lcu_bg_flag=0,表示不需要刷新场景帧,待刷新场景帧中的同位CTU需要保持原有的数据不变,为了达到这一目的,硬件解码器会从addr_ref中读取同位CTU的像素数据,记为ctu_ref[i],然后再把这些数据存入刷新场景帧的同位CTU,刷新场景帧的地址为addr_upd,这一步就相当于复制操作,即不需要刷新的CTU,直接从原始场景帧复制到刷新场景帧中,只不过这个复制操作时由硬件直接完成的,而不是其他模块完成的。
在该实施例中,场景帧处理装置判断当前帧中的所有最大编码单元是否处理完成;当当前帧中的所有最大编码单元未处理完成,则获取下一最大编码单元,并继续对当前帧进行解码得到刷新标识的步骤;当当前帧中的所有最大编码单元处理完成,则当前帧解码完成。根据当前帧解码指令对当前帧中的每个最大编码单元进行解码,直至所有最大编码单元解码结束。避免了硬件解码器与其他硬件模块的依赖和交互,提高了硬件解码效率,并有利于硬件解码器内部实现多帧并行解码。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及场景帧处理方法的场景帧处理装置。该场景帧处理装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或场景帧处理装置实施例中的具体限定可以参见上文中对于场景帧处理方法的限定,在此不再赘述。
在一个实施例中,一种场景帧处理装置,包括:接收单元、解码单元、刷新单元、第一更新单元和第二更新单元,其中:
接收单元,用于接收解码指令,解码指令携带有参考场景帧地址和刷新场景帧地址,参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧;
解码单元,用于对当前帧进行解码得到刷新标识;
刷新单元,用于根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新;
第一更新单元,用于当刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中;
第二更新单元,用于当刷新场景帧地址中的对应最大编码单元不需要刷新时,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中。
在一个实施例中,接收解码指令之后,还包括:
判断单元,用于判断当前帧是否为场景帧;
存储单元,用于当当前帧为场景帧时,将场景帧存储至参考场景帧地址;
交换单元,用于当当前帧不为场景帧时,交换参考场景帧地址和刷新场景帧地址,以使得参考场景帧地址存储有被前一帧刷新后的场景帧,刷新场景帧地址存储有前一帧解码时的原始场景帧。
在一个实施例中,判断当前帧是否为场景帧,包括:
判断单元,用于通过驱动器判断当前帧是否为场景帧。
在一个实施例中,根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新,包括:
刷新单元,用于通过解码器根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新。
在一个实施例中,交换参考场景帧地址和刷新场景帧地址之后,还包括:
解码指令发送单元,用于通过驱动器发送当前帧的解码指令至解码器,解码指令携带有当前帧码流、参考场景帧地址和刷新场景帧地址。
在一个实施例中,根据刷新标识确定刷新场景帧地址中的对应最大编码单元是否需要刷新之前,还包括:
解码单元,用于对当前帧进行解码得到运动矢量和残差;
重构单元,用于根据运动矢量从参考场景帧地址读取参考像素,并根据参考像素和残差计算得到当前帧对应最大编码单元的值;
读取单元,用于从参考场景帧地址读取对应最大编码单元的值。
在一个实施例中,将参考场景帧地址中的对应的最大编码单元的值更新至刷新场景帧地址中或将当前帧中的对应的最大编码单元的值更新至刷新场景帧地址中之后,还包括:
判断单元,用于判断当前帧中的所有编码单元是否处理完成;
刷新标识单元,用于当当前帧中的所有编码单元未处理完成,则获取下一编码单元,并继续对当前帧进行解码得到刷新标识的步骤;
处理单元,用于当当前帧中的所有编码单元处理完成,则当前帧解码完成。
解码单元,用于根据当前帧解码指令对当前帧中的每个编码单元进行解码,直至所有编码单元解码结束。
关于场景帧处理装置的具体限定可以参见上文中对于场景帧处理方法的限定,在此不再赘述。上述场景帧处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。具体地,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以上实施例的各技术特征可以进行任意的耦合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的耦合都进行描述,然而,只要这些技术特征的耦合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种场景帧处理方法,其特征在于,所述场景帧处理方法包括:
接收解码指令,所述解码指令携带有参考场景帧地址和刷新场景帧地址,所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧;
对当前帧进行解码得到刷新标识;
根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新;
当所述刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中;
当所述刷新场景帧地址中的对应最大编码单元不需要刷新时,将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中。
2.根据权利要求1所述的方法,其特征在于,所述接收解码指令之后,还包括:
判断当前帧是否为场景帧;
当所述当前帧为场景帧时,将所述场景帧存储至所述参考场景帧地址;
当所述当前帧不为场景帧时,交换所述参考场景帧地址和刷新场景帧地址,以使得所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧。
3.根据权利要求2所述的方法,其特征在于,所述判断当前帧是否为场景帧,包括:
通过驱动器判断当前帧是否为场景帧。
4.根据权利要求3所述的方法,其特征在于,所述根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新,包括:
通过解码器根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新。
5.根据权利要求2所述的方法,其特征在于,所述交换所述参考场景帧地址和刷新场景帧地址之后,还包括:
通过所述驱动器发送当前帧的解码指令至解码器,所述解码指令携带有所述当前帧码流、所述参考场景帧地址和所述刷新场景帧地址。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新之前,还包括:
对所述当前帧进行解码得到运动矢量和残差;
根据所述运动矢量从所述参考场景帧地址读取参考像素,并根据所述参考像素和所述残差计算得到当前帧对应最大编码单元的值;
从所述参考场景帧地址读取对应最大编码单元的值。
7.根据权利要求1所述的方法,其特征在于,所述将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中或所述将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中之后,还包括:
判断所述当前帧中的所有最大编码单元是否处理完成;
当所述当前帧中的所有最大编码单元未处理完成,则获取下一最大编码单元,并继续对当前帧进行解码得到刷新标识的步骤;
当所述当前帧中的所有最大编码单元处理完成,则所述当前帧解码完成;
根据所述当前帧解码指令对当前帧中的每个最大编码单元进行解码,直至所有所述最大编码单元解码结束。
8.一种场景帧处理装置,其特征在于,所述场景帧处理装置包括:
接收单元,用于接收解码指令,所述解码指令携带有参考场景帧地址和刷新场景帧地址,所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧;
解码单元,用于对当前帧进行解码得到刷新标识;
刷新单元,用于根据所述刷新标识确定所述刷新场景帧地址中的对应最大编码单元是否需要刷新;
第一更新单元,用于当所述刷新场景帧地址中的对应最大编码单元需要刷新时,将当前帧中的对应的最大编码单元的值更新至所述刷新场景帧地址中;
第二更新单元,用于当所述刷新场景帧地址中的对应最大编码单元不需要刷新时,将所述参考场景帧地址中的对应的最大编码单元的值更新至所述刷新场景帧地址中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断当前帧是否为场景帧;
存储单元,用于当所述当前帧为场景帧时,将所述场景帧存储至所述参考场景帧地址;
交换单元,用于当所述当前帧不为场景帧时,交换所述参考场景帧地址和刷新场景帧地址,以使得所述参考场景帧地址存储有被前一帧刷新后的场景帧,所述刷新场景帧地址存储有所述前一帧解码时的原始场景帧。
10.根据权利要求9所述的装置,其特征在于,所述判断单元用于通过驱动器判断当前帧是否为场景帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210204975.0A CN116744015B (zh) | 2022-03-02 | 2022-03-02 | 场景帧处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210204975.0A CN116744015B (zh) | 2022-03-02 | 2022-03-02 | 场景帧处理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116744015A true CN116744015A (zh) | 2023-09-12 |
CN116744015B CN116744015B (zh) | 2024-07-26 |
Family
ID=87911992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210204975.0A Active CN116744015B (zh) | 2022-03-02 | 2022-03-02 | 场景帧处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116744015B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321284A (zh) * | 2007-06-10 | 2008-12-10 | 华为技术有限公司 | 一种编解码方法、设备及系统 |
CN105847793A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 视频编解码方法及其装置 |
CN106157318A (zh) * | 2016-07-26 | 2016-11-23 | 电子科技大学 | 监控视频背景图像建模方法 |
WO2020113074A1 (en) * | 2018-11-27 | 2020-06-04 | Op Solutions, Llc | Adaptive temporal filter for an unavailable reference picture cross-reference to related applications |
-
2022
- 2022-03-02 CN CN202210204975.0A patent/CN116744015B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321284A (zh) * | 2007-06-10 | 2008-12-10 | 华为技术有限公司 | 一种编解码方法、设备及系统 |
CN105847793A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 视频编解码方法及其装置 |
CN106157318A (zh) * | 2016-07-26 | 2016-11-23 | 电子科技大学 | 监控视频背景图像建模方法 |
WO2020113074A1 (en) * | 2018-11-27 | 2020-06-04 | Op Solutions, Llc | Adaptive temporal filter for an unavailable reference picture cross-reference to related applications |
Non-Patent Citations (1)
Title |
---|
金刚光: "AVS2技术概述", pages 8, Retrieved from the Internet <URL:http://www.360doc.com/content/22/0207/00/59057945_1016231685.shtml> * |
Also Published As
Publication number | Publication date |
---|---|
CN116744015B (zh) | 2024-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10397588B2 (en) | Method and apparatus for resource sharing between intra block copy mode and inter prediction mode in video coding systems | |
KR100239260B1 (ko) | 화상 디코딩 장치 | |
US20190058896A1 (en) | Method and apparatus of video coding with affine motion compensation | |
US20210329288A1 (en) | Video processing method and device thereof | |
US20210211713A1 (en) | Motion vector derivation for sub-block in affine mode | |
JP2009504001A (ja) | リファレンスビデオフレーム及びノンリファレンスビデオフレームの検出及び隠蔽の方法及び装置 | |
US8761239B2 (en) | Image coding apparatus, method, integrated circuit, and program | |
CN103533376A (zh) | 帧间预测编码运动信息的处理方法、装置和编解码系统 | |
CN103081466A (zh) | 使用多个处理器编码视频帧的方法和系统 | |
US10757430B2 (en) | Method of operating decoder using multiple channels to reduce memory usage and method of operating application processor including the decoder | |
CN115134629A (zh) | 视频传输方法、系统、设备及存储介质 | |
CN116744015B (zh) | 场景帧处理方法及其装置 | |
JPH10215457A (ja) | 動画像復号方法及び動画像復号装置 | |
JP3496378B2 (ja) | ディジタル画像復号装置及びディジタル画像復号方法 | |
KR100646577B1 (ko) | 비디오 codec에 있어서 특정이미지 저장방법 | |
CN112291569B (zh) | H.264图像组的编码方法、装置、编解码芯片及电子设备 | |
JP4519723B2 (ja) | 動きベクトルを利用する動画像データの符号化または復号化装置 | |
JP3852594B2 (ja) | ディジタル画像復号装置及びディジタル画像復号方法 | |
JP4796186B2 (ja) | 可変長データのメモリ格納方法、および可変長データ記憶装置 | |
JP2824024B2 (ja) | 画像復号方法および装置 | |
US12063360B2 (en) | Prediction processing system using reference data buffer to achieve parallel non-inter and inter prediction and associated prediction processing method | |
CN117241030A (zh) | 视频数据流的生成方法、解码方法及相关装置 | |
JP4892468B2 (ja) | 動画像符号化装置、動画像符号化装置の制御方法及びコンピュータプログラム | |
WO2022226523A1 (en) | Method, device, and medium for video processing | |
US7529413B2 (en) | Method for reducing data amount in an image memory system |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 200135, 11th Floor, Building 3, No. 889 Bibo Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Granfei Intelligent Technology Co.,Ltd. Address before: 200135 Room 201, No. 2557, Jinke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Applicant before: Gryfield Intelligent Technology Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |