CN102685562A - 用于媒体信号的压缩域编码设备和方法 - Google Patents
用于媒体信号的压缩域编码设备和方法 Download PDFInfo
- Publication number
- CN102685562A CN102685562A CN2012101475297A CN201210147529A CN102685562A CN 102685562 A CN102685562 A CN 102685562A CN 2012101475297 A CN2012101475297 A CN 2012101475297A CN 201210147529 A CN201210147529 A CN 201210147529A CN 102685562 A CN102685562 A CN 102685562A
- Authority
- CN
- China
- Prior art keywords
- frame
- bag
- compressed
- audio
- media signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 146
- 230000005540 biological transmission Effects 0.000 claims abstract description 117
- 239000000872 buffer Substances 0.000 claims description 109
- GUGNSJAORJLKGP-UHFFFAOYSA-K sodium 8-methoxypyrene-1,3,6-trisulfonate Chemical compound [Na+].[Na+].[Na+].C1=C2C(OC)=CC(S([O-])(=O)=O)=C(C=C3)C2=C2C3=C(S([O-])(=O)=O)C=C(S([O-])(=O)=O)C2=C1 GUGNSJAORJLKGP-UHFFFAOYSA-K 0.000 claims description 102
- 230000008569 process Effects 0.000 claims description 76
- 230000015572 biosynthetic process Effects 0.000 claims description 19
- 239000000203 mixture Substances 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 9
- 239000012634 fragment Substances 0.000 claims description 6
- 230000010076 replication Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 38
- 238000005755 formation reaction Methods 0.000 description 17
- 230000007704 transition Effects 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 description 4
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 description 4
- 238000005267 amalgamation Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000002224 dissection Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241001672694 Citrus reticulata Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/018—Audio watermarking, i.e. embedding inaudible data in the audio signal
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/37—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/56—Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
- H04H60/58—Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54 of audio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
- H04N21/23892—Multiplex stream processing, e.g. multiplex stream encrypting involving embedding information at multiplex stream level, e.g. embedding a watermark at packet level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8106—Monomedia components thereof involving special audio data, e.g. different tracks for different languages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8358—Generation of protective data, e.g. certificates involving watermark
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H2201/00—Aspects of broadcast communication
- H04H2201/90—Aspects of broadcast communication characterised by the use of signatures
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Systems (AREA)
Abstract
本发明涉及用于媒体信号的压缩域编码设备和方法。公开了用于对压缩音频流进行编码的设备、方法和制品。所公开的方法逐帧地对与媒体信号内的一个或更多个压缩媒体流(400)相关联的帧进行编码(408),并且逐包地释放包含经编码的帧的编码版本的媒体信号以进行发送(416)。
Description
本申请是原案申请号为200580049536.1的发明专利申请(国际申请号:PCT/US2005/013507,申请日:2005年4月19日,发明名称:用于媒体信号的压缩域编码设备和方法)的分案申请。
技术领域
本公开总体上涉及媒体测定(metering),更具体地讲,涉及用于对压缩媒体信号进行编码的编码设备、方法和制品。
背景技术
对诸如电视和/或收音机节目消费的观众媒体消费活动的监视或测定通常涉及在前端分配站处对广播媒体进行编码。通常,该编码处理编码或嵌入信息,这些信息例如是用于识别各个广播源或站和/或特定节目的辅助码、时间戳信息、或者对于识别和分析观众的媒体消费活动和/或特征有用的任何其他信息。
联邦通信委员会要求电视台转变到高级电视标准委员会(ATSC)数字电视(DTV)服务的命令已经使得许多电视网络提供商采用新的分配模型,这些新分配模型改变了提供给本地联播台(affiliate)以分配给消费场所(例如,消费者家庭)的网络馈送的特征。例如,在一些情况下,媒体内容以预打包的ATSC运动图像专家组版本2(MPEG-2)DTV格式从网络初始源经由本地联播台而分配到消费场所。换言之,媒体内容在整个该分配过程中都是以压缩数字格式提供并保持该格式,并且仅在其最终消费目的地(例如,消费者家庭)处被解压缩和解码。以这种压缩格式分配媒体内容能够显著降低高清晰度节目内容的传输成本(例如,降低与必须购买卫星带宽等相关联的成本),并且能够通过将高清晰度节目内容传送给消费者所需的联播台来降低资本支出(例如,设备购买)。另外,在这些压缩内容分配系统中,本地联播台或最终分配者能够使用MPEG接合器(splicer)等插入本地内容(例如,本地节目、商业广告等),这不需要对从上游网络提供商接收的压缩媒体信号进行解压缩和/或解码。
电视台的向基于压缩媒体内容分配的分配模型的上述转变将使得利用测定数据(例如,辅助码、时间戳等)对媒体信号进行编码的任务复杂化。例如,一些已知系统通过如下方式利用将本地联播台识别为最终分配者的一个或更多个码对经由该联播台发送的媒体进行编码:利用所述识别码对媒体信号的未压缩版本的音频部分进行编码。然而,在本地联播台接收压缩格式(例如,MPEG-2格式)的网络广播媒体内容的情况下,本地联播台或最终分配者不能容易地访问从上游网络提供商接收的压缩媒体信号的未压缩音频部分。更具体地讲,在符合MPEG-2的媒体信号的情况下,该媒体信号是在基于包的传输流或数字数据流中提供的,所述流可以携带多个节目,从而可以携带多个视频和/或音频流。该音频流通常是由彼此交织的压缩音频数据(例如,AC-3格式的)包和各种其他类型的包(例如,视频包、节目关联表(PAT)包、节目和系统信息协议(PSIP)包、节目映射表(PMT)包等)组成的。无论如何,本地联播台或分配者通常无法容易地、实时地对一个或更多个压缩音频流进行解压缩,利用测定数据对那些解压缩的流进行编码,以及对经编码的流进行重新压缩。
附图说明
图1示出了使用本文中描述的示例编码方法、设备和制品的示例媒体监视系统;
图2是示出了在传输流内可以对构成媒体流的帧的包进行交织的示例方式的图;
图3是图1所示的编码器的示例实现的详细框图;
图4是示出了可由图3所示的示例编码器执行的示例编码处理的流程图;
图5是示出了可由图3的包存储器执行以识别用于处理的下一传输流包的示例处理的详细流程图;
图6是示出了可用于实现图5的缓冲器管理器指针请求处理的示例处理的详细流程图;
图7是示出了可用于实现图4的解析/处理包处理的示例处理的详细流程图;
图8是示出了可用于实现图7的解析片断边界的包有效载荷的处理的示例处理的详细流程图;
图9是示出了可由图3的保持队列用来从图7的示例解析/处理包处理接收包对象的示例处理的详细流程图;
图10是示出了可用于实现从图4的保持队列处理去除帧的示例处理的详细流程图;
图11是示出了可用于实现图4的发送包的块的示例处理的详细流程图;
图12是示出了传输流中的节目、构成这些节目的基本流、以及主要/次要频道对之间的关系的示例的框图;以及
图13是可用于实现图3的示例编码器设备的一个或更多个功能块和/或图4到11所示的示例处理的一个或更多个块的示例处理器系统的框图。
具体实施方式
尽管本文中描述的示例系统除了其他部件之外还包括在硬件上执行的软件,但是这些系统仅仅是例示性的而不应被视为限制。例如,可以想到,可以全部以专用硬件、全部以软件、全部以固件、或者以硬件、固件和/或软件的某些组合来实施任何或所有公开的硬件和软件组件。
此外,尽管以下公开是针对示例的电视和收音机系统而作出的,但是应该明白,所公开的系统可以容易地应用于许多其他媒体系统。因此,尽管下面描述了示例系统和处理,但是本领域的普通技术人员会容易明白,所公开的示例不是实现这些系统的仅有方式。
通常,本文中描述的示例设备、方法以及制品可用于插入、嵌入或编码压缩媒体信号(例如,压缩数字传输流)中的数据,所述数据诸如媒体源标识符、时间戳、可选音频、或任何其他信息。在本文中所描述的特定实施例中,压缩数字传输流是包含至少一个AC-3格式音频流的MPEG-2传输流(例如,符合ATSC标准、DVB-T标准等)。然而,在本文中描述的设备、方法和制品还可以适用于包括相似或不同类型的音频和/或视频数据的其他压缩数字数据格式。
如下面更加详细地描述的,该示例编码设备、方法以及制品使得能够对包括多个媒体流(例如,与一个或更多个节目相关联的多个视频和/或音频流)的压缩数字传输流进行编码或修改,而不需要对该数字传输流内的数据进行解复用、解码、和/或解压缩。此外,本文中描述的实施例在保持传输流内的原始数据的大小(例如,字节宽度)和位置的同时对该传输流中的数据进行编码。结果,在本文中描述的实施例能够用于例如对MPEG数据流进行编码,而不会改变组成该数据流的多个组成部分的定时。在一个实施例中,通过对选择的音频数据包加水印来执行编码。在另一实施例中,通过将数据插入音频数据帧的扩展辅助数据字段中来执行编码。在又一实施例中,使用水印和辅助数据字段数据插入的组合来执行编码。尽管媒体编码经常涉及插入或嵌入代表媒体源信息、媒体消费信息等的码值,但是本文中描述的设备、方法和制品也可用于执行其他类型的编码或对其他类型的信息进行编码。例如,本文中描述的设备、方法和制品可以用于对诸如选择的音频数据包中的可选音频(例如,语音信息)的其他信息进行编码(例如,插入)。
不管编码的信息的类型为何,本文中描述的示例编码设备、方法和制品对一段多节目数字数据流或传输流进行缓冲,并且选择性地对该段缓冲的传输流进行解析以提取压缩音频数据包的副本,这些压缩音频数据包中的每个可以包含与一个或更多个组成音频数据流相关联的数据。将复制的压缩音频数据包在原始数字传输流内的位置存储以供在后续重新插入或复制处理期间进行参考。本文中描述的实施例将复制的压缩音频数据包拼合到各个帧中,这些帧中的每个帧与所述多个音频数据流之一相关联。当拼合出一完整的帧时(即,利用相关音频数据包或片断(slice)的副本),该帧被编码有测定数据(例如,源标识符、时间戳等)。然后,将该经编码的帧分解成其组成数据片断,然后利用所存储的位置数据将这些组成数据片断中的每个复制到其在该段缓冲的原始传输流中的对应位置上。然后,将缓冲的传输流的所有待编码音频包都已被完全编码的部分(例如,连续的包序列)释放并且进行发送或广播。该缓冲的传输流的释放部分的大小可以从单个传输包到多个传输包变化。因此,本文中描述的示例编码设备、方法以及制品可用于逐帧地对多节目数字传输流内的一个或更多个选择的压缩数据流进行编码以及逐包地发送经编码的数字传输流的部分。
现在转到图1,示例媒体测定系统100包括:媒体分配机构102、至少一个被监视媒体消费场所104、以及中心数据收集机构106。通常,媒体分配机构102被配置为对包含视频和/或音频内容的一个或更多个媒体信号进行编码以及将其广播或发送到被监视消费场所104(例如,家庭)。继而,被监视消费场所104被配置为从与被监视消费场所104相关联的一个或更多个调查对象或回应者所消费(即,观看、收听等)的媒体信号中提取经编码的数据或信息。然后,可将提取出的经编码的数据传送到中心数据收集机构106并且对其进行分析以确定观看行为,更一般地讲,即确定与调查对象、多个消费场所等相关联的媒体消费活动的特征、模式等。
媒体分配机构102可以置于多级媒体分配系统内的任一点或级处。例如,媒体分配机构102可以是隶属于或以其他方式与国家广播公司相关联的在地理上位于本地的广播站。在此情况下,媒体分配机构102从国家广播公司接收一个或更多个媒体信号以经由线缆、无线地或以任何其他方式分配给特定地理服务区域中的客户。此外,媒体分配机构102还可以产生或提供诸如本地新闻、商业广告、社区服务节目等的本地媒体内容或节目,以分别地在不同的本地频道进行广播和/或插入从国家广播公司接收的媒体内容和频道中。
媒体分配机构102包括提供诸如音频和/或视频节目、网页、静止图像或任何其他可消费音频信息、图像信息等的媒体内容的多个媒体源108和110。在一个实施例中,由位于整个媒体分配系统上游的媒体分配实体提供媒体源108。例如,媒体源108可以是国家广播公司或另一相似的前端媒体源。在媒体源108是上游实体的情况下,媒体源108可以使用一个或更多个压缩数字数据流以提供一个或更多个媒体信号112。这些压缩数字数据流一般称作传输流,这是因为这些压缩数字数据流被专门配置为对信息进行打包和/或封装以经由通信链路进行可靠传输。因此,在本文的整个描述中,可以互换地使用术语“传输流”和“数据流”。
由媒体源108提供的传输流112可以具有任何期望的格式或协议。然而,在本文中描述的实施例中,媒体源108被配置为提供符合MPEG的传输流。MPEG是一种众所周知的压缩数字数据传输标准,该标准使得能够在单个数据流内传输多个音频和/或视频节目。结果,由媒体源108提供的传输流112可以称作多节目传输流,该多节目传输流例如包括多个广播频道(该多个广播频道中的每个可以与在特定时间广播的特定媒体节目相关联),并且传送音频和/或视频信息。在一些实施例中,媒体源108提供符合ATSC的MPEG-2传输流,在其他实施例中,媒体源108提供符合DVB-TMPEG-2的传输流。
由媒体源108提供的传输流112由数字数据包的序列组成,其中的一些数字数据包包含与一个或更多个节目、频道等相关联的视频信息。传输流内的其他数据包包含音频信息或节目,该音频信息或节目可以与视频节目或信息分离或者另选地是视频节目或信息的一部分。换言之,传输流内的音频数据包可以与电视节目的音频部分相关联,或者另选地可以是没有视频组成部分的收音机节目。另外,传输流112内的其他数据包包含配置信息、与传输流112内的各种数据包之间的关系有关的信息等。具体地讲,在媒体源108提供符合MPEG-2的传输流的情况下,传输流112包含PSIP表、节目关联表(PAT)、以及节目映射表(PMT),所有这些表可用于将特定数据包与特定的主要和/或次要频道相关联,将包含音频信息(例如,AC-3包)的特定数据包与对应的视频包或节目等相关联。
与媒体源108相比,媒体源110位于分配机构102本地。例如,媒体源110可以是数字多功能盘播放器、包含存储的音频和/或视频信息的硬盘驱动器、录像带回放装置等。在一些实施例中,媒体源110提供模拟媒体信号114,该模拟媒体信号114被传送到MPEG编码器116以转换成与由媒体源108提供的传输流112在格式上相似或相同的数字数据流或传输流118。传输流112和118被提供给复用器120,该复用器120对流112和118进行复用以形成单个多节目传输流122。
压缩域编码器124接收该多节目传输流122并且对该多节目传输流122进行编码以包括源标识符、时间戳、和/或与经由传输流122提供的音频和/或视频内容的源、类型或性质有关的任何其他信息。如以上一般性地指出以及下面更详细地描述的,压缩域编码器124对多节目数字传输流122中的信息进行实时编码(例如,插入、嵌入等),而不需要对包含其中的数字信息进行解压缩或解码。更具体地讲,在本文中描述的实施例中,压缩域编码器124对多节目传输流122进行解析以识别与一个或更多个压缩音频数据流(其中的每个可以与不同的频道或节目相关联)相关联的数据包。在传输流122是符合MPEG-2的数据流的一个实施例中,由编码器124识别的音频包是AC-3格式的音频数据包,每个AC-3格式的音频数据包具有4字节的报头和184字节的有效载荷。然而,本文中描述的设备、方法和制品可以更一般地适用于与其他音频数据包格式、协议等一起使用。
一旦被编码器124识别,音频数据包或其部分就被复制并存储在多个帧缓冲器之一中,所述多个缓冲器中的每一个唯一地对应于一特定音频数据流(例如,特定频道或节目)。这样,编码器124使用帧缓冲器来重新拼合与多节目传输流122内的一个或更多个节目或频道相关联的一个或更多个音频数据帧的副本。每个识别的音频数据包可以包含一个或更多个数据片断。例如,一些识别的音频数据包可以包含与来自一特定音频流的两个音频帧相关联的音频信息。复制并存储在帧缓冲器中的信息的部分在整个说明书中被称作片断,其中,特定音频流的任何给定帧由多个片断组成,取决于这些片断是包含关于多个音频帧的信息的数据包的一部分还是包含仅关于单个音频帧的信息的数据包的一部分,该多个片断可以具有不同的数据宽度(例如,不同数量的数据字节)。
当压缩域编码器124已经拼合了任一其帧缓冲器内的一完整帧的副本时,对该帧副本进行编码(例如,插入、嵌入信息等)以包括源识别信息(例如,识别广播公司、分配级别等的信息)、时间戳、和/或任何其他期望信息。当压缩域编码器124将帧的片断复制并保存在各个帧缓冲器中时,将每个片断在多节目传输流122内的原始位置与该片断相关联地保存。然后,编码器124能够将经编码的帧的各个片断插入其在多节目传输流122的先前缓冲的部分或段内的对应原始位置。因此,编码器124逐帧地对压缩数字音频帧进行编码,并且以保持传输流122内的包的大小和利用传输流122包含的数据的定时的方式将经编码的信息插入原始多节目传输流122中。
编码器124监视编码版本的传输流122,以确定是否应将经编码的传输流的一个或更多个包传送到发送器126。如下面更详细地描述的,编码器124仅依次释放来自经编码的传输流的多个包(或单个包)的邻接块,并且仅释放编码处理不再需要的那些包。因此,由于构成传输流122内的音频帧的音频包通常是交织的,所以由编码器124执行的编码处理可以针对暂时位于尚未完成编码活动的包之后的包,完成其编码活动。
转到图2,由编码器124(图1)处理的一段示例多节目传输流122(图1)包括28个传输包或数据包。在传输流122是MPEG-2数据流的情况下,可以在作为AC-3包的传输流中携带一个或更多个音频流。如在图2的示例中所描述的,第一音频流的第一帧128由与包1、5、9、11和15相对应的片断组成。相似地,第二音频流的第一帧130由与传输包6、12、16、18和22相对应的片断组成。因此,帧128和130中的每个都由五个片断组成,其中帧128和130中的每个的第一和第五片断仅由其对应包的一部分组成。例如,第一音频流的第一帧128的第一和第五片断分别对应于传输包1和11的一部分。如所示出的,第一和第二音频流的第二帧132和134由至少对应于包15、19、22和23的片断组成。帧132和134的其余片断可以对应于在第二十八个包之后出现的传输包。因此,诸如包15和22的某些包(例如,仅有一部分用于组成各个片断的那些包)被给定音频流的不同帧共用。帧128、130、132和134中的每个可以与一帧缓冲器相关联。例如,第一音频流的第一帧128和第二帧132的片断可以存储在第一帧缓冲器中,第二音频流的第一帧130和第二帧134的片断可以存储在第二帧缓冲器中。此外,图2中的不与帧128、130、132和134之一相关联的那些包可以与音频流的不用被编码的音频包、视频包、PMT包、PSIP包、PAT包等相关联。
在编码处理期间,编码器124(图1)在完成其余音频帧130、132和134的副本之前拼合出第一个流的第一帧128的完整副本。因此,编码器124按需要利用识别信息对帧128进行编码,并且将经编码的帧的片断替换、复制或覆写到传输流中的在复制处理期间获得这些片断的原始数据包位置。例如,将经编码的帧128的第一片断返回或复制到包1的位置,将第二片断复制到包5的位置,将第三片断复制到包9的位置,将第四片断复制到包11的位置,并且将第五片断复制到包15的位置。
在处理了传输流的包1至15之后并且在对第一个流的第一帧128进行了编码之后,编码器124可以确定可将该传输流的哪个部分(如果存在的话)释放或传送到发送器126(图1)。在该实施例中,尽管编码器124已对包1至15中的包进行了复制和编码,但是编码器124还没有对例如包6进行编码,因为直到包22被编码器124进行处理,第二个流的第一帧130的副本才完成。因此,编码器124还不能向发送器126传送包6。因此,在该实施例中,编码器124仅将包1至5传送到发送器126,这是因为完成任何其他帧的编码处理都不再需要这些包。从以上实施例可以看出,编码器124被配置为逐帧地(即,一次一帧)对多节目传输流122进行编码,并且逐包地(即,一次一个或更多个包)发送经编码的传输流。下面结合图3至12来提供对包交织影响对帧进行编码的顺序的方式以及释放和/或发送经编码的传输流的包的方式的更加详细的讨论。
再次详细地参照图1,发送器126经由通信链路150将传输流122的经编码的部分或块(例如,一个或更多个包)发送到接收器152(例如,机顶盒)。通信链路150可以是无线链路(例如,卫星链路、射频链路等)、硬连链路(例如,线缆链路)、或者它们的任意组合。接收器152可以提供使消费场所104处的人能够调谐到特定频道或节目的多种调谐功能。此外,接收器152可以提供诸如图形节目指南的多种用户接口特性、用于防止特定频道和/或节目被未授权地观看的安全特性、配置指令和/或菜单等。
接收器152连接到媒体呈现装置154,该媒体呈现装置154可以是视频监视器、包括扬声器的电视机、或者能够以可由人消费的方式呈现音频和/或视频信息的任何其他装置。接收器152还连接到测定装置156,该测定装置156被配置为对由编码器124编码在多节目传输流122中的信息进行解码或提取。因此,由测定装置156提取出的信息可以包括由编码器124插入的源标识符(SID)、时间戳、或者由编码器124嵌入或以其他方式插入传输流122中的任何其他信息。此外,测定装置156还可以关联本地产生的信息,诸如与消费经由媒体呈现装置154呈现的媒体的一个或更多个人相关联的识别信息(例如,姓名、人口统计信息等)。此外,测定装置156还可以包括与SID相关联的本地产生的时间信息(例如,时间戳)或者与在消费场所104处消费的节目、频道等相关联的其他信息。
测定装置156被配置为周期性地或基本连续地将其提取或收集的媒体消费信息经由通信接口158和通信链路160传送到数据收集机构106。通信接口158可以是调制解调器或任何其他合适的装置。通信链路160可以包括硬连和无线链路的任何期望组合和/或例如包括电话网络、线缆网络、互联网等的网络。
数据收集机构106包括处理系统162和连接到该处理系统162的数据库164。处理系统162被配置为对由消费场所104发送至其的信息以及由一个或更多个其他消费场所(未示出)发送的信息一起进行分析。例如,处理系统162可以被配置为执行统计分析以帮助评估特定消费者群体(例如,人口统计群体)、特定地理区域的媒体消费行为、消费趋势、模式等、或者与测定广播媒体相关联的任何其他期望信息。
图3是图1的压缩域编码器124的详细示例功能框图。如上面一般性地指出的,图3的示例编码器124的各种功能块协作或者互操作以对在压缩数字传输流内传输的一个或更多个音频流进行实时编码,而不必对该传输流进行解压缩或解码,并且不改变利用该传输流包含的数据的大小和/或定时。此外,如上面指出的,图3的示例编码器的块逐帧地对一个或更多个音频流进行编码,并且逐包地传送或发送压缩数字传输流的经编码的部分或块。
详细参照图3,流读取器300接收多节目传输流122(图1)并且经由缓冲器管理器304将包含一个或更多个传输包的块写入或存储到输入缓冲器302。获得传输流包并将其写入输入缓冲器302的处理是由流读取器300相对于由示例编码器124的其余块和/或处理所执行的处理异步地执行的。
输入缓冲器302被实现为环形缓冲器,该环形缓冲器可被限定为具有预定大小(例如,数据字节的宽度)并且存在于存储器装置、多个存储器装置、专用硬件装置等之内的特定区域中。因此,如果输入缓冲器302的大小被确定为保持来自传输流122(图1)的N个包,则包1到包N被顺序写入输入缓冲器302,从而包1位于第一缓冲器位置处而包N位于最后一个缓冲器位置处。然后,当流读取器300接收到包N+1、N+2、N+3等并且将其写入缓冲器302时,缓冲器管理器304用包N+1的内容来覆写第一缓冲器位置(其中当前存储有包1),用包N+2的内容来覆写第二缓冲器位置(其中当前存储有包2),等等。选择输入缓冲器302的长度或大小(例如,字节的数量),从而使得在这里描述的编码处理不再需要要被覆写的包数据之后,将包数据良好地覆写。因此,至少部分地根据帧数据在传输流122内进行交织的方式以及与由图3的示例编码器124的功能块执行的各种处理相关联的处理延迟,来确定输入缓冲器302的大小。
为了使流读取器300的操作与编码器124的其他功能块的操作协调或同步(例如,串行化),缓冲器管理器304保持虚拟缓冲器306。通过结合下面描述的编码器124的各种处理或操作将变得更加清楚的是,虚拟缓冲器306提供使多个异步处理访问存储在输入缓冲器302(如上所述被实现为环形缓冲器(即,物理缓冲器))中的部分数据的能力。
与输入缓冲器302不同,虚拟缓冲器306不与存储器的特定块或部分相关联。代替地,使用三个计数器来实现该虚拟缓冲器306。具体地讲,第一计数器对由流读取器300读取并由缓冲器管理器304写入输入缓冲器302的字节的累积总数量进行计数。第二计数器对缓冲器管理器304已经传送到下面详细描述的传输解析功能的字节的累积总数量进行计数。最后,第三计数器对缓冲器管理器304已释放以写入经编码的传输流的字节的累积总数量进行计数。
除了实现经由缓冲器管理器304访问输入缓冲器302的处理的协条或同步以外,可以分析输入缓冲器302和虚拟缓冲器306之间的特定关系以识别错误状况和/或评估由图3中的示例编码器124的功能块执行的各种处理的相对性能特征。例如,第一和第三计数器之间的差表示由于处理、高速缓冲等导致的合计流延迟。因此,当第一和第三计数器之间的差超过输入缓冲器302的大小时,发生缓冲器上溢状况。换言之,合计流延迟超过传输流的能够缓冲在输入缓冲器302中的部分的大小。这种状况可能是严重错误,因为它表示流读取器300正在以超过编码处理对包进行处理的速率的速率将传输包存储在输入缓冲器302中。在另一实施例中,如果第一和第三计数器之间的差等于零(即,这两个计数器值相等),则发生缓冲器下溢状况。这种状况不是错误,因为它表示编码处理至少与流读取器300一样快地运行。在又一实施例中,第二和第三计数器之间的差表示与用于执行于此描述的编码处理的包高速缓冲相关联的流延迟。
尽管虚拟缓冲器306并非是真正无限的,但是出于实用目的,可以使其基本上无限。例如,如果用于虚拟缓冲器306的三个计数器采用64位计数器来实现,则以每秒2,500,000字节的速率将花费大约234,000年来填满虚拟缓冲器306(即,组成虚拟缓冲器306的一个或更多个计数器发生翻转(roll-over))。
通过传输流处理器308、传输解析器310、包存储器312、包保持队列314和帧存储器316的协同操作,对存储在输入缓冲器302中的该段多节目传输流122(图1)进行解析和编码。使用这些块执行的解析和编码操作相对于流读取器300的操作是异步的,因此,依靠缓冲器管理器304的同步或协调能力来控制该解析操作和编码操作与输入缓冲器302以及存储在其中的包数据进行交互的方式。
通常,传输流处理器308一次一包地向包存储器312请求包信息。响应于来自传输流处理器308的对包信息的请求,包存储器312提供包含与输入缓冲器302中的要解析和处理(例如,在该包是与要被编码的音频流相关联的压缩音频包的情况下,潜在地进行编码)的下一传输包有关的信息的封装数据结构(例如,面向对象的数据结构)。在本文中描述的实施例中,包存储器312保持有包对象的数组(即,面向对象的数据结构),其中的每个包对象能够用于暂时保持与当前存在于输入缓冲器302中的单个传输包有关的信息。更具体地讲,当传输流处理器308向包存储器312请求包信息时,包存储器312选择可用包对象(即,来自其包对象数组的可供使用的包对象)以保持关于尚未进行解析、处理、编码等的传输包的信息。然后,包存储器312与缓冲器管理器304进行通信以获得用于识别输入缓冲器302中的下一传输包的位置的指针信息。包存储器312利用该指针信息来构建(populate)所选择的包对象,从而使该包对象代表输入缓冲器302中的下一传输包。使用包含在其中的包对象和指针显著地减小了必须从输入缓冲器302复制或传送到编码器124内的另一存储器位置的数据(例如,传输包内容)的量。如下面更加详细地描述的,由传输解析器310、帧存储器316和包保持队列314执行的传输包解析、编码以及其他处理操作中的许多处理操作能够使用由包存储器312提供的包对象来执行,从而实现了对输入缓冲器302中的传输包的处理,而不必将来自输入缓冲器302的传输包内容物理地复制或传送到编码器124中的其他存储器位置。存储器复制或传送操作的这种减少显著地提高了编码器124能够处理传输流包的速率并且提高了编码器124的实时处理能力。
在包存储器312分配用于保持传输包信息的包对象已被编码器124完全处理之后,可以重用或循环使用这些包对象。因此,由包存储器312保持的包对象数组中的包对象能够被使用多次用以暂时保持关于许多传输包的信息。
由传输流处理器308从包存储器312接收的各个包对象被传送到传输解析器310以进行解析和/或其他处理。传输解析器310使用从传输流处理器308接收的各个包对象中的信息(例如,指针信息)来识别存储在与该包对象相关联的传输包中的信息的类型。更具体地讲,传输处理器310使用包对象中的指针信息来读取传输包报头信息,该传输包报头信息继而被用于识别存储在传送包中的信息的类型。在本文中描述的实施例中,传输解析器310寻找与选择进行编码的一个或更多个特定音频流相关联的压缩音频包(例如,AC-3包)。
除了对报头信息进行解析以外,传输解析器310还对识别进行编码的各个压缩音频包进行解析。具体地讲,传输解析器310对选择的压缩音频包进行解析以识别片断边界(即,传输包内的音频帧之间的边界)。使用该识别出的片断边界,传输解析器310建立与要编码的音频流相关联的音频帧的副本。传输解析器310使用由帧存储器316提供的帧缓冲器对象来建立和保持音频帧的副本。更具体地讲,传输解析器310针对要编码的每个音频流建立一个帧缓冲器,并且使用与要编码的音频帧的片断相关联的包对象来将与这些包对象相对应的传送包的内容(例如,音频有效载荷数据)推送到对应的帧缓冲器上。
传输解析器310还可以处理其他类型的传输包(即,包含要编码的压缩音频以外的信息的传输包),诸如包含PAT信息、PMT信息以及PSIP信息的包。具体地讲,PAT、PMT和PSIP信息可以用于将SID与用于识别要编码的音频流的特定节目、频道、和/或音频PID等相关联。
将由传输解析器310处理的所有包对象(不管这些包对象代表选择进行编码的压缩音频包还是其他类型的包)压入包保持队列314。然而,将关联或代表包含要编码的压缩音频数据的传输包(即,具有已经被压入包保持队列314中的队列之一中的内容的那些包)的包对象标记或以其他方式识别为“待编辑”,这指示这些包要被编码,但是将所有其他包对象标记或以其他方式识别为“通过”,这指示这些包不用编码。因此,包保持队列314保持与存储在输入缓冲器302中的传输包序列的至少一部分相对应的包对象序列。然而,如下面更加详细地描述的,对于除了与要编码的压缩音频帧相关联的那些包对象以外的所有包对象,释放这些包对象以供包存储器312重用。尽管释放了这些包对象以供包存储器312重用,但是包保持队列314通过存储由与所释放的包对象相对应的各个传输包所占用的虚拟缓冲器306的最后一个字节的标识,来保持被这些释放的对象所引用的包。
除了接收所有包对象(即,不管它们被识别为“通过”对象还是“待编辑”对象)以外,包保持队列314还针对要编码的每个压缩音频流保持一个队列。具体地讲,每个队列包括与特定音频流相关联的包对象,并且可以包括与压缩音频数据的两个帧相对应的多个包对象。因此,每个包对象对应于压缩音频帧的单个片断,或者在过渡包的情况下,对应于两个连续音频帧中的每个帧的一个片断。此外,如上所述并且与和所有其他类型的包相关联的包对象相比,与要编码的音频帧相对应的包对象尚未被释放供包存储器312重用。
传输解析器310监视包保持队列314中的队列以识别在帧缓冲器中何时可得到要编码的帧的完整副本。当传输解析器310识别出一完整帧时,传输解析器310对该完整帧进行编码(例如,插入或嵌入水印数据或其他识别信息)。这样,传输解析器310逐帧地对一个或更多个音频流进行编码。传输解析器310与缓冲器管理器304协作地将经编码的帧的每个片断复制到存储在输入缓冲器302中的传输包流中的各自原始位置。换言之,传输解析器310将经编码的片断数据覆写在输入缓冲器302中与原始片断数据相对应的位置处。
在传输解析器310将来自帧缓冲器的经编码的帧数据复制或覆写到输入缓冲器302之后(即,使用经编码的帧数据的片断来覆写存储在输入缓冲器302中的原始传输流中的对应片断),传输解析器310指示包保持队列314从分配用于保持与最初从其复制了该帧的音频流相关联的包对象的队列中去除与该帧相对应的包对象。
在包保持队列314从传输解析器310接收到去除包对象的指令后,包保持队列314确定包保持队列314当前保持的最旧包在其包对象队列中的任一队列中的位置。换言之,包保持队列314检查包保持队列314所保持的包序列(与输入缓冲器302中的包序列的至少一部分或一段相对应的包序列),以确定可以释放和发送所保持的哪一部分包。具体地说,包保持队列314逐包地按顺序对所保持的包进行有效检查,以确定可以释放和发送所保持的包序列的哪一部分(如果存在的话)。例如,包保持队列314可能确定仅可释放所保持的最旧包,或者另选的是,例如可能确定可释放和发送最旧的15个包。在任何情况下,一旦包保持队列314识别出要释放和发送的包,包保持队列314就指示包写入队列318将这些包提供给流写入器320,流写入器320将包信息传送给发送器126(图1)。通常,包写入队列318与缓冲器管理器304进行协作来为流写入器320识别输入缓冲器302中的要传送以供发送的包的物理位置。
结合图3描述的各个块的操作可以利用使用任何期望的编程语言和/或技术的机器或处理器可执行计算机代码或软件指令来实现。本文中描述的实施例采用面向对象编程技术并且例如使用有助于实现结合图3所描述的各个块的封装数据结构(即,对象)。然而,除了本文中具体描述的编程技术以外,还可以使用任何其他编程技术,或者可以使用任何其他编程技术来替代本文中特别描述的编程技术。另外或者另选的是,结合图3描述的各个块可以使用任何期望类型的硬件(例如,ASIC、数字逻辑电路、模拟电路等)或硬件的组合来实现。此外,如下面更加详细地描述的,在图3的示例框图中所描述的许多块产生和/或传送指向输入缓冲器302内的包数据的指针,而非传送实际的数据或传输包内容。例如,针对要由传输解析器310处理或解析的每个传输包,缓冲器管理器304将这种指针传送到包存储器312。然而,仅有要编码的包(例如,仅有与要编码的音频流相对应的AC-3包)需要将实际传输包内容复制到由传输解析器310管理的帧队列,以及接下来将经编码的帧数据复制回存储在输入缓冲器302中的该段传输流中。所有其他传输包内容或数据(诸如视频包数据)可以保留在输入缓冲器302中的适当位置处。因此,由于要编码的压缩音频包通常构成整个传输流的相对较小的一部分,所以可以显著提高能够(例如,实时地)处理传输流的有效速率。
除了要编码的压缩音频包以外,可以按已知方式由状态机来处理与特定的其他包(诸如包含PMT数据、PSIP数据、PAT数据等的包)相关联的数据。如下所述,可使用这种另外的数据来识别哪个音频流要进行编码,以将SID与特定频道等相关联。然而,这种另外的数据通常仅构成包含在传输流内的数据的一小部分(例如,与传输流中的视频数据的量相比),因此,对这种另外的数据的复制不会显著降低使用本文中描述的示例设备、方法和制品而能够对传输流进行编码的速率。
图4示出了可由图3所示的示例编码器124执行的示例编码处理400。图4所示的各个块或操作可以被实现为可以存储在存储器上并且例如被处理器执行的机器可读和可执行指令或代码。另选的是,可以使用专用硬件装置(例如,ASIC)来实现图4所示的一些或所有块。在一个或更多个块代表机器可读和可执行指令或代码的情况下,这些块可以使用诸如图13所示的示例处理器系统1302的处理器系统来实现。另外或另选的是,图4所示的块中的一个或更多个可以使用图3所示的示例编码设备124的一个或更多个块来实现。
通常,图4的示例编码处理400顺序地处理和解析压缩数字传输流(诸如符合MPEG-2的传输流或数据流)的包。如下面更加详细地描述的,将所选择的包(例如,与一个或更多个选择的音频流相关联的压缩音频包)的内容收集到各个帧中。当每个收集的帧完成时,利用识别信息(例如,SID、时间戳等)和/或任何其他信息对其进行编码。可使用任何期望的编码处理对压缩音频数据的收集的帧进行编码。然而,在本文中描述的实施例中,水印编码技术和/或将数据插入辅助数据字段中的技术在与本文中描述的编码设备、方法和制品一起使用时特别有用。不管使用哪种帧编码技术,以保持原始传输流的定时和包大小(即,字节长度)的方式将构成经编码的帧的片断插入(例如,覆写)到其在传输流中的原始位置。将传输流的完成了编码操作的部分(例如,单个包或多个连续包)释放并且发送到例如另一个媒体分配机构和/或一个或更多个消费场所(例如,家庭、商业设施等)。因此,图4中的示例编码处理可以用于逐帧地对一个或更多个压缩音频流进行编码,并且可以逐包地释放和发送经编码的传输流的部分。这种逐帧编码以及逐包释放和发送技术使得能够对包含多个媒体流(例如,多个音频和/或视频数据流)的压缩数字数据流或传输流进行有效的实时处理和编码,特别是在构成要编码的那些媒体流的传输包在传输流内被暂时交织的情况下。
详细参照图4,示例编码处理400识别输入缓冲器302(图3)内要进行处理、解析等的下一个包(块402)。通常,通过按顺序识别输入缓冲器302内要处理的下一个包(例如,通过图3的缓冲器管理器304),将包对象(例如,代表包的面向对象的数据结构)分配给该下一个包(例如,通过包存储器312),以及将与输入缓冲器302中的下一个包的位置相对应的指针信息存储在该包对象中(例如,通过包存储器312),来执行该识别操作(块402)。然后将得到的包括指针信息的包对象传送到包解析/处理操作(例如,经由传输流处理器308传送到传输解析器310)。
在图3的示例编码器124的情况下,按以下方式执行块402的识别处理。传输流处理器308向包存储器312请求用于解析和/或处理的下一个传输包。包存储器312分配用于表示下一个传输包的可用包对象并且向缓冲器管理器304请求指针信息。继而,缓冲器管理器304获得关于要处理、解析等的下一个包的指针信息并且将该指针信息提供给包存储器312。包存储器312将该指针信息存储在分配的包对象中并且将该包对象提供给传输流处理器308。然后,传输流处理器308将该包对象(包括关于下一个传输包的指针信息)提供给传输解析器310。当然,另选的是,可以使用由诸如图13的系统1302的处理器系统执行的机器可读指令来执行与块402的识别处理相关联的一个或更多个活动。下面结合图5来描述块402的识别操作的更详细的示例。
当在块402处识别了输入缓冲器302(图3)中的下一个包之后,对所识别的包进行解析和/或处理(块404)。通常,在块404处执行的操作使用从块402接收的包信息来识别要解析/处理的包的类型并且基于该包类型来解析和/或处理所述包信息。如下面结合图7更加详细地描述的,仅选择所选择的音频流中的压缩音频包(例如,在对符合MPEG的传输流进行解析/处理的情况下为AC-3包)进行编码。将这些要编码的包复制并分解到它们的组成片断中,其中的每个组成片断存储在对应于与这些片断相关联的音频流的帧缓冲器中。如上所述,对于要编码的每个音频流存在一个帧缓冲器,因此,每个帧缓冲器仅保持属于同一压缩音频流的片断。
示例编码处理400然后确定(例如,通过传输解析器310)任一帧缓冲器内的任一当前帧是否准备好进行编码(即,该帧是否完整)(块406)。当组成一帧的所有片断都已存储在其对应帧缓冲器中时,该帧准备好进行编码。如果在块406处当前帧准备好进行编码,则例如使用水印处理(诸如在国际专利申请第PCT/US04/18953号中公开的水印处理,通过应用将其整个公开合并于此)对该帧进行编码(例如,通过传输解析器310)(块408)。另外或另选的是,可以使用扩大辅助数据字段并将信息插入该扩大的辅助数据字段中的数据插入技术来执行该编码(块408)。这种数据插入技术的示例公开于国际专利申请第PCT/US03/28037号中,通过应用将其整个公开合并于此。然而,除了上面特别提到的编码方法以外,还可以使用适于对压缩数字数据进行编码的任何其他的期望编码方法,或者用来代替上面特别提到的编码方法。
在对当前帧进行了编码(块408)之后,示例编码处理400将经编码的帧数据复制到输入缓冲器302(图3)(块410)。更具体地讲,将经编码的帧每个片断复制(例如,覆写)到原始传输流中的在块404处的解析和/或其他处理期间从其复制了该片断的位置(例如,通过传输解析器310和缓冲器管理器304)。如上所述,可以在一个或更多个其他相似或不同类型的传输包(例如,视频、与其他音频流相关联的压缩音频、PMT包、PSIP包、PAT包等)之间对构成任何给定帧的片断进行交织。此外,如上所述,要编码的传输包可以包括来自一音频流的不同帧的片断。例如,音频流的第一帧的最后一片断以及下一或第二帧的第一片断均可与同一原始传输包相关联。在该情况下,该要编码的传输包可以被称作过渡包,并且如下面更加详细地描述的,仅当为过渡包贡献片断的所有帧都已被编码时,才释放该过渡包以进行发送。因此,在以上示例中,必须在释放该过渡包以进行发送之前将第一和第二帧编码。
在与经编码的帧相关联的片断被复制(例如,覆写)到输入缓冲器302(图3)中的原始传输流之后,示例编码处理400(例如,通过传输解析器310和包保持队列314)从保持队列中去除经编码的帧信息(块412)。例如,在示例编码器124(图3)使用该保持队列(314)内的包对象的情况下,将与组成要去除的帧的对象相关联的包对象释放以供包存储器312重用。然而,如果要释放的帧的末尾是一过渡包,则与该过渡包相关联的包对象未被释放。这样,示例编码器124确保了在释放该过渡包之前该过渡包被完全编码(即,确保了构成该过渡包的所有片断被编码)。下面结合图10提供帧去除处理(块412)的示例实现的更详细的描述。
当在块412处从保持队列中去除了所述包对象之后,帧缓冲器(保持有与去除的包对象相关联的内容)被清除,并且下一个帧的第一片断被复制到该帧缓冲器中(块413)。
如果在块406中没有准备好进行编码的当前帧或者在执行块413处的操作之后,示例编码处理400确定是否存在准备好进行发送(例如,准备好进行广播)的一个或更多个包(块414)。例如,在图3的示例编码设备124的情况下,包保持队列314和包写入队列318进行协作来识别输入缓冲器302中最旧的保持字节(其必然是最旧的保持包的一部分)。该最旧的保持字节之前的连续块或序列的传输包是完全编码的包,因此,可以被发送而不会影响对任何剩余字节或包的编码。因此,最旧的保持字节之前的连续块或序列的传输包随后能够被安全地发送(块416)(例如,通过图3的流写入器320)。
如以上一般性地指出的,在任何给定时刻,可能没有包、有一个包或者有多个包准备好进行发送。然而,如果在块414没有包准备好或者如果准备好的包已被发送(块416),则示例编码处理400确定在输入缓冲器302中是否存在更多要处理的包(块418)。如果存在更多要处理的包,则控制返回到块402。另一方面,如果不再有要处理的包,则编码处理400可以停止并且/或者控制可以返回到另一处理。
图5是可由包存储器312(图3)和/或处理器系统1302(图13)执行用以识别输入缓冲器302中的用于进行解析和/或处理的下一个包的示例处理500(图4的块402)的流程图。示例处理500最初等待传输包请求(块502)。例如,如结合图3的示例编码器124所描述的,传输流处理器308向包存储器312请求下一个包,并且当包存储器312接收到该请求时,包存储器312识别下一可用包对象(块504)。
在识别出下一可用包对象(块504)之后,示例处理500向缓冲器管理器304请求一指针(块506)。如下面结合图6更详细地描述的,在图3的示例编码设备124的情况下,缓冲器管理器指针请求处理506包括:缓冲器管理器304从包存储器312接收指针请求并且发放指向输入缓冲器302中的下一包报头的指针。缓冲器管理器指针请求处理506将指向下一包报头的该指针返回,并且包存储处理500将该返回的指针分配给所识别的包对象(块508)。缓冲器管理器304使用虚拟缓冲器306以确保传送到包对象的指针实际上是准备好进行解析的有效传输包。
示例处理500然后确定包括该返回的指针信息的包对象是否对应于最后一个包(块510)。如果在块510中该包对象是最后一个包,则将指示该包对象代表最后一个包的数据存储在该包对象中(即,将该包对象标记为代表最后一个包)(块512)。如果在块510中该包对象不代表最后一个包或者如果在块512中已将该包对象标记为代表最后一个包,则示例处理500将由该包对象表示的包的第一和最后一个数据字节的虚拟缓冲器位置存储在该包对象中(块514)。
当在块514中存储了所述虚拟缓冲器位置之后,示例处理500确定由该包对象表示的包是否跨越输入缓冲器302的末端(块516)。如果该包跨越输入缓冲器302的末端,则将表示跨越状况的数据存储在该包对象中(块518)。如果在块516中该包不跨越输入缓冲器302的末端或者在块518中将表示跨越状况的数据存储在该包对象中之后,将该包对象标记为“使用中”(块520)。当在块520中将该包对象标记为“使用中”之后,处理500将指向该包对象的指针发放给传输解析器310(块522)并且控制返回到图4的块404。
图6是示出了缓冲器管理器请求处理506(图5)的更详细示例的流程图。与本文中描述的其他处理相同,示例处理600可由缓冲器管理器块304(图3)和/或示例处理器系统1302(图13)来实现。不管具体实现为何,示例处理600等待传输包请求(块602),并且当接收到这种请求时,示例处理600发放指向输入缓冲器302(图3)中的下一包报头的指针(块604)。当在块604发放所述指针之后,示例处理600更新与虚拟缓冲器306(图3)相关联的计数器(块606),然后对输入缓冲器302与虚拟缓冲器306之间的关系进行分析(块608)。如上面结合图3所描述的,这些分析的结果可能指示:缓冲器上溢状况(即,输入缓冲器302的上溢)、缓冲器下溢状况、处理延迟或其他特征等。
然后,示例处理600可以确定在块608产生的一个或更多个分析结果是否表示错误状况(例如,缓冲器上溢状况)(块610)。如果在块612识别出这种错误,则可以执行错误处理过程(块612)。这种错误处理过程(块612)可以包括向一个或更多个用户、系统操作员、技师等提供通知(例如,可视报警、可听报警等)并且/或者可以包括诸如增大输入缓冲器302的大小以消除上溢状况的自动校正动作。如果在块610没有检测到错误或者在执行了错误处理过程612之后,控制返回到图5的块508。
图7是示出了图4所示的传输包解析/处理块404的更详细示例的流程图。图7的示例中所示的各个块或操作可由传输解析器310(图3)和/或处理器系统1302(图13)来实现。最始,示例处理404接收指向包对象的指针(例如,通过示例包存储处理500)(块702)。该包对象指针然后被用于定位和解析与该包对象相对应的传输包的报头(块704)。该传输包包含在输入缓冲器302(图3)中,由此报头信息也包含在输入缓冲器302(图3)中。此外,该传输包的报头包含反映该传输包的类型的信息。例如,该报头可以指示:包有效载荷包含视频数据、音频数据、PMT信息、PSIP信息、PAT信息等。
图7的示例处理404读取包报头信息以确定包有效载荷是否包含PAT或PMT信息(块706),并且如果该包有效载荷包含PAT或PMT信息,则该处理从其提取媒体节目信息和压缩音频流信息(例如,AC-3信息)(块708)。在正在处理的传输流是符合MPEG-2的数据流的情况下,包报头中为零的节目标识符值表示该包包含PAT信息。公知的是,PAT信息包括节目编号/PMT节目标识符(PID)对的列表,以及PMT信息提供正在处理的传输流内的各组成媒体流的PID的列表。
通常,示例处理404使用PAT和PMT信息来建立和保持由处理404的其他部分用来识别正在处理的传输流内要编码的压缩音频包的表。更具体地讲,在块710,示例处理404按需要更新PMT和PAT。例如,如果与在块708提取的信息相关联的版本信息指示版本已改变,则处理404更新PMT和PAT信息。在块710处的任何所需更新之后,示例处理404使用PAT和PMT信息将压缩音频流(例如,AC-3流)的PID与特定节目相关联,将节目与次要频道信息相关联,并将次要频道信息与SID相关联,将SID与节目相关联,将SID与AC-3PID相关联,等等(块712)。
当处理404将与该PAT或PMT包相关联的包对象标注或标记为“通过”包并且将标注或标记的包发送到保持队列314(图3)(块714)时,对包含PAT或PMT信息的包的处理结束。可以通过将恰当的标注信息存储在包对象中来实现在块714中对包对象的标记或标注。
如果处理404确定正在解析/处理的包不是PAT或PMT包(块706),则示例处理404确定正在解析/处理的包是否包含PSIP信息(块716)。如果处理404确定正在解析/处理的包包含PSIP信息,则提取频道和节目信息(块718)并且将其用于在块710更新所述表。公知的是,PSIP信息将节目编号或标识符(PID)与各个主要/次要频道组合相关联。此外,PSIP信息可以用于产生各次要频道的各基本流的PID的列表,特别是对应于与各个节目相关联的压缩音频的PID的列表。
如果示例处理404在块716确定正在解析/处理的包不包含PSIP信息,则处理404确定该包是否包含与选择进行编码的压缩音频流相关联的压缩音频(AC-3)信息(块720)。具体地讲,在块710更新的表和在块712进行的关联可以用于在块720识别要进行编码的压缩音频包。如果在块720正在解析/处理的包被识别为尚未被选择进行编码,则在块714将该包的包对象标记为“通过”并且该处理将控制返回到块406(图4)。下面结合图13提供在块720处能够识别要编码的音频包的一种方式的更详细的描述。
另一方面,如果正在解析/处理的包被识别为已被选择进行编码(块720),则示例处理404可以执行一个或更多个错误校验处理(块721)。通常,在块721执行的错误校验可被编码器124(图1)用来确保对已选择进行编码的音频帧进行恰当的大小确定和/或排列。例如,传输解析器310(图3)可以检查与选择的音频包(例如,被识别为要编码的AC-3包)相关联的报头信息,以校验与要编码的帧和/或编码模式相关联的音频位率、帧大小、循环冗余校验(CRC)信息。如果这些校验中的任一个指示音频帧被不恰当地排列、被不恰当地确定大小和/或以任何方式损坏,则错误已发生并且包对象被作为“通过”发送到保持队列(块714)。此外,当在块721中检测到错误的情况下,示例处理404(例如,传输解析器310(图3))清除与从其检测到错误的音频帧相关联的帧缓冲器,并且冲刷(flush)保持队列314(图3)中的对应包对象。当在块721处的错误检测之后,编码器124(图1)搜索下一音频帧的开始并且重新开始编码活动。
如果在块721没有检测到错误,则示例处理404解析片断边界的包有效载荷(块722)。通常,在块722执行的包有效载荷解析处理将片断边界信息存储在表示正在解析/处理的包的包对象内,以将包有效载荷的一个或更多个部分与压缩音频信息的一个或更多个帧进行关联。如结合图8更详细地描述的,一个包有效载荷可以包含仅与压缩音频流的一个帧相关联的压缩音频信息,而另一个包有效载荷可以包含与压缩音频流的两个帧相关联的压缩音频信息。当在块722已对包有效载荷进行了解析之后,示例处理404将与该有效载荷相关联的包对象标记为“待编辑”(即,要编码)(块724),并且将控制返回到图4的块406。如果在示例处理404期间示例编码器124(图1)确定(例如,通过识别PAT、PMT和/或PSIP信息的改变)传输流122(图1)的组成已改变并且/或者流122中已发生显著中断,则示例编码器124冲刷所有保持的包,将所有先前解析的数据写入输出流,将所有状态机复位,清除所有内部数据表,然后重新开始编码活动。
图8是图7中的示例有效载荷解析处理722的更详细的流程图。最初,示例有效载荷解析处理722在包有效载荷中搜索帧的开始(块802)。具体地讲,示例处理722寻找特定数据值或数据序列(例如,在符合AC-3的音频流的情况下,序列0xb77指示帧的开始)。
如果在块804找到帧开始数据值或序列,则示例处理722确定正在解析的包是否是过渡包(即,是否是包含媒体流的多个帧的数据的包)(块806)。如果在块806中示例处理722确定帧开始序列与要编码的压缩音频流的第一帧相关联,则要解析的包不是过渡包,并且示例处理722将第一片断的位置和大小(例如,字节数)保存在与正在解析的包相关联的包对象中(块808)。然后,示例处理722将分配用于保持(与正在解析/处理的包的片断相关联的)音频流的帧数据的帧缓冲器清除。如上所述,各帧缓冲器被唯一地分配用以保持来自对应音频流的数据。
另一方面,如果示例处理722在块806确定正在解析/处理的包是过渡包(即,包含来自压缩音频流的两个帧的片断数据的包),则示例处理722将当前帧的最后一片断以及下一帧的第一片断的位置和大小保存或存储在与当前正在解析/处理的包相关联的包对象中(块812)。然后,示例处理722将当前帧的最后一片断复制到与正在解析的包相关联的流的帧缓冲器(块814)。
如果在块804没有找到帧开始,则示例处理722将当前帧的下一片断的位置保存在代表包含该片断的包的包对象中。在这种情况下,该正在解析/处理的包是一延续包(即,包含仅与当前帧相关联的有效载荷)。因此,示例处理722将该包的有效载荷复制到与正在解析/处理的包(从而即音频流)相关联的帧缓冲器中的下一片断。
图9是保持队列(图3)从传输解析器310(图3)接收包对象的示例处理900的流程图。更具体地讲,如图7所示,示例包解析/处理过程404将包对象作为“通过”包(块714)或者作为“待编辑”包(块724)发送到保持队列。详细参照图9,示例保持队列处理900确定接收到的包对象是否表示通过包(块902)。如果该包对象代表通过包(即,不进行编码的包),则示例处理900确定当前在保持队列的至少一个中是否存在至少一个包对象,这些保持队列中的每个对应于一个要编码的音频流(块904)。如果在块904在保持队列的至少一个中存在至少一个包对象,则示例处理900保存被该包占用的虚拟缓冲器306的最后一个字节的位置(块906),指示保持该包以供以后进行写入或发送(块908),并且将表示该包的包对象释放到包存储器312(图3)以供重用(块914)。另一方面,如果在块904中处理900确定当前在任一保持队列中都不存在包对象,则该处理将该包发送到包写入队列318(块910),并且将表示当前正在处理的包的包对象释放到包存储器312(块914)。如果示例处理900在块902确定要处理的包不是“通过”包(即,该包是“待编辑”包),则示例处理900将该包对象压入对应于与由该包对象表示的包相关联的音频流的保持队列(块916)。
图10是示例保持队列帧去除处理412(图4)的详细流程图。示例帧去除处理412最初识别保持有与要去除的帧相关联的包对象的保持队列(块1002)。当在块1002识别该队列之后,示例帧去除处理412识别最旧包对象的帧编号(块1004),然后从所述队列弹出(即,去除)具有相同帧编号的包对象,留下与过渡包相关联的任何包(即,还包含与后一帧相关联的数据的包)(块1006)。在块1006弹出或去除的包对象然后被释放到包存储器312(图3)以供包存储器312重用(即,循环使用)(块1008)。在块1006中已弹出包的队列上剩余的任何包对象然后被移动到其对应队列的头部(块1010),并且对剩余的过渡包对象(即,表示包含来自两个帧的片断的传输包的包对象)进行修改以使其仅包含当前帧(即,仅指向当前帧)的指针信息(块1012)。
示例处理器412跟踪(例如,存储或保持)从其去除了该帧的队列中的数据的最旧字节的位置(块1014)。然后,示例处理412在所有保持队列中扫描数据的该整个最旧字节,并且向包写入队列318指示:现在写入直到输入缓冲器302中的最旧保持字节是安全的(块1018)。
图11是可由包写入队列318(图3)用来执行发送包处理416(图4)的示例处理1100的流程图。示例处理1100确定是否从保持队列314(图3)和/或图10的块1018接收到写入指令(块1102)。如果示例处理1100在块1102确定已经接收到写入指令,则示例处理1100确定要写入流写入器320(图3)的字节数(块1104)。示例处理1100可以通过从(保持队列314所执行的块1018(图10)指示处理1100写入直到的)最旧保持字节的虚拟缓冲器位置减去已写入字节数(即,累计的写入字节数),从而在块1104确定要写入的字节数。例如,如果示例处理1100确定已写入1880字节(或10个MPEG-2包)并且从图10的保持队列处理接收到的写入指令指示现在写入直到虚拟缓冲器306(图3)的字节2256是安全的,则示例写入队列处理1100在块1104确定输入缓冲器302的接下来的376个字节要被写入流写入器320(即,被发送)。
示例处理1100然后从缓冲器管理器304(图3)获得指向所释放字节块的指针(块1106)。示例处理1100然后使用在块1106获得的指针信息来调用流写入器320以写入来自输入缓冲器302(图3)的下一数据块。
图12是示出了将传输流节目、组成这些传输流节目的基本流、以及主要/次要频道对进行关联的示例方式的框图。如下面更详细地描述的,图12中示出的关系可以用于(例如,在图7的块720)对要编码的AC-3包进行过滤、选择或识别。在图12的实施例中,示出的关系通常是结合MPEG-2传输流所使用的那些关系。
现在,详细参照图12,在ATSC标准的PSIP中定义的PSIP地面虚拟频道表(TVCT)1200将主要/次要频道对与特定节目关联。例如,在TVCT 1200的示例中,节目3对应于主要频道999和次要频道1(即,频道999/1),并且节目4对应于主要频道999和次要频道2(即,频道999/2)更一般地说,TVCT 1200将主要/次要频道对与存在于传输流(例如,图1中的传输流122)中的各个节目(例如,MPEG-2节目)进行关联。此外,TVCT 1200还可以列出组成传输流内的各个节目的基本流,这些基本流中的每个可由一传输PID识别。然而,在盛行的标准(例如,2003年3月18日的ATSC标准A/65B)下,示例TVCT 1200仅可选地包括在MPEG-2传输流中。
在图12的实施例中,节目关联表(PAT)1202向节目3和节目4提供用于识别各自的节目映射表(PMT)1204和1206的对应PID。PMT 1204和1206中的每个识别构成各个节目3和节目4的对应基本流组1208和1210。在图12的实施例中,节目3由具有PID 0x31的视频流、以及具有PID 0x34和0x35的两个音频流组成。相似地,节目4由具有PID 0x41的视频流以及具有PID 0x44和0x45的两个音频流组成。
在提供了节目编号(例如,MPEG-2节目编号)、主要/次要频道对、以及组成这些节目的(例如,使用PID的)基本流之间的一些示例关系之后,现在描述(例如,在图7中的块720)使用这些关系对要编码的AC-3包进行过滤、选择或识别的方式。
在一个实施例中,使用包括主要频道编号、次要频道编号、节目编号以及基本流PID的四部分键(four-part key)来识别要编码的基本流。在配置期间可以向示例编码设备124(图1)提供一个或更多个这种键。每个这种键对应于多个可用编码方法之一。通常,各个可用编码方法可以指定要插入到对应于键的基本流中的数据的性质。此外,在该实施例中,仅有非零键部分被视为进行滤波的标准。最后,在提供了发生冲突的键的情况下,将与第一个提交键相关联的编码方法应用于其对应的基本流。
下面的表1提供了可应用于例如具有图12所示的节目3和节目4的基本流PID、主要/次要频道对、以及MPEG-2PAT和PMT之间的关系的传输流的九个示例键。然而,应该认识到,可以使用另外或另选的键来代替表1所示的这组键。
表1
参照以上的表1,如果将第一键999/0/0/0提供给编码器124(图1),则在块720(图7)示例编码器124(图1)使用编码方法A对与频道999相关联的所有音频流进行编码。具体地讲,如表1所示,在块720选择具有PID 0x34、0x35、0x44和0x45的基本音频流进行编码(图7)。再一次,如上所述,键的零值部分(即,次要频道、节目编号以及音频PID)被忽略,因此,与主要频道999相关联的所有流被编码。另外,如上所述,如果提交了发生冲突的键,则编码器124(图1)应用第一个提供的键。因此,如果将表1中的示例键以列出的顺序提供给编码器124,则将应用第一个键999/0/0/0并且将忽略其余的八个键。如上面结合图7所描述的,每次当示例编码器124(图1)对完整的PAT、PMT或TVCT进行解析时,示例编码器124在块710(图7)更新其内部表以反映例如主要/次要频道编号、节目编号和/或音频流PID的改变。
图13示出了可用于实现例如图3的示例编码器124中所示的一个或更多个功能块和/或执行由图4至11的流程图中的各个块表示的机器可读指令或代码的示例处理器系统1302。该示例的基于处理器的系统1302例如可以是服务器、个人计算机或任何其他类型的计算装置。
例如,可以使用来自家族、家族或家族的一个或更多个微处理器来实现处理器1300。当然,来自其他家族的其他处理器也合适。处理器1300经由总线1308与包括易失性存储器1304和非易失性存储器1306的主存储器进行通信。易失性存储器1304可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器装置来实现。非易失性存储器1306可以由闪速存储器和/或任何其他期望类型的存储器装置来实现。通常由存储器控制器(未示出)以传统方式控制对存储器1304的存取。
系统1302还包括接口电路1310。接口电路1310可以由任何类型的公知接口标准来实现,从而例如使得系统1302能够利用发送器126(图1)和/或经由通信链路150(图1)进行通信。
系统1302还包括用于存储软件和/或数据的一个或更多个大容量存储装置1318。这种大容量存储装置的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器和数字多功能盘(DVD)驱动器。
尽管本文中已经描述了某些方法、设备和制品,但是本专利的覆盖范围不限于此。相反,本专利覆盖在字面上或者在等同原则下清楚落入所附权利要求的范围内的所有方法、设备和制品。
本申请要求于2005年3月14日提交的美国临时专利申请第60/661,527号的优先权,通过引用将其全部公开内容合并于此。
Claims (39)
1.一种对数字媒体信号进行编码的方法,该方法包括以下步骤:
从所述数字媒体信号中提取压缩媒体流的帧的副本;
对所述压缩媒体流的所述帧的所述副本进行编码;以及
用所述压缩媒体流的所述帧的经编码的副本的对应部分来覆写所述数字媒体信号的部分,以形成经编码的媒体信号。
2.如权利要求1所述的方法,其中,提取所述压缩媒体流的帧的副本的步骤包括以下步骤:将来自传输包的帧的片断复制到帧缓冲器。
3.如权利要求2所述的方法,其中,复制所述帧的片断的步骤包括以下步骤:使用多个包对象来引用包含一段所述数字媒体信号的输入缓冲器中的数据。
4.如权利要求1所述的方法,其中,对所述帧的所述副本进行编码的步骤包括以下步骤中的至少一个:嵌入水印信息、或者将信息插入扩展数据字段中。
5.如权利要求1所述的方法,其中,用所述压缩媒体信号的所述帧的经编码的副本的对应部分来覆写所述数字媒体流的部分的步骤包括以下步骤:用对应的经编码的片断来覆写所述压缩媒体流的片断。
6.如权利要求1所述的方法,该方法还包括以下步骤:识别经编码的媒体信号内准备好进行发送的一个或更多个包,其中所述一个或更多个包中的至少一个与具有尚未准备好进行发送的至少另一个包的帧相关联。
7.如权利要求1所述的方法,其中,使用多个面向对象的数据结构来执行所述提取、编码、或覆写操作中的至少一个,所述多个面向对象的数据结构中的每个对应于所述数字媒体信号内的一个传输包。
8.一种对数字媒体信号进行编码的设备,该设备包括:
处理器,该处理器连接到存储器,所述处理器用于执行包括以下步骤的方法:
从所述数字媒体信号中提取压缩媒体流的帧的副本;
对所述压缩媒体流的所述帧的所述副本进行编码;以及
用所述压缩媒体流的所述帧的经编码的副本的对应部分来覆写所述数字媒体信号的部分,以形成经编码的媒体信号。
9.如权利要求8所述的设备,其中,所述处理器执行的方法还包括以下步骤:通过将来自传输包的帧的片断复制到帧缓冲器来提取所述压缩媒体流的帧的副本。
10.如权利要求9所述的设备,其中,所述处理器执行的方法还包括以下步骤:通过使用多个包对象来引用包含一段所述数字媒体信号的输入缓冲器中的数据,来复制所述帧的片断。
11.如权利要求8所述的设备,其中,所述处理器执行的方法还包括以下步骤:通过嵌入水印信息或将信息插入扩展数据字段中这两者的至少一个,对所述帧的所述副本进行编码。
12.如权利要求8所述的设备,其中,所述处理器执行的方法还包括以下步骤:通过用对应的经编码的片断来覆写所述压缩媒体流的片断,从而用所述压缩媒体流的所述帧的经编码的副本的对应部分来覆写所述数字媒体信号的部分。
13.如权利要求8所述的设备,其中,所述处理器执行的方法还包括以下步骤:识别经编码的媒体信号内准备好进行发送的一个或更多个包,其中所述一个或更多个包中的至少一个与具有尚未准备好进行发送的至少另一个包的帧相关联。
14.如权利要求8所述的设备,其中,所述处理器执行的方法还包括以下步骤:使用多个面向对象的数据结构来执行所述提取、编码、或覆写操作中的至少一个,所述多个面向对象的数据结构中的每个对应于所述数字媒体信号内的一个传输包。
15.一种对媒体信号进行编码的方法,该方法包括以下步骤:
对构成所述媒体信号的各个传输包序列进行处理,以识别与压缩媒体流相关联的传输包子集;
排列所述传输包子集的副本以形成所述压缩媒体流的帧的副本;
对所述帧的所述副本进行编码;以及
将所述帧的经编码的副本的片断复制到所述媒体信号内的对应原始位置。
16.如权利要求15所述的方法,其中,所述传输包子集对应于所述压缩媒体流内的压缩音频数据的帧。
17.如权利要求15所述的方法,其中,排列所述传输包子集的副本的步骤包括以下步骤:将代表所述传输包子集的包对象进行缓冲。
18.如权利要求15所述的方法,其中,对所述帧的所述副本进行编码的步骤包括以下步骤中的至少一个:将水印信息嵌入所述传输包子集或者将数据插入所述传输包子集内的辅助数据字段中。
19.一种修改媒体信号中的信息的方法,该方法包括以下步骤:
逐帧地修改与所述媒体信号内的一个或更多个压缩媒体流相关联的帧;以及
逐包地释放包含经修改的帧的修改版本的媒体信号以进行发送。
20.如权利要求19所述的方法,其中,逐帧地修改所述帧的步骤包括以下步骤:从所述媒体信号内的压缩音频传输包中提取数据片断,在帧缓冲器中排列所提取的数据片断,以及响应于在所述帧缓冲器中检测到完整帧,对所述帧缓冲器中的数据片断进行修改。
21.如权利要求19所述的方法,其中,逐包地释放修改版本的所述媒体信号以进行发送的步骤包括以下步骤:识别经编码版本的所述媒体信号中的连续包块,其中随后的修改操作不需要所述连续包块内的任一个包。
22.一种对包含压缩媒体流的媒体信号进行编码的编码器,该编码器包括:
传输解析器,其被配置为逐帧地对与所述媒体信号内的一个或更多个压缩媒体流相关联的帧进行编码;和
包保持队列,其可操作地连接到所述传输解析器并且被设置为逐包地释放所述媒体信号的包含经编码的帧的编码部分以进行发送。
23.如权利要求22所述的编码器,该编码器还包括缓冲器管理器,所述缓冲器管理器可操作地连接到所述传输解析器和输入缓冲器,其中所述输入缓冲器被配置为保持一段所述媒体信号,并且其中所述缓冲器管理器被配置为将与存储在所述输入缓冲器中的信息的位置有关的信息提供给所述传输解析器。
24.如权利要求23所述的编码器,该编码器还包括虚拟缓冲器,所述虚拟缓冲器可操作地连接到所述缓冲器管理器从而实现对存储在所述输入缓冲器中的信息的串行化存取。
25.如权利要求24所述的编码器,其中,所述输入缓冲器是环形缓冲器,并且其中,所述虚拟缓冲器包括多个计数器。
26.如权利要求22所述的编码器,该编码器还包括包存储器,所述包存储器可操作地连接到所述包保持队列,其中所述包存储器被配置为将代表传输包的包对象提供给所述传输解析器。
27.如权利要求22所述的编码器,该编码器还包括包写入队列,所述包写入队列可操作地连接到所述包保持队列并且被配置为使得传输包信息被发送。
28.一种对数字媒体信号加水印的方法,该方法包括以下步骤:
将与包括在所述数字媒体信号的传输流中的音频流相关的压缩音频包的内容复制到要加水印以包括媒体标识信息的压缩音频数据的相应帧中;
确定在将所述压缩音频包的所述内容复制到所述压缩音频数据的相应帧中的过程中,所述传输流的组成是否改变;以及
如果所述传输流的组成改变,则将所述压缩音频数据的所述帧写入到与所述数字媒体信号相对应的输出流中,而不对所述压缩音频数据的所述帧加水印。
29.根据权利要求28所述的方法,其中,确定所述传输流的组成是否改变基于检测与所述传输流相关的节目关联表PAT、节目映射表PMT或节目和系统信息协议PSIP信息中的至少一个是否改变。
30.根据权利要求28所述的方法,该方法还包括以下步骤:
如果所述传输流的组成改变,则使加水印状态机复位。
31.根据权利要求28所述的方法,该方法还包括以下步骤:
识别所述相应帧中的一个完整帧;
确定所述完整帧是否有错误;以及
如果所述完整帧有错误,则丢弃所述完整帧,而不对所述完整帧加水印。
32.根据权利要求31所述的方法,该方法还包括以下步骤:
如果所述完整帧有错误,则将与所述完整帧相关的所述压缩音频包的所述内容写入到与所述数字媒体信号相对应的输出流中,而不对与所述完整帧相关的所述压缩音频包的所述内容加水印。
33.根据权利要求31所述的方法,其中,确定所述完整帧是否有错误的步骤包括以下步骤中的至少一个:
确定所述完整帧是否被不恰当地排列;
确定所述完整帧是否被不恰当地确定大小;或者
确定所述完整帧是否损坏。
34.一种对数字媒体信号加水印的设备,该设备包括:
处理器,该处理器连接到存储器,并被编程为:
将与包括在所述数字媒体信号的传输流中的音频流相关的压缩音频包的内
容复制到要加水印以包括媒体标识信息的压缩音频数据的相应帧中;
确定在将所述压缩音频包的所述内容复制到所述压缩音频数据的相应帧中
的过程中,所述传输流的组成是否改变;以及
如果所述传输流的组成改变,则将所述压缩音频数据的所述帧写入到与所
述数字媒体信号相对应的输出流中,而不对所述压缩音频数据的所述帧加水印。
35.根据权利要求34所述的设备,其中,所述处理器基于检测与所述传输流相关的节目关联表PAT、节目映射表PMT或节目和系统信息协议PSIP信息中的至少一个是否改变,来确定所述传输流的组成是否改变。
36.根据权利要求34所述的设备,其中,所述处理器在所述传输流的组成改变的情况下,使加水印状态机复位。
37.根据权利要求34所述的设备,其中,所述处理器:
识别所述相应帧中的一个完整帧;
确定所述完整帧是否有错误;以及
如果所述完整帧有错误,则丢弃所述完整帧,而不对所述完整帧加水印。
38.根据权利要求37所述的设备,其中,如果所述完整帧有错误,则所述处理器将与所述完整帧相关的所述压缩音频包的所述内容写入到与所述数字媒体信号相对应的输出流中,而不对与所述完整帧相关的所述压缩音频包的所述内容加水印。
39.根据权利要求37所述的设备,其中,所述处理器通过以下中的至少一个来确定所述完整帧是否有错误:
确定所述完整帧是否被不恰当地排列;
确定所述完整帧是否被不恰当地确定大小;或者
确定所述完整帧是否损坏。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66152705P | 2005-03-14 | 2005-03-14 | |
US60/661,527 | 2005-03-14 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800495361A Division CN101189660B (zh) | 2005-03-14 | 2005-04-19 | 用于媒体信号的压缩域编码设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685562A true CN102685562A (zh) | 2012-09-19 |
CN102685562B CN102685562B (zh) | 2016-06-08 |
Family
ID=36992004
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210147529.7A Expired - Fee Related CN102685562B (zh) | 2005-03-14 | 2005-04-19 | 用于媒体信号的压缩域编码设备和方法 |
CN2005800495361A Expired - Fee Related CN101189660B (zh) | 2005-03-14 | 2005-04-19 | 用于媒体信号的压缩域编码设备和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800495361A Expired - Fee Related CN101189660B (zh) | 2005-03-14 | 2005-04-19 | 用于媒体信号的压缩域编码设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8700411B2 (zh) |
EP (2) | EP1866910A4 (zh) |
CN (2) | CN102685562B (zh) |
AU (2) | AU2005329052B2 (zh) |
CA (2) | CA2878766C (zh) |
MX (1) | MX2007011286A (zh) |
WO (1) | WO2006098736A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700411B2 (en) | 2005-03-14 | 2014-04-15 | The Nielsen Company (Us), Llc | Compressed domain encoding apparatus and methods for use with media signals |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908244B2 (en) * | 2005-08-31 | 2011-03-15 | Ascent Media Group, Llc | Localized media content management |
JP4308178B2 (ja) * | 2005-09-02 | 2009-08-05 | リーダー電子株式会社 | 放送tsの一部を修正する装置 |
US7860448B2 (en) * | 2005-10-05 | 2010-12-28 | Excelsior Radio Networks, Llc | Methods and computer programs for localizing broadcast content |
US8989006B2 (en) * | 2005-12-29 | 2015-03-24 | General Instrument Corporation | Method and apparatus for glitchless failover to redundant stream |
US8875199B2 (en) * | 2006-11-13 | 2014-10-28 | Cisco Technology, Inc. | Indicating picture usefulness for playback optimization |
US8416859B2 (en) * | 2006-11-13 | 2013-04-09 | Cisco Technology, Inc. | Signalling and extraction in compressed video of pictures belonging to interdependency tiers |
US20090180546A1 (en) * | 2008-01-09 | 2009-07-16 | Rodriguez Arturo A | Assistance for processing pictures in concatenated video streams |
US20080115175A1 (en) * | 2006-11-13 | 2008-05-15 | Rodriguez Arturo A | System and method for signaling characteristics of pictures' interdependencies |
US8634310B2 (en) * | 2007-06-26 | 2014-01-21 | Qualcomm Incorporated | Methods and apparatus for improved program acquisition for use with MPEG-2 based systems |
US8958486B2 (en) * | 2007-07-31 | 2015-02-17 | Cisco Technology, Inc. | Simultaneous processing of media and redundancy streams for mitigating impairments |
US8804845B2 (en) * | 2007-07-31 | 2014-08-12 | Cisco Technology, Inc. | Non-enhancing media redundancy coding for mitigating transmission impairments |
CN101904170B (zh) * | 2007-10-16 | 2014-01-08 | 思科技术公司 | 用于传达视频流中的串接属性和图片顺序的方法和系统 |
US8718388B2 (en) | 2007-12-11 | 2014-05-06 | Cisco Technology, Inc. | Video processing with tiered interdependencies of pictures |
US8416858B2 (en) * | 2008-02-29 | 2013-04-09 | Cisco Technology, Inc. | Signalling picture encoding schemes and associated picture properties |
US8886022B2 (en) | 2008-06-12 | 2014-11-11 | Cisco Technology, Inc. | Picture interdependencies signals in context of MMCO to assist stream manipulation |
US8971402B2 (en) | 2008-06-17 | 2015-03-03 | Cisco Technology, Inc. | Processing of impaired and incomplete multi-latticed video streams |
US8705631B2 (en) * | 2008-06-17 | 2014-04-22 | Cisco Technology, Inc. | Time-shifted transport of multi-latticed video for resiliency from burst-error effects |
US8699578B2 (en) | 2008-06-17 | 2014-04-15 | Cisco Technology, Inc. | Methods and systems for processing multi-latticed video streams |
WO2009158550A2 (en) * | 2008-06-25 | 2009-12-30 | Cisco Technology, Inc. | Support for blocking trick mode operations |
WO2010056842A1 (en) | 2008-11-12 | 2010-05-20 | Cisco Technology, Inc. | Processing of a video [aar] program having plural processed representations of a [aar] single video signal for reconstruction and output |
US10008212B2 (en) * | 2009-04-17 | 2018-06-26 | The Nielsen Company (Us), Llc | System and method for utilizing audio encoding for measuring media exposure with environmental masking |
US8949883B2 (en) | 2009-05-12 | 2015-02-03 | Cisco Technology, Inc. | Signalling buffer characteristics for splicing operations of video streams |
US8279926B2 (en) | 2009-06-18 | 2012-10-02 | Cisco Technology, Inc. | Dynamic streaming with latticed representations of video |
KR101777347B1 (ko) * | 2009-11-13 | 2017-09-11 | 삼성전자주식회사 | 부분화에 기초한 적응적인 스트리밍 방법 및 장치 |
US20110222837A1 (en) * | 2010-03-11 | 2011-09-15 | Cisco Technology, Inc. | Management of picture referencing in video streams for plural playback modes |
TWI687918B (zh) * | 2010-12-03 | 2020-03-11 | 美商杜比實驗室特許公司 | 音頻解碼裝置、音頻解碼方法及音頻編碼方法 |
JP5713701B2 (ja) * | 2011-01-21 | 2015-05-07 | キヤノン株式会社 | 動画記録装置 |
ITTO20130657A1 (it) | 2013-08-01 | 2015-02-02 | St Microelectronics Srl | Procedimento, apparecchiatura e dispositivo per il riconoscimento di gesti, prodotto informatico relativo |
US20150039389A1 (en) | 2013-08-01 | 2015-02-05 | The Nielsen Company (Us), Llc | Methods and apparatus for metering media feeds in a market |
ITTO20130659A1 (it) * | 2013-08-01 | 2015-02-02 | St Microelectronics Srl | Procedimento, apparecchiatura e dispositivo per il riconoscimento di gesti, prodotto informatico relativo |
CN105594164B (zh) * | 2014-01-17 | 2019-05-10 | 华为技术有限公司 | 一种数据包的传输方法和传输设备 |
EP3103259A4 (en) * | 2014-03-13 | 2017-11-01 | Huawei Technologies Co., Ltd. | Improved method for screen content coding |
US11588872B2 (en) | 2017-06-12 | 2023-02-21 | C-Hear, Inc. | System and method for codec for combining disparate content |
US10187443B2 (en) * | 2017-06-12 | 2019-01-22 | C-Hear, Inc. | System and method for encoding image data and other data types into one data format and decoding of same |
US20200151362A1 (en) * | 2019-08-21 | 2020-05-14 | Intel Corporation | Integrity and data encryption (ide) over computer buses |
US11250867B1 (en) * | 2019-10-08 | 2022-02-15 | Rockwell Collins, Inc. | Incorporating data into a voice signal with zero overhead |
CN110866291B (zh) * | 2019-11-15 | 2023-03-24 | 北京工业大学 | 一种基于双重安全机制的废旧电子产品信息清除方法 |
US20240107117A1 (en) * | 2022-09-28 | 2024-03-28 | The Nielsen Company (Us), Llc | Methods and apparatus to determine media viewing information for hybrid content delivery |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5874997A (en) * | 1994-08-29 | 1999-02-23 | Futuretel, Inc. | Measuring and regulating synchronization of merged video and audio data |
US6577746B1 (en) * | 1999-12-28 | 2003-06-10 | Digimarc Corporation | Watermark-based object linking and embedding |
US6035177A (en) * | 1996-02-26 | 2000-03-07 | Donald W. Moses | Simultaneous transmission of ancillary and audio signals by means of perceptual coding |
US5867530A (en) * | 1996-06-14 | 1999-02-02 | Trw Inc. | Method and apparatus for accomodating signal blockage in satellite mobile radio systems |
US6806909B1 (en) * | 1997-03-03 | 2004-10-19 | Koninklijke Philips Electronics N.V. | Seamless splicing of MPEG-2 multimedia data streams |
US6327418B1 (en) | 1997-10-10 | 2001-12-04 | Tivo Inc. | Method and apparatus implementing random access and time-based functions on a continuous stream of formatted digital data |
US6373960B1 (en) * | 1998-01-06 | 2002-04-16 | Pixel Tools Corporation | Embedding watermarks into compressed video data |
JP2000322825A (ja) * | 1999-05-13 | 2000-11-24 | Hitachi Ltd | ディジタル信号記録装置 |
US6952774B1 (en) | 1999-05-22 | 2005-10-04 | Microsoft Corporation | Audio watermarking with dual watermarks |
US7212726B2 (en) * | 2000-09-15 | 2007-05-01 | International Business Machines Corporation | System and method of processing MPEG streams for file index insertion |
US6847656B1 (en) * | 2000-09-25 | 2005-01-25 | General Instrument Corporation | Statistical remultiplexing with bandwidth allocation among different transcoding channels |
JP3918429B2 (ja) * | 2000-12-15 | 2007-05-23 | 株式会社日立製作所 | デジタル信号記録方法、デジタル信号再生方法、デジタル信号記録再生方法およびデジタル信号記録再生装置 |
US6807528B1 (en) * | 2001-05-08 | 2004-10-19 | Dolby Laboratories Licensing Corporation | Adding data to a compressed data frame |
US20020173968A1 (en) * | 2001-05-17 | 2002-11-21 | Parry Travis J. | Encoded audio files having embedded printable lyrics |
EP1276325A3 (en) * | 2001-07-11 | 2004-07-14 | Matsushita Electric Industrial Co., Ltd. | Mpeg encoding apparatus, mpeg decoding apparatus, and encoding program |
CN1270536C (zh) * | 2002-02-06 | 2006-08-16 | 索尼英国有限公司 | 修改比特流 |
EP1561341A4 (en) * | 2002-10-23 | 2010-12-15 | Nielsen Media Res Inc | DEVICE AND METHOD FOR INSERTING DIGITAL DATA FOR USE WITH COMPRESSED AUDIO / VIDEO DATA |
US7725202B2 (en) * | 2003-07-24 | 2010-05-25 | General Instrument Corporation | Audio splice process for digital Ad insertion |
US7254250B2 (en) | 2003-07-31 | 2007-08-07 | Hewlett-Packard Development Company, L.P. | Watermark embedding and extraction method and apparatus in compressed streams |
US7693222B2 (en) * | 2003-08-13 | 2010-04-06 | Ericsson Television Inc. | Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation |
CA2878766C (en) | 2005-03-14 | 2017-10-03 | The Nielsen Company (Us), Llc | Compressed domain encoding apparatus and methods for use with media signals |
-
2005
- 2005-04-19 CA CA2878766A patent/CA2878766C/en active Active
- 2005-04-19 CN CN201210147529.7A patent/CN102685562B/zh not_active Expired - Fee Related
- 2005-04-19 CN CN2005800495361A patent/CN101189660B/zh not_active Expired - Fee Related
- 2005-04-19 AU AU2005329052A patent/AU2005329052B2/en not_active Ceased
- 2005-04-19 EP EP05736583A patent/EP1866910A4/en not_active Ceased
- 2005-04-19 CA CA2600874A patent/CA2600874C/en active Active
- 2005-04-19 WO PCT/US2005/013507 patent/WO2006098736A1/en active Application Filing
- 2005-04-19 MX MX2007011286A patent/MX2007011286A/es active IP Right Grant
- 2005-04-19 EP EP20156296.4A patent/EP3672237A1/en active Pending
-
2007
- 2007-09-13 US US11/854,982 patent/US8700411B2/en active Active
-
2011
- 2011-11-10 AU AU2011250691A patent/AU2011250691B2/en not_active Ceased
-
2014
- 2014-02-24 US US14/188,250 patent/US9721576B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700411B2 (en) | 2005-03-14 | 2014-04-15 | The Nielsen Company (Us), Llc | Compressed domain encoding apparatus and methods for use with media signals |
US9721576B2 (en) | 2005-03-14 | 2017-08-01 | The Nielsen Company (Us), Llc | Compressed domain encoding apparatus and methods for use with media signals |
Also Published As
Publication number | Publication date |
---|---|
AU2011250691B2 (en) | 2013-07-11 |
EP1866910A1 (en) | 2007-12-19 |
US20140172434A1 (en) | 2014-06-19 |
CA2600874C (en) | 2015-04-07 |
AU2005329052A1 (en) | 2006-09-21 |
EP1866910A4 (en) | 2011-03-09 |
CA2878766A1 (en) | 2006-09-21 |
CA2600874A1 (en) | 2006-09-21 |
US20080037658A1 (en) | 2008-02-14 |
CA2878766C (en) | 2017-10-03 |
EP3672237A1 (en) | 2020-06-24 |
WO2006098736A1 (en) | 2006-09-21 |
AU2005329052B2 (en) | 2011-08-11 |
CN101189660A (zh) | 2008-05-28 |
CN102685562B (zh) | 2016-06-08 |
US8700411B2 (en) | 2014-04-15 |
MX2007011286A (es) | 2007-11-15 |
AU2011250691A1 (en) | 2011-12-01 |
US9721576B2 (en) | 2017-08-01 |
CN101189660B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101189660B (zh) | 用于媒体信号的压缩域编码设备和方法 | |
CN102172016B (zh) | 多编码内容替代 | |
CN104541512B (zh) | 用于处理包括交互式广播服务的广播信号的方法和装置 | |
CN100419748C (zh) | 一种计算方法和采用该方法的装置和系统 | |
US7463586B2 (en) | Data transfer device to transfer repeat data from an upper station to a lower station | |
CN101047833B (zh) | 一种基于数字水印和双向机顶盒的节目监视管理系统 | |
AU2003268528B2 (en) | Digital data insertion apparatus and methods for use with compressed audio/video data | |
CN100515027C (zh) | 开机画面动态更换的设计实现方法及装置 | |
CN104956682A (zh) | 通过智能电视插入替换电视广告的用户控制 | |
CN101273536A (zh) | 数字播放接收机 | |
CN105263031A (zh) | 用于分发嵌入在视频数据中的辅助数据的系统和方法 | |
CN104584569A (zh) | 用于处理数字服务信号的方法及装置 | |
CN101572795B (zh) | 部分加密和pid映射 | |
CN103650482A (zh) | 发送和接收广播服务的方法及其接收装置 | |
US8416983B1 (en) | Method and apparatus for establishing an accurate low bit time stamp in a remotely created watermark | |
CN101902555A (zh) | 关键分组部分加密 | |
US20020087970A1 (en) | Electronic media distribution | |
CN101385340B (zh) | 广播接收机和用于发送/接收广播节目信息的方法 | |
CN102611716B (zh) | 一种传输媒体文件的方法、装置及系统 | |
CN106454441B (zh) | 直播电视精准广告、信息投放的方法、前端、终端及系统 | |
CN102857812B (zh) | 一种支持ts流媒体文件的容错方法及系统 | |
CN102348131A (zh) | Iptv系统及其收视信息统计方法 | |
CN1756349B (zh) | 一种在数字视频广播网络上传输即时电视服务的方法 | |
JP3549449B2 (ja) | デジタル放送の視聴情報管理システム | |
CN101006713A (zh) | 一种存储/删除交互式应用的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1175909 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1175909 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160608 |
|
CF01 | Termination of patent right due to non-payment of annual fee |