A digital sum variation (DSV) computation method and system is proposed, which is capable of determining the DSV value of a bit stream of channel-bit symbols to thereby find the optimal merge-bit symbol for insertion between each succeeding pair of the channel-bit symbols. This DSV computation method and system is characterized in the use of a zero digital sum variation (zdsv) principle to determine the DSV. This DSV computation method and system can find the optimal merge-bit symbol for insertion between each succeeding pair of the channel-bit symbols in a more cost-effective manner with the need for a reduced amount of memory and utilizes a lookup table requiring a reduced amount of memory space for storage so that memory space can be reduced as compared to the prior art. This DSV computation method and system is therefore more advantageous to use than the prior art.
|
0. 4. A method for generating a zero digital sum variation (zdsv) value of a Non-Return-to-zero-and-Invert (NRZI) bit-stream, wherein the NRZI bit-stream comprises a first portion of bit-stream having a first zdsv value, a merge-bit symbol, and a current channel-bit symbol, the method comprising:
calculating a segment zdsv value of the merge-bit symbol by a digital sum variation (DSV) computation system;
calculating a segment zdsv value of the current channel-bit symbol by the DSV computation system; and
summing the first zdsv value, the segment zdsv value of the merge-bit symbol and the segment zdsv value of the current channel-bit symbol to generate the zdsv value of the NRZI bit-stream by the DSV computation system.
3. A method for use on a DVD system for computing a digital sum variation (DSV) of a data stream, comprising the steps of:
(a) providing a pre-determined zero digital sum variation initial value zdsvn−1 and an initial value odd(t0˜efmn−1) by a digital sum variation (DSV) computation system;
(b) converting the data stream into a plurality of channel-bit symbol efmni by the DSV computation system, wherein i=0, 1, 2, . . . , x;
(c) obtaining a partial digital sum variation (PDSV) value PDSV(efmni) and a odd(efmni) value in accordance with the corresponding channel-bit symbol efmni by the DSV computation system, wherein i=0, 1, 2, . . . , x;
(d) calculating zdsvni=ZDSVn−1+zdsv(efmni) and odd(t0˜efmni)=ODD(t0˜efmn−1)⊕ODD(efmni) by the DSV computation system, wherein i=0, 1, . . . , x, in order to determine the zdsvniof the zero digital sum variation of the current channel-bit symbol efmni, wherein zdsv(efmni)=PDSV(efmni)*(−1)odd(to˜efmn−1), wherein the zdsvni is the zero digital sum variation of the i-th channel-bit symbol efmni, the zdsv(efmn)i means a zero digital sum variation of the i-th channel-bit symbol efmni,
(e) determining a final merge-bit symbol efmnj in accordance with the absolute value of the zdsv(efmni) and a coding rule by the DSV computation system, wherein jε{i}, wherein i=0, 1, . . . , x; and
(f) assigning the initial value zdsvn−j=ZDSVnj, the odd(t0˜efmn−1)=ODD(t0˜efm nj) by the DSV computation system, and then jumping to step (b).
2. A method for use on a DVD system for computing a digital sum variation (DSV) of a data stream, comprising the steps of:
(a) providing a pre-determined zero digital sum variation initial value zdsvn−1, an initial value odd(t0˜efmn−1) and an initial bias value by a digital sum variation (DSV) computation system, the initial bias value is either 1 or −1;
(b) converting the data stream into a plurality of channel-bit symbol efmni by the DSV computation system, wherein i=0, 1, 2, . . . , x;
(c) obtaining a partial digital sum variation (PDSV) value PDSV(efmni) and a odd(efmni) value in accordance with the channel-bit symbol efmni by the DSV computation system, wherein i=0, 1, 2, . . . , x;
(d) calculating zdsvni=ZDSVn−1+zdsv(efmni) and odd(t0˜efmni)=ODD(t0˜efmn−1)⊕ODD(efmni) by the DSV computation system, wherein i=0, 1, . . . , x, in order to determine the zdsvni of the zero digital sum variation of the current channel-bit symbol efmni, wherein zdsv(efmni)=PDSV(efmni)*(−1)odd(t0-efmn−1), wherein
the zdsvni is the zero digital sum variation of the i-th channel-bit symbol efmni,
the zdsv(efmni) means a zero digital sum variation of the i-th channel-bit symbol efmni;
(e) DSVni=ZDSVni+(the initial bias value)*odd(t0˜efmni), wherein the DSVni is a digital sum variation of the i-th channel-bit symbol efmni;
(f) determining a final merge-bit symbol efmnj in accordance with the absolute value of the DSVni and a coding rule by the DSV computation system, wherein jε{i}, wherein i=0, 1, . . . , x; and
(f) assigning by the DSV computation system the initial value zdsvn−1=ZDSVnj, the odd(t0˜efmn−1)=ODD(t0˜efmn j), and then jumping to step (b).
1. A method for computing a zero digital sum variation (zdsv) of a stream of channel-bit symbols, comprising the steps of:
(a) providing an initial value zdsvn−1, an initial value odd(t0˜efmn−1) and a initial bias value by a digital sum variation (DSV) computation system, wherein the initial value zdsvn−1 is the zero digital sum variation of a previous start-to-channel-bit symbol efmn−1, wherein the odd(t0˜efmn−1) indicates that the stream of the channel-bit symbols from a starting logic voltage state to the previous start-to-channel-bit symbol efmn−1 contains an odd-number or an even-number of 1s, the initial bias value is either 1 or −1;
(b) providing a current channel-bit symbol efmn by the DSV computation system, and obtaining a partial digital sum variation (PDSV) value PDSV(efmn) and a odd(efmn) value in accordance with the current symbol efmn;
(c) obtaining a plurality of partial digital sum variation (PDSV) values PDSV(mni) and odd(mni) values in accordance with all possible merge-bit symbols mni by the DSV computation system, wherein i=0, 1, . . . , x, the number of the possible merge-bit symbols is x+1;
(d) calculating zdsvni=ZDSVn−1+zdsv(mni)+zdsv(efmn)i by the DSV computation system and calculating odd(t0˜efmn)i=ODD(t0˜efmn−1)⊕ODD(mni).⊕ODD(efmn) by the DSV computation system, wherein i=0, 1, . . . , x, in order to determine the zdsvn of the zero digital sum variation of the current channel-bit symbol efmn, wherein zdsv(mni)=PDSV(mni)*(−1)odd(t0˜efmn−1) and zdsv(efmn)i=PDSV(efmn)*(−1)odd(t0˜mni), wherein odd(t0˜mni)=ODD(t0˜efmn−1)⊕ODD(mni), wherein ⊕ represents the XOR logic operation,
the zdsvni is the zero digital sum variation of the channel-bit symbol efmn corresponding to the i-th merge-bit symbol of the possible merge-bit symbols,
the zdsv(mni) means a zero digital sum variation of the i-th merge-bit symbol of the possible merge-bit symbols corresponding to the current channel-bit symbol efmn, the zdsv(efmn)i means a zero digital sum variation of the current channel-bit symbol efmn corresponding to the i-th merge-bit symbol of the possible merge-bit symbols;
(e) DSVni=ZDSVni+(initial bias value)*odd(t0˜efmn−1)i, wherein the DSVni is a digital sum variation of the current channel-bit symbol efmn corresponding to the i-th merge-bit symbol of the possible merge-bit symbols;
(f) determining a final merge-bit symbol mnj in accordance with the absolute value of DSVni and a run time limit by the DSV computation system, wherein jε{i}, wherein i=0, 1, . . . , x; and
(f) assigning the initial value zdsvn−1=ZDSVnj, the odd(t0˜efmn−1)=ODD(t0˜efmn)j by the DSV computation system, and then jumping to step (b).
0. 5. The method as claimed in claim 4, wherein, in the merge-bit symbol, each series of consecutive zero bit are collected as a group, with 1 bit serving as the separator between each neighboring groups, and the step of calculating the segment zdsv value of the merge-bit symbol comprises:
generating a partial zdsv (PDSV) value of the merge-bit symbol by the DSV computation system;
calculating a state of the merge-bit symbol by the DSV computation system; and
multiplying the state of the merge-bit symbol by the PDSV value by the DSV computation system to obtain the segment zdsv value of the merge-bit symbol.
0. 6. The method as claimed in claim 5, wherein the step of generating the PDSV value of the merge-bit symbol by the DSV computation system is calculated according to the following algorithm:
wherein PDSV is the PDSV value, x is an index of the groups, GZx is a total number of zeros in a x-th group, and n is a total number of the group in the merge-bit symbol.
0. 7. The method as claimed in claim 5, wherein the step of calculating a state of the merge-bit symbol by the DSV computation system is calculated according to the following algorithm:
wherein odd indicates whether the merge-bit symbol comprises an odd-number or an even-number of 1's.
0. 8. The method as claimed in claim 4, wherein, in the current channel-bit symbol, each series of consecutive zero bit are collected as a group, with 1 bit serving as the separator between each neighboring groups, and the step of calculating the segment zdsv value of the current channel-bit symbol comprises:
generating a partial zdsv (PDSV) value of the current channel-bit symbol by the DSV computation system;
calculating a state of the current channel-bit symbol by the DSV computation system; and
multiplying the state of the current channel-bit symbol by the PDSV value by the DSV computation system to obtain the segment zdsv value of the current channel-bit symbol.
0. 9. The method as claimed in claim 8, wherein the step of generating the PDSV value of the current channel-bit symbol by the DSV computation system is calculated according to the following algorithm:
wherein PDSV is the PDSV value, x is an index of the groups, GZx is a total number of zeros in a x-th group, and n is a total number of the group in the current channel-bit symbol.
0. 10. The method as claimed in claim 8, wherein the step of calculating a state of the current channel-bit symbol by the DSV computation system is calculated according to the following algorithm:
wherein odd indicates whether the current channel-bit symbol comprises an odd-number or an even-number of 1's.
0. 11. The method as claimed in claim 8, wherein the step of generating the PDSV value of the current channel-bit symbol by the DSV computation system is calculated according to a lookup table.
0. 12. The method as claimed in claim 4, wherein the method further comprises:
if a total number of 1s in the NRZI bit-stream is an even number, outputting the zdsv value of the NRZI bit-stream by the DSV computation system to obtain the DSV value of the NRZI bit-stream;
if the total number of 1s in the NRZI bit-stream is an odd number and a starting logic voltage state of the NRZI bit-stream is low, adding 1 to the zdsv value of the NRZI bit-stream by the DSV computation system to obtain the DSV value of the NRZI bit-stream; and
if the total number of 1s in the NRZI bit-stream is an odd number and the starting logic voltage state of the NRZI bit-stream is high, subtracting 1 from the zdsv value of the NRZI bit-stream by the DSV computation system to obtain the DSV value of the NRZI bit-stream.
|
This application is a continuation application of, and claims the priority benefit of, U.S. application Ser. No 10/370,261 filed on Feb. 19, 2003, now U.S. Pat. No. 6,853,684 which is a continuation application of U.S. application Ser. No. 09/494,176 filed on Jan. 31, 2000, now U.S. Pat. No. 6,542,452 issued on Apr. 1, 2003, which claims the priority benefit of Taiwan application serial No 88117002, filed Oct. 2, 1999.
1. Field of the Invention
This invention relates to digital technology, and more particularly, to a digital sum variation (DSV) computation method and system which is capable of determining the DSV value of a bit stream of channel-bit symbols to thereby find the optimal merge-bit symbol for insertion between each succeeding pair of the channel-bit symbols.
2. Description of Related Art
In a CD (compact disc) system, analog audio signals are processed through sampling and analog-to-digital conversion into a stream of digital data. Typically, the digital data are formatted into 16-bit words, with each word consisting of two bytes. By convention, each byte of the digital data is referred to as a symbol. These digital data are then written onto a CD. There exist, however, some problems when reading these digital data from the CD if these data are directly written onto the CD without further processing.
Conventionally, these digital data should be further processed through the what is known as an eight-to-fourteen modulation (EFM) to convert each 8-bit symbol into a 14-bit data length called channel bits (each set of channel bits is hereinafter referred to as a channel-bit symbol. The EFM process is achieved through the use of a lookup table. The length of each channel-bit symbol should be compliant with the specified run length of the CD driver between 3 bits and 11 bit.
During a write operation, it is possible that the current channel-bit symbol and the next one are not compliant with the specified run length. One solution to this problem is to insert 3 bit, called merge bits, between each succeeding pair of channel-bit symbols, so as to ensure that all the data written onto the CD are absolutely compliant with the run length.
There are four merge-bit symbols (000), (001), (010), and (100) which can be selected for insertion between each succeeding pair of channel-bit symbols; through computation, the optimal merge-bit symbol can be found for the insertion.
During write operation, a pit is formed in the CD surface for each change of binary value. During read operation, the CD driver can produce a what is known as a Non-Return-to-Zero-and-Invert (NRZI) signal based on the pattern of the pits on the CD.
In the case of the NRZI signal waveform (I), whose starting logic voltage state is LOW, its digital sum variation (DSV), here represented by DSV1, can be computed as follows: since efm1=(01001000100000), the DSV1 value at t0 is 0; subsequently, since the first bit 0 is at the LOW state, the DSV1 value becomes −1; subsequently, since the next three bits 100 are at the HIGH state, the DSV1 value becomes −1+3=+2; subsequently, since the next four bits 1000 are at the LOW state, the DSV1 value becomes +2 −4=−2; and subsequently, since the next six bits 1000000 are at the HIGH state, the DSV1 value becomes −2+6=+4.
Subsequently at t2 (i.e., at the end of m2), the DSV1 value becomes +5; at t3 (i.e., at the end of efm2), the DSV1 value becomes −3; at t4 (i.e., at the end of m3), the DSV1 value becomes −2; at t5 (i.e., at the end of efm3), the DSV1 value becomes 0. The DSV for the NRZI signal waveform (II), here denoted by DSV2, is simply the negative of the DSV1 value, i.e., DSV2=−DSV1 at any time point.
What is described above is how the pattern of pits on a CD can be converted into a stream of bit data during read operation. The encoding of the original digital data through EFM with insertion of merge bits before being written onto the CD is rather complex in procedure. The U.S. Pat. No. 5,375,249 entitled “EIGHT-TO-FOURTEEN-MODULATION CIRCUIT FOR A DIGITAL AUDIO DISC SYSTEM” issued on Dec. 20, 1994 discloses a method for finding the optimal merge-bit symbol through the use of DSV. This patented method is briefly depicted in the following with reference to
Referring to
Next, whether the length of the merge bits inserted between efm1 and efm2 exceeds the specified run length is checked; if the length is exceeded, these merge bits are inhibited from insertion between efm1 and efm2. To do this, a check is conducted for each of the four bit streams as to whether the number of consecutive 0s between the last 1 and the next 1 in efm1 exceeds the run length, and whether the number of consecutive 0s between the first 1 and the preceding 1 in efm2 exceeds the run length.
In the example of
In a similar manner, for efm2 and efm3, the DSV value of −8 can be obtained for the bit stream (efm2, m1, efm3). The bit stream (efm2, m2, efm3) is not compliant with the run length and is therefore disregarded the DSV value for the bit stream (efm2, efm3, efm3) is 0, and the DSV value for the bit stream (efm2, m4, efm3) is 2. Among these DSV values, DSV=0 is closest to 0, and the associated merge-bit symbol m3=(010) is therefore chosen for insertion between efm2 and efm3. An NRZI signal can be then obtained based on the resulting bit stream (efm2, m3, efm3).
One drawback to the foregoing method, however, is that a large amount of memory space is required to implement the DSV-based algorithm for finding the optimal merge-bit symbol for insertion between each succeeding pair of the 14-bit channel-bit symbols. This is because that the method requires the storage of a lookup table used in the EFM process and the binary data of each 14-bit channel-bit symbols, which are quite memory-consuming. Moreover, the process for finding the optimal merge-bit symbol is quite complex in procedure, and requires a lengthy program to implement.
It is therefore an objective of this invention to provide a DSV computation method and system, which can find the optimal merge-bit symbol based on DSV in a more cost-effective manner with the need of a reduced amount of memory.
It is another objective of this invention to provide a DSV computation method and system, which utilizes a lookup table requiring a reduced amount of memory space for storage so that memory space can be reduced compared to the prior art.
In accordance with the foregoing and other objectives, the invention proposes a new DSV computation method and system. The DSV computation method and system of the invention is capable of determining the DSV value of a bit stream of channel-bit symbols to thereby find the optimal merge-bit symbol for insertion between each succeeding pair of the channel-bit symbols.
In terms of system, the invention comprises the following constituent parts: (a) an EFM processing unit for converting each original binary symbol into its corresponding channel-bit symbol; (b) a PDSV processing unit for processing each original binary symbol to obtain its channel-bit symbol PDSV; (c) a channel-bit symbol inhibit circuit, receiving the output channel-bit symbol from the EFM processing unit and under control of a mn—SEL signal, for determining which one of the merge-bit symbols is invalid for compliance with a specified run length; (d) an ODD checking circuit, receiving the output channel-bit symbol from the EFM processing unit and under control of a mn—SEL signal, for determining, based on a previous start-to-channel-bit ODD value, a number of start-to-channel-bit ODD values for the merge-bit symbols, respectively; (e) a DSV computation and search circuit, coupled to the PDSV processing unit and the ODD checking circuit, for computing for the respective DSV values corresponding to the merge-bit symbols based on the current start-to-channel-bit ODD, the PDSV, the previous start-to-channel-bit ODD, the previous ZDSV, which DSV computation and search circuit is under control of the channel-bit symbol inhibit circuit to eliminate any of the DSV values corresponding to an invalid merge-bit symbol determined by the channel-bit symbol inhibit circuit, the DSV computation and search circuit outputting an index signal indicative of the selected merge-bit symbol using as the optimal merge-bit symbol for insertion between the current channel-bit symbol and the previous channel-bit symbol; (f) a third buffer, coupled to the DSV computation and search circuit, for temporary storage of the previous start-to-channel-bit ODD; and (g) a second buffer, coupled to the DSV computation and search circuit, for temporary storage of the previous ZDSV.
In terms of method, the invention comprises the following steps: (1) fetching the current channel-bit symbol; and then, based on the starting logic voltage state of an NRZI signal, determining the PDSV and ODD of the current channel-bit symbol; (2) assigning the current channel-bit symbol PDSV as the previous channel-bit symbol ZDSV, and assigning the current channel-bit symbol ODD as the previous channel-bit symbol ODD; (3) fetching the next channel-bit symbol; and then, based on the starting logic voltage state of the NRZI signal, determining the PDSV and ODD of this channel-bit symbol; (4) from four merge-bit symbols including a first merge-bit symbol, a second merge-bit symbol, a third merge-bit symbol, and a fourth merge-bit symbol, selecting the first merge-bit symbol; and then determining the first merge-bit symbol PDSV and ODD; and then performing an XOR logic operation on the previous channel-bit symbol ODD and the first merge-bit symbol ODD to thereby obtain a start-to-the-first-merge-bit ODD; and then determining the ZDSV value for the first merge-bit symbol based on the previous channel-bit symbol ZDSV and the first PDSV; and then, in the case of the starting logic voltage state of the NRZI signal being LOW, determining the result of the first ZDSV plus the start-to-next-channel-bit ODD to thereby obtain a first DSV corresponding to the first merge-bit symbol; and while in the case of the starting logic voltage state of the NRZI signal being HIGH, determining the result of the first ZDSV minus the start-to-next-channel-bit ODD to thereby obtain a first DSV corresponding to the first merge-bit symbol; and then checking whether the resulting bit stream from the first merge-bit symbol exceeds a specified run length; if YES, eliminating the first DSV; (5) selecting the second merge-bit symbol; and then determining the second merge-bit symbol PDSV and ODD; and then performing an XOR logic operation on the previous channel-bit symbol ODD and the second merge-bit symbol ODD to thereby obtain a start-to-the-second-merge-bit ODD; and then determining the ZDSV value for the second merge-bit symbol based on the previous channel-bit symbol ZDSV and the second PDSV; and then, in the case of the starting logic voltage state of the NRZI signal being LOW, determining the result of the second ZDSV plus the start-to-next-channel-bit ODD to thereby obtain a second DSV corresponding to the second merge-bit symbol; and while in the case of the starting logic voltage state of the NRZI signal being HIGH, determining the result of the second ZDSV minus the start-to-next-channel-bit ODD to thereby obtain a second DSV corresponding to the second merge-bit symbol; and then checking whether the resulting bit stream from the second merge-bit symbol exceeds a specified run length; if YES, eliminating the second DSV; (6) selecting the third merge-bit symbol; and then determining the third merge-bit symbol PDSV and ODD; and then performing an XOR logic operation on the previous channel-bit symbol ODD and the third merge-bit symbol ODD to thereby obtain a start-to-the-third-merge-bit ODD; and then determining the ZDSV value for the third merge-bit symbol based on the previous channel-bit symbol ZDSV and the third PDSV; and then, in the case of the starting logic voltage state of the NRZI signal being LOW, determining the result of the third ZDSV plus the start-to-next-channel-bit ODD to thereby obtain a third DSV corresponding to the third merge-bit symbol; and while in the case of the starting logic voltage state of the NRZI signal being HIGH, determining the result of the third ZDSV minus the start-to-next-channel-bit ODD to thereby obtain a third DSV corresponding to the third merge-bit symbol; and then checking whether the resulting bit stream from the third merge-bit symbol exceeds a specified run length; if YES, eliminating the third DSV; (7) selecting the fourth merge-bit symbol; and then determining the fourth merge-bit symbol PDSV and ODD; and then performing an XOR logic operation on the previous channel-bit symbol ODD and the fourth merge-bit symbol ODD to thereby obtain a start-to-the-fourth-merge-bit ODD; and then determining the ZDSV value for the fourth merge-bit symbol based on the previous channel-bit symbol ZDSV and the fourth PDSV; and then, in the case of the starting logic voltage state of the NRZI signal being LOW, determining the result of the fourth ZDSV plus the start-to-next-channel-bit ODD to thereby obtain a fourth DSV corresponding to the fourth merge-bit symbol; and while in the case of the starting logic voltage state of the NRZI signal being HIGH, determining the result of the fourth ZDSV minus the start-to-next-channel-bit ODD to thereby obtain a fourth DSV corresponding to the fourth merge-bit symbol; and then checking whether the resulting bit stream from the fourth merge-bit symbol exceeds a specified run length; if YES, eliminating the fourth DSV; (8) finding which one of the non-eliminated DSV values has the minimum absolute value; (9) if the first DSV has the minimum absolute value, then assigning the current channel-bit symbol as the previous channel-bit symbol, the first ZDSV as the previous channel-bit symbol ZDSV, and the current start-to-channel-bit ODD as the previous channel-bit symbol ODD; then jumping to the step (3); (10) if the second DSV has the minimum absolute value, then assigning the current channel-bit symbol as the previous channel-bit symbol, the second ZDSV as the previous channel-bit symbol ZDSV, and the current start-to-channel-bit ODD as the previous channel-bit symbol ODD; then jumping to the step (3); (11) if the third DSV has the minimum absolute value, then assigning the current channel-bit symbol as the previous channel-bit symbol, the third ZDSV as the previous channel-bit symbol ZDSV, and the current start-to-channel-bit ODD as the previous channel-bit symbol ODD; then jumping to the step (3); and (12) if the fourth DSV has the minimum absolute value, then assigning the current channel-bit symbol as the previous channel-bit symbol, the fourth ZDSV as the previous channel-bit symbol ZDSV, and the current start-to-channel-bit ODD as the previous channel-bit symbol ODD; then jumping to the step (3).
The invention can be more fully understood by reading the following detailed description of the preferred embodiments, with reference made to the accompanying drawings, wherein:
In the following detailed description of the invention, the algorithm utilized by the invention will be first introduced, following the implementation of the algorithm.
Algorithm Utilized by the Invention
The invention utilizes a new concept called Zero Digital Sum Variation (ZDSV). Based on the ZDSV principle, each 0 in the NRZI signal is regarded as a “−1” if the 0 is at the LOW state and as a “+1” if the 0 is at the HIGH state.
Subsequently, at t2, the ZDSV value becomes +1 for the bit stream (efm1, m2); at t3, the ZDSV value becomes −3 for the bit stream (efm1, m2, efm2); at t4, the ZDSV value becomes −3 for the bit stream (efm1, m2, efm2, m3); and at t5, the ZDSV value becomes 3 for the bit stream (efm1, m2, efm2, m3, efm3).
By contrast, based on the conventional DSV method, the DSV value varies in such a manner that, at t2, the DSV value is +4; at t3, the DSV value becomes −3; at t4, the DSV value becomes −2; and at t5, the DSV value becomes +4.
As shown, at t1, the ZDSV value is +3; at t2, the ZDSV value becomes +6; at t3, the ZDSV value becomes +10; at t4, the ZDSV value is still +10; and at t5, the ZDSV value becomes +4.
By contrast, based on the conventional DSV method, the DSV value varies in such a manner that, at t1, the DSV value is +4; at t2, the DSV value becomes +7; at t3, the DSV value becomes +11; at t4, the DSV value becomes +10; and at t5, the DSV value becomes +4.
From the foregoing examples of
In the forgoing case, the computation for ZDSV and the conversion of ZDSV into DSV are disclosed in the following. The algorithm involves the use of the following variables: GZn, ZDSV, PDSV(SEGMENT), ZDSV(SEGMENT), and ODD(SEGMENT), which are introduced in the following.
GZn.
Assume that, in a bit stream, each series of consecutive 0s are collected as a group, with 1 serving as the separator between each neighboring pair of groups. Furthermore, assume that GZn represents the total number of 0s in the (n)th group. In the example of
ZDSV
When the starting logic voltage state of the NRZI signal is LOW, it is apparent that the first 0 group is minus. It can be deduced that:
In the example of
PDSV(SEGMENT)
PDSV(SEGMENT) refers to Partial ZDSV, which represents the ZDSV value of a particular segment in the total bit stream, where the segment can be one of the 14-bit channel-bit symbols efm1, efm2, efm3, or one of the 3-bit merge-bit symbols m2, m3 inserted among efm1, efm2, efm3. By PDSV, the first group starts at the beginning of a channel-bit symbol or a merge-bit symbol. It can be formulated as follows:
Accordingly, in the example of
ZDSV(SEGMENT)
ZDSV(SEGMENT) is similar to PDSV except that the number of 0 groups is counted from the start of the bit stream. It is formulated as follows:
where
ODD(SEGMENT)
ODD(SEGMENT) is used to indicate whether SEGMENT contains an odd-number or an even-number of is, where SEGMENT is a series of consecutive bits. Each consecutive bit can be a channel-bit symbol, a merge-bit symbol, or a segment of bits starting at to and ending at a channel-bit symbol or a merge-bit symbol. If the number is odd, ODD(SEGMENT)=1; otherwise, if the number is even, ODD(SEGMENT)=0. In the example of
ODD(efm1)=1; (three 1s)
ODD(m2)=1; (one 1)
ODD(efm2)=0; (two 1s)
ODD(m3)=1; (one 1)
ODD(efm3)=0; (two 1s)
ODD(t0˜efm1)=ODD(efm1)=1; (three 1s)
ODD(t0˜m2)=0; (four 1s)
ODD(t0˜efm2)=0; (six 1s)
ODD(t0˜efm3)=0; (seven 1s)
ODD(t0˜efm2)=1; (nine 1s)
For ODD(t0˜m2), ODD(t0˜efm2), ODD(t0˜m3), ODD(t0˜efm2), they can be formulated as follows:
The values of ZDSVn−1, ODD(t0˜efmn−1), PDSV(mn), ODD(mn), DSV(efmn), and ODD(efmn) can be determined through the use of the above-mentioned equations. Further, it can be deduced that:
Accordingly, ZDSVn can be formulated as follows:
Therefore,
DSVn=ZDSVn+ODD(t0˜efmn)
This equation shows that when ODD=1, i.e., the segment (t0˜efmn) contains an odd-number of 1s, DSV=ZDSV+1; and when ODD=0, i.e., the segment contains an even-number of 1s, DSV=ZDSV.
As shown, it can be seen that, at the start, the ZDSV value is 0. Subsequently, since the first 0 is at the HIGH state, the ZDSV value becomes +1; subsequently, since the next three bits 100 are at the LOW state and include two 0s, the ZDSV value becomes −1; subsequently, since the next four bits 1000 are at the HIGH state and include three 0s, the ZDSV value becomes +2; and subsequently, since the next six bits 100000 are at the LOW state, the ZDSV value becomes −3 at t1.
Next, at the time point t2, the ZDSV value becomes −1; subsequently at t3, the ZDSV value becomes +3; subsequently at t4, the ZDSV value becomes +3; and finally at t5, the ZDSV value becomes −3.
By contrast, the DSV value varies in such a manner that, at t1, the DSV value is −4; at t2, the DSV value becomes −1; at t3, the DSV value becomes +3; at t4, the DSV value becomes +2; and at t5, the DSV value becomes −4.
Therefore, it can be learned that, in foregoing case, the NRZI signal varies in voltage state for an odd-number of times, and the difference between the ZDSV value and the DSV value is 1, i.e., DSV=ZDSV −1; whereas when the total number of 1s is an even number, the NRZI signal varies in voltage state for an even-number of times, and the difference between the ZDSV value and the DSV value is 0, i.e., ZDSV=DSV.
In the forgoing case, the computation for ZDSV and the conversion of ZDSV into DSV are disclosed in the following. The algorithm involves the use of the following variables: GZn, ZDSV, PDSV(SEGMENT), ZDSV(SEGMENT), and ODD(SEGMENT), which are introduced in the following.
GZn
Assume that, in a bit stream, each series of consecutive 0s are collected as a group, with 1 serving as the separator between each neighboring pair of 0 groups. Furthermore, assume that GZn represents the total number of 0s in the (n)th 0 group. In the example of
ZDSV
In this case, ZDSV can be formulated as follows:
Here, the power of (−1) is x+1 instead of x because the start of the NRZI signal is positive. Accordingly, in the example of
PDSV(SEGMENT)
PDSV(SEGMENT) refers to Partial ZDSV of a particular segment in the bit stream, where the segment can be one of the 14-bit channel-bit symbol efm1, efm2, efm3, or one of the 3-bit merge-bit symbols m2, m3. PDSV can be formulated as follows:
Accordingly, in the example of
ZDSV(SEGMENT)
ZDSV(SEGMENT) is similar to PDSV except that the number of 0 groups is counted from the start of the bit stream. It is here formulated as follows:
where
ODD(SEGMENT)
ODD(SEGMENT) is used to indicate whether SEGMENT contains an odd-number or an even-number of 1s. If the number is odd, ODD(SEGMENT)=1; otherwise, if the number is even, ODD(SEGMENT)=0.
Assume that SYMn represents the original (n)th symbol. Through EFM, the (n−1)th channel-bit symbol efmn−1 is obtained from the (n−1)th symbol SYMn−1, and the (n)th channel-bit symbol efmn is obtained from the (n)th symbol SYMn. Assume that mn is the merge-bit symbol inserted between efmn−1 and efmn.
The values of ZDSVn−1, ODD(t0˜efmn−1), PDSV(mn), ODD(mn), DSV(efmn), and ODD(efmn) can be determined through the use of the above-mentioned equations. Further, it can be deduced that:
Accordingly, ZDSVn can be formulated as follows:
Therefore,
DSVn=ZDSVn−ODD(t0˜efmn)
This equation shows that when ODD=1 (i.e., the segment contains an odd-number of 1s), DSV=ZDSV −1; and when ODD=0 (i.e., the segment contains an even-number of 1s), DSV=ZDSV.
Implementation of the Invention
The efmn data is outputted from the EFM processing unit 100 and then transferred to both the ODD checking circuit 120 and the run-length checking circuit 130, while the PDSV(efmn) data is outputted from the PDSV processing unit 110 and then transferred to the DSV computation circuit 300. The merge-bit selection signal mn—SEL varies state sequentially in such a manner as to represent the selection of one of the four merge-bit symbols m0=(000), m1=(001), m2=(010), and m3=(100). These four merge-bit symbols are then inserted one by one between efmn and efmn−1 to compute the corresponding DSVn values, which are respectively denoted by DSVn(m0), DSVn(m1), DSVn(m2), and DSVn(m3).
The run-length checking circuit 130 is used to check whether the current channel-bit symbol efmn, after one merge-bit symbol has been inserted, will be compliant with the specified run length. To do this, the run-length checking circuit 130 first checks the 0 groups of the 14 bits of emfn and thereby assigns the first 0 group GZ1 as LRUNn and the last 0 group GZLAST as RRUNn. In the example of emfn=(01001000100000), GZ1=1 so that LRUNn=1, and GZLAST=5 so that RRUNn=5. The first buffer 150 is used for temporary storage of the RRUNn value of the previous channel-bit symbol efmn−1. The run-length checking circuit 130 then sends the RRUNn value to the first buffer 150 to replace the RRUNn−1 value previously stored therein, and meanwhile sends the LRUNn value to the inhibit circuit 160.
Under control of the mn—SEL signal, the inhibit circuit 160 first reads the LRUNn value and the RRUNn−1 value, respectively, from the run-length checking circuit 130 and the first buffer 150, then successively inserts each of the four merge-bit symbols m0=(000), m1=(001), m2=(010), and m3=(100) between the RRUNn−1 and the LRUNn value, and then checks whether the combined bit stream is compliant with the run length or not. If not compliant, the corresponding merge-bit symbol (hereinafter referred to as an invalid merge-bit symbol) will be sent via the INHIBIT0˜3 data line to the search circuit 170, allowing the search circuit 170 to eliminate the DSVn corresponding to the invalid merge-bit symbol. For instance, if m1 is an invalid merge-bit symbol, then DSV1(m1) is eliminated.
The DSV computation circuit 300 is designed to compute DSVn(m0), DSVn(m1), DSVn(m2), and DSVn(m3) in accordance with the above-mentioned equations.
The ODD checking circuit 120 is used to perform the following steps: a first step of receiving efmn from the EFM processing unit 100 and ODD(t0˜efmn−1) from the third buffer 190; a second step of determining ODD(efmn); a third step of determining ODD(mn) under control of the mn—SEL signal; and a final step of determining ODD(t0˜efmn)=ODD(t0˜efmn−1)⊕ODD(mn)⊕ODD(efmn) for m0, m1, m2, and m3, respectively. The resulting four pieces of data are then transferred to the DSV computation circuit 300 for further processing.
The DSV computation circuit 300 receives the PDSV(efmn) data from the PDSV processing unit 110, the ODD(t0˜efmn) data from the ODD checking circuit 120, the ODD(t0˜efmn−1) data from the third buffer 190, and the ZDSVn−1 data from the second buffer 200, and then computes for DSVn(m0) at the appearance of the mn—SEL signal for m0 in accordance with the following equations:
The DSVn(m0) data is then transferred both to the search circuit 170 and to the first multiplexer 220 and latched thereby. Meanwhile, the ODD(t0˜efmn) data for m0, denoted as ODD(t0˜efmn)m0, is transferred back to the second multiplexer 180.
In a similar manner, DSVn(m1), DSVn(m2), and DSVn(m3) can be determined, and are then transferred both to the search circuit 170 and to the first multiplexer 220. Meanwhile, ODD(t0˜efmn)m1, ODD(t0˜efmn)m2, and ODD(t0˜efmn)m3 are transferred to the second multiplexer 180 to be latched therein.
The search circuit 170, based on the information about the invalid merge-bit symbol from the INHIBIT0˜3 data line, first eliminates any one of the DSVn(m0), DSVn(m1), DSVn(m2), DSVn(m3) corresponding to the invalid merge-bit symbol, and then, from the remaining ones, chooses the one whose value is closest to zero (i.e., the one whose absolute value is minimum). The corresponding merge-bit symbol of the chosen DSVn, referred to as the optimal merge-bit symbol, is then indicated via the mn—Index data line to the second multiplexer 180 and the first multiplexer 220. The mn—Index signal causes the second multiplexer 180 to select the ODD(t0˜efmn) corresponding to the optimal merge-bit symbol and then transfers the selected one to the third buffer 190 and the arithmetic unit 210. Meanwhile, the mn—Index signal causes the first multiplexer 220 to select the DSVn corresponding to the optimal merge-bit symbol and then transfer the selected one to the arithmetic unit 210. At the arithmetic unit 210, the following arithmetic operation is performed to obtain ZDSVn:
ZDSVn=DSVn−ODD(t0˜efmn)
Note that in the foregoing case, the arithmetic unit 210 performs a summation operation, but when the starting logic voltage state of the NRZI signal is HIGH, the above arithmetic operation will be ZDSVn=DSVn+ODD(t0˜efmn), and thus the arithmetic unit 210 performs a subtraction operation. The obtained ZDSVn is then transferred to the second buffer 200. Next, the current ZDSVn and ODD(t0˜efmn) data stored respectively in the second buffer 200 and the third buffer 190 are fetched as ZDSVn−1 and ODD(t0˜efmn−1) for the next symbol SYMn to find its optimal merge-bit symbol.
ODD(t0˜efmn)=ODD(t0˜efmn−1)⊕ODD(mn)⊕ODD(efmn)
Since the output ODD(t0˜efmn) corresponds to m0, it is denoted as ODD(t0˜efmn)m0.
In a similar manner, when the mn—SEL signal successively represents m1, m2, and m3, the output ODD(t0˜efmn)m1, ODD(t0˜efmn)m2, and ODD(t0˜efmn)m3 will be successively obtained.
Subsequently, the mn—SEL signal changes states to represent m1, m2, and m3 in a sequential manner to cause the DSV computation circuit 300 to successively produce DSVn(m1), DSVn(m2), and DSVn(m3). The DSVn(m1) and ODD(t0˜efmn)m1 data are stored together in the second buffer 381; the DSVn(m2) and ODD(t0˜efmn)m2 data are stored together in the third buffer 382; and the DSVn(m3) and ODD(t0˜efmn)m3 data are stored together in the fourth buffer 383.
The invention is also applicable for use with a DVD system in which digitized video data are also represented by 8-bit symbols and converted through EFM into 14-bit channel-bit symbols. The difference is that in the DVD system, the EFM produces a number of 14-bit channel-bit symbols corresponding to each original 8-bit symbol. For this reason, there is no need to find the optimal merge-bit symbol and it is only required to find any one of the channel-bit symbols that is compliant with the run length.
In this case, the values of ZDSVn−1, ODD(t0˜efmn−1), PDSV(efmn—i), and ODD(efmn—i) for efmn—i can be determined through the use of the above-mentioned equations. It can be deduced that:
ZDSV(efmn—i)=PDSV(efmn—i)*(−1)OOD(t0−efm
ODD(t0˜efmn—i)=ODD(t0˜efmn−1)⊕ODD(efmn—i)
Accordingly, ZDSVn−1 can be formulated as follows:
Therefore,
DSVn—i=ZDSVn−1+ODD(t0˜efmn—i)
Next, all the efmn—i corresponding to SYMn are plugged into the above equation to obtain a number of DSVn—i values, and from which the efmn—i corresponding to the DSVn—i having the minimum absolute value is chosen as the optimal channel-bit symbol for SYMn.
In conclusion, the invention provides a DSV computation method and system which is capable of determining the DSV value of a bit stream to find the optimal merge-bit symbol for insertion between each succeeding pair of channel-bit symbols. Compared to the prior art, the invention can find the optimal merge-bit symbol based on DSV in a more cost-effective manner with a reduced amount of memory and utilizes a lookup table requiring a reduced amount of memory space for storage so that memory space can be reduced as compared to the prior art. The invention is therefore more advantageous to use than the prior art.
The invention has been described using exemplary preferred embodiments. However, it is to be understood that the scope of the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements. The scope of the claims, therefore, should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
4728929, | Oct 01 1984 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for encoding binary data |
5077721, | Jun 23 1988 | SONY CORPORATION, A CORP OF JAPAN | Data recording and/or reproducing method and data recording medium |
5333126, | Jan 03 1990 | Hitachi, Ltd. | Information recording method and optical disk apparatus using same |
5375249, | Dec 29 1989 | SAMSUNG ELECTRONICS CO , LTD , A CORP OF THE REP OF KOREA | Eight-to-fourteen-modulation circuit for a digital audio disc system |
5696505, | Feb 15 1994 | U S PHILIPS CORPORATION | Method of converting a series of m-bit information words to a modulated signal, method of producing a record carrier, coding device, decoding device, recording device, reading device, signal, as well as record carrier |
5781131, | Dec 12 1994 | Sony Corporation | Data encoding method and data decoding method |
5790056, | Sep 01 1995 | U S PHILIPS CORPORATION | Method of converting a series of m-bit information words to a modulated signal, method of producing a record carrier, coding device, device, recording device, signal, as well as a record carrier |
5818367, | Jul 08 1994 | Sony Corporation | Signal modulating method, signal modulating apparatus, signal demodulating method and signal demodulating apparatus |
5870037, | Jul 08 1994 | Sony Corporation | Method and apparatus, demodulating method and signal demodulating apparatus |
5912869, | Apr 03 1995 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD ; Kabushiki Kaisha Toshiba | Recording medium data transmission method and apparatus and data reproduction method and apparatus |
5920272, | Feb 15 1994 | Koninklijke Philips Electronics N V | Record carrier containing a signal having a sequence of successive information signal portions |
5969651, | Mar 08 1996 | Sony Corporation | Signal modulating method, signal modulating apparatus, signal demodulating method and signal demodulating apparatus |
6023234, | Feb 23 1995 | Matsushita Electric Industrial Co., Ltd. | EFM encoder and DSV calculator |
6297753, | Jan 29 1999 | JVC Kenwood Corporation | Eight-to-fifteen modulation using no merging bit and optical disc recording or reading systems based thereon |
6542452, | Oct 02 1999 | MEDIATEK INC. | Method and system for computing digital sum variation of a stream of channel-bit symbols |
6604219, | Feb 02 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | DC control of a multilevel signal |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 09 2008 | MEDIATEK INC. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 03 2013 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 09 2017 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 19 2016 | 4 years fee payment window open |
Aug 19 2016 | 6 months grace period start (w surcharge) |
Feb 19 2017 | patent expiry (for year 4) |
Feb 19 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 19 2020 | 8 years fee payment window open |
Aug 19 2020 | 6 months grace period start (w surcharge) |
Feb 19 2021 | patent expiry (for year 8) |
Feb 19 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 19 2024 | 12 years fee payment window open |
Aug 19 2024 | 6 months grace period start (w surcharge) |
Feb 19 2025 | patent expiry (for year 12) |
Feb 19 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |