default

default

0个粉丝

40

问答

0

专栏

0

资料

default  发布于  2016-06-24 17:32:36
采纳率 0%
40个问答
12820

海思音视频编码的时间戳是什么,有什么用?

 
本帖最后由 default 于 2016-6-24 17:35 编辑

有几个问题不太理解:
1.请问海思H264编码的时间戳代表的是什么?是一帧的起始时间+编码器编码的时间吗?
比如,dwLowerTimeStamp = (HI_U32)((HI_U64)pstStream->pstPack->u64PTS & 0xffffffff);
dwUpperTimeStamp = (HI_U32)((HI_U64)pstStream->pstPack->u64PTS >> 32);

2.同理,音频的时间戳,有AI的和Aenc的,他们的区别是什么?

3.为什么在手册里,AI的帧获取函数中HI_MPI_AI_GetFrame得到是时间戳明确说明单位为微秒,而Aenc中的HI_MPI_AENC_GetStream得到的时间戳没单位怎么说明!

4.假设要实现音视频解码后同步,需要怎样根据时间戳实现同步?
我来回答
回答15个
时间排序
认可量排序

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-24 21:01:53
认可0
本帖最后由 ngswfx 于 2016-6-24 21:24 编辑

我来说下,我的理解:
1、时间戳的确很多,有好多种,分别表示不同时间,做不同事情,不同的要求,可能用的不一样。
有输入节点的。有编码点的。当编码输出的数据不是规律数据,例如有大有小,尤其是图像部分,没有时间戳就麻烦了。如果是帧输出还好说,通常都做实时编码,我们可以猜时间戳,强制加40ms或这33ms,即便帧率变小,解码也没有大问题。但图像可能会出现轻微卡顿,总会觉得怪怪的。这就是因为没有仔细研究利用时间戳。
通常一个物体的运动,肯定很流畅,但由于cpu负荷等原因,采集时间点,编码时间点本身就有差异。这会造成2帧时间间隔不一样。如果不知道相应的时间戳,把这样的输入送入解码,就导致图像轻微卡顿。如果有时间戳,解码就会考虑仿照编码时间结点来输出显示数据。这时显示得到的图像,物体运动才平滑。更为要命的是,如果网络传输中有各种处理动作,包被拆分组合,变成文件等等,如果没有时间戳,什么时候送入解码器,送多少就是问题了,如果有时间戳,这就好办了。只要仿照时间戳的变化送入解码就可以了。这样不同的帧率,就自适应了,不会出现慢动作或者快放了。
2、我没弄过,但从名字看,一个是数据输入时间点,另外一个应该是编码时间点,估计应该是编码后时间点。
3、这个不难,只要有相关数据流,你把它printf出来,自己就看出来了,1秒钟大概多少包,时间戳数据怎么增加的。
4、我没弄过,但最基本的想法,如果编码时,同一时刻产生的时间戳完全相同,你用序号代替,解码时,就找序号相同的音频和视频同时送入解码,就完成同步了。可实际上为了更精确,编码时,我们会发现同一时刻的音视频时间戳也不一样,是陆续出来的,解码时尽量按照这个时间序列送入解码就可以了,你把解码端的当前时间也采集了,几个值对比着来,计算每个音视频帧需要延迟多少时间送入解码器。可以网上找相关代码。应该不少。我的感觉是,这个东西是个细致活,因为即便代码错了,看图像,听声音也感觉不到太多差异。我能想到的就是凭感觉观察流畅度。不知道有没有什么量化机制,能通过工具,让编码时,送入一个图像,解码后也得到一个图像,2者通过什么手段对比一下,看偏差度有多大,我能想到的就是把所有的时间戳都显示在图像上面,VI VENC VDEC VO,然后就把这些图像保存成jpg,再来看各个时间,对比分析。

//但如果做的好了,还是能看出端倪的,根据我了解的情况,平滑度做的比较出色的是HK的。应该是做解码时,严格分析计算了编码前各个采集时间点。我自己做解码,暂时还没管这个,自己加了个33ms,强制赋值了。说白了就是图像的真实显示时间不精确,估计有10ms左右的误差。

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-06-24 22:39:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32394&ptid=11737]ngswfx 发表于 2016-6-24 21:01[/url]
我来说下,我的理解:
1、时间戳的确很多,有好多种,分别表示不同时间,做不同事情,不同的要求,可能用 ...[/quote]

非常感谢:D

wuyanxiong

0个粉丝

0

问答

0

专栏

0

资料

wuyanxiong 2016-06-25 14:06:00
认可0
不懂,帮忙顶一下人气。

dwt_guard

0个粉丝

9

问答

0

专栏

0

资料

dwt_guard 2016-06-27 09:41:23
认可0
没做过,不太懂:(

药导

1个粉丝

23

问答

0

专栏

11

资料

药导 2016-06-27 14:06:29
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32394&ptid=11737]ngswfx 发表于 2016-6-24 21:01[/url]
我来说下,我的理解:
1、时间戳的确很多,有好多种,分别表示不同时间,做不同事情,不同的要求,可能用 ...[/quote]

我们的策略是将在RTP打包时的时间当做时间戳,然后辅助海思底层出来的时间戳进行动态校正,感觉还不错

default

0个粉丝

40

问答

0

专栏

0

资料

default 2016-06-27 15:06:45
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32476&ptid=11737]药导 发表于 2016-6-27 14:06[/url]
我们的策略是将在RTP打包时的时间当做时间戳,然后辅助海思底层出来的时间戳进行动态校正,感觉还不错[/quote]

什么时候调用HI_MPI_SYS_SyncPts这个函数?

hexiaowen

0个粉丝

1

问答

0

专栏

0

资料

hexiaowen 2016-06-27 15:22:30
认可0
有没有大牛,解答一下。

药导

1个粉丝

23

问答

0

专栏

11

资料

药导 2016-06-27 15:25:16
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32491&ptid=11737]default 发表于 2016-6-27 15:06[/url]
什么时候调用HI_MPI_SYS_SyncPts这个函数?[/quote]

不调,直接获取系统的UTC时间,当做时间戳发出去

hexiaowen

0个粉丝

1

问答

0

专栏

0

资料

hexiaowen 2016-06-27 15:28:33
认可0
希望大牛,来解答下。谢谢了!

hexiaowen

0个粉丝

1

问答

0

专栏

0

资料

hexiaowen 2016-06-27 16:11:28
认可0
:):)希望有人帮忙一下呀。谢谢!

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-06-27 16:15:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32500&ptid=11737]hexiaowen 发表于 2016-6-27 16:11[/url]
希望有人帮忙一下呀。谢谢![/quote]

不是同一个问题,请新开一贴

hexiaowen

0个粉丝

1

问答

0

专栏

0

资料

hexiaowen 2016-06-27 16:19:21
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=32501&ptid=11737]zhuangweiye 发表于 2016-6-27 16:15[/url]
不是同一个问题,请新开一贴[/quote]

好的。谢谢提醒!

qn1585635626

0个粉丝

2

问答

0

专栏

0

资料

qn1585635626 2020-05-30 17:04:18
认可0
HI_MPI_SYS_SyncPts

winstonguo

0个粉丝

0

问答

0

专栏

0

资料

winstonguo 2021-07-17 19:59:34
认可0

时间戳一般是在这个数据帧产生的时候通过获取系统时间来赋值。单位都是微妙(us)。 比如VI(video input)模块,在把视频信号采集完成之后,硬件会上报中断,VI驱动内部中断响应函数会获取系统时间配置给当前采集完的视频帧。同理AI模块也是一样,在把音频信号采集完成之后,在中断获取到系统时间作为时间戳。 至于编码解码这些不会去配置时间戳,这些都是前级模块传递过来的。 简单点说时间戳就是这个帧产生的时候的时间节点,为后续做同步使用。

Pere_Ai

1个粉丝

1

问答

0

专栏

0

资料

Pere_Ai 2021-08-09 18:46:39
认可0

可以看出来你的图像是不是连续的

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区