1. A method of copying a copy protected optical disc, the method comprising the steps of:
reading data from an optical disc at a selected level which differs from the user data level, and
writing the data read from said selected level to an optical disc to create a usable copy of a copy protected optical disc,
wherein the data levels at least comprise, from highest to lowest, the user data level, a data frame level, an error corrected level, an interleaved level, and an encoded data level, and wherein the data is provided from the optical disc at a level above the encoded data level but below the user data level, and
writing the provided data to an optical disc, commencing at a data level which corresponds to the data level from which the data has been provided and continuing through the data levels to produce encoded data in the form of a bit stream, which bit stream is written to the optical disc.
2. A method according to claim 1, further comprising providing the data from the error corrected level without any error correction codes, and wherein the writing includes generating error correction codes for the read data.
3. A method according to claim 2, wherein writing the read data to an optical disc comprises interleaving the read data together with the error correction codes, encoding the interleaved data in accordance with EFM Plus encoding and writing the resultant bit stream to the optical disc.
4. A method of according to claim 1, further comprising providing the data from the optical disc at the data frame level.
5. A method according to claim 4, wherein the data is provided from the data frame level without any additional codes, and the writing involves generating additional codes for the read data.
6. A method according to claim 5, wherein the additional codes generated include sector numbers.
7. A method according to claim 4, wherein the data is provided from the data frame level together with any additional codes.
8. A method according to claim 4, wherein writing the data to an optical disc comprises scrambling and subsequently error correcting the provided data together with the additional codes, interleaving the error corrected data, encoding the interleaved data in accordance with EFM Plus encoding and writing the resultant bit stream to the optical disc.
9. A method according to claim 1, further comprising providing the data from the optical disc at the interleaved level.
10. A method according to claim 1, further comprising creating a Lead-In for the optical disc being written.
11. A method according to claim 10, wherein the created Lead-In specifies the physical characteristics andor manufacturing information for the optical disc being written.
12. A method according to claim 1, wherein the optical disc being written has a Lead-In, and further comprising specifying physical characteristics for the optical disc being written and writing the specified physical characteristics to the Lead-In on the optical disc.
13. A method according to claim 1, wherein the optical disc being written has a Lead-In, and further comprising specifying manufacturing information for the optical disc being written and writing the specified manufacturing information to the Lead-In on the optical disc.
14. A method according to claim 1, wherein the optical disc being written has a Lead-In, and further comprising enabling reading and writing of discs using absolute sector addresses, and using the absolute sector addresses to read the entire data in a, Lead-In of a copy protected optical disc, and writing the data read from the Lead-In to a Lead-In of the optical disc being written.
15. A method according to claim 1, further comprising enabling reading and writing of discs using negative relative sector addresses, and using the negative relative sector addresses to read the entire data in a Lead-In of a copy protected optical disc, and writing the data read from the Lead-In to a Lead-In of the optical disc being written.
16. Apparatus for copying copy protected optical discs, the apparatus comprising:
a pickup which detects the data carried on an optical disc,
a decoder coupled to the pickup and which decodes the detected data,
a de-interleaver coupled to the decoder and which arranges the decoded data into an ECC block, and
an error correction decoder coupled to the de-interleaver and which determines error corrected data from the ECC block, and
an unscrambler coupled to the error correction decoder and which unscrambles the determined error corrected data and forms a data frame, and
the apparatus further comprises writing detected data onto an optical disc, and comprising:
a feedback shift register which scrambles the formed data frame,
an error correction encoder coupled to the feedback shift register and which encodes the data frame to form an ECC block,
a recording frame generator coupled to the error correction encoder and which interleaves the data in the ECC block,
an encoder coupled to the recording frame generator and which encodes the interleaved data,
a mastering portion which represents the encoded data on an optical disc, and
a disc copying program which selects the detected data from the ECC block, or the determined error corrected data, or the data frame and applies the selected data, respectively to the recording frame generator, the error correction encoder, or the feedback shift register.
17. Apparatus according to claim 16, wherein the data is provided from the data frame without any additional codes, and writing the data to an optical disc comprises generating additional codes for the read data to form a data frame for input to said feedback shift register.
18. Apparatus according to claim 16, wherein the decoding and encoding are in accordance with EFM Plus encoding, and wherein the mastering portion comprises a laser cutter.
19. A computer readable medium storing software or firmware for use with an optical disc drive to enable the copying of copy protected optical discs, the software or firmware comprising:
instructions for providing data from an optical disc at a selected level which differs from the user data level, and
instructions to write the read data from the selected level to an optical disc to create a copy of the disc,
wherein the data levels at least comprise, from highest to lowest, the user data level, a data frame level, an error corrected level, an interleaved level, and an encoded data level, and wherein the software or firmware further comprises instructions to provide the data from the optical disc at a level above the encoded data level but below the user data level, and
instructions to undertake writing the provided data to an optical disc, commencing at a data level which corresponds to the data level from which the data has been provided, and the instructions causing the writing to continue through the data levels to produce encoded data in the form of a bit stream, and to write the bit stream to the optical disc.
20. A computer readable medium according to claim 19, further comprising instructions to provide the data from the error corrected level without any error correction codes, and instructions to include while writing the generation of error correction codes for the read data.
21. A computer readable medium according to claim 19, wherein the instructions for the writing comprise instructions to interleave the provided data together with the error correction codes, to form the interleaved data into physical sectors, to encode the data in the physical sectors in accordance with EFM Plus encoding and to write the resultant bit stream to the optical disc.
22. A computer readable medium according to claim 19, further comprising instructions to provide the data from the optical disc at the data frame level.
23. A computer readable medium according to claim 19, further comprising instructions to provide the data from the data frame level without any additional codes, and instructions for the writing to include the generation of additional codes for the read data.
24. A computer readable medium according to claim 23, further comprising instructions to generate additional codes including sector numbers.
25. A computer readable medium according to claim 22, further comprising instructions to provide the data from the data frame level together with any additional codes.
26. A computer readable medium according to claim 23, wherein the instructions to write the provided data to an optical disc comprise instructions to scramble and subsequently error correct the provided data together with the additional codes, to interleave the error corrected data, to form the interleaved data into physical sectors, to encode the data in the physical sectors in accordance with EFM Plus encoding, and to write the resultant bit stream to the optical disc.
27. A computer readable medium according to claim 19, further comprising instructions to provide the data from the optical disc at the interleaved level.
28. A computer readable medium according to claim 19, further comprising instructions to create a Lead-In for the optical disc being written.
29. A computer readable medium according to claim 28, further comprising instructions to specify in the created Lead-In the physical characteristics andor manufacturing information for the optical disc being written.
30. A computer readable medium according to claim 19, further comprising instructions to specify physical characteristics of the optical disc being written and to write the specified physical characteristics to a Lead-In on the optical disc.
31. A computer readable medium according to claim 19, further comprising instructions to specify manufacturing information for the optical disc being written and to write the specified manufacturing information to a Lead-In on the optical disc.
32. A computer readable medium according to claim 19, further comprising instructions to enable reading and writing of discs using absolute sector addresses, and to use the absolute sector addresses to read the entire data in a Lead-In of a copy protected optical disc, and to write the data read from the Lead-In to a Lead-In of the optical disc being written.
33. A computer readable medium according to claim 19, further comprising instructions to enable reading and writing of discs using negative relative sector addresses, to use the negative relative sector addresses to read the entire data in a Lead-In of a copy protected optical disc, and to write the data read from the Lead-In to a Lead-In of the optical disc being written.
34. An optical disc produced by the method of claim 1.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. One or more computer-readable storage media storing computer-executable instructions that, when executed by a processor, perform acts comprising:
receiving a tolerance threshold and data to be used as variable inputs to a non-linear equation for calculating an optimal power of the hydroelectric turbine;
setting one of the variable inputs to an estimated value;
solving a linear equation for calculating the optimal power of the hydroelectric turbine to produce a power solution, the linear equation comprising (1) the one variable input set to an estimated value, and (2) data received from an efficiency curve for the hydroelectric turbine, the data received being for the variable inputs that are not set to an estimated value;
calculating an actual value for the one variable input set to an estimated value based at least in part on the solved linear equation;
determining a difference between the estimated value and the calculated actual value for the one variable;
when the difference is greater than the received tolerance threshold, iteratively performing the following acts:
setting the one variable input that was set to an estimated value to the calculated actual value;
solving for the power solution based at least in part on the calculated actual value;
calculating a next actual value for the one variable input set to the calculated actual value; and
determining a next difference between the calculated actual value and the calculated next actual value; and
when the difference is less than the received tolerance threshold, providing the optimal power of the hydroelectric turbine.
2. The one or more computer-readable storage media of claim 1, further comprising replacing a turbine based at least in part on the optimal power, changing a flow rate based at least in part on the optimal power, changing a spill rate based at least in part on the optimal power, changing a price at which power is offered based at least in part on the optimal power, andor changing a price at which ancillary services are offered based at least in part on the optimal power.
3. The one or more computer-readable storage media of claim 1, further comprising storing the optimal power of the hydroelectric turbine in memory.
4. The one or more computer-readable storage media of claim 1, wherein providing the optimal power comprises providing the optimal power to a spreadsheet application, providing the optimal power to a user, andor preparing the optimal power to be displayed.
5. The one or more computer-readable storage media of claim 1, wherein the variable inputs comprise a flow input, an efficiency input, and a head input.
6. The one or more computer-readable storage media of claim 5, wherein the received data for the variable inputs comprises flow data for the flow input and efficiency data for the efficiency input, and wherein setting one of the variable inputs to an estimated value comprises setting the head input to an estimated head value.
7. The one or more computer-readable storage media of claim 6, wherein calculating an actual value comprises calculating an actual head value based at least in part on a forebay and a tailrace change for the flow data used in solving the linear equation.
8. The one or more computer-readable storage media of claim 6, wherein the flow data and the efficiency data are received from a spreadsheet application.
9. The one or more computer-readable storage media of claim 1, wherein determining a tolerance comprises receiving a tolerance level from a user or administrator.
10. The one or more computer-readable storage media of claim 9, wherein the received tolerance is a tolerance percentage.
11. The one or more computer-readable storage media of claim 10, wherein determining a difference comprises subtracting a first value from a second value to calculate a difference result and determining a percent difference between the difference result and the first value.
12. A system comprising:
one or more processors;
memory communicatively coupled to the one or more processors;
a data receiving module, stored in the memory and executable on the one or more processors, to receive a tolerance threshold and a first and second input to a non-linear equation for calculating a power solution;
a variable locking module, stored in the memory and executable on the one or more processors, to set the first or second input to an estimated value;
a linear estimation module, stored in the memory and executable on the one or more processors, to solve for the power solution based at least in part on the estimated value;
a variable calculation module, stored in the memory and executable on the one or more processors, to calculate an actual value based at least in part on the estimated value;
a tolerance checking module, stored in the memory and executable on the one or more processors, to determine if a percent difference between the estimated value and the actual value is within the tolerance threshold; and
an iteration module, stored in the memory and executable on the one or more processors, to iteratively calculate the power solution until the percent difference is within the tolerance threshold.
13. The system of claim 12, wherein the first and second inputs comprise head data and flow data, respectively.
14. The system of claim 13, wherein the head data comprises a distance between a forebay and a tailrace, and wherein the flow data comprises an amount of water flowing through a hydroelectric turbine.
15. The system of claim 13, wherein the variable locking module sets the head data to an estimated head value.
16. The system of claim 12, wherein the data receiving module receives the first and second inputs from a spreadsheet application that is accessible to a user or operator of the system.
17. The system of claim 12, wherein the iteration module stores the power solution in a spreadsheet application accessible to a user or operator of the system when the determined tolerance is reached.
18. One or more computer-readable storage media storing computer-executable instructions that, when executed by a processor, perform acts comprising:
receiving inputs to a non-linear equation for calculating power of a hydroelectric turbine;
setting one of the inputs to an estimated head value;
solving a linear equation to produce a power solution based at least in part on the estimated head value;
calculating an actual head value based at least in part on the estimated head value;
comparing a difference between the calculated head value and the estimated head value to a predetermined tolerance threshold;
iteratively re-calculating the power solution until the calculated head value is within the predetermined tolerance threshold; and
providing the power solution when the calculated head value is within the predetermined tolerance threshold.
19. The one or more computer-readable storage media of claim 18, wherein the predetermined tolerance threshold is at most 1%.
20. The one or more computer-readable storage media of claim 18, wherein the predetermined tolerance threshold is at most 0.05%.
21. The one or more computer-readable storage media of claim 18, wherein the hydroelectric turbine is one of a plurality of hydroelectric turbines within a hydroelectric system, and wherein the acts further comprise calculating a power solution for the hydroelectric system based at least in part on calculating a power solution for each of the plurality of hydroelectric turbines.
22. The one or more computer-readable storage media of claim 18, further comprising calculating an electricity purchase rate for an electricity customer based at least in part on the calculated power solution.
23. The one or more computer-readable storage media of claim 18, wherein, for a given computing device, a given tolerance threshold, andor a calculated power for a given time period, the power solution is provided faster than a power solution provided by calculating the non-linear equation.
24. One or more computer-readable media storing computer-executable instructions that, when executed by a processor, perform acts comprising:
receiving a request to calculate an optimal power solution for a hydroelectric turbine; and
iteratively estimating the optimal power solution until a percent difference between an estimated value and a calculated value is less than a tolerance percentage andor until an iteration threshold is reached.
25. The one or more computer-readable media of claim 24, further comprising receiving data corresponding to the hydroelectric turbine, data corresponding to a location of the hydroelectric turbine, andor data corresponding to a potential location for the hydroelectric turbine.
26. The one or more computer-readable media of claim 25, wherein the data corresponding to the hydroelectric turbine, the data corresponding to a location of the hydroelectric turbine, andor the data corresponding to a potential location for the hydroelectric turbine comprises flow data, efficiency data, head data, forebay data, tailrace data, inflow data, market price of power data, licensing data, andor physical constraint data.
27. The one or more computer-readable media of claim 24, wherein the estimated value is an estimated head value and wherein the calculated value is a calculated head value.
28. The one or more computer-readable media of claim 24, wherein the tolerance percentage andor the iteration threshold are received from a user or are preset.
29. The one or more computer-readable media of claim 24, wherein iteratively estimating the optimal power solution comprises:
determining a first estimated power based at least in part on a first estimated head value; and
determining a subsequent estimated power based at least in part a calculated head value, the calculated head value based at least in part on the estimated head value.