视频解码方法、装置、芯片、终端、存储介质及程序产品与流程
未命名
07-27
阅读:148
评论:0
1.本技术实施例涉及视频解码技术领域,特别涉及一种视频解码方法、装置、芯片、终端、存储介质及程序产品。
背景技术:
2.视频解码使用专用asic(application specific integrated circuit,专用集成电路)来进行,对应视频解码涉及到通用cpu和asic交互的过程,以解码单帧视频帧为例,当cpu接收单帧视频帧的完整码流后,设置asic开始解码,在asic解码期间,cpu处于空闲状态,在asic解码完毕后通知cpu,以便cpu执行后续视频显示操作。显然,从cpu接收单帧视频帧的码流开始到解码完整所需花费的时间,即解码延迟为接收码流的时间、cpu设置asic寄存器的时间、asic解码的时间之和,解码延迟较大。
技术实现要素:
3.本技术实施例提供了一种视频解码方法、装置、芯片、终端、存储介质及程序产品。所述技术方案如下:
4.一方面,本技术实施例提供了一种视频解码方法,所述方法由视频解码器执行,所述方法包括:
5.在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,所述码流信息是处理器在所述第i段视频码流解码过程中接收到第i+1段视频码流后更新的,所述码流信息中至少包括所述单帧视频码流的已接收码流长度;
6.在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。
7.另一方面,本技术实施例提供了一种视频解码方法,所述方法由处理器执行,所述方法包括:
8.在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;
9.在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。
10.另一方面,本技术实施例提供了一种视频解码方法,所述方法由视频解码系统执行,所述视频解码系统包括视频解码器和处理器,所述方法包括:
11.在所述视频解码器解码单帧视频码流中的第i段视频码流的情况下,所述处理器接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;
12.在接收到所述第i+1段视频码流的情况下,所述处理器更新码流信息中的已接收码流长度;
13.在所述第i段视频码流解码完成的情况下,所述视频解码器查询所述码流信息;
14.在所述码流信息已更新的情况下,所述视频解码器对所述第i+1段视频码流进行视频解码。
15.另一方面,本技术实施例提供了一种视频解码装置,所述装置包括:
16.查询模块,用于在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,所述码流信息是处理器在所述第i段视频码流解码过程中接收到第i+1段视频码流后更新的,所述码流信息中至少包括所述单帧视频码流的已接收码流长度;
17.视频解码模块,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。
18.另一方面,本技术实施例提供了一种视频解码装置,所述装置包括:
19.码流接收模块,用于在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;
20.更新模块,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。
21.另一方面,本技术实施例提供了一种视频解码装置,所述装置包括:
22.码流接收模块,用于在解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;
23.更新模块,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度;
24.查询模块,用于在所述第i段视频码流解码完成的情况下,查询所述码流信息;
25.视频解码模块,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。
26.另一方面,本技术实施例提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如上述方面所述的视频解码方法。
27.另一方面,本技术实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如上述方面所述的视频解码方法。
28.另一方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的视频解码方法。
29.另一方面,本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的视频解码方法。
30.本技术实施例提供的技术方案可以带来如下有益效果:
31.在视频解码器开始解码第i段视频码流后,处理器和视频解码器不会直接进行交互,而是通过处理器更新码流信息,视频解码器查询码流信息是否更新的方式,执行第i+1
段视频码流的解码。一方面,使得视频解码器在对第i视频码流解码完毕后,无需挂起等待处理器设置解码第i+1段视频码流的指令,减少了视频解码器的等待时长;而且,视频解码器查询码流信息的延迟相对于解码延迟可以忽略不计,无需担心额外的查询增加解码延迟;另一方面,处理器可以在视频解码器解码视频码流的同时,持续接收各段视频码流,无需等待视频解码器解码完成后设置视频解码器,以降低对处理器的占用率。进而通过减少处理器和视频解码器之间的交互,达到降低解码延迟的目的。
附图说明
32.图1是硬件解码过程中cpu和asic的交互过程示意图;
33.图2是低延迟硬件解码过程中cpu和asic的交互过程示意图;
34.图3是本技术改进后的视频解码过程中cpu和asic的交互过程示意图;
35.图4示出了本技术一个示例性实施例示出的视频解码系统的示意图;
36.图5示出了本技术一个示例性实施例示出的视频解码方法的流程图;
37.图6示出了本技术另一个示例性实施例示出的视频解码方法的流程图;
38.图7示出了本技术一个示例性实施例示出的码流信息的传递过程示意图;
39.图8示出了本技术另一个示例性实施例示出的视频解码方法的流程图;
40.图9示出了本技术一个示例性实施例示出的码流信息的信息结构示意图;
41.图10示出了本技术另一个示例性实施例示出的视频解码方法的流程图;
42.图11示出了本技术另一个示例性实施例示出的视频解码方法的流程图;
43.图12示出了本技术一个实施例提供的视频解码装置的结构框图;
44.图13示出了本技术另一个实施例提供的视频解码装置的结构框图;
45.图14示出了本技术另一个实施例提供的视频解码装置的结构框图;
46.图15示出了本技术一个示例性实施例提供的终端的结构方框图。
具体实施方式
47.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
48.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
49.视频解码使用asic(application specific integrated circuit,专用集成电路)来进行,而非使用通用cpu。这里简称硬件解码,或硬解。使用硬件解码是一个通用cpu和asic交互的过程,其解码一帧图像帧(或一帧视频帧)的流程如图1所示。该解码流程包括:
50.(一)、host cpu接收一帧完整视频码流。
51.(二)、host cpu设置asic寄存器开始解码。
52.在host cpu接收到一帧完整视频码流后,向asic发送解码指令,以设置asic的寄存器进行解码准备。
53.(三)、asic对一帧完整码流进行解码。
54.在asic对一帧完整码流进行解码期间,host cpu处于空闲状态。
55.(四)、asic解码完成中断通知host cpu解码完毕。
56.在asic解码完一帧完整码流后,通知host cpu解码完毕。
57.(五)、host cpu进行后续操作。
58.该后续操作可以是host cpu基于解码后得到的视频帧进行显示。
59.由图1所示的解码流程可知,从host cpu接收一帧完整码流开始到一帧完整码流解码完毕所需花费的时间,也即解码延迟t=tc+tr+td,其中tc是host cpu从信道接收一帧完整码流的时间,tr是host cpu设置asic寄存器的时间,td是asic解码一帧完整码流的时间。以30fps的视频,1gbps通信速率,第一帧码流0.001gb,设置寄存器花费1ms,asic解码一帧完整码流花费时间30ms为例,解码延迟t=(0.001*8/1*1000)ms+1ms+30ms=39ms。
60.大多数应用对这个数量级的延迟是可以容忍的。但有部分应用,如投屏显示,云游戏等,希望该解码延迟可以越低越好。
61.相关技术中,针对图1的解码流程进行了改进,得到的低延迟硬件解码流程如图2所示。该解码流程包括:
62.(一)、host cpu接收一帧完整码流的第一部分码流。
63.host cpu并非在接收到完整一帧码流后再设置asic进行解码,而是在接收到一帧完整码流的第一部分码流时,即设置asic进行解码。
64.(二)、host cpu设置asic寄存器开始解码。
65.(三)、asic解码第一部分码流。且host cpu接收第二部分码流。
66.在asic开始解码第一部分码流时,host cpu开始继续接收该帧码流的第二部分码流。
67.(四)、asic解码完第一部分码流后,挂起。
68.(五)、host cpu设置asic寄存器继续解码。
69.在asic解码完第一部分码流后,且host cpu接收到第二部分码流后,继续设置asic对第二部分码流进行解码。且在asic解码第二部分码流期间,host cpu继续接收第三部分码流。循环(二)~(四),直至asic解码完一帧完整码流后,通知host cpu解码完毕。
70.(六)、
……
71.(七)、asic解码完成中断通知host cpu解码完毕。
72.(八)、host cpu进行后续操作,如显示等。
73.在图2所示的低延迟硬件解码流程中,host cpu在接收到部分码流后,例如一帧视频码流的sps/pps头以及第一个slice等部分内容存放于缓冲中,随即通过设置视频解码asic的寄存器启动asic进行码流解码,当asic读取到缓冲末尾时,进入挂起状态等待下一部分码流的接收。host cpu接收到下一部分码流后,再通过设置asic寄存器更新下一部分码流位置及长度,并唤起asic继续解码,如此往复,直到一帧码流接收完成并解码完毕,asic通过中断通知host cpu解码完毕。
74.由此可见,图2的低延迟硬件解码流程中,host cpu可以和asic并行工作一段时间,其对应的解码延迟t稍高于asic解码时长(取决于码流切分的段数)。t=tc/n+tr+max(n*t
rr
+td,tc–
tc/n),其中tc是从信道接收码流的时间,tr是设置asic寄存器的时间,t
rr
是每次更新寄存器时间,因为更新寄存器不需要更新全部的寄存器,故t
rr
比tr小,td是asic解码一帧完整码流的时间,n是一帧完整码流被切分的段数。同前述例子,t
rr
以0.5ms,n设4为例,则
tc=(0.001*8/1*1000)ms=8ms,t=(8/4)ms+1ms+max(0.5ms*4+30ms,8ms
–
(8/4)ms=34ms。相较于普通非低延迟解码(图1所示的解码流程),解码延迟降低了5ms。
75.但是由于图2所示方案的解码延迟中解码延迟t和码流分段n并非完全反向变化的,若n为100,则t=81.08ms,解码延迟反而增大了,无法达到低延迟解码的目的。
76.针对相关技术中硬件解码过程中存在的解码延迟较大的问题,本技术实施例提供的视频解码方法中,通过减少硬件解码过程中host cpu和asic之间的循环交互次数,以达到降低解码延迟的目的。得到改进后的视频解码流程图如图3所示。该视频解码流程中包括如下步骤:
77.(一)、host cpu接收一帧完整码流的第一部分码流。
78.(二)、host cpu设置asic寄存器开始解码,且解码指令中包含码流信息更新的内存地址。
79.(三)、asic解码第一部分码流,且在asic解码第一部分码流期间host cpu接收该帧码流的第二部分码流。
80.(四)、asic解码完成第一部分码流后,根据内存地址去系统内存处轮询码流信息。
81.在asic解码完成第一部分码流后,并非直接挂起,而是从系统内存处查询码流信息是否更新,若码流信息更新,表示host cpu已接收到第二部分码流,可以直接对第二部分码流继续进行解码,节省了asic等待host cpu设置asic寄存器的时长。
82.(五)、host cpu接收到第二部分码流,更新码流信息更新。
83.在host cpu接收到第二部分码流后,会更新系统内存处的码流信息,以便在asic解码完第一部分码流后,可以去系统内存处查询码流信息是否更新。
84.在host cpu接收完第二部分码流并更新完码流信息后,可以继续接收第三部分码流,无需等待asic解码完第一部分码流,以设置asic解码第二部分码流,可以减少host cpu等待asic解码的时间,以及设置asic的时间。
85.(六)、asic查询到码流信息更新,解码这帧码流第二部分码流。
86.在asic查询到码流信息已更新后,继续对第二部分码流进行解码。
87.(七)、
……
88.(八)、asic解码完成中断通知host cpu解码完毕。
89.(九)、host cpu进行后续操作,如显示等。
90.如图3所示,本实施例所提供的视频解码方法可以减少host cpu和asic之间的交互,同时可以避免host cpu和asic互相等待的时长,以达到降低解码延迟的目的。示意性的,图3所示视频解码方法的解码延迟t=tc/n+tr+max(td,tc–
tc/n),其中tc是从信道接收码流的时间,tr是设置asic寄存器的时间,该方案不存在t
rr
(host cpu每次设置asic的时间),n是一帧完整码流被切分的段数,td是asci解码一帧完整码流的时间。若n为4,则tc=(0.001*8/1*1000)ms=8ms,t=(8/4)ms+1ms+max(30ms,8ms
–
(8/4)ms)=33ms。相较于普通低延迟解码(图2所示的低延迟解码方法),本技术的解码延迟降低了6ms。且解码延迟t是反比于码流分段数的,也就是说,若码流分段数越高,则解码延迟越低。比如,若码流分段数很高,则延迟可以低至31ms,降低8ms。
91.图3所示的视频解码过程涉及到处理器(host cpu)、视频解码器(asic)和系统内存(ddr)之间的交互。请参考图4,其示出了本技术一个示例性实施例示出的视频解码系统
的示意图,该视频解码系统中包括处理器410、系统内存420和视频解码器430。处理器410是具备数据处理功能的组件。系统内存420是具备数据缓存功能的组件。该系统内存可以是ddr,也可以是ram。视频解码器430是用于视频解码的组件。
92.本实施例中,处理器410在接收到单帧视频码流的第一段视频码流时,设置视频解码器430的寄存器,以设置视频解码器430对第一段视频码流进行视频解码。在视频解码器430对第一段视频码流进行视频解码的过程中,处理器410可以继续接收第二段视频码流,并在第二段视频码流接收完毕后,更新系统内存420中的码流信息。在视频解码器430对第一段视频码流解码完毕后,视频解码器430可以从系统内存420中轮询码流信息,以确定码流信息是否更新。可选的,在视频解码器430确定码流信息更新后,可以继续对第二段视频码流进行视频解码;可选的,在视频解码器430解码完单帧视频码流后,通知处理器410解码完毕,以便处理器410执行后续显示操作。
93.请参考图5,其示出了本技术一个示例性实施例示出的视频解码方法的流程图。本实施例以该方法应用于图4所示的实施环境来举例说明。该方法包括:
94.步骤501,在视频解码器解码单帧视频码流中的第i段视频码流的情况下,处理器接收单帧视频码流中的第i+1段视频码流,单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数。
95.为了避免处理器(host cpu)和视频解码器(asic)之间的互相等待,设置将单帧视频码流划分为m段视频码流进行接收,且处理器接收视频码流与视频解码器解码视频码流并行执行。在一种可能的实施方式中,当处理器接收到第i段视频码流后,设置解码器对第i段视频码流进行解码,在解码器对第i段视频码流进行解码的同时,处理器继续接收单帧视频码流的第i+1段视频码流。
96.可选的,解码延迟时长与单帧视频码流被划分的段数呈负相关关系,也即m值越大,解码延迟时长越小。则为了实现降低解码延迟,m需要为大于等于2的整数,i是小于m的正整数。
97.步骤502,在接收到第i+1段视频码流的情况下,处理器更新码流信息中的已接收码流长度。
98.在处理器接收到第i+1段视频码流的情况下,处理器无需等待视频解码器解码完第i段视频码流,也无需设置视频解码器继续解码第i+1段视频码流,而是需要去更新码流信息中的已接收码流长度,使得后续视频解码器可以直接通过查询码流信息是否更新,来确定是否需要继续解码第i+1段视频码流。
99.其中,已接收码流长度用于指示单帧视频码流的已接收码流的长度信息。
100.可选的,在处理器接收到第i+1段视频码流,并更新码流信息后,处理器也无需等待视频解码器是否解码完第i段视频码流,或者是否解码完第i+1段视频码流,可以直接继续接收第i+2段视频码流,并在接收完第i+2段视频码流后,继续更新码流信息,直至单帧视频码流接收完毕后,处理器可以处于空闲状态。处理器处于空闲状态直至接收到视频解码器发送的解码完毕通知(该解码完毕通知是视频解码器解码完m段视频码流后发送的),处理器可以基于解码完毕后的完整视频帧进行显示等后续操作。
101.步骤503,在第i段视频码流解码完成的情况下,视频解码器查询码流信息。
102.通过更新码流信息的方式,使得视频解码器在解码完第i段视频码流后,无需挂起
等待处理器发送的设置视频解码器继续解码第i+1段视频码流的指令。对应视频解码器在第i段视频码流解码完成后,可以查询(轮询)码流信息,判断码流信息是否更新。
103.可选的,若在第一次查询后确定码流信息已更新,则继续执行对第i+1段视频码流的解码;若在第一次查询时发现码流信息未更新,表示第i+1段视频码流未接收完毕,视频解码器需要轮询码流信息,直至确定码流信息已更新。
104.可选的,为了减少视频解码器的轮询功耗,视频解码器可以定时进行轮询码流信息操作,比如,每隔100ns查询一次码流信息,可以显著降低asic负载,但可能会稍微增加一定的延迟,但是最高增加100ns的延迟,相对于解码延迟可以忽略不计。
105.需要说明的是,步骤503和步骤502并不存在严格的先后顺序,在第i段视频码流解码完成后,处理器可能并未接收完第i+1段视频码流,需要视频解码器多次轮询码流信息;或者,在第i段视频码流解码完成时,处理器已经接收完第i+1段视频码流,视频解码器单次查询即可查询到码流信息已更新,则先执行步骤502,在执行步骤503。
106.步骤504,在码流信息已更新的情况下,视频解码器对第i+1段视频码流进行视频解码。
107.在视频解码器查询到码流信息后,确定码流信息中的已接收码流长度已更新,即可以根据更新后的码流信息,继续对第i+1段视频码流进行视频解码。进一步的,在视频解码器解码完第i+1段视频码流的情况下,也可以继续去查询码流信息,确定处理器是否接收完第i+2段视频码流,并在码流信息已更新后,继续解码第i+2段视频码流。直至单帧视频码流全部解码完毕,视频解码器停止解码,通知处理器解码完毕进行后续显示等操作。
108.综上所述,本技术实施例中,在视频解码器开始解码第i段视频码流后,处理器和视频解码器不会直接进行交互,而是通过处理器更新码流信息,视频解码器查询码流信息是否更新的方式,执行第i+1段视频码流的解码。一方面,使得视频解码器在对第i视频码流解码完毕后,无需挂起等待处理器设置解码第i+1段视频码流的指令,减少了视频解码器的等待时长;而且,视频解码器查询码流信息的延迟相对于解码延迟可以忽略不计,无需担心额外的查询增加解码延迟;另一方面,处理器可以在视频解码器解码视频码流的同时,持续接收各段视频码流,无需等待视频解码器解码完成后设置视频解码器,以降低对处理器的占用率。进而通过减少处理器和视频解码器之间的交互,达到降低解码延迟的目的。
109.为了进一步降低解码延迟,提高处理器更新码流信息,以及视频解码器查询码流信息的速率。在一种可能的实施方式中,处理器可以将码流信息存入系统内存,且视频解码器可以从系统内存处查询码流信息,进而通过内存加速访问策略,进一步降低解码延迟。
110.请参考图6,其示出了本技术另一个示例性实施例示出的视频解码方法的流程图。本实施例以该方法应用于图4所示的实施环境来举例说明。该方法包括:
111.步骤601,在视频解码器解码单帧视频码流中的第i段视频码流的情况下,处理器接收单帧视频码流中的第i+1段视频码流。
112.其中,单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数。可选的,m的取值与信道速率呈负相关关系,信道速率是传输单帧视频码流的信道速率。也即单帧视频码流被划分的段数可以根据当前信道速率来动态调整,若信道速率较快,表示当前视频码流传输速率较快,需要将单帧视频码流划分为较少的段数,m取值较小,以避免切分更多段视频码流,反而导致解码延迟增多。若信道速率较慢,表示当前视频码流传
输速率较慢,可以对单帧视频码流划分出较多的段数,以降低解码延迟。
113.可选的,本实施例中的解码延迟t=tc/m+tr+max(td,tc–
tc/m),m为单帧视频码流被划分的段数,可见,解码延迟与单帧视频码流被划分的段数m呈负相关关系,也即单帧视频码流被划分的段数越多,则解码延迟越小;单帧视频码流被划分的段数越少,则解码延迟相对较大。
114.步骤601的实施方式可以参考步骤501,本实施例在此不做赘述。
115.步骤602,在接收到第i+1段视频码流的情况下,处理器基于已接收码流长度更新码流信息。
116.在处理器接收到第i+1段视频码流的情况下,处理器可以确定该单帧视频码流的已接收码流长度,并根据该已接收码流长度更新该单帧视频码流的码流信息。
117.由于单帧视频码流被划分为m段分别接收,可能存在第i+1段视频码流的存储位置与第i段视频码流的存储位置并非线性连续。为了使得视频解码器可以准确读取到第i+1段视频码流,在一种可能的实施方式中,处理器在更新码流信息时,不仅更新码流信息中的已接收码流长度,还会更新码流信息中第i+1段视频码流的存储地址。也即处理器在接收到第i+1段视频码流的情况下,会基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
118.由于第i+1段视频码流的存储地址可能与第i段视频码流的存储地址线性连续,也可能不连续,在存储地址线性连续的情况下,处理器可以无需更新码流信息中的存储地址,视频解码器可以根据第i段视频码流的存储地址确定出第i+1段视频码流的存储地址;在存储地址非线性连续的情况下,处理器就需要更新码流信息中的存储地址,以使得视频解码器可以准确读取第i+1段视频码流。也就是说,处理器需要根据第i+1段视频码流对应存储位置与第i段视频码流对应存储位置之间的关系,有选择的更新码流信息。对应在一个示例性的例子中,处理器基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息的步骤还可以包括步骤602a和步602b。
119.步骤602a,在接收到第i+1段视频码流的情况下,处理器获取第i+1段视频码流的存储地址。
120.步骤602b,在第i+1段视频码流的存储地址与第i段视频码流的存储地址不同的情况下,处理器基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
121.可选的,在处理器接收完第i+1段视频码流后,也即第i+1段视频码流已经存储在系统内存中,处理器可以获取第i+1段视频码流在系统内存中的存储位置,若第i+1段视频码流在系统内存中的存储位置与第i段视频码流在系统内存中的存储位置连续,则处理器无需更新码流信息中第i+1段视频码流的存储地址,仅需要根据已接收码流长度更新码流信息即可;反之,若第i+1段视频码流在系统内存中的存储位置与第i段视频码流不连续,则表示第i+1段视频码流的存储位置与第i段视频码流不同,则为了使得视频解码器可以正确读取到第i+1段视频码流,处理器需要基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
122.步骤603,处理器将更新后的码流信息存入系统内存。
123.为了减少处理器和视频解码器之间的直接交互,从而减少处理器和视频解码器之间的互相等待时长,降低对处理器的占用率。在一种可能的实施方式中,处理器并非直接将
码流信息发送给视频解码器,而是直接将更新后的码流信息存入系统内容,使得后续视频解码器也可以从系统内存处轮询码流信息,确定码流信息是否更新。
124.可选的,系统内存可以是ddr(double data rate,双倍速率同步动态随机存储器),或者ram(random access memory,随机存取存储器)。
125.步骤604,在第i段视频码流解码完成的情况下,视频解码器从系统内存中读取码流信息。
126.对应的,在视频解码器解码完第i段视频码流后,也可以直接从系统内存中读取码流信息,以确定码流信息是否更新。用于码流信息通过系统内存间接传递,而非通过视频编码器的寄存器传递,可以减少处理器和视频解码器之间的直接交互次数,降低对处理器的占用率,使得处理器可以连续接收m段视频码流,视频解码器也可以连续对m端视频码流进行视频解码,以提高视频解码器和处理器之间的并行处理效率。
127.步骤605,在确定码流信息中的已接收码流长度已更新的情况下,视频解码器确定码流信息已更新。
128.可选的,当视频解码器从系统内存中读取码流信息后,可以确定该码流信息中的已接收码流长度是否与解码第i段视频码流之前读取到的码流信息一致,若一致,则表示码流信息未更新,处理器可能还未接收完第i+1段视频码流;视频解码器继续轮询码流信息是否更新;反之,若该码流信息中的已接收码流长度与解码第i段视频码流之前读取到的码流信息不同,则表示码流信息已更新,视频解码器需要继续解码第i+1段视频码流。
129.步骤606,视频解码器读取第i+1段视频码流,以及对第i+1段视频码流进行视频解码。
130.视频解码器在确定码流信息已更新后,可以继续读取第i+1段视频码流,并对第i+1段视频码流进行视频解码。
131.可选的,在码流信息中不包含第i+1段视频码流的存储地址的情况下,表示第i+1段视频码流的存储地址与第i段视频码流的存储地址线性连续,对应视频解码器可以根据第i段视频码流的存储地址,确定出第i+1段视频码流的存储地址,并根据该存储地址读取第i+1段视频码流进行视频解码。
132.可选的,在码流信息中包含第i+1段视频码流的存储地址的情况下,表示第i+1段视频码流的存储地址与第i段视频码流的存储地址非线性连续,对应视频解码器需要基于码流信息中的第i+1段视频码流的存储地址,读取第i+1段视频码流,并对第i+1段视频码流进行视频解码。
133.如图7所示,其示出了本技术一个示例性实施例示出的码流信息的传递过程示意图。在处理器701接收到第i+1段视频码流后,根据已接收码流长度更新系统内存703中的码流信息;在视频解码器702解码完第i段视频码流后,从系统内存703处轮询码流信息;在视频解码器702确定码流信息更新后,从系统内存703处读取第i+1段视频码流,并对第i+1段视频码流进行视频解码。
134.本实施例中,通过系统内存在处理器和视频解码器之间传递码流信息,无需处理器和视频解码器直接进行交互,减少了处理器和视频解码器之间的交互过程,降低对处理器的占用率。而且还可以避免处理器和视频解码器并行处理时长不一致而导致的互相等待问题,进一步降低解码器延迟。
len以及帧码流是否已填充完毕(帧码流结束信息):1bit end of frame flag。可选的,码流信息中还可以包括新接收到的视频码流的存储地址(图中未示出)。
150.步骤806,在第i段视频码流解码完成的情况下,视频解码器查询码流信息。
151.步骤807,在码流信息已更新的情况下,视频解码器对第i+1段视频码流进行视频解码。
152.步骤806和步骤807的实施方式可以参考上文实施例,本实施例在此不做赘述。
153.步骤808,在第i+1段视频码流解码完毕,且帧码流结束信息指示单帧视频码流接收完毕的情况下,视频解码器通知处理器单帧视频码流解码完毕。
154.可选的,当视频解码器解码完第i+1段视频码流后,且在确定解码第i+1段视频码流之前读取到的码流信息中,若帧码流结束信息指示单帧视频码已接收完毕,则表示第i+1段视频码流是单帧视频码流的最后一段视频码流,对应在解码完第i+1段视频码流后,视频解码器就可以通知处理器单帧视频码流解码完毕,以使得处理器可以基于解码后的单帧视频帧进行后续视频显示操作。
155.可选的,当视频解码器解码完第i+1段视频码流后,若帧码流结束信息指示单帧视频码流未接收完毕,则视频解码器需要继续轮询码流信息,以便在码流信息更新后,对第i+2段视频码流进行视频解码。
156.本实施例中,通过在码流信息中携带帧码流结束信息,使得视频解码器可以基于帧码流结束信息确定当前单帧视频码流是否解码完毕,使得可以在解码完毕后及时通知处理器执行后续视频显示操作。
157.需要说明的是,上述各个实施例中,以处理器为执行主体的步骤可以单独实现成为处理器侧的视频解码方法,以视频解码器为执行主体的步骤可以单独实现成为视频解码器侧的视频解码方法,请参考图10,其示出了本技术另一个示例性实施例示出的视频解码方法的流程图。本实施例以该方法应用于图4所示的视频解码器侧为例来举例说明。该方法包括:
158.步骤1001,在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,码流信息是处理器在第i段视频码流解码过程中接收到第i+1段视频码流后更新的,码流信息中至少包括单帧视频码流的已接收码流长度。
159.可选的,在视频处理器对第i帧视频码流解码之前,在接收到单帧视频码流中的第一段视频码流的情况下,视频解码器可以接收处理器发送的解码指令,解码指令中至少包含码流信息以及视频解码器解码单帧视频码流所需的寄存器大小。
160.可选的,步骤1001可以被替换为步骤1001a。
161.步骤1001a,在单帧视频码流中第i段视频码流解码完成的情况下,从系统内存中读取码流信息。
162.可选的,m的取值与信道速率呈负相关关系,信道速率是传输单帧视频码流的信道速率。
163.可选的,单帧视频码流的解码延迟时长与m的取值呈负相关关系。
164.步骤1002,在码流信息已更新的情况下,对第i+1段视频码流进行视频解码。
165.可选的,步骤1002可以包括步骤1002a和步骤1002b。
166.步骤1002a,在确定码流信息中的已接收码流长度已更新的情况下,确定码流信息已更新。
167.步骤1002b,读取第i+1段视频码流,以及对第i+1段视频码流进行视频解码。
168.可选的,在码流信息中还包括第i+1段视频码流的存储地址的情况下,视频解码器还可以基于码流信息中第i+1段视频码流的存储地址,读取第i+1段视频码流。
169.可选的,码流信息中还包括帧码流结束信息,帧码流结束信息用于表征单帧视频码流是否接收完毕。可选的,在第i+1段视频码流解码完毕,且帧码流结束信息指示单帧视频码流接收完毕的情况下,通知处理器单帧视频码流解码完毕。
170.需要说明的是,视频解码器侧实现视频解码的具体实施方式可以参考上文实施例中以视频解码器侧为执行主体的视频解码过程,本实施例在此不做赘述。
171.请参考图11,其示出了本技术另一个示例性实施例示出的视频解码方法的流程图。本实施例以该方法应用于图4所示的处理器侧为例来举例说明。该方法包括:
172.步骤1101,在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收单帧视频码流中的第i+1段视频码流,单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数。
173.可选的,在接收到单帧视频码流的第一段视频码流的情况下,处理器向视频解码器发送解码指令,解码指令中至少包含码流信息以及视频解码器解码单帧视频码流所需的寄存器大小。
174.可选的,m的取值与信道速率呈负相关关系,信道速率是传输单帧视频码流的信道速率。
175.可选的,单帧视频码流的解码延迟时长与m的取值呈负相关关系。
176.步骤1102,在接收到第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。
177.可选的,步骤1102可以包括步骤1102a和步骤1102b。
178.步骤1102a,在接收到第i+1段视频码流的情况下,基于已接收码流长度更新码流信息。
179.可选的,步骤1102a还可以被替换为步骤1102a1。
180.步骤1102a1,在接收到第i+1段视频码流的情况下,处理器还可以基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
181.可选的,步骤1102a1还可以包括以下步骤一和步骤二。
182.步骤一、在接收到第i+1段视频码流的情况下,基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
183.步骤二、在第i+1段视频码流的存储地址与第i段视频码流的存储地址不同的情况下,基于已接收码流长度和第i+1段视频码流的存储地址,更新码流信息。
184.可选的,步骤1102a还可以包括步骤1102a2~步骤1102a4。
185.步骤1102a2,在接收到第i+1段视频码流的情况下,确定单帧视频码流的接收状态。
186.步骤1102a3,基于接收状态,确定单帧视频码流的帧码流结束信息,帧码流结束信息用于表征单帧视频码流是否接收完毕。
187.步骤1102a4,基于已接收码流长度和帧码流结束信息更新码流信息。
188.步骤1102b,将更新后的码流信息存入系统内存。
189.需要说明的是,处理器侧实现视频解码的具体实施方式可以参考上文实施例中以处理器侧为执行主体的视频解码过程,本实施例在此不做赘述。
190.请参考图12,其示出了本技术一个实施例提供的视频解码装置的结构框图。该装置包括:
191.查询模块1201,用于在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,所述码流信息是处理器在所述第i段视频码流解码过程中接收到第i+1段视频码流后更新的,所述码流信息中至少包括所述单帧视频码流的已接收码流长度;
192.视频解码模块1202,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。
193.可选的,所述查询模块1201,还用于:
194.在所述单帧视频码流中所述第i段视频码流解码完成的情况下,从系统内存中读取所述码流信息;
195.所述视频解码模块1202,还用于:
196.在确定所述码流信息中的所述已接收码流长度已更新的情况下,确定所述码流信息已更新;
197.读取所述第i+1段视频码流,以及对所述第i+1段视频码流进行视频解码。
198.可选的,所述码流信息中还包括所述第i+1段视频码流的存储地址;
199.所述视频解码模块1202,还用于:
200.基于所述码流信息中所述第i+1段视频码流的所述存储地址,读取所述第i+1段视频码流。
201.可选的,所述码流信息中还包括帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;
202.所述装置还包括:
203.通知模块,用于在所述第i+1段视频码流解码完毕,且所述帧码流结束信息指示所述单帧视频码流接收完毕的情况下,通知所述处理器所述单帧视频码流解码完毕。
204.可选的,所述装置还包括:
205.接收模块,用于在接收到所述单帧视频码流中的第一段视频码流的情况下,接收所述处理器发送的解码指令,所述解码指令中至少包含所述码流信息以及所述视频解码器解码所述单帧视频码流所需的寄存器大小。
206.可选的,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。
207.可选的,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。
208.请参考图13,其示出了本技术另一个实施例提供的视频解码装置的结构框图。该装置包括:
209.码流接收模块1301,用于在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视
频码流,m为大于等于2的整数,i是小于m的正整数;
210.更新模块1302,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。
211.可选的,所述更新模块1302,还用于:
212.在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度更新所述码流信息;
213.将更新后的所述码流信息存入系统内存。
214.可选的,所述更新模块1302,还用于:
215.在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息。
216.可选的,所述更新模块1302,还用于:
217.在接收到所述第i+1段视频码流的情况下,获取所述第i+1段视频码流的存储地址;
218.在所述第i+1段视频码流的存储地址与所述第i段视频码流的存储地址不同的情况下,基于所述已接收码流长度和所述第i+1段视频码流的存储地址,更新所述码流信息。
219.可选的,所述更新模块1302,还用于:
220.在接收到所述第i+1段视频码流的情况下,确定所述单帧视频码流的接收状态;
221.基于所述接收状态,确定所述单帧视频码流的帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;
222.基于所述已接收码流长度和所述帧码流结束信息更新所述码流信息。
223.可选的,所述装置还包括:
224.发送模块,用于在接收到所述单帧视频码流的第一段视频码流的情况下,向所述视频解码器发送解码指令,所述解码指令中至少包含所述码流信息以及所述视频解码器解码所述单帧视频码流所需的寄存器大小。
225.可选的,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。
226.可选的,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。
227.请参考图14,其示出了本技术另一个实施例提供的视频解码装置的结构框图。该装置包括:
228.码流接收模块1401,用于在解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;
229.更新模块1402,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度;
230.查询模块1403,用于在所述第i段视频码流解码完成的情况下,查询所述码流信息;
231.视频解码模块1404,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。
232.可选的,所述更新模块1402,还用于:
233.在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度更新所述码流信息;
234.将更新后的所述码流信息存入系统内存;
235.所述查询模块1403,还用于:
236.在所述第i段视频码流解码完成的情况下,从所述系统内存中读取所述码流信息;
237.所述视频解码模块1404,还用于:
238.在确定所述码流信息中的所述已接收码流长度已更新的情况下,确定所述码流信息已更新;
239.读取所述第i+1段视频码流,以及对所述第i+1段视频码流进行视频解码。
240.可选的,所述更新模块1402,还用于:
241.在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息;
242.所述视频解码模块1404,还用于:
243.基于所述码流信息中所述第i+1段视频码流的所述存储地址,读取所述第i+1段视频码流。
244.可选的,所述更新模块1402,还用于:
245.在接收到所述第i+1段视频码流的情况下,获取所述第i+1段视频码流的存储地址;
246.在所述第i+1段视频码流的存储地址与所述第i段视频码流的存储地址不同的情况下,基于所述已接收码流长度和所述第i+1段视频码流的存储地址,更新所述码流信息。
247.可选的,所述更新模块1402,还用于:
248.在接收到所述第i+1段视频码流的情况下,确定所述单帧视频码流的接收状态;
249.基于所述接收状态,确定所述单帧视频码流的帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;
250.基于所述已接收码流长度和所述帧码流结束信息更新所述码流信息;
251.所述装置还包括:
252.通知模块,用于在所述第i+1段视频码流解码完毕,且所述帧码流结束信息指示所述单帧视频码流接收完毕的情况下,通知所述单帧视频码流解码完毕。
253.可选的,所述装置还包括:
254.发送模块,用于在接收到所述单帧视频码流的第一段视频码流的情况下,发送解码指令,所述解码指令中至少包含所述码流信息以及解码所述单帧视频码流所需的寄存器大小。
255.可选的,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。
256.可选的,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。
257.请参考图15,其示出了本技术一个示例性实施例提供的终端1500的结构方框图。本技术中的终端1500可以包括一个或多个如下部件:处理器1510、存储器1520和视频解码器1530。
258.处理器1510可以包括一个或者多个处理核心。处理器1510利用各种接口和线路连
接整个终端1500内的各个部分,通过运行或执行存储在存储器1520内的指令、程序、代码集或指令集,以及调用存储在存储器1520内的数据,执行终端1500的各种功能和处理数据。可选地,处理器1510可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1510可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1510中,单独通过一块基带芯片进行实现。
259.存储器1520可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选地,该存储器1520包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1520可用于存储指令、程序、代码、代码集或指令集。存储器1520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。存储数据区还可以存储终端1500在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
260.视频解码器1530,该视频解码器1530用于对视频码流进行视频解码。
261.除此之外,本领域技术人员可以理解,上述附图所示出的终端1500的结构并不构成对终端1500的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1500中还包括射频电路、拍摄组件、传感器、音频电路、无线保真(wireless fidelity,wifi)组件、电源、蓝牙组件等部件,在此不再赘述。
262.本技术实施例还提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如上述方面所述的视频解码方法。
263.本技术还提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任意示例性实施例所提供的视频解码方法。
264.本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述可选实现方式中提供的视频解码方法。
265.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
266.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和
原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种视频解码方法,其特征在于,所述方法由视频解码器执行,所述方法包括:在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,所述码流信息是处理器在所述第i段视频码流解码过程中接收到第i+1段视频码流后更新的,所述码流信息中至少包括所述单帧视频码流的已接收码流长度;在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。2.根据权利要求1所述的方法,其特征在于,所述在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,包括:在所述单帧视频码流中所述第i段视频码流解码完成的情况下,从系统内存中读取所述码流信息;所述在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码,包括:在确定所述码流信息中的所述已接收码流长度已更新的情况下,确定所述码流信息已更新;读取所述第i+1段视频码流,以及对所述第i+1段视频码流进行视频解码。3.根据权利要求2所述的方法,其特征在于,所述码流信息中还包括所述第i+1段视频码流的存储地址;所述读取所述第i+1段视频码流,包括:基于所述码流信息中所述第i+1段视频码流的所述存储地址,读取所述第i+1段视频码流。4.根据权利要求2所述的方法,其特征在于,所述码流信息中还包括帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;所述方法还包括:在所述第i+1段视频码流解码完毕,且所述帧码流结束信息指示所述单帧视频码流接收完毕的情况下,通知所述处理器所述单帧视频码流解码完毕。5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:在接收到所述单帧视频码流中的第一段视频码流的情况下,接收所述处理器发送的解码指令,所述解码指令中至少包含所述码流信息以及所述视频解码器解码所述单帧视频码流所需的寄存器大小。6.根据权利要求1至4任一所述的方法,其特征在于,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。7.根据权利要求6所述的方法,其特征在于,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。8.一种视频解码方法,其特征在于,所述方法由处理器执行,所述方法包括:在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。9.根据权利要求8所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度,包括:
在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度更新所述码流信息;将更新后的所述码流信息存入系统内存。10.根据权利要求9所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息。11.根据权利要求10所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,获取所述第i+1段视频码流的存储地址;在所述第i+1段视频码流的存储地址与所述第i段视频码流的存储地址不同的情况下,基于所述已接收码流长度和所述第i+1段视频码流的存储地址,更新所述码流信息。12.根据权利要求9所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,基于所述已接收码流长度更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,确定所述单帧视频码流的接收状态;基于所述接收状态,确定所述单帧视频码流的帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;基于所述已接收码流长度和所述帧码流结束信息更新所述码流信息。13.根据权利要求8至12任一所述的方法,其特征在于,所述方法还包括:在接收到所述单帧视频码流的第一段视频码流的情况下,向所述视频解码器发送解码指令,所述解码指令中至少包含所述码流信息以及所述视频解码器解码所述单帧视频码流所需的寄存器大小。14.根据权利要求8至12任一所述的方法,其特征在于,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。15.根据权利要求14所述的方法,其特征在于,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。16.一种视频解码方法,其特征在于,所述方法由视频解码系统执行,所述视频解码系统包括视频解码器和处理器,所述方法包括:在所述视频解码器解码单帧视频码流中的第i段视频码流的情况下,所述处理器接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;在接收到所述第i+1段视频码流的情况下,所述处理器更新码流信息中的已接收码流长度;在所述第i段视频码流解码完成的情况下,所述视频解码器查询所述码流信息;在所述码流信息已更新的情况下,所述视频解码器对所述第i+1段视频码流进行视频解码。17.根据权利要求16所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,所述处理器更新码流信息中的已接收码流长度,包括:
在接收到所述第i+1段视频码流的情况下,所述处理器基于所述已接收码流长度更新所述码流信息;所述处理器将更新后的所述码流信息存入系统内存;所述在所述第i段视频码流解码完成的情况下,所述视频解码器查询所述码流信息,包括:在所述第i段视频码流解码完成的情况下,所述视频解码器从所述系统内存中读取所述码流信息;所述在所述码流信息已更新的情况下,所述视频解码器对所述第i+1段视频码流进行视频解码,包括:在确定所述码流信息中的所述已接收码流长度已更新的情况下,所述视频解码器确定所述码流信息已更新;所述视频解码器读取所述第i+1段视频码流,以及对所述第i+1段视频码流进行视频解码。18.根据权利要求17所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,所述处理器基于所述已接收码流长度更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,所述处理器基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息;所述视频解码器读取所述第i+1段视频码流,包括:所述视频解码器基于所述码流信息中所述第i+1段视频码流的所述存储地址,读取所述第i+1段视频码流。19.根据权利要求18所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,所述处理器基于所述已接收码流长度和第i+1段视频码流的存储地址,更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,所述处理器获取所述第i+1段视频码流的存储地址;在所述第i+1段视频码流的存储地址与所述第i段视频码流的存储地址不同的情况下,所述处理器基于所述已接收码流长度和所述第i+1段视频码流的存储地址,更新所述码流信息。20.根据权利要求17所述的方法,其特征在于,所述在接收到所述第i+1段视频码流的情况下,所述处理器基于所述已接收码流长度更新所述码流信息,包括:在接收到所述第i+1段视频码流的情况下,所述处理器确定所述单帧视频码流的接收状态;所述处理器基于所述接收状态,确定所述单帧视频码流的帧码流结束信息,所述帧码流结束信息用于表征所述单帧视频码流是否接收完毕;所述处理器基于所述已接收码流长度和所述帧码流结束信息更新所述码流信息;所述方法还包括:在所述第i+1段视频码流解码完毕,且所述帧码流结束信息指示所述单帧视频码流接收完毕的情况下,所述视频解码器通知所述处理器所述单帧视频码流解码完毕。21.根据权利要求16至20任一所述的方法,其特征在于,所述方法还包括:
在接收到所述单帧视频码流的第一段视频码流的情况下,所述处理器向所述视频解码器发送解码指令,所述解码指令中至少包含所述码流信息以及所述视频解码器解码所述单帧视频码流所需的寄存器大小。22.根据权利要求16至20任一所述的方法,其特征在于,所述m的取值与信道速率呈负相关关系,所述信道速率是传输所述单帧视频码流的信道速率。23.根据权利要求16至20任一所述的方法,其特征在于,所述单帧视频码流的解码延迟时长与所述m的取值呈负相关关系。24.一种视频解码装置,其特征在于,所述装置包括:查询模块,用于在单帧视频码流中第i段视频码流解码完成的情况下,查询码流信息,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数,所述码流信息是处理器在所述第i段视频码流解码过程中接收到第i+1段视频码流后更新的,所述码流信息中至少包括所述单帧视频码流的已接收码流长度;视频解码模块,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。25.一种视频解码装置,其特征在于,所述装置包括:码流接收模块,用于在视频解码器解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;更新模块,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度。26.一种视频解码装置,其特征在于,所述装置包括:码流接收模块,用于在解码单帧视频码流中的第i段视频码流的情况下,接收所述单帧视频码流中的第i+1段视频码流,所述单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;更新模块,用于在接收到所述第i+1段视频码流的情况下,更新码流信息中的已接收码流长度;查询模块,用于在所述第i段视频码流解码完成的情况下,查询所述码流信息;视频解码模块,用于在所述码流信息已更新的情况下,对所述第i+1段视频码流进行视频解码。27.一种芯片,其特征在于,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现如权利要求1至7任一所述的视频解码方法,或,实现如权利要求8至15任一所述的视频解码方法,或,实现如权利要求16至23任一所述的视频解码方法。28.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的视频解码方法,或,实现如权利要求8至15任一所述的视频解码方法,或,实现如权利要求16至23任一所述的视频解码方法。29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至7任一所述的视频解码方法,或,实现如权利要求8至15任一所述的视频解码方法,或,实现如权利要求16至23任
一所述的视频解码方法。30.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现如权利要求1至7任一所述的视频解码方法,或,实现如权利要求8至15任一所述的视频解码方法,或,实现如权利要求16至23任一所述的视频解码方法。
技术总结
本申请实施例公开了一种视频解码方法、装置、芯片、终端、存储介质及程序产品,属于视频解码技术领域。该方法包括:在视频解码器解码单帧视频码流中的第i段视频码流的情况下,处理器接收单帧视频码流中的第i+1段视频码流,单帧视频码流被划分为m段视频码流,m为大于等于2的整数,i是小于m的正整数;在接收到第i+1段视频码流的情况下,处理器更新码流信息中的已接收码流长度;在第i段视频码流解码完成的情况下,视频解码器查询码流信息;在码流信息已更新的情况下,视频解码器对第i+1段视频码流进行视频解码。该方法通过减少处理器和视频解码器之间的交互,达到降低解码延迟的目的。达到降低解码延迟的目的。达到降低解码延迟的目的。
技术研发人员:谷俊 陈本初 彭艺频
受保护的技术使用者:哲库科技(上海)有限公司
技术研发日:2023.04.27
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
