专利汇可以提供ADAPTIVE EDGE ENHANCEMENT USING DIRECTIONAL COMPONENTS FROM NON-LINEAR FILTERING专利检索,专利查询,专利分析的服务。并且A video processing device includes an input to receive pixel values for a set of pixels comprising a pixel window substantially centered around a select pixel that initially has a first pixel value. The video processing device further includes a first filter unit to determine a horizontal transient improvement value based on non-linear filtering of the pixel values in a horizontal direction, a second filter unit to determine a vertical transient improvement value based on non-linear filtering of the pixel values in a vertical direction, a third filter unit to determine a first diagonal transient improvement value based on non-linear filtering of the pixel values in a first diagonal direction, and a fourth filter unit to determine a second diagonal transient improvement value based on non-linear filtering of the pixel values in a second diagonal direction that is perpendicular to the first diagonal direction. The video processing device also includes an output to provide a second pixel value for the select pixel, the second pixel value based on the first pixel value, the vertical transient improvement value, the horizontal transient improvement value, the first diagonal transient improvement value, and the second diagonal transient improvement value.,下面是ADAPTIVE EDGE ENHANCEMENT USING DIRECTIONAL COMPONENTS FROM NON-LINEAR FILTERING专利的具体信息内容。
What is claimed is:
The present disclosure relates generally to video processing and more particularly to edge enhancement in video content.
Video systems often employ edge enhancement to improve image sharpness. Edge enhancement techniques typically employ sharpening spatial filters which are subject to considerable overshoot and undershoot, thereby introducing “ringing” visual artifacts in the resulting image. Conventional approaches to reduce or eliminate undershoot and overshoot are complex and involve substantial computational throughput, and thus are costly and inefficient to implement in video processing systems.
The present disclosure may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
In operation, the video processing device 100 receives input video data via an input 118 and provides resulting edge-enhanced video data via an output 120. The pixel window buffer 102 buffers pixel data for pixels of a plurality of lines of the input video data. The pixel data may be provided or obtained from any of a variety of sources, such as a frame buffer at the output of a video decoder. Each of filter units 106-109 is configured to generate a corresponding direction-specific transient improvement (TI) value for a select pixel in the pixel window buffer 102 based on a non-linear filtering of a pixel window of pixel values substantially surrounding the select pixel, whereby: the vertical filter unit 106 generates a transient improvement value TIV based on a non-linear filtering of the pixel window in a vertical direction; the horizontal filter unit 107 generates a transient improvement value TIH based on a non-linear filtering of the pixel window in a horizontal direction; the positive diagonal filter unit 108 generates a transient improvement value TID+ based on a non-linear filtering of the pixel window in a positive diagonal direction (e.g., +45 degrees); and the negative diagonal filter unit 109 generates a transient improvement value TID− based on a non-linear filtering of the pixel window in a negative diagonal direction that is perpendicular to the positive diagonal direction (e.g., −45 degrees). Each of the transient improvement values TIV, TIH, TID+, and TID− represents a sharpness enhancement of the select pixel in the corresponding one of the vertical, horizontal, positive diagonal, and negative diagonal directions. The summation module 110 then sums the original pixel value (OPV) initially associated with the select pixel with some or all of the direction-specific transient improvement values TIV, TIH, TID+, and TID− to generate an enhanced pixel value (EPV) for the select pixel. This process then may be repeated for the next pixel to be edge-enhanced.
As described in greater detail below, the output stream of enhanced pixel values may have newly-introduced high frequency components due to the non-linear nature of the transient improvement process performed by the filter units 106-109. Accordingly, in one embodiment, the LUM module 112 applies any of a variety of linear unsharp masks to the stream of enhanced pixel values so as to control the gain of the newly-introduced high-frequency components. The resulting pixel value stream is buffered in the output buffer 105 (which may include, for example, a frame buffer). The resulting enhanced pixel values generated by the video processing device 100 then may be provided via the output 120 as edge-enhanced video data to another video processing device (e.g., a display controller, an encoder, etc.).
In the illustrated example, the non-linear filtering processes employed by the directional filter unit 200 are directed to a 3×3 pixel window 210 that is centered around a select pixel 212 to be enhanced. The pixel value of the select pixel 212 is identified as “x22”; the pixel values of the pixel to the left of the select pixel 212 and to the right of the select pixel 212 on the same line are identified as “x21” and “x23”, respectively; the pixel values of the pixels in the line above the select pixel 212 are identified as “x11”, “x12”, and “x13” (left to right); and the pixel values of the pixels in the line below the select pixel 212 are identified as “x31”, “x32”, and “x33” (left to right). These pixel values can include, for example, luminance values or chrominance values.
The use of a 3×3 pixel window is advantageous in that this window size involves relatively few pixel values and thus requires relatively low computational effort to perform the processes described herein with respect to the pixel window 210. Further, the vertical, horizontal, and +/−45 degree diagonal orientations are the only possible edge orientations in a 3×3 pixel window and thus no detection of the orientation of a potential edge within the 3×3 pixel window is required for sharpening purposes. However, while a 3×3 pixel window has these advantages in this particular context, the processes described herein are not limited to this particular window size and instead can be extended to use of any of a variety of pixel window sizes using the guidelines provided herein and without departing from the scope of the present disclosure.
The 2D smoothing filter 202 of the directional filter unit 200 generates a smoothed pixel value X[1] based on a linear smoothing/filtering of the pixel value x22 of the select pixel 212 through an application of a filter matrix that deemphasizes or avoids use of the pixel information in the same orientation or direction of interest. To illustrate, for employment of the directional filter unit 200 as the vertical filter unit 106 or the horizontal filter unit 107, a filter matrix H1 is employed so as to deemphasize the pixel information in the diagonal directions of the pixel window 210:
Conversely, for employment of the directional filter unit 200 as the positive diagonal filter unit 108 or the negative diagonal filter unit 109, a filter matrix H2 is employed so as to deemphasize the pixel information in the horizontal and vertical directions of the pixel window 210:
whereby the kernel components “a”, “b”, “c”, and “d” can comprise any of a variety of suitable values identified through calculation or empirical analysis. The following values for the matrix components have been found to provide acceptable results:
In accordance with the numbering scheme described above for the pixel values of the pixel window 210, the smoothing filter 202 applies the appropriate kernel filter H in accordance with the direction of interest to the pixel values of the pixel window 210 to generate the value X[1] based on calculations represented by the following equation:
The transient improvement module 204 receives the value X[1] from the smoothing filter 202, as well as the pixel values X[0] and X[2] of pixels of the pixel window 210 on opposing, collinear sides of the select pixel 212 in the particular direction of interest. As the vertical filter unit 106 provides vertical sharpness filtering, the transient improvement module 204 of the vertical filter unit 106 would use the pixel values x12 and x32 for X[0] and X[2], respectively. The horizontal filter unit 107 provides horizontal sharpness filtering and thus the transient improvement module 204 of the horizontal filter 107 would use the pixel values x21 and x23 for X[01] and X[2], respectively. The positive diagonal filter unit 108 provides sharpness filtering in the +45 degree direction and thus the transient improvement module 204 for the positive diagonal filter unit 108 would use the values x31 and x13 for X[0] and X[2], respectively. The negative diagonal filter unit 109 provides sharpness in the −45 degree direction and thus the transient improvement module 204 for the negative diagonal filter unit 109 would use the values x11 and x33 for X[0] and X[2], respectively. Table 1 summarizes the particular relationship between the generalized inputs of the directional filter unit 200 and the particular implementations for the horizontal, vertical, positive diagonal, and negative diagonal directions:
Because the vertical and horizontal filter units 106 and 107 use the same filter matrix and thus use the same smoothed pixel value for X[1], the vertical and horizontal filter units 106 and 107 can share the output of a single 2D smoothing filter. For the same reason, the diagonal filter units 108 and 109 can share the output of a single 2D smoothing filter.
Using the smoothed middle pixel value X[1] and the collinear pixel values X[0] and X[2] in the direction of interest, the transient improvement module 204 performs a non-linear filter process, described in greater detail below, to generate a direction-specific enhanced value x22′ that represents a sharpness enhancement to the original pixel value x22 of the select pixel 212 in the direction of interest; that is, x22′=x22+TIx. Thus, to obtain the direction-specific transient improvement value TIx as a separate value, the subtraction module 206 subtracts the original pixel value x22 from the enhanced pixel value x22′; that is TIx=x22′−x22. In certain instances, it may be advantageous to weight the transient improvement value TIx by a programmable weighting value ux, whereby the particular weighting value can be independently programmed for each filtering direction and which can be determined through calculation or through empirical analysis. Accordingly, the weighting module 208 can generate a weighted transient improvement value through the multiplication of the transient improvement value TIx and the weighting value ux. An example value for the weighting value ux of ⅓ for each direction has been found to provide effective results. Reference herein to the transient improvement value provided by a directional filtering unit can include either an unweighted transient improvement value or a weighted transient improvement value unless noted otherwise.
In operation, the first-order derivative module 302 and the second-order derivative module 304 determine approximations of the first-order and second-order derivatives, respectively, of the smoothed middle pixel value X[1] and the two collinear pixel values X[0] and X[2] using, for example, the operators:
whereby the second-order derivative module 304 determines a negative approximation of the second-order derivative for convenience. It will be appreciated that, in this context, the first-order derivative is zero in areas of constant intensity, non-zero in areas of an onset of a change in intensity, and non-zero along changes in intensity, whereas the second-order derivative is zero in areas of areas of constant intensity and areas of constant change in intensity, and non-zero at the onset and end of a change in intensity. As such, the first-order derivative approximation is useful as an indicator of an edge in the local image region represented by the pixel window 210, and the second-order derivative approximation is useful as an indicator of the borders of the edge.
In a conventional edge-enhancement process using a typical linear unsharp mask (LUM), the negative of the second-order derivative approximation value simply would be scaled and added to the original pixel value to generate an enhanced value for the pixel at issue. However, this approach results in visual artifacts of ringing (due to introduced over/undershoot) and noise enhancement. To avoid such issues, the transient improvement module 204 employs the coring filter 306 to filter out noise by setting an output value c(n) to zero if the absolute value of the second-order derivative approximation value is below a certain threshold, and otherwise outputting the negative of the second-order derivative approximation value as the output value c(n).
To reduce ringing and to further guard against noise, the gain control module 308 uses a measurement of the local region to control an amount of high-frequency component added to the transient value TIx generated by the transient improvement module 204 through use of a gain value g(n) used to scale the output value c(n) by the multiplier module 310. As such, the gain control module 308 uses the absolute value of the first-order derivative approximation (denoted k(n) in
The gain control value g(n) is used to control the gain of a high-frequency component c(n) generated through a multiplication of the second-order derivative approximation value c(n) and the gain control value g(n) by the multiplier module 310 to generate a scaled value a(n); that is, a(n)=g(n)*c(n). A digital multiplier 322 can multiply the scaled value a(n) by a programmable constant gain factor α and then add the resulting scaled value α*a(n) to the original smoothed pixel value X[1] to generate an enhanced pixel value Xc(n), whereby Xc(n)=x22+α*a(n) and thus α*a(n) represents a potential value for the transient improvement value Tx in the direction of interest.
In one embodiment, the enhanced pixel value Xc(n) can be output as the direction-specific edge-enhanced value x22′ for the select pixel 212 without further processing. However, the processes used to generate the enhanced pixel value Xc(n) may potentially be subject to some degree of undershoot/overshoot. Accordingly, in an alternate embodiment, the shoot suppression module 314 is used to check for undershoot/overshoot and then dampen the enhanced pixel value Xc(n) in the event that undershoot/overshoot is detected. In operation, the min/max module 318 determines the minimum value (“xmin”) and the maximum value (“xmax”) of X[0], X[1], and X[2], and scales these extrema and the smoothed pixel value X[1] by a factor R, and then sums the results based on calculations represented by the following equations to generate two dampened values DU and DO:
DU=xmin*R+(1−R)*X[1]
DO=xmax*R+(1−R)*X[1]
As such, the factor R is used to control under/overshoot, thereby controlling the amount of ringing in the final output. In one embodiment, the factor calculation module 316 calculates the factor R by scaling the absolute values of the first-order derivative approximation and the second-order derivative approximation by programmable weights a1 and a2, respectively, summing the scaled results with a value a0 (which may be zero), and then squaring the sum in accordance with the processes represented the equation:
If there is a large edge present in the pixel window, R will be relatively large and the output will be limited to xmax or xmin. If there is a small edge, R will be relatively small and output will be limited to input value. As such, the value of R is a measure of strength of the edge.
The dampened values DO and DU and the enhanced pixel value Xc(n) are provided as inputs to the multiplexer 324, the output of which is the direction-specific enhanced pixel value x22′ for the select pixel 212 (
The damping process provided by the shoot suppression module 314 has a non-linear affect and thus can introduce new high frequency components into the output stream of enhanced pixel values. Accordingly, as noted above, the LUM module 112 (
As noted above, the modules of the video processing device 100 of
For example, this can be accomplished through the use of general programming languages (such as C or C++), hardware description languages (HDL) including Verilog, Verilog-A, HDL, VHDL, Altera HDL (AHDL) and so on, or other available programming and/or schematic capture tools (such as circuit capture tools). The program code can be disposed in any known computer usable medium including semiconductor, magnetic disk, optical disk (such as CD-ROM, DVD-ROM) and as a computer data signal embodied in a computer usable (e.g., readable) transmission medium (such as a digital, optical, or analog-based medium). It is understood that the functions accomplished and/or structure provided by the systems and techniques described above can be represented in a core (such as a GPU core) that is embodied in program code and may be transformed to hardware as part of the production of integrated circuits.
In a networked deployment, the processor device may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer processor device in a peer-to-peer (or distributed) network environment. The processing system 400 can also be implemented as or incorporated into, for example, a portable display device. Further, while a single processing system 400 is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
The processing system 400 may include a processor 402, e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both. Moreover, the processing system 400 can include a main memory 404 and a static memory 406 that can communicate with each other via a bus 408. As shown, the processing system 400 may further include a video display unit 410, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, or a cathode ray tube (CRT). Additionally, the processing system 400 may include an input device 412, such as a keyboard, and a cursor control device 414, such as a mouse. The processing system 400 can also include a disk drive unit 416, a signal generation device 418, such as a speaker, and a network interface device 420.
In a particular embodiment, as depicted in
In an alternative embodiment, dedicated hardware implementations such as application specific integrated circuits, programmable logic arrays and other hardware devices can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and processor devices. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
In accordance with various embodiments of the present disclosure, the methods described herein may be implemented, in whole or in part, by software programs executable by a processor device. The present disclosure contemplates a computer readable storage device that includes instructions or receives and provides instructions for execution responsive to a propagated signal, so that a device connected to a network can communicate voice, video or data over the network 426. Further, the instructions 424 may be transmitted or received over the network 426 via the network interface device 420.
In one embodiment, rather than being software instructions that directly implement the functionality described herein, the instructions 424 instead can implement design instructions representative of a hardware implementation of the above-described functionality that are then synthesized to determine the electrical and electronic design for a processing device that implements the above-described invention. To illustrate, these hardware-design instructions can include register transfer level (RTL) instructions, Verilog instructions, and the like.
While the computer readable storage device is shown to be a single storage device, the term “computer readable storage device” includes a single storage device or multiple storage devices, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer readable storage device” shall also include any storage device that is capable of storing a set of instructions for execution by a processor or that cause a processor device to perform any one or more of the methods or operations disclosed herein.
In a particular embodiment, the computer readable storage device can include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer readable storage device can be a random access memory or other volatile re-writeable memory. Additionally, the computer readable storage device can include a magneto-optical or optical medium. Accordingly, the disclosure is considered to include any one or more of a computer readable storage device or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
The term “another”, as used herein, is defined as at least a second or more. The terms “including”, “having”, or any variation thereof, as used herein, are defined as comprising. The term “coupled”, as used herein with reference to electro-optical technology, is defined as connected, although not necessarily directly, and not necessarily mechanically.
Other embodiments, uses, and advantages of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. The specification and drawings should be considered exemplary only, and the scope of the disclosure is accordingly intended to be limited only by the following claims and equivalents thereof.
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种亮脉冲和暗脉冲可切换输出的双波长光纤激光器及方法 | 2020-05-08 | 504 |
声音产生设备 | 2020-05-08 | 38 |
微波光子雷达探测与测频一体化实现方法及装置 | 2020-05-08 | 497 |
一种图像采样方法及装置 | 2020-05-08 | 476 |
一种微电网有源电力滤波器动态性能优化控制方法 | 2020-05-08 | 439 |
一种抗瞬态脉冲干扰装置及方法 | 2020-05-11 | 653 |
预测并且减少振动计量器中的噪声 | 2020-05-11 | 144 |
一种指纹图像增强方法 | 2020-05-08 | 288 |
低通滤波器、锁相环以及雷达系统 | 2020-05-11 | 226 |
一种水下鱼类图像的超分辨率重建方法、系统及装置 | 2020-05-08 | 777 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。