Filtering video data using a plurality of filters
Abstract
Systems and methods of filtering video data using a plurality of filters are disclosed. In an embodiment, a method includes receiving and decoding a plurality of filters embedded in a video data bitstream at a video decoder. The method includes selecting, based on information included in the video data bitstream, a particular filter of the plurality of filters.The method further includes applying the particular filter to at least a portion of decoded video data of the video data bitstream to produce filtered decoded video data.
Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
25 claims: 5 independent, 20 dependent
- 1一種方法,其包含:在一視訊解碼器處接收及解碼嵌入於一視訊資料位元流中之複數個濾波程式;基於包括於該視訊資料位元流中之資訊選擇該複數個濾波程式中之一特定濾波程式;及將該特定濾波程式應用於該視訊資料位元流之經解碼視訊資料的至少一部分以產生經濾波之經解碼視訊資料。
- 2如請求項1之方法,其進一步包含:判定該複數個濾波程式中之每一濾波程式待應用於的圖框,其中包括於該視訊資料位元流中之該資訊藉由一圖框編號及一圖框類型中之至少一者來識別對應於每一濾波程式的圖框。
- 3如請求項1之方法,其進一步包含:判定該複數個濾波程式中之每一濾波程式待應用於的巨集區塊,其中包括於該視訊資料位元流中之該資訊藉由巨集區塊類型的一清單及用以重新建構該等巨集區塊之量化參數值的一範圍中之至少一者來識別對應於每一濾波程式的巨集區塊。
- 4如請求項1之方法,其進一步包含:基於一影像之局部特性的一預定量測來判定該複數個濾波程式中之每一濾波程式待應用於的像素。
- 5如請求項4之方法,其中該影像之局部特性的該預定量測包括得自一經重新建構影像之一平均值的該經重新建構影像之一變異數值。
- 6如請求項4之方法,其中該影像之局部特性的該預定量測包括一經重新建構影像內之差異絕對值。
- 7如請求項4之方法,其中該影像之局部特性的該預定量測包括一經重新建構影像內之梯度值。
- 8如請求項4之方法,其中該影像之局部特性的該預定量測包括一經重新建構影像內之清晰度量測。
- 9如請求項4之方法,其中將該複數個濾波程式中之一第一濾波程式應用於第一像素且將該複數個濾波程式中之一第二濾波程式應用於第二像素,該等第一像素具有該影像之局部特性之該預定量測的在一第一值範圍中的一第一值,該等第二像素具有該影像之局部特性之該預定量測的在一第二值範圍中的一第二值。
- 10如請求項1之方法,其中將該複數個濾波程式中之該等濾波程式中之每一者的經量化濾波係數限於約0至約2的n次冪之一範圍內,其中將約0至約2的n次冪之該範圍劃分為數目個區間m,且其中至少部分地基於該複數個濾波程式中之該等濾波程式中之每一者的該等經量化濾波係數之索引來判定區間m的該數目。
- 11如請求項10之方法,其中一特定經量化濾波係數係藉由解碼一可變長度碼字且藉由解碼一固定長度碼字來判定,該可變長度碼字指示該數目個區間m中對應於該特定經量化濾波係數之一值的一特定區間,該固定長度碼字指定該特定區間內之該特定經量化濾波係數的該值。
- 12如請求項1之方法,其中該複數個濾波程式中之一第一濾波程式的第一濾波係數用以預測該複數個濾波程式中之一第二濾波程式的第二濾波係數。
- 13如請求項1之方法,其中該視訊資料位元流中之視訊資料的至少一部分係使用MPEG編碼來編碼。
- 14一種裝置,其包含:一視訊解碼器,其經組態以接收及解碼嵌入於一視訊資料位元流中之複數個濾波程式;及一處理器,其經組態以:基於包括於該視訊資料位元流中之資訊來選擇該複數個濾波程式中之一特定濾波程式;且將該特定濾波程式應用於該視訊資料位元流之經解碼視訊資料的至少一部分以產生經濾波之經解碼視訊資料。
- 15如請求項14之裝置,其中該處理器進一步經組態以:判定該複數個濾波程式中之每一濾波程式待應用於的圖框,其中包括於該視訊資料位元流中之該資訊藉由一圖框編號及一圖框類型中之至少一者來識別對應於每一濾波程式的圖框;判定該複數個濾波程式中之每一濾波程式待應用於的巨集區塊,其中包括於該視訊資料位元流中之該資訊藉由巨集區塊類型的一清單及用以重新建構該等巨集區塊之量化參數值的一範圍中之至少一者來識別對應於每一濾波程式的巨集區塊;且基於一影像之局部特性的一預定量測來判定該複數個濾波程式中之每一濾波程式待應用於的像素。
- 16如請求項14之裝置,其進一步包含一顯示器件,該顯示器件經組態以顯示該經濾波之經解碼視訊資料。
- 17一種積體電路,其包含:視訊解碼電路,其經組態以解碼包括嵌入於一視訊資料位元流中之複數個濾波程式的一信號;及處理電路,其經組態以處理該經解碼之信號以:基於包括於該視訊資料位元流中之資訊選擇該複數個濾波程式中之一特定濾波程式;且將該特定濾波程式應用於該視訊資料位元流之經解碼視訊資料的至少一部分以產生經濾波之經解碼視訊資料。
- 18如請求項17之積體電路,其中該處理電路進一步經組態以處理該經解碼之信號以:判定該複數個濾波程式中之每一濾波程式待應用於的圖框,其中包括於該視訊資料位元流中之該資訊藉由一圖框編號及一圖框類型中之至少一者來識別對應於每一濾波程式的圖框;判定該複數個濾波程式中之每一濾波程式待應用於的巨集區塊,其中包括於該視訊資料位元流中之該資訊藉由巨集區塊類型的一清單及用以重新建構該等巨集區塊之量化參數值的一範圍中之至少一者來識別對應於每一濾波程式的巨集區塊;且基於一影像之局部特性的一預定量測來判定該複數個濾波程式中之每一濾波程式待應用於的像素。
- 19如請求項17之積體電路,其中將該複數個濾波程式中之一第一濾波程式應用於第一像素且將該複數個濾波程式中之一第二濾波程式應用於第二像素,該等第一像素具有一影像之局部特性之一預定量測的在一第一值範圍中的一第一值,該等第二像素具有該影像之局部特性之該預定量測的在一第二值範圍中的一第二值。
- 20一種裝置,其包含:用於解碼嵌入於一視訊資料位元流中之複數個濾波程式的構件;用於基於包括於該視訊資料位元流中之資訊來選擇該複數個濾波程式中之一特定濾波程式的構件;及用於將該特定濾波程式應用於該視訊資料位元流之經解碼視訊資料的至少一部分以產生經濾波之經解碼視訊資料的構件。
- 21如請求項20之裝置,其進一步包含以下各項中之至少一者:用於判定該複數個濾波程式中之每一濾波程式待應用於之圖框的構件,其中包括於該視訊資料位元流中之該資訊藉由一圖框編號及一圖框類型中之至少一者來識別對應於每一濾波程式的圖框;用於判定該複數個濾波程式中之每一濾波程式待應用於之巨集區塊的構件,其中包括於該視訊資料位元流中之該資訊藉由巨集區塊類型的一清單及用以重新建構該等巨集區塊之量化參數值的一範圍中之至少一者來識別對應於每一濾波程式的巨集區塊;及用於基於一影像之局部特性的一預定量測來判定該複數個濾波程式中之每一濾波程式待應用於之像素的構件。
- 22如請求項20之裝置,其進一步包含用於經由一無線傳輸來接收該視訊資料位元流之構件。
- 23一種儲存電腦可執行碼之電腦可讀媒體,其包含:用於在一視訊解碼器處解碼嵌入於一視訊資料位元流中之複數個濾波程式的程式碼;用於基於包括於該視訊資料位元流中之資訊選擇該複數個濾波程式中之一特定濾波程式的程式碼;及用於將該特定濾波程式應用於該視訊資料位元流之經解碼視訊資料的至少一部分以產生經濾波之經解碼視訊資料的程式碼。
- 24如請求項23之電腦可讀媒體,其進一步包含:用於判定該複數個濾波程式中之每一濾波程式待應用於之圖框的程式碼,其中包括於該視訊資料位元流中之該資訊藉由一圖框編號及一圖框類型中之至少一者來識別對應於每一濾波程式的圖框;用於判定該複數個濾波程式中之每一濾波程式待應用於之巨集區塊的程式碼,其中包括於該視訊資料位元流中之該資訊藉由巨集區塊類型的一清單及用以重新建構該等巨集區塊之量化參數值的一範圍中之至少一者來識別對應於每一濾波程式的巨集區塊;及用於基於一影像之局部特性的一預定量測來判定該複數個濾波程式中之每一濾波程式待應用於之像素的程式碼。
- 25如請求項23之電腦可讀媒體,其中將該複數個濾波程式中之一第一濾波程式應用於第一像素且將該複數個濾波程式中之一第二濾波程式應用於第二像素,該等第一像素具有一影像之局部特性之一預定量測的在一第一值範圍中的一第一值,該等第二像素具有該影像之局部特性之該預定量測的在一第二值範圍中的一第二值。
Independent claims25
62 paragraphs, as filed
Video data filtering using multiple filters
The present disclosure is generally directed to a system and method for filtering video data using a plurality of filters.
This application claims the priority of U.S. Provisional Patent Application No. 61/079,998 filed on July 11, 2008 and U.S. Provisional Patent Application No. 61/094,011 filed on September 3, 2008. These applications The entire contents of each of the cases are incorporated into this article by reference.
Advances in technology have led to smaller and more powerful computing devices. For example, there are currently a variety of portable personal computing devices, including wireless computing devices, such as portable wireless phones, personal digital assistants (PDAs), and paging devices, which are small, lightweight, and easy to carry by users. More specifically, portable wireless phones such as cellular phones and Internet Protocol (IP) phones can communicate voice and data packets via wireless networks. In addition, many of these wireless telephones include other types of devices incorporated therein. For example, a wireless phone may also include a digital still camera, a digital video camera, a digital voice recorder, and an audio file player. In addition, these wireless phones can process executable commands including software applications (such as web browser applications) that can be used to access the Internet. Thus, these wireless telephones can include effective computing capabilities.
Digital signal processors (DSP), image processors, and other processing devices are frequently used in portable personal computing devices that include digital cameras or display images or video data captured by digital cameras. These processing devices can be used to provide video and audio functions, process received data such as image data, or perform other functions.
One type of video processing involves filtering, which can be applied to enhance the quality of a decoded video signal. The filter program can be applied as a post filter program (where the filtered frame is not used for the prediction of the future frame), or as an in-loop filter program (where the filtered frame is used to predict the future frame) . A filtering program can be designed by reducing the error between the original signal and the decoded and filtered signal. Similarly, in order to transform the coefficients, the coefficients of the resulting filter program can be quantized, coded, and sent to the video decoder. More accurate quantization filter coefficients can lead to better performance. However, as the accuracy of the quantization filter coefficients increases, the number of bits required to transmit these coefficients also increases, resulting in corresponding effects on network resources, data transmission rates, or both.
Multiple filter programs can be determined at a video encoder and provided to a receiver via a video data stream. The receiver can extract information from the data stream to identify which of the plurality of filter programs is applied to a specific frame, a specific macro block, a specific pixel, or any combination thereof. The multiple filter programs can be used for post-processing filtering or for filtering in one of the processing loops at a decoder.
In a specific embodiment, a method is disclosed that includes receiving and decoding a plurality of filter programs embedded in a video data bit stream at a video decoder. The method includes selecting a specific filter program among the plurality of filter programs based on the information included in the video data bit stream. The method further includes applying the specific filter program to at least a portion of the decoded video data of the video data bitstream to generate filtered decoded video data.
In another embodiment, a device is disclosed that includes a video decoder configured to receive and decode a plurality of filter programs embedded in a video data bit stream. The device also includes a processor configured to select one of the plurality of filter programs based on information included in the video data bit stream and apply the specific filter program to the video At least a part of the decoded video data of the data bit stream to generate filtered decoded video data.
In another embodiment, an integrated circuit is disclosed that includes a video decoding circuit configured to receive and decode a signal including a plurality of filter programs embedded in a video data bit stream. The integrated circuit also includes a processing circuit configured to process the decoded signal so as to select one of the plurality of filter programs based on the information included in the video data bit stream and to The specific filtering program is applied to at least a part of the decoded video data of the video data bit stream to generate filtered decoded video data.
In another embodiment, an apparatus is disclosed, which includes means for decoding a plurality of filter programs embedded in a video data bit stream. The device includes means for selecting a specific filter program among the plurality of filter programs based on the information included in the video data bit stream. The device further includes means for applying the specific filter program to at least a part of the decoded video data of the video data bitstream to generate filtered decoded video data.
In another embodiment, a computer-readable medium storing computer executable code is disclosed. The computer-readable medium includes program codes for receiving and decoding a plurality of filter programs embedded in a video data bit stream at a video decoder. The computer-readable medium includes a program code for selecting a specific filter program among the plurality of filter programs based on the information included in the video data bitstream. The computer-readable medium further includes a program code for applying the specific filtering program to at least a portion of the decoded video data of the video data bitstream to generate filtered decoded video data.
A particular advantage provided by the disclosed embodiments is an improvement in the performance of filtering, in particular, an improvement in the performance of post-filtering, so as to enhance the quality of the decoded video signal. Another particular advantage provided by the disclosed embodiments is the reduced number of bits required to transmit the filter coefficients of a plurality of filter programs.
After reviewing the entire application, other aspects, advantages and features of this disclosure will become apparent. The entire application includes the following parts: [Schematic Description], [Implementation Mode] and [Applicable Patent Scope].
Referring to FIG. 1, a specific embodiment of a video data processing system 100 is illustrated. The video data processing system 100 includes a video data bit stream 102 received by a multimedia receiver 108. The video data bit stream 102 includes encoded video data 106, a plurality of filter programs 104, and filter program selection information 122. The multimedia receiver 108 includes a video data decoder 110, a filter module 112, a filter program selector 118, and a display 116. The system 100 enables the multimedia receiver 108 to select a filter program from the video data bit stream 102 based on the filter program selection information 122.
The video data decoder 110 is configured to decode the encoded video data 106. For example, the video data decoder 110 may be configured to decode entropy coded data and perform inverse discrete cosine transform (DCT) on the resulting data. In a specific embodiment, the video data decoder 110 includes an H.264 or Animation Expert Group (MPEG) compatible decoder.
The filter module 112 is configured to receive a filter program from the filter program selector 118, such as the second decoded filter program 120. The filter module 112 is configured to apply the received filter 120 to the decoded video data received from the video data decoder 110. The filter module 112 can be configured to apply the filter program to the decoded video data based on the frame, macro block, or pixel granularity to generate filtered decoded video data 114 that is provided to the display 116. The filtering module 112 can be implemented in a decoding loop (not shown), or implemented for post-processing filtering, or any combination thereof.
The filter program selector 118 is configured to receive the filter program selection information 122 and select an appropriate filter program from the plurality of filter programs 104. In a specific embodiment, the filter program selector 118 is adapted to decode a plurality of filter programs 104 and provide the selected decoded filter program such as the second decoded filter program 120 to the filter module 112. The filter program selector 118 may select a decoded filter program based on the filter program selection information 122 to provide to the filter module 112. In a specific embodiment, the filter program selector 118 compares one or more characteristics of the decoded video data generated by the video data decoder 110 with the filter program selection information 122 to select a specific one to be provided to the filter module 112 Appropriate filtering program for video data.
During operation, the video data decoder 110 of the multimedia receiver 108 receives and decodes the encoded video data 106. A plurality of filter programs 104 and filter program selection information 122 are received and decoded at the filter program selector 118 of the multimedia receiver 108. The filter program selector 118 selects one of the plurality of filter programs 104 to specify the decoded filter program 120 based on the filter program selection information 122 included in the video data bit stream 102. At the filter module 112 of the multimedia receiver 108, a specific decoded filter program 120 is applied to at least a part of the decoded video data, thereby generating filtered decoded video data 114. The filtered decoded video data 114 is displayed on the display 116 of the multimedia receiver 108.
By receiving multiple filter programs along with the encoded video data 106, the multimedia receiver 108 can select the specific filter program that results in the lowest error per unit of decoded video data. For example, a filter program that provides the lowest mean square error of a specific frame of video data can be selected on a frame-by-frame basis. As another example, a filter program that provides the lowest error for a specific macro block can be selected on a macro block basis or on a pixel by pixel basis. The video data processing system 100 can therefore provide an improvement in the performance of filtering, in particular, an improvement in the performance of post-filtering, so as to enhance the quality of the decoded video signal. In addition, by encoding the filter coefficients and in some embodiments using the coefficients of some filter programs to predict the coefficients of later filter programs, the video data processing system 100 further provides for transmitting each filter program in the plurality of filter programs 104 The number of bits required for filter coefficients is reduced.
Referring to FIG. 2, a specific embodiment of a video data processing device 200 is illustrated. The video data processing device 200 includes a video decoder 202 and a processor 206. The video decoder 202 is configured to receive and decode a plurality of filter programs 204 embedded in a video data bit stream. In a specific embodiment, MPEG encoding is used to encode at least a portion of the video data in the video data bitstream. The processor 206 includes a frame determination module 208, a macro block determination module 210, a pixel determination module 212, a filter program selection module 230, and a filter program application module 232. In an illustrative embodiment, the video decoder 202 is the video data decoder 102 of FIG. 2, and the plurality of filter programs 204 are similar to the plurality of filter programs 104 embedded in the video data bitstream 102 of FIG. The method is embedded in a video data bit stream.
In a specific embodiment, the filter program selection module 230 can be executed by the processor 206 to select one of the plurality of filter programs 204 based on the information included in the video data bit stream. In a specific embodiment, the information included in the video data bitstream is similar to the filter program selection information 122 included in the video data bitstream 102 of FIG. 1.
In a specific embodiment, the filter program application module 232 can be executed by the processor 206 to apply the specific filter program selected by the filter program selection module 230 to at least a portion of the decoded video data of the video data bit stream to generate Filtered decoded video data. In a particular embodiment, the generated filtered and decoded video data is similar to the filtered and decoded video data 114 of FIG. 1.
In a specific embodiment, the frame determination module 208 can be executed by the processor 206 to determine the frame of the video data to be applied to each of the filter programs 204, including the video data bit stream The information in the frame identifies the frame corresponding to each filter program by at least one of the frame number or the frame type. In a particular embodiment, the frame type may include an intra-coded image frame (I frame) type, a predictive image frame (P frame) type, or a bidirectional predictive image frame (B Frame) type. For example, the frame determination module 208 can determine the frame number of each frame and provide the determined frame number to the filter program selection module 230. For illustration, the frame determination module 208 may determine that the specific frame 222 being processed has a frame number "5". In response to this situation, the filter program selection module 230 selects the first decoded filter program 216 to apply The decoded frame 222 with the number "5". Different methods can be used to indicate which filter programs to use and which filter programs to be combined. For example, you can signal that the decoder should use a filter for the B frame type<i>f</i><sub>1</sub>、<i>f</i><sub>2</sub>and<i>f</i><sub>3</sub>。
In a specific embodiment, the macro block determination module 210 can be executed by the processor 206 to determine the macro block to be applied to each of the plurality of filter programs 204. As an illustrative and non-limiting example, the information included in the video data bitstream can be reconstructed from a list of macro block types (for example, within a frame, between frames, and between two-way frames) At least one of the quantization parameter value ranges of the macro blocks is used to identify the macro block corresponding to each filter program. For example, the macro block determination module 210 may determine the type of each macro block and provide the determined macro block type to the filter program selection module 230. To illustrate, the macro block determination module 210 may determine that the specific macro block 224 being processed has type "A" (for example, the type in the frame). In response to this situation, the filter program selection module 230 selects the Two decoded filters 218 are applied to the specific macro block 224.
In a specific embodiment, the pixel determination module 212 can be executed by the processor 206 to determine the pixel to be applied to each of the plurality of filter programs 204 based on the predetermined measurement 214 based on the local characteristics of the image. The pixel determination module 212 can generate the value of the predetermined measurement 214 of the specific pixel (i, j) 226 being processed at the row i and row j of the macro block or frame of the decoded video signal, in response to In this case, the filter program selection module 230 selects the third decoded filter program 220 to apply to the pixel (i, j) 226.
In a specific embodiment, the predetermined measure 214 of the local characteristic of the image includes the reconstructed image's variance value derived from the average value of the reconstructed image. For example, for reconstructed images<i>R</i>(<i>i,j</i>)(in,<i>i</i>=0,…,<i>M</i>and<i>j</i>=0,…,<i>N</i>), the average value can be defined <<i>R</i>(<i>i,j</i>)> makes<img file="TW201014363A_D0001.tif" />. Definable reconstructed image<i>R</i>(<i>i,j</i>) Is derived from the average value<<i>R</i>(<i>i,j</i>)'S variation value var(i<i>,</i>j) makes
<maths><img file="TW201014363A_D0002.tif" /></maths>
In a particular embodiment, the predetermined measure 214 of the local characteristic of the image includes the absolute value of the difference in the reconstructed image. For example, for reconstructed images<i>R</i>(<i>i,j</i>)(in,<i>i</i>=0,…,<i>M</i>and<i>j</i>=0,…,<i>N</i>), the absolute value of the difference can be defined<i>abs</i>(<i>i,j</i>) Makes<img file="TW201014363A_D0003.tif" />
In a particular embodiment, the predetermined measurement 214 of the local characteristic of the image includes the gradient value in the reconstructed image. For example, the gradient of the image value at the pixel of interest can be determined as the predetermined measure 214 of the local characteristic of the image. In another embodiment, the predetermined measurement 214 of the local characteristic of the image includes a sharpness measurement in the reconstructed image.
In a specific embodiment, the first filter program of the plurality of filter programs 204 is applied to the first pixel (which has the first value in the first value range of the predetermined measurement 214 of the local characteristic of the image), and The second filter program of the plurality of filter programs 204 is applied to the second pixel (which has the second value in the second value range of the predetermined measurement 214 of the local characteristic of the image). For example, filters can be applied<i>f</i><sub><i>m</i></sub>(<i>m</i>=0,...,<i>n</i>+1) makes the filter program<i>f</i><sub><i>0</i></sub>Applied to have in scope<img file="TW201014363A_D0004.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,<i>j</i>), the filter program<i>f</i><sub>1</sub>Applied to have in scope<img file="TW201014363A_D0005.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,<i>j</i>), and, in general, the filter program<i>f</i><sub><i>r</i></sub>(<i>r</i>=0,...,<i>n</i>) Should be in the range<img file="TW201014363A_D0006.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,<i>j</i>), where the filter program<i>f</i><sub><i>n</i></sub><sub>+1</sub>Applied to have in scope<img file="TW201014363A_D0007.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,j<i>)</i>. In an alternative embodiment, a filter can be applied<i>f</i><sub>1</sub>and<i>f</i><sub>2</sub>Make the filter<i>f</i><sub>1</sub>Applied to have in scope<img file="TW201014363A_D0008.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,<i>j</i>), the filter program<i>f</i><sub>1</sub>Applied to have in scope<img file="TW201014363A_D0009.tif" />The variance value var(<i>i</i>,<i>j</i>) Pixels (<i>i</i>,<i>j</i>), and the filter<i>f</i><sub>2</sub>Apply to other situations.
In a specific embodiment, the quantized filter coefficients of each of the filter programs in the plurality of filter programs 204 are limited to a range of about 0 to about 2 to the nth power. The range from about 0 to about 2 to the power of n can be divided into a number of intervals<i>m</i>. Determine the interval based at least in part on the index of the quantized filter coefficient of each of the filter programs in the plurality of filter programs 204<i>m</i>Number of. For example, the quantized filter coefficients can be<i>f</i><sub><i>r</i></sub>(<i>k</i>,<i>l</i>)(<i>r</i>=0,...,<i>s</i>+1、<i>k</i>=-<i>K</i>,...,<i>K</i>and<i>l</i>=-<i>L</i>,...,<i>L</i>) Limited to scope<img file="TW201014363A_D0010.tif" />Inside. Can be range<img file="TW201014363A_D0011.tif" />Divided into a number of intervals<i>m</i>, Which is based at least in part on the quantized filter coefficients<i>f</i><sub><i>r</i></sub>(<i>k</i>,<i>l</i>)(<i>r</i>=0,...,<i>s</i>+1、<i>k</i>=-<i>K</i>,...,<i>K</i>and<i>l</i>=-<i>L</i>,...,<i>L</i>) Of the index (<i>k</i>,<i>l</i>) To determine the interval<i>m</i>Number of. In a particular embodiment, by decoding a variable length codeword (which indicates the number of intervals<i>m</i>One of them corresponds to a specific interval of the value of a specific quantized filter coefficient), and the specific quantized filter coefficient is determined by decoding a fixed-length codeword (which specifies the value of the specific quantized filter coefficient in the specific interval) The filter coefficient.
In a specific embodiment, the first filter coefficient of the first filter program in the plurality of filter programs 204 is used to predict the second filter coefficient of the second filter program in the plurality of filter programs 204. For example, as described above, if the filter program<i>f</i><sub><i>m</i></sub>(<i>m</i>=0,...,<i>n</i>+1) corresponds to the variance var<sub><i>r</i></sub>(<i>r</i>=0,...,<i>n</i>), the self-filtering program<i>f</i><sub>0</sub>Predictable filter<i>f</i><sub>1</sub>, Self-filtering program<i>f</i><sub>1</sub>Predictable filter<i>f</i><sub>2</sub>, And, in general, the self-filtering program<i>f</i><sub><i>s</i></sub>(<i>s</i>=0,...,<i>n</i>) Predictable filter<i>f</i><sub><i>s</i></sub><sub>+1</sub>。
One or more of the modules 208, 210, 212, 230, and 232 can be implemented as computer executable code including program instructions executed at the processor 206, implemented as a dedicated hardware circuit, implemented as a state machine, or implemented as Field programmable gate array (FPGA), or any combination thereof. The processor 206 can execute one or more of the frame determination module 208, the macro block determination module 210, and the pixel determination module 212 to determine the filter program to be applied to the decoded video data. In a particular embodiment, the video data processing device 200 may include other components not shown, such as a display device similar to the display 116 shown in FIG. 1, which is configured to display filtered decoded video data.
Referring to FIG. 3, a video data processing integrated circuit 300 is illustrated. The video data processing integrated circuit 300 includes a video decoding circuit 302 and a processing circuit 306. The video decoding circuit 302 is configured to receive and decode a signal 328 including a plurality of filter programs 304 embedded in a video data bit stream. In a specific embodiment, the plurality of filter programs 304 are embedded in a video data bit stream in a manner similar to the plurality of filter programs 104 embedded in the video data bit stream 102 of FIG. 1.
The processing circuit 306 is configured to process the decoded signal 328 to select one of the plurality of filter programs 304 based on the information included in the video data bit stream. In a specific embodiment, the information included in the video data bitstream is similar to the filter program selection information 122 included in the video data bitstream 102 of FIG. 1. The processing circuit 306 includes a frame determination circuit 308, a macro block determination circuit 310, a pixel determination circuit 312, a filter program selection circuit 330, and a filter program application circuit 332. The processing circuit 306 is configured to process the decoded signal from the video decoding circuit 302 to apply a specific filter such as the second decoded filter 316, the third decoded filter 318, or the fourth decoded filter 320 to the video At least a part of the decoded video data of the data bit stream is used to generate filtered and decoded video data. In a specific embodiment, the generated filtered and decoded video data is similar to the filtered and decoded video data 114 of FIG. 1.
In a specific embodiment, the frame determination circuit 308 is configured to determine the frame to be applied to each of the plurality of filter programs 304, including the information contained in the video data bit stream by the map At least one of the frame number or the frame type is used to identify the frame corresponding to each filter program. For example, the frame determination circuit 308 can determine that a specific frame 322 has a frame number "6" and can provide the frame number to the filter program selection circuit 330. The filter program selection circuit 330 can select the second decoded filter program 316 for the frame 322 based on the frame number and the information received through the video data bit stream. The filter program application circuit 332 can apply the second decoded filter program 316 to the frame 322 with the frame number "6".
In a specific embodiment, the macro block determination circuit 310 is configured to determine the macro block to be applied to each of the plurality of filter programs 304, including the macro block included in the video data bit stream. The information identifies the macro block corresponding to each filter program by at least one of a list of macro block types or a range of quantized parameter values used to reconstruct the macro blocks. For example, the macro block determination circuit 310 can determine that a specific macro block 324 has type "B" (for example, the bidirectional frame type) and can provide the macro block type to the filter program selection circuit 330 . The filter program selection circuit 330 may select the third decoded filter program 318 for the specific macro block 324 based on the type of the macro block and the information received through the video data bit stream. The filter application circuit 332 can apply the third decoded filter 318 to the specific macro block 324 of type "B".
In a specific embodiment, the pixel determination circuit 312 is configured to process the decoded signal to determine the pixel to be applied to each of the plurality of filter programs 304 based on a predetermined measurement 314 of the local characteristics of the image. For example, the pixel determination circuit 312 can determine the value of the predetermined measurement 314 of the local characteristic of the image corresponding to the specific pixel (m, n) 326 at column m and row n, and can determine the predetermined value of the local characteristic of the image The value of the measurement 314 is provided to the filter program selection circuit 330. The filter program selection circuit 330 can select the fourth decoded filter program 320 for the pixel (m, n) 326 based on the value of the predetermined measurement 314 of the local characteristic of the image and based on the information received through the video data bit stream. The filter application circuit 332 can apply the fourth decoded filter 320 to the pixel (m, n) 326. In a specific embodiment, as an illustrative and non-limiting example, the predetermined measurement 214 of the local characteristics of the image in FIG. 2 is generally similar (such as using variance or gradient) to determine the predetermined local characteristics of the image. Measure 314.
In a specific embodiment, a device includes means for decoding a plurality of filter programs embedded in a video data bit stream. The means for decoding a plurality of filter programs embedded in a video data bit stream may include a video decoder such as the video decoder 202 shown in FIG. 2 and a video decoder such as the video decoder circuit 302 shown in FIG. 3 Video decoding circuit, corresponding hardware, software, firmware, or any combination thereof. The device includes means for selecting a specific filter program among the plurality of filter programs based on the information included in the video data bit stream. The means for selecting a specific filter program among the plurality of filter programs may include a processor such as the processor 206 shown in FIG. 2, a processing circuit such as the processing circuit 306 shown in FIG. 3, and corresponding hardware. , Software, firmware, or any combination thereof. The device further includes means for applying the specific filter program to at least a part of the decoded video data of the video data bitstream to generate filtered decoded video data. The means for applying the specific filtering program may include a processor such as the processor 206 shown in FIG. 2, a processing circuit such as the processing circuit 306 shown in FIG. 3, corresponding hardware, software, firmware, or Any combination of it.
In a specific embodiment, the device includes a component for determining the frame to be applied to each of the plurality of filter programs, wherein the information included in the video data bit stream is determined by the frame number or the frame number. At least one of the frame types is used to identify the frame corresponding to each filter program. The component for determining the frame may include a processor such as the processor 206 shown in FIG. 2, a processing circuit such as the processing circuit 306 shown in FIG. 3, corresponding hardware, software, firmware, or any of them combination.
In a specific embodiment, the device includes a means for determining the macro block to which each of the plurality of filter programs is to be applied, wherein the information included in the video data bit stream is obtained by the macro block The list of block types or at least one of the ranges of quantization parameter values used to reconstruct the macro blocks to identify the macro block corresponding to each filter program. The means for determining the macro block may include a processor such as the processor 206 shown in FIG. 2, a processing circuit such as the processing circuit 306 shown in FIG. 3, corresponding hardware, software, firmware, or Any combination of it.
In a specific embodiment, the device includes means for determining the pixel to be applied to each of the plurality of filter programs based on predetermined measurements of the local characteristics of the image. The means for determining pixels may include a processor such as the processor 206 shown in FIG. 2, a processing circuit such as the processing circuit 306 shown in FIG. 3, corresponding hardware, software, firmware, or any combination thereof .
In a specific embodiment, the device includes means for receiving a bitstream of video data via a wireless transmission. The means for receiving the video data bit stream via a wireless transmission may include a wireless receiver, a wireless receiving circuit, a wireless transceiver, and a portable communication device such as that shown in FIG. 5 and more fully described below. , Corresponding hardware, software, firmware, or any combination thereof.
Referring to FIG. 4, a method 400 for filtering video data using a plurality of filter programs is described. The method 400 includes receiving and decoding a plurality of filter programs embedded in a video data bitstream at 402 at a video decoder. For example, the plurality of filter programs 204 of FIG. 2 can be embedded in a video data bit stream such as the video data bit stream 102 of FIG. 1. A plurality of filter programs 204 can be received and decoded at the video decoder 202 in FIG. 2.
The method 400 includes, at 404, selecting a specific filter program of the plurality of filter programs based on the information included in the video data bitstream. For example, the processor 206 in FIG. 2 may select a plurality of filter programs 204 based on the information included in the video data bit stream (such as the filter program selection information 122 included in the video data bit stream 102 in FIG. 1). One of the specific filter programs (such as the first decoded filter program 216).
The method 400 further includes at 406 applying the specific filter program to at least a portion of the decoded video data of the video data bitstream to generate filtered decoded video data. For example, the processor 206 of FIG. 2 may apply the decoded filter 216 to at least a portion of the decoded video data of the video data bit stream (such as a specific frame 222) to generate filtered and decoded video data (such as The filtered and decoded video data 114 of FIG. 1).
FIG. 5 is a block diagram of a specific embodiment of a system including a decoding and filtering module using a plurality of filtering programs. The system 500 may be implemented in a portable electronic device and includes a processor 510 (such as a digital signal processor (DSP)) coupled to a memory 532. The system 500 includes a decoding and filtering module 564 that uses a plurality of filtering programs. In an illustrative example, the decoding and filtering module 564 using a plurality of filtering programs includes any one of the systems of FIGS. 1 to 3, operating according to the method of FIG. 4, or any combination thereof. The decoding and filtering module 564 using a plurality of filtering programs may be in the processor 510 or may be a separate device or circuit along a hardware image processing pipeline (not shown), or a combination thereof.
The camera interface 568 is coupled to the processor 510 and is also coupled to a camera such as a video camera 570. The camera interface 568 can respond to the processor 510, such as for automatic focusing and automatic exposure control. The display controller 526 is coupled to the processor 510 and to the display device 528. A codec (CODEC) 534 may also be coupled to the processor 510. The speaker 536 and the microphone 538 may be coupled to the CODEC 534. The wireless interface 540 can be coupled to the processor 510 and to the wireless antenna 542.
The processor 510 can also be adapted to generate processed image data. The display controller 526 is configured to receive the processed image data and provide the processed image data to the display device 528. In addition, the memory 532 can be configured to receive and store the processed image data, and the wireless interface 540 can be configured to receive the processed image data for transmission via the antenna 542.
In a specific embodiment, the decoding and filtering module 564 using a plurality of filter programs is implemented as computer program code executed at the processor 510, such as computer executable instructions stored on a computer readable medium, The description is the computer program code 590 stored in the memory 532. For example, the computer program code 590 may include: code for receiving and decoding a plurality of filter programs embedded in a video data bit stream at a video decoder; The information in the stream is used to select a specific filter program code of one of the plurality of filter programs; Code to decode video data.
For example, the computer code 590 may also include code for determining the frame to which each of the filter programs is to be applied, including the information included in the video data bit stream by the frame number Or at least one of the frame types to identify the frame corresponding to each filter program. As another example, the computer code 590 may also include code for determining the macro block to be applied to each of the filter programs, including the information in the video data bit stream by The list of macro block types or at least one of the ranges of quantized parameter values used to reconstruct the macro blocks to identify the macro block corresponding to each filter program. Alternatively or additionally, the computer program code 590 may include program code for determining the pixel to be applied to each of the plurality of filter programs based on predetermined measurements of the local characteristics of the image. In a specific embodiment, the first filter program of the plurality of filter programs can be applied to the first pixel (which has the first value in the first value range of the predetermined measurement of the local characteristic of the image), and the The second filter program of the plurality of filter programs is applied to the second pixel (which has the second value in the second value range of the predetermined measurement of the local characteristic of the image).
In a specific embodiment, the processor 510, the display controller 526, the memory 532, the CODEC 534, the wireless interface 540, and the camera interface 568 are included in a system-in-package or system-on-chip device 522. In a particular embodiment, the input device 530 and the power supply 544 are coupled to the system-on-chip device 522. In addition, as illustrated in FIG. 5, in a specific embodiment, the display device 528, the input device 530, the speaker 536, the microphone 538, the wireless antenna 542, the video camera 570, and the power supply 544 are external to the on-chip system device 522. . However, each of the display device 528, the input device 530, the speaker 536, the microphone 538, the wireless antenna 542, the video camera 570, and the power supply 544 may be coupled to a component of the on-chip system device 522, such as an interface or One controller.
Those familiar with this technology will further understand that the various descriptive logic blocks, configurations, modules, circuits, and algorithm steps described in conjunction with the embodiments disclosed in this article can be implemented as electronic hardware, computer software, or bothThe combination. The combination. In order to clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in accordance with their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the entire system. For each specific application, those who are familiar with the technology can implement the described functionality in various ways, but these implementation decisions should not be interpreted as causing a departure from the scope of this disclosure.
The steps of the method or algorithm described in conjunction with the embodiments disclosed herein can be directly embodied in hardware, a software module executed by a processor, or a combination of the two. The software module can reside in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory ( EPROM), Electronically Erasable Programmable Read-Only Memory (EEPROM), Register, Hard Disk, Removable Disc, Compact Disc Read-Only Memory (CD-ROM) or any other known in this technology In the form of storage media. The exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. In the alternative, the storage medium may be integral with the processor. The processor and storage medium can reside in an application-specific integrated circuit (ASIC). The ASIC can reside in a computing device or a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a computing device or a user terminal.
The foregoing description of the disclosed embodiments is provided to enable anyone familiar with the art to make or use the disclosed embodiments. Various modifications of these embodiments will be obvious to those who are familiar with the art, and the general principles defined herein can be applied to other embodiments without departing from the spirit or scope of the present disclosure. Therefore, this disclosure is not intended to be limited to the embodiments shown in this article, but should conform to the widest possible scope consistent with the principles and novel features defined by the scope of the following patent applications.
<p>100. . . Video data processing system/system</p><p>102. . . Video data bitstream</p><p>104. . . Filter program</p><p>106. . . Encoded video data</p><p>108. . . Multimedia receiver</p><p>110. . . Video data decoder</p><p>112. . . Filter module</p><p>114. . . Filtered decoded video data</p><p>116. . . monitor</p><p>118. . . Filter program selector</p><p>120. . . The second decoded filter program/received filter program/specific decoded filter program</p><p>122. . . Filter selection information</p><p>200. . . Video data processing device</p><p>202. . . Video decoder</p><p>204. . . Filter program</p><p>206. . . processor</p><p>208. . . Frame determination module/module</p><p>210. . . Macro block determination module/module</p><p>212. . . Pixel Judgment Module/Module</p><p>214. . . Predetermined measurement of the local characteristics of the image</p><p>216. . . The first decoded filter</p><p>218. . . Second decoded filter</p><p>220. . . Third decoded filter</p><p>222. . . Frame</p><p>224. . . Macro block</p><p>226. . . Pixel(i,j)</p><p>230. . . Filter program selection module/module</p><p>232. . . Filter application module/module</p><p>300. . . Video data processing integrated circuit</p><p>302. . . Video decoding circuit</p><p>304. . . Filter program</p><p>306. . . Processing circuit</p><p>308. . . Frame determination circuit</p><p>310. . . Macro block determination circuit</p><p>312. . . Pixel determination circuit</p><p>314. . . Predetermined measurement of the local characteristics of the image</p><p>316. . . Second decoded filter</p><p>318. . . Third decoded filter</p><p>320. . . The fourth decoded filter program</p><p>322. . . Frame</p><p>324. . . Macro block</p><p>326. . . Pixel(m,n)</p><p>328. . . Signal</p><p>330. . . Filter program selection circuit</p><p>332. . . Filter application circuit</p><p>500. . . system</p><p>510. . . processor</p><p>522. . . System-on-wafer</p><p>526. . . Display controller</p><p>528. . . Display device</p><p>530. . . Input device</p><p>532. . . Memory</p><p>534. . . Codec (CODEC)</p><p>536. . . speaker</p><p>538. . . microphone</p><p>540. . . Wireless interface</p><p>542. . . Wireless antenna/antenna</p><p>544. . . Power Supplier</p><p>564. . . Decoding and filtering module using multiple filtering programs</p><p>568. . . Camera interface</p><p>570. . . Video camera</p><p>590. . . Computer code</p>
Figure 1 is a block diagram of a specific illustrative embodiment of a video data processing system including a video data bit stream and a multimedia receiver;
2 is a block diagram of a specific illustrative embodiment of a video data processing device including a video decoder and a processor;
3 is a block diagram of a specific illustrative embodiment of an integrated circuit including a video decoding circuit and a processing circuit;
4 is a flowchart of a specific illustrative embodiment of a method for filtering video data using a plurality of filtering programs; and
FIG. 5 is a block diagram of a specific embodiment of a portable communication device including a decoding and filtering module using a plurality of filtering programs.
34 members in 17 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 61079998 | United States of America | – | |
| 7999808 | United States of America | P | |
| 61094011 | United States of America | – | |
| 9401108 | United States of America | P | |
| 12406585 | United States of America | – | |
| 40658509 | United States of America | A |
Members34
| Document | Office | Kind | |
|---|---|---|---|
| CA2729904A1 | Canada | A1 | |
| US2010008430A1 | United States of America | A1 | |
| WO2010006250A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW201014363AThis record | Taiwan Province of China | A | |
| KR20110028545A | Republic of Korea | A | |
| EP2319243A1 | European Patent Office (EPO) | A1 | |
| CN102084656A | China | A | |
| JP2011527874A | Japan | A | |
| RU2011105028A | Russian Federation | A | |
| HK1161463A1 | Hong Kong, China | A1 | |
| KR101202634B1 | Republic of Korea | B1 | |
| JP2013081210A | Japan | A | |
| TWI415471B | Taiwan Province of China | B | |
| CN102084656B | China | B | |
| CN103546748A | China | A | |
| RU2521081C2 | Russian Federation | C2 | |
| JP2014209748A | Japan | A | |
| JP5650183B2 | Japan | B2 | |
| CA2729904C | Canada | C | |
| CN103546748B | China | B | |
| BRPI0915576A2 | Brazil | A2 | |
| US10123050B2 | United States of America | B2 | |
| US2019089989A1 | United States of America | A1 | |
| EP2319243B1 | European Patent Office (EPO) | B1 | |
| DK2319243T3 | Denmark | T3 | |
| SI2319243T1 | Slovenia | T1 | |
| PT2319243T | Portugal | T | |
| PL2319243T3 | Poland | T3 | |
| HUE049159T2 | Hungary | T2 | |
| ES2787503T3 | Spain | T3 | |
| BRPI0915576B1 | Brazil | B1 | |
| US11711548B2 | United States of America | B2 | |
| US2023247228A1 | United States of America | A1 | |
| US2023254515A1 | United States of America | A1 |
Numbers
- Publication
- 201014363
- Application
- 98123557
Titles4
- Chinese
- 使用複數個濾波器之視訊資料過濾
- English
- FILTERING VIDEO DATA USING A PLURALITY OF FILTERS
- Unlabeled
- 使用複數個濾波器之視訊資料過濾
- Unlabeled
- Video data filtering using multiple filters
Classification
- CPC, 5
- H04N19/117
- H04N19/85
- H04N19/44
- H04N19/46
- H04N19/80
- IPC, 1
- H04N7 26