专利名称:视频流修改器的制作方法
技术领域:
本发明涉及一种用于对在解码器中解码的压缩数据流进行修改的设备,该压缩数据流由对包括像素区的图像序列进行编码而获得,所述设备包括-评估装置,用于评估对来自压缩数据流的图像进行解码所需的解码复杂度;-修改装置,用于当图像的解码复杂度接近解码器容量时对压缩数据流进行修改。
本发明还涉及一种包括该设备的图像处理系统,用于图像序列的压缩和解压缩。
本发明还涉及一种包括该设备的图像处理装置。
本发明还涉及一种用于对在解码器中解码的压缩数据流进行修改的方法,该压缩数据流由对包括像素区的图像序列进行编码而获得,所述方法包括-评估对来自压缩数据流的图像进行解码所需的解码复杂度;以及-当图像的解码复杂度接近解码器容量时,修改所述流。
本发明还涉及一种计算机程序产品,包括使处理器能够执行对在解码器中解码的压缩数据流进行修改的方法的代码,该压缩数据流由对包括像素区的图像序列进行编码而获得,所述产品包括-用于评估对来自压缩数据流的图像进行解码所需的解码复杂度的代码;以及-用于当图像的解码复杂度接近解码器容量时对所述流进行修改的代码。
背景技术:
视频信息典型地包括图像帧序列,能够被压缩形成数字化数据流以便储存和传输。已广泛应用于压缩和解压缩视频信息的一些压缩标准是用于视频编解码的运动图像专家组(MPEG)标准,特别是MPEG-2。MPEG标准具有储存、传输和显示视频信息的多种应用,例如光储存系统、数字多用途光盘(DVD)技术以及数字电视(DTV)广播。当对MPEG数据流解码时,每一帧的解码复杂度都有可能不同。由于解码器通常不会被装备为处理峰值负荷,因而可能会出现解码复杂度高于解码器可用容量的情况。此时,解码器不能对完整图像进行解码。因此,输出的图像会突然出现质量退化。为了使视频信息压缩数据流的解码复杂度与解码器可用容量相适应以及在输出端获得最佳图像质量,现有技术已给出了几种解决办法。
美国专利US6631163中给出了一种方法以及一种系统,利用解码器端修改后的解码过程对视频数据流进行解码,获得了对复杂度的动态调整。该专利记载了一种对MPEG-2视频解码器系统中可缩放(scalable)模块的阈值进行动态设置的方法。这个现有技术中的一个实施例包括缩放应用,有选择地只对满足特定阈值的双向可预测模块进行解码,而丢弃不满足该阈值的双向可预测模块。该阈值可以被动态地调整,以便与系统中变化的资源级别和上下波动的输入数据相适应。基于第一图像组(GOP)而调整的阈值用于对第二GOP进行解码。
在上述提到的现有技术中,为了解码器系统中的可缩放模块而动态地设置阈值。评估复杂度和修改解码器的解码方法是延迟反应。通常,图像的本质(essential)部分会发生区域信息遗失,对观察者造成烦人的假相。此外,使用基于在先GOP的阈值对当前GOP进行解码会导致输出图像序列中无法预料的区域出现失真。换言之,现有技术的方法显著地减低了视频输出质量。
发明内容
本发明的目的在于调整压缩数据流的解码复杂度,使其与视频解码器的可用容量相适应,以获得改进的视频输出质量。
本发明的目的以如下方式实现把开篇段落中提到的、设备中用于修改压缩数据流的修改装置设置为对压缩数据流中所示的解码方法进行修改。
本发明提出的设备对压缩数据流中所示的解码方法进行修改。所述设备评估压缩数据流的解码复杂度。只有当评估的复杂度接近解码器可用容量时,所述设备才被设计为发生作用。所述设备具有解码器可用容量的先验知识。存在若干种方法使所述设备能够获知该知识。优选地,当解码容量接近复杂度时,所述设备采取先发(pre-emptive)动作。当复杂度评估接近容量的100%时,所述设备能使解码复杂度处于界限内。例如,优选地,在修改过程中,图像中相对复杂部分的修改量会随着复杂度接近或超过解码器容量的100%而增加。这确保了解码负荷平稳、渐进及先发地减小。对于固定的解码器容量,获得最佳图像质量。对于任意固定的解码器容量,在所有情况下、以及对于任意的压缩数据流,都能获得最佳图像质量。
用于修改压缩数据流的判定可以基于当前图像,并且该动作对于相同图像是有效的。结果,输出的图像质量将会优于现有技术中基于在先图像序列而修改当前图像序列的判定所得到的图像质量。
现有技术中,修改解码器级的解码方法通常太晚,可能会影响到图像的重要部分。如果解码器无法分配资源,输出图像的决定性部分将出现空白区域或假相。本发明的优势在于使每一个图像的解码复杂度处于可用复杂度内,同时获得更好的视频输出质量。对于解码器可用容量,可以确保输出端的最佳图像质量。
在用于修改压缩数据流的设备的一个优选实施例中,解码复杂度基于用于图像解码的计算负荷或存储器存取带宽。
编码后的视频数据的解码复杂度可从大量数值中的一个或更多个中评估得到,例如大量算法指令和/或大量存储器读/写操作。这些数值又是直接来源于压缩数据流中大量的可用参数,例如大量需处理的DCT系数,图像中宏块的位置,对锚定帧(anchor frame)的参考和/或来自运动预测的预测矢量长度。解码器可能会超负荷,特别是由于两种数值,计算负荷和存储器存取带宽。在本发明的优选实施例中,直接从压缩数据流中获得复杂度评估。因此,修改流中所示的解码方法的目的在于减小计算负荷或存储器存取。
用于修改压缩数据流的设备的优选实施例的特征在于,修改装置被设置用于根据启发式心理视觉选择标准来选择区域,以及用于修改该区域的解码方法。
优选地,根据本发明的设备被设置用于根据启发式心理视觉选择标准首先选择至少一个区域。还有可能随机地从图像中选择至少一个区域,以简化选择过程。然而由于下列优点,基于特定启发式规则的选择是优选的。
在选择修改解码方法的区域时,能够有利地应用心理视觉标准,使得输出图像质量不会显著退化。优选地,以如下方式确定标准对于观看修改后的解码图像的观察者的视觉系统模型来说,假相所产生的烦恼最小或者不太被其注意。通过应用此标准,可以选择大量区域以便使人类视觉系统注意到这些区域失真的可能性最小化。
例如,合适的选择标准是区域和图像边界的临近性。
和图像中心部分的区域相比,图像边界或其附近区域的失真更难于被人类视觉系统所注意。
例如,另一合适的选择标准是区域的移动速度。
优选地,运动矢量代表区域移动速度。在快速运动时,即运动矢量大时,相应移动区域中的失真可能比具有小运动的区域更不明显。。因此,和较慢运动区域相比,快速运动区域更适于减小解码复杂度,而且更有利地选择快速运动区域以修改解码方法。
例如,另一合适的选择标准是代表复杂纹理的区域。
和具有光滑纹理的区域相比,具有粗糙纹理的区域是容忍相对更多失真的较佳选择。因此,优选地选择具有粗糙纹理的区域以修改解码方法。
优选地,修改装置被设置用于把图像区域的运动补偿预测方法从双向预测修改为单向预测。更优选地,对通过应用特定心理视觉选择标准而选择的区域进行运动补偿预测修改。
通过把运动补偿预测方法从双向预测改变为单向预测,仅需要访问单一的参考图像,而不是在双向预测的情况下访问两个参考图像。因此,可以有利地减少对应用双向预测进行解码的区域的存储器存取。
此外,修改装置被设置用于修改出现在压缩数据流中的量化的转换系数。
修改量化的转换系数的优选方法是,把具有更高频率分量的转换系数归零。把量化步长从精细变为粗糙,能够有选择地影响转换系数的修改。量化步长的修改可以是阶跃式改变,也可以是渐进式改变。
优选地,修改装置被设置用于选择矩形区域。
常规的正方形或矩形符合MPEG标准,例如,根据MPEG-2的块、宏块或片。在根据优选实施例的设备中,能够以特别有效的方式处理MPEG-2标准所规定的宏块。
优选地,修改装置被设置用于选择适合图像中的对象的形状的区域。
优选地,所述设备被装备用于处理非常规形状的区域,使其与目前更多的MPEG标准相符,例如MPEG-4和AVC。在此情况下,多个区域或单个区域与图像中出现的单个对象相对应。可选择地,区域可以和图像中多个对象相对应。这是有用的,因为图像中某些区域比其他区域更易引起观察者注意。例如,和包括背景的区域相比,包括人脸部的区域会得到观察者更多的关注。
本发明的另一个目的是提供一种视频处理系统,用于对具有开篇段落中描述的类型的图像序列进行压缩和解压缩。所述系统提供了相当有效的装置来调整压缩数据流使其与解码器可用复杂度相适应。根据本发明的设备,特别是在上文所述的一个优选实施例中提及的设备,在下文中将被称作“预解析器(preparser)”。
所述视频处理系统包括根据本发明用于对压缩数据流进行修改的预解析器。对于和预解析器的合作,不需要对解码器的结构做任何更改,因此对于任意数量的解码器来讲,这是一个灵活有效的系统。根据本发明的预解析器和解码器是相互分离的。预解析器在有关于解码器可用负荷容量的输入或没有该输入时都能运行。因此,预解析器能够有利地位于多个位置。预解析器可形成数据压缩器或数据解压缩器的部分,或者位于视频分发系统中的任何位置,从而增加了其通用性。预解析器能在独立(stand-alone)模式下运行,或者被集成于完整系统中。预解析器可完全以硬件、软件或硬件和软件的任意组合来实现。
能进行如下一种或更多种的视频相关处理的视频处理装置,,所述装置有利地包括预解析器,用于-视频解码、编码和代码转换;-视频显示;-视频记录;以及-视频内容分析和内容识别。
视频处理装置可包括附加单元,例如接收单元、处理单元和/或显示单元。例如,视频处理装置可以是数字电视、机顶盒、个人视频录像机、数字多用途光盘(DVD)播放器或记录器、蓝光播放器或记录器、卫星调谐器、有线服务提供商的首端设备、视频分析系统、或视频摘要系统。
预解析器被设计成接收与例如MPEG或AVC标准兼容的压缩视频流,并输出与相同标准兼容的压缩视频流。尽管对该流进行了修改,但是该流仍然维持与标准的完全兼容。换言之,预解析器可以被设计成能够从与MPEG标准兼容的编码器接收压缩视频流,而且同样能够向与MPEG标准兼容的解码器输出压缩视频流。因此,预解析器适于同现有的编码器和解码器一起工作。
本发明的另一个目的是提供一种开篇段落所定义的方法,该方法提供相对有效的装置,用于调整压缩数据流使其和解码器的可用复杂度相适应。
本发明的目的以如下方式实现修改压缩数据流的步骤包括对流中所示的解码方法进行修改,例如,对解码时所考虑的锚定帧的数目有关的参考数目进行修改。参考下文所述的实施例,本发明的这些和其他方面将会变得明显并得以说明
参考下文结合附图的详细描述,根据本发明的压缩数据流修改器、图像处理装置、以及方法的这些和其他方面将会得以说明。附图是本发明实施例的多个示例中的一个示例的示意性表示,其中图1示意性地示出了功能框图,该功能框图示出了普通的视频压缩和解压缩系统的组件。
图2示意性地示出了功能框图,该功能框图示出了根据本发明的压缩数据流修改器的实施例的一个示例的组件。
图3示意性地示出了流程图,该流程图示出了根据本发明用于修改压缩数据流的方法步骤。
图4示意性地示出了根据本发明的视频压缩系统的实施例的表示。
图5示意性地示出了根据本发明的视频处理装置的实施例的表示。
具体实施例方式
总体而言,本发明涉及用于把与图像序列相对应的压缩数据流进行动态调整以使其与解码器的可用容量相适应的设备和方法。本发明的实施例能够分析压缩数据流、根据峰值内存和带宽需求来评估解码复杂度、并调整数据流的解码方法,从而减小数据流本身的复杂度,使其落入解码器的可用容量中。在一个实施例中,以能够利用单一的参考图像来预测双向图像的区域的方式对压缩数据流进行修改,从而把存储带宽减小至原始带宽的一半。在另一实施例中,针对所选择的双向图像区域的集合对解码方法进行修改,其中所述选择根据这些区域的心理视觉标准集合而做出。。
图1示意性地示出了功能框图,该功能框图示出了普通的视频压缩和解压缩系统的组件。视频压缩系统110包括视频编码器120。编码器120从外部源接收图像序列1。该图像序列也可由内部产生,例如在DVD播放器中产生。图像压缩系统的输出信号121包括符合多个视频压缩标准之一(例如MPEG-2标准)的压缩数据流。输出信号121可通过有线或无线介质传输,并且在包括解码器140的视频解压缩系统130处被接收。解码器输入是压缩数据流1,解码器输出141包括与原始图像序列1本质上相似的图像序列。
图2示意性地示出了功能框图,该功能框图示出了根据本发明的压缩数据流修改器270的一个实施例的组件。输入数据流包括多个音频和视频数据流。首先,借助于现有技术把输入流多路分解为单一视频基本流(ES)。单一视频ES优选地由图2所示的根据本发明的设备的一个实施例来接收和处理。可以在变长解码器(VLD)200的输入端接收符合任意一种已知视频压缩标准(例如MPEG或AVC)的视频ES。
VLD输出数据流201,可以对数据流201进行分析以评估解码复杂度。评估器210根据数据流201逐帧评估解码复杂度。例如,具有简单形式的评估器能够计算双向预测区域的数量,并能够评估对于特定帧而言解码器所需的存储带宽。具有更复杂形式的评估器能够根据多个参数来评估复杂度,例如被处理的多个DCT系数、总计算负荷及存储带宽。评估后的复杂度值212可用于控制器250。关于可预测性区域的附加数据及其运动信息可用于控制器250。数据流中可用的附加报头数据可用于控制器,例如视频格式、比特率、量化等级、场/帧编码以及用于预测每个区域的参考图像的数量。优选地,控制器可以为图像中的每个区域维持一个数组。优选地,该数组中的元素和该区域各种特征有关,例如位置、运动矢量、参考图像数量等。这些数据可根据另一个心理视觉标准而作为判定规则的输入。
在本发明的多种预定实施例中,控制器250可在简单系统至复杂系统之间变化。在简单实施例的示例中,控制器250被装备用于接收存储带宽的评估,将其与可用解码器带宽做比较,选择多个双向预测区域,以及把所选区域的标识发送给修改装置230。在复杂实施例的示例中,控制器250包括通过知识库系统(knowledge-based system)识别和选择区域的装置。具有心理视觉标准形式的知识可对评估器210提供的每个区域的数据起作用。具有规则形式的知识建立于控制器250中。以如下方式选择区域由于对解码方法的修改所引起的假相和失真对于人类视觉系统来说更加不易察觉。优选地,规则可以基于图像中区域的位置、区域的移动速度和/或区域的纹理内容。也可以通过评估器210来评估纹理,并使其可以用于控制器250。把所选数目的区域的位置信息传输给修改装置230。根据为每个区域而存储的数据量、知识库中规则的数目以及判定机制来设计和建立不同复杂程度的控制器250。此外,控制器250可以决定数据流的修改方法,并将该命令传输给数据流修改器210。例如,数据流的修改方法可以是,把区域的双向预测变为单向预测和/或量化转换系数的修改。控制器250的输出具有命令指令251的形式,该命令指令251包括选择用于修改的区域的位置信息和把每个区域的修改传输给修改装置230的方法。
附加知识库260能获知数据流修改器270已获知的解码器系统的解码容量。可选择地,流修改器能通过外部输入2接收关于解码器可用容量的信息。
修改装置230也能接收压缩数据流211,该数据流被延迟装置220进行足够的延迟,延迟装置220可以是例如用于补偿控制器250中的处理延迟的延迟线或存储器。因此,命令指令251自动和时延后的数据流221同步。修改装置230根据命令指令251对时延后的数据流221的解码方法进行修改。变长编码器(VLE)240的输入端接收修改后的数据流231。VLE的输出241输出是修改后的视频ES,完全符合原始数据流的压缩标准。
在一个实施例中,评估器210评估解码器解码所需的存储带宽。如果带宽接近解码器可用容量,则控制器250将从双向预测区域的集合中选择区域子集。控制器250进一步向流修改装置230发送指令,以修改所选择的区域集合的解码方法,使其从双向预测变为单向预测。存储带宽需求将减小到原始带宽需求的一半。另一个实施例在知识库260中储存有心理视觉标准规则的集合。然后,控制器250通过连接261获得可应用的规则,并根据这些规则的集合而选择对解码方法进行修改的区域的集合。通过改变每个组件-评估器、控制器、流修改装置或流延迟装置-的复杂程度,或通过结合上述改变中的一个或几个,可以实现各种其他的实施例。
图3示意性地示出了流程图,该流程图示出了根据本发明用于修改压缩数据流的方法步骤。在第一步骤300,接收与图像序列相对应的视频基本流1(ES),并执行根据一种公知方法的变长解码。在步骤310,评估帧解码复杂度。在步骤320,把所评估的复杂度与解码器容量做比较。如果该复杂度在解码容量的期望限制内,则不会对流进行修改。在此情况下,步骤330、340和350不必执行,如步骤360和300所示的那样考虑下一个图像帧。
如果复杂度接近或超过容量,步骤330、340和350将以修改解码方法的形式执行预防措施。为避免输出图像的质量发生突然损失,将启动校正措施,例如当复杂度评估达到解码器容量的80%时。当评估的复杂度达到90%并超越100%时,所需的校正量逐渐增加。在步骤330,根据一个或多个心理视觉标准来选择执行解码方法修改的区域。大量区域按此方式进行选择,以便使解码复杂度处于期望范围内。在步骤340,决定所要执行的修改类型,例如规定从双向预测变为单向预测。在步骤350,执行解码方法的修改。该过程一直延续到图像序列的末尾,而图像序列的末尾由步骤360来检测。在步骤370,该过程结束。
在一个实施例中,在步骤310,对解码器解码所需的存储带宽进行评估。然后在步骤330,选择双向图像的区域集合,其预测方法将从双向预测变为单向预测。优选地,在步骤330中,心理视觉标准的集合,例如区域与图像边界的临近性、区域运动速度、区域运动方向和区域纹理内容,可用于判定针对哪些区域而修改解码方法。通过为每一个功能性步骤选择不同的复杂度,大量该实施例是可能的。
图4示意性地示出了根据本发明的视频压缩系统的实施例的表示,包括-压缩系统400,用于压缩图像序列1;-装置410,用于修改压缩数据流;以及-解压缩系统420,用于对修改后的数据流进行解压缩。
视频压缩系统从视频源接收图像序列和相关的音频。数据压缩系统400通过使用公知技术对图像序列进行编码而减小了数据量。压缩系统的输出包括符合一种公知标准的压缩数据流401,例如MPEG或AVC。可以把大量该压缩数据流进行组合,以获得单一数据流。
根据本发明实施例的视频流修改器410接收压缩数据流401。可以借助多路分解器把根据MPEG标准的数据流401进行多路分解,以获得基本视频流(VS)和音频流。基本视频流经受参考图2和3所述的解码方法修改。修改后,修改后的压缩数据流411优选地仍符合原始基本视频流的标准。可以把修改后的数据流411与相应的音频流进行多路复用,以获得与压缩系统的原始输出兼容的数据流。
可以借助解压缩系统420对修改后的数据流411进行解压缩,以获得图像序列421。流修改器410可以位于和压缩或解压缩系统隔离的视频分发系统中,例如在本地服务提供商的首端。
图5示意性地示出了根据本发明的视频处理装置500的实施例的表示。根据本发明的压缩流修改器510接收包括压缩数据流的信号501,并呈送与原始数据流501的标准兼容的数据流511。可以在解码器520中对数据流511进行解码。解码器520的输出包括可以显示在显示设备上的图像序列521。可选择地,数据流可通过有线或无线分发系统再次传输或被记录在记录介质上。根据本发明的压缩数据流修改器是通用的,而且可以位于多个可能的位置之一,为装置提供视频分发服务,例如为家用网络的中心电脑或移动通信网络的分发点的首端提供视频分发服务。
在权利要求中,动词“包括”及其变形的使用不排除多个元件或步骤的存在。在列举了若干装置的设备权利要求中,这些装置中的若干装置能够以一项硬件来实现。本发明可通过包括若干不同元件的硬件和适当编程的计算机来实施。实际操作中,本文公开的算法要素可(全部或部分地)以硬件(例如专用IC的部分)、运行在专用数字信号处理器上的软件或通用处理器等来实现。
计算机程序产品可理解为处理器通用或专用命令的汇集的任意物理实现,在一系列载入步骤(可能包括中间转换步骤,例如转换为中间语言和最终的处理器语言)以便把命令载入处理器之后,执行本发明的任意特征功能。具体地,计算机程序产品能够以例如磁盘、磁带的载体上的数据或以纸件上的程序代码而实现。除了程序代码之外,程序所需的特征数据也能够以计算机程序产品而实现。
所述方法操作所需的某些步骤能够以处理器的功能而出现,而不是在所描述的计算机程序产品中,例如数据输入和输出步骤。
应注意,上述实施例对本发明做出了描述而不是限制。除了如权利要求中组合的本发明的元件组合之外,其他的元件组合也是可能的。任意的元件组合都可在单一的专用元件中实现。
权利要求
1.一种用于对解码器中要解码的压缩数据流进行修改的设备,所述压缩数据流由对包括像素区的图像序列进行编码而获得,所述设备包括-评估装置,用于评估对来自压缩数据流的图像进行解码所需的解码复杂度;-修改装置,用于当图像的解码复杂度接近解码器容量时对压缩数据流进行修改,其特征在于,所述修改装置被设置用于修改所述压缩数据流中所示的解码方法。
2.如权利要求1所述的设备,其中,所述解码复杂度基于图像解码的计算负荷或存储器存取带宽。
3.如权利要求1所述的设备,其中,所述修改装置被设置用于根据启发式心理视觉选择标准而选择区域,并修改所述区域的解码方法。
4.如权利要求3所述的装置,其中,所述选择标准是所述区域与图像边界的临近性。
5.如权利要求3所述的装置,其中,所述选择标准是所述区域的移动速度。
6.如权利要求3所述的装置,其中,所述选择标准是所述区域的纹理的度量。
7.如权利要求1所述的装置,其中,所述修改装置被设置用于把图像域的运动补偿预测方法从双向预测修改为单向预测。
8.如权利要求1所述的装置,其中,所述修改装置被设置用于修改出现在所述压缩数据流中的量化的转换系数。
9.如权利要求3所述的装置,其中,所述修改装置被设置用于选择矩形区域。
10.如权利要求3所述的装置,其中,所述修改装置被设置用于选择具有与图像中的对象相适应的形状的区域。
11.一种视频处理系统,用于对图像序列进行压缩和解压缩,所述系统包括-编码器,用于对图像序列进行解码,并输出压缩数据流;-如权利要求1所述用于修改压缩数据流的设备;以及-解码器,用于对修改的压缩数据流进行解码,以获得图像序列。
12.一种视频处理装置,包括-接收装置,用于接收包括与图像序列相对应的压缩数据流的信号;以及-如权利要求1所述用于修改压缩数据流的设备。
13.一种用于对解码器中要解码的压缩数据流进行修改的方法,所述压缩数据流由对包括像素区的图像序列进行编码而获得,所述方法包括-评估对来自压缩数据流的图像进行解码所需的解码复杂度;以及-当图像的解码复杂度接近解码器容量时对所述流进行修改,其特征在于,-修改所述压缩数据流包括修改所述流中所示的解码方法。
14.一种计算机程序产品,包括使处理器能够执行如权利要求13所述对压缩数据流进行修改的方法的代码,所述计算机程序产品包括-用于评估对来自压缩数据流的图像进行解码所需的解码复杂度的代码;以及-用于当图像的解码复杂度接近解码器容量时对所述流进行修改的代码,其特征在于,-用于修改所述压缩数据流的代码包括用于修改所述流中所示的解码方法的代码。
全文摘要
公开了一种压缩数据流修改器270。该流修改器修改输入数据流,所述输入数据流包括符合任意一种公知视频压缩标准的视频数据流和音频数据流,例如MPEG或AVC。输入数据流首先被多路分解,以获得单一视频基本流。然后,视频基本流被变长解码器解码,并被提供给数据流修改器。每帧的解码复杂度由评估器210评估,并提供给控制器250。控制器根据某些心理视觉标准从每帧中选择大量区域,因此,这些区域的修改方法使解码复杂度处于解码器的可用容量内。因此获得了用于调整解码复杂度使其预可用容量相适应的有效装置。
文档编号H04N7/24GK101088293SQ200580044223
公开日2007年12月12日 申请日期2005年12月19日 优先权日2004年12月22日
发明者格特·范德海登, 汉斯·蒂克拉尔 申请人:皇家飞利浦电子股份有限公司