发布于:2014-01-14 14:45:14
来自:电气工程/其他电气设计软件
[复制转发]
由于视频会议传统采用RGB 格式存储数据流以用于多画面合成的方法十分浪费资源。因此,为了在有限的频带条件下最大限度地提高资源利用率,本文提出了一种在不影响画面质量的同时解决其资源利用问题的新方案。事实上。视频会议多画面软件已经应用到生活的诸多领域。而且将会有更广泛地使用。
1 数据流的捕捉
Windows 下捕获数据包的过程如下,其中NDIS 的NDIS (Network Driver InteRFace Specification)是Microsoft 和3Com 公司联合制定的网络驱动规范,该规范提供有大量的操作函数。它可为上层的协议驱动提供服务,从而屏蔽了下层各种网卡的差别。NDIS 向上可支持多种网络协议,例如TCP/IP、NWLink IPX/SPX、NETBEUI 等,向下则可支持不同厂家生产的多种网卡。
利用 winpcap 进行网络数据包的捕获和过滤的设计步骤如下:
(1)打开网卡,设置网卡为混杂模式;
(2)回调函数Network Tap,得到监听命令后从网络设备驱动程序处收集数据包,并把监听到的数据包传送给过滤程序;
(3)当Packet filter 监听到数据包到达时,NDIS 中间驱动程序调用分组驱动程序,该程序可将数据传递给每一个参与进程的分组过滤程序;
(4)由Packet filter过滤程序决定丢弃或接收数据包,并将接收的数据拷贝到相应的程序;
(5)通过分组过滤器后,再将未过滤掉的数据包提交给核心缓冲区,当系统缓冲区满后,再将数据包拷贝到用户缓冲区。监听程序可以直接从用户缓冲区中读取捕获的数据包;
(6)关闭网卡。
2 视频数据流的编解码
捕获到的视频数据流。通常在网络传输中都采用H.263或者H.264 视频编码建议,其图像格式为CIF格式。H.263-CIF格式的数据流是一种压缩编码图像格式,这种格式在网络传输过程中可节省频带资源,可在有限的带宽下最大限度地提高资源利用率。但是,CIF格式必须经过处理才能应用于多画面合成。只有通过解码使捕获到的视频数据流变成YUV(RGB)格式后,此图像格式才可直接运用于多画面合成,而且此格式的图像合成也比较方便、快捷。为了使图像由 H.263格式转变为YUV(RGB)格式,应运用H.263解码器进行解码。
3 视频的多画面合成
视频数据流经过解码之后,可将其变成YUV(RGB)格式。下一环节即是视频数据流的合成(多画面合成),这也是本文的关键技术。在视频会议系统中,参加会议的与会者或许不只两、三个,所有与会者可能分布全国乃至世界各地。为了使每个与会者都能进行面对面的直接交流,就需要在同一时间看到所有的与会者,因此,多画面合成技术必不可少。通过多画面合成能使N个不同的视频画面实时地在同一台显示器上显示,这样,每一位与会者就都可以运用该软件看到其他成员。
YUV主要的采样格式有YCbCr4:2:O、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4.:4。其中YCbCr4:1:1比较常用,其含义是每个点保存一个8 bit的亮度值(也就是Y值),每2x2个点保存一个Cr和Cb值,这样,图像在人的视觉中不会起太大的变化。RGB (R,G,B都是8 bit unsigned)模型的4个点需要8×3=24 bits,而现在仅需要8+(8/4)+(8/4)=12 bits,平均每个点占12 bits。这样就把图像的数据压缩至一半。YUV411为每个像素都提取Y分量,UV分量在水平方向上每4个像素采样一次。YUV420并非V分量采样为 0,而只是跟YUV411相比,在水平方向上提高了一倍的色差采样频率,并在垂直方向上以U/V间隔的方式减小了一半色差采样。
全部回复(1 )
只看楼主 我来说两句 抢板凳