US6587155B1 - Fading of main video signal without affecting display of superimposed video signal - Google Patents

Fading of main video signal without affecting display of superimposed video signal Download PDF

Info

Publication number
US6587155B1
US6587155B1 US09/472,670 US47267099A US6587155B1 US 6587155 B1 US6587155 B1 US 6587155B1 US 47267099 A US47267099 A US 47267099A US 6587155 B1 US6587155 B1 US 6587155B1
Authority
US
United States
Prior art keywords
signal
bus
chroma
value
luma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US09/472,670
Inventor
Ning Xue
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Priority to US09/472,670 priority Critical patent/US6587155B1/en
Assigned to LSI LOGIC CORPORATION reassignment LSI LOGIC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: XUE, NING
Application granted granted Critical
Publication of US6587155B1 publication Critical patent/US6587155B1/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to LSI CORPORATION reassignment LSI CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: LSI LOGIC CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to AGERE SYSTEMS LLC, LSI CORPORATION reassignment AGERE SYSTEMS LLC TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0026. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/74Circuits for processing colour signals for obtaining special effects
    • H04N9/76Circuits for processing colour signals for obtaining special effects for mixing of colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8233Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a character code signal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0666Adjustment of display parameters for control of colour parameters, e.g. colour temperature
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums

Definitions

  • Appendix A which is part of the present disclosure, contains VERILOG source code for implementing one embodiment of this invention as described more completely below.
  • a video stream is a sequence of video frames where each frame is a still image.
  • a video player such as a DVD player, displays one frame after another at approximately 30 frames per second to generate a video.
  • frames are digitized so that each pixel is represented by a brightness component of luma (“Y”) and two color components of chroma blue (“Cb”) and chroma red (“Cr”).
  • the color of a pixel is black when its luma value is at a minimum regardless of its chroma blue and chroma red values.
  • the color of the pixel is white when its luma value is at a maximum regardless of its chroma blue and chroma red values.
  • Luma, chroma blue, and chroma red have a nominal range of 0 to 255.
  • a DVD player can read a DVD bitstream from a DVD disk and display on a monitor a main video (that occupies a majority of the area of the monitor) superimposed by a subpicture (hereinafter “SPU”).
  • the subpicture normally occupies a small area of the monitor (e.g., occupies 10% of the total area).
  • a DVD bitstream contains, among other data three elementary streams: a main video elementary stream, an audio elementary stream, and a SPU elementary stream.
  • Subpictures are “[g]raphic bitmap overlays used in DVD-Video to create subtitles, captions, karaoke lyrics, menu hightlighting effects, and so on.” See the book entitled “DVD Demystified” by Jim Taylor, p. 424, McGraw-Hill, 1999. Chapter 4 and the glossary of DVD Demystified are hereby incorporated by reference.
  • the main video is a movie and the SPU is the subtitle for the movie.
  • the DVD player can display (see FIG. 1) an on-screen display (“OSD”) of the DVD controls, such as a volume bar, superimposed over the main video.
  • OSD on-screen display
  • fade in and fade out are used to replace a background color with the main video (or vice versa).
  • the OSD does not fade in and fade out with the main video so that consumers continue to view the OSD during the transition from the background color to the main video.
  • fading (in or out) of the main video affects the colors of the pixels in the portion of the OSD that is superimposed on the main video, so that the pixels in OSD change colors during the fading.
  • a fade circuit supports transition between display of a video (that has a first portion to be changed and a second portion left unchanged) and display of a background color (such as blue) by adjusting two or more components (e.g., the luma component (Y) and one or both of chroma components (Cb and Cr)) of one or more to-be-displayed pixels (e.g., all pixels in the second portion that is to be left unchanged or alternatively all pixels of the video).
  • the adjustment includes, for example, one or more arithmetic operations, so that the one or more pixels maintain color at two or more moments during the transition (preferably at all times in the transition).
  • the luma and chroma components together, one or more colors of the second portion remain constant during the transition between display of the video and the background color. Maintaining colors of the second portion allows a user to clearly see the information displayed by the second portion during the transition.
  • the luma component is adjusted by subtracting (or adding) a fade factor (that changes over time) to form a gradually changing luma component.
  • the chroma components are simultaneously adjusted by another arithmetic operation.
  • the chroma components are scaled by (1) subtracting a predetermined value from each chroma component to form a resultant, (2) multiplying the resultant with a scale factor (that changes over time) to form a product, and (3) adding the predetermined value to the product to form a faded chroma component.
  • the same predetermined value and the same scale factor are used for the two chroma components.
  • a mix circuit combines the faded components of a first video (hereinafter referred to as “first pixel components”) with components of a second video (hereinafter referred to as “second pixel components”), for example using an arithmetic operation.
  • the combined (mixed) components (hereinafter called “mixed pixel components”) are displayed on a monitor wherein the second video is superimposed over the first video.
  • first pixel components components of a second video
  • second pixel components are displayed on a monitor wherein the second video is superimposed over the first video.
  • To mix a first pixel component with a second pixel component one example of a mix circuit adds (1) the product of the first pixel component and a mix weight (mw) with (2) the product of the second pixel component and another mix weight (1 ⁇ mw). The same results can be accomplished by adding (1) the second pixel component to (2) the product of a mix weight (mw) and the difference between the first pixel component and the second pixel component.
  • FIG. 1 illustrates a DVD image of the prior art having a main video image, and superimposed thereon each of a subpicture image and an on-screen display image.
  • FIG. 2A illustrates a multimedia system including a video playback device 102 that displays a superimposed image having fixed colors during fade in and fade out in one embodiment as described herein.
  • FIG. 2B illustrates, in a block diagram, an embodiment of a fade circuit 514 (also called “fader”) of video playback device 102 of FIG. 2 A.
  • a fade circuit 514 also called “fader”
  • FIG. 3 illustrates, in a block diagram, various components inside video playback device 102 of FIG. 2 A.
  • FIG. 4 illustrates, in a block diagram, a multimedia decoder 228 of FIG. 3 .
  • FIG. 5A illustrates, in a block diagram, a display controller 410 of multimedia decoder 228 of FIG. 4 in one implementation.
  • FIG. 5B illustrates various signals held in a host register 512 illustrated in FIG. 5 A.
  • FIG. 6 illustrates, in a flow chart, a method used by display controller 410 of FIG. 5A to fade a video in this implementation.
  • FIG. 7 illustrates, in a block diagram, an embodiment of a subpicture mix 510 (also called “SPU mix”) of display controller 410 of FIG. 5 A.
  • a subpicture mix 510 also called “SPU mix”
  • FIG. 8 illustrates, in a block diagram, an embodiment of fader 514 of FIG. 5 A.
  • FIG. 9 illustrates, in a block diagram, an embodiment of an on-screen display mix 516 (also called “OSD mix”) of FIG. 5 A.
  • OSD mix an on-screen display mix 516
  • FIG. 10 illustrates, in a block diagram, another embodiment of the OSD mix 520 of FIG. 5 A.
  • a fader 514 transitions between the display of a background color and the display of a main video image (in a process called “fading”) while maintaining the colors of an on-screen display (“OSD”) image superimposed thereon.
  • fader 514 adjusts the luma component as well as one or both chroma components of the main video image so that colors of the OSD image remain at least substantially unchanged (e.g., not noticed by a human).
  • the colors of the OSD image are kept unchanged during fading of the main video image. Maintaining colors of the OSD image unchanged allows viewers to clearly see the information displayed by the OSD image during and subsequent to fading.
  • fader 514 includes an arithmetic unit 849 that adjusts the luma component to form a faded luma component. Fader 514 further includes another arithmetic unit 848 that adjusts at least one of the chroma components to form one or more faded chroma components. Fader 514 outputs the faded luma and chroma components to an OSD mix 516 .
  • OSD mix 516 mixes the faded luma and chroma components with the to-be-displayed OSD luma and chroma components.
  • each of fader 514 and OSD mix 516 are included in a video playback device 102 (FIG. 2A) that displays on a monitor 106 the video contents of a multimedia disk in a disk drive 104 .
  • Video playback device 102 is controlled in the normal manner, for example, through a remote control 110 .
  • Video playback device 102 can also play the audio contents of the multimedia disk through speakers 108 A- 108 F.
  • Video playback device 102 is, for example, a DVD player model DVP S 330 available from Sony Corporation of Tokyo, Japan.
  • Video playback device 102 includes a read head 220 (FIG. 3) that scans a multimedia disk 216 spun by a spindle motor 214 to produce a stream of bits (hereinafter “raw bitstream”).
  • the raw bitstream is filtered by a digital signal processor (“DSP”) 210 to produce a filtered bitstream.
  • DSP 210 also controls spindle motor 214 and read head 220 through a power amp 212 .
  • the filtered bitstream is buffered by a channel control 222 and demodulated by a demodulator 224 to form a demodulated bitstream.
  • the demodulated bitstream is decoded and error corrected by an error correction decoder (“ECC”) 226 to produce a Digital Versatile Disk (“DVD”) bitstream.
  • ECC error correction decoder
  • the DVD bitstream is decoded by a multimedia decoder 228 to produce digital audio and video signals.
  • Digital to analog converters (“DAC”) 236 and 238 respectively convert the digital audio and video signals to analog signals for display on monitor 106 .
  • DAC 238 is, for example, a NTSC/PAL rasterizer for televisions.
  • a host processor 230 controls the operations of DSP 210 , ECC 226 , and multimedia decoder 228 .
  • multimedia decoder 228 decodes the DVD bitstream to produce at least two elementary bitstreams.
  • the elementary bitstreams includes a main video elementary bitstream and a subpicture (“SPU”) elementary bitstream.
  • Multimedia decoder 228 can construct a main video image from the main video elementary bitstream and a SPU image from the SPU elementary bitstream.
  • Multimedia decoder 228 can also superimpose the SPU image over the main video image by combining (mixing) the pixels of the main video image (hereinafter called “main video pixels”) with the pixels of the SPU image (hereinafter called “SPU pixels”).
  • the main video image superimposed with the SPU image is hereinafter called “SPU mix image” and the pixels formed from mixing the main video pixels with the SPU pixels are hereinafter called “SPU mix pixels.”
  • multimedia decoder 228 can further superimpose an OSD image over the main video image (or the SPU mix image) by combining (mixing) the main video pixels (or the SPU mix pixels) with the pixels of the OSD image (hereinafter called “OSD pixels”).
  • the main video image (or the SPU mix image) superimposed with the OSD image is hereinafter called “OSD mix image” and the pixels formed from mixing the main video pixels (or the SPU mix pixels) with the OSD pixels are hereinafter called “OSD mix pixels.”
  • multimedia decoder 228 includes a microcontroller 402 (FIG. 4) that communicates commands to and from processor 230 through host register 512 (FIG. 4 and FIG. 5B) in a host interface 404 .
  • Host interface 404 also communicates data, e.g., a DVD bitstream, to a variable length decoder (“VLD”) 406 .
  • VLD 406 includes a pre-parser 418 that parses the DVD bitstream into elementary bitstreams.
  • the elementary bitstream includes, for example, an audio elementary bitstream, a main video elementary bitstream, and a SPU elementary bitstream.
  • a memory interface 408 communicates the elementary bitstreams to their respective buffers in a memory 204 (FIG. 3 and FIG. 4 ).
  • VLD 406 also includes a post-parser 420 that decodes and passes the audio elementary bitstream, the main video elementary bitstream, and the SPU elementary bitstreams from their respective buffers in memory 204 to their respective devices: an audio decoder 416 , a main video decoder 414 , and a SPU decoder 412 .
  • Audio decoder 416 decodes, for example, DVD compliant audio elementary bitstreams (e.g., MPEG-2 audio elementary bitstream) to audio packets. Audio decoder 416 saves the decoded audio packets in an area (called “audio packet store”) in memory 204 .
  • audio packet store an area (called “audio packet store”) in memory 204 .
  • Video decoder 414 decodes, for example, DVD compliant video elementary bitstreams (e.g., MPEG-2 video elementary bitstream) to main video images.
  • Video decoder 414 saves the main video images in three areas (called “video frame stores”) in memory 204 .
  • the three video frame stores save, for example, an intra-frame, a forward predicted frame, and a bi-directional predicted frame.
  • SPU decoder 412 decodes, for example, DVD compliant SPU elementary bitstream to SPU images.
  • SPU decoder saves the SPU images in an area (called “SPU image store”) in memory 204 .
  • An OSD/display controller 410 retrieves the main video images from the main video frame stores in memory 204 and superimposes either a SPU image or an OSD image, or both, over the main video image (FIG. 1 ). Display controller 410 outputs the final image in 4:2:2 component format.
  • OSD/display controller 410 includes a memory address generator 502 .
  • Memory address generator 502 under the control of a timing generator 515 , addresses the video frame stores in memory 204 through memory interface 408 to read main video pixel data into a vertical filter 504 .
  • memory address generator 502 and timing generator 515 are the respective conventional address generator and timing generator described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference in its entirety.
  • Vertical filter 504 filters the main video pixel data to vertically scale the main video images and to produce main video images of 4:2:2 component format.
  • a freeze filter 506 filters the main video pixel data to improve the image quality of the main video images in case a main video image is paused.
  • a horizontal filter 508 filters the main video pixel data to horizontally scale the main video images.
  • Horizontal filter 508 passes the main video pixel data to a SPU mix 510 .
  • vertical filter 504 , freeze filter 506 , and horizontal filter 508 are conventional filters described in “L 64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
  • display controller 410 starts in action 602 (FIG. 6 ). Action 602 is followed by action 604 .
  • action 604 display controller 410 determines if host processor 230 desires to superimpose a SPU image over a main video image to form a SPU mix image. Host processor 230 stores an active signal SPU_enable in a storage element 512 A of host register 512 (FIG. 5B) if host processor 230 wishes to superimpose a SPU image over a main video image. If storage element 512 A stores an active signal SPU_enable, action 604 is followed by action 606 . Otherwise, action 604 is followed by action 608 .
  • display controller 410 mixes the main video pixel data with the SPU pixel data according to a SPU mix weight (e.g., “mw spu ”) to form a SPU mix pixel data.
  • display controller 410 includes a SPU decoder 412 (FIG. 4 and FIG. 5A) that addresses the SPU image store in memory 204 to read SPU pixel data into a SPU mix 510 .
  • SPU decoder 412 also synchronizes the SPU pixel data to the main video pixel data that are provided to SPU mix 510 .
  • SPU decoder 412 is a conventional SPU decoder described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
  • SPU mix 510 mixes the main video pixel data and the SPU pixel data according to the SPU mix weight from SPU decoder 412 as follows.
  • Y SPU mix Y video *mw SPU +Y SPU *(1 ⁇ mw SPU ) (1)
  • Cb SPU mix Cb video *mw SPU +Cb SPU *(1 ⁇ mw SPU ) (2)
  • Cr SPU mix Cr video *mw SPU +Cr SPU *(1 ⁇ mw SPU ) (3)
  • Subscript “SPU mix” indicates the pixel components of the SPU mix image
  • subscript “video” indicates the pixel components of the main video image
  • subscript “SPU” indicates the pixel components of the SPU image.
  • Y SPU mix Y SPU +( Y video ⁇ Y SPU )* mw SPU (4)
  • SPU mix pixel data When displayed, SPU mix pixel data generates a main video with SPU overlay.
  • Action 606 is followed by action 608 .
  • actions 604 and 606 are optional.
  • display controller 410 fades the main video image (or the SPU mix image if an SPU image was superimposed over a main video image in action 606 ) by adjusting the chroma components (Cb and Cr) in addition to the luma (Y) components of the pixels.
  • Cb and Cr chroma components
  • Y luma
  • fade in and fade out of just the main video image (or the SPU mix image) can be accomplished by adjusting only the luma values of the main video pixels (or SPU mix pixels). Chroma blue and chroma red components remaining constant during such fading have little impact on the colors of the pixels when the luma components are changed to approach the maximum value (e.g., 255) or the minimum value (e.g., 0).
  • the luma components of the OSD pixels allow the chroma blue and chroma red components of the main video pixels (or SPU mix pixels) to be seen despite the adjustment to the luma components of main video pixels (or SPU mix pixels).
  • display controller 410 includes a fader 514 that adjusts the luma components, the chroma blue components, and chroma red components of the main video pixels (or SPU mix pixels) during fade in and fade out so that the OSD does not change color.
  • fader 514 fades the main video image by adjusting the luma component and the two chroma components of the main video pixels as follows.
  • fader 514 fades the SPU mix image by adjusting the luma component and the chroma components of the SPU mix pixels using the same arithmetic operations (7)-(9) as follows.
  • Host processor 230 controls fade in and fade out by storing values for the fade factor and the scale factor in respective storage elements 512 C and 512 D of host register 512 (FIG. 5 B). Host processor 230 stores a value of 0 for the fade factor and value of 1 for the scale factor if no fading of the SPU mix is desired (no fading of the main video image or the SPU mix image). In any event, the faded luma, chroma blue, and chroma red cannot become less than the minimum value of 0 or greater than the maximum value of 255 (clipped at 0 or 255). The scale factor is also restricted between ⁇ 1 and 1 to provide a smooth transition between video display and the background color.
  • Host processor 230 sets the fade factor and the scale factor by storing their respective values in respective storage elements 512 C and 512 D of host register 512 .
  • Fader 514 outputs the faded pixel data to an OSD mix 516 (FIG. 5 A).
  • Action 608 is followed by action 610 .
  • display controller 410 determines if host processor 230 desires to superimpose an OSD image over the main video image (or the SPU mix image if an SPU image was superimposed over a main video image in action 606 ) to form an OSD mix image.
  • Host processor 230 stores an active signal OSD_enable in a storage element 512 B of host register 512 (FIG. 5B) if host processor 230 wishes to superimpose an OSD image over a main video image (or the SPU mix image). If storage element 512 B stores an active signal SPU_enable, action 610 is followed by action 612 . Otherwise, action 610 is followed by action 614 .
  • display controller 410 mixes the main video pixel data (or the SPU mix pixel data) with the OSD pixel data according to an OSD mix weight (e.g., “mw OSD ”) to form an OSD mix pixel data.
  • OSD mix pixel data When displayed, OSD mix pixel data generates a main video image (or a SPU mix image) with OSD overlay.
  • display controller 410 includes an OSD decoder 518 that, under command of timing generator 515 , addresses an OSD image store in memory 204 to read OSD pixel data into an OSD mix 516 .
  • OSD decoder 518 synchronizes the OSD pixel data to the main video pixel data (or the SPU mix pixel data) provided to OSD mix 516 from fader 514 .
  • OSD pixel data is written into the OSD image store in memory 204 by host processor 230 .
  • OSD decoder 518 is a conventional OSD decoder described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
  • OSD mix 516 combines the main video pixel data with the OSD pixel data according to the OSD mix weight from OSD decoder 518 to form the OSD mix pixel as follows.
  • Y OSD mix Faded Y video *mw OSD +Y OSD *(1 ⁇ mw OSD ) (13)
  • Subscript “OSD mix” indicates the pixel components of the OSD mix image.
  • Y OSD mix Y OSD +(Faded Y video ⁇ Y OSD )* mw OSD (16)
  • OSD mix 516 combines the SPU mix pixel data with the OSD pixel data according to the mix weight (hereinafter called “mw OSD ”) from OSD decoder 518 to form the OSD mix pixel as follows.
  • Y OSD mix Faded Y SPU mix *mw OSD +Y OSD *(1 ⁇ mw OSD ) (19)
  • Cb OSD mix Faded Cb SPU mix *mw OSD +Cb OSD *(1 ⁇ mw OSD ) (20)
  • Cr OSD mix Faded Cr SPU mix *mw OSD +Cr OSD *(1 ⁇ mw OSD ) (21)
  • Y OSD mix Y OSD +(Faded Y SPU mix ⁇ Y OSD )* mw OSD ( 22 )
  • Action 612 is followed by action 614 .
  • display controller 410 provides processed pixel data (main video pixel data, SPU mix pixel data, or OSD mix pixel data) to DAC 238 for display on monitor 106 .
  • Action 614 is followed by action 604 .
  • the main video pixel data, the SPU pixel data, and the OSD pixel data are in 4:2:2 component format.
  • Horizontal filter 508 (FIG. 5A) outputs, for example, 8 bits of main video pixel data to SPU mix 510 at each clock pulse. Every 8 bits of main video pixel data represents one of three pixel components (e.g., luma, chroma blue, or chroma red) of the main video image. Accordingly, a pixel component of the main video image is provided to SPU mix 510 at each clock pulse.
  • SPU decoder 412 (FIG. 5A) provides, for example, 8 bits of SPU video pixel data to SPU mix 510 at each clock pulse. Every 8 bits of SPU video pixel data also represents one of three pixel components of the SPU image. SPU decoder 412 synchronizes the pixel components of the SPU image with the pixel components of the main video.
  • host processor 230 stores signal SPU_enable, signal OSD 13 enable, signal fade factor, and signal scale factor in respective storage elements 512 A- 512 D.
  • Host processor 230 controls multimedia decoder 228 by writing (in response to user instruction) different values into the just-described storage elements 512 A- 512 D of host register 512 .
  • host processor 230 responds to the user's instruction by storing an active signal SPU_enable in storage element 512 A.
  • host processor 230 writes values for fade factor in storage element 512 C (e.g., increasing over 2 seconds from 0 to a maximum of 255 to fade out) and scale factor in storage element 512 D (decreasing over 2 seconds from 1 to a minimum of 0 to fade out) for one or more frames of the main video (or SPU mix) to transition the main video (or SPU mix) to the background color.
  • fade factor in storage element 512 C e.g., increasing over 2 seconds from 0 to a maximum of 255 to fade out
  • scale factor in storage element 512 D decreasing over 2 seconds from 1 to a minimum of 0 to fade out
  • host processor 230 writes values for fade factor signal 512 C (decreasing over time to a minimum of 0 to fade in) and scale factor signal 512 D (increasing over time to a maximum of 1 to fade in) for each frame of the main video (or SPU mix) to transition the background color to the main video image (or SPU mix).
  • SPU mix 510 (FIG. 7) includes a subtractor 702 that has ports 701 and 703 respectively coupled to buses 718 and 720 .
  • Bus 718 carries a pixel component of the main video image from horizontal filter 508 and bus 720 carries a pixel component of the SPU image from SPU decoder 412 .
  • Subtractor 702 subtracts the SPU pixel component signal from the main video pixel component signal and provides a difference signal on a bus 704 .
  • a multiplier 706 has ports 705 and 707 respectively coupled to buses 704 and 722 .
  • Bus 722 carries a SPU mix weight (e.g., “mw SPU ”) from SPU decoder 412 .
  • Multiplier 706 multiplies the signal received on port 705 with the signal of the SPU mix weight and provides a product signal on a bus 708 .
  • An adder 710 has a port 709 coupled to bus 720 and a port 711 coupled to bus 708 . Adder 710 adds the signal received on port 709 to the signal received on port 711 and provides a result signal on a bus 712 .
  • a multiplexer 714 has ports 713 and 715 respectively coupled to buses 718 and 712 .
  • Multiplexer 714 also has a control terminal 717 coupled to line 718 that carries a control signal (e.g., “signal SPU_enable”) from SPU_enable bit 512 A in host register 512 . If signal SPU_enable is active, multiplexer 714 propagates the signals received on terminal 715 (a pixel component of a SPU mix image) to a bus 716 . Otherwise, multiplexer 714 propagates the signals received on terminal 713 (a pixel component of the main video image).
  • a control signal e.g., “signal SPU_enable”
  • Fade circuit 514 includes a demultiplexer 802 that has a port 801 coupled to bus 716 from SPU mix 510 .
  • Demultiplexer 802 has a control terminal 803 coupled to a line 846 carrying a control signal (also called “component_type”) from timing generator 515 .
  • Demultiplexer 802 propagates signals received on port 801 (1) to a bus 804 when signal component_type is, for example, active and alternatively (2) to a bus 828 when signal component_type is, for example, inactive. Therefore, timing generator 515 drives active or inactive signal component_type so that demultiplexer 802 passes only the chroma components (Cb and Cr) onto bus 804 and only the luma components (Y) onto bus 828 .
  • Cb and Cr chroma components
  • Y luma components
  • Chroma components are processed by a subtractor 806 , a multiplier 812 , an adder 818 , and a clipper 824 (e.g., collectively forming arithmetic unit 848 ).
  • Subtractor 806 has ports 803 and 805 respectively coupled to buses 804 and 808 , Bus 808 carries a predetermined signal that is hardwired in fade circuit 514 .
  • the predetermined signal may have m bits of active signals and n bits of inactive signal. In one variation, the predetermined signal has a value of 128 (1 bit of active signal and 7 bits of inactive signal).
  • Subtractor 806 subtracts the predetermined signal from the chroma blue or chroma red signal received on port 803 and outputs a result signal on a bus 810 .
  • Multiplier 812 has ports 807 and 809 respectively coupled to buses 810 and 814 .
  • Bus 814 carries a scale factor signal written by host processor 230 in host register 512 .
  • Multiplier 812 multiplies the signal received on port 807 with the scale factor signal received on port 809 and outputs a product signal on a bus 816 .
  • Adder 818 has a port 811 coupled to bus 816 and a port 813 coupled to bus 808 that carries the predetermined signal having a value of, for example, 128 . Adder 818 adds the predetermined signal to the signal received on port 811 and outputs a result signal on a bus 822 .
  • Clipper 824 has a port 815 coupled to bus 822 . If the signal received on port 815 is greater than 255 or less than 0, clipper 824 propagates a respective signal 255 or 0 to a bus 826 . Otherwise, clipper 824 propagates the signal received on port 815 on bus 826 .
  • Luma components are processed by a subtractor 830 and a clipper 836 (e.g., collectively forming arithmetic unit 849 ).
  • Subtractor 830 has ports 817 and 819 respectively coupled to buses 828 and 832 .
  • Bus 832 carries a fade factor signal set by host processor 230 in host register 512 .
  • Subtractor 830 subtracts the fade factor signal from the luma signal received on port 817 and outputs a result signal on a bus 834 .
  • Clipper 836 has a port 821 coupled to receive a signal from bus 834 , and functions in the same manner as that described above in reference to clipper 824 , to generate a signal on bus 838 .
  • a multiplexer 840 has ports 823 and 825 respectively coupled to buses 826 and 838 .
  • Multiplexer 840 also has a control terminal 827 coupled to a line 842 carrying signal component_type.
  • Multiplexer 840 propagates to a bus 844 (1) signals received on port 823 if signal component_type is, for example, active and (2) signals received on port 825 if signal component_type is, for example, inactive.
  • OSD mix 516 includes a subtractor 902 that has ports 901 and 903 respectively coupled to buses 844 and 920 .
  • Bus 844 carries a pixel component from fader 514 and bus 920 carries a pixel component of an OSD image from OSD decoder 518 .
  • Subtractor 902 subtracts the signal of the OSD pixel component from signal of the pixel component received on port 901 and provides a difference signal on a bus 904 .
  • a multiplier 906 has ports 905 and 907 respectively coupled to buses 904 and 922 .
  • Bus 922 carries the OSD mix weight (e.g., “mw OSD ”) from OSD decoder 518 .
  • Multiplier 906 multiplies the signal received on port 905 with the signal of the OSD mix weight and provides a product signal on a bus 908 .
  • An adder 910 has ports 909 and 911 respectively coupled to buses 920 and 908 . Adder 910 adds the signal received on port 909 to the signal received on port 911 and provides a result signal on a bus 912 .
  • a multiplexer 914 has ports 913 and 915 respectively coupled to buses 844 and 912 .
  • Multiplexer 914 also has a control terminal 917 coupled to a line 918 that carries a control signal (e.g., “signal OSD_enable”) from OSD_enable bit 512 B in host register 512 . If OSD_enable bit 512 B is active, multiplexer 914 propagates the signals received on terminal 915 (a pixel component of an OSD mix image) to a bus 916 . Otherwise, multiplexer 914 propagates the signals received on terminal 913 (a pixel component of the video image received from fade circuit 514 ) to bus 916 .
  • Bus 916 is coupled to DAC 238 (FIG. 3 ).
  • DAC 238 converts the pixel components into analog signals for display on monitor 106 (FIG. 2 A).
  • an OSD mix 520 (FIG. 10) includes a multiplier 1002 , a multiplier 1004 , and an adder 1010 .
  • Multiplier 1002 has ports 1001 and 1009 respectively coupled to buses 844 and 922 .
  • Multiplier 1002 multiplies the signal received on port 1001 with the signal of the OSD mix weight received on port 922 and provides a product signal on a bus 1006 .
  • Multiplier 1004 has ports 1003 and 1011 respectively coupled to buses 920 and 1014 .
  • Bus 1014 carries a signal of one less the OSD mix weight (e.g., 1 ⁇ mw OSD ).
  • Bus 1014 is, for example, from OSD decoder 518 .
  • Multiplier 1004 multiplies the signal received on port 1003 received on port 1011 and provides a product signal on a bus 1008 .
  • Adder 1010 has ports 1005 and 1007 respectively coupled to buses 1006 and 1008 . Adder 1010 adds the signals received on port 1005 and port 1007 and provides a result signal on a bus 1012 . In this variation, port 915 of multiplexer 914 is coupled to bus 1012 .
  • the SPU mix 510 can be similarly configured as OSD Mix 520 of FIG. 10, where subtractor 702 , multiplier 706 , and adder 710 are replaced by two multipliers and an adder.
  • subtractor 702 , multiplier 706 , and adder 710 are replaced by two multipliers and an adder.
  • a nonlinear operation can be used instead of using the linear arithmetic operations to implement fade in and fade out.
  • a nonlinear operation can be used instead of using a single arithmetic unit 848 (FIG. 2 B and FIG. 8) for both chroma values, two arithmetic units can be used, one for each chroma value.
  • fader 514 can be used to adjust pixel components in other color space such as RGB and YUV. Numerous such changes and modifications are encompassed by the attached claims.

Abstract

A fade circuit adjusts the luma as well as one or more chroma components of a main video so that the fade ins and fade outs of the main video do not change the color of an on-screen display image, such as the volume bar. In one embodiment, luma component (Y) is adjusted by subtracting a fade factor from the luma component to form a faded luma component. At the same time, one or more chroma components (Cb and Cr) are scaled by (1) subtracting a predetermined value from the chroma component to form a resultant, (2) multiplying the resultant with a scale factor to form a product, and (3) adding the predetermined value to the product to form a faded chroma component.

Description

CROSS-REFERENCE TO SOURCE CODE APPENDIX
Appendix A, which is part of the present disclosure, contains VERILOG source code for implementing one embodiment of this invention as described more completely below.
A portion of the present disclosure contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND
A video stream is a sequence of video frames where each frame is a still image. A video player, such as a DVD player, displays one frame after another at approximately 30 frames per second to generate a video. In MPEG-2 format, frames are digitized so that each pixel is represented by a brightness component of luma (“Y”) and two color components of chroma blue (“Cb”) and chroma red (“Cr”). The color of a pixel is black when its luma value is at a minimum regardless of its chroma blue and chroma red values. Conversely, the color of the pixel is white when its luma value is at a maximum regardless of its chroma blue and chroma red values. Luma, chroma blue, and chroma red have a nominal range of 0 to 255.
A DVD player can read a DVD bitstream from a DVD disk and display on a monitor a main video (that occupies a majority of the area of the monitor) superimposed by a subpicture (hereinafter “SPU”). The subpicture normally occupies a small area of the monitor (e.g., occupies 10% of the total area). A DVD bitstream contains, among other data three elementary streams: a main video elementary stream, an audio elementary stream, and a SPU elementary stream. Subpictures are “[g]raphic bitmap overlays used in DVD-Video to create subtitles, captions, karaoke lyrics, menu hightlighting effects, and so on.” See the book entitled “DVD Demystified” by Jim Taylor, p. 424, McGraw-Hill, 1999. Chapter 4 and the glossary of DVD Demystified are hereby incorporated by reference. In one example, the main video is a movie and the SPU is the subtitle for the movie.
In addition to the main video superimposed with the SPU, the DVD player can display (see FIG. 1) an on-screen display (“OSD”) of the DVD controls, such as a volume bar, superimposed over the main video. In some DVD players, fade in and fade out are used to replace a background color with the main video (or vice versa). During such replacement, the OSD does not fade in and fade out with the main video so that consumers continue to view the OSD during the transition from the background color to the main video. However, fading (in or out) of the main video affects the colors of the pixels in the portion of the OSD that is superimposed on the main video, so that the pixels in OSD change colors during the fading.
SUMMARY
In one embodiment, a fade circuit (also called “fader”) supports transition between display of a video (that has a first portion to be changed and a second portion left unchanged) and display of a background color (such as blue) by adjusting two or more components (e.g., the luma component (Y) and one or both of chroma components (Cb and Cr)) of one or more to-be-displayed pixels (e.g., all pixels in the second portion that is to be left unchanged or alternatively all pixels of the video). The adjustment includes, for example, one or more arithmetic operations, so that the one or more pixels maintain color at two or more moments during the transition (preferably at all times in the transition). By adjusting the luma and chroma components together, one or more colors of the second portion remain constant during the transition between display of the video and the background color. Maintaining colors of the second portion allows a user to clearly see the information displayed by the second portion during the transition.
In one specific implementation, the luma component is adjusted by subtracting (or adding) a fade factor (that changes over time) to form a gradually changing luma component. In this implementation, the chroma components are simultaneously adjusted by another arithmetic operation. In one example, the chroma components are scaled by (1) subtracting a predetermined value from each chroma component to form a resultant, (2) multiplying the resultant with a scale factor (that changes over time) to form a product, and (3) adding the predetermined value to the product to form a faded chroma component. Preferably, but not necessary, the same predetermined value and the same scale factor are used for the two chroma components.
In one embodiment, a mix circuit combines the faded components of a first video (hereinafter referred to as “first pixel components”) with components of a second video (hereinafter referred to as “second pixel components”), for example using an arithmetic operation. The combined (mixed) components (hereinafter called “mixed pixel components”) are displayed on a monitor wherein the second video is superimposed over the first video. To mix a first pixel component with a second pixel component, one example of a mix circuit adds (1) the product of the first pixel component and a mix weight (mw) with (2) the product of the second pixel component and another mix weight (1−mw). The same results can be accomplished by adding (1) the second pixel component to (2) the product of a mix weight (mw) and the difference between the first pixel component and the second pixel component.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a DVD image of the prior art having a main video image, and superimposed thereon each of a subpicture image and an on-screen display image.
FIG. 2A illustrates a multimedia system including a video playback device 102 that displays a superimposed image having fixed colors during fade in and fade out in one embodiment as described herein.
FIG. 2B illustrates, in a block diagram, an embodiment of a fade circuit 514 (also called “fader”) of video playback device 102 of FIG. 2A.
FIG. 3 illustrates, in a block diagram, various components inside video playback device 102 of FIG. 2A.
FIG. 4 illustrates, in a block diagram, a multimedia decoder 228 of FIG. 3.
FIG. 5A illustrates, in a block diagram, a display controller 410 of multimedia decoder 228 of FIG. 4 in one implementation.
FIG. 5B illustrates various signals held in a host register 512 illustrated in FIG. 5A.
FIG. 6 illustrates, in a flow chart, a method used by display controller 410 of FIG. 5A to fade a video in this implementation.
FIG. 7 illustrates, in a block diagram, an embodiment of a subpicture mix 510 (also called “SPU mix”) of display controller 410 of FIG. 5A.
FIG. 8 illustrates, in a block diagram, an embodiment of fader 514 of FIG. 5A.
FIG. 9 illustrates, in a block diagram, an embodiment of an on-screen display mix 516 (also called “OSD mix”) of FIG. 5A.
FIG. 10 illustrates, in a block diagram, another embodiment of the OSD mix 520 of FIG. 5A.
DETAILED DESCRIPTION
In one embodiment, a fader 514 (FIG. 2B) transitions between the display of a background color and the display of a main video image (in a process called “fading”) while maintaining the colors of an on-screen display (“OSD”) image superimposed thereon. In this embodiment, fader 514 adjusts the luma component as well as one or both chroma components of the main video image so that colors of the OSD image remain at least substantially unchanged (e.g., not noticed by a human). By adjusting the luma and chroma components, the colors of the OSD image are kept unchanged during fading of the main video image. Maintaining colors of the OSD image unchanged allows viewers to clearly see the information displayed by the OSD image during and subsequent to fading.
In one implementation, fader 514 includes an arithmetic unit 849 that adjusts the luma component to form a faded luma component. Fader 514 further includes another arithmetic unit 848 that adjusts at least one of the chroma components to form one or more faded chroma components. Fader 514 outputs the faded luma and chroma components to an OSD mix 516. OSD mix 516 mixes the faded luma and chroma components with the to-be-displayed OSD luma and chroma components.
In one embodiment, each of fader 514 and OSD mix 516 are included in a video playback device 102 (FIG. 2A) that displays on a monitor 106 the video contents of a multimedia disk in a disk drive 104. Video playback device 102 is controlled in the normal manner, for example, through a remote control 110. Video playback device 102 can also play the audio contents of the multimedia disk through speakers 108A-108F. Video playback device 102 is, for example, a DVD player model DVP S330 available from Sony Corporation of Tokyo, Japan.
Video playback device 102 includes a read head 220 (FIG. 3) that scans a multimedia disk 216 spun by a spindle motor 214 to produce a stream of bits (hereinafter “raw bitstream”). The raw bitstream is filtered by a digital signal processor (“DSP”) 210 to produce a filtered bitstream. DSP 210 also controls spindle motor 214 and read head 220 through a power amp 212. The filtered bitstream is buffered by a channel control 222 and demodulated by a demodulator 224 to form a demodulated bitstream. The demodulated bitstream is decoded and error corrected by an error correction decoder (“ECC”) 226 to produce a Digital Versatile Disk (“DVD”) bitstream. The DVD bitstream is decoded by a multimedia decoder 228 to produce digital audio and video signals. Digital to analog converters (“DAC”) 236 and 238 respectively convert the digital audio and video signals to analog signals for display on monitor 106. DAC 238 is, for example, a NTSC/PAL rasterizer for televisions. A host processor 230 controls the operations of DSP 210, ECC 226, and multimedia decoder 228.
In one embodiment, multimedia decoder 228 (FIG. 3) decodes the DVD bitstream to produce at least two elementary bitstreams. The elementary bitstreams includes a main video elementary bitstream and a subpicture (“SPU”) elementary bitstream. Multimedia decoder 228 can construct a main video image from the main video elementary bitstream and a SPU image from the SPU elementary bitstream. Multimedia decoder 228 can also superimpose the SPU image over the main video image by combining (mixing) the pixels of the main video image (hereinafter called “main video pixels”) with the pixels of the SPU image (hereinafter called “SPU pixels”). The main video image superimposed with the SPU image is hereinafter called “SPU mix image” and the pixels formed from mixing the main video pixels with the SPU pixels are hereinafter called “SPU mix pixels.”
In this embodiment, multimedia decoder 228 can further superimpose an OSD image over the main video image (or the SPU mix image) by combining (mixing) the main video pixels (or the SPU mix pixels) with the pixels of the OSD image (hereinafter called “OSD pixels”). The main video image (or the SPU mix image) superimposed with the OSD image is hereinafter called “OSD mix image” and the pixels formed from mixing the main video pixels (or the SPU mix pixels) with the OSD pixels are hereinafter called “OSD mix pixels.”
In one embodiment, multimedia decoder 228 includes a microcontroller 402 (FIG. 4) that communicates commands to and from processor 230 through host register 512 (FIG. 4 and FIG. 5B) in a host interface 404. Host interface 404 also communicates data, e.g., a DVD bitstream, to a variable length decoder (“VLD”) 406. VLD 406 includes a pre-parser 418 that parses the DVD bitstream into elementary bitstreams. The elementary bitstream includes, for example, an audio elementary bitstream, a main video elementary bitstream, and a SPU elementary bitstream. A memory interface 408 communicates the elementary bitstreams to their respective buffers in a memory 204 (FIG. 3 and FIG. 4).
VLD 406 also includes a post-parser 420 that decodes and passes the audio elementary bitstream, the main video elementary bitstream, and the SPU elementary bitstreams from their respective buffers in memory 204 to their respective devices: an audio decoder 416, a main video decoder 414, and a SPU decoder 412.
Audio decoder 416 decodes, for example, DVD compliant audio elementary bitstreams (e.g., MPEG-2 audio elementary bitstream) to audio packets. Audio decoder 416 saves the decoded audio packets in an area (called “audio packet store”) in memory 204.
Video decoder 414 decodes, for example, DVD compliant video elementary bitstreams (e.g., MPEG-2 video elementary bitstream) to main video images. Video decoder 414 saves the main video images in three areas (called “video frame stores”) in memory 204. The three video frame stores save, for example, an intra-frame, a forward predicted frame, and a bi-directional predicted frame.
SPU decoder 412 decodes, for example, DVD compliant SPU elementary bitstream to SPU images. SPU decoder saves the SPU images in an area (called “SPU image store”) in memory 204.
An OSD/display controller 410 retrieves the main video images from the main video frame stores in memory 204 and superimposes either a SPU image or an OSD image, or both, over the main video image (FIG. 1). Display controller 410 outputs the final image in 4:2:2 component format.
In one embodiment, OSD/display controller 410 (FIG. 5A) includes a memory address generator 502. Memory address generator 502, under the control of a timing generator 515, addresses the video frame stores in memory 204 through memory interface 408 to read main video pixel data into a vertical filter 504. In one implementation, memory address generator 502 and timing generator 515 are the respective conventional address generator and timing generator described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference in its entirety.
Vertical filter 504 filters the main video pixel data to vertically scale the main video images and to produce main video images of 4:2:2 component format. A freeze filter 506 filters the main video pixel data to improve the image quality of the main video images in case a main video image is paused. A horizontal filter 508 filters the main video pixel data to horizontally scale the main video images. Horizontal filter 508 passes the main video pixel data to a SPU mix 510. In one implementation, vertical filter 504, freeze filter 506, and horizontal filter 508 are conventional filters described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
In one embodiment, display controller 410 starts in action 602 (FIG. 6). Action 602 is followed by action 604. In action 604, display controller 410 determines if host processor 230 desires to superimpose a SPU image over a main video image to form a SPU mix image. Host processor 230 stores an active signal SPU_enable in a storage element 512A of host register 512 (FIG. 5B) if host processor 230 wishes to superimpose a SPU image over a main video image. If storage element 512A stores an active signal SPU_enable, action 604 is followed by action 606. Otherwise, action 604 is followed by action 608.
In action 606, display controller 410 mixes the main video pixel data with the SPU pixel data according to a SPU mix weight (e.g., “mwspu”) to form a SPU mix pixel data. In one embodiment, display controller 410 includes a SPU decoder 412 (FIG. 4 and FIG. 5A) that addresses the SPU image store in memory 204 to read SPU pixel data into a SPU mix 510. SPU decoder 412 also synchronizes the SPU pixel data to the main video pixel data that are provided to SPU mix 510. In one implementation, SPU decoder 412 is a conventional SPU decoder described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
In one variation, SPU mix 510 mixes the main video pixel data and the SPU pixel data according to the SPU mix weight from SPU decoder 412 as follows.
Y SPU mix =Y video *mw SPU +Y SPU*(1−mw SPU)  (1)
Cb SPU mix =Cb video *mw SPU +Cb SPU*(1−mw SPU)  (2)
Cr SPU mix =Cr video *mw SPU +Cr SPU*(1−mw SPU)  (3)
Subscript “SPU mix” indicates the pixel components of the SPU mix image, subscript “video” indicates the pixel components of the main video image, and subscript “SPU” indicates the pixel components of the SPU image.
Alternatively, the above equations can be rewritten to reduce the number of multiplication operations as follows:
Y SPU mix =Y SPU+(Y video −Y SPU)*mw SPU  (4)
Cb SPU mix =Cb SPU+(Cb video −Cb SPU)*mw SPU  (5)
Cr SPU mix =Cr SPU+(Cr video −Cr SPU)*mw SPU  (6)
When displayed, SPU mix pixel data generates a main video with SPU overlay. Action 606 is followed by action 608. In one embodiment, actions 604 and 606 are optional.
In action 608, display controller 410 fades the main video image (or the SPU mix image if an SPU image was superimposed over a main video image in action 606) by adjusting the chroma components (Cb and Cr) in addition to the luma (Y) components of the pixels. Note that fade in and fade out of just the main video image (or the SPU mix image) can be accomplished by adjusting only the luma values of the main video pixels (or SPU mix pixels). Chroma blue and chroma red components remaining constant during such fading have little impact on the colors of the pixels when the luma components are changed to approach the maximum value (e.g., 255) or the minimum value (e.g., 0).
However, when the main video image is combined with an OSD image (described in detail later), the luma components of the OSD pixels allow the chroma blue and chroma red components of the main video pixels (or SPU mix pixels) to be seen despite the adjustment to the luma components of main video pixels (or SPU mix pixels). This results in an OSD that changes colors during fade in and fade out of the main video image (or SPU mix image) due to chroma blue and chroma red contributions from the main video pixels (or SPU mix pixels).
In one embodiment, display controller 410 includes a fader 514 that adjusts the luma components, the chroma blue components, and chroma red components of the main video pixels (or SPU mix pixels) during fade in and fade out so that the OSD does not change color. In one variation, fader 514 fades the main video image by adjusting the luma component and the two chroma components of the main video pixels as follows.
FadedY video =Y video−fade factor  (7)
FadedCb video=(Cb video−128)*scale factor+128  (8)
Faded Cr vidoe=(Cr video−128)*scale factor+128  (9)
In another variation, fader 514 fades the SPU mix image by adjusting the luma component and the chroma components of the SPU mix pixels using the same arithmetic operations (7)-(9) as follows.
Faded Y SPU mix =Y SPU mix−fade factor  (10)
Faded Cb SPU mix=(Cb SPU mix−128)*scale factor+128  (11)
Faded Cr SPU mix=(Cr SPU mix−128)*scale factor+128  (12)
Host processor 230 controls fade in and fade out by storing values for the fade factor and the scale factor in respective storage elements 512C and 512D of host register 512 (FIG. 5B). Host processor 230 stores a value of 0 for the fade factor and value of 1 for the scale factor if no fading of the SPU mix is desired (no fading of the main video image or the SPU mix image). In any event, the faded luma, chroma blue, and chroma red cannot become less than the minimum value of 0 or greater than the maximum value of 255 (clipped at 0 or 255). The scale factor is also restricted between −1 and 1 to provide a smooth transition between video display and the background color. Host processor 230 sets the fade factor and the scale factor by storing their respective values in respective storage elements 512C and 512D of host register 512. Fader 514 outputs the faded pixel data to an OSD mix 516 (FIG. 5A). Action 608 is followed by action 610.
In action 610, display controller 410 determines if host processor 230 desires to superimpose an OSD image over the main video image (or the SPU mix image if an SPU image was superimposed over a main video image in action 606) to form an OSD mix image. Host processor 230 stores an active signal OSD_enable in a storage element 512B of host register 512 (FIG. 5B) if host processor 230 wishes to superimpose an OSD image over a main video image (or the SPU mix image). If storage element 512B stores an active signal SPU_enable, action 610 is followed by action 612. Otherwise, action 610 is followed by action 614.
In action 612, display controller 410 mixes the main video pixel data (or the SPU mix pixel data) with the OSD pixel data according to an OSD mix weight (e.g., “mwOSD”) to form an OSD mix pixel data. When displayed, OSD mix pixel data generates a main video image (or a SPU mix image) with OSD overlay. In one embodiment, display controller 410 includes an OSD decoder 518 that, under command of timing generator 515, addresses an OSD image store in memory 204 to read OSD pixel data into an OSD mix 516. OSD decoder 518 synchronizes the OSD pixel data to the main video pixel data (or the SPU mix pixel data) provided to OSD mix 516 from fader 514. OSD pixel data is written into the OSD image store in memory 204 by host processor 230. In one implementation, OSD decoder 518 is a conventional OSD decoder described in “L64021 DVD Audio/Video Decoder Technical Manual,” which is incorporated by reference above.
In one variation, OSD mix 516 combines the main video pixel data with the OSD pixel data according to the OSD mix weight from OSD decoder 518 to form the OSD mix pixel as follows.
Y OSD mix=Faded Y video *mw OSD +Y OSD*(1−mw OSD)  (13)
Cb OSD mix=Faded Cb video *mw OSD +Cb OSD*(1−mw OSD)  (14)
Cr OSD mix=Faded Cr video *mw OSD +Cr OSD*(1−mw OSD)  (15)
Subscript “OSD mix” indicates the pixel components of the OSD mix image.
Alternatively, the above equations can be rewritten to reduce the number of multiplication operations as follows:
Y OSD mix =Y OSD+(Faded Y video −Y OSD)*mw OSD  (16)
Cb OSD mix =Cb OSD+(Faced Cb video −Cb OSD)*mw OSD  (17)
Cr OSD mix =Cr OSD+(Faded Cr video −Cr OSD)*mw OSD  (18)
In another variation, OSD mix 516 combines the SPU mix pixel data with the OSD pixel data according to the mix weight (hereinafter called “mwOSD”) from OSD decoder 518 to form the OSD mix pixel as follows.
Y OSD mix=Faded Y SPU mix *mw OSD +Y OSD*(1−mw OSD)  (19)
Cb OSD mix=Faded Cb SPU mix *mw OSD +Cb OSD*(1−mw OSD)  (20)
Cr OSD mix=Faded Cr SPU mix *mw OSD +Cr OSD*(1−mw OSD)  (21)
Alternatively, the above equations can be rewritten to reduce the number of multiplication operations as follows:
Y OSD mix =Y OSD+(Faded Y SPU mix −Y OSD)*mw OSD  (22)
Cb OSD mix =Cb OSD+(Faced Cb SPU mix −Cb OSD)*mw OSD  (23)
Cr OSD mix =Cr OSD+(Faded Cr SPU mix −Cr OSD)*mw OSD  (24)
Action 612 is followed by action 614. In action 614, display controller 410 provides processed pixel data (main video pixel data, SPU mix pixel data, or OSD mix pixel data) to DAC 238 for display on monitor 106. Action 614 is followed by action 604.
In one implementation, the main video pixel data, the SPU pixel data, and the OSD pixel data are in 4:2:2 component format. Horizontal filter 508 (FIG. 5A) outputs, for example, 8 bits of main video pixel data to SPU mix 510 at each clock pulse. Every 8 bits of main video pixel data represents one of three pixel components (e.g., luma, chroma blue, or chroma red) of the main video image. Accordingly, a pixel component of the main video image is provided to SPU mix 510 at each clock pulse.
Similarly, SPU decoder 412 (FIG. 5A) provides, for example, 8 bits of SPU video pixel data to SPU mix 510 at each clock pulse. Every 8 bits of SPU video pixel data also represents one of three pixel components of the SPU image. SPU decoder 412 synchronizes the pixel components of the SPU image with the pixel components of the main video.
In this implementation, host processor 230 stores signal SPU_enable, signal OSD13 enable, signal fade factor, and signal scale factor in respective storage elements 512A-512D. Host processor 230 controls multimedia decoder 228 by writing (in response to user instruction) different values into the just-described storage elements 512A-512D of host register 512. In one example, if a user instructs video playback device 102 to display main video with SPU overlay (e.g., through remote control 110), host processor 230 responds to the user's instruction by storing an active signal SPU_enable in storage element 512A.
In another example, if a user instructs video playback device 102 to stop the main video (or SPU mix) through remote control 110, host processor 230 writes values for fade factor in storage element 512C (e.g., increasing over 2 seconds from 0 to a maximum of 255 to fade out) and scale factor in storage element 512D (decreasing over 2 seconds from 1 to a minimum of 0 to fade out) for one or more frames of the main video (or SPU mix) to transition the main video (or SPU mix) to the background color. In this example, if a user instructs video playback device to play the main video (or SPU mix) through remote control 110, host processor 230 writes values for fade factor signal 512C (decreasing over time to a minimum of 0 to fade in) and scale factor signal 512D (increasing over time to a maximum of 1 to fade in) for each frame of the main video (or SPU mix) to transition the background color to the main video image (or SPU mix).
SPU mix 510 (FIG. 7) includes a subtractor 702 that has ports 701 and 703 respectively coupled to buses 718 and 720. Bus 718 carries a pixel component of the main video image from horizontal filter 508 and bus 720 carries a pixel component of the SPU image from SPU decoder 412. Subtractor 702 subtracts the SPU pixel component signal from the main video pixel component signal and provides a difference signal on a bus 704.
A multiplier 706 has ports 705 and 707 respectively coupled to buses 704 and 722. Bus 722 carries a SPU mix weight (e.g., “mwSPU”) from SPU decoder 412. Multiplier 706 multiplies the signal received on port 705 with the signal of the SPU mix weight and provides a product signal on a bus 708. An adder 710 has a port 709 coupled to bus 720 and a port 711 coupled to bus 708. Adder 710 adds the signal received on port 709 to the signal received on port 711 and provides a result signal on a bus 712.
A multiplexer 714 has ports 713 and 715 respectively coupled to buses 718 and 712. Multiplexer 714 also has a control terminal 717 coupled to line 718 that carries a control signal (e.g., “signal SPU_enable”) from SPU_enable bit 512A in host register 512. If signal SPU_enable is active, multiplexer 714 propagates the signals received on terminal 715 (a pixel component of a SPU mix image) to a bus 716. Otherwise, multiplexer 714 propagates the signals received on terminal 713 (a pixel component of the main video image).
Fade circuit 514 (FIG. 8) includes a demultiplexer 802 that has a port 801 coupled to bus 716 from SPU mix 510. Demultiplexer 802 has a control terminal 803 coupled to a line 846 carrying a control signal (also called “component_type”) from timing generator 515. Demultiplexer 802 propagates signals received on port 801 (1) to a bus 804 when signal component_type is, for example, active and alternatively (2) to a bus 828 when signal component_type is, for example, inactive. Therefore, timing generator 515 drives active or inactive signal component_type so that demultiplexer 802 passes only the chroma components (Cb and Cr) onto bus 804 and only the luma components (Y) onto bus 828.
Chroma components are processed by a subtractor 806, a multiplier 812, an adder 818, and a clipper 824 (e.g., collectively forming arithmetic unit 848). Subtractor 806 has ports 803 and 805 respectively coupled to buses 804 and 808, Bus 808 carries a predetermined signal that is hardwired in fade circuit 514. For example, the predetermined signal may have m bits of active signals and n bits of inactive signal. In one variation, the predetermined signal has a value of 128 (1 bit of active signal and 7 bits of inactive signal). Subtractor 806 subtracts the predetermined signal from the chroma blue or chroma red signal received on port 803 and outputs a result signal on a bus 810.
Multiplier 812 has ports 807 and 809 respectively coupled to buses 810 and 814. Bus 814 carries a scale factor signal written by host processor 230 in host register 512. Multiplier 812 multiplies the signal received on port 807 with the scale factor signal received on port 809 and outputs a product signal on a bus 816.
Adder 818 has a port 811 coupled to bus 816 and a port 813 coupled to bus 808 that carries the predetermined signal having a value of, for example, 128. Adder 818 adds the predetermined signal to the signal received on port 811 and outputs a result signal on a bus 822.
Clipper 824 has a port 815 coupled to bus 822. If the signal received on port 815 is greater than 255 or less than 0, clipper 824 propagates a respective signal 255 or 0 to a bus 826. Otherwise, clipper 824 propagates the signal received on port 815 on bus 826.
Luma components are processed by a subtractor 830 and a clipper 836 (e.g., collectively forming arithmetic unit 849). Subtractor 830 has ports 817 and 819 respectively coupled to buses 828 and 832. Bus 832 carries a fade factor signal set by host processor 230 in host register 512. Subtractor 830 subtracts the fade factor signal from the luma signal received on port 817 and outputs a result signal on a bus 834.
Clipper 836 has a port 821 coupled to receive a signal from bus 834, and functions in the same manner as that described above in reference to clipper 824, to generate a signal on bus 838.
A multiplexer 840 has ports 823 and 825 respectively coupled to buses 826 and 838. Multiplexer 840 also has a control terminal 827 coupled to a line 842 carrying signal component_type. Multiplexer 840 propagates to a bus 844 (1) signals received on port 823 if signal component_type is, for example, active and (2) signals received on port 825 if signal component_type is, for example, inactive.
OSD mix 516 (FIG. 9) includes a subtractor 902 that has ports 901 and 903 respectively coupled to buses 844 and 920. Bus 844 carries a pixel component from fader 514 and bus 920 carries a pixel component of an OSD image from OSD decoder 518. Subtractor 902 subtracts the signal of the OSD pixel component from signal of the pixel component received on port 901 and provides a difference signal on a bus 904.
A multiplier 906 has ports 905 and 907 respectively coupled to buses 904 and 922. Bus 922 carries the OSD mix weight (e.g., “mwOSD”) from OSD decoder 518. Multiplier 906 multiplies the signal received on port 905 with the signal of the OSD mix weight and provides a product signal on a bus 908. An adder 910 has ports 909 and 911 respectively coupled to buses 920 and 908. Adder 910 adds the signal received on port 909 to the signal received on port 911 and provides a result signal on a bus 912.
A multiplexer 914 has ports 913 and 915 respectively coupled to buses 844 and 912. Multiplexer 914 also has a control terminal 917 coupled to a line 918 that carries a control signal (e.g., “signal OSD_enable”) from OSD_enable bit 512B in host register 512. If OSD_enable bit 512B is active, multiplexer 914 propagates the signals received on terminal 915 (a pixel component of an OSD mix image) to a bus 916. Otherwise, multiplexer 914 propagates the signals received on terminal 913 (a pixel component of the video image received from fade circuit 514) to bus 916. Bus 916 is coupled to DAC 238 (FIG. 3). DAC 238 converts the pixel components into analog signals for display on monitor 106 (FIG. 2A).
In one variation, an OSD mix 520 (FIG. 10) includes a multiplier 1002, a multiplier 1004, and an adder 1010. Multiplier 1002 has ports 1001 and 1009 respectively coupled to buses 844 and 922. Multiplier 1002 multiplies the signal received on port 1001 with the signal of the OSD mix weight received on port 922 and provides a product signal on a bus 1006.
Multiplier 1004 has ports 1003 and 1011 respectively coupled to buses 920 and 1014. Bus 1014 carries a signal of one less the OSD mix weight (e.g., 1−mwOSD). Bus 1014 is, for example, from OSD decoder 518. Multiplier 1004 multiplies the signal received on port 1003 received on port 1011 and provides a product signal on a bus 1008.
Adder 1010 has ports 1005 and 1007 respectively coupled to buses 1006 and 1008. Adder 1010 adds the signals received on port 1005 and port 1007 and provides a result signal on a bus 1012. In this variation, port 915 of multiplexer 914 is coupled to bus 1012.
Numerous modifications and adaptations of the embodiments described herein will be apparent to the skilled artisan in view of the disclosure. As one example, the SPU mix 510 can be similarly configured as OSD Mix 520 of FIG. 10, where subtractor 702, multiplier 706, and adder 710 are replaced by two multipliers and an adder. Also, instead of using the linear arithmetic operations to implement fade in and fade out, a nonlinear operation can be used. Instead of using a single arithmetic unit 848 (FIG. 2B and FIG. 8) for both chroma values, two arithmetic units can be used, one for each chroma value. Also instead of adjusting the pixel components of luma, chroma blue, and chroma red, fader 514 can be used to adjust pixel components in other color space such as RGB and YUV. Numerous such changes and modifications are encompassed by the attached claims.
APPENDIX A
-- q has layer 2 (spu) mixed IN
PROCESS (reset, clk)
variable tmp : integer;
variable tmp_luma : integer;
variable tmp_chroma : integer;
variable tmp_chroma_fade_out : integer;
variable tmp_chroma_scaled : integer;
variable chroma_scaled_vec : std_logic_vector(21 downto
0);
variable tmp_fade_out : integer;
BEGIN
IF (reset = ‘1’) THEN
q <= ( others => ‘0’ );
ELSEIF (clk′EVENT AND clk = ‘1’) THEN
IF ((spu_enable = ‘0’) OR (video_only = ‘1’))
THEN
tmp := 32 * b_int;
ELSE
tmp := 32 * a_int + z_int;
END IF;
tmp_luna   : =
conv_integer(signed(fade_out_1));
tmp_chroma: = conv_integer(signed(fade_out_c));
IF (fade_out_en = ‘1’ AND pel_is_main = ‘1’)
THEN
IF (pel_state_2d(0) = ‘0’) THEN --
chroma
-- b_int = tmp*2, tmp=*2, tmp_b_int*32,
thus tmp_chroma * 64
tmp_chroma_scaled := (tmp -
128*64) * tmp_chroma;
chroma_scaled_vec :=
conv_std_logic_vector(tmp_chroma_scaled,22);
tmp_chroma_fade_out :=
conv_integer(signed(chroma_scaled_vec(21
downto 8)));
tmp_fade_out :=
tmp_chroma_fade_out + 128*64;
ELSE
tmp_fade_out := tmp − tmp_luna *
64;
IF (tmp_fade_out < 0) THEN
tmp_fade_out := 0;
ELSIF (tmp_fade_out > 64*255)
THEN tmp_fade_out := 64*255;
END IF;
END IF;
ELSE
temp _fadeout := tmp;
END IF:
q <= conv_std_logic_vector (tmp_fade_out,
14);
END IF;
END PROCESS;

Claims (19)

What is claimed is:
1. A method for fading a video signal, the method comprising:
changing a first chroma value in response to a scale factor to form a faded chroma value;
changing a first luma value by subtracting a fade factor to form a faded luma value;
displaying a pixel generated from at least the faded chroma and the faded luma values;
mixing the faded chroma value with a second chroma value to form a mixed chroma value; and
mixing the faded luma value with a second luma value to form a mixed luma value.
2. The method of claim 1, wherein the changing of the first chroma value includes performing an arithmetic operation.
3. The method of claim 2, wherein the arithmetic operation comprises:
subtracting a predetermined value from the first chroma value to form a resultant;
multiplying the resultant with said scale factor to form a product; and
adding the predetermined value to the product to form the faded chroma value.
4. The method of claim 1, wherein the mixing of the faded chroma value and the second chroma value comprises:
multiplying the faded chroma value with a mix weight (mw) to form a first product and multiplying the second chroma value with one minus the mix weight (1−mw) to form a second product; and
adding the first product and the second product to form the mixed chroma value.
5. The method of claim 1, wherein the mixing of the faded chroma value and the second chroma value comprises:
subtracting the second chroma value from the faded chroma value to form a resultant;
multiplying the resultant with a mix weight (mw) to form a product; and
adding the second chroma value to the product to form the mixed chroma value.
6. The method of claim 1, wherein the mixing of the faded luma value and the second luma value comprises:
multiplying the faded luma value with a mix weight (mw) to form a first product and multiplying the second luma value with one minus the mix weight (1−mw) to form a second product; and
adding the first product and the second product to form the mixed luma value.
7. The method of claim 1, wherein the mixing of the faded luma value and the second luma value comprises:
subtracting the second luma value from the faded luma value to form a resultant;
multiplying the resultant with a mix weight (mw) to form a product; and
adding the second luma value to the product to form the mixed luma value.
8. The method of claim 1, further comprising:
changing the second chroma value to form another faded chroma value;
changing the second luma value to form another faded luma value;
displaying a first image including a first pixel generated from at least the first chroma and the first luma values; and
displaying a second image including a second pixel generated from at least the second chroma and the second luma values.
9. The method of claim 1, further comprising:
changing the second chroma value to form another faded chroma value, wherein a single circuit is used in said changing of the first chroma value and said changing of the second chroma value, said circuit being time shared such that said circuit first changes the first chroma value and then changes the second chroma value.
10. A circuit for fading a video signal comprising a fade circuit comprising:
a first arithmetic unit having (i) a first port coupled to a first bus carrying a chroma signal and (ii) a second port coupled to a second bus carrying a scale signal, wherein the first arithmetic unit adjusts the chroma signal using the scale signal;
a second arithmetic unit having (i) a third port coupled to a third bus carrying a luma signal and (ii) a fourth port coupled to a fourth bus carrying a fade signal, wherein the second arithmetic unit adjusts the luma signal using the fade signal; and
a clipper having a fifth port coupled to a fifth bus of the second arithmetic unit, wherein the fifth bus carries a difference between the luma signal and the fade signal, the clipper outputs on a sixth bus (1) a maximum signal when said difference is greater than the maximum signal, (2) a minimum signal when said difference is less than the minimum signal, or (3) said difference when said difference is less than the maximum signal and greater than the minimum signal.
11. The circuit of claim 10, wherein the second arithmetic unit is a subtractor, the subtractor subtracts the fade signal from the luma signal.
12. The circuit of claim 10, further comprising a demultiplexer having:
a sixth port coupled to a seventh bus carrying a mixed signal;
the first bus;
the third bus; and
a control terminal coupled to a line carrying a control signal, wherein the mixed signals comprise the chroma signal and the luma signal, the demultiplexer propagating the chroma signal to the first bus when the control signal is active, the demultiplexer propagating the luma signal to the third bus when the control signal is inactive.
13. The circuit of claim 10, further comprising a multiplexer having:
a sixth port coupled to a seventh bus of the first arithmetic unit;
a seventh port coupled to an eighth bus of the second arithmetic unit;
a control terminal coupled to a line carrying a control signal; and
a ninth bus, wherein the multiplexer propagates (1) the signals received on the sixth port to the ninth bus when the control signal is active and (2) the signals received on the seventh port to the ninth bus when the control signal is inactive.
14. The circuit of claim 10, wherein the first arithmetic unit comprises:
a subtractor having a sixth port coupled to the first bus and a seventh port coupled to a seventh bus carrying a predetermined signal, wherein the subtractor subtracts the predetermined signal from the chroma signal and outputs a first resultant signal on an eighth bus;
a multiplier having an eighth port coupled to the eighth bus and a ninth port coupled to the second bus, wherein the multiplier multiplies the first resultant signal with the scale signal and outputs a product signal on a ninth bus; and
an adder having a tenth port coupled to the ninth bus and an eleventh port coupled to the seventh bus, wherein the adder adds the predetermined signal to the product signal and outputs a second resultant signal on a tenth bus.
15. The circuit of claim 14, wherein the first arithmetic unit further comprises a second clipper having a twelfth port coupled to the tenth bus, wherein the second clipper outputs on an eleventh bus (1) a second maximum signal when the second resultant signal is greater than the second maximum signal, (2) a second minimum signal when the second resultant signal is less than the second minimum signal, or (3) the second result signal when the second resultant signal is less than the second maximum signal and greater than the second minimum signal.
16. The circuit of claim 10, further comprising a mix circuit having:
a subtractor having a sixth port coupled to a seventh bus of the fade circuit carrying a first pixel signal and a seventh port coupled to an eighth bus carrying a second pixel signal, wherein the subtractor subtracts the second pixel signal from the first pixel signal to form a first resultant signal on a ninth bus;
a multiplier having an eighth port coupled to the ninth bus and a ninth port coupled to a tenth bus carrying a mix weight signal, wherein the multiplier multiplies the first resultant signal with the mix weight signal to form a product signal on an eleventh bus; and
an adder having a tenth port coupled the eighth bus and an eleventh port coupled to the eleventh bus, wherein the adder adds the second pixel signal to the product signal to form a second resultant signal on a twelfth bus.
17. The circuit of claim 10, further comprising a mix circuit having:
a first multiplier having a sixth port coupled to a seventh bus of the fade circuit carrying a first pixel signal and a seventh port coupled to an eighth bus carrying a mix weight (mw) signal, wherein the first multiplier multiplies the first pixel signal with the mix weight signal to form a first product signal on a ninth bus;
a second multiplier having an eighth port coupled to a tenth bus carrying a second pixel signal and a ninth port coupled to an eleventh bus carrying one minus the mix weight signal (1−mw), wherein the multiplier multiplies the second pixel signal with the one minus the mix weight signal (1−mw) to form a second product signal on a twelfth bus; and
an adder having a tenth port coupled to the ninth bus and an eleventh port coupled to the twelfth bus, wherein the adder adds the first product signal and the second product signal to form a resultant signal on a thirteenth bus.
18. The circuit of claim 10, further comprising a mix circuit having:
a subtractor having a sixth port coupled to a seventh bus carrying a first pixel signal and a seventh port coupled to an eighth bus carrying a second pixel signal, wherein the subtractor subtracts the second pixel signal from the first pixel signal to form a first resultant signal on a ninth bus;
a multiplier having an eighth port coupled to the ninth bus and a ninth port coupled to a tenth bus carrying a mix weight signal, wherein the multiplier multiplies the first resultant signal with the mix weight signal to form a product signal on an eleventh bus; and
an adder having a tenth port coupled the eighth bus and an eleventh port coupled to the eleventh bus, wherein the adder adds the second pixel signal to the product signal to form a second resultant signal on a twelfth bus, the twelfth bus coupled to either the first port of the first arithmetic unit or the third port of the second arithmetic unit.
19. A method for fading a video signal, the method comprising:
changing a first chroma value in response to a scale factor to form a faded chroma value;
changing a first luma value by subtracting a fade factor to form a faded luma value;
displaying a pixel generated from at least the faded chroma and the faded luma values; and
mixing the faded chroma value with a second chroma value to form a mixed chroma value.
US09/472,670 1999-12-27 1999-12-27 Fading of main video signal without affecting display of superimposed video signal Expired - Lifetime US6587155B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/472,670 US6587155B1 (en) 1999-12-27 1999-12-27 Fading of main video signal without affecting display of superimposed video signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/472,670 US6587155B1 (en) 1999-12-27 1999-12-27 Fading of main video signal without affecting display of superimposed video signal

Publications (1)

Publication Number Publication Date
US6587155B1 true US6587155B1 (en) 2003-07-01

Family

ID=23876471

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/472,670 Expired - Lifetime US6587155B1 (en) 1999-12-27 1999-12-27 Fading of main video signal without affecting display of superimposed video signal

Country Status (1)

Country Link
US (1) US6587155B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020047851A1 (en) * 2000-10-19 2002-04-25 Sanyo Electric Co., Ltd. Image data output device and receiving device
US20020196369A1 (en) * 2001-06-01 2002-12-26 Peter Rieder Method and device for displaying at least two images within one combined picture
US20040017508A1 (en) * 2002-07-23 2004-01-29 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US6975310B1 (en) * 2003-07-07 2005-12-13 National Semiconductor Corporation Fade controller for providing programmable fade rates for on-screen display (OSD) window
US20060181646A1 (en) * 2005-02-14 2006-08-17 Sanyo Electric Co., Ltd. On-screen display circuit
US20100123823A1 (en) * 2008-11-18 2010-05-20 Samsung Electronics Co., Ltd. Display apparatus and control method thereof
US10110950B2 (en) 2016-09-14 2018-10-23 International Business Machines Corporation Attentiveness-based video presentation management
US10171601B2 (en) 2016-08-21 2019-01-01 International Business Machines Corporation Availability-based video presentation management
US20190141352A1 (en) * 2017-11-03 2019-05-09 Electronics And Telecommunications Research Institute Tile-based 360 vr video encoding method and tile-based 360 vr video decoding method

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591913A (en) * 1983-05-21 1986-05-27 Robert Bosch Gmbh Method and circuit apparatus for special-effect television picture transitions in which a picture comes on by growing in size or fades away by diminishing in size
US4644400A (en) * 1984-04-09 1987-02-17 Nec Corporation Digital audio synchronizing system with cross-fade means
US4833524A (en) * 1986-03-19 1989-05-23 Robert Bosch Gmbh System for two-dimensional blending of transitions between a color video picture signal and a background color signal
US5168363A (en) * 1989-10-16 1992-12-01 Sony Corporation Video signal parocessing apparatus with memory and crossfader
US5220433A (en) * 1989-10-31 1993-06-15 Asahi Kogaku Kogyo Kabushiki Kaisha Still video apparatus including picture and sound fading
US5260695A (en) * 1990-03-14 1993-11-09 Hewlett-Packard Company Color map image fader for graphics window subsystem
US5428398A (en) * 1992-04-10 1995-06-27 Faroudja; Yves C. Method and apparatus for producing from a standard-bandwidth television signal a signal which when reproduced provides a high-definition-like video image relatively free of artifacts
US5455633A (en) * 1992-09-03 1995-10-03 U.S. Philips Corporation Chromakey method for processing picture signals in which fading operations are performed in proportional zones based on a control signal
US5477276A (en) * 1992-12-17 1995-12-19 Sony Corporation Digital signal processing apparatus for achieving fade-in and fade-out effects on digital video signals
US5502505A (en) * 1993-03-30 1996-03-26 Sony Corporation Special effect video apparatus for achieving extended dimming and fading effects
US5600370A (en) * 1991-05-10 1997-02-04 Canon Kabushiki Kaisha Image sensing apparatus with fading action and control thereof
US5663771A (en) * 1996-06-13 1997-09-02 Raytheon Company Adaptive video comb filter with legalized output signals
US5689310A (en) * 1994-10-31 1997-11-18 Sony Corporation Fader device
US5802226A (en) * 1996-03-29 1998-09-01 Matsushita Electric Industrial Co., Ltd. Method and apparatus for video fade effect with a single video source
US5990977A (en) * 1996-04-27 1999-11-23 Victor Company Of Japan, Ltd. Picture switching apparatus for executing a fade-out/fade-in processing
US6301429B1 (en) * 1997-05-19 2001-10-09 Sony Corporation Reproducing apparatus, recording apparatus and recording medium adapted to process fade-in, fade-out and cross-fade
US6421498B1 (en) * 1993-12-28 2002-07-16 Canon Kabushiki Kaisha Image signal processing apparatus and method for cross-fading moving image signals

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591913A (en) * 1983-05-21 1986-05-27 Robert Bosch Gmbh Method and circuit apparatus for special-effect television picture transitions in which a picture comes on by growing in size or fades away by diminishing in size
US4644400A (en) * 1984-04-09 1987-02-17 Nec Corporation Digital audio synchronizing system with cross-fade means
US4833524A (en) * 1986-03-19 1989-05-23 Robert Bosch Gmbh System for two-dimensional blending of transitions between a color video picture signal and a background color signal
US5168363A (en) * 1989-10-16 1992-12-01 Sony Corporation Video signal parocessing apparatus with memory and crossfader
US5220433A (en) * 1989-10-31 1993-06-15 Asahi Kogaku Kogyo Kabushiki Kaisha Still video apparatus including picture and sound fading
US5260695A (en) * 1990-03-14 1993-11-09 Hewlett-Packard Company Color map image fader for graphics window subsystem
US5600370A (en) * 1991-05-10 1997-02-04 Canon Kabushiki Kaisha Image sensing apparatus with fading action and control thereof
US5428398A (en) * 1992-04-10 1995-06-27 Faroudja; Yves C. Method and apparatus for producing from a standard-bandwidth television signal a signal which when reproduced provides a high-definition-like video image relatively free of artifacts
US5455633A (en) * 1992-09-03 1995-10-03 U.S. Philips Corporation Chromakey method for processing picture signals in which fading operations are performed in proportional zones based on a control signal
US5477276A (en) * 1992-12-17 1995-12-19 Sony Corporation Digital signal processing apparatus for achieving fade-in and fade-out effects on digital video signals
US5502505A (en) * 1993-03-30 1996-03-26 Sony Corporation Special effect video apparatus for achieving extended dimming and fading effects
US6421498B1 (en) * 1993-12-28 2002-07-16 Canon Kabushiki Kaisha Image signal processing apparatus and method for cross-fading moving image signals
US5689310A (en) * 1994-10-31 1997-11-18 Sony Corporation Fader device
US5802226A (en) * 1996-03-29 1998-09-01 Matsushita Electric Industrial Co., Ltd. Method and apparatus for video fade effect with a single video source
US5990977A (en) * 1996-04-27 1999-11-23 Victor Company Of Japan, Ltd. Picture switching apparatus for executing a fade-out/fade-in processing
US5663771A (en) * 1996-06-13 1997-09-02 Raytheon Company Adaptive video comb filter with legalized output signals
US6301429B1 (en) * 1997-05-19 2001-10-09 Sony Corporation Reproducing apparatus, recording apparatus and recording medium adapted to process fade-in, fade-out and cross-fade

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Jim Taylor, DVD Demystified, 1998, Chapter 4, pp. 120-186; Glossary, pp. 393-429; and Index, one page.
LSI Logic Corporation, L64021 DVD Audio/Video Decoder Technical Manuel, Sep. 1998.
Sony Technology DVP S-330, Product Specifications, http://www.sel.sony.com/SEL/consumer/dvd/p2_specs.html, Dec. 21, 1999, pages 1-5.
Sony Technology DVP-S330 Audio Features, http://www.sel.sony.com/SEL/consumer/dvd/p2_aud.html, Dec. 21, 1999, 1 page.
Sony Technology DVP-S330, Construction, http://www.sel.sony.com/SEL/consumer/dvd/p2_constr.html, Dec. 21, 1999, 1 page.
Sony Technology DVP-S330, Convenience, http://www.sel.sony.com/SEL/consumer/dvd/p2_conv.html, Dec. 21, 1999, 1 page.
Sony Technology DVP-S330, Overview, http://www.sel.sony.com/SEL/consurmer/dvd/prod_s330.html, Dec. 21, 1999, 1 page.
Sony Technology DVP-S330, Video Features, http://www.sel.sony.com/SEL/consumer/dvd/p2_vid.html, Dec. 21, 1999, 1 page.

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006156B2 (en) * 2000-10-19 2006-02-28 Sanyo Electric Co., Ltd. Image data output device and receiving device
US20020047851A1 (en) * 2000-10-19 2002-04-25 Sanyo Electric Co., Ltd. Image data output device and receiving device
US20020196369A1 (en) * 2001-06-01 2002-12-26 Peter Rieder Method and device for displaying at least two images within one combined picture
US7050112B2 (en) * 2001-06-01 2006-05-23 Micronas Gmbh Method and device for displaying at least two images within one combined picture
US20080036906A1 (en) * 2002-07-23 2008-02-14 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US20110044661A1 (en) * 2002-07-23 2011-02-24 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US8619188B2 (en) 2002-07-23 2013-12-31 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US20070008422A1 (en) * 2002-07-23 2007-01-11 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US7283172B2 (en) 2002-07-23 2007-10-16 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US20040017508A1 (en) * 2002-07-23 2004-01-29 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US7843508B2 (en) 2002-07-23 2010-11-30 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US6975310B1 (en) * 2003-07-07 2005-12-13 National Semiconductor Corporation Fade controller for providing programmable fade rates for on-screen display (OSD) window
US7630017B2 (en) * 2005-02-14 2009-12-08 Sanyo Electric Co., Ltd. On-screen display circuit
US20060181646A1 (en) * 2005-02-14 2006-08-17 Sanyo Electric Co., Ltd. On-screen display circuit
US20100123823A1 (en) * 2008-11-18 2010-05-20 Samsung Electronics Co., Ltd. Display apparatus and control method thereof
US8300151B2 (en) * 2008-11-18 2012-10-30 Samsung Electronics Co., Ltd. Display apparatus and control method thereof
US10171601B2 (en) 2016-08-21 2019-01-01 International Business Machines Corporation Availability-based video presentation management
US10110950B2 (en) 2016-09-14 2018-10-23 International Business Machines Corporation Attentiveness-based video presentation management
US20190141352A1 (en) * 2017-11-03 2019-05-09 Electronics And Telecommunications Research Institute Tile-based 360 vr video encoding method and tile-based 360 vr video decoding method

Similar Documents

Publication Publication Date Title
US5912710A (en) System and method for controlling a display of graphics data pixels on a video monitor having a different display aspect ratio than the pixel aspect ratio
US6373527B1 (en) High definition television for simultaneously displaying plural images contained in broadcasting signals of mutually different broadcasting systems
US4991012A (en) Television receiver displaying multiplex video information on a vertically oblong display screen and an information displaying method thereof
US7973806B2 (en) Reproducing apparatus capable of reproducing picture data
EP0734181B1 (en) Subtitle data encoding/decoding and recording medium for same
US6363207B1 (en) Method and apparatus for a virtual system time clock for digital audio/video processor
US6493005B1 (en) On screen display
EP1675395A1 (en) Reproducing device, reproducing method, reproducing program, and recording medium
JP4008580B2 (en) Display control apparatus and interlace data display control method
JPH07203396A (en) Subtitle data decoding device
JP2006352186A (en) Video processing apparatus and video display apparatus
JP2005326684A (en) Video device and imaging device
US8040433B2 (en) Video output apparatus, control method thereof, and video device
US7936360B2 (en) Reproducing apparatus capable of reproducing picture data
US6587155B1 (en) Fading of main video signal without affecting display of superimposed video signal
US6489933B1 (en) Display controller with motion picture display function, computer system, and motion picture display control method
JP2005045787A (en) Video signal processing apparatus to generate both progressive and interlace video signals
JPH11313339A (en) Display controller and dynamic image/graphics composite display method
US20070133950A1 (en) Reproduction apparatus, reproduction method, recording method, image display apparatus and recording medium
JP2002084550A (en) Image signal processor
JPH11143441A (en) Device and method for controlling image display
JPH1118108A (en) Video signal processing unit and video signal processing method
JP2009038682A (en) Image processor, and image processing method
KR100282369B1 (en) Video signal converter
US20060215756A1 (en) Decoding circuit and decoding method

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI LOGIC CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:XUE, NING;REEL/FRAME:010492/0179

Effective date: 19991221

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270

Effective date: 20070406

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

AS Assignment

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047195/0026

Effective date: 20180509

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER PREVIOUSLY RECORDED ON REEL 047195 FRAME 0026. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047477/0423

Effective date: 20180905