Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
1st May 2018, 19:26 | #101 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
I am a little confused with all this stuff. 1) Can you please make a simple text graph of the 4x4 TUs in 2x2 arrangement ? 2) Does CUs are consisting ONLY from TUs and PUs ? 3) Does TUs and PUs are containing with Luma and chroma data ?
__________________
Just me... |
|
1st May 2018, 19:42 | #102 | Link | |
Registered User
Join Date: Jan 2013
Location: Santa Clara CA
Posts: 114
|
Quote:
but think of it similar to the way a 16x16 JPEG/MPEG-2 macroblock has four 8x8 DCT blocks (in luma): http://slideplayer.com/slide/4759570...ompression.jpg 2) A CU always contains one or more PUs and one or more TUs. 3) Luma and chroma are grouped together when talking about TUs and PUs. |
|
1st May 2018, 19:48 | #103 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
Thank you So for the question (2) the only data units a CU can contain is TUs and PUs, and for question (3) luma & chroma are grouped together in case we are talking about for TBs and PBs (i suppose not in case of blocks correct ?) Regards,
__________________
Just me... |
|
2nd May 2018, 03:02 | #105 | Link | ||
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
Quote:
Quote:
Last edited by foxyshadis; 2nd May 2018 at 03:04. |
||
2nd May 2018, 09:48 | #106 | Link | ||
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
https://codesequoia.wordpress.com/20...-cb-pb-and-tb/ and when I read "logical unit" it sounded to me a little generic like logical units in Win32 API that takes a physical form somewhere in the implementation way. Quote:
__________________
Just me... |
||
6th May 2018, 14:50 | #107 | Link |
Registered User
Join Date: Jul 2013
Posts: 90
|
pieter3d
The PUs and TUs are living together inside a CU in parallel or TUs are always inside the PUs like the image below ? I mean what's the hierarchical-block structures inside the CTU ? https://imgur.com/a/VWMbWha
__________________
Just me... Last edited by sdancer75; 6th May 2018 at 14:57. |
12th May 2018, 00:26 | #109 | Link | |
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
Quote:
|
|
13th May 2018, 19:06 | #110 | Link | ||
Angel of Night
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
|
Quote:
Code:
744 else if ( ctuXPosInCtus == tileXPosInCtus && m_pcCfg->getWaveFrontsynchro()) 745 { 746 // reset and then update contexts to the state at the end of the top-right CTU (if within current slice and tile). 747 m_pppcRDSbacCoder[0][CI_CURR_BEST]->resetEntropy(); 748 // Sync if the Top-Right is available. 749 TComDataCU *pCtuUp = pCtu->getCtuAbove(); 750 if ( pCtuUp && ((ctuRsAddr%frameWidthInCtus+1) < frameWidthInCtus) ) 751 { 752 TComDataCU *pCtuTR = pcPic->getCtu( ctuRsAddr - frameWidthInCtus + 1 ); 753 if ( pCtu->CUIsFromSameSliceAndTile(pCtuTR) ) 754 { 755 // Top-Right is available, we use it. 756 m_pppcRDSbacCoder[0][CI_CURR_BEST]->loadContexts( &m_entropyCodingSyncContextState ); 757 } 758 } 759 } Code:
861 if ( ctuXPosInCtus == tileXPosInCtus+1 && m_pcCfg->getWaveFrontsynchro()) 862 { 863 m_entropyCodingSyncContextState.loadContexts(m_pppcRDSbacCoder[0][CI_CURR_BEST]); 864 } Quote:
You can see early versions of x265 if you want to see HM code with actual multithreaded Wavefront processesing, before the HM code was ripped out and entirely reimplemented. Last edited by foxyshadis; 13th May 2018 at 19:09. |
||
14th May 2018, 11:03 | #112 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,784
|
Mercurial doesn't care much about "version" tags. Use revision numbers or commit hashes. Revision 0 has (brief) commit hash 09fe40627f03.
|
17th September 2018, 19:52 | #113 | Link |
Registered User
Join Date: Jul 2013
Posts: 90
|
hi there,
Is there anyway to create two different sets of TEncSbac classes just before the compressSlice(pcPic) ie one for the 1st half of the pic and the other for the 2nd half of the pic (I have already done this), and finally join them just after the end of the mentioned function? The TEncSbac is a class and I wonder where the actual encoded data exists ! I need this to create two independent compression processes. Regards,
__________________
Just me... |
30th October 2018, 20:16 | #114 | Link |
Registered User
Join Date: Jul 2013
Posts: 90
|
Hi,
I noticed a change from HM Reference software v10 to the latest v16 in the Compressing/Encoding CUs. Inside the compressSlice, the older versions are calling compressCU/encodeCU while the newer versions are calling compressCtu/encodeCtu. So, since both of them ie compressCU & CompressCtu are sequentially calling xCompressCU as well as encodeCU & encode Ctu are sequentially calling xEncodeCU respectivelly, is there any real difference in the compress and encoding procedure ?
__________________
Just me... Last edited by sdancer75; 30th October 2018 at 20:19. |
20th December 2018, 17:56 | #116 | Link |
Registered User
Join Date: Jan 2013
Location: Santa Clara CA
Posts: 114
|
It's the same process as on frame boundaries. there is also a flag that lets you optionally enable use of information from other tiles if those tiles were encoded previously (i.e. left or above tiles).
|
22nd December 2018, 18:16 | #117 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
Regards,
__________________
Just me... |
|
23rd December 2018, 05:55 | #118 | Link |
Registered User
Join Date: Jan 2013
Location: Santa Clara CA
Posts: 114
|
Check these two:
https://hevc.hhi.fraunhofer.de/trac/...icSym.cpp#L482 https://hevc.hhi.fraunhofer.de/trac/...taCU.cpp#L1009 That should give you a starting point to dig in to. |
23rd December 2018, 12:22 | #119 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
__________________
Just me... |
|
19th January 2019, 20:45 | #120 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
I am in a very strange condition. if I replace the code at https://hevc.hhi.fraunhofer.de/trac/...ataCU.cpp#L499 with Code:
if ((m_ctuRsAddr < 30) || (m_ctuRsAddr > 30)) { if (m_ctuRsAddr / frameWidthInCtus) { m_pCtuAbove = pcPic->getCtu(m_ctuRsAddr - frameWidthInCtus); } }
__________________
Just me... |
|
|
|