Multimedia system for processing a variety of images together with sound5630105Abstract A high performance computer includes a CPU, a video display unit, a control unit, an image data extension unit, a video encoder unit responsive to the outputs of the video display unit, the controller unit and the image data extension unit, and a sound data output unit, for processing a variety of image data together with a variety of sound data at high speed. Three types of image data sequence processes can be carried out in the computer. These are an external block sequence, an external dot sequence, and an internal dot sequence. Claims I claim: Description BACKGROUND OF THE INVENTION
______________________________________
ROW.sub.-- SIZE
______________________________________
000 8 bits
001 9 bits
010 10 bits
011 11 bits
100 12 bits
______________________________________
COL.sub.-- SIZE (column size)
______________________________________
00 8 bits
01 9 bits
10 10 bits
11 11 bits
______________________________________
ARRAYS (array size)
______________________________________
0 1 array
1 2 arrays
______________________________________
REFRESH.sub.-- EN (refresh enable)
______________________________________
0 refresh disable
1 refresh enable
______________________________________
The DRAM system is defined by the combination of "ROW.sub.-- SIZE" and "COL.sub.-- SIZE". For example, when the "ROW.sub.-- SIZE"=2 (=(010).sup.2 that is, 10 bits) and "COL.sub.-- SIZE"=1 (=(01)2, that is, 9 bits), a DRAM of 512 k.times.8 (ROW.times.COL=10.times.9) is instructed to be set as shown in the table of FIG. 14. Further, 1 array and 4 chips are instructed to be set when "ARRAYS=0". Next, refresh cycle operation of the system will be explained in conjunction with FIG. 16. If the memory is not accessed in a predetermined time, data stored in the memory is erased. For the reason, it is necessary that the memory is refreshed (that is, the memory is electrically activated) if the memory is not accessed in the predetermined time. The MCU has a refresh timer which includes a frequency divider for generating a timer clock having one thirty-second (1/32) the frequency of system clock, a refresh timer register and a timer counter. Timer clock signals are supplied to the timer counter. Refresh cycle (time) varies in dependence of structure of the DRAM, and is programmable. The memory refresh operation is controlled by data stored in 0 to 6 bits regions of the refresh timer register, as shown in FIG. 16. The control operation is automatically carried out by the ports. When the memory specifying register provides a refresh enable instruction, the refresh cycle is determined in accordance with contents of the timer counter and refresh timer register, whereby the memory is refreshed at predetermined intervals. When the CPU writes data in the refresh timer (bank 3, address 5), the data are written in the timer register. On the other hand, when the CPU reads data from the refresh timer, data in the timer counter are read. The timer register assumes a zero state after reset. Refresh operation is required at each time when the timer counter finishes counting (0.times.7 F, that is 7 F of hexadecimal notation). Until the timer counting is finished, the timer counter continues to count for each timer clock cycle. When timer counting is finished, the timer counter is initialized in accordance with data stored in the refresh timer register. In order to assure that the DRAM on a memory port is refreshed at the rated timing, figures to be used for controlling a period of memory refresh cycle are loaded in the refresh register. Figure data composed of DRAM refresh period, DRAM refresh cycle and clock period of the timer clock are programmed in the refresh timer register. The figure data are given by the following equations. REFRESH TIMER=0.times.7F-CYCLE NUMBER CYCLE NUMBER=REFRESH INTERVAL/CLOCK PERIOD REFRESH INTERVAL=REFRESH PERIOD/REFRESH CYCLE NUMBER The MCU uses a "CAS before RAS refresh", so that address data are not required to be supplied to the DRAM for each refresh cycle. FIG. 17 shows the control unit 104, which performs an internal dot sequence process, an external dot sequence process, an "AFFIN" transformation and a microprogram process for accessing the RAM. In the control unit 104, a variety of data are read from the CD-ROM 100 by the SCSI controller, the read data are stored in the K-RAM. The K-RAM can store a variety types of data such as 8 bits data and 16 bits data. The AFFIN transformation (reverse formation) is a process for extending, reducing or rotating a picture, centering around a point (X0, Y0), as shown in FIG. 18. The AFFIN transformation is carried out as follows: A=.alpha.cos.theta. B=-.beta.sin.theta. C=.alpha.sin.theta. D=-.beta.cos.theta. .alpha.=reduction rate in X direction .beta.=reduction rate in Y direction .theta.=rotation angle (X0, Y0): center coordinate (X1, Y1): coordinate after reverse transformation (X2, Y2): coordinate before reverse transformation When a reduction rate .alpha. is "n", X direction length is one n-th (1/n). As to the rotating process, the position of the picture varies depending on where the rotation center is located. The coefficients A, B, C and D for AFFIN transformation is set in a "BG AFFIN transformation coefficient register", and the center coordinate for rotation are set in "BG AFFIN transformation center coordinate X register" and "BG AFFIN transformation center coordinate Y register". FIGS. 19A and 19B show configurations of the registers above mentioned, respectively. The coefficients A, B, C and D and the center coordinate (X0, Y0) correspond to parameters in the formulas shown in the penultimate paragraph. In each of the registers, figures before the decimal point of the coefficient are arranged at the first 8 bits and figures after the decimal point are arranged at the last 8 bits. The center coordinate is defined in accordance with the coordinate of an original image. Each of the registers keeps a value set therein until the following value is set. Each of the registers becomes valid after the following HSYNC. FIG. 20 shows an image reducing process. In this process, a straight road illustrated on a virtual screen is reduced by the control unit and the reduced road is displayed on a video screen (real screen). On the video screen, the top of the road is reduced to one fourth and the bottom is displayed at the same magnification, that is the picture (road) is displayed in perspective. In this case, a reduction rate ".alpha." of the X direction is calculated for each raster in accordance with the following equation. .alpha.=3.times.(R-r)/R+1 In this equation, "R" shows a raster number "-1", and "r" shows a number which is decreased one by one from "R" so that the number becomes 0 before the last raster is displayed. That is, ".alpha." is 4 when the top portion of the picture is displayed, and is 1 when the bottom of the picture is displayed. In this case, no rotation is carried out, that is rotation angle .theta. is 0 and the center coordinate is (X0, Y0). Therefore, the AFFIN transforming coefficients A, B, C and D are given by the following equations, respectively. A=.alpha. cos .theta.=.alpha. B=-.beta. sin .theta.=0 C=.alpha. sin .theta.=.alpha. D=-.beta. cos .theta.=0 FIG. 21 shows a flow chart of the image reducing operation mentioned before. In this loop, "r", "A" and "C" are calculated within the HSYNC period, however, some interruptions actually occur in HSYNC. Therefore, the calculations are carried out within the interruption periods. Such a process is implemented for displaying pictures having different reduction rate. If the screen is reduced in size uniformly, a reduction rate ".alpha." given at the initial process is set in the BG AFFIN transformation register. This process may be also adapted for a rotation operation. In the control unit 104, an arithmetic process for accessing the K-RAM is programmed in a controller chip whereby a user may set access timing by using the register. In this invention, VSYNC, HSYNC and DCK (dot clock) may be used as control signals. FIG. 22 shows a time relation between HSYN and DCK, the DCK of about 341 cycles being included in one HSYNC period. In accordance with the dot clock cycle, access operation is carried out. The microprogram is loaded into a controller chip in accordance with a microprogram load address register. That is, when an initial address is specified in the register, the microprogram begins to be loaded. At this time, it is necessary that an MPSW in the microprogram control register be set to be "0". After the loading of he microprogram, the microprogram begins operating when the MPSW is set to be "1". The microprogram data register specifies which cycle is used for the access. FIGS. 23A, 23B and 23C show configurations of the microprogram control register, microprogram load address register and microprogram data register, respectively. FIG. 24 shows an actual configuration of the microprogram data register. The microprogram data register specifies content of K-RAM access address generation, the timing of the generation and the direction to which data are transmitted. For the external block sequence type data and external dot sequence type data, the BAT data are read first and then the CG data are read using two dots. Description data are divided into two blocks (A bus and B bus), and includes as shown in FIG. 24 the following contents: (1) process/non-process (NOP/-NOP) (2) BG screen number (0 to 3) (3) rotation/non-rotation (4) SAT/CG (BAT/-CG) (5) BAT indirect CG/direct CG (indirect/-direct CG) (6) CG offset The controller chip supplies BG screen data dot-by-dot in synchronization with HDISP (horizontal display period). On the other hand, the microprogram operation is started and ended in synchronization with BG DISP (BG display period). As shown in FIG. 25, the rotation process and non-rotation process have different delay times, so that a non-rotation screen is processed in synchronization with a BGNDISP and a rotation screen is processed in synchronization with a BGRDISP. Therefore, the microprogram operates in an MICRO.P period. Data access timing of a graphic controller chip of control unit 104 is controlled by the microprogram in the control unit 104. The graphic controller chip may use five modes of 4 color, 16 color, 256 color, 64K color and 16M color for each BG image, the BG images being able to be displayed simultaneously. That is, the image data in the different color modes can be displayed simultaneously. Operation in 8-dot clock cycle is written in each of two K-BUS units independently in accordance with the microprogram, so that the buses operate step by step independently and such that the 8-dot clock cycle is repeated. FIG. 26 shows an example of an address generating process by the microprogram, the example being for triple screen mode as follows: (1) BG0: 256 -color mode of external block sequence type (2) BG1: 16-color mode of external block sequence type (3) BG2: 16-color mode of internal dot sequence type Referring to FIG. 27, B-bus data are specified by "BG0 indirect CG (0)" in the 0 cycle, so that "external block sequence type 256 color mode BAT indirect CG0" is accessed in a BRAM. At this time an ARAM is not accessed, that is NOP (non-operation) is carried out to the ARAM. The control unit 104 loads a variety of image data into the RAM to process the data and to control transmission of the data. The RAM has a variety of arrangement patterns corresponding to the data modes, respectively, in order to use the RAM effectively. A value to be added to the previous address is calculated so that the address may be available in every data mode. Therefore, a variety of image data can be processed. The control unit 104 is provided with a register for instructing address calculation in response to the data mode, so that data access is carried out in order as long as information showing an initial value and additional value of the memory to be accessed and a discrimination of read or write are set in the register. Operation of the address calculating instruction will be explained. In this case, a first line data of BG pictures, each of which is composed of 8.times.8 dot characters, is changed. The BG pictures are arranged 32.times.32 on a screen as shown in FIG. 28. There are three types of registers Reg0C (for writing), Reg0D (for reading) and Reg0E (RAM access distinction), these registers being used for memory access. The Reg0D is set as follows to rewrite data stored in a first line of the BG screen: Writing address (bit 0 to 17): Initial address Offset (bit 18 to 23): 32 The offset can be set in a range between -512 to +512, the "+" meaning increase and "-" meaning decrease. In the above example, the offset is set at +32 (bits) so that BG data are rewritten with an interval of 32 bits. Such address calculation is carried out by the video encoder unit 112. As shown in the flow chart of FIG. 29, when an access instruction is generated, the next access address is automatically calculated by the video encoder unit 112. Therefore, desired data process may be carried out automatically as long as access instructions are generated continuously. FIG. 30 shows memory access operation when the access instruction is generated continuously. The video encoder unit 112 includes two memories K-RAM#A and K-RAM#B, which are established in accordance with on/off of bit-17 in the writing address. The control unit 104 manages a plurality of BG characters to be synthesized with priorities, and processes a variety of data supplied from the K-RAM. The RAM does not store whole image data of one screen, it stores only a part of the image data which are necessary. Image data such as a natural picture, however, are stored entirely in the RAM with no modification. These image data are compiled in accordance with a predetermined priority, then displayed on the virtual screen in accordance with the address data. After that, the screen data are displayed 116 on the TV display by the video encoder 112. The control unit 104 manages four BG screens BG0 to BG3, in which the main picture and sub-picture may be specified as BG image data. The sub-picture is superimposed on the main picture. The main and sub-pictures may be specified to be in either of "Chazutsu" and "non-Chazutsu" modes (endless scroll and non-endless scroll mode). The two scroll modes will be explained later. In this embodiment, the virtual screen indicates a screen set on the memory storing all imaged data therein, the virtual screen being larger than the real screen (TV display monitor). That is, the real screen may be considered an area selected from the virtual screen, the real screen being scrolled when the selected area (display area) is moved in horizontal and vertical directions. In the endless scroll mode (Chazutsumode), even if the display area (real screen) is moved out from the virtual screen, the scroll operation is not stopped, the display area is moved to the other end of the virtual screen in endless fashion. The control unit 104 has an image data region used for displaying transparent area on the virtual screen in the endless scroll mode. That is, the operation is in the non-endless mode (non-Chazutsumode). Each of the four BG screens BG0 to BG3 has both main and sub-pictures so that a special display technique is realized by distinguishing the endless scroll mode and the non-endless scroll mode to the main and sub-pictures independently. Operation of in the endless scroll and non-endless scroll modes are now explained in more detail. FIG. 31 shows the virtual screen for the background. The coordinate of the screen is called an image screen coordinate. The image screen coordinate is composed of 1024.times.1024 dots, that is composed of -512 to +512 dots in horizontal (X) and vertical (Y) directions. The coordinate is in endless scroll mode, that is a first quadrant "I" is connected at the right edge to a second quadrant "II" and at the lower edge to a fourth quadrant "IV". On the virtual screen, an area for real screen is ensured as 256.times.240 dots. Therefore, when the 256.times.240 area is moved to up-and-down and right-and-left, the image is scrolled on the real screen. FIGS. 32 and 33 show BG virtual screens in the non-endless scroll mode. In the non-endless scroll mode, an area which is not either a main picture or a sub-picture is shown as transparent. In this mode, when the real screen display area is moved to the transparency area, a transparent image is displayed on the real display screen so that no image distortion is shown on the real display screen. If the sub-picture is in the endless scroll mode, the sub-picture is displayed continuously, as shown in FIGS. 34 and 35, so that the virtual screen is shown with the sub-pictures as "tiles" thereon throughout. As a result, the sub-pictures are displayed repeatedly when the real screen is scrolled. Managing operation of the main and sub-pictures is now explained. The BG screen is managed in accordance with BAT (background attribute table) and CG (character generator). The BAT is a table stored in the RAM for specifying characters and their colors to be set on the virtual screen. Each character is composed of 8.times.8 dots. FIG. 36 shows BAT address corresponding to characters on the virtual screen of 512.times.512 dots (64.times.64 characters). The CG is provided in the RAM for specifying real character patterns corresponding to the BAT. Therefore, content of the image to be displayed may be found by changing the CG corresponding to the CG code of the BAT. On the BG0 image, the BAT and CG are specified for the main and sub-pictures, respectively, whereby the main and sub-pictures may be treated independently. Therefore, the BG screen looks as if two pictures are displayed independently thereon. For example, if the sub-pictures are tiled on all areas of the virtual screen except for the main picture and are scrolled, it looks as if the main and sub-pictures are displayed independently, that is, two BG screens are displayed on the real screen. FIG. 37 shows a configuration of an endless scroll mode set register for the sub-pictures. The operation of the endless scroll and non-endless scroll modes are constructed in the hardware, so that a scroll mode to be used is specified by the endless scroll mode set register. The endless and non-endless scroll modes are only effective for the sub-pictures. The sub-picture operates in the non-endless scroll mode when "0" is set in the scroll mode set register, and operates in the endless scroll mode when "1" is set in the register. If the scroll mode is specified in an initial process, it is not necessary to manage the scroll modes by a user program. Operation of the endless scroll mode for the BG0 screen, including both the main and sub-pictures, is now explained in conjunction with FIG. 38. On the BG0 screen, the sub-picture and main picture show waves of one character size and an island of four character size. The sub-picture is set to operate in the endless scroll mode so that the wave is developed on the virtual screen entirely. Therefore, it is easy to display the island floating on the sea by using a five character memory. A BG screen management register is now explained. The BG0 screen has the main and sub-pictures which are independently managed by the BAT and CG, and each of the BAT and CG has its own address register. That is, the main and sub-pictures are independently managed by four registers. On the other hand, each of the BG1 to BG3 screens is managed by the BAT and CG each having one address register, the main and sub-pictures being managed by one address register. In these address registers, "-A/B" at the seventh bit specifies whether ARAM or BRAM is available in the K-RAM. The ARAM is designated when A/B 0, and the BRAM is designated when A/B=1. FIG. 39 shows a relation between BAT/CG address register and the K-RAM. A BAT address is defined by figures at the last seven bits and ten bits of zero in the BAT register. An address of the CG is given as follows in accordance with the color modes. [4 COLOR MODE] 00<character code>000+<CG address>0000000000 [16 COLOR MODE] 0<character code>0000+<CG address>0000000000 [256, 64K and 16M COLOR MODES] <character code>00000 +<CG address>0000000000 In these formulas, <character code> indicates the content of the BAT and <CG address> indicates the last seven bits of the CG address register. In the character codes, the end bit is set to be "0" in the 256 color mode and the end two bits are set to be "00" in the 64K and 16M color modes. Therefore, as long as the CG addresses are different from each other, different types of the CG may be obtained even though the same BAT are stored in the RAM. The address registers are sampled for each raster, and become effective at the following HSYNC (HSYNC: a non display period in that a scanning line moves from left to right and returned to the left). FIG. 40 shows operation in the case where the screen is divided into upper and lower screen portions. However, first, a conventional BAT is now explained. According to the conventional BAT, two CGs for lower and upper screens are required to form the picture shown in FIG. 40, because the conventional BAT treats only continuous regions. The CGs may be arranged to be linked to each other or separated by some space. The picture is displayed only by a continuous process of the BAT. A lower half character code of the BAT has to be changed to the CG of the following picture in order to change only the lower picture. This process takes a long time in that address of the BAT address register is changed. Therefore, the upper and lower pictures can not be displayed separately in a moment. According to the preferred embodiment, the upper and lower pictures are stored in BAT1 and BAT2, respectively. The locations of the BAT1 and BAT2 are not limited in the K-RAM. The K-RAM includes upper and lower CG corresponding to BAT1 and BAT2, respectively. In order to display the upper and lower pictures independently, the BAT address register is set at an address of the BAT1 at first and then the set address is changed to an address of the BAT2 (BAT1), because an address in the BAT address register is effective before the following HSYNC. If the upper picture is changed, another BAT needs to be prepared in the K-RAM and the BAT address register is changed. The data start register stores addresses for the virtual screen. The image data extension unit scrolls the actual screen by moving the virtual screen up-and-down and right-and-left. In operation, when scale-down image data are transmitted from the control unit 104 to the image data extension unit 106, the scale-down image data are extended and then are transmitted to the video encoder unit 112. The extended data are transmitted through the NTSC converter 108 to the TV display monitor 116. In this process, the scale-down data from the control unit 104 are transmitted to the image data extension unit 106 for each data block (that is, for each special raster unit) in order to control position of the image to be displayed on the TV display monitor 116. The control unit 104 also transmits ADPCM data to the sound data output unit 110 in synchronization with horizontal synchronizing signals. Image output and sound output data are supplied from TV display monitor 116 and sound data output unit 110 in synchronization with each other precisely, because both data are generated in synchronization with horizontal synchronizing signals. This embodiment employs a ring mode in which the start address is automatically pointed after the end address data stored in data area of the memory are transmitted therefrom, so that continuous reproducing may be realized. A check address is set at an intermediate point between the start and end address. When the intermediate address or the end address is pointed, an interruption occurs. In response to the intermediate and end address interruptions, the first half data and last half data are renewed, respectively, so that continuous reproducing is realized. As a result, the software does not need to check how much the program is processed, new data may be read easily in the interruption routine. In an RGB method, a display color is defined by three colors red, green and blue. On the other hand, according to a YUV method, a display color is defined by a brightness (Y) and color differences (U, V), "Y" representing brightness data, "U" representing color difference data for a blue to yellow family and "V" representing color difference data for a red to green family. In such YUV method, two figures of one and zero are expressed by two bits data, that is, 2.sup.n figures are expressed by "n" bits data. Therefore, the YUV method is more useful than a color pallet method when 64K colors and 16M colors are used for displaying the image. If the colors are directly treated as data in a four color mode, only four colors are defined by two bits. For that reason, the color pallet is used in color modes of less than 256, that is, a color number corresponding to a color to be displayed is selected from colors in the color pallet. FIG. 41 shows image data extension unit 106. The function of the image data extension unit is now explained in conjunction with the figure a. In this figure, data bus buffer 200 is a memory storing image data supplied from the control unit 104 and the like. The image data are divided and transmitted to predetermined blocks in the image data extension unit 106, respectively. External memory "R-RAM A" and "R-RAM B" 202 and 204 are memories each for storing decoded data, each of the memories having a capacity for 16 raster (64K bits). The two memories are used alternatively to increase the process speed. The image data extension unit 106 manages IDCT (Inverse Cosine Transformation) images which are natural moving pictures produced by IDCT decoding, and run-length images which are animation moving pictures produced in accordance with a run-length. In the IDCT image and run-length image, a scale-down picture occupies "256 dots .times.240 rasters" for each field. In the IDCT image, 1677 display colors are used. The run-length image has four run-length color modes by the pallet system, 16 colors, 32 colors, 64 colors and 128 colors. The image data extension unit 106 also includes data bus terminals KR0 to KR7 for receiving data transmitted from the control unit 104 and data request terminal -REQR for supplying data request signal to the control unit 104. The data request signal shows a request for the control unit 104 to supply scale-down image data, that is, "-REQR=0" represents data request and "-REQR=1" a data stop. The image data extension unit 106 needs to decode the scale-down image data of 16 rasters within a 16 raster period. For that reason, 16 rasters data begin to be transmitted to the image data extension unit 104 at 16 rasters before the display timing thereof so that the transmission has finished one raster before initiation of the display. FIG. 42 shows the operation of the display timing of the image data on the video screen. In this embodiment, when a third data of 16 rasters are displayed on the video screen (actual screen), a fourth data of 16 rasters are transmitted from the control unit 104 to the image data extension unit 106, and the transmission is finished before the third data are finished being displayed on the video screen completely. The process is repeated so that image data for one screen are displayed on the video screen; this is called "normal reproduction". The image data extension unit 106 has an FIFO (First In - First Out) memory for image data supplied from the control unit 104. The FIFO supplies a disable signal (-REQR=1) to the control unit 104 when the FIFO is filled up with data so that the control unit 104 stops transmitting data temporarily. FIGS. 43A to 43E show the configurations of registers in the control unit 104. The control unit 104 includes a transfer control register shown in FIG. 43A, a start address register shown in FIG. 43B of the image data extension unit 106 and a multi-musical performance block number register shown in FIG. 43D. The transfer control register is for enabling and disabling transmission. If a disable signal is supplied from the transfer control register to the image data extension unit 106 while some data are transmitted from the image data extension 106 unit, the transmission is stopped. The start address register is for specifying an initial address of the K-RAM storing data for the image data extension unit 106. In response to the initial address, the data stored in the K-RAM begin to be transmitted through the control unit 104. During transmission of block data are in accordance with address data, increment operation of the address is carried out automatically. The transfer start register supplies an instruction to begin data transmission for each raster. When the instruction is supplied to the control unit 104, image data are transmitted from the control unit 104 to the image data extension unit 106. The transfer block number register instructs the number of blocks to be transmitted to the image data extension unit 106, each block being composed of 16 rasters. If the contents of all registers are not changed, the same image is again repeated to be displayed at the same frame. In general, each of the registers becomes effective instantly after setting thereof. If the register is set while data block is transmitted to the image data extension unit 106, the register becomes effective after the transmission. The control unit 104 transmits image data to the image data extension unit 104 only when the K-BUS has been arbitrated, the image data extension unit 106 is ready to be accessed and the request signal (-REQR=0) has been supplied from the image data extension unit 106. On the other hand, transmission by the control unit 104 of the data to the image data extension unit 106 is disabled when at least one of the following conditions is met. (1) The image data extension unit 106 has not processed any operation yet. (2) The image extension unit 106 has the FIFO in full state. (3) While HSYNC are counted by 16 times after the first data of 16 lines are received thereat, all bits data included in the data have been read. Therefore, a first bit of data are disabled to stop transmission. FIG. 44 shows change of screen in the case where three blocks (=16.times.3 rasters) in sixty-four rasters are horizontally scrolled to right by 20 dots. The amount of horizontal scroll is set at a horizontal scroll register of the image data extension unit 106. FIG. 45 is a flow chart showing an algorithm for the horizontal scroll. The transfer start register is set at a value of 16 rasters before a value from which the scroll begins. The image data begins to be transmitted to the image data extension unit 106 when the 48th raster (=64-16) is detected. The horizontal scroll register is set at the 63rd raster (64-1) so that horizontal scroll is effective at the next raster (64th raster). On the other hand, a vertical scroll is controlled by a different way depending on the scroll direction. When the screen is scrolled up in a range of 0 to 15 lines, the set value of the data start raster register is changed. When the screen is scrolled up in a range over 16 lines, the set value of the data start raster register is changed by a block unit and the data start address register is changed in value at the same time. FIG. 46 shows a relation between a start address and a transfer start raster in a twenty-three raster up-scroll mode. In this mode, a first address for the following 16 lines data are set to the data start address register, and a value given by subtracting seven from a value in the normal reproducing mode is set to the start raster register so that the screen is scrolled up by 23 lines. This process is equivalent to that where the data are transmitted from a position at 23 lines lower than the normal position, whereby the screen is displayed from the 23rd lines. FIG. 47 shows the video encoder unit 112. The video encoder unit 112 is composed of an IC including a synchronizing signal generating circuit, a color pallet RAM, a priority arithmetic circuit, a cellophane arithmetic circuit (for synthesizing upper and lower pictures), a D/A converter for an image signal, an 8/16 bit data bus (M-bus) interface, a VDP interface, a control unit interface and an image data extension unit interface. Operation of the cellophane function will be explained later. The 8/16 bit data bus interface is an I/F switching circuit which selects one from 8 bits and 16 bits to be used for data processing at the video encoder unit side, and the selection is carried out in accordance with data width of data bus of the processing system including the CPU. The VDP interface receives data transmitted from two of upper and lower VDPs. Normally, the VDP interface receives data from the upper VDP. The VDP interface receives data from lower 70 VDP only when the upper VDP supplies chromakey data. The color pallet Ram transforms a video input signal into a YUV digital signal. The video encoder unit has registers (16 bits.times.24 lines), which are accessed by the CPU to set an operation mode and to specify one function from read and write for the color pallet. The color pallet RAM transforms color pallet data into YUV data to be actually displayed. As shown in FIG. 48, the color pallet RAM includes a color information table divided into 512 address regions each having one color and 16 bit data regions. Each color data are composed of 8 bits "Y", 4 bits "U" and 4 bits "V", so that 65536 colors may be represented. The "Y" data indicates brightness in a range 00 (black) to FF (white), the "U" data indicates color difference for blue to yellow family in a range 0 to 15 and the "V" data indicates color difference for red to green family in a range 0 to 15. Each of the U and Y data has a value 8 when no-color is represented. After reset, YY=00 h, U=oh and V=h are automatically set at the address 0 of the color pallet address. For that reason, color data needs to be set at the address 0 again after reset. How to set the YUV data at the color pallet RAM is now explained. The content of the color pallet RAM is written thereinto by the CPU 102, and is read in accordance with color pallet information from the VDP, control unit and image data extension unit 106. The read data are transformed into the Y, U and V data. The CPU 102 can read contents of the color pallet RAM. Processing operation for writing data to the color pallet RAM continuously is carried out in accordance with the following steps. 1st step: Setting a register number 01h of a color pallet address register (CPA) to an address register (AR). 2nd step: Writing a start address in the color pallet address register (CPA). 3rd step: Writing a register number of a color pallet data write register (CPW) to the address register (AR). 4th step: Writing data to the color pallet data write register to perform an increment of the CPA. 5th step: Writing data to the color pallet data write register to perform an increment of the CPA. In the 8 bits bus mode, data are written to the data write register in order of lower bytes to upper bytes. When the upper bytes data are written in the data write register, the data are written in an internal register so that the CPA is increased in value. Processing operation for reading data from the color pallet RAM continuously is carried out in accordance with the following steps. 1st step: Setting a register number 01h of the color pallet address register (CPA) to the address register (AR). 2nd step: Writing a start address in the color pallet address register (CPA). 3rd step : Setting a register number 03h of the color pallet data read register (CPR) to the address register (AR). 4th step: Reading data from the color pallet data read register to perform an increment of the CPA. 5th step: Reading data from the color pallet data read register to perform an increment of the CPA. In the 8 bits bus mode, data are read from the data read register in order of lower bytes to upper bytes. When the upper bytes data are read from the data read register, the data are written in the internal register so that the CPA is increased in value. Next, how to display the color pallet data will be explained. The color pallet data stored in the VDP 114, control unit 104 and image data extension unit 106 are transformed to YUV data by the color pallet RAM to form an actual image. All screens using color pallet data are treated by the common color pallet RAM because only one color pallet RAM is provided. If a color pallet address offset register is used, color pallet start addresses may be specified for each picture separately. In a priority process in block format, a picture to be displayed is specified dot-by-dot. If the specified picture is a color pallet data picture, a color pallet address offset value of the picture is read from the register. After that, double of the offset value is added to the color pallet data to provide a color pallet address. In accordance with the color pallet address, color data Y, U and V for each dot are generated and transmitted to the following stage. The color pallet address is given by calculating the color pallet data and the color pallet offset value specified for each picture, formulas for the calculation is shown as follows and in FIG. 49: COLOR PALLET ADDRESS (9 bits)=COLOR PALLET DATA(8 bits)+(COLOR PALLET ADDRESS OFFSET VALUE.times.2) Even though the same color pallet data are used, different colors are generated as long as the pictures are different. The VDP 114 has only one color pallet offset register, so that if a plurality of VDPs are used, the plural VDPs have to use the register in common. If the color pallet address is over 511, a tenth bit is omitted, that is, the ninth bit is connected to 0 address as shown in FIG. 49. When the CPU 102 accesses the color pallet RAM, the color pallet address offset is not used. FIG. 50 shows color pallet data transmitted from each of the LSIs. When a color pallet address is calculated, pallet bank numbers are treated as first bits of the pallet numbers, that is the pallet bank numbers and the pallet numbers are not distinguished. Therefore, all 8 bits data are treated as color pallet data in each mode. According to the priority function, image dot information transmitted from the VDP unit, the control unit and the image data extension unit 106 is processed simultaneously in accordance with priority order set in the priority register so that image dots to be displayed are specified. In this preferred embodiment, the VDP unit treats two images of sprite (SP) and background (BG), the control unit 104 treats four images BMG0, BMG1, BMG2 and BMG3 and the image data extension unit 106 treats an IDCT/RL image, respectively. The video encoder unit 112 may be connected with two of upper and lower VDPs. If upper and lower VDPs are connected to the video encoder 112, one of the VDPs is selected to be connected at an input interface portion. The upper VDP is generally selected and the lower VDP is selected only when the upper VDP supplies chromakey data. The priority order of the SP and BG images of the VDP and the BMG0 to BMG3 can not be changed only by the priority register of the video encoder unit 112. Therefore, if the priority order is changed, all the units need to be changed. The priority order is decided dot-by-dot for each LSI by the video encoder unit 112 in accordance with image information transmitted from the VDP, control unit 104 and image data extension unit 100, with a value of the priority register and whether the data are chromakey or not. FIG. 51 shows priority processing in the 256 dots mode. In this embodiment, the priority process is carried out using clock of four times the dot clock, in addition to special processes such as the chromakey process and cellophane process. In the cellophane process, upper and lower pictures (front and back cellophane) are synthesized when the video encoder synthesizes some images in accordance with the priority. In the 320 dot mode, each of the control unit and image data extension unit 106 has 256 dots and the VDP has 320 dots. Therefore, an image to be displayed is specified in the period of 21 MHz and the image (device) is displayed immediately. In the chromakey function (transparency process), some portions of an image are treated as transparency portions, on which low priority pictures are displayed. Actually, a color to be judged as a transparency (key color) is defined in advance. The key color differs depending on the type of data, color pallet data, IDCT-YUV data or YUV data of the control unit. To use no chromakey function is equivalent to use no key color when a picture to be displayed is drafted. FIG. 52 shows operation of the chromakey function. If a color pallet data 0 (pallet number 0 in VDP) is used as the key color, the color pallet data 0 is treated as a transparency color at the run-length region in the control unit and image data extension unit in any mode. In the VDP, regions of pallet number 0 are treated as transparency at any color pallet bank. In some cases, the control unit 104 performs chromakey judgement and supplies an invalid signal to the color pallet data picture. If Y-data of YUV data are set "00h" on a dot in the control unit 104 (in the 16M color mode and 64K color mode), the dot is displayed with transparency color independently of values for U and V data. Avalue of "01h" or the like is added to the Y-data at regions not to be displayed with transparency in order that the Y-data does not have a value "00h". If an intermediate color located between a chromakey highest register value and a chromakey lowest register value is selected as the key color for the IDCT-YUV data screen and all of the YUV values to be displayed are located between the two register values, the selected color is judged as the key color, and as a result, the region is displayed with transparency color. Specifically, in the case where the highest and lowest values of the chromakey Y register are Yuand Y1, the highest and lowest values of the chromakey U register are Uu and U1, the highest and lowest values of the chromakey V register are Vu and V1 and Y, U and V values to be displayed are Ys, Us and Vs, a color to be displayed is the key color if all of the following equations are true. Yu>=Ys>=Yl Uu>=Us>=Ul Vu>=Vs>=Vl When invalid signals are transmitted from the control unit 109 and image data extension unit 106 to the video encoder unit 112, the dots corresponding to the invalid signals are treated the same as the case of key color, that is, the dots are displayed with transparency color. The chromakey portion on the lowest priority region is displayed with a color which will be used for the following portion in accordance with the priority process. Therefore, the following picture is displayed instead of the present one if all pictures including YUV data pictures are transparency. In the same manner, the chromakey region on the lowest priority picture is cellophane processed as shown in FIG. 53. In the operation of cellophane function, when the cellophane function is set at 0 picture in the control unit 104, a lower priority picture is mixed with the 0 picture, so that the 0 picture is displayed with half-transparency color. It is possible to realize fade-in processing, fade-out processing and smoothly changing of pictures by varying the mix ratio of the cellophane function. The cellophane arithmetic results Y, U and V are given by the following equations, where Ya, Ua and Va indicate data of a picture to be synthesized on Yb, Ub and Vb data, the Yb, Ub and Vb indicate data of a picture to be synthesized with the Ya, Ua and Va and my, mu, mv, nuy, nv and nuindicate cellophane coefficients, respectively: Y=my.times.Ya+ny.times.Yb U=mu.times.(Ua-80h)+nu.times.(Ub-80h)+80h V=mv.times.(Va-80h)+nv.times.(Vb-80h)+80h In the above equations, "80h" of the U and V are treated as "0". Each of the Y, U and V becomes "FFh" and "00h" if it is overflown and underflown, respectively. The cellophane coefficient may be divided into 9, 0/8 to 8/8 so that the cellophane coefficient may be varied. The cellophane coefficient is established by-certain software. A cellophane coefficient register is provided with 3 regions each having 6 parameters. When the cellophane function is set to a certain picture, the cellophane coefficient number (1 to 3) is written in a specified portion of the register. If "0" is set at the specified portion, the picture is separated from the cellophane function. Values 9 to F for the cellophane coefficient register are not supported. The cellophane arithmetic is not carried out to a chromakey portion of a picture to be overlapped with another picture, so that the general chromakey process is carried out to the overlapped picture. According to the cellophane function, it is possible to realize functions of multi-cellophane, front cellophane, back cellophane and sprite special. In the multi-cellophane function, the cellophane process is carried out again on a picture which has been processed by the cellophane function. In the front cellophane function, the whole screen is changed in color and in brightness by the cellophane function using a pre-selected color. In the back cellophane function, the cellophane process can be carried out on a picture having the lowest priority. In the sprite special process, the cellophane function can be used on the sprite picture for each pallet bank. FIGS. 54 and 55 are a block diagram and a flow charts showing data processing in the cellophane arithmetic and cellophane function, respectively. The cellophane process is carried out dot-by-dot. As shown in FIG. 56, the VDP unit 114, control unit 104 and image data extension unit 106 correspond to first to third pictures I to III, respectively, the correspondence being arranged dot-by-dot in accordance with picture priorities supplied from the LSI units of them. For example, if the priority is set on a dot in the order of "VDP> control unit> image data extension unit", the third picture III is used for the VDP unit 114, the second picture II is used for the control unit 104 and the first picture I is used for the image data extension unit 106, respectively. In this case, when the cellophane instruction is set on the second picture II (for example, the BMG1 picture of the control unit 104), the cellophane process is carried out on the first and second pictures I and II in accordance with the cellophane coefficient, which corresponds to the value set in the coefficient register of the second picture II. Further, if the cellophane instruction is set on the third picture III (for example, the BG picture), the cellophane process is carried out on the third picture III and the picture which has been cellophane processed between the first and second pictures I and II. If the cellophane instruction is not set on the second picture II only, the cellophane process is carried out between the second and third pictures II and III because the first picture I is blinded by the second picture II. The second picture II, however, does not blind the first picture at its chromakey portion. In this case, even if the cellophane instruction is set on the first picture I, the function is invalid. The cellophane instruction is set on and off dot-by-dot for each picture. It is impossible to use the cellophane function in the same device (the VDP unit 114, control unit 104 and image data extension unit 106), that is, for example the cellophane arithmetic can not be carried out between BMG1 and BMG2 in the control unit, and between the sprite picture and BG picture in the VDP unit 114. In other words, each of the VDP unit 114 and control unit 104 supplies one dot data of one picture selected in accordance with its internal priority, so that the cellophane process can not be carried out between two pictures in the same device. According to the front and back cellophane functions, cellophane arithmetic is performed between a selected picture and a fixed color picture having single color. The color of the fixed color picture is set at the fixed color register. In the front cellophane function, pictures supplied from the VDP unit 114, control unit 104 and image data extension unit 106 are cellophane processed and then the cellophane arithmetic is carried out on the pictures with the fixed color picture, as shown in FIG. 57. In this arithmetic, a value "1" of the coefficient register is used as the cellophane coefficient. In the back cellophane function, a picture having the lowest priority picture selected from among pictures in the VDP unit 114, control unit 104 and image data extension unit 106 is cellophane processed with the fixed color picture, as shown in FIG. 58. Then the second lowest priority picture is cellophane processed in the same manner as the lowest priority picture. In the back cellophane function, a value of the coefficient register set for the first picture is used as the cellophane coefficient. The front and back cellophane processes can not be carried out at the same time. Settings for front and back cellophane process are effective from the following horizontal synchronization period. All sprites in the VDP 114 are recognized as sprite pictures, so that the all sprites are cellophane processed basically when the cellophane instruction is set on the sprite picture. It is possible that specific sprites are not cellophane processed by the following method. When the cellophane instruction is not set on a color pallet bank number of a specific sprite by an SP sprite individual set register, dots in the specific sprite are treated as in a condition that the cellophane instruction is set on the specific sprite picture. This function is useful only when the cellophane arithmetic is carried out on the sprite picture. Therefore, if the cellophane instruction is set on a picture having a priority higher than that of the sprite picture, any sprite picture is cellophane processed. FIGS. 60 and 61 show images displayed in a general interlace mode and in the interlace mode with a 1/2 dot shift function, which will be explained later. The video encoder unit 112 may select an interlace mode, which is used for TV in general, and a non-interlace mode shown in FIG. 59. In the interlace mode, scanning lines are fixed in number at 263 or 262, an O/E bit at a status register is "1" in an odd field period in first 1/60 seconds so that an image is displayed as in the non-interlace mode. In the next 1/60 second, that is in an even field period, an O/E bit becomes "0" to display an image located 1/2 line above the previous image. As a result, the distance between the first (odd) field and second (even) fields becomes narrow, and the image is displayed smoothly. In the same manner, these processes are repeated alternatively. If the odd and even fields have the same pictures, the image is displayed as if it seems being vibrated up and down with short interval. Image data are displayed field by field whereby the desired image is obtained. In the interlace mode, it is possible to display a more higher quality image by using the 1/2 dot shift function therewith. According to the 1/2 dot shift function, picture elements are shifted 1/2 dot in a horizontal direction at one line interval. In this function, a mask is used for smoothing notched edge lines of the image, so that the displayed image is composed of 255.5 dots. Next, the synchronizing signal generating circuit 200 of the video encoder unit 112, which is shown in FIG. 47, will be explained. The synchronizing signal generating circuit 200 supplies dot clock signals, horizontal synchronizing signals--HSYNCA, HSYNCB and HSYNCC and vertical synchronizing signals--VSYNC to peripheral ICs in response to 12 times the chrominance subcarrier frequency. As a result, an image can be displayed in synchronization with an external image by the video encoder unit 112. In the D/A converters 202, 204 and 206 of the video encoder unit 112, the YUV signal of 8 bits are converted into an analog signal. If the UV signal has only 4 bits data such as the pallet data, the 4 bits data are provided at the last figure with "0000" to make it 8 bits data. The Y data are converted into analog signal in linear, for example, "00h" data are converted into a black color signal and "FFh" data are converted into white color signal. The U and V data are also converted into an analog signals in linear fashion, however, over "80h" data are expressed as positive data and under "80h" data are expressed as negative data, because the U and V data are color difference data having polarities. A color to be expressed has a depth defined in series with difference value from "80h" data, so that colors of "00h" and "FFh" are the deepest, and no color is expressed when each of the U and V is "80h". Color hue is defined by a ratio of difference values of the U and V respectively from "80h" and by polarities thereof. In the D/A converting process, it may be selected whether the Y signal is treated with a synchronizing signal, and whether the U and V signals are modulated by chrominance subcarrier. If the chrominance subcarrier modulation is selected, color burst is superimposed on the U signal at a predetermined timing and amplitude. The D/A converter are of a current adding type, whereby a voltage conversion is carried out in accordance with input impedance of external circuits. An analog arithmetic is performed, by an external circuit, to the Y signal with no synchronizing signal and to the non-modulated UV signal, whereby the RGB signal is generated. When the Y signal with the synchronizing signal and the modulated UV signal are mixed by an external circuit, a composite video signal for the CRT is generated. FIG. 62 shows the sound data output unit 110, which includes a six channel programmable sound generator (PSG) 300, right and left channel ADPCM decoder #1 (302) and #2 (304) and a sound data output circuit using a compact disk sound source. PSG 300 receives PSG waveform data transmitted through the DRAM from the CPU 102, and modulates the waveform data in amplitude or in frequency, and LFO-controls a specified channel of the data whereby effective sound is produced. The ADPCM reproduces sound data of 32 kHz and 16/84 kHz whose sampling frequency corresponds to the horizontal synchronizing signal. The frequencies are set by registers mounted in the sound data output unit 110 and control unit 104. In the sound data output unit 110, instructions for starting, interrupting and continuing data reproduction are set on a register therein by the control unit 104. The sound data output unit 110 also has a volume control function for a PCM external sound source in addition to the PSG and ADPCM, the unit having a register in which volume data are set by the CPU 102. FIG. 63 shows a memory configuration for the ADPCM data in the K-RAM shown in FIG. 11. As shown in FIG. 63, sound data to be transmitted to the ADPCM decoder are stored by 16 bits boundary in the K-RAM, the sound data being composed of 4 bits including one symbol bit. The sound data are written, read and transmitted in the order of (1) to (8). In this embodiment, an ADPCM decoder basic sampling frequency of 32 kHz is used. The frequency of 32 kHz is very close to a horizontal synchronizing frequency of 31.47 kHz for the NTSC system, so that the horizontal synchronizing frequency is used as clock to control the ADPCM data transmission and reproducing rate. In the present invention, a sampling frequency selected from among 15.73 kHz, 7.87 kHz and 3.93 kHz may be used in addition to 31.47 kHz, so that compatibility with conventional game computers may be realized, and the ADPCM data of around 16 kHz may be treated. FIGS. 64 and 65 show linear interpolation for the case of sampling frequencies other than 31.47 kHz. FIG. 65 is for the sampling frequency of 7.87 kHz, (0), (1), (2), (3) and (4) indicating the order of transmission and "4" in squares indicating that data are transmitted byte by byte in four horizontal period (H). When the sampling frequency is 7.87 kHz, the amount to be added to the present (current) data is one fourth of difference between the previous data and the present data, as shown in FIG. 65. Previous data (0) are reproduced during the rise time of HSYNC immediately after transmitting data (1) and (2). Data given by adding "(d(n)-d(n-i))/4" to the data (0) at each step (1/2 horizontal synchronizing period) are reproduced in a period between reproducing processed of the data (0) and (1). FIGS. 66 and 67 are flow charts showing scale process of the PCM data into ADPCM data and extension process of the ADPCM data into the PCM data by the ADPCM decoders, respectively. In the reducing and extension processes, sound data are processed in accordance with two tables shown in FIGS. 68 and 69. FIG. 68 is a correspondence table showing relations among ADPCM data, variations and level changing values. FIG. 69 is a conversion table showing a relation between scale levels and scale values. For the preferred embodiment, an initial scale value is set at the minimum value 16, the maximum value is set at 48. The maximum and minimum values of the extension data are 4095.875 and 0. In this embodiment, sound volume data, sampling frequency data, soft reset data, PSG waveform data are set in registers in the sound data output unit 110 by the CPU 102. The PSG data and control data for the PCM sound source output, which are supplied from the external audio device, are also set in registers of the sound data output unit 110 by the CPU 102. As described before, according to the invention, a variety of image data, such as natural picture and moving picture, may be processed at high speed together with a variety of sound data, such as the PCM, ADPCM and PSG. Further, an external memory device does not need to have much capacity because image and sound data are scaled effectively. In addition, debugging of the program for the system is easy to be carried out and the system is easy to be programmed.
|
Same subclass Same class Consider this |
||||||||||
