Optimizing video encoders with digital signal processors

The various features of the high compression ratio standard provide a broad space for technicians to strike the best balance between complexity, latency, and other factors that constrain real-time performance.

Video compression with digital video coding can maintain acceptable video quality while minimizing video capacity. However, reduced video compression for ease of transmission and storage may sacrifice some image quality. In addition, video compression requires a high performance processor and a rich set of features in the design, as different types of video applications have different requirements in terms of resolution, bandwidth, and flexibility. The more flexible digital signal processor (DSP) not only meets these needs, but also leverages the rich options offered by advanced video compression standards to help system developers optimize their products.

The inherent structure and complexity of the video codec (codec) algorithm motivates us to adopt an optimization scheme. Encoders are very important because they must not only meet the application requirements, but they are also a major part of the video application's extensive processing tasks. Although the encoder is based on information theory, it still needs to be trade-off between different factors in the implementation process, so it is very complicated. Encoders should be highly configurable and provide developers with an easy-to-use system interface and optimized performance for a wide range of video applications.

Video compression features

The transmission or storage of raw digital video requires a lot of space. Advanced video codecs like H.264/MPEG-4 AVC can achieve compression ratios of up to 60:1 to 100:1 and ensure consistent throughput, which allows us to transmit with narrower transmission channels. And can reduce the space occupied by video storage.

Like the JPEG standard in the static image field, ITU and MPEG video coding algorithms also need to combine macroblocks in frames with techniques such as discrete transform coding (DCT or similar), quantization, and variable length coding. Once the algorithm establishes a baseline encoding (I frame), a large number of subsequent prediction frames (P frames) can be created by simply encoding the difference in visual content or residual values ​​between them. We can achieve this interframe difference using so-called motion compensation techniques. The algorithm first estimates the position of the previous reference frame macroblock into the current frame, then eliminates the redundancy and compresses the remainder.

Figure 1 shows the block diagram of a general motion compensated video encoder. The motion vector (MV) data describes the moving position of each block, which is created during the estimation phase, which is usually the most computationally intensive phase of the algorithm.

]

Figure 1: Block diagram of a general motion compensated video encoder.

Figure 2 shows the P frame (right) and its reference frame (left). Below the P frame, the remaining portion (black portion) shows the amount of code remaining after the motion vector (blue portion) is calculated.

Figure 2: shows the P frame and reference frame of the remaining code after calculating the motion vector.

The video compression standard only specifies the bitstream syntax and decoding process, giving the encoder a lot of room for innovation. Rate control is also an area of ​​innovation that allows the encoder to assign quantization parameters to determine the noise in the video signal in an appropriate manner. In addition, the advanced H.264/MPEG-4 AVC standard provides macroblock size, quarter-pel resoluTIon, multi-reference frames, bi-directional frame prediction (B-frame), and adaptive ring. A variety of options, such as in-loop deblocking, increase flexibility and enhance functionality.

Diverse application requirements

Video application requirements vary widely. The various features of the Advanced Compression Standard provide a broad space for technicians to strike the best balance between complexity, latency, and other factors that constrain real-time performance. For example, we can imagine that video telephony, video conferencing, and digital video cameras (DVRs) have different requirements for video.

Video call and video conference

For video telephony and video conferencing applications, transmission bandwidth is often the most important issue. Depending on the link, the bandwidth can range from tens to thousands of kilobytes per second. In some cases, we can ensure the speed of transmission, but for the Internet and many corporate intranets, the transmission speed will vary greatly. Therefore, video conferencing encoders typically need to meet different types of links and should adapt to changing available bandwidth in real time. After the transmitting system receives the conditions of the receiving end, it should constantly adjust the coded output to ensure the best video quality with the least possible video interruption. If the conditions are poor, the encoder can respond by reducing the average bit rate, skipping frames, or changing the image group (GoP, which is a mixture of I and P frames). I frames are compressed less than P frames, so the overall bandwidth required for GoP with fewer I frames is lower. Since the visual content of a video conference usually does not change, the number of I frames used can be reduced, making it lower than the level of entertainment applications.

H.264 uses an adaptive in-loop deblocking filter to process the edges of the block to keep the video smooth between the current frame and subsequent frames, thereby improving video encoding quality, which is especially effective at low bit rates. In addition, turning off the filter also increases the amount of visual data at a given bit rate and increases the motion estimation resolution from one-quarter pixel accuracy to one-half or more. In some cases, we may need to reduce the quality of deblocking filtering or reduce the resolution, thus reducing the complexity of the encoding work.

Since the provisioning of packets over the Internet does not guarantee quality, video conferencing often benefits from an encoding mechanism that increases fault tolerance. As shown in Figure 3, the progressive strip of the P frame can be used for intra coding (I picture strip), so that the complete I frame is no longer needed after the initial frame, and the entire I frame can be reduced. And the problem of image breakage.

Figure 3: Continuous strip images of P frames can be used for intra coding.

Digital video

Digital video cameras (DVRs) for home entertainment are probably the most widely used real-time video encoder applications. For such a system, how to achieve the best balance between storage capacity and image quality is a big problem. Unlike video conferencing, which cannot tolerate delays, compression of video recording can withstand some real-time delay if the system buffers enough memory available. A design that meets the actual requirements means that the output buffer can handle several frames, which is enough to keep the disk stable and continuous. However, in some cases, because the visual information changes very quickly, causing the algorithm to generate a large amount of P-frame data, the buffer may be blocked. As long as the blocking problem is solved, the image quality can be improved again.

One of the mechanisms for effectively making trade-offs is to instantly change the quantization parameter Qp. Quantization is one of the steps in the final phase of the compressed data algorithm. Increasing the quantization reduces the bitrate output of the algorithm, but the image distortion increases in proportion to the square of Qp. Increasing Qp will reduce the bitrate output of the algorithm, but it will also affect the quality. However, since this change occurs in real time, it helps to reduce frame skipping or picture breakage. If the visual content changes very quickly, such as when the buffer is congested, then although the image quality is reduced, it does not attract attention as the content changes slowly. After the visual content returns a lower bit rate and the buffer is emptied, Qp can be reset to normal.

Encoder flexibility

Because developers can use DSPs in a variety of video applications, DSP encoders should be designed to take advantage of their flexibility in compression standards. For example, encoders based on Texas Instruments' mobile application area OMAP media processor, TMS320C64x+DSP or DaVinciTM processor are highly flexible. To maximize compression performance, each encoder can be used to take full advantage of its platform's DSP architecture, including the Video and Image Co-Processor (VICP) built into some processors.

All encoders use a basic set of APIs with default parameters, so the system interface does not change regardless of the type of system used. Extended API parameters allow the encoder to meet the requirements of a particular application. By default, parameters can be preset to high quality, and high-speed preset settings are also available. The program uses extended parameters to override all preset parameters.

Extended parameters enable applications to meet H.264 or MPEG-4 requirements. The encoder can support several options, such as YUV 4:2:2 and YUV 4:2:0 input format, motion compensation for minimum quarter-pixel resolution, various I-frame intervals (from I frame to I frame) There are no subsequent I frames after the first I frame), Qp bit rate control, access motion vectors, deblocking filter control, simultaneous encoding of two or more channels, and I-strips and the like. The encoder can dynamically and unrestrictedly determine the search range of the default motion vector, a technique that is an improvement over fixed range search.

In addition, there is usually a sweet spot, which is the optimal output bit rate for a given input resolution and frames per second (fps). Developers should be aware of this optimal point of the encoder to achieve the best design balance between system transfer and image quality in the design.

Rice Cooker

A rice cooker or rice steamer is an automated kitchen appliance designed to boil or steam rice. It consists of a heat source, a cooking bowl, and a thermostat. The thermostat measures the temperature of the cooking bowl and controls the heat. Complex rice cookers may have many more sensors and other components, and may be multipurpose.  Cooking rice has traditionally required constant attention to ensure the rice was cooked properly, and not burnt. Electric rice cookers automate the process by mechanically or electronically controlling heat and timing, thus freeing up a heating element on the cooking range that had to be otherwise occupied for rice cooking. Although the rice cooker does not necessarily speed up the cooking process, with an electric rice cooker the cook's involvement in cooking rice is reduced to simply measuring the rice, preparing the rice properly and using the correct amount of water. Once the rice cooker is set to cook, the rice will be cooked with no further attention.

 

Features:

 

For modern home rice cookers, the smallest single-person model cooks 1 rice cup (180 ml), whereas large models can cook 10 cups. Commercial models can cook 20 or more cups. As a possible source of confusion, model specifications and names may list either cooked or uncooked capacity. Rice roughly doubles in size during cooking; therefore, a 10 cup (uncooked) rice cooker can produce up to 20 cups of cooked rice. The prices vary greatly, depending on the capacity, features, materials used, and the country of origin.

The majority of modern electric rice cookers are equipped with a stay-warm or keep-warm feature, which keeps the rice at an optimal temperature for serving without over-cooking it. Some gas cookers also have electric stay-warm mechanism. However, the usefulness of this feature degrades over time, a microwave may be more energy efficient or better suited to reheat rice that will sit longer than four hours.

Some rice cookers use induction heating, with one or more induction heaters directly warming the pot. This can improve energy efficiency.

Most modern rice cookers use aluminium for the inner cooking bowl. There are some models that use stainless steel instead of aluminium. Various other materials, such as copper, pure carbon, ceramic, and diamond powder coating, may be used for higher heat conductivity or better taste.

The pressure-cooking models can raise the water's boiling point higher, e.g., from 100 °C at 1.0 atm up to about 110 °C at 1.4 atm, which speeds cooking. The pressure-cooking models can also be used in high altitude areas, where the boiling temperature is below 100 Celsius. Pressure cookers are also suitable for cooking brown rice (which contains oils and bran fiber that cook differently from pure white rice starch). Some pressure rice cookers have a varying pressure control mechanism (named the "dual-pressure" method) that creates repeated pressure/release cycles during the cooking.

There also exist mechanisms to collect and return the boiled over liquid to the inner rice bowl.

Many cookers now have microprocessor-controlled cooking cycles, which are often used to adjust for rice and cooking type.

 

Applications

 

Rice cookers are typically used for the preparation of plain or lightly seasoned rice. Each rice cooker model may be optimized to cook a certain type of rice best. For example, most Japanese rice cookers are optimized for cooking Japanese rice and may not be the best for other types of rice[citation needed], although cooking time can be lengthened simply by more water.

The typical method of cooking long grain rice is boil-and-strain and/or steaming method. The absorption method used in Japanese rice cookers will produce slightly different texture and taste, usually stickier rice.

Brown rice generally needs longer cooking times than white rice, unless it is broken or flourblasted (which perforates the bran).

Different varieties of rice need different cooking times, depending on their grain size, grain shape, and grain composition. There are three main types of Asian rice: Oryza sativa subsp. indica, i.e., Indian rice (long grain rice, e.g., basmati rice and Thai jasmine rice), O. sativa subsp. javanica, i.e., Java rice (large grain rice) and O. sativa subsp. japonica, i.e., Japanese rice (medium grain rice, e.g., Calrose rice, short grain rice, e.g., most Japanese rice and risotto rice).

African rice, Oryza glaberrima, is an entirely separate species, but can be cooked in the same way. Zizania is not even in the same genus, although it is often called a rice (or "water oats"); it, too, can also be cooked in a rice cooker.

A rice cooker can be used to cook many boiled or steamed granular foods, such as pot barley, bulgar wheat, and dal. Provided the ingredients have similar cooking times, a rice cooker can cook mixtures such as khichdi. Some rice cookers can be used as automated couscoussiers, cooking couscous and a stew simultaneously.

Rice Cooker

Rice Cooker,Drum Rice Cooker,Deluxe Rice Cooker,Straight Rice Cooker

Guangzhou Taipeng Electrical Appliances Technology CO., LTD. , https://www.taipengelectric.com