打印

呼唤视频高手

[复制链接]
2132|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxfxwk1986|  楼主 | 2012-3-29 21:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近对于音视频的同步始终,最近在一篇论文中看到这么一句话,不理解其意思。
“在广播电视系统中,数字音频的取样频率通常采用48KHz(其它取样频率有32KHz和44.1KHz),在每秒25帧的
扫描系统中,一个视频帧的音频样值数为48000/25=1920,即一个视频帧内有整数个音频样值,这时音频的取样频
率能和视频时钟保持同步,可称为同步音频。”
对于他说的“一个视频帧内有整数个音频样值,”得到紧接着的一句结论“这时音频的取样频
率能和视频时钟保持同步”实在是搞不懂。

视频时钟是27MHZ,而采样频率是48K,之间相除的话不是整数呀,怎么是保持同步?

相关帖子

沙发
Backkom80| | 2012-3-30 16:25 | 只看该作者

使用特权

评论回复
板凳
wxfxwk1986|  楼主 | 2012-3-30 19:30 | 只看该作者
2# Backkom80
首先谢谢,你是说的哪个标题上讲的有相关的内容呀,我没看到呀

使用特权

评论回复
地板
wxfxwk1986|  楼主 | 2012-3-30 19:33 | 只看该作者
3# wxfxwk1986
我现在是连理论上同步音频是怎么一回事没搞清楚?

使用特权

评论回复
5
sleepybear| | 2012-3-31 10:38 | 只看该作者
标清视频时钟27M,是像素时钟。跟音频那个没关系。
48K采样频率,意思是:1秒钟有48000个音频样点。视频是25帧/秒(假设你是PAL制系列的)。这里的视音频同步,说通俗一点就是:1秒钟的这48000个样点,要分布到25帧里。一帧就是48000/25=1920个音频样点。

使用特权

评论回复
6
sleepybear| | 2012-3-31 10:47 | 只看该作者
本帖最后由 sleepybear 于 2012-3-31 10:49 编辑

一帧内的1920个音频样点,并不是说让你在时间上完全平均分配,那肯定和27M没有倍数关系。只要打散到一帧的时间里就可以了。标准里也并没有强制的要求必须要完全按照时间轴平均分配。
比如,PAL制有625行(包括场消隐区)。1920/625=3.072。除不尽。那么就是绝大多数行分配3个样点,个别行分配4个样点就可以了,只要总数相同就行。对于数字视频的内嵌音频,有些行还不能嵌入音频。打散就是尽量平均就可以了,也不可一下子把一帧的音频数据都堆在一起(比如一帧的前半段或后半段),也容易出现问题,比如后边处理单元的buffer溢出什么的。
多说一句:PAL制的还能除尽,得到1920。对于NTSC制,29.97的帧频,48000是除不尽的,要在帧之间平衡:1602-1601-1602-1601……如此分配。

使用特权

评论回复
7
wxfxwk1986|  楼主 | 2012-3-31 17:08 | 只看该作者
6# sleepybear
谢谢你的回答,我问这么个问题主要是基于这么一个任务,如何实现音视频的同步。任务是这样的:
有两路标清的SDI信号,分别通过两个相同的SDI接收芯片,然后中间使用了FPGA处理,处理后的音视频信息分别送给DSP DM6467的音视频接口。现在的麻烦是,由于DSP的视频口支持两个标清,那么对视频的处理只需要把SDI接收芯片出来的数据直接与视频口连接即可,但音频不行,因为从两个SDI接收芯片出来的音频数据明显是不同步的,是AES信号,而DSP的音频接收口MCASP只有一套时钟,且只支持I2S格式,那么就需要对从两个SDI接收芯片输出的音频AES信号重新提取,这样保证音频时钟是一样的然后在转换成I2S发送给DSP即可。问题来了,音频经过这样的处理后如何与视频同步?

使用特权

评论回复
8
sleepybear| | 2012-4-1 08:55 | 只看该作者
问题还是因为DSP的McASP只有一套时钟。可否考虑在FPGA中对两路音频只使用其中一路的时钟(同时也是DSP的McASP的时钟),对另一路音频做用该时钟重采样。然后一同交给DSP。但是,这样被重采样的音频与其对应的视频不同步。待通过DSP采到内存里之后,再用它的原时钟做一次重采样。
不知道这么可行不可行。。。
这种时钟机制问题,应当在系统设计之初就考虑到的。不行的话就要考虑换芯片、换方案。不知道你是在前期规划阶段还是在后期调试阶段突然发现这个问题?如果是后者,找你们系统设计人员商量确认。

使用特权

评论回复
9
wxfxwk1986|  楼主 | 2012-4-1 09:53 | 只看该作者
8# sleepybear
我是新手,开始没考虑那么多。我是这么想的,对AES使用多采样方法恢复数据(用外加的高频输入时钟,这点和你说的用其中一路音频的时钟应该道理一样),为了与视频同步,设置一个buffer,根据图像的情况决定何时从buffer中读出数据,再转化成I2S输出,这样的话应该可以解决问题。但问题来了,就是怎么去控制何时从buffer中读取数据,这就首先涉及到视频与音频怎么算同步的问题,至于最开始你说的一帧中只要有1920个采样点(这确实是事实),但在这个问题中我不知如何去利用。另外说一个SDI接受芯片的输出信号包含有H、V、F这些视频指示信号,我猜测是不是要用到这些信号,怎么用?现在我都没理论支撑。

使用特权

评论回复
10
wxfxwk1986|  楼主 | 2012-4-1 10:05 | 只看该作者
8# sleepybear
至于你说的“待通过DSP采到内存里之后,再用它的原时钟做一次重采样。”我想还是应该通过硬件FPGA设计后就应该保证送到DSP中的音视频是同步的吧,不能你硬件做的不同步再交给DSP部分的软件工程师让他做同步吧。

使用特权

评论回复
11
sleepybear| | 2012-4-1 11:10 | 只看该作者
本帖最后由 sleepybear 于 2012-4-1 11:17 编辑

DSP的McASP只有一个时钟,在不改动硬件的情况下,怎么保证2个不同源的音频通过McASP同步的被采集到DSP里?我才疏学浅,不晓得。:L
初期硬件设计时没有考虑好,才会出现这种问题。如果已经成型,那只能是软硬件一起解决了。

SDI芯片出来的FVH信号起的是同步指示作用,与SDI数据和时钟保持同步。你要想做到视音频同步,抛开2路不谈,就1路来说,是要有buffer环的。但是,如果你的FPGA只是一个接口,不与最终的内存打交道,那么,只要保持视音频时钟同步(别的帖子里讨论过,用视频时钟生成音频时钟,或者是来自同一接口芯片的音视频时钟本身是保持同步的),顺序采集就是了,因为都是流,只要时钟同步,就可以保证二者的同步(做的不好可能会有一些延迟错位,那就是更细的工作了)。
根本问题还是你最后采集的DSP的音频时钟问题:McASP的时钟只有1套,却要采集2个不同源的音频。那么按照一般的思路,就只有在前边同步到1个时钟,待采集后再分离到2个时钟了。不知道还有没有别的方法?:time:
多问一句,既然你们有FPGA,为什么不选用带高速Serdes的FPGA呢?A和X的都有SDI解决方案。可以把SDI接收芯片省去。

使用特权

评论回复
12
sleepybear| | 2012-4-1 11:15 | 只看该作者
8# sleepybear  
我是新手,开始没考虑那么多。我是这么想的,对AES使用多采样方法恢复数据(用外加的高频输入时钟,这点和你说的用其中一路音频的时钟应该道理一样),为了与视频同步,设置一个buffer,根据图像的 ...
wxfxwk1986 发表于 2012-4-1 09:53

问题不在FPGA这里。你那样的方法,可以做到某一路的音频和视频同步,没问题。问题是,DSP要收2路(这两路不同源,不同步)。你只能做到这2路各自的音频和视频同步,可是DSP的音频接口只有1个时钟。
或者,换一个思路:你们的产品的应用场合是什么?是不是要求外部来的2个SDI彼此之间同步?比如演播室,一般设备都是同步到同一个同步发生器上的。那么这2个SDI的视频和音频之间都是同步的,就可以用同一个McASP时钟来接收2路音频了。

使用特权

评论回复
13
wxfxwk1986|  楼主 | 2012-4-1 15:27 | 只看该作者
12# sleepybear
两路SDI之间肯定不同步,一个接一个不接信号就能用。我现在想着这么一个思路,但具体我不知道怎么弄。就是对音视频处理过程中都用到FIFO处理。把从SDI接收芯片出来的第一路的音频、视频和第二路的音频、视频都经过FIFO,先用外加的时钟去对两路的音频信号处理,这样就可以得到与此时钟同步的音频以及帧时钟,然后通过控制信号(这些信号应该会利用HVF指示信号),从两路的分别音频、视频FIFO里读出数据送给DSP(这时只要保证每帧图像里有1920个采样点就应该行了吧)。

使用特权

评论回复
14
wxfxwk1986|  楼主 | 2012-4-1 15:30 | 只看该作者
这样弄的话,应该可以达到目的吧,但难点是对FIFO读取的控制逻辑设计。不知这样想对不对?

使用特权

评论回复
15
sleepybear| | 2012-4-1 16:21 | 只看该作者
那些FVH信号根本上还是跟外来SDI本身的时钟同步的,你其实最后还是在用2个SDI自身的时钟去读数据喂给DSP。可DSP的音频通道就是1个时钟,这一点2对1的局面是怎么也绕不开的。

使用特权

评论回复
16
wxfxwk1986|  楼主 | 2012-4-1 20:00 | 只看该作者
15# sleepybear
意思是这样的:我用外加的输入时钟对两个不同步的音频重采样,这样保证了用一个时钟,然后再通过buffer保证每一路的音频、视频同步,上文提到的HVF信号只是用来作为同步的标准,即只要保证一帧里面有1920个采样点即可。

使用特权

评论回复
17
wxfxwk1986|  楼主 | 2012-4-1 20:06 | 只看该作者
15# sleepybear
不知我表述清楚没,对两个不同步的音频信号AES格式,我用一输入时钟过采样,这样就变成了音频时钟是同一个,然后视频是在BUFFER里,音频也在buffer里,这时根据与HVF相关的控制逻辑,分别读各路的音频、视频。此时用的音频的时钟不是视频的27M分出来的。

使用特权

评论回复
18
wxfxwk1986|  楼主 | 2012-4-1 20:22 | 只看该作者
刚没明白你说的“那些FVH信号根本上还是跟外来SDI本身的时钟同步的”现在有点理解了,你是说由于这些信号是与视频时钟同步的信号,不能用于去控制音频buffer中的读信号。想想也是呀,那我就不知道了。

使用特权

评论回复
19
wxfxwk1986|  楼主 | 2012-4-2 12:04 | 只看该作者
另外你提高的音频时钟似乎是要用视频时钟分出来的时钟,我在想可不可以不用这时钟,比如用在FPGA内部分频得到的24.576M这么的时钟,用此时钟对音频AES信号重采样,这样采样后的两个不同步的音频就都同步于此24.576M的时钟了。然后说到视频音频同步的问题,我只需要保证每帧里面有1920个采样点的音频数据,不用去管视频时钟与音频的时钟是否同步,不知道这样想对不对?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

250

帖子

1

粉丝