�����ڵ�λ�ã� › ���������ȵ�ר����ҵר���߿Ƽ���ҵ
�����ں��»����Ƽ����ʵʱת�뼼���о���Ӧ��

2011-7-14

 

ժҪ�����Ľ�̽�������ں�����Ƶ���ݵ�ʵʱת�뼼����ͨ���ü���ʵ����Ƶ���ݵ�����ʵʱת����ƥ�䣬ʹ��ת�������Ƶ�����ܹ��ڸ����ն��Ͻ��в��ţ�ͬʱ�������Ƽ��㼼���ʵʱת�����ƽ̨��Ϊ�����ն��û��ṩ���á����š����١���Ч���ں���Ƶ����

�ؼ��ʣ������ںϣ�ʵʱת�룬�Ƽ���

1  ����

�������ں������£�������Ӫ����IPTVҵ��Ϊ����㣬Χ����ƵӦ�ã��ڲ�ͬ�ն��Ͽ�չ������Ƶҵ�񣬰���IPTVҵ��PC��Ƶҵ����ƶ���Ƶҵ����Ƶҵ������������Ƶ�㲥��ֱ�����ؿ�����ֵ�ȣ���Ƶҵ������������ڲ�ͬ�ն��ϵı�׼������ͬ����Ҫ��ΪIPTV���塢IPTV���塢��������Ƶ���ƶ��������ƶ������ȹ��ͬһ��Ƶ����Ϊ�����ڲ�ͬ�ն��Ͻ��в��ţ���ҪԤ����������ת�빤����ÿ��ԭʼ��Ƶ������Ҫ��Ӧ7��8��ת������Ƶ���ݣ����˷�������ת��ʱ�䡢�����˴����Ĵ洢�ռ䣬������������һ���Ե�ά���ɱ��������ںϺ���������Ϊ�����Ŀ�����ƵӦ����Ҫ���졢��ǿ������ʡ��Դ��ת�뷽ʽ��

Ŀǰ����Ƶ������õij���ת�뷽����Ӳ��ת������ת�룺Ӳ��ת����ҪӦ������Ƶֱ����ת�룬һ�����ר��ASICоƬ����FPGA�ɱ��������ת��������úú���Ѹı䣬ÿ̨ת���豸�ܹ�֧��4��8·��Ƶ����ת�������ת�������Ӧ���ڸ���ת�볡��������ʵʱת�������ת�룬ת�����������ת��·�����ٶ�ȡ����ת�����������ܼ����ݵķ��ʺ�д���ٶȡ����ת����Ŀǰҵ�����ѡ���������׹�˾��2009���Ƴ��Ļ��ڹ������̵ķֲ�ʽת��ϵͳRhozetTM Carbon ServerTM 4.0����һ��ȫ�Զ��������ת���Ʒ�����ǣ�������ƵӦ�õķ��ٷ�չ���ֲ�ʽת�뼼�����޷�ʤ�θ߲�����������Ƶ��ת�������Ƽ��㼼���ij��֣�ʹ�ý��������Ƶ��ʽ����������Ҫ��ĺ���ʵʱ��Ƶת�������Ϊ���ܡ�

���������һ�ֻ����Ƽ��㼼������Ƶ����ʵʱת��[1]�Ľ��������ͨ���÷���ʵ����Ƶ���ݵ�ʵʱת�����ն�ƥ�䣬����������ά��Ա�ճ�ת����������ݵ�ά��������ͬʱ��ͨ��������ת��ƽ̨������ʵʱת��������Ϊ�������û��ṩ��Ƶ��ת����񣬴����������⡢���ݻ�ۡ�ý�徭Ӫ����ҵģʽ��

2  �Ƽ���ת��ؼ�����

�Ƽ���ת��ؼ�������Ҫ������Ƶת�뼼�����Ƽ��㼼������Ƶת�뼼�����սṹ���Է�Ϊ������ת��ͱ任��ת�룬������ת�������ȫ��ȫ�����ṹ���ŵ���Ҫ������ʵ���������������ת������ת�������ͼ�������ϸߣ����临�Ӷȸߡ����������ȱ�����ÿ���ʹ���Ƽ��㼼�������ֲ����������ǽ��ص���������ֹؼ�������

2.1  ��Ƶת�뼼��

��Ƶת��Ĺ�����Ҫ��������ת�����ռ�ֱ���ת����ʱ��ֱ���ת���ͱ����ʽת����

(1)����ת��

����ת����ָΪʹ��Ƶ�����ʺ��ڻ��������ƶ����ȵʹ��������Ͻ��в��ţ�ͨ����Ч�ؽ�����Ƶ���ʣ�ʹ�þ�����������������ʷ������紫��Ҫ����Ƶ����ת����Ҫ����4�ַ�������һ���ǽضϸ�ƵDCT������ͨ���������ָ�ƵDCTϵ����ʹ�ø������������Ҫ����ȱ���Ƕ�����Ƶϵ�������ͼ��ϸ�ڵ�ȱʧ��ת��֮���ͼ�������ϲ�ڶ�����ѡ����ʵ������������Խ����Ƶ��ϵ���������������������ʣ��÷����ǶԵ�һ�ַ������Ż��������ַ�����������ȡ���˶�ʸ���ͱ���ģʽ��ͼ�����±��룬���������˶����ƺͱ���ģʽѡ�񣻵����ַ����Ǵ���Ƶ������ȡ��Ӧ�ı�����Ϣ��ֻ��һ��DCT��IDCT�������˶�ʸ���Ż�������ȡ�˶����Ƶľ�׼�ԡ�ǰ���ַ������ڿ���ϵͳ������Ҫͨ��DCT/IDCT�����ؽ�ͼ����Ȼ�ܴ�̶��Ͻ����˼���ĸ��Ӷȣ�����ͼ�������ϲ�����ַ������ڱջ�ϵͳ���Խ���ͼ��������ؽ��������˲ο�֡ͼ�����¼����˸����IJв���㸴�ӶȽϸߣ����ǻ�õ�ͼ�������ȽϺá�

(2)�ռ�ֱ���ת��[2]

�ռ�ֱ���ת����ָ������������Ƶ(1080P)ͨ�����Ϳռ�ֱ������ƶ��ն�(QCIF)�Ͻ��в��ţ�ͨ������ȫ��ȫ�����ܹ�����Ӳ���ģ��ʵ�֣���Ҫ�����²����㷨���˶�ʸ����ӳ���㷨�������㷨�����Ϳռ�ֱ��ʵ��²����㷨��ָΪ����Сͼ��Ŀռ�ߴ磬��ԭ�еIJ�����ʽ���и��ģ��ɲ��õķ����У�����ƽ������������2��2���ص�ƽ����ʾһ�����أ��˲����÷���ͨ���˲�����ԭʼͼ������˲���Ȼ����г������˶�ʸ����ӳ���㷨�������㷨��ָ�����˶�ʸ���ĵȱ������Ž�����Ƶͼ���ѹ�������ռ�ֱ��ʽ��ͺ󣬵ͷֱ���ͼ���һ�������Ӧԭ���Ķ����飬����һ���ķ���������ʵ��˶�ʸ����Ϊ�º����˶�ʸ�����������õ��˶�ʸ�����Էֱ��ʵ�ѹ���ȣ��Ի�õͷֱ���ͼ�������յ��˶�ʸ���������ӳ���㷨����ƽ��ֵ������ֵ��������ѡȡһ��ʸ����Ϊ��ǰ�����˶�ʸ����

(3)ʱ��ֱ���ת��

ʱ��ֱ���ת����ָͨ��������Ƶ���е�֡�ʣ����ͶԽ����豸����������Ҫ�����ʺϴ���С���ն˴������������豸�ֱ��ʵ͵����������֡�ʲ����Ǽ򵥵Ķ���֡����ʱ��Ҫ���ö���֡���˶���Ϣ���ºϳ��˶�ʸ����ʱ��ֱ���ת���ķ�����Ҫ������֡��֡����ת�����˶�ʸ���ϳ��㷨����֡���Կ��ǵ�B֡��I��P֡û��Ӱ�죬���ȶ���B֡��ͬʱ��Ӧ�ø����˶�ʸ���Ļ��۳̶Ⱦ����Ƿ���Ҫ���ú��ʵ���֡���ԡ�֡����ת����Ҫ����B֡��P֡��ת�룬����ԭ��ǰ�򡢺���˫���˶�ʸ��ȫ��ת����ǰ���˶�ʸ�����˶�ʸ���ϳ��㷨��ָ��Ƶ֮֡����˶�ʸ��������ϵ���ڶ�֮֡��������жϣ�ͨ�����ö���֡�е��˶���Ϣ�������˶�ʸ���ϳ��㷨�������µIJο�֡�˶�ʸ����������˶�ʸ���ϳ��㷨����˫���Բ�ֵ����ǰ����ʸ��ѡ�񷨡�����ʸ���ϳɷ��ͺ���Ծ��ʸ��ѡ�񷨵ȡ�

(4)�����ʽת��

�����ʽת���ǽ�ԭʼ��Ƶ���������õı����ʽת�����ն��ܹ����벥�ŵĸ�ʽ����Ƶ�����ʽ��Ҫ����H.264��MPEG-4��MPEG-2��VC-1��Real Video��H.263��VP6�ȣ�����H.264����������¼���������˱���Ч�ʣ�����ͬ�Ȼ�����������������ʽ���ʽϵͣ��Ѿ���Ϊ��ǰ�����ı����ʽ����ˣ��ڴӴ�ͳ����Ƶ�����׼��H.264ת���Ĺ����У���Ҫ����H.264���ö�ο�֡�������ģʽ�Լ�1/4�����˶����Ƶ��ص�����Ż�[3]���Լ��ٸ�׼ȷ���������ĸ߼���������Ҫ����֡��ͼ��Ԥ�⡢��ģʽѡ����˶����Ƶ�[4]��

�����������ɼ�����Ƶת����������漰�ı���ģʽѡ���˶�ʸ����ȡ��Ԥ����ƺͺϳɵȲ��趼��Ҫ��������ѧ���㣬��ͳ��ת��ƽ̨�޷�֧�ִ󲢷�����ʵʱת�������Ƽ��㼼���ij���Ϊ������ʵʱת��ƽ̨�ṩ�˽��������

2.2  �Ƽ��㼼��

�Ƽ���ؼ�����[5]��Ҫ����Bigtable������MapReduce������HDFS�ֲ�ʽ�ļ�ϵͳ���������潫����3���ؼ���������չ�����ۡ�

(1)Bigtable����

Bigtable��һ�ֲַ�ʽ�Ľṹ�����ݿ⼼��������������ƴ���ֲ�����ǧ̨�������ϵ�PB���������ݣ����кܺõ������ԡ�����չ�Ժ͸߿����ԡ�Bigtable��һ��ϡ�衢�ֲ�ʽ���ɳ־û��洢�Ķ�ά������Key-value���ݿ⡣���ݿ���������йؼ��֡��йؼ��ֺ�ʱ��������ݿ��ֵ�ǿ������û��Լ������XML��ʽ�����ݿ��е�ÿ���п���֧�ֶ�̬������������õ���Tablet�����ݷֲ��͸��ؾ������С��λ��ͨ�������ض���Tablet����������ʵ�����ݵķֲ�ʽ�洢����������������Ҫ��ŵ��������ԣ�����йؼ��ֿ���������壬�����е����ݶ�����ͬһ���ͣ������ʹ�ÿ��ԶԶ���йؼ��ֽ��������Ĵ���Bigtable��ÿ���洢����������԰���ͬһ�����ݵIJ�ͬ�汾����ͬ�汾������ͨ��ʱ�����������Ϊ�˼���汾����ĸ�����Bigtable��ÿ�����嶼�����������ò�����ͨ�������������Է����汾�����ݽ����Զ������ռ������磬�û�����ָ��ֻ�������n���汾������ֻ�������n��д������ݡ�

(2)MapReduce����

MapReduce������һ�����˵ķֲ�ʽ����ģ��[6]������֧�ִ���TB�������ϵľ�������ҵ��MapReduce�Ļ���ԭ���Ƕ���������ݽ����߼��ϵ�Map��������������������һ��Key-valueֵ��Ȼ��������Key-valueֵ����Reduce�������ϲ��������������ݡ���Map��Reduceִ�еĹ����У����Ȼ�������ļ����з�Ƭ��Ȼ���ڴ����������п�ʼ�������������س������Map��Reduce���������Ŀ��з����������䵽Map����ķ�������ȡ����ķ�Ƭ�ļ���������Key-value�ԣ�Ȼ������û��Զ����Map�������д����������д������ϵĶ����ͬ�����С����䵽Reduce����ķ�����ͨ��Զ�̵��û�ȡ�����ϵ����ݣ����Ծ�����ͬkeyֵ�����ݽ�������;ۺϡ�MapReduce�����ھ���Ӧ���л���Ҫ��һ�������ݴ���ƺ�����Ŀ����ȣ��Ӷ�������ļ������ܡ�

(3)HDFS�ֲ�ʽ�ļ�ϵͳ

HDFS�ֲ�ʽ�ļ�ϵͳ[7]��һ�ֻ�����ģʽ(write one read many)�����ݷ����ļ�ϵͳ���ܹ�֧��PB���ĺ������ݡ�HDFS������/�Ӽܹ���һ��HDFS��Ⱥ����һ�����ķ�����(namenode)�Ͷ�����ݷ�����(datanode)�����ķ�������������ļ�ϵͳ�������ռ�Ϳͻ��˶��ļ��ķ��ʡ����ݷ������������ڵ��ϵ����ݴ洢�����ļ��洢ʱ���ļ������ֳ�һ�����߶����(block)����Щ��洢�����ݷ������С����ļ���ȡʱ�������ķ�����ִ���ļ��Ĵ򿪡��رյȲ������������������ݷ������ϵ�ӳ�䡣�ڽ����ļ�����ʱ�����еĿ鶼�ᱻ���ƣ�ÿ���ļ��Ŀ��С�͸������Ӷ��ǿ����õġ����ķ�������������ĸ��ƣ��������ԵشӼ�Ⱥ�е�ÿ�����ݷ�����������������һ���鱨�档�������Ľ��ձ�ʾ�����ݽڵ��������������鱨������˸����ݷ����������еĿ���ɵ��б�

3  �����Ƽ������Ƶת��ܹ�

3.1  ����ܹ�

Ŀǰ����Ӫ�̿�չ����Ƶҵ���������ת���ʵ�ַ�ʽ�������ַ�ʽ�£�����CP�ϴ���ÿ����Ƶ���ݣ�����Ҫ��ͳһ���ݹ���ϵͳ�н���ת��������MPEG-4��H.264���ֱ����ʽ�Լ����塢���������ƶ��������ƶ�����4�����͵����������ڽ����ģ��չ�����ں���Ƶҵ�񣬴�����������ʱ�䳤�����Ĵ洢�ࡢ����ά���ѵ�һϵ�����⡣

ͨ�������Ƽ���ת�뼼����������ת��ƽ̨���γ��µ�ʵʱת����ϵ�ܹ���ͳһ���ݹ���ϵͳ����������ʱ����ֱ���������Ƶҵ��ϵͳ����ͬһ���ݼ�����Ԫ���ݡ��û�ͨ����ͬ�ն�ʹ����Ƶҵ��ʱ������ת��ƽ̨����Ƶҵ��ϵͳ�л�ȡ�������ݲ�����ʵʱת�롣��ϵ�ܹ���ͼ1��ʾ��

 

ͼ1  �����ں��µ���Ƶҵ��ʵʱת����ϵ�ܹ�

��ϵ�ܹ��и�ģ�鼰�����������¡�

(1)Ӧ���ն�

����ͨ���ͻ��˷�ʽ�����������+��Ƶ����������ʽ������Ƶ��ý��IJ��Ż������عۿ��������޷����ŵ���Ƶ���ݣ�ֱ������ת��ƽ̨����ת����������ת��ƽ̨�ṩ��ý�����

(2)��Ƶҵ��ϵͳ

�����ں���Ƶҵ��ϵͳ�����ƶ���Ƶҵ��ϵͳ����������Ƶҵ��ϵͳ��IPTVҵ��ϵͳ��ÿ��ҵ��ϵͳ��������Ƶ�Ż�����Ƶҵ������ϵͳ����Ƶҵ�����ϵͳ����Ƶ�Ż���Ҫ�ṩҵ��չʾ���ܹ�ͬʱΪӦ�ÿͻ��˷�ʽ���������+����������ʽ�ṩҵ��չʾ����Ƶҵ������ϵͳ��Ҫ�ṩ�㲥��ֱ���ͻؿ�����ý����������Լ���Ƶ����������������Ƶҵ�����ϵͳ�ṩ��Ƶҵ�����֤�������Ʒѣ�������ƽ����������ISMP����ͳһ����

(3)ͳһ���ݹ���ϵͳ

��Ƶ���ݾ�����ͳһ���ݹ���ϵͳ����ϵͳ�ṩ��Ƶ�����ݻ�ȡ��Ԫ���ݹ������ݷ����ȹ��ܡ�

(4)��ת��ƽ̨

������Ƶת��ֿ����ת����������ת��ƽ̨����Ƶ���ݽ���ʵʱת�����ṩ��CDNϵͳ����CDNϵͳ�ṩ���ն˽��в��ţ�ͬʱ��ת������Ƶ���ݱ�������Ƶ�ֿ��С���Ƶ�ֿ�ɸ���ת�����ݶ��ڽ����û���Ϊ�����������������������ͳһ���ݹ���ϵͳ��

3.2  ��ת��ƽ̨�����

��ת��ƽ̨�ļܹ�����������Ƽ���Ĺؼ�����������Bigtable������ת��ԭʼ���ݺ�ת������ݵĴ洢����ͨ��URL�ؼ���������ٻ�ȡ�������͵�����������Ƶ����֡��֡�洢�����ݿ��У��ɽ��п��ٶ�ȡ�͸��ƣ�Tablet������չ��Ҳ�ܹ�����ҵ����������󣻲���MapReduce��������Ƭ����Ƶ֡���и�Ч���е�ת�봦����ת�����Ԥ�����úõ�ִ�г���������������ʽ��ת�����󣻲���HDFS�ļ��洢������Bigtable���ת���м��ļ����д洢����ת���ļ����и��ٷ��ʺ͸��ơ���ת��ƽ̨�ľ������Ҫ�����¡�

(1)��ת��ƽ̨�ڽ���Key-value���ݿ����ʱ���йؼ���Ϊ��Ƶ���ݵ�URL���ŵ�ַ���йؼ���Ϊ��Ҫת��IJ������������ʡ�֡�ʡ��ֱ��ʡ��ն����͵ȣ��洢������Ϊ��Ƶ���ݵı���֡���ݡ�

(2)��ת��ƽ̨�����������������һ����ƬΪ16��64 MB��Reduce����һ��Ϊ������������2��3����

(3)��ת��ƽ̨Ӧ������ȫ��ȫ������������ת��ṹ���������ö�ת������Ӱ��ϴ�ı任��ת��ṹ���ڽ�����Ƶ���ݵ�����ת��ʱ��Ӧ���ô���Ƶ������ȡ������Ϣ��������ȡ���˶�ʸ���ͱ���ģʽ��ͼ�����½��б���ķ�ʽ������Ӧ����ֱ�Ӷ�����ƵDCTϵ�����߶�Ƶ��ϵ�����������������������ʵķ�ʽ��

(4)��ת��ƽ̨�ڽ��пռ�ֱ���ת��ʱ��Ӧͨ������ȫ��ȫ�����ṹ�����Ӳ���ģ����ʵ�֡�ʹ���²����㷨���˶�ʸ����ӳ���㷨�������㷨ʵ�ֿռ�ֱ��ʵĽ��͡�

(5)��ת��ƽ̨�ڽ���ʱ��ֱ���ת��ʱ��Ӧ���ö�����Ƶ֡��֡����ת���ķ�ʽʵ�֡��ڶ�����Ƶ֡�ͽ���֡����ת���󣬻���Ҫ��һ��ͨ���˶�ʸ���ϳ��㷨�����������µIJο�֡���˶�ʸ������֤��Ƶ֡�������ԡ�

(6)��ת��ƽ̨�ڽ�����Ƶת��ʱ��Ӧ�����ݴ���ƣ�ͨ������ǰ�����(FEC)���Զ��ط�����(ARQ)���ݴ��ʩ���������ʡ�

(7)��ת��ƽ̨Ӧ��������One-Passת�뷽ʽ�����ڽ�����̲������ͼ����������ʧ���������½����ڱ������������ģ�����Ӧ�ڱ�������о��������������ڣ������ֱ�ӱ��롣ֻ�������������ʱ����Two-Passת�룺�����޷�ѹ����Ԥ��Ҫ������������̫�󣬿������˲�����

4  ������

Ŀǰ���Ƽ��㼼���Ѿ��ڻ���������õ��㷺Ӧ�ã��漰�������ݵ�Ӧ�ã���Facebook��GoogleMap�Ⱦ������Ƽ��㼼����Ϊ�������ܡ�������Ӫ���������ں�ҵ���������Ƽ��㼼����һ���µij��ԣ���Ŀ����Ϊ�˼ӿ���ӪЧ�ʡ������û����顣��ҵ����Ӫ�����У����ǽ�����ע���Ƽ��㼼����ʵʱת��ƽ̨�����ĸ�Ч�ԡ�����չ�Ժ��ײ����ԡ�

�����

[1]�����أ�������³����.�����ƶ������ʵʱ��Ƶת��ϵͳ.��������̣�2009(3)

[2]���򣬺����������.һ�ֻ��ھ�ȷ�ȵĽ��ֱ�����Ƶת���˶�ʸ���ϳ��㷨.�й�ͼ��ͼ��ѧ����2010(1)

[3]�п���������.AVS-H.264��Ƶת������㷨.��������̣�2010(12)

[4]���������ӳ�������.һ�ֻ���H.264�Ļ����Ƶת�뷽��.�����Ӧ���о���2009(5)

[5]��ȫ����ٻ��.�Ƽ��㼰��ؼ�����.�����Ӧ�ã�2009(9)

[6]����飬�ν�.���ڸ������Ƶķֲ�ʽ���ݲ��д������.�人��ҵѧԺѧ����2010(1)

[7]���ᣬ�Ź�Ȫ.�ֲ�ʽ�ļ�ϵͳHadoop HDFS�봫ͳ�ļ�ϵͳLinux FS�ıȽ������.���ݴ�ѧѧ����2010��(4)

[8]Τ��ƽ.�����ںϵ�˼��.���ſ�ѧ��2010��26(3)

 

��Դ��    �����ſ�ѧ��