text:
US4207599A - Run length encoding and decoding process and apparatus - Google Patents
Run length encoding and decoding process and apparatus Download PDF
US4207599A US05/900,000 US90000078A US4207599A US 4207599 A US4207599 A US 4207599A US 90000078 A US90000078 A US 90000078A US 4207599 A US4207599 A US 4207599A
run length
Noboru Murayama
Hayashi Taniguchi
Akira Konishi
Hisashi Matsuda
1977-04-28 Priority to JP52-49246 priority Critical
1977-04-28 Priority to JP4924677A priority patent/JPS53134340A/en
1978-04-25 Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
238000000034 methods Methods 0 claims description title 21
230000004075 alteration Effects 0 claims 8
H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
H04N1/41—Bandwidth or redundancy reduction
H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
H04N1/419—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which encoding of the length of a succession of picture-elements of the same value along a scanning line is the only encoding step
Binary data is generated by a facsimile scanner or the like. A binary run length code indicating a number of successive "1" or "0" bits in the data is formed. A shift code comprising all "0" or "1" bits in a number equal to the number of the run length code is appended to the run length code only when the run length code is longer than a preceding run length code. A shorter run length code is indicated by inserting logical "0" bits in vacant high order places of the run length code so as to make the run length code equal in length to the previous run length code.
The present invention relates to a run length encoding and decoding process and apparatus for transmitting facsimile and similar binary data in compressed form.
A number of run length encoding systems have been developed including variable length block encoding, Wyle encoding, Huffman encoding, etc. The variable length block and Wyle encoding systems utilize flag bits to indicate the length of a run length code. These flag bits are either mixed with the bits of the run length code as in the case of variable length block encoding or are separate from the run length code as in the case of the Wyle encoding system. These flag bits account for between 1/3 and 1/2 of the data transmitted. The Huffman encoding system does not use flag bits but instead assigns a unique binary code to each run length, with the shorter codes corresponding to the most frequently occuring run lengths.
All of these prior art encoding systems suffer from the drawback that where the same run length is encountered several times in succession, the entire run length code including the flag bits where applicable is transmitted each time. If there is no change in run length, the flag bits are redundant. Likewise, the flag bits are transmitted when the run length decreases. This high percentage of redundant data greatly limits the degree of data compression and transmission speed.
The present invention overcomes the drawbacks of the prior art by generating a binary run length code indicating a run length of binary data. A shift code comprising a number of all logical "1" or "0" bits in a number equal to the number of bits in the run length code is appended to the run length code only when the run length code is longer than a preceding run length code. A shorter run length code is indicated by inserting logical "0" bits in vacant high order places of the run length code so as to make the run length code equal in length to the previous run length code.
It is an object of the present invention to provide a run length encoding and decoding process which greatly increases the data compression rate over the prior art.
It is another object of the present invention to provide a run length encoding and decoding process which greatly increases the data transmission speed over the prior art.
It is another object of the present invention to provide a run length encoding and decoding process which eliminates a high percentage of redundant data which is inherent in prior art processes.
It is another object of the present invention to provide a generally improved run length encoding and decoding process.
It is another object of the present invention to provide an apparatus embodying the present process.
Other objects, together with the foregoing, are attained in the embodiments described in the following description and illustrated in the accompanying drawing.
FIG. 1 is a block diagram of an encoding apparatus for performing the present process;
FIG. 2 is a flowchart of the operation of the encoding apparatus;
FIG. 3 is a block diagram of decoding apparatus for performing the present process; and
FIG. 4 is a flowchart of the operation of the decoding apparatus.
While the run length encoding and decoding process of the invention is susceptible of numerous physical embodiments, depending upon the environment and requirements of use, substantial numbers of the herein shown and described embodiments have been made, tested and used, and all have performed in an eminently satisfactory manner.
An example of variable length block encoding of the prior art is illustrated in table 1. In the first system the binary bits indicating the run length are not underlined and are alternated with flag bits which are underlined. The flag bits indicate the length of the run length code and are provided in a number equal to the run length code bits. Thus, the flag bits constitute 50% of the encoded data transmitted. Where the same run length occurs several times in a row, the flag bits constitute redundant data. In the second system, there is one flag bit for each two data bits, thus reducing the redundancy to 33%. Although the second system is an improvement over the first system in this respect, it still unnecessarily limits the compression and transmission rates.
Table 2 illustrates the prior art Wyle encoding system, in which the symbol # indicates the bits of the run length code. It will be seen that the number of flag bits is generally equal to the number of data bits, for a redundancy of 50% when the same run length is transmitted several times in succession. The main difference between the Wyle system and the variable length block systems is that the flag bits are separated from the data bits in the Wyle system.
Table 3 illustrates the prior art Huffman encoding system which does not comprise any flag bits. Instead, there is a unique code for each run length, with the codes for the most frequency encountered run length having the smallest number of bits. It will be noted that some of the codes are quite long compared to the actual run length.
In all of the prior art systems it is only possible to produce binary numbers indicating the run lengths by means of complicated computational operations on the codes.
Table 1______________________________________Run length    Code (first system)                    Code (second system)______________________________________1          00              0002          01              0013         1000             0104         1001             0115         1100           1000006         1101           1000017        101000          1000108        101001          1000119        101100          10100010       101101          101001.        .               ..        .               ..        .               .______________________________________
Table 2______________________________________   CodeRun length Flag    Run length Code No. of bits______________________________________1 ˜ 4      0##                  35 ˜ 8     10##                  4 9 ˜ 16     110###                617 ˜ 32     1110####              833 ˜ 64     11110#####           10 65 ˜ 128     111110######         12129 ˜ 256     1111110#######       14257 ˜ 512     11111110########     16 513 ˜ 1024     111111110#########   181025 ˜ 2048     1111111110########## 20     .     .______________________________________
Table 3______________________________________Run Length   Run length Code (white)                    Run length Code (black)______________________________________0       11001111         00001001001       000000           0012       1110             013       1011             104       0110             1105       0010             11106       0011             000107       1001             0000018       00010            0000119       01001            00011010      10101            000000011      01010            000010112      000111           000111113      011100           00001000.        .                 ..        .                 .______________________________________
Table 4 illustrates a run length encoding system of the present invention which overcomes the drawbacks of all of the prior art systems. It will be seen that a run length code RL for each run length is simply the value of the run length written in binary form. Thus, the run length code for a run length of decimal 5 is binary 101, etc. A shift code SC comprising a plurality of logical "0" bits is appended to the highest order bit of a run length code RL where the code length increases. Table 4 shows underlined "0" bits in high order places of the run length codes RL which indicate a reduction in run length in a manner which will be described in detail below.
Table 5 shows the run length codes RL and shift codes SC of table 4 for monotonically increasing run lengths from 1 to 10 and monotonically decreasing run lengths from 10 to 1. It will be seen that a shift code SC is only appended to the run length code RL when the number of bits (code length) of the run length code is greater than the number of bits of the previous run length code. For example, if the run length increases from 7 to 8, the complete code for the run length of 8 will be 00001000. The leftmost four "0" bits are the shift code SC. The rightmost four bits are the run length code RL and constitute the binary equivalent of the run length 8. However, if two successive run lengths of 7 are encountered, the complete code for the second run length will be 111, constituting only the run length code RL. Where a run length code has a number of bits greater than that of the previous run length code, a shift code comprising "0" bits equal in number to the number of bits of the new run length code is appended to the high order bit of the new run length code.
Table 4______________________________________Run length Code length             2.sup.1                   2.sup.2                          2.sup.3                               2.sup.4                                    2.sup.5Shift Code SC     0     00     000  0000 00000______________________________________Run length1                         1   01   001  0001 000012                             10   010  0010 000103                             11   011  0011 000114                                  100  0100 001005                                  101  0101 001016        Run length                110  0110 001107        binary                    111  0111 001118        Code RL                        1000 010009                                       1001 0100110                                      1010 01010.                                       .    ..                                       .    ..                                       .    .______________________________________
Table 5______________________________________                      Run length binary  Run length          Shift Code SC                      Code RL______________________________________  ↑        1         0         1  ↑        2         00        10  ↑        3                   11  ↑        4         000       100increase  ↑        5                   101  ↑        6                   110  ↑        7                   111  ↑        8         0000      1000  ↑        9                   1001  *     10                  1010  ↓        9                   1001  ↓        8                   1000  ↓        ○7           0111  ↓        6                   110decrease  ↓        5                   101  ↓        4                   100  ↓        ○3           011  ↓        2                   10  ↓        1                   01______________________________________
The new run length code RL and the code length (number of bits in the new run length code) are determined by sensing the high order places of the complete code which comprises the run length code RL and may further comprise the shift code SC. The present system will be well understood from the following description with reference being made to tables 4 and 5 and FIGS. 1 to 4.
In FIG. 1 an encoding apparatus of the present invention is generally designated by the reference numeral 11 and comprises an input shift register 12. The output of the register 12 is connected to an input of a run length counter 13, the output of which is connected to an input of a run length register 14. The output of the register 14 is connected through a gate 16 to an input of an output register 17.
The output of the register 14 is also connected to an input of a code length counter 18, the output of which is connected to an input of a new code length register 19. The output of the register 19 is connected to inputs of a current code length register 21 and a comparator 22. The output of the comparator 22 is connected to inputs of the register 21, gate 16 and a zero generator 23.
Initially, a predetermined initial current code length B is set into the register 21 and also into a similar register in a decoding apparatus which is shown in FIG. 3 (to be described later). Then binary data from a facsimile scanner or the like (not shown) is serially fed through the register 12. The counter 13 counts the number of successive logical "0" to "1" bits. A central control unit (not shown) stops shifting of the register 12 in response to a transition from "0" bits to "1" bits or vice-versa. Subsequent "1" and "0" data runs are encoded alternatingly.
For example, if the input data comprises a string of 6 logical "0" bits, the run length is 6 and the run length code RL is 110. The run length code RL appears at the output of the counter 13 and is set into the register 14.
Then the counter 18 counts the number of significant bits in the run length code RL and sets this number, a new code length A, into the register 19. The comparator 22 then compares the new code length A with the current code length B.
When A=B, the new code length A is set into the register 21 (there is no change in the numerical value) and the run length code RL is fed from the register 14 and gate 16 into the register 17 from which it is serially transmitted to the decoding apparatus. In this case, the run length code RL consists of B bits (equal to A bits). When A>B, the value of A is set into the register 21 to update the current code length B. Then, the zero generator 23 feeds A "0" bits through the gate 16 into the register 17 to constitute the shift code SC for the new run length. Then, the run length code RL is fed from the register 14 through the gate 16 into the register 17 behind the shift code SC. The run length code RL has A bits, or the same number of bits as the shift code SC.
When A<B, the zero generator 23 feeds "0" bits through the gate 16 into the register 17. The number of these "0" bits is equal to A-B. Then, the run length code RL (A bits) is fed from the register 14 through the gate 16 into the register 17 behind the "0" bits. Then, the new code length A is set into the register 21.
For example, if the current code length B (which except in the case of the first run length is equal to the code length of the previous run length code) is 4 and the new run length is 3, the run length code RL stored in the register 14 is binary 11 and comprises 2 bits. The zero generator 23 will insert two "0" bits in the vacant high order places of the run length code RL to alter the code to the form 0011. The underlining indicates the inserted "0" bits. It will be seen that the new run length code RL in altered form comprises the same number of bits as the previous run length code (4 bits), or has a code length equal to the current code length B.
The inserted "0" bits indicate to the decoding apparatus that the run length has decreased. It will be noted that the current code length in the decoding apparatus is B. If the code length were to increase from 4 bits to 5 bits, the new code would comprise a shift code of 5 "0" bits. However, the code in the present example has only 2 high order "0" bits, indicating that the code length has decreased rather than increased. Since there are two inserted high order "0" bits, it can be determined that the code length has decreased by two bits, or from 4 to 2 bits. In this manner, it is impossible to confuse shift code "0" bits with inserted "0" bits.
FIG. 3 illustrates a decoding apparatus of the present invention which is generally designated as 24 and comprises an input register 26 through which the transmitted codes from the apparatus 11 are shifted. The output of the register 26 is connected to an input of a run length register 27, the output of which is connected to inputs of a code length counter 28 and a gate 29. The output of the gate 29 is connected to an input of an output register 31, the output of which is connected to a facsimile recording device or the like (not shown).
The current code length B is stored in a current code length register 32 which is connected to a code length register 33. The code length counter 28 has an output connected to the code length register 33. Further connected to the code length register 33 is a zero detector 34. A zero counter 36 has an input connected to the output of the register 26 and outputs connected to the register 32 and the register 33.
In operation, the code from the apparatus 11 is shifted into the input register 26, and B bits of the code are shifted into the register 26 therefrom. The code length counter 28 counts the number of significant bits of the code in the register 28 and sets the same into the register 33. The zero detector 34 senses whether the number of significant bits is zero. If so, the contents of the register 27 constitute a shift code SC rather than a run length code RL. A central control unit (not shown) then causes the register 26 to shift out any remaining high order "0" bits. The number of such bits is counted to the zero counter 36 and algebraically added to the current code length B in the register 32. It will be noted that there must be at least one additional high order "0" bit in the register 26 if the code length increases. By this action, the contents of the register 32 are updated so that the current code length B becomes equal to the new code length A. Then, the register 26 is shifted a plurality of times equal to the number in the register 32 and the contents of the register 26 shifted into the register 27. This second shifting operation of the registers 26 and 27 causes the run length code RL to be shifted into the register 27.
The central control unit operates the gate 29 in such a manner as to gate a plurality of "0" or "1" bits depending on whether a "0" or "1" run length was transmitted into the output register 31 to reconstruct the binary data. The number of bits gated into the register 31 is equal to the value of the run length code RL in the register 27, or equal to the run length. The gate 29 operates to apply logical "0" or "1" output signals to the register 31 in synchronism with shifting of the register 31 under control of the central control unit. For example, where a logical "1" run length of 12 bits was encoded by the apparatus 11, 12 logical "1" bits will be fed into the register 31 by the apparatus 24 in response thereto, thus exactly reconstructing the original binary data.
Where the count in the counter 28 is not zero, it indicates that the code length has not increased. When A=B, there will be no high order "0" bits in the code, and the count of the zero counter 36 will be zero. In this case, the run length code RL in the register 27 is used to control the gate 29 in the manner described above. Thus, there is only one shifting operation from the register 26 to the register 27.
When A<B, the count in the counter 28 is not zero and is fed through the register 33 into the register 32. This updates the code length B to correspond to the reduced code length. The run length code RL in the register 27 is used to control the gate 29 in an essentially similar manner. In this case, the operation is mathematically equivalent to reducing the current code length B by the number of inserted high order "0" bits.
Tables 6 and 7 illustrate a modified run length encoding system of the present invention in which the run length codes RL have values equal to the run lengths minus one. This system allows the frequently encountered run length 4 to be indicated by RL=11 rather then RL=100, or by a two bit rather than a three bit code. In order to distinguish the run length code RL for the run length of 1 from a shift code bit, the run length code for the run length of 1 is indicated as RL=1. However, a zero shift code is defined in this system so that the run length codes for run lengths 1 and 2, which are both indicated by a low order "1" bit, may be distinguished from each other. In reconstructing the binary data, the run length code is increased by one (except for run length 1) by the decoding apparatus.
Tables 8 and 9 illustrate another encoding system of the present invention in which the shift code is constituted by logical "1" rather than "0" bits. In order to distinguish the shift code bits from run length code bits, a signal "0" flag bit is inserted between the shift code and the run length code. It will also be noted in tables 8 and 9 that the run length codes are equal to the run lengths minus one.
In order to eliminate ambiguity in decoding, logical "0" discriminator bits are appended to the lower order bits of the maximum value run length codes for each run length when the run length code increases. These discriminator bits are underlined in tables 8 and 9. This positively prevents confusion between low order "1" run length code bits and subsequent high order "1" shift code bits.
Table 6______________________________________Run length Code length            2.sup.0                  2.sup.1                         2.sup.2                              2.sup.3                                    2.sup.4Shift Code SC          0      00   000   0000______________________________________Run length 1             1   01   001  0001  000012                            1    01   001   00013                                 10   010   00104                                 11   011   00115                                      100   01006                                      101   01017        Run                           110   01108        length                        111   01119        Code RL                             100010                                           100111                                           101012                                           1011.                                            ..                                            ..                                            .______________________________________
Table 7______________________________________         Code       Run     Shift    Run length binary  No.  length  Code SC  Code RL______________________________________  ↑        a      1            1  ↑        b      1            1  ↑        c      2     0      1increase  ↑        d      2            1  ↑        e      3     00     10  ↑        f      3            10  ↑        g      4            11  ↑        h      4            11  *     i      5     000    100  ↓        j      5            100  ↓        k      4            011  ↓        l      4            11  ↓        m      3            10decrease  ↓        n      3            10  ↓        o      2            01  ↓        p      2            1  ↓        q      1            01  ↓        r      1            1______________________________________
Table 8______________________________________Run length Code length            2.sup.0                   2.sup.1                         2.sup.2                              2.sup.3                                    2.sup.4Shift Code SCflag bit (0)            10    110  1110  11110______________________________________Run length 1                  0   00   000   00002                             10  01   001   00013                                 10   010   00104                                 110  011   00115                                      100   01006                                      101   01017                                      110   01108                                      1110  01119        Run                                 100010       length                              100111       Code RL                             101012                                           101113                                           110014                                           110115                                           111016                                           11110.                                             ..                                             ..                                             .______________________________________
Table 9______________________________________          Code       Run      Shift          Run length  No.  length   Code SC   flag Code RL______________________________________  ↑        a      1      1       0    0  ↑        b      2                   10  ↑        c      3      11      0    10increase  ↑        d      4                   110  ↑        e      5      111     0    100  ↑        f      6                   101  ↑        g      7                   110  ↑        h      8                   1110  *     i      9      1111    0    1000  ↓        j      10                  1001  ↓        k      9                   1000  ↓        l      8                   0111  ↓        m      7                   110decrease  ↓        n      6                   101  ↓        o      5                   100  ↓        p      4                   011  ↓        q      3                   10  ↓        r      2                   01  ↓     1                   0______________________________________
In summary, it will be seen that the present invention greatly increases the degree of compression in run length encoding and increases transmission speed by eliminating redundant code bits.
Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.
1. A process for run length encoding and decoding of binary data for facsimile transmission, an encoding portion of the process comprising the steps of:
(a) generating a run length code comprising a plurality of binary bits indicating a run length of the data;
(b) computing a new code length as being equal to a number of bits of the run length code;
(c) comparing the new code length with a current code length;
(d) when the new code length is shorter than the current code length altering the run length code so as to comprise a number of bits indicated by the current code length by inserting logical "0" bits in vacant high order places of the run length code and setting the current code length equal to the new code length; and
(e) when the new code length is longer than the current code length appending a shift code comprising a plurality of identical binary bits equal in number to the new code length to the run length code and setting the current code length equal to the new code length;
a decoding portion of the process comprising the steps of:
(f) sensing for presence of the shift code and setting the current code length equal to the number of bits of the shift code when the shift code is present;
(g) when the shift code is absent sensing for presence of inserted logical "0" bits and subtracting the number of inserted logical "0" bits from the current code length where inserted logical "0" bits are present; and subsequently
(h) reconstructing the binary data as indicated by the run length code and current code length.
2. A process as in claim 1, in which step (e) comprises appending the shift code in the form of all logical "0" bits.
3. A process as in claim 1, in which step (e) comprises appending the shift code in the form of all logical "1" bits and inserting a logical "0" flag bit between the shift code and the run length code.
4. A process as in claim 1, in which step (a) comprises generating the run length code as a binary code having a value equal to the run length.
5. A process as in claim 1, in which step (a) comprises generating the run length code as a binary code having a value equal to the run length minus one.
6. A process as in claim 5, in which step (a) comprises adding a binary "1" to the run length code for a run length of one bit.
7. A process as in claim 3, in which step (e) comprises appending a logical "0" discriminator bit to the low order bit of the run length code when the new code length is equal to the current code length and all bits of the run length code are logical "1", steps (f) and (g) comprising sensing for the presence of the discriminator bit.
8. A run length encoding process for facsimile transmission comprising the steps of:
(a) generating a run length code comprising a plurality of binary bits indicating a run length of binary data;
(c) comparing the new code length to a current code length; and
(d) when the new code length is longer than the current code length appending a shift code indicating the new code length to the run length code and setting the current code length equal to the new code length.
9. An apparatus for run length encoding and decoding of binary data, an encoding portion of the apparatus comprising;
code generating means for generating a run length code comprising a plurality of binary bits indicating a run length of the data;
computing means for computing a new code length as being equal to a number of bits of the run length code;
comparator means for comparing the new code length with a current code length; and
alteration means;
when the new code length is shorter than the current code length the alteration means altering the run length code so as to comprise a number of bits indicated by the current code length by inserting logical "0" bits in vacant high order places of the run length code and setting the current code length equal to the new code length; and
when the new code length is longer than the current code length the alteration means appending a shift code comprising a plurality of identical binary bits equal in number to the new code length to the run length code and setting the current code length equal to the new code length;
a decoding portion of the apparatus comprising:
sensor means for sensing for presence of the shift code and setting the current code length equal to the number of bits of the shift code when the shift code is present;
when the shift code is absent the sensor means sensing for presence of inserted logical "0" bits and subtracting the number of inserted logical "0" bits from the current code length where inserted logical "0" bits are present; and
reconstruction means for reconstructing the binary data as indicated by the run length code and current code length.
10. An apparatus as in claim 9, the alteration means appending the shift code in the form of all logical "0" bits.
11. An apparatus as in claim 9, the alteration means appending the shift code in the form of all logical "1" bits and inserting a logical "0" flag bit between the shift code and the run length code.
12. An apparatus as in claim 9, the code generating means generating the run length code as binary code having a value equal to the run length.
13. An apparatus as in claim 9, the code generating means generating the run length code as a binary code having a value equal to the run length minus one.
14. An apparatus as in claim 13, the code generating means adding a binary "1" to the run length code for a run length of one bit.
15. An apparatus as in claim 11, the alteration means appending a logical "0" discriminator bit to the low order bit of the run length code when the new code length is equal to the current code length and all bits of the run length code are logical "1", the sensor means sensing for the presence of the discriminator bit.
16. A run length encoding apparatus comprising:
code generating means for generating a run length code comprising a plurality of binary bits indicating a run length of binary data;
comparator means for comparing the new code length to a current code length; and
when the new code length is longer than the current code length the alteration means appending a shift code indicating the new code length to the run length code and setting the current code length equal to the new code length.
US05/900,000 1977-04-28 1978-04-25 Run length encoding and decoding process and apparatus Expired - Lifetime US4207599A (en)
JP52-49246 1977-04-28
JP4924677A JPS53134340A (en) 1977-04-28 1977-04-28 Run length coding system
US05/900,000 Expired - Lifetime US4207599A (en) 1977-04-28 1978-04-25 Run length encoding and decoding process and apparatus
JP (1) JPS53134340A (en)
US4297727A (en) * 1979-07-09 1981-10-27 Ricoh Company, Ltd. Facsimile apparatus
US4316222A (en) * 1979-12-07 1982-02-16 Ncr Canada Ltd. - Ncr Canada Ltee Method and apparatus for compression and decompression of digital image data
US4360840A (en) * 1980-05-13 1982-11-23 Am International, Inc. Real time data compression/decompression scheme for facsimile transmission system
US4591829A (en) * 1982-08-26 1986-05-27 Canon Kabushiki Kaisha Run length code decoder
US4596039A (en) * 1983-12-30 1986-06-17 International Business Machines Corporation Method for converting an image from a run end or run length representation to a bit map
US4610027A (en) * 1983-12-30 1986-09-02 International Business Machines Corporation Method for converting a bit map of an image to a run length or run end representation
US4741047A (en) * 1986-03-20 1988-04-26 Computer Entry Systems Corporation Information storage, retrieval and display system
US4750043A (en) * 1985-08-08 1988-06-07 Canon Kabushiki Kaisha Decoding apparatus for image code
EP0315389A2 (en) * 1987-10-31 1989-05-10 Sharp Kabushiki Kaisha Data transmission system
US4837634A (en) * 1984-06-05 1989-06-06 Canon Kabushik Kaisha Apparatus for decoding image codes obtained by compression process
US4860324A (en) * 1986-07-03 1989-08-22 Canon Kabushiki Kaisha Information data recovering apparatus
US4992954A (en) * 1987-08-05 1991-02-12 Hitachi, Ltd. Method of storing character patterns and character pattern utilization system
US5367674A (en) * 1991-12-13 1994-11-22 International Business Machines Corporation Data stream optimizer utilizing difference coding between a current state buffer and a next state buffer
US5463390A (en) * 1989-01-13 1995-10-31 Stac Electronics, Inc. Data compression apparatus and method
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5706001A (en) * 1994-11-30 1998-01-06 Daewoo Electronics Co., Ltd. Run-length decoding apparatus for use in a video signal decoding system
US5841379A (en) * 1997-01-24 1998-11-24 Texas Instruments Incorporated Method and apparatus for selectively counting consecutive bits
US6127952A (en) * 1997-11-12 2000-10-03 Electronics And Telecommunications Research Institute Video data recording apparatus
US20040013313A1 (en) * 2002-07-16 2004-01-22 Hiroshi Akimoto Method, apparatus and system for compressing still image in multipurpose compression systems
US3588329A (en) * 1966-06-15 1971-06-28 Xerox Corp Selective binary encoding of video information signals
US3925780A (en) * 1973-12-26 1975-12-09 Ibm Apparatus for data compression encoding and decoding
US3980809A (en) * 1973-07-16 1976-09-14 International Business Machines Corporation Encoding logic for reduced bandwidth pictorial data transmission system
US4028731A (en) * 1975-09-29 1977-06-07 International Business Machines Corporation Apparatus for compression coding using cross-array correlation between two-dimensional matrices derived from two-valued digital images
1977-04-28 JP JP4924677A patent/JPS53134340A/en active Pending
1978-04-25 US US05/900,000 patent/US4207599A/en not_active Expired - Lifetime
US7239754B2 (en) * 2002-07-16 2007-07-03 Hiroshi Akimoto Method, apparatus and system for compressing still images in multipurpose compression systems
JPS53134340A (en) 1978-11-22
US3550082A (en) 1970-12-22 Automatic synchronization recovery techniques for nonbinary cyclic codes
US3648237A (en) 1972-03-07 Apparatus and method for obtaining synchronization of a maximum length pseudorandom sequence
Rubin 1979 Arithmetic stream coding using fixed precision registers
US4376933A (en) 1983-03-15 Circuit for compacting data
US4397022A (en) 1983-08-02 Weighted erasure codec for the (24, 12) extended Golay code
US6876774B2 (en) 2005-04-05 Method and apparatus for compressing data string
US3717851A (en) 1973-02-20 Processing of compacted data
US4872009A (en) 1989-10-03 Method and apparatus for data compression and restoration
CA1055611A (en) 1979-05-29 Uniform decoding of minimum-redundancy codes
US4271476A (en) 1981-06-02 Method and apparatus for rotating the scan format of digital images
US5138316A (en) 1992-08-11 Variable length code demodulating apparatus and address control method thereof
US4611280A (en) 1986-09-09 Sorting method
US4509038A (en) 1985-04-02 Code-converting system for band compression of digital signals
CN101800556B (en) 2013-11-13 Method and apparatus for adaptive data compression
EP0540177A2 (en) 1993-05-05 Information transmission method and apparatus
US4472788A (en) 1984-09-18 Shift circuit having a plurality of cascade-connected data selectors
JP3540109B2 (en) 2004-07-07 Data compression method and apparatus
EP0293161A2 (en) 1988-11-30 Character processing system with spelling check function
US3398400A (en) 1968-08-20 Method and arrangement for transmitting and receiving data without errors
US3689899A (en) 1972-09-05 Run-length-limited variable-length coding with error propagation limitation
US4929946A (en) 1990-05-29 Adaptive data compression apparatus including run length encoding for a tape drive system
EP0462363A2 (en) 1991-12-27 Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion
US4626829A (en) 1986-12-02 Data compression using run length encoding and statistical encoding
US4447903A (en) 1984-05-08 Forward error correction using coding and redundant transmission
US3185823A (en) 1965-05-25 Data compactor


Flooding is a very costly threat and can destroy your property in no time. A lot of the time, flooding comes out of no where, catching you by surprise and you have to react quickly if you're going to save your property. We wanted to give you the top 5 things you can to do to minimize flooding damage in the hopes that you'll be prepared if your house is threatened. If you have already been the victim of a flood, please read our information on What To Do After A Flood and How To Choose A Water Damage Restoration Company In Sarasota.
This one might seem obvious, but the quickest way to minimize damage from flooding is to move your valuable items to higher elevations. If your house has an upstairs, stock it with all of your valuable goods and keepsakes (family photographs and records). If you live in a one-story home, utilize your elevated cupboard space and put your valuables in there.
Investing in (or renting) a sump pump is also a very good way to minimize damage from flooding. If water is building up in your home or in any room, set the sump pump to push the water outside, to the nearest drainage point. Although you ideally don't want any water in your house, using a sump pump is one of the best ways to make sure the water doesn't get too high during flooding.
Flooding can ruin your electrical equipment very quickly. It only takes a little water to short out and destroy a television, computer, stereo or other electronic device and you really want to get this stuff up off the ground and to higher elevations in your house. Electricity and water can also be very dangerous during flooding, so as a safety precaution, get this stuff up as high as possible.
Your heating, ventilation and air conditioning systems are also very valuable and expensive to replace should they be the victim of flooding in your utility room or basement. You mostly need to be concerned with the base units and the electrical components of your HVAC equipment. You can either move the units entirely out of the area in threat of flooding, or disassemble and move the vulnerable parts of each system. Consult a water restoration specialist if you have questions give us a call or shoot us an email.
While you can move your possessions around, your walls are pretty much at the mercy of the flooding, and water damage to walls can be very costly. One thing you can do proactively to minimize future flood damage, is put a waterproof coating over all your walls. Some exterior paints have water proofing, and you can buy special water proof coatings that are safe for both interior and exterior use.
After a flood one of the most difficult tasks can be dealing with your insurance company. Read more about filing a flood insurance claim here.
If you have questions about flooding or have received flooding damage and need assistance, contact Accutech Restoration 24/7! We have specialists in your area.


Coach Stephen Keshi, has reportedly resigned from his position, supersport.com.
Keshi, 51, announced he had dropped his resignation on the radio show of respected South African journalist and presenter, Robert Marawa on Metro FM on Monday afternoon.
Keshi is said to have explained his reason for resignation by claiming that he was already sacked as the team's coach before the quarterfinal clash over Cote d'Ivoire.
The Nigerian manager had hinted last week of quitting.
Keshi guided Nigeria's Super Eagles to a third African title after his team defeated Burkina Faso by a goal in Johannesburg on Sunday.
The Nigeria Football Federation (NFF) is yet to make an official statement on the latest development.
Previous post Nigeria : Joseph Yobo, his sixth Afcon was good!


Looking for other handmade greetings cards wholesalers? eSources UK is your one stop reference for information on other handmade greetings cards suppliers in the UK. When you register as a buyer you can also list unlimited buy requests in the trade leads directory to receive instant replies from hundreds of other handmade greetings cards distributors ready to fulfill your orders.
Are you looking to buy or sell Other Handmade Greetings Cards?	Register Now to post your offers and requests in this category.


In a normal defense, which is open to the general public, you're going to be requested to summarize your research. It aids the students to grow out of their shell out of their respective discipline and provide them the chance to present each of their findings of defense study. You should know current theories on the topic matter along with empirical essaycastle studies too.
To guarantee continued sustainable practices, the consequences of fishing activity on the wellness of the ecosystem ought to be actively studied. Regardless of what genre you would like Business Studies, Microeconomics, Business Management and Financial Accounting, we're here to serve your requirements. Scheduling an extremely valuable 1.
If you cannot write satisfactory papers however hard you try, you are able to finally begin impressing your professors uk dissertation writers with the assistance of our writers. While it's true that there are a few excellent writers in college some find it extremely tricky to write. So when you have an essay assigned that you will need help with, you can purchase essay online cheap from us.
Students should devote a great deal of time making certain that the visual aids are clear and informative. The committee is expecting you to be nervous. For the mere actuality that you conducted that study in your village is sufficient reason in order for it to be of terrific significance.
It's very funny how some students feel that each researchable http://facpub.stjohns.edu/~layachia/1-All_Courses_Docs/Grading%20Rubrics%20For%20Papers.pdf idea or topic on earth was tackled by somebody. It's the people obligation to use this form alongside her thesis to every party of the thesisdissertation worthy. It's not their fault they can't write.
The thesis option is for students who want to have a background in intense research, including students that are likely to follow a PhD. In some instances, panelists are going to have duplicate of the project which they can review in advance of the student's presentation. Thus, the student should know precisely what the panelist is referencing from the document.
This writing company makes sure their papers are all the terrific quality and all the customers are pleased. Our technicians will kindly answer every one of your questions. You don't need to be concerned about your personal details that may be viewed, as we handle the matter on a safe network.


"Greeks Flee from Turkey" at the bottom of page. A consequence of the Istanbul Pogrom deliberately started by Turkey to incite inter-communal tension in Cyprus.
As much as I don't agree with many acts carried out in the name of EOKA Afxentiou is a great GC hero in the mode of Leonidas.


The Mather offers a unique environment that weaves healthy living into every aspect of your life. We take pride in offering comprehensive wellness programs, services, and amenities designed to provide ways for adults 62+ to continue to make the adventure of aging better.
At the same time, we recognize the possibility that health concerns may arise. The Mather enables you to make a single retirement choice.
The Mather Life Centre is conveniently located within The Mather (425 Davis Street) on the second floor and a portion of the third floor, offering assistance with day-to-day activities, memory support, long-term care, and rehabilitation services, if ever needed.
Comfortable residential living is combined with comprehensive assisted living services, enabling residents to remain as independent as possible. Certified Nursing Assistants (CNAs) provide 24-hour assistance with daily tasks such as dressing, grooming, and medication reminders.
Spacious one-bedroom apartments are equipped with emergency response systems and safety features for comfort and peace of mind.
Three meals a day are provided in our full-service restaurants, Bistro 100 and 75 East.
Specialized private memory support suites are designed for those with mild to moderate Alzheimer's Disease or other cognitive impairments. Twenty-four hour supervision is provided.
Our person-centered approach to memory support emphasizes personal strengths to embrace each resident's individuality.
Residents enjoy spacious private suites with large bathrooms and access to comfortable living room areas.
We have Medicare-certified suites; qualified stays can be reimbursed.
Professional nursing staff care for individuals requiring recovery support due to illness or surgery, concentrated rehabilitation services, or ongoing long-term care.
An array of rehabilitation services, including physical, occupational, and speech therapy, are offered at The Mather Life Centre on a fee-for-service basis or through Medicare B benefits.
The continuing care part of The Mather is something I think most of us believe we won't need–we'll never need–but it's nice to have there.


Shares of these funds are bought and sold at market price (not NAV) and are not individually redeemed from the fund. Brokerage commissions will reduce returns.
** This fund is not an investment company regulated under the Investment Company Act of 1940 and is not afforded its protections. This fund generates a K-1 tax form. Investing in this ETF involves substantial risk, including loss of principal. This ETF may not be suitable for all investors.
† This fund's daily objective multiple changed effective as of the close of business on 2/27/2018. All returns prior to 2/28/18 reflect its previous objective.
‡ The fund is actively managed. The indexes shown for FUT and WYDE are reference benchmarks. Click on the fund name or ticker links above for more information.
1The expense ratio for certain funds includes a contractual fee waiver that results in a lower net expense ratio for some or all periods shown. For information about a specific ETF's fee waiver, please view its product page by clicking on the fund name or ticker above.
4 May include significant acquired fund fees and expenses incurred indirectly through the fund's ownership of shares in other investment companies, such as business development companies. These fees are not direct costs paid by shareholders or used to calculate net asset value. See the prospectus for more information.
For XBRL filings, see the XBRL Files and Fund Reports.


It's Thursday, the 10th of May, and rock 'n' roll is underway at the John Curtin Hotel. This is only the second Melting Pot gig at the Curtin, but from the way things are going, it looks as though I've stumbled upon a pretty reliable night out – something I don't judge lightly.
The John Curtin's a superb venue to hear four beats to the bar played out; having dodged the gentrification vulgarians and TAB trolls who've murdered most of Melbourne's publand between them, the Curtin provides a lovely backdrop for some honest gigging and Melting Pot makes good use of the venue.
The McQueens start the evening with a pretty sensational opening – normally they'd have been introduced by a compère but, his being absent, they opt for a bloody great noise instead – and play a pretty fair set that could be likened to the wall-of-sound we all got used to in the 90s. The only real hiccups are their third number, which sounds in places like a needle skipping its groove, and their attire – characterless tee-shirts and blue jeans of all things. Overall they play a good, safe opening that lasts the perfect amount of time.
They're followed by Amber Lamps, who choose an unfortunate number for their first song, in my view anyway, because it's the least energetic and coherent of their set – which includes a rather nice cover of Pumped Up Kicks. Things improve with every song played and by the time the set's ripened to middle age we're having a fine old time sipping beer, guessing at lyrics and waiting for the guitarist to trip on his lead (he didn't); which somehow gives proceedings an agreeable dash of tension. It ends with a finale that's a treat to watch but leaves one wondering where its vibrancy was earlier in the performance.
Finally, the evening sees Robot Child take to the stage and now we have a band who's made an effort toward looking the part. Robot Child have experience both as a band and as individual musicians and their music and presentation benefit from it. It's by-and-large the most lively set played and (savvy readers will have guessed by now) is my preferred group of the evening with only two points of concern; their Jazz piece, which comes early in the set, isn't bad in itself but, after close to an hour of rock, it throws the vibe of the night a bit skew-whiff. Also, for some reason, the singer was necking a bottle of Nutrient Water, about which I will say no more.
All in all an enjoyable evening from the Melting Pot crew, there's one every Thursday as well.
Darcy is currently a freelance copywriter and editor working in Melbourne. Last year he graduated from RMIT with a diploma of Professional Writing and Editing.


It's been a busy month for our dating agency office in Cork.
We have seen an increase in the number of guys signing up to become members. We're not sure what that's due to but we often find that we get an increase in enquiries just before Christmas and then again straight after Christmas as some people realise that Christmas can be more enjoyable when you have a partner.
At Christmas time, dating can be lots of fun. Okay, it's not quite the same as ice-skating at the Rockerfeller Centre in New York (where a season ticket will cost you US$450 including a locker for your skates) but there are lots of things to do in Cork over the festive season.
The Food and Crafts Market will include a number of festive food stalls, and a local crafts stall by Cork Craft & Design, with wood, jewellery, ceramic and print gifts. There will also be an outdoor seating area where you can take in the atmosphere.
Cork's famous food market, The English Market, is also just across the road and is the perfect spot to sip hot chocolate and pick up a range of gifts and Christmas nibbles, like Tom Durcan's famous spiced beef and Frank Hedermans's smoked salmon.
What better place to pop the big question than at the top of the Ferris Wheel that is on the Grand Parade. It's open until 9pm and only costs €3.50.
On Thursday 18th December, there will be Carols by Candlelight in St. Augustines Church on Washington Street at 7pm, in aid of the COPE Foundation and The Braveheart Choir (a choir for cancer patients and survivors). A number of choirs from Cork, including the Prison Officers Choir, Rainbow Lyrics Choir, BraveHeart Choir, Something to Sing About Choir (Clonmel), and The Glen Social Initiative Choir, will be accompanied by "The Dustbusters Orchestra". This event is open to members of the public, and entry is free, but a donation would be welcome. What a great way to spend a date!
Some other things to do around Cork at Christmas: click here.


Even though our raders are now conversing Alien: Covenant in the remarks area of our Alien: Covenant survey, this is where you can talk about spoilers and plot turns/uncovers without stressing over destroying executive Ridley Scott's Prometheus followup (or, on the off chance that you lean toward, Scott's most recent Alien prequel) for individuals who haven't seen it yet.
In case you're posting remarks here, expect that anybody in the discussion has seen Alien: Covenant as of now. In the event that you haven't seen the new Alien motion picture yet, then we would suggest that you don't read the remarks here until you have. Other than that, vibe allowed to examine Alien: Covenant and all its many amazement's (counting, its associations with Alien movies past).


text:
Q: Function prints value but returns "None" def findLineParam(sprotParam, pos):

    if line[:2] == sprotParam:
        start = pos
        while line[start] == " ":
            start += 1
        stop = start + 1
        while stop < len(line) and not line[stop] in (" ", ";"):
            stop += 1
        print(line[start:stop]) # prints the correct value!
        return line[start:stop] # returns None?

To briefly explain the function of the code is that it should take an input string (keyword), e.g. "ID" and find this on a line in a text file then it should find the first value after white space reading to next " " or ";" and return this. I can see that when I print the line, it returns exactly what I want but when I return it, it returns "None".
Whenever I change the "sprotParam" to an input list instead (*sprotParam) it does return the values but also an equal amount of "None" corresponding to the lines in the file, which I believe indicates, that it iterates and performs operations on all lines, which it shouldn't.
Code calling the function
try:
    file = input("Enter filename: ")
except IOError as e:
    print("That is not a recognised filename. Error given: " + str(e))
    sys.exit(1) # Close the program

with open(file, 'r') as infile:
    for line in infile:
        ident = findLineParam("ID", 2)

A: line isn't within the function's scope, so you need to pass it to the function as an argument:
def findLineParam(sprotParam, pos, line):
    if line[:2] == sprotParam:
        start = pos
        while line[start] == " ":
            start += 1
        stop = start + 1
        while stop < len(line) and not line[stop] in (" ", ";"):
            stop += 1
        print(line[start:stop]) # prints the correct value!
        return line[start:stop] # returns None?

with open(file, 'r') as infile:
    for line in infile:
        ident = findLineParam("ID", 2, line)

Update
Here is a simplified version of your code:
def findLineParam(sprotParam, file):
    for line in file.split(sprotParam):#split by parameter
        if line != '<':
            for item in line.split(): #split by whitespace
                if item != '=':
                    print(item)
                    return item

    raise Exception(f'No {sprotParam} parameters were found in the given file')

file = 'test.txt'
with open(file, 'r') as f:
    ident = findLineParam("ID", f.read())

Now, if you run this for test.txt:
<ID= 'foo'    >

asdfnewnaf

It will return 'foo'.

A: if your function must return something, you should return a default value (you only are returning on a if statement, so if you don't matche this if, you return None)
I know it's not solving you problem but it's better to get this ^^

A: As @NoxFly suggested all paths doesn't return.
def findLineParam(sprotParam, pos, line):
    ret = ''
    if line[:2] == sprotParam:
        start = pos
        while line[start] == " ":
            start += 1
        stop = start + 1
        while stop < len(line) and not line[stop] in (" ", ";"):
            stop += 1
        print(line[start:stop]) # prints the correct value!
        ret = line[start:stop] # returns None?
   return ret

with open(file, 'r') as infile:
    for line in infile:
        ident = findLineParam("ID", 2, line)

A much better approach will be to use regex instead of those while loops.
for example the regex will find the value.
r"ID:([^(\s|;)]*)"

redpajama_set_name: RedPajamaStackExchange


Discover the Composer in YOU!
Utilizing a unique and recently developed method, I aim to equip you with the necessary skills to dynamically generate music out of scratch, in your own style.
The contents of this course can be realised on any keyboard instrument.


text:
Bolton slams New Yorker sourcing in profile describing work with Trump
By John Bowden - 04/30/19 12:55 PM EDT
National security adviser John Bolton John BoltonDems plan marathon prep for Senate trial, wary of Trump trying to 'game' the process Republicans will pay on Election Day for politicizing Trump's impeachment The Hill's 12:30 Report: Trump beefs up impeachment defense with Dershowitz, Starr MORE blasted a story published in The New Yorker on Monday, which he claimed cited an "embittered" former aide who had accused Bolton of considering President Trump Donald John TrumpNational Archives says it altered Trump signs, other messages in Women's March photo Dems plan marathon prep for Senate trial, wary of Trump trying to 'game' the process Democratic lawmaker dismisses GOP lawsuit threat: 'Take your letter and shove it' MORE to be a "moron."
In a tweet Tuesday morning, Bolton accused the magazine of not seeking comment from him on the remarks from his former aide, Mark Groombridge, who told The New Yorker that Bolton was hoping to influence and "modify" Trump's foreign policy any way that he could.
"A recent article quoted an embittered former employee whom I haven't seen or spoken to in several years. He has no knowledge of my thinking," Bolton tweeted Tuesday.
"His remarks are contrary to my views, and completely off the mark. The reporter never asked for comment," he added.
A recent article quoted an embittered former employee whom I haven't seen or spoken to in several years. He has no knowledge of my thinking. His remarks are contrary to my views, and completely off the mark. The reporter never asked for comment.
— John Bolton (@AmbJohnBolton) April 30, 2019
Groombridge told The New Yorker in an interview that "deep in his heart" Bolton allegedly "believes the President is a moron."
"He's very brief, and the President appreciates that," Groombridge told the magazine. "John is thinking, To the extent I can modify or mollify the President's actions, I will. He is truly a patriot. But I wonder how he goes into work every day, because deep in his heart he believes the President is a moron."
Bolton was interviewed for the story and quotes from him appear throughout the piece, but there's no indication that Bolton was given a chance to respond to the comments from his former aide.
The national security adviser has battled the media in recent days over reports that the U.S. was issued a bill for the treatment and release of Otto Warmbier, a U.S. student who died shortly after his release from North Korean captivity. Bolton has acknowledged that a U.S. envoy signed an agreement for the bill, but denied that payment ever took place.
Tags Donald Trump John Bolton

redpajama_set_name: RedPajamaCommonCrawl


text:
Police: $2M in cocaine found at Roxborough murder scene; victim linked to drug 'kingpin'
by Chris Palmer, Updated: June 10, 2019
File photo of crime scene tape in Philadelphia
Chris Palmer / Staff
Police investigating the fatal shooting of a 46-year-old man inside his Roxborough apartment this weekend found nearly $2 million worth of cocaine left behind at the crime scene, and officials said Monday the killers likely stole "a substantial amount of narcotics" before fleeing.
Homicide Capt. Jason Smith on Monday also identified the victim as Eric Danyel Miller, who court records say was on federal probation after he pleaded guilty in 2009 to helping an alleged kingpin distribute more than 500 kilograms of cocaine in and around Chester and Philadelphia.
12 people shot, 2 killed during violent weekend in Philly
Last weekend was a violent one in the city. According to police, 12 people were shot and two were killed on Saturday and Sunday, including a double shooting in Mayfair and a triple shooting in West Philadelphia.
Miller was fatally shot Saturday night inside his apartment on the 7900 block of Henry Avenue, and was found with a gunshot wound to the chest about 7:45 p.m., according to police. Medics took him to Einstein Medical Center, where he was pronounced dead about 45 minutes later, police said.
Smith said Monday that police recovered 19 kilograms of cocaine from the apartment. Some was "bricked up" into packages and recovered outside the apartment, Smith said, and some was inside, along with a .40-caliber handgun and two machines used to form the drug into bricks.
Smith said investigators believe that two men were involved in the homicide, and that they left with an unknown quantity of drugs. He said police had recovered video of "what we believe to be a suspect's vehicle leaving" the building, but offered no identifying details about potential suspects.
"It looks like it was a straight-up robbery," Smith said.
In addition to the cocaine found at Miller's apartment, Smith said, police found about 72 grams of crack, 6.2 grams of heroin, and 1,240 grams of "an unknown white powder."
In 2008, federal prosecutors charged Miller with participating in a drug organization led by Alfonso Caldwell, whom federal authorities described as "a major local kingpin."
Miller pleaded guilty in 2009 and ultimately received a prison sentence of 122 months, according to court records. He was released in January 2017, but was on probation through at least 2021.
Before his federal indictment, Miller served time for several crimes. In 1991, court records show, he pleaded guilty to third-degree murder and was sentenced to eight to 16 years in prison. The details of that case were not immediately clear.
Posted: June 10, 2019 - 5:02 PM
Chris Palmer | @cs_palmer | cpalmer@inquirer.com


text:
Q: Toggle Custom Legend Google Map Javascript I am trying to toggle on/off a custom legend (#skybox2) but I am having trouble figuring out how to get started in doing this. I would like it to be on, then have the option to toggle it off as a button. Any help is greatly appreciated. I am attaching my full code. Thank you.

<title>Web Map of WVDRS Offices</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

West Virginia Division of Rehabilitation  Services

 Field Offices

Click a marker on the map for office information.

    WVDRS Home
    Text-Only
Click elsewhere on the map to get county and WVDRS District information.

DRS  office

District 1

District 2

District 3

District 4

District 5

District 6

A: Reference questions:

*

*toggle show/hide div with button?

*Place a button right aligned
Your original code in a fiddle
Add this function:
function toggle_visibility(id) {
    var e = document.getElementById(id);
    if (e.style.display == 'block') e.style.display = 'none';
    else e.style.display = 'block';
}

Call it when the button is clicked:
<button onclick="toggle_visibility('skybox2')" style="float: right;">toggle legend</button>

proof of concept fiddle


River access: yes. Tree cover: open. Impervious surface: all. Landscape design strategy: organized. Information about the Ohio River: little to none.
It's a boat launch. A wide boat launch, right next to the River Walk. Probably it's named after a man who used the boat launch a lot, former firefighter and police chief Harrold Fryman. It's new, it's nice — and, there was a local food truck nearby.


text:
Mazars launches Digital Skills Programme
Joe Pickard
Mazars has launched a digital upskilling programme designed to equip its staff with the knowledge and capabilities required to excel in a digital-led world.
The programme which was designed by BPP Education Group focuses on developing in-demand skills across data analytics, AI, cybersecurity and more.
It has a specific focus toward qualified accountants and aims to help professionals identify and understand key developments in technology that affect the accounting profession.
The course features eight taught sessions and will be delivered via BPP's Online Classroom Live.
Mazars' recently launched four-year strategy places committing to the future with purpose at the heart of the firm's ambitions. Through investing in skills which will carry its team throughout their careers, and focusing upon digital transformation across both the firm and its people, the programme aims to have a direct impact upon the quality of advice and service which Mazars' team can offer its clients.
Mazars COO and partner Toby Stanbrook said: "We are committed to investing in our people to ensure they have excellent levels of digital capability. Digital technology is transforming our world and this programme will help ensure that we are at the forefront of providing relevant advice and support to our clients."
BPP School of Technology Dean Paul Rowlett said: "We are delighted to be partnering with Mazars to launch this strategic initiative. BPP has decades of experience in providing training and education to the professional services sector, and already provide a wide range of training to Mazars. By combining this experience with the in-depth expertise of our School of Technology we will be able to support the crucial digital transformation agenda."
Joe is a senior reporter for The Accountant and International Accounting Bulletin. You can reach him at joe.pickard@verdict.co.uk


text:
The Board of Management is setting out this Enrolment Policy in accordance with the provisions of the Education Act 1998 and the Education Welfare Act 2000 and it trusts that, by doing so, parents will be assisted in relation to enrolment matters. The Principal, Mr. James Collins, will be happy to clarify any further matters arising from this policy.
Download Latest Policy
In-school Management


Your pleasant separate banquet hall Terrana, with its special ambiance and the two big window fronts, offers manifold possibilities. From a dinner in a small circle to a party room or simply an extraordinary meeting place.
Here you have the possibility to be completely by yourself in your own company, but yet still enjoy the many advantages of the hotel with all that entails.
6 round tables in the Terrana offer space for up to 48 persons.
Why celebrate a birthday in a restaurant, if you can have your own room?
Our event coordinators will assist you in every way.


Proudly serving: cincinnati, dayton, columbus, louisville, lexington, indianapolis, hamilton, florence, alexandria, beavercreek, springdale, west chester, monroe, fairfield, kenwood, newport and all of greater cincinnati ohio, indiana, and northern kentucky. Cincinnati local number (513) 924-4862.
Everyone claims to sell cars for less, we actually do.


India won the toss and opted to bat in the first Test against Australia at the Adelaide Oval here on Thursday.
Out of the final 12 picked on the eve of the game, Rohit Sharma made the cut in the Indian playing eleven ahead of Hanuma Vihari.
Opener Marcus Harris is the debutant for Australia.
Australia: Marcus Harris, Aaron Finch, Usman Khawaja, Shaun Marsh, Peter Handscomb, Travis Head, Tim Paine(captain), Pat Cummins, Mitchell Starc, Josh Hazlewood, Nathan Lyon.


text:
@implementation NSObject (Helper)

-(void)setValuesForKeysWithDictionarySafely:(NSDictionary *)keyedValues
{
    [keyedValues enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
    {
        @try
        {
            if(obj != [NSNull null])
            {
                [self setValue:obj forKey:key];
            }
        }
        @catch(NSException * e)
        {
            NSLog(@"Error tried to put: '%@' in a key that didn't exist:%@", obj, key);
        }
    }];
}

@end

redpajama_set_name: RedPajamaGithub


text:
Home...Development PlanningDevelopment ApplicationsTown-wide Development Applications
Parks and recreation study
The Town of Milton's Development Services department has initiated an Official Plan amendment to implement the Town's Recreation and Parks Strategy. The purpose of the amendment is to incorporate various updates to the Town of Milton's Official Plan to reflect the revised Park and Recreation Strategy and expand the use of the alternative park dedication rate for low-density development.
Draft amendment
The draft local official plan amendment is currently under technical review by staff and commenting agencies and has not been approved.
Official Plan Amendment By-law and Text
A statutory public meeting has been scheduled for Monday, April 12, 2021 at 7:00 pm where members of the public are invited to obtain information, make a verbal presentation presentation and/or written submission to identify issues or concerns and or express your views in support of, or in opposition of, these applications. A copy of the public meeting notice can be found on our development notices page.
Contact us if you have a comment on the official plan amendment. You can also receive updates directly to your inbox about updates to this proposed development and it's status, notice and upcoming public meetings. Subscribe to receive updates at development notices.
Cannabis production and processing
The Town of Milton's Development Services department has completed the Official Plan and Zoning By-law amendments to update planning policies and regulations with regard to the land-use implications of the legal production and processing of cannabis to ensure Milton's policy framework is responsive to the applicable federal legislative framework.
Background information and draft amendments
Cannabis Review - Background Review, Options Analysis and Recommendations
Draft Official Plan Amendment
Draft Zoning By-law Amendment (By-law 144-2003, as amended)
The above is currently under technical review by staff and commenting agencies and have not been approved.
The statutory public meeting was held on Monday, November 18, 2019. A copy of the staff report is available for review.
The recommendation report was presented to Council on June 22, 2020. A copy of the staff report and official plan amendment and zoning by-law amendments are available for review. A notice of passing was issued and is currently under the required appeal period.
Mature neighbourhood areas
The Town of Milton's Development Services department has initiated a Local Official Plan Amendment and Zoning By-law amendments proposing to implement recommendations to better manage change and development in the Town's mature neighbourhoods and character areas. A zoning by-law amendment proposes to amend the boundary of the Downtown Character Area and establish new regulations for new or replacement dwellings and additions to existing dwellings within the Character Area.
For detailed information on how we got here please view the Mature Neighbourhood Area Study page.
Proposed draft amendments
The proposed amendments are currently under technical review by staff and commenting agencies and have not been approved.
Draft Zoning By-law Amendment
Figure 1 Location Map of Mature Neighbourhood Areas
Figure 2 Location Map of Phase 1 Subject Lands
A statutory public meeting will be held on August 24, 2020 where members of the public are invited to obtain information, make a verbal presentation presentation and/or written submission to identify issues or concerns and or express your views in support of, or in opposition of, these applications.
Contact us if you have a comment on the development. You can also receive updates directly to your inbox about updates to this proposed development and it's status, notice and upcoming public meetings. Subscribe to receive updates at development notices


text:
Kit & Gear
The World's Best Places to Run, Swim & Cycle
Running, swimming and cycling - the bread and butter of our outdoor fitness regimes. Whether you're training for a triathlon and are scouting out beautiful locations to practise all three, or you simply want to grab your bike and head out on a gorgeous trail at home or on holiday - the great outdoors has plenty to offer across the globe.
No matter if you're on two feet, two wheels, or in the water - adding an assortment of stunning surroundings can really elevate your workout further, beyond the confines of a gym or your regular running route. We wanted to discover exactly which parts of the world are fierce favourites for each activity - and so we took to Tripadvisor to find out. We analysed over 100,000 mentions, across 10 different countries and have ranked them according to which spots have the most mentions for "running", "swimming" or "cycling" in their Tripadvisor reviews.
UK's Favourite Running Spots
UK's Favourite Swimming Spots
UK's Favourite Cycling Spots
Top 10 Countries for Running
Top 10 Countries for Swimming
Top 10 Countries for Cycling
1. UK's Favourite Running Spots
Hyde Park comes out on top in both the rankings for the UK's favourite place to run and to cycle, largely in part due to its flat surfaces (kind on the legs, according to many of its reviewers) and long promenades that span the park's stunning greenery and lakes. Hyde Park is followed by Arthur's Seat, a hillier run than the former, but providing one of Edinburgh's most famous viewpoints - while the top three is completed by Bute Park in Cardiff, the city's "green heart" and a common spot for locals to head for their morning run.
Pictured: Hyde Park, London, England
The rest of the top 10 consists of more picturesque parks scattered around the UK, from Manchester's iconic Heaton Park which plays host to a weekly parkrun and numerous charity running events throughout the year, to Cassiobury Park in Hertfordshire - referred to as "runner heaven" by one Tripadvisor reviewer, offering a diverse landscape full of wooded areas, rolling hills and wetlands.
RANK LOCATION REGION COUNTRY
1 Hyde Park London England
2 Arthur's Seat Edinburgh Scotland
3 Bute Park Cardiff Wales
4 Heaton Park Manchester England
5 Cassiobury Park Hertfordshire England
6 Cardiff Bay Cardiff Wales
7 Holyrood Park Edinburgh Scotland
8 Windsor Great Park Berkshire England
9 Clifton Suspension Bridge Bristol England
10 Cannock Chase Staffordshire England
2. UK's Favourite Swimming Spots
When it comes to having a splash around the UK's sandy shores, Dorset and Cornwall pull rank with the most picturesque beaches according to Tripadvisor reviews, with three swimming spots each featuring in the top ten. The top spot goes to Bude Sea Pool, a part-natural, part man-made tidal swimming pool located in Cornwall, perfect for kids and free to enter. Coming in second is Weymouth Beach, a scenic sandy beach popular for its water sports (and its fish and chips), while third place is stolen by the charming Fairy Pools in Scotland's Isle of Skye - a wild swimming spot with emerald green pools offering a refreshing dip for locals and tourists alike.
Pictured: Bude Sea Pool, Cornwall, England
Other locations completing the top 10 consist of Hampstead Heath, the London park which plays host to three ponds (women's, men's and mixed) for brave swimmers to take a plunge, Lulworth Cove and Durdle Door, Dorset's iconic beach which attracts visitors from all over the world, and Perranporth Beach, a romantic stretch of coastline offering rock pools, caves and a swimming pool for those not brave enough to tackle the ocean.
1 Bude Sea Pool Cornwall England
2 Weymouth Beach Dorset England
3 Fairy Pools Isle of Skye Scotland
4 Bournemouth Beach Dorset England
5 Hampstead Heath London England
6 Tunnels Beaches Devon England
7 Lulworth Cove and Durdle Door Dorset England
8 Perranporth Beach Cornwall England
9 Horsey Beach Norfolk England
10 Fistral Beach Cornwall England
3. UK's Favourite Cycling Spots
For adventures on two wheels, Hyde Park features again - the London park taking the top spot as UK cyclists' favourite location for a spin. Following behind is the Peak District's Monsal Trail, a traffic free route via an old railway track that's nestled in the limestone dales, and which spoils its cyclists with breath-taking views. Completing the top three is Cornwall's Camel Trail, another track that follows a disused railway line, taking cyclists through panoramic landscapes where they can hop off and explore the stunning Cornish coastline or quaint villages.
Pictured: Monsal Trail, Peak District, England
The rest of the top 10 includes spectacular routes across the UK's lush forests, from the Sherwood Pines in Nottingham to Yorkshire's Dalby Forest, and to aesthetic reservoirs like Rutland and Carsington Water.
2 Monsal Trail Peak District England
3 The Camel Trail Cornwall England
4 Rutland Water Rutland England
5 Sherwood Pines Nottingham England
6 Cannock Chase Staffordshire England
7 Moors Valley Country Park and Forest Dorset England
8 Dalby Forest Yorkshire England
9 Carsington Water Derbyshire England
10 Bedgebury National Pinetum and Forest Kent England
4. Top 10 Countries for Running
The United States ranks as the hottest spot globally to run, swim and cycle; the nation beating out all other countries in all three leader boards, according to Tripadvisor's many reviewers. And with locations like New York City's Central Park (in first place for the US) and California's iconic Venice Beach (in seventh) - it's not all too surprising that America is scoring so high when it comes to where people love to run the most.
Pictured: Vancouver Seawall, Vancouver - Canada
Other countries that earn their stripes as a haven for runners include Spain - which completes the top three after the UK - as well as Canada and France, which place fourth and fifth, respectively. Spain boasts stunning Mediterranean park running routes all over, from Madrid to Gran Canaria, Canadian citizens love to run in many of Vancouver's parks and French jogging enthusiasts head to Paris' Jardin du Luxembourg or Nice's Promenade de Anglais.
RANK COUNTRY
1 United States
2 United Kingdom
4 Canada
7 Italy
5. Top 10 Countries for Swimming
The US held tight in first place for the best swimming holes but was closely followed in the rankings by Australia and Spain with the many stunning beaches they both have to offer. In Australia, the Whale sharks of Hervey Bay offer up the country's main swimming attraction, with other crystal-clear waters in places like Exmouth and Airlie Beach also pulling in several thousands of visitors too. While the Spanish swimming spots consist of the mesmerising Mediterranean coastline, which offers many a spot for Spanish locals and tourists to head out for a dip, from the golden coast of Tenerife to Barcelona and the Canary Islands.
Pictured: Airlie Beach, Whitsundays - Australia
In fourth position is the United Kingdom, and the top five is completed by France - the European country's southern coastline - specifically that of Gard and the Cote d'Azur - providing the reviewers of Tripadvisor with their most well-loved locations to swim.
9 South Africa
6. Top 10 Countries for Cycling
Taking the bike by the wheels is once again the US, routes through New York's Central Park and Alaska's Tony Knowles Coastal Trail proving to be firm favourites for US citizens to take their wheels out for a spin. Canada followed behind in second place - Vancouver's Seawall route featuring for a second time in our rankings - and Italy completed the top three, Le Mura di Lucca (otherwise known as the walls surrounding the ancient city of Lucca in Tuscany) famous for tourists who want to rent a bike to cycle on top of the walls and see the sights.
Pictured: Central Park, New York City - United States of America
The top five most frequently reviewed cycling locations globally is rounded out by the United Kingdom and Germany, the latter offering up pristine cycling routes through places like the Englischer Garten in Munich and Tiergarten in Berlin for avid bikers to get their workouts in.
10 Soutrh Africa
SportsShoes analysed Tripadvisor data from countries around the world. Using the 'Things to Do' section of the Tripadvisor website, the attractions in each location that had the highest number of mentions of 'run/running', 'swim/swimming' and 'cycle/cycling/bike' (in French and English language) in their reviews were ranked as being the best spot or each activity in that country.
The number of mentions were then totalled to provide a country-level ranking for each activity.
Results where the terms were used negatively or for another context ("this area was run-down"), or if the location was not an area of beauty (i.e., a swimming pool) were omitted from the final results.
While we hope this has provided you with any inspiration you might need for your next adventure - at home or abroad - it's important to make sure you're kitted out with all the gear to keep you comfy during your workouts, whether you're running, swimming or cycling!
Related post: Who Run the World? The World's Most Picturesque Running Cities | The Running Hub | SportsShoes.com
← Running the Pisa Half-Marathon with Emanuele Zoppi
The Road to London Marathon 2022 with Chloe Guest→
5 ways to stay motivated through January and beyond
adidas SUPER CHARGE 30k Strava Challenge
7 New Year's Resolutions for every runner
Welcome to the SportsShoes Running Hub! We've teamed up with the experts to bring you the very best advice in all things running - from training, to nutrition and even motivation.
Alongside tips from you, our running community, and the latest news and releases, we hope we'll inspire you to run stronger, better and happier – because as we know, it's no fun standing still.
#NOFUNSTANDINGSTILL


text:
Fenway Park Trespasser Disrupts Red Sox-Yankees Game
The fan gained access to the ballpark by scaling the back of the Green Monster wall, the Red Sox said.
By Kaitlin McKinley Becker • Published September 20, 2020 • Updated on September 20, 2020 at 10:28 pm
For the first time this year, the Boston Red Sox finally beat the New York Yankees, but the headline after Sunday's game wasn't about the Sox halting two long streaks.
Boston's victory -- which prevented their longtime rivals from enjoying clinching a playoff berth at Fenway Park -- was overshadowed by a trespasser who disrupted the game in the eighth inning.
New York was at bat when someone started screaming from a camera stand above the center-field bleachers and throwing things onto the field.
The fan gained access to the ballpark -- which has been without fans all season due to the ongoing coronavirus pandemic -- by scaling the back of the Green Monster wall, the Red Sox said.
Red Sox said team security and Boston police quickly apprehended the person before they were taken into custody.
The person is not under arrest, according to Boston police, but was taken from the scene by EMS for a psychiatric evaluation.
The interruption resulted in a 10-minute delay in the game, during which time the umpires gathered at home plate until the trespasser was removed.
World News 3 hours ago
entertainment 5 hours ago
Paris Hilton and More Stars Who Welcomed Babies Via Surrogate
One inning after the bizarre incident, Boston sealed a 10-2 victory, ending New York's 10-game winning streak and snapping a 12-game skid against the Yankees. Tanner Houck took a no-hitter into the sixth inning of his second major league start and Michael Chavis had a huge day at the plate.
BostonBoston Red SoxFenway Park


Love to handsnipe? Go get yourself a Handhunter trophy.
Some people act like hand sniping is some crappy, fake, or sporty swordsmanship approach. No, you cannot just cut the hand from the safest distance possible! After all, damaging your opponent while keeping yourself safe is not what fencing is … Continue reading Love to handsnipe? Go get yourself a Handhunter trophy.


text:
Q: ffmpeg - silencing a section of video with multiple audio streams I have been trying to silence a section of a video with multiple audio streams. I'm not getting it to work correctly.
Trying with afade option gives me a silent video. Test video just has one audio stream to test.
ffmpeg -i input.asf -c:v copy -af "afade=t=out:st=10,afade=t=in:st=30" output.asf
Do I need to specify all the audio streams as well? Is there a better way to insert silence with a given time and duration?
FFMPEG OUTPUT
C:\dump\videoconvert>ffmpeg -i black.asf -c:v copy -af "afade=t=out:st=10,afade=t=in:st=30" out.asf
ffmpeg version N-66438-g4f4f08e Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 24 2014 22:26:49 with gcc 4.9.1 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-font
config --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-
libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3la
me --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --e
nable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab
 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libw
ebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      54.  7.101 / 54.  7.101
  libavcodec     56.  1.101 / 56.  1.101
  libavformat    56.  5.100 / 56.  5.100
  libavdevice    56.  1.100 / 56.  1.100
  libavfilter     5.  1.102 /  5.  1.102
  libswscale      3.  1.100 /  3.  1.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  1.100 / 53.  1.100
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, asf, from 'black.asf':
  Metadata:
    encoder         : Lavf56.5.100
  Duration: 00:05:49.44, start: 0.000000, bitrate: 352 kb/s
    Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 1024x768, 15 fps, 15 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
File 'out.asf' already exists. Overwrite ? [y/N] y
Output #0, asf, to 'out.asf':
  Metadata:
    WM/EncodingSettings: Lavf56.5.100
    Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 1024x768, q=2-31, 15 fps, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc56.1.101 wmav2
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (wmav2 (native) -> wmav2 (native))
Press [q] to stop, [?] for help
frame= 5240 fps=1172 q=-1.0 Lsize=   15056kB time=00:05:49.36 bitrate= 353.0kbits/s
video:8911kB audio:5459kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.767603%

A: The problem
Your output is silent because your fade out makes everything silent after fading out, so there is nothing for the fade in to work with. Then the fade in makes everything silent until the fade in occurs, and therefore "wiping out" your first afade, resulting in a silent output.
The solution
You can use timeline editing to enable filters at specific times.
Example command
ffmpeg -i input.asf -af "afade=enable='between(t,10,30)':t=out:st=10,afade=enable='gte(t,30)':t=in:st=30" -c:v copy output.asf

Notes

*

*'between(t,10,30)' will make the fade out active between 10-30 seconds.

*'gte(t,30)' will enable the fade in filter at 30 seconds.

*-c:v copy will stream copy (re-mux) the video since you may not need to filter and re-encode it.

Inputs with multiple audio streams
Your input may contain multiple audio streams. In the example ffmpeg console output below [0:0] is the video, [0:1] is the first audio stream, and [0:2] is the second audio stream:
Input #0, matroska,webm, from 'input.mkv':
  Metadata:
    ENCODER         : Lavf56.4.101
  Duration: 00:00:30.28, start: 0.068000, bitrate: 265 kb/s
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p, 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16p, 112 kb/s
    Stream #0:2: Audio: mp3, 44100 Hz, stereo, s16p, 112 kb/s

Example command
You will have to make a fade out/in for each stream:
ffmpeg -i input.asf -filter_complex \
"[0:a:0]afade=enable='between(t,10,30)':t=out:st=10,afade=enable='gte(t,30)':t=in:st=30[a0] \
 [0:a:1]afade=enable='between(t,10,30)':t=out:st=10,afade=enable='gte(t,30)':t=in:st=30[a1]" \
-map 0:v -map "[a0]" -map "[a1]" -c:v copy output.asf

Notes

*

*Use -filter_complex instead of -af for complex filtergraphs. Complex filtergraphs involve one or more inputs and one or more outputs.

*[0:a:0] refers to the first audio stream of the first input; alternatively you could use [0:1] as shown in the ffmpeg console output above, but I find that syntax to be less flexible because for other inputs [0:1] could possibly refer to a video stream. [0:a:1] refers to the second audio stream of the first input; alternatively you could use [0:2] as shown in the ffmpeg console output above.