CN107241608A - 一种用于帧缓存解压的硬件容错方法和装置 - Google Patents

一种用于帧缓存解压的硬件容错方法和装置 Download PDF

Info

Publication number
CN107241608A
CN107241608A CN201710312715.4A CN201710312715A CN107241608A CN 107241608 A CN107241608 A CN 107241608A CN 201710312715 A CN201710312715 A CN 201710312715A CN 107241608 A CN107241608 A CN 107241608A
Authority
CN
China
Prior art keywords
compression
decompression
compression body
size
sub
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
Application number
CN201710312715.4A
Other languages
English (en)
Other versions
CN107241608B (zh
Inventor
张敬彬
张师群
赵勃
乔岩
鲍东山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NUFRONT SOFTWARE TECHNOLOGY Co Ltd
Original Assignee
NUFRONT SOFTWARE TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NUFRONT SOFTWARE TECHNOLOGY Co Ltd filed Critical NUFRONT SOFTWARE TECHNOLOGY Co Ltd
Priority to CN201710312715.4A priority Critical patent/CN107241608B/zh
Publication of CN107241608A publication Critical patent/CN107241608A/zh
Application granted granted Critical
Publication of CN107241608B publication Critical patent/CN107241608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种用于帧缓存解压的硬件容错方法和装置,包括:解压压缩头,从压缩头中获取压缩体的大小信息;根据压缩头中的压缩体的大小信息读取相应大小的压缩数据至缓存区中并解压;比较压缩头中的压缩体的大小信息和解压压缩数据所消耗的实际压缩数据的大小信息,大于则进入解压匮乏状态,将解压完成时的压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;小于则进入解压富余状态,通过更新读指针来消耗完缓存区中的剩余数据。在帧缓存解压技术中采用硬件容错机制,能够避免在运行过程中由于系统不稳定而导致出现系统挂死现象,错误不扩散,使得SOC的运行更加健壮和流畅。

Description

一种用于帧缓存解压的硬件容错方法和装置
技术领域
本发明属于视频图像领域,尤其涉及一种用于帧缓存解压的硬件容错方法和装置。
背景技术
帧缓存压缩技术(FBC)是基于目前高带宽应用场景下有效降低带宽的有效方案。尤其是目前视频图像处理速度在4K 60P/S甚至更高的性能要求下,节省带宽成为了各个网络协议需要考虑的重大因素之一。
FBC技术的应用场景主要在图像信号处理、视频编解压器、视频处理子系统、视频显示等图像视频处理单元中,经过帧缓存压缩,每帧像素数据会有效的压缩放入高速随机存储器中,而在各个处理单元时,首先经过解压缩单元,恢复出图像像素数据。由于数据经过压缩处理,解压缩的所需数据带宽会节省很多。
FBC算法大同小异。基本上都是基于选择一个压缩单元像素块来进行压缩,像素块的大小根据具体算法来定。每个像素块又可以划分出多个最小单位的子像素块。然后,根据子像素块中各个像素的空间相关性进行压缩,即各个方向上的残差值来进行熵编码,选择一个最优的压缩方案使得压缩后的比特数最少,达到了减少带宽的目的。
为了硬件上的应用,压缩后分为压缩头和压缩体两个部分。其中,压缩头包含压缩本身的头信息和压缩后压缩体的大小信息,其中,头信息中的指示压缩体大小的信息便于解压缩时从内存中读取相应的大小来进行解压数据;压缩体就是压缩后的数据,包括压缩前缀信息和压缩残差信息,前缀信息即残差信息的编码信息包括压缩的模式、方向、残差的熵编码信息等,压缩体越小,则说明压缩效果越好,带宽越低。
当FBC技术应用在SOC(system on chip,片上系统)中,高速随机存储器所占用的带宽会明显减少,从而保证了SOC的整体性能。但是,在SOC运行过程中,如遇到外界因素导致的系统不稳定现象,则会导致从内存中读取的数据发生错误。例如,在解压缩时,由于外界因素,从内存存储器中读取到的压缩头信息或者压缩体信息出现某个比特或者某些比特错误,如果帧缓存压缩时没有做任何容错处理,则很可能导致帧缓存压缩内部出现挂死现象,但此时,处理器并不知道哪里出现问题,只能持续等待,直到超时后,软件丟帧处理。系统的流畅性和健壮性受到严重影响。
发明内容
为解决现有技术中存在的问题,本发明提供了一种用于帧缓存解压的硬件容错方法和装置。
本发明采用的技术方案是:一种用于帧缓存解压的硬件容错方法,包括:
步骤S1:解压当前压缩单元的压缩头,从所述压缩头中获取压缩体的大小信息;
步骤S2:根据所述压缩头中的所述压缩体的大小信息读取相应大小的压缩数据至缓存区中,并对所述压缩数据进行解压;
步骤S3:实时比较所述压缩头中的所述压缩体的大小信息和解压所述压缩数据所消耗的实际压缩数据的大小信息,如果小于,则执行步骤S4,如果大于,则执行步骤S5;
步骤S4:进入解压匮乏状态,将解压完成时的所述压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
步骤S5:进入解压富余状态,通过更新读指针消耗完所述缓存区中当前压缩单元的剩余数据。
其中,所述步骤S1和所述步骤S2,具体为:
步骤1:当处于异位同步时,初始化压缩体剩余大小为0;
步骤2:解压所述压缩头,当解压所述压缩头完毕时,将所述压缩体剩余大小设置为所述压缩头中的所述压缩体的大小信息;
步骤3:根据所述压缩头中的所述压缩体的大小信息从内存中读取相应大小的压缩数据至缓存区中,将所述压缩数据作为压缩体;
步骤4:循环解压所述压缩体中的压缩前缀和压缩残差,当解压完毕时,将所述压缩体剩余大小更新为当前压缩体剩余大小减去所述压缩前缀的大小信息和所述压缩残差的大小信息。
所述步骤4具体为:
步骤4-1:解压所述压缩体中当前压缩子块的压缩前缀;
步骤4-2:将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩前缀的大小信息;
步骤4-3:根据所述压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
步骤4-4:将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩残差的大小信息;
步骤4-5:判断是否还有未解压的压缩子块,如果是,则继续解压下一压缩子块,返回执行步骤4-1,否则执行步骤S3。
所述步骤S3具体为:
将所述压缩头中的所述压缩体的大小信息与解压所述压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;
判断所述压缩体剩余大小的值,如果小于0,则进入所述解压匮乏状态,如果大于0,则进入解压富余状态,如果等于0,则不进行容错处理。
所述步骤S4中,所述进入解压匮乏状态的硬件行为是:继续使解压完成时的所述压缩数据中压缩子块的标号不断有效,直到达到变为0;每个数据有效采集标志随着对应的压缩子块的标号不断置高,直到一个完整的压缩单元解压完毕。
所述步骤S5具体为:根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将所述缓存区中的读指针更新为当前读指针的位置加所述压缩体剩余大小。
所述步骤S5中,所述进入解压富余状态的硬件行为是:仅仅额外消耗完毕所述压缩体剩余大小的缓冲区的数据,即发出缓冲区读使能动作,读指针计数器加所述压缩体剩余大小,所述压缩数据中压缩子块的标号和每个数据有效采集标志的硬件行为都不发生变化。
一种用于帧缓存解压的硬件容错装置,包括:
解压模块,用于解压当前压缩单元的压缩头和压缩数据;
获取模块,用于从所述压缩头中获取压缩体的大小信息;还用于根据所述压缩头中的所述压缩体的大小信息读取相应大小的压缩数据至缓存区中;
比较模块,用于实时比较所述压缩头中的所述压缩体的大小信息和解压所述压缩数据所消耗的实际压缩数据的大小信息;
匮乏处理模块,用于当所述比较模块结果为小于时,进入解压匮乏状态,将解压完成时的所述压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
富余处理模块,用于当所述比较模块结果为大于时,进入解压富余状态,通过更新读指针消耗完所述缓存区中当前压缩单元的剩余数据。
所述装置还包括:
设置模块,用于当处于异位同步时,初始化压缩体剩余大小为0;还用于当解压所述压缩头完毕时,将所述压缩体剩余大小设置为所述压缩头中的所述压缩体的大小信息;
选定模块,用于将所述获取模块获取的所述压缩数据作为压缩体;
所述解压模块,还用于循环解压所述压缩体中的压缩前缀和压缩残差;
所述设置模块,还用于当解压完毕时,将所述压缩体剩余大小更新为当前压缩体剩余大小减去所述压缩前缀的大小信息和所述压缩残差的大小信息。
其中,所述设置模块,包括第一解压单元、第一设置单元、第二解压单元、第二设置单元和判断单元;
所述第一解压单元,用于解压所述压缩体中当前压缩子块的压缩前缀;
所述第一设置单元,用于将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩前缀的大小信息;
所述第二解压单元,用于根据所述压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
所述第二设置单元,用于将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩残差的大小信息;
所述判断单元,用于判断是否还有未解压的压缩子块,当判断为是时,触发所述第一解压单元,当判断为否时,触发所述比较模块。
进一步的,所述匮乏处理模块,具体用于:
将所述压缩头中的所述压缩体的大小信息与解压所述压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;
判断所述压缩体剩余大小的值,如果小于0,则进入所述解压匮乏状态,如果大于0,则进入解压富余状态,如果等于0,则不进行容错处理。
更进一步的,所述匮乏处理模块,具体用于继续使解压完成时的所述压缩数据中压缩子块的标号不断有效,直到达到变为0;每个数据有效采集标志随着对应的压缩子块的标号不断置高,直到一个完整的压缩单元解压完毕。
进一步的,所述富余处理模块,具体用于根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将所述缓存区中的读指针更新为当前读指针的位置加所述压缩体剩余大小。
更进一步的,所述富余处理模块,具体用于仅仅额外消耗完毕所述压缩体剩余大小的缓冲区的数据,即发出缓冲区读使能动作,读指针计数器加所述压缩体剩余大小,所述压缩数据中压缩子块的标号和每个数据有效采集标志的硬件行为都不发生变化。
本发明达到的有益效果是:采用本发明的硬件容错方法及装置,能够避免由于SOC在运行过程中系统不稳定而导致解压缩过程发生挂死错误现象,由于硬件容错过程是针对当前出错的压缩单元立即处理,故帧内其他正确的解压缩块不会发生错误扩散,相对于无容错机制或软件容错机制,能够使SOC的运行更加健壮和流畅。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图活的其他的附图。
图1是本发明实施例提供的一种用于帧缓存解压的硬件容错方法流程图;
图2提供了帧缓存压缩单元的具体描述图;
图3是循环解压压缩体的具体流程图;
图4是解压匮乏状态的具体处理时序图;
图5是解压富余状态的具体处理时序图;
上述两个时序图不包括与容错和基本解压过程不相关的其他硬件处理过程;
图6是本发明实施例二提供的一种用于帧缓存解压的硬件容错装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,均属于本发明保护的范围。
实施例一
在帧缓存压缩技术中,视频或图片被分成多个图像单元,对每个图像单元进行压缩,生成压缩单元,对每个压缩单元执行本发明的容错机制,当某个压缩单元出现解压错误时,只影响该压缩单元在图像中的显示,错误并不会扩散至其他压缩单元,而且不会影响其他压缩单元的解压进程,使得运行更加流畅。
本发明实施例一提供了一种用于帧缓存解压的硬件容错方法,如图1所示,包括:
步骤101:解压当前压缩单元的压缩头,从压缩头中获取压缩体的大小信息(exp_body_size);
参见图2,压缩单元包括压缩头和压缩体,其中,压缩头包括压缩体的大小信息;该压缩体的大小信息用于从内存中读取相应的大小来进行数据解压;压缩体中包括有多个压缩子块,每个压缩子块中均包括压缩前缀和压缩残差,其中,压缩前缀中包括压缩残差的熵编码信息;
除此之外,根据帧缓存压缩算法的不同,可以在压缩头中除压缩体大小信息外还添加其他压缩头信息;
本实施例以预先设定算法为压缩单元分四个压缩子块为例来说明,该四个压缩子块的标号分别为sub_block_cnt0、sub_block_cnt1、sub_block_cnt2、sub_block_cnt3;
优选的,无论压缩头中的压缩体大小信息正确与否,硬件处理过程中,都会信任该信息解压是正确的,用于后续的容错校准,因为先解压压缩头信息再解压压缩体信息,使得硬件处理会更加方便。
步骤102:根据压缩头中压缩体的大小信息读取相应大小的压缩数据至缓存区中,并对该压缩数据进行解压;
本实施例中,步骤101和步骤102具体操作为:
步骤T1:当处于异位同步时,初始化压缩体剩余大小(remain_body_size)为0;
步骤T2:解压压缩头,当解压压缩头完毕时,将压缩体剩余大小设置为压缩头中压缩体的大小信息(exp_body_size);
步骤T3:根据压缩头中压缩体的大小信息从内存中读取相应大小的压缩数据至缓存区中,将该压缩数据作为压缩体;
步骤T4:循环解压压缩体中的压缩前缀和压缩残差,当解压完毕时,将压缩体剩余大小更新为当前压缩体剩余大小减去压缩前缀的大小信息和压缩残差的大小信息;
参见图3,本步骤具体为,
步骤T4-1:解压压缩体中当前压缩子块的压缩前缀;
步骤T4-2:将压缩体剩余大小设置为当前压缩体剩余大小减去压缩前缀的大小信息(body_prefix_dec_need_size);
步骤T4-3:根据压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
步骤T4-4:将压缩体剩余大小设置为当前压缩体剩余大小减去压缩残差的大小信息(body_core_dec_need_size);
步骤T4-5:判断是否还有未解压的压缩子块,如果是,则继续解压下一压缩子块,返回执行步骤T4-2,否则执行步骤103;
步骤103:实时比较压缩头中的压缩体的大小信息和解压压缩数据所消耗的实际压缩数据的大小信息,如果小于,则进入解压匮乏状态,执行步骤104,如果大于,则进入解压富余状态,执行步骤105;
本实施例中,实时比较压缩头中的压缩体的大小信息和解压压缩数据所消耗的实际压缩数据的大小信息,具体为:将压缩头中的压缩体的大小信息与解压压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;判断压缩体剩余大小,如果大于0,则进入解压富余状态,如果小于0,则进入解压匮乏状态,如果等于0,则不进行容错处理。
当压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小相等时,不会引起错误扩展和状态挂死,因此不进行硬件特殊处理,不在本发明的容错范围内;
步骤104:进入解压匮乏状态时,将解压完成时的压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
参见图4,每一个压缩子块的标号均对应一个数据有效采集标志,例如,sub_block_cnt0对应数据有效采集标志sub_block_dat_vld0,sub_block_cnt1对应数据有效采集标志sub_block_dat_vld1;sub_block_cnt2对应数据有效采集标志sub_block_dat_vld2;sub_block_cnt3对应数据有效采集标志sub_block_dat_vld3;
解压压缩子块的标号为sub_block_cnt0的压缩数据,将该标号对应的数据有效采集标志sub_block_dat_vld0置为有效,当解压压缩子块的标号为sub_block_cnt1的压缩数据时,压缩头中的压缩体的大小信息大于解压压缩数据所消耗的实际压缩数据的大小信息,进入解压匮乏状态(decoder_poor);
解压匮乏状态(decoder_poor)硬件行为是:继续使压缩子块的标号sub_block_cnt不断有效,直到达到变为0,这样保证了一个完整的压缩单元正常循环完毕;保证数据有效采集标志sub_block_dat_vld随着压缩子块的标号sub_block_cnt不断有效,即在该状态下数据有效采集标志sub_block_dat_vld不断置高,直到一个完整的压缩单元解压完毕,这样硬件输出就会完整,完整的把数据传输给其他模块;
如图4所示,将压缩子块的标号sub_block_dat_vld1、sub_block_dat_vld2、sub_block_cnt3对应的数据有效采集标志sub_block_dat_vld1、sub_block_dat_vld2、sub_block_dat_vld3均置为高电平有效,直至压缩子块的标号sub_block_cnt又变为sub_block_cnt0。
步骤105:进入解压富余状态,通过更新读指针消耗完缓存区中当前压缩单元的剩余数据;
本实施例中,通过更新读指针消耗完缓存区中当前压缩单元的剩余数据,具体为:根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将缓存区中压缩数据的读指针更新为当前读指针的位置加所述压缩体剩余大小;
参见图5,解压压缩子块的标号为sub_block_cnt0的压缩数据,将该标号对应的数据有效采集标志sub_block_dat_vld0置为有效,解压压缩子块的标号为sub_block_cnt1的数据,将该标号对应的数据有效采集标志sub_block_dat_vld1置为有效,解压压缩子块的标号为sub_block_cnt2的压缩数据,将该标号对应的数据有效采集标志sub_block_dat_vld2置为有效,解压压缩子块的标号为sub_block_cnt3的压缩数据,将该标号对应的数据有效采集标志sub_block_dat_vld3置为有效,当解压完压缩子块的标号为sub_block_cnt3的压缩数据时,压缩头中的压缩体的大小信息仍大于0,进入解压富余状态(decoder_rich)。
解压富余状态(decoder_rich)状态硬件行为是:仅仅额外消耗完毕中压缩体剩余大小(remain_body_size)的压缩数据,即发出缓冲区读使能动作,将读指针计数器加压缩体剩余大小(remain_body_size),达到不影响下一个压缩单元解压的目的。但是,压缩子块的标号sub_block_cnt和对应的数据有效采集标志sub_block_dat_vld的硬件行为均不发生变化。
实施例二
本发明实施例二提供了一种用于帧缓存解压的硬件容错装置,如图6所示,包括:
解压模块201,用于解压当前压缩单元的压缩头和压缩数据;
获取模块202,用于从压缩头中获取压缩体的大小信息;还用于根据压缩头中的压缩体的大小信息读取相应大小的压缩数据至缓存区中;
比较模块203,用于实时比较压缩头中的所述压缩体的大小信息和解压压缩数据所消耗的实际压缩数据的大小信息;
匮乏处理模块204,用于当比较模块203结果为大于时,进入解压匮乏状态,将解压完成时的压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
富余处理模块205,用于当所述比较模块结果为大于时,进入解压富余状态,通过更新读指针消耗完所述缓存区中当前压缩单元的剩余数据。
本实施例中,容错装置还包括:
设置模块206,用于当处于异位同步时,初始化压缩体剩余大小为0;还用于当解压压缩头完毕时,将压缩体剩余大小设置为压缩头中的压缩体的大小信息;
选定模块207,用于将获取模块202获取的压缩数据作为压缩体;
其中,解压模块201,还用于循环解压压缩体中的压缩前缀和压缩残差;
设置模块206,还用于当解压完毕时,将压缩体剩余大小更新为当前压缩体剩余大小减去压缩前缀的大小信息和压缩残差的大小信息。
进一步的,设置模块206,包括第一解压单元2061、第一设置单元2062、第二解压单元2063、第二设置单元2064和判断单元2065;
具体的,第一解压单元2061,用于解压压缩体中当前压缩子块的压缩前缀;
第一设置单元2062,用于将压缩体剩余大小设置为当前压缩体剩余大小减去压缩前缀的大小信息;
第二解压单元2063,用于根据压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
第二设置单元2064,用于将压缩体剩余大小设置为当前压缩体剩余大小减去压缩残差的大小信息;
判断单元2065,用于判断是否还有未解压的压缩子块,当判断为是时,触发第一解压单元2061,当判断为否时,触发比较模块203。
进一步的,所述匮乏处理模块204,具体用于将所述压缩头中的所述压缩体的大小信息与解压所述压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;判断所述压缩体剩余大小的值,如果小于0,则进入所述解压匮乏状态,如果大于0,则进入解压富余状态,如果等于0,则不进行容错处理。
更进一步的,匮乏处理模块204,具体用于继续使解压完成时的压缩数据中压缩子块的标号不断有效,直到达到变为0;每个数据有效采集标志随着对应的压缩子块的标号不断置高,直到一个完整的压缩单元解压完毕。
进一步的,富余处理模块205,具体用于根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将缓存区中的读指针更新为当前读指针的位置加压缩体剩余大小。
更进一步的,富余处理模块205,具体用于仅仅额外消耗完毕压缩体剩余大小的缓冲区的数据,即发出缓冲区读使能动作,读指针计数器加压缩体剩余大小,压缩数据中压缩子块的标号和每个数据有效采集标志的硬件行为都不发生变化。
采用本发明取得的有益效果包括:
1、采用容错机制来面对SOC运行过程中外界因素导致的FBC从外部内存读取错误需求;
2、该容错机制是一种内部硬件容错机制,相比于没有容错机制方案或者软件容错机制,处理速度快,不会丟帧,更加的保证SOC的健壮性和流畅性;
3、该硬件容错机制前提采用信任压缩头信息是正确的,以此来作为容错机制的前提;
4、该容错机制采用两个参数实时进行对比来进行容错检测,一个参数是解压头信息获取到了可信任的压缩体大小,一个参数是实际解压压缩体过中所不断需要消耗的压缩体大小,根据这两个信息实时更新判断;
5、该硬件容错机制在检测到错误标志后,根据情况马上进入该压缩单元的容错处理过程,进行相关的硬件容错;
6、该硬件容错方法能够保证只是当前压缩单元数据错误,而不会影响其他的正确压缩单元正常解压,即错误不会发生扩散;更不会出现hang现象
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储设备内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储设备、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储设备、闪存、ROM存储设备、EPROM存储设备、EEPROM存储设备、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储设备单元并由处理器执行。存储设备单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

Claims (14)

1.一种用于帧缓存解压的硬件容错方法,其特征在于,包括:
步骤S1:解压当前压缩单元的压缩头,从所述压缩头中获取压缩体的大小信息;
步骤S2:根据所述压缩头中的所述压缩体的大小信息读取相应大小的压缩数据至缓存区中,并对所述压缩数据进行解压;
步骤S3:实时比较所述压缩头中的所述压缩体的大小信息和解压所述压缩数据所消耗的实际压缩数据的大小信息,如果小于,则执行步骤S4,如果大于,则执行步骤S5;
步骤S4:进入解压匮乏状态,将解压完成时的所述压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
步骤S5:进入解压富余状态,通过更新读指针消耗完所述缓存区中当前压缩单元的剩余数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1和所述步骤S2,具体为:
步骤1:当处于异位同步时,初始化压缩体剩余大小为0;
步骤2:解压所述压缩头,当解压所述压缩头完毕时,将所述压缩体剩余大小设置为所述压缩头中的所述压缩体的大小信息;
步骤3:根据所述压缩头中的所述压缩体的大小信息从内存中读取相应大小的压缩数据至缓存区中,将所述压缩数据作为压缩体;
步骤4:循环解压所述压缩体中的压缩前缀和压缩残差,当解压完毕时,将所述压缩体剩余大小更新为当前压缩体剩余大小减去所述压缩前缀的大小信息和所述压缩残差的大小信息。
3.根据权利要求2所述的方法,其特征在于,所述步骤4具体为:
步骤4-1:解压所述压缩体中当前压缩子块的压缩前缀;
步骤4-2:将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩前缀的大小信息;
步骤4-3:根据所述压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
步骤4-4:将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩残差的大小信息;
步骤4-5:判断是否还有未解压的压缩子块,如果是,则继续解压下一压缩子块,返回执行步骤4-1,否则执行步骤S3。
4.根据权利要求1所述的方法,其特征在于,
所述步骤S3具体为:
将所述压缩头中的所述压缩体的大小信息与解压所述压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;
判断所述压缩体剩余大小的值,如果小于0,则进入所述解压匮乏状态,如果大于0,则进入解压富余状态,如果等于0,则不进行容错处理。
5.根据权利要求1所述的方法,其特征在于,
所述步骤S4中,所述进入解压匮乏状态的硬件行为是:继续使解压完成时的所述压缩数据中压缩子块的标号不断有效,直到达到变为0;每个数据有效采集标志随着对应的压缩子块的标号不断置高,直到一个完整的压缩单元解压完毕。
6.根据权利要求1所述的方法,其特征在于,
所述步骤S5具体为:根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将所述缓存区中的读指针更新为当前读指针的位置加所述压缩体剩余大小。
7.根据权利要求6所述的方法,其特征在于,
所述步骤S5中,所述进入解压富余状态的硬件行为是:仅仅额外消耗完毕所述压缩体剩余大小的缓冲区的数据,即发出缓冲区读使能动作,读指针计数器加所述压缩体剩余大小,所述压缩数据中压缩子块的标号和每个数据有效采集标志的硬件行为都不发生变化。
8.一种用于帧缓存解压的硬件容错装置,其特征在于,包括:
解压模块,用于解压当前压缩单元的压缩头和压缩数据;
获取模块,用于从所述压缩头中获取压缩体的大小信息;还用于根据所述压缩头中的所述压缩体的大小信息读取相应大小的压缩数据至缓存区中;
比较模块,用于实时比较所述压缩头中的所述压缩体的大小信息和解压所述压缩数据所消耗的实际压缩数据的大小信息;
匮乏处理模块,用于当所述比较模块结果为小于时,进入解压匮乏状态,将解压完成时的所述压缩数据中压缩子块的标号以及后续所有压缩子块的标号对应的每个数据有效采集标志均置为有效;
富余处理模块,用于当所述比较模块结果为大于时,进入解压富余状态,通过更新读指针消耗完所述缓存区中当前压缩单元的剩余数据。
9.根据权利要求8所述的装置,其特征在于,还包括:
设置模块,用于当处于异位同步时,初始化压缩体剩余大小为0;还用于当解压所述压缩头完毕时,将所述压缩体剩余大小设置为所述压缩头中的所述压缩体的大小信息;
选定模块,用于将所述获取模块获取的所述压缩数据作为压缩体;
所述解压模块,还用于循环解压所述压缩体中的压缩前缀和压缩残差;
所述设置模块,还用于当解压完毕时,将所述压缩体剩余大小更新为当前压缩体剩余大小减去所述压缩前缀的大小信息和所述压缩残差的大小信息。
10.根据权利要求9所述的装置,其特征在于,
所述设置模块,包括第一解压单元、第一设置单元、第二解压单元、第二设置单元和判断单元;
所述第一解压单元,用于解压所述压缩体中当前压缩子块的压缩前缀;
所述第一设置单元,用于将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩前缀的大小信息;
所述第二解压单元,用于根据所述压缩前缀中的压缩残差的熵编码信息,解压当前压缩前缀对应的压缩残差;
所述第二设置单元,用于将所述压缩体剩余大小设置为当前压缩体剩余大小减去所述压缩残差的大小信息;
所述判断单元,用于判断是否还有未解压的压缩子块,当判断为是时,触发所述第一解压单元,当判断为否时,触发所述比较模块。
11.根据权利要求8所述的装置,其特征在于,
所述匮乏处理模块,具体用于:
将所述压缩头中的所述压缩体的大小信息与解压所述压缩数据所消耗的实际压缩数据的大小信息的差值,作为压缩体剩余大小;
判断所述压缩体剩余大小的值,如果小于0,则进入所述解压匮乏状态,如果大于0,则进入解压富余状态,如果等于0,则不进行容错处理。
12.根据权利要求8所述的装置,其特征在于,
所述匮乏处理模块,具体用于继续使解压完成时的所述压缩数据中压缩子块的标号不断有效,直到达到变为0;每个数据有效采集标志随着对应的压缩子块的标号不断置高,直到一个完整的压缩单元解压完毕。
13.根据权利要求8所述的装置,其特征在于,
所述富余处理模块,具体用于根据压缩头中的压缩体的大小信息和解压得到的压缩体的实际大小的差值,得到压缩体剩余大小,将所述缓存区中的读指针更新为当前读指针的位置加所述压缩体剩余大小。
14.根据权利要求13所述的装置,其特征在于,
所述富余处理模块,具体用于仅仅额外消耗完毕所述压缩体剩余大小的缓冲区的数据,即发出缓冲区读使能动作,读指针计数器加所述压缩体剩余大小,所述压缩数据中压缩子块的标号和每个数据有效采集标志的硬件行为都不发生变化。
CN201710312715.4A 2017-05-05 2017-05-05 一种用于帧缓存解压的硬件容错方法和装置 Active CN107241608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710312715.4A CN107241608B (zh) 2017-05-05 2017-05-05 一种用于帧缓存解压的硬件容错方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710312715.4A CN107241608B (zh) 2017-05-05 2017-05-05 一种用于帧缓存解压的硬件容错方法和装置

Publications (2)

Publication Number Publication Date
CN107241608A true CN107241608A (zh) 2017-10-10
CN107241608B CN107241608B (zh) 2021-08-27

Family

ID=59984598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710312715.4A Active CN107241608B (zh) 2017-05-05 2017-05-05 一种用于帧缓存解压的硬件容错方法和装置

Country Status (1)

Country Link
CN (1) CN107241608B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710581A (zh) * 2018-12-25 2019-05-03 四川巧夺天工信息安全智能设备有限公司 一种解压qcow镜像文件中压缩数据的方法
CN112181919A (zh) * 2019-07-05 2021-01-05 深信服科技股份有限公司 一种压缩方法、系统及电子设备和存储介质
CN113271468A (zh) * 2020-02-14 2021-08-17 北京灵汐科技有限公司 一种基于GOP的SoC视频解码缓冲方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070009589A1 (en) * 2005-07-07 2007-01-11 Kandarapu Raghupathi Extended release compositions
CN102638579A (zh) * 2012-03-29 2012-08-15 深圳市高正软件有限公司 一种基于移动设备数据传输的数据处理方法及系统
CN103744627A (zh) * 2014-01-26 2014-04-23 武汉英泰斯特电子技术有限公司 对实时采集的数据压缩存储的方法及系统
CN103744621A (zh) * 2013-12-31 2014-04-23 深圳英飞拓科技股份有限公司 缓冲区循环读写的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070009589A1 (en) * 2005-07-07 2007-01-11 Kandarapu Raghupathi Extended release compositions
CN102638579A (zh) * 2012-03-29 2012-08-15 深圳市高正软件有限公司 一种基于移动设备数据传输的数据处理方法及系统
CN103744621A (zh) * 2013-12-31 2014-04-23 深圳英飞拓科技股份有限公司 缓冲区循环读写的方法及装置
CN103744627A (zh) * 2014-01-26 2014-04-23 武汉英泰斯特电子技术有限公司 对实时采集的数据压缩存储的方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710581A (zh) * 2018-12-25 2019-05-03 四川巧夺天工信息安全智能设备有限公司 一种解压qcow镜像文件中压缩数据的方法
CN112181919A (zh) * 2019-07-05 2021-01-05 深信服科技股份有限公司 一种压缩方法、系统及电子设备和存储介质
CN113271468A (zh) * 2020-02-14 2021-08-17 北京灵汐科技有限公司 一种基于GOP的SoC视频解码缓冲方法和装置

Also Published As

Publication number Publication date
CN107241608B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN106030652B (zh) 提供输出面的方法、系统和合成显示控制器及计算机介质
WO2022252488A1 (zh) 一种图像压缩方法、装置、电子设备及可读存储介质
CN107241608A (zh) 一种用于帧缓存解压的硬件容错方法和装置
CN103914404B (zh) 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法
CN112991274B (zh) 一种人群计数方法、装置、计算机设备及存储介质
CN113724136B (zh) 一种视频修复方法、设备及介质
CN111182235A (zh) 拼接屏画面录制的方法、设备、计算机设备和存储介质
CN110830808A (zh) 一种视频帧重构方法、装置及终端设备
CN108124157B (zh) 信息交互方法、装置及系统
CN108769684A (zh) 基于WebP图像压缩算法的图像处理方法以及装置
WO2024140568A1 (zh) 图像处理方法、装置、电子设备及可读存储介质
CN107018416A (zh) 用于视频和图像压缩的自适应贴片数据大小编码
CN102541314B (zh) 一种信息处理设备和信息处理方法
CN110971895B (zh) 视频抖动检测方法和装置
CN108288247A (zh) 一种多核dsp平台上的实时图像细节增强方法
CN117274446A (zh) 一种场景视频处理方法、装置、设备及存储介质
CN107146193A (zh) 一种应用于图像处理的基于双显卡的gpu并行计算方法
US20240331202A1 (en) Fisheye image compression method, fisheye video stream compression method and panoramic video generation method
CN111083479A (zh) 一种视频帧预测方法、装置及终端设备
CN115834889A (zh) 视频编解码方法、装置、电子设备及介质
Sulzbachner et al. An optimized silicon retina stereo matching algorithm using time-space correlation
WO2018200293A1 (en) Image encoding
CN110958460B (zh) 一种视频存储方法、装置、电子设备及存储介质
CN115546036A (zh) 一种图像增强方法、装置、设备及计算机可读存储介质
CN114902237A (zh) 图像处理方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100084 16 Floors, Block A, Science and Technology Building, Tsinghua Science Park, No. 1 East Zhongguancun Road, Haidian District, Beijing

Applicant after: New Shoreline (Beijing) Science and Technology Group Co.,Ltd.

Address before: 100084 16 Floors, Block A, Science and Technology Building, Tsinghua Science Park, No. 1 East Zhongguancun Road, Haidian District, Beijing

Applicant before: Beijing New Shoreline Technology Co.,Ltd.

Address after: 100084 16 Floors, Block A, Science and Technology Building, Tsinghua Science Park, No. 1 East Zhongguancun Road, Haidian District, Beijing

Applicant after: Beijing New Shoreline Technology Co.,Ltd.

Address before: 100084 16 Floors, Block A, Science and Technology Building, Tsinghua Science Park, No. 1 East Zhongguancun Road, Haidian District, Beijing

Applicant before: BEIJING PUJIXIN TECHNOLOGY CO.,LTD.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant