;****************************************************************************** ;* x86-SIMD-optimized IDCT for prores ;* this is identical to "simple" IDCT written by Michael Niedermayer ;* except for the clip range ;* ;* Copyright (c) 2011 Ronald S. Bultje <rsbultje@gmail.com> ;* Copyright (c) 2015 Christophe Gisquet ;* ;* This file is part of FFmpeg. ;* ;* FFmpeg is free software; you can redistribute it and/or ;* modify it under the terms of the GNU Lesser General Public ;* License as published by the Free Software Foundation; either ;* version 2.1 of the License, or (at your option) any later version. ;* ;* FFmpeg is distributed in the hope that it will be useful, ;* but WITHOUT ANY WARRANTY; without even the implied warranty of ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;* Lesser General Public License for more details. ;* ;* You should have received a copy of the GNU Lesser General Public ;* License along with FFmpeg; if not, write to the Free Software ;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;******************************************************************************
pw_2
%if ARCH_X86_64
SECTION_RODATA
cextern pw_2
cextern pw_16
cextern pw_32
cextern pw_1023
cextern pw_4095
pd_round_11: times 4 dd 1<<(11-1)
pd_round_12: times 4 dd 1<<(12-1)
pd_round_15: times 4 dd 1<<(15-1)
pd_round_19: times 4 dd 1<<(19-1)
:times 41<<111java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
%macro java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 33
const %1
times423
e
; W1 = 90901 = 22725<<2 + 1
defineW2sh2
%define W3sh2
%define W4sh2 16384 % 19265 W3 = 77062 = 19265<<2 + 2
%define16384; W4 = 65535 = 16384<<2 - 1
%java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 22
%define W5sh2 12873defineW6sh28867
%efine 45204520< +java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
; W7==4520<<+1
CONST_DEC w4_plus_w2_hi
,-
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [11, 9) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
CONST_DEC java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 17
CONST_DEC w4_plus_w6_lojava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 18
java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 17
w1_plus_w3_lo
CONST_DEC w3_min_w1_lo, java.lang.StringIndexOutOfBoundsException: Range [12, 10) out of bounds for length 18
pmovzxbw1,java.lang.StringIndexOutOfBoundsException: Range [19, 20) out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 20
%include614
SECTION .text
%macro STORE_HI_LOjava.lang.StringIndexOutOfBoundsException: Range [14, 12) out of bounds for length 20
movq %java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [11, 8) out of bounds for length 18
5 11
movq %7, %12
movhps %2, %9
movhps %p39
movhps %6, %11
% 12
e
m java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
%,9
pmovzxbw %2, %10
pmovzxbw %3, " java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 41
pmovzxbw %,%java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
% 13
pmovzxbw %6, %14
pmovzxbw %7, %15
pmovzxbw %l ,[*]
%endmacro
%macro LOAD_ZXBW_4 9 15
% 6
movh %3, %7 48
punpcklbw java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 20
punpcklbw %3, %9
% 9
%endmacro
%define PASS4ROWS 3*java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
[base], [base + LOAD_ZXBW_8 m3 , , ,p , )
%macro paddsw,
_java.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 23
IDCT_FN ,java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
cglobal java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 " , java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32 3*java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 lea m3 , , PASS4ROWS ,
,
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
packuswb m4, m11
packuswb m8, m0
STORE_HI_LO PASS8ROWS(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 20 RET
cglobal java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 3
IDCT_FN
java.lang.StringIndexOutOfBoundsException: Range [7, 4) out of bounds for length 22
%if cpuflag(sse4) lea r3, [pixelsq + r2]
LOAD_ZXBW_8
java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
paddsw m0, m5
paddsw m1, m6
paddsw m2, m7
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 7
paddsw m11, m13
paddsw m10, m15
%else
IDCT_FN " , ,"
java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
paddsw m8, m3
paddsw m0, m5
paddsw
;java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 lea r3, [pixelsq + 4* IDCT_FN "", 15, pw_2, 16, pw_2 ,p"
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 7
paddsw m4i
m11
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
paddsw m10, m7 lea r3, [pixelsq + r2]
%endif
packuswb m8, m0
packuswb m1, m2
packuswb m4, m11
packuswb m9, m10
STORE_HI_LO PASS8ROWS(pixelsq, r3, lsizeq, r2), m8, m1, m4, m9 RET
cglobal simple_idct12, 1, 1, 16, block ; coeffs are already 15bits, adding the offset would cause ; overflow in the input
IDCT_FN "", 15, pw_2, 16, "store" RET
cglobal simple_idct12_put, 3, 3, 16, pixels, lsize, block ; range isn't known, so the C simple_idct range is used ; Also, using a bias on input overflows, so use the bias ; on output of the first butterfly instead
IDCT_FN "", 15, pw_2, 16, "put", 0, pw_4095 RET
%endmacro
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.