Embodiments include systems and methods of determining block edge location in video. In one embodiment, a system includes a block edge map generator configured to generate a binary block map, the block map having indicators representing the locations of block edges in a first direction, a histogram generator configured to accumulate the indicators to form a block edge histogram, the peaks of the histogram corresponding to block edge locations in the image, a low-pass filter to low-pass filter the block edge histogram and form a filtered histogram, a peak locator configured to identify the peaks of the filtered histogram, and a peak refiner configured to refine locations of peaks located in the filtered block edge histogram based on the identified peaks and peaks in the block edge histogram, the refined peak locations indicative of block edge locations, and further configured to provide block locations.
|
12. A system of locating block edges in an image, comprising:
a block edge map generator configured to generate a two dimensional binary block map sized to correspond with the image, the two dimensional binary block map having indicators representing locations of the block edges in a first direction;
a histogram generator configured to accumulate the indicators to form a block edge histogram, peaks of the block edge histogram corresponding to the locations of the block edges in the image in the first direction;
a filter configured to low-pass filter the block edge histogram and form a filtered block edge histogram;
a peak locator configured to identify peaks of the filtered block edge histogram; and
a peak refiner configured to refine locations of the peaks located in the filtered block edge histogram based on positioning the peaks identified at the locations of the peaks in the block edge histogram, the locations of the peaks identified indicative of the locations of the block edges, and further configured to provide block edge location information of the image in the first direction.
1. A method of locating block edges in an image, comprising:
receiving an image having a number of data blocks;
generating a first block map using the image, the first block map having binary indicators indicating locations of the block edges in the image in a first direction;
forming a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to the locations of the block edges in the first direction;
low-pass filtering the first direction block edge histogram to form a filtered first direction block edge histogram;
identifying locations of peaks in the filtered first direction block edge histogram;
refining the locations of the peaks identified in the filtered block edge histogram based on positioning the locations of the peaks identified at the locations of peaks in the first direction block edge histogram; and
providing block edge location information for the image in the first direction, the block edge location information being based on the locations of the peaks refined.
21. A system for locating block edges in an image, comprising:
means for receiving an image having a number of data blocks;
means for generating a first block map using the image, the first block map having binary indicators indicating locations of the block edges in the image in a first direction;
means for forming a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to the locations of the block edges in the first direction;
means for low-pass filtering the first direction block edge histogram to form a filtered first direction block edge histogram;
means for identifying locations of peaks in the filtered first direction block edge histogram;
means for refining the locations of the peaks identified in the filtered block edge histogram based on positioning the locations of the peaks identified at the locations of peaks in the first direction block edge histogram; and
means for providing block edge location information for the image in the first direction, the block edge location information being based on the locations of the peaks refined.
20. A computer-program product for locating block edges in an image, the product comprising:
a non-transitory computer-readable medium having stored thereon codes executable by at least one processor to:
receive an image having a number of data blocks;
generate a first block map using the image, the first block map having binary indicators indicating locations of the block edges in the image in a first direction;
form a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to the locations of the block edges in the first direction;
low-pass filter the first direction block edge histogram to form a filtered first direction block edge histogram;
identify locations of peaks in the filtered first direction block edge histogram;
refine the locations of the peaks identified in the filtered block edge histogram based on positioning the locations of the peaks identified at the locations of peaks in the first direction block edge histogram; and
provide block edge location information for the image in the first direction, the block edge location information being based on the locations of the peaks refined.
13. A method, comprising:
receiving an video data formed by a plurality of a blocks, the video data having pixels along a first direction and a second direction;
for each of the pixels in the video data,
extracting a set of the pixels along the first direction, the set of the pixels comprising a considered pixel and at least one neighbor pixel on either side of the considered pixel,
forming a set of signs corresponding to the pixels in each set of the pixels, the set of the signs being formed by assigning a first sign to a pixel if a pixel value is less than a mean of the pixels in the set, otherwise assigning the pixel a second sign,
assigning to the considered pixel a block edge indicator representing a block edge exists at the considered pixel if only one sign change occurs in the set of signs, and if the sign change is at the considered pixel based on the set of the signs and values of the pixels in the set of the pixels;
refining an indicator assignment at the pixels in a plurality of the pixel having an indicator for indicating the block edge exists, the refining being based on the block edge indicators of the pixels vertically and horizontally adjacent to the pixels assigned with the indicator for indicating the block edge exists;
forming a binary block map comprising the block edge indicators;
accumulating a plurality of the block edge indicators in the binary block map into a block edge histogram where peaks of the block edge histogram indicate the location of the block edges in an input image in the first direction;
filtering the block-edge histogram to form a filtered block edge histogram;
identifying locations of peaks in the filtered block edge histogram;
refining the locations in the filtered block edge histogram based on the peaks in the block edge histogram;
generating block edge locations in the first direction based on the locations of the peaks refined; and
providing an indicated block edge locations for use in a subsequent deblocking processing.
4. The method of
generating a second block map using the image, the second block map having binary indicators indicating locations of block edges in the image in a second direction;
forming a second direction block edge histogram by accumulating the binary indicators in the second block map in a direction normal to the second direction, the second direction block edge histogram having peaks corresponding to the locations of the block edges in the second direction;
low-pass filtering the second direction block edge histogram to form a filtered second direction block edge histogram;
identifying locations of peaks in the filtered second direction block edge histogram;
refining the locations of the peaks identified based on the location of the peaks in the second direction block edge histogram; and
providing block edge location information for the image in the second direction, the block edge location information of the second direction being based on the locations of the peaks refined.
5. The method of
for a plurality of a pixel in the image, extracting a set of pixels along the first direction, the set of the pixels comprising a considered pixel and at least one neighbor pixel on either side of the considered pixel;
calculating an average value of pixel values for the pixels in the set;
assigning to each of the pixels in the set a first sign if the pixel value is less than a mean of the pixels in the set of pixels, otherwise assigning the pixel a second sign; and
assigning an indicator to the considered pixel, the indicator indicative of whether or not a block edge is present at a considered pixel location, the indicator being indicative of the block edge is present if there is only one sign change in signs of adjacent pixels in the set of the pixels;
a sign change occurs at the considered pixel;
a maximum of an average absolute value of a second derivative of the neighbor pixel values on one side of the considered pixel and the average absolute value of second derivative of pixel values on the other side of the considered pixel is greater than a nonzero small positive threshold value; and forming a binary block map comprising block edge indicators.
7. The method of
8. The method of
11. The method of
14. The method of
16. The method of
17. The method of
the pixels above and below the block edge indicated current pixel are also block edge indicated pixels, and
the pixels on the left side of the block edge indicted current pixel or the pixels on the right side of the block edge indicted current pixel is a block edge indicated pixel.
18. The method of
19. The method of
A3 is the maximum value of values [A0 A1 A2 A3 A4 A5 A6 A7];
A1<A2 or A4>A5;
A0<A1 or A5>A6; and
A3>a predetermined peak threshold.
|
1. Field of the Invention
This application relates to processing digital video, and more particularly to reducing artifacts in video due to data compression.
2. Description of the Related Technology
Processing and handling uncompressed digital video can require enormous resources. Uncompressed video requires vast amounts of space to store. Broadcasting uncompressed digital video requires a large bandwidth, and the digital video requires large amounts of electronic storage space at the recipient. Therefore, in almost all aspects of video processing, transmission, and storage, some type of video compression is used. Some data compression techniques are lossless, such that when the video is decompressed, the result is a bit-for-bit perfect match with the original. While lossless compression of video is possible, it is rarely used. Instead, lossy compression techniques are used because they result in far higher compression ratios while maintaining an acceptable level of quality, which is the point of video compression.
Video information may be organized within a frame or other video object (e.g., a video object plane (VOP)) in blocks. In some video encoding/decoding schemes, a block may include, for example a 2×2, 4×4, or 8×8 group of pixels, for example, “Y” luma pixels. Chroma (i.e., U/V, or Cr/Cb) pixels may be depicted in a similar block organization. Some encoding/decoding schemes further group blocks of pixel video information into macroblocks. If a digital image is overcompressed in a lossy manner, visible artifacts can appear. For example, when using quantization with block-based coding (for example, in JPEG-compressed images) several types of artifacts can appear, including “mosquito noise” around edges, and/or blockiness in “busy” regions (sometimes called quilting or checkerboarding). Video compression schemes (for example, MPEG-2, MPEG-4, H.264) may also yield artifacts such as blocking and noise especially around strong object edges in the subsequently uncompressed digital video. Certain video encoding/decoding schemes may employ deblocking filters to smooth edges between adjacent blocks. Such deblocking filters may improve the appearance of decoded video data and may improve compression performance for encoded video data. However, these deblocking filters assume prior knowledge of block size and/or offset and may also only operate on certain block sizes and offsets. Accordingly, a need exists for improved deblocking processing.
The system, method, and devices of the invention each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention as expressed by the claims which follow, its more prominent features will now be discussed. After considering this discussion, and particularly after reading the section entitled “Detailed Description of Certain Embodiments” one will understand how the features of this invention provide advantages that include allowing a video processor to locate block edge of any scaling ratio of various types of input video. The advantages also include providing deblocking video processing requiring lower memory bandwidth when compared to other processing techniques because only the horizontal and vertical block locations (each a 1-D array of indices) need be stored.
In one embodiment, a method of locating block edges in an image comprises receiving an image having a number of data blocks, generating a first block map using the image, the block map having binary indicators indicating the locations of block edges in the image in a first direction, and forming a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to locations of block edges in the first direction. The method can also include low-pass filtering the first direction block edge histogram to form a filtered first direction block edge histogram, identifying locations of peaks in the filtered first direction block edge histogram, refining the identified peak locations based on the location of peaks in the first direction block edge histogram, and providing block edge location information for the image in the first direction, the block edge locations being based on the refined peak locations. In some embodiments, refining peak locations comprises positioning the location of peaks identified in the filtered block edge histogram at the location of the peaks in the block edge histogram. The method can be performed such that the first direction is vertical or horizontal, e.g., relative to the image. The method can be performed in a first direction to provide block edge locations for the image in the first direction, and then performed in a second direction to provide block edge locations for the image in the second direction. The block edge locations for the first and second direction can be provided to a deblocking filter for deblocking the image.
In some embodiments of a method of locating block edges in an image, generating a block map includes, for a plurality of pixels in the image, extracting a set of pixels along a first direction, the set of pixels comprising a considered pixel and at least one neighbor pixel on either side of the considered pixel, calculating an average value of the pixel values for the pixels in the set of pixels, assigning to each pixel in the set of pixels a first sign if the pixel value is less than the mean of the pixels in the set of pixels, otherwise assigning the pixel a second sign, assigning an indicator to the considered pixel, the indicator indicative of whether or not a block edge is present at the considered pixel location. In some embodiments, the first sign is zero (0) and the second sign is one (1). The image may comprise a frame of video data. The video data can comprise luminance components for the plurality of pixels. In some embodiments the average value is the mean of the pixel values in the set of pixels. In some embodiments, the block map edge indicator is indicative that a block edge is present if there is only one sign change in the signs of adjacent pixels in the set of pixels, the sign change occurs at the considered pixel, and the maximum of the average absolute value of second derivative of neighbor pixel values on one side of the considered pixel and the average absolute value of second derivative of pixel values on the other side of the considered pixel is greater than a nonzero positive threshold value, for example, less than about 10, or less than about 5.
The method of generating a block map can also comprise forming a binary block map comprising the block edge indicators. Generating a block map can further comprise refining the indicator assignment at pixels in the plurality of pixels having an indicator that a block edge exists, the refining being based on the block edge indicators of pixels vertically and horizontally adjacent to the pixels assigned an indicator that a block edge exists. In some embodiments, for example where the first direction is horizontal, and wherein the method further comprises refining the indicator assignment at each pixel in the plurality of pixels having a indicator indicting that a block edge exists, the refining comprising, for a current pixel, maintaining the indicator if it is determined that the adjacent pixel above and below the current pixel also has a block-edge indicator and if it is determined that the adjacent pixel left or right of the current pixel does not have block-edge indicator, and otherwise assigning a indicator to the current pixel indicating that a block edge does not exists at the current pixel.
Another embodiment includes a system of locating block edges in an image, the system comprising a block edge map generator configured to generate a two dimensional binary block map sized to correspond with the image, the block map having indicators representing the locations of block edges in a first direction, a histogram generator configured to accumulate the indicators to form a block edge histogram, the peaks of the block edge histogram corresponding to block edge locations in the image in a first direction, a filter configured to low-pass filter the block edge histogram and form a filtered block edge histogram, a peak locator configured to identify the peaks of the filtered block edge histogram, and a peak refiner configured to refine locations of peaks located in the filtered block edge histogram based on the identified peaks and peaks in the block edge histogram, the refined peak locations indicative of block edge locations, and further configured to provide block locations of the image in the first direction.
Another embodiment includes a method comprising receiving video data formed by a plurality of blocks, the video data having pixels along a first and second direction. For each of a plurality of pixels in the video data, a set of pixels is extracted along the first direction, the set of pixels comprising a considered pixel and at least one neighbor pixel on either side of the considered pixel, forming a set of signs corresponding to the pixels in each set of pixels, the set of signs being formed by assigning a first sign to a pixel if the pixel value is less than the mean of the pixels in the set of pixels, otherwise assigning the pixel a second sign, assigning to each considered pixel a block edge indicator representing a block edge exists at each considered pixel if only one sign change occurs in the set of signs, and if the sign change is at the considered pixel based on the set of signs and the values of the pixels in the set of pixels, refining the indicator assignment at pixels in the plurality of pixels having an indicator that a block edge exists, the refining being based on the block edge indicators of pixels vertically and horizontally adjacent to the pixels assigned an indicator that a block edge exists. The method can further comprise forming a binary block map comprising the block edge indicators, accumulating the block edge indicators in the binary block map into a block edge histogram where the peaks of the block edge histogram indicate the location of block edges in the input image in the first direction, filtering the block-edge histogram to form a filtered block edge histogram, identifying locations of peaks in the filtered block edge histogram, refining peak locations in the filtered block edge histogram based on the peaks in the block edge histogram, generating block edge locations in the first direction based on the refined peak locations, and providing the indicated block edge locations for use in subsequent deblocking processing. Assigning to each considered pixel a block edge indicator representing a block edge exists can be done subject to the condition that the average of the absolute value of second derivative of pixel values for pixels having the first sign and the average of absolute value of second derivative of pixel values for pixels having a second sign is greater than a predetermined threshold value. In some embodiments, refining the indicator assignment comprises maintaining the block edge indicator for a block edge indicated current pixel if the pixels above and below the block edge indicated current pixel are also block edge indicated pixels, and the pixels on the left side of the block edge indicted current pixel or the pixels on the right side of the block edge indicted current pixel is a block edge indicated pixel. In some embodiments, filtering the block-edge histogram comprises forming a filtered histogram by applying a low pass filter to the block edge histogram. In some embodiments, identification of peaks in the filtered histogram are identified where, for a set of seven adjacent values [A0 A1 A2 A3 A4 A5 A6 A7] of the filtered histogram, value A3 corresponds to a peak if A3 is the maximum value of values [A0 A1 A2 A3 A4 A5 A6 A7], A1<A2 or A4>A5, A0≦A1 or A5≧A6, and A3>a predetermined peak threshold.
Another embodiment includes a computer-program product for locating block edges in an image, the product comprising a computer-readable medium having stored thereon codes executable by at least one processor to receive an image having a number of data blocks, generate a first block map using the image, the block map having binary indicators indicating the locations of block edges in the image in a first direction, form a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to locations of block edges in the first direction, low-pass filter the first direction block edge histogram to form a filtered first direction block edge histogram, identify locations of peaks in the filtered first direction block edge histogram, refine the identified peak locations based on the location of peaks in the first direction block edge histogram, and provide block edge location information for the image in the first direction, the block edge location information being based on the refined peak locations.
Another embodiment includes a system for locating block edges in an image, comprising means for receiving an image having a number of data blocks, means for generating a first block map using the image, the block map having binary indicators indicating the locations of block edges in the image in a first direction, means for forming a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to locations of block edges in the first direction, means for low-pass filtering the first direction block edge histogram to form a filtered first direction block edge histogram, means for identifying locations of peaks in the filtered first direction block edge histogram, means for refining the identified peak locations based on the location of peaks in the first direction block edge histogram, and means for providing block edge location information for the image in the first direction, the block edge location information being based on the refined peak locations.
The following detailed description is directed to certain specific system and method embodiments of the invention. However, the invention can also be embodied in a multitude of different ways. In this description, reference is made to the drawings wherein like parts are designated with like numerals throughout. The particular examples described herein, and the words “example” or “exemplary” when used herein, are for purposes of illustrating one or more embodiments and are not meant to limit the scope of the embodiments or the claims.
In various encoding/decoding schemes, digital video can be cropped or resized to suitable resolution before it is viewed on a television or other multimedia system. This can result in shifting the block edge location offset (block offset) and distance between adjacent block edge locations (block size). For example, in some embodiments the resizing scheme could be one of the following: (1) standard definition (720×480) (“SD”) to high definition (1336×768) (“HD”); (2) SD to full high definition (1920×1080) (“FHD”); (3) HD to FHD; (4) overscanned×1.2 H/V (upscaled by scaling ratio of 1.2 in both horizontally and vertically); (5) underscanned×0.8 H/V (downscaled by scaling ratio of 0.8 in both horizontally and vertically); and (6) any scaling ratio. Certain embodiments described herein locate the block edge location (blocking boundary) in a video image so that a subsequently applied deblocking algorithm can reduce blocking artifacts in an image. The described block edge locator can locate the block edges of video with arbitrary scaling ratio and cropping. Such embodiments require no prior knowledge of block size and offset; instead, they will be estimated without such knowledge. In addition, such embodiments can accept various types of video inputs regardless of their block size and offsets such as nonscaled, scaled, overscanned, underscanned, and cropped.
For some non-scaled video, block edges in an image may be located 8 pixels apart in the horizontal (width) and vertical (height) direction, and the offset of block edge locations with respect to the upper left corner of video may be zero (0) in both the horizontal and vertical direction. Accordingly, this can be referred to as block size 8×8 and block offset (0, 0). By resizing the video, the block size, and the block edge locations, also changes accordingly. For example, for the SD to FHD case, where a standard definition 8×8 block size can be re-sized to full high definition block, the resized block size becomes 21.3333×18 (i.e., 1920/720*8=21.3333; 1080/480*8=18). For a standard definition case where a SD 8×8 block size is overscanned, the new block size becomes 9.6×9.6 (i.e., 8*1.2=9.6). If the video is cropped, the block offset may not start at (0, 0). Deblocking method and system embodiments described herein can receive various types of video inputs regardless of their block sizes and offsets such as nonscaled, scaled, overscanned, underscanned, and cropped. Such embodiments are capable of locating block edge of any scaling ratio of various types of input videos. Additionally, such embodiments can require lower memory bandwidth because they obviate the need to store the whole block edge map (mask) for deblocking; instead only the H/V block locations (1-D array of indices) are used.
The block edge locator 110 provides the block edge locations 125 to a deblocking filter 120. The deblocking filter 120 is configured to receive the block edge locations 125 and the input image 105. The deblocking filter 120 performs deblocking of the input image 105 based on the block edge locations 125, and provide a deblocked output image 135. The deblocking filter 120 can manipulate the pixel data of the input image 105 in the regions of the identified horizontal and vertical block edges of the input image 105 using one or more of a variety of smoothing schemes.
The block edge locator 110 can identify block edge locations in both the vertical and horizontal direction. The methods and systems described herein to identify the vertical and horizontal direction block edge locations of the input image 105 are similar. Accordingly, description herein pertaining to determining block edge locations in the horizontal direction directly pertains to determining block edge locations in the vertical direction, and vice-versa, unless otherwise stated. To obviate redundancy of the disclosure, determining block edge locations will be described in particular reference to determining the locations of block edges in the horizontal directional; however, the same technique can be equally applied to determining block edge locations in the vertical direction, unless otherwise stated.
As illustrated in
The peak index 280 is provided to a peak refiner 290. The peak refiner 290 is configured to receive the block edge histogram 240. Because the peak index 280 is obtained using the filtered block edge histogram 260, the identified peak locations (e.g., move the peak locations) in filtered block edge histogram 260 may not coincide with the actual peaks of the block edge histogram 240. Accordingly, the peak refiner 290 can refine the peak locations to make sure the identified peaks in peak index 280 coincide with the locations of the peaks in the block edge histogram 240.
In the example illustrated in
As a result of determining if the extracted set of pixels bisects a block edge, each considered pixel meeting the three above-stated conditions is deemed to indicate a block edge and is assigned an appropriate identifier, for example, IS_BLK_EDGE; otherwise the considered pixel is assigned a different identifier, e.g., NOT_BLK_EDGE. This processing can continue until each pixel in the input image 205 is considered and assigned an appropriate identifier based on the three above-stated conditions.
Next, the block edge map generator 230 refines the assignment of the IS_BLK_EDGE indicators.
The block edge map generator 210 provides the completed block map 220 to a histogram generator 230. When the block edge locator 110 performs horizontal block edge location, the histogram generator 230 accumulates the identifiers (e.g., 0: NOT_BLK_EDGE, 1: IS_BLK_EDGE) of block map 220 vertically to form a 1-D histogram, block edge histogram 240, along the horizontal direction of the block map 220. Similarly, when the block edge locator 110 performs vertical block edge location, the histogram generator 230 accumulates the identifiers (e.g., 0: NOT_BLK_EDGE, 1: IS_BLK_EDGE) of block map 220 horizontally to form a 1-D block edge histogram along the vertical direction of the block map 220.
After generating a horizontal (or vertical) block edge histogram, the histogram generator 230 provides the block edge histogram 240 to a filtering component 250 (
The filtered block edge histogram 260 is then provided to a peak locator 270 (
The peak refiner 290 refines the location of the peaks based on the peak index 280 and the block edge histogram 240. Because the peak locations in the peak index 280 were generated from the filtered block edge histogram 260, rather than the block edge histogram 240, some peak locations may be slightly shifted from the peak locations of the block edge histogram 240. The peak refiner 290 uses the peak values from the peak index 280 and then moves them to align with the corresponding “k” locations of the peaks in the block edge histogram 240. In
Based on the identified peak locations, a peak distance (which later will be referred as “block size”) can be determined. For example, suppose that the peak refiner 290 identified peak indices given by [0 8 16 24 32-48 56 64 . . . ]. The average peak distance equals “8.” In this example, there is missing peak between locations “32” and “48.” In such a case, peak refiner 290 can be configured to try to fill the missing peak by checking if the location at peak distance “40” (e.g., 32+8) is also a peak (as determined by a less strict peak definition than the original peak definition). For example, in one embodiment a less strict peak definition may include only Conditions 1 and 2 of the original peak definition.
The final peak locations, which indicate the block edges of the input image 205 (
In block 1006, the process forms a first direction block edge histogram by accumulating the binary indicators in the first block map in a direction normal to the first direction, the first direction block edge histogram having peaks corresponding to locations of block edges in the first direction. The histogram generator 230 (
It is to be recognized that depending on the embodiment, certain acts or events of any of the methods described herein can be performed in a different sequence, may be added, merged, or left out all together (e.g., not all described acts or events may be necessary for the practice of the method). Moreover, in certain embodiments, acts or events may be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors, rather than sequentially.
Those of skill will recognize that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software executed by on or more processors, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their fuctionality. Whether such functionality is implemented as hardware or software executed by a processor 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, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. For example, the various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a television or other access device. In the alternative, the processor and the storage medium may reside as discrete components in a television or other access device.
While the above detailed description has shown, described, and pointed out novel features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made by those skilled in the art without departing from the spirit of the invention. As will be recognized, the present invention may be embodied within a form that does not provide all of the features and benefits set forth herein, as some features may be used or practiced separately from others. The scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Kim, Yeong-Taeg, Lertrattanapanich, Surapong
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5850294, | Dec 18 1995 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Method and apparatus for post-processing images |
5974192, | Nov 22 1995 | COMCAST MO GROUP, INC | System and method for matching blocks in a sequence of images |
6389177, | Jul 02 1996 | Apple Inc | System and method using edge processing to remove blocking artifacts from decompressed images |
6738528, | May 22 1998 | Matsushita Electric Industrial Co., Ltd. | Block noise detector and block noise eliminator |
6798918, | Jul 02 1996 | Apple Inc | System and method using edge processing to remove blocking artifacts from decompressed images |
7003174, | Jul 02 2001 | Corel Corporation | Removal of block encoding artifacts |
7218794, | Apr 10 2003 | Samsung Electronics Co., Ltd. | Method for detecting grid in block-based compressed video |
7430319, | Dec 19 2001 | Fuji Xerox Co., Ltd. | Image collating apparatus for comparing/collating images before/after predetermined processing, image forming apparatus, image collating method, and image collating program product |
7756340, | Jul 11 2006 | Accusoft Corporation | Method and apparatus for identifying and/or removing combs from scanned images |
7805018, | Jul 31 2002 | Koninklijke Philips Electronics N V | Dynamic detection of blocking artifacts |
7944588, | Jul 07 2006 | Canon Kabushiki Kaisha | Image correction processing apparatus, image correction processing method, program, and storage medium |
7986855, | Feb 16 2007 | Mitsubishi Electric Corporation | Block noise detector and detection method, and block noise reducer and reduction method |
8077774, | Apr 03 2008 | EDGIO, INC | Automated monitoring of digital video image quality |
20030053708, | |||
20030113000, | |||
20060227883, | |||
20060251174, | |||
20070058726, | |||
20070071095, | |||
20070140590, | |||
20080013833, | |||
20080166060, | |||
20080199102, | |||
20090245755, | |||
20100002953, | |||
20100014596, | |||
20100033633, | |||
20100060749, | |||
20110243466, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 06 2009 | LERTRATTANAPANICH, SURAPONG | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022347 | /0786 | |
Feb 06 2009 | KIM, YEONG-TAEG | SAMSUNG ELECTRONICS CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022347 | /0786 | |
Mar 03 2009 | Samsung Electronics Co., Ltd. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Oct 03 2014 | ASPN: Payor Number Assigned. |
Jul 18 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 21 2020 | REM: Maintenance Fee Reminder Mailed. |
Mar 08 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jan 29 2016 | 4 years fee payment window open |
Jul 29 2016 | 6 months grace period start (w surcharge) |
Jan 29 2017 | patent expiry (for year 4) |
Jan 29 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 29 2020 | 8 years fee payment window open |
Jul 29 2020 | 6 months grace period start (w surcharge) |
Jan 29 2021 | patent expiry (for year 8) |
Jan 29 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 29 2024 | 12 years fee payment window open |
Jul 29 2024 | 6 months grace period start (w surcharge) |
Jan 29 2025 | patent expiry (for year 12) |
Jan 29 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |