The present description relates generally to data communication, and more particularly, but not exclusively, to parallel pipelines for multiple-quality level video processing.
Digital video content may be encoded at various bit precision, resolution, and/or pixel rate depending on the requirement of an output device (e.g., a transcoder, a display device, etc.). Encoding at a higher bit precision, resolution, and /or pixel rate may require more resources and can be costlier. For example, ultra-high definition (UHD) content may be encoded at 10-bit precision with a pixel rate of 594 mega-pixels per second (Mpps). Accordingly, the processing of the UHD content by a set-top box (STB) may require significant resources and/or may consume substantial amounts of power. However, one or more outputs of the STB, e.g. transcoder outputs, standard (e.g., non-HDMI) outputs, etc., may not require the full resolution of the bit precision of the UHD 10-bit video at the pixel rate of 594 Mpps.
Certain features of the subject technology are set forth in the appended claims. However, for purpose of explanation, several embodiments of the subject technology are set forth in the following figures.
The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, it will be clear and apparent to those skilled in the art that the subject technology is not limited to the specific details set forth herein and may be practiced using one or more implementations. In one or more instances, well-known structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.
In one or more aspects, methods and implementations for multiple-quality level video processing are provided. A primary path may be provided for processing video content at the source quality defined, for example, by a source resolution, bit precision, and/or pixel rate (e.g., ultra-high definition (UHD) 10-bit video at 594 mega-pixels per second (Mpps)), and one or more secondary paths may be provided for processing the content at a different quality level (e.g., a lower resolution, bit precision, and/or pixel rate, such as HD video (1080p60) 8-bit video at ¼ of the UHD pixel rate (e.g., 594/4=148.5 Mpps). The source content may be passed to a centralized scaler-dither module that dithers the source content, for example, to 8-bit video and/or reduces the pixel rate to a desired level. The video data from one or more secondary paths may be used for processing (e.g., for transcoding) and/or for output via, for example, and HD output ports. In this manner, the secondary paths can run at a lower resolution, bit precision, and/or frequency than the primary path, which may result in cost and/or area savings, as well as power savings.
In one or more implementations of the subject technology, the prime-quality video content may include an ultra-high bit precision, an ultra-high resolution, and/or an ultra-high pixel rate video content. The prime-quality mode may include an ultra-high bit precision, an ultra-high resolution, and/or an ultra-high pixel rate mode. The ultra-high bit precision may include a bit precision equal to or higher than 10-bit precision. The bit precision value (e.g., 10-bit) may correspond to a single channel, which can represent a chroma (e.g., Cb or Cr) or a luma (Y) associate with a pixel. In some aspects, a 4:2:2 video pixel format may be used, in which, for example, two adjacent pixels may have different luma values (e.g., Y1 and Y2), but share chroma values. The ultra-high resolution may include a resolution equal to or higher than 4k×2k pixels resolution (e.g., 3840 pixels×2160 lines). The ultra-high pixel rate may include a pixel rate equal to or higher than 297 Mpps.
In one or more implementations, the dithering modules 125 may include a single dithering module that, as shown in
The deinterlacer 220 is drawn with dash-lines to indicate that it can be employed when the video content provided by the source 110 is interlaced content, and otherwise, may be bypassed. In one or more implementations, the video content provided by the source 110 includes a prime-quality content, and the source 110 may include a digital noise reduction module (not shown in
In one or more implementations, the secondary processing block 250 may include, but is not limited to, a scaler module 252, a RAM access module 234, and a compositor module 236, which may be structurally similar to the corresponding modules of the primary processing block 230. The functionalities of some or all of the modules of the secondary processing block 250, for different secondary paths, may be different. For example, the scaler module 252 in one or more of the secondary paths (e.g., 130-1) may convert the resolution (e.g., 4k×2k or higher) of the prime-quality video content to a lower pixel rate (e.g., 2k×2k or lower), and the scaler module 252 in one or more of the secondary paths (e.g., 130-2) may convert the pixel rate (e.g., 297 Mpps or higher) of the prime-quality video content to a lower resolution (297 Mpps or lower such as 148.5 Mpps). In some aspects, the pixel-rate conversion may be achieved by pixel-dropping or by line-dropping, which may result in a lower quality output than by pixel-dropping.
The conversion block 240 may be disposed before the secondary tap 130, when the secondary paths are to operate in a single-bit precision (e.g., lower than the ultra-high bit precision of the prime-quality video content that can be 10-bit or higher bit precision such as 12, 16, or higher). In some aspects, each of the secondary paths may be operable at a different bit precision (e.g., 12, 10, 8, or lower), and thus may include their own conversion blocks.
In one or more implementations, the conversion block 240, as shown in
The scaler-dithering module 246 may perform scaler and/or dithering functionality to reduce the pixel rate, resolution, and/or bit-precision of the prime-quality video content to generate an output video data that has a lower pixel rate, resolution, and/or bit precision. The programming provided through the host interface 242 may control operation of the scaler-dithering module 246, for example, by providing information regarding the desired quality (e.g., pixel rate, resolution, and/or bit precision) of the output video data or other information. The scaler functionalities of the scaler-dithering module 246 may be performed by a finite-impulse-response (FIR) filter. In some aspects, the processing by the scaler-dithering module 246 may be bypassed through the bypass route 241. A bypass unit within the scaler-dithering module 246 may send a select signal 243 to the multiplexer 245, which can select, as a selected video data 247, one of the processed video content (e.g., the output of the scaler-dithering module 246) or the unprocessed video content (e.g., the prime-quality video content via the bypass route 241) based on the select signal 243. The selected video content 247, which is single-pixel video data, may then be converted to dual-pixel video content by the TX video bus 248 for further processing and/or display.
The memory 350 may include one or more buffers 352 and program modules 360 including a primary path module 362, a conversion module 364, and a secondary path module 366. The primary path module 362, the conversion module 364, and the secondary path module 366, when executed by a processor (e.g., the processor 310) can perform some or all of the functionalities of the deinterlacer 220, primary processing block 230, the conversion block 240, and the secondary processing block 250 of
Implementations within the scope of the present disclosure can be partially or entirely realized using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) encoding one or more instructions. The tangible computer-readable storage medium also can be non-transitory in nature of the subject technology.
The computer-readable storage medium can be any storage medium that can be read, written, or otherwise accessed by a general purpose or special purpose computing device, including any processing electronics and/or processing circuitry capable of executing instructions. For example, without limitation, the computer-readable medium can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. The computer-readable medium also can include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.
Further, the computer-readable storage medium can include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In some implementations, the tangible computer-readable storage medium can be directly coupled to a computing device, while in other implementations, the tangible computer-readable storage medium can be indirectly coupled to a computing device, e.g., via one or more wired connections, one or more wireless connections, or any combination thereof.
Instructions can be directly executable or can be used to develop executable instructions. For example, instructions can be realized as executable or non-executable machine code or as instructions in a high-level language that can be compiled to produce executable or non-executable machine code. Further, instructions also can be realized as or can include data. Computer-executable instructions also can be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those of skill in the art, details including, but not limited to, the number, structure, sequence, and organization of instructions can vary significantly without varying the underlying logic, function, processing, and output.
Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, and methods described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, and methods have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
As used herein, the phrase “at least one of” preceding a series of items, with the term “and” or “or” to separate any of the items, modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase “at least one of” does not require selection of at least one of each item listed; rather, the phrase allows a meaning that includes at least one of any one of the items, and/or at least one of any combination of the items, and/or at least one of each of the items. By way of example, the phrases “at least one of A, B, and C” or “at least one of A, B, or C” each refer to only A, only B, or only C; any combination of A, B, and C; and/or at least one of each of A, B, and C.
A phrase such as “an aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples of the disclosure. A phrase such as an “aspect” may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples of the disclosure. A phrase such an “embodiment” may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples of the disclosure. A phrase such as a “configuration” may refer to one or more configurations and vice versa.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” or as an “example” is not necessarily to be construed as preferred or advantageous over other embodiments. Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the subject disclosure.
This application claims the benefit of priority under 35 U.S.C. § 119 from U.S. Provisional Patent Application 61/900,264 filed Nov. 5, 2013, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61900264 | Nov 2013 | US |