CN102104781A - 图像解码器 - Google Patents
图像解码器 Download PDFInfo
- Publication number
- CN102104781A CN102104781A CN 200910260631 CN200910260631A CN102104781A CN 102104781 A CN102104781 A CN 102104781A CN 200910260631 CN200910260631 CN 200910260631 CN 200910260631 A CN200910260631 A CN 200910260631A CN 102104781 A CN102104781 A CN 102104781A
- Authority
- CN
- China
- Prior art keywords
- reference picture
- picture
- decoding
- avc
- decoder
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种图像解码器,包括串流暂存区、H.264/AVC解码器以及处理器。串流暂存区用以储存串流数据。H.264/AVC解码器用以解码串流数据,并依其指示进行H.264/AVC标准中片段层重新排列参考图片表所记录的参考图片的顺序的操作,以产生数个已解码图片。处理器用以执行一程序,以进行H.264/AVC标准中影片层的操作,而对所述数个已解码图片进行标记。
Description
技术领域
本发明涉及一种图像解码器,且特别涉及一种符合H.264/AVC标准的图像解码器。
背景技术
H.264/AVC为目前新的视频压缩技术,是由ITU-T视频编码专家小组(VCEG)和ISO/IEC动态图像专家小组(MPEG)所联合组成的联合视频小组JVT(Joint Video Team)所共同研发提出的。H.264/AVC以其高压缩率被广泛运用在各种场合,包括新一代蓝光DVD标准、数字电视地面广播(DVB-T)、数字电视卫星广播(DVB-S),及其它通讯与多媒体视频压缩的应用。H.264/AVC采用了包括多幅参考图框(Multiple Reference Frame)、多种区块尺寸运动补偿(Variable block-size motion compensation)、1/4像素精准度运动补偿(Quarter-pixel precision for motioncompensation)、加权运动补偿(Weighted Prediction)、算数编码(arithmetic coding)等压缩技术,以达到更高的压缩效率。
H.264/AVC视频压缩标准支持多幅参考图框(Multiple ReferenceFrame)技术,以增进压缩的效能。为了能明确指定所使用的参考图片,所有的可参考图片(reference picture)会先依照标准的规定,进行排序的动作,以产生参考图片表(Reference Picture List),使编/解码器能依据参考图片表的索引信息由参考图片表中得知所要参考的图片,以进行后续编/解码。而参考图片的来源即为之前压缩过的可参考图片(reference picture),每张可参考图片可经由解码参考图片标记(DecodedReference Picture Marking)的动作,对参考图片进行标记。此动作会在整个图片编/解码完成之后进行。参考图片可因此被标记为短期参考(usedfor short-term reference)、长期参考(used for long-term reference)、不参考(unused for reference),这三种标记,进而影响建立参考图片表排序的结果。
在H.264/AVC视频压缩标准中,每个画面包含有多个片段(slice),而每个片段都会依据自己的片段标头(slice header)自行建立一次参考图片表,供整个片段使用。H.264/AVC编码标准是以宏区块(macroblock,以下简称:MB)为基本的编码单位,即将一张影像分割为多个宏区块,再分别对这些宏区块进行编码动作。而在执行影像编码时,H.264/AVC编码标准实际上是以宏区块为单位进行编码,而一个宏区块由16×16像素组成,可再细分为4×4的区块(block)以进行后续动作。
在一篇于公元2007年1月发表于IEEE JOURNAL OF SOLID-STATECIRCUITS,VOL.42,NO.1而标题为“A 160K Gates/4.5KB SRAM H.264Video Decoder for HDTV Applications”的论文中,Lin等人揭露了一种建立参考图片表的方法,其采用以软件为主的分工接口。其中,片段标头(slice header)的解码以及参考图片表重排序的动作,皆采用软件来进行,而硬件则负责片段层(slice layer)以下的解码动作。在这样的架构下,其软、硬件之间的沟通将会较为频繁,需要利用多次的中断(interrupt)或其它信号来切换软、硬件运算来完成一张图片的解码。当所解码的图片含有很多片段时,就将会增加中断的次数,进而导致软、硬件的效率都会下降。
在另一篇于公元2007年发表于ASICON而标题为“Updating StrategyBased Architecture for Reference Picture Management in H.264/AVC”的论文中,Lou等人揭露了一种全硬件的设计,其初始化参考图片表、参考图片表重排序、参考图片标记及其它相关运算都由硬件负责。其中每张图片的相关数据,就储存在硬件内的内存中。相对而言,其对应的控制和分配就是固定的模式,较不具有弹性。尤其当处理的串流有错误时,会造成许多的影片层(sequence layer)中的错误,进而造成系统控制上的限制。
发明内容
本发明提供一种图像解码器,以图片层(picture layer)作为软件和硬件之间分工的基准。其中,影片层的工作由软件进行,图片层依分配由软硬件共同进行,片段层的工作则由硬件进行加速,以在硬件加速及软件弹性之间取得平衡。
本发明提出一种图像解码器。图像解码器包括串流暂存区、H.264/AVC解码器以及处理器。串流暂存区用以储存串流数据。H.264/AVC解码器用以进行图片层以下的解码,包含对串流数据进行解码,及片段层中重新排列参考图片表所记录的参考图片的顺序操作,以产生数个已解码图片。处理器用以执行一程序,进行影片层(sequence layer)的相关操作,包括对这些已解码图片进行标记。
在本发明一实施例中,上述处理器通过程序发出一指令至H.264/AVC解码器,以令H.264/AVC解码器依据上述指令从串流数据中检索对应数据,并对所检索的对应数据进行解码,依序地解码上述串流中每个片段(slice),最后完成完整图片的解码。此外,当H.264/AVC解码器因响应上述指令而解码产生上述目标图片之后,H.264/AVC解码器发出一反馈信号至处理器,以使程序对所产生的上述目标图片进行标记。
在本发明一实施例中,在上述H.264/AVC解码器解码任一片段期间,H.264/AVC解码器先依串流内容进行参考图片表重新排列,依据对应的重新排列后的参考图片表所记录的参考图片的顺序,从之前的已解码图片中选取部分的已解码图片作为参考图片,并依据所选取的参考图片,解码上述片段。
在本发明一实施例中,在上述H.264/AVC解码器解码任一图片之前,处理器会通过执行上述程序初始化两种可能片段形态(slice type),包括P-slice和B-slice,的参考图片表供硬件参照。
在本发明一实施例中,当上述处理器在初始化两种可能片段形态的参考图片表时,倘若图像解码器的gaps_in_frame_num_value_allowedd_flag的参数值为1时,则上述程序判断已解码图片暂存区所记录的参考图片的图框编号(frame_num)是否有跳号,当有跳号时,上述程序将一些不存在(non-existing)的图片插入欲初始化的参考图片表所记录的参考图片中,再进行初始化。
在本发明一实施例中,上述H.264/AVC解码器依据上述片段在串流数据中所对应的排序数据,重新排列所对应参考图片表所记录的参考图片的顺序。
在本发明一实施例中,上述程序对串流数据进行解码,以得到上述目标图片的图框编号及序列号(order count)。
在本发明一实施例中,上述程序对串流数据进行解码,以得到目标图片的参考图片标记、长期图框索引(long term frame index)。
在本发明一实施例中,当上述H.264/AVC解码器进行B片段空间预测模式(spatial direct mode)的大区块(macroblock)解码时,上述已解码图片的数据包括每个大区块(macroblock)中每个区块(block)的参考图片索引(reference index)是否为零且同时移动向量在正负1之间的数据。
在本发明一实施例中,当上述H.264/AVC解码器进行B片段时间预测模式(temporal direct mode)的大区块(Macroblock)解码时,上述已解码图片的数据包括每个大区块(Macroblock)中每个区块(block)的参考图片及移动向量(motion vector)数据。
在本发明一实施例中,上述参考图片表记录H.264/AVC解码器在解码P片段或B片段时所需的参考图片的顺序。
在本发明一实施例中,上述H.264/AVC解码器因解码串流数据而所产生的第一个已解码图片的所有片段皆为I片段。
在本发明一实施例中,上述图像解码器还包括已解码图片数据暂存区以及欲解码图片数据暂存区。上述已解码图片数据暂存区用以储存上述已解码图片的数据。上述欲解码图片数据暂存区用以暂存上述H.264/AVC解码器在对串流数据进行解码的过程中所产生的图片数据。
在本发明一实施例中,上述已解码图片的数据包括上述已解码图片的图框编号(frame_num)、像素值(pixel value)以及参考图片标记(reference picture marking)。
在本发明一实施例中,上述已解码图片的数据包括上述已解码图片的长期图框索引、像素值(pixel value)以及参考图片标记(referencepicture marking)。
基于上述,本发明的片段层的参考图片表重排序动作是由H.264/AVC解码器(硬件)所执行,故可以避免程序发出过多的中断(interrupt)信号,进而可增进整个系统的效能。此外,由程序负责控制储存及分配图片层以上的数据(如在影片中每张图片的图框编号(frame_num)、内存位置、长期图框索引(long term frame index)…等数据),并提供适当的数据给硬件使用,以增进整个系统的弹性。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为本发明一实施例的图像解码器的功能方块图;
图2为依据本发明一实施例解码一张图片的流程图;
图3为本发明一实施例进行H.264/AVC解码的流程图;
图4为本发明另一实施例进行H.264/AVC解码的流程图。
主要附图标记说明:
100:图像解码器
110:串流暂存区;
112:串流数据;
120:H.264/AVC解码器;
130:处理器;
132:程序;
140:初始参考图片表数据暂存区;
142、144、146:参考图片表;
150:已解码图片数据暂存区;
160:已解码图片;
161:参考图片标记;
162a:图框编号;
162b:长期图框索引;
163、174:像素值;
164:序列号;
165、176:每个大区块的参考图片索引是否为零且同时移动向量在正负1之间的参考图片及移动向量数据;
170:欲解码图片数据暂存区;
172:图片数据;
180:指令;
190:反馈信号;
S202~S212:图片的解码流程;
S302~S314:串流数据的解码流程;
S402~S416:另一串流数据的解码流程。
具体实施方式
在一个典型的H.264/AVC解码器中,其在决定使用参考图片的数量时,是以片段(Slice)的属性来决定能用几张参考图片。I片段(I Slice)在解码时不会参考其它的图片,P片段(P Slice)则可以从参考图片表0(RefList0)中选择一张参考图片来使用,B片段(B Slice)则可以从参考图片表0(RefList0)及参考图片表1(RefList1)中各选一张或只选一个表中的一张参考图片来使用。在每一个片段中,最小例如是每一个8x8方块(8x8 Block)都可以重新选择不同的参考图片,不过可以选择的参考图片表及张数已经受到片段属性的限制了。此外,在每一张图片解码完成后,解码器会根据片段标头(Slice Header)中的信息,来决定哪一张参考图片不再需要被使用(Unused for reference),此程序有可能决定留下所有现有的参考图片,或者丢掉一张以上的参考图片,甚至丢掉全部的参考图片。
已经丢掉的参考图片,在下一张解码时,就会从参考图片表中移除。当然,除了移除参考图片外,也会增加参考图片。解码时会依据网络抽象层(NAL)的标头中的信息,决定正在解码的这张图片是否可拿来参考(Used forreference),若是可以拿来参考的图片,就会将此图片加入到参考图片表中给其后的图片参考,反之则否。不过要注意的是,由于程序上是先移除参考图片再增加本张图片到参考图片表中,故移除的指令并不能移除本张参考图片,除非本张图片本身就是不能拿来被参考的。
请参考图1,图1为本发明一实施例的图像解码器100的功能方块图。图像解码器100包括串流暂存区110、H.264/AVC解码器120以及处理器130。串流暂存区110用以储存串流数据112。串流数据112为依据H.264/AVC的编码标准所产生的串流数据,其包含有影像信息和/或声音信息。H.264/AVC解码器120用以依串流数据中片段层的指示,重新排列对应的参考图片表142、144和146当中的至少一者所记录的参考图片的顺序,并用以进行H.264/AVC标准中图片层(picture layer)和片段层(slice layer)的操作解码,以解码串流数据112而将解码结果存入欲解码图片数据暂存区170。参考图片表142、144和146都会被储存于初始参考图片表数据暂存区140。其中,参考图片表142记录H.264/AVC解码器120在解码P片段时所需的参考图片的初始顺序,参考图片表144记录H.264/AVC解码器在解码B片段时所需的RefList0参考图片的初始顺序,参考图片表146记录H.264/AVC解码器在解码B片段时所需的RefList1参考图片的初始顺序。在H.264/AVC的规格中,参考图片表142即为用以解码P片段时所需的RefList0,参考图片表144即为用以解码B片段时所需的RefList0,而参考图片表146即为用以解码B片段时所需的RefList1。值得注意的,用以解码P片段时所需的RefList0和用以解码B片段时所需的RefList0为两个不同的参考图片表。此外,在本发明一实施例中,当解码P片段时,三个参考图片表142、144和146中只有参考图片表142会被H.264/AVC解码器120使用;而当解码B片段时,三个参考图片表142、144和146中只有参考图片表144和146会被H.264/AVC解码器120使用。
在上述实施例中,初始参考图片表数据暂存区140所存的参考图片表142、144和146是″初始的″三种图片表,而H.264/AVC解码器120在解码时从初始参考图片表数据暂存区140加载对应的参考图片表,以依串流数据指示,对所加载的参考图片表进行重新排列的操作,而被重新排列后的参考图片表即为H.264/AVC解码器120在进行片段解码时用以作为解码依据的参考图片表。然而,值得注意的是,初始参考图片表数据暂存区140对本发明来说并不是必须的,例如在本发明另一实施例中,图像解码器100即不包含有初始参考图片表数据暂存区140,而H.264/AVC解码器120会依据要解码的片段型态,自行建立对应的初始参考图片表,再对初始参考图片表进行重新排列的操作,以获得在进行解码时用以作为依据的参考图片表。
在建立初始化的参考图片表142、144和146过程中,程序132先判断所初始化的参考图片表142、144和/或146所记录的参考图片的图框编号(frame_num)是否有跳号,而倘若有跳号,程序132则再将一些不存在的图片插入要初始化的参考图片表142、144和/或146所记录的参考图片当中。
处理器130用以执行程序132,以进行H.264/AVC标准中影片层(sequencelayer)的操作,以对上述已解码图片160进行标记(marking)。
处理器130通过程序132发出指令180至H.264/AVC解码器120,以令H.264/AVC解码器120依据指令180从串流数据112中检索对应数据,并对所检索的对应数据进行解码,以依序地解码一个或多个片段(slice)后,将结果存入上述欲解码图片数据暂存区170中。当H.264/AVC解码器120因响应指令180而完成产生上述欲解码图片之后,H.264/AVC解码器120发出反馈信号190至处理器130,以使程序132对所产生的目标图片进行标记。此外,在本发明一实施例中,当处理器130接收到H.264/AVC解码器120所发出的反馈信号190之后,程序132会对串流数据112进行解码,以得到上述目标图片的参考图片标记161、长期图框索引162b及序列号164。
由于图片层和片段层的解码操作是由H.264/AVC解码器120以硬件加速的方式完成,而影片层的操作则是处理器130通过执行程序132完成,故相较前述Lou等人所揭露的所有解码的工作都交由硬件来完成的现有技术,本发明因可通过程序132依据解码需求来对解码过程中的参数进行调整,故在应用上会较具弹性。此外,在另一由Lin等人所揭露的现有技术中,将片段层的解码操作交由硬件完成,而图片层及影片层的解码操作交由软件完成,因其所需解码的片段的数目过多,故软件和硬件之间讯息交流的次数会过于频繁,而导致其解码效率不高。相较之下,本发明因图片层和片段层的解码操作是由H.264/AVC解码器120以硬件加速的方式完成,而影片层的操作则是处理器130通过执行程序132完成,故H.264/AVC解码器120与程序132之间讯息交流的次数相对地会减少,而使解码效能提升。因此,相较于前述两种现有技术中的解码方式,本发明可在硬件加速及软件弹性之间取得平衡。
在H.264/AVC解码器120解码任一片段期间,H.264/AVC解码器120依据重新排列后的参考图片表142、144和146中至少一个所记录的参考图片的顺序,选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码上述所要解码的片段。详言之,当欲要解码的片段为P片段时,H.264/AVC解码器120依据重新排列后的参考图片表142,从上述已解码图片160中选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码上述所要解码的P片段。此外,当欲要解码的片段为B片段时,H.264/AVC解码器120依据重新排列后的参考图片表144和146,从上述已解码图片160中选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码上述所要解码的B片段。
请参考图2,图2为依据本发明一实施例解码一张图片的流程图。首先,程序132会检查影片层中的参数gaps_in_frame_num_value_allowed_flag的参数值是否为1,如果gaps_in_frame_num_value_allowed_flag的参数值的参数值为1,则程序132在步骤S202中会先检查图片层中的图框编号(frame_num)是否有跳号,并在跳号的地方,插入一些不存在(non-existing)的图片再进行初始化。详言之,当处理器130在初始化参考图片表142、144及146中的至少一个时,倘若图像解码器100的gaps_in_frame_num_value_allowed_flag的参数值为1,则程序132判断所初始化的参考图片表142、144和/或146所记录的参考图片的图框编号(frame_num)是否有跳号,当有跳号时,程序132则将一些不存在的图片插入所初始化的参考图片表142、144和/或146所记录的参考图片中。接着,在图片层,H.264/AVC解码器120会将已插入不存在的图片与原本的图片一起进行排序,以建立初始的参考图片表142、144和146当中的至少一个。其中,用于P片段的参考图片表142是根据图框编号(frame_num)及长期图框索引(long term frame index)来进行排序。至于用于B片段的参考图片表144和146则是根据图片的序列号(picture order count)及长期图框索引来进行排序。之后,在对片段进行解码时,H.264/AVC解码器120会视串流数据112中是否有重排序的信息,再依重排序的信息将初始的参考图片表142、144和146当中的至少一个所记录的参考图片的顺序进行变动,而完成重排序后的参考图片表142、144和/或146。然而,倘若上述的gaps_in_frame_num_value_allowed_flag的参数值为0,则程序132会略过步骤S202,而进行步骤S204。在步骤S204中,程序132会对串流数据112进行解码及运算,以在初始参考图片表数据暂存区140中建立参考图片表142、144和146当中至少一个的初始内容。
之后,在步骤S206中,每当H.264/AVC解码器120欲解码任一片段时,H.264/AVC解码器120会依据所欲解码的片段在串流数据112中所对应的排序数据,重新排列所对应的参考图片表142、144和/或146所记录的参考图片的顺序。详言之,当所欲解码的片段为P片段,则H.264/AVC解码器120依据在串流数据112中所对应的排序数据,重新排列所对应的参考图片表142所记录的参考图片的顺序。当所欲解码的片段为B片段,则H.264/AVC解码器120依据在串流数据112中所对应的排序数据,重新排列所对应的参考图片表144和146所记录的参考图片的顺序。当所欲解码的片段为I片段,则H.264/AVC解码器120不重新排列任何参考图片表所记录的参考图片的顺序。
在步骤S208中,H.264/AVC解码器120会依据重新排列后的参考图片表142、144和146中至少一者所记录的参考图片的顺序,从上述已解码图片160中选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码所欲解码的片段。详言的,倘若所欲解码的片段为P片段,则H.264/AVC解码器120会依据重新排列后的参考图片表142所记录的参考图片的顺序,从上述已解码图片160中选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码所欲解码的P片段。倘若所欲解码的片段为B片段,则H.264/AVC解码器120会依据重新排列后的参考图片表144和146所记录的参考图片的顺序,从上述已解码图片160中选取部分的已解码图片160作为参考图片,并依据所选取的参考图片,解码所欲解码的B片段。
之后,在步骤S210中,H.264/AVC解码器120会判断前一步骤所解码的片段是否为所欲解码的图片的最后一个片段。倘若在步骤S208所解码的片段并非所解码的图片的最后一个片段,则重复步骤S204~S208,以解码下一个片段。倘若在步骤S208所解码的片段为所欲解码的图片的最后一个片段,则表示已经完成整张图片的所有片段的解码工作。在步骤S212中,程序132和H.264/AVC解码器120会对串流数据112进行解码及运算,以从串流暂存区110读取下一张欲解码图片的数据。之后,再重复步骤S202~S210。
请再参考图1。程序132会将H.264/AVC解码器120在解码的过程中所需要的一些数据储存至已解码图片数据暂存区150,以供H.264/AVC解码器120解码时取用。举例来说,为了让H.264/AVC解码器120能进行片段层中参考图片表的重排序的动作,H.264/AVC解码器120必需知道所有可参考图片的参考图片标记161,并知道图框编号162a和长期图框索引162b当中的一个。为了进行移动补偿的动作,所有可参考图片的已解码的像素值163也是必要的。这些数据,将放在接口中的已解码图片数据暂存区150,由程序132进行处理后,再由H.264/AVC解码器120读取。
此外,如果H.264/AVC解码器120要进行B片段中关于空间预测模式(spatial direct mode)的大区块的解码时,则所有可参考图片每个大区块中每个区块(block)的参考图片索引(reference index)是否为零且同时移动向量在正负1之间的参考图片及移动向量数据165也是必要的,可依需求再加放入已解码图片数据暂存区150中。换言之,当H.264/AVC解码器120要进行B片段中关于空间预测模式的大区块的解码时,程序132会先将所有可参考图片每个大区块中每个区块的参考图片索引是否为零且同时移动向量在正负1之间的参考图片及移动向量数据165储存至已解码图片数据暂存区150,以供H.264/AVC解码器120读取。
另一方面,如果H.264/AVC解码器120要进行B片段的参考图片表初始动作,则所有可参考图片的序列号164的数据也是必要的,可依需求再加放入已解码图片数据暂存区150中。换言之,当H.264/AVC解码器120要进行B片段的参考图片表初始动作或时间预测模式的大区块的解码时,程序132会先将所有可参考图片的序列号164的数据储存至已解码图片数据暂存区150,以供H.264/AVC解码器120读取。
此外,如果H.264/AVC解码器120要进行B片段中关于时间预测模式(temporal direct mode)的大区块的解码,则所有可参考图片每个大区块中每个区块的参考图片及移动向量(motion vector)的数据也是必要的,可依需求再加放入已解码图片数据暂存区150中。换言之,当H.264/AVC解码器120要进行B片段中关于时间预测模式的大区块的解码时,程序132会先将所有可参考图片每个大区块中每个区块的参考图片及移动向量(motion vector)的数据储存至已解码图片数据暂存区150,以供H.264/AVC解码器120读取。
另外,图像解码器100另包括欲解码图片数据暂存区170,用以暂存H.264/AVC解码器120在对串流数据112进行解码的过程中所产生的图片数据172。上述的图片数据172可包括但不限于图片的像素值174和每个大区块的参考图片索引是否为零且同时移动向量在正负1之间的参考图片及移动向量数据176。
请参考图3,图3为本发明一实施例进行H.264/AVC解码的流程图。依据H.264/AVC的规范,被解码的第一张图片必须是由I片段所组成(步骤S302和S304)。之后,在步骤S306中,程序132会分配欲解码图片于欲解码图片数据暂存区170的空间及串流暂存区110的位置之后,以指令180使H.264/AVC解码器120的硬件开始对串流暂存区110的串流数据112进行解码。在步骤S308中,H.264/AVC解码器120进行一整张图片的解码。在解码图片的每个片段前,H.264/AVC解码器120依据串流数据112,对参考图片表142、144和/或146所记录的参考图片的顺序进行重排序,并读取已解码图片数据暂存区150中参考图片标记161及图框编号162a(或读取参考图片标记161及长期图框索引162b)的数据。再于整个图片解码完成后发出反馈信号190至处理器130。在步骤S 310中,程序132依据H.264/AVC解码器120的情形对串流数据112进行解码及运算,以得到欲解码图片的图框编号,并将欲解码的图片图框编号162a及像素值163的数据移至已解码图片数据暂存区150,并依据串流数据112对已解码图片160进行参考图片标记,再更新已解码图片160中的参考图片标记161及长期图框索引162b。在步骤S 312中,程序132或H.264/AVC解码器120则判断是否还有其它的串流数据需要解码。倘若还有其它的串流数据需要解码,则重复步骤S306~S312;然倘若并无其它的串流数据需要解码,则结束整个解码的操作(步骤S314)。
请参考图4,图4为本发明另一实施例进行H.264/AVC解码的流程图。同样地,依据H.264/AVC的规范,被解码的第一张图片必须是由I片段所组成(步骤S402和S404)。之后,在步骤S406中,程序132会分配欲解码图片于欲解码图片数据暂存区170的空间及串流暂存区110的位置之后,以指令180使H.264/AVC解码器120的硬件开始对串流暂存区110的串流数据112进行解码。在步骤S408中,H.264/AVC解码器120会进行一整张图片的解码。在开始解码图片的每个片段前,H.264/AVC解码器120依据所欲解码的片段的形态,读入对应的初始参考图片表142、144和/或146,再依据串流数据112,对参考图片表142、144和/或146所记录的参考图片的顺序进行重排序,并依据重排序后的参考图片表142、144和/或146,对片段进行解码。在步骤S410中,程序132对串流数据112进行解码,以得出欲解码图片的图框编号162a及序列号164。程序162并将所得到的图框编号162a、序列号164与欲解码图片数据暂存区170的数据合并。之后,程序132将合并后的数据移至已解码图片数据暂存区150,并依据解码串流数据112后的信息,对参考图片160进行标记。之后,程序132再更新已解码图片数据暂存区150中的参考图片标记161和长期图框索引162b。在步骤S412中,程序132对串流数据112进行解码及运算,并进行图框编号的跳号检查,再依检查结果插入不存在的参考图片,以在初始参考图片表数据暂存区140中建立所需的参考图片表142、144和/或146的初始内容。在步骤S414中,程序132或H.264/AVC解码器120则判断是否还有其它的串流数据需要解码。倘若还有其它的串流数据需要解码,则重复步骤S406~S414;然倘若并无其它的串流数据需要译码,则结束整个解码的操作(步骤S416)。
综上所述,本发明将图片层和片段层的解码操作交由H.264/AVC解码器120以硬件加速的方式完成,而影片层的操作则交由处理器130通过执行程序132完成,故可在硬件加速及软件弹性之间取得平衡。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (15)
1.一种图像解码器,其特征在于,包括:
一串流暂存区,用以储存串流数据;
一H.264/AVC解码器,用以重新排列至少一参考图片表所记录的参考图片的顺序,并用以进行H.264/AVC标准中图片层(picture layer)和片段层(slice layer)的操作,以解码该串流数据而产生数个已解码图片;以及
一处理器,用以执行一程序,以进行H.264/AVC标准中影片层(sequencelayer)的操作,以对所述数个已解码图片进行标记。
2.根据权利要求1所述的图像解码器,其特征在于,该处理器通过该程序发出一指令至该H.264/AVC解码器,以令该H.264/AVC解码器依据该指令从该串流数据中检索对应数据,并对所检索的对应数据进行解码,以依序地产生所述数个已解码图片中一目标图片的一个或多个片段(slice);
其中当该H.264/AVC解码器因响应该指令而产生该目标图片的数个片段之后,该H.264/AVC解码器发出一反馈信号至该处理器,以使该程序对所产生的该目标图片进行标记。
3.根据权利要求2所述的图像解码器,其特征在于,在该H.264/AVC解码器解码任一片段期间,该H.264/AVC解码器依据重新排列后的该至少一参考图片表所记录的参考图片的顺序,从所述数个已解码图片中选取部分的已解码图片作为参考图片,并依据所选取的参考图片,解码该片段。
4.根据权利要求2所述的图像解码器,其特征在于,在该H.264/AVC解码器解码任一片段之前,该处理器通过执行该程序初始化该至少一参考图片表。
5.根据权利要求4所述的图像解码器,其特征在于,当该处理器在初始化该至少一参考图片表时,倘若该图像解码器的gaps_in_frame_num_value_allowed_flag的参数值为1时,则该程序判断所初始化的该至少一参考图片所记录的参考图片的图框编号(frame_num)是否有跳号,当有跳号时,该程序将一些不存在(non-existing)的图片插入所初始化的该至少一参考图片表所记录的参考图片中。
6.根据权利要求4所述的图像解码器,其特征在于,该H.264/AVC解码器依据该片段在该串流数据中所对应的排序数据,重新排列所对应的该至少一参考图片表所记录的参考图片的顺序。
7.根据权利要求2所述的图像解码器,其特征在于,该程序对该串流数据进行解码,以得到该目标图片的参考图片标记、框编号及序列号。
8.根据权利要求2所述的图像解码器,其特征在于,该程序对该串流数据进行解码,以得到该目标图片的参考图片标记、长期图框索引及序列号。
9.根据权利要求2所述的图像解码器,其特征在于,当该H.264/AVC解码器进行B片段空间预测模式(spatial direct mode)的大区块(macroblock)解码时,所述数个已解码图片的数据包括所有可参考图片的每个大区块(macrobl ock)中每个区块(block)的参考图片索引(referenceindex)是否为零且同时移动向量在正负1之间的数据。
10.根据权利要求2所述的图像解码器,其特征在于,当该H.264/AVC解码器进行B片段时间预测模式(temporal direct mode)的大区块解码时,所述数个已解码图片的数据包括所有可参考图片的每个大区块中每个区块的参考图片及移动向量(motion vector)数据。
11.根据权利要求1所述的图像解码器,其特征在于,该至少一参考图片表记录该H.264/AVC解码器在解码P片段或B片段时所需的参考图片的顺序。
12.根据权利要求1所述的图像解码器,其特征在于,该H.264/AVC解码器因解码该串流数据而所产生的第一个已解码图片的所有片段皆为I片段。
13.根据权利要求1所述的图像解码器,其特征在于,还包括:
一已解码图片数据暂存区,用以储存所述数个已解码图片的数据;以及
一欲解码图片数据暂存区,用以暂存该H.264/AVC解码器在对该串流数据进行解码的过程中所产生的图片数据。
14.根据权利要求13所述的图像解码器,其特征在于,所述数个已解码图片的数据包括所述数个已解码图片的图框编号(frame_num)、像素值(pixel value)以及参考图片标记(reference picture marking)。
15.根据权利要求13所述的图像解码器,其特征在于,所述数个已解码图片的数据包括所述数个已解码图片的长期图框索引(long term frameindex)、像素值(pixel value)以及参考图片标记(reference picturemarking)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910260631 CN102104781B (zh) | 2009-12-18 | 2009-12-18 | 图像解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910260631 CN102104781B (zh) | 2009-12-18 | 2009-12-18 | 图像解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102104781A true CN102104781A (zh) | 2011-06-22 |
CN102104781B CN102104781B (zh) | 2013-03-20 |
Family
ID=44157250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910260631 Expired - Fee Related CN102104781B (zh) | 2009-12-18 | 2009-12-18 | 图像解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102104781B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103814574A (zh) * | 2011-09-23 | 2014-05-21 | 高通股份有限公司 | 用于视频译码的参考图像列表构造 |
CN107646195A (zh) * | 2015-06-08 | 2018-01-30 | Vid拓展公司 | 用于屏幕内容编码的帧内块复制模式 |
CN108259915A (zh) * | 2011-11-08 | 2018-07-06 | 三星电子株式会社 | 用于在视频编码或解码中的运动矢量确定的方法和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3257643B2 (ja) * | 1993-01-18 | 2002-02-18 | ソニー株式会社 | 画像符号化装置および画像復号化装置 |
US5784494A (en) * | 1995-04-18 | 1998-07-21 | Advanced Micro Devices, Inc. | Method and apparatus for prestoring dequantization information for DCT VLC decoding |
EP2023637A4 (en) * | 2006-05-24 | 2010-06-16 | Panasonic Corp | IMAGE DECODING DEVICE |
CN101401433A (zh) * | 2006-09-07 | 2009-04-01 | Lg电子株式会社 | 用于解码/编码视频信号的方法及装置 |
CN101569204A (zh) * | 2006-12-25 | 2009-10-28 | 汤姆逊许可公司 | 视频数据编码设备、视频数据解码设备和数字数据流 |
-
2009
- 2009-12-18 CN CN 200910260631 patent/CN102104781B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103814574A (zh) * | 2011-09-23 | 2014-05-21 | 高通股份有限公司 | 用于视频译码的参考图像列表构造 |
CN103814574B (zh) * | 2011-09-23 | 2018-01-26 | 维洛媒体国际有限公司 | 用于视频译码的参考图像列表构造 |
US9998757B2 (en) | 2011-09-23 | 2018-06-12 | Velos Media, Llc | Reference picture signaling and decoded picture buffer management |
US10034018B2 (en) | 2011-09-23 | 2018-07-24 | Velos Media, Llc | Decoded picture buffer management |
US10542285B2 (en) | 2011-09-23 | 2020-01-21 | Velos Media, Llc | Decoded picture buffer management |
US10856007B2 (en) | 2011-09-23 | 2020-12-01 | Velos Media, Llc | Decoded picture buffer management |
US11490119B2 (en) | 2011-09-23 | 2022-11-01 | Qualcomm Incorporated | Decoded picture buffer management |
CN108259915A (zh) * | 2011-11-08 | 2018-07-06 | 三星电子株式会社 | 用于在视频编码或解码中的运动矢量确定的方法和设备 |
CN108259915B (zh) * | 2011-11-08 | 2022-03-29 | 三星电子株式会社 | 用于在视频编码或解码中的运动矢量确定的方法和设备 |
CN107646195A (zh) * | 2015-06-08 | 2018-01-30 | Vid拓展公司 | 用于屏幕内容编码的帧内块复制模式 |
CN107646195B (zh) * | 2015-06-08 | 2022-06-24 | Vid拓展公司 | 用于屏幕内容译码的帧内块复制模式 |
Also Published As
Publication number | Publication date |
---|---|
CN102104781B (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210092364A1 (en) | Image prediction method and device | |
RU2650181C2 (ru) | Устройство обработки информации и способ | |
TWI797533B (zh) | 運用並行處理之低潛時視訊編解碼器及傳輸 | |
US20110142130A1 (en) | Picture decoder | |
US6393057B1 (en) | MPEG stream switching process | |
CN103314581B (zh) | 使用列的图像分割方法和系统 | |
CN101321284B (zh) | 一种编解码方法、设备及系统 | |
CN112119638A (zh) | 用于四叉树-二叉树的块形状自适应帧内预测方向 | |
JP2022532277A (ja) | ピクチャの符号化及び復号のための方法及び装置 | |
CN104754361A (zh) | 图像编码、解码方法及装置 | |
CN105025303A (zh) | 视频序列图像的解码和编码 | |
JP2009296078A (ja) | 符号化データ再生装置、符号化データ再生方法、および符号化データ再生プログラム | |
JP2022511843A (ja) | ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム | |
US20120155543A1 (en) | Video codec and motion estimation method | |
CN102104781B (zh) | 图像解码器 | |
JP4515922B2 (ja) | データ保持装置、画像符号化装置および画像復号化装置 | |
CN116569553A (zh) | 采用样本填充进行帧内块复制预测的方法和装置 | |
TW202101995A (zh) | 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法 | |
CN102572413A (zh) | 传输流台标字幕插入系统的输出码率控制方法与装置 | |
CN111953988B (zh) | 视频转码方法、计算机设备和存储介质 | |
CN113141507B (zh) | 视频编解码中的运动信息列表构建方法、装置及设备 | |
JP2012138840A (ja) | ビデオサーバ及びシームレス再生方法 | |
JP2023552224A (ja) | 探索範囲制限を用いたイントラブロックコピー(intrabc)モードコーディングのための方法および装置 | |
JP2023553921A (ja) | 探索範囲切り替えを用いたイントラブロックコピーモードコーディングのための方法および装置 | |
AU2002344460B2 (en) | Moving picture coding method and moving picture decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20131218 |