View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0014541 | ParaView | (No Category) | public | 2014-01-25 14:32 | 2016-08-12 09:59 | ||||
Reporter | j | ||||||||
Assigned To | Kitware Robot | ||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||
Status | closed | Resolution | moved | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0014541: Possibly faullty data offset counting for Base64 encoded data in AppendData-section | ||||||||
Description | Dear All, Paraview 13.12.0 (32bit) seems to read VTK AppendedData in a peculiar and possibly faulty way. According to the documentation of VTK XML format, the data (later the raw data) of each <DataArray .... format="appended" offset="N"/> <DataArray .... format="appended" offset="N2"/> <DataArray .... format="appended" offset="N3"/> section is stored in <AppendedData> section as follows: It starts with the total length of the data expressed as int32 (MMMM). It is followed by the data from each of the DataArray sections in a continuous manner (AAAA,BBBB,CCCCC..): <AppendedData encoding="raw"> _MMMMAAAAAAAAAAAAAAAABBBBCCCCCCCCCCCCCCCCCCCC </DataArray> The offset expresses the location of each section; N bytes offset from the beginning of the first data section (N=0 ~ 33th bit). Here N_A=0,N_B=16,N_C=20, M=40. However, if the data is base64 encoded, <AppendedData encoding="Base64"> _Base64[MMMMAAAAAAAAAAAAAAAABBBBCCCCCCCCCCCCCCCCCCCC] </DataArray> every byte (8bits) in the encoded string correspond to six bytes of the raw data. Again the offset is based again at the start of the actual data (N=0 is now the 45th bit). However, the offset N correspond to N chars of encoded array, that is 6N bit or 3N/4 bytes of raw data. As a result the offset does not in general correspond to any byte-boundary of the raw data and never corresponds to a char-boundary of the encoded data. In addition, to allow reference to the start of a data section, previous data has to be padded to a multiple of 3 bytes; or as float32 corresponds to 4 bytes, the data has to padded to a multiple of 12 bytes (3xfloats32). Questions: 1) Is this true for VTK+base64 at large or only paraview 2) If not for which versions of VTK / paraview 3) Is this a stable arrangement - should I write my code to adhere? I attach an example of the bit alignment and a vts-file for testing (without debugger, change the alignment of rho-data and save-data in csv). This is data is for debugging reasons stored as UInt8, but the phenomenon is independent of the data type. Paraview 13.12.0 (32bit) Linux 3.2.0-58-generic-pae #88-Ubuntu SMP 2013 i686 i686 i386 GNU/Linux With preciation for any comments. J. EXAMPLE OF THE ALIGNMENT ======================================== |running bit |C = byte.bit encoded data |D = byte.bit orginal data |comment ======================================== ---- byte 0 in base64 code ------- 0 0.8 1 0.7 2 0.6 0.8 data length, byte 0 3 0.5 0.7 4 0.4 0.6 5 0.3 0.5 6 0.2 0.4 7 0.1 0.3 ---- byte 1 in base64 code ------- 8 1.8 9 1.7 10 1.6 0.2 11 1.5 0.1 12 1.4 1.8 data length, byte 1 13 1.3 1.7 14 1.2 1.6 15 1.1 1.5 ---- byte 2 in base64 code ------- 16 2.8 17 2.7 18 2.6 1.4 19 2.5 1.3 20 2.4 1.2 21 2.3 1.1 22 2.2 2.8 data length, byte 2 23 2.1 2.7 ---- byte 3 in base64 code ------- 24 3.8 25 3.7 26 3.6 2.6 27 3.5 2.5 28 3.4 2.4 29 3.3 2.3 30 3.2 2.2 31 3.1 2.1 ---- byte 4 in base64 code ------- 32 4.8 33 4.7 34 4.6 3.8 data length, byte 3 35 4.5 3.7 36 4.4 3.6 37 4.3 3.5 38 4.2 3.4 39 4.1 3.3 ---- byte 5 in base64 code ------- 40 5.8 41 5.7 42 5.6 3.2 43 5.5 3.1 44 5.4 4.8 offset=0; data byte 0; 45 5.3 4.7 46 5.2 4.6 47 5.1 4.5 ---- byte 6 in base64 code ------- 48 6.8 49 6.7 50 6.6 4.4 51 6.5 4.3 52 6.4 4.2 offset=1; 53 6.3 4.1 54 6.2 5.8 data byte 1; 55 6.1 5.7 ---- byte 7 in base64 code ------- 56 7.8 57 7.7 58 7.6 5.6 59 7.5 5.5 60 7.4 5.4 offset=2; 61 7.3 5.3 62 7.2 5.2 63 7.1 5.1 ---- byte 8 in base64 code ------- 64 8.8 65 8.7 66 8.6 6.8 data byte 2; 67 8.5 6.7 68 8.4 6.6 offset=3; 69 8.3 6.5 70 8.2 6.4 71 8.1 6.3 ---- byte 9 in base64 code ------- 72 9.8 73 9.7 74 9.6 6.2 75 9.5 6.1 76 9.4 7.8 offset=4; data byte 3; 77 9.3 7.7 78 9.2 7.6 79 9.1 7.5 ---- byte 10 in base64 code ------- 80 10.8 81 10.7 82 10.6 7.4 83 10.5 7.3 84 10.4 7.2 offset=5; 85 10.3 7.1 86 10.2 8.8 data byte 4; 87 10.1 8.7 ---- byte 11 in base64 code ------- 88 11.8 89 11.7 90 11.6 8.6 91 11.5 8.5 92 11.4 8.4 offset=6; 93 11.3 8.3 94 11.2 8.2 95 11.1 8.1 ---- byte 12 in base64 code ------- 96 12.8 97 12.7 98 12.6 9.8 data byte 5; 99 12.5 9.7 100 12.4 9.6 offset=7; 101 12.3 9.5 102 12.2 9.4 103 12.1 9.3 ---- byte 13 in base64 code ------- 104 13.8 105 13.7 106 13.6 9.2 107 13.5 9.1 108 13.4 10.8 offset=8; data byte 6; 109 13.3 10.7 110 13.2 10.6 111 13.1 10.5 112 13.0 10.4 | ||||||||
Tags | Base64, VTK, XML | ||||||||
Project | TBD | ||||||||
Topic Name | |||||||||
Type | incorrect functionality | ||||||||
Attached Files | test1.vts [^] (581 bytes) 2014-01-25 14:32 test.vts [^] (2,225 bytes) 2014-01-25 21:17 | ||||||||
Relationships | |
Relationships |
Notes | |
(0032217) j (reporter) 2014-01-25 15:18 edited on: 2014-01-25 21:16 |
Correction The attached correct testfile test.vts, the data section contains numbers 1 to 1250 modulo 87. The offset=11 gives the coordinates thecorrect values and the "rho" variable obtains the following values from the original data array: |00100100|00101000|00101100|00110000|00110100 = bits |36______|40______|44______|48______|52______ = rho _______|10______|11______|12______|13______|_ = original data |
(0038502) Kitware Robot (administrator) 2016-08-12 09:59 |
Resolving issue as `moved`. This issue tracker is no longer used. Further discussion of this issue may take place in the current ParaView Issues page linked in the banner at the top of this page. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2014-01-25 14:32 | j | New Issue | |
2014-01-25 14:32 | j | File Added: test1.vts | |
2014-01-25 14:38 | j | Tag Attached: Base64 | |
2014-01-25 14:38 | j | Tag Attached: VTK | |
2014-01-25 14:38 | j | Tag Attached: XML | |
2014-01-25 15:18 | j | Note Added: 0032217 | |
2014-01-25 15:21 | j | Note Added: 0032218 | |
2014-01-25 21:16 | j | Note Edited: 0032217 | |
2014-01-25 21:16 | j | Note Deleted: 0032218 | |
2014-01-25 21:17 | j | File Added: test.vts | |
2016-08-12 09:59 | Kitware Robot | Note Added: 0038502 | |
2016-08-12 09:59 | Kitware Robot | Status | backlog => closed |
2016-08-12 09:59 | Kitware Robot | Resolution | open => moved |
2016-08-12 09:59 | Kitware Robot | Assigned To | => Kitware Robot |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |