Video processing device and video processing method

By ensuring odd-even pixel alignment for vertical lines in the image processing device, the issue of blurred and thinner lines during RGB to YC format conversion is resolved, maintaining line thickness and image quality.

WO2026058371A1PCT designated stage Publication Date: 2026-03-19DENSO TEN LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-12
Publication Date
2026-03-19

AI Technical Summary

Technical Problem

Converting 24-bit RGB video data to 16-bit YC format can degrade image quality, particularly causing vertical lines to appear blurred and thinner due to reduced color information sharing between adjacent pixels.

Method used

The image processing device ensures that vertical lines with a width of two pixels are rendered with their left pixel as odd-numbered and right pixel as even-numbered, maintaining consistent color difference information across adjacent pixels, even after color space conversion.

Benefits of technology

This approach maintains the perceived thickness of vertical lines regardless of their position on the screen, preventing blurring and thinning during the conversion from 24-bit RGB to 16-bit YC format.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024032670_19032026_PF_FP_ABST
    Figure JP2024032670_19032026_PF_FP_ABST
Patent Text Reader

Abstract

This video processing device comprises: a processor that generates a video for displaying on a display; and a reception unit that receives an operation of a user. When drawing each frame of the video so that a vertical line object having a width of two pixels included in each of the frames moves in a horizontal direction according to the operation of the user received by the reception unit, the processor generates the video by drawing each of the frames so that pixels on the left side of the object are drawn only as odd-numbered pixels as counted from the left end of each frame.
Need to check novelty before this filing date? Find Prior Art

Description

Image processing device, image processing method

[0001] The present invention relates to an image processing device and an image processing method.

[0002] Conventionally, color correction of 24-bit RGB video data input to a display is sometimes performed using the 16-bit YCbCr (also called YC) format. When performing color correction using YC, the color space of the video data is converted from 24-bit RGB to 16-bit YC, color correction is performed, and then it is converted back from 16-bit YC to 24-bit RGB. The RGB format is a color space format represented by the values ​​of red (R), green (G), and blue (B). The YC format is a color space format represented by the values ​​of luminance (Y), blue color difference (Cb), and red color difference (Cr). Converting from 24-bit RGB to 16-bit YC can degrade the image quality of the video data. In response to this, it has been proposed to provide multiple formats for 16-bit YC. That is, when converting data that may degrade image quality, there is a technology that can reduce image degradation by selecting the format after conversion from multiple formats according to the color difference information of the data (Patent Document 1). Furthermore, there is a technique that, when image data includes text data, can eliminate color bleeding at the edges of the shapes that make up the background of the text by not performing a color space conversion (Patent Document 2).

[0003] Japanese Patent Publication No. 2007-108439 Japanese Patent Publication No. 2007-133295

[0004] Incidentally, when converting video data in 24-bit RGB format including an object of a vertical line with a width of two pixels into video data in 16-bit YC format, if the object of the vertical line is drawn so as to move horizontally in the middle of the screen, depending on the drawing position of the object of the vertical line, the color of the edge portion of the vertical line may appear to be blurred and thinned. Although details will be described later, this is because in video data in 24-bit RGB format, 8-bit information is assigned to each pixel for red (R), green (G), and blue (B), respectively, whereas in video data in 16-bit YC format, although 8-bit information is given to each pixel for luminance (Y), for the blue color difference (Cb) and the red color difference (Cr), 8-bit information is shared by two adjacent pixels, which results from a decrease in the amount of information held by the video data during the color space conversion.

[0005] The technology disclosed in the present case provides a technology that enables an object of a vertical line with a width of two pixels to appear with a constant thickness regardless of the drawing position in the screen even when performing color space conversion of video data accompanied by a decrease in the amount of information.

[0006] In order to solve the above problems, the following means are adopted. That is, a first aspect is a video processing apparatus including a processor that generates a video for display on a display, and a reception unit that receives a user operation. When drawing each frame so that an object of a vertical line with a width of two pixels included in each frame of the video moves horizontally in response to a user operation received by the reception unit, the processor draws each frame so that the pixel on the left side of the object is drawn only as an odd-numbered pixel counted from the left end of each frame, and generates a video.

[0007] The disclosed image processing device renders a vertical line object with a width of two pixels such that the left pixel of the object is an odd-numbered pixel and the right pixel is an even-numbered pixel. Therefore, even if the color space of the video data containing the object is converted from 24-bit RGB format to 16-bit YC format, the two horizontally adjacent pixels that make up the object will always have the same color difference information and will not be affected by other adjacent pixels. For this reason, the disclosed image processing device can make a vertical line object with a width of two pixels appear to have a constant thickness regardless of its rendering position on the screen.

[0008] Figure 1 shows an example of 24-bit YC video data converted from 24-bit RGB video data. Figure 2 shows an example of 16-bit YC video data converted from 24-bit YC video data. Figure 3 shows an example of 24-bit YC video data converted from 24-bit RGB video data. Figure 4 shows an example of 16-bit YC video data converted from 24-bit YC video data. Figure 5 shows an example of the configuration of the video processing device 100 of the embodiment. Figure 6 shows an example of the operation flow of the control unit 110 of the video processing device 100. Figure 7 shows an example of the display of the radio frequency selection screen 200 displayed on the display 130.

[0009] Embodiments will be described below with reference to the drawings. The configurations of the embodiments are illustrative, and the configuration of the invention is not limited to the specific configurations of the disclosed embodiments. In carrying out the invention, specific configurations may be adopted as appropriate depending on the embodiment.

[0010] [Embodiment] <RGB-YC Conversion> Here, we will explain the conversion of the color space from 24-bit RGB video data to 16-bit YC video data (RGB-YC conversion). Here, we will explain the RGB-YC conversion as converting from 24-bit RGB to 24-bit YC, and then from 24-bit YC to 16-bit YC. In a 16-bit YC format after conversion, two pixels adjacent horizontally in the pixel array share color difference (Cb, Cr) information, which can reduce the data size (amount of information) of the video data.

[0011] 24-bit RGB video data is defined as a system where each pixel of the image in each frame constituting the video data is represented by a pixel value (R value, G value, B value) in the RGB color space. An image is assumed to have X pixels horizontally and Y pixels vertically. For example, each pixel indicated by coordinates (x, y) in the image is represented by an R value representing red, a G value representing green, and a B value representing blue. x and y are, for example, integers between 1 and X, and between 1 and Y, respectively. In 24-bit RGB, the R value, G value, and B value are each represented by 8 bits. The conversion from 24-bit RGB video data to 24-bit YC is performed using a predetermined conversion formula. 24-bit YC video data is defined as a system where each pixel of the image in each frame constituting the video data is represented by a pixel value (Y value, Cb value, Cr value) in the YC color space. In 24-bit YC, the Y value, Cb value, and Cr value are each represented by 8 bits.

[0012] In this embodiment, the horizontal direction (x-axis direction) represents the scanning direction (horizontal scanning direction) of the scan lines within the image (frame) output to the display 130 (see Figure 5), and the increasing direction of the x-axis is the direction from the side where a single horizontal scan starts to the side where it ends (the direction in which the scan point moves). Horizontal scanning may start from either the left or right end of the frame, but in the following description, it will be assumed that it starts from the left end of the frame and ends at the right end. The vertical direction (y-axis direction) represents the direction perpendicular to the scan lines within the frame (vertical scanning direction), and the increasing direction of the y-axis is the direction from the side where a single vertical scan starts to the side where it ends (the direction in which the scan line moves). Vertical scanning may start from either the top or bottom end of the frame, but in the following description, it will be assumed that it starts from the top end of the frame and ends at the bottom end.

[0013] In this embodiment, a 2-pixel wide vertical line object is an image element composed of two pixels adjacent to each other in the horizontal direction (x-axis direction), and is typically a line drawn in the background image with a different color from the background, extending vertically (y-axis direction). However, there is no limit to the vertical length of the line; for example, even if it is only one pixel long vertically (i.e., a horizontal rectangle with a length of 2 pixels horizontally and 1 pixel vertically), it will be conveniently referred to as a "vertical line." Also, the direction in which the line extends is not necessarily limited to the direction parallel to the y-axis direction; for example, diagonal lines that shift horizontally by 2 pixels with each scan line are also included. Furthermore, a 2-pixel wide vertical line object does not have to be composed entirely of a width of 2 pixels horizontally; it may include a portion of a width of 2 pixels horizontally. The two adjacent pixels that constitute the object typically have the same color (pixel value), but the two pixels may have different colors as long as they are different from the background color. Also, the color may differ depending on the vertical location of the line.

[0014] Figure 1 shows an example of 24-bit YC video data converted from 24-bit RGB video data. The video data shown in Figure 1 is a part of the video data. Each pixel in the video data is represented by its position in the video data using a horizontal x-coordinate and a vertical y-coordinate. Both the x-coordinate and y-coordinate start from 1. The same applies to the x-coordinate and y-coordinate in other figures. In the example in Figure 1, pixels with x-coordinates from 1 to 10 and y-coordinate A are shown (A is an integer greater than or equal to 1). Here, each pixel is assigned a Y value, Cb value, and Cr value in the YC color space. One color is specified by the Y value, Cb value, and Cr value. Each value is represented by 8 bits. That is, each pixel is represented by 24 bits.

[0015] Here, the pixels at coordinates (5,A) and (6,A) are assigned Y=110, Cb=60, and Cr=200. Other pixels, such as at coordinate (1,A), are assigned Y=0, Cb=0, and Cr=0. If we consider luminance Y=0 as black, then in Figure 1, within the black region, the two pixels at coordinates (5,A) and (6,A) are assigned colors other than black. In other words, the image formed by the pixels at coordinates (5,A) and (6,A) represents a portion (the portion corresponding to one scan line) of a vertical line object with a width of two pixels.

[0016] Figure 2 shows an example 1 of 16-bit YC video data converted from 24-bit YC video data. Here, the 16-bit YC video data converted from the 24-bit YC video data in Figure 1 is shown. In the example in Figure 2, as in Figure 1, pixels with x coordinates from 1 to 10 and y coordinate A are shown (A is an integer greater than or equal to 1). Here, a Y value of the YC color space is assigned to each pixel. The converted Y value of the pixel at each coordinate is the same as the Y value of the pixel at each coordinate before conversion (24-bit YC). In addition, a Cb value and a Cr value of the YC color space are assigned to every two adjacent pixels horizontally.

[0017] In Figure 2, the Cb and Cr values ​​of the two pixels at coordinates (2N-1, A) and (2N, A) after transformation (N is an integer from 1 to 5) are both assigned the Cb and Cr values ​​of the 24-bit YC before the transformation of coordinate (2N-1, A). That is, the two pixels at coordinates (2N-1, A) and (2N, A) share the same Cb and Cr values. Therefore, the pixels at coordinates (2N-1, A) and (2N, A) are assigned two Y values, one Cb value, and one Cr value. Each value is represented by 8 bits. Thus, the two pixels are represented by 32 (= 8 × 4) bits. In this way, video data in which two pixels are represented by 32 bits using two Y values, one Cb value, and one Cr value is called 16-bit YC video data. In 16-bit YC, the effective number of bits per pixel becomes 16 by sharing the Cb and Cr values ​​for adjacent pixels in the horizontal direction. Even when video data is converted to 16-bit YC, the bit depth of each individual pixel remains 24 bits, and each pixel is represented by 8 bits for Y, 8 bits for Cb, and 8 bits for Cr. However, because the horizontal resolution of the color difference information (Cb and Cr values) is halved, the data size (amount of information) of the video data is compressed.

[0018] In the example in Figure 2, the pixels at coordinates (1, A) and (2, A) both have a color represented by Y=0, Cb=0, and Cr=0. Similarly, the pixels at coordinates (5, A) and (6, A) both have a color represented by Y=110, Cb=60, and Cr=200. In other words, the color of each pixel remains unchanged from its color before the transformation.

[0019] Figure 3 shows an example 2 of 24-bit YC video data converted from 24-bit RGB video data. In the example in Figure 3, as in Figure 1, pixels with x coordinates from 1 to 10 and y coordinate A are shown (A is an integer greater than or equal to 1). Here, the pixels at coordinates (4, A) and (5, A) are assigned Y=110, Cb=60, and Cr=200. Other pixels, such as the one at coordinate (1, A), are assigned Y=0, Cb=0, and Cr=0. The video data in Figure 3 is the same as the video data in Figure 1, but with the pixels at coordinates (5, A) and (6, A) shifted by one pixel in the -x direction. The image represented by the pixels at coordinates (4, A) and (5, A) represents a portion (the portion of one scan line) of a vertical line object with a width of two pixels.

[0020] Figure 4 shows Example 2 of 16-bit YC video data converted from 24-bit YC video data. Here, it represents 16-bit YC video data converted from the 24-bit YC video data in Figure 3. In the example in Figure 4, as in Figure 3, pixels with x coordinates from 1 to 10 and y coordinate A are shown (A is an integer greater than or equal to 1). The conversion method is the same as in the example in Figure 2. As in the example in Figure 2, after conversion, the colors of the pixels at coordinates (1,A), (2,A), (3,A), (5,A), (7,A), (8,A), (9,A), and (10,A) remain unchanged from before the conversion. On the other hand, the color of the pixel at coordinate (4,A) becomes Y=110, Cb=0, Cr=0. The color of the pixel at coordinate (4,A) is different from the color before the conversion. Also, the color of the pixel at coordinate (6,A) becomes Y=0, Cb=60, Cr=200. The color of the pixel at coordinate (6, A) is also different from its color before the conversion. In other words, the conversion from 24 bits to 16 bits causes a change in the color of each pixel.

[0021] In the example in Figure 4, before the transformation, the pixels at coordinates (4,N) and (5,N) had Y=110, Cb=60, and Cr=200. After the transformation, the pixel at coordinate (5,N) still has Y=110, Cb=60, and Cr=200, but the pixels on either side of coordinate (5,N) have different colors. As a result, the two pixels at coordinates (4,N) and (5,N) that had the color Y=110, Cb=60, and Cr=200 now have the color Y=110, Cb=60, and Cr=200 in one pixel at coordinate (5,N). Therefore, the edges of the 2-pixel wide vertical line object are blurred and blend into the background, making it appear thinner.

[0022] As described above, when a vertical line object with a width of 2 pixels is drawn on pixels at coordinates (5, N) and (6, N), no color change occurs due to color space conversion, and it can be seen with a width of 2 pixels. However, when it is drawn on pixels at coordinates (4, N) and (5, N), the edges of the object may become blurred due to color mixing with adjacent pixels, making the object appear thinner than 2 pixels.

[0023] In the above explanation, it was stated that in color space conversion, odd-numbered pixels in the x-axis direction share the color difference information they had before conversion with even-numbered pixels. However, it is also possible to share the color difference information that even-numbered pixels had before conversion with odd-numbered pixels, or to share the average value of the color difference information that both pixels had before conversion. In any case, when pixels constituting a vertical line object with a width of two pixels are mixed with pixels constituting the background, the edges of the object may blur and blend into the background, making the object appear narrower than two pixels.

[0024] In Figure 1, the pixels at coordinates (5,A) and (6,A) were given the same pixel values ​​Y=110, Cb=60, and Cr=200. However, the pixels at coordinates (5,A) and (6,A) may be given different pixel values. In this case, due to the color space transformation, the pixels at coordinates (5,A) and (6,A) will have the same color difference information (for example, the color difference information that the pixel at coordinate (5,A) had before the transformation). That is, the pixel values ​​(colors) of the pixels at coordinates (5,A) and (6,A) will change before and after the transformation. However, even in this case, color mixing occurs only between the two pixels at coordinates (5,A) and (6,A), and no color mixing occurs between the pixels at coordinates (5,A) and (6,A) and the other pixels (coordinates (4,A) and (7,A)). Therefore, a vertical line object with a width of 2 pixels in the video data before the transformation will appear to have a width of 2 pixels in the video data after the transformation.

[0025] Similarly, in Figure 3, the pixels at coordinates (4,A) and (5,A) were given the same pixel values ​​Y=110, Cb=60, and Cr=200, but the pixels at coordinates (4,A) and (5,A) may be given different pixel values. In this case, due to the color space transformation, the pixel at coordinate (4,A) will have the same color difference information as the pixel at coordinate (3,A), and the pixel at coordinate (5,A) will have the same color difference information as the pixel at coordinate (6,A). That is, the pixel values ​​(colors) of the pixels at coordinates (4,A) and (5,A) will change before and after the transformation. In this case, color mixing occurs between the pixels at coordinates (4,A) and (5,A) and the adjacent pixels at coordinates (3,A) and (6,A), and as a result, the edges of the object become blurred due to color mixing with the pixels that make up the background, making them appear thinner than two pixels.

[0026] On the other hand, vertical line objects with a width of 1 pixel are always converted to vertical line objects with a width of 2 pixels through color space conversion, so this kind of image degradation does not occur (or is not noticeable). Similarly, for vertical line objects with a width of 3 pixels or more, the line width becomes relatively thicker relative to the blurred area, so the image degradation is not noticeable.

[0027] Here, the RGB-YC conversion is described as converting from 24-bit RGB to 24-bit YC and then from 24-bit YC to 16-bit YC. However, the RGB-YC conversion may also be performed by directly converting from 24-bit RGB to 16-bit YC.

[0028] (Configuration Example) Figure 5 shows an example configuration of the video processing device 100 of this embodiment. The video processing device 100 comprises a control unit 110, a video IC (Integrated Circuit) 120, a display 130, and a touch panel 140. The video processing device 100 is, for example, an in-vehicle video device mounted in a vehicle such as an automobile, or a mobile terminal such as a smartphone or tablet. The in-vehicle video device has, for example, video, audio, television, radio, and navigation functions. The video processing device 100 is not limited to in-vehicle video devices or mobile terminals.

[0029] The control unit 110 controls the entire video processing device 100. The control unit 110 is, for example, a System on a Chip (SoC). An SoC has elements with various functions mounted on a single chip. The control unit 110 includes an input unit 111, a processor 112, a memory 113, and an output unit 114. The input unit 111 is an input interface that receives input such as video data from other information processing devices. The processor 112 is, for example, a arithmetic processing unit such as a CPU (Central Processing Unit). The processor 112 realizes the function of the control unit 110 by executing a program that has been loaded into memory in an executable format. The processor 112 may include a Graphical Processing Unit (GPU), a Digital Signal Processor (DSP), etc. The memory 113 is a main memory such as a Random Access Memory (RAM) or Read Only Memory (ROM). The memory 113 stores programs and various data that the processor 112 reads. Furthermore, the memory 113 reserves a workspace for the processor 112. The output unit 114 is an output interface that outputs video data and the like generated by the processor 112 to the video IC 120 and the like.

[0030] The processor 112 generates an image by superimposing other images onto the image of the video data input from the input unit 111, etc., or the image of the video data stored in the memory 113, etc., and outputs it to the output unit 114. The processor 112 sequentially generates an image for each video frame based on user operations received from the touch panel 140. This image is, for example, an image in which an image of a frequency selection bar that the user can operate is superimposed onto a radio broadcast frequency selection screen.

[0031] The video IC 120 performs a predetermined color correction process on the image input from the control unit 110 and outputs the color-corrected image to the display 130. The video IC 120 includes an RGB-YC conversion unit 121, a color correction unit 122, and a YC-RGB conversion unit 123. The video IC 120 is assumed to receive an image in RGB color space in 24-bit RGB format from the control unit 110.

[0032] The RGB-YC conversion unit 121 converts an image in the RGB color space of the 24-bit RGB format to an image in the YC color space of the 16-bit YC format. The RGB-YC conversion is as described above. The color correction unit 122 performs a predetermined color correction process on the image in the YC color space. The YC-RGB conversion unit 123 converts the 16-bit YC format image in the YC color space, which has been color corrected by the color correction unit 122, to an image in the RGB color space of the 24-bit RGB format. The conversion of the image from RGB to YC is performed according to a predetermined conversion formula. The YC-RGB conversion unit 123 outputs the converted image to the display 130. The processing in the video IC 120 is performed sequentially for each frame of the video.

[0033] The video IC 120 is implemented by a CPU, GPU, DSP, memory, etc. The CPU implements the functions of the video IC 120 through a program that is executablely deployed in memory. The video IC 120 performs color conversion, which involves a reduction in the number of bits, and color correction, thereby reducing the processing load on the video IC 120. The video IC 120 is an example of a video processing unit.

[0034] The display 130 displays the image output from the video IC 120. The display 130 is, for example, a display device such as an LCD (Liquid Crystal Display) or an organic EL (Electroluminescence).

[0035] The touch panel 140 is a sensor stacked on the display 130 that detects user touch operations. Examples of such sensors include capacitive, infrared, and resistive sensors. The touch panel 140 detects user operations (such as the contact position of the user's finger) and outputs the result to the processor 112 of the control unit 110. The touch panel 140 is an example of a reception unit.

[0036] (Example of operation) Figure 6 is a diagram showing an example of the operation flow of the control unit 110 of the video processing device 100. Here, a radio broadcast frequency selection screen is displayed on the display 130, and the operation when the user operates the touch panel 140 to select a radio broadcast frequency will be explained as an example. Here, the control unit 110 is constantly generating an image for each frame of the video. The operation flow in Figure 6 is assumed to start when the processor 112 of the control unit 110 receives a detection result from the touch panel 140.

[0037] Figure 7 shows an example of the radio frequency selection screen 200 displayed on the display 130. In the screen of Figure 7, the direction from left to right is the +x direction, and the direction from top to bottom is the +y direction. The frequency selection screen 200 is generated by the control unit 110 and the video IC 120 and displayed on the display 130. The frequency selection screen 200 includes a frequency scale 210, a frequency selection bar 220, and a selected frequency display area 230. The frequency scale 210 is a display that serves as a guide for the frequency to be selected by the frequency selection bar 220. In the example of Figure 7, the scale is marked from left to right in the order of 87.5 MHz, 90.1 MHz, 92.6 MHz, 95.2 MHz, 97.8 MHz, 100.3 MHz, 102.9 MHz, 105.4 MHz, and 108.0 MHz.

[0038] The frequency selection bar 220 is a bar that the user can move horizontally (left and right) on the touch panel 140 by dragging it, using the frequency scale 210 as a guide, to select (change) the desired frequency. The frequency selection bar 220 is an image that is moved. The frequency selection bar 220 is an example of a vertical line object with a width of 2 pixels and a horizontal pixel count of 2 pixels.

[0039] Here, we assume that the leftmost pixel of the frequency selection bar 220 is drawn on the display 130 as the odd-numbered pixel (2N-1) from the leftmost pixel (where N is an integer greater than or equal to 1). That is, the x-coordinates of two horizontally adjacent pixels of the frequency selection bar 220 are 2N-1 and 2N, similar to the pixels at coordinates (5,A) and (6,A) in Figure 1.

[0040] The selected frequency display area 230 is an area that digitally displays the frequency selected by the frequency selection bar 220. In the example in Figure 7, 101.95 MHz is selected. In the radio broadcasting function of the video processing device 100, the frequency of the radio broadcast can be changed in accordance with the movement of the frequency selection bar 220 on the touch panel 140. Here, we will explain the image generation in the control unit 110 when the user moves the frequency selection bar 220 horizontally by dragging on the touch panel 140.

[0041] Returning to Figure 6, in S101, the processor 112 of the control unit 110 determines whether or not it has detected a lateral movement operation of the frequency selection bar 220. A lateral movement operation of the frequency selection bar 220 is an operation in which the user moves the frequency selection bar 220 horizontally on the touch panel 140. When the touch panel 140 detects a drag operation or the like by the user on the touch panel 140, it outputs the detection result to the processor 112. The detection result is, for example, the start position of the drag operation and the end position of the drag operation. The start position of the drag operation is the starting position of the movement on the frequency selection bar 220, and the end position of the drag operation is the destination position on the frequency selection bar 220.

[0042] Since the processor 112 has generated the image of the screen displayed on the display 130 in the past, in the screen displayed on the display 130, it has recognized in advance where the frequency selection bar 220 and the like are displayed. When the processor 112 receives the detection result of the drag operation from the touch panel 140, it confirms the drag operation start position. When the drag start position is within the area of the frequency selection bar 220, the processor 112 calculates the horizontal difference between the drag operation start position (the original position) and the drag operation end position (the destination position). The difference is, for example, the x coordinate of the drag operation start position - the x coordinate of the drag operation end position.

[0043] When the calculated difference is not zero, the processor determines that a horizontal movement operation of the frequency selection bar 220 has been detected. The horizontal movement operation of the frequency selection bar 220 may be detected by other methods (for example, a swipe with a finger from the original position, a touch with a finger at a desired position on the frequency scale 210, a press, etc.). When a horizontal movement operation of the frequency selection bar 220 is detected (S101; YES), the process proceeds to S102. When a horizontal movement operation of the frequency selection bar 220 is not detected (S101; NO), the process of the operation flow in FIG. 6 ends.

[0044] In S102, the processor 112 calculates the horizontal movement amount of the frequency selection bar 220. The processor 112 determines the horizontal movement amount based on the difference calculated in S101. The processor 112 determines the horizontal movement amount in pixel units. For example, when the difference is B pixels, the horizontal movement amount is determined to be C pixels (C is an integer). Hereinafter, it is assumed that the horizontal movement amount is represented by an integer. Here, the difference B is represented by the resolution of the touch panel 140. The difference B is converted into a length in pixel units. However, when the pixel unit set in the display 130 and the resolution of the touch panel 140 are consistent, the conversion is unnecessary. For example, C, which is the horizontal movement amount, is a value obtained by rounding the difference B converted into pixel units to the first decimal place. The relationship between the difference and the horizontal movement amount is not limited to what is shown here.

[0045] Furthermore, the processor 112 calculates the display position of the frequency selection bar 220 in the next frame based on the display position and horizontal movement amount of the frequency selection bar 220 in the current frame of the video (the image displayed on the display 130). Here, the next frame refers to the first frame output after the horizontal movement amount is detected. That is, the processor 112 adds the horizontal movement amount to the x-coordinate of the frequency selection bar 220 in the image of the current frame (the frame before the horizontal movement amount is detected) to obtain the x-coordinate of the frequency selection bar 220 in the next frame. Note that if the frequency selection bar 220 does not move vertically, the y-coordinate of the frequency selection bar 220 in the next frame is the same as the y-coordinate of the frequency selection bar 220 in the image of the current frame. The image of the current frame is an example of the first video.

[0046] In S103, the processor 112 determines whether the display position of the leftmost pixel in the frequency selection bar 220 in the next frame, calculated in S102, is an odd-numbered pixel counted from the left edge of the frame. As described above, the leftmost pixel in the frequency selection bar 220 in the current video frame is drawn to an odd-numbered pixel counted from the left edge of the frame. Therefore, if the horizontal movement is an odd number of pixels, the display position (drawing position) of the leftmost pixel in the frequency selection bar 220 in the next frame will be an even-numbered pixel counted from the left edge of the frame.

[0047] On the other hand, if the horizontal movement is an even number of pixels, the display position of the leftmost pixel in the frequency selection bar 220 in the next frame will be an odd-numbered pixel counted from the left edge of the frame. If the display position of the leftmost pixel in the frequency selection bar 220 in the next frame is an odd-numbered pixel counted from the left edge of the frame (S103; YES), the process proceeds to S105. If the display position of the leftmost pixel in the frequency selection bar 220 in the next frame is an even-numbered pixel counted from the left edge of the frame (S103; NO), the process proceeds to S104.

[0048] In S104, the processor 112 changes the display position of the leftmost pixel in the frequency selection bar 220 in the next frame to an odd-numbered pixel counted from the left end of the frame. The processor 112 uses the value obtained by adding +1 pixel or -1 pixel to the horizontal movement amount calculated in S102 as the new horizontal movement amount. Thereby, the horizontal movement amount becomes an even number of pixels. The processor 112 calculates the display position of the frequency selection bar 220 in the next frame based on the display position of the frequency selection bar 220 in the current video frame and the horizontal movement amount. That is, the processor 112 adds the horizontal movement amount to the x coordinate of the frequency selection bar 220 in the current video frame to obtain the x coordinate of the frequency selection bar 220 in the next frame. When the frequency selection bar 220 does not move vertically, the y coordinate of the frequency selection bar 220 in the next frame is the same as the y coordinate of the frequency selection bar 220 in the current video frame.

[0049] In S105, the processor 112 generates an image of the next frame including the frequency selection bar 220. The processor 112 synthesizes the frequency selection bar 220 and other images to generate an image of the next frame. The display position of the frequency selection bar 220 in the image of the next frame is the position calculated in S102 or S104. That is, the display position of the leftmost pixel in the frequency selection bar 220 in the next frame is an odd-numbered pixel counted from the left end of the frame. The processor 112 outputs the generated image of the next frame to the output unit 114.

[0050] In S106, the output unit 114 outputs the image output from the processor 112 to the video IC 120. The video IC 120 performs predetermined processing on the input image and outputs it to the display 130. The display 130 displays the image output from the video IC 120.

[0051] As a result, in the frame image output from the control unit 110, the leftmost pixel of the frequency selection bar 220 is drawn to the odd-numbered pixels counting from the left edge of the frame. Therefore, even when the image is converted from 24-bit RGB to 16-bit YC in the video IC 120, the color of the frequency selection bar 220 does not change, as in the examples in Figures 1 and 2. Also, in the frame image output from the control unit 110, the leftmost pixel of the frequency selection bar 220 is never drawn to the even-numbered pixels counting from the left edge of the frame. Therefore, even when the image is converted from 24-bit RGB to 16-bit YC in the video IC 120, the color of the frequency selection bar 220 does not change, as in the examples in Figures 3 and 4. In other words, the frequency selection bar 220 does not appear thinner.

[0052] (Other) In the above explanation, the frequency selection bar 220 was given as an example of a vertical line object with a width of 2 pixels, but the processor 112 may use other image elements (such as a cursor) as vertical line objects with a width of 2 pixels instead of the frequency selection bar 220. Also, image elements that include a portion with a width of 2 pixels horizontally, such as text or icons, may be used as vertical line objects with a width of 2 pixels. The processor 112 only needs to move the position of the entire object so that the leftmost pixel in the portion with a width of 2 pixels horizontally is an odd-numbered pixel counted from the left edge of the frame.

[0053] Furthermore, a vertical line object with a width of 2 pixels may include multiple portions with a width of 2 pixels in the horizontal direction. In this case, the processor 112 should move the object's position so that the leftmost pixel of all portions with a width of 2 pixels in the horizontal direction is an odd-numbered pixel counted from the left edge of the frame. If it is not possible to make the leftmost pixels of all portions with a width of 2 pixels in the horizontal direction an odd-numbered pixel counted from the left edge of the frame, the processor will make the leftmost pixels of the portions with a width of 2 pixels in the horizontal direction that have more portions with a width of 2 pixels in the horizontal direction an odd-numbered pixel counted from the left edge of the frame. That is, the processor compares the calculated horizontal movement amount with the horizontal movement amount obtained by adding 1 (or -1) to that amount, and adopts the horizontal movement amount that makes the leftmost pixels of the portions with a width of 2 pixels in the horizontal direction that have more portions with a width of 2 pixels in the horizontal direction an odd-numbered pixel counted from the left edge of the frame.

[0054] If the horizontal movement of a 2-pixel wide vertical line object is large (for example, if the horizontal movement is 20 pixels or more), the processor 112 may divide the process into multiple frames and generate images of frames containing the 2-pixel wide vertical line object that is being moved. For example, if the horizontal movement of the processor 112 is 20 pixels, it may divide the current frame into three frames and generate images of the moving 2-pixel wide vertical line object. In this case, if the horizontal movement is divided equally among the three frames, the horizontal movement from the current frame will be 6.7 (= 20 × 1 / 3) in the first frame, 13.3 (= 20 × 2 / 3) in the second frame, and 20 (= 20 × 3 / 3) in the third frame. Therefore, the processor 112 sets the horizontal movement from the current frame to the even number of pixels closest to each horizontal movement when divided equally, so that the horizontal movement in each frame is an even number of pixels. That is, the processor 112 sets the horizontal movement from the current frame to 6 in the first frame, 14 in the second frame, and 20 in the third frame.

[0055] This ensures that the amount of horizontal movement between frames is an even number of pixels. In other words, when the processor 112 continuously moves a 2-pixel wide vertical line object in the horizontal direction, it ensures that the amount of horizontal movement between frames is an even number of pixels. This prevents the 2-pixel wide vertical line object from appearing thin even when it is moved continuously.

[0056] In S101, the operation to move an image horizontally was described as a drag operation, but the operation to move an image horizontally may also be a touch operation that specifies the destination of the image. This touch operation is an example of a specific operation that specifies the coordinates (on the screen) in the image displayed on the display 130. In this case, the position where the touch operation is performed on the touch panel 140 is the destination position of the image. Also, the position of the image to be moved in the current frame is the source position of the image. Similarly, if the horizontal difference between the source position and the destination position of the image is not an even number of pixels, the processor 112 adds +1 pixel or -1 pixel to the amount of horizontal movement (shifts by 1 pixel) to make the new amount of horizontal movement an even number of pixels. This makes it possible to suppress the appearance of a 2-pixel wide vertical line object as thin even when moving a 2-pixel wide vertical line object by touch operation.

[0057] In the example above, the processor 112 generated an image in which the vertical line object, which is two pixels wide, was moved in response to a movement operation on the object. However, the process exemplified above, in which the drawing position of the leftmost pixel of the vertical line object, is set to an odd-numbered pixel counting from the left edge of the video frame, is not limited to the display of the vertical line object, which is two pixels wide, or the image area containing it, during a movement operation. In other words, the process exemplified in this embodiment can be applied to processes in which the amount of information is reduced in video, images, etc., such as conversion from 24-bit RGB to 16-bit YC, and the video, etc., is converted to a format in which information is shared between two adjacent pixels.

[0058] For example, the input unit 111 of the control unit 110 receives video containing two-pixel wide vertical line objects from another information processing device. The input unit 111 transmits the received video to the processor 112. The processor 112 extracts two-pixel wide vertical line objects from each frame of the received video. The processor 112 determines whether the display position of the leftmost pixel in the extracted two-pixel wide vertical line object is an odd-numbered pixel counted from the left edge of the frame. If the display position of the leftmost pixel in the extracted two-pixel wide vertical line object is an odd-numbered pixel counted from the left edge of the frame, the processor 112 outputs the received video to the output unit 114.

[0059] Furthermore, if the display position of the leftmost pixel of the extracted 2-pixel wide vertical line object is an even-numbered pixel counted from the left edge of the frame, the processor 112 changes the display position of the leftmost pixel of the extracted 2-pixel wide vertical line object. The processor 112 offsets the display position of the leftmost pixel of the extracted 2-pixel wide vertical line object by +1 pixel or -1 pixel horizontally so that the display position of the leftmost pixel of the extracted 2-pixel wide vertical line object becomes an odd-numbered pixel counted from the left edge of the frame. That is, the processor 112 sets the horizontal movement amount of the extracted 2-pixel wide vertical line object to +1 pixel or -1 pixel. The processor 112 adds this horizontal movement amount to the x-coordinate of the 2-pixel wide vertical line object in the new video frame to obtain the x-coordinate of the 2-pixel wide vertical line object in the input video frame. Also, the change in display position may be an offset of 1 pixel to the left or right for the entire frame, or an offset of 1 pixel to the left or right for only the 2-pixel wide vertical line object within the frame. In particular, when offsetting only two-pixel-wide vertical line objects within a frame, this is effective when the frame contains multiple two-pixel-wide vertical line objects, as will be explained later. The gaps created by the offset can be made less noticeable by filling them with the same color as the adjacent pixels.

[0060] The processor 112 combines the extracted 2-pixel wide vertical line object with other images to generate a new video frame image. The display position of the 2-pixel wide vertical line object in the frame image is the position calculated here. That is, the display position of the leftmost pixel of the 2-pixel wide vertical line object in the frame is the odd-numbered pixel, counting from the left edge of the frame. The processor 112 outputs the generated frame image to the output unit 114. Even when the video provided by other information processing devices includes 2-pixel wide vertical line objects, the processor 112 can suppress the 2-pixel wide vertical line objects from appearing thin during color conversion that involves a reduction in the number of bits.

[0061] Furthermore, if the processor 112 extracts multiple vertical line objects with a width of 2 pixels from the received video, it performs the above processing on each of these vertical line objects with a width of 2 pixels to generate an image of a new video frame.

[0062] In the above example, the control unit 110 performs a process to set the drawing position of the leftmost pixel in a 2-pixel wide vertical line object to an odd-numbered pixel, counting from the left edge of the video frame. However, instead of the control unit 110, the video IC 120 may perform this process immediately before the process of converting from 24-bit RGB to 16-bit YC, or when outputting to frame memory or the like during the process of converting from 24-bit RGB to 16-bit YC.

[0063] (Operation and Effects of the Embodiment) The video processing device 100 calculates the amount of horizontal movement (horizontal movement) of a 2-pixel wide vertical line object that is moved by user operation on the touch panel 140. If the drawing position of the leftmost pixel of the 2-pixel wide vertical line object at the destination of the movement due to the calculated horizontal movement amount is an even-numbered pixel counted from the left edge of the video frame, the video processing device 100 adds +1 pixel or -1 pixel to the horizontal movement amount. As a result, the drawing position of the leftmost pixel of the 2-pixel wide vertical line object becomes an odd-numbered pixel counted from the left edge of the video frame. By making the drawing position of the leftmost pixel of the 2-pixel wide vertical line object an odd-numbered pixel counted from the left edge of the video frame, it is possible to suppress the 2-pixel wide vertical line object from appearing thin even when a color space conversion is performed which involves a reduction in the effective number of bits.

[0064] <Computer-Readable Recording Medium> A program that enables a computer or other machine or device (hereinafter referred to as "computer, etc.") to perform any of the above functions can be recorded on a recording medium that is readable by a computer, etc. Then, by having the computer, etc. read and execute the program on this recording medium, the function can be provided.

[0065] Here, a recording medium readable by a computer refers to a recording medium that stores information such as data and programs through electrical, magnetic, optical, mechanical, or chemical means, and can be read by a computer. Such a recording medium may contain computer components such as a CPU and memory, and the CPU may be used to execute programs.

[0066] Examples of such recording media that can be removed from computers, etc., include flexible disks, magneto-optical disks, CD-ROMs, CD-R / Ws, DVDs, DATs, 8mm tapes, and memory cards.

[0067] Furthermore, there are storage media fixed to computers, such as hard disks and ROMs.

[0068] Although embodiments of the present invention have been described above, these are merely illustrative examples, and the present invention is not limited thereto. Various modifications based on the knowledge of those skilled in the art are possible, as long as they do not depart from the spirit of the claims.

[0069] 100: Video processing unit 110: Control unit 111: Input unit 112: Processor 113: Memory 114: Output unit 120: Video IC 121: YC conversion unit 122: Color correction unit 123: YC-RGB conversion unit 130: Display 140: Touch panel 200: Frequency selection screen 210: Frequency scale 220: Frequency selection bar 230: Selected frequency display area

Claims

1. An image processing device comprising a processor that generates images for display on a display, and a reception unit that receives user operations, wherein the processor generates the images by drawing each frame such that a 2-pixel wide vertical line object included in each frame of the images moves horizontally in response to the user operations received by the reception unit, and the leftmost pixel of the object is drawn only as an odd-numbered pixel counting from the left edge of each frame.

2. The image processing apparatus according to claim 1, wherein the processor draws the object such that the drawing position of the object moves every even number of pixels in the horizontal direction between each frame.

3. The image processing apparatus according to claim 1, wherein when the processor draws the object at the position on the display screen specified by the operation, if the specified position corresponds to an even-numbered pixel counted from the left edge of each frame, the processor draws the object by shifting it horizontally by an odd number of pixels from the specified position.

4. The video processing apparatus according to claim 1, further comprising a video processing unit that converts the color space of the video generated by the processor, performs predetermined processing, and outputs the video that has undergone the predetermined processing to the display.

5. The image processing apparatus according to claim 1, wherein two horizontally adjacent pixels in the object are a single color.

6. A video processing method in which a video processing device draws each frame of a video so that a two-pixel wide vertical line object contained in each frame of the video moves horizontally in response to user operations, and the leftmost pixel of the object is drawn only as an odd-numbered pixel counting from the left edge of each frame, thereby generating the video.

Citation Information

Patent Citations

  • Image processing apparatus and image processing method

    JP2011117998A

  • Program, information recording medium and image generator

    JP2012173784A

  • Display timing controller with single-frame buffer memory

    US10043459B1

  • Detection of video windows and graphics windows

    US6873341B1