亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pktdecoder.java

?? jpeg2000算法實現
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                            intArraySet(lblock[c][r][s][i],                                        INIT_LBLOCK);                    }                }                // Collect code-blocks and precinct coordinates                buildCBlkPrecCoord(c,r);            } // End loop on resolution levels        } // End loop on components                return cbI;    }        /**      * Get the number of precinct in given component and resolution.     *     * @param c Component index     *     * @param r Resolution index     * */    public int getNumPrecinct(int c,int r){	return maxNumPrecincts[c][r].x*maxNumPrecincts[c][r].y;    }        /**      * Read specified packet head and found length of each code-block's piece     * of codewords as well as number of skipped most significant bit-planes.     *     * @param l layer index     *     * @param r Resolution level index     *     * @param c Component index     *     * @param p Precinct index     *     * @param cbI CBlkInfo array of relevant component and resolution     * level.     *     * @param nb The number of bytes to read in each tile before reaching     * output rate (used by truncation mode)     *     * @return True if output rate is reached      * */    public boolean readPktHead(int l,int r,int c,int p,CBlkInfo[][][] cbI,                               int[] nb) throws IOException{        CBlkInfo ccb;        Coord curCB,firstCB;        int nSeg;                   // number of segment to read        int cbLen;                  // Length of cblk's code-words        int ltp;                    // last truncation point index        int passtype;               // coding pass type        TagTreeDecoder tdIncl,tdBD;        int tmp,tmp2,totnewtp,lblockCur,tpidx;        int sumtotnewtp = 0;        CBlkCoordInfo ccbCoord;	int startPktHead = ehs.getPos();	int tIdx = src.getTileIdx();        PktHeaderBitReader bin;        // If packed packet headers was used, use separate stream for reading        // of packet headers	if(pph){            bin = new PktHeaderBitReader(pphbais);        }        else{            bin = this.bin;        }        boolean precFound = false;        for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){            if(p<precCoord[c][r][s].length){                precFound = true;            }        }        if(!precFound) {            return false;        }        // Synchronize for bit reading        bin.sync();                // If packet is empty there is no info in it (i.e. no code-blocks)        int firstBit = bin.readBit();        if(firstBit == 0){            // No code-block is included            cblks = new Vector[subRange[c][r][1]+1];            for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){                cblks[s] = new Vector();            }	    pktIdx++;	    	    // If truncation mode, checks if output rate is reached	    if(isTruncMode){		tmp = ehs.getPos()-startPktHead;		if(tmp>nb[tIdx]){		    nb[tIdx] = 0;		    return true;		}		else		    nb[tIdx] -= tmp;	    }            // Read EPH marker if needed            if(ephUsed) {                readEPHMarker(bin);            }	    return false;        }        // Packet is not empty => decode info        // Loop on each subband in this resolution level        cblks = new Vector[subRange[c][r][1]+1];        for(int s=subRange[c][r][0];s<=subRange[c][r][1];s++){	    cblks[s] = getCBlkInPrecinct(c,r,s,p);	              // No code-block in this precinct            if(cblks[s].size()==1){                // Go to next subband                cblks[s].removeAllElements();                continue;            }            curCB = (Coord)cblks[s].elementAt(0);            tdIncl = tdInclA[c][r][s][p];            tdBD = tdBDA[c][r][s][p];            if(tdIncl==null){                tdIncl = tdInclA[c][r][s][p] =                    new TagTreeDecoder(curCB.y,curCB.x);            }            if(tdBD==null){                tdBD = tdBDA[c][r][s][p] =                    new TagTreeDecoder(curCB.y,curCB.x);            }            firstCB = (Coord)cblks[s].elementAt(1);            for(int numCB=1; numCB<cblks[s].size();){                curCB = (Coord)cblks[s].elementAt(numCB);                ccb = cbI[s][curCB.x][curCB.y];		try{		    // If code-block not included in previous layer(s)		    if(ccb==null || ccb.ctp==0){ 			if(ccb==null){			    ccbCoord = cbCoord[c][r][s][curCB.x][curCB.y];			    ccb = cbI[s][curCB.x][curCB.y] = 				new CBlkInfo(ccbCoord.ulx,ccbCoord.uly,					     ccbCoord.w,ccbCoord.h,nl);			}			ccb.pktIdx[l] = pktIdx;						// Read inclusion using tag-tree			tmp = tdIncl.update(curCB.x-firstCB.x,					    curCB.y-firstCB.y,l+1,bin);			if(tmp>l){ // Not included			    cblks[s].removeElementAt(numCB);			    continue;			}			// Read bitdepth using tag-tree			tmp = 1;// initialization			for(tmp2=1; tmp>=tmp2; tmp2++){			    tmp = tdBD.update(curCB.x-firstCB.x,					      curCB.y-firstCB.y,tmp2,bin);			}			ccb.msbSkipped = tmp2-2;			// New code-block => at least one truncation point			totnewtp = 1;			ccb.addNTP(l,0);		    }		    else{// If code-block already included in one of			// the previous layers.						ccb.pktIdx[l] = pktIdx;						// If not inclused			if(bin.readBit()!=1){			    cblks[s].removeElementAt(numCB);			    continue;			}						// At least 1 more truncation point than prev. packet			totnewtp = 1;		    }		    		    // Read new truncation points		    if(bin.readBit()==1){// if bit is 1			totnewtp++;						// if next bit is 0 do nothing			if(bin.readBit()==1){//if is 1			    totnewtp++;			    			    tmp = bin.readBits(2);			    totnewtp += tmp;			    			    // If next 2 bits are not 11 do nothing			    if(tmp==0x3){ //if 11				tmp = bin.readBits(5);				totnewtp += tmp;								// If next 5 bits are not 11111 do nothing				if(tmp==0x1F){//if 11111				    totnewtp +=					bin.readBits(7);				}			    }			}		    }		    ccb.addNTP(l,totnewtp);                    sumtotnewtp += totnewtp;		    // Code-block length		    // -- Compute the number of bit to read to obtain		    // code-block length.                      // numBits = betaLamda + log2(totnewtp);		    		    // The length is signalled for each segment in addition to		    // the final one. The total length is the sum of all		    // segment lengths.		    		    // If regular termination in use, then there is one		    // segment per truncation point present. Otherwise, if		    // selective arithmetic bypass coding mode is present,                    // then there is one termination per bypass/MQ 		    // and MQ/bypass transition. Otherwise the only termination		    // is at the end of the code-block.		    int options = 			((Integer)decSpec.ecopts.getTileCompVal(tIdx,c)).			intValue();		    		    if( (options & OPT_REG_TERM) != 0) {			// Regular termination in use, one segment per new			// pass (i.e. truncation point)			nSeg = totnewtp;		    }		    else if( (options & OPT_BYPASS) != 0) {			// Selective arithmetic coding bypass coding mode in			// use, but no regular termination 1 segment up to the			// end of the last pass of the 4th most significant			// bit-plane, and, in each following bit-plane, one			// segment upto the end of the 2nd pass and one upto			// the end of the 3rd pass.						if(ccb.ctp <= FIRST_BYPASS_PASS_IDX) {			    nSeg = 1;			}			else {			    nSeg = 1; // One at least for last pass			    // And one for each other terminated pass			    for(tpidx = ccb.ctp-totnewtp;				tpidx < ccb.ctp-1; tpidx++) {				if(tpidx >= FIRST_BYPASS_PASS_IDX-1) {				    passtype =					(tpidx+NUM_EMPTY_PASSES_IN_MS_BP)%					NUM_PASSES;				    if (passtype == 1 || passtype == 2) {					// bypass coding just before MQ pass					// or MQ pass just before bypass					// coding => terminated					nSeg++;				    }				}			    }			}		    }		    else {			// Nothing special in use, just one segment			nSeg = 1;		    }		                        // Reads lblock increment (common to all segments)                    while(bin.readBit()!=0){  			lblock[c][r][s][curCB.x][curCB.y]++;                    }		    if(nSeg == 1){ // Only one segment in packet		      cbLen = bin.readBits(lblock[c][r][s]                                           [curCB.x][curCB.y]+					   MathUtil.log2(totnewtp));		    }		    else {			// We must read one length per segment			ccb.segLen[l] = new int[nSeg];			cbLen = 0;			int j;			if((options & OPT_REG_TERM) != 0){			    // Regular termination: each pass is terminated			    for(tpidx=ccb.ctp-totnewtp, j=0;				tpidx<ccb.ctp;tpidx++,j++){			      lblockCur = 				lblock[c][r][s][curCB.x][curCB.y];                                                            tmp = bin.readBits(lblockCur);                              ccb.segLen[l][j] = tmp;                              cbLen += tmp;			    }			}			else {			    // Bypass coding: only some passes are terminated			    ltp = ccb.ctp-totnewtp-1;			    for(tpidx = ccb.ctp-totnewtp, j=0;				tpidx<ccb.ctp-1;tpidx++){				if(tpidx >= FIRST_BYPASS_PASS_IDX-1) {				    passtype = 					(tpidx+NUM_EMPTY_PASSES_IN_MS_BP)%					NUM_PASSES;				    if (passtype == 0) continue;				    lblockCur = 				      lblock[c][r][s][curCB.x][curCB.y];				    tmp =					bin.readBits(lblockCur+						     MathUtil.log2(tpidx-ltp));				    ccb.segLen[l][j] = tmp;				    cbLen += tmp;				    ltp = tpidx;				    j++;				}			    }			    // Last pass has always the length sent			    lblockCur = 			      lblock[c][r][s][curCB.x][curCB.y];			    tmp = bin.readBits(lblockCur+					       MathUtil.log2(tpidx-ltp));			    cbLen += tmp;			    ccb.segLen[l][j] = tmp;			}		    }		    ccb.len[l] = cbLen;		    		    // If truncation mode, checks if output rate is reached		    if(isTruncMode){			tmp = ehs.getPos()-startPktHead;			if(tmp>nb[tIdx]){			    nb[tIdx] = 0;			    // Remove found information in this code-block			    if(l==0)				cbI[s][curCB.x][curCB.y] = null;			    else{				ccb.off[l]=ccb.len[l]=0;				ccb.ctp -= ccb.ntp[l];				ccb.ntp[l] = 0;				ccb.pktIdx[l] = -1;			    }			    return true;			}		    }		    		    numCB++;		}		catch(EOFException e){		    // Remove found information in this code-block		    if(l==0)			cbI[s][curCB.x][curCB.y] = null;		    else{			ccb.off[l]=ccb.len[l]=0;			ccb.ctp -= ccb.ntp[l];			ccb.ntp[l] = 0;			ccb.pktIdx[l] = -1;		    }		    throw new EOFException();		}            } // End loop on code-blocks            cblks[s].removeElementAt(0);        } // End loop on subbands        // Read EPH marker if needed        if(ephUsed)            readEPHMarker(bin);        pktIdx++;	// If truncation mode, checks if output rate is reached	if(isTruncMode){	    tmp = ehs.getPos()-startPktHead;	    if(tmp>nb[tIdx]){		nb[tIdx] = 0;		return true;	    }	    else		nb[tIdx] -= tmp;	}	return false;    }    /**      * Reads specificied packet body in order to find offset of each     * code-block's piece of codeword. This use the list of found code-blocks     * in previous red packet head.     *     * @param l layer index     *     * @param r Resolution level index     *     * @param c Component index     *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区视频| 亚洲欧美色综合| 亚洲美女少妇撒尿| 国内欧美视频一区二区 | 欧美区一区二区三区| 欧美激情一区二区三区四区| 日本特黄久久久高潮| 95精品视频在线| 精品av久久707| 蜜桃久久av一区| 欧美日韩亚洲国产综合| 中文字幕欧美一区| 国产一区二区三区观看| 日韩欧美电影一区| 亚洲福利一区二区| 色综合久久综合网| 亚洲视频每日更新| 91影院在线观看| 国产精品无码永久免费888| 国产一区高清在线| 精品国产一区二区三区久久久蜜月| 亚洲综合小说图片| 色婷婷综合久久久| 亚洲欧美一区二区三区国产精品 | 亚洲国产精品久久不卡毛片 | 国产精品香蕉一区二区三区| 日韩欧美综合在线| 天堂精品中文字幕在线| 欧美乱妇23p| 亚洲成人av在线电影| 欧美在线观看禁18| 亚洲激情五月婷婷| 欧美主播一区二区三区| 一区二区不卡在线播放| 在线观看日产精品| 亚洲国产成人av| 欧美军同video69gay| 日日嗨av一区二区三区四区| 91精品免费观看| 首页亚洲欧美制服丝腿| 欧美一级午夜免费电影| 久久99精品久久久久久久久久久久 | 国产精品1区2区| 国产亚洲一区二区三区在线观看| 国产在线精品一区二区夜色| 久久久久88色偷偷免费| 国产成都精品91一区二区三 | 精品粉嫩超白一线天av| 美女网站在线免费欧美精品| 亚洲精品一区二区三区影院| 国产精品一卡二卡| 自拍偷拍欧美精品| 在线观看国产91| 人人精品人人爱| 久久久久久久久蜜桃| av在线一区二区| 午夜精品久久久久久不卡8050| 91精品在线麻豆| 高清shemale亚洲人妖| 亚洲欧美一区二区三区极速播放| 欧美人成免费网站| 久久国产精品99久久久久久老狼| 国产日韩欧美a| 欧美午夜不卡视频| 国模大尺度一区二区三区| 国产精品私人影院| 欧美女孩性生活视频| 国产一区二三区好的| 夜夜精品浪潮av一区二区三区 | 欧美天堂亚洲电影院在线播放| 日韩vs国产vs欧美| 亚洲图片激情小说| 欧美xingq一区二区| 一本大道av一区二区在线播放| 秋霞影院一区二区| 亚洲私人影院在线观看| 精品免费国产二区三区| 91福利在线播放| 国产盗摄视频一区二区三区| 亚洲国产日产av| 国产精品久久久久久久久免费樱桃 | 精品美女在线播放| 欧美日韩一区二区三区在线| 国产成人免费在线视频| 日韩av电影一区| 一级女性全黄久久生活片免费| 26uuu亚洲| 欧美日本韩国一区| 日本久久电影网| 国产福利91精品一区二区三区| 午夜精品久久久久久| 成人欧美一区二区三区1314| 欧美一区二区播放| 欧美日韩亚洲另类| 欧美亚洲国产一区二区三区va | 国产精品国产精品国产专区不蜜 | 在线不卡一区二区| 色诱亚洲精品久久久久久| 国产成a人无v码亚洲福利| 麻豆免费精品视频| 亚洲福利视频三区| 亚洲午夜在线电影| 夜夜亚洲天天久久| 亚洲综合小说图片| 亚洲伦理在线精品| 中文字幕一区二区三区蜜月 | 亚洲二区在线观看| 亚洲夂夂婷婷色拍ww47| 亚洲欧美综合网| 成人欧美一区二区三区1314| 欧美国产1区2区| 久久精品免视看| 国产视频亚洲色图| 国产欧美日韩一区二区三区在线观看| 日韩一级二级三级精品视频| 日韩视频免费观看高清在线视频| 欧美日韩国产成人在线91| 欧美日韩精品一区二区| 欧美日本在线播放| 欧美高清视频在线高清观看mv色露露十八| 欧美综合在线视频| 欧美色视频一区| 日韩免费电影网站| 久久久99精品免费观看| 国产精品乱人伦| 亚洲欧美经典视频| 亚洲福利视频一区| 日韩av网站在线观看| 国内外成人在线| 北岛玲一区二区三区四区| 一本一道综合狠狠老| 欧美撒尿777hd撒尿| 91精品在线观看入口| 久久天天做天天爱综合色| 欧美激情一区二区三区四区| 成人免费一区二区三区视频 | 风间由美一区二区av101| 成人污视频在线观看| 一本久久精品一区二区| 欧美精品久久一区二区三区| 日韩午夜中文字幕| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产精品你懂的| 亚洲成av人片一区二区三区| 美女在线一区二区| 99久久伊人精品| 欧美一区二区三区啪啪| 国产精品情趣视频| 亚洲成人一区二区在线观看| 黄页视频在线91| 色老汉av一区二区三区| 日韩免费高清av| 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕 久热精品 视频在线 | av一区二区三区在线| 欧美日韩精品免费| 日本一区二区三区在线不卡| 亚洲综合小说图片| 国产91丝袜在线18| 欧美理论电影在线| 国产精品第四页| 免费高清视频精品| 91毛片在线观看| 久久婷婷一区二区三区| 亚洲高清在线视频| av电影天堂一区二区在线| 欧美一二三在线| 亚洲夂夂婷婷色拍ww47| 成人一区二区视频| 日韩一区二区影院| 亚洲一区精品在线| eeuss影院一区二区三区| 日韩一区二区麻豆国产| 樱桃国产成人精品视频| 国产99久久久精品| 欧美videossexotv100| 一区二区视频免费在线观看| 成人一区二区视频| 久久久一区二区三区| 全部av―极品视觉盛宴亚洲| 在线亚洲精品福利网址导航| 中文字幕第一区二区| 国产高清不卡一区| 精品少妇一区二区三区| 午夜欧美视频在线观看| 欧美性色黄大片| 一区二区三区不卡视频| 99久久免费精品高清特色大片| 欧美韩国日本综合| 国产剧情在线观看一区二区| 精品国产乱码久久久久久闺蜜| 日韩激情视频在线观看| 欧美三区在线观看| 亚洲韩国一区二区三区| 欧美视频一区在线| 夜夜操天天操亚洲| 欧美日韩一级黄| 婷婷久久综合九色综合伊人色| 欧美性色黄大片| 日产国产欧美视频一区精品 |