Rev 1681 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1681 | Rev 1713 | ||
---|---|---|---|
Line 179... | Line 179... | ||
179 | ;* Call: *************************************************************** |
179 | ;* Call: *************************************************************** |
180 | CEncoder_Init: |
180 | CEncoder_Init: |
181 | ;RangeEncoder_Init |
181 | ;RangeEncoder_Init |
182 | and dword [low],0 |
182 | and dword [low],0 |
183 | and dword [low+4],0 |
183 | and dword [low+4],0 |
184 | or dword [range],0xFFFFFFFF |
184 | or dword [_range],0xFFFFFFFF |
185 | push ebx |
185 | push ebx |
186 | push esi |
186 | push esi |
187 | push edi |
187 | push edi |
188 | xor eax,eax |
188 | xor eax,eax |
189 | mov edi,_repDistances |
189 | mov edi,_repDistances |
Line 1882... | Line 1882... | ||
1882 | mov esi,eax |
1882 | mov esi,eax |
1883 | jmp .labl_02 |
1883 | jmp .labl_02 |
1884 | ;---------------------------------------------------------- |
1884 | ;---------------------------------------------------------- |
1885 | .labl_00: |
1885 | .labl_00: |
1886 | mov eax,[esp+8] |
1886 | mov eax,[esp+8] |
1887 | shr dword [range],1 |
1887 | shr dword [_range],1 |
1888 | dec esi |
1888 | dec esi |
1889 | mov ecx,esi |
1889 | mov ecx,esi |
1890 | shr eax,cl |
1890 | shr eax,cl |
1891 | test al,1 |
1891 | test al,1 |
1892 | je .labl_01 |
1892 | je .labl_01 |
Line 1893... | Line 1893... | ||
1893 | 1893 | ||
1894 | mov eax,[range] |
1894 | mov eax,[_range] |
1895 | add [low],eax |
1895 | add [low],eax |
1896 | adc dword [low+4],0 |
1896 | adc dword [low+4],0 |
1897 | ;---------------------------------------------------------- |
1897 | ;---------------------------------------------------------- |
1898 | .labl_01: |
1898 | .labl_01: |
1899 | cmp dword [range],0x1000000 |
1899 | cmp dword [_range],0x1000000 |
Line 1900... | Line 1900... | ||
1900 | jnb .labl_02 |
1900 | jnb .labl_02 |
1901 | 1901 | ||
1902 | shl dword [range],8 |
1902 | shl dword [_range],8 |
1903 | call RangeEncoder_ShiftLow |
1903 | call RangeEncoder_ShiftLow |
1904 | ;---------------------------------------------------------- |
1904 | ;---------------------------------------------------------- |
1905 | .labl_02: |
1905 | .labl_02: |
Line 3177... | Line 3177... | ||
3177 | ret |
3177 | ret |
3178 | ;*********************************************************************** |
3178 | ;*********************************************************************** |
Line 3179... | Line 3179... | ||
3179 | 3179 | ||
3180 | ;* Call: *************************************************************** |
3180 | ;* Call: *************************************************************** |
3181 | CMyBitEncoder_Encode: |
3181 | CMyBitEncoder_Encode: |
3182 | mov ecx,[range] |
3182 | mov ecx,[_range] |
3183 | mov eax,[edx] |
3183 | mov eax,[edx] |
3184 | shr ecx,0xB |
3184 | shr ecx,0xB |
3185 | imul ecx,eax |
3185 | imul ecx,eax |
3186 | cmp dword [esp+4],0 |
3186 | cmp dword [esp+4],0 |
Line 3187... | Line 3187... | ||
3187 | jne .labl_00 |
3187 | jne .labl_00 |
3188 | 3188 | ||
3189 | mov [range],ecx |
3189 | mov [_range],ecx |
3190 | mov ecx,2048 |
3190 | mov ecx,2048 |
3191 | sub ecx,eax |
3191 | sub ecx,eax |
3192 | shr ecx,5 |
3192 | shr ecx,5 |
3193 | add ecx,eax |
3193 | add ecx,eax |
3194 | mov [edx],ecx |
3194 | mov [edx],ecx |
3195 | jmp .labl_01 |
3195 | jmp .labl_01 |
3196 | ;---------------------------------------------------------- |
3196 | ;---------------------------------------------------------- |
3197 | .labl_00: |
3197 | .labl_00: |
3198 | add [low],ecx |
3198 | add [low],ecx |
3199 | adc dword [low+4],0 |
3199 | adc dword [low+4],0 |
3200 | sub [range],ecx |
3200 | sub [_range],ecx |
3201 | mov ecx,eax |
3201 | mov ecx,eax |
3202 | shr ecx,5 |
3202 | shr ecx,5 |
3203 | sub eax,ecx |
3203 | sub eax,ecx |
3204 | mov [edx],eax |
3204 | mov [edx],eax |
3205 | ;---------------------------------------------------------- |
3205 | ;---------------------------------------------------------- |
3206 | .labl_01: |
3206 | .labl_01: |
Line 3207... | Line 3207... | ||
3207 | cmp dword [range],0x1000000 |
3207 | cmp dword [_range],0x1000000 |
3208 | jnb .labl_02 |
3208 | jnb .labl_02 |
3209 | 3209 | ||
3210 | shl dword [range],8 |
3210 | shl dword [_range],8 |
3211 | call RangeEncoder_ShiftLow |
3211 | call RangeEncoder_ShiftLow |
3212 | ;---------------------------------------------------------- |
3212 | ;---------------------------------------------------------- |