Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64809a9024 |
2 changed files with 72 additions and 286 deletions
|
|
@ -642,7 +642,7 @@ class Codestream(object):
|
|||
srgn = data[1]
|
||||
sprgn = data[2]
|
||||
|
||||
return RGNsegment(length, offset, crgn, srgn, sprgn)
|
||||
return RGNsegment(crgn, srgn, sprgn, length, offset)
|
||||
|
||||
def _parse_siz_segment(self, fptr):
|
||||
"""Parse the SIZ segment.
|
||||
|
|
@ -1463,7 +1463,7 @@ class RGNsegment(Segment):
|
|||
15444-1:2004 - Information technology -- JPEG 2000 image coding system:
|
||||
Core coding system
|
||||
"""
|
||||
def __init__(self, length, offset, crgn, srgn, sprgn):
|
||||
def __init__(self, crgn, srgn, sprgn, length=-1, offset=-1):
|
||||
Segment.__init__(self, marker_id='RGN')
|
||||
self.length = length
|
||||
self.offset = offset
|
||||
|
|
@ -1726,7 +1726,7 @@ class SOTsegment(Segment):
|
|||
15444-1:2004 - Information technology -- JPEG 2000 image coding system:
|
||||
Core coding system
|
||||
"""
|
||||
def __init__(self, isot, psot, tpsot, tnsot, length, offset):
|
||||
def __init__(self, isot, psot, tpsot, tnsot, length=-1, offset=-1):
|
||||
Segment.__init__(self, marker_id='SOT')
|
||||
self.isot = isot
|
||||
self.psot = psot
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ import numpy as np
|
|||
|
||||
import glymur
|
||||
from glymur import Jp2k
|
||||
from glymur.codestream import CMEsegment
|
||||
from glymur.codestream import CMEsegment, SOTsegment, RGNsegment
|
||||
from glymur.core import RCME_ISO_8859_1, RCME_BINARY
|
||||
|
||||
from .fixtures import OPJ_DATA_ROOT
|
||||
|
|
@ -68,6 +68,23 @@ class TestSuiteBase(unittest.TestCase):
|
|||
for cl in clist:
|
||||
self.assertIn(cl, box.compatibility_list)
|
||||
|
||||
def verifyRGNsegment(self, actual, expected):
|
||||
"""
|
||||
verify the fields of a RGN segment
|
||||
"""
|
||||
self.assertEqual(actual.crgn, expected.crgn) # 0 = component
|
||||
self.assertEqual(actual.srgn, expected.srgn) # 0 = implicit
|
||||
self.assertEqual(actual.sprgn, expected.sprgn)
|
||||
|
||||
def verifySOTsegment(self, actual, expected):
|
||||
"""
|
||||
verify the fields of a SOT (start of tile) segment
|
||||
"""
|
||||
self.assertEqual(actual.isot, expected.isot)
|
||||
self.assertEqual(actual.psot, expected.psot)
|
||||
self.assertEqual(actual.tpsot, expected.tpsot)
|
||||
self.assertEqual(actual.tnsot, expected.tnsot)
|
||||
|
||||
def verifyCMEsegment(self, actual, expected):
|
||||
"""
|
||||
verify the fields of a CME (comment) segment
|
||||
|
|
@ -230,11 +247,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[3].spcod[8],
|
||||
glymur.core.WAVELET_XFORM_5X3_REVERSIBLE)
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[4].isot, 0)
|
||||
self.assertEqual(c.segment[4].psot, 7314)
|
||||
self.assertEqual(c.segment[4].tpsot, 0)
|
||||
self.assertEqual(c.segment[4].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[4], SOTsegment(0, 7314, 0, 1))
|
||||
|
||||
def test_NR_p0_02_dump(self):
|
||||
jfile = opj_data_file('input/conformance/p0_02.j2k')
|
||||
|
|
@ -304,11 +317,7 @@ class TestSuite(TestSuiteBase):
|
|||
# One unknown marker
|
||||
self.assertEqual(c.segment[6].marker_id, '0xff30')
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[7].isot, 0)
|
||||
self.assertEqual(c.segment[7].psot, 6047)
|
||||
self.assertEqual(c.segment[7].tpsot, 0)
|
||||
self.assertEqual(c.segment[7].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[7], SOTsegment(0, 6047, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -399,16 +408,8 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[10].ttlm, (0, 1, 2, 3))
|
||||
self.assertEqual(c.segment[10].ptlm, (4267, 2117, 4080, 2081))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[11].isot, 0)
|
||||
self.assertEqual(c.segment[11].psot, 4267)
|
||||
self.assertEqual(c.segment[11].tpsot, 0)
|
||||
self.assertEqual(c.segment[11].tnsot, 1)
|
||||
|
||||
# RGN: region of interest
|
||||
self.assertEqual(c.segment[12].crgn, 0)
|
||||
self.assertEqual(c.segment[12].srgn, 0)
|
||||
self.assertEqual(c.segment[12].sprgn, 7)
|
||||
self.verifySOTsegment(c.segment[11], SOTsegment(0, 4267, 0, 1))
|
||||
self.verifyRGNsegment(c.segment[12], RGNsegment(0, 0, 7))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -495,11 +496,7 @@ class TestSuite(TestSuiteBase):
|
|||
"Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[6], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[7].isot, 0)
|
||||
self.assertEqual(c.segment[7].psot, 264383)
|
||||
self.assertEqual(c.segment[7].tpsot, 0)
|
||||
self.assertEqual(c.segment[7].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[7], SOTsegment(0, 264383, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -622,11 +619,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[9].ttlm, (0,))
|
||||
self.assertEqual(c.segment[9].ptlm, (1310540,))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[10].isot, 0)
|
||||
self.assertEqual(c.segment[10].psot, 1310540)
|
||||
self.assertEqual(c.segment[10].tpsot, 0)
|
||||
self.assertEqual(c.segment[10].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[10], SOTsegment(0, 1310540, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -736,21 +729,9 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[7].spcoc[4],
|
||||
glymur.core.WAVELET_XFORM_5X3_REVERSIBLE)
|
||||
|
||||
# RGN: region of interest
|
||||
self.assertEqual(c.segment[8].crgn, 0) # component
|
||||
self.assertEqual(c.segment[8].srgn, 0) # implicit
|
||||
self.assertEqual(c.segment[8].sprgn, 11)
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[9].isot, 0)
|
||||
self.assertEqual(c.segment[9].psot, 33582)
|
||||
self.assertEqual(c.segment[9].tpsot, 0)
|
||||
self.assertEqual(c.segment[9].tnsot, 1)
|
||||
|
||||
# RGN: region of interest
|
||||
self.assertEqual(c.segment[10].crgn, 0) # component
|
||||
self.assertEqual(c.segment[10].srgn, 0) # implicit
|
||||
self.assertEqual(c.segment[10].sprgn, 9)
|
||||
self.verifyRGNsegment(c.segment[8], RGNsegment(0, 0, 11))
|
||||
self.verifySOTsegment(c.segment[9], SOTsegment(0, 33582, 0, 1))
|
||||
self.verifyRGNsegment(c.segment[10], RGNsegment(0, 0, 9))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -802,11 +783,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Kakadu-3.0.7".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 9951)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 0) # unknown
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 9951, 0, 0))
|
||||
|
||||
# POD: progression order change
|
||||
self.assertEqual(c.segment[6].rspod, (0,))
|
||||
|
|
@ -952,11 +929,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Kakadu-3.0.7".encode())
|
||||
self.verifyCMEsegment(c.segment[9], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[10].isot, 0)
|
||||
self.assertEqual(c.segment[10].psot, 3820593)
|
||||
self.assertEqual(c.segment[10].tpsot, 0)
|
||||
self.assertEqual(c.segment[10].tnsot, 1) # unknown
|
||||
self.verifySOTsegment(c.segment[10], SOTsegment(0, 3820593, 0, 1))
|
||||
|
||||
def test_NR_p0_09_dump(self):
|
||||
jfile = opj_data_file('input/conformance/p0_09.j2k')
|
||||
|
|
@ -1006,11 +979,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Kakadu-3.0.7".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 478)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 1) # unknown
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 478, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
# Just one.
|
||||
|
|
@ -1062,88 +1031,33 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[3].exponent,
|
||||
[11, 12, 12, 13, 12, 12, 13, 12, 12, 13])
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[4].isot, 0)
|
||||
self.assertEqual(c.segment[4].psot, 2453)
|
||||
self.assertEqual(c.segment[4].tpsot, 0)
|
||||
self.assertEqual(c.segment[4].tnsot, 0)
|
||||
self.verifySOTsegment(c.segment[4], SOTsegment(0, 2453, 0, 0))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[5].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[6], SOTsegment(1, 2403, 0, 0))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[6].isot, 1)
|
||||
self.assertEqual(c.segment[6].psot, 2403)
|
||||
self.assertEqual(c.segment[6].tpsot, 0)
|
||||
self.assertEqual(c.segment[6].tnsot, 0)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[7].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[8], SOTsegment(2, 2420, 0, 0))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[8].isot, 2)
|
||||
self.assertEqual(c.segment[8].psot, 2420)
|
||||
self.assertEqual(c.segment[8].tpsot, 0)
|
||||
self.assertEqual(c.segment[8].tnsot, 0)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[9].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[10], SOTsegment(3, 2472, 0, 0))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[10].isot, 3)
|
||||
self.assertEqual(c.segment[10].psot, 2472)
|
||||
self.assertEqual(c.segment[10].tpsot, 0)
|
||||
self.assertEqual(c.segment[10].tnsot, 0)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[11].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[12], SOTsegment(0, 1043, 1, 2))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[12].isot, 0)
|
||||
self.assertEqual(c.segment[12].psot, 1043)
|
||||
self.assertEqual(c.segment[12].tpsot, 1)
|
||||
self.assertEqual(c.segment[12].tnsot, 2)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[13].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[14], SOTsegment(1, 1101, 1, 2))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[14].isot, 1)
|
||||
self.assertEqual(c.segment[14].psot, 1101)
|
||||
self.assertEqual(c.segment[14].tpsot, 1)
|
||||
self.assertEqual(c.segment[14].tnsot, 2)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[15].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[16], SOTsegment(3, 1054, 1, 2))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[16].isot, 3)
|
||||
self.assertEqual(c.segment[16].psot, 1054)
|
||||
self.assertEqual(c.segment[16].tpsot, 1)
|
||||
self.assertEqual(c.segment[16].tnsot, 2)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[17].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[18], SOTsegment(2, 14, 1, 0))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[18].isot, 2)
|
||||
self.assertEqual(c.segment[18].psot, 14)
|
||||
self.assertEqual(c.segment[18].tpsot, 1)
|
||||
self.assertEqual(c.segment[18].tnsot, 0)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[19].marker_id, 'SOD')
|
||||
self.verifySOTsegment(c.segment[20], SOTsegment(2, 1089, 2, 0))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[20].isot, 2)
|
||||
self.assertEqual(c.segment[20].psot, 1089)
|
||||
self.assertEqual(c.segment[20].tpsot, 2)
|
||||
self.assertEqual(c.segment[20].tnsot, 0)
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[21].marker_id, 'SOD')
|
||||
|
||||
# EOC: end of codestream
|
||||
self.assertEqual(c.segment[22].marker_id, 'EOC')
|
||||
|
||||
def test_NR_p0_11_dump(self):
|
||||
|
|
@ -1191,11 +1105,7 @@ class TestSuite(TestSuiteBase):
|
|||
"Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 118)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 118, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[6].marker_id, 'SOD')
|
||||
|
|
@ -1255,11 +1165,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 162)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 162, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[6].marker_id, 'SOD')
|
||||
|
|
@ -1352,10 +1258,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[6].exponent, [9, 10, 10, 11])
|
||||
self.assertEqual(c.segment[6].mantissa, [0, 0, 0, 0])
|
||||
|
||||
# RGN: region of interest
|
||||
self.assertEqual(c.segment[7].crgn, 3)
|
||||
self.assertEqual(c.segment[7].srgn, 0)
|
||||
self.assertEqual(c.segment[7].sprgn, 11)
|
||||
self.verifyRGNsegment(c.segment[7], RGNsegment(3, 0, 11))
|
||||
|
||||
# POD: progression order change
|
||||
self.assertEqual(c.segment[8].rspod, (0, 0))
|
||||
|
|
@ -1369,11 +1272,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[9], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[10].isot, 0)
|
||||
self.assertEqual(c.segment[10].psot, 1537)
|
||||
self.assertEqual(c.segment[10].tpsot, 0)
|
||||
self.assertEqual(c.segment[10].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[10], SOTsegment(0, 1537, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[11].marker_id, 'SOD')
|
||||
|
|
@ -1427,16 +1326,8 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Kakadu-3.0.7".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 1528)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 1)
|
||||
|
||||
# SOD: start of data
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 1528, 0, 1))
|
||||
self.assertEqual(c.segment[6].marker_id, 'SOD')
|
||||
|
||||
# EOC: end of codestream
|
||||
self.assertEqual(c.segment[7].marker_id, 'EOC')
|
||||
|
||||
def test_NR_p0_15_dump(self):
|
||||
|
|
@ -1516,49 +1407,30 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[10].ttlm, (0, 1, 2, 3))
|
||||
self.assertEqual(c.segment[10].ptlm, (4267, 2117, 4080, 2081))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[11].isot, 0)
|
||||
self.assertEqual(c.segment[11].psot, 4267)
|
||||
self.assertEqual(c.segment[11].tpsot, 0)
|
||||
self.assertEqual(c.segment[11].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[11], SOTsegment(0, 4267, 0, 1))
|
||||
|
||||
# RGN: region of interest
|
||||
self.assertEqual(c.segment[12].crgn, 0)
|
||||
self.assertEqual(c.segment[12].srgn, 0)
|
||||
self.assertEqual(c.segment[12].sprgn, 7)
|
||||
self.verifyRGNsegment(c.segment[12], RGNsegment(0, 0, 7))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[13].marker_id, 'SOD')
|
||||
|
||||
# 16 SOP markers would be here if we were looking for them
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[31].isot, 1)
|
||||
self.assertEqual(c.segment[31].psot, 2117)
|
||||
self.assertEqual(c.segment[31].tpsot, 0)
|
||||
self.assertEqual(c.segment[31].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[31], SOTsegment(1, 2117, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[32].marker_id, 'SOD')
|
||||
|
||||
# 16 SOP markers would be here if we were looking for them
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[49].isot, 2)
|
||||
self.assertEqual(c.segment[49].psot, 4080)
|
||||
self.assertEqual(c.segment[49].tpsot, 0)
|
||||
self.assertEqual(c.segment[49].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[49], SOTsegment(2, 4080, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[50].marker_id, 'SOD')
|
||||
|
||||
# 16 SOP markers would be here if we were looking for them
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[67].isot, 3)
|
||||
self.assertEqual(c.segment[67].psot, 2081)
|
||||
self.assertEqual(c.segment[67].tpsot, 0)
|
||||
self.assertEqual(c.segment[67].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[67], SOTsegment(3, 2081, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[68].marker_id, 'SOD')
|
||||
|
|
@ -1610,11 +1482,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[3].exponent,
|
||||
[8, 9, 9, 10, 9, 9, 10, 9, 9, 10])
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[4].isot, 0)
|
||||
self.assertEqual(c.segment[4].psot, 7331)
|
||||
self.assertEqual(c.segment[4].tpsot, 0)
|
||||
self.assertEqual(c.segment[4].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[4], SOTsegment(0, 7331, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[5].marker_id, 'SOD')
|
||||
|
|
@ -1686,11 +1554,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[5], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[6].isot, 0)
|
||||
self.assertEqual(c.segment[6].psot, 4627)
|
||||
self.assertEqual(c.segment[6].tpsot, 0)
|
||||
self.assertEqual(c.segment[6].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[6], SOTsegment(0, 4627, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[7].marker_id, 'SOD')
|
||||
|
|
@ -1784,11 +1648,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[6], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[7].isot, 0)
|
||||
self.assertEqual(c.segment[7].psot, 262838)
|
||||
self.assertEqual(c.segment[7].tpsot, 0)
|
||||
self.assertEqual(c.segment[7].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[7], SOTsegment(0, 262838, 0, 1))
|
||||
|
||||
# PPT: packed packet headers, tile-part header
|
||||
self.assertEqual(c.segment[8].marker_id, 'PPT')
|
||||
|
|
@ -1917,11 +1777,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(c.segment[10].ttlm, (0,))
|
||||
self.assertEqual(c.segment[10].ptlm, (1366780,))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[11].isot, 0)
|
||||
self.assertEqual(c.segment[11].psot, 1366780)
|
||||
self.assertEqual(c.segment[11].tpsot, 0)
|
||||
self.assertEqual(c.segment[11].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[11], SOTsegment(0, 1366780, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[12].marker_id, 'SOD')
|
||||
|
|
@ -1987,20 +1843,12 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Created by Aware, Inc.".encode())
|
||||
self.verifyCMEsegment(c.segment[5], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[6].isot, 0)
|
||||
self.assertEqual(c.segment[6].psot, 350)
|
||||
self.assertEqual(c.segment[6].tpsot, 0)
|
||||
self.assertEqual(c.segment[6].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[6], SOTsegment(0, 350, 0, 1))
|
||||
|
||||
# SOD: start of data
|
||||
self.assertEqual(c.segment[7].marker_id, 'SOD')
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[8].isot, 1)
|
||||
self.assertEqual(c.segment[8].psot, 356)
|
||||
self.assertEqual(c.segment[8].tpsot, 0)
|
||||
self.assertEqual(c.segment[8].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[8], SOTsegment(1, 356, 0, 1))
|
||||
|
||||
# QCD: Quantization default
|
||||
# quantization type
|
||||
|
|
@ -2015,11 +1863,7 @@ class TestSuite(TestSuiteBase):
|
|||
# SOD: start of data
|
||||
self.assertEqual(c.segment[10].marker_id, 'SOD')
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[11].isot, 2)
|
||||
self.assertEqual(c.segment[11].psot, 402)
|
||||
self.assertEqual(c.segment[11].tpsot, 0)
|
||||
self.assertEqual(c.segment[11].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[11], SOTsegment(2, 402, 0, 1))
|
||||
|
||||
# and so on
|
||||
|
||||
|
|
@ -2089,11 +1933,7 @@ class TestSuite(TestSuiteBase):
|
|||
zppm = [x.zppm for x in c.segment[5:230]]
|
||||
self.assertEqual(zppm, list(range(225)))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[230].isot, 0)
|
||||
self.assertEqual(c.segment[230].psot, 580)
|
||||
self.assertEqual(c.segment[230].tpsot, 0)
|
||||
self.assertEqual(c.segment[230].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[230], SOTsegment(0, 580, 0, 1))
|
||||
|
||||
# 225 total SOT segments
|
||||
isot = [x.isot for x in c.segment if x.marker_id == 'SOT']
|
||||
|
|
@ -2156,11 +1996,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[4], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[5].isot, 0)
|
||||
self.assertEqual(c.segment[5].psot, 349)
|
||||
self.assertEqual(c.segment[5].tpsot, 0)
|
||||
self.assertEqual(c.segment[5].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[5], SOTsegment(0, 349, 0, 1))
|
||||
|
||||
# PPT: packed packet headers, tile-part header
|
||||
self.assertEqual(c.segment[6].marker_id, 'PPT')
|
||||
|
|
@ -2247,11 +2083,7 @@ class TestSuite(TestSuiteBase):
|
|||
pargs = (RCME_ISO_8859_1, "Creator: AV-J2K (c) 2000,2001 Algo Vision".encode())
|
||||
self.verifyCMEsegment(c.segment[5], CMEsegment(*pargs))
|
||||
|
||||
# SOT: start of tile part
|
||||
self.assertEqual(c.segment[6].isot, 0)
|
||||
self.assertEqual(c.segment[6].psot, 434)
|
||||
self.assertEqual(c.segment[6].tpsot, 0)
|
||||
self.assertEqual(c.segment[6].tnsot, 1)
|
||||
self.verifySOTsegment(c.segment[6], SOTsegment(0, 434, 0, 1))
|
||||
|
||||
# scads of SOP, EPH segments
|
||||
|
||||
|
|
@ -3349,13 +3181,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr', 'pclr', 'cmap'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[1], 'jpxb')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[2], 'jpx ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 ', 'jpxb', 'jpx '])
|
||||
|
||||
# Reader requirements talk.
|
||||
# unrestricted jpeg 2000 part 1
|
||||
|
|
@ -3433,13 +3259,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[1], 'jpxb')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[2], 'jpx ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 ', 'jpxb', 'jpx '])
|
||||
|
||||
# Reader requirements talk.
|
||||
# unrestricted jpeg 2000 part 1
|
||||
|
|
@ -3511,11 +3331,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(ids, ['resd'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(135, 135, num_components=2,
|
||||
colorspace_unknown=True)
|
||||
|
|
@ -3591,13 +3407,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr', 'pclr', 'cmap'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[1], 'jpxb')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[2], 'jpx ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 ', 'jpxb', 'jpx '])
|
||||
|
||||
# Reader requirements talk.
|
||||
# unrestricted jpeg 2000 part 1
|
||||
|
|
@ -3678,11 +3488,7 @@ class TestSuite(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(576, 766, num_components=3)
|
||||
self.verifyImageHeaderBox(jp2.box[2].box[0], ihdr)
|
||||
|
|
@ -4096,11 +3902,7 @@ class TestSuiteWarns(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[1], 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(400, 700)
|
||||
self.verifyImageHeaderBox(jp2.box[2].box[0], ihdr)
|
||||
|
|
@ -4138,11 +3940,7 @@ class TestSuiteWarns(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'pclr', 'cmap', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].compatibility_list[1], 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(512, 768)
|
||||
self.verifyImageHeaderBox(jp2.box[2].box[0], ihdr)
|
||||
|
|
@ -4183,11 +3981,7 @@ class TestSuiteWarns(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(200, 200,
|
||||
num_components=3, colorspace_unknown=True)
|
||||
|
|
@ -4252,11 +4046,7 @@ class TestSuiteWarns(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(117, 117, num_components=4)
|
||||
self.verifyImageHeaderBox(jp2.box[2].box[0], ihdr)
|
||||
|
|
@ -4327,11 +4117,7 @@ class TestSuiteWarns(TestSuiteBase):
|
|||
self.assertEqual(ids, ['ihdr', 'colr'])
|
||||
|
||||
self.verifySignatureBox(jp2.box[0])
|
||||
|
||||
# File type box.
|
||||
self.assertEqual(jp2.box[1].brand, 'jp2 ')
|
||||
self.assertEqual(jp2.box[1].minor_version, 0)
|
||||
self.assertEqual(jp2.box[1].compatibility_list[0], 'jp2 ')
|
||||
self.verifyFileTypeBox(jp2.box[1], 'jp2 ', ['jp2 '])
|
||||
|
||||
ihdr = glymur.jp2box.ImageHeaderBox(117, 117, num_components=4)
|
||||
self.verifyImageHeaderBox(jp2.box[2].box[0], ihdr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue